{"version":3,"file":"main.65bae0181f24b8c5.js","mappings":"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AkB,MAAT9gF,GAAiB,KAAIA,MAAW,GACzE,CAKA,SAASizF,GAAiBnS,IACxB,OLh6CK,SAAS0S,GAAsB1S,IACpC,OACEA,KAASwH,GAAUG,MACnB3H,KAASwH,GAAUI,QACnB5H,KAASwH,GAAUK,KACnB7H,KAASwH,GAAUM,SACnB9H,KAASwH,GAAUO,SACnB/H,KAASwH,GAAUQ,QACnBhI,KAASwH,GAAUS,OACnBjI,KAASwH,GAAUU,QACnBlI,KAASwH,GAAUW,IACnBnI,KAASwH,GAAUY,WACnBpI,KAASwH,GAAUa,WACnBrI,KAASwH,GAAUc,SACnBtI,KAASwH,GAAUe,MACnBvI,KAASwH,GAAUgB,OAEvB,CK+4CSkK,CAAsB1S,IAAS,IAAGA,MAAUA,EACrD,CC3+CA,MAAM2S,GAAgB,gCAEtB,SAASC,GAAgB/f,IACvB,OAAOggB,GAAgBhgB,GAAIU,WAAW,GACxC,CAEA,MAAMsf,GAAkB,CACtB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,MACA,MACA,MACA,UACA,MACA,MACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WCrKWC,GAAQhyF,OAAOiyF,OAAO,CAAC,GAgU7B,SAASC,GAAqBC,GAASjT,IAC5C,MAAMkT,GAAcD,GAAQjT,IAE5B,MAA2B,iBAAhBkT,GAEFA,GACyB,mBAAhBA,GAET,CACLC,MAAOD,GACPE,WAAO5jG,GAIJ,CACL2jG,MAAOF,GAAQE,MACfC,MAAOH,GAAQG,MAEnB,CCnVO,SAASC,GAAMC,IACpB,ODgFK,SAASC,GAAMxhE,GAAMkhE,GAASO,GAActT,IACjD,MAAMuT,GAAgB,IAAI3pF,IAE1B,UAAWk2E,MAAQl/E,OAAOq6B,OAAOqpD,IAC/BiP,GAAc5pF,IAAIm2E,GAAMgT,GAAqBC,GAASjT,KAIxD,IAAIT,GAMApuD,GACAa,GANA0hE,GAAUzpF,MAAMqnB,QAAQS,IACxBkC,GAAO,CAAClC,IACRzqB,IAAQ,EACRqsF,GAAQ,GACR1U,GAAOltD,GAGX,MAAMx4B,GAAO,GACPq6F,GAAY,GAGlB,EAAG,CACDtsF,KACA,MAAMusF,GAAYvsF,KAAU2sB,GAAK5xB,OAC3ByxF,GAAWD,IAA8B,IAAjBF,GAAMtxF,OAEpC,GAAIwxF,GAAW,CAKb,GAJA1iE,GAA2B,IAArByiE,GAAUvxF,YAAe7S,EAAY+J,GAAKA,GAAK8I,OAAS,GAC9D48E,GAAOjtD,GACPA,GAAS4hE,GAAUzhE,MAEf2hE,GACF,GAAIJ,GAAS,CACXzU,GAAOA,GAAK50E,QACZ,IAAI0pF,GAAa,EAEjB,UAAYC,GAASC,MAAcN,GAAO,CACxC,MAAMO,GAAWF,GAAUD,GAET,OAAdE,IACFhV,GAAK/2E,OAAOgsF,GAAU,GACtBH,MAEA9U,GAAKiV,IAAYD,EAErB,CACF,KAAO,CACLhV,GAAOn+E,OAAOk4D,iBACZ,CAAC,EACDl4D,OAAOqzF,0BAA0BlV,KAGnC,UAAY+U,GAASC,MAAcN,GACjC1U,GAAK+U,IAAWC,EAEpB,CAGF3sF,GAAQi4E,GAAMj4E,MACd2sB,GAAOsrD,GAAMtrD,KACb0/D,GAAQpU,GAAMoU,MACdD,GAAUnU,GAAMmU,QAChBnU,GAAQA,GAAMU,IAChB,SAAWjuD,GAAQ,CAIjB,GAHAb,GAAMuiE,GAAUpsF,GAAQ2sB,GAAK3sB,IAC7B23E,GAAOjtD,GAAOb,IAED,MAAT8tD,GACF,SAGF1lF,GAAKqR,KAAKumB,GACZ,CAEA,IAAInoB,GAEJ,IAAKiB,MAAMqnB,QAAQ2tD,IAAO,CACxB,IAAImV,GAAoBC,GAExBtR,GAAO9D,KAASgM,IAAU,EAAQ,qBAAoBG,GAAQnM,QAC9D,MAAMqV,GAAUT,GAC4C,QAAvDO,GAAqBX,GAAchkG,IAAIwvF,GAAKe,aACtB,IAAvBoU,QACE,EACAA,GAAmBhB,MACoC,QAAxDiB,GAAsBZ,GAAchkG,IAAIwvF,GAAKe,aACtB,IAAxBqU,QACA,EACAA,GAAoBlB,MAMxB,GALAnqF,GAGMsrF,IAAQ52C,KAAKu1C,GAAShU,GAAM9tD,GAAKa,GAAQz4B,GAAMq6F,IAEjD5qF,KAAW8pF,GACb,MAGF,IAAe,IAAX9pF,IACF,IAAK6qF,GAAW,CACdt6F,GAAK44B,MACL,QACF,eACoB3iC,IAAXwZ,KACT2qF,GAAM/oF,KAAK,CAACumB,GAAKnoB,MAEZ6qF,IACH,KAAI9Q,GAAO/5E,IAEJ,CACLzP,GAAK44B,MACL,QACF,CAJE8sD,GAAOj2E,EAIT,CAGN,CASE,IAAIurF,QAPS/kG,IAAXwZ,IAAwB8qF,IAC1BH,GAAM/oF,KAAK,CAACumB,GAAK8tD,KAGf4U,GACFt6F,GAAK44B,OAILotD,GAAQ,CACNmU,WACApsF,SACA2sB,QACA0/D,SACA1T,KAAMV,IAERmU,GAAUzpF,MAAMqnB,QAAQ2tD,IACxBhrD,GAAOy/D,GACHzU,GAC0C,QAAzCsV,GAAaf,GAAYvU,GAAKe,aAChB,IAAfuU,GACAA,GACA,GACJjtF,IAAQ,EACRqsF,GAAQ,GAEJ3hE,IACF4hE,GAAUhpF,KAAKonB,IAGjBA,GAASitD,GAEb,YAAmBzvF,IAAV+vF,IAET,OAAqB,IAAjBoU,GAAMtxF,OAEDsxF,GAAMA,GAAMtxF,OAAS,GAAG,GAG1B0vB,EACT,CC5OSwhE,CAAMD,GAAKkB,GACpB,CACA,MACMA,GAAqB,CACzBrU,KAAM,CACJiT,MAAQnU,IAASA,GAAK//E,OAExBqhF,SAAU,CACR6S,MAAQnU,IAAS,IAAMA,GAAK/rF,MAG9BktF,SAAU,CACRgT,MAAQnU,IAASpoF,GAAKooF,GAAK2N,YAAa,SAE1CvM,oBAAqB,CACnB+S,MAAMnU,IACJ,MAAMwV,GAAUC,GAAK,IAAK79F,GAAKooF,GAAK8O,oBAAqB,MAAO,KAC1D5oF,GAAStO,GACb,CACEooF,GAAK6O,UACLj3F,GAAK,CAACooF,GAAK/rF,KAAMuhG,KACjB59F,GAAKooF,GAAK+O,WAAY,MAExB,KAIF,OAAmB,UAAX7oF,GAAqB,GAAKA,GAAS,KAAO85E,GAAKgP,YACzD,GAEF3N,mBAAoB,CAClB8S,MAAOA,EAAG3E,YAAU1vF,QAAMw1B,gBAAcy5D,iBACtCS,GACA,KACA1vF,GACA21F,GAAK,MAAOngE,IACZmgE,GAAK,IAAK79F,GAAKm3F,GAAY,OAE/BxN,aAAc,CACZ4S,MAAOA,EAAGrE,iBAAiBzkF,GAAMykF,KAEnCtO,MAAO,CACL2S,OAAQhE,SAAOl8F,QAAMkW,UAAWupB,GAAMq7D,cAAYC,kBAChD,MAAM9oF,GAASuvF,GAAK,GAAItF,GAAO,MAAQl8F,GACvC,IAAIyhG,GAAWxvF,GAASuvF,GAAK,IAAK79F,GAAK87B,GAAM,MAAO,KAEpD,OAAIgiE,GAAStyF,OA5CK,KA6ChBsyF,GAAWxvF,GAASuvF,GAAK,MAAOpN,GAAOzwF,GAAK87B,GAAM,OAAQ,QAGrD97B,GAAK,CAAC89F,GAAU99F,GAAKm3F,GAAY,KAAMC,IAAe,IAC/D,GAEFvN,SAAU,CACR0S,MAAOA,EAAGlgG,QAAMgM,YAAYhM,GAAO,KAAOgM,IAG5CyhF,eAAgB,CACdyS,MAAOA,EAAGlgG,QAAM86F,iBACd,MAAQ96F,GAAOwhG,GAAK,IAAK79F,GAAKm3F,GAAY,OAE9CpN,eAAgB,CACdwS,MAAOA,EAAGxD,iBAAe5B,cAAYC,mBACnCp3F,GACE,CACE,MACA69F,GAAK,MAAO9E,IACZ/4F,GAAKm3F,GAAY,KACjBC,IAEF,MAGNpN,mBAAoB,CAClBuS,MAAOA,EACHlgG,QAAM08F,iBAAe7B,uBAAqBC,cAAYC,mBAGvD,YAAW/6F,KAAOwhG,GAAK,IAAK79F,GAAKk3F,GAAqB,MAAO,WACxD6B,MAAiB8E,GAAK,GAAI79F,GAAKm3F,GAAY,KAAM,OACvDC,IAGJnN,SAAU,CACRsS,MAAOA,EAAGl0F,YAAYA,IAExB6hF,WAAY,CACVqS,MAAOA,EAAGl0F,YAAYA,IAExB8hF,YAAa,CACXoS,MAAOA,EAAGl0F,SAAOoL,MAAOsqF,MACtBA,GVsCC,SAASC,GAAiB31F,GAAOga,IACtC,MAAM47E,GAAe51F,GAAMtN,QAAQ,OAAQ,SAErCisF,GAAQiX,GAAapjE,MAAM,gBAC3BqjE,GAAgC,IAAjBlX,GAAMx7E,OAErB2yF,GACJnX,GAAMx7E,OAAS,GACfw7E,GACGxzE,MAAM,GACNm9B,MAAOy1C,IAAyB,IAAhBA,GAAK56E,QAAgBskF,GAAa1J,GAAK1J,WAAW,KAEjE0hB,GAA0BH,GAAa/oB,SAAS,SAEhDmpB,GAAmBh2F,GAAM6sE,SAAS,OAASkpB,GAC3CE,GAAmBj2F,GAAM6sE,SAAS,MAClCqpB,GAAuBF,IAAoBC,GAC3CE,KACU,MAAZn8E,IAA0CA,GAAQo8E,aAClDP,IACA71F,GAAMmD,OAAS,IACf+yF,IACAJ,IACAC,IACJ,IAAIjsF,GAAS,GAEb,MAAMusF,GAAqBR,IAAgBpO,GAAaznF,GAAMq0E,WAAW,IAEzE,OAAK8hB,KAAyBE,IAAuBP,MACnDhsF,IAAU,MAGZA,IAAU8rF,IAENO,IAAwBD,MAC1BpsF,IAAU,MAGL,MAAQA,GAAS,KAC1B,CU7EsB6rF,CAAiB31F,IFhGhC,SAASs2F,GAAY3iB,IAC1B,MAAQ,IAAGA,GAAIjhF,QAAQ+gG,GAAeC,MACxC,CE8FgD4C,CAAYt2F,KAE1D+hF,aAAc,CACZmS,MAAOA,EAAGl0F,YAAaA,GAAQ,OAAS,SAE1CgiF,UAAW,CACTkS,MAAOA,IAAM,QAEfjS,UAAW,CACTiS,MAAOA,EAAGl0F,YAAYA,IAExBkiF,UAAW,CACTgS,MAAOA,EAAGj4D,aAAa,IAAMtkC,GAAKskC,GAAQ,MAAQ,KAEpDkmD,YAAa,CACX+R,MAAOA,EAAG7xD,aAAa,IAAM1qC,GAAK0qC,GAAQ,MAAQ,KAEpD+/C,YAAa,CACX8R,MAAOA,EAAGlgG,QAAMgM,YAAYhM,GAAO,KAAOgM,IAG5CqiF,UAAW,CACT6R,MAAOA,EAAGlgG,QAAMkW,UAAWupB,MACzB,IAAMz/B,GAAOwhG,GAAK,IAAK79F,GAAK87B,GAAM,MAAO,MAG7C6uD,UAAW,CACT4R,MAAOA,EAAGlgG,WAAWA,IAEvBuuF,SAAU,CACR2R,MAAOA,EAAGr0F,WAAW,IAAMA,GAAO,KAEpC2iF,YAAa,CACX0R,MAAOA,EAAGr0F,WAAWA,GAAO,KAG9B4iF,iBAAkB,CAChByR,MAAOA,EAAGvmD,eAAamhD,cAAYyC,qBACjCiE,GAAK,GAAI7nD,GAAa,MACtBh2C,GAAK,CAAC,SAAUA,GAAKm3F,GAAY,KAAM1jF,GAAMmmF,KAAkB,MAEnE7O,wBAAyB,CACvBwR,MAAOA,EAAGtF,aAAW/uF,WAAW+uF,GAAY,KAAO/uF,IAErD8iF,qBAAsB,CACpBuR,MAAOA,EAAGvmD,eAAa35C,QAAM86F,iBAC3B0G,GAAK,GAAI7nD,GAAa,MACtBh2C,GAAK,CAAC,SAAU3D,GAAM2D,GAAKm3F,GAAY,MAAO,MAElDlM,qBAAsB,CACpBsR,MAAOA,EAAGvmD,eAAa35C,QAAMy9F,cAAY3C,cAAYzsD,aACnDmzD,GAAK,GAAI7nD,GAAa,MACtBh2C,GACE,CACE,OACA3D,GACAwhG,GAAK,cAAe79F,GAAK85F,GAAY,QACrC95F,GAAKm3F,GAAY,KACjB1jF,GAAMi3B,KAER,MAGNwgD,gBAAiB,CACfqR,MAAOA,EAAGvmD,eAAa35C,QAAMkW,UAAWupB,GAAM5zB,QAAMivF,iBAClD0G,GAAK,GAAI7nD,GAAa,MACtB35C,IACCuiG,GAAkB9iE,IACf+hE,GAAK,MAAOpN,GAAOzwF,GAAK87B,GAAM,OAAQ,OACtC+hE,GAAK,IAAK79F,GAAK87B,GAAM,MAAO,MAChC,KACA5zB,GACA21F,GAAK,IAAK79F,GAAKm3F,GAAY,OAE/BhM,qBAAsB,CACpBoR,MAAOA,EAAGvmD,eAAa35C,QAAM6L,QAAMw1B,gBAAcy5D,iBAC/C0G,GAAK,GAAI7nD,GAAa,MACtBh2C,GACE,CAAC3D,GAAO,KAAO6L,GAAM21F,GAAK,KAAMngE,IAAe19B,GAAKm3F,GAAY,MAChE,MAGN/L,wBAAyB,CACvBmR,MAAOA,EAAGvmD,eAAa35C,QAAMy9F,cAAY3C,cAAYzsD,aACnDmzD,GAAK,GAAI7nD,GAAa,MACtBh2C,GACE,CACE,YACA3D,GACAwhG,GAAK,cAAe79F,GAAK85F,GAAY,QACrC95F,GAAKm3F,GAAY,KACjB1jF,GAAMi3B,KAER,MAGN2gD,oBAAqB,CACnBkR,MAAOA,EAAGvmD,eAAa35C,QAAM86F,cAAYr3D,YACvC+9D,GAAK,GAAI7nD,GAAa,MACtBh2C,GACE,CAAC,QAAS3D,GAAM2D,GAAKm3F,GAAY,KAAM0G,GAAK,KAAM79F,GAAK8/B,GAAO,SAC9D,MAGNwrD,mBAAoB,CAClBiR,MAAOA,EAAGvmD,eAAa35C,QAAM86F,cAAY7yD,aACvCu5D,GAAK,GAAI7nD,GAAa,MACtBh2C,GAAK,CAAC,OAAQ3D,GAAM2D,GAAKm3F,GAAY,KAAM1jF,GAAM6wB,KAAU,MAE/DinD,oBAAqB,CACnBgR,MAAOA,EAAGvmD,eAAa35C,QAAM86F,iBAC3B0G,GAAK,GAAI7nD,GAAa,MAAQh2C,GAAK,CAAC3D,GAAM2D,GAAKm3F,GAAY,MAAO,MAEtE3L,0BAA2B,CACzB+Q,MAAOA,EAAGvmD,eAAa35C,QAAM86F,cAAYzsD,aACvCmzD,GAAK,GAAI7nD,GAAa,MACtBh2C,GAAK,CAAC,QAAS3D,GAAM2D,GAAKm3F,GAAY,KAAM1jF,GAAMi3B,KAAU,MAEhE+gD,oBAAqB,CACnB8Q,MAAOA,EAAGvmD,eAAa35C,QAAMkW,UAAWupB,GAAMo/D,cAAY5S,gBACxDuV,GAAK,GAAI7nD,GAAa,MACtB,cACA35C,IACCuiG,GAAkB9iE,IACf+hE,GAAK,MAAOpN,GAAOzwF,GAAK87B,GAAM,OAAQ,OACtC+hE,GAAK,IAAK79F,GAAK87B,GAAM,MAAO,OAC/Bo/D,GAAa,cAAgB,IAC9B,OACAl7F,GAAKsoF,GAAW,QAEpBoD,gBAAiB,CACf6Q,MAAOA,EAAGpF,cAAYyC,qBACpB55F,GACE,CAAC,gBAAiBA,GAAKm3F,GAAY,KAAM1jF,GAAMmmF,KAC/C,MAGNjO,oBAAqB,CACnB4Q,MAAOA,EAAGlgG,QAAM86F,iBACdn3F,GAAK,CAAC,gBAAiB3D,GAAM2D,GAAKm3F,GAAY,MAAO,MAEzDvL,oBAAqB,CACnB2Q,MAAOA,EAAGlgG,QAAMy9F,cAAY3C,cAAYzsD,aACtC1qC,GACE,CACE,cACA3D,GACAwhG,GAAK,cAAe79F,GAAK85F,GAAY,QACrC95F,GAAKm3F,GAAY,KACjB1jF,GAAMi3B,KAER,MAGNmhD,uBAAwB,CACtB0Q,MAAOA,EAAGlgG,QAAMy9F,cAAY3C,cAAYzsD,aACtC1qC,GACE,CACE,mBACA3D,GACAwhG,GAAK,cAAe79F,GAAK85F,GAAY,QACrC95F,GAAKm3F,GAAY,KACjB1jF,GAAMi3B,KAER,MAGNohD,mBAAoB,CAClByQ,MAAOA,EAAGlgG,QAAM86F,cAAYr3D,YAC1B9/B,GACE,CACE,eACA3D,GACA2D,GAAKm3F,GAAY,KACjB0G,GAAK,KAAM79F,GAAK8/B,GAAO,SAEzB,MAGNisD,kBAAmB,CACjBwQ,MAAOA,EAAGlgG,QAAM86F,cAAY7yD,aAC1BtkC,GAAK,CAAC,cAAe3D,GAAM2D,GAAKm3F,GAAY,KAAM1jF,GAAM6wB,KAAU,MAEtE0nD,yBAA0B,CACxBuQ,MAAOA,EAAGlgG,QAAM86F,cAAYzsD,aAC1B1qC,GAAK,CAAC,eAAgB3D,GAAM2D,GAAKm3F,GAAY,KAAM1jF,GAAMi3B,KAAU,OAQzE,SAAS1qC,GAAK6+F,GAAYC,GAAY,IACpC,IAAIC,GAEJ,OAGuD,QAH/CA,GAGFF,IAAW/hG,OAAQ4L,IAAMA,IAAG1I,KAAK8+F,WACX,IAA1BC,GACEA,GACA,EACN,CAKA,SAAStrF,GAAMygE,IACb,OAAO2pB,GAAK,MAAOpN,GAAOzwF,GAAKk0E,GAAO,OAAQ,MAChD,CAKA,SAAS2pB,GAAKl0B,GAAOq1B,GAAa/V,GAAM,IACtC,OAAsB,MAAf+V,IAAuC,KAAhBA,GAC1Br1B,GAAQq1B,GAAc/V,GACtB,EACN,CAEA,SAASwH,GAAOzU,IACd,OAAO6hB,GAAK,KAAM7hB,GAAIjhF,QAAQ,MAAO,QACvC,CAEA,SAAS6jG,GAAkBC,IACzB,IAAII,GAKJ,OAGwD,QAHhDA,GAGFJ,IAAWhoF,KAAMmlE,IAAQA,GAAI/iF,SAAS,cACrB,IAArBgmG,IACEA,EAEN,CC9UA,MAAMC,GAAwBjhG,KAC1B,IAAIkhG,GACJ,MAAMC,GAAuBnhG,GAAS83F,YAAYj5F,OAAQkmD,IAAoC,wBAArBA,GAAWmmC,MACpF,OAAoC,IAAhCiW,GAAqB5zF,SACrB2zF,GAAgBC,GAAqB,IAAI/iG,MAAMgM,OAE5C82F,IAEEE,GAA0BphG,KACnC,GAAyB,iBAAdA,GAAuB,CAC9B,IAAIkhG,GACJ,IACI,MAAMG,GAAiBpzE,GAAMjuB,IAC7BkhG,GAAgBD,GAAqBI,GACzC,OAEI,CAEJ,MAAO,CAAEC,MAAOthG,GAAUkhG,iBAC9B,CACA,MAAMA,GAAgBD,GAAqBjhG,IAC3C,MAAO,CAAEshG,MAAO/C,GAAMv+F,IAAWkhG,iBAAc,ECzB5C,MAAMK,WAAoBpkF,MAC7BzlB,YAAYooB,GAAUvJ,IAKlB7a,MAJiB,GAAE6lG,GAAYC,eAAe1hF,QAAcmI,KAAKC,UAAU,CACvEpI,YACAvJ,gBAGJvK,OAAOkzB,eAAernC,KAAM0pG,GAAYnlE,WACxCvkC,KAAKioB,SAAWA,GAChBjoB,KAAK0e,QAAUA,GAEyB,mBAA7B4G,MAAMmzD,mBACbnzD,MAAMmzD,kBAAkBz4E,KAAM0pG,GAEtC,CACA,qBAAOC,CAAe1hF,IAClB,OAAOA,GAASmwB,SAAS,IAAIzM,SAAY,wBAAuB1jB,GAASuoB,SAC7E,+BCRJ,MAAMo5D,GAAkBhqC,KACpB,IAAIiqC,GAAW,CAAC,EAChB,OAAIjqC,YACYkqC,QAAa,KAAclqC,cAAmBkqC,SACrDC,IAAcA,YAAsBnqC,cAAmBmqC,WACxDF,GCViCjqC,MACzC,MAAM7/C,GAAI,CAAC,EACX6/C,UAAQ3/C,QAAQ,CAACqM,GAAGiZ,MAChBxlB,GAAEwlB,IAAKjZ,KAEJvM,IDKYiqF,CAA6BpqC,IAEnCtiD,MAAMqnB,QAAQi7B,IACnBA,GAAQ3/C,QAAQ,EAAE1Z,GAAMgM,OAChBhM,SAAkB1D,IAAV0P,KACRs3F,GAAStjG,IAAQgM,MAKzBs3F,GAAWjqC,IAGZiqC,IAKLI,GAAc/jB,IAAQA,GAAIjhF,QAAQ,sBAAwB,KAAI+5E,OA8B9DkrB,GAA2BC,IAAM,eAAAnuF,MAAA7b,KAAK,UAAOsgE,IAC/C,MAAQv9D,OAAKumG,SAAOW,aAAWf,iBAAen3F,SAAOm4F,gBAAcC,eAAe7pC,GAC5Eb,GAAU,IAAKa,GAAOb,SAC5B,IACI15C,GADAqkF,GAAe,GAEH,SAAZJ,IACAjkF,GAAOskF,GAAkBf,GAAOW,GAAWf,GAAegB,GAAaI,gBAClD,iBAAVvkF,KAEP05C,GAAS,gBAAkB,qBAK/B2qC,GAxCoB9pC,MACxB,IAAKnjD,MAAMqnB,QAAQ87B,GAAOgpC,OAAQ,CAC9B,MAAMiB,GAAUjqC,GACVkqC,GAAS,CAAE,SAAQC,mBAAmBX,GAAWS,GAAQjB,WAC/D,OAAIhpC,GAAO2pC,WACPO,GAAO1sF,KAAM,aAAY2sF,mBAAmBF,GAAQD,eAAep6E,UAAUq6E,GAAQN,eAErFM,GAAQrB,eACRsB,GAAO1sF,KAAM,iBAAgB2sF,mBAAmBF,GAAQrB,kBAErDsB,GAAOzgG,KAAM,IACxB,CACA,UAAWu2D,GAAO2pC,UAAe,MAAe9sF,MAAMqnB,QAAQ87B,GAAO2pC,WACjE,MAAM,IAAI9kF,MAAO,gEAGrB,MAAMolF,GAAUjqC,GACVoqC,GAAUpqC,GAAOgpC,MAAMxsF,OAAO,CAAC4uB,GAAKi/D,GAAcnwF,MACpDkxB,GAAI5tB,KAAK,CACLwrF,MAAOQ,GAAWa,IAClBV,UAAWM,GAAQN,UAAYM,GAAQD,eAAep6E,UAAUq6E,GAAQN,UAAUzvF,UAAU9X,IAEzFgpC,IACR,IACH,MAAQ,SAAQ++D,mBAAmBF,GAAQD,eAAep6E,UAAUw6E,MAAU,EAgB5DE,CAAmB,CAC7BtB,SACAW,aACAf,iBACAoB,eAAgBJ,GAAaI,gBAAkBza,KAGvD,MAAMhjE,GAAO,CACTm9E,UACAvqC,WACA15C,WACGmkF,IAEP,IAAIW,GAAc9nG,GACd+nG,GAAej+E,GACnB,GAAIs9E,GAAY,CACZ,MAAMjuF,SAAe1E,QAAQC,QAAQ0yF,GAAW,IAAKt9E,GAAM9pB,OAAKmmG,iBAAee,iBACvElnG,IAAKgoG,MAAWC,IAAY9uF,GACpC2uF,GAAcE,GACdD,GAAeE,EACnB,CACA,OAAIZ,KACAS,GAAe,GAAEA,MAAeT,YAEvBr4F,GAAM84F,GAAaC,GACpC,GAAC,gBAAA1uF,IAAA,OAAAP,GAAAQ,MAAAxc,KAAAyc,UAAA,EAvCsC,GA2CvC,MAAM2uF,GACFvrG,YAAYqD,GAAKmoG,GAAgB,CAAC,GAAG,IAAAnrG,GAAAF,KACjCA,KAAKkD,IAAMA,GACXlD,KAAKqrG,cAAgBA,GAIrBrrG,KAAKsrG,YAAUnrG,OAAG,aAAU6lC,IACxB,MAAOulE,GAAgBnB,GAAWoB,IAAkBxlE,GAC9CylE,GExGiBC,EAACH,GAAgBnB,GAAWoB,KACpDD,GAAe9B,MAChB8B,GACA,CACE9B,MAAO8B,GACPnB,UAAWA,GACXoB,eAAgBA,GAChBl7E,YAAQztB,GFiGkB6oG,CAAoBH,GAAgBnB,GAAWoB,KACjE5rC,WAAS1tD,SAAQy5F,GAAYxB,UAAU,OAAOyB,qBAAmBC,yBAAuBxB,IAAiBnqG,GAAKmrG,eAC9GnoG,QAAQhD,QACiB2C,IAA7B4oG,GAAkBn7E,SAClB+5E,GAAa/5E,OAASm7E,GAAkBn7E,QAE5C,MAAQ+4E,kBAAkBE,GAAuBkC,GAAkBhC,OACnE,OAAOqC,GAAY,CACf5oG,OACAumG,MAAOgC,GAAkBhC,MACzBW,UAAWqB,GAAkBrB,UAC7BxqC,QAAS,IACFgqC,GAAemC,GAAensC,QAC9BgqC,GAAe6B,GAAkBD,iBAExCnC,iBACAn3F,SACAi4F,UACAE,gBACAC,WAAYsB,KAEXvrG,KAAM4nB,KACH4jF,IACAA,GAAmB5jF,IAEhBA,KAEN1f,MAAOd,KACR,MAAIokG,IACAA,GAAmBpkG,IAEjBA,IAEd,EACJ,CACMiX,QAAQstF,MAAsBC,IAA4B,IAAApkG,GAAA7H,KAAA,SAAAG,KAAA,YAC5D,MAAOiqG,GAAWoB,IAAkBS,GAC9BC,GEvJkBC,EAACH,GAAmB5B,GAAWoB,KACpDQ,GAAkB7jG,SACnB6jG,GACA,CACE7jG,SAAU6jG,GACV5B,UAAWA,GACXoB,eAAgBA,GAChBl7E,YAAQztB,GFgJWspG,CAAiBH,GAAmB5B,GAAWoB,KAC9D5rC,WAAS1tD,SAAQy5F,GAAYxB,UAAU,OAAOyB,qBAAmBC,yBAAuBxB,IAAiBxiG,GAAKwjG,eAC9GnoG,QAAQ2E,QACchF,IAA1BqpG,GAAe57E,SACf+5E,GAAa/5E,OAAS47E,GAAe57E,QAEzC,MAAQm5E,SAAOJ,kBAAkBE,GAAuB2C,GAAe/jG,UACvE,OAAO2jG,GAAY,CACf5oG,OACAumG,SACAW,UAAW8B,GAAe9B,UAC1BxqC,QAAS,IACFgqC,GAAemC,GAAensC,QAC9BgqC,GAAesC,GAAeV,iBAErCnC,iBACAn3F,SACAi4F,UACAE,gBACAC,WAAYsB,KAEXvrG,KAAM4nB,KACH4jF,IACAA,GAAmB5jF,IAEhBA,GAASxiB,OAEf8C,MAAOd,KACR,MAAIokG,IACAA,GAAmBpkG,IAEjBA,IACP,EAlCyD,EAmChE,CAEA2kG,cAAcC,GAAoBb,IAC9B,MAAMc,GEvKuBC,EAACF,GAAoBb,KAC/Ca,GAAmBG,UACpBH,GACA,CACEG,UAAWH,GACXb,eAAgBA,GAChBl7E,YAAQztB,GFiKgB0pG,CAAsBF,GAAoBb,KAC9D5rC,cAAYyqC,IAAiBrqG,KAAKqrG,mBACPxoG,IAA/BypG,GAAoBh8E,SACpB+5E,GAAa/5E,OAASg8E,GAAoBh8E,QAE9C,MAAMm8E,GAAUH,GAAoBE,UAAUnmG,IAAI,EAAG8B,eAAeohG,GAAuBphG,IAAUshG,OAC/FW,GAAYkC,GAAoBE,UAAUnmG,IAAI,EAAG+jG,gBAAgBA,IACvE,OAAO0B,GAAY,CACf5oG,IAAKlD,KAAKkD,IACVumG,MAAOgD,GAEPrC,aACAxqC,QAAS,IACFgqC,GAAemC,GAAensC,QAC9BgqC,GAAe0C,GAAoBd,iBAE1CnC,mBAAexmG,EACfqP,MAAOlS,KAAKqrG,cAAcn5F,OAASy5F,GACnCxB,OAAQnqG,KAAKqrG,cAAclB,QAAW,OACtCE,gBACAC,WAAYtqG,KAAKqrG,cAAcO,oBAE9BvrG,KAAM4nB,KACHjoB,KAAKqrG,cAAcQ,oBACnB7rG,KAAKqrG,cAAcQ,mBAAmB5jF,IAEnCA,GAASxiB,OAEf8C,MAAOd,KACR,MAAIzH,KAAKqrG,cAAcQ,oBACnB7rG,KAAKqrG,cAAcQ,mBAAmBpkG,IAEpCA,IAEd,CACApE,WAAWu8D,IACP,OAAA5/D,KAAKqrG,cAAczrC,QAAUA,GACtB5/D,IACX,CAIA0sG,UAAUloE,GAAKjyB,IACX,MAAQqtD,YAAY5/D,KAAKqrG,cACzB,OAAIzrC,GAGAA,GAAQp7B,IAAOjyB,GAGfvS,KAAKqrG,cAAczrC,QAAU,CAAEyT,CAAC7uC,IAAMjyB,IAEnCvS,IACX,CAIA2sG,YAAYp6F,IACR,OAAAvS,KAAKkD,IAAMqP,GACJvS,IACX,EAEJ,MAAM8rG,GAAW,eAAAhvF,MAAA3c,KAAG,UAAOsgE,IACvB,MAAQgpC,SAAOW,aAAWC,iBAAiB5pC,GACrCmsC,GAAU1C,GC3PMhkB,KAAQA,GAAI1yD,cD2PMq5E,CAAUpsC,GAAO0pC,QAAW,SAC9D2C,GAAkBxvF,MAAMqnB,QAAQ87B,GAAOgpC,OACvCxhF,SAAiB2kF,GAAQnsC,IACzBpkD,SAAeiwE,GAAUrkE,GAAUoiF,GAAaI,gBAAkBza,IAClE+c,GAA2BzvF,MAAMqnB,QAAQtoB,KACxCA,GAAO0E,KAAK,EAAGtb,YAAYA,MACpB4W,GAAO5W,KACfunG,GAAgC1vF,MAAMqnB,QAAQtoB,MAC/CA,GAAO+7B,QACP96B,MAAMqnB,QAAQtoB,GAAO+7B,UAAY/7B,GAAO+7B,OAAO1iC,QAClB,QAA9B20F,GAAa4C,aACiB,WAA9B5C,GAAa4C,YACjB,GAAIhlF,GAAS8Y,IAAMisE,IAAiCD,GAA0B,CAE1E,MAAQ30D,OAAQzwC,MAAMulG,KAAS5vF,MAAMqnB,QAAQtoB,IAAUA,IACjD5W,GAAqC,WAA9B4kG,GAAa4C,YAA2BC,GAAO7wF,GAG5D,MAAO,IAFcywF,GAAkB,CAAErnG,SAASA,GAI9Cm6D,QAAS33C,GAAS23C,QAClBpvB,OAAQvoB,GAASuoB,OAEzB,CAOI,MAAM,IAAIk5D,GAEV,IAPuC,iBAAZrtF,GACrB,CACE5U,MAAO4U,IAETA,GAGYm0B,OAAQvoB,GAASuoB,OAAQovB,QAAS33C,GAAS23C,SAAW,CAAE6pC,SAAOW,cAEzF,GAAC,gBApCgBvtF,IAAA,OAAAC,GAAAN,MAAAxc,KAAAyc,UAAA,KA6GX+tF,GAAoBA,CAACf,GAAOW,GAAWf,GAAeoB,MACxD,MAAM0C,GAAkB1C,IAAkBza,GAC1C,IAAK1yE,MAAMqnB,QAAQ8kE,IACf,OAAO0D,GAAgB98E,UAAU,CAAEo5E,SAAOW,aAAWf,mBAEzD,UAAWe,GAAe,MAAe9sF,MAAMqnB,QAAQylE,IACnD,MAAM,IAAI9kF,MAAO,uEAGrB,MAAMulF,GAAUpB,GAAMxsF,OAAO,CAAC4uB,GAAKi/D,GAAcnwF,MAC7CkxB,GAAI5tB,KAAK,CAAEwrF,MAAOqB,GAAcV,UAAWA,GAAYA,GAAUzvF,SAAS9X,IACnEgpC,IACR,IACH,OAAOshE,GAAgB98E,UAAUw6E,GAAO,EAEtCve,GAAS,eAAAjtE,MAAAlf,KAAG,UAAO8nB,GAAUwiF,IAC/B,IAAI2C,GAMJ,OALAnlF,GAAS23C,QAAQ3/C,QAAQ,CAAC1N,GAAOiyB,MACF,iBAAvBA,GAAIhvB,gBACJ43F,GAAc76F,MAGlB66F,KACCA,GAAY53F,cAAc63F,WAAY,qBACnCD,GAAY53F,cAAc63F,WAAY,6BACtCD,GAAY53F,cAAc63F,WAAY,sCACnC5C,GAAer0E,YAAYnO,GAASvW,QAGpCuW,GAASvW,MAExB,GAAC,gBAhBcyN,GAAAM,IAAA,OAAAJ,GAAA7C,MAAAxc,KAAAyc,UAAA,KAiBTsvF,GAAkBx5F,IACK,mBAAXA,GAAuBA,KAAUA,mBGrY/C+6F,GAAW,IAAInwF,IACfowF,GAAoB,IAAIpwF,IACxBqwF,IAAwB,EACxBC,IAAgC,EACpC,SAASC,GAAUC,IACf,OAAOA,GAAO1oG,QAAQ,UAAW,KAAK+5E,MAC1C,CAqDA,SAAS0gB,GAAcz3D,IACnB,IAAI2lE,GAAWF,GAAUzlE,IACzB,IAAKqlE,GAAS/W,IAAIqX,IAAW,CACzB,IAAIC,GAASz3E,GAAM6R,GAAQ,CACvBwlE,8BAA+BA,GAC/BrK,6BAA8BqK,KAElC,IAAKI,IAA0B,aAAhBA,GAAOxa,KAClB,MAAM,IAAI/tE,MAAM,iCAEpBgoF,GAASpwF,IAAI0wF,GA7BrB,SAASE,GAAS5mF,IACd,IAAI6mF,GAAU,IAAInnE,IAAI1f,GAAI+4E,aAC1B8N,GAAQ9tF,QAAQ,SAAUqyE,IAClBA,GAAKC,YACED,GAAKC,IAChBp+E,OAAOmzB,KAAKgrD,IAAMryE,QAAQ,SAAUukB,IAChC,IAAIjyB,GAAQ+/E,GAAK9tD,IACbjyB,IAA0B,iBAAVA,IAChBw7F,GAAQv1D,IAAIjmC,GAEpB,EACJ,GACA,IAAIggF,GAAMrrE,GAAIqrE,IACd,OAAIA,YACOA,GAAIU,kBACJV,GAAIW,UAERhsE,EACX,CAW+B4mF,CA3D/B,SAASE,GAAiBrH,IACtB,IAAIsH,GAAW,IAAIrnE,IACfq5D,GAAc,GAClB0G,UAAI1G,YAAYhgF,QAAQ,SAAUiuF,IAC9B,GAAgC,uBAA5BA,GAAmB7a,KAA+B,CAClD,IAAI8a,GAAeD,GAAmB3nG,KAAKgM,MACvC67F,GAThB,SAASC,GAAgB9b,IACrB,OAAOmb,GAAUnb,GAAItqD,OAAO/hB,KAAKu7D,UAAU8Q,GAAI1e,MAAO0e,GAAIY,KAC9D,CAO4Bkb,CAAgBH,GAAmB3b,KAC/C+b,GAAef,GAAkBzqG,IAAIqrG,IACrCG,KAAiBA,GAAa/X,IAAI6X,IAC9BZ,IACA36F,QAAQ3H,KAAK,+BAAiCijG,GAAe,iMAK3DG,IACNf,GAAkBrwF,IAAIixF,GAAcG,GAAe,IAAI1nE,KAE3D0nE,GAAa91D,IAAI41D,IACZH,GAAS1X,IAAI6X,MACdH,GAASz1D,IAAI41D,IACbnO,GAAYhiF,KAAKiwF,IAEzB,MAEIjO,GAAYhiF,KAAKiwF,GAEzB,IAAC,EACMK,UAASA,OAAS,CAAC,EAAG5H,IAAM,CAAE1G,YAAaA,IACtD,CA8BwC+N,CAAiBH,KACrD,CACA,OAAOP,GAASxqG,IAAI8qG,GACxB,CACO,SAASY,GAAIC,IAEhB,QADIzoE,GAAO,GACF0oE,GAAK,EAAGA,GAAKjyF,UAAU/G,OAAQg5F,KACpC1oE,GAAK0oE,GAAK,GAAKjyF,UAAUiyF,IAEL,iBAAbD,KACPA,GAAW,CAACA,KAEhB,IAAIpyF,GAASoyF,GAAS,GACtBzoE,UAAK/lB,QAAQ,SAAU0uF,GAAKlxF,IAEpBpB,IADAsyF,IAAoB,aAAbA,GAAItb,KACDsb,GAAIpc,IAAItqD,OAAO/hB,KAGfyoF,GAEdtyF,IAAUoyF,GAAShxF,GAAI,EAC3B,GACOiiF,GAAcrjF,GACzB,CAcA,IAOWuyF,GAPPxkE,OACKokE,IAMEI,GAERJ,KAAQA,GAAM,CAAC,IADRA,IAAMpkE,OAAYwkE,GAAMC,YArB3B,SAASA,KACZvB,GAASr7D,QACTs7D,GAAkBt7D,OACtB,EAkBoE28D,GAAME,wBAjBnE,SAASA,KACZtB,IAAwB,CAC5B,EAeoIoB,GAAMG,oCAdnI,SAASA,KACZtB,IAAgC,CACpC,EAY4NmB,GAAMI,qCAX3N,SAASA,KACZvB,IAAgC,CACpC,EAWAe,GAAIngE,QAAamgE,GACjB,MC8LaS,GD9LET,EC8LoBA;;;;;;;EAgB7BU,GAAqCA,CACzCv7C,GACAw7C,GACAC,GACAC,KACG17C,KC2sBQ27C,GF95BEd,EE85BuBA;;;;;;;;;;;;;;;EAgBzBe,GF96BEf,EE86BsBA;;;;;;;;;;EAWxBgB,GFz7BEhB,EEy7BsCA;;;;;;;;;;;;;EAcxCiB,GFv8BEjB,EEu8ByBA;;;;;;EAO3BkB,GF98BElB,EE88BqBA;;;;;;EAOvBmB,GFr9BEnB,EEq9BcA;;;;;;EAOhBoB,GF59BEpB,EE49B0BA;;;;;;;;;;;EAoBnCU,GAAqCA,CACzCv7C,GACAw7C,GACAC,GACAC,KACG17C,KCrmCL,SAASk8C,GACP9sG,GACAiqD,IAEA,MAAM8iD,GAAS,IAAI1E,GAAcp+C,IACjC8iD,UAAOpD,UAAU,gBAAiB,UAAU3pG,MDkmCxC,SAAUgtG,GACdD,GACAE,GAAkCd,IAElC,MAAO,CACLe,gBACE7F,GACAoB,KAEOwE,GACJE,IACCJ,GAAOpxF,QACL4wF,GACAlF,GACA,IAAKoB,MAAmB0E,KAE5B,iBACA,QACA9F,IAGJ+F,eACE/F,GACAoB,KAEOwE,GACJE,IACCJ,GAAOpxF,QACL6wF,GACAnF,GACA,IAAKoB,MAAmB0E,KAE5B,gBACA,WACA9F,IAGJgG,+BACEhG,GACAoB,KAEOwE,GACJE,IACCJ,GAAOpxF,QACL8wF,GACApF,GACA,IAAKoB,MAAmB0E,KAE5B,gCACA,WACA9F,IAGJiG,kBACEjG,GACAoB,KAEOwE,GACJE,IACCJ,GAAOpxF,QACL+wF,GACArF,GACA,IAAKoB,MAAmB0E,KAE5B,mBACA,WACA9F,IAGJkG,cACElG,GACAoB,KAEOwE,GACJE,IACCJ,GAAOpxF,QAA2BgxF,GAAsBtF,GAAW,IAC9DoB,MACA0E,KAEP,eACA,QACA9F,IAGJr7F,OACEq7F,GACAoB,KAEOwE,GACJE,IACCJ,GAAOpxF,QAAoBixF,GAAevF,GAAW,IAChDoB,MACA0E,KAEP,QACA,QACA9F,IAGJluF,mBACEkuF,GACAoB,KAEOwE,GACJE,IACCJ,GAAOpxF,QACLkxF,GACAxF,GACA,IAAKoB,MAAmB0E,KAE5B,oBACA,QACA9F,IAIR,CCrtCSmG,CAAmBT,GAC5B,CCOO,IAAMU,GAA2B,MAAlC,MAAOA,GAQX3wG,YACUC,GACAmgE,IAAoC,IAAA//D,GAAAF,KADpCA,KAAAF,gBACAE,KAAAigE,oBAJFjgE,KAAAywG,eAAiB,oBACjBzwG,KAAA0wG,iBAAmB,sBAMnB1wG,KAAA2wG,eAAiB,KAClB3wG,KAAK4wG,gBACR5wG,KAAK4wG,cAAgBf,GACnB7vG,KAAKF,cAAckD,WACnBhD,KAAK6wG,wBAGF7wG,KAAK4wG,eAGN5wG,KAAA8wG,aAAe,KAChB9wG,KAAK+wG,cACR/wG,KAAK+wG,YD9BX,SAASC,GACPjuG,GACAiqD,IAGA,OFuTI,SAAU+iD,GACdD,GACAE,GAAkCd,IAElC,MAAO,CACL+B,aACE7G,GACAoB,KAEOwE,GACJE,IACCJ,GAAOpxF,QAA0BuwF,GAAqB7E,GAAW,IAC5DoB,MACA0E,KAEP,cACA,QACA9F,IAIR,CE5US8G,CADQ,IAAI9F,GAAcp+C,IAEnC,CCwByBgkD,CACjBhxG,KAAKF,cAAckD,WACnBhD,KAAKmxG,sBAGFnxG,KAAK+wG,aAGN/wG,KAAAmxG,kBAAoB,IAExBnxG,KAAKigE,iBAAiBr7D,OAAOG,iBAAiBq9D,mBAC9CpiE,KAAKywG,eAGDzwG,KAAA6wG,oBAAsB,IAE1B7wG,KAAKigE,iBAAiBr7D,OAAOG,iBAAiBq9D,mBAC9CpiE,KAAK0wG,iBAgDF1wG,KAAAoxG,gBAAe,eAAAp1F,MAAA7b,KAAG,UAAOkX,GAAWpI,IAMzC,OAA+B,cALT/O,GAAK4wG,eAAeG,YAAY,CACpD55F,IAAKA,GACLpI,UAAWA,MAGEgiG,WACjB,GAAC,gBAAA10F,GAAAM,IAAA,OAAAb,GAAAQ,MAAAxc,KAAAyc,UAAA,EAPqB,GASfzc,KAAAowG,8BAA6B,eAAAzzF,MAAAxc,KAAG,UACrCogB,GACAtR,IAMA,aAJqB/O,GAAKywG,iBAAiBP,8BAA8B,CACvE7vF,QAASA,GACTtR,UAAWA,IAGf,GAAC,gBAAAiP,GAAAI,IAAA,OAAA3B,GAAAH,MAAAxc,KAAAyc,UAAA,EATmC,EAxFjC,CAkCH4zF,iBACEhkG,GACA6B,IAMA,OAJUlO,KAAK2wG,iBAAiBN,iBAAiB,CAC/CgB,UAAWhlG,GACX5G,KAAMyI,IAGV,CAEMojG,iBAAiBj6F,GAAWnJ,IAAuB,IAAArG,GAAA7H,KAAA,SAAAG,KAAA,YAMvD,aALsB0H,GAAK8oG,iBAAiBR,cAAc,CACxD94F,IAAKA,GACL5R,KAAMyI,GACNkE,KAAM,wBAEM+9F,eAAe9jG,EAAG,EANuB,EAOzD,CAEMmC,kBAAkB6I,IAAS,IAAAtP,GAAA/H,KAAA,SAAAG,KAAA,YAC/B,OAAK4H,GAAK6oG,gBACR7oG,GAAK6oG,cAAgBf,GACnB9nG,GAAKjI,cAAckD,WACnB+E,GAAK8oG,+BAGS9oG,GAAK6oG,cAAcX,eAAe,CAAE54F,IAAKA,MAGb44F,eAC3CjpG,OAAQyH,IAAsB,uBAAhBA,GAAE2D,KAAKA,MACrB/L,IAAKoI,MAEFP,WAAYO,GAAEhJ,KACdiJ,mBAAoBD,GAAEC,mBAAmBrI,IAAK0X,IAAMA,GAAE9O,WACtD5C,GAAIoC,GAAEpC,GACN+F,KAAM3D,GAAE2D,KAAKA,KACbu1C,OAAQl5C,GAAE2D,KAAKu1C,SAIF,EAtBY,EAuBjC,CA6CM2oD,aAAaj5F,GAAWC,IAAa,IAAA5O,GAAA1I,KAAA,SAAAG,KAAA,YACzC,MAAMivB,GAA+B,GACrC,QAAS3R,GAAI,EAAGA,GAAInG,GAAI5B,OAAQ+H,IAAK,IAAK,CACxC,MAAME,GAAQrG,GAAIoG,MAAMD,GAAGA,GAAI,KACzB8zF,GAAU7oG,GAAKioG,iBAClBL,aAAa,CACZj5F,IAAKA,GACLpI,UAAW0O,KAEZtd,KAAMgc,IACsB,OAAvBA,GAAO0S,YACF,GAEF1S,GAAO0S,YAAY1oB,IAAK+a,IAAMA,GAAEpD,YAE3CoR,GAAQnR,KAAKszF,GACf,CACA,aAAc55F,QAAQyE,IAAIgT,KAAUioB,MAAO,EAjBF,EAkB3C,CAEMtoC,MAAMsI,GAAWC,IAAsB,IAAAnO,GAAAnJ,KAAA,SAAAG,KAAA,YAC3C,GAAImd,MAAMqnB,QAAQrtB,IAAM,CACtB,MAAM8X,GAA6B,GACnC,QAAS3R,GAAI,EAAGA,GAAInG,GAAI5B,OAAQ+H,IAAK,IAAK,CACxC,MAAME,GAAQrG,GAAIoG,MAAMD,GAAGA,GAAI,KACzB8zF,GAAUpoG,GAAKwnG,iBAClB5hG,MAAM,CACLsI,IAAKA,GACLpI,UAAW0O,KAEZtd,KAAMgc,IACsB,OAAvBA,GAAO0S,YACF,GAEF1S,GAAO0S,YAAY1oB,IAAK+a,IAAMA,GAAE/U,KAE3C+iB,GAAQnR,KAAKszF,GACf,CACA,aAAc55F,QAAQyE,IAAIgT,KAAUioB,MACtC,CAAO,CACL,MAAMh7B,SAAelT,GAAKwnG,iBAAiB5hG,MAAM,CAC/CsI,IAAKA,GACLpI,UAAWqI,KAEb,OAA2B,OAAvB+E,GAAO0S,iBACT,EAEK1S,GAAO0S,YAAY1oB,IAAK+a,IAAMA,GAAE/U,GACzC,CAAC,EA5B0C,EA6B7C,CACM6P,kBAAkB7E,GAAWC,IAAa,IAAA/N,GAAAvJ,KAAA,SAAAG,KAAA,YAC9C,MAAMivB,GAAuC,GAC7C,QAAS3R,GAAI,EAAGA,GAAInG,GAAI5B,OAAQ+H,IAAK,IAAK,CACxC,MAAME,GAAQrG,GAAIoG,MAAMD,GAAGA,GAAI,KACzB8zF,GAAUhoG,GAAKonG,iBAClBz0F,kBAAkB,CACjB7E,IAAKA,GACLpI,UAAW0O,KAEZtd,KAAMgc,IACsB,OAAvBA,GAAO0S,YACF,GAEF1S,GAAO0S,YAAY1oB,IAAK+a,MAE3B/U,GAAI+U,GAAE/U,GACN2R,UAAWoD,GAAEpD,UACbtP,mBAAoB0S,GAAE1S,uBAI9B0gB,GAAQnR,KAAKszF,GACf,CACA,aAAc55F,QAAQyE,IAAIgT,KAAUioB,MAAO,EAvBG,EAwBhD,mDA/MWm5D,IAA2BhwG,MAAAC,MAAAD,MAAAE,MAAA,sCAA3B8vG,GAA2B/sG,QAA3B+sG,GAA2B9sG,WAAA,SAA3B8sG,EAA2B,qBCXjC,IAAMgB,GAAa,MAApB,MAAOA,GACX,2BAAWC,GACT,MAAO,CACL,CACEplG,GAAIiN,GAAa4J,WACjB3c,KAAM,cAER,CACE8F,GAAIiN,GAAa2nB,WACjB16B,KAAM,cAER,CACE8F,GAAIiN,GAAaqlD,aACjBp4D,KAAM,gBAER,CACE8F,GAAIiN,GAAa+e,UACjB9xB,KAAM,aAER,CACE8F,GAAIiN,GAAa0nB,UACjBz6B,KAAM,aAGZ,CAEA,4BAAOmrG,CAAsB1hF,IAC3B,OAAQA,IACN,KAAK2hF,GAAcC,yBACnB,QACE,MAAO,YACT,KAAKD,GAAcE,qBACjB,MAAO,QACT,KAAKF,GAAcG,YACjB,MAAO,cACT,KAAKH,GAAcI,UACjB,MAAO,YACT,KAAKJ,GAAcK,SACjB,MAAO,WACT,KAAKL,GAAcM,SACjB,MAAO,WAEb,CAEA,gCAAOC,CAA0BliF,IAC/B,OAAQA,IACN,KAAK2hF,GAAcC,yBACnB,QACE,MAAO,gBACT,KAAKD,GAAcE,qBACjB,MAAO,kBACT,KAAKF,GAAcG,YACjB,MAAO,qBACT,KAAKH,GAAcI,UACjB,MAAO,gBACT,KAAKJ,GAAcK,SACjB,MAAO,eACT,KAAKL,GAAcM,SACjB,MAAO,kBAEb,CAEA,qCAAOE,CAA+B//F,IACpC,OAAOggG,SAAShgG,GAAM,GACxB,CAEA,yCAAOigG,CAAmCjgG,IACxC,OAAQA,IACN,KAAKkH,GAAa4J,WAChB,MAAO,aACT,KAAK5J,GAAa2nB,WAChB,MAAO,aACT,KAAK3nB,GAAa4nB,eAChB,MAAO,iBACT,KAAK5nB,GAAaqlD,aAChB,MAAO,eACT,KAAKrlD,GAAa+e,UAChB,MAAO,YACT,KAAK/e,GAAa0nB,UAChB,MAAO,YACT,KAAK1nB,GAAawJ,UAChB,MAAO,YACT,KAAKxJ,GAAagf,UAChB,MAAO,YACT,KAAKhf,GAAa0F,mBAChB,MAAO,qBACT,KAAK1F,GAAa0J,MAChB,MAAO,QACT,KAAK1J,GAAaC,UAChB,MAAO,YACT,QACE,MAAO,GAEb,CAEA,qBAAO+4F,CAAelgG,IACpB,OAAQA,IACN,KAAKkH,GAAa4J,WAChB,MAAO,CACL7W,GAAIiN,GAAa4J,WACjB3c,KAAM,cAEV,KAAK+S,GAAa2nB,WAChB,MAAO,CACL50B,GAAIiN,GAAa2nB,WACjB16B,KAAM,cAEV,KAAK+S,GAAaqlD,aAChB,MAAO,CACLtyD,GAAIiN,GAAaqlD,aACjBp4D,KAAM,gBAEV,KAAK+S,GAAa+e,UAChB,MAAO,CACLhsB,GAAIiN,GAAa+e,UACjB9xB,KAAM,aAEV,KAAK+S,GAAa0nB,UAChB,MAAO,CACL30B,GAAIiN,GAAa0nB,UACjBz6B,KAAM,aAEV,KAAK+S,GAAa4nB,eAChB,MAAO,CACL70B,GAAIiN,GAAa4nB,eACjB36B,KAAM,kBAEV,KAAK+S,GAAa0nB,UAChB,MAAO,CACL30B,GAAIiN,GAAa0nB,UACjBz6B,KAAM,aAEV,QACE,OAAO,KAEb,mDAvIWirG,GAAa,sCAAbA,GAAa/tG,QAAb+tG,GAAa9tG,UAAA0H,WAFZ,QAAM,SAEPomG,EAAa,KCVnB,IAAKe,GAAZ,SAAYA,IACVA,aAAAC,QAAA,aACAD,MAAAT,YAAA,iBACAS,MAAAE,SAAA,cACAF,MAAAG,SAAA,cACAH,MAAAP,SAAA,cACAO,MAAAN,SAAA,cANUM,EAOZ,CAPA,CAAYA,IAAiB,ICAjBI,GAAZ,SAAYA,IACVA,UAAAd,qBAAA,uBACAc,GAAAC,QAAA,UACAD,GAAAE,UAAA,YACAF,GAAAG,SAAA,WACAH,GAAAD,SAAA,WACAC,GAAAI,mBAAA,qBACAJ,GAAAK,qBAAA,uBACAL,GAAAM,oBAAA,sBACAN,GAAAO,OAAA,SACAP,GAAAb,YAAA,cACAa,GAAAf,yBAAA,2BACAe,GAAAQ,qBAAA,uBACAR,GAAAS,qBAAA,uBACAT,GAAAU,qBAAA,uBACAV,GAAAW,YAAA,cACAX,GAAAY,UAAA,YAhBUZ,EAiBZ,CAjBA,CAAYA,IAA6B,ICA7Ba,GAAZ,SAAYA,IACVA,aAAA3B,qBAAA,0BACA2B,MAAAZ,QAAA,aACAY,MAAAX,UAAA,eACAW,MAAAV,SAAA,cACAU,MAAAd,SAAA,cACAc,MAAAT,mBAAA,wBACAS,MAAAR,qBAAA,0BACAQ,MAAAP,oBAAA,yBACAO,MAAAN,OAAA,YACAM,MAAA1B,YAAA,kBACA0B,MAAA5B,yBAAA,+BACA4B,MAAAL,qBAAA,2BACAK,MAAAJ,qBAAA,2BACAI,MAAAH,qBAAA,2BACAG,MAAAF,YAAA,kBACAE,MAAAD,UAAA,gBAhBUC,EAiBZ,CAjBA,CAAYA,IAAyB,ICI/B,MAAOC,GACX,4BAAOC,CAAsB1jF,IAC3B,OAAQA,IACN,KAAKwjF,GAA0B3B,qBAC7B,MAAO,QACT,KAAK2B,GAA0BZ,QAC7B,MAAO,UACT,KAAKY,GAA0BX,UAC7B,MAAO,YACT,KAAKW,GAA0BV,SAC7B,MAAO,WACT,KAAKU,GAA0Bd,SAC7B,MAAO,WACT,KAAKc,GAA0BJ,qBAC7B,MAAO,sBACT,KAAKI,GAA0BT,mBAC7B,MAAO,YACT,KAAKS,GAA0BR,qBAC7B,MAAO,sBACT,KAAKQ,GAA0BP,oBAC7B,MAAO,qBACT,KAAKO,GAA0BN,OAC7B,MAAO,SACT,KAAKM,GAA0B5B,yBAC7B,MAAO,YACT,KAAK4B,GAA0B1B,YAC7B,MAAO,cACT,KAAK0B,GAA0BL,qBAC7B,MAAO,oBACT,KAAKK,GAA0BH,qBAC7B,MAAO,sBACT,KAAKG,GAA0BF,YAC7B,MAAO,UACT,KAAKE,GAA0BD,UAC7B,MAAO,YACT,QACE,MAAO,YAEb,CAEA,iCAAOI,CACL3jF,IAEA,OAAQA,IACN,KAAKwjF,GAA0B3B,qBAC7B,MAAO,kBACT,KAAK2B,GAA0BZ,QAC7B,MAAO,uBACT,KAAKY,GAA0BX,UAC7B,MAAO,gBACT,KAAKW,GAA0BV,SAC7B,MAAO,kBACT,KAAKU,GAA0Bd,SAC7B,MAAO,iBACT,KAAKc,GAA0BT,mBAC7B,MAAO,gBACT,KAAKS,GAA0BR,qBAC7B,MAAO,eACT,KAAKQ,GAA0BP,oBAC7B,MAAO,qBACT,KAAKO,GAA0BN,OAC7B,MAAO,kBACT,KAAKM,GAA0B5B,yBAC7B,MAAO,gBACT,KAAK4B,GAA0B1B,YAC7B,MAAO,qBACT,KAAK0B,GAA0BL,qBAC7B,MAAO,sBACT,KAAKK,GAA0BJ,qBAC7B,MAAO,qBACT,KAAKI,GAA0BH,qBAC7B,MAAO,oBACT,KAAKG,GAA0BF,YAC7B,MAAO,gBACT,KAAKE,GAA0BD,UAC7B,MAAO,gBACT,QACE,MAAO,UAEb,CAEA,mCAAOK,CACLC,IAEA,OAAQA,GAAYrgF,eAClB,KAAKm/E,GAA8Bd,qBACjC,OAAO2B,GAA0B3B,qBACnC,KAAKc,GAA8BC,QACjC,OAAOY,GAA0BZ,QACnC,KAAKD,GAA8BE,UACjC,OAAOW,GAA0BX,UACnC,KAAKF,GAA8BG,SACjC,OAAOU,GAA0BV,SACnC,KAAKH,GAA8BD,SACjC,OAAOc,GAA0Bd,SACnC,KAAKC,GAA8BS,qBACjC,OAAOI,GAA0BJ,qBACnC,KAAKT,GAA8BI,mBACjC,OAAOS,GAA0BT,mBACnC,KAAKJ,GAA8BK,qBACjC,OAAOQ,GAA0BR,qBACnC,KAAKL,GAA8BM,oBACjC,OAAOO,GAA0BP,oBACnC,KAAKN,GAA8BO,OACjC,OAAOM,GAA0BN,OACnC,KAAKP,GAA8Bf,yBACjC,OAAO4B,GAA0B5B,yBACnC,KAAKe,GAA8Bb,YACjC,OAAO0B,GAA0B1B,YACnC,KAAKa,GAA8BQ,qBACjC,OAAOK,GAA0BL,qBACnC,KAAKR,GAA8BU,qBACjC,OAAOG,GAA0BH,qBACnC,KAAKV,GAA8BW,YACjC,OAAOE,GAA0BF,YACnC,KAAKX,GAA8BY,UACjC,OAAOC,GAA0BD,UACnC,QACE,OAAO,KAEb,CAEA,sCAAOO,CACL9jF,IAMA,OAJuB,iBAAZA,KACTA,GAAUqd,OAAO+kE,SAASpiF,KAGpBA,IACN,KAAKwjF,GAA0B5B,yBAC7B,OAAOW,GAAkBC,QAC3B,KAAKgB,GAA0B3B,qBAC/B,KAAK2B,GAA0BZ,QAC/B,KAAKY,GAA0BX,UAC/B,KAAKW,GAA0BV,SAC/B,KAAKU,GAA0BT,mBAC/B,KAAKS,GAA0BR,qBAC/B,KAAKQ,GAA0BN,OAC/B,KAAKM,GAA0B1B,YAC/B,KAAK0B,GAA0BL,qBAC/B,KAAKK,GAA0BF,YAC/B,KAAKE,GAA0BD,UAC7B,OAAOhB,GAAkBT,YAC3B,KAAK0B,GAA0BP,oBAC7B,OAAOV,GAAkBP,SAC3B,KAAKwB,GAA0BH,qBAC7B,OAAOd,GAAkBN,SAC3B,KAAKuB,GAA0Bd,SAC7B,OAAOH,GAAkBE,SAC3B,KAAKe,GAA0BJ,qBAC7B,OAAOb,GAAkBG,SAC3B,QACE,OAAOH,GAAkBT,YAE/B,CAEA,sCAAOiC,CACL/jF,IAEA,OAAQA,IACN,KAAKuiF,GAAkBC,QACrB,OAAOgB,GAA0B5B,yBACnC,KAAKW,GAAkBT,YACrB,MAAO,CACL0B,GAA0B3B,qBAC1B2B,GAA0BZ,QAC1BY,GAA0BX,UAC1BW,GAA0BV,SAC1BU,GAA0BT,mBAC1BS,GAA0BR,qBAC1BQ,GAA0BN,OAC1BM,GAA0B1B,YAC1B0B,GAA0BL,qBAC1BK,GAA0BF,YAC1BE,GAA0BD,WAE9B,KAAKhB,GAAkBP,SACrB,OAAOwB,GAA0BP,oBACnC,KAAKV,GAAkBN,SACrB,OAAOuB,GAA0BH,qBACnC,KAAKd,GAAkBE,SACrB,OAAOe,GAA0Bd,SACnC,KAAKH,GAAkBG,SACrB,OAAOc,GAA0BJ,qBACnC,QACE,OAAO,KAEb,CAEA,4BAAOY,CAAsBhkF,IAC3B,OAAQA,IACN,KAAKuiF,GAAkBC,QACrB,MAAO,UACT,KAAKD,GAAkBT,YACrB,MAAO,cACT,KAAKS,GAAkBE,SACrB,MAAO,WACT,KAAKF,GAAkBG,SACrB,MAAO,WACT,KAAKH,GAAkBP,SACrB,MAAO,WACT,KAAKO,GAAkBN,SACrB,MAAO,WACT,QACE,MAAO,GAEb,CAEA,iCAAOgC,CAA2BjkF,IAChC,OAAQA,IACN,KAAKuiF,GAAkBC,QACrB,MAAO,mBACT,KAAKD,GAAkBT,YACrB,MAAO,uBACT,KAAKS,GAAkBE,SACrB,MAAO,oBACT,KAAKF,GAAkBG,SACrB,MAAO,oBACT,KAAKH,GAAkBP,SACrB,MAAO,oBACT,KAAKO,GAAkBN,SACrB,MAAO,oBACT,QACE,MAAO,UAEb,CAEA,4BAAOiC,CAAsBlkF,IAC3B,OAAQA,IACN,KAAKuiF,GAAkBC,QACrB,MAAO,gBACT,KAAKD,GAAkBT,YACrB,MAAO,oBACT,KAAKS,GAAkBE,SACrB,MAAO,iBACT,KAAKF,GAAkBG,SACrB,MAAO,iBACT,KAAKH,GAAkBP,SACrB,MAAO,iBACT,KAAKO,GAAkBN,SACrB,MAAO,iBACT,QACE,MAAO,gBAEb,ECzPK,IAAKN,GAAZ,SAAYA,IACVA,aAAAC,yBAAA,8BACAD,MAAAE,qBAAA,0BACAF,MAAAG,YAAA,iBACAH,MAAAI,UAAA,eACAJ,MAAAK,SAAA,cACAL,MAAAM,SAAA,cANUN,EAOZ,CAPA,CAAYA,IAAa,ICiClB,MAAMwC,GAA4B,CACvC,CACEnnG,QAASo4D,KACTn4D,YAAag5D,GAEfA,EACA,CACEj5D,QAASy3D,KACTx3D,YAAao6D,GAEfA,EACA,CACEr6D,QAASq4D,KACTp4D,YAAaw7E,IAEfA,GACA,CACEz7E,QAASs4D,KACTr4D,YAAa+5E,IAEfA,GACA,CACEh6E,QAASu4D,KACTt4D,YAAaygF,IAEfA,GACA,CACE1gF,QAASw4D,IACTv4D,YAAayhF,IAEfA,GACA,CACE1hF,QAASy4D,KACTx4D,YAAag9E,IAEfA,GACA,CACEj9E,QAAS04D,KACTz4D,YAAa23E,IAEfA,GACA,CACE53E,QAAS24D,KACT14D,YAAa28E,IAEfA,GACA,CACE58E,QAAS44D,KACT34D,YAAa45E,IAEfA,GACA+C,GACA,CACE58E,QAAS64D,KACT54D,YAAa8zE,IAEfA,GACA,CACE/zE,QAAS84D,KACT74D,YAAamnG,MAEfA,KACA,CACEpnG,QAAS+4D,KACT94D,YAAaujG,IAEfA,GACA,CACExjG,QAASg5D,KACT/4D,YAAagkB,MAEfA,6FCrGK,MAAMojF,EAAiBlgG,OAAOiyF,OAAO,CAC1CkO,eAAgBC,WAChBC,iBAAkB,cAClBC,WAAY,YACZC,gBAAiB,gBACjBC,iBAAkB,YAClBC,gBAAiB,eCNb,MAAOC,EAAbh1G,cAGEG,KAAAuG,KAAO,GACPvG,KAAAq8B,OAAS,EACTr8B,KAAA80G,SAAW,GACX90G,KAAAm5B,SAAW,GACXn5B,KAAA+0G,WAAqB,EACrB/0G,KAAAg1G,kBAA4B,EAC5Bh1G,KAAAkD,IAAM,EAeR,CARE+xG,eACE,MAAO,CACL5oG,GAAI2gE,OAAOhtE,KAAKqM,IAChBmwB,gBAAiBwwC,OAAOhtE,KAAKw8B,iBAC7Bj2B,KAAMymE,OAAOhtE,KAAKuG,MAClB81B,OAAQ2wC,OAAOhtE,KAAKq8B,QAExB,yGCgBK,IAAM+3E,EACX,MADI,MAAOA,UACHtuC,YAGD9lE,KAAA+/D,aAAe,OAAQ,CAU9BlgE,YACYqxB,EACA8vD,EACAz+E,EACAy9D,EACAjyD,EACAkzE,EACF11E,EACA2pG,GAERrxG,MACEuwG,EAAar0C,aACb7uC,EACA3uB,EACAy9D,EACAghB,GAdQhhF,KAAAkxB,QACAlxB,KAAAghF,oBACAhhF,KAAAuC,UACAvC,KAAAggE,iBACAhgE,KAAA+N,gBACA/N,KAAAihF,6BACFjhF,KAAAuL,kBACAvL,KAAAk1G,uBAyPAl1G,KAAA2kF,YAAepd,SACL1kE,IAAd0kE,GAA2BA,EAAUX,aACvC5mE,KAAK8kF,YAAcvd,EAAUpiE,WAC7BnF,KAAK+kF,UAAYxd,EAAUX,aAE3B5mE,KAAK4hE,mBACH,IAAIt8C,MAAM,8DAA6D,EAtP3EtlB,KAAKmgE,YAAc,GAAGngE,KAAKkgE,gBAAgBk0C,EAAar0C,eACxD//D,KAAK4jE,UAAY5jE,KAAKihF,2BAA2Brd,UACjD5jE,KAAKggE,eAAemH,WAAWvlE,UAAU,CACvCe,KAAM3C,KAAK2kF,YACXl9E,MAAOzH,KAAK4hE,oBAEhB,CAEauzC,WAAW1lF,GAAc,IAAAvvB,EAAAF,KAAA,SAAAG,KAAA,YAEpC,aADuBD,EAAK6kF,UAAUqwB,sBAAsB3lF,EAAKpjB,GAAI,QACrD5G,IAAK,EAFe,EAGtC,CAEam8E,aACXC,EACAC,EACAC,GAAwB,IAAAl6E,EAAA7H,KAAA,SAAAG,KAAA,YAExB,OAAO0H,EAAKqtG,qBAAqBtzB,aAC/BC,EACAC,EACAC,EACA,EANsB,EAO1B,CAEaE,aAAaxyD,GAAU,IAAA1nB,EAAA/H,KAAA,SAAAG,KAAA,YAClC,OAAO4H,EAAKmtG,qBAAqBjzB,aAAaxyD,GAAM4lF,WAAY,EAD9B,EAEpC,CAEOC,qBAAqB7lF,GAC1BzvB,KAAKu1G,kBAAoB9lF,CAC3B,CAEOzJ,QACLy6C,GAEA,MAAMz5D,EAAiBhH,KAAKgvB,cAAcyxC,EAAOzvD,SAE3CwkG,EAAYx1G,KAAKy1G,gBACrBz1G,KAAKu1G,kBAAkB/4E,gBACvBx1B,GAEF,OAAOhH,KAAK01G,gBAAgBF,EAC9B,CAEaG,sBAAmB,IAAAjtG,EAAA1I,KAAA,SAAAG,KAAA,YAC9B,OAAOuI,EAAK+sG,gBAAgB/sG,EAAK6sG,kBAAkB/4E,gBAAiB,EADtC,EAEhC,CAEai5E,gBACXh5E,EACAzrB,GAAgB,IAAA7H,EAAAnJ,KAAA,SAAAG,KAAA,YAEhB,OAAIgJ,EAAK47E,UACA57E,EAAK47E,UACT6wB,8CACCn5E,EACAtzB,EAAK27E,YACL,GACA,OACAjiF,EACAmO,GAED3Q,KAAM4nB,IACL,GAAIA,GAAYA,EAASxiB,KACvB,OAAOwiB,EAASxiB,OAInB8C,MAAOowE,IACNxvE,EAAK5G,QAAQkF,MACX,iDAAiDg1B,IACjDk8C,GAEK,OAGNhhE,QAAQkwD,OAAO,yBAA0B,EA1BhC,EA2BlB,CAEayZ,QAAQC,GAAc,IAAAh4E,EAAAvJ,KAAA,SAAAG,KAAA,YACjC,OAAIoJ,EAAKw7E,UACAx7E,EAAKw7E,UACT8wB,SAASt0B,EAAQh4E,EAAKu7E,aACtBzkF,KAAM4nB,IACL,GAAIA,GAAYA,EAASxiB,KACvB,OAAOwiB,EAASxiB,OAInB8C,MAAOowE,IACNpvE,EAAKhH,QAAQkF,MAAM,6BAA6B85E,IAAU5I,GACnD,OAGNhhE,QAAQkwD,OAAO,yBAA0B,EAff,EAgBnC,CAEaiuC,WAAQ,IAAArsG,EAAAzJ,KAAA,SAAAG,KAAA,YACnB,GAAKsJ,EAAK8B,gBAAgBitB,QAAQ67E,EAAeI,WAAY,WAqBtD,CACL,MAAMhvG,EAAOgE,EAAK8B,gBAAgBitB,QAChC67E,EAAeI,WACf,WAEF,OAAO98F,QAAQC,QAAQnS,EACzB,IA1BMgE,EAAKs7E,UACP,OAAOt7E,EAAKs7E,UACTgxB,sBAAsBtsG,EAAKq7E,aAC3BzkF,KAAM4nB,IACL,GAAIA,GAAY3K,MAAMqnB,QAAQ1c,EAASxiB,MACrCgE,SAAK8B,gBAAgBa,QACnBioG,EAAeI,WACfxsF,EAASxiB,KACT,WAEKkS,QAAQC,QAAQqQ,EAASxiB,KAAI,GAKvC8C,MAAOowE,IACNlvE,EAAKlH,QAAQkF,MAAM,sCAAuCkxE,GACnDhhE,QAAQkwD,UAUN,EA7BE,EA8BrB,CAEa9rC,eAAY,IAAA+vD,EAAA9rF,KAAA,SAAAG,KAAA,YACvB,GACG2rF,EAAKvgF,gBAAgBitB,QAAQ67E,EAAeK,gBAAiB,WAsBzD,CACL,MAAMjvG,EAAOqmF,EAAKvgF,gBAAgBitB,QAChC67E,EAAeK,gBACf,WAEF,OAAO/8F,QAAQC,QAAQnS,EACzB,IA1BMqmF,EAAK/G,UACP,OAAO+G,EAAK/G,UACTixB,0BAA0BlqB,EAAKhH,aAC/BzkF,KAAM4nB,IACL,GAAIA,GAAY3K,MAAMqnB,QAAQ1c,EAASxiB,MACrCqmF,SAAKvgF,gBAAgBa,QACnBioG,EAAeK,gBACfzsF,EAASxiB,KACT,WAEKwiB,EAASxiB,OAKnB8C,MAAOowE,IACNmT,EAAKvpF,QAAQkF,MAAM,sCAAuCkxE,GACnDhhE,QAAQkwD,UAStB,EA9BsB,EA+BzB,CAEOouC,SAASC,GACd,OAAO,IAAIv3E,IAAYgjC,IACrB,UAAWu0C,EAAa/8E,SAAa,IAAa,CAChD,MAAMza,EAAU,IAAIy3F,eACpBz3F,EAAQ03F,KAAK,MAAOF,EAAahzG,KAAK,GACtCwb,EAAQtU,aAAe,OACvBsU,EAAQ8b,OAAS,KACf,MAAMP,EAAS,IAAIC,WACnBD,EAAOo8E,WAAW33F,EAAQuJ,UAC1BgS,EAAOE,UAAapc,IAClBm4F,EAAaxkG,KAAOqM,EAAEsP,OAAOhR,OAAUnT,WAErCgtG,EAAa/8E,UACb+8E,EAAa/8E,SAASh2B,SAAS,UAE/B+yG,EAAaxkG,KAAOwkG,EAAaxkG,KAAKzM,QACpC,kBACA,SAGJ08D,EAAWh/D,KAAK,CAAE8sB,KAAMymF,EAAcI,YAAY,IAClD30C,EAAWzuD,UAAQ,EAErB+mB,EAAOs8E,QAAU,KACfv2G,KAAKuC,QAAQkF,MAAM,uBACnBk6D,EAAWh/D,KAAK,CAAE8sB,KAAMymF,EAAcI,YAAY,IAClDr8E,EAAOjE,QACP2rC,EAAWzuD,UAAQ,CACrB,EAEFwL,EAAQ63F,QAAU,KAChBv2G,KAAKuC,QAAQkF,MAAM,uBACnBk6D,EAAWh/D,KAAK,CAAE8sB,KAAMymF,EAAcI,YAAY,IAClD30C,EAAWzuD,UAAQ,EAErBwL,EAAQ83F,MACV,KAAO,CACL,MAAMppE,EAAYptC,KAAKwhF,iBAAiB00B,GACxC,IAAII,GAAa,GACA,YAAblpE,GAAwC,WAAbA,KAC7BkpE,GAAa,GAEf30C,EAAWh/D,KAAK,CAAE8sB,KAAMymF,EAAcI,WAAYA,IAClD30C,EAAWzuD,UACb,GAEJ,CAEQwiG,gBACNlmF,GAEA,MAAM/pB,EAA2B,CAAE+N,WAAY,KAAM4b,QAAS,IAE9DI,SAAMnvB,KAAM4L,IACVA,EAAImjB,QAAQ/oB,IAAK+a,IACf,MAAM0a,EAAU,IAAI+4E,EACpB/4E,EAAEU,gBAAkBpb,EAAEob,gBACtBV,EAAE9N,UAAY5M,EAAE4M,UAChB8N,EAAEk5E,kBAAoB5zF,EAAE4zF,kBACxBl5E,EAAEzvB,GAAK+U,EAAE/U,GACTyvB,EAAE3C,SAAW/X,EAAE+X,SACf2C,EAAEi5E,WAAa3zF,EAAE2zF,WACjBj5E,EAAEmtD,WAAa7nE,EAAE6nE,WACjBntD,EAAEv1B,KAAO6a,EAAE7a,KACXu1B,EAAEO,OAASjb,EAAEib,OACbP,EAAE54B,IAAMke,EAAEle,IACV44B,EAAEjd,WAAauC,EAAEle,IAED,IAAZ44B,EAAEO,QAEJ52B,EAAK2pB,QAAQnR,KAAK6d,EAAC,EAEtB,IACF,EACMlmB,MAAGnQ,EACZ,CAaQ+7E,iBACN/xD,GAEA,IAAI2d,EAAY3d,EAAKvsB,IACrB,OAAIkqC,EAAUtI,QAAQ,MAAO,IAC3BsI,EAAYA,EAAUq0C,UAAU,EAAGr0C,EAAUtI,QAAQ,OAEvDsI,EAAYA,EAAUs0C,OAAOt0C,EAAUu0C,YAAY,KAAMv0C,EAAU13B,QAC5D03B,CACT,iDAnSWgnE,GAAY5zG,MAAAC,MAAAD,MAAAE,MAAAF,MAAAuB,KAAAvB,MAAAgM,MAAAhM,MAAAiM,KAAAjM,MAAAkM,KAAAlM,MAAA4zB,KAAA5zB,MAAAyhC,MAAA,sCAAZmyE,EAAY3wG,QAAZ2wG,EAAY1wG,UAAA0H,WAFX,QAAM,SAEPgpG,CACX,+DC3CI,MAAgBqC,kBCIf,MAAMC,EAA8B,CACzC,CACE1pG,QAASypG,EACTxpG,YAAai1D,KAEfA,sECHK,IAAMA,EAAoB,MAA3B,MAAOA,EAEXriE,cADQG,KAAA22G,iBAA2B,EAGjC9jG,QAAQuZ,IAAM,IAAI4Z,KACXhmC,KAAK22G,kBACR32G,KAAK42G,YAAY,OAAQ,4CACzB52G,KAAK22G,iBAAkB,GAGzB32G,KAAK42G,YAAY,WAAY5wE,EAAI,EAGnChmC,KAAKkG,KAAK,0BACZ,CAEQ0wG,YACNp3B,KACGx5C,GAGHnzB,QAAQ2sE,EAAMhqE,eAAe,IAAIgqE,QAAax5C,EAChD,CAEOziC,MAAM++E,KAAgBu0B,GAC3B72G,KAAK42G,YAAY,QAASt0B,KAAQu0B,EACpC,CACO3wG,KAAKo8E,KAAgBu0B,GAC1B72G,KAAK42G,YAAY,OAAQt0B,KAAQu0B,EACnC,CACO3rG,KAAKo3E,KAAgBu0B,GAC1B72G,KAAK42G,YAAY,OAAQt0B,KAAQu0B,EACnC,CACOpvG,MAAM66E,KAAgBu0B,GAC3B72G,KAAK42G,YAAY,QAASt0B,KAAQu0B,EACpC,iDAnCW30C,EAAoB,sCAApBA,EAAoBz+D,QAApBy+D,EAAoBx+D,UAAA0H,WAFnB,QAAM,SAEP82D,CAAoB,4FCDN,IAAI99C,MAAuB,mBAAoB,CACxE3gB,QAASA,IAAM,IAkBjB,MAAMqzG,UAAmBlzG,KAGvB/D,cACEgE,MAAM,CACJkzG,OAAQ,KAIL/2G,KAAAg3G,OAASh3G,KAAKgE,QAAQ,CAACO,EAAG0yG,KAC/B,GAAI1yG,EAAEwyG,OAAOrhG,QAAU,EACrB,MAAO,IACFnR,EACHwyG,OAAQ,CAACE,IAGb,MAAMC,EAAW3yG,EAAEwyG,OAAOr5F,OAAM,GAAI,GACpC,OAAIw5F,EAASC,SAASD,EAASC,UAExB,IACF5yG,EACHwyG,OAAQ,IAAIxyG,EAAEwyG,OAAOr5F,MAAM,GAAG,GAAKu5F,MAGhCj3G,KAAA4P,KAAO5P,KAAKgE,QAAQ,CAACO,EAAG0yG,SAC1B1yG,EACHwyG,OAAQ,IAAIxyG,EAAEwyG,OAAQE,MAGjBj3G,KAAA42B,MAAQ52B,KAAKgE,QAASO,IAC3B,GAAIA,EAAEwyG,OAAOrhG,QAAU,EAAG,OAAOnR,EAEjC,MAAM2yG,EAAW3yG,EAAEwyG,OAAOr5F,OAAM,GAAI,GAC9B05F,EAAW7yG,EAAEwyG,OAAOr5F,MAAM,GAAG,GACnC,OAAIw5F,EAASC,SAASD,EAASC,UAExB,IACF5yG,EACHwyG,OAAQK,IA/BZ,EAuCK,IAAMC,EAAY,MAAnB,MAAOA,EAMJznG,KAAK0nG,GACV,OAAOt3G,KAAKu3G,WAAW3nG,KAAK0nG,EAC9B,CAEON,OAAOM,GACZ,OAAOt3G,KAAKu3G,WAAWP,OAAOM,EAChC,CACO1gF,QACL,OAAO52B,KAAKu3G,WAAW3gF,OACzB,CAEA/2B,YAAoB4L,GAAAzL,KAAAyL,SAClBzL,KAAKyL,OAAOlI,MAAM,iBAAkB,oBACpCvD,KAAKu3G,WAAa,IAAIT,EAEtB92G,KAAKw3G,YAAcx3G,KAAKu3G,WAAWjzG,OAAQC,GAAMA,EAAEwyG,QACnD/2G,KAAKy3G,iBAAmBz3G,KAAKu3G,WAAWjzG,OAAQC,GAAMA,EAAEwyG,OAAOrhG,QAG/D1V,KAAKw3G,YAAY51G,UAAWgxF,GAC1B5yF,KAAKyL,OAAOlI,MAAM,iBAAkB,SAAUqvF,GAElD,iDA5BWykB,GAAY72G,MAAAC,KAAA,sCAAZ42G,EAAY5zG,QAAZ4zG,EAAY3zG,UAAA0H,WAFX,QAAM,SAEPisG,CAAY,wKCtEbK,EAAZ,SAAYA,GACVA,WAAAC,GAAA,QACAD,IAAAE,GAAA,QACAF,IAAAG,OAAA,YACAH,IAAAI,MAAA,WAJUJ,CAKZ,CALA,CAAYA,GAAwB,IAe7B,MAAMK,EAA4D,CACvE,CACEC,WAAYN,EAAyBC,GACrCl9E,MAAO,IACPC,OAAQ,KACRhpB,KAAM,gBACNumG,KAAM,MAER,CACED,WAAYN,EAAyBE,GACrCn9E,MAAO,KACPC,OAAQ,KACRhpB,KAAM,iBACNumG,KAAM,MAER,CACED,WAAYN,EAAyBG,OACrCp9E,MAAO,KACPC,OAAQ,KACRhpB,KAAM,iBACNumG,KAAM,MAER,CACED,WAAYN,EAAyBI,MACrCr9E,MAAO,IACPC,OAAQ,IACRhpB,KAAM,iBACNumG,KAAM,0GCvBVz3G,MAAA,uCAKEA,MAAA,uBAAAqN,GAAArN,MAAAW,GAAA,MAAAC,EAAAZ,QAAA,OAAAA,MAAeY,EAAA82G,aAAArqG,GAAoB,GAGpCrN,gCADCA,MADA,OAAAA,MAAA,IAAAY,EAAAwwB,wBAAAumF,oBAAAC,QACA53G,CADqE,WAAAY,EAAAyuC,mDAGvErvC,MAAA,2CAMEA,MAAA,uBAAAqN,GAAArN,MAAAc,GAAA,MAAAF,EAAAZ,QAAA,OAAAA,MAAeY,EAAAi3G,kBAAAxqG,GAAyB,GAEzCrN,gCADCA,MAJA,UAAAY,EAAAk3G,mBAIA93G,CAJ8B,QAAAA,MAAA,IAAAY,EAAA+rC,UAI9B3sC,CAF0B,WAAAY,EAAAyuC,mDAI5BrvC,MAAA,2CAMEA,MAAA,uBAAAqN,GAAArN,MAAA4xB,GAAA,MAAAhxB,EAAAZ,QAAA,OAAAA,MAAeY,EAAAm3G,cAAA1qG,GAAqB,GAErCrN,gCADCA,MAJA,UAAAY,EAAAo3G,YAIAh4G,CAJuB,QAAAA,MAAA,IAAAY,EAAAi4B,MAIvB74B,CAFsB,WAAAY,EAAAyuC,WCFjB,IAAM4oE,EAAqB,MAA5B,MAAOA,EAeX54G,YACUgQ,EACAtN,EACAkrB,EACDxY,EACA2c,GAJC5xB,KAAA6P,kBACA7P,KAAAuC,UACAvC,KAAAytB,cACDztB,KAAAiV,kBACAjV,KAAA4xB,0BAnBF5xB,KAAAiW,KAAoB,GAGnBjW,KAAA04G,eAA8B,GAE/B14G,KAAAs4G,mBAAsC,GACtCt4G,KAAAw4G,YAA+B,GAC/Bx4G,KAAA24G,gBAAkBr/F,KAClBtZ,KAAAmtC,cAA+BtqC,EAC/B7C,KAAAq5B,UAA2Bx2B,EA6ElC7C,KAAA44G,oBAAuBnzG,IACrBzF,KAAK04G,eAAiBjzG,EACtBzF,KAAKs4G,mBAAqBt4G,KAAK04G,eAAeryG,IAAKimB,KACxCjgB,GAAIigB,EAAEjgB,GAAI5G,KAAM6mB,EAAE/lB,OAC5B,EAGHvG,KAAA64G,4BAA+BpxG,IAC7BoL,QAAQpL,MAAM,mCAAoCA,EAAK,EA+BzDzH,KAAA84G,eAAkBvmG,GACTA,EAAMmD,OAAS,EAzGtBqiG,EAA4B93F,QAASqM,GACnCtsB,KAAKw4G,YAAYv6F,KAAK,CAAE5R,GAAIigB,EAAE5a,KAAMjM,KAAM6mB,EAAE5a,OAEhD,CAEAzR,WACED,KAAK+4G,YAAa,EAClB/4G,KAAKyS,YAAc,IAAIhM,IACvBzG,KAAK4xB,wBAAwBonF,qBAC1B5yG,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAWwlC,IACVpnC,KAAK6vC,SAAWzI,IAEpBpnC,KAAK4xB,wBAAwBqnF,kCAC1B7yG,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAWs3G,IACVl5G,KAAK6vC,SAAWqpE,IAEpBl5G,KAAKm5G,MAAQn5G,KAAK4xB,wBAAwBunF,MAAM/yG,QAC9CuM,KAAU3S,KAAKyS,cAAW,EAC1BpM,KAAKgiB,GACIA,EAAEhiB,IAAKypB,KAEV0sC,SAAU1sC,EAAIzjB,GACdw+E,WAAY/6D,EAAIvpB,KAChBqkF,YAAa96D,EAAI+pC,MACjBu/C,kBAAmBtpF,EAAIowB,YACvBm5D,sBAAuBvpF,EAAIwpF,gBAC3BC,iBAAkBzpF,EAAI0pF,WACtBjnG,MAAO,GACPiqB,gBAAiB,QAMzBx8B,KAAKq5B,KAAOr5B,KAAK4xB,wBAAwB6nF,uBAAuBrzG,QAC9DC,KAAK9B,IACHvE,KAAKuC,QAAQgB,MAAM,4BAA6BgB,GAC5CA,EACK,GAAGA,EAAEmN,OAEP,QAGX1R,KAAKmtC,SACHntC,KAAK4xB,wBAAwB8nF,2BAA2BtzG,QACtDC,KAAK9B,GAAMA,GAAG8H,KAGlBrM,KAAK6P,gBAAgBm7E,eAClB5kF,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAU,CACTe,KAAM3C,KAAK44G,oBACXnxG,MAAOzH,KAAK64G,6BAElB,CAEAnrG,cACE1N,KAAKyS,YAAY9P,OACjB3C,KAAKyS,YAAYS,WACjBlT,KAAKyS,YAAYU,cACjBnT,KAAKyS,iBAAc5P,CACrB,CAaA82G,cAAcvgD,GACZp5D,KAAK4xB,wBAAwBgoF,8BAA8B,CACzDrzG,KAAM6yD,EAAM7mD,OAEhB,CACAsnG,aAAazgD,GACXp5D,KAAK4xB,wBAAwBgoF,8BAA8B,CACzDh7F,IAAKw6C,EAAM7mD,OAEf,CACA2lG,aAAa9+C,GACXp5D,KAAK4xB,wBAAwBgoF,8BAA8B,CACzDxB,QAASh/C,GAEb,CACAi/C,kBAAkBj/C,GAChBp5D,KAAK4xB,wBAAwBgoF,8BAA8B,CACzDzsE,SAAU,CACR9gC,GAAI,GAAG+sD,EAAM/sD,KACb9F,KAAM6yD,EAAM3zD,OAGlB,CACA8yG,cAAcn/C,GACZp5D,KAAK4xB,wBAAwBgoF,8BAA8B,CACzDvgF,KAAM0+E,EAA4Bh/F,KAAM0E,GAAMA,EAAE/L,OAAS0nD,EAAM/sD,KAEnE,CAKAkvD,+BAA+BxyC,GAC7B/oB,KAAKiW,KAAKgI,KAAK8K,GAGf/oB,KAAK4xB,wBAAwBkoF,YAAY/wF,EAC3C,CACMuyC,oBAAoBvyC,GAAgB,IAAA7oB,EAAAF,KAAA,SAAAG,KAAA,YACxCD,EAAKqC,QAAQ2D,KAAK,sBAAuB6iB,SACnC7oB,EAAKutB,YAAYygE,kBAAkBnlE,EAAM1c,GAAI0c,GACnD7oB,EAAK+V,KAAKgI,KAAK8K,GAGf7oB,EAAK0xB,wBAAwBkoF,YAAY/wF,EAAO,EANR,EAO1C,CACM2yC,eAAe3yC,GAAgB,IAAAlhB,EAAA7H,KAAA,SAAAG,KAAA,YACnC0H,EAAKtF,QAAQ2D,KAAK,iBAAkB6iB,SAC9BlhB,EAAK4lB,YAAYktC,UAAU5xC,EAAM1c,IACvCxE,EAAKoO,KAAOpO,EAAKoO,KAAKjP,OAAQ+Y,GAAMA,EAAE1T,KAAO0c,EAAM1c,IAGnDxE,EAAK+pB,wBAAwBmoF,eAAehxF,EAAO,EANhB,EAOrC,CACMyyC,yBAAyBzyC,GAAgB,IAAAhhB,EAAA/H,KAAA,SAAAG,KAAA,YAC7C4H,EAAKxF,QAAQ2D,KAAK,2BAA4B6iB,GAC9ChhB,EAAKkO,KAAOlO,EAAKkO,KAAKjP,OAAQ+Y,GAAMA,EAAE1T,KAAO0c,EAAM1c,IAGnDtE,EAAK6pB,wBAAwBmoF,eAAehxF,EAAO,EALN,EAM/C,CACM0yC,6BAA6B1yC,GAAgB,IAAArgB,EAAA1I,KAAA,SAAAG,KAAA,YACjDuI,EAAKnG,QAAQ2D,KAAK,+BAAgC6iB,SAC5CrgB,EAAK+kB,YAAYygE,kBAAkBnlE,EAAM1c,GAAI0c,EAAO,EAFT,EAGnD,iDAlKW0vF,GAAqBj4G,MAAAC,MAAAD,MAAAE,KAAAF,MAAAuB,MAAAvB,MAAAgM,KAAAhM,MAAAiM,MAAA,oCAArBgsG,EAAqB93G,UAAA,wBAAAsP,YAAA,EAAA/L,SAAA,CAAA1D,OAAAI,MAAA,GAAAC,KAAA,GAAAmB,OAAA,09BAAAlB,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDxClCP,MAAA,uCAIEA,MAAA,uBAAAqN,GAAA,OAAe7M,EAAA24G,cAAA9rG,EAAqB,GAKrCrN,QACDA,MAAA,uCAIEA,MAAA,uBAAAqN,GAAA,OAAe7M,EAAA64G,aAAAhsG,EAAoB,GAIrCrN,QACAA,MAAA,EAAAw5G,EAAA,yCASAx5G,MAAA,EAAAy5G,EAAA,6CASAz5G,MAAA,EAAA05G,EAAA,6CASA15G,MAAA,8DASEA,MAJA,0CAAAqN,GAAA,OAAkC7M,EAAAu6D,+BAAA1tD,EAAsC,EAIxErN,CAJyE,+BAAAqN,GAAA,OAClD7M,EAAAs6D,oBAAAztD,EAA2B,EAGlDrN,CAHmD,0BAAAqN,GAAA,OACjC7M,EAAA06D,eAAA7tD,EAAsB,EAExCrN,CAFyC,oCAAAqN,GAAA,OACb7M,EAAAw6D,yBAAA3tD,EAAgC,EAC5DrN,CAD6D,wCAAAqN,GAAA,OAC7B7M,EAAAy6D,6BAAA5tD,EAAoC,GAEtErN,eAjDEA,MAHA,QAAAA,MAAA,KAAAQ,EAAA4wB,wBAAAumF,oBAAA5xG,KAGA/F,CAHmE,cAGnEA,CAFiB,qBAAAQ,EAAA83G,eAEjBt4G,CADqC,WAAAQ,EAAA6uC,UAQrCrvC,MAAA,GACAA,MADA,QAAAA,MAAA,KAAAQ,EAAA4wB,wBAAAumF,oBAAAv5F,IACApe,CADkE,WAAAQ,EAAA6uC,UAMjErvC,MAAA,GAAAA,MAAA,OAAAA,MAAA,KAAAQ,EAAA4wB,wBAAAuoF,kBAQA35G,MAAA,GAAAA,MAAA,OAAAA,MAAA,KAAAQ,EAAA4wB,wBAAAwoF,mBASA55G,MAAA,GAAAA,MAAA,OAAAA,MAAA,KAAAQ,EAAA4wB,wBAAAyoF,eASD75G,MAAA,GAGAA,MAHA,cAAAA,MAAA,MAAAQ,EAAAiU,gBAAA5G,kBAAAhC,GAGA7L,CAH6D,uBAAAqC,EAG7DrC,CAF6B,oBAAAA,MAAA,MAAAQ,EAAAm4G,OAE7B34G,CADmC,WAAAQ,EAAA6uC,0BChBjCn5B,KAAYhK,UACZwuD,IACA/B,IACAI,IACAxB,KAAkBztC,OAAA,uIAGTmuF,CAAqB,qLC7B3B,IAAM6B,EAAqC,MAA5C,MAAOA,WAA6C1iD,IACxD/3D,YAAoB4K,GAAwCgB,IAC1D5H,QADkB7D,KAAAyK,SAAwCzK,KAAAyL,UAMrDzL,KAAA41D,iBACL51D,KAAKyK,MAAMmrD,iBAEN51D,KAAAsyB,kBACLtyB,KAAKyK,MAAM6nB,kBAENtyB,KAAAu6G,SAAqCv6G,KAAKyK,MAAMiY,UAEhD1iB,KAAAiyB,wBAA0B,KAC/BjyB,KAAKyL,OAAOlI,MAAM,uCACXvD,KAAKyK,MAAM0B,UAAUquG,aAAatlD,kBAGpCl1D,KAAAg2D,eAAiB,IACfh2D,KAAKyK,MAAM0B,UAAUquG,aAAarrG,SAGpCnP,KAAAyzB,oBAAuBtkB,KAC5BnP,KAAKyL,OAAOlI,MAAM,mCAAoC4L,IACtDnP,KAAKyK,MAAMgpB,oBAAoBtkB,GAAQ,EAGlCnP,KAAAq1D,mBAAsBlmD,KAC3BnP,KAAKyL,OAAOlI,MAAM,2CAA4C4L,IAC9DnP,KAAKyK,MAAMgwG,YAAYtrG,GAAQ,EAE1BnP,KAAAm2D,mBAAsB11B,KAC3BzgC,KAAKyL,OAAOlI,MAAM,4CAA6Ck9B,IAC/DzgC,KAAKyK,MAAM0rD,mBAAmB11B,GAAO,EAEhCzgC,KAAAqxD,yBAA2B,CAAC5wB,GAAqBlU,MACtDvsB,KAAKyL,OAAOlI,MAAM,mCAAoCk9B,GAASlU,IAC/DvsB,KAAKyK,MAAM4mD,yBAAyB,CAAE5wB,WAASlU,YAAS,EApCxDvsB,KAAKyL,OAAOlI,MACV,6DAEJ,mDANW+2G,IAAoC95G,MAAAC,MAAAD,MAAAE,KAAA,sCAApC45G,GAAoC72G,QAApC62G,GAAoC52G,WAAA,SAApC42G,EAAqC,kMCmC9C95G,MAAA,YAGEA,MAAA,iBAAAqN,IAAArN,MAAAW,IAAA,MAAAC,GAAAZ,QAAA,OAAAA,MAASY,GAAAs5G,aAAA7sG,IAAoB,GAC9BrN,qDAQCA,MAAA,YAGEA,MAAA,mBAAAA,MAAA4xB,IAAA,MAAAhxB,GAAAZ,MAAA,UAAAA,MAASY,GAAAu5G,0BAAyB,GAElCn6G,MAAA,UAAMA,MAAA,gBACRA,uDAZAA,MADF,aACEA,CAD0E,YACvDA,MAAA,mBAAAA,MAAAc,IAAA,MAAAF,GAAAZ,QAAA,OAAAA,MAASY,GAAAw5G,uBAAsB,GAChDp6G,MAAA,UAAMA,MAAA,oBACRA,UACAA,MAAA,YAAmBA,MAAA,mBAAAA,MAAAc,IAAA,MAAAF,GAAAZ,QAAA,OAAAA,MAASY,GAAAy5G,kCAAiC,GAC3Dr6G,MAAA,UAAMA,MAAA,uCACRA,UACAA,MAAA,EAAAs6G,EAAA,+BAOFt6G,kCALKA,MAAA,GAAAA,MAAA,OAAAA,MAAA,IAAAY,GAAAwwB,wBAAAmpF,iBC3CF,IAAMC,EAAsB,MAA7B,MAAOA,GAKXn7G,YACS+xB,GACCqpF,IADDj7G,KAAA4xB,2BACC5xB,KAAAi7G,QAOVj7G,KAAAk7G,cAAgB,KACdl7G,KAAK4xB,wBAAwBupF,cAAY,EAG3Cn7G,KAAA46G,qBAAuB,KACrB56G,KAAK4xB,wBAAwBwpF,sBAC7Bp7G,KAAKq7G,cAAe,GAEtBr7G,KAAA26G,wBAA0B,KACxB36G,KAAK4xB,wBAAwB0pF,kBAC7Bt7G,KAAKq7G,cAAe,EAhBnB,CAEHp7G,WAAkB,CAElByN,cAAqB,CAcrB6tG,oBACEv7G,KAAKq7G,cAAgBr7G,KAAKq7G,YAC5B,CACAX,aAAa3xF,IACX/oB,KAAKq7G,cAAe,CACtB,CACAR,kCACE76G,KAAK4xB,wBAAwB4pF,kCAC7Bx7G,KAAKq7G,cAAe,CACtB,mDAnCWL,IAAsBx6G,MAAAC,MAAAD,aAAA,oCAAtBw6G,GAAsBr6G,UAAA,yBAAA0Q,UAAA,SAAAtQ,GAAAC,OAAA,EAAAD,s8BDhBjCP,MADF,UACEA,CADwD,cAGtDA,MAAA,0BAASQ,GAAAk6G,eAAe,GAIxB16G,MAAA,cACFA,QAEEA,MADF,UACEA,CADoB,+BAKlBA,MAAA,0BAASQ,GAAA45G,sBAAsB,GAO/Bp6G,MAAA,UAAMA,MAAA,qBACRA,UACAA,MAAA,+BAKEA,MAFA,8BAAAQ,GAAAy6G,WAAyB,CAAI,EAE7Bj7G,CAF8B,6BAAAQ,GAAAy6G,WACN,CAAK,EAC7Bj7G,CAD8B,0BACrBQ,GAAAu6G,mBAAmB,GAO5B/6G,MAAA,YAGEA,MAAA,aAOJA,UAMAA,MALA,GAAAk7G,EAAA,YAKAl7G,CADC,GAAAm7G,EAAA,cAgBHn7G,QACAA,MAAA,aAKFA,gBAzDMA,MAAA,GAAAA,MAAA,gBAAAA,MAAA,IAAAQ,GAAA4wB,wBAAAgqF,yBAAA,iBAcAp7G,MAAA,GAAAA,MAAA,gBAAAA,MAAA,IAAAQ,GAAA4wB,wBAAAgqF,yBAAA,iBAUIp7G,MAAA,GAAAA,MAAA,UAAAA,MAAA,EAAAuxB,GAAA/wB,GAAAy6G,UAAAz6G,GAAAy6G,YASHj7G,cAAA,OAAAQ,GAAAq6G,cAG2C76G,cAAA,OAAAQ,GAAAq6G,8BCpCtC3kG,KAAYhW,gBAAA4pB,OAAA,y6CAEX0wF,EAAsB,qDCuB5B,IAAMa,EAAwB,MAA/B,MAAOA,GAWXh8G,YACU0C,GACD0S,GACA2c,GACCkqF,GACA1sG,IAJApP,KAAAuC,WACDvC,KAAAiV,mBACAjV,KAAA4xB,2BACC5xB,KAAA87G,0BACA97G,KAAAoP,UATHpP,KAAA+7G,kBAAoB,IAAIt1G,IACxBzG,KAAAg8G,iBAAmB,IAAIv1G,IACvBzG,KAAAi8G,sBAAwB,IAAIx1G,GAQhC,CAEHxG,WAAQ,IAAAC,GAAAF,KACNA,KAAKyS,YAAc,IAAIhM,IACvBzG,KAAK4xB,wBAAwBsqF,uBAC1B91G,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAU,KACT5B,KAAKm8G,cAAY,GAGrBn8G,KAAK4xB,wBAAwBonF,qBAC1B5yG,QACCuM,KAAU3S,KAAKyS,cAAW,EAC1BzL,KAAQyH,IAAMA,KAEf7M,WAASzB,OAAC,kBACHD,GAAK47G,uBAAuBM,cAChCl8G,GAAK0xB,wBACL,CACEyqF,MAAOn8G,GAAKo8G,WACZx6G,KAAM5B,GAAKq8G,UACXttG,UAAW/O,GAAKs8G,kBAIpBt8G,GAAK0xB,wBAAwBupF,cAC/B,IACFn7G,KAAK4xB,wBAAwBqnF,kCAC1B7yG,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,WAASzB,OAAC,kBACHD,GAAK47G,uBAAuBM,cAChCl8G,GAAK0xB,wBACL,CACEyqF,MAAOn8G,GAAKo8G,WACZx6G,KAAM5B,GAAKq8G,UACXttG,UAAW/O,GAAKs8G,kBAGpB,MAAMv4G,GAAQ/D,GAAK0xB,wBAAwBzlB,UAC3CjM,GAAKkP,OAAO6B,YACVwrG,KAAuB,CACrBtmF,YAAalyB,GAAMkyB,eAGvBj2B,GAAK87G,iBAAiBr5G,KAAK,IAC3BzC,GAAK67G,kBAAkBp5G,KAAK,IAC5BzC,GAAK+7G,sBAAsBt5G,KAAK,GAClC,GACJ,CAEA+K,cACE1N,KAAKyS,YAAY9P,OACjB3C,KAAKyS,YAAYS,WACjBlT,KAAKyS,YAAYU,cACjBnT,KAAKyS,iBAAc5P,CACrB,CAEO65G,uBACLtqG,GACAod,IAGA,OADAxvB,KAAKuC,QAAQgB,MAAM6O,GAAMod,IACjBpd,IACN,IAAK,QACH,GAAsB,IAAlBod,IAAO9Z,OAAc,CACvB1V,KAAKs8G,gBAAaz5G,EAClB,KACF,CACA7C,KAAKs8G,WAAa9sF,GAAM,GACxBxvB,KAAKs8G,WAAWrjF,gBAAgBoD,OAC9BC,IAAmBC,sBAAsBlwB,GAC3C,MACF,IAAK,OACH,GAAsB,IAAlBmjB,IAAO9Z,OAAc,CACvB1V,KAAKu8G,eAAY15G,EACjB,KACF,CACA7C,KAAKu8G,UAAY/sF,GAAM,GACvBxvB,KAAKu8G,UAAUtjF,gBAAgBoD,OAC7BC,IAAmBiiC,0BAA0BlyD,GAC/C,MACF,IAAK,MACH,GAAsB,IAAlBmjB,IAAO9Z,OAAc,CACvB1V,KAAKw8G,gBAAkB,GACvB,KACF,CACAx8G,KAAKw8G,gBAAkBhtF,GACvBxvB,KAAKw8G,gBAAgBv8F,QAASrR,KAC5BA,GAAEqqB,gBAAgBoD,OAChBC,IAAmBgiC,uBAAuBjyD,KAIlDrM,KAAKm8G,cACP,CACQA,eACan8G,KAAK4xB,wBAAwB+qF,oBACjCp2G,MAAQvG,KAAKs8G,WAC1Bt8G,KAAK4xB,wBAAwBgoF,8BAA8B,CACzDgD,WAAW,IAGb58G,KAAK4xB,wBAAwBgoF,8BAA8B,CACzDgD,WAAW,GAGjB,mDA3HWf,IAAwBr7G,MAAAC,KAAAD,MAAAE,KAAAF,MAAAuB,MAAAvB,MAAAgM,KAAAhM,MAAAiM,MAAA,oCAAxBovG,GAAwBl7G,UAAA,4BAAAsP,YAAA,EAAA/L,SAAA,CAAA1D,OAAAI,MAAA,GAAAC,KAAA,GAAAmB,OAAA,6dAAAlB,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KCtCjCP,MAFJ,UAEIA,CAFwB,UAExBA,CAD8C,QAC1CA,MAAA,0BAAoBA,QACxBA,MAAA,4BAKEA,MAAA,yBAAAqN,IAAA,OAAiB7M,GAAA07G,uBAAuB,QAAO7uG,GAAS,GACzDrN,QACDA,MAAA,4BAKEA,MAAA,yBAAAqN,IAAA,OAAiB7M,GAAA07G,uBAAuB,OAAM7uG,GAAS,GACxDrN,QACDA,MAAA,4BAIEA,MAAA,yBAAAqN,IAAA,OAAiB7M,GAAA07G,uBAAuB,MAAK7uG,GAAS,GAE1DrN,UACAA,MAAA,WACEA,MAAA,yBAEEA,MADF,UACEA,CADgB,kDAQdA,MAAA,2BAAUQ,GAAA4wB,wBAAAirF,sBAA8C,GAP1Dr8G,QASAA,MAAA,WAAMA,MAAA,6BACRA,UACAA,MAAA,yBAEJA,kBAlCMA,MAAA,GACAA,MADA,eAAAQ,GAAA+6G,kBACAv7G,CADkC,oBAOlCA,QACAA,MADA,eAAAQ,GAAAg7G,iBACAx7G,CADiC,oBAMjCA,cAAA,eAAAQ,GAAAi7G,uBAaEz7G,MAAA,GACAA,MADA,WAAAA,MAAA,KAAAQ,GAAA4wB,wBAAAkrF,kBACAt8G,CAD6D,WAAAA,MAAA,KAAAQ,GAAA4wB,wBAAAmrF,kCDJjErmG,KAAYhK,KAGZqK,KACAimG,IACAzhF,IACAk9E,IAGAuC,GAAsB1wF,OAAA,uIAGbuxF,EAAwB,oBEA9B,IAAMoB,EAA2B,MAAlC,MAAOA,GASXp9G,YACU0C,GACD0S,GACA2c,GACCsrF,GACA9tG,IAJApP,KAAAuC,WACDvC,KAAAiV,mBACAjV,KAAA4xB,2BACC5xB,KAAAk9G,6BACAl9G,KAAAoP,UARHpP,KAAAm9G,gBAAkB,IAAI12G,IACtBzG,KAAAi8G,sBAAwB,IAAIx1G,GAQhC,CAEHxG,WAAQ,IAAAC,GAAAF,KACNA,KAAKyS,YAAc,IAAIhM,IACvBzG,KAAK4xB,wBAAwBsqF,uBAC1B91G,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAW2E,KACVvG,KAAKm8G,cAAY,GAGrBn8G,KAAK4xB,wBAAwBonF,qBAC1B5yG,QACCuM,KAAU3S,KAAKyS,cAAW,EAC1BzL,KAAQyH,IAAMA,KAEf7M,WAASzB,OAAC,kBACHD,GAAKg9G,0BAA0Bd,cACnCl8G,GAAK0xB,wBACL,CACEwrF,IAAKl9G,GAAKm9G,SACVpuG,UAAW/O,GAAKs8G,kBAGpBt8G,GAAK0xB,wBAAwBupF,cAC/B,IACFn7G,KAAK4xB,wBAAwBqnF,kCAC1B7yG,QACCuM,KAAU3S,KAAKyS,cAAW,EAC1BzL,KAAQyH,IAAMA,KAEf7M,WAASzB,OAAC,kBACHD,GAAKg9G,0BAA0Bd,cACnCl8G,GAAK0xB,wBACL,CACEwrF,IAAKl9G,GAAKm9G,SACVpuG,UAAW/O,GAAKs8G,kBAGpB,MAAMv4G,GAAQ/D,GAAK0xB,wBAAwBzlB,UAC3CjM,GAAKkP,OAAO6B,YACVwrG,KAAuB,CACrBtmF,YAAalyB,GAAMkyB,eAGvBj2B,GAAKi9G,gBAAgBx6G,KAAK,IAC1BzC,GAAK+7G,sBAAsBt5G,KAAK,GAClC,GACJ,CAEA+K,cACE1N,KAAKyS,YAAY9P,OACjB3C,KAAKyS,YAAYS,WACjBlT,KAAKyS,YAAYU,cACjBnT,KAAKyS,iBAAc5P,CACrB,CACQs5G,eACan8G,KAAK4xB,wBAAwB+qF,oBACjCp2G,MAAQvG,KAAKq9G,SAC1Br9G,KAAK4xB,wBAAwBgoF,8BAA8B,CACzDgD,WAAW,IAGb58G,KAAK4xB,wBAAwBgoF,8BAA8B,CACzDgD,WAAW,GAGjB,CACOF,uBAAuBtqG,GAAqBod,IAEjD,OADAxvB,KAAKuC,QAAQgB,MAAM6O,GAAMod,IACjBpd,IACN,IAAK,MACH,GAAsB,IAAlBod,IAAO9Z,OAAc,CACvB1V,KAAKq9G,cAAWx6G,EAChB,KACF,CACA7C,KAAKq9G,SAAW7tF,GAAM,GACtBxvB,KAAKq9G,SAASpkF,gBAAgBoD,OAC5BC,IAAmBmiC,YAAYpyD,GACjC,MACF,IAAK,MACH,GAAsB,IAAlBmjB,IAAO9Z,OAAc,CACvB1V,KAAKw8G,gBAAkB,GACvB,KACF,CACAx8G,KAAKw8G,gBAAkBhtF,GACvBxvB,KAAKw8G,gBAAgBv8F,QAASrR,KAC5BA,GAAEqqB,gBAAgBoD,OAChBC,IAAmBgiC,uBAAuBjyD,KAIlDrM,KAAKm8G,cACP,mDA3GWc,IAA2Bz8G,MAAAC,KAAAD,MAAAE,KAAAF,MAAAuB,MAAAvB,MAAAgM,KAAAhM,MAAAiM,MAAA,oCAA3BwwG,GAA2Bt8G,UAAA,gCAAAsP,YAAA,EAAA/L,SAAA,CAAA1D,OAAAI,MAAA,GAAAC,KAAA,EAAAmB,OAAA,+TAAAlB,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KCtCpCP,MAFJ,UAEIA,CAFwB,UAExBA,CAD8C,QAC1CA,MAAA,cAAQA,QACZA,MAAA,4BAKEA,MAAA,yBAAAqN,IAAA,OAAiB7M,GAAA07G,uBAAuB,MAAK7uG,GAAS,GACvDrN,QACDA,MAAA,4BAIEA,MAAA,yBAAAqN,IAAA,OAAiB7M,GAAA07G,uBAAuB,MAAK7uG,GAAS,GAE1DrN,UAEEA,MADF,UACEA,CADgD,WAI9CA,MAFA,wBAEAA,CAFkE,wBAKxEA,oBAlBMA,MAAA,GACAA,MADA,eAAAQ,GAAAm8G,gBACA38G,CADgC,oBAMhCA,cAAA,eAAAQ,GAAAi7G,uCDgBFvlG,KAGAK,KACAimG,IACAzhF,IACAk9E,IAGAuC,GAAsB1wF,OAAA,qMAGb2yF,EAA2B,0OEvBhCz8G,MAPF,WAOEA,CADD,aAEIA,MAAA,0CAAoCA,MAAA,QACrCA,MAAA,+CAAmCA,QAErCA,MAAA,eAEEA,MAAA,mBAAAA,MAAA8qB,IAAA,MAAAmJ,GAAAj0B,QAAA,OAAAA,MAASi0B,GAAA6oF,oBAAmB,GAE5B98G,MAAA,sBAEJA,wDAKEA,MAJF,WAIEA,CADD,aACmBA,MAAA,6BAAuBA,QACzCA,MAAA,eAEEA,MAAA,mBAAAA,MAAA4xB,IAAA,MAAAqC,GAAAj0B,QAAA,OAAAA,MAASi0B,GAAA8oF,mBAAkB,GAE3B/8G,MAAA,qBAEJA,WCsBC,IAAMg9G,GAAuB,MAA9B,MAAOA,GAcX39G,YACS+xB,GACA3c,GACC1S,GACAzC,GACAkhF,GACA9vD,GACAusF,GACAhiF,GACA7D,GACAxoB,IATDpP,KAAA4xB,2BACA5xB,KAAAiV,mBACCjV,KAAAuC,WACAvC,KAAAF,gBACAE,KAAAghF,qBACAhhF,KAAAkxB,SACAlxB,KAAAy9G,oBACAz9G,KAAAy7B,gBACAz7B,KAAA43B,0BACA53B,KAAAoP,UAfHpP,KAAA+C,MAAQ/C,KAAKF,aAAakD,WAsIzBhD,KAAA09G,aAAe,KACrB,MAAMC,GAAgB39G,KAAK4xB,wBAAwB+rF,gBACnD,IAAKA,GAEH,YADA39G,KAAKuC,QAAQgB,MAAM,qBAIrB,MAAMq6G,GAAyBC,KAAWC,QACpCC,GAAuB,CAC3B5qD,MAAO,IAAI6qD,IAAY,qCACvB3xG,GAAI,QAEA4xG,GAAkBN,GAAcvuF,QAAQrW,KAC3CqI,IAAmB,QAAbA,GAAEmO,QAGX,IAAK0uF,GACH,MAAAj+G,KAAKuC,QAAQkF,MAAM,wCACb,IAAI6d,MAAM,wCAGlB,MAAMnF,GAAc,IAAI+9F,KACtBD,GAAgBzuF,MAAMnpB,IAAKy1B,MACzBm3B,SAAUn3B,GAAEv1B,KACZ43G,SAAUriF,GAAE3C,SACZj2B,IAAK44B,GAAE54B,OAETlD,KAAKkxB,MACLlxB,KAAKuC,SAGD67G,GAAkBp+G,KAAK4xB,wBAC1BzlB,UACAquG,aAAarrG,SAASnI,OACpByH,SAAoD5L,IAA9C4L,GAAE2gB,QAAQrW,KAAMqI,IAAmB,QAAbA,GAAEmO,SAEhClpB,IAAK+a,KACJ,MAAM/E,GAAS+E,GAAEgO,QAAQrW,KAAMqI,IAAmB,QAAbA,GAAEmO,QACjC0hC,GAAiB7vC,GAAE6vC,eAWzB,MAAO,CACLkC,MAVY,IAAID,KAChB72C,GAAOmT,MAAMnpB,IAAKy1B,MAChBm3B,SAAUn3B,GAAEv1B,KACZrD,IAAK44B,GAAE54B,OAETlD,KAAKkxB,MACLlxB,KAAKuC,SAKL8J,GAAI+U,GAAE/U,GACN4kD,qBAINjxD,KAAKq+G,WAAW17G,KAAK,CACnBwM,SAAUivG,GACVE,MAAOP,GACP59F,OAAQ,CACN9T,GAAIsxG,GAActxG,GAClB8mD,MAAOhzC,IAETo+F,eAAgB,KAChBC,kBAAmB,KACnB/kG,KAAMmkG,KAER59G,KAAKy+G,sBAAuB,EAC5Bz+G,KAAKm8G,cAAY,EAzLjBn8G,KAAK0+G,WAAa,IAAI9sG,UAA4B/O,GAClD7C,KAAKq+G,WAAa,IAAIzsG,UAA6B/O,GACnD7C,KAAK2+G,UAAY,IAAIl4G,IACrBzG,KAAK4+G,qBAAuB,CAC1BxsG,KAAM,KACN+/C,iBACEnyD,KAAKghF,kBAAkBp8E,OAAOG,iBAAiBotD,iBACjDz3B,OAAQ,OACRD,MAAO,OACPokF,wBAAwB,EACxBC,uBAAuB,EAE3B,CAEMC,eAAerkF,GAAiBD,IAAc,IAAAv6B,GAAAF,KAAA,SAAAG,KAAA,YAClD,aAAaD,GAAK8+G,IAAID,eAAerkF,GAAQD,GAAO,EADF,EAEpD,CAEAx6B,WAAQ,IAAA4H,GAAA7H,KACNA,KAAKyS,YAAc,IAAIhM,IAEvBzG,KAAK0+G,WAAW98G,UAAW4uC,KACzBxwC,KAAKuC,QAAQkF,MAAM,6BAA8B+oC,IAC7CA,IAAUA,GAAO/oC,QACnBzH,KAAKuC,QAAQkF,MAAM,oCACnBzH,KAAKy7B,aAAaztB,eAAe,+BACjChO,KAAKy+G,sBAAuB,KAGhCz+G,KAAK4xB,wBAAwBsqF,uBAC1B91G,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAU,KACT5B,KAAKm8G,cAAY,GAErBn8G,KAAK4xB,wBAAwBlP,UAC1Btc,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAW+F,KACV3H,KAAKy+G,sBAAuB,IAGhCz+G,KAAK4xB,wBAAwBqtF,aAC1B74G,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAWs9G,KACNA,KACFl/G,KAAKs9G,oBACLt9G,KAAK4xB,wBAAwButF,gBAAe,GAAK,GAIvDn/G,KAAK4xB,wBAAwBwtF,QAC1Bh5G,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAWue,KACVngB,KAAKuC,QAAQgB,MAAM,kBAAmB4c,IACtCngB,KAAK09G,cAAY,GAGrB19G,KAAK4xB,wBAAwBonF,qBAC1B5yG,QACCuM,KAAU3S,KAAKyS,cAAW,EAC1BzL,KAAQyH,IAAMA,KAEf7M,WAASzB,OAAC,YACT,MAAMygB,SAAc/Y,GAAKm3G,IAAID,uBACvBl3G,GAAK41G,iBAAiBrB,cAC1Bv0G,GAAK+pB,wBACLhR,IACA,GAEF/Y,GAAK+pB,wBAAwBupF,cAC/B,IACFn7G,KAAK4xB,wBAAwBqnF,kCAC1B7yG,QACCuM,KAAU3S,KAAKyS,cAAW,EAC1BzL,KAAQyH,IAAMA,KAEf7M,WAASzB,OAAC,YACT,MAAMygB,SAAc/Y,GAAKm3G,IAAID,uBACvBl3G,GAAK41G,iBAAiBrB,cAC1Bv0G,GAAK+pB,wBACLhR,IACA,GAEF,MAAM3c,GAAQ4D,GAAK+pB,wBAAwBzlB,UAC3CtE,GAAKuH,OAAO6B,YACVwrG,KAAuB,CACrBtmF,YAAalyB,GAAMkyB,eAGvBtuB,GAAK82G,UAAUh8G,MACjB,IACF3C,KAAK4xB,wBAAwBytF,iBAC1Bj5G,QACCuM,KAAU3S,KAAKyS,cAAW,EAC1BzL,KAAQyH,IAAMA,KAEf7M,WAASzB,OAAC,YACT,MAAMygB,SAAc/Y,GAAKm3G,IAAID,uBACvBl3G,GAAK41G,iBAAiBrB,cAC1Bv0G,GAAK+pB,wBACLhR,IACA,GAEF/Y,GAAK+pB,wBAAwBupF,cAC/B,GACJ,CAEAztG,cACE1N,KAAKyS,YAAY9P,OACjB3C,KAAKyS,YAAYS,WACjBlT,KAAKyS,YAAYU,cACjBnT,KAAKyS,iBAAc5P,CACrB,CAEO06G,mBACLv9G,KAAK43B,uBAAuBC,cAC9B,CAyEAylF,oBACEt9G,KAAK09G,eACL19G,KAAKy+G,sBAAuB,CAC9B,CACQtC,eACN,MAAM35C,GAAexiE,KAAK4xB,wBAAwBzlB,UAOhDnM,KAAK4xB,wBAAwBgoF,8BAJ7Bp3C,GAAa88C,kBAAkB/4G,MAC/Bi8D,GAAag4C,cAAcr6F,QAC3BqiD,GAAag4C,cAAcrrG,UAAUuG,OAAS,EAEa,CACzDknG,WAAW,GAG8C,CACzDA,WAAW,GAGjB,mDA1OWY,IAAuBh9G,MAAAC,MAAAD,MAAAE,KAAAF,MAAAuB,KAAAvB,MAAAgM,OAAAhM,MAAAiM,OAAAjM,MAAAkM,OAAAlM,MAAA4zB,MAAA5zB,MAAAyhC,MAAAzhC,MAAAm3D,MAAAn3D,MAAA++G,MAAA,oCAAvB/B,GAAuB78G,UAAA,2BAAA0Q,UAAA,SAAAtQ,GAAAC,OAAA,EAAAD,ijCD3DhCP,MAFJ,UAEIA,CAFuC,UAEvCA,CAD8C,kCAS5CA,MAAA,EAAAg/G,GAAA,8BAkBAh/G,MAAA,EAAAi/G,GAAA,8BAaJj/G,UAEEA,MADF,UACEA,CADgD,WAE9CA,MAAA,0BAGEA,MADF,WACEA,CADgB,SACZA,MAAA,aAAMA,QAERA,MADF,YACEA,CAD8B,sDAG5BA,MAAA,2BAAAA,aAAAW,IAAAX,MAAiBQ,GAAAu8G,mBAAkB,GAIzC/8G,YAIAA,MAFA,8BAEAA,CAFiE,yBAKvEA,mBA1DMA,MAAA,GAIAA,MAJA,WAAAQ,GAAA49G,qBAIAp+G,CAJiC,aAAAQ,GAAAq9G,WAIjC79G,CAHyB,aAAAQ,GAAA09G,WAGzBl+G,CAFyB,YAAAQ,GAAA29G,UAEzBn+G,CADuB,QAAAQ,GAAA+B,OAIpBvC,MAAA,GAAAA,MAAA,OAAAQ,GAAAy9G,sBAAA,OAAAj+G,MAAA,IAAAQ,GAAA4wB,wBAAAwtF,UAkBA5+G,MAAA,GAAAA,MAAA,cAAAA,MAAA,KAAAQ,GAAA4wB,wBAAAwtF,UAqBG5+G,MAAA,GAAAA,MAAA,iBAAAA,MAAA,MAAAQ,GAAA4wB,wBAAAwtF,UAOiB5+G,MAAA,GAAAA,MAAA,iCCRzBkW,KAAYgpG,UAGZ3oG,KACAimG,IAAyB2C,KAEzBlH,IACAxgF,IACAg9B,KACA+lD,GAAsB1wF,OAAA,wpBAGbkzF,EAAuB,wUCjClCh9G,MAAA,mDAKEA,MAFA,QAAAi0B,GAAAhhB,SAEAjT,CAFkB,QAAAA,MAAA,EAAAuxB,gCAmBdvxB,MAAA,aACGA,MAAA,8BAAwBA,mCAE3BA,MAAA,aACGA,MAAA,mCAA6BA,sDAXpCA,MAAA,GACEA,MAAA,YAGEA,MAAA,mBAAAA,MAAA4xB,IAAA,MAAAsC,GAAAl0B,MAAA,UAAAA,MAASk0B,GAAAC,QAAmB,GAM5Bn0B,MAHA,EAAAo/G,GAAA,cAGAp/G,CAFG,EAAAq/G,GAAA,eAKHr/G,MAAA,gBAIEA,MAAA,kBAAAqN,IAAA,MAAAiyG,GAAAt/G,MAAA4xB,IAAA7G,UAAAkJ,GAAAj0B,MAAA,UAAAA,MAAUi0B,GAAAM,kBAAAlnB,GAAAiyG,IAAgC,GAJ5Ct/G,QAUAA,MAAA,YACEA,MAAA,+CAOAA,MAAA,UACEA,MAAA,iDAQJA,UAGEA,MADF,YACEA,CAD8B,cACNA,MAAA,IAAiBA,QACzCA,MAAA,cAA4BA,MAAA,IAC9BA,UACAA,MAAA,cAA2BA,MAAA,kCAG7BA,6DA/CEA,cAAA,gCAAAs/G,GAAAzzG,GAAA,IAGA7L,MAAA,UAAAs/G,GAAA9qF,QAAA,eAEsBx0B,cAAA,QAAAs/G,GAAA7qF,UAGAz0B,cAAA,OAAAs/G,GAAA7qF,UASpBz0B,QACAA,MADA,iBAAAi0B,GAAAsrF,SAAA,KAAAtrF,GAAAsrF,SAAA1zG,OAAA,MAAAyzG,GAAA,KAAAA,GAAAzzG,IACA7L,CADsC,YAAAs/G,GAAA9qF,SAOpCx0B,MAAA,GAAAA,MAAA,MAAAA,MAAA,KAAAs/G,GAAA7qF,cAAApyB,EAAA,MAAAi9G,GAAA,KAAAA,GAAAjhG,YAAAre,OAQEA,MAAA,GAAAA,MAAA,MAAAA,MAAA,MAAAs/G,GAAA7qF,cAAApyB,EAAA,MAAAi9G,GAAA,KAAAA,GAAAjhG,YAAAre,OASoBA,MAAA,GAAAA,MAAA,MAAAs/G,GAAA,KAAAA,GAAAv5G,MACI/F,MAAA,GAAAA,MAAA,MAAAs/G,GAAA,KAAAA,GAAAlhG,KAEHpe,MAAA,GAAAA,MAAA,MAAAs/G,OAAA9xF,UAAAxtB,MAAA,MAAAs/G,GAAA9xF,WAAA,kCAnDjCxtB,MAAA,YAKEA,MAAA,EAAAw/G,GAAA,yBAmDAx/G,MAAA,gCACFA,gCApDkCA,cAAA,UAAAi0B,GAAAwrF,YCmC7B,IAAMC,GAAsB,MAA7B,MAAOA,GAoBXrgH,YACU6tB,GACAyyF,GACA/wG,GACAmmB,GAEAC,IALAx1B,KAAA0tB,2BACA1tB,KAAAmgH,iBACAngH,KAAAoP,UACApP,KAAAu1B,iBAEAv1B,KAAAw1B,aAzBOx1B,KAAAogH,cACf,IAAIvvG,MASU7Q,KAAAyT,SAAW,GAGnBzT,KAAA01B,UAAY,IAAI9jB,UACtB/O,GAEM7C,KAAAqgH,cAA+B,IAAI55G,IAEnCzG,KAAA41B,QAAU,GAShB51B,KAAKyR,cAAgB,CACnB7B,MAAM,EACN8B,KAAM,cAGR1R,KAAK61B,oBAAsB,CACzB,CACExpB,GAAI,OACJqF,KAAM,OACNokB,YAAa,eACb1jB,KAAM2jB,KACNtwB,KAAMzF,KAAK01B,WAEb,CACErpB,GAAI,YACJqF,KAAM,aACNokB,YAAa,cACb1jB,KAAM8b,MAGZ,CACMvB,kBAAe,IAAAzsB,GAAAF,KAAA,SAAAG,KAAA,aACnBuuB,QAAc,CACZxuB,GAAKkP,OAAOuf,aACZzuB,GAAKkP,OAAOgU,eACZljB,GAAKkP,OAAOiU,WAEXjd,QAAKwoB,MAAa,MAClBhtB,UAAU,EAAE8R,GAAa8F,GAAexS,OACnC0M,IAAgC7Q,MAAjB2W,IAAwC3W,MAAVmE,KAC/C9G,GAAKwT,YAAcA,GACnBxT,GAAKsZ,cAAgBA,GACrBtZ,GAAK01B,QAAU5uB,GACf9G,GAAKmgH,cAAc19G,OAAI,GAK7BzC,GAAKmgH,cACFj6G,QACCwoB,MAAa,MAAG,EAChBvZ,MAAU,KACRnV,GAAKuR,cAAc7B,MAAO,OACI/M,IAA1B3C,GAAK+vB,kBACP/vB,GAAK+vB,iBAAiB+F,QAEjB91B,GAAKogH,eAGf1+G,UAAS,eAAAoa,MAAA7b,KAAC,UAAOkc,IACfnc,GAAK+/G,UAAY5jG,GAAOnN,OACvBhP,GAAKkP,OAAO0f,kBAAkB5uB,GAAKwT,aACrCxT,GAAKkP,OAAOsgB,gBAAgBrT,GAAOsT,OAAOhc,WAC1CzT,GAAKuR,cAAc7B,MAAO,CAC5B,GAAC,gBAAA2M,IAAA,OAAAP,GAAAQ,MAAAxc,KAAAyc,UAAA,EALS,IAOZvc,GAAKwT,YAAc,EACnBxT,GAAKsZ,cAAgB,GAUrBtZ,GAAKs1B,UACFlxB,OAAQL,IAAUA,GAAMiyB,gBAAgBjgB,MACxCrU,UAAW2Q,KACV,MAAM9M,GAAO8M,GAAMlM,IAAKimB,MACb/Z,MAAO+Z,GAAEyB,KAAMrc,KAAM4a,GAAE/lB,QAElCrG,GAAKw1B,UAAU/yB,KAAK8C,GAAI,EACvB,EArDc,EAsDrB,CAEQ66G,YAINtgH,KAAKyR,cAAc7B,MAAO,EAC1B,IAAImgB,GAAgB,CAClBhR,cAAezF,KAAa0J,MAC5BgN,QAAS,CAAC,EAAG,KAIX/Z,GAAOjW,KAAK41B,QAAQ3f,KACxB,MAAMjF,GAAUof,KAAKgG,MAAMhG,KAAKC,UAAUrwB,KAAK41B,UAC/C,YAAa/yB,IAAToT,KACFA,GAAOjW,KAAKq2B,mBAAmBpgB,WACxBjF,GAAQiF,MAGjB8Z,GAAgB,IAAKA,MAAkB/e,SAEZnO,IAAvB7C,KAAKwZ,eAAsD,KAAvBxZ,KAAKwZ,gBAC3CuW,GAAgB,IACXA,GACE,WAAY/vB,KAAKwZ,gBAI1BxZ,KAAKiwB,iBAAmB,IAAIC,iBAAe,EACpC5a,MACLtV,KAAKmgH,cAAcI,qBACjBnwF,KAAKC,UAAUN,IACfzW,KAAa0J,MACbhjB,KAAK0tB,wBAAwBI,sBAC7B9tB,KAAK0T,YACL1T,KAAKyT,SACLwC,GACAjW,KAAKiwB,iBAAiBK,QAG5B,CAEArwB,WAAkB,CAElB80B,kBAAkBlnB,GAAaywG,IAC7B,MAAM/nF,GAAMpuB,SAASquB,kBAAkB,MACjCC,GAAa5oB,GAAOwf,OAAOqJ,QACjCH,GAAItW,QAASxa,KACXA,GAAKixB,SAAU,IAEbD,GACE6nF,KACFt+G,KAAK+/G,SAAWzB,GAChBzwG,GAAOwf,OAAOqJ,SAAU,GAGtB4nF,KACFzwG,GAAOwf,OAAOqJ,SAAU,EACxB12B,KAAK+/G,cAAWl9G,GAGpBgL,GAAOC,iBACT,CAEO6oB,aACL32B,KAAKu1B,cAAcqB,OACrB,CAEO4pF,qBACgB39G,MAAjB7C,KAAK+/G,UACP//G,KAAKogH,cAAcz2F,KAAK3pB,KAAK+/G,UAE/B//G,KAAK22B,YACP,CAEaG,qBAAqB/N,IAAU,IAAAlhB,GAAA7H,KAAA,SAAAG,KAAA,aACd,KAAxB4oB,GAAMsE,QAAQ9a,OAAgBwW,GAAMsE,QAAQ9a,OAAOmD,OAAS,KAC9D7N,GAAKo4G,UAAY,GACjBp4G,GAAKuH,OAAO2nB,oBAAoBhO,GAAMsE,OAAO9a,OAC9C,EAJyC,EAK5C,CAEOykB,mBACLh3B,KAAKigH,UAAY,GACjBjgH,KAAKoP,OAAO2nB,oBAAoB,GAClC,CAEQV,mBAAmBpgB,IAKzB,MAAMghB,GAJS7G,KAAKgG,MAAMngB,IAIL5P,IAAKimB,IACjBA,GAAEjgB,IAEX,IAAIigB,GAAI,GACR,UAAWjgB,MAAM4qB,GACf3K,GAAI,IAAKA,GAAGm0F,CAACp0G,IAAK,CAAC,MAErB,OAAO+jB,KAAKC,UAAU/D,GACxB,mDA5MW4zF,IAAsB1/G,MAAAC,MAAAD,MAAAE,MAAAF,MAAAuB,MAAAvB,MAAAgM,MAAAhM,MAAAiM,MAAA,oCAAtByzG,GAAsBv/G,UAAA,0BAAA0Q,UAAA,SAAAtQ,GAAAC,OAAA,EAAAD,4IAVtB,CACT,CACEyvB,KACA,CACExjB,QAASyjB,KACTtjB,SAAUujB,SAGflwB,OAAAI,MAAA,GAAAC,KAAA,EAAAmB,OAAA,k3CAAAlB,SAAA,SAAAC,GAAAC,IAAA,KAAAD,GAAA,kBD1ECP,MAFJ,cAEIA,CAFsC,UAEtCA,CAD2E,UAC1CA,MAAA,YAAMA,QAEvCA,MAAA,4BAMEA,MADF,WACEA,CADsC,YAGpCA,MAAA,mBAAAA,MAAAW,IAAA,MAAAg2B,GAAA32B,MAAA,UAAAA,MAAS22B,GAAApQ,QAAa,GACvBvmB,QACDA,MAAA,eAIEA,MAAA,iBAAAqN,IAAArN,aAAAW,IAAAX,MAASQ,GAAA81B,qBAAAjpB,IAA4B,GAJvCrN,QAOAA,MAAA,YAGEA,MAAA,mBAAAA,aAAAW,IAAAX,MAASQ,GAAAg2B,mBAAkB,GAGjCx2B,YAWAA,MAVA,GAAAkgH,GAAA,6BAUAlgH,CADC,GAAAmgH,GAAA,cA6DGngH,MAFJ,YAEIA,CAF0B,YAE1BA,CADqE,gBAEnEA,MAAA,mBAAAA,aAAAW,IAAAX,MAASQ,GAAA21B,aAAY,GAKrBn2B,MAAA,eACFA,QACAA,MAAA,gBAEEA,MAAA,mBAAAA,aAAAW,IAAAX,MAASQ,GAAAw/G,qBAAoB,GAK7BhgH,MAAA,eAIRA,qBA/GMA,MAAA,GAAAA,MAAA,UAAAQ,GAAA60B,qBAaEr1B,MAAA,GAAAA,MAAA,QAAAQ,GAAAwY,cAAAxY,GAAAwY,cAAA,IAGAhZ,MAAA,GAAAA,MAAA,cAAAQ,GAAAwY,eAOHhZ,cAAA,OAAAQ,GAAAyQ,cAAA7B,MAWApP,cAAA,QAAAQ,GAAAyQ,cAAA7B,MAuEGpP,MAAA,GAAAA,MAAA,gBAAAqC,IAAA7B,GAAA++G,0BCxDJrpG,KAAYhK,eACZqK,KAGA6pG,MAEArpF,KACA3G,MACAC,KACA2G,MAAuBpD,MACvBqD,MAAwBnN,OAAA,2xDAaf41F,EAAsB,KC3EtBW,GAAqB,MAA5B,MAAOA,GAGXhhH,cAFOG,KAAA8qB,SAA+B,IAAIja,KAE3B,CAERiwG,cACL9gH,KAAK8qB,SAASnB,MAChB,mDAPWk3F,GAAqB,sCAArBA,GAAqBp9G,QAArBo9G,GAAqBn9G,WAAA,SAArBm9G,EAAqB,uGCFhCrgH,MAAA,2BACEA,MAAA,yBAAAqN,IAAArN,MAAAW,IAAA,MAAAC,GAAAZ,QAAA,OAAAA,MAAiBY,GAAA2/G,gBAAAlzG,IAAuB,GACzCrN,sDAGHA,MAAA,oBAIEA,MAAA,4BAAAA,MAAAc,IAAA,MAAAF,GAAAZ,QAAA,OAAAA,MAAkBY,GAAA4/G,sBAAAF,cAAmC,GAEvDtgH,sDACAA,MAAA,WAEEA,MAAA,mBAAAA,MAAA4xB,IAAA,MAAAhxB,GAAAZ,QAAAygH,GAAAzgH,MAAA,UAAAA,MAASY,GAAAopB,aAAA5a,KAAkB,CAAAxH,MAAS,eAActH,SAAAmgH,KAA0B,GAG5EzgH,MAAA,WACEA,MAAA,8CAIFA,QAEEA,MADF,UACEA,CAD6C,YACrBA,MAAA,GAAyBA,QACjDA,MAAA,aAA6BA,MAAA,0BAG/BA,UACAA,MAAA,aACEA,MAAA,cAEJA,oCAbMA,MAAA,GAAAA,MAAA,MAAAA,MAAA,IAAAY,GAAAg/G,cAAAvhG,YAAAre,OAKsBA,MAAA,GAAAA,MAAA,MAAAY,GAAAg/G,cAAA,KAAAh/G,GAAAg/G,cAAA75G,MACK/F,MAAA,GAAAA,YAAA,UAAAY,GAAAg/G,cAAA,KAAAh/G,GAAAg/G,cAAArhG,iBCEjC,MAAMgZ,GAAoB,iBACpBmpF,GAAkB,gBAgBjB,IAAMC,GAA4B,MAAnC,MAAOA,GASXthH,YACS+xB,GACApH,GACAw2F,GACC9tF,GACA9kB,GACAyB,IALD7P,KAAA4xB,2BACA5xB,KAAAwqB,gBACAxqB,KAAAghH,yBACChhH,KAAAkzB,wBACAlzB,KAAAoO,oBACApO,KAAA6P,mBAdA7P,KAAAk4B,cAA+B,IAAIzxB,IAG5BzG,KAAAm4B,cAAgB,IAAItnB,MAanC7Q,KAAKghH,sBAAsBl2F,SACxB1kB,QAAKuM,KAAU3S,KAAKk4B,gBACpBt2B,UAAU,KACT5B,KAAKwqB,aAAa5a,KAAK,CACrBxH,MAAO,eACPtH,SAAUd,KAAK8gH,aAChB,EAEP,CAEApzG,cACE1N,KAAKk4B,cAAcv1B,OACnB3C,KAAKk4B,cAAchlB,UACrB,CAEMjT,WAAQ,IAAAC,GAAAF,KAAA,SAAAG,KAAA,YAIZ,GAHAD,GAAKkO,iBAAiBC,iBAAiBzM,UAAWkR,KAChD5S,GAAKk4B,iBAAmBtlB,MAErB5S,GAAKkgH,cAAe,CACvB,MAAMgB,GAAkBlhH,GAAKgzB,qBAAqBsF,QAChD,CACET,GACAmpF,GACA5nG,KAAa0J,MACb9iB,GAAKk4B,iBAAiB/rB,IACtBnC,KAAK,KACP,SAEF,QAAwBrH,IAApBu+G,GACF,OAEF,MAAM9C,SAAcp+G,GAAK2P,gBAAgB4O,eAAe2iG,IACxDlhH,GAAKkgH,cAAgB9B,GACrBp+G,GAAK0xB,wBAAwByvF,SAASnhH,GAAKkgH,cAC7C,CAAC,EApBW,EAqBd,CAEOW,gBAAgBlzG,IACrB7N,KAAKkzB,qBAAqB9mB,QACxB,CACE2rB,GACAmpF,GACA5nG,KAAa0J,MACbhjB,KAAKo4B,iBAAiB/rB,IACtBnC,KAAK,KACP2D,IAAQxB,GACR,SAEFrM,KAAK4xB,wBAAwByvF,SAASxzG,GACxC,mDAnEWszG,IAA4B3gH,MAAAC,MAAAD,MAAAE,MAAAF,MAAAuB,IAAAvB,MAAAgM,MAAAhM,MAAAiM,KAAAjM,MAAAkM,OAAA,oCAA5By0G,GAA4BxgH,UAAA,gCAAA0Q,UAAA,SAAAtQ,GAAAC,OAAA,EAAAD,6uBDhCzCP,MAbA,EAAA8gH,GAAA,yBAAA9gH,MAaAA,CAb0B,EAAA+gH,GAAA,qBAa1B/gH,CAFC,EAAAghH,GAAA,qBAJEhhH,MAAA,GAAAA,MAAA,OAAAQ,SAAAo/G,eAOA5/G,cAAA,OAAAQ,SAAAo/G,+BCsBC1pG,KAAY0d,KACZE,KAEAssF,MACA/nF,MACAqnF,IAAsB51F,OAAA,gJAIb62F,EAA4B,kHCfjC3gH,MAAA,0DADFA,MAAA,SACEA,MAAA,EAAAihH,GAAA,kDAGFjhH,gCAFKA,cAAA,OAAAA,MAAA,IAAAY,GAAAwwB,wBAAA8vF,uBC+BJ,IAAMC,GAA+B,MAAtC,MAAOA,GAYX9hH,YACS+xB,GACAmgC,GACAn6B,GACAgqF,GACAC,GACCC,GACA1yG,GACA4xE,GACAz+E,GACAwL,GACAmjB,IAAiB,IAAAhxB,GAAAF,KAVlBA,KAAA4xB,2BACA5xB,KAAA+xD,eACA/xD,KAAA43B,0BACA53B,KAAA4hH,iBACA5hH,KAAA6hH,gBACC7hH,KAAA8hH,kBACA9hH,KAAAoP,UACApP,KAAAghF,qBACAhhF,KAAAuC,WACAvC,KAAA+N,iBACA/N,KAAAkxB,SAfHlxB,KAAA+C,MAAQ/C,KAAK+xD,YAAY/uD,WAiJxBhD,KAAA09G,cAAYv9G,OAAG,YACrB,MAAMw9G,GAAgBz9G,GAAK0xB,wBAAwB+rF,gBAC7CoE,GAAe7hH,GAAK0xB,wBAAwBmwF,eAClD,IAAKpE,KAAkBoE,GAErB,YADA7hH,GAAKqC,QAAQgB,MAAM,qBAIrB,MAAMq6G,GAAyBC,KAAWmE,iBAEpC/D,GAAkBN,GAAcvuF,QAAQrW,KAC3CqI,IAAmB,QAAbA,GAAEmO,QAGX,IAAK0uF,GACH/9G,SAAKqC,QAAQkF,MAAM,wCACb,IAAI6d,MAAM,wCAGlB,MAAMnF,GAAc,IAAI8hG,KACtBhE,GAAgBzuF,MAAMnpB,IAAKy1B,MACzBm3B,SAAUn3B,GAAEv1B,KACZ43G,SAAUriF,GAAE3C,SACZj2B,IAAK44B,GAAE54B,OAEThD,GAAKgxB,MACLhxB,GAAKqC,SAGD2/G,GAAiBH,GAAa3yF,QAAQrW,KAAMqI,IAAmB,QAAbA,GAAEmO,QAE1D,IAAK2yF,GACHhiH,SAAKqC,QAAQkF,MAAM,uCACb,IAAI6d,MAAM,uCAGlB,MAAMg5F,GAAa,IAAI6D,KACrBD,GAAe1yF,MAAMnpB,IAAKy1B,MACxBm3B,SAAUn3B,GAAEv1B,KACZ43G,SAAUriF,GAAE3C,SACZj2B,IAAK44B,GAAE54B,OAEThD,GAAKgxB,MACLhxB,GAAKqC,SAGD67G,GAAkBl+G,GAAK0xB,wBAC1BzlB,UACAquG,aAAarrG,SAASnI,OACpByH,SAAoD5L,IAA9C4L,GAAE2gB,QAAQrW,KAAMqI,IAAmB,QAAbA,GAAEmO,SAEhClpB,IAAK+a,KACJ,MAAM/E,GAAS+E,GAAEgO,QAAQrW,KAAMqI,IAAmB,QAAbA,GAAEmO,QACvC,MAAO,CACL4jC,MAAO,IAAIivD,KACT/lG,GAAOmT,MAAMnpB,IAAKy1B,MAChBm3B,SAAUn3B,GAAEv1B,KACZrD,IAAK44B,GAAE54B,OAEThD,GAAKgxB,MACLhxB,GAAKqC,SAEP8J,GAAI+U,GAAE/U,MAINg2G,GAAqB,GAC3B,UAAW5vB,MAAOt+E,OAAOq6B,OAAOxb,MAAiB,CAC/C,MAAM6Y,GACJ3rC,GAAK0xB,wBAAwBzlB,UAAUquG,aAAapiG,YAAYq6E,IAClE,IAAK5mD,GAAK,SACV,MAAMxvB,GAASwvB,GAAIzc,QAAQrW,KAAMqI,IAAmB,QAAbA,GAAEmO,QACzC,IAAKlT,GAAQ,SACb,MAAM82C,GAAQ,IAAIivD,KAChB/lG,GAAOmT,MAAMnpB,IAAKy1B,MAChBm3B,SAAUn3B,GAAEv1B,KACZrD,IAAK44B,GAAE54B,OAEThD,GAAKgxB,MACLhxB,GAAKqC,SAGP8/G,GAAmB5vB,IAAO,CAAEpmF,GAAIw/B,GAAIx/B,GAAI8mD,MAAOA,GACjD,CAEAjzD,GAAKm+G,WAAW17G,KAAK,CACnBwM,SAAUivG,GACVE,MAAO,CACLjyG,GAAIiyG,GAAMjyG,GACV8mD,MAAOmrD,IAETn+F,OAAQ,CACN9T,GAAIsxG,GAActxG,GAClB8mD,MAAOhzC,IAETo+F,eAAgB,KAChBC,kBAAmB,KACnB/kG,KAAMmkG,GACNxlG,YAAaiqG,KAGfniH,GAAKi8G,cACP,GAtOEn8G,KAAK0+G,WAAa,IAAI9sG,UAA4B/O,GAClD7C,KAAKq+G,WAAa,IAAIzsG,UAA6B/O,GACnD7C,KAAK2+G,UAAY,IAAIl4G,IACrBzG,KAAK4+G,qBAAuB,CAC1BxsG,KAAM,cACN+/C,iBACEnyD,KAAKghF,kBAAkBp8E,OAAOG,iBAAiBotD,iBACjDz3B,OAAQ,OACRD,MAAO,OACPokF,wBAAwB,EACxBC,uBAAuB,EAE3B,CACMC,eAAerkF,GAAiBD,IAAc,IAAA5yB,GAAA7H,KAAA,SAAAG,KAAA,YAClD,aAAa0H,GAAKm3G,IAAID,gBAAiB,EADW,EAEpD,CAEA9+G,WAAQ,IAAA8H,GAAA/H,KACNA,KAAKyS,YAAc,IAAIhM,IACvBzG,KAAK0+G,WAAW98G,UAAW4uC,KACrBA,IAAQ/oC,QACVzH,KAAKuC,QAAQkF,MAAM,oCACnBzH,KAAK+N,cAAcC,eAAe,+BAClChO,KAAKuC,QAAQgB,MAAM,6BAA8BitC,IAAM,GAG3DxwC,KAAK4xB,wBAAwB8M,WAC1Bt4B,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAW0gH,KAGVtiH,KAAK4xB,wBAAwB2wF,yBAD3BD,GAAUE,gBAAgBC,qBAAsB,EAE9B,GAGxBziH,KAAK4xB,wBAAwBsqF,uBAC1B91G,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAU,KACT5B,KAAKm8G,cAAY,GAErBn8G,KAAK4xB,wBAAwBlP,UAC1Btc,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAW+F,KACV3H,KAAK09G,eACL19G,KAAKuC,QAAQgB,MACX,qBACAvD,KAAK4xB,wBAAwBzlB,UAAS,GAG5CnM,KAAK4xB,wBAAwBqtF,aAC1B74G,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAWs9G,KACNA,KACFl/G,KAAK09G,eACL19G,KAAK4xB,wBAAwButF,gBAAe,GAAK,GAIvDn/G,KAAK4xB,wBAAwBwtF,QAC1Bh5G,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAWue,KACVngB,KAAKuC,QAAQgB,MAAM,kBAAmB4c,IACtCngB,KAAK09G,cAAY,GAGrB19G,KAAK4xB,wBAAwB8wF,OAC1Bt8G,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAW08G,KACVt+G,KAAKuC,QAAQgB,MAAM,iBAAkB+6G,IACrCt+G,KAAK09G,cAAY,GAGrB19G,KAAK4xB,wBAAwB+wF,aAC1Bv8G,QAAKuM,KAAU3S,KAAKyS,cACpB7Q,UAAWwW,KACVpY,KAAKuC,QAAQgB,MAAM,uBAAwB6U,IAC3CpY,KAAK09G,cAAY,GAGrB19G,KAAK4xB,wBAAwBonF,qBAC1B5yG,QACCuM,KAAU3S,KAAKyS,cAAW,EAC1BzL,KAAQyH,IAAMA,KAEf7M,WAASzB,OAAC,YACT,MAAMygB,SAAc7Y,GAAKg3G,uBACnBh3G,GAAK+5G,eAAe1F,cACxBr0G,GAAK6pB,wBACLhR,IACA,GAEF7Y,GAAK6pB,wBAAwBupF,cAC/B,IACFn7G,KAAK4xB,wBAAwBqnF,kCAC1B7yG,QACCuM,KAAU3S,KAAKyS,cAAW,EAC1BzL,KAAQyH,IAAMA,KAEf7M,WAASzB,OAAC,YACT,MAAMygB,SAAc7Y,GAAKg3G,uBACnBh3G,GAAK+5G,eAAe1F,cACxBr0G,GAAK6pB,wBACLhR,IACA,GAEF,MAAM3c,GAAQ8D,GAAK6pB,wBAAwBzlB,UAC3CpE,GAAKqH,OAAO6B,YACVwrG,KAAuB,CACrBtmF,YAAalyB,GAAMkyB,cAGzB,IACFn2B,KAAK4xB,wBAAwBytF,iBAC1Bj5G,QACCuM,KAAU3S,KAAKyS,cAAW,EAC1BzL,KAAQyH,IAAMA,KAEf7M,WAASzB,OAAC,YACT,MAAMygB,SAAc7Y,GAAKg3G,uBACnBh3G,GAAK+5G,eAAe1F,cACxBr0G,GAAK6pB,wBACLhR,IACA,GAEF7Y,GAAK6pB,wBAAwBupF,cAC/B,GACJ,CA0GAztG,cACE1N,KAAKyS,YAAY9P,OACjB3C,KAAKyS,YAAYS,WACjBlT,KAAKyS,YAAYU,cACjBnT,KAAKyS,iBAAc5P,CACrB,CAEO06G,mBACLv9G,KAAK43B,uBAAuBC,cAC9B,CAEQskF,eACN,MAAM35C,GAAexiE,KAAK4xB,wBAAwBzlB,UAQhDnM,KAAK4xB,wBAAwBgoF,8BAL7Bp3C,GAAa88C,kBAAkB/4G,MAC/Bi8D,GAAag4C,cAAcr6F,QAC3BqiD,GAAag4C,cAAc8D,OAC3B97C,GAAag4C,cAAcrrG,UAAUuG,OAAS,EAEa,CACzDknG,WAAW,GAG8C,CACzDA,WAAW,GAGjB,mDA7RW+E,IAA+BnhH,MAAAC,MAAAD,MAAAE,OAAAF,MAAAuB,MAAAvB,MAAAgM,MAAAhM,MAAAiM,MAAAjM,MAAAkM,MAAAlM,MAAA4zB,MAAA5zB,MAAAyhC,OAAAzhC,MAAAm3D,KAAAn3D,MAAA++G,MAAA/+G,MAAAk/G,OAAA,oCAA/BiC,GAA+BhhH,UAAA,mCAAA0Q,UAAA,SAAAtQ,GAAAC,OAAA,EAAAD,knBD7D1CP,MADF,UACEA,CADyC,WAEvCA,MAAA,kCASFA,QAEEA,MADF,UACEA,CAD2E,WAEzEA,MAAA,yBAeAA,MAAA,EAAAoiH,GAAA,8BAMApiH,MAAA,6BAGEA,MADF,WACEA,CADgB,SACZA,MAAA,aAAMA,QAERA,MADF,YACEA,CAD8B,sDAG5BA,MAAA,2BAAAA,aAAAW,IAAAX,MAAiBQ,GAAAu8G,mBAAkB,GAIzC/8G,YAGEA,MADF,WACEA,CADgB,SACZA,MAAA,YAAKA,QACTA,MAAA,aACEA,MAAA,qDAKJA,UAEAA,MAAA,yBAGNA,mBAzDMA,MAAA,GAIAA,MAJA,WAAAQ,GAAA49G,qBAIAp+G,CAJiC,aAAAQ,GAAAq9G,WAIjC79G,CAHyB,aAAAQ,GAAA09G,WAGzBl+G,CAFyB,YAAAQ,GAAA29G,UAEzBn+G,CADuB,QAAAQ,GAAA+B,OAsBjBvC,MAAA,GAAAA,MAAA,OAAAA,MAAA,IAAAQ,GAAA+wD,YAAA3qD,uBAMiB5G,MAAA,GAAAA,MAAA,kBAMjBA,MAAA,GAAAA,MAAA,iBAAAA,MAAA,MAAAQ,GAAA4wB,wBAAAwtF,UAWA5+G,MAAA,GAAAA,MAAA,gBAAAA,MAAA,MAAAQ,GAAA4wB,wBAAA8wF,yBCLRhsG,KAAYipG,UAEZ5oG,KACAimG,IAAyB6F,KAEzBpK,IACAxjD,KACA+lD,EACA/iF,IACAkpF,GACAluF,MAA2B3I,OAAA,yEAKlBq3F,EAA+B,6FCxDxCnhH,MAAA,oDAMAA,MAAA,wDAMAA,MAAA,2DAMAA,MAAA,uDAvBFA,MAAA,2CAIAA,MAAA,WACEA,MAAA,EAAAsiH,GAAA,gDAMAtiH,MAAA,EAAAuiH,GAAA,oDAMAviH,MAAA,EAAAwiH,GAAA,uDAMAxiH,MAAA,EAAAyiH,GAAA,gDAMFziH,gCA5BEA,MAAA,gBAAAA,MAAA,IAAAu4B,GAAAnH,wBAAAsxF,gBAKG1iH,MAAA,GAAAA,MAAA,OAAAA,MAAA,IAAAu4B,GAAAnH,wBAAAC,gBAAAkH,GAAA4/E,gBAAAz1F,YAMA1iB,MAAA,GAAAA,MAAA,OAAAA,MAAA,IAAAu4B,GAAAnH,wBAAAC,gBAAAkH,GAAA4/E,gBAAAz3E,gBAMA1gC,MAAA,GAAAA,MAAA,OAAAA,MAAA,KAAAu4B,GAAAnH,wBAAAC,gBAAAkH,GAAA4/E,gBAAA35F,oBAMAxe,MAAA,GAAAA,MAAA,OAAAA,MAAA,MAAAu4B,GAAAnH,wBAAAC,gBAAAkH,GAAA4/E,gBAAA33E,YC8BA,IAAMmiF,GAA2B,MAAlC,MAAOA,GAMXtjH,YACUgQ,GACAtN,GACAkI,GACDmnB,GACCwxF,GACD54F,IALCxqB,KAAA6P,mBACA7P,KAAAuC,WACAvC,KAAAyK,SACDzK,KAAA4xB,2BACC5xB,KAAAojH,wBACDpjH,KAAAwqB,gBAVFxqB,KAAA24G,gBAAkBr/F,IAWtB,CAEGrZ,WAAQ,IAAAC,GAAAF,KAAA,SAAAG,KAAA,YACZD,GAAKuS,YAAc,IAAIhM,IAEvBvG,GAAK2P,gBAAgBk7E,uBAClB3kF,QAAKuM,KAAUzS,GAAKuS,cACpB7Q,UAAU,IAAM1B,GAAKqC,QAAQgB,MAAM,YAEtCrD,GAAK0xB,wBAAwB8M,WAC1Bt4B,QAAKuM,KAAUzS,GAAKuS,cACpB7Q,UACE0qB,KACCpsB,GAAKqC,QAAQgB,MAAM,8BAA+B+oB,IACxC,OAANA,IACFpsB,GAAKkjH,qBAAqBC,QAAQ/2F,GAAGpsB,GAAK0xB,wBAAuB,GAKzE1xB,GAAKuK,MACFnG,OAAOg/G,MACPl9G,QAAKuM,KAAUzS,GAAKuS,cACpB7Q,UAAW0qB,KACVpsB,GAAK0xB,wBAAwBve,QAEnB,OAANiZ,IAKJpsB,GAAKsqB,aAAawsF,OAAO,CACvB5uG,MAAO,qBACPtH,SAAUZ,GAAKqjH,uBACfC,gBAAgB,EAChBrM,QAASA,KACPj3G,GAAKqC,QAAQgB,MAAM,uBACnBrD,GAAKuK,MAAMwG,YAASwyG,QAAsB,IAI9CvjH,GAAK0xB,wBAAwB8xF,aAAap3F,KAdxCpsB,GAAKy2B,YAcoC,GAG/Cz2B,GAAK0xB,wBAAwB+xF,cAC1Bv9G,QAAKuM,KAAUzS,GAAKuS,cACpB7Q,UAAW6M,KACNA,IACFvO,GAAKy2B,YAAU,EAEhB,EAhDO,EAiDd,CAEOA,aACL32B,KAAKwqB,aAAaoM,OACpB,CAEAlpB,cACE1N,KAAKyS,YAAY9P,OACjB3C,KAAKyS,YAAYS,WACjBlT,KAAKyS,YAAYU,cACjBnT,KAAKyS,iBAAc5P,CACrB,mDA3EWsgH,IAA2B3iH,MAAAC,MAAAD,MAAAE,KAAAF,MAAAuB,MAAAvB,MAAAgM,MAAAhM,MAAAiM,MAAAjM,MAAAkM,MAAA,oCAA3By2G,GAA2BxiH,UAAA,+BAAA0Q,UAAA,SAAAtQ,GAAAC,OAAA,EAAAD,qHAV3B,CACT6iH,KACA9qF,KACA+nF,GACA,CACE7zG,QAAS4qD,IACTzqD,SAAUmtG,KAEb95G,OAAAI,MAAA,EAAAC,KAAA,EAAAmB,OAAA,mGAAAlB,SAAA,SAAAC,GAAAC,IAAA,EAAAD,IDrDHP,MAAA,EAAAqjH,GAAA,2BAAArjH,sBCmCIkW,KAAY0d,UACZynF,EACAoB,EACA0E,GAEAnE,GACAzmG,KAAekrB,MAAA3X,OAAA,ooBAcN64F,EAA2B,mHCSxC,MAAMjqG,EAAqC,CACzComG,kBAAmB,CACjB1C,WAAW,GAEbkH,gBAAiB,KACjB7tG,KAAM,GACNqsG,UAAW,KACXyB,aAAc,CACZn0G,MAAM,EACN8B,KAAM,aACNrF,GAAI,kBAEN23G,gBAAgB,EAChB7tF,YAAa7c,KAAaC,UAC1BrV,SAAU,CACR+/G,cAAc,EACdC,gBAAgB,EAChBC,iBAAiB,EACjBC,aAAa,GAEf5J,aAAc,CACZr6F,OAAQ,KACRm+F,MAAO,KACPnvG,SAAU,GACV+lD,iBAAkB,GAClBmvD,qBAAqB,EACrBC,gBAAiB,KACjBlsG,YAAa,CAAEma,SAAK1vB,EAAWgwB,YAAQhwB,EAAW6vB,YAAQ7vB,IAE5D0hH,QAAS,CACP74C,QAAQ,EACR84C,kBAAmB,GACnBpI,eAAe,EACfqI,WAAW,EACXC,4BAA4B,EAC5BC,cAAc,GAEhBlC,oBAAoB,GAIf,IAAMmB,EAAwB,MAA/B,MAAOA,UAAgChgH,KAC3C/D,cACEgE,MAAMqV,GAGClZ,KAAA29G,cAAgB,IAChB39G,KAAK8C,MAAM03G,aAAar6F,OAExBngB,KAAA+hH,aAAe,IACf/hH,KAAK8C,MAAM03G,aAAa8D,MAExBt+G,KAAA4kH,mBAAqB,IACrB5kH,KAAK8C,MAAM03G,aAAapiG,YAExBpY,KAAA28G,kBAAoB,IACpB38G,KAAK8C,MAAMw8G,kBAEXt/G,KAAA6kH,uBAAyB,IACzB7kH,KAAK8C,MAAMghH,gBAEX9jH,KAAA8kH,sBAAwB,IACxB9kH,KAAK8C,MAAMkhH,eAEXhkH,KAAAmM,QAAU,IACVnM,KAAK8C,MAGL9C,KAAAkjH,cAAgBljH,KAAKsE,OAAOygH,GAC5B/kH,KAAAm4G,mBAAqBn4G,KAAKsE,OAAO0gH,GACjChlH,KAAAk8G,uBAAyBl8G,KAAKsE,OAAO2gH,GACrCjlH,KAAAy5G,uBAAyBz5G,KAAKsE,OAAO4gH,GACrCllH,KAAA05G,2BAA6B15G,KAAKsE,OAAO6gH,GACzCnlH,KAAA47G,wBAA0B57G,KAAKsE,OAAO8gH,GACtCplH,KAAA+8G,gBAAkB/8G,KAAKsE,OAAO+gH,GAC9BrlH,KAAA0hH,oBAAsB1hH,KAAKsE,OAAOghH,GAElCtlH,KAAA+6G,cAAgB/6G,KAAKsE,OAAQC,GAAMA,EAAEL,SAAS+/G,cAC9CjkH,KAAAm6G,gBAAkBn6G,KAAKsE,OAAQC,GAAMA,EAAEL,SAASggH,gBAChDlkH,KAAAo6G,iBAAmBp6G,KAAKsE,OAAQC,GAAMA,EAAEL,SAASigH,iBACjDnkH,KAAAq6G,aAAer6G,KAAKsE,OAAQC,GAAMA,EAAEL,SAASkgH,aAC7CpkH,KAAA6xB,aAAe7xB,KAAKsE,OAAQC,GAAMA,EAAE4xB,aACpCn2B,KAAA0+B,WAAa1+B,KAAKsE,OAAQC,GAAMA,EAAE+9G,WAClCtiH,KAAA88G,iBAAmB98G,KAAKsE,OAAQC,GAAMA,EAAEu/G,iBACxC9jH,KAAAo/G,QAAUp/G,KAAKsE,OAAQC,GAAMA,EAAEi2G,aAAar6F,QAC5CngB,KAAA0iH,OAAS1iH,KAAKsE,OAAQC,GAAMA,EAAEi2G,aAAa8D,OAC3Ct+G,KAAA2iH,aAAe3iH,KAAKsE,OAAQC,GAAMA,EAAEi2G,aAAapiG,aACjDpY,KAAA0iB,UAAY1iB,KAAKsE,OAAQC,GAAMA,EAAEi2G,aAAarrG,UAC9CnP,KAAA41D,iBAAmB51D,KAAKsE,OAC9BC,GAAMA,EAAEi2G,aAAa8J,iBAEftkH,KAAAsyB,kBAAoBtyB,KAAKsE,OAC/BC,GAAMA,EAAEi2G,aAAatlD,kBAEfl1D,KAAAi/G,aAAej/G,KAAKsE,OAC1BC,GAAMA,EAAEi2G,aAAa6J,qBAEfrkH,KAAAm5G,MAAQn5G,KAAKsE,OAAQC,GAAMA,EAAE0R,MAE7BjW,KAAAqT,MAAQrT,KAAKgE,QAAS2D,QAC1BuR,KAGIlZ,KAAAulH,YAAcvlH,KAAKgE,QAASC,QAChCA,EACH8/G,aAAc,IACT9/G,EAAM8/G,aACTn0G,MAAM,MAID5P,KAAAwlH,YAAcxlH,KAAKgE,QAASC,QAChCA,EACH8/G,aAAc,IACT9/G,EAAM8/G,aACTn0G,MAAM,MAID5P,KAAA45G,8BAAgC55G,KAAKgE,QAC5C,CAACC,EAAOwB,SACHxB,EACHq7G,kBAAmB,IACdr7G,EAAMq7G,qBACN75G,MAKAzF,KAAAylH,6BAA+BzlH,KAAKgE,QAASC,QACjDA,EACHq7G,kBAAmB,CACjB1C,WAAW,MAIN58G,KAAA0lH,qBAAuB1lH,KAAKgE,QAAQ,CAACC,EAAOwB,SAChDxB,EACH+/G,eAAgBv+G,KAGTzF,KAAA68G,qBAAuB78G,KAAKgE,QAASC,QACzCA,EACH+/G,gBAAiB//G,EAAM+/G,kBAGhBhkH,KAAAuiH,yBAA2BviH,KAAKgE,QAAQ,CAACC,EAAOwB,SACpDxB,EACHw+G,mBAAoBh9G,EACpBvB,SAAU,IACLD,EAAMC,SACTkgH,aAAc3+G,MAITzF,KAAA2lH,yBAA2B3lH,KAAKgE,QAASC,QAC7CA,EACHw+G,oBAAqBx+G,EAAMw+G,sBAGpBziH,KAAA4lH,eAAiB5lH,KAAKgE,QAAQ,CAACC,EAAOmO,SAC1CnO,EACHkyB,YAAa/jB,KAGNpS,KAAA6lH,qBAAuB7lH,KAAKgE,QAASC,QACzCA,EACH6/G,gBAAiB,QAGV9jH,KAAA8lH,mBAAqB9lH,KAAKgE,QAAQ,CAACC,EAAOvB,SAC9CuB,EACH6/G,gBAAiBphH,KAGV1C,KAAA+D,YAAc/D,KAAKgE,QAC1B,CAACC,EAAOC,SACHD,EACHC,cAIKlE,KAAA0jH,aAAe1jH,KAAKgE,QAC3B,CACEC,EACAq+G,SAMGr+G,EACHq+G,eAIKtiH,KAAAy4B,UAAYz4B,KAAKgE,QAAQ,CAACC,EAAOkc,SACrClc,EACHu2G,aAAc,IACTv2G,EAAMu2G,aACTr6F,aAIKngB,KAAAqhH,SAAWrhH,KAAKgE,QAAQ,CAACC,EAAOq6G,SACpCr6G,EACHu2G,aAAc,IACTv2G,EAAMu2G,aACT8D,YAIKt+G,KAAAuzB,eAAiBvzB,KAAKgE,QAC7B,CAACC,EAAOmU,SACHnU,EACHu2G,aAAc,IACTv2G,EAAMu2G,aACTpiG,kBAKGpY,KAAAy6G,YAAcz6G,KAAKgE,QAC1B,CACEC,EACAkL,SAMGlL,EACHu2G,aAAc,IACTv2G,EAAMu2G,aACTrrG,eAKGnP,KAAAm/G,eAAiBn/G,KAAKgE,QAAQ,CAACC,EAAOi7G,SAC1Cj7G,EACHu2G,aAAc,IACTv2G,EAAMu2G,aACT6J,oBAAqBnF,MAIhBl/G,KAAAyzB,oBAAsBzzB,KAAKgE,QAClC,CAACC,EAAOkL,SACHlL,EACHu2G,aAAc,IACTv2G,EAAMu2G,aACTtlD,iBAAkB/lD,MAIfnP,KAAAm2D,mBAAqBn2D,KAAKgE,QAAQ,CAACC,EAAOw8B,SAC9Cx8B,EACHu2G,aAAc,IACTv2G,EAAMu2G,aACT8J,gBAAiB7jF,MAGZzgC,KAAAka,QAAUla,KAAKgE,QAAQ,CAACC,EAAOgS,SACnChS,EACHgS,UAGOjW,KAAA85G,YAAc95G,KAAKgE,QAAQ,CAACC,EAAO6rB,SACvC7rB,EACHgS,KAAMtO,SAAS,IAAI1D,EAAMgS,KAAM6Z,GAAOxD,GAAMA,EAAEjgB,OAGvCrM,KAAA+lH,cAAgB/lH,KAAKgE,QAAQ,CAACC,EAAO6rB,SACzC7rB,EACHgS,KAAM,MAGCjW,KAAA+5G,eAAiB/5G,KAAKgE,QAAQ,CAACC,EAAO6rB,SAC1C7rB,EACHgS,KAAM,IAAIhS,EAAMgS,KAAM6Z,GAAK9oB,OAAQqhB,GAAMA,EAAEhc,KAAOyjB,EAAIzjB,OAK/CrM,KAAA2jH,cAAgB3jH,KAAKsE,OAAQC,GAAMA,EAAEggH,QAAQ74C,QAC7C1rE,KAAAgmH,yBAA2BhmH,KAAKsE,OACtCC,GAAMA,EAAEggH,QAAQC,mBAEVxkH,KAAAi5G,kCAAoCj5G,KAAKsE,OAC/CC,GAAMA,EAAEggH,QAAQG,4BAEV1kH,KAAAg5G,qBAAuBh5G,KAAKsE,OAAQC,GAAMA,EAAEggH,QAAQnI,eACpDp8G,KAAAq/G,iBAAmBr/G,KAAKsE,OAAQC,GAAMA,EAAEggH,QAAQE,WAChDzkH,KAAAimH,oBAAsBjmH,KAAKsE,OAAQC,GAAMA,EAAEggH,QAAQI,cAEnD3kH,KAAAm7G,aAAen7G,KAAKgE,QAASC,QACjCA,EACH8/G,aAAc,IACT9/G,EAAM8/G,aACTn0G,MAAM,GAER20G,QAAS,IACJtgH,EAAMsgH,QACT74C,QAAQ,EACR84C,kBAAmB,OAIdxkH,KAAAkmH,wBAA0BlmH,KAAKgE,QACtC,CAACC,EAAOkiH,SACHliH,EACH8/G,aAAc,IACT9/G,EAAM8/G,aACTn0G,MAAM,GAER20G,QAAS,IACJtgH,EAAMsgH,QACT74C,QAAQ,EACR84C,kBAAmB2B,MAKhBnmH,KAAAo7G,oBAAsBp7G,KAAKgE,QAASC,QACxCA,EACH8/G,aAAc,IACT9/G,EAAM8/G,aACTn0G,MAAM,GAER20G,QAAS,IACJtgH,EAAMsgH,QACTnI,eAAe,MAIVp8G,KAAAw7G,gCAAkCx7G,KAAKgE,QAASC,QACpDA,EACH8/G,aAAc,IACT9/G,EAAM8/G,aACTn0G,MAAM,GAER20G,QAAS,IACJtgH,EAAMsgH,QACTG,4BAA4B,MAIvB1kH,KAAAs7G,gBAAkBt7G,KAAKgE,QAASC,QACpCA,EACH8/G,aAAc,IACT9/G,EAAM8/G,aACTn0G,MAAM,GAER20G,QAAS,IACJtgH,EAAMsgH,QACTE,WAAW,MAINzkH,KAAAomH,mBAAqBpmH,KAAKgE,QAASC,QACvCA,EACHsgH,QAAS,IACJtgH,EAAMsgH,QACTI,cAAc,MAIT3kH,KAAAqmH,wBAA0BrmH,KAAKgE,QAASC,QAC5CA,EACHsgH,QAAS,IACJtgH,EAAMsgH,QACTI,cAAc,MAIT3kH,KAAAqxD,yBAA2BrxD,KAAKgE,QACvC,CAACC,EAAO6+D,KACN,MAAM3zD,EAAWlL,EAAMu2G,aAAarrG,SAAS9I,IAAKo6B,IAC5CA,EAAQp0B,KAAOy2D,EAAOriC,QAAQp0B,KAElCo0B,EAAQwwB,eAAiB6R,EAAOv2C,SACzBkU,IAGHy0B,EAAmBjxD,EAAMu2G,aAAatlD,iBAAiB7uD,IAC1Do6B,IACKA,EAAQp0B,KAAOy2D,EAAOriC,QAAQp0B,KAElCo0B,EAAQwwB,eAAiB6R,EAAOv2C,SACzBkU,IAIX,MAAO,IACFx8B,EACHu2G,aAAc,IACTv2G,EAAMu2G,aACTtlD,mBACA/lD,cAnWR,iDAHWy0G,EAAuB,sCAAvBA,EAAuBngH,QAAvBmgH,EAAuBlgH,WAAA,SAAvBkgH,CAAwB,KA+W9B,MAAMmB,EAAsB9gH,GACjCA,EAAM8/G,aAUKsB,IATAiB,EAAyBztG,MACpCksG,EACC9gH,GAA0BA,EAAM2L,OAEtB22G,EAAyB1tG,MACpCksG,EACC9gH,GAA0BA,EAAMyN,MAGEzN,GACnCA,EAAM+/G,gBAEKsB,EAA4BrhH,GACvCA,EAAMw+G,mBACKuC,EAAoB/gH,GAC/BA,EAAMq7G,kBAEK2F,KAAuBpsG,MAClCmsG,EACC/gH,GAAmCA,EAAMsC,MAE/B4+G,KAA2BtsG,MACtCmsG,EACC/gH,GAAmCA,EAAMkpC,UAE/B+3E,KAAuBrsG,MAClCmsG,EACC/gH,GAAmCA,EAAMo1B,MAE/B+rF,KAA0BvsG,MACrCmsG,EACC/gH,GAAmCA,EAAM24G,+KCjerC,IAAM4J,EAAuB,MAA9B,MAAOA,UAA+BC,IAC1C5mH,YACUqxB,EACAsK,EACR3rB,EACQtN,EACA0S,EACRyxG,EACQC,EACRC,GAAuB,IAAA1mH,EAEvB2D,MAAMgM,EAAiB62G,EAAiBE,GAAW1mH,EAAAF,KAT3CA,KAAAkxB,QACAlxB,KAAAw7B,eAEAx7B,KAAAuC,UACAvC,KAAAiV,kBAEAjV,KAAA2mH,qBAMV3mH,KAAA6mH,iBAAgB,eAAA7qG,KAAA7b,KAAG,UACjBmiH,EACA73G,GAEAA,EAAMg7G,+BACNh7G,EAAMo7G,uBACNp7G,EAAMm7G,eAAetD,EAAUnsF,aAC/B1rB,EAAM1G,YAAY,CAChBkgH,cAAc,EACdC,gBAAgB,EAChBC,iBAAiB,EACjBC,aAAa,GAEjB,GAAC,gBAAA7nG,EAAAM,GAAA,OAAAb,EAAAQ,MAAAxc,KAAAyc,UAAA,EAbe,GAehBzc,KAAA8mH,YAAW,eAAAnqG,KAAAxc,KAAG,UACZ4mH,EACAroG,GAEA,MAAMsoG,EAAWD,EAAc1gH,IAAG,eAAAyW,KAAA3c,KAAC,UAAOsvB,GACxCA,SAAKwJ,gBAAgBuD,gBAAkB9d,EAAQrS,GAC/CojB,EAAKiK,YAAY/2B,KAAK42B,IAAkB2lC,WACjCh/D,EAAKymH,mBAAmBvhC,WAC7B31D,EAAKwJ,gBACLxJ,EAAKA,KAET,GAAC,gBAAAtQ,GAAA,OAAArC,EAAAN,MAAAxc,KAAAyc,UAAA,EAPiC,IASlCuqG,EAAS3gH,IAAI,CAACgvC,EAAG16B,KACf06B,EAAEh1C,KAAMsH,IACNo/G,EAAcpsG,GAAO+e,YAAY/2B,KAAK42B,IAAkB4lC,KAAI,EAC7D,SAGGxnD,QAAQyE,IAAI4qG,EACpB,GAAC,gBAAA9oG,EAAAI,GAAA,OAAA3B,EAAAH,MAAAxc,KAAAyc,UAAA,EApBU,GAsBXzc,KAAAo8G,cAAa,eAAAh+F,KAAAje,KAAG,UACdsK,EACA+kB,GAMAtvB,EAAKqC,QAAQgB,MAAM,mCACnB,MAAMuP,QAAiB5S,EAAK+U,gBAAgB9G,kBACtClK,EAAQwG,EAAM0B,UACdq9E,QAAgBtpF,EAAK+mH,cACzBn0G,EACA7O,EAAMq7G,kBACNr7G,EAAMkyB,aAGF+wF,EAAehnH,EAAKinH,iBACxBljH,EAAMq7G,kBACN91B,EAAQn9E,IAEV66G,EAAavlF,SAAW,CACtBylF,iBAAkBnjH,EAAM+/G,gBAE1BkD,EAAaG,YAAc,CACzBt4C,KAAM,SAER,MAAMstC,QAAcn8G,EAAKonH,cAAcJ,SACjChnH,EAAKqnH,WAAWlL,EAAOp4G,EAAMgS,MACnC,MAAM2H,EACJ4R,QAAMvgB,UACF,GACAugB,EAAMvgB,UAIZ,SAHM/O,EAAK4mH,YAAY,CAACt3F,EAAM6sF,SAAUz+F,GAAOy+F,SACzCn8G,EAAK2P,gBAAgBm8E,SAASqwB,EAAMhwG,IAEtCmjB,EAAM1tB,KAAM,CACd,MAAM0lH,EAActnH,EAAKinH,iBACvBljH,EAAMq7G,kBACN91B,EAAQn9E,IAEVm7G,EAAY7lF,SAAW,CACrBylF,iBAAkBnjH,EAAM+/G,gBAE1BwD,EAAYH,YAAc,CACxBt4C,KAAM,QAER,MAAMjtE,SAAa5B,EAAKonH,cAAcE,SAChCtnH,EAAKqnH,WAAWzlH,GAAMmC,EAAMgS,MAGlCuZ,EAAM1tB,KAAMm3B,gBAAgBoD,OAC1BC,IAAmBC,sBAAsBlwB,GAC3C,MAAMuR,EACJ4R,QAAMvgB,UACF,GACAugB,EAAMvgB,gBACN/O,EAAK4mH,YAAY,CAACt3F,EAAM1tB,QAAS8b,GAAO9b,UACxC5B,EAAK2P,gBAAgBm8E,SAASlqF,GAAKuK,GAC3C,CACF,GAAC,gBAAAoT,EAAAC,GAAA,OAAAtB,EAAA5B,MAAAxc,KAAAyc,UAAA,EA5DY,EAvCb,iDAZW+pG,GAAsBhmH,MAAAC,MAAAD,MAAAE,MAAAF,MAAAE,MAAAF,MAAAuB,KAAAvB,MAAAgM,KAAAhM,MAAAE,MAAAF,MAAAE,MAAAF,MAAAiM,MAAA,sCAAtB+5G,EAAsB/iH,QAAtB+iH,EAAsB9iH,UAAA0H,WAFrB,QAAM,SAEPo7G,CAAuB,8JCD7B,IAAMiB,EAA0B,MAAjC,MAAOA,UAAkChB,IAC7C5mH,YACUqxB,EACAsK,EACR3rB,EACQtN,EACA0S,EACRyxG,EACQC,EACRC,GAAuB,IAAA1mH,EAEvB2D,MAAMgM,EAAiB62G,EAAiBE,GAAW1mH,EAAAF,KAT3CA,KAAAkxB,QACAlxB,KAAAw7B,eAEAx7B,KAAAuC,UACAvC,KAAAiV,kBAEAjV,KAAA2mH,qBAMV3mH,KAAA6mH,iBAAgB,eAAA7qG,KAAA7b,KAAG,UACjBmiH,EACA73G,GAEAA,EAAMg7G,+BACNh7G,EAAMo7G,uBACNp7G,EAAMm7G,eAAetD,EAAUnsF,aAC/B1rB,EAAM1G,YAAY,CAChBkgH,cAAc,EACdC,gBAAgB,EAChBC,iBAAiB,EACjBC,aAAa,GAEjB,GAAC,gBAAA7nG,EAAAM,GAAA,OAAAb,EAAAQ,MAAAxc,KAAAyc,UAAA,EAbe,GAehBzc,KAAA8mH,YAAW,eAAAnqG,KAAAxc,KAAG,UACZ4mH,EACAroG,GAEA,MAAMsoG,EAAWD,EAAc1gH,IAAG,eAAAyW,KAAA3c,KAAC,UAAOsvB,GACxCA,SAAKwJ,gBAAgBuD,gBAAkB9d,EAAQrS,GAC/CojB,EAAKiK,YAAY/2B,KAAK42B,IAAkB2lC,WACjCh/D,EAAKymH,mBAAmBvhC,WAC7B31D,EAAKwJ,gBACLxJ,EAAKA,KAET,GAAC,gBAAAtQ,GAAA,OAAArC,EAAAN,MAAAxc,KAAAyc,UAAA,EAPiC,IASlCuqG,EAAS3gH,IAAI,CAACgvC,EAAG16B,KACf06B,EAAEh1C,KAAMsH,IACNo/G,EAAcpsG,GAAO+e,YAAY/2B,KAAK42B,IAAkB4lC,KAAI,EAC7D,SAGGxnD,QAAQyE,IAAI4qG,EACpB,GAAC,gBAAA9oG,EAAAI,GAAA,OAAA3B,EAAAH,MAAAxc,KAAAyc,UAAA,EApBU,GAsBXzc,KAAAo8G,cAAa,eAAAh+F,KAAAje,KAAG,UACdsK,EACA+kB,GAKAtvB,EAAKqC,QAAQgB,MAAM,uCACnB,MAAMuP,QAAiB5S,EAAK+U,gBAAgB9G,kBACtClK,EAAQwG,EAAM0B,UACdq9E,QAAgBtpF,EAAK+mH,cACzBn0G,EACA7O,EAAMq7G,kBACNr7G,EAAMkyB,aAGF+wF,EAAehnH,EAAKinH,iBACxBljH,EAAMq7G,kBACN91B,EAAQn9E,IAEJgwG,QAAcn8G,EAAKonH,cAAcJ,SACjChnH,EAAKqnH,WAAWlL,EAAOp4G,EAAMgS,MACnC,MAAM2H,EACJ4R,QAAMvgB,UACF,GACAugB,EAAMvgB,gBACN/O,EAAK4mH,YAAY,CAACt3F,EAAM4tF,OAAQx/F,GAAOy+F,SACvCn8G,EAAK2P,gBAAgBm8E,SAASqwB,EAAMhwG,GAC5C,GAAC,gBAAAoT,EAAAC,GAAA,OAAAtB,EAAA5B,MAAAxc,KAAAyc,UAAA,EA5BY,EAvCb,iDAZWgrG,GAAyBjnH,MAAAC,MAAAD,MAAAE,MAAAF,MAAAE,MAAAF,MAAAuB,KAAAvB,MAAAgM,KAAAhM,MAAAE,MAAAF,MAAAE,MAAAF,MAAAiM,MAAA,sCAAzBg7G,EAAyBhkH,QAAzBgkH,EAAyB/jH,UAAA0H,WAFxB,QAAM,SAEPq8G,CAA0B,oLCmChC,IAAMC,EAA8B,MAArC,MAAOA,UAAsCjB,IAYjD5mH,YACE8nH,EACQC,EACArlH,EACA0S,EACR4yG,EACQlB,EACRC,EACQkB,EACAtsF,EACAtK,GAAiB,IAAAhxB,EAEzB2D,MAAM8jH,EAAgBE,EAAgBjB,GAAW1mH,EAAAF,KAVzCA,KAAA4nH,iBACA5nH,KAAAuC,UACAvC,KAAAiV,kBAEAjV,KAAA2mH,qBAEA3mH,KAAA8nH,WACA9nH,KAAAw7B,eACAx7B,KAAAkxB,QArBOlxB,KAAA+nH,4BAA8B,cAC9B/nH,KAAAgoH,oCACf,gCAEehoH,KAAAioH,oBAAsB,CACrC,CACE1hH,KAAM,KACNk0B,MAAO,KACPC,OAAQ,OAkBZ16B,KAAA6mH,iBAAgB,eAAA7qG,KAAA7b,KAAG,UACjBmiH,EACA73G,GAEAA,EAAMg7G,+BACNh7G,EAAMo7G,uBACNp7G,EAAMguB,UAAU,MAChBhuB,EAAMm7G,eAAetD,EAAUnsF,aAC/B1rB,EAAM1G,YAAY,CAChBkgH,cAAc,EACdC,gBAAgB,EAChBC,iBAAiB,EACjBC,aAAa,GAEjB,GAAC,gBAAA7nG,EAAAM,GAAA,OAAAb,EAAAQ,MAAAxc,KAAAyc,UAAA,EAde,GAgBTzc,KAAAkoH,eAAc,eAAAvrG,KAAAxc,KAAG,UACtBue,GAEA,MAAM8Q,QAActvB,EAAKs7B,aAAai6E,gBACpC/2F,EAAQrS,GACR+jB,KAAKC,UAAU,CACb9pB,KAAMrG,EAAK6nH,+BAGTI,EAAY34F,EAAMJ,QAAQ1Z,OAAS,EAAI8Z,EAAMJ,QAAQ,QAAKvsB,EAChE,GAAIslH,EACF,eAAa57G,KACXrM,EAAKgxB,MAAMpuB,IAAoBqlH,EAAUjlH,IAAK,CAC5CkH,aAAc,SAItB,GAAC,gBAAA8T,GAAA,OAAAvB,EAAAH,MAAAxc,KAAAyc,UAAA,EAjBoB,GAmBrBzc,KAAAooH,iBAAgB,eAAAtrG,KAAA3c,KAAG,UACjBue,EACAjU,GAEA,MAAM49G,EAAanoH,EAAK2P,gBAAgBm7E,eAAez4E,MACjD+1G,QAA4BpoH,EAAKgoH,eAAexpG,GAEtDxe,EAAKqC,QAAQgB,MAAM,8BAA+B+kH,GAElD,MAAMhJ,EAA6C,CACjD/4G,KAAMmY,EAAQnY,KACdqY,IAAKF,EAAQE,IACbuuB,SAAUzuB,EAAQyuB,SACdk7E,EAAWtvG,KAAMs8B,IAAMA,GAAEhpC,KAAOqS,EAAQyuB,eACxCtqC,EACJu1G,QAAS15F,EAAQsqE,MAAQ,IAAI9hD,KAAqB,IAAhBxoB,EAAQsqE,YAAgBnmF,EAC1D+5G,WAAW,EACXvjF,KAAM,MAGR5uB,EAAMmvG,8BAA8B0F,GACpC70G,EAAMyP,QACJwE,EAAQzI,KAAK5P,IAAKimB,MAEdjgB,GAAIigB,GAAEkwC,SACNj2D,KAAM+lB,GAAEu+D,WACRhxB,MAAOvtC,GAAEs+D,YACT1qC,YAAa5zB,GAAE8sF,kBACfE,gBAAiBhtF,GAAE+sF,sBACnBG,WAAYltF,GAAEitF,qBAMlB9uG,EAAMi7G,sBADqC,IAAzC4C,EAAoBlB,kBAOtB38G,EAAM83G,yBADyB,YAA7B+F,EAAoB7uG,MAMxBhP,EAAMq7G,mBAAmBpnG,GACzBjU,EAAMm7G,eAAelnG,EAAQK,eAC7BtU,EAAM1G,YAAY,CAChBkgH,cAAc,EACdC,gBAAgB,EAChBC,iBAAiB,EACjBC,aAAa,IAGf,MAAMmE,GAAWD,GAAqBnoG,OACtC,GAAIooG,GAAU,CACZroH,EAAKqC,QAAQ2D,KAAK,kBAAmBqiH,IACrC,MAAMC,SAAsBtoH,EAAK2P,gBAAgB4O,eAAe8pG,IAChE99G,EAAMguB,UAAU,IACX+vF,GACHlnF,UAAU,GAEd,CAEA,MAAMmnF,EAAUH,GAAqBhK,MACrC,GAAImK,EAAS,CACXvoH,EAAKqC,QAAQ2D,KAAK,iBAAkBuiH,GACpC,MAAMC,SAAqBxoH,EAAK2P,gBAAgB4O,eAAegqG,GAC/Dh+G,EAAM42G,SAAS,IACVqH,GACHpnF,UAAU,GAEd,CAEA,MAAMnyB,GAAWm5G,GAAqBn5G,SACtC,GAAIA,GAAU,CACZjP,EAAKqC,QAAQgB,MAAM,aAAc4L,IACjC,MAAMw5G,UACEhxG,QAAQyE,IACZjN,GACG9I,IAAKwU,MACJ4vE,IAAKvqF,EAAK2P,gBAAgB4O,eAAe5D,IACzC4lB,QAAS5lB,MAEVxU,IAAG,eAAA+X,MAAAje,KAAC,WAASsqF,SACZ,IACE,MAAM1mD,SAAU0mD,GAChB,aAAavqF,EAAK0nH,eAAepnF,sBAAsBuD,GAAG,CACxDtC,SAAS,EACTH,UAAU,EACVE,UAAU,GAEd,OAASzjB,IAEP,YADA7d,EAAKqC,QAAQ2I,KAAK,0BAA2B6S,GAE/C,CACF,GAAC,gBAAA0B,IAAA,OAAArB,GAAA5B,MAAAxc,KAAAyc,UAAA,EAZG,MAcRzV,OAAQslB,SAAYzpB,IAANypB,IAChBpsB,EAAKqC,QAAQgB,MAAM,sBAAuBolH,IAC1C,MAAMC,GAAeD,GAAS5vG,KAAMgH,KAAqB,IAAfA,GAAEyhB,UAC5C/2B,EAAM0rD,mBAAmByyD,IACzBn+G,EAAMgpB,oBAAoBk1F,IAC1Bl+G,EAAMgwG,YAAYkO,IAElB,MAAMvwG,GAAckwG,GAAqBlwG,YACzC,GAAIA,GAAa,CACflY,EAAKqC,QAAQgB,MAAM,gBAAiB6U,IACpC,MAAMuwG,UACEhxG,QAAQyE,IACZhE,GACG/R,IAAKwU,MACJ4vE,IAAKvqF,EAAK2P,gBAAgB4O,eAAe5D,IACzC4lB,QAAS5lB,MAEVxU,IAAG,eAAAmY,MAAAre,KAAC,WAASsqF,OAAKhqD,aACjB,IACE,MAAMsD,SAAU0mD,GAMhB,MAAO,CAAEA,UAJDvqF,EAAK0nH,eAAepnF,sBAAsBuD,GAAG,CACjDtC,SAAS,EACTH,UAAU,IAEQhpB,SAAUmoB,GAAQnoB,SAC1C,OAASyF,IAEP,YADA7d,EAAKqC,QAAQ2I,KAAK,4BAA6B6S,GAEjD,CACF,GAAC,gBAAA2B,IAAA,OAAAlB,GAAAhC,MAAAxc,KAAAyc,UAAA,EAbG,MAeRzV,OAAQslB,SAAYzpB,IAANypB,IAChBpsB,EAAKqC,QAAQgB,MAAM,yBAA0BolH,IAC7C,MAAME,GAA4B,CAChCt2F,SAAK1vB,EACL6vB,YAAQ7vB,EACRgwB,YAAQhwB,GAEV8lH,GAAS1oG,QAASmB,KAChBynG,GAAKznG,GAAE9I,UAAY8I,GAAEqpE,MAEvBhgF,EAAM8oB,eAAes1F,GACvB,CACAp+G,EAAM00G,gBAAe,EACvB,CACF,GAAC,gBAAA7gG,EAAAa,GAAA,OAAArC,EAAAN,MAAAxc,KAAAyc,UAAA,EAjJe,GAmJhBzc,KAAA8oH,sBAAqB,eAAAzpG,KAAAlf,KAAG,UAAO8D,GAC7B,IAAIgI,EAAM/L,EAAK+nH,oBACf,MAAM5uF,EAAOp1B,EAAMq7G,mBAAmBjmF,KAClCA,IACFptB,EAAM,CACJ,CACE1F,KAAM8yB,EAAK4+E,KACXx9E,MAAOpB,EAAKoB,MACZC,OAAQrB,EAAKqB,UAKnB,MAAM91B,EAAyB,CAC7B05G,MAAOr6G,EAAMu2G,aAAa8D,MAAMjyG,GAChC8T,OAAQlc,EAAMu2G,aAAar6F,OAAO9T,GAClC8C,SAAUlL,EAAMu2G,aAAarrG,SAAS9I,IAAKwU,GAAMA,EAAExO,IACnD+L,YAAa2wG,EAAe9kH,EAAMu2G,aAAapiG,aAC/C4wG,mBAAoB/8G,EACpBwN,KAAMxV,EAAMw+G,mBAAqB,UAAY,aAC7C2E,iBAAkBnjH,EAAM+/G,gBAG1B,OAAI//G,EAAMw+G,2BACD79G,EAAOokH,mBAETpkH,CACT,GAAC,gBAAAqkH,GAAA,OAAA5pG,EAAA7C,MAAAxc,KAAAyc,UAAA,EA3BoB,GA6BrBzc,KAAAo8G,cAAa,eAAA8M,KAAA/oH,KAAG,UACdsK,EACA0+G,EACAC,GAEAlpH,EAAKqC,QAAQgB,MAAM,oDACnB,MAAMuP,QAAiB5S,EAAK+U,gBAAgB9G,kBACtClK,EAAQwG,EAAM0B,UAEdvH,SAAe1E,EAAK4oH,sBAAsB7kH,GAChD,IAAIolF,EAAY,GAUdA,EARGplF,EAAM6/G,gBAQG7/G,EAAM6/G,gBAAgBz6B,iBAPZnpF,EAAK+mH,cACzBn0G,EACA7O,EAAMq7G,kBACNr7G,EAAMkyB,cAEY9pB,GAKtB,MAAMqS,GAAUxe,EAAKinH,iBAAiBljH,EAAMq7G,kBAAmBj2B,GAE3DplF,EAAM6/G,kBACRplG,GAAQrS,GAAKpI,EAAM6/G,gBAAgBz3G,IAGrC,MAAMgwG,SAAcn8G,EAAKonH,cAAc5oG,IAIvC,SAFMxe,EAAKqnH,WAAWlL,GAAOp4G,EAAMgS,MAE/BhS,EAAM6/G,gBAAiB,CACzB,MAAMt0F,SAActvB,EAAKs7B,aAAai6E,gBAAgB/2F,GAAQrS,IACxDg9G,GAAa75F,GAAMJ,QAAQrW,KAC9BgH,IAAMA,GAAExZ,OAASrG,EAAK6nH,6BAEnBuB,GAAc95F,GAAMJ,QAAQrW,KAC/BgH,IAAMA,GAAExZ,OAASrG,EAAK8nH,qCAErBqB,WACInpH,EAAKs7B,aAAa25E,WAAWkU,KAEjCC,WACIppH,EAAKs7B,aAAa25E,WAAWmU,IAEvC,OAEMppH,EAAKymH,mBAAmB1hC,eAC5B,CACE54E,GAAI,GACJmwB,gBAAiB9d,GAAQrS,GACzB6sB,SAAUh5B,EAAK6nH,4BACf1rF,OAAQ,EACRlD,SAAU,oBAEZv0B,UAGI1E,EAAKymH,mBAAmBthC,iBAC5B,CACEh5E,GAAI,GACJmwB,gBAAiB9d,GAAQrS,GACzB6sB,SAAUh5B,EAAK8nH,oCACf3rF,OAAQ,GACRlD,SAAU,aAEZgwF,GAGGC,UACGlpH,EAAK2P,gBAAgBm8E,SAASttE,GAAQrS,IAEhD,GAAC,gBAAAk9G,EAAAC,EAAAC,GAAA,OAAAP,EAAA1sG,MAAAxc,KAAAyc,UAAA,EA1EY,EArNb,iDAzBWirG,GAA6BlnH,MAAAC,MAAAD,MAAAC,MAAAD,MAAAE,KAAAF,MAAAuB,KAAAvB,MAAAC,MAAAD,MAAAC,MAAAD,MAAAgM,MAAAhM,MAAAiM,MAAAjM,MAAAgM,MAAAhM,MAAAkM,MAAA,sCAA7Bg7G,EAA6BjkH,QAA7BikH,EAA6BhkH,UAAA0H,WAF5B,QAAM,SAEPs8G,CAA8B,KA0T3C,SAASqB,EAAe3wG,GAItB,GAAIA,EAAa,CACf,MAAMiE,EAAS,GACf,UAAWg5B,KAAKlhC,OAAOq6B,OAAOxb,UACLnwB,IAAnBuV,EAAYi9B,IACdh5B,EAAO4B,KAAK,CACV5R,GAAI+L,EAAYi9B,GAAGhpC,GACnBiM,SAAU+8B,IAIhB,OAAOh5B,CACT,CACF,2JC1WO,IAAMqtG,EAAsB,MAA7B,MAAOA,UAA8BjD,IAIzC5mH,YACUqxB,EACAsK,EACRmsF,EACQC,EACArlH,EACA0S,EACR4yG,EACQlB,EACRC,GAAuB,IAAA1mH,EAEvB2D,MAAM8jH,EAAgBE,EAAgBjB,GAAW1mH,EAAAF,KAVzCA,KAAAkxB,QACAlxB,KAAAw7B,eAEAx7B,KAAA4nH,iBACA5nH,KAAAuC,UACAvC,KAAAiV,kBAEAjV,KAAA2mH,qBAXO3mH,KAAA2pH,mBAAqB,yBACrB3pH,KAAA4pH,2BAA6B,uBAgBvC5pH,KAAA6pH,mBAAkB,eAAA7tG,KAAA7b,KAAG,UAC1Bue,GAEA,MAAM8Q,QAActvB,EAAKs7B,aAAai6E,gBACpC/2F,EAAQrS,GACR+jB,KAAKC,UAAU,CACb9pB,KAAMrG,EAAKypH,sBAGTxB,EAAY34F,EAAMJ,QAAQ1Z,OAAS,EAAI8Z,EAAMJ,QAAQ,QAAKvsB,EAChE,GAAIslH,EACF,eAAa57G,KACXrM,EAAKgxB,MAAMpuB,IAAsBqlH,EAAUjlH,IAAK,CAC9CkH,aAAc,SAItB,GAAC,gBAAAmS,GAAA,OAAAP,EAAAQ,MAAAxc,KAAAyc,UAAA,EAjBwB,GAmBlBzc,KAAA8pH,oBAAmB,eAAAntG,KAAAxc,KAAG,UAC3BsK,EACAs/G,GAEA,MAAM59G,EAAU1B,EAAM0B,UACtB,IAAI69G,GAAQ,EACZ79G,EAAQquG,aAAarrG,SAAS8Q,QAASpF,IACrC,MAAMgnB,EAAehnB,EAAEuU,QAAQrW,KAAMqI,IAAmB,WAAbA,GAAEmO,QAC7C,IAAKsS,EACH,MAAM,IAAIvc,MACR,kCAAkCzK,EAAExO,wBAGxC,GAAIw1B,EAAarS,MAAM9Z,OAAS,EAC9B,MAAM,IAAI4P,MACR,kCAAkCzK,EAAExO,sCAAqC,GAK/E,MAAM49G,EAAgB99G,EAAQquG,aAAarrG,SAAS9I,IAAKo6B,IACvD,MAAMoB,EAAepB,EAAQrR,QAAQrW,KAAMqI,IAAmB,WAAbA,GAAEmO,QACnDy6F,UAAgB,EACT,CACLA,QACAE,iBAAkBzpF,EAAQwwB,gBAAkB,GAC5ChpB,OAAQ,CACNzL,gBAAiBiE,EAAQp0B,GACzB89G,SAAUtoF,EAAax1B,GACvB6sB,SACiC,IAA/B2I,EAAarS,OAAO9Z,OAAemsB,EAAarS,MAAM,GAAGjpB,KAAO,OAKlE6jH,EAAqBj+G,EAAQquG,aAAar6F,OAAOiP,QAAQrW,KAC5DqI,GAAmB,WAAbA,EAAEmO,QAEX,IAAK66F,GAAsBL,EACzB,MAAM,IAAIzkG,MACR,kCAAkCnZ,EAAQquG,aAAar6F,OAAO9T,wBAgBlE,MAAO,CACL8L,OAAQ,CACNgI,OAAQ,CACN8nB,OAfSmiF,EACX,CACE5tF,gBAAiBrwB,EAAQquG,aAAar6F,OAAO9T,GAC7C89G,SAAUC,EAAmB/9G,GAC7B6sB,SACuC,IAArCkxF,EAAmB56F,OAAO9Z,OACtB00G,EAAmB56F,MAAM,GAAGjpB,KAC5B,GACN+6B,SAAUn1B,EAAQquG,aAAar6F,OAAOmhB,UAExC,MAOAnyB,SAAU86G,GAGhB,GAAC,gBAAAptG,EAAAqB,GAAA,OAAAvB,EAAAH,MAAAxc,KAAAyc,UAAA,EAhEyB,GAkE1Bzc,KAAA6mH,iBAAgB,eAAA/pG,KAAA3c,KAAG,UACjBmiH,EACA73G,GAEAA,EAAMg7G,+BACNh7G,EAAMo7G,uBACNp7G,EAAMm7G,eAAetD,EAAUnsF,aAC/B1rB,EAAM1G,YAAY,CAChBkgH,cAAc,EACdC,gBAAgB,EAChBC,iBAAiB,EACjBC,aAAa,GAEjB,GAAC,gBAAA9lG,EAAAa,GAAA,OAAArC,EAAAN,MAAAxc,KAAAyc,UAAA,EAbe,GAehBzc,KAAAooH,iBAAgB,eAAAhqG,KAAAje,KAAG,UACjBue,EACAjU,GAEA,MAAM49G,EAAanoH,EAAK2P,gBAAgBm7E,eAAez4E,MACjD83G,QAAiBnqH,EAAK2pH,mBAAmBnrG,GAE/Cxe,EAAKqC,QAAQgB,MAAM,4BAA6B8mH,GAEhD,MAAM/K,EAA6C,CACjD/4G,KAAMmY,EAAQnY,KACdqY,IAAKF,EAAQE,IACbuuB,SAAUzuB,EAAQyuB,SACdk7E,EAAWtvG,KAAMs8B,GAAMA,EAAEhpC,KAAOqS,EAAQyuB,eACxCtqC,EACJu1G,QAAS15F,EAAQsqE,MAAQ,IAAI9hD,KAAqB,IAAhBxoB,EAAQsqE,YAAgBnmF,EAC1D+5G,WAAW,GAGbnyG,EAAMmvG,8BAA8B0F,GACpC70G,EAAMyP,QACJwE,EAAQzI,KAAK5P,IAAKimB,KAEdjgB,GAAIigB,EAAEkwC,SACNj2D,KAAM+lB,EAAEu+D,WACRhxB,MAAOvtC,EAAEs+D,YACT1qC,YAAa5zB,EAAE8sF,kBACfE,gBAAiBhtF,EAAE+sF,sBACnBG,WAAYltF,EAAEitF,qBAKpB9uG,EAAMq7G,mBAAmBpnG,GACzBjU,EAAMm7G,eAAelnG,EAAQK,eAC7BtU,EAAM1G,YAAY,CAChBkgH,cAAc,EACdC,gBAAgB,EAChBC,iBAAiB,EACjBC,aAAa,IAGf,MAAMmE,EAAW8B,GAAUlyG,OAAOgI,OAAO8nB,OAAOzL,gBAChD,GAAI+rF,EAAU,CACZ,MAAMC,QAAsBtoH,EAAK2P,gBAAgB4O,eAAe8pG,GAChE99G,EAAMguB,UAAU,IACX+vF,EACHlnF,UAAU,GAEd,CAEA,MAAMnyB,EAAWk7G,GAAUlyG,OAAOhJ,SAClC,GAAIA,EAAU,CACZjP,EAAKqC,QAAQgB,MAAM,aAAc4L,GACjC,MAAMw5G,SACEhxG,QAAQyE,IACZjN,EACG9I,IAAKwU,KACJ4vE,IAAKvqF,EAAK2P,gBAAgB4O,eACxB5D,EAAEotB,OAAOzL,iBAEXiE,QAAS5lB,EACTqvG,iBAAkBrvG,EAAEqvG,oBAErB7jH,IAAG,eAAAmY,KAAAre,KACF,WACEsqF,OACAhqD,SAAWypF,iBAAkBj5D,KAE7B,IACE,MAAO,UACK/wD,EAAK0nH,eAAepnF,4BACtBiqD,GACN,CACEhpD,SAAS,EACTH,UAAU,IAGd2vB,iBAEJ,OAASlzC,IAEP,YADA7d,EAAKqC,QAAQ2I,KAAK,0BAA2B6S,GAE/C,CACF,GAAC,gBAAAkrG,IAAA,OAAAzqG,EAAAhC,MAAAxc,KAAAyc,UAAA,EApBC,MAuBRzV,OAAQslB,QAAYzpB,IAANypB,GAChBpsB,EAAKqC,QAAQgB,MAAM,sBAAuBolH,GAC1Cl+G,EAAMgpB,oBAAoBk1F,GAC1Bl+G,EAAMgwG,YAAYkO,GAClBl+G,EAAM00G,gBAAe,EACvB,CACF,GAAC,gBAAA1/F,EAAAC,GAAA,OAAAtB,EAAA5B,MAAAxc,KAAAyc,UAAA,EA7Fe,GA+FhBzc,KAAAo8G,cAAa,eAAA/8F,KAAAlf,KAAG,UACdsK,EACA0+G,EACAC,GAEAlpH,EAAKqC,QAAQgB,MAAM,2CACnB,MAAMuP,QAAiB5S,EAAK+U,gBAAgB9G,kBACtClK,EAAQwG,EAAM0B,UACdk+G,QAAiBnqH,EAAK4pH,oBAAoBr/G,GAAQ2+G,GAExD,IAAI//B,EAAY,GAUdA,EARGplF,EAAM6/G,gBAQG7/G,EAAM6/G,gBAAgBz6B,iBAPZnpF,EAAK+mH,cACzBn0G,EACA7O,EAAMq7G,kBACNr7G,EAAMkyB,cAEY9pB,GAKtB,MAAMqS,EAAUxe,EAAKinH,iBAAiBljH,EAAMq7G,kBAAmBj2B,GAE3DplF,EAAM6/G,kBACRplG,EAAQrS,GAAKpI,EAAM6/G,gBAAgBz3G,IAGrC,MAAMgwG,QAAcn8G,EAAKonH,cAAc5oG,GAIvC,SAFMxe,EAAKqnH,WAAWlL,EAAOp4G,EAAMgS,MAE/BhS,EAAM6/G,gBAAiB,CACzB,MAAMt0F,SAActvB,EAAKs7B,aAAai6E,gBAAgB/2F,EAAQrS,IACxDg9G,EAAa75F,GAAMJ,QAAQrW,KAC9BgH,IAAMA,GAAExZ,OAASrG,EAAKypH,oBAEnBL,GAAc95F,GAAMJ,QAAQrW,KAC/BgH,IAAMA,GAAExZ,OAASrG,EAAK0pH,4BAErBP,UACInpH,EAAKs7B,aAAa25E,WAAWkU,IAEjCC,WACIppH,EAAKs7B,aAAa25E,WAAWmU,IAEvC,OAEMppH,EAAKymH,mBAAmB1hC,eAC5B,CACE54E,GAAI,GACJmwB,gBAAiB9d,EAAQrS,GACzB6sB,SAAUh5B,EAAKypH,mBACfttF,OAAQ,EACRlD,SAAU,oBAEZkxF,SAGInqH,EAAKymH,mBAAmBthC,iBAC5B,CACEh5E,GAAI,GACJmwB,gBAAiB9d,EAAQrS,GACzB6sB,SAAUh5B,EAAK0pH,2BACfvtF,OAAQ,GACRlD,SAAU,aAEZgwF,GAGGC,UACGlpH,EAAK2P,gBAAgBm8E,SAASttE,EAAQrS,IAEhD,GAAC,gBAAAk9G,EAAAC,EAAAC,GAAA,OAAApqG,EAAA7C,MAAAxc,KAAAyc,UAAA,EA1EY,EArMb,iDAhBWitG,GAAqBlpH,MAAAC,MAAAD,MAAAE,MAAAF,MAAAE,MAAAF,MAAAE,MAAAF,MAAAuB,KAAAvB,MAAAgM,KAAAhM,MAAAE,MAAAF,MAAAE,MAAAF,MAAAiM,MAAA,sCAArBi9G,EAAqBjmH,QAArBimH,EAAqBhmH,UAAA0H,WAFpB,QAAM,SAEPs+G,CAAsB,4FCL7B,MAAOjD,EACX5mH,YACYgQ,EACA62G,EACAj5F,GAAwB,IAAAvtB,EAAAF,KAFxBA,KAAA6P,kBACA7P,KAAA0mH,kBACA1mH,KAAAytB,cAGFztB,KAAAunH,WAAU,eAAAvrG,KAAA7b,KAAG,UACrBuC,EACAuT,SAEM0B,QAAQyE,IACZ1Z,EAAIuT,MAAM5P,IAAKgiB,IACb,IAAKpS,EAAK8K,KAAMuL,GAAMA,EAAEjgB,KAAOgc,EAAEm0C,UAC/B,OAAOt8D,EAAKutB,YAAYqgE,2BACtBzlE,EAAEm0C,SACF95D,EAAI2J,GAAE,UAKRsL,QAAQyE,IACZnG,EAAK5P,IAAKgiB,GACDnoB,EAAKutB,YAAYugE,sBAAsB3lE,EAAEhc,GAAI3J,EAAI2J,KAG9D,GAAC,gBAAAkQ,EAAAM,GAAA,OAAAb,EAAAQ,MAAAxc,KAAAyc,UAAA,EAnBmB,GAqBVzc,KAAAinH,cAAa,eAAAtqG,KAAAxc,KAAG,UACxB2S,EACAwsG,EACAnpF,GAEA,MAAMkzD,KAAYt7D,OACZy7D,EAAU,CACdx7D,UAAWkZ,KAAKg4C,MAChBvgE,WAAY7L,EAASzG,GACrB08E,aAAcj2E,EAASvM,KACvByiF,MAAO,KACP38E,GAAIg9E,EACJ1nD,SAAU,GACVsnD,WAAY/hD,KAAKg4C,MACjB34E,KAAM+4G,EAAkB/4G,KACxBqY,IAAK0gG,EAAkB1gG,IAAM0gG,EAAkB1gG,OAAMmP,OACrDiC,QAAS2hF,KAAcE,qBACvBx1E,OAAQlG,GAEV,aAAaj2B,EAAKwmH,gBAAgBn9B,cAAcC,EAClD,GAAC,gBAAAtrE,EAAAI,EAAAa,GAAA,OAAAxC,EAAAH,MAAAxc,KAAAyc,UAAA,EApBsB,GAsBbzc,KAAAmnH,iBAAmB,CAC3B7H,EACAj2B,MAGEh9E,MAAI0hB,OACJs7D,UAAWA,EACX9iF,KAAM+4G,EAAkB/4G,KACxBqY,IAAK0gG,EAAkB1gG,IACvBoqE,MAAOs2B,EAAkBlH,QACrBkH,EAAkBlH,SAASxoF,UAAY,IACvC,KACJud,SAAUmyE,EAAkBnyE,SACxBmyE,EAAkBnyE,SAAS9gC,GAC3B,KACJs1B,SAAU,GACV0lF,YAAa,OAIPrnH,KAAAsnH,cAAa,eAAAxqG,KAAA3c,KAAG,UACxBue,GAEA,aAAaxe,EAAK2P,gBAAgBizD,OAAOpkD,EAC3C,GAAC,gBAAAe,GAAA,OAAA3C,EAAAN,MAAAxc,KAAAyc,UAAA,EAJsB,EAjEpB,4JCDE,IAAM6tG,EAAoB,MAA3B,MAAOA,EAGXzqH,YACU0C,EACAsN,EACR06G,EACAC,EACAC,EACAC,EACQjvF,GAA0B,IAAAv7B,EAAAF,KAN1BA,KAAAuC,UACAvC,KAAA6P,kBAKA7P,KAAAy7B,eATFz7B,KAAAiR,SAAsD,GAiB9DjR,KAAA2qH,cAAiBx0F,QAEsBtzB,IADrB7C,KAAKiR,SAASklB,IACdiyF,iBAGlBpoH,KAAAqjH,QAAO,eAAArnG,KAAA7b,KAAG,UACRmiH,EAIA73G,GAEAA,EAAM86G,cACN,IAEE,GADArlH,EAAKqC,QAAQgB,MAAM,iBAAkB++G,GChDrC,SAAUsI,EACdhuE,GAEA,OAAOA,GAAO,gBAAiBA,CACjC,CD6CUguE,CAAyBtI,GAAY,CACvC,MAAMuI,EAAU3qH,EAAK+Q,SAASqxG,EAAUnsF,aACxC,GAAI00F,EACF3qH,SAAKqC,QAAQgB,MAAM,uBAAwB++G,SAC9BuI,EAAQhE,iBAAiBvE,EAAW73G,GAEnDvK,EAAKu7B,aAAaztB,eAChB,2DAEJ,SChDA,SAAU88G,EACdluE,GAEA,OAAOA,GAAO,OAAQA,CACxB,CD4CiBkuE,CAAyBxI,GAAY,CAC9C,MAAM5jG,QAAgBxe,EAAK2P,gBAAgB4O,eAAe6jG,EAAUj2G,IACpE,GAAIqS,EAAS,CACXxe,EAAKqC,QAAQgB,MAAM,kBAAmBmb,GACtC,MAAMmsG,EAAU3qH,EAAK+Q,SAASyN,EAAQK,eACtC,GAAI8rG,GAAWA,EAAQzC,iBACrBloH,SAAKqC,QAAQgB,MAAM,uBAAwB++G,SAC9BuI,EAAQzC,iBAAiB1pG,EAASjU,EAEnD,CACAvK,EAAKu7B,aAAaztB,eAChB,yDAEJ,SCnDA,SAAU+8G,EACdnuE,GAEA,OAAOA,GAAO,mBAAoBA,CACpC,CD+CiBmuE,CAAwBzI,GAAY,CAC7C,MAAM5jG,QAAgBxe,EAAK2P,gBAAgB4O,eACzC6jG,EAAU0I,gBAEZ,GAAItsG,EAAS,CACXxe,EAAKqC,QAAQgB,MAAM,kBAAmBmb,GACtC,MAAMmsG,EAAU3qH,EAAK+Q,SAASyN,EAAQK,eACtC,GAAI8rG,GAAWA,EAAQI,aACrB/qH,SAAKqC,QAAQgB,MAAM,mBAAoB++G,SAC1BuI,EAAQI,aAAavsG,EAASjU,EAE/C,CACAvK,EAAKu7B,aAAaztB,eAChB,2CAEJ,CACAvD,EAAM0wG,cACR,SACE1wG,EAAM+6G,aACR,CACF,GAAC,gBAAAjpG,EAAAM,GAAA,OAAAb,EAAAQ,MAAAxc,KAAAyc,UAAA,EApDM,GAXLzc,KAAKiR,SAASqI,KAAa4J,YAAcqnG,EACzCvqH,KAAKiR,SAASqI,KAAa0F,oBAAsBwrG,EACjDxqH,KAAKiR,SAASqI,KAAa4nB,gBAAkBupF,EAC7CzqH,KAAKiR,SAASqI,KAAa0nB,WAAa0pF,CAC1C,iDAhBWJ,GAAoB9pH,MAAAC,KAAAD,MAAAE,MAAAF,MAAAuB,KAAAvB,MAAAgM,KAAAhM,MAAAiM,KAAAjM,MAAAkM,KAAAlM,MAAA4zB,KAAA,sCAApBk2F,EAAoB7mH,QAApB6mH,EAAoB5mH,UAAA0H,WAFnB,QAAM,SAEPk/G,CAAoB,iFERjC,MAAMY,EAAoC,CACxC13G,WAAY,CACVE,YAAa,EACbC,UAAW,EACXF,SAAU,GACVG,YAAa,GAEf4F,cAAe,GACfxI,QAAS,GACT8tB,cAAe,IAIV,IAAMtO,EAAoB,MAA3B,MAAOA,UAA4B5sB,KACvC/D,cACEgE,MAAMqnH,GAGClrH,KAAA2uB,aAAe3uB,KAAKsE,OAC3B,EAAGkP,gBAAiBA,EAAWE,aAGxB1T,KAAAojB,eAAiBpjB,KAAKsE,OAC7B,EAAGkV,cAAeA,KAAoBA,GAG/BxZ,KAAAqjB,SAAWrjB,KAAKsE,OAAO,EAAG0M,QAASA,KAAcA,GAEjDhR,KAAAi/B,cAAgBj/B,KAAKsE,OAAO,EAAG0M,QAAS8qB,KACxC3nB,OAAOmzB,KAAKxL,GAAGpmB,QAGf1V,KAAA6+B,eAAiB7+B,KAAKsE,OAC7B,EAAGw6B,cAAeA,KAAoBA,GAG/B9+B,KAAAo/B,cAAgBp/B,KAAKgE,QAAQ,CAACC,EAAO+C,KAC5C,MAAM80B,EAAI1L,KAAKgG,MAAMhG,KAAKC,UAAUpsB,EAAM+M,UAC1C,YACmBnO,IAAjBmE,EAAOuL,OACU,KAAjBvL,EAAOuL,OACU,OAAjBvL,EAAOuL,aAEAupB,EAAE90B,EAAOqF,IAEhByvB,EAAE90B,EAAOqF,IAAMrF,EAAOuL,MAEjB,IACFtO,EACH+M,QAAS8qB,KAIJ97B,KAAAoR,aAAepR,KAAKgE,QAASC,QACxBA,EAAO+M,QAAS,MAGrBhR,KAAA89B,YAAc99B,KAAKgE,QAAQ,CAACC,EAAOoI,KAC1C,MAAMyvB,EAAI1L,KAAKgG,MAAMhG,KAAKC,UAAUpsB,EAAM+M,UAC1C,cAAO8qB,EAAEzvB,GACF,IACFpI,EACH+M,QAAS8qB,KAIJ97B,KAAA8uB,kBAAoB9uB,KAAKgE,QAChC,CAACC,EAAOyP,SACHzP,EACHuP,WAAY,IAAKvP,EAAMuP,WAAYE,YAAaA,MAI3C1T,KAAAmrH,eAAiBnrH,KAAKgE,QAAQ,CAACC,EAAOwP,SAC1CxP,EACHuP,WAAY,IAAKvP,EAAMuP,WAAYC,SAAUA,MAGtCzT,KAAA0vB,gBAAkB1vB,KAAKgE,QAC9B,CAACC,EAAO0P,SACH1P,EACHuP,WAAY,IAAKvP,EAAMuP,WAAYG,UAAWA,MAIzC3T,KAAA+2B,oBAAsB/2B,KAAKgE,QAClC,CAACC,EAAOuV,SACHvV,EACHuP,WAAY,IAAKvP,EAAMuP,WAAYE,YAAa,GAChD8F,cAAeA,KAIVxZ,KAAA49B,oBAAsB59B,KAAKgE,QAClC,CAACC,EAAOmnH,SACHnnH,EACH66B,cAAessF,IAhFnB,iDAHW56F,EAAmB,sCAAnBA,EAAmB/sB,QAAnB+sB,EAAmB9sB,WAAA,SAAnB8sB,CAAoB,gLC3B3BhwB,MAAA,WAGEA,MAAA,yBAAA6qH,EAAA7qH,MAAAW,GAAAoqB,UAAAkJ,EAAAj0B,QAAA,OAAAA,MACai0B,EAAA62F,sBAAAD,EAAAj5G,KAAAi5G,EAAA7I,gBAKrB,GACQhiH,MAAA,WACAA,MAAA,WAA+BA,MAAA,GAAyBA,QACxDA,MAAA,WACEA,MAAA,GACFA,QACAA,MAAA,cAIEA,MAAA,GAEJA,sCAXOA,cAAA,MAAA6qH,EAAAE,aAAA/qH,OAC0BA,MAAA,GAAAA,MAAA6qH,EAAAjjH,OAE7B5H,MAAA,GAAAA,MAAA,IAAA6qH,EAAAnrE,YAAA,KAIA1/C,cAAA,mBAAA6qH,EAAAj5G,KAAA,IAEA5R,cAAA,cAAA6qH,EAAAjjH,MAAA,MCCH,IAAMojH,EAAqC,MAA5C,MAAOA,EAqDX3rH,YAAoBuP,GAAApP,KAAAoP,SAlDJpP,KAAAyrH,iBAAmB,CACjC,CACEzB,MAAO,EACP53G,KAAMkH,KAAa4J,WACnB9a,MAAO,aACP83C,YAAa,2BACbqrE,aAAc,wCACdvwG,MAAO,EACPwnG,eAAgB,IAElB,CACEwH,MAAO,EACP53G,KAAMkH,KAAa0F,mBACnB5W,MAAO,gBACP83C,YAAa,yBACbqrE,aAAc,uCACdvwG,MAAO,EACPwnG,eAAgB,IAElB,CACEwH,MAAO,EACP53G,KAAMkH,KAAa0F,mBACnB5W,MAAO,oBACP83C,YAAa,+CACbqrE,aAAc,wCACdvwG,MAAO,EACPwnG,eAAgB,CAAEC,oBAAoB,KAmB1BziH,KAAA0rH,SAAW,eACpB1rH,KAAAmhC,SAAW,GACVnhC,KAAAyS,YAA6B,IAAIhM,GAGM,CAE/CiH,cACE1N,KAAKyS,YAAY9P,OACjB3C,KAAKyS,YAAYS,WACjBlT,KAAKyS,YAAYU,cACjBnT,KAAKyS,iBAAc5P,CACrB,CAEA5C,WACED,KAAK2rH,qBACDvlH,QAAKuM,KAAU3S,KAAKyS,cACrB7Q,UAAWwQ,IACVpS,KAAKmhC,SAAWnhC,KAAKyrH,iBAAiBzkH,OAAQ+Y,GAAMA,EAAE/E,QAAU5I,EAAI,EAE1E,CAEAua,kBAAyB,CAElB2+F,sBAAsBl5G,EAAoBowG,GAC/CxiH,KAAKoP,OAAO6B,YACVwrG,KAAuB,CACrBtmF,YAAa/jB,EACbowG,eAAgBA,IAGtB,iDA/EWgJ,GAAqChrH,MAAAC,MAAA,oCAArC+qH,EAAqC7qH,UAAA,2CAAAmP,OAAA,CAAA67G,oBAAA,uBAAA17G,YAAA,EAAA/L,SAAA,CAAA1D,OAAAI,MAAA,EAAAC,KAAA,EAAAmB,OAAA,qRAAAlB,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDrB9CP,MAFJ,YAEIA,CAFK,UAELA,CAD0B,WAExBA,MAAA,EAAAorH,EAAA,aAwBNprH,mBAtBkCA,MAAA,GAAAA,MAAA,UAAAQ,EAAAmgC,0BCgBtBzqB,KAAYhW,MAAA4pB,OAAA,omLAEXkhG,CAAqC,2ICvBlDhrH,MAAA,YACGA,MAAA,sDAEiDA,8BAFjDA,cAAA,WAAAA,MAAA,IAAAu4B,EAAA8yF,eAAA,SAAArrH,MAAA,IAAAu4B,EAAA8yF,eAAA,UAAArrH,MAAA,IAAAu4B,EAAA+yF,uBAAAC,eAAA,6CA8BHvrH,MAAA,eAMEA,MAAA,yBAAAwrH,EAAAxrH,MAAA8qB,GAAAC,UAAAwN,EAAAv4B,QAAA,OAAAA,MAASu4B,EAAAkzF,SAAAD,GAAc,GAEvBxrH,MAAA,GACFA,8CAJEA,MAAA,WAAAu4B,EAAArlB,cAAAs4G,GAGAxrH,cAAA,IAAAwrH,EAAA,gCA+BFxrH,MAAA,aACEA,MAAA,oBAA6DA,8BAA7DA,cAAA,IAAAA,MAAA,IAAAu4B,EAAA+yF,uBAAAI,WAAA,oBCtDF7+E,OAAO9I,UAAU4nF,aAAe,WAC9B,OAAInsH,MAAQ,EAAU,GAQfsd,MAAMhI,KANI,UAAW/C,GAC1B,QAASkL,EAAI,EAAGA,GAAKlL,EAAOkL,UACpBA,CAEV,CAEkB2uG,CAASpsH,MAC7B,EAEAsd,MAAMinB,UAAUm8C,MAAQ,SAAUzC,EAAQjjE,GAExC,OAAOhb,KAAKgI,QADMi2E,EAASjjE,EAAS,GAAKA,EACbA,EAC9B,EAEAsC,MAAMinB,UAAU57B,KAAO,SAAUu2B,GAC/B,OAAOl/B,KAAK0d,MAAM,EAAGH,KAAKi/B,IAAItd,EAAOl/B,KAAK0V,QAC5C,EAEA4H,MAAMinB,UAAUv8B,OAAS,SAAUi2E,EAAgB/+C,GACjD++C,SAAS1gE,KAAKi/B,IAAIyhC,EAAQ1gE,KAAKk/B,IAAIz8C,KAAK0V,OAAS,EAAG,IAC7C1V,KAAK0d,MAAMugE,GAAQt1E,KAAKu2B,EACjC,EASO,IAAMrO,EAA8B,MAArC,MAAOA,EAYXhxB,YAAmBisH,GAAA9rH,KAAA8rH,yBAXZ9rH,KAAA0T,YAAsB,EACtB1T,KAAA2T,UAAoB,EACX3T,KAAAqsH,WAAqB,EAG9BrsH,KAAAssH,kBAA4B,EAOjCtsH,KAAKusH,gBAAe79F,KAAc,CAChC1uB,KAAK8rH,uBAAuBn9F,aAC5B3uB,KAAK8rH,uBAAuBU,aAG9BxsH,KAAKusH,aAAa3qH,UAAU,EAAE8R,EAAaC,MACzC3T,KAAK0T,YAAcA,EACnB1T,KAAK2T,UAAYA,IAGnB3T,KAAK6rH,iBAAgBn9F,KAAc,CACjC1uB,KAAK8rH,uBAAuBn9F,aAC5B3uB,KAAK8rH,uBAAuBI,UAC5BlsH,KAAK8rH,uBAAuBC,gBAC3B3lH,QACDC,KAAI,EAAEqN,EAAaD,EAAUg5G,KACpB,EACJ/4G,EAAc,GAAKD,EAAW,EAC/B8J,KAAKi/B,KAAK9oC,EAAc,GAAKD,EAAWA,EAAUg5G,KAI1D,CAEAC,eACE,OAAO1sH,KAAK2sH,SAAS,EACvB,CAEAC,eACE,OAAO5sH,KAAK2sH,UAAS,EACvB,CAEAE,gBAAgB1hC,EAAc2hC,GAE5B,OAAOA,EADIvvG,KAAKwrC,OAAOoiC,EAAO,GAAK2hC,GACX,CAC1B,CAEAC,gBAAgBC,EAAkB7pD,GAChC,OAAOnjE,KAAK6sH,gBAAgBG,EAAW7pD,EAAMA,EAC/C,CAEA8pD,gBAAgBD,EAAkB7pD,GAChC,OAAOnjE,KAAK6sH,gBAAgBtvG,KAAKk/B,IAAI,EAAGuwE,EAAW7pD,GAAOA,GAAQA,EAAO,CAC3E,CAEAwpD,SAASxhC,GACP,MAAM+hC,EAAU3vG,KAAKi/B,IACnBj/B,KAAKk/B,IAAIz8C,KAAK0T,YAAcy3E,EAAM,GAClCnrF,KAAK2T,WAEP3T,KAAKisH,SAASiB,EAChB,CAEAjB,SAASiB,GACPltH,KAAK8rH,uBAAuBqB,eAAeD,EAC7C,iDApEWr8F,GAA8BrwB,MAAAC,KAAA,oCAA9BowB,EAA8BlwB,UAAA,iCAAAmP,OAAA,CAAAw8G,iBAAA,oBAAAr8G,YAAA,EAAA/L,SAAA,CAAA1D,OAAAI,MAAA,GAAAC,KAAA,GAAAmB,OAAA,2bAAAlB,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDlD3CP,MAAA,EAAA4sH,EAAA,cAMA5sH,MAAA,cAEEA,MAAA,0BAASQ,EAAA4rH,cAAc,GAIvBpsH,MAAA,SACFA,QAEAA,MAAA,cAEEA,MAAA,0BAASQ,EAAAirH,SAAS,EAAE,GAGpBzrH,MAAA,UACFA,QAEAA,MAAA,cACEA,MAAA,0BAASQ,EAAAirH,SAASjrH,EAAAisH,gBAAAjsH,EAAA0S,YAAA1S,EAAAqrH,YAAyC,GAI3D7rH,MAAA,YACFA,QAEAA,MAAA,EAAA6sH,EAAA,gBAWA7sH,MAAA,cACEA,MAAA,0BAASQ,EAAAirH,SAASjrH,EAAA+rH,gBAAA/rH,EAAA0S,YAAA1S,EAAAqrH,YAAyC,GAM3D7rH,MAAA,YACFA,QAEAA,MAAA,eAGEA,MAAA,0BAASQ,EAAAirH,SAAAjrH,EAAA2S,UAAmB,GAG5BnT,MAAA,IACFA,QAEAA,MAAA,eAEEA,MAAA,0BAASQ,EAAA0rH,cAAc,GAIvBlsH,MAAA,UACFA,QAEAA,MAAA,GAAA8sH,EAAA,qBAtEO9sH,MAAA,OAAAQ,EAAAsrH,kBASL9rH,QACAA,MADA,eAAAQ,EAAA0S,YACAlT,CAD8B,aAAAQ,EAAA2S,WAS9BnT,MAAA,GAAAA,MAAA,SAAAQ,EAAA0S,aAAA1S,EAAAqrH,YAQA7rH,MAAA,GAAAA,MAAA,UAAAQ,EAAA0S,YAAA1S,EAAAqrH,WAAA,cAOgB7rH,MAAA,GAAAA,MAAA,UAAAQ,EAAA2S,UAAAw4G,eAAAzrC,MAAA1/E,EAAA0S,YAAA,EAAA1S,EAAAqrH,aAYhB7rH,cAAA,UAAAQ,EAAA+rH,gBAAA/rH,EAAA0S,YAAA1S,EAAAqrH,aAAArrH,EAAA2S,UAAA,cASAnT,MAAA,GAEAA,MAFA,WAAAQ,EAAA0S,cAAA1S,EAAA2S,UAEAnT,CAFsC,SAAAQ,EAAA+rH,gBAAA/rH,EAAA0S,YAAA1S,EAAAqrH,YAAArrH,EAAA2S,WAItCnT,cAAA,IAAAQ,EAAA2S,UAAA,MAMAnT,QACAA,MADA,WAAAQ,EAAA0S,cAAA1S,EAAA2S,UACAnT,CADsC,aAAAQ,EAAA2S,WAMjCnT,MAAA,GAAAA,MAAA,OAAAQ,EAAAsrH,kCCtBK51G,KAAYhW,qBAAA4pB,OAAA,g3CAEXuG,CAA8B,sNChDvCrwB,MAAA,YACEA,MAAA,mBAAAA,MAAAW,GAAA,MAAAC,EAAAZ,QAAA,OAAAA,MAASY,EAAAmsH,iBAAgB,GAI1B/sH,gCAFCA,MAAAY,EAAAosH,SAAA,0DAyBAhtH,MAAA,mBAAwCA,MAAA,wCA4BxCA,MAAA,mBAAwCA,MAAA,2DAxB9CA,MAAA,UAIEA,MAAA,yBAAAitH,EAAAjtH,MAAA4xB,GAAA7G,UAAAnqB,EAAAZ,QAAA,OAAAA,MAASY,EAAAssH,YAAAD,GAAmB,GAE5BjtH,MAAA,QAEAA,MAAA,QACEA,MAAA,gBACFA,QAGEA,MADF,OACEA,CADE,SAEAA,MAAA,gBAEJA,UAGEA,MADF,OACEA,CADE,SACGA,MAAA,iCACPA,UAGEA,MADF,QACEA,CADE,UAEAA,MAAA,GAAAmtH,EAAA,gBAEJntH,UAGEA,MADF,QACEA,CADE,aACIA,MAAA,yBAAAitH,EAAAjtH,MAAA4xB,GAAA7G,UAAAnqB,EAAAZ,QAAA,OAAAA,MAASY,EAAAssH,YAAAD,GAAmB,GAEtCjtH,kDA5BEA,MAAAY,EAAAosH,SAAA,eAMYhtH,MAAA,GAAAA,MAAA,SAAAitH,GAKEjtH,MAAA,GAAAA,MAAA,SAAAitH,GAKPjtH,MAAA,GAAAA,YAAA,KAAAitH,EAAAz/F,YAKqBxtB,MAAA,GAAAA,MAAA,UAAAitH,EAAAx3G,OCjCvB,IAAMshB,EAAqB,MAA5B,MAAOA,EACXiqB,UAAUygB,GACR,MAAM/J,EAAO,IAAIhxB,KAAY,IAAP+6B,GAChB2rD,EACJC,UAAUC,WAAaD,UAAUC,UAAUp4G,OACvCm4G,UAAUC,UAAU,GACpBD,UAAUE,UAAY,KAE5B,OAAO71D,EAAK81D,mBAAmBJ,EAAQ,CACrCK,IAAK,UACLC,MAAO,QACPC,KAAM,UACNC,KAAM,UACNC,OAAQ,WAEZ,iDAfW92F,EAAqB,8DAArBA,EAAqB+qB,MAAA,EAAAryC,YAAA,YAArBsnB,CAAqB,KAuBrB+2F,EAAuB,MAA9B,MAAOA,EAMXzuH,YACUyb,EACA9P,EACAf,EACA24G,GAHApjH,KAAAsb,UACAtb,KAAAwL,SACAxL,KAAAyK,QACAzK,KAAAojH,uBALVpjH,KAAAwtH,UAAoB,CAMjB,CACH18E,YAAYe,GACV,GAAI7xC,KAAKgQ,OAAQ,CACf,MAAMu+G,EAAcpmH,SAAS2tD,uBAAuB,mBAChDy4D,EAAY74G,OAAS,EACvB64G,EAAYA,EAAY74G,OAAS,GAAGmjE,iBAAiB,OAAQ,KAC3D74E,KAAKgQ,OAAOrN,MAAI,GAGlB3C,KAAKgQ,OAAOrN,MAEhB,CACF,CAEA4qH,iBACEvtH,KAAKwtH,UAAYxtH,KAAKwtH,QACxB,CAEAE,YAAY39G,GAERA,EAAO9L,QAAUsuG,KAAkBC,SACnCxyG,KAAKojH,qBAAqBuH,cAAc56G,EAAOomB,aAG/Cn2B,KAAKyK,MAAMwG,YACTu9G,MAAyB,CACvBniH,GAAI0D,EAAO1D,MAIfrM,KAAKwL,OAAOlL,SAAS,CAAC,WAAYyP,EAAO1D,IAE7C,CAEAsgB,kBAEE,GADA3sB,KAAKsb,QAAQ+N,cAAcolG,UAAUC,OAAO,aAAc1uH,KAAKwtH,UAC3DxtH,KAAKgQ,OAAQ,CACf,MAAMu+G,EAAcpmH,SAAS2tD,uBAAuB,mBAChDy4D,GAAa74G,OAAS,GACxB64G,EAAYA,EAAY74G,OAAS,GAAGmjE,iBAAiB,OAAQ,KAC3D74E,KAAKgQ,OAAOrN,MAAI,EAGtB,CACF,iDAvDW2rH,GAAuB9tH,mBAAAC,MAAAD,MAAAE,MAAAF,MAAAuB,KAAA,oCAAvBusH,EAAuB3tH,UAAA,qCAAAmP,OAAA,CAAAC,OAAA,SAAAC,OAAA,UAAA9L,SAAA,CAAA1D,OAAA0P,MAAAC,EAAAvP,MAAA,GAAAC,KAAA,GAAAmB,OAAA,sPAAAlB,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDhDpCP,MAAA,UAAIA,MAAA,0BAASQ,EAAA0sH,YAAA1sH,EAAA+O,OAAmB,GAC9BvP,MAAA,QACEA,MAAA,EAAAmuH,EAAA,cAMFnuH,QAEAA,MAAA,QACEA,MAAA,gBACFA,QAGEA,MADF,OACEA,CADE,SAEAA,MAAA,gBAEJA,UAEAA,MAAA,QACEA,MAAA,uBACFA,QAGEA,MADF,QACEA,CADE,UACGA,MAAA,kCACPA,UAGEA,MADF,QACEA,CADE,UAEAA,MAAA,GAAAouH,EAAA,gBAGNpuH,YACAA,MAAA,GAAAquH,EAAA,oBAlCkCruH,MAAA,0BAAAQ,EAAA+O,OAAA1D,GAAA,IAM3B7L,MAAA,GAAAA,MAAA,OAAAQ,EAAA+O,OAAA++G,QAKOtuH,MAAA,GAAAA,MAAA,SAAAQ,EAAA+O,QAKEvP,MAAA,GAAAA,MAAA,SAAAQ,EAAA+O,QAKKvP,MAAA,GAAAA,MAAA,SAAAQ,EAAA+O,QAIZvP,MAAA,GAAAA,YAAA,KAAAQ,EAAA+O,OAAAie,YAKqBxtB,MAAA,GAAAA,MAAA,UAAAQ,EAAA+O,OAAAkG,MAKTzV,cAAA,UAAAQ,EAAA+O,OAAA++G,mxCCaRR,CAAuB,4SCpCpC9tH,MAAA,UAAiCA,MAAA,2BAAqBA,qDAEpDA,MAAA,UAEEA,MAAA,iBAAAqN,IAAA,MAAAwd,GAAA7qB,MAAA8qB,IAAAC,UAAAC,GAAAhrB,QAAA,OAAAA,MAASgrB,GAAAC,kBAAAJ,GAAAxd,IAA+B,GAExCrN,MAAA,aAGEA,MAAA,kBAAAqN,IAAA,MAAAwd,GAAA7qB,MAAA8qB,IAAAC,UAAAC,GAAAhrB,QAAA,OAAAA,MAAUgrB,GAAAC,kBAAAJ,GAAAxd,IAA+B,GAH3CrN,QAKAA,MAAA,UAAMA,MAAA,GACRA,yCAJIA,cAAA,UAAA6qB,GAAAM,UAGInrB,MAAA,GAAAA,MAAA6qB,GAAA3Z,OCkBH,IAAMqkB,EAA2B,MAAlC,MAAOA,GAiBXl2B,cATUG,KAAA6rB,aAAgC,IAAIhb,MAI9C7Q,KAAA8rB,iBAA2B,GAE3B9rB,KAAA+rB,MAA6B,GAC7B/rB,KAAA4hB,SAAsB,EAEP,CAEf,iBAAIqK,GACF,OAAOjsB,KAAK8rB,iBAAiBpW,OACzB1V,KAAK+rB,MAAM/kB,OAAQyW,IACjBA,GAAE/L,KAAK8D,cAAcrS,SAASnD,KAAK8rB,iBAAiBtW,gBAEtDxV,KAAK+rB,KACX,CAEAG,SAAS3Z,IACPvS,KAAK4hB,SAAWrP,GAEXvS,KAAK+rB,OAAU/rB,KAAK4hB,UACzB5hB,KAAKmsB,qBACP,CAEAA,sBACEtZ,QAAQuZ,IACN,qBACA,uBACApsB,KAAK4hB,SACL5hB,KAAK+rB,OAGF/rB,KAAK4hB,WAEV5hB,KAAK+rB,MAAQ/rB,KAAK+rB,MAAM1lB,IAAKgmB,SAEtBA,GACHV,SAAU3rB,KAAK4hB,SAASb,KACrBuL,IAAMtsB,KAAKusB,QAAQC,cAAcF,GAAGD,GAAK9Z,QAAU+Z,KAAMD,GAAK9Z,UAKrEM,QAAQuZ,IACN,qBACA,iBACApsB,KAAK+rB,MAAM/kB,OAAQyW,IAAMA,GAAEkO,WAG7B3rB,KAAKysB,YACLzsB,KAAK0sB,cACP,CAEAC,kBAEE3sB,KAAK4sB,eAAehrB,UAAW+pB,KAI3B3rB,KAAKksB,SAHFP,IACW,GAAE,EAKtB,CAEAkB,kBACE7sB,KAAK8rB,iBAAmB9rB,KAAK+uH,YAAY1lG,cAAc9W,KACzD,CAEAma,cACE1sB,KAAKsb,QAAQyR,MAAQ/sB,KAAK+rB,MACvB1lB,IAAK+a,IAAMA,GAAEuK,UACb3kB,OAAQoa,IAAMA,IAAG1L,MACtB,CAIAsX,KAAK1R,IAEHtb,KAAKsb,QAAUA,GAEX,UAAWtb,KAAKsb,QAAQ1W,SAC1B5E,KAAKuQ,MAAQvQ,KAAKsb,QAAQ1W,OAAO2L,OAI/BvQ,KAAKusB,QAAQU,UACfjtB,KAAKusB,QAAQU,UAAUrrB,UAAWsrB,KAChCltB,KAAK+rB,MAAQ,GACbmB,GAAqBjN,QAAS1N,IAC5BvS,KAAK+rB,MAAM9N,KAAK,IACXje,KAAKusB,QAAQY,WAAW5a,IAC3BA,YAIJvS,KAAKmsB,qBAAmB,EAG9B,CAEAM,YACOzsB,KAAK+rB,QAEV/rB,KAAK+rB,MAAQ/rB,KAAK+rB,MAAMjY,KAAK,CAAClF,GAAG2G,KAC3B3G,GAAE+c,WAAapW,GAAEoW,UAAiB,GACjC/c,GAAE+c,UAAYpW,GAAEoW,SAAiB,EAElC/c,GAAE8C,KAAO6D,GAAE7D,MAAa,EACxB9C,GAAE8C,KAAO6D,GAAE7D,KAAa,EAErB,GAEX,CAEA0b,WACE,OAAQptB,KAAK+rB,OAAS,IACnB/kB,OAAQqlB,IAASA,GAAKV,UACtBtlB,IAAKgmB,IAASA,GAAK9Z,MACxB,CAEAkZ,kBAAkBY,GAA+BtD,IAC/CA,GAAMjb,kBAEN9N,KAAK+rB,MAAQ/rB,KAAK+rB,MAAM1lB,IAAKoX,IAEzBzd,KAAKusB,QAAQC,cACZxsB,KAAKusB,QAAQC,YAAY/O,GAAElL,MAAO8Z,GAAK9Z,QAGtCkL,GAAElL,QAAU8Z,GAAK9Z,MAAckL,GAE5B,IACFA,GACHkO,cAAyB9oB,IAAf4a,GAAEkO,WAA0BlO,GAAEkO,WAK5C3rB,KAAK6rB,aAAalC,KAAK3pB,KAAKotB,WAC9B,mDArJW2I,GAA2B,oCAA3BA,GAA2Bp1B,UAAA,8BAAA0Q,UAAA,SAAAtQ,GAAAC,OAAA,EAAAD,yeDzCxCP,MAAA,UACEA,MAAA,YAEAA,MAAA,eAKEA,MADA,mBAAAA,aAAAW,IAAAX,MAASQ,GAAA6rB,kBAAiB,EAC1BrsB,CAD2B,oBAAAA,aAAAW,IAAAX,MACjBQ,GAAA6rB,kBAAiB,GAE/BrsB,UAEAA,MAAA,EAAAwuH,EAAA,cACAxuH,MAAA,QACEA,MAAA,EAAAyuH,EAAA,YAWFzuH,eAnBIA,MAAA,GAAAA,MAAA,sBAAAQ,GAAAuP,MAAA,OAMG/P,MAAA,GAAAA,MAAA,WAAAQ,GAAA+qB,MAAArW,QAGclV,MAAA,GAAAA,MAAA,UAAAQ,GAAAirB,+BCwBTvV,KAAYjW,WAAA6pB,OAAA,k0CAEXyL,EAA2B,qFCOxC,SAASm5F,EACPn7G,GACAxB,IAEA,OAAQwB,IAEN,IAAK,YACL,IAAK,QACH,OACExB,IACiB,iBAAVA,IACP,SAAUA,IACV,OAAQA,GAED,CACL,IAAI20B,KAAK30B,GAAM+C,MAAMsa,UAAY,IACjC,IAAIsX,KAAK30B,GAAMsd,IAAID,UAAY,KAG5B,KACT,IAAK,UACH,GAAItS,MAAMqnB,QAAQpyB,IAChB,OAAqB,IAAjBA,GAAMmD,OAAqB,KAExBnD,GACJlM,IAAKimB,IAEJmnF,KAAmBM,gCAAgCznF,KAEpD+qB,OAMT,OAAO9kC,EACT,CAKM,SAAU48G,EACdC,IAEA,MAAMC,GAAqC,GAC3C,UAAWt7G,MAAaq7G,GAAiB,CACvC,MAAM78G,GAAQ28G,EACZn7G,GACAq7G,GAAgBr7G,KAElB,GAAKxB,GAEL,OAAQwB,IACN,IAAK,YACL,IAAK,QACH,GACEm1C,MAAM32C,GAAM,KACZ22C,MAAM32C,GAAM,KACC,IAAbA,GAAM,IACO,IAAbA,GAAM,GAEN,MACF88G,GAAWpxG,KAAK,CACd7L,KAAMo7E,KAAe8hC,WACrB7tD,SAAU,CACR1tD,aACAxB,SACAq1B,aAAc,QAGlB,MACF,IAAK,MACL,IAAK,aACL,IAAK,OACHynF,GAAWpxG,KAAK,CACd7L,KAAMo7E,KAAeC,YACrBhsB,SAAU,CACR1tD,aACAxB,SACAq1B,aAAc,QAGlB,MACF,IAAK,gBAUL,IAAK,UACHynF,GAAWpxG,KAAK,CACd7L,KAAMo7E,KAAe+hC,gBACrB9tD,SAAU,CACR1tD,aACAxB,SACAq1B,aAAc,QAKxB,CAEA,OAAOynF,EACT,CAEA,MAAMzhG,UAA6Btd,IACjCzQ,YAAoB4K,IAClB5G,MAAM,CACJmqB,UAAW,CACT3hB,GAAI,YACJkE,MAAO,UACP0d,KAAM,eACN,EAAGxd,KAAkByd,MAEvB86D,MAAO,CACL38E,GAAI,QACJkE,MAAO,YACP0d,KAAM,eACN,EAAGxd,KAAkByd,MAEvBtP,IAAK,CACHvS,GAAI,MACJkE,MAAO,MACPC,YAAY,MACZ,EAAGC,KAAkBC,MAEvBnK,KAAM,CACJ8F,GAAI,OACJkE,MAAO,OACPC,YAAY,MACZ,EAAGC,KAAkBC,MAEvBuF,KAAM,CACJ5J,GAAI,OACJ4hB,KAAM,OACN1d,MAAO,OACPC,YAAY,MACZ,EAAGC,KAEDslB,EAA6B,CAC7B5I,WAAad,MACX3a,KAAM2a,GAAK9lB,OAEbimB,YAAaA,CAAC5d,GAAG2G,KAAM3G,IAAK2G,IAAK3G,GAAEmf,OAASxY,GAAEwY,KAC9Cd,SAAUxiB,GAAMnG,OAAQL,IAAUA,GAAMiyB,gBAAgBjgB,SAG5D8I,cAAe,CACb1S,GAAI,gBACJkE,MAAO,OACP0d,KAAM,aACN,EAAGxd,KAEDslB,EAA6B,CAC7B5I,WAAad,MAET3a,KAAM8/F,KAAca,mCAAmChmF,MAG3DY,SAAU,IAAI0R,IAAYwJ,KACxBA,GAASxlC,KAAK6sH,EAASl2G,MAAcjT,IAAKk/B,IAAMjsB,KAAaisB,MAC7D4C,GAASj1B,UAAQ,MAIvByL,WAAY,CACVtS,GAAI,cAEN2jB,QAAS,CACP3jB,GAAI,UACJkE,MAAO,SACP0d,KAAM,YACN,EAAGxd,KAMDslB,EAA6B,CAC7B5I,WAAad,MAET3a,KAAM+hG,KAAmBO,sBAAsB3nF,MAGnDY,SAAU,IAAI0R,IAAYwJ,KACxBA,GAASxlC,KACP6sH,EAASjd,MAAmBlsG,IAAKk/B,IAAMgtE,KAAkBhtE,MAE3D4C,GAASj1B,UAAQ,QAlFPlT,KAAAyK,QAuFpB,EAGF,SAAS+kH,EAAwD5yE,IAC/D,OAAOzoC,OAAOmzB,KAAKsV,IAAK51C,OAAQu+B,IAAM8H,OAAO6b,OAAO3jB,IACtD,CAOO,IAAMkqF,EAA6B,MAApC,MAAOA,GAQX5vH,YAAmB4K,GAAiCgB,IAAjCzL,KAAAyK,SAAiCzK,KAAAyL,UAN1CzL,KAAA4Q,aACR,IAAIC,MAMJ7Q,KAAK2tB,qBAAuB,IAAIC,EAAqBnjB,IAE9BzK,KAAKyK,MAAMnG,OAAOorH,MAC1B9tH,UAAWoP,KACxBhR,KAAK2tB,qBAAqB5c,aAAapO,KAAKqO,GAAO,GAGrDhR,KAAK2tB,qBAAqB5c,aAAanP,UAAWoP,KAChDhR,KAAKyL,OAAOlI,MAAM,uBAAwB,gBAAiByN,IAC3DhR,KAAKyK,MAAMwG,YAASC,MAAc,CAAEF,aAAU,EAElD,CACAG,oBACEnR,KAAKyK,MAAMwG,YAASG,QACtB,mDAvBWq+G,IAA6BjvH,MAAAC,MAAAD,MAAAE,KAAA,oCAA7B+uH,GAA6B9uH,UAAA,kCAAA0Q,UAAA,SAAAtQ,GAAAC,OAAA,EAAAD,gUCjQ1CP,MAAA,uBAIEA,MAAA,+BAAAA,aAAAW,IAAAX,MAAqBQ,GAAAmQ,oBAAmB,GACzC3Q,cAHCA,MAAA,gBAAAQ,GAAA2sB,qHD+PW8hG,EAA6B,2CEtPnC,IAAME,GAAiC,MAAxC,MAAOA,GAQX9vH,YAAoB4K,GAAiCgB,IAAjCzL,KAAAyK,SAAiCzK,KAAAyL,UACnDzL,KAAK2uB,aAAe3uB,KAAKyK,MAAMnG,OAC5BL,IAAUA,GAAMiyB,gBAAgB1iB,WAAWE,aAE9C1T,KAAKwsH,WAAaxsH,KAAKyK,MAAMnG,OAAQL,IAG5BsZ,KAAKC,KACVvZ,GAAMiyB,gBAAgBtiB,YACpB3P,GAAMiyB,gBAAgB1iB,WAAWC,WAIvCzT,KAAK+rH,cAAgB/rH,KAAKyK,MAAMnG,OAAQL,IAC/BA,GAAMiyB,gBAAgBtiB,aAE/B5T,KAAKksH,UAAYlsH,KAAKyK,MAAMnG,OAAQL,IAC3BA,GAAMiyB,gBAAgB1iB,WAAWC,SAE5C,CAEO05G,eAAehiC,IACpBnrF,KAAKyK,MAAMwG,YAAS2+G,MAAiB,CAAEzkC,UACzC,CAEO0kC,YAAY1kC,IACjBnrF,KAAKyK,MAAMwG,YAAS2+G,MAAiB,CAAEzkC,UACzC,mDAnCWwkC,IAAiCnvH,MAAAC,MAAAD,MAAAE,KAAA,sCAAjCivH,GAAiClsH,QAAjCksH,GAAiCjsH,UAAA0H,WAFhC,QAAM,SAEPukH,EAAiC,yDCEvC,IAAMG,GAAsB,MAA7B,MAAOA,GACXjwH,YAAoB0L,IAAAvL,KAAAuL,kBAA2C,CAExDwkH,+BACLtqH,IAEA,IAAK6X,MAAMqnB,QAAQl/B,IAAO,MAAO,GAEjC,IAAIuiD,GAAQ,EACZ,MAAMgoE,GAAYvqH,GAAKwX,OAAO,CAACgzG,GAAO3nF,MACpC,MAAM4nF,GACJzc,KAAmBK,gCACjBxrE,GAAatY,SAEXmgG,GACJ1c,KAAmBO,sBAAsBkc,IACrCjsH,GAAQgsH,GACVA,GAAMl3G,KAAMnK,IAAMA,GAAEnJ,OAASyqH,SAC7BrtH,EACJmlD,WAAgB1f,GAAapJ,WACfr8B,IAAVoB,GACFA,GAAMi7B,OAASoJ,GAAapJ,YAEdr8B,IAAVotH,KAAqBA,GAAQ,IACjCA,GAAMhyG,KAAK,CACTxY,KAAMyqH,GACNhxF,MAAOoJ,GAAapJ,MACpB3uB,MAAO4/G,GACP59G,MAAO+1B,GAAapJ,MACpBkxF,WAAY,EACZv2D,MAAO45C,KAAmBS,sBAAsBgc,OAG7CD,IACN,IAEHD,UAAU/vG,QAAShc,KAEfA,GAAMmsH,WADM,IAAVpoE,GACiB/jD,GAAMi7B,MAAQ8oB,GAEd,EAAIgoE,GAAUt6G,SAI9Bs6G,EACT,CAEOK,wBAIL,OAHuDjgG,KAAKgG,MAC1Dp2B,KAAKuL,gBAAgBitB,QAAQ,UAAW,WAEf,EAE7B,CAEO83F,cACL,OAAOtwH,KAAKuL,gBAAgBi4D,SAAS,UAAW,SAASp9D,QAAKuC,KAAK,GACrE,CAEO4nH,aACLv/G,IAEA,SAAOsE,MACL,IAAIqC,QAAeC,KACjB5X,KAAKuL,gBAAgBa,QAAQ,UAAW4E,GAAS,SACjD4G,IAAO,GAGb,mDApEWk4G,IAAsBtvH,MAAAC,MAAA,sCAAtBqvH,GAAsBrsH,QAAtBqsH,GAAsBpsH,UAAA0H,WAFrB,QAAM,SAEP0kH,EAAsB,kHC+CjCtvH,MAAA,aAOGA,MAAA,GAAgBA,2CALjBA,MAAA,UAAAi0B,GAAA+7F,qBAAAvc,2BAAAx/E,GAAA+7F,qBAAA1c,gCAAA2c,GAAApkH,MAKC7L,cAAAiwH,GAAAl+G,QCgBL,MAAMm+G,GAASnc,EAAQ,OAahB,IAAMoc,GAAwB,MAA/B,MAAOA,GAoFX9wH,YACS4K,GACAmmH,GACC7wH,GACAwL,GACAhJ,GACAsuH,GACA9iH,GACAR,GACDqkB,IARA5xB,KAAAyK,SACAzK,KAAA4wH,eACC5wH,KAAAD,WACAC,KAAAuL,mBACAvL,KAAAuC,WACAvC,KAAA6wH,2BACA7wH,KAAA+N,iBACA/N,KAAAuN,uBACDvN,KAAA4xB,2BA5FO5xB,KAAAwwH,qBAAuB/c,KAEhCzzG,KAAA8wH,aACL,IAAIl/G,SAAgB/O,GACf7C,KAAA+wH,mBAAqC,CAC1CnhH,MAAM,EACN8B,KAAM,cAMD1R,KAAAgxH,kBAAiD,IAAIp/G,IAC1D,IASF5R,KAAAixH,eAAyC,GACzCjxH,KAAAkxH,0BAA+D,CAC7Dp/G,aAAcw8G,IACdv8G,QAAS,CACP,CACE3J,MAAO,GACP4J,UAAU,GAEZ,CACE5J,MAAO,SAET,CACEA,MAAO,UAET,CACEA,MAAO,gBAET,CACEA,MAAO,cAET,CACEA,MAAO,OACP4J,UAAU,GAEZ,CACE5J,MAAO,GACP4J,UAAU,KAKhBhS,KAAAmxH,kBAA+C,CAC7Cj/G,MAAQg9B,KACN,MAAMkiF,GAAsBhwG,MAC1B/U,GAAI+U,GAAE/U,GACN2hB,UAAW5M,GAAE4M,UACbznB,KAAM6a,GAAE7a,KACRqY,IAAKwC,GAAExC,IACPuX,YAAaq7E,KAAcW,+BACzB/wF,GAAErC,eAEJ9a,MAAOwvG,KAAmBK,gCAAgC1yF,GAAE4O,SAC5D/Z,KAAMmL,GAAEnL,KAAK5P,IAAKgiB,MAChBgpG,OAAQhpG,GAAEuiE,YACVrkF,KAAM8hB,GAAEwiE,WACRt4E,MAAO8V,GAAE9V,SAEXyL,UAAWoD,GAAEvC,YAAcyyG,OAG7B,OAAOtxH,KAAKgxH,kBAAkB5qH,QAC5BC,KAAK86B,MACH17B,KAAM07B,GAAS96B,IAAI+qH,OAClB,GA4MDpxH,KAAAuxH,kBAAoB,EAC1BpwF,gBAMIx5B,WAAU3H,KAAKgxH,kBAAkBz+G,MAAO4uB,MAC5CnhC,KAAKgxH,kBAAkBruH,KAAKw+B,IAE5BnhC,KAAKwxH,mBAAkB,GAAK,EAGtBxxH,KAAAyxH,2BAA8BC,KAChCA,IAAcA,GAAWnnC,cAC3BvqF,KAAK2xH,cACH3xH,KAAK6wH,wBAAwBd,+BAC3B2B,GAAWnnC,cAGjBvqF,KAAK4xH,2BAA0B,EAAK,EA7MpC5xH,KAAKyK,MACFnG,OAAQL,IAAUA,GAAMiyB,gBAAgBlgB,YACxCpU,UAAWgO,IAAS5P,KAAK4xH,0BAA0BhiH,KAEtD5P,KAAKyR,cAAgB,CACnB7B,MAAM,EACN8B,KAAM,aACNrF,GAAI,iBAGNrM,KAAK6xH,gBAAkB,EACvB7xH,KAAK8xH,wBAA0B,EAC/B9xH,KAAK+xH,mBAAoB,EAGzB/xH,KAAKyK,MAAMwG,YAAS+gH,SAEpBhyH,KAAKiyH,gBAAevjG,KAAc,CAChC1uB,KAAKyK,MAAMnG,OAAO4tH,OAAiB,EACnCC,KAAS,OACR/rH,QACDC,KAAI,EAAE1B,GAAGgD,MACHhD,GAGK,gBAFK+rH,GAAO/rH,IACFytH,YAGZ,KAIXpyH,KAAKqyH,aAAeryH,KAAKyK,MAAMnG,OAAO4tH,MAAmB9rH,QACvDC,KAAK1B,IACCA,GACKA,GAAEirB,UAAY,IAEhB,OAMX5vB,KAAKuN,oBACFC,gBACAgF,iBAAiBi9G,EAAgCn4G,QAMjD7J,aAAa,YAClB,CAEAxN,WACED,KAAKwxH,mBAAkB,GACvBxxH,KAAKyS,YAAc,IAAIhM,IACvBzG,KAAKuC,QAAQgB,MAAM,sBAAuB,gBAC5BvD,KAAKyK,MAAMnG,OAAOguH,MAC1BlsH,QAAKuM,KAAU3S,KAAKyS,cAAc7Q,UAAW6D,KACjDzF,KAAKuyH,cAAc9sH,GAAI,GAEzB,MAAMqY,GAAY9d,KAAKyK,MAAMnG,OAAOkuH,MAC9BC,GAAqBzyH,KAAKyK,MAAMnG,OACpCouH,MAEIC,GAAa3yH,KAAKyK,MAAMnG,OAAOsuH,MACrC5yH,KAAK6yH,mBAAqBF,GAE1B,MAAMG,GAAiB9yH,KAAKyK,MAAMnG,OAAOyuH,MACnCC,GAA0BhzH,KAAKyK,MAAMnG,OACzC2uH,MAGFn1G,GAAU1X,QAAKuM,KAAU3S,KAAKyS,cAAc7Q,UAAU,CACpDe,KAAM3C,KAAKuxH,oBAGbkB,GAAmBrsH,QAAKuM,KAAU3S,KAAKyS,cAAc7Q,UAAU,CAC7De,KAAM3C,KAAKyxH,6BAGbqB,GAAe1sH,QAAKuM,KAAU3S,KAAKyS,cAAc7Q,UAAU,CACzDe,KAAO8E,KACDA,IAAOzH,KAAK+N,cAAcC,eAAevG,IAC7CzH,KAAKwxH,mBAAkB,EAAK,IAIhCwB,GAAwB5sH,QAAKuM,KAAU3S,KAAKyS,cAAc7Q,UAAU,CAClEe,KAAO8E,KACDA,IAAOzH,KAAK+N,cAAcC,eAAevG,GAAK,GAGxD,CAEAiG,cACM1N,KAAKyS,cACPzS,KAAKyS,YAAY9P,OACjB3C,KAAKyS,YAAYS,WACjBlT,KAAKyS,YAAYU,cACjBnT,KAAKyS,iBAAc5P,EAEvB,CAKO2uH,kBAAkB5tD,IACnBA,IACF5jE,KAAK6xH,mBAGFjuD,IAAa5jE,KAAK6xH,gBAAkB,GACvC7xH,KAAK6xH,kBAGP7xH,KAAKyR,cAAc7B,KAAgC,IAAzB5P,KAAK6xH,eACjC,CAEOD,0BAA0BhuD,IAC3BA,IACF5jE,KAAK8xH,2BAGFluD,IAAa5jE,KAAK8xH,wBAA0B,GAC/C9xH,KAAK8xH,0BAGP9xH,KAAK+wH,mBAAmBnhH,KAAwC,IAAjC5P,KAAK8xH,uBACtC,CAEOoB,yBAAyBC,IAC9BnzH,KAAK+xH,kBAAoBoB,EAC3B,CAEOC,4BAA4Bj9F,IACjCn2B,KAAKyK,MAAMwG,YACTwrG,KAAuB,CACrBtmF,iBAGN,CAEO/iB,qBACLpT,KAAK4xB,wBAAwBw0F,oBAC/B,CACOiN,mBAAmBC,IACxB,MAAM9/G,GAAaW,OAAOC,OAAO,GAAIk/G,IACrCtzH,KAAKyK,MAAMwG,YAASsiH,MAAiB,CAAE//G,gBACzC,CAEOS,eAAeC,IACpB,MAAMJ,GAAOK,OAAOC,OAAO,GAAIF,IAC/BlU,KAAKyK,MAAMwG,YAASoD,MAAW,CAAEP,UACnC,CAEO0/G,0BACL,MAAM,IAAIluG,MAAM,0BAClB,CAEOmuG,aACLzzH,KAAK0zH,cACP,CAEQA,eACN,OAAO1zH,KAAKyK,MACTnG,OAAQL,IAAUA,GAAMiyB,iBACxB9vB,QACCuC,KAAK,IAAC,EACNtC,KAAI,EAAG2K,WAASwC,cAAYM,YAAI,CAC9B9C,QAASA,IAAW,GACpBwC,cACAM,YAGHlS,UAAU,EAAGoP,WAAS8C,QAAMN,kBAC3BxT,KAAKuC,QAAQgB,MAAM,uBACnBvD,KAAKwxH,mBAAkB,GACvBxxH,KAAK4xH,2BAA0B,GAE/B5xH,KAAKyK,MAAMwG,YAASyiH,MAAa,CAAElgH,cAAYM,QAAM9C,cACrDhR,KAAKyK,MAAMwG,YAAS0iH,MAAsB,CAAE3iH,aAAU,EAE5D,CAwBAsD,aAAaC,IAMXvU,KAAKiU,eAAejU,KAAKwU,cAAcD,IACzC,CAEAC,cAAcD,IAMZ,OAAQA,GAAInM,OACV,IAAK,QACH,MAAO,CACL2L,UAAW,OACXU,KAAmB,SAAbF,GAAIT,MAEd,IAAK,SACH,MAAO,CACLC,UAAW,UACXU,KAAmB,SAAbF,GAAIT,MAEd,IAAK,eACH,MAAO,CACLC,UAAW,gBACXU,KAAmB,SAAbF,GAAIT,MAEd,IAAK,aACH,MAAO,CACLC,UAAW,YACXU,KAAmB,SAAbF,GAAIT,MAGlB,CACQy+G,cAAcz+G,IACpB,OAAQA,GAAKC,WACX,IAAK,OACH,MAAMo/C,GAAQnzD,KAAKkxH,0BAA0Bn/G,QAAQgH,KAClDgH,IAAkB,UAAZA,GAAE3X,OAEP+qD,KACFA,GAAMr/C,KAAOA,GAAKW,KAAO,OAAS,OAEpC,MACF,IAAK,UACH,MAAM+7B,GAASxwC,KAAKkxH,0BAA0Bn/G,QAAQgH,KACnDgH,IAAkB,WAAZA,GAAE3X,OAEPooC,KACFA,GAAO18B,KAAOA,GAAKW,KAAO,OAAS,OAErC,MACF,IAAK,gBACH,MAAM0hB,GAAcn2B,KAAKkxH,0BAA0Bn/G,QAAQgH,KACxDgH,IAAkB,iBAAZA,GAAE3X,OAEP+tB,KACFA,GAAYriB,KAAOA,GAAKW,KAAO,OAAS,OAE1C,MAEF,IAAK,YACH,MAAMuZ,GAAYhuB,KAAKkxH,0BAA0Bn/G,QAAQgH,KACtDgH,IAAkB,eAAZA,GAAE3X,OAEP4lB,KACFA,GAAUla,KAAOA,GAAKW,KAAO,OAAS,OAI9C,CACAqpB,cACE99B,KAAKyK,MAAMwG,YAASG,QACtB,mDA3XWu/G,IAAwBnwH,MAAAC,MAAAD,MAAAE,MAAAF,MAAAuB,OAAAvB,MAAAgM,MAAAhM,MAAAiM,KAAAjM,MAAAkM,IAAAlM,MAAA4zB,MAAA5zB,MAAAyhC,MAAAzhC,MAAAm3D,OAAA,oCAAxBg5D,GAAwBhwH,UAAA,sBAAA0Q,UAAA,SAAAtQ,GAAAC,OAAA,EAAAD,+JAPxB,CACT,CACEiM,QAASyjB,IACTtjB,SAAUwiH,OAEb/uH,MAAA,GAAAC,KAAA,GAAAmB,OAAA,kzBAAAlB,SAAA,SAAAC,GAAAC,IAAA,KAAAD,GAAA,kBD7FDP,MADF,UACEA,CAD+C,WAE7CA,MAAA,4BAKAA,MAAA,eACEA,MAAA,0BAEEA,MADF,UACEA,CADiB,QACbA,MAAA,cAAQA,QAEVA,MADF,UACEA,CADgE,cAI9DA,MAAA,mBAAAA,aAAAW,IAAAX,MAASQ,GAAAoS,qBAAoB,GAE7B5S,MAAA,aACAA,MAAA,WAAOA,MAAA,oBACTA,UAEEA,MADF,YACEA,CAD6B,8DAK3BA,MAAA,sBACFA,QACAA,MAAA,cAA2BA,MAAA,mBAAAA,aAAAW,IAAAX,MAASQ,GAAAyyH,aAAY,GAEpDjzH,YAEAA,MAAA,kBAIEA,MAAA,6BAAAqN,IAAArN,aAAAW,IAAAX,MAAqBQ,GAAAsT,aAAAzG,IAAoB,GAEzCrN,MAAA,aAIEA,MAAA,cACAA,MAAA,cAA+BA,MAAA,yCAA6BA,QAC5DA,MAAA,cAAgCA,MAAA,kCAA2BA,QAC3DA,MAAA,cAA4BA,MAAA,mBAAAA,aAAAW,IAAAX,MAASQ,GAAA88B,cAAa,GAC/Ct9B,MAAA,wBAMbA,kBAEAA,MAAA,oCAKFA,QACAA,MAAA,GAAAozH,GAAA,yBAAApzH,cAxDMA,MAAA,GAEAA,MAFA,UAAAQ,GAAA2wH,cAEAnxH,CAFyB,yBAEzBA,CAD2B,kBAIPA,MAAA,GAAAA,MAAA,gBAAAQ,GAAAyQ,eAeZjR,MAAA,IAAAA,MAAA,UAAAA,MAAA,MAAAA,MAAA,MAAAQ,GAAAqxH,gBAEA7xH,MAAA,GAAAA,MAAA,IAAAA,MAAA,MAAAQ,GAAAixH,cAAA,KAOJzxH,MAAA,GAEAA,MAFA,gBAAAQ,GAAAkwH,0BAEA1wH,CAF2C,aAAAQ,GAAAmwH,kBAE3C3wH,CADgC,qBAAAQ,GAAA6xH,oBAsBtCryH,MAAA,GAAAA,MAAA,6wECyCSmwH,EAAwB,KC3FrC,MAAMr/G,GAAiB,CACrB,CACE1E,KAAM,GACNC,UAAW8jH,GACX5kH,YAAa,UAACV,IACd5F,KAAM,CACJ2M,KAAM,WACNtF,WAAY,iBACZ4H,qBAAsB,cASrB,IAAMm/G,GAA4B,MAAnC,MAAOA,wDAA4B,mCAA5BA,IAA4B,uCAH7Bj/G,MAAaC,SAASvD,IACtBsD,QAAY,SAEXi/G,EAA4B,KCKzC,MAAM39G,GAAuC,CAC3CtC,YAAa,KACbJ,WAAY,CACVE,YAAa,EACbD,SAAU,GACVE,UAAW,KACXC,YAAa,MAEfE,KAAM,CACJC,UAAW,YACXU,MAAM,GAERzD,QAAS,GACTiF,KAAM,GACNkrB,SAAU,GACV2yF,kBAAmB,KACnBC,cAAe,KACfC,uBAAwB,KACxBC,kBAAmB,KACnBC,gBAAiB,KACjBl+G,YAAY,EACZm+G,mBAAoB,MAoJhBC,GAAiCA,CACrCnwH,GACAkwH,UAEGlwH,GACHkwH,wBAaWE,MAAyBt+G,MACpCG,MACAC,MAAGm+G,KA7G0BC,CAC7BtwH,IACEk9B,YAAUvtB,mBAAW,IAEpB3P,GACHk9B,YACAvtB,eACAmgH,cAAe,KACfG,gBAAiB,IAAIhtF,SAqGuB,EAC5C/wB,MAAGo9G,KAtK4BiB,CAC/BvwH,IACEuP,kBAAU,IAETvP,GACHuP,WAAY,IACPvP,GAAMuP,cACNA,IAELwC,YAAY,MA6JiC,EAC7CG,MAAGy5G,KA9DqB6E,CACxBxwH,IACEknF,YAAI,IAEHlnF,GACHuP,WAAYW,OAAOC,OAAO,GAAInQ,GAAMuP,WAAY,CAC9CE,YAAay3E,KAEfn1E,YAAY,MAsD0B,EACtCG,MAAGu+G,KApDyBC,CAC5B1wH,IACEwP,gBAAQ,IAEPxP,GACHuP,WAAYW,OAAOC,OAAO,GAAInQ,GAAMuP,WAAY,CAC9CC,SAAUA,KAEZuC,YAAY,MA4CkC,EAC9CG,MAAG9B,KA7JsBiC,CACzBrS,IACE6P,YAAI,IAC2B7P,GAAO6P,QAAMkC,YAAY,MA0JzB,EACjCG,MAAGjF,KAzJyBmF,CAC5BpS,IACE+M,eAGF,MAAM0C,GAAc/L,WAAU1D,GAAM+M,QAASA,IACzC/M,GAAMuP,WAAWE,YACjB,EAEJ,MAAO,IACFzP,GACH+M,WACAwC,WAAY,IACPvP,GAAMuP,WACTE,gBAEFsC,YAAY,MAyIyB,EACvCG,MAAGy+G,KA3FH3wH,SAEGA,GACH8vH,cAAe,iCACf/9G,YAAY,MAuF8C,EAC1DG,MAAG0+G,KArFmCC,CACtC7wH,IACE6vH,yBAAiB,IAEhB7vH,GACH6vH,qBACAE,uBAAwB,KACxBh+G,YAAY,MA8EkD,EAC9DG,MAAG4+G,KA3EH9wH,SAEGA,GACH+vH,uBAAwB,4CACxBh+G,YAAY,MAuEgE,EAC5EG,MAAG6+G,KA/CsBC,CACzBhxH,IACE+M,eAAO,IAGJ/M,GACH+M,eAyC8C,EAChDmF,MAAG++G,KAtCmBC,CACtBlxH,IACEgS,YAAI,IAEHhS,GACHgS,YAiC0C,EAC1CE,MAAGi/G,KAvByBC,CAC5BpxH,IACE6O,gBAAQ,IAGLoD,GACH+9G,kBAAmBnhH,OAiByB,EAC9CqD,MAAGm/G,KA7GHrxH,SAEGA,GACH+R,YAAY,MA0G0B,EACtCG,MAAGo/G,KAxGHtxH,SAEGA,GACH+R,YAAY,MAqG0B,EACtCG,MAAGsmG,IAAwB2X,KAA8B,EACzDj+G,MAAGq/G,KAAoBpB,KAA8B,EACrDj+G,MAAGq4G,KAA0B4F,KAA8B,EAC3Dj+G,MAAG/E,KAjJHnN,SAEGA,GACH+M,QAAS,CACP2N,WAAY1a,GAAM+M,QAAQ2N,WAC1BqP,UAAW,KACXg7D,MAAO,KACPziF,KAAM,KACNwY,cAAe,KACfH,IAAK,KACLoR,QAAS,KACT/Z,KAAM,MAERzC,WAAY,IACPvP,GAAMuP,WACTE,YAAa,GAEfsC,YAAY,MAgIwB,EACpCG,MAAGs/G,KAA0BxxH,IAC3BmwH,GAA+BnwH,GAAO,wHChM1C,MAAMgrB,GACJhZ,KAEA,GAAKA,IAAwB,IAAhBA,GAAKP,OAElB,OAAOO,GAAKgH,OAAO,CAAC4uB,GAAKC,MACvBD,GAAIC,GAAK/d,MAAQ,CAAC,KACX8d,IACN,GAAE,EAIA,IAAM6pF,GAAuB,MAA9B,MAAOA,GAuJX71H,YACUkV,GACA4gH,GACAC,GACA/E,GACApmH,IAJAzK,KAAA+U,YACA/U,KAAA21H,sBACA31H,KAAA41H,gBACA51H,KAAA6wH,2BACA7wH,KAAAyK,SA3JVzK,KAAA61H,iBAAgB1gH,OAAa,IACpBnV,KAAK+U,SAAS3O,QACnBgP,OAAOs+G,OAAY,EACnBr+G,MAAU,EAAGrE,WAASwC,cAAYM,WACzB9T,KAAK21H,mBACT3vG,QAAQ,CACPxS,cACAM,QACA9C,QAASm+G,EAAiBn+G,IAC1BiF,KAAMgZ,GAAWje,IAASiF,QAE3B7P,QACCC,KACGZ,OACC6uH,MAAkB,CAChB1gH,YAAanO,GAAK+N,WAAWI,YAC7BD,UAAWlO,GAAK+N,WAAWG,UAC3BwtB,SAAU17B,GAAK2pB,WAChB,EACHzZ,MAAW,OAAMC,OAAGg/G,YAOhC50H,KAAA81H,0BAAyB3gH,OAAa,IAC7BnV,KAAK+U,SAAS3O,QACnBgP,OAAOu+G,OAAqB,EAC5Bt+G,MAAU,EAAGrE,cACXhR,KAAK21H,mBACF7oC,qBACCqiC,EAAiBn+G,IACjBie,GAAWje,IAASiF,OAErB7P,QACCC,KACGZ,OAASovH,MAA2B,CAAEf,kBAAmBruH,MAAM,EAChEkQ,MAAW,OAAMC,OAAGm/G,YAOhC/0H,KAAA+1H,mBAAkB5gH,OAAa,IACtBnV,KAAK+U,SAAS3O,QACnBgP,OAAOlE,OAAa,EACpB7K,KAAI,EAAG2K,eAAO,EAAOglH,MAAmB,CAAEhlH,gBAI9ChR,KAAAi2H,iBAAgB9gH,OAAa,OACpBuZ,KAAc,CACnB1uB,KAAKyK,MAAMnG,OAAO4xH,MAClBl2H,KAAKyK,MAAMnG,OAAO6xH,MAClBn2H,KAAKyK,MAAMnG,OAAOguH,QACjBlsH,QACDwoB,MAAa,MAAG,EAChBwnG,MAAU,EAAEplH,GAASwC,GAAYM,MAAU,IACzC6/G,MAAsB,CAAE3iH,cAAS,EACjC0iH,MAAa,CAAElgH,cAAYxC,WAAS8C,WAAM,EAC1CuiH,MAAe,CAAE13G,WAAY3N,IAAS2N,iBAK5C3e,KAAAs2H,iBAAgBnhH,OAAa,IACpBnV,KAAK+U,SAAS3O,QACnBgP,OAAO4gH,OAAkB,EACzB3gH,MAAU,EAAGrE,cACXhR,KAAK6wH,wBAAwBN,aAAav/G,MAAQ,EAEpD3K,KAAI,OAAMkwH,WAIdv2H,KAAAw2H,gBAAerhH,OAAa,IACnBnV,KAAK+U,SAAS3O,QACnBgP,OAAO48G,OAAiB,EACxB38G,MAAU,IAAMrV,KAAK6wH,wBAAwBP,gBAAa,EAC1DjqH,KAAK2K,OAAYgkH,MAA0B,CAAEhkH,gBAIjDhR,KAAAy2H,aAAYthH,OAAa,IAChBnV,KAAK+U,SAAS3O,QACnBgP,OAAOihH,OAAc,EACrBhhH,MAAU,EAAGsJ,kBACX,MAAM1I,GAAO0I,GACT3e,KAAK41H,aAAa/nG,uBAAuBlP,IACzC3e,KAAK41H,aAAaxnC,aACtB,SAAO94E,MAAKW,IAAM7P,QAChBC,KACGZ,OACCyvH,MAAuB,CACrBj/G,KAAMxQ,GAAKY,IAAKgiB,MAAS9hB,KAAM8hB,GAAE9hB,KAAMwnB,KAAM1F,GAAEhc,SAChD,EACHsJ,MAAW,OAAMC,UAAGs/G,MAAuB,CAAEj/G,KAAM,QACpD,KAYTjW,KAAA02H,yBAAwBvhH,OAAa,OAC5BuZ,KAAc,CACnB1uB,KAAK+U,SAAS3O,QAAKgP,OAAO4vD,QAC1BhlE,KAAK+U,SAAS3O,QAAKgP,OAAO4gH,SACzB5vH,QACDY,MACE,GAAImH,qBAAqB6C,eACvB7C,MACE6C,IAAWA,GAAQ2N,aAAexQ,GAAgB9B,MAAG,EAE3DhG,KAAI,GAAI8H,wBAAiB,EAChB+C,MAAc,CACnBF,QAAS,CACP2N,WAAYxQ,GAAgB9B,SAOtCrM,KAAA22H,mBAAkBxhH,OAAa,IAC7BnV,KAAK+U,SAAS3O,QACZgP,OAAOquG,OAAoB,EAC3BpuG,MAAU,OACRqZ,KAAc,CACZ1uB,KAAKyK,MAAMnG,OAAO4xH,MAClBl2H,KAAKyK,MAAMnG,OAAO6xH,MAClBn2H,KAAKyK,MAAMnG,OAAOguH,UAClB,EAEJ8D,MAAU,EAAEplH,GAASwC,GAAYM,MAAU,IACzCwhH,SAAgB,EAChB3B,MAAsB,CAAE3iH,cAAS,EACjC0iH,MAAa,CAAElgH,cAAYxC,WAAS8C,WAAM,EAC1CuiH,MAAe,CAAE13G,WAAY3N,GAAQ2N,gBAWxC,mDA7JQ+2G,IAAuBl1H,MAAAC,OAAAD,MAAAE,MAAAF,MAAAuB,OAAAvB,MAAAgM,IAAAhM,MAAAiM,MAAA,sCAAvBipH,GAAuBjyH,QAAvBiyH,GAAuBhyH,WAAA,SAAvBgyH,EAAuB,sJCvC7B,IAAMkB,GAAsB,MAA7B,MAAOA,GACXp1E,UAAUzxC,IACR,OAAIA,GAAO++G,QAAU/+G,GAAO++G,OAAOp5G,OAAS,EACnC,WAGF+9F,KAAmBO,sBAAsBjkG,GAAO9L,MACzD,mDAPW2yH,GAAsB,+DAAtBA,GAAsBt0E,MAAA,YAAtBs0E,EAAsB,KAetBC,GAAc,MAArB,MAAOA,GAMXh3H,cAHAG,KAAA82H,kBAA4B,GAC5B92H,KAAA+2H,mBAA6B,EAEd,CAEfpqG,kBACO3sB,KAAK+P,SAEV/P,KAAK82H,kBAAoB,SAAS92H,KAAKg3H,cAAch3H,KAAK+P,OAAO9L,SACjEjE,KAAK+2H,mBAAqB,UAAU/2H,KAAKg3H,cAAch3H,KAAK+P,OAAO9L,SACrE,CAEA+yH,cAAc/yH,IACZ,GAAIjE,KAAK+P,OAAO++G,QAAU9uH,KAAK+P,OAAO++G,OAAOp5G,OAAS,EACpD,MAAO,iBAGT,OAAQzR,IACN,KAAKsuG,KAAkBT,YACrB,MAAO,oBACT,KAAKS,KAAkBC,QACrB,MAAO,gBACT,KAAKD,KAAkBE,SACrB,MAAO,iBACT,KAAKF,KAAkBP,SACrB,MAAO,iBACT,KAAKO,KAAkBN,SACrB,MAAO,iBACT,KAAKM,KAAkBG,SACrB,MAAO,iBACT,QACE,MAAO,aAEb,mDApCWmkB,GAAc,oCAAdA,GAAcl2H,UAAA,eAAAmP,OAAA,CAAAC,OAAA,UAAAnP,MAAA,EAAAC,KAAA,EAAAmB,OAAA,2BAAAlB,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KC/B3BP,MAAA,YACAA,MAAA,YAAgDA,MAAA,iCAE9CA,gBAHmBA,MAAAQ,GAAA+1H,oBACDv2H,cAAAQ,GAAA81H,mBAA4Bt2H,oBAAA,IAAAQ,GAAA+O,yBDenC6mH,IAAsBtsG,OAAA,o8RAetBusG,EAAc,oCExBpB,IAAMI,GAAY,MAAnB,MAAOA,GAGXp3H,cAAe,CAEfI,WAAkB,mDALPg3H,GAAY,oCAAZA,GAAYt2H,UAAA,aAAAmP,OAAA,CAAAggB,IAAA,OAAAlvB,MAAA,EAAAC,KAAA,EAAAmB,OAAA,gBAAAlB,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KCPzBP,MAAA,WAA4CA,MAAA,GAAcA,gBAArDA,MAAA,UAAAA,MAAA,EAAA2P,GAAAnP,GAAA8uB,IAAAuhG,SAAuC7wH,cAAAQ,GAAA8uB,IAAAvpB,kLDO/B0wH,EAAY,KEqBZC,GAAyB,MAAhC,MAAOA,GAIXr3H,cAAe,CAEfI,WAAkB,mDANPi3H,GAAyB,oCAAzBA,GAAyBv2H,UAAA,eAAAmP,OAAA,CAAAC,OAAA,SAAAy9G,SAAA,YAAA5sH,MAAA,EAAAC,KAAA,EAAAmB,OAAA,gCAAAlB,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KC5BtCP,MAAA,SACEA,MAAA,WAEEA,MADF,QACEA,CADG,UACGA,MAAA,GAAiBA,QACvBA,MAAA,UAAMA,MAAA,GAEVA,oBAL+BA,cAAA,MAAAQ,GAAA+O,OAAAiO,UAAAxd,OAErBA,MAAA,GAAAA,MAAAQ,GAAA+O,OAAAxJ,MACA/F,MAAA,GAAAA,MAAAQ,GAAA+O,OAAA6O,iyBDwBGs4G,EAAyB,KEZzBC,GAAqB,MAA5B,MAAOA,GACX31E,UAAUzxC,IACR,OAAIA,GAAO++G,QAAU/+G,GAAO++G,OAAOp5G,OAAS,EACnC,WAEF87F,KAAca,mCAAmCtiG,GAAOomB,YACjE,mDANWghG,GAAqB,8DAArBA,GAAqB70E,MAAA,YAArB60E,EAAqB,KAcrBC,GAAoB,MAA3B,MAAOA,GAKXv3H,cAFAG,KAAAq3H,iBAA2B,EAEZ,CAEf1qG,kBACO3sB,KAAK+P,SAEV/P,KAAKq3H,iBAAmB,SAASr3H,KAAKs3H,aACpCt3H,KAAK+P,OAAOomB,eAEhB,CAEAmhG,aAAajuD,IACX,MAAO,YACT,mDAjBW+tD,GAAoB,oCAApBA,GAAoBz2H,UAAA,sBAAAmP,OAAA,CAAAC,OAAA,UAAAnP,MAAA,EAAAC,KAAA,EAAAmB,OAAA,cAAAlB,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KC9BjCP,MAAA,YAA+CA,MAAA,gCAE7CA,gBAFkBA,MAAAQ,GAAAq2H,kBAA2B72H,oBAAA,IAAAQ,GAAA+O,yBDgBlConH,IAAqB7sG,OAAA,o8RAcrB8sG,EAAoB,uJE9BjC52H,MAAA,GASSA,MARP,UAQOA,CAHN,UAGMA,CAFmB,WAEnBA,CAAA,YAA4BA,MAAA,UAAMA,QAAQA,MAAA,yBAGjDA,4BATEA,cAAA,UAAAA,MAAA,EAAA2P,mCAYJ3P,MAAA,GAQMA,MAPJ,UAOIA,CAFH,UAEGA,CADsB,UAEpBA,MAAA,GACFA,QACAA,MAAA,YAAyBA,MAAA,GAC3BA,UACAA,MAAA,SACFA,6CAXEA,cAAA,UAAAA,MAAA,EAAAuxB,GAAA,IAAAwlG,GAAAnH,aAKQ5vH,MAAA,GAAAA,MAAA,kBAAA+2H,GAAA19D,MAAA,IACJr5D,cAAA,IAAA+2H,GAAAhnH,MAAA,KAEuB/P,MAAA,GAAAA,MAAA,IAAA+2H,GAAAr4F,MAAA,KAEtB1+B,cAAA,gBAAA+2H,GAAA19D,MAAA,KCpBF,IAAM29D,GAAwB,MAA/B,MAAOA,GAKX33H,cAAe,mDALJ23H,GAAwB,oCAAxBA,GAAwB72H,UAAA,2BAAAmP,OAAA,CAAA2nH,QAAA,UAAAC,YAAA,cAAAC,mBAAA,sBAAA/2H,MAAA,EAAAC,KAAA,EAAAmB,OAAA,+JAAAlB,SAAA,SAAAC,GAAAC,IAAA,EAAAD,IDOrCP,MAfA,EAAAo3H,GAAA,qBAeAp3H,CAfuD,EAAAq3H,GAAA,8BAAxCr3H,MAAA,QAAAQ,GAAAy2H,SAAA,IAAAz2H,GAAAy2H,QAAA/hH,QAeiBlV,cAAA,UAAAQ,GAAAy2H,6/BCPnBD,EAAwB,iCC8F9B,IAAMM,GAAqB,MAA5B,MAAOA,wDAAqB,mCAArBA,IAAqB,wCAlCrB,CAAChI,IAAuBr5G,QAAA,CAEjCC,KACAm9G,GACAkE,KACAnhH,KACAohH,KACAjhH,KACAkhH,KACAthH,KACAO,KAAYD,WAAW,kBAAmBo9G,IAC1Cr9G,MAAcC,WAAW,CAACy+G,KAE1B5+G,KACAD,KACAsiD,KACAI,KACAxB,KACAilD,KAEA/kF,KACA4E,KACAtB,KACAk9E,KACAv9C,KACA7lC,KACA4/B,KACA5gC,KACA8uF,KACAqI,KACA36F,OAA8B,SAIrBinG,EAAqB,WA7C9BnH,GAAwB,kBAAA5uH,KAAAyK,MAAAC,KAAAC,GAAA0nB,KAAA6N,KAAA01B,KAAA,oBAAA51D,KAAAw9G,IAAA,SAExB+O,IAAuB,kBAAAvsH,UACvB80H,GACAI,GAEAG,GAGAF,GAAyB,oBAAA3X,IAAA,+EC1DtB,IAAM7uF,EAA+B,MAAtC,MAAOA,EAQX7wB,YAAoB4K,GAAAzK,KAAAyK,QAClBzK,KAAK2uB,aAAe3uB,KAAKyK,MAAMnG,OAC5BL,GAAUA,EAAMuP,WAAWE,aAE9B1T,KAAKwsH,WAAaxsH,KAAKyK,MAAMnG,OAAQL,GAC5BA,EAAMuP,WAAWG,WAG1B3T,KAAK+rH,cAAgB/rH,KAAKyK,MAAMnG,OAAQL,GAC/BA,EAAMuP,WAAWI,aAE1B5T,KAAKksH,UAAYlsH,KAAKyK,MAAMnG,OAAQL,GAC3BA,EAAMuP,WAAWC,SAE5B,CACO05G,eAAehiC,GACpBnrF,KAAKyK,MAAMqkB,kBAAkBq8D,EAC/B,CACO0kC,YAAY1kC,GACjBnrF,KAAKyK,MAAM0gH,eAAehgC,EAC5B,iDA5BWz6D,GAA+BlwB,MAAAC,KAAA,sCAA/BiwB,EAA+BjtB,QAA/BitB,EAA+BhtB,UAAA0H,WAF9B,QAAM,SAEPslB,CAA+B,sECDrC,IAAMD,EAAgC,MAAvC,MAAOA,oDAAgC,sCAAhCA,EAAgChtB,QAAhCgtB,EAAgC/sB,UAAA0H,WAF/B,QAAM,SAEPqlB,CAAgC,uSCOtC,MAAM8iG,KAAmB96G,MAC9B,qDACAC,SAGWk3G,KAAmBn3G,MAC9B,+CACAC,SAGWg8G,KAAuBj8G,MAClC,oDACAC,SAGWrE,KAAaoE,MACxB,0CACAC,SAGWtH,KAAeqH,MAC1B,4CAGWvH,KAAgBuH,MAC3B,+CACAC,SAQW47G,IALA4D,EAAcz/G,MACzB,gDACAC,UAGW47G,EAAoB77G,MAC/B,uDACAC,UAGWk8G,KAA6Bn8G,MACxC,mDAGWo8G,KAA6Bp8G,MACxC,iEACAC,SAGWq8G,KAAsCt8G,MACjD,6DAGW28G,KAAuB38G,MAClC,6CACAC,SAKWg7G,KAAej7G,MAC1B,2CACAC,SAOWi7G,KAAwBl7G,MACnC,qDACAC,SAGWs9G,KAAqBv9G,MAChC,8CACAC,SAGW69G,KAA6B99G,MACxC,qDAGWu5G,KAAoBv5G,MAC/B,2CAGWu8G,KAA4Bv8G,MACvC,sDACAC,SAGW29G,KAAiB59G,MAC5B,0CACAC,SAGW48G,KAAmB78G,MAAa,kCAEhC88G,KAAmB98G,MAAa,mCAEhCy8G,KAAyBz8G,MACpC,mDACAC,SAGW+jG,KAAyBhkG,MACpC,gDACAC,SAGW88G,KAAqB/8G,MAChC,2CACAC,SAGW81G,KAA2B/1G,MACtC,kDACAC,SAGW+8G,KAA0Bh9G,MACrC,+CAGWgrG,KAAuBhrG,MAClC,uMCvIK,MAAM0/G,EAAyBl0H,GACpCA,EAAMiyB,gBAEK08F,KAAmC/5G,MAC9Cs/G,EACCl0H,GAAkCA,EAAM+R,YAG9BmgH,KAAmCt9G,MAC9Cs/G,EACCl0H,GAAkCA,EAAMuP,YAG9B0+G,KAAoBr5G,MAC/Bs/G,EACCl0H,GAAkCA,EAAMiwH,iBAG9B5B,KAA6Bz5G,MACxCs/G,EACCl0H,GAAkCA,EAAM6P,MAG9BoiH,KAAgCr9G,MAC3Cs/G,EACCl0H,GAAkCA,EAAM+M,SAO9BwhH,IALA4F,EAA0Cv/G,MACrDs/G,EACCl0H,GAAkCA,EAAMgwH,oBAG9BzB,EAAyB35G,MACpCs/G,EACCl0H,KACCk9B,SAAUl9B,EAAMk9B,SAChBvtB,YAAa3P,EAAM2P,gBAIV8+G,KAAkC75G,MAC7Cs/G,EACCl0H,GAAkCA,EAAM6vH,mBAG9Bf,KAA8Bl6G,MACzCs/G,EACCl0H,GAAkCA,EAAM8vH,eAG9Bd,KAAuCp6G,MAClDs/G,EACCl0H,GAAkCA,EAAM+vH,wBAG9BtE,KAAuB72G,MAClCs/G,EACCl0H,GAAkCA,EAAM+M,SAG9BsyG,KAA4BzqG,MACvCs/G,EACCl0H,GAAkCA,EAAMkwH,uIC7DpC,IAAMt7F,EAAe,MAAtB,MAAOA,EACX2oB,UAAUpvC,GACR,OAAOo/F,KAAca,mCAAmCjgG,EAC1D,iDAHWymB,EAAe,wDAAfA,EAAeypB,MAAA,EAAAryC,YAAA,YAAf4oB,CAAe,KAOfqJ,EAAoB,MAA3B,MAAOA,EACXsf,UAAUt+C,GACR,OAAyBA,GAChBouH,IAIX,iDAPWpvF,EAAoB,sEAApBA,EAAoBogB,MAAA,EAAAryC,YAAA,YAApBiyB,CAAoB,KAWpB5K,EAAmB,MAA1B,MAAOA,EACXkqB,UAAUt+C,GACR,OAAyBA,GAChB,oCAIX,iDAPWo0B,EAAmB,qEAAnBA,EAAmBgrB,MAAA,EAAAryC,YAAA,YAAnBqnB,CAAmB,KAWnBspF,EAAkB,MAAzB,MAAOA,EACXp/D,UAAUt+C,GACR,OAAyBA,GAChB,oCAIX,iDAPW09G,EAAkB,oEAAlBA,EAAkBt+D,MAAA,EAAAryC,YAAA,YAAlB2wG,CAAkB,mFCNzB,MAAgByX,GA2Cf,IAoGKxa,EAAZ,SAAYA,GACVA,SAAAmE,iBAAA,cACAnE,EAAAC,QAAA,KACAD,EAAAya,QAAA,KAHUza,CAIZ,CAJA,CAAYA,GAAU,IA0EhB,MAAgB0a,GAuBhB,MAAgBC,gFCvQhB,MAAOvW,EACXpiH,YACYsgB,EACAqyC,EACA/mD,GAAe,IAAAvL,EAAAF,KAFfA,KAAAmgB,SACAngB,KAAAwyD,aACAxyD,KAAAyL,SAgBFzL,KAAAowF,YAAW,eAAAp0E,KAAA7b,KAAG,UAAOqkC,GAC7B,MAAMi0F,EAAiBv4H,EAAKw4H,SAASl0F,GAErC,OAAKi0F,EAIEA,EAAev1H,IAHb,IAIX,GAAC,gBAAAqZ,GAAA,OAAAP,EAAAQ,MAAAxc,KAAAyc,UAAA,EARoB,GAUdzc,KAAA24H,aAAY,eAAAh8G,KAAAxc,KAAG,UAAOqkC,GAC3B,MAAM9iC,QAAiBxB,EAAKkwF,YAAY5rD,GAExC,GAAgB,MAAZ9iC,EACF,MAAM,IAAI4jB,MAAM,QAAQkf,wCAG1B,MAAMvc,QAAiB/nB,EAAKsyD,WACzB1vD,IAAIpB,EAAU,CAAE0mC,QAAS,WAAYh+B,aAAc,SACnDirG,YAEH,GAAwB,MAApBptF,EAASuoB,OAAgB,CAC3B,MAAMooF,EACc,OAAlB3wG,EAAS/B,WACC+B,EAAS/B,KAAKxU,OACpB,uBACN,MAAM,IAAI4T,MACR,wBAAwBkf,wBAA0Bo0F,IAEtD,CAEA,GAAsB,OAAlB3wG,EAAS/B,KACX,MAAM,IAAIZ,MAAM,QAAQkf,gDAG1B,OAAOvc,EAAS/B,IAClB,GAAC,gBAAArJ,GAAA,OAAAF,EAAAH,MAAAxc,KAAAyc,UAAA,EA1BkB,GAiCZzc,KAAA64H,qBAAoB,eAAA/7G,KAAA3c,KAAG,UAAOqkC,GAGnC,aAFuBtkC,EAAKkwF,YAAY5rD,EAG1C,GAAC,gBAAAtmB,GAAA,OAAApB,EAAAN,MAAAxc,KAAAyc,UAAA,EAJ0B,GASpBzc,KAAA84H,SAAO34H,OAAG,YACf,OAAOD,EAAKigB,OAAO9Z,IAAKy1B,GAAMA,EAAEm3B,SAClC,GAKOjzD,KAAAisC,SAAO9rC,OAAG,YACf,OAAO44H,IAAUj2G,SACnB,EA5EG,CACHk2G,oBACEh5H,KAAKyL,OAAOP,KAAK,oDAEnB,CACA+tH,iBAAiBz0F,GACfxkC,KAAKyL,OAAOP,KAAK,mDAEnB,CAEQwtH,SAASl0F,GACf,OAAAxkC,KAAKyL,OAAOlI,MAAM,gCAAgCihC,KAC3CxkC,KAAKmgB,OAAOpH,KAAM0W,GAASA,EAAKwjC,WAAazuB,EACtD,8EClBI,MAAO05E,EACXr+G,YACYsgB,EACAqyC,EACA/mD,GAAe,IAAAvL,EAAAF,KAFfA,KAAAmgB,SACAngB,KAAAwyD,aACAxyD,KAAAyL,SAcFzL,KAAAowF,YAAW,eAAAp0E,KAAA7b,KAAG,UAAOqkC,GAC7B,MAAMi0F,EAAiBv4H,EAAKw4H,SAASl0F,GAErC,OAAKi0F,EAIEA,EAAev1H,IAHb,IAIX,GAAC,gBAAAqZ,GAAA,OAAAP,EAAAQ,MAAAxc,KAAAyc,UAAA,EARoB,GAUdzc,KAAA24H,aAAY,eAAAh8G,KAAAxc,KAAG,UAAOqkC,GAC3B,MAAM9iC,QAAiBxB,EAAKkwF,YAAY5rD,GAExC,GAAgB,MAAZ9iC,EACF,MAAM,IAAI4jB,MAAM,QAAQkf,wCAG1B,MAAMvc,QAAiB/nB,EAAKsyD,WACzB1vD,IAAIpB,EAAU,CAAE0mC,QAAS,WAAYh+B,aAAc,SACnDirG,YAEH,GAAwB,MAApBptF,EAASuoB,OAAgB,CAC3B,MAAMooF,EACc,OAAlB3wG,EAAS/B,WACC+B,EAAS/B,KAAKxU,OACpB,uBACN,MAAM,IAAI4T,MACR,wBAAwBkf,wBAA0Bo0F,IAEtD,CAEA,GAAsB,OAAlB3wG,EAAS/B,KACX,MAAM,IAAIZ,MAAM,QAAQkf,gDAG1B,OAAOvc,EAAS/B,IAClB,GAAC,gBAAArJ,GAAA,OAAAF,EAAAH,MAAAxc,KAAAyc,UAAA,EA1BkB,GAkCZzc,KAAA64H,qBAAoB,eAAA/7G,KAAA3c,KAAG,UAAOqkC,GACnC,MAAM9iC,QAAiBxB,EAAKkwF,YAAY5rD,GAExC,OACe,OAAb9iC,GACCA,EAAS2rG,WAAW,SACb,kBAAR7oE,EAIK9iC,EAFE,IAGX,GAAC,gBAAAwc,GAAA,OAAApB,EAAAN,MAAAxc,KAAAyc,UAAA,EAX0B,GAgBpBzc,KAAA84H,SAAO34H,OAAG,YACf,OAAOD,EAAKigB,OAAO9Z,IAAKy1B,GAAMA,EAAEm3B,SAClC,GAKOjzD,KAAAisC,SAAO9rC,OAAG,YACf,OAAO44H,IAAUzgG,SACnB,EAlFG,CACH0gG,oBACE,MAAM,IAAI1zG,MAAM,0BAClB,CACA2zG,iBAAiBz0F,GACf,MAAM,IAAIlf,MAAM,0BAClB,CAEQozG,SAASl0F,GACf,OAAAxkC,KAAKyL,OAAOlI,MAAM,gCAAgCihC,KAC3CxkC,KAAKmgB,OAAOpH,KAAM0W,GAASA,EAAKwjC,WAAazuB,EACtD,qFCfF,MAAe00F,EACbr5H,YACYszD,EACAX,EACA/mD,GAAe,IAAAvL,EAAAF,KAFfA,KAAAmzD,QACAnzD,KAAAwyD,aACAxyD,KAAAyL,SAwBLzL,KAAA24H,aAAY,eAAA38G,KAAA7b,KAAG,UAAOqkC,GAC3B,MAAM9iC,QAAiBxB,EAAK24H,qBAAqBr0F,GAEjD,GAAgB,MAAZ9iC,EACF,MAAM,IAAI4jB,MAAM,QAAQkf,uCAG1B,MAAMvc,QAAiB/nB,EAAKsyD,WACzB1vD,IAAIpB,EAAU,CAAE0mC,QAAS,WAAYh+B,aAAc,SACnDirG,YAEH,GAAwB,MAApBptF,EAASuoB,OAAgB,CAC3B,MAAMooF,EACc,OAAlB3wG,EAAS/B,WACC+B,EAAS/B,KAAKxU,OACpB,uBACN,MAAM,IAAI4T,MACR,wBAAwBkf,uBAAyBo0F,IAErD,CAEA,GAAsB,OAAlB3wG,EAAS/B,KACX,MAAM,IAAIZ,MACR,QAAQkf,qDAIZ,OAAOvc,EAAS/B,IAClB,GAAC,gBAAA3J,GAAA,OAAAP,EAAAQ,MAAAxc,KAAAyc,UAAA,EA5BkB,GAoCZzc,KAAA64H,qBAAoB,eAAAl8G,KAAAxc,KAAG,UAAOqkC,GACnC,MAAMi0F,EAAiBv4H,EAAKw4H,SAASl0F,GAErC,OAAKi0F,EAIEA,EAAev1H,IAHb,IAIX,GAAC,gBAAA2Z,GAAA,OAAAF,EAAAH,MAAAxc,KAAAyc,UAAA,EAR0B,GAapBzc,KAAA84H,SAAO34H,OAAG,YACf,OAAOD,EAAKizD,MAAM9sD,IAAKy1B,GAAMA,EAAEm3B,SACjC,EA1EG,CAEH+lE,oBACEh5H,KAAKyL,OAAOP,KAAK,mDAEnB,CACA+tH,iBAAiBz0F,GACfxkC,KAAKyL,OAAOP,KAAK,kDAEnB,CAEQwtH,SAASl0F,GACf,OAAAxkC,KAAKyL,OAAOlI,MAAM,6BAA6BihC,KACxCxkC,KAAKmzD,MAAMp6C,KAAM0W,GAASA,EAAKwjC,WAAazuB,EACrD,EAiEI,MAAO49E,UAAuB8W,EAClCr5H,YACYszD,EACAX,EACV/mD,GAEA5H,MAAMsvD,EAAOX,EAAY/mD,GAJfzL,KAAAmzD,QACAnzD,KAAAwyD,aASLxyD,KAAAisC,SAAO9rC,OAAG,YACf,OAAO44H,IAAU71G,UACnB,EAPA,EAUI,MAAOgwC,UAAuBgmE,EAClCr5H,YACYszD,EACAX,EACV/mD,GAEA5H,MAAMsvD,EAAOX,EAAY/mD,GAJfzL,KAAAmzD,QACAnzD,KAAAwyD,aASLxyD,KAAAisC,SAAO9rC,OAAG,YACf,OAAO44H,IAAU93F,UACnB,EAPA,8EC7GI,MAAOkhF,EACXtiH,YACYy+G,EACA9rD,EACA/mD,GAAe,IAAAvL,EAAAF,KAFfA,KAAAs+G,QACAt+G,KAAAwyD,aACAxyD,KAAAyL,SAgBFzL,KAAAowF,YAAW,eAAAp0E,KAAA7b,KAAG,UAAOqkC,GAC7B,MAAMi0F,EAAiBv4H,EAAKw4H,SAASl0F,GAErC,OAAKi0F,EAIEA,EAAev1H,IAHb,IAIX,GAAC,gBAAAqZ,GAAA,OAAAP,EAAAQ,MAAAxc,KAAAyc,UAAA,EARoB,GAUdzc,KAAA24H,aAAY,eAAAh8G,KAAAxc,KAAG,UAAOqkC,GAC3B,MAAM9iC,QAAiBxB,EAAKkwF,YAAY5rD,GAExC,GAAgB,MAAZ9iC,EACF,MAAM,IAAI4jB,MAAM,QAAQkf,qCAG1B,MAAMvc,QAAiB/nB,EAAKsyD,WACzB1vD,IAAIpB,EAAU,CAAE0mC,QAAS,WAAYh+B,aAAc,SACnDirG,YAEH,GAAwB,MAApBptF,EAASuoB,OAAgB,CAC3B,MAAMooF,EACc,OAAlB3wG,EAAS/B,WACC+B,EAAS/B,KAAKxU,OACpB,uBACN,MAAM,IAAI4T,MACR,wBAAwBkf,qBAAuBo0F,IAEnD,CAEA,GAAsB,OAAlB3wG,EAAS/B,KACX,MAAM,IAAIZ,MAAM,QAAQkf,gDAG1B,OAAOvc,EAAS/B,IAClB,GAAC,gBAAArJ,GAAA,OAAAF,EAAAH,MAAAxc,KAAAyc,UAAA,EA1BkB,GAiCZzc,KAAA64H,qBAAoB,eAAA/7G,KAAA3c,KAAG,UAAOqkC,GAGnC,aAFuBtkC,EAAKkwF,YAAY5rD,EAG1C,GAAC,gBAAAtmB,GAAA,OAAApB,EAAAN,MAAAxc,KAAAyc,UAAA,EAJ0B,GASpBzc,KAAA84H,SAAO34H,OAAG,YACf,OAAOD,EAAKo+G,MAAMj4G,IAAKy1B,GAAMA,EAAEm3B,SACjC,GAKOjzD,KAAAisC,SAAO9rC,OAAG,YACf,OAAO44H,IAAU/1G,KACnB,EA5EG,CACHg2G,oBACEh5H,KAAKyL,OAAOP,KAAK,iDAEnB,CACA+tH,iBAAiBz0F,GACfxkC,KAAKyL,OAAOP,KAAK,gDAEnB,CAEQwtH,SAASl0F,GACf,OAAAxkC,KAAKyL,OAAOlI,MAAM,6BAA6BihC,KACxCxkC,KAAKs+G,MAAMvlG,KAAM0W,GAASA,EAAKwjC,WAAazuB,EACrD,2FCXI,MAAO20F,EACXt5H,YACYsgB,EACAqyC,EACA/mD,EACA2tH,GAAoB,IAAAl5H,EAAAF,KAHpBA,KAAAmgB,SACAngB,KAAAwyD,aACAxyD,KAAAyL,SACAzL,KAAAo5H,YAcJp5H,KAAAowF,YAAW,eAAAp0E,KAAA7b,KAAG,UAAOqkC,GAC3B,MAAMi0F,EAAiBv4H,EAAKw4H,SAASl0F,GAErC,OAAKi0F,EAIEA,EAAev1H,IAHb,IAIX,GAAC,gBAAAqZ,GAAA,OAAAP,EAAAQ,MAAAxc,KAAAyc,UAAA,EARkB,GAiBZzc,KAAA24H,aAAY,eAAAh8G,KAAAxc,KAAG,UAAOqkC,GAC3B,MAAM9iC,QAAiBxB,EAAKkwF,YAAY5rD,GAExC,GAAgB,MAAZ9iC,EACF,MAAM,IAAI4jB,MAAM,QAAQkf,oCAK1B,MAAMvc,QAAiB/nB,EAAKsyD,WACzB1vD,IAAIpB,EAAU,CAAE0mC,QAAS,WAAYh+B,aAAc,SACnDirG,YAEH,GAAwB,MAApBptF,EAASuoB,OAAgB,CAC3B,MAAMooF,EACc,OAAlB3wG,EAAS/B,WACC+B,EAAS/B,KAAKxU,OACpB,uBACN,MAAM,IAAI4T,MACR,wBAAwBkf,oBAAsBo0F,IAElD,CAEA,GAAsB,OAAlB3wG,EAAS/B,KACX,MAAM,IAAIZ,MAAM,QAAQkf,gDAG1B,OAAOvc,EAAS/B,IAClB,GAAC,gBAAArJ,GAAA,OAAAF,EAAAH,MAAAxc,KAAAyc,UAAA,EA5BkB,GAoCZzc,KAAA64H,qBAAoB,eAAA/7G,KAAA3c,KAAG,UAAOqkC,GAMnC,aALuBtkC,EAAKkwF,YAAY5rD,EAM1C,GAAC,gBAAAtmB,GAAA,OAAApB,EAAAN,MAAAxc,KAAAyc,UAAA,EAP0B,GAYpBzc,KAAA84H,SAAO34H,OAAG,YACf,OAAOD,EAAKigB,OAAO9Z,IAAKy1B,GAAMA,EAAEm3B,SAClC,GAKOjzD,KAAAisC,SAAO9rC,OAAG,YACf,OAAOD,EAAKk5H,SACd,EAvFG,CACHJ,oBACE,MAAM,IAAI1zG,MAAM,0BAClB,CACA2zG,iBAAiBz0F,GACf,MAAM,IAAIlf,MAAM,0BAClB,CAEQozG,SAASl0F,GAEf,OAAOxkC,KAAKmgB,OAAOpH,KAAM0W,GAASA,EAAKwjC,WAAazuB,EACtD,uBCpBF,MASa60F,EAAmBA,CAC9B5zH,EACA+sD,EACA/mD,IAZsB6tH,EACtB7zH,EACA2zH,EACA5mE,EACA/mD,IAEO,IAAI0tH,EDTgB1zH,KAC3B,GAAI6X,MAAMqnB,QAAQl/B,GAChB,OAAOA,GCOY8zH,CAAa9zH,GAAO+sD,EAAY/mD,EAAQ2tH,GAQtDE,CAAgB7zH,EAAMszH,IAAUx/G,UAAWi5C,EAAY/mD,yQCQzD,IAAM+tH,EAAa,MAApB,MAAOA,EAiCX35H,YACU4L,EACA+mD,EACAwuB,EACAnxE,EACAtN,EACAqiE,GAAuC,IAAA1kE,EAAAF,KALvCA,KAAAyL,SACAzL,KAAAwyD,aACAxyD,KAAAghF,oBACAhhF,KAAA6P,kBACA7P,KAAAuC,UACAvC,KAAA4kE,iBAhCF5kE,KAAAy5H,yBAAmC,EAI3Bz5H,KAAA05H,oBAEZ,IAAI9nH,IAA+D,IACvD5R,KAAA25H,oBAEZ,IAAI/nH,IAA+D,IACvD5R,KAAA45H,kBAEZ,IAAIhoH,IAA+D,IACvD5R,KAAA65H,kBAEZ,IAAIjoH,IAA+D,IAI/D5R,KAAA85H,0BAAoC,EA8IpC95H,KAAA+5H,OAAM,eAAA/9G,KAAA7b,KAAG,UAAO+C,GACtB,MAAM+kB,SAAiB/nB,EAAKsyD,WACzB1vD,IAAII,EAAK,CAAEklC,QAAS,WAAYh+B,aAAc,SAC9CirG,YAEH,GAAwB,MAApBptF,GAASuoB,OAAgB,CAC3B,MAAMooF,EACc,OAAlB3wG,GAAS/B,WACC+B,GAAS/B,KAAKxU,OACpB,uBACN,MAAM,IAAI4T,MACR,wBAAwBpiB,iBAAmB01H,IAE/C,CAEA,GAAsB,OAAlB3wG,GAAS/B,KACX,MAAM,IAAIZ,MAAM,QAAQpiB,+CAE1B,OAAO+kB,GAAS/B,IAClB,GAAC,gBAAA3J,GAAA,OAAAP,EAAAQ,MAAAxc,KAAAyc,UAAA,EAnBa,GAqBPzc,KAAAg6H,WAAU,eAAAr9G,KAAAxc,KAAG,UAClBggB,EACA1G,IAEA,OAAQA,IACN,KAAKokG,KAAWmE,iBACd,MAAM,IAAI18F,MAAM,4BAClB,KAAKu4F,KAAWC,QACd,GAAIxgG,MAAMqnB,QAAQxkB,EAAOiP,SAAU,CAIjC,MAAM4jC,GAHY7yC,EAAOiP,QAAQrW,KAC9BgH,IAAiC,QAA3BA,GAAEwP,OAAO/Z,eAESga,MAAMnpB,IAAKopB,MAElCwjC,SAAUxjC,GAAKlpB,KACf43G,SAAU1uF,GAAK0J,SACfj2B,IAAKusB,GAAKvsB,OAGd,OAAO,IAAIg7G,KAAclrD,GAAU9yD,EAAKsyD,WAAYtyD,EAAKuL,OAC3D,EAEN,GAAC,gBAAAoR,EAAAqB,IAAA,OAAAvB,EAAAH,MAAAxc,KAAAyc,UAAA,EAtBgB,GAwBVzc,KAAAi6H,aAAY,eAAAn9G,KAAA3c,KAAG,UAAO+5H,GAAqC,GAAC,gBAAA57G,GAAA,OAAAxB,EAAAN,MAAAxc,KAAAyc,UAAA,EAAhD,GAEXzc,KAAAm6H,yBAA4Bh6G,GAC3B,GAAGA,EAAO5Z,oBAGXvG,KAAAo6H,2BAA8Bj6G,GAC7B,GAAGA,EAAO5Z,qBAGZvG,KAAAq6H,yBAAwB,eAAAj8G,KAAAje,KAAG,UAChCggB,GAEA,GAAuC,MAAXA,EAC1BjgB,QAAKuL,OAAOhE,MACV,iEAEI,IAAI6d,MACR,iEAIJ,GAAIhI,MAAMqnB,QAAQxkB,EAAOgzC,OAAQ,CAC/B,MAAMmnE,GAAcn6G,EAAOgzC,MAAMp6C,KAC9BuT,GAAMA,EAAE2mC,WAAa/yD,EAAKi6H,yBAAyBh6G,IAGtD,GAAoB,MAAhBm6G,GACFp6H,QAAKuL,OAAOhE,MACV,+DACA0Y,GAEI,IAAImF,MACR,+DAIJ,OAAOplB,EAAKsyD,WACT1vD,IAAqDw3H,GAAYp3H,IAAK,CACrEkH,aAAc,SAEfirG,WACL,IAAmC,iBAAjBl1F,EAAOgzC,MAAoB,CAC3C,MAAMonE,SAAoBp6G,EAAOgzC,MAAMwlE,aACrCz4H,EAAKi6H,yBAAyBh6G,IAEhC,OAAOiQ,KAAKgG,YACJmkG,GAAY7oH,OAEtB,CACExR,QAAKuL,OAAOhE,MACV,oEACA0Y,EAAOgzC,OAEH,IAAI7tC,MACR,oEAGN,GAAC,gBAAAnG,GAAA,OAAAf,EAAA5B,MAAAxc,KAAAyc,UAAA,EAhD8B,GArL7Bzc,KAAKw6H,sBAAwB,IAAI5oH,SAE/B/O,GACF7C,KAAKy6H,qBAAuB,IAAI7oH,KAAyB,GAEzD5R,KAAK06H,aAAe16H,KAAKw6H,sBAAsBp0H,QAC7CY,KAAQslB,QAAYzpB,IAANypB,IAIhBtsB,KAAK26H,qBAAuB,IAAI/oH,SAE9B/O,GACF7C,KAAK46H,oBAAsB,IAAIhpH,KAAyB,GAExD5R,KAAK66H,YAAc76H,KAAK26H,qBAAqBv0H,QAC3CY,KAAQslB,QAAYzpB,IAANypB,GCrFb,SAASwuG,EAASC,EAAaC,GAClC,SAAOC,KAAQ,CAAChzF,EAAQ05B,KACpB,MAAMu5D,EAAe,IAAIt0F,IACzBqB,EAAOrmC,aAAUu5H,KAAyBx5D,EAAapvD,IACnD,MAAMiyB,EAAMu2F,EAAcA,EAAYxoH,GAASA,EAC1C2oH,EAAa3kC,IAAI/xD,KAClB02F,EAAa1iF,IAAIhU,GACjBm9B,EAAWh/D,KAAK4P,GAAK,IAG7ByoH,MAAWI,MAAUJ,GAASp5H,aAAUu5H,KAAyBx5D,EAAY,IAAMu5D,EAAajpF,QAASopF,KAAK,EAEtH,CD0EMP,IAGF96H,KAAKs7H,iBAAmB,IAAI1pH,SAAwB/O,GACpD7C,KAAK4kE,eACFpB,SAAS,uBAAwB,SACjCp9D,QAAKytC,QACLjyC,UAAW+7G,IACV39G,KAAKs7H,iBAAiB34H,KAAKg7G,EAAa,GAG5C39G,KAAKs7H,iBAAiB15H,UAAWyK,IAC/BrM,KAAK4kE,eAAex4D,QAAQ,uBAAwBC,EAAI,QAAO,GAGjErM,KAAKkgE,aACHlgE,KAAKghF,kBAAkBp8E,OAAOG,iBAAiBC,WACjDhF,KAAKu7H,oBACLv7H,KAAKw7H,sBACLx7H,KAAKy7H,oBACLz7H,KAAK07H,uBAAmB,EAExBhtG,KAAc,CAAC1uB,KAAKw6H,wBAAwB54H,WAC9C,CACc85H,sBAAmB,IAAA7zH,EAAA7H,KAAA,SAAAG,KAAA,YAM/B,MAAMw7H,SALiB9zH,EAAKgI,gBAAgBy7E,kBAC1C,2CACA,GACA,IAEoCn8D,eAAenoB,OAAQ+Y,GAC3DlY,EAAK+zH,mBAAmB77G,IAG1B,IAAIi/B,EAAUn3C,EAAK8yH,qBAAqBpoH,MACpC,IAAI1K,EAAK8yH,qBAAqBpoH,SAAUopH,GACxCA,EACJ38E,EAAUr3C,SAASq3C,EAAUp6C,GACpBA,EAAOyH,IAEhBxE,EAAK6xH,oBAAoB/2H,KAAKg5H,GAC9B9zH,EAAK8yH,qBAAqBh4H,KAAKq8C,EAAS,EAjBT,EAkBjC,CACcw8E,sBAAmB,IAAAzzH,EAAA/H,KAAA,SAAAG,KAAA,YAM/B,MAAMw7H,SALiB5zH,EAAK8H,gBAAgBy7E,kBAC1C,0CACA,GACA,IAEoCn8D,eAAenoB,OAAQ+Y,GAC3DhY,EAAK6zH,mBAAmB77G,EAAE,KAG5B,IAAIi/B,EAAUj3C,EAAK4yH,qBAAqBpoH,MACpC,IAAIxK,EAAK4yH,qBAAqBpoH,SAAUopH,GACxCA,EACJ38E,EAAUr3C,SAASq3C,EAAUp6C,GACpBA,EAAOyH,IAEhBtE,EAAK4xH,oBAAoBh3H,KAAKg5H,GAC9B5zH,EAAK4yH,qBAAqBh4H,KAAKq8C,EAAS,EAjBT,EAkBjC,CACcy8E,oBAAiB,IAAA/yH,EAAA1I,KAAA,SAAAG,KAAA,YAM7B,MAAMw7H,SALiBjzH,EAAKmH,gBAAgBkf,YAC1C,2CACA,GACA,IAEoCI,eAAenoB,OAAQ+Y,GAC3DrX,EAAKkzH,mBAAmB77G,IAG1B,IAAIi/B,EAAUt2C,EAAKiyH,qBAAqBpoH,MACpC,IAAI7J,EAAKiyH,qBAAqBpoH,SAAUopH,GACxCA,EACJ38E,EAAUr3C,SAASq3C,EAAUp6C,GACpBA,EAAOyH,IAEhB3D,EAAKmxH,kBAAkBl3H,KAAKg5H,GAC5BjzH,EAAKiyH,qBAAqBh4H,KAAKq8C,EAAS,EAjBX,EAkB/B,CACcu8E,oBAAiB,IAAApyH,EAAAnJ,KAAA,SAAAG,KAAA,YAM7B,MAAMw7H,SALiBxyH,EAAK0G,gBAAgBkf,YAC1C,0CACA,GACA,IAEoCI,eAAenoB,OAAQ+Y,GAC3D5W,EAAKyyH,mBAAmB77G,IAE1B,IAAIi/B,EAAU71C,EAAKwxH,qBAAqBpoH,MACpC,IAAIpJ,EAAKwxH,qBAAqBpoH,SAAUopH,GACxCA,EACJ38E,EAAUr3C,SAASq3C,EAAUp6C,GACpBA,EAAOyH,IAEhBlD,EAAKywH,kBAAkBj3H,KAAKg5H,GAC5BxyH,EAAKwxH,qBAAqBh4H,KAAKg5H,EAAsB,EAhBxB,EAiB/B,CACQC,mBAAmBh3H,GACzB,QAAIA,GAAQwqB,SAASrW,KAAMgH,GAAmC,QAA7BA,GAAGwP,QAAQ/Z,cAI9C,CACAqmH,iBAAiB17G,GACf,MAAM,IAAImF,MAAM,0BAClB,CA2Gaw2G,sBACXn9G,EACAjL,EACAD,GAAgB,IAAAlK,EAAAvJ,KAAA,SAAAG,KAAA,YAUhB,aARuBoJ,EAAKsG,gBAAgBkf,YAC1C,yDAAyDpQ,MACzD,GACA,IAEoCwQ,eAAenoB,OAAQ+Y,GAC3DxW,EAAKqyH,mBAAmB77G,GAEE,EAVZ,EAWlB,CAEag8G,sBACXp9G,EACAjL,EACAD,GAAgB,IAAAhK,EAAAzJ,KAAA,SAAAG,KAAA,YAUhB,aARuBsJ,EAAKoG,gBAAgBkf,YAC1C,0DAA0DpQ,MAC1D,GACA,IAEoCwQ,eAAenoB,OAAQ+Y,GAC3DtW,EAAKmyH,mBAAmB77G,GAEE,EAVZ,EAWlB,CACai8G,sBAAmB,IAAAlwC,EAAA9rF,KAAA,SAAAG,KAAA,YAS9B,aARuB2rF,EAAKj8E,gBAAgBy7E,kBAC1C,0CACA,GACA,IAEoCn8D,eAAenoB,OAAQ+Y,GAC3D+rE,EAAK8vC,mBAAmB77G,GAEE,EATE,EAUhC,CAEak8G,sBAAmB,IAAAhwC,EAAAjsF,KAAA,SAAAG,KAAA,YAS9B,aARuB8rF,EAAKp8E,gBAAgBy7E,kBAC1C,2CACA,GACA,IAEoCn8D,eAAenoB,OAAQ+Y,GAC3DksE,EAAK2vC,mBAAmB77G,GAEE,EATE,EAUhC,CAEauW,sBACXvG,EACAoG,EACAxX,EACAwsE,EACA13E,EACAwC,EACAqa,EACA4rG,GAA2B,GAAI,IAAA9vC,EAAApsF,KAAA,SAAAG,KAAA,YAE/B,MAAMg8H,SAAyB/vC,EAAKv8E,gBAAgBsgB,uBAClDxR,EACAoR,EACAo7D,EACA13E,EACAwC,EACAimH,EACA5rG,GAEF,MAAO,CACLzhB,cAAO,EAAQutH,KACbjmG,EACAgmG,GAAiBhtG,gBAEnBQ,OAAQwsG,GAAiBxsG,OACzB,EAjB6B,EAkBjC,iDAlWW6pG,GAAah5H,MAAAC,KAAAD,MAAAE,MAAAF,MAAAuB,MAAAvB,MAAAgM,MAAAhM,MAAAC,KAAAD,MAAAiM,KAAA,sCAAb+sH,EAAa/1H,QAAb+1H,EAAa91H,UAAA0H,WAFZ,QAAM,SAEPouH,CAAa,gFE3BnB,SAAe4C,EAAmB7/G,EAAAM,GAAA,OAAAw/G,EAAA7/G,MAAAxc,KAAAyc,UAAA,CA4CxC,SAAA4/G,gBAAAl8H,KA5CM,UACLg2B,EACAgL,GAEA,MAAMm7F,EAAmC,GACzC,UAAW59G,KAAWyiB,EAAU,CAC9B,GAAgC,GAA5BziB,EAAQ0iB,kBAAwD,MAA3B1iB,EAAQ2iB,gBAAyB,CAExErhC,KAAKuC,QAAQgB,MAAM,2BAA4Bmb,EAAQrS,IACvD,MAAM8mD,EAAQ,IACTz0C,EACHuW,UAAU,EACVD,SAAS,EACTsM,UAAU,GAEZg7F,EAAOr+G,KAAKk1C,GACZ,QACF,CACA,IAAIn+B,GAAU,EAEVmB,IAAgB7c,KAAagf,YAC/BtD,EAAU,CAAC,SAAU,OAAO6lB,MAAOtoC,GAC1BmM,EAAQ0Q,QAAQrW,KAAMqI,GAAMA,EAAEmO,SAAWhd,MAIlD4jB,IAAgB7c,KAAawJ,WAC7BqT,IAAgB7c,KAAa0J,SAE7BgS,EAAU,CAAC,OAAO6lB,MAAOtoC,GAChBmM,EAAQ0Q,QAAQrW,KAAMqI,GAAMA,EAAEmO,SAAWhd,KAIpD,MAAM4gD,EAAQ,IACTz0C,EACH4iB,UAAU,EACVtM,QAASA,EACTC,SAC8B,GAA5BvW,EAAQ0iB,kBAAwD,MAA3B1iB,EAAQ2iB,iBAEjDi7F,EAAOr+G,KAAKk1C,EACd,CACA,OAAOmpE,CACT,IAAC9/G,MAAAxc,KAAAyc,UAAA,gLChCM,IAAM8/G,EAAY,MAAnB,MAAOA,EAUX18H,YACU2yD,EACA/mD,EACAoE,GAAgC,IAAA3P,EAAAF,KAFhCA,KAAAwyD,aACAxyD,KAAAyL,SACAzL,KAAA6P,kBARF7P,KAAAw8H,wBAAkC,EAmDlCx8H,KAAA+5H,OAAM,eAAA/9G,KAAA7b,KAAG,UAAO+C,GACtB,MAAM+kB,QAAiB/nB,EAAKsyD,WACzB1vD,IAAII,EAAK,CAAEklC,QAAS,WAAYh+B,aAAc,SAC9CirG,YAEH,GAAwB,MAApBptF,EAASuoB,OAAgB,CAC3B,MAAMooF,EACc,OAAlB3wG,EAAS/B,WACC+B,EAAS/B,KAAKxU,OACpB,uBACN,MAAM,IAAI4T,MACR,wBAAwBpiB,iBAAmB01H,IAE/C,CAEA,GAAsB,OAAlB3wG,EAAS/B,KACX,MAAM,IAAIZ,MAAM,QAAQpiB,+CAE1B,OAAO+kB,EAAS/B,IAClB,GAAC,gBAAA3J,GAAA,OAAAP,EAAAQ,MAAAxc,KAAAyc,UAAA,EAnBa,GAqBPzc,KAAAg6H,WAAU,eAAAr9G,KAAAxc,KAAG,UAClBm+G,EACA7kG,GAEA,OAAQA,GACN,KAAKokG,KAAWmE,iBACd,IAAK1D,EAAMme,YACT,MAAM,IAAIn3G,MAAM,2BAEpB,KAAKu4F,KAAWC,QACd,IAAKQ,EAAMoe,YACT,MAAM,IAAIp3G,MAAM,2BAGtBplB,SAAKuL,OAAOlI,MAAM,SAAS+6G,EAAM/3G,oBAAqB+3G,IAAK,EACpD+a,MAAiB/a,EAAMnrD,MAAOjzD,EAAKsyD,WAAYtyD,EAAKuL,OAC7D,GAAC,gBAAAoR,EAAAqB,GAAA,OAAAvB,EAAAH,MAAAxc,KAAAyc,UAAA,EAhBgB,GA7Dfzc,KAAK28H,oBAAsB,IAAI/qH,IAAqC,IACpE5R,KAAK48H,mBAAqB,IAAIhrH,KAAyB,GAEvD5R,KAAK68H,WAAa,IAAIjrH,IAAqC,IAE3D5R,KAAK28H,oBAAoB/6H,UAAWoe,GAAMhgB,KAAK68H,WAAWl6H,KAAKqd,IAG5C,IAAIg+F,IACrB,4FAEJ,CACauC,qBACXxwF,EACAoG,EACAxX,EACAwsE,EACA13E,EACAwC,EACAqa,EACA4rG,GAA2B,GAAI,IAAAr0H,EAAA7H,KAAA,SAAAG,KAAA,YAE/B,MAAMg8H,QAAyBt0H,EAAKgI,gBAAgBsgB,uBAClDxR,EACAoR,EACAo7D,EACA13E,EACAwC,EACAimH,EACA5rG,GAEF,MAAO,CACLphB,aAAM,EAAQktH,KACZ9iH,KAAa0J,MACbm5G,EAAiBhtG,gBAEnBQ,OAAQwsG,EAAiBxsG,OACzB,EAjB6B,EAkBjC,iDAtDW4sG,GAAY/7H,MAAAC,MAAAD,MAAAE,KAAAF,MAAAuB,MAAA,sCAAZw6H,EAAY94H,QAAZ84H,EAAY74H,UAAA0H,WAFX,QAAM,SAEPmxH,CAAY,8EChBlB,MAAMO,EAAK,eAAA9gH,KAAA7b,KAAG,UAAO48H,GAC1B,OAAO,IAAIplH,QAASC,GAAY+9C,WAAW/9C,EAASmlH,GACtD,GAAC,gBAFiBxgH,GAAA,OAAAP,EAAAQ,MAAAxc,KAAAyc,UAAA,KAILugH,EAAiB32C,IAC5B,MAAME,EAAaC,KAAKH,EAAQthD,MAAM,KAAK,IACrC2hD,EAAaL,EAAQthD,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAGA,MAAM,KAAK,GAC5Dk4F,EAAK,IAAInwD,YAAYyZ,EAAW7wE,QAChCixE,EAAK,IAAI9/C,WAAWo2F,GAC1B,QAASx/G,EAAI,EAAGA,EAAI8oE,EAAW7wE,OAAQ+H,IACrCkpE,EAAGlpE,GAAK8oE,EAAWK,WAAWnpE,GAGhC,OADa,IAAI2oE,KAAK,CAAC62C,GAAK,CAAE7qH,KAAMs0E,GAAY,oGCX3C,MAAMw2C,UAAqBz2H,IAC9B5G,cACIgE,SAAS4Y,WACTzc,KAAKm9H,OAAS,KACdn9H,KAAKo9H,WAAY,EACjBp9H,KAAKq9H,aAAc,CACvB,CACAC,wBAAwB37D,GACpB,MAAQ47D,WAAUH,YAAWD,SAAQK,cAAaC,YAAWJ,eAAgBr9H,KACzEu9H,EACA57D,EAAWl6D,MAAM+1H,IAEZC,GAAaJ,KAClBD,GAAaz7D,EAAWh/D,KAAKw6H,GAC7Bx7D,EAAWzuD,WAEnB,CACAvQ,KAAK4P,GACIvS,KAAKy9H,YACNz9H,KAAKm9H,OAAS5qH,EACdvS,KAAKo9H,WAAY,EAEzB,CACAlqH,WACI,MAAQkqH,YAAWD,SAAQE,eAAgBr9H,KACtCq9H,IACDr9H,KAAKq9H,aAAc,EACnBD,GAAav5H,MAAMlB,KAAKw6H,GACxBt5H,MAAMqP,WAEd,4DCfG,IAAMwqH,EAAoB,MAA3B,MAAOA,EAKX79H,YAAoB2yD,EAAgC/mD,GAAhCzL,KAAAwyD,aAAgCxyD,KAAAyL,SAClDzL,KAAKkF,iBAAmB,IAAIg4H,EAC5Bl9H,KAAKinE,cAAgB,IAAIi2D,EAEzBl9H,KAAKkF,iBAAiBtD,UACnBkC,IACC,QAAYjB,IAARiB,EACF,MAAA9D,KAAKyL,OAAOhE,MAAM,8CACZ,IAAI6d,MAAM,8CAEhBtlB,KAAK29H,qBAAqB,EAAG75H,EAAG,EAGnC2D,IACCzH,KAAKyL,OAAOhE,MACV,oFACAA,EAAK,GAKXzH,KAAK49H,kBAAkB,EACzB,CACcD,qBAAqBE,EAAiB/5H,GAAsB,IAAA5D,EAAAF,KAAA,SAAAG,KAAA,YACxE,GAAI09H,EAAU,EAOZ,OANA39H,EAAK+mE,cAAcx/D,MACjB,IAAI6d,MACF,+EAGJplB,EAAK+mE,cAAc/zD,iBAIrB,EAAM4pH,KAAgB,IAAVe,GAEZ39H,EAAKsyD,WACF1vD,IAAuBgB,EAAIc,OAAQ,CAAEwF,aAAc,SACnDxI,UACEqW,IACC/X,EAAKuL,OAAOlI,MAAM,0BAA2BO,GAC7C5D,EAAK+mE,cAActkE,KAAK,CACtBuC,iBAAkBpB,EAClBiB,iBAAkBkT,IAEpB/X,EAAK+mE,cAAc/zD,UAAQ,EAE5BzL,IACCvH,EAAKuL,OAAOhE,MAAM,uCAAwCA,GAC1DvH,EAAKy9H,qBAAqBE,EAAU,EAAG/5H,EAAG,EAE5C,EA5BoE,EA6B1E,CAEc85H,kBAAkBC,GAAe,IAAAh2H,EAAA7H,KAAA,SAAAG,KAAA,YAC7C,GAAI09H,EAAU,EAOZ,OANAh2H,EAAK3C,iBAAiBuC,MACpB,IAAI6d,MACF,gFAGJzd,EAAK3C,iBAAiBgO,iBAIxB,EAAM4pH,KAAgB,IAAVe,GAEZh2H,EAAK2qD,WACF1vD,IAAuB,kCACvBlB,UACEslB,IACCrf,EAAK4D,OAAOlI,MAAM,0BAA2B2jB,GAC7Crf,EAAK3C,iBAAiBvC,KAAKukB,GAC3Brf,EAAK3C,iBAAiBgO,UAAQ,EAE/BzL,IACCI,EAAK4D,OAAOP,KAAK,wCAAyCzD,GAC1DI,EAAK+1H,kBAAkBC,EAAU,EAAC,EAEpC,EAzByC,EA0B/C,CAEOC,mBACL,SAAOn4C,KAAc3lF,KAAKinE,cAC5B,CAEO82D,6BACL,OAAO/9H,KAAKinE,cAActgE,cAC5B,iDA7FW+2H,GAAoBl9H,MAAAC,MAAAD,MAAAE,KAAA,sCAApBg9H,EAAoBj6H,QAApBi6H,EAAoBh6H,UAAA0H,WAFnB,QAAM,SAEPsyH,CAAoB,+BCU1B,IAAMM,EAAU,MAAjB,MAAOA,oDAAU,mCAAVA,GAAU,wCAlBV,CACT,CACEhxH,QAASqrH,KACTlrH,SAAUuwH,GAEZ,CACE1wH,QAASurH,KACTprH,SAAUqsH,KAEZ,CACExsH,QAASwrH,KACTrrH,SAAUovH,OAEb,SAKUyB,CAAU,KCdVhhB,EAAyB,MAAhC,MAAOA,oDAAyB,mCAAzBA,GAAyB,uCAH1BtmG,KAAcsnH,IAAU,SAGvBhhB,CAAyB,6FCZtC,MAAMz4G,EAAE1E,cAAcG,KAAKmP,SAAS,GAAGnP,KAAKi+H,sBAAqB,EAAGj+H,KAAKuD,OAAM,EAAGvD,KAAKk+H,YAAW,CAAE,MCAwmCn+G,EAAYsI,wQAA/oC,MAAMrI,EAAEngB,YAAYwoB,EAAEtK,EAAEiC,EAAEoB,EAAE3D,GAAGzd,KAAKm+H,YAAY91G,EAAEroB,KAAKo+H,gBAAgBrgH,EAAE/d,KAAKq+H,oBAAoBr+G,EAAEhgB,KAAKs+H,iBAAiBl9G,EAAEphB,KAAKu+H,kBAAkB9gH,CAAC,EAAE,MAAM2D,EAAEo9G,kBAAkBn2G,EAAEtK,GAAG,MAAMiC,EAAEjC,EAAEogH,YAAYp5F,MAAM,aAAa,GAAG,GAAG/kB,EAAEtK,OAAO,MAAM,GAAG,MAAM0L,EAAEpB,EAAE,GAAG,GAAG,GAAGoB,EAAE1L,OAAO,CAAC,MAAM2S,EAAEjH,EAAEq9G,OAAO,GAAGjrG,cAAcxT,EAAE,GAAGqI,EAAEjH,EAAEqgE,UAAU,EAAE,CAAC,QAAQp5D,EAAE,EAAEA,EAAErI,EAAEtK,OAAO2S,IAAI,CAAC,MAAMtK,EAAEiC,EAAEqI,GAAG,GAAG,GAAGtK,EAAErI,OAAO,CAAC,MAAM0L,GAAErD,EAAE0gH,OAAO,GAAGjpH,cAAcwK,EAAEqI,GAAGjH,GAAErD,EAAE0jE,UAAU,EAAE,CAAC,CAAC,IAAIhkE,EAAE,GAAG,UAAU4K,KAAKrI,EAAE,GAAGvC,EAAE/H,SAAS+H,GAAG,KAAKA,GAAG4K,EAAE,OAAO5K,CAAC,EAAE,MAAMA,EAAE5d,cAAcG,KAAK0+H,cAAc,IAAIt9G,CAAC,CAAC,gBAAIu9G,GAAe,OAAO3+H,KAAK0+H,aAAa,CAAC,gBAAIC,CAAat2G,GAAGroB,KAAK0+H,cAAcr2G,CAAC,CAACu2G,YAAYv2G,EAAEtK,GAAG,MAAMiC,EAAE7X,SAASof,cAAc,OAAO,OAAOvH,EAAE6+G,YAAY7+H,KAAK0+H,cAAcF,kBAAkBn2G,EAAEtK,GAAGiC,EAAEwH,MAAMs3G,aAAa,MAAM9+G,EAAEwH,MAAMC,SAAS,OAAOzH,EAAEwH,MAAMu3G,WAAW,qBAAqB/+G,EAAEwH,MAAMw3G,UAAU,SAASh/G,EAAEwH,MAAMy3G,WAAW,MAAMj/G,EAAEwH,MAAM03G,WAAW,OAAOl/G,EAAEwH,MAAM23G,cAAc,SAASn/G,EAAEwH,MAAMG,QAAQ,MAAM3H,EAAEwH,MAAMwV,WAAW,yBAAyBhd,EAAEwH,MAAMqyC,MAAM,QAAQ75C,EAAEwH,MAAM43G,YAAY,QAAQp/G,EAAEwH,MAAM63G,YAAY,2BAA2Br/G,EAAEwH,MAAM83G,YAAY,MAAMt/G,CAAC,GAAkBqI,EAA2GtI,IAAIA,EAAE,CAAC,IAA7GsI,EAAEk3G,MAAM,GAAG,QAAQl3G,EAAEA,EAAEm3G,KAAK,GAAG,OAAOn3G,EAAEA,EAAEo3G,IAAI,GAAG,MAAMp3G,EAAEA,EAAEq3G,OAAO,GAAG,SAASr3G,EAAEA,EAAEs3G,OAAO,GAAG,SAAqB,MAAMp7H,GAAE1E,cAAcG,KAAK4/H,cAAc,IAAIniH,EAAEzd,KAAK6/H,yBAAyB,IAAIjxH,EAAE5O,KAAK8/H,iCAAiC,IAAI3iH,IAAInd,KAAK+/H,mBAAmB,IAAI5iH,GAAG,CAAC,gBAAI6iH,GAAe,OAAOhgI,KAAK4/H,aAAa,CAAC,gBAAII,CAAa33G,GAAGroB,KAAK4/H,cAAcv3G,CAAC,CAAC,2BAAI43G,GAA0B,OAAOjgI,KAAK6/H,wBAAwB,CAAC,2BAAII,CAAwB53G,GAAGroB,KAAK6/H,yBAAyBx3G,CAAC,CAAC63G,sBAAsBniH,GAAG,IAAIiC,EAAEoB,EAAE,GAAGrD,EAAEkC,QAASlC,IAAIiC,GAAGA,EAAEpN,EAAE2K,KAAKi/B,IAAIx8B,EAAEpN,EAAEmL,EAAEnL,GAAGoN,EAAEwC,EAAEjF,KAAKi/B,IAAIx8B,EAAEwC,EAAEzE,EAAEyE,IAAIxC,EAAE,IAAIqI,KAAEtK,EAAEnL,EAAEmL,EAAEyE,GAAGpB,GAAGA,EAAExO,EAAE2K,KAAKk/B,IAAIr7B,EAAExO,EAAEmL,EAAEnL,GAAGwO,EAAEoB,EAAEjF,KAAKk/B,IAAIr7B,EAAEoB,EAAEzE,EAAEyE,IAAIpB,EAAE,IAAIiH,KAAEtK,EAAEnL,EAAEmL,EAAEyE,EAAC,GAAKxC,GAAGoB,EAAE,MAAM,CAACo7B,IAAIx8B,EAAEy8B,IAAIr7B,EAAE,CAAC++G,wCAAwCpiH,EAAEiC,GAAG,MAAMoB,EAAErD,EAAEy+B,IAAI/+B,EAAEM,EAAE0+B,IAAI,OAAOz8B,GAAG,KAAKD,EAAE0/G,IAAI,OAAO,IAAIp3G,KAAE,IAAIjH,EAAExO,EAAE6K,EAAE7K,GAAG6K,EAAE+E,GAAG,KAAKzC,EAAE2/G,OAAO,OAAO,IAAIr3G,KAAE,IAAIjH,EAAExO,EAAE6K,EAAE7K,GAAGwO,EAAEoB,GAAG,KAAKzC,EAAEy/G,KAAK,OAAO,IAAIn3G,KAAE5K,EAAE7K,EAAE,IAAIwO,EAAEoB,EAAE/E,EAAE+E,IAAI,KAAKzC,EAAEw/G,MAAM,OAAO,IAAIl3G,KAAEjH,EAAExO,EAAE,IAAIwO,EAAEoB,EAAE/E,EAAE+E,IAAI,KAAKzC,EAAE4/G,OAAO,OAAO,IAAIt3G,KAAE,IAAIjH,EAAExO,EAAE6K,EAAE7K,GAAG,IAAIwO,EAAEoB,EAAE/E,EAAE+E,IAAI,QAAQ,OAAO,IAAI6F,KAAE,EAAE,GAAG,CAAC+3G,gBAAgB/3G,EAAEtK,EAAEiC,GAAG,GAAGA,GAAGD,EAAE4/G,OAAO,OAAM,EAAG,MAAMv+G,EAAE,CAACo7B,IAAI,EAAEC,IAAI,GAAG,IAAIh/B,EAAE,EAAElZ,GAAE,EAAG,OAAOyb,GAAG,KAAKD,EAAEy/G,KAAKp+G,EAAEo7B,IAAIz+B,EAAEy+B,IAAIh6B,EAAEpB,EAAEq7B,IAAI1+B,EAAE0+B,IAAIj6B,EAAE/E,EAAE4K,EAAE7F,EAAEje,EAAE8jB,EAAEzV,EAAEmL,EAAE0+B,IAAI7pC,EAAE,MAAM,KAAKmN,EAAEw/G,MAAMn+G,EAAEo7B,IAAIz+B,EAAEy+B,IAAIh6B,EAAEpB,EAAEq7B,IAAI1+B,EAAE0+B,IAAIj6B,EAAE/E,EAAE4K,EAAE7F,EAAEje,EAAE8jB,EAAEzV,EAAEmL,EAAEy+B,IAAI5pC,EAAE,MAAM,KAAKmN,EAAE0/G,IAAIr+G,EAAEo7B,IAAIz+B,EAAEy+B,IAAI5pC,EAAEwO,EAAEq7B,IAAI1+B,EAAE0+B,IAAI7pC,EAAE6K,EAAE4K,EAAEzV,EAAErO,EAAE8jB,EAAE7F,EAAEzE,EAAE0+B,IAAIj6B,EAAE,MAAM,KAAKzC,EAAE2/G,OAAOt+G,EAAEo7B,IAAIz+B,EAAEy+B,IAAI5pC,EAAEwO,EAAEq7B,IAAI1+B,EAAE0+B,IAAI7pC,EAAE6K,EAAE4K,EAAEzV,EAAErO,EAAE8jB,EAAE7F,EAAEzE,EAAEy+B,IAAIh6B,EAAE,QAAQje,GAAI6c,EAAEo7B,IAAI/+B,GAAG2D,EAAEq7B,IAAIh/B,CAAE,CAAC4iH,8BAA8Bh4G,EAAEtK,EAAEiC,GAAG,IAAIoB,GAAE,EAAG,UAAU3D,KAAK4K,EAAE,CAAC,GAAG5K,EAAE,IAAIM,EAAE,SAAS,MAAMsK,EAAEroB,KAAKmgI,wCAAwCpiH,EAAEiC,GAAG,GAAGhgB,KAAKogI,gBAAgB/3G,EAAE5K,EAAE,GAAGuC,GAAG,CAACoB,GAAE,EAAG,KAAK,CAAC,CAAC,OAAOA,CAAC,CAACk/G,+BAA+Bj4G,EAAEtK,EAAEiC,EAAEoB,GAAGphB,KAAKqgI,8BAA8Bh4G,EAAEtK,EAAEiC,IAAIoB,EAAEnD,KAAK+B,EAAE,CAACugH,8BAA8Bl4G,GAAG,MAAMtK,EAAE,IAAIZ,IAAI,UAAU6C,KAAKqI,EAAE,CAAC,MAAMjH,EAAE,IAAI9D,MAAMtd,KAAKsgI,+BAA+Bj4G,EAAErI,EAAE,GAAGD,EAAEy/G,KAAKp+G,GAAGphB,KAAKsgI,+BAA+Bj4G,EAAErI,EAAE,GAAGD,EAAEw/G,MAAMn+G,GAAGphB,KAAKsgI,+BAA+Bj4G,EAAErI,EAAE,GAAGD,EAAE2/G,OAAOt+G,GAAGphB,KAAKsgI,+BAA+Bj4G,EAAErI,EAAE,GAAGD,EAAE0/G,IAAIr+G,GAAGphB,KAAKsgI,+BAA+Bj4G,EAAErI,EAAE,GAAGD,EAAE4/G,OAAOv+G,GAAGrD,EAAEb,IAAI8C,EAAE,GAAGoB,EAAE,CAAC,OAAOrD,CAAC,CAACyiH,0BAA0Bn4G,GAAG,OAAOA,GAAG,KAAKtI,EAAE0/G,IAAI,OAAO1/G,EAAE2/G,OAAO,KAAK3/G,EAAE2/G,OAAO,OAAO3/G,EAAE0/G,IAAI,KAAK1/G,EAAEw/G,MAAM,OAAOx/G,EAAEy/G,KAAK,KAAKz/G,EAAEy/G,KAAK,OAAOz/G,EAAEw/G,MAAM,QAAQ,OAAOl3G,EAAE,CAACo4G,qBAAqBp4G,GAAG,OAAOA,GAAGtI,EAAE0/G,KAAKp3G,GAAGtI,EAAE2/G,MAAM,CAACgB,uBAAuBr4G,GAAG,OAAOA,GAAGtI,EAAEy/G,MAAMn3G,GAAGtI,EAAEw/G,KAAK,CAACoB,6BAA6Bt4G,GAAG,OAAOroB,KAAK0gI,uBAAuBr4G,GAAG,EAAEroB,KAAKygI,qBAAqBp4G,GAAG,EAAE,CAAC,CAACu4G,yBAAyBv4G,GAAG,OAAO,GAAGA,EAAE3S,OAAO2S,EAAE,GAAGtI,EAAE4/G,MAAM,CAACkB,2CAA2Cx4G,EAAEtK,GAAG,MAAMiC,EAAE,IAAI1C,MAAM,UAAUS,KAAKsK,EAAErI,EAAE/B,KAAKF,GAAG,OAAOiC,EAAElM,KAAM,CAACuU,EAAErI,KAAK,MAAMoB,EAAEphB,KAAK4gI,yBAAyBv4G,EAAE,IAAI5K,EAAEzd,KAAK4gI,yBAAyB5gH,EAAE,IAAID,GAAE/f,KAAK2gI,6BAA6Bv/G,GAAG7c,GAAEvE,KAAK2gI,6BAA6BljH,GAAG,GAAGsC,IAAGxb,GAAE,OAAOwb,GAAExb,GAAE,GAAE,EAAG,MAAMqK,GAAEmP,EAAEjb,IAAIulB,EAAE,IAAI0/C,GAAEhqD,EAAEjb,IAAIkd,EAAE,IAAI,IAAIpR,KAAIm5D,GAAE,OAAO,EAAE,IAAIt5D,GAAE,EAAEq5D,GAAE,EAAE,OAAO9nE,KAAKygI,qBAAqBr/G,GAAG3S,GAAE,IAAIG,GAAE4tC,IAAI5pC,EAAEhE,GAAE6tC,IAAI7pC,GAAG5S,KAAK0gI,uBAAuBt/G,KAAK3S,GAAE,IAAIG,GAAE4tC,IAAIh6B,EAAE5T,GAAE6tC,IAAIj6B,IAAIxiB,KAAKygI,qBAAqBhjH,GAAGqqD,GAAE,IAAIC,GAAEvrB,IAAI5pC,EAAEm1D,GAAEtrB,IAAI7pC,GAAG5S,KAAK0gI,uBAAuBjjH,KAAKqqD,GAAE,IAAIC,GAAEvrB,IAAIh6B,EAAEulD,GAAEtrB,IAAIj6B,IAAI/T,IAAGq5D,GAAEr5D,GAAEq5D,GAAE,GAAE,EAAG,IAAK9nD,CAAC,CAAC8gH,aAAa/iH,EAAEiC,EAAEoB,EAAE3D,GAAG,IAAIlZ,EAAEqK,EAAE,MAAMm5D,EAAE,IAAI5qD,IAAI1O,GAAEtG,SAASof,cAAc,OAAO9Y,GAAE+Y,MAAMlP,SAAS,WAAWyF,EAAEgjH,UAAUC,uBAAuBC,aAAaz6G,YAAY/X,IAAG,UAAU4Z,MAAKrI,EAAE,CAAC,MAAMA,GAAEhgB,KAAK4+H,YAAY7gH,EAAEsK,GAAE,IAAIjH,GAAEpB,GAAEkhH,WAAW,IAAIzjH,GAAE,EAAE2D,KAAI3D,GAAEH,MAAMhI,KAAK8L,GAAE+/G,YAAYr8F,QAAQ9kB,KAAIvR,GAAEoyD,OAAO7gD,IAAG+nD,EAAE7qD,IAAImL,GAAE,GAAG,CAACoS,MAAMza,GAAEohH,YAAY1mG,OAAO1a,GAAEqhH,eAAejgH,GAAE3D,IAAG2D,GAAE+/G,WAAWzrH,OAAO0L,GAAEy/C,OAAO7gD,IAAGoB,GAAEkgH,aAAathH,GAAEoB,GAAE+/G,WAAW1jH,KAAIhP,GAAEkY,YAAY3G,GAAE,CAACvR,GAAEiqC,SAAS,MAAMovB,GAAEA,CAAC/pD,GAAEiC,MAAK,IAAIoB,GAAE7c,GAAE,MAAMqK,GAAE,QAAQwS,GAAE2mD,EAAEjlE,IAAIib,WAAK,IAASqD,GAAEA,GAAE,CAACqZ,MAAM,EAAEC,OAAO,GAAGjsB,GAAE,QAAQlK,GAAEkZ,EAAE3a,IAAIib,WAAK,IAASxZ,GAAEA,GAAE,CAACi4C,IAAIn0B,KAAEk5G,OAAO9kF,IAAIp0B,KAAEk5G,QAAQz5D,GAAE9nE,KAAKmgI,wCAAwC1xH,GAAEuR,IAAGgoD,GAAE,CAACxrB,IAAIn0B,KAAEk5G,OAAO9kF,IAAIp0B,KAAEk5G,QAAQ,OAAOv5D,GAAExrB,IAAI5pC,EAAEk1D,GAAEl1D,EAAEhE,GAAE6rB,MAAM,EAAEutC,GAAExrB,IAAIh6B,EAAEslD,GAAEtlD,EAAE5T,GAAE8rB,OAAO,EAAE16B,KAAKygI,qBAAqBzgH,IAAYgoD,GAAExrB,IAAIh6B,EAAfxC,IAAGD,EAAE0/G,IAAY33D,GAAEtlD,EAAUslD,GAAEtlD,EAAE5T,GAAE8rB,OAAO16B,KAAK0gI,uBAAuB1gH,MAAegoD,GAAExrB,IAAI5pC,EAAhBoN,IAAGD,EAAEy/G,KAAa13D,GAAEl1D,EAAUk1D,GAAEl1D,EAAEhE,GAAE6rB,OAAOutC,GAAEvrB,IAAI7pC,EAAEo1D,GAAExrB,IAAI5pC,EAAEhE,GAAE6rB,MAAMutC,GAAEvrB,IAAIj6B,EAAEwlD,GAAExrB,IAAIh6B,EAAE5T,GAAE8rB,OAAOstC,IAAGA,GAAEA,CAAC3/C,GAAEtK,MAAK,IAAIiC,GAAE,EAAEoB,GAAE,EAAE,OAAO7D,KAAKikH,KAAKn5G,GAAEo0B,IAAI7pC,EAAEmL,GAAEy+B,IAAI5pC,IAAI2K,KAAKikH,KAAKn5G,GAAEm0B,IAAI5pC,EAAEmL,GAAE0+B,IAAI7pC,KAAKoN,GAAEzC,KAAKi/B,IAAIj/B,KAAKkkH,IAAIp5G,GAAEo0B,IAAI7pC,EAAEmL,GAAEy+B,IAAI5pC,GAAG2K,KAAKkkH,IAAIp5G,GAAEm0B,IAAI5pC,EAAEmL,GAAE0+B,IAAI7pC,KAAK2K,KAAKikH,KAAKn5G,GAAEo0B,IAAIj6B,EAAEzE,GAAEy+B,IAAIh6B,IAAIjF,KAAKikH,KAAKn5G,GAAEm0B,IAAIh6B,EAAEzE,GAAE0+B,IAAIj6B,KAAKpB,GAAE7D,KAAKi/B,IAAIj/B,KAAKkkH,IAAIp5G,GAAEo0B,IAAIj6B,EAAEzE,GAAEy+B,IAAIh6B,GAAGjF,KAAKkkH,IAAIp5G,GAAEm0B,IAAIh6B,EAAEzE,GAAE0+B,IAAIj6B,KAAKjF,KAAKmkH,KAAK1hH,GAAEA,GAAEoB,GAAEA,GAAC,EAAGzc,GAAEA,CAAC0jB,GAAEtK,MAAK,IAAIN,GAAE,IAAIlZ,GAAE,MAAgBwjE,GAAED,GAAV9nD,EAAEqI,IAAG,GAAStK,IAAG,QAAQA,GAAE,EAAEA,GAAEiC,EAAEtK,OAAOqI,KAAI,CAAC,GAAGsK,IAAGtK,GAAE,SAAS,MAAMnP,GAAEoR,EAAEjC,IAAG,GAAGtP,GAAEq5D,GAAEl5D,GAAE,QAAQ6O,GAAE2D,EAAEte,IAAI8L,WAAK,IAAS6O,GAAEA,GAAEsC,EAAE4/G,QAAQh7H,GAAEqjE,GAAED,GAAEt5D,KAAI,MAAMlK,IAAGI,GAAEJ,MAAKA,GAAEI,GAAE,CAAC,OAAaJ,IAAI,GAAGw/B,GAAE1b,KAAI,MAAMtK,GAAEiC,EAAEqI,IAAG,IAAIjH,GAAE3D,GAAEsC,EAAE4/G,OAAO,UAAU3/G,MAAKjC,GAAE,GAAG,CAAC,MAAMA,GAAEpZ,GAAE0jB,GAAErI,KAAI,MAAMoB,IAAGA,GAAErD,MAAKqD,GAAErD,GAAEN,GAAEuC,GAAE,CAAC,MAAM,CAAC2hH,eAAelkH,GAAEmkH,SAAexgH,IAAI,EAAC,EAAG,QAAQiH,GAAE,EAAEA,GAAErI,EAAEtK,OAAO2S,KAAI,CAAC,MAAMtK,GAAEiC,EAAEqI,IAAG,GAAG5K,GAAEqqD,GAAE/pD,GAAE,QAAQxZ,EAAE6c,EAAEte,IAAIib,WAAK,IAASxZ,EAAEA,EAAEwb,EAAE4/G,QAAQ,QAAQp7H,GAAE8jB,GAAE,EAAE9jB,GAAEyb,EAAEtK,OAAOnR,KAAI,CAAC,MAAMwjE,GAAE/nD,EAAEzb,IAAG,GAAGkK,GAAEq5D,GAAEC,GAAE,QAAQn5D,EAAEwS,EAAEte,IAAIilE,WAAK,IAASn5D,EAAEA,EAAEmR,EAAE4/G,QAAQ,GAAG33D,GAAEvqD,GAAEhP,IAAG,GAAG,CAAC,MAAMuR,GAAE+jB,GAAE1b,IAAG5K,GAAEsmB,GAAEx/B,IAAGyb,GAAE4hH,SAASnkH,GAAEmkH,SAASxgH,EAAElE,IAAIa,GAAEiC,GAAE2hH,gBAAgBvgH,EAAElE,IAAI6qD,GAAEtqD,GAAEkkH,eAAe,CAAC,CAAC,CAAC,CAACE,yBAAyBx5G,EAAEtK,EAAEiC,GAAG,MAAMoB,EAAEphB,KAAK6gI,2CAA2C9iH,EAAEiC,GAAGvC,EAAEA,CAAC4K,GAAEtK,MAAK,MAAMiC,GAAEhgB,KAAKwgI,0BAA0BziH,IAAG,OAAOsK,GAAEhN,UAAWgN,IAAGA,IAAGrI,IAAI,EAAEjC,GAAEiC,IAAGD,EAAEsI,KAAI,IAAItK,GAAEiC,GAAE,EAAE,MAAMD,GAAE,IAAI5C,IAAI,UAAU5Y,MAAK6c,EAAE,CAAC,IAAIA,GAAEphB,KAAK4gI,yBAAyBr8H,GAAE,IAAI,GAAG8jB,KAAIjH,GAAE3D,EAAElZ,GAAE,GAAG6c,KAAIA,IAAGrD,GAAE,CAAC,MAAMsK,GAAE5K,EAAElZ,GAAE,GAAG6c,IAAGiH,IAAGjH,IAAGpB,KAAIoB,GAAEiH,EAAC,CAACtI,GAAE7C,IAAI3Y,GAAE,GAAG6c,IAAGrD,GAAEqD,EAAC,CAAC,MAAM,CAAC4wE,UAAUjyE,GAAE+hH,cAAc9hH,GAAC,EAAGzb,EAAEwb,GAAE,GAAInR,GAAEmR,GAAE,GAAIgoD,GAAEn5D,GAAEkzH,cAAcv9H,EAAEu9H,cAAcv9H,EAAEytF,UAAUpjF,GAAEojF,UAAU,OAAOhyF,KAAK8gI,aAAaz4G,EAAEjH,EAAE2mD,GAAE/nD,GAAG+nD,EAAC,CAACg6D,0BAA0BhkH,EAAEiC,EAAEoB,GAAG,MAAM3D,EAAEuC,EAAEgiH,SAASjkH,GAAGgC,EAAEtC,EAAEwkH,gBAAgB,GAAGliH,EAAE,KAAK,MAAM,CAACzH,SAASyF,EAAEsK,EAAE,GAAG,MAAM9jB,EAAE8jB,KAAE65G,IAAI9gH,EAAE4gH,SAASjkH,GAAGN,GAAGsC,EAAEnR,EAAE2O,KAAKi/B,IAAIj/B,KAAKk/B,IAAIl4C,EAAE,GAAG,GAAG,MAAM,CAAC+T,SAASyF,EAAEokH,SAAS,IAAI95G,KAAE,EAAEzZ,EAAE,EAAEA,IAAI4pC,IAAIx4B,EAAEmiH,SAAS,IAAI95G,KAAEzZ,EAAEA,KAAKyZ,EAAEzZ,EAAE,CAACwzH,mCAAmCrkH,EAAEiC,EAAEoB,GAAG,IAAI3D,EAAE,EAAE,GAAG,GAAGuC,EAAEtK,OAAO,GAAG0L,GAAGrB,EAAE4/G,OAAO,CAAC,IAAIt3G,EAAErI,EAAE,GAAGkqD,EAAElqD,EAAEC,QAAS,CAAClC,EAAEiC,KAAKjC,EAAEmsD,EAAE7hD,IAAI5K,EAAEuC,EAAEqI,EAAEtK,EAAEmsD,IAAK,KAAK,CAAC,IAAI9oD,EAAE,QAAQrB,EAAE,EAAEA,EAAEC,EAAEtK,OAAO,EAAEqK,IAAI,CAAC,MAAMxb,EAAEyb,EAAED,GAAGnR,GAAEoR,EAAED,EAAE,GAAGgoD,GAAE/nE,KAAK+hI,0BAA0B,IAAI15G,KAAE9jB,EAAEqO,EAAErO,EAAEie,GAAG,IAAI6F,KAAEzZ,GAAEgE,EAAEhE,GAAE4T,GAAGzE,GAAGtP,GAAEs5D,GAAEzvD,SAAS0pH,SAASjkH,GAAGkkH,gBAAgB7gH,EAAEA,EAAE3S,KAAI2S,EAAE3S,GAAEgP,EAAEsC,EAAEgoD,GAAE1/C,IAAIjH,EAAE3S,GAAEgP,EAAEsC,EAAEgoD,GAAE1/C,EAAE,CAAC,CAAC,OAAO5K,CAAC,CAAC4kH,0BAA0Bh6G,EAAEtK,EAAEiC,EAAEoB,GAAG,IAAI3D,EAAE,MAAMlZ,EAAE,IAAI4Y,IAAIvO,EAAE5O,KAAK6hI,yBAAyBx5G,EAAErI,EAAEoB,GAAG,UAAUiH,MAAKtK,EAAE,CAAC,MAAMA,GAAE,CAACukH,yBAAyB,EAAEX,eAAe5hH,EAAE4/G,QAAQ3/G,GAAE,QAAQvC,EAAE7O,EAAE9L,IAAIulB,GAAE,WAAM,IAAS5K,EAAEA,EAAEsC,EAAE4/G,OAAO53D,GAAE3mD,EAAEte,IAAIulB,GAAE,IAAI,GAAG0/C,GAAE,CAAC,MAAM3mD,GAAEphB,KAAKmgI,wCAAwCp4D,GAAE/nD,IAAGjC,GAAE4jH,eAAe3hH,GAAEjC,GAAEukH,yBAAyBtiI,KAAKoiI,mCAAmChhH,GAAEiH,GAAE,GAAGrI,GAAE,CAACzb,EAAE2Y,IAAImL,GAAE,GAAGtK,GAAE,CAAC,OAAOxZ,CAAC,CAACg+H,qBAAqBl6G,EAAEtK,GAAG,GAAG,GAAG/d,KAAK8/H,iCAAiCzmG,KAAK,OAAO,MAAMrZ,EAAE,IAAI7C,IAAIY,EAAEkC,QAAS,CAACoI,EAAEtK,KAAK,MAAMqD,EAAEphB,KAAKkgI,sBAAsB73G,GAAGjH,GAAGpB,EAAE9C,IAAIa,EAAEqD,EAAC,GAAK,MAAMA,EAAEphB,KAAKugI,8BAA8BvgH,GAAGhgB,KAAK8/H,iCAAiC9/H,KAAKqiI,0BAA0Bh6G,EAAEtK,EAAEqD,EAAEpB,EAAE,CAACwiH,oBAAoBzkH,EAAEiC,GAAG,MAAMoB,EAAEphB,KAAK8/H,iCAAiCh9H,IAAIkd,GAAGvC,EAAEzd,KAAK+/H,mBAAmBj9H,IAAIkd,GAAG,IAAIoB,IAAI3D,EAAE,OAAO,IAAI4K,KAAE,EAAE,GAAG,MAAM9jB,EAAE,CAACi4C,IAAI,IAAIn0B,KAAE,EAAE,GAAGo0B,IAAI,IAAIp0B,KAAE5K,EAAE2jH,YAAY3jH,EAAE4jH,eAAezyH,EAAE5O,KAAKwgI,0BAA0Bp/G,EAAEugH,gBAAgB55D,EAAE,IAAI1/C,KAAE,EAAE,GAAG,OAAOjH,EAAEugH,gBAAgB,KAAK5hH,EAAE0/G,IAAI13D,EAAEvlD,GAAE,EAAG,MAAM,KAAKzC,EAAE2/G,OAAO33D,EAAEvlD,EAAE,EAAE,MAAM,KAAKzC,EAAEy/G,KAAKz3D,EAAEn1D,GAAE,EAAG,MAAM,KAAKmN,EAAEw/G,MAAMx3D,EAAEn1D,EAAE,EAAE,MAAMnE,GAAEzO,KAAKmgI,wCAAwC57H,EAAEqK,GAAG,OAAOH,GAAEg0H,WAAW16D,GAAGt5D,EAAC,CAACi0H,iCAAiCr6G,EAAEtK,GAAG,MAAMiC,EAAEhgB,KAAK8/H,iCAAiCh9H,IAAIib,GAAG,OAAOiC,EAAEA,EAAEsiH,yBAAyB,CAAC,CAAC,wBAAIK,GAAuB,OAAM,CAAE,CAAC/D,YAAYv2G,EAAEtK,GAAG,MAAMiC,EAAEhgB,KAAK+/H,mBAAmBj9H,IAAIib,GAAG,GAAGiC,EAAE,OAAOA,EAAE,MAAMoB,EAAEphB,KAAK4/H,cAAchB,YAAYv2G,EAAEtK,GAAG,OAAO/d,KAAK+/H,mBAAmB7iH,IAAIa,EAAEqD,GAAGA,CAAC,CAACwhH,uBAAuBv6G,EAAEtK,EAAEiC,GAAGhgB,KAAK6/H,yBAAyB+C,uBAAuBv6G,EAAEtK,EAAEiC,EAAE,EAAE,MAAMpR,EAAE/O,cAAcG,KAAK6iI,+BAA+B,EAAE7iI,KAAK8iI,8BAA8B,EAAE,CAAC,iCAAIC,GAAgC,OAAO/iI,KAAK6iI,8BAA8B,CAAC,iCAAIE,CAA8B16G,GAAGroB,KAAK6iI,+BAA+Bx6G,CAAC,CAAC,gCAAI26G,GAA+B,OAAOhjI,KAAK8iI,6BAA6B,CAAC,gCAAIE,CAA6B36G,GAAGroB,KAAK8iI,8BAA8Bz6G,CAAC,CAAC46G,8BAA8B56G,GAAG,GAAGA,EAAE3S,OAAO,EAAE,OAAO,IAAIqI,KAAE,EAAE,EAAE,GAAG,MAAMiC,EAAEqI,EAAE,GAAGjH,EAAEiH,EAAE9K,KAAK2sC,MAAM,EAAE7hC,EAAE3S,OAAO,IAAI+H,EAAE4K,EAAE9K,KAAK2sC,MAAM,EAAE7hC,EAAE3S,OAAO,IAAI,OAAOsK,EAAEgiH,SAAS5gH,GAAG8hH,MAAMljH,EAAEgiH,SAASvkH,IAAIiwF,WAAW,CAACy1B,sBAAsB96G,GAAG,GAAG,GAAGA,EAAE3S,OAAO,MAAM,CAAC2mG,MAAMh0F,EAAEvmB,KAAKumB,GAAG,MAAMrI,EAAEhgB,KAAKijI,8BAA8B56G,GAAG66G,MAAM,IAAInlH,KAAE,EAAE,EAAE,IAAI,IAAIqD,EAAErD,KAAEmkH,IAAIliH,EAAEqI,EAAE,IAAI5K,EAAE,EAAEsC,EAAEqB,EAAE7c,EAAE,EAAE,QAAQqK,GAAE,EAAEA,GAAEyZ,EAAE3S,OAAO9G,KAAI,CAAC,MAAaH,GAAEsP,KAAEmkH,IAAIliH,EAAbqI,EAAEzZ,KAAgBH,GAAE2S,IAAI3D,EAAE7O,GAAEwS,EAAE3S,IAAGA,GAAEsR,IAAIxb,EAAEqK,GAAEmR,EAAEtR,GAAE,CAAC,MAAMG,EAAEyZ,EAAE9jB,GAAG2lE,EAAE7hD,GAAG9jB,EAAE,GAAG8jB,EAAE3S,QAAQw0D,EAAEnC,GAAEn5D,EAAErK,EAAEkZ,EAAEhP,GAAEG,EAAE6O,EAAElZ,EAAEujE,GAAE,IAAIxqD,MAAM0qD,GAAE,IAAI1qD,MAAM3Y,GAAEojE,GAAEt5D,GAAEs1B,GAAEp/B,GAAEojE,GAAEt5D,GAAEmE,GAAEjO,GAAEmjE,GAAEE,GAAEntD,GAAElW,GAAE8J,GAAEs5D,GAAEjsC,GAAEn3B,GAAEqjE,GAAEF,GAAE,QAAQ/pD,GAAElD,GAAEkD,IAAGgmB,GAAEhmB,KAAI+d,GAAE7d,KAAKoK,EAAEtK,KAAI,QAAQA,GAAEgmB,GAAEhmB,GAAEsK,EAAE3S,OAAOqI,KAAInL,GAAEqL,KAAKoK,EAAEtK,KAAI,QAAQA,GAAE,EAAEA,IAAGlD,GAAEkD,KAAInL,GAAEqL,KAAKoK,EAAEtK,KAAI,MAAM,CAACs+F,MAAMv0C,GAAEhmE,KAAKkmE,GAAE,CAACo7D,UAAU/6G,EAAEtK,GAAG,IAAIiC,GAAE,EAAGjC,EAAEslH,YAAY,UAAUjiH,KAAKiH,EAAErI,GAAGjC,EAAEulH,OAAOliH,EAAExO,EAAEwO,EAAEoB,GAAGxC,GAAE,GAAIjC,EAAEwlH,OAAOniH,EAAExO,EAAEwO,EAAEoB,GAAGzE,EAAEylH,SAASzlH,EAAE0lH,WAAW,CAACb,uBAAuBv6G,EAAEtK,EAAEiC,GAAG,MAAMoB,EAAEA,KAAKpB,EAAE0jH,UAAU,EAAE1jH,EAAE2jH,YAAY,uBAAuB3jI,KAAK6iI,+BAA+B35H,WAAW,IAAI8W,EAAE4jH,YAAY,qBAAqB5jH,EAAE6jH,WAAW,EAAE7jH,EAAE8jH,cAAc,EAAE9jH,EAAE+jH,cAAc,GAAGtmH,EAAEA,KAAKuC,EAAE0jH,UAAU,EAAE1jH,EAAE2jH,YAAY,uBAAuB3jI,KAAK8iI,8BAA8B55H,WAAW,IAAI8W,EAAE4jH,YAAY,qBAAqB5jH,EAAE6jH,WAAW,EAAE7jH,EAAE8jH,cAAc,EAAE9jH,EAAE+jH,cAAc,GAAG/jH,EAAEgkH,YAAY,CAAC,GAAG,IAAI,UAAU37G,KAAKtK,EAAE,CAAC,MAAMA,EAAEsK,EAAE,GAAG,GAAG,iBAAiBA,EAAE,GAAGg2G,oBAAoB,CAAC,MAAMh2G,GAAEroB,KAAKmjI,sBAAsBplH,GAAGN,IAAIzd,KAAKojI,UAAU/6G,GAAEvmB,KAAKke,GAAGoB,IAAIphB,KAAKojI,UAAU/6G,GAAEg0F,MAAMr8F,EAAE,MAAMoB,IAAIphB,KAAKojI,UAAUrlH,EAAEiC,EAAE,CAAC,MCAvjVA,gBAAE,SAAUA,GAAGA,EAAEikH,QAAQ,UAAUjkH,EAAEkkH,OAAO,SAASlkH,EAAEmkH,cAAc,eAAe,CAAlF,CAAoFnkH,KAAIA,GAAE,CAAC,okBCO1F,MAAMokH,WAA0BC,KAUnCxkI,YAAY0G,EAAM8yB,EAAMilF,EAAOgmB,GAC3BzgI,MAAM0C,EAAM8yB,EAAMilF,EAAOgmB,GAAiB,GAM1CtkI,KAAKukI,gBAAkB,IAAIC,KAAM,EAAG,EAAG,EAAG,GAI1CxkI,KAAKykI,MAAQ,EACbzkI,KAAK0kI,yBAAyBlsF,IAAI,KAC9Bx4C,KAAK2kI,WAAWC,UAAY5kI,KAAKukI,kBAErCvkI,KAAK6kI,wBAAwBrsF,IAAI,KAC7Bx4C,KAAK2kI,WAAWC,UAAY,MAEpC,CAKAxhI,QACI,MAAMk7G,EAAQt+G,KAAK2kI,WACnB,IAAKrmB,EACD,OAAOt+G,KAEX,MAAM8kI,EAAc9kI,KAAK+kI,UACnBC,EAAa,IAAIZ,GAAkBpkI,KAAKuG,KAAMu+H,EAAYrqG,MAAO6jF,EAAOt+G,KAAKilI,kBAEnFD,SAAWE,SAAWllI,KAAKklI,SAC3BF,EAAWxlD,MAAQx/E,KAAKw/E,MAExBwlD,EAAWT,gBAAkBvkI,KAAKukI,gBAAgBnhI,QAC9CpD,KAAKmlI,aACLH,EAAWG,WAAanlI,KAAKmlI,WAAWznH,MAAM,IAElDsnH,EAAWP,MAAQzkI,KAAKykI,MACjBO,CACX,CAKAI,YACI,IAAKplI,KAAKuG,KACN,OAAO,KAEX,MAAM8+H,EAAsBxhI,MAAMuhI,YAClCC,SAAoBC,YAActlI,KAAKukI,gBAAgBgB,UACvDF,EAAoBZ,MAAQzkI,KAAKykI,MAC1BY,CACX,MCtE2uE9/F,2BCA7pE,MAAM32B,WAAUmP,KAAE,gCAAIynH,GAA+B,OAAOxlI,KAAKylI,6BAA6B,CAAC,gCAAID,CAA6BznH,GAAG/d,KAAKylI,8BAA8B1nH,CAAC,CAACle,YAAYke,GAAGla,MAAMka,EAAE,4BAA4B,IAAI,CAAC2nH,oDAAmD,IAAI,GAAG,GAAI1lI,KAAKylI,+BAA8B,CAAE,CAACE,eAAe,MAAM,2BAA2B,CAACC,eAAe7nH,EAAEnP,EAAEk5D,GAAG/pD,EAAE2nH,mDAAmD1lI,KAAKylI,6BAA6B,CAACI,cAAc9nH,GAAG,MAAM,aAAaA,EAAE,CAAC+nH,6BAA6B,2nBAA2nB,IAAI,ECAo/H,MAAMh8D,GAAEjqE,YAAYke,EAAEsK,GAAGroB,KAAK+lI,cAAc,EAAE/lI,KAAKgmI,QAAQjoH,EAAE/d,KAAKimI,oBAAoB59G,CAAC,CAAC,gBAAI69G,CAAanoH,GAAG/d,KAAK+lI,cAAchoH,EAAqC/d,KAAKmmI,kCAAhCnmI,KAAKimI,oBAAoBloH,EAA2C,CAAC,gBAAImoH,GAAe,OAAOlmI,KAAK+lI,aAAa,CAAC7mB,UAAUl/G,KAAKmmI,kCAAkCnmI,KAAKimI,oBAAoB,CAACE,kCAAkCpoH,GAAG,MAAMsK,EAAE2/C,KAAEo+D,YAAYroH,EAAE,EAAE,GAAG/d,KAAKgmI,QAAQK,+BAA+Bh+G,CAAC,EAAE,MAAMkhD,GAAE1pE,cAAcG,KAAKsmI,UAAU,KAAKtmI,KAAKumI,mBAAmB,KAAKvmI,KAAKwmI,yBAAyB,KAAKxmI,KAAKymI,gBAAgB,KAAKzmI,KAAK0mI,oBAAoB,KAAK1mI,KAAK2mI,0BAA0B,KAAK3mI,KAAK4mI,SAAS,IAAI,CAAC,YAAIC,GAAW,OAAO7mI,KAAKsmI,SAAS,CAAC,WAAI7lG,GAAU,OAAOzgC,KAAK4mI,QAAQ,CAACE,2BAA2B,IAAI9mI,KAAKumI,mBAAmB,OAAO,IAAIx+D,KAAE,EAAE,EAAE,GAAG,MAAMhqD,EAAE/d,KAAKumI,mBAAmBQ,oBAAmB,GAAI1+G,EAAE0/C,KAAEi/D,qBAAqBhnI,KAAKumI,mBAAmBU,kBAAkBx9E,QAAQ1rC,GAAGgC,EAAEgoD,KAAEi/D,qBAAqBhnI,KAAKumI,mBAAmBU,kBAAkBz9E,QAAQzrC,GAAGqD,EAAE,IAAI,OAAOiH,EAAE6+G,iBAAiB9lH,EAAEA,EAAEA,GAAGo3B,IAAIz4B,EAAEmnH,iBAAiB,EAAE9lH,EAAE,EAAEA,EAAE,EAAEA,GAAG,CAAChe,MAAM2a,GAAG,IAAIsK,EAAEtI,EAAEqB,EAAE7c,EAAEkZ,EAAE7O,EAAEoR,GAAE8nD,GAAE,MAAMr5D,GAAE,IAAI86D,GAAE,OAAO96D,GAAE04H,WAAWnnI,KAAKmnI,WAAW14H,GAAE63H,UAAU,QAAQvmH,EAAE,QAAQsI,EAAEroB,KAAKsmI,iBAAY,IAASj+G,OAAE,EAAOA,EAAEjlB,MAAO,GAAE2a,SAAS/d,KAAKsmI,UAAUjhG,QAAO,UAAM,IAAStlB,EAAEA,EAAE,KAAKtR,GAAE83H,mBAAmB,QAAQhiI,EAAE,QAAQ6c,EAAEphB,KAAKumI,0BAAqB,IAASnlH,OAAE,EAAOA,EAAEhe,MAAO,GAAE2a,SAAStP,GAAE63H,kBAAa,IAAS/hI,EAAEA,EAAE,KAAKkK,GAAE+3H,yBAAyB,QAAQ53H,EAAE,QAAQ6O,EAAEzd,KAAKwmI,gCAA2B,IAAS/oH,OAAE,EAAOA,EAAEra,MAAO,GAAE2a,gBAAgBtP,GAAE63H,kBAAa,IAAS13H,EAAEA,EAAE,KAAKH,GAAEg4H,gBAAgB,QAAQ3+D,GAAE,QAAQ9nD,GAAEhgB,KAAKymI,uBAAkB,IAASzmH,QAAE,EAAOA,GAAE5c,MAAO,GAAE2a,gBAAgBtP,GAAE63H,kBAAa,IAASx+D,GAAEA,GAAE,KAAKr5D,GAAE24H,0BAA2B,GAAErpH,gBAAgB/d,KAAKmnI,WAAW7oB,OAAO7vG,GAAEg4H,kBAAkBh4H,GAAEg4H,gBAAgBY,SAAS54H,GAAEi4H,qBAAqBj4H,EAAC,CAAC64H,UAAUvpH,GAAM/d,KAAK6mI,UAAU7mI,KAAKumI,oBAAoBvmI,KAAKwmI,2BAA4BxmI,KAAKwmI,yBAAyBe,WAAWxpH,GAAGA,GAAe/d,KAAKumI,mBAAmBiB,QAAQ,IAAIz/D,KAAEhqD,IAAEA,IAAEA,KAAG/d,KAAKwmI,yBAAyBgB,QAAQ,IAAIz/D,KAAEhqD,IAAEA,IAAEA,OAAQ/d,KAAKumI,mBAAmBiB,QAAQ,IAAIz/D,KAAE,EAAE,EAAE,GAAG/nE,KAAKwmI,yBAAyBgB,QAAQ,IAAIz/D,KAAE,EAAE,EAAE,IAAE,CAAC0/D,eAAe1pH,GAAG,OAAO/d,KAAKumI,qBAAqBxoH,CAAC,CAACqpH,0BAA0BrpH,EAAEqD,GAAGphB,KAAK0mI,oBAAoB,IAAIr+G,IAAEtK,EAAEqD,GAAGphB,KAAK0mI,oBAAoBgB,iBAAgB,EAAG1nI,KAAK0mI,oBAAoBiB,cAAc5nH,KAAE6nH,QAAQ5nI,KAAK2mI,0BAA0B,IAAI39D,GAAEhpE,KAAK0mI,oBAAoB,CAACmB,oBAAoB9pH,EAAEqD,EAAE3D,EAAE7O,GAAG5O,KAAKmnI,WAAWppH,EAAE,MAAMiC,EAAEhgB,KAAKmnI,WAAW7oB,MAAMt+G,KAAKsmI,UAAU,IAAI/hI,IAAG,GAAE6c,SAASpB,GAAG,MAAM8nD,EAAE,GAAGrqD,EAAEzd,KAAKumI,mBAAmBvmI,KAAK8nI,eAAgB,GAAE1mH,SAAS3D,EAAEA,EAAEuC,GAAGhgB,KAAKumI,mBAAmBjuH,SAASkK,EAAEslD,EAAE9nE,KAAKumI,mBAAmBlhG,OAAOrlC,KAAKsmI,UAAUtmI,KAAKumI,mBAAmBc,SAASz4H,EAAE,MAAMH,EAAE,KAAKgP,EAAEzd,KAAKwmI,yBAAyBxmI,KAAK8nI,eAAgB,GAAE1mH,gBAAgB3S,EAAEA,EAAEuR,GAAE,GAAG,GAAIhgB,KAAKwmI,yBAAyBluH,SAASkK,EAAEslD,EAAE9nE,KAAKwmI,yBAAyBluH,SAAS4xD,GAAE,KAAMlqE,KAAKwmI,yBAAyBnhG,OAAOrlC,KAAKsmI,UAAUtmI,KAAKwmI,yBAAyBe,YAAW,GAAIvnI,KAAKwmI,yBAAyBuB,YAAW,EAAG,MAAMhgE,GAAE,IAAI1/C,IAAG,GAAEjH,gBAAgBpB,GAAG+nD,GAAE2/D,iBAAgB,EAAG3/D,GAAE4/D,cAAc,IAAI5nH,KAAE,EAAE,EAAE,GAAG/f,KAAKwmI,yBAAyBa,SAASt/D,GAAE,MAAMC,GAAG,GAAE5mD,gBAAgB2iB,GAAE,IAAItmB,EAAEzd,KAAKymI,gBAAgBzmI,KAAK8nI,eAAe9/D,GAAEjkC,GAAEA,GAAE/jB,GAAE,GAAIhgB,KAAKymI,gBAAgBnuH,SAASkK,EAAEslD,EAAE9nE,KAAKymI,gBAAgBnuH,SAAS4xD,GAAE,KAAMlqE,KAAKymI,gBAAgBphG,OAAOrlC,KAAKsmI,UAAUtmI,KAAKymI,gBAAgBc,YAAW,GAAIvnI,KAAKymI,gBAAgBsB,YAAW,EAAG/nI,KAAKonI,0BAA0Bp/D,GAAEhoD,GAAGhgB,KAAKymI,gBAAgBY,SAASrnI,KAAK0mI,oBAAoB1mI,KAAKgoI,oBAAoBhoI,KAAKsmI,UAAU2B,cAActgI,KAAEugI,eAAe,CAACF,oBAAoBhoI,KAAKumI,qBAAqB9oH,IAAE0qH,oBAAoBnoI,KAAKumI,mBAAmB33H,IAAEw5H,0BAA0B3qH,IAAE4qH,kBAAkBroI,KAAKumI,mBAAmB,KAAI,IAAKvmI,KAAKwmI,2BAA2B/oH,IAAE0qH,oBAAoBnoI,KAAKwmI,yBAAyB53H,IAAEw5H,0BAA0B3qH,IAAE4qH,kBAAkBroI,KAAKwmI,yBAAyB,KAAI,IAAKxmI,KAAKymI,kBAAkBhpH,IAAE0qH,oBAAoBnoI,KAAKymI,gBAAgB73H,IAAEw5H,0BAA0B3qH,IAAE4qH,kBAAkBroI,KAAKymI,gBAAgB,KAAI,GAAI,CAACqB,eAAe/pH,EAAEsK,EAAEtI,EAAExb,EAAEkZ,GAAE,EAAG7O,GAAE,GAAI,GAAG6O,EAAE,OAAO2D,KAAEknH,YAAYvqH,EAAE,CAAC0c,MAAMpS,EAAEqS,OAAO3a,GAAGxb,GAAG,MAAMyb,EAAEzC,KAAKi/B,IAAIn0B,EAAEtI,GAAG,GAAG+nD,GAAEvqD,KAAKgrH,GAAG,GAAG95H,GAAE,GAAG,IAAIu5D,KAAI,GAAG3/C,EAAErI,GAAGrb,KAAI,GAAGob,EAAEC,GAAG,QAAQjC,GAAER,KAAKgrH,GAAGxqH,IAAG,IAAIR,KAAKgrH,GAAGxqH,IAAG+pD,GAAEr5D,GAAEwP,KAAK,IAAI8pD,KAAEC,GAAEhoD,EAAEzC,KAAKirH,IAAIzqH,IAAG,EAAEpZ,GAAEqb,EAAEzC,KAAKkrH,IAAI1qH,MAAKiqD,GAAE,GAAG3/C,EAAErI,EAAE,QAAQjC,GAAE,IAAIR,KAAKgrH,GAAGxqH,IAAG,EAAER,KAAKgrH,GAAGxqH,IAAG+pD,GAAEr5D,GAAEwP,KAAK,IAAI8pD,KAAEC,GAAEhoD,EAAEzC,KAAKirH,IAAIzqH,IAAG,EAAEpZ,GAAEqb,EAAEzC,KAAKkrH,IAAI1qH,MAAKpZ,GAAE,GAAGob,EAAEC,EAAE,QAAQjC,GAAE,EAAEA,IAAG,GAAGR,KAAKgrH,GAAGxqH,IAAG+pD,GAAEr5D,GAAEwP,KAAK,IAAI8pD,KAAEC,GAAEhoD,EAAEzC,KAAKirH,IAAIzqH,IAAG,EAAEpZ,GAAEqb,EAAEzC,KAAKkrH,IAAI1qH,MAAKiqD,KAAI,GAAG3/C,EAAErI,GAAG,QAAQjC,GAAE,GAAGR,KAAKgrH,GAAGxqH,IAAGR,KAAKgrH,GAAGxqH,IAAG+pD,GAAEr5D,GAAEwP,KAAK,IAAI8pD,KAAEC,GAAEhoD,EAAEzC,KAAKirH,IAAIzqH,IAAG,EAAEpZ,GAAEqb,EAAEzC,KAAKkrH,IAAI1qH,MAAK,MAAMs3B,GAAE,CAACqzF,MAAMj6H,IAAG,GAAGG,EAAE,CAAC,MAAMmP,GAAE,GAAStP,GAAEwR,QAASF,KAAIhC,GAAEE,KAAK,IAAI8pD,KAAM1/C,IAAJtI,GAAEnN,EAAQyV,IAAJtI,GAAEyC,EAAQ6F,IAAJtI,GAAEmqD,GAAI,GAAK70B,GAAEszF,MAAM,CAAC5qH,GAAE,CAAC,MAAMpW,GAAEyZ,KAAEwnH,cAAc7qH,EAAEs3B,GAAE9wC,EAAEqkE,IAAG,OAAOjhE,GAAEkhI,SAASj2H,EAAEmxB,KAAE+kG,UAAU,KAAKnhI,EAAC,CAACm7D,OAAOz6C,GAAG,IAAItI,EAAEqB,EAAE7c,EAAEkZ,EAAE7O,EAAE,SAAOmP,MAAE/d,UAAK,OAAO,EAAQ,YAAY,IAAIA,KAAK0mI,sBAAsB1mI,KAAK2mI,0BAA0B,MAAM,IAAIrhH,MAAM,2EAA2E,GAAGtlB,KAAK4mI,SAASv+G,GAAGA,EAAE,OAAO,QAAQtI,EAAE/f,KAAK0mI,oBAAoBqC,sBAAiB,IAAShpH,GAAGA,EAAE0hC,eAAe,QAAQrgC,EAAEphB,KAAK0mI,oBAAoBsC,sBAAiB,IAAS5nH,GAAGA,EAAEqgC,WAAW,IAAI1jC,EAAE,GAAG,MAAM+pD,SAAQzyB,KAAE4zF,kCAAkC5gH,EAAE8qC,MAAM,CAACxuD,MAAEukI,4BAA4BvkI,MAAEwkI,gBAAgBxkI,MAAEykI,wBAAyB/gH,KAAItK,EAAEsK,KAAK,IAAI5Z,GAAE,KAAKsP,GAAGpZ,MAAEukI,8BAA8Bz6H,SAAQ4mC,KAAE4zF,kCAAkC5gH,EAAE8qC,MAAM,CAACxuD,MAAE0kI,gBAAgB1kI,MAAE2kI,0BAA0B,MAAMthE,GAAE3/C,KAAI,MAAMtI,GAAEsI,GAAE08G,UAAU,GAAG/kI,KAAKymI,gBAAgB,CAAC,IAAIp+G,GAAEtI,GAAE0a,MAAM1a,GAAE2a,OAAOwuB,MAAM7gC,MAAKxV,QAAQ3H,KAAM,sCAAqC6S,eAAegC,GAAE0a,SAAS1a,GAAE2a,4BAA4BrS,GAAE,GAAGroB,KAAKymI,gBAAgBe,QAAQn/G,IAAG,EAAE,IAAI0/C,KAAE1/C,GAAE,EAAE,GAAG,IAAI0/C,KAAE,EAAE,EAAE1/C,GAAE,EAAE,IAAI0b,GAAEp8B,UAASgQ,QAAQyE,IAAI,CAACkQ,KAAEi9G,cAAcvpI,KAAKmnI,WAAW7oB,MAAM,oBAAoBx2C,IAAGr5D,GAAEA,GAAE8G,KAAEi0H,kBAAkBj0H,KAAEk0H,mBAAmBzpH,KAAE0pH,oBAAmB,EAAGr0F,KAAEs0F,oBAAoB5rH,GAAIA,KAAIiqD,GAAEjqD,GAAC,GAAKtP,GAAE6d,KAAEi9G,cAAcvpI,KAAKmnI,WAAW7oB,MAAM,oBAAoB7vG,IAAE,EAAG8G,KAAEq0H,wBAAwB5pH,KAAE0pH,oBAAmB,GAAG,GAAI,OAAO,QAAQnlI,EAAEvE,KAAK0mI,oBAAoBqC,sBAAiB,IAASxkI,GAAGA,EAAEk9C,UAAU,QAAQhkC,EAAEzd,KAAK0mI,oBAAoBsC,sBAAiB,IAASvrH,GAAGA,EAAEgkC,UAAU1d,GAAEmhG,UAAUv9H,GAAE3H,KAAK0mI,oBAAoBmD,4BAA4BliI,GAAE3H,KAAK0mI,oBAAoBsC,eAAerhI,GAAE3H,KAAK0mI,oBAAoBqC,eAAehlG,GAAE/jC,KAAK2mI,0BAA0BnB,6BAA6BnwF,KAAEs0F,oBAAoB5rH,GAAG,QAAQnP,EAAE5O,KAAKymI,uBAAkB,IAAS73H,GAAGA,EAAE24H,YAAW,EAAG,EAAG,EAAE,MAAM30H,GAAE/S,cAAcG,KAAKsmI,UAAU,KAAKtmI,KAAK8pI,OAAO,IAAI3sH,IAAInd,KAAK+pI,aAAa,GAAG/pI,KAAKgqI,QAAQ,KAAKhqI,KAAKiqI,0BAA0B,KAAKjqI,KAAKkqI,gBAAgB,IAAI,CAAC,YAAIrD,GAAW,OAAO7mI,KAAKsmI,SAAS,CAAC,4BAAI6D,GAA2B,OAAOnqI,KAAKiqI,yBAAyB,CAACpC,oBAAoB9pH,GAAG,IAAIA,EAAEugG,MAAM8rB,aAAa,MAAM,IAAI9kH,MAAM,wEAAwEtlB,KAAKmnI,WAAWppH,EAAE/d,KAAKsmI,UAAU,IAAI/hI,IAAE,uBAAuBvE,KAAKmnI,WAAW7oB,OAAOt+G,KAAKsmI,UAAUiB,YAAW,GAAIvnI,KAAKqqI,oBAAoBtsH,EAAEugG,MAAM8rB,aAAaE,gBAAgB,MAAW7sH,KAAEulD,OAAIp0D,EAAE,IAAIyZ,IAAG,GAAE5K,mBAAmBM,EAAEugG,OAAO1vG,EAAE27H,MAAM,GAAG37H,EAAE84H,iBAAgB,EAAG94H,EAAE+4H,cAAc,IAAI5nH,KAAE,GAAG,GAAG,IAAI,MAAMC,EAAE,IAAIupD,GAAEvpD,EAAE6nH,oBAAoB9pH,EAAEN,EAAE,yBAAxJ,GAAmL7O,GAAGoR,EAAE6mH,WAAW7mH,EAAE6mH,SAASxhG,OAAOrlC,KAAKsmI,UAAUtmH,EAAE6mH,SAASvuH,SAASkK,EAAE,IAAIxiB,KAAK8pI,OAAO5sH,IAAI4qD,MAAEj1C,OAAO7S,GAAG,MAAMvR,EAAEuR,EAAE5c,MAAMqa,EAAE,0BAA0BhP,EAAEo4H,WAAWp4H,EAAEo4H,SAASxhG,OAAOrlC,KAAKsmI,UAAU73H,EAAEo4H,SAASvuH,SAASkK,EAAE,GAA1Y,GAA+Y/T,EAAEo4H,SAASvuH,SAAS1F,EAAE,KAAK5S,KAAK8pI,OAAO5sH,IAAI4qD,MAAEp1C,OAAOjkB,GAAG,MAAMs5D,EAAE/nD,EAAE5c,MAAMqa,EAAE,uBAAuBsqD,EAAE8+D,WAAW9+D,EAAE8+D,SAASxhG,OAAOrlC,KAAKsmI,UAAUv+D,EAAE8+D,SAASvuH,SAASkK,EAAE,KAAKxiB,KAAK8pI,OAAO5sH,IAAI4qD,MAAEv1C,IAAIw1C,GAAG/nE,KAAKwqI,wBAAwB,CAACC,yBAAyB1sH,EAAEsK,GAAG,MAAMjH,EAAEiH,EAAE,6BAA6B9jB,EAAEwZ,EAAE2sH,OAAOjtH,EAAEM,EAAEugG,MAAM1vG,EAAE,IAAIiM,KAAG,GAAEuG,SAAS3D,GAAG7O,EAAE+7H,YAAY,IAAI5qH,KAAE,GAAG,GAAG,IAAInR,EAAEg8H,WAAWC,qBAAoB,EAAGj8H,EAAEg8H,WAAWE,oBAAoB,EAAEl8H,EAAEg8H,WAAWG,kBAAkB,EAAEn8H,EAAEg8H,WAAWI,2BAA0B,EAAGp8H,EAAEq8H,SAAS,EAAEr8H,EAAEs8H,UAAU,EAAE,MAAMpjE,EAAE,IAAIgB,GAAE1nD,EAAE,sBAAsB,IAAI3D,GAAE,GAAIqqD,EAAEqjE,oBAAoBptH,KAAI,MAAMsK,GAAE,CAAC,eAAe,QAAQ,SAAS,WAAW,UAAUtI,MAAKsI,GAAE,GAAGtK,GAAExX,KAAKpD,SAAS4c,IAAG,OAAM,EAAG,OAAM,GAAI+nD,EAAEy8D,gBAAgB,IAAIp6D,KAAE,EAAE,GAAE,EAAG,GAAGv7D,EAAEw8H,kBAAkBtjE,EAAErqD,EAAE4tH,oBAAoBptH,KAAK6pD,GAAG,MAAMC,GAAED,EAAEwjE,YAAYxjE,EAAEyjE,sBAAqB,EAAG,MAAMvjE,GAAE,IAAIyB,KAAE,SAAS,IAAIh7D,KAAE,EAAE,GAAG,GAAG,EAAE,KAAKuR,KAAEwrH,sBAAsBjnI,GAAE,EAAGwjE,IAAGC,GAAEyjE,WAAU,EAAGzjE,GAAEvtC,MAAMqtC,EAAE4jE,iBAAiB1jE,GAAEttC,OAAOotC,EAAE6jE,kBAAkB3jE,GAAE4jE,kBAAkBpzF,IAAKz6B,KAAIA,GAAE8tH,WAAW,iBAAiB/jE,EAAC,GAAK,MAAM/jC,GAAE,CAACikC,GAAE,IAAIyB,KAAE,SAAS,IAAIh7D,KAAE,EAAE,GAAG,GAAG,EAAE,KAAKuR,KAAEwrH,sBAAsBjnI,GAAE,EAAGwjE,KAAIpjE,GAAE,IAAIokE,KAAE,gCAAgC,CAACtuC,MAAMutC,GAAEvtC,MAAMC,OAAOstC,GAAEttC,QAAQjd,GAAE,GAAG,EAAGsqD,QAAE,OAAO,GAAO,GAAIpjE,GAAEmnI,kBAAkBtzF,IAAK,QAAS,MAAMnD,GAAEr1C,KAAKsmI,UAAU,OAAOx+D,EAAEikE,wBAAwBvzF,IAAK,WAAW,MAAMz6B,GAAEpZ,GAAEqnI,aAA6B32F,IAAE42F,aAAcluH,KAAIN,EAAEyuH,mBAAmBC,aAAapoG,GAAEhmB,IAAE,GAAIxZ,EAAE6nI,kBAAkBruH,IAAE,GAAI,GAAInP,EAAEw8H,kBAAkBzmI,GAAEiK,CAAC,CAACy9H,aAAatuH,GAAG,IAAIsK,EAAE,QAAQA,EAAEroB,KAAKsmI,iBAAY,IAASj+G,GAAGA,EAAEknB,UAAUxxB,GAAG/d,KAAK8pI,OAAO7pH,QAASlC,GAAGA,EAAEiqH,oBAAqB,CAACiE,YAAY,IAAIluH,EAAEsK,EAAE,OAAO,QAAQA,EAAE,QAAQtK,EAAE/d,KAAKsmI,iBAAY,IAASvoH,OAAE,EAAOA,EAAEkuH,mBAAc,IAAS5jH,GAAGA,CAAC,CAACk/G,WAAWxpH,GAAG,IAAIsK,EAAE,QAAQA,EAAEroB,KAAKsmI,iBAAY,IAASj+G,GAAGA,EAAEk/G,WAAWxpH,GAAGA,GAAG/d,KAAKk/G,SAAS,CAACA,UAAU,IAAInhG,EAAE,QAAQA,EAAE/d,KAAKiqI,iCAA4B,IAASlsH,GAAGA,EAAEmhG,SAAS,CAACotB,qCAAqC,IAAIvuH,EAAE,MAAMsK,EAAE,IAAI/K,MAAM,UAAUyC,KAAK/f,KAAK+pI,aAAa,UAAU3oH,KAAKphB,KAAK8pI,OAAOt7F,UAAU,QAAQzwB,EAAEqD,EAAEqf,eAAU,IAAS1iB,OAAE,EAAOA,EAAEgQ,QAAQhO,EAAE1H,UAAU0V,MAAM1F,EAAEpK,KAAKmD,EAAE0lH,4BAA4B,OAAOz+G,CAAC,CAACkkH,uBAAuBxuH,GAAG,IAAIsK,EAAEroB,KAAK8pI,OAAO7pH,QAASlC,GAAGA,EAAEupH,WAAU,IAAM,MAAMvpH,IAAI,QAAQsK,EAAEroB,KAAK8pI,OAAOhnI,IAAIib,UAAK,IAASsK,GAAGA,EAAEi/G,WAAU,GAAI,CAACxkE,OAAOz6C,EAAEtI,GAAG,IAAIqB,EAAE7c,EAAE,SAAOwZ,MAAE/d,UAAK,OAAO,EAAQ,YAAYA,KAAK+pI,aAAmB1hH,GAAI,GAAG,IAAItK,GAAE,EAAG,UAAUgC,EAAExb,MAAKvE,KAAK8pI,OAAO7wE,UAAU,CAAC10D,GAAEk8B,UAAU1iB,GAAE,GAAI,IAAIN,IAAE,EAAG,UAAUM,MAAWsK,GAAI,GAAG,GAAGtK,GAAE4jB,SAASrpB,WAAWyH,GAAGhC,GAAE1F,UAAU0V,QAAQ,QAAQ3M,EAAE7c,GAAEk8B,eAAU,IAASrf,OAAE,EAAOA,EAAE2M,MAAM,CAACtQ,IAAE,EAAG,KAAK,CAACA,WAAUlZ,GAAEu+D,OAAO,MAAM,CAAC,GAAG,MAAMz6C,GAAG,IAAIA,EAAE3S,OAAO,YAAYqI,UAAU/d,KAAKwsI,oBAAmB,EAAGzsH,KAAK,MAAMtC,EAAE,IAAIH,MAAM,UAAUS,KAAKsK,EAAE,CAAC,MAAMA,GAAEroB,KAAK8pI,OAAOhnI,IAAIib,EAAE4jB,SAASrpB,UAAU+P,IAAGtK,EAAE1F,UAAU0V,QAAQ,QAAQxpB,EAAE8jB,GAAEoY,eAAU,IAASl8B,OAAE,EAAOA,EAAEwpB,OAAOtQ,EAAEQ,KAAKoK,GAAEy6C,OAAO/kD,EAAE1F,WAAW,OAAOV,QAAQyE,IAAIqB,SAASzd,KAAKwsI,oBAAmB,EAAGzsH,EAAE,EAAG,CAAC0sH,gBAAgB1uH,GAAG,IAAI/d,KAAK6mI,SAAS,OAAO7mI,KAAKgqI,QAAQjsH,EAAE,IAAIsK,EAAEroB,KAAK6mI,SAAS6F,8BAA8B3sH,EAAEhC,EAAE8oH,SAAS9oH,EAAE8oH,SAAS6F,iCAA4B,EAAQ3uH,IAAIA,EAAExX,KAAKpD,SAAS,mBAAoBklB,EAAmF,IAAIjH,EAAhCphB,KAAK6mI,SAASvuH,SAAS1F,KAAhDmN,EAAE08B,IAAI7pC,EAAEmN,EAAEy8B,IAAI5pC,GAAG,GAApCyV,EAAEo0B,IAAI7pC,EAAEyV,EAAEm0B,IAAI5pC,GAA0B,EAAE,GAAsCyV,EAAEroB,KAAK6mI,SAAS6F,8BAA8B3sH,EAAEhC,EAAE8oH,SAAS9oH,EAAE8oH,SAAS6F,iCAA4B,EAAQ3uH,IAAIA,EAAExX,KAAKpD,SAAS,mBAA2B,CAACq5C,IAAI,IAAIurB,MAAG3mD,EAAEiH,GAAGm0B,IAAI5pC,GAAzB,GAA6BwO,EAAEo7B,IAAIh6B,EAAEpB,EAAEo7B,IAAI0tB,GAAGztB,IAAI,IAAIsrB,KAAE3mD,EAAEq7B,IAAI7pC,GAA9D,GAAkEwO,EAAEq7B,IAAIj6B,EAAEpB,EAAEq7B,IAAIytB,IAAK,CAAC,MAAMnsD,EAAE/d,KAAKmnI,WAAW7oB,MAAM8rB,aAAa,KAAKrsH,GAAGA,aAAa+d,MAAG,OAAO,MAAM1a,EAAErD,EAAE3a,MAAM,aAAa,GAAGge,EAAEugB,UAAUvgB,EAAEugB,oBAAoBnf,IAAE,CAAC,MAAMzE,GAAEqD,EAAEugB,SAASv+B,QAAQ2a,GAAE4uH,UAAU,IAAI1jE,KAAElrD,GAAE6uH,cAAcxrH,EAAEyrH,IAAI9uH,GAAE6uH,aAAaxrH,EAAE0rH,SAAS,IAAIniE,IAAE,EAAE,EAAE,EAAE,GAAGvpD,EAAEugB,SAAS5jB,EAAC,CAAC/d,KAAKmnI,WAAW4F,qBAAqB3rH,GAAG,MAAM7c,GAAEvE,KAAKqqI,oBAAoBlI,SAAS/gH,EAAE4rH,qBAAoB,IAAKvvH,GAAEsC,EAAEy8B,IAAIhE,IAAIz4B,EAAE08B,IAAIulF,SAASjiH,EAAEy8B,KAAK0qF,iBAAiB,GAAG,EAAE,IAAIt4H,GAAEyZ,EAAEm0B,IAAIhE,IAAInwB,EAAEo0B,IAAIulF,SAAS35G,EAAEm0B,KAAK0qF,iBAAiB,GAAG,EAAE,IAAIlnH,GAAE+nD,KAAEklE,QAAQr+H,GAAEo5D,KAAEklE,WAAW3oI,GAAE6c,EAAE0rH,UAAUhlE,GAAEC,KAAEklE,QAAQxvH,GAAEuqD,KAAEklE,WAAW3oI,GAAE6c,EAAE0rH,UAAUl6H,EAAEoN,GAAEpN,EAAE5S,KAAKiqI,0BAA0B,IAAIngE,GAAE/rD,EAAE+pD,IAAG1mD,EAAEqgC,SAAS,CAAC,CAAC+qF,mBAAmBnkH,EAAEtI,GAAG,SAAOhC,MAAE/d,UAAK,OAAO,EAAQ,YAAYA,KAAKisI,aAAa5jH,IAAIroB,KAAKisI,cAAc5jH,IAAIroB,KAAKunI,WAAWl/G,GAAGtI,GAAGA,UAAU/f,KAAKmtI,0BAA0B9kH,GAAG,EAAG,CAAC+kH,oCAAoCrvH,GAAG,UAAUsK,EAAEtI,KAAK/f,KAAK8pI,OAAO7wE,UAAU,GAAGl5C,EAAE0nH,eAAe1pH,GAAG,OAAOsK,EAAE,OAAO,IAAI,CAAC8kH,0BAA0B9kH,GAAG,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,YAAY,MAAM+d,EAAE,IAAImqD,KAAE,uBAAuB,eAAe,EAAEA,KAAEmlE,oBAAoBnlE,KAAEolE,4BAA4EvvH,EAAEwvH,QAAhD,CAAC,CAACC,MAAM,EAAEj7H,MAAM8V,EAAE,EAAE,GAAG,CAACmlH,MAAM,EAAEj7H,MAAM8V,EAAE,EAAE,KAAiBtK,EAAE0vH,kBAAkB,IAAI7jE,KAAE,GAAG,EAAE,GAAG,IAAI5pE,KAAKmnI,WAAWuG,aAAaC,qBAAoB,QAAW3tI,KAAKmnI,WAAW7oB,MAAMsvB,qBAAqB5tI,KAAKiqI,0BAA0B,CAAClsH,GAAG,EAAE,GAAE,EAAG,mBAAoB,KAAK/d,KAAKmnI,WAAWuG,aAAaC,qBAAoB,IAAcE,WAAW,EAAG,CAACrD,yBAAyB,IAAIzsH,EAAE/d,KAAKkqI,kBAAkBlqI,KAAKkqI,gBAAgB4D,sBAAqB,GAAI9tI,KAAKkqI,gBAAgBlqI,KAAKmnI,WAAW4G,mBAAmBv1F,IAAK,KAAKx4C,KAAKisI,cAAcjsI,KAAKgqI,SAAShqI,KAAKysI,gBAAgBzsI,KAAKgqI,SAAShqI,KAAKiqI,2BAA2BjqI,KAAKiqI,0BAA0B/qB,UAAQ,GAAM,QAAQnhG,EAAE/d,KAAKsmI,iBAAY,IAASvoH,GAAGA,EAAEiwH,oBAAoBC,QAAS,KAAKjuI,KAAKkqI,kBAAkBlqI,KAAKkqI,gBAAgB4D,sBAAqB,IAAM,GFA5uf,SAAU/vH,GAAGA,EAAEA,EAAEmwH,UAAU,GAAG,YAAYnwH,EAAEA,EAAEowH,QAAQ,GAAG,UAAUpwH,EAAEA,EAAEqwH,WAAW,GAAG,aAAarwH,EAAEA,EAAEswH,WAAW,GAAG,aAAatwH,EAAEA,EAAEuwH,aAAa,GAAG,eAAevwH,EAAEA,EAAEwwH,YAAY,GAAG,cAAcxwH,EAAEA,EAAEywH,YAAY,GAAG,cAAczwH,EAAEA,EAAE0wH,SAAS,GAAG,UAAU,CAAhQ,CAAkQlpG,KAAIA,GAAE,CAAC,IAAI,MAAM+jC,GAAEzpE,YAAYke,EAAEsK,EAAE5K,EAAE7O,GAAG5O,KAAK0uI,qBAAqB,EAAE1uI,KAAKmnI,WAAWppH,EAAE/d,KAAK2uI,iBAAiBtmH,EAAEjlB,QAAQpD,KAAK4uI,cAAcvmH,EAAEjlB,QAAQpD,KAAK6uI,cAAcpxH,EAAEra,QAAQpD,KAAK8uI,UAAUlgI,CAAC,CAAC,uBAAImgI,CAAoBhxH,GAAG/d,KAAK2uI,iBAAiBK,YAAYhvI,KAAK4uI,cAAcI,YAAYjxH,EAAE/d,KAAK6uI,cAAcG,aAAa,EAAEjxH,GAAG/d,KAAK2uI,iBAAiBM,aAAajvI,KAAK4uI,cAAcK,aAAalxH,EAAE/d,KAAK6uI,cAAcI,cAAc,EAAElxH,GAAG/d,KAAK2uI,iBAAiBO,UAAUlvI,KAAK4uI,cAAcM,UAAUnxH,EAAE/d,KAAK6uI,cAAcK,WAAW,EAAEnxH,GAAG/d,KAAK0uI,qBAAqB3wH,EAAE/d,KAAK8uI,UAAU9uI,KAAK2uI,iBAAiB,CAAC,uBAAII,GAAsB,OAAO/uI,KAAK0uI,oBAAoB,CAACS,UAAU,SAAOpxH,MAAE/d,UAAK,OAAO,EAAQ,YAAY,OAAO,IAAI2X,QAASoG,IAAI,MAAMsK,EAAE9K,KAAKi/B,IAAI,GAAG,oBAAO/+B,EAAE,IAAIsqD,KAAE,wBAAwB,sBAAsB,EAAEA,KAAEslE,oBAAoBtlE,KAAEulE,4BAAoE7vH,EAAE8vH,QAAxC,CAAC,CAACC,MAAM,EAAEj7H,MAAM,GAAG,CAACi7H,MAAM,EAAEj7H,MAAM,KAAiB,MAAMyN,EAAE,IAAIgoD,KAAE,GAAG,EAAE,GAAG,GAAGvqD,EAAEgwH,kBAAkBztH,GAAGhgB,KAAKmnI,WAAWuG,aAAaC,qBAAoB,EAAG3tI,KAAKmnI,WAAW7oB,MAAMsvB,qBAAqB5tI,KAAK,CAACyd,GAAG,EAAE,GAAE,EAAG4K,EAAG,KAAKroB,KAAKmnI,WAAWuG,aAAaC,qBAAoB,EAAG5vH,GAAE,EAAG,EAAI,EAAG,EAAE,MAAMusD,WAAU7sD,KAAE5d,YAAYke,EAAEsK,GAAGxkB,MAAMka,EAAEsK,GAAGroB,KAAKovI,qBAAqB,KAAKpvI,KAAKqvI,uBAAuB,KAAKrvI,KAAKsvI,oBAAoB,KAAKtvI,KAAKuvI,qBAAqB,KAAKvvI,KAAKwvI,6BAA6B,GAAGxvI,KAAKyvI,6BAA6B,KAAKzvI,KAAK0vI,mCAAmC,KAAK1vI,KAAK2vI,uCAAuC,IAAIxyH,IAAInd,KAAK4vI,wCAAuC,EAAG5vI,KAAK6vI,qCAAgC,EAAO7vI,KAAK8vI,uBAAuB,GAAG9vI,KAAK+vI,qCAAoC,EAAG/vI,KAAKgwI,gBAAgB,KAAKhwI,KAAKiwI,8BAA8B,KAAKjwI,KAAKkwI,+BAA+B,KAAKlwI,KAAKmwI,uCAAuC,KAAKnwI,KAAKowI,uCAAsC,EAAGpwI,KAAKkqI,gBAAgB,KAAKlqI,KAAKqwI,eAAc,EAAGrwI,KAAKswI,gBAAgB/6H,KAAEgsH,OAAOvhI,KAAKwqI,yBAAyBxqI,KAAKuwI,iCAAiCvwI,KAAKwwI,kCAAkC,CAAChG,yBAAyBxqI,KAAKkqI,gBAAgBlqI,KAAKmnI,WAAW4G,mBAAmBv1F,IAAK,KAAKx4C,KAAKywI,uBAAsB,EAAI,CAACF,iCAAiCvwI,KAAKkqI,gBAAgBlqI,KAAKmnI,WAAWuJ,mBAAmBC,2BAA2Bn4F,IAAK,KAAK,IAAIz6B,EAAEsK,EAAE,QAAQtK,EAAE/d,KAAK4wI,iBAAY,IAAS7yH,GAAGA,EAAE8yH,QAAQ,QAAQxoH,EAAEroB,KAAK4wI,iBAAY,IAASvoH,GAAGA,EAAEhV,QAAQrT,KAAK+gI,UAAU+P,wBAAuB,EAAG9wI,KAAK+gI,UAAU2P,mBAAmBK,2BAA0B,EAAI,CAACP,mCAAmC,MAAMzyH,EAAEA,KAAKlL,QAAQuZ,IAAI,yBAAyB,QAAQrO,EAAE/d,KAAKmnI,WAAW7oB,MAAM0yB,eAAet7H,OAAO,EAAEqI,GAAG,EAAEA,IAAI,CAAC,MAAMsK,EAAEroB,KAAKmnI,WAAW7oB,MAAM0yB,eAAejzH,GAAG,IAAIlL,QAAQuZ,IAAI,iDAAiD/D,EAAE9hB,MAAM8hB,EAAEo5B,SAAQ,GAAG,EAAG,OAAO1jC,GAAGlL,QAAQpL,MAAMsW,GAAG/d,KAAKmnI,WAAW7oB,MAAM2yB,oBAAoB5oH,EAAE,CAAC,CAAC,QAAQtK,EAAE/d,KAAKmnI,WAAW7oB,MAAM4yB,OAAOx7H,OAAO,EAAEqI,GAAG,EAAEA,IAAI,CAAC,MAAMsK,EAAEroB,KAAKmnI,WAAW7oB,MAAM4yB,OAAOnzH,GAAG,IAAIlL,QAAQuZ,IAAI,uCAAuC/D,EAAE9hB,MAAM8hB,EAAEo5B,SAAQ,GAAG,EAAG,OAAO1jC,GAAGlL,QAAQpL,MAAMsW,GAAG/d,KAAKmnI,WAAW7oB,MAAM6yB,WAAW9oH,EAAE,CAAC,CAAC,QAAQtK,EAAE/d,KAAKmnI,WAAW7oB,MAAM8yB,UAAU17H,OAAO,EAAEqI,GAAG,EAAEA,IAAI,CAAC,MAAMsK,EAAEroB,KAAKmnI,WAAW7oB,MAAM8yB,UAAUrzH,GAAG,IAAIlL,QAAQuZ,IAAI,2CAA2C/D,EAAE9hB,MAAM8hB,EAAEo5B,SAAQ,GAAG,EAAG,OAAO1jC,GAAGlL,QAAQpL,MAAMsW,GAAG/d,KAAKmnI,WAAW7oB,MAAM+yB,eAAehpH,EAAE,CAAC,CAAC,QAAQtK,EAAE/d,KAAKmnI,WAAW7oB,MAAMgzB,OAAO57H,OAAO,EAAEqI,GAAG,EAAEA,IAAI,CAAC,MAAMsK,EAAEroB,KAAKmnI,WAAW7oB,MAAMgzB,OAAOvzH,GAAG,IAAIlL,QAAQuZ,IAAI,wCAAwC/D,EAAE9hB,MAAM8hB,EAAEo5B,SAAQ,GAAG,EAAG,OAAO1jC,GAAGlL,QAAQpL,MAAMsW,GAAG/d,KAAKmnI,WAAW7oB,MAAMizB,YAAYlpH,EAAE,CAAC,CAAC,QAAQtK,EAAE/d,KAAKmnI,WAAW7oB,MAAMkzB,UAAU97H,OAAO,EAAEqI,GAAG,EAAEA,IAAI,CAAC,MAAMsK,EAAEroB,KAAKmnI,WAAW7oB,MAAMkzB,UAAUzzH,GAAG,IAAIlL,QAAQuZ,IAAI,2CAA2C/D,EAAE9hB,MAAM8hB,EAAEo5B,SAAS,OAAO1jC,GAAGlL,QAAQpL,MAAMsW,GAAG/d,KAAKmnI,WAAW7oB,MAAMmzB,eAAeppH,EAAE,CAAC,CAAC,QAAQtK,EAAE/d,KAAKmnI,WAAW7oB,MAAMozB,gBAAgBh8H,OAAO,EAAEqI,GAAG,EAAEA,IAAI,CAAC,MAAMsK,EAAEroB,KAAKmnI,WAAW7oB,MAAMozB,gBAAgB3zH,GAAG,IAAIlL,QAAQuZ,IAAI,kDAAkD/D,EAAE9hB,MAAM8hB,EAAEo5B,SAAS,OAAO1jC,GAAGlL,QAAQpL,MAAMsW,GAAG/d,KAAKmnI,WAAW7oB,MAAMqzB,qBAAqBtpH,EAAE,CAAC,CAAC,QAAQtK,EAAE/d,KAAKmnI,WAAW7oB,MAAMszB,SAASl8H,OAAO,EAAEqI,GAAG,EAAEA,IAAI,CAAC,MAAMsK,EAAEroB,KAAKmnI,WAAW7oB,MAAMszB,SAAS7zH,GAAG,GAAG,gCAAgCsK,EAAE9hB,KAAK,IAAIsM,QAAQuZ,IAAI,0CAA0C/D,EAAE9hB,MAAM8hB,EAAEo5B,SAAS,OAAO1jC,GAAGlL,QAAQpL,MAAMsW,GAAG/d,KAAKmnI,WAAW7oB,MAAMuzB,cAAcxpH,EAAE,CAAC,GAAGroB,KAAKmnI,WAAWuD,OAAOoH,wBAAwBt5F,IAAK,KAAK,IAAInwB,EAAE5K,EAAE5K,QAAQ3H,KAAK,2CAA2C,QAAQuS,EAAE,QAAQ4K,EAAEroB,KAAKgwI,uBAAkB,IAAS3nH,OAAE,EAAOA,EAAEw+G,gBAAW,IAASppH,GAAGA,EAAEgkC,SAAQ,GAAG,GAAIzhD,KAAKgwI,gBAAgB,KAAK,IAAIphI,GAAE,EAAG,MAAMoR,EAAEA,KAAKnN,QAAQuZ,IAAK,6CAA4Cxd,KAAKA,IAAIA,GAAE,EAAG5O,KAAK+xI,UAAU1xI,KAAM,KAAKL,KAAKmnI,WAAW6K,UAAS,EAAGn/H,QAAQuZ,IAAI,mCAAmCrO,IAAInP,GAAE,IAAMrG,MAAO8f,IAAIxV,QAAQuZ,IAAI,8CAA8C/D,GAAG,IAAIroB,KAAKmnI,WAAW7oB,MAAM1sE,QAAQ,OAAO7zB,GAAGlL,QAAQpL,MAAMsW,EAAE,CAACA,IAAInP,GAAE,EAAG+mD,WAAW31C,EAAE,IAAG,GAAG,EAAIA,GAAE,GAAKhgB,KAAKmnI,WAAWuD,OAAOuH,4BAA4Bz5F,IAAK,KAAK3lC,QAAQ3H,KAAK,gDAAgD6S,IAAI/d,KAAKmnI,WAAW6K,UAAS,EAAGhyI,KAAKkyI,yBAAwB,EAAGlyI,KAAKmyI,0BAAyB,EAAGnyI,KAAKoyI,6BAA4B,EAAGpyI,KAAKqyI,2BAA0B,EAAGryI,KAAKsyI,8BAA6B,EAAG,IAAIjqH,GAAE,EAAG,MAAM5K,EAAEA,KAAK5K,QAAQuZ,IAAK,iDAAgD/D,KAAKA,IAAIA,GAAE,EAAGroB,KAAKk/G,UAAU7+G,KAAM,KAAKwS,QAAQuZ,IAAI,uCAAuC/D,GAAE,IAAM9f,MAAOwV,IAAIlL,QAAQuZ,IAAI,kDAAkDrO,GAAG,IAAI/d,KAAKmnI,WAAW7oB,MAAM1sE,QAAQ,OAAO7zB,GAAGlL,QAAQpL,MAAMsW,EAAE,CAACsK,GAAE,EAAGstC,WAAWl4C,EAAE,IAAG,GAAG,EAAIzd,KAAK+xI,UAAU1kD,QAAS,KAAK5vE,GAAE,EAAG,EAAI,CAACgzH,wBAAwB,SAAO1yH,MAAE/d,UAAK,OAAO,EAAQ,YAAY,MAAMqoB,EAAEroB,KAAK8vI,uBAAuBn4H,QAAQyE,IAAIiM,GAAGhoB,KAAM,OAAI0d,MAAE/d,UAAK,OAAO,EAAQ,YAAY,GAAGA,KAAK6vI,iCAAiCxnH,IAAIroB,KAAK8vI,uBAAuB,CAAC9vI,KAAK8vI,uBAAuB,GAAG,MAAM/xH,QAAQ/d,KAAKuyI,iCAAiCvyI,KAAK6vI,gCAAgC9xH,EAAE,CAAC,GAAK,EAAG,CAACy0H,gBAAgBnqH,GAAG,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,YAAY,OAAO,IAAIqqE,KAAEhiD,EAAE,EAAG,CAACoqH,gBAAgBpqH,EAAE5K,GAAG,SAAOM,MAAE/d,UAAK,OAAO,EAAQ,YAAY,MAAM+d,QAAQ/d,KAAKozD,cAAc/qC,GAAG,OAAO,IAAIzV,MAAEmL,EAAEN,EAAE,EAAG,CAAC,kCAAIi1H,CAA+B30H,GAAG/d,KAAK6vI,gCAAgC9xH,CAAC,CAAC,iBAAI40H,CAAc50H,GAAG,IAAIA,EAAE,OAAO/d,KAAKmnI,WAAW7oB,MAAMs0B,mBAAc,EAAO5yI,KAAKmnI,WAAW7oB,MAAMu0B,mBAAc,OAAY7yI,KAAKmnI,WAAW7oB,MAAMw0B,mBAAc,GAAQ9yI,KAAKmnI,WAAW7oB,MAAMs0B,cAAc70H,IAAI/d,KAAKqwI,eAAc,EAAGrwI,KAAKswI,gBAAgB,IAAI/6H,KAAEwI,EAAEg1H,QAAQh1H,EAAEi1H,QAAO,EAAGhzI,KAAKmnI,WAAW7oB,MAAMu0B,cAAc90H,IAAI/d,KAAKqwI,eAAerwI,KAAKswI,gBAAgBtO,SAAS,IAAIzsH,KAAEwI,EAAEg1H,QAAQh1H,EAAEi1H,UAAUt9H,SAAS,KAAK1V,KAAKqwI,eAAc,IAAKrwI,KAAKmnI,WAAW7oB,MAAMw0B,cAAc,CAACzqH,EAAE5K,KAAK,IAAI7O,EAAE,GAAG5O,KAAKqwI,cAAc,CAAC,GAAG5yH,EAAEw1H,YAAYx1H,EAAEy1H,IAAI,CAAC,MAAM7qH,EAAEroB,KAAKmnI,WAAW7oB,MAAM60B,iBAAiB11H,EAAEy1H,KAAK,GAAG7qH,EAAE,CAAC,IAAI5K,EAAE,KAAK7O,IAAE,EAAG,UAAUmP,MAAKsK,EAAE,CAAmC,IAA9BtK,GAAEq1H,MAAMr1H,GAAEk1H,YAAuBl1H,GAAEk1H,WAAWI,kBAAkBh+F,IAAEi+F,0BAA0B,SAAS,MAAMjrH,GAAEtK,GAAEk1H,WAAWtxG,SAAStZ,GAAEzZ,KAAI6O,EAAEM,GAAEnP,GAAEyZ,GAAE,CAAC,GAAG5K,GAAGA,EAAEw1H,WAAW,CAAC,GAAGjzI,KAAKuvI,sBAAsB9xH,EAAEw1H,WAAW1sI,KAAKpD,SAASnD,KAAKuvI,qBAAqBxhH,MAAM,YAAYhQ,EAAE,CAAC3L,KAAK,WAAW,QAAQiW,GAAE,EAAEA,GAAEroB,KAAKwvI,6BAA6B95H,OAAO2S,KAAI,GAAG5K,EAAEw1H,WAAW1sI,KAAKpD,SAASnD,KAAKwvI,6BAA6BnnH,IAAG0F,MAAM,YAAYhQ,EAAE,CAAC3L,KAAK,UAAUmhI,aAAalrH,GAAEouC,UAAUz2D,KAAKwvI,6BAA6BnnH,IAAGmrH,gBAAgBzlH,MAAM,CAAC,CAAC,MAAM/N,EAAE,QAAQpR,EAAE5O,KAAKgwI,uBAAkB,IAASphI,OAAE,EAAOA,EAAEw+H,oCAAoC3vH,EAAEw1H,YAAY,GAAGjzH,EAAE,YAAYjC,EAAE,CAAC3L,KAAK,YAAYof,KAAKxR,GAAG,CAACjC,EAAE,CAAC3L,KAAK,cAAc,EAAE,CAAC8sG,UAAU,SAAOnhG,MAAE/d,UAAK,OAAO,EAAQ,YAAY,OAAOA,KAAKyzI,yCAAyCzzI,KAAK0zI,oBAAoBziI,SAAU,OAAI8M,MAAE/d,UAAK,OAAO,EAAQ,YAAYA,KAAK8vI,uBAAuB,GAAG9vI,KAAKmiC,qBAAqBtnB,OAAI7a,KAAKqyI,0BAA0BryI,KAAKqyI,2BAA2BryI,KAAKmiC,UAAUwxG,MAAM3zI,KAAKmiC,UAAUyxG,kBAAkB5zI,KAAKmnI,WAAW0M,eAAe7zI,KAAK8zI,WAAW9zI,KAAK2pB,KAAK,WAAW3pB,KAAKmnI,WAAWuG,aAAaC,qBAAoB,EAAG,MAAM5vH,EAAE/d,KAAK6vI,kCAAkC7vI,KAAKkyI,yBAAyBlyI,KAAKmyI,0BAA0BnyI,KAAKqyI,2BAA2BryI,KAAKsyI,8BAA8BtyI,KAAK+zI,sCAAsC/zI,KAAKg0I,oBAAoBh0I,KAAKi0I,qBAAqBj0I,KAAKk0I,uBAAuBl0I,KAAKm0I,2BAA2Bn0I,KAAKo0I,wBAAwBp0I,KAAKq0I,oBAAoBr0I,KAAKmnI,WAAWuG,aAAaC,qBAAoB,EAAG3tI,KAAK2pB,KAAK,UAAU5L,QAAQ/d,KAAKywI,wBAAwBzwI,KAAK8vI,uBAAuB,EAAE,GAAK,IAAI,EAAG,CAACuE,oBAAoB,IAAIhsH,EAAE,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,YAAYA,KAAKsyI,qCAAqC,QAAQjqH,EAAEroB,KAAKgwI,uBAAkB,IAAS3nH,OAAE,EAAOA,EAAEy6C,OAAO9iE,KAAK+pI,aAAc,KAAK/pI,KAAK6vI,iCAAiC7vI,KAAK6vI,gCAAgC,GAAE,GAAK7vI,KAAKsyI,8BAA6B,EAAG,EAAG,CAACgC,yBAAyBjsH,GAAG,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,kBAAkBA,KAAKu0I,kCAAkClsH,GAAE,EAAG,EAAG,CAACksH,kCAAkClsH,EAAE5K,GAAE,GAAI,IAAI7O,EAAE,SAAOmP,MAAE/d,UAAK,OAAO,EAAQ,kBAAkB,QAAQ4O,EAAE5O,KAAKgwI,uBAAkB,IAASphI,OAAE,EAAOA,EAAE49H,mBAAmBnkH,EAAG,KAAKroB,KAAK6vI,iCAAiC7vI,KAAK6vI,gCAAgC,GAAE,GAAKpyH,UAAUzd,KAAKywI,wBAAwB,EAAG,CAAC+D,2BAA2B,IAAIz2H,EAAEsK,EAAE5K,EAAE,OAAO,QAAQA,EAAE,QAAQ4K,EAAE,QAAQtK,EAAE/d,KAAKgwI,uBAAkB,IAASjyH,OAAE,EAAOA,EAAE8oH,gBAAW,IAASx+G,OAAE,EAAOA,EAAE4jH,mBAAc,IAASxuH,GAAGA,CAAC,CAACg3H,kCAAkC12H,GAAG,IAAIsK,EAAE,QAAQA,EAAEroB,KAAKgwI,uBAAkB,IAAS3nH,GAAGA,EAAEkkH,uBAAuBxuH,EAAE,CAAC22H,wBAAwBrsH,EAAE5K,GAAG,SAAOM,MAAE/d,UAAK,OAAO,EAAQ,YAAY,OAAOA,KAAK20I,4BAA4BtsH,EAAE5K,OAAE,EAAO,EAAG,CAACk3H,4BAA4BtsH,EAAE5K,EAAE7O,GAAG,SAAOmP,MAAE/d,UAAK,OAAO,EAAQ,YAAY,OAAOA,KAAKyzI,yCAAyCzzI,KAAK0zI,oBAAoBziI,SAAU,OAAI8M,MAAE/d,UAAK,OAAO,EAAQ,YAAY,IAAI+d,EAAEiC,EAAE,IAAIhgB,KAAKmiC,UAAU,MAAMniC,KAAK2pB,KAAK,QAAQ,IAAIrE,MAAM,4FAA4F,IAAItlB,KAAKwvI,6BAA6B,MAAMxvI,KAAK2pB,KAAK,QAAQ,IAAIrE,MAAM,iHAAiH,MAAM/gB,EAAEvE,KAAKwvI,6BAA6Bz2H,KAAMgF,IAAGA,GAAEy1H,gBAAgBzlH,OAAO1F,EAAE0F,MAAO,IAAIxpB,EAAE,MAAMvE,KAAK2pB,KAAK,QAAQ,IAAIrE,MAAM,sIAAsI,IAAI/gB,EAAEqwI,yBAAyB,MAAM50I,KAAK2pB,KAAK,QAAQ,IAAIrE,MAAM,wFAAwF,MAAMvF,EAAE/f,KAAKovI,qBAAqBpvI,KAAKovI,qBAAqBpvI,KAAKgqI,QAAQ,IAAIjqH,EAAE,MAAM/f,KAAK2pB,KAAK,QAAQ,IAAIrE,MAAM,2DAA2DtlB,KAAKmnI,WAAWuG,aAAaC,qBAAoB,EAAG,IAAIvsH,GAAE,IAAI0a,KAAEre,IAAI2D,GAAEjN,OAAOC,OAAOgN,GAAE3D,IAAI2D,GAAEyzH,cAActwI,EAAE6c,GAAEjB,OAAOJ,EAAEqB,GAAE0zH,aAAalmI,EAAE,MAAMk5D,SAAQ9nE,KAAK+0I,yBAAyB3zH,IAAG,aAAaphB,KAAKg1I,4BAA4B,QAAQj3H,EAAE/d,KAAKi1I,kBAAa,IAASl3H,GAAGA,EAAE8yH,QAAQ,QAAQ7wH,EAAEhgB,KAAKi1I,kBAAa,IAASj1H,GAAGA,EAAE3M,cAAcrT,KAAKk1I,2BAA2B3wI,EAAEujE,GAAErqD,GAAGzd,KAAKmnI,WAAWuG,aAAaC,qBAAoB,EAAG7lE,EAAC,GAAK,EAAG,CAACqtE,0CAA0C,OAAM,CAAE,CAACD,2BAA2B7sH,EAAE5K,EAAE7O,GAAG,SAAOmP,MAAE/d,UAAK,OAAO,EAAQ,YAAY,MAAM+d,EAAE,IAAIT,MAAM0C,EAAkBpR,GAAEwmI,kBAAmBxmI,EAAEwmI,kBAAkB,IAAIpyE,GAAEz+D,EAAEvE,KAAKmnI,WAAWnG,uBAAuBhhI,KAAKyvI,6BAA6B,IAAI1vH,IAAE,eAAe/f,KAAKmnI,WAAW7oB,OAAOt+G,KAAKyvI,6BAA6BpqG,OAAOhd,EAAEw+G,SAAS,UAAUx+G,MAAK5K,EAAE43H,eAAe,CAAC,MAAMzmI,GAAE6O,EAAE43H,eAAehtH,IAAGrI,GAAEpR,GAAE0mI,iBAAiBv1H,GAAE,IAAIzC,MAAM8D,GAAE,GAAGpB,GAAEtK,OAAOsK,GAAE,GAAG,GAAG,UAAUjC,MAAKqD,GAAErB,GAAE9B,KAAK,IAAIuE,MAAGzE,GAAE,GAAGA,GAAE,GAAGA,GAAE,KAAK,GAAG,GAAGqD,GAAE1L,OAAO,SAAS,MAAMoyD,GAAE,IAAIgC,EAAEl7D,GAAEuvH,YAAY91G,GAAEzZ,GAAEyvH,oBAAoBzvH,GAAE0vH,iBAAiB1vH,GAAE2vH,mBAAmB9vH,GAAEtG,SAASof,cAAc,OAAOvnB,KAAK2vI,uCAAuCzyH,IAAI4qD,GAAEr5D,IAAGlK,EAAE08H,aAAaz6G,YAAY/X,IAAGA,GAAE+Y,MAAMlP,SAAS,WAAWyF,EAAEE,KAAK,CAACs3H,UAAUztE,GAAE0tE,2BAA2Bz1H,GAAE01H,qBAAqB11H,GAAE21H,SAASjnI,IAAG,CAAC,MAAM2S,EAAEphB,KAAKmnI,WAAW7oB,MAAMomB,yBAAyBlsF,IAAK,KAAK,MAAMnwB,GAAEroB,KAAKmnI,WAAWwO,SAA8C,GAAGttH,cAAautH,mBAAnD51I,KAAKmnI,WAAW7oB,MAAM8rB,wBAA6DliE,IAAE,CAAC7/C,GAAEoS,MAAMl2B,EAAEsxI,YAAYxtH,GAAEqS,OAAOn2B,EAAEwxD,aAAa,MAAMt4C,GAAEzd,KAAK81I,6BAA6B/3H,GAAGiC,EAAEuiH,qBAAqBviI,KAAKyd,IAAG,MAAM7O,GAAEyZ,GAAEsS,WAAW,MAAM,GAAG/rB,cAAamnI,yBAAyB,CAAC,GAAGnnI,GAAEonI,UAAU,EAAE,EAAE3tH,GAAEoS,MAAMpS,GAAEqS,QAAQ16B,KAAK0vI,oCAAoCtuH,EAAE,OAAO,GAAGphB,KAAK4vI,wCAAwC5vH,EAAE2iH,qBAAqB,CAAC3iI,KAAK4vI,wCAAuC,EAAG,UAAUvnH,MAAKtK,EAAE,CAAC,MAAMA,GAAE/d,KAAK2vI,uCAAuC7sI,IAAIulB,GAAEktH,WAAW,GAAGx3H,GAAE,CAAC,MAAMN,GAAEM,GAAEojH,WAAW,UAAUpjH,MAAKN,GAAEM,GAAE26B,SAAS,MAAM9pC,GAAEoR,EAAE4+G,YAAY5+H,KAAKqoB,GAAEktH,WAAWx3H,GAAE8iD,OAAOjyD,GAAE,CAAC,CAAC,CAACoR,EAAE4iH,uBAAuB5iI,KAAKyd,GAAE7O,IAAG,UAAUyZ,MAAKtK,EAAE,CAAC,MAAMA,GAAEN,GAAE3a,IAAIulB,GAAEktH,WAAW,GAAGx3H,GAAE,CAAC,IAAIN,GAAE,EAAE,MAAM7O,GAAEoR,EAAE0iH,iCAAiC1iI,KAAKqoB,GAAEktH,WAAWhxI,GAAE,IAAIgR,KAAE,EAAE,GAAG,UAAU8S,MAAKtK,GAAE,CAAC,IAAIiC,GAAEvC,GAAE,GAAGuC,IAAGpR,GAAE,IAAIoR,GAAEjC,GAAErI,QAAQ,MAAMqK,GAAExC,KAAKk/B,IAAI,EAAE,EAAEl/B,KAAKkkH,IAAIzhH,GAAEpR,KAAIrK,GAAEqO,GAAGmN,GAAEsI,GAAEzV,EAAErO,GAAEie,GAAGzC,GAAEsI,GAAE7F,EAAE/E,IAAG,CAAC,MAAMsC,GAAEC,EAAEwiH,oBAAoBxiI,KAAKqoB,GAAEktH,WAAWn0H,GAAE,IAAI7L,KAAEhR,GAAEqO,EAAEmN,GAAEnN,EAAErO,GAAEie,EAAEzC,GAAEyC,GAAGxiB,KAAKi2I,qCAAqC70H,GAAEiH,IAAGA,GAAEqtH,SAASluH,MAAM0uH,KAAK90H,GAAExO,EAAE1J,WAAW,KAAKmf,GAAEqtH,SAASluH,MAAMK,IAAIzG,GAAEoB,EAAEtZ,WAAW,IAAI,CAAC,CAAC,CAAC,IAAKlJ,KAAK0vI,mCAAmCtuH,EAAEphB,KAAK4vI,wCAAuC,EAAG5vI,KAAK+vI,qCAAoC,CAAE,EAAG,CAACkG,qCAAqCl4H,EAAEsK,GAAG,MAAM5K,EAAEzd,KAAKmnI,WAAWwO,SAASE,YAAYjnI,EAAE5O,KAAKmnI,WAAWwO,SAAS5/E,aAAa/1C,EAAEhgB,KAAKmnI,WAAWgP,qBAAwCp2H,EAAEtC,GAAG,EAAEuC,EAAEo2H,aAAa,EAAEh1H,GAAExS,EAAEoR,EAAEkvH,UAAU,EAAEpnE,GAAEl5D,GAAG,EAAEoR,EAAEivH,cAAc,EAAElxH,EAAEnL,EAAE2K,KAAKk/B,IAAI1+B,EAAEnL,EAAnG6K,EAAEuC,EAAEq2H,WAAW,GAAyFt4H,EAAEyE,EAAEjF,KAAKk/B,IAAI1+B,EAAEyE,EAAEpB,IAAGrD,EAAEnL,EAAE2K,KAAKi/B,IAAIz+B,EAAEnL,EAAEmN,EAAEsI,EAAEqtH,SAAStU,aAAarjH,EAAEyE,EAAEjF,KAAKi/B,IAAIz+B,EAAEyE,EAAEslD,GAAEz/C,EAAEqtH,SAASrU,aAAa,CAACiV,wBAAwBv4H,GAAG,GAAGA,EAAErI,OAAO,EAAE,OAAO,IAAI8M,KAAE,EAAE,EAAE,GAAG,MAAM6F,EAAEtK,EAAE,GAAGN,EAAEM,EAAER,KAAK2sC,MAAM,EAAEnsC,EAAErI,OAAO,IAAI9G,EAAEmP,EAAER,KAAK2sC,MAAM,EAAEnsC,EAAErI,OAAO,IAAIsK,EAAEwC,KAAE+zH,MAAM94H,EAAEukH,SAAS35G,GAAGzZ,EAAEozH,SAAS35G,IAAI,OAAOrI,EAAE0tF,YAAY1tF,CAAC,CAACw2H,wBAAwBz4H,GAAG,MAAMsK,EAAE7F,KAAE++G,OAAO,UAAU9jH,KAAKM,EAAEsK,EAAEo6G,WAAWhlH,GAAG,OAAO4K,EAAEouH,cAAc,IAAIj0H,KAAEzE,EAAErI,OAAOqI,EAAErI,OAAOqI,EAAErI,SAAS2S,CAAC,CAACquH,8BAA8B34H,GAAG,IAAIsK,EAAE5K,EAAE,GAAGM,EAAE03H,qBAAqB13H,EAAEy3H,2BAA2Bz3H,EAAEw3H,UAAUlX,qBAAqB1zD,GAAEw5D,cAAc,OAAO,MAAMv1H,EAAE5O,KAAKs2I,wBAAwBv4H,EAAEy3H,4BAA4Bx1H,EAAEhgB,KAAKw2I,wBAAwBz4H,EAAEy3H,4BAA4BjxI,EAAE,QAAQ8jB,EAAEroB,KAAKyvI,oCAA+B,IAASpnH,OAAE,EAAOA,EAAEsuH,iBAAiB,IAAIpyI,EAAE,OAAO,MAAMwb,EAAEyC,KAAEo0H,gBAAgBhoI,EAAErK,GAAG6c,GAAEoB,KAAEwkH,qBAAqBhnH,EAAEzb,GAAGujE,GAAE,QAAQrqD,EAAEzd,KAAKmnI,WAAW7oB,MAAM8rB,oBAAe,IAAS3sH,OAAE,EAAOA,EAAEnF,SAAS,IAAIwvD,GAAE,OAAO,MAAMr5D,GAAE2S,GAAE4gH,SAASl6D,IAAGr5D,GAAEi/F,YAAY,MAAM3pE,GAAEvhB,KAAE0/G,IAAIzzH,GAAEsR,GAAGgoD,GAAEvlD,KAAE+zH,MAAM9nI,GAAEsR,GAAGpb,GAAE4Y,KAAKs5H,MAAM9uE,GAAEryD,SAASquB,IAAGikC,GAAE,IAAIrjE,GAAE4Y,KAAKgrH,GAAG,GAAGhrH,KAAKkkH,IAAIlkH,KAAKkkH,IAAIz5D,IAAG,IAAI,EAAE,OAAO,MAAMlsC,IAAGn3B,GAAE,EAAE,IAAG,IAAK4Y,KAAKgrH,GAAG,IAAI5jI,GAAEgD,GAAEpD,EAAEnB,QAAQuE,GAAEmvI,SAAS,MAAMzhG,GAAE7yB,KAAEo0H,gBAAgBnoI,GAAE9G,IAAG2kB,GAAE9J,KAAE+zH,MAAMlhG,GAAEzmC,GAAG0d,GAAEohF,YAAY,MAAM9kC,GAAEmC,KAAEgsE,aAAazqH,GAAEwP,IAAGjhB,GAAEkwD,KAAEq7D,aAAapmH,EAAEpN,GAAGoN,EAAEwC,GAAGxC,EAAEkqD,GAAG30D,GAAEw1D,KAAEq7D,YAAYpmH,EAAEpN,EAAEoN,EAAEwC,EAAExC,EAAEkqD,GAAGK,GAAE1vD,GAAEsnH,SAASv5D,IAAGu5D,SAAS5sH,IAAG2yD,GAAE,IAAI5qD,MAAM,UAAU+K,MAAKtK,EAAEy3H,2BAA2BttE,GAAEjqD,KAAKuE,KAAEwkH,qBAAqB3+G,GAAEkiD,KAAIxsD,EAAE03H,qBAAqBvtE,EAAC,CAAC4tE,6BAA6B/3H,GAAG,IAAIsK,EAAE5K,EAAE,MAAM7O,EAAE,IAAIuO,IAAI6C,EAAEhgB,KAAKmnI,WAAWnG,uBAAuBz8H,EAAE,QAAQkZ,EAAE,QAAQ4K,EAAEroB,KAAKmnI,WAAW7oB,MAAM8rB,oBAAe,IAAS/hH,OAAE,EAAOA,EAAEykH,SAAS1pI,eAAU,IAASqa,EAAEA,EAAE,IAAIurD,IAAE,EAAE,EAAE,EAAE,GAAGzkE,EAAEie,EAAE,EAAEje,EAAEm2B,OAAOn2B,EAAEie,EAAE,MAAMzC,EAAExb,EAAEyyI,SAASh3H,EAAEihH,aAAa4U,YAAY71H,EAAEihH,aAAalrE,cAAc,GAAG/1D,KAAK+vI,oCAAoC,CAAC,UAAU1nH,MAAKtK,EAAE/d,KAAK02I,8BAA8BruH,IAAGroB,KAAK+vI,qCAAoC,CAAE,CAAC,UAAU1nH,MAAKtK,EAAE,CAAC,MAAMA,GAAE,IAAIT,MAAM,UAAUG,MAAK4K,GAAEotH,qBAAqB,CAAC,MAAMptH,GAAEroB,KAAKi3I,oCAAoCl3H,EAAEtC,IAAGM,GAAEE,KAAKoK,GAAE,CAACzZ,EAAEsO,IAAImL,GAAEktH,UAAUx3H,GAAE,CAAC,OAAOnP,CAAC,CAACqoI,oCAAoCl5H,EAAEsK,GAAG,IAAI5K,EAAE7O,EAAE,OAAO4T,KAAEyqH,QAAQ5kH,EAAE,QAAQzZ,EAAE,QAAQ6O,EAAEzd,KAAKyvI,oCAA+B,IAAShyH,OAAE,EAAOA,EAAEk5H,wBAAmB,IAAS/nI,EAAEA,EAAEm8D,KAAEmiE,WAAWltI,KAAKmnI,WAAW7oB,MAAM44B,qBAAqBn5H,EAAE,CAACo5H,gCAAgCp5H,EAAEsK,EAAE5K,GAAG,MAAM7O,EAAE,IAAIwS,IAAErD,EAAE/d,KAAKmnI,WAAW7oB,OAAO,OAAO1vG,EAAEwoI,aAAatvE,KAAEuvE,QAAQzoI,EAAE0oI,cAAcxvE,KAAEuvE,QAAQzoI,EAAE+4H,cAAc7/D,KAAE8/D,QAAQh5H,EAAE2oI,iBAAgB,EAAG3oI,EAAE4oI,iBAAgB,EAAG5oI,CAAC,CAAC6oI,2BAA2B,SAAO15H,MAAE/d,UAAK,OAAO,EAAQ,YAAY,OAAOA,KAAKyzI,yCAAyCzzI,KAAK0zI,oBAAoBziI,SAAU,OAAI8M,MAAE/d,UAAK,OAAO,EAAQ,YAAY,IAAI+d,EAAE/d,KAAKmnI,WAAWuG,aAAaC,qBAAoB,QAAS3tI,KAAKg1I,mCAAmCh1I,KAAK03I,8BAA8B,QAAQ35H,EAAE/d,KAAKi1I,kBAAa,IAASl3H,GAAGA,EAAE45H,QAAQ33I,KAAKmnI,WAAWuG,aAAaC,qBAAoB,CAAE,GAAK,EAAG,CAACoE,UAAU,SAAOh0H,MAAE/d,UAAK,OAAO,EAAQ,YAAY,OAAOA,KAAKyzI,yCAAyCzzI,KAAK0zI,oBAAoBziI,SAAU,OAAI8M,MAAE/d,UAAK,OAAO,EAAQ,YAAY,IAAI+d,EAAE/d,KAAKmnI,WAAWuG,aAAaC,qBAAoB,QAAS3tI,KAAKg1I,kCAAkCh1I,KAAK43I,kCAAkC53I,KAAK63I,oCAAoC73I,KAAK83I,6BAA6B93I,KAAK+3I,2BAA2B,QAAQh6H,EAAE/d,KAAKgqI,eAAU,IAASjsH,OAAE,EAAOA,EAAEi6H,uBAAuBh4I,KAAKmnI,WAAWuG,aAAaC,qBAAoB,EAAG3tI,KAAKmnI,WAAW2J,wBAAuB,EAAG9wI,KAAKmnI,WAAW8Q,iBAAiBj4I,KAAK8zI,UAAU,GAAK,EAAG,CAACoE,0BAA0Bn6H,GAAG,IAAIsK,EAAE,GAAGtK,EAAE,CAAC,GAAGA,EAAE8oH,UAAU7mI,KAAKqvI,uBAAuB,CAACtxH,EAAEsuH,aAAarsI,KAAKqvI,wBAAwB,IAAIhnH,EAAE,EAAE,GAAGroB,KAAKqvI,uBAAuB1tG,oBAAoB4oC,IAAE,CAAC,MAAM9sD,EAAEM,EAAEo6H,aAAa16H,IAAI4K,EAAEroB,KAAKqvI,uBAAuB1tG,SAASw2G,aAAa16H,EAAE,CAACM,EAAE8oH,SAASW,QAAQ,IAAIhlH,KAAE6F,EAAEA,EAAEA,EAAE,CAAC,QAAQA,EAAEroB,KAAKgwI,uBAAkB,IAAS3nH,GAAGA,EAAEokH,gBAAgB1uH,EAAE,CAAC,CAACq6H,uBAAuBp4I,KAAKgwI,kBAAkBhwI,KAAKgwI,gBAAgB,IAAI/mE,GAAEjpE,KAAKgwI,gBAAgBnI,oBAAoB7nI,KAAKmnI,aAAannI,KAAKgwI,gBAAgB3D,aAAarsI,KAAKqvI,uBAAuB,CAAC2E,cAAc,IAAI3rH,EAAE5K,EAAE7O,EAAEoR,EAAEzb,EAAEwb,EAAEqB,EAAE0mD,GAAEr5D,GAAE,SAAOsP,MAAE/d,UAAK,OAAO,EAAQ,YAAY,IAAIA,KAAKkyI,wBAAwB,OAAO,MAAMn0H,GAAE/d,KAAKovI,qBAAqBpvI,KAAKovI,qBAAqBpvI,KAAKgqI,QAAQ,GAAGhqI,KAAKq4I,OAAO,CAACr4I,KAAKs4I,qCAAqCt4I,KAAKq4I,OAAOE,YAAYv4I,KAAKmnI,YAAW,GAAInnI,KAAKw4I,gCAAgCx4I,KAAKmnI,WAAW7oB,OAAOn0C,KAAEsuE,mBAAmBz4I,KAAKmnI,WAAW7oB,OAAO,MAAMv6E,GAAE,QAAQ1b,EAAEroB,KAAKgwI,uBAAkB,IAAS3nH,OAAE,EAAOA,EAAE4jH,YAAY,GAAG,QAAQxuH,EAAEzd,KAAKgwI,uBAAkB,IAASvyH,GAAGA,EAAE8pH,YAAW,GAAI,QAAQ34H,EAAE5O,KAAKgwI,uBAAkB,IAASphI,GAAGA,EAAEy9H,aAAa,MAAM,QAAQ9nI,EAAE,QAAQyb,EAAEhgB,KAAKsvI,2BAAsB,IAAStvH,OAAE,EAAOA,EAAE6mH,gBAAW,IAAStiI,GAAGA,EAAEgjI,YAAW,GAAI,QAAQnmH,EAAE,QAAQrB,EAAE/f,KAAKs+G,aAAQ,IAASv+F,OAAE,EAAOA,EAAE8mH,gBAAW,IAASzlH,GAAGA,EAAEmmH,YAAW,GAAIvnI,KAAKqvI,uBAAuB,QAAQvnE,GAAE9nE,KAAKmnI,WAAW7oB,MAAMo6B,YAAY,4BAAuB,IAAS5wE,GAAEA,GAAE,KAAK9nE,KAAKo4I,uBAAuBp4I,KAAKk4I,0BAA0Bn6H,IAAG,QAAQtP,GAAEzO,KAAKgwI,uBAAkB,IAASvhI,IAAGA,GAAE84H,WAAW,MAAMxjG,IAAGA,UAAS/jC,KAAK+3I,qBAAqB/3I,KAAKsvI,oBAAoBtvI,KAAKq4I,QAAQr4I,KAAKmnI,WAAW7oB,MAAM8rB,aAAa,MAAMpqI,KAAK2pB,KAAK,QAAQ,IAAIrE,MAAM,6EAA6EtlB,KAAKkwI,+BAA+BlwI,KAAK24I,cAAc34I,KAAKmnI,WAAW7oB,MAAM8rB,cAAcpqI,KAAKiwI,8BAA8BjwI,KAAKkwI,+BAA+B9sI,OAAO,CAACpD,KAAK44I,sBAAsB54I,KAAKkyI,yBAAwB,EAAGlyI,KAAK64I,cAAc,EAAG,CAACzE,kBAAkB,IAAI/rH,EAAE5K,EAAE7O,EAAE,SAAOmP,MAAE/d,UAAK,OAAO,EAAQ,YAAY,IAAIA,KAAKoyI,4BAA4B,OAAO,IAAIpyI,KAAKgqI,QAAQ,MAAMhqI,KAAK2pB,KAAK,QAAQ,IAAIrE,MAAM,kEAAkE,IAAIvH,EAAE/d,KAAKgqI,QAAQ8O,sBAAsB94I,KAAK03I,mCAAmC13I,KAAKgqI,QAAQ+O,aAAa/4I,KAAKi1I,YAAYl3H,EAAE/d,KAAKi1I,cAAa,QAAQ5sH,EAAiBtK,GAAEi7H,sBAAiB,IAAS3wH,IAASA,EAAE4wH,YAAal7H,EAAE8yH,QAAQ9yH,EAAE1K,QAAQ,QAAQoK,EAAEM,EAAEm7H,gBAAW,IAASz7H,GAAGA,EAAE07H,gBAA4Fn5I,KAAK+gI,UAAU+P,uBAA1F,QAAQliI,EAAiBmP,GAAEi7H,sBAAiB,IAASpqI,IAASA,EAAEqqI,UAA6Fj5I,KAAKoyI,6BAA4B,CAAE,EAAG,CAAC6B,eAAe,IAAI5rH,EAAE5K,EAAE,SAAOM,MAAE/d,UAAK,OAAO,EAAQ,YAAY,GAAGA,KAAKmyI,yBAAyB,CAAC,IAAInyI,KAAKq4I,OAAO,MAAMr4I,KAAK2pB,KAAK,QAAQ,IAAIrE,MAAM,6DAA6DtlB,KAAK6vI,iCAAiC7vI,KAAK6vI,gCAAgC,IAAI7vI,KAAKgqI,QAAQhqI,KAAKmiC,WAAWniC,KAAKmiC,UAAUzsB,OAAO,SAAS1V,KAAKo5I,qBAAqBp5I,KAAKg1I,4BAA4Bh1I,KAAKqyI,2BAA0B,UAAWryI,KAAKg1I,kCAAkC,QAAQ3sH,EAAEroB,KAAKgqI,eAAU,IAAS3hH,OAAE,EAAOA,EAAEgxH,oBAAoBr5I,KAAKmnI,YAAW,GAAInnI,KAAKk4I,0BAA0Bl4I,KAAKgqI,WAAU,QAAQvsH,EAAEzd,KAAKgwI,uBAAkB,IAASvyH,IAASA,EAAEwuH,aAAcjsI,KAAKgwI,gBAAgB9wB,UAAUl/G,KAAKs5I,mCAAmCt5I,KAAKu5I,cAAcv5I,KAAKgqI,eAAehqI,KAAK83I,uBAAuB93I,KAAKuvI,qBAAqBvvI,KAAKgqI,cAAchqI,KAAK63I,oCAAoC73I,KAAK43I,oCAAoC53I,KAAKg1I,kCAAkCh1I,KAAK63I,oCAAoC73I,KAAK83I,wBAAwB93I,KAAK44I,sBAAgD54I,KAAKmyI,2BAA/BnyI,KAAKovI,qBAAuFpvI,KAAKoyI,6BAA4B,CAAE,CAAC,EAAG,CAAC8B,iBAAiB,IAAI7rH,EAAE,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,YAAY,GAAGA,KAAKqyI,0BAA0B,CAAC,GAAGryI,KAAKw5I,iBAAiB,QAAQnxH,EAAEroB,KAAKmiC,iBAAY,IAAS9Z,GAASA,EAAEtP,KAAMgF,GAAGA,IAAI/d,KAAKw5I,kBAAmBx5I,KAAKw5I,cAAc,KAAKx5I,KAAK+zI,gCAA+B,GAAI/zI,KAAK6vI,iCAAiC7vI,KAAK6vI,gCAAgC,IAAI7vI,KAAKmiC,WAAWniC,KAAKmiC,UAAUzsB,OAAO,EAAE,GAAG1V,KAAKgqI,cAAchqI,KAAKo5I,qBAAqBp5I,KAAKg1I,gCAAgC,CAAC,GAAG,IAAIh1I,KAAKmiC,UAAUzsB,OAAO,MAAM1V,KAAK2pB,KAAK,QAAQ,IAAIrE,MAAM,uIAAuItlB,KAAKg1I,kCAAkCh1I,KAAK43I,kCAAkC53I,KAAK63I,oCAAoC73I,KAAKmiC,UAAU,GAAGk3G,oBAAoBr5I,KAAKmnI,YAAW,EAAG,YAAYnnI,KAAKg1I,kCAAkCh1I,KAAK63I,oCAAoC73I,KAAK43I,4BAA4B53I,KAAKs5I,mCAAmCt5I,KAAK44I,sBAAsB54I,KAAKqyI,2BAA0B,EAA6BryI,KAAKmyI,2BAA/BnyI,KAAKovI,qBAAuFpvI,KAAKi1I,aAAaj1I,KAAKoyI,6BAA4B,EAAG,CAAC,EAAG,CAACqH,mCAAmC17H,EAAEsK,GAAG,IAAI5K,EAAE7O,EAAE,MAAMoR,EAAEhgB,KAAKmnI,WAAWnG,uBAAuBz8H,EAAE,QAAQqK,EAAE,QAAQ6O,EAAEzd,KAAKmnI,WAAW7oB,MAAM8rB,oBAAe,IAAS3sH,OAAE,EAAOA,EAAEqvH,SAAS1pI,eAAU,IAASwL,EAAEA,EAAE,IAAIo6D,IAAE,EAAE,EAAE,EAAE,GAAGzkE,EAAEie,EAAE,EAAEje,EAAEm2B,OAAOn2B,EAAEie,EAAE,MAAMzC,EAAExb,EAAEyyI,SAASh3H,EAAEihH,aAAa4U,YAAY71H,EAAEihH,aAAalrE,cAAc30C,GAAEoB,KAAEyqH,QAAQlvH,EAAEsK,EAAEroB,KAAKmnI,WAAW7oB,MAAM44B,qBAAqBn3H,GAAG,OAAO,IAAIxK,KAAE6L,GAAExO,EAAEoN,EAAEihH,aAAa4U,YAAYz0H,GAAEoB,EAAExC,EAAEihH,aAAalrE,aAAa,CAAC2jF,4CAA4C,IAAI37H,EAAE,MAAMsK,EAAEroB,KAAKwvI,6BAA6B/xH,EAAE,GAAGzd,KAAKmnI,WAAW7oB,MAAMq7B,uBAAsB,GAAI,UAAU/qI,KAAKyZ,EAAE,CAAC5K,EAAEQ,KAAK,IAAI,MAAMoK,EAAE,QAAQtK,EAAEnP,EAAEi4H,gBAAW,IAAS9oH,OAAE,EAAOA,EAAE67H,iBAAiB,UAAU77H,KAAWsK,GAAI,GAAG,CAAC,MAAMA,EAAEtK,EAAEgpH,oBAAmB,GAAIn4H,GAAEmP,EAAE87H,gBAAgB/wE,IAAEgxE,cAAc,GAAG,MAAMlrI,GAAE,QAAQmP,GAAE,EAAEA,GAAEnP,GAAE8G,OAAOqI,IAAG,EAAE,CAAC,MAAMiC,GAAEhgB,KAAKy5I,mCAAmC,IAAIj3H,KAAE5T,GAAEmP,IAAGnP,GAAEmP,GAAE,GAAGnP,GAAEmP,GAAE,IAAIsK,GAAG5K,EAAEA,EAAE/H,OAAO,GAAGuI,KAAK+B,GAAE,CAAC,CAAC,CAAC,OAAOvC,CAAC,CAACs8H,yCAAyCh8H,GAAG,MAAMsK,EAAE,GAAG,UAAU5K,KAAKM,EAAE,CAAC,IAAIA,EAAE,EAAEnP,EAAE,EAAEoR,EAAE,EAAEzb,EAAE,EAAE,UAAU8jB,MAAK5K,EAAEM,EAAER,KAAKi/B,IAAIz+B,EAAEsK,GAAEzV,GAAGhE,EAAE2O,KAAKi/B,IAAI5tC,EAAEyZ,GAAE7F,GAAGxC,EAAEzC,KAAKk/B,IAAIz8B,EAAEqI,GAAEzV,GAAGrO,EAAEgZ,KAAKk/B,IAAIl4C,EAAE8jB,GAAE7F,GAAG6F,EAAEpK,KAAK,CAAC+7H,KAAKj8H,EAAEk8H,KAAKj6H,EAAEk6H,KAAKtrI,EAAEurI,KAAK51I,GAAG,CAAC,OAAO8jB,CAAC,CAAC+xH,mCAAmCr8H,EAAEsK,GAAG,OAAOA,GAAG,KAAKkd,GAAE4oG,QAAQ,OAAO,IAAI54H,KAAEwI,EAAEi8H,KAAKj8H,EAAEm8H,MAAM,KAAK30G,GAAE6oG,WAAW,OAAO,IAAI74H,KAAEwI,EAAEi8H,MAAMj8H,EAAEm8H,KAAKn8H,EAAEo8H,MAAM,GAAG,KAAK50G,GAAE8oG,WAAW,OAAO,IAAI94H,KAAEwI,EAAEi8H,KAAKj8H,EAAEo8H,MAAM,KAAK50G,GAAE+oG,aAAa,OAAO,IAAI/4H,MAAGwI,EAAEi8H,KAAKj8H,EAAEk8H,MAAM,EAAEl8H,EAAEo8H,MAAM,KAAK50G,GAAEgpG,YAAY,OAAO,IAAIh5H,KAAEwI,EAAEk8H,KAAKl8H,EAAEo8H,MAAM,KAAK50G,GAAEipG,YAAY,OAAO,IAAIj5H,KAAEwI,EAAEk8H,MAAMl8H,EAAEm8H,KAAKn8H,EAAEo8H,MAAM,GAAG,KAAK50G,GAAEkpG,SAAS,OAAO,IAAIl5H,KAAEwI,EAAEk8H,KAAKl8H,EAAEm8H,MAAM,KAAK30G,GAAE2oG,UAAU,OAAO,IAAI34H,MAAGwI,EAAEi8H,KAAKj8H,EAAEk8H,MAAM,EAAEl8H,EAAEm8H,MAAM,CAACG,0CAA0ChyH,GAAG,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,YAAY,MAAM+d,QAAQsK,EAAEiyH,kBAAkB,GAAG,MAAMv8H,EAAE,OAAOwnB,GAAE6oG,WAAW,OAAOrwH,GAAG,KAAKmsD,KAAErnC,OAAO,OAAO0C,GAAE4oG,QAAQ,KAAKjkE,KAAEjnC,SAAS,OAAOsC,GAAEipG,YAAY,KAAKtkE,KAAE/mC,QAAQ,KAAK+mC,KAAEznC,MAAM,KAAKynC,KAAEnnC,QAAQ,OAAOwC,GAAE8oG,WAAW,KAAKnkE,KAAEzmC,UAAU,KAAKymC,KAAEvmC,WAAW,OAAO4B,GAAE+oG,aAAa,KAAKpkE,KAAEvnC,OAAO,OAAO4C,GAAE8oG,WAAW,KAAKnkE,KAAE3nC,UAAU,OAAOgD,GAAE6oG,WAAW,KAAKlkE,KAAE7mC,MAAM,OAAOkC,GAAEipG,YAAY,QAAQ,OAAOjpG,GAAE6oG,WAAW,EAAG,CAACmM,kDAAkDx8H,GAAG,MAAMsK,EAAE,GAAGtK,EAAEkC,QAAS,CAAClC,EAAEN,KAAK4K,EAAEpK,KAAK,CAAC1L,OAAOwL,EAAEm8H,KAAKn8H,EAAEo8H,MAAM,EAAE5G,aAAa91H,GAAE,GAAK4K,EAAEvU,KAAM,CAACiK,EAAEsK,IAAItK,EAAExL,MAAM8V,EAAE9V,OAAQ,MAAMkL,EAAE,IAAIH,MAAM+K,EAAE3S,QAAQ,GAAG,GAAG2S,EAAE3S,OAAO+H,EAAE,GAAG8nB,GAAEipG,oBAAoB,GAAGnmH,EAAE3S,OAAO+H,EAAE4K,EAAE,GAAGkrH,cAAchuG,GAAE4oG,QAAQ1wH,EAAE4K,EAAE,GAAGkrH,cAAchuG,GAAEgpG,oBAAoB,GAAGlmH,EAAE3S,OAAO+H,EAAE4K,EAAE,GAAGkrH,cAAchuG,GAAEkpG,SAAShxH,EAAE4K,EAAE,GAAGkrH,cAAchuG,GAAE6oG,WAAW3wH,EAAE4K,EAAE,GAAGkrH,cAAchuG,GAAEgpG,oBAAoBlmH,EAAE3S,OAAO,EAAE,CAAC+H,EAAE4K,EAAE,GAAGkrH,cAAchuG,GAAEkpG,SAAS,QAAQ1wH,EAAE,EAAEA,EAAEsK,EAAE3S,OAAO,EAAEqI,IAAIN,EAAE4K,EAAEtK,GAAGw1H,cAAcx1H,EAAE,GAAG,EAAEwnB,GAAEipG,YAAYjpG,GAAE6oG,WAAW3wH,EAAE4K,EAAEA,EAAE3S,OAAO,GAAG69H,cAAclrH,EAAE3S,OAAO,GAAG,EAAE6vB,GAAE8oG,WAAW9oG,GAAEgpG,WAAW,CAAC,OAAO9wH,CAAC,CAAC+8H,4BAA4Bz8H,GAAG,OAAO,IAAIxI,MAAGwI,EAAEi8H,KAAKj8H,EAAEk8H,MAAM,GAAGl8H,EAAEm8H,KAAKn8H,EAAEo8H,MAAM,EAAE,CAACM,4BAA4B18H,EAAEsK,EAAE5K,GAAG,MAAM7O,EAAE,IAAI0O,MAAMS,EAAErI,QAAQ,OAAOqI,EAAEkC,QAAS,CAAClC,EAAEiC,KAAK,MAAMzb,EAAEvE,KAAKo6I,mCAAmC38H,EAAEuC,GAAGqI,EAAErI,IAAID,GAAE/f,KAAKw6I,4BAA4B/8H,EAAEuC,IAAIgiH,SAASz9H,GAAG6c,GAAE,GAAGrB,GAAErK,SAASqK,GAAE2tF,YAAY,MAAM5lC,GAAE/nD,GAAEmnH,iBAAiB9lH,GAAEA,IAAG,GAAG,GAAGrD,EAAErI,OAAO,OAAO,IAAIjH,GAAEsP,EAAE,GAAGgmB,GAAEhmB,EAAE,GAAGikH,SAASz9H,GAAGmR,SAAS,QAAQ2S,GAAE,EAAEA,GAAEtK,EAAErI,OAAO2S,KAAI,CAAC,MAAM5K,GAAEM,EAAEsK,IAAG25G,SAASz9H,GAAGmR,SAAS+H,GAAEsmB,KAAIt1B,GAAEsP,EAAEsK,IAAG0b,GAAEtmB,GAAE,CAAC7O,EAAEoR,GAAGvR,GAAE+pC,IAAIsvB,GAAC,GAAKl5D,CAAC,CAAC8rI,uCAAuC,GAAG,MAAM16I,KAAKgwI,kBAAkBhwI,KAAKgwI,gBAAgB/D,YAAY,MAAM,GAAG,MAAMluH,EAAE/d,KAAKgwI,gBAAgB1D,qCAAqCjkH,EAAE,GAAG,UAAU5K,KAAKM,EAAEsK,EAAEpK,KAAKje,KAAKy5I,mCAAmCh8H,EAAEstD,KAAEmiE,aAAa,OAAO7kH,CAAC,CAACkqH,iCAAiC,SAAOx0H,MAAE/d,UAAK,OAAO,EAAQ,YAAY,MAAM+d,EAAE,GAAG,GAAG,MAAM/d,KAAKmiC,UAAU,CAAC,MAAM9Z,EAAEroB,KAAKmiC,UAAU97B,IAAK0X,GAAG/d,KAAKq6I,0CAA0Ct8H,IAAKN,EAAEzd,KAAK05I,4CAA4C9qI,EAAE5O,KAAK+5I,yCAAyCt8H,GAAGuC,QAAQrI,QAAQyE,IAAIiM,GAAG,GAAGrI,EAAEtK,SAAS9G,EAAE8G,QAAQ+H,EAAE/H,SAAS9G,EAAE8G,OAAO,OAAOqI,EAAEA,EAAEE,QAAQje,KAAKy6I,4BAA4Bh9H,EAAEuC,EAAEpR,GAAG,CAAC,MAAMyZ,EAAEroB,KAAK06I,uCAAuC,OAAO38H,EAAEE,QAAQoK,GAAGtK,CAAC,EAAG,CAAC48H,sBAAsB36I,KAAKowI,sCAAsCpwI,KAAK46I,qBAAqB,CAACzG,qBAAqB,SAAOp2H,MAAE/d,UAAK,OAAO,EAAQ,YAAY,IAAIA,KAAK+zI,+BAA+B,OAAO,MAAMh2H,EAAE/d,KAAKmnI,WAAW7oB,MAAM8rB,aAAa,IAAIrsH,EAAE,MAAM/d,KAAK2pB,KAAK,QAAQ,IAAIrE,MAAM,uGAAuG,GAAGtlB,KAAKw5I,eAAex5I,KAAK66I,aAAajsI,KAAEksI,KAAK,CAAC,IAAIzyH,EAAE,KAAK5K,GAAE,EAAG,GAAGzd,KAAKw5I,cAAc,CAAC,MAAMz7H,EAAE/d,KAAKwvI,6BAA6Bz2H,KAAMgF,IAAI,IAAIsK,EAAE,OAAOtK,EAAEy1H,gBAAgBzlH,QAAQ,QAAQ1F,EAAEroB,KAAKw5I,qBAAgB,IAASnxH,OAAE,EAAOA,EAAE0F,QAAS,IAAIhQ,EAAE,MAAM/d,KAAK2pB,KAAK,QAAQ,IAAIrE,MAAM,mHAAmH,UAAU7H,KAAKzd,KAAKmnI,WAAW7oB,MAAM4yB,OAAO,GAAGzzH,EAAEwuH,aAAaxuH,EAAEpR,GAAGlJ,SAAS4a,EAAEgQ,MAAM,CAAC1F,EAAE5K,EAAE,KAAK,CAAC,KAAK,CAAC,OAAOA,GAAE,EAAGzd,KAAK66I,YAAY,KAAKjsI,KAAE2jB,IAAIlK,EAAEohD,KAAEsxE,UAAU,kBAAkB,CAACtgH,MAAM,GAAGC,OAAO,IAAI+pG,MAAM,KAAKzkI,KAAKmnI,WAAW7oB,OAAOj2F,EAAEgd,OAAOrlC,KAAKqvI,uBAAuBhnH,EAAE2yH,iBAAiB,IAAIx4H,KAAE,EAAE,IAAI,IAAI,MAAM,KAAK5T,KAAEikB,OAAOxK,EAAEohD,KAAEsxE,UAAU,kBAAkB,CAACtgH,MAAM,GAAGC,OAAO,EAAE+pG,MAAM,KAAKzkI,KAAKmnI,WAAW7oB,OAAOj2F,EAAEgd,OAAOrlC,KAAKqvI,uBAAuBhnH,EAAE2yH,iBAAiB,IAAIx4H,KAAE,EAAE,GAAG,IAAI,MAAM,KAAK5T,KAAEqsI,KAAK5yH,EAAEohD,KAAEsxE,UAAU,kBAAkB,CAACtgH,MAAM,GAAGC,OAAO,KAAK+pG,MAAM,KAAKzkI,KAAKmnI,WAAW7oB,OAAOj2F,EAAEgd,OAAOrlC,KAAKqvI,uBAAuBhnH,EAAE2yH,iBAAiB,IAAIx4H,KAAE,EAAE,IAAI,IAAI,GAAG6F,EAAE,CAAC,MAAMtK,EAAE,IAAIqD,IAAE,uBAAuBphB,KAAKmnI,WAAW7oB,OAAOvgG,EAAEwsH,MAAM,EAAEliH,EAAEg/G,SAAStpH,CAAC,CAAC,CAAC,IAAIsK,EAAE,MAAMroB,KAAK2pB,KAAK,QAAQ,IAAIrE,MAAM,wDAAwD,GAAGtlB,KAAKiwI,8BAA8B,CAAC,GAAGlyH,EAAE4jB,UAAU5jB,EAAE4jB,oBAAoBinC,IAAE,CAAC,MAAMvgD,EAAEtK,EAAE4jB,SAAStZ,EAAEukH,cAAc7uH,EAAE8uH,IAAIxkH,EAAEukH,aAAa7uH,EAAE+uH,SAAS,IAAI9jE,IAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAMp6D,EAAE5O,KAAKiwI,8BAA8BjwH,EAAEhgB,KAAKk7I,8BAA8B7yH,GAAGroB,KAAKmwI,uCAAuC,IAAI7mE,GAAEtpE,KAAKmnI,WAAWv4H,EAAEoR,EAAGqI,IAAIroB,KAAKm7I,iBAAiBp9H,EAAEsK,GAAGroB,KAAK+gI,UAAUqa,4BAA2B,GAAKp7I,KAAKu0I,mCAAkC,GAAG,SAAUv0I,KAAKmwI,uCAAuChB,UAAU1xH,GAAG4K,EAAEo5B,SAAQ,GAAG,GAAIzhD,KAAKiwI,8BAA8BjwI,KAAK24I,cAAc56H,EAAE,CAAC,SAAS/d,KAAKu0I,kCAAkCv0I,KAAKowI,uCAAsC,GAAIpwI,KAAKkwI,+BAA+B,CAAC,MAAM7nH,EAAEroB,KAAK24I,cAAc56H,GAAyC/d,KAAKmwI,uCAAuC,IAAI7mE,GAAEtpE,KAAKmnI,WAAW9+G,EAAtGroB,KAAKkwI,+BAAsG7nH,IAAIroB,KAAKm7I,iBAAiBp9H,EAAEsK,GAAGroB,KAAK+gI,UAAUqa,4BAA2B,SAAWp7I,KAAKmwI,uCAAuChB,UAAUnvI,KAAKiwI,8BAA8BjwI,KAAK24I,cAAc56H,EAAE,CAAC/d,KAAK+vI,qCAAoC,EAAG/vI,KAAK+zI,gCAA+B,CAAE,EAAG,CAACoH,iBAAiBp9H,EAAEsK,GAAG,GAAG,MAAMtK,EAAE,OAAO,MAAMN,EAAEM,EAAE4jB,UAAU5jB,EAAE4jB,oBAAoBinC,IAAE7qD,EAAE4jB,SAAS,IAAIinC,IAAEnrD,EAAEkvH,UAAUtkH,EAAEtK,EAAE4jB,SAASlkB,CAAC,CAACk7H,cAAc56H,GAAG,OAAIA,GAAsBA,EAAE4jB,oBAAoBinC,IAAE7qD,EAAE4jB,SAASv+B,QAAQ,IAAIwlE,KAAG+jE,UAA/D,IAAIpjE,IAAoE,CAAC2xE,8BAA8Bn9H,GAAG,MAAMsK,EAAEroB,KAAKmnI,WAAW7oB,MAAM8rB,aAAa,GAAG,MAAM/hH,EAAE,OAAO,IAAIkhD,KAAE,IAAI9rD,EAAE,KAAK4K,aAAa0gD,OAAItrD,EAAE4K,EAAEg+G,+BAA+BjjI,QAAQilB,EAAEg+G,+BAA+Bt7D,KAAEmiE,YAAY7kH,EAAE0+G,qBAAqB1+G,EAAEy6C,SAAS/kD,EAAEgpH,oBAAmB,GAAI,IAAIn4H,EAAEy+B,OAAO8wB,iBAAiBn+C,EAAEqtB,OAAO8wB,iBAAiB55D,EAAE8oC,OAAOguG,iBAAiBt7H,EAAEstB,OAAOguG,iBAAiB,MAAMj6H,GAAEphB,KAAK+gI,UAAU2J,OAAOgB,iBAAiB5jE,GAAE9nE,KAAK+gI,UAAU2J,OAAOiB,kBAAkB,UAAUluH,MAAKM,EAAEkpH,kBAAkBqU,YAAYC,aAAa,CAAC,MAAMx9H,GAAEyE,KAAEyqH,QAAQxvH,GAAEstD,KAAEmiE,WAAW7kH,EAAEmzH,0BAA0BnzH,EAAEykH,SAASkK,SAAS51H,GAAE0mD,KAAIl5D,EAAE2O,KAAKi/B,IAAI5tC,EAAEmP,GAAEnL,GAAGoN,EAAEzC,KAAKi/B,IAAIx8B,EAAEjC,GAAEyE,GAAGje,EAAEgZ,KAAKk/B,IAAIl4C,EAAEwZ,GAAEnL,GAAGmN,EAAExC,KAAKk/B,IAAI18B,EAAEhC,GAAEyE,EAAE,CAAC,MAAM/T,GAAE2S,GAAE,EAAE2iB,GAAE,EAAExmB,KAAKk/B,IAAIl/B,KAAKkkH,IAAIl9H,EAAEkK,IAAG8O,KAAKkkH,IAAI7yH,EAAEH,KAAIs5D,GAAExqD,KAAKkkH,IAAI1hH,EAAEC,GAAGrb,GAAEo/B,GAAEgkC,GAAEC,GAAE,IAAIuB,KAAEvB,UAAEgnE,YAAYrqI,GAASqjE,GAAEknE,WAAWlvH,EAAE,GAAG+nD,IAAG/nE,KAAK+gI,UAAU2J,OAAOiB,kBAAkB3jE,GAAEinE,aAAa,GAAGlvH,EAAE,GAAGgoD,IAAG/nE,KAAK+gI,UAAU2J,OAAOiB,kBAAkBtjH,aAAa0gD,MAAGtrD,IAAI4K,EAAEg+G,+BAA+B5oH,GAAGuqD,EAAC,CAACuxE,cAAcx7H,EAAEsK,GAAG,GAAGtK,IAAIA,EAAE09H,SAAQ,GAAIpzH,EAAE,UAAUtK,KAAKsK,EAAEtK,EAAE09H,SAAQ,EAAGz7I,KAAK44I,qBAAqB,CAACA,sBAAsB,IAAI76H,EAAE,UAAUsK,KAAKroB,KAAKmnI,WAAW7oB,MAAMgzB,OAAO,CAAC,MAAM7zH,EAAE4K,EAAEqzH,qBAAqB,GAAGj+H,EAAE,CAAC,MAAM4K,EAAE,QAAQtK,EAAEN,EAAEk+H,sBAAiB,IAAS59H,OAAE,EAAOA,EAAEonH,WAAW,GAAY98G,GAAE9M,OAAO,EAAiB8M,GAAE3S,QAAQ1V,KAAKgqI,SAAShqI,KAAKgqI,QAAQnD,SAAS7mI,KAAKgqI,QAAQ4R,qBAAqBn+H,GAAGzd,KAAKovI,sBAAsBpvI,KAAKovI,qBAAqBvI,UAAU7mI,KAAKovI,qBAAqBwM,qBAAqBn+H,GAAGzd,KAAKwvI,6BAA6B,UAAUzxH,KAAK/d,KAAKwvI,6BAA6BzxH,EAAE69H,qBAAqBn+H,GAAG,MAAM7O,EAAE6O,EAAEk+H,eAAe/sI,IAAIA,EAAEitI,YAAY77I,KAAKmnI,WAAW2U,kBAAkB,CAAC,CAAC,CAACxD,+BAA+B,GAAG,MAAMt4I,KAAKsvI,qBAAqB,MAAMtvI,KAAKsvI,oBAAoBzI,SAAS,OAAO,MAAM9oH,KAAEsK,OAAI,UAAUA,KAAKroB,KAAKmnI,WAAW7oB,MAAM4yB,OAAO7oH,EAAE0zH,eAAe/7I,KAAKsvI,oBAAoBzI,YAAYx+G,EAAEhc,GAAGgc,EAAEhc,GAAG,IAAI0R,GAAG,UAAUsK,KAAKroB,KAAKmnI,WAAW7oB,MAAM8yB,UAAU,CAAC,MAAM3zH,EAAE4K,EAAEhc,GAAGmJ,cAAcrS,SAAS,SAAS,UAAUyL,KAAKyZ,EAAE2zH,kBAAmB,GAAGv+H,GAAG7O,GAAGA,EAAEmtI,eAAe/7I,KAAKsvI,oBAAoBzI,UAAU,CAACx+G,EAAEhc,GAAGgc,EAAEhc,GAAG,IAAI0R,EAAE,KAAK,CAAE,CAAC,UAAUsK,KAAKroB,KAAKmnI,WAAW7oB,MAAMgzB,OAAOjpH,EAAE0zH,eAAe/7I,KAAKsvI,oBAAoBzI,YAAYx+G,EAAEhc,GAAGgc,EAAEhc,GAAG,IAAI0R,GAAG/d,KAAKqvI,yBAAyBrvI,KAAKqvI,uBAAuBhjI,IAAI,IAAI0R,EAAE,CAAC65H,4BAA4B,SAAO75H,MAAE/d,UAAK,OAAO,EAAQ,YAAY,GAAGA,KAAKmiC,UAAU,CAAC,MAAMpkB,EAAE/d,KAAKmiC,UAAU97B,IAAK0X,GAAGA,EAAEi6H,8BAA+BrgI,QAAQyE,IAAI2B,EAAE,CAAC,EAAG,CAAC85H,8BAA8B,SAAO95H,MAAE/d,UAAK,OAAO,EAAQ,YAAY,GAAGA,KAAKwvI,6BAA6B95H,OAAO,EAAE,CAAC,MAAMqI,EAAE/d,KAAKwvI,6BAA6BnpI,IAAK0X,GAAGA,EAAEi6H,8BAA+BrgI,QAAQyE,IAAI2B,GAAG/d,KAAKwvI,6BAA6B,EAAE,CAAC,EAAG,CAACsI,uBAAuB,IAAIzvH,EAAE5K,EAAE,SAAOM,MAAE/d,UAAK,OAAO,EAAQ,kBAAkB,QAAQqoB,EAAEroB,KAAKovI,4BAAuB,IAAS/mH,OAAE,EAAOA,EAAE2vH,uBAAuBh4I,KAAKovI,qBAAqB,WAAW,QAAQ3xH,EAAEzd,KAAKuvI,4BAAuB,IAAS9xH,OAAE,EAAOA,EAAEu6H,uBAAuBh4I,KAAKuvI,qBAAqB,IAAI,EAAG,CAACwI,qBAAqB,IAAI1vH,EAAE,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,kBAAkB,QAAQqoB,EAAEroB,KAAKsvI,2BAAsB,IAASjnH,OAAE,EAAOA,EAAE4zH,eAAej8I,KAAKsvI,oBAAoB,IAAI,EAAG,CAAC0F,4BAA4B,IAAI3sH,EAAE,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,YAAY,QAAQqoB,EAAEroB,KAAKyvI,oCAA+B,IAASpnH,GAAGA,EAAEo5B,UAAUzhD,KAAKyvI,6BAA6B,KAAKzvI,KAAK0vI,qCAAqC1vI,KAAK0vI,mCAAmC5B,sBAAqB,EAAG9tI,KAAK0vI,mCAAmC,MAAM,UAAU3xH,KAAK/d,KAAK2vI,uCAAuC5xH,EAAE,GAAG26B,SAAS14C,KAAK2vI,uCAAuC19F,QAAQ,UAAUl0B,KAAK/d,KAAKwvI,8BAA8B,EAAG,CAAC0M,OAAOn+H,EAAEiC,KAAEm8H,OAAO9zH,EAAE9jB,KAAE63I,WAAW3+H,EAAE,GAAG7O,EAAE,KAAK,IAAImR,EAAE,GAAGhC,GAAGiC,KAAEq8H,OAAOt8H,EAAE/f,KAAKs8I,iBAAiBv+H,EAAEgC,EAAErK,OAAO,EAAEsK,KAAEu8H,MAAMv8H,KAAEm8H,QAAQp+H,GAAGiC,KAAEm8H,OAAOn8I,KAAKw8I,aAAan0H,EAAE5K,EAAE7O,GAAGmP,GAAGiC,KAAEu8H,OAAOv8I,KAAKy8I,YAAY18H,EAAEtC,EAAE7O,EAAE,CAAC4tI,aAAaz+H,EAAEsK,EAAE5K,GAAG,KAAKzd,KAAKmnI,WAAW7oB,MAAM8rB,wBAAwB37H,KAAG,OAAO,MAAMG,EAAE5O,KAAKmnI,WAAW7oB,MAAM8rB,aAAapqH,EAAE+jB,KAAE+kG,UAAUzgH,GAAGtI,EAAExC,KAAKi/B,IAAI,GAAG,EAAE/+B,GAAG,IAAI2D,EAAE,GAAGrD,GAAGxZ,KAAE63I,WAAW,CAAC,GAAG,IAAIr8H,EAAE,YAAYnR,EAAE27H,MAAM37H,EAAE27H,MAAMvqH,GAAGoB,EAAE,IAAI2mD,KAAE,yBAAyB,QAAQ,EAAEA,KAAEslE,oBAAoBtlE,KAAEulE,4BAA4B,IAAIvvH,GAAEnP,EAAE27H,MAAMvqH,EAAEpR,EAAE8tI,kBAAkB3+H,GAAER,KAAKk/B,IAAI1+B,GAAEnP,EAAE8tI,kBAAkB9tI,EAAE+tI,kBAAkB5+H,GAAER,KAAKi/B,IAAIz+B,GAAEnP,EAAE+tI,kBAAsEv7H,EAAEmsH,QAA9C,CAAC,CAACC,MAAM,EAAEj7H,MAAM3D,EAAE27H,OAAO,CAACiD,MAAM,EAAEj7H,MAAMwL,KAAgB,KAAK,CAAC,GAAG,IAAIgC,EAAE,YAAYnR,EAAEguI,KAAKhuI,EAAEguI,KAAK58H,GAAGoB,EAAE,IAAI2mD,KAAE,wBAAwB,OAAO,EAAEA,KAAEslE,oBAAoBtlE,KAAEulE,4BAA4B,IAAIvvH,GAAEnP,EAAEguI,KAAK58H,EAAEpR,EAAEiuI,iBAAiB9+H,GAAER,KAAKk/B,IAAI1+B,GAAEnP,EAAEiuI,iBAAiBjuI,EAAEkuI,iBAAiB/+H,GAAER,KAAKi/B,IAAIz+B,GAAEnP,EAAEkuI,iBAAoE17H,EAAEmsH,QAA7C,CAAC,CAACC,MAAM,EAAEj7H,MAAM3D,EAAEguI,MAAM,CAACpP,MAAM,EAAEj7H,MAAMwL,KAAgB,CAAC,MAAM+pD,GAAE,IAAIE,KAAE,GAAG,EAAE,GAAG,GAAG5mD,EAAEqsH,kBAAkB3lE,IAAG9nE,KAAKmnI,WAAWuG,aAAaC,qBAAoB,EAAG3tI,KAAKmnI,WAAW7oB,MAAMsvB,qBAAqBh/H,EAAE,CAACwS,GAAG,EAAE,GAAE,EAAGrB,EAAG,KAAK/f,KAAKmnI,WAAWuG,aAAaC,qBAAoB,GAAK,CAAC8O,YAAY1+H,EAAEsK,EAAE5K,GAAG,MAAM7O,EAAEm1B,KAAE+kG,UAAUzgH,GAAGrI,EAAEzC,KAAKi/B,IAAI,GAAG,EAAE/+B,GAAG,UAAU4K,KAAKtK,EAAE,CAAC,KAAKsK,aAAa1jB,KAAG,SAAS,MAAMoZ,EAAEsK,EAAE00H,aAAa,IAAIh/H,EAAE,SAAS,GAAG,IAAIiC,EAAE,YAAYjC,EAAE8qH,SAASrmH,EAAEzE,EAAE8qH,SAASrmH,EAAE5T,GAAG,MAAM6O,GAAE,IAAIsqD,KAAE,qBAAqB,aAAa,EAAEA,KAAEslE,oBAAoBtlE,KAAEulE,4BAA4F7vH,GAAE8vH,QAAhE,CAAC,CAACC,MAAM,EAAEj7H,MAAMwL,EAAE8qH,SAASrmH,GAAG,CAACgrH,MAAM,EAAEj7H,MAAMwL,EAAE8qH,SAASrmH,EAAE5T,KAAiB,MAAMmR,GAAE,IAAIioD,KAAE,GAAG,EAAE,GAAG,GAAGvqD,GAAEgwH,kBAAkB1tH,IAAG/f,KAAKmnI,WAAWuG,aAAaC,qBAAoB,EAAG3tI,KAAKmnI,WAAW7oB,MAAMsvB,qBAAqB7vH,EAAE,CAACN,IAAG,EAAE,GAAE,EAAGuC,EAAG,KAAKhgB,KAAKmnI,WAAWuG,aAAaC,qBAAoB,GAAK,CAAC,CAAC2O,iBAAiB,KAAKt8I,KAAKq4I,kBAAkB1wI,KAAG,OAAOkL,QAAQuZ,IAAI,0BAA0B,GAAG,MAAMrO,EAAE/d,KAAKq4I,OAAO2E,eAAe,OAAOj/H,EAAEA,EAAEk/H,OAAO,EAAE,CAACzE,gCAAgCz6H,GAAGuO,IAAEksH,gCAAgCz6H,EAAE,CAAC,gBAAIm/H,CAAan/H,GAAG/d,KAAKs8I,iBAAiBr8H,QAASoI,IAAIA,EAAE80H,UAAUvD,iBAAiB35H,QAASoI,IAAIA,EAAEg/G,WAAWh/G,EAAEg/G,SAASkD,MAAMxsH,EAAE,EAAE,IAAI,EAAI,CAACq/H,sBAAsBp9I,KAAKwvI,6BAA6B95H,OAAO,GAAG1V,KAAKwvI,6BAA6B,GAAG6N,aAAajyE,KAAEkyE,MAAMt9I,KAAKqyI,2BAA0B,EAAG,CAACkL,uCAAuCx/H,GAAGuO,IAAE67G,oBAAoBpqH,EAAEs3B,IAAEi+F,0BAA0B,CAACgG,mCAAmC,CAACT,eAAe,EGA34qC,MAAM9wE,WAAUhkC,GAAElkC,YAAYke,EAAEsK,GAAGxkB,MAAMka,EAAEsK,GAAGroB,KAAKw9I,yBAAwB,EAAGx9I,KAAKy9I,sBAAqB,EAAGz9I,KAAKmnI,WAAWuW,sBAAsBC,aAAa,CAAC,SAAS,UAAU,CAACC,wBAAwBv1H,GAAG,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,YAAYA,KAAK69I,gBAAgBx1H,GAAG,MAAMtK,EAAE,GAAG,IAAIA,EAAEE,KAAKoK,EAAE8qC,MAAM8lE,iBAAiBrqH,IAAEkvI,MAAM,OAAU//H,EAAEE,KAAKoK,EAAE8qC,MAAM8lE,iBAAiBrqH,IAAEmvI,aAAa,CAAC,UAAU11H,EAAE8qC,MAAM2lE,WAAW31H,SAASyL,IAAEovI,UAAU,CAAC,MAAMvgI,EAAE,IAAIuC,IAAEpR,IAAEovI,SAAS31H,EAAE8qC,OAAOp1C,EAAEE,KAAKR,EAAEu7G,oBAAoB,OAAOrhH,QAAQyE,IAAI2B,EAAE,EAAG,CAACkgI,yBAAyB51H,GAAG,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,YAAYA,KAAKk+I,iBAAiB,CAAC71H,IAAI,MAAMtK,EAAE,GAAG,IAAIA,EAAEE,KAAKoK,EAAE8qC,MAAM8lE,iBAAiB10H,KAAEu5I,MAAM,OAAU//H,EAAEE,KAAKoK,EAAE8qC,MAAM8lE,iBAAiB10H,KAAEw5I,aAAa,CAAC,UAAU11H,EAAE8qC,MAAM2lE,WAAW31H,SAASoB,KAAEy5I,UAAU,CAAC,MAAMpvI,EAAE,IAAIoR,IAAEzb,KAAEy5I,SAAS31H,EAAE8qC,OAAOp1C,EAAEE,KAAKrP,EAAEoqH,oBAAoB,OAAOrhH,QAAQyE,IAAI2B,EAAE,EAAG,CAACogI,uBAAuB91H,GAAG,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,kBAAkBqoB,EAAE2wG,mBAAmB,EAAG,CAAColB,aAAa/1H,GAAG,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,YAAY,OAAO,IAAIyd,IAAE4K,EAAE,EAAG,CAAC+qC,cAAc/qC,GAAG,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,YAAY,OAAO,IAAIohB,KAAEiH,EAAE,EAAG,CAACkwH,YAAYlwH,GAAG,SAAOtK,MAAE/d,UAAK,OAAO,EAAQ,YAAY,OAAO,IAAI+f,IAAEsI,EAAE,EAAG,CAACw1H,gBAAgB9/H,GAAG,GAAGA,KAAKA,aAAaN,KAAG,MAAM,IAAI6H,MAAM,4HAA4H,CAAC44H,iBAAiBngI,GAAG,GAAGA,EAAE,UAAUsK,KAAKtK,EAAE,GAAGsK,KAAKA,aAAajH,MAAG,MAAM,IAAIkE,MAAM,+HAA+H,CAAC8zH,eAAe,IAAIxqI,EAAE,SAAOmP,MAAE/d,UAAK,OAAO,EAAQ,YAAY,IAAIA,KAAKmiC,WAAW,IAAIniC,KAAKmiC,UAAUzsB,SAAS1V,KAAKgqI,QAAQ,OAAO,MAAMjsH,EAAE,IAAIsK,EAAEtK,EAAE5O,SAASnP,KAAKmiC,UAAUpkB,EAAEoC,OAAOngB,KAAKgqI,QAAQjsH,EAAEkgH,qBAAqBj+H,KAAKw9I,wBAAwBz/H,EAAExa,MAAMvD,KAAKy9I,qBAAqBz9I,KAAKi1I,aAAal3H,EAAEmgH,iBAAiBl+H,KAAK03I,4BAA4B,MAAMj6H,QAAQzd,KAAKq+I,eAAeC,sBAAsBvgI,GAAGxZ,EAAEkZ,EAAE8gI,kBAAkBn9H,EAAE3D,EAAE+gI,eAAex+H,EAAQzb,GAAIvE,KAAKgqI,QAAQvsH,EAAEghI,kBAAkBz+I,KAAK2pB,KAAK,wBAAwBlM,EAAEghI,kBAAkB,MAAM1+H,EAAE,GAAG,IAAIgkB,IAAE,GAAIx/B,GAAGvE,KAAKovI,sBAAsBpvI,KAAKmyI,kCAAkCnyH,EAAEq5H,oBAAoBr5I,KAAKmnI,YAAW,GAAIpjG,IAAE,GAAI3iB,EAAEnB,QAASlC,IAAGgC,EAAE9B,KAAKF,GAAEs7H,oBAAoBr5I,KAAKmnI,YAAW,WAAaxvH,QAAQyE,IAAI2D,GAAGqB,EAAEnB,QAASlC,IAAGA,GAAEsuH,aAAarsH,EAAE0+H,mBAAoB1+I,KAAKk4I,0BAA0Bl4H,GAAGhgB,KAAKu5I,cAAcv5H,EAAEoB,GAAG2iB,WAAU/jC,KAAK83I,8BAA8B93I,KAAK63I,8BAA8B73I,KAAKovI,qBAAqB7qI,EAAEvE,KAAKwvI,6BAA6BpuH,EAAE2iB,KAAI/jC,KAAKuvI,qBAAqBvvH,GAAGhgB,KAAK2+I,wBAAwB3+I,KAAK2+I,uBAAuB3+H,EAAE,QAAQpR,EAAE5O,KAAKmP,gBAAW,IAASP,EAAEA,EAAE,GAAG,EAAG,CAACmmI,yBAAyBh3H,GAAG,OAAO/d,KAAKq+I,eAAeO,2BAA2B7gI,EAAE,CAAC25H,2BAA2B,SAAO35H,MAAE/d,UAAK,OAAO,EAAQ,YAAY,QAAIA,KAAKgqI,kBAAgChqI,KAAKgqI,QAAQ72E,MAAM2lE,WAAW31H,SAASyL,IAAEiwI,SAAS,EAAG,ECAt5G,MAAMx2H,GAAExoB,cAAcG,KAAKmP,SAAS,GAAGnP,KAAKk+H,YAAW,EAAGl+H,KAAK8+I,gBAAe,EAAG9+I,KAAK++I,mCAAkC,CAAE,MCA3Ex6I,gBAAE,SAAUwZ,GAAGA,EAAEiF,MAAM,YAAY,CAAjC,CAAmCze,KAAIA,GAAE,CAAC,IAAI,MAAMyb,WAAUjC,IAAEle,YAAYke,GAAGla,MAAMU,GAAEye,MAAMjF,EAAE,kBCA80G,MAAMnP,GAAE/O,cAAcG,KAAK2kB,QAAQ,CAAC,CAAC,EAAE,SAASqjD,GAAEjqD,GAAG,GAAG,iBAAiBA,GAAG,OAAOA,EAAE,OAAM,EAAG,GAAG,iBAAiBA,EAAE,CAAC,MAAMxZ,EAAEwZ,EAAE+2H,aAAa,YAAO,IAASvwI,GAAG,iBAAiBA,GAAGA,aAAaqK,EAAC,CAAC,OAAM,CAAE,qGCuiFxqH,MAAgD89D,GAAK,2p5FAA4p5FmK,UAAY7uE,OAAS,KAAOA,OAAOo+E,MAAQ,IAAIA,KAAK,CAACI,KAAK9Z,KAAM,CAAEt6D,KAAM,kCACzx5F,SAASkiE,KACP,IAAIhoD,EACJ,IACE,GAAIA,EAAIuqD,KAAO7uE,OAAOc,KAAOd,OAAOg3I,WAAW58D,gBAAgBvL,KAAMvqD,EACnE,KAAM,GACR,OAAO,IAAI2yH,OAAO3yH,EACpB,OACE,OAAO,IAAI2yH,OAAO,sCAAwCvyE,GAC5D,SACEpgD,IAAMtkB,OAAOc,KAAOd,OAAOg3I,WAAWE,gBAAgB5yH,EACxD,CACF,CACA,IAAIw9C,GAAsBx9C,KAAOA,EAAEA,EAAE6yH,YAAc,GAAK,cAAe7yH,EAAEA,EAAE8yH,YAAc,GAAK,cAAe9yH,EAAEA,EAAE+yH,QAAU,GAAK,UAAW/yH,EAAEA,EAAEgzH,cAAgB,GAAK,gBAAiBhzH,EAAEA,EAAEizH,kBAAoB,GAAK,oBAAqBjzH,EAAEA,EAAEkzH,mCAAqC,GAAK,qCAAsClzH,EAAEA,EAAEmzH,gBAAkB,GAAK,kBAAmBnzH,EAAEA,EAAEozH,WAAa,GAAK,aAAcpzH,EAAEA,EAAEqzH,cAAgB,GAAK,gBAAiBrzH,EAAEA,EAAEszH,WAAa,IAAM,aAActzH,EAAEA,EAAEuzH,oBAAsB,IAAM,sBAAuBvzH,EAAEA,EAAEwzH,2BAA6B,IAAM,6BAA8BxzH,EAAEA,EAAEyzH,6BAA+B,IAAM,+BAAgCzzH,EAAEA,EAAE0zH,yBAA2B,IAAM,2BAA4B1zH,EAAEA,EAAE2zH,8BAAgC,IAAM,gCAAiC3zH,GAAnxBA,CAAuxBw9C,IAAK,CAAC,GACvzB,MAAMR,GACJzpE,cACEG,KAAKkgJ,YAAc,EAAGlgJ,KAAKmgJ,cAAgB,EAAGngJ,KAAKqpE,OAAS,IAAI+2E,WAAW,GAAIpgJ,KAAKqgJ,QAAU,IAAIvzE,YAAY,IAAK9sE,KAAKsgJ,SAAW,IAAIz5G,WAAW7mC,KAAKqgJ,QAAS,EAAG,IAAKrgJ,KAAKugJ,UAAY,IAAIx5G,YAAY/mC,KAAKqgJ,QAAS,EAAG,IAAKrgJ,KAAK6zE,OACtO,CACA,cAAO2sE,CAAQp1E,EAAG7mE,GAAI,GACpB,OAAOvE,KAAKygJ,cAAc5sE,QAAQ6sE,UAAUt1E,GAAG+nB,IAAI5uF,EACrD,CACA,mBAAOo8I,CAAav1E,EAAG7mE,GAAI,GACzB,OAAOvE,KAAKygJ,cAAc5sE,QAAQ+sE,eAAex1E,GAAG+nB,IAAI5uF,EAC1D,CACA,WAAOs8I,CAAKz1E,GACV,MAAM7mE,EAAI+kE,GAAEw3E,SAAUryI,EAAI66D,GAAEy3E,OAC5B,IAAIxrI,EAAGwyD,EAAGiE,EAAGzB,EACb,IAAKA,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtB,IAAKxC,EAAQ,EAAJwC,EAAOh1D,EAAI61D,EAAEb,GAAIyB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC3Cv9D,EAAEs5D,EAAI,EAAIiE,GAAKznE,EAAEk6H,OAAW,GAAJlpH,GAASA,KAAO,EAAG9G,EAAEs5D,EAAI,EAAIiE,GAAKznE,EAAEk6H,OAAW,GAAJlpH,GAASA,KAAO,EACvF,OAAO9G,EAAEvE,KAAK,GAChB,CACA,gBAAO82I,CAAU51E,EAAG7mE,GAClB,IAAIkK,EAAI28D,EAAE,GAAI71D,EAAI61D,EAAE,GAAIrD,EAAIqD,EAAE,GAAIY,EAAIZ,EAAE,GACxC38D,IAAM8G,EAAIwyD,GAAKxyD,EAAIy2D,GAAKznE,EAAE,GAAK,UAAY,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMv9D,EAAI8G,GAAK9G,EAAIs5D,GAAKxjE,EAAE,GAAK,UAAY,EAAGynE,GAAKA,GAAK,GAAKA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMiE,EAAIv9D,GAAKu9D,EAAIz2D,GAAKhR,EAAE,GAAK,UAAY,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMwyD,EAAIiE,GAAKjE,EAAIt5D,GAAKlK,EAAE,GAAK,WAAa,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,IAAMwyD,EAAI,EAAGt5D,IAAM8G,EAAIwyD,GAAKxyD,EAAIy2D,GAAKznE,EAAE,GAAK,UAAY,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMv9D,EAAI8G,GAAK9G,EAAIs5D,GAAKxjE,EAAE,GAAK,WAAa,EAAGynE,GAAKA,GAAK,GAAKA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMiE,EAAIv9D,GAAKu9D,EAAIz2D,GAAKhR,EAAE,GAAK,WAAa,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMwyD,EAAIiE,GAAKjE,EAAIt5D,GAAKlK,EAAE,GAAK,SAAW,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,IAAMwyD,EAAI,EAAGt5D,IAAM8G,EAAIwyD,GAAKxyD,EAAIy2D,GAAKznE,EAAE,GAAK,WAAa,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMv9D,EAAI8G,GAAK9G,EAAIs5D,GAAKxjE,EAAE,GAAK,WAAa,EAAGynE,GAAKA,GAAK,GAAKA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMiE,EAAIv9D,GAAKu9D,EAAIz2D,GAAKhR,EAAE,IAAM,MAAQ,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMwyD,EAAIiE,GAAKjE,EAAIt5D,GAAKlK,EAAE,IAAM,WAAa,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,IAAMwyD,EAAI,EAAGt5D,IAAM8G,EAAIwyD,GAAKxyD,EAAIy2D,GAAKznE,EAAE,IAAM,WAAa,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMv9D,EAAI8G,GAAK9G,EAAIs5D,GAAKxjE,EAAE,IAAM,SAAW,EAAGynE,GAAKA,GAAK,GAAKA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMiE,EAAIv9D,GAAKu9D,EAAIz2D,GAAKhR,EAAE,IAAM,WAAa,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMwyD,EAAIiE,GAAKjE,EAAIt5D,GAAKlK,EAAE,IAAM,WAAa,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,IAAMwyD,EAAI,EAAGt5D,IAAM8G,EAAIy2D,EAAIjE,GAAKiE,GAAKznE,EAAE,GAAK,UAAY,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMv9D,EAAIs5D,EAAIxyD,GAAKwyD,GAAKxjE,EAAE,GAAK,WAAa,EAAGynE,GAAKA,GAAK,EAAIA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMiE,EAAIz2D,EAAI9G,GAAK8G,GAAKhR,EAAE,IAAM,UAAY,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMwyD,EAAIt5D,EAAIu9D,GAAKv9D,GAAKlK,EAAE,GAAK,UAAY,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,IAAMwyD,EAAI,EAAGt5D,IAAM8G,EAAIy2D,EAAIjE,GAAKiE,GAAKznE,EAAE,GAAK,UAAY,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMv9D,EAAIs5D,EAAIxyD,GAAKwyD,GAAKxjE,EAAE,IAAM,SAAW,EAAGynE,GAAKA,GAAK,EAAIA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMiE,EAAIz2D,EAAI9G,GAAK8G,GAAKhR,EAAE,IAAM,UAAY,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMwyD,EAAIt5D,EAAIu9D,GAAKv9D,GAAKlK,EAAE,GAAK,UAAY,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,IAAMwyD,EAAI,EAAGt5D,IAAM8G,EAAIy2D,EAAIjE,GAAKiE,GAAKznE,EAAE,GAAK,UAAY,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMv9D,EAAIs5D,EAAIxyD,GAAKwyD,GAAKxjE,EAAE,IAAM,WAAa,EAAGynE,GAAKA,GAAK,EAAIA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMiE,EAAIz2D,EAAI9G,GAAK8G,GAAKhR,EAAE,GAAK,UAAY,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMwyD,EAAIt5D,EAAIu9D,GAAKv9D,GAAKlK,EAAE,GAAK,WAAa,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,IAAMwyD,EAAI,EAAGt5D,IAAM8G,EAAIy2D,EAAIjE,GAAKiE,GAAKznE,EAAE,IAAM,WAAa,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMv9D,EAAIs5D,EAAIxyD,GAAKwyD,GAAKxjE,EAAE,GAAK,SAAW,EAAGynE,GAAKA,GAAK,EAAIA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMiE,EAAIz2D,EAAI9G,GAAK8G,GAAKhR,EAAE,GAAK,WAAa,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMwyD,EAAIt5D,EAAIu9D,GAAKv9D,GAAKlK,EAAE,IAAM,WAAa,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,IAAMwyD,EAAI,EAAGt5D,IAAM8G,EAAIwyD,EAAIiE,GAAKznE,EAAE,GAAK,OAAS,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMv9D,EAAI8G,EAAIwyD,GAAKxjE,EAAE,GAAK,WAAa,EAAGynE,GAAKA,GAAK,GAAKA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMiE,EAAIv9D,EAAI8G,GAAKhR,EAAE,IAAM,WAAa,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMwyD,EAAIiE,EAAIv9D,GAAKlK,EAAE,IAAM,SAAW,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,GAAKwyD,EAAI,EAAGt5D,IAAM8G,EAAIwyD,EAAIiE,GAAKznE,EAAE,GAAK,WAAa,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMv9D,EAAI8G,EAAIwyD,GAAKxjE,EAAE,GAAK,WAAa,EAAGynE,GAAKA,GAAK,GAAKA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMiE,EAAIv9D,EAAI8G,GAAKhR,EAAE,GAAK,UAAY,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMwyD,EAAIiE,EAAIv9D,GAAKlK,EAAE,IAAM,WAAa,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,GAAKwyD,EAAI,EAAGt5D,IAAM8G,EAAIwyD,EAAIiE,GAAKznE,EAAE,IAAM,UAAY,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMv9D,EAAI8G,EAAIwyD,GAAKxjE,EAAE,GAAK,UAAY,EAAGynE,GAAKA,GAAK,GAAKA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMiE,EAAIv9D,EAAI8G,GAAKhR,EAAE,GAAK,UAAY,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMwyD,EAAIiE,EAAIv9D,GAAKlK,EAAE,GAAK,SAAW,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,GAAKwyD,EAAI,EAAGt5D,IAAM8G,EAAIwyD,EAAIiE,GAAKznE,EAAE,GAAK,UAAY,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMv9D,EAAI8G,EAAIwyD,GAAKxjE,EAAE,IAAM,UAAY,EAAGynE,GAAKA,GAAK,GAAKA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMiE,EAAIv9D,EAAI8G,GAAKhR,EAAE,IAAM,UAAY,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMwyD,EAAIiE,EAAIv9D,GAAKlK,EAAE,GAAK,UAAY,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,GAAKwyD,EAAI,EAAGt5D,IAAMs5D,GAAKxyD,GAAKy2D,IAAMznE,EAAE,GAAK,UAAY,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMz2D,GAAK9G,GAAKs5D,IAAMxjE,EAAE,GAAK,WAAa,EAAGynE,GAAKA,GAAK,GAAKA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMt5D,GAAKu9D,GAAKz2D,IAAMhR,EAAE,IAAM,WAAa,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMy2D,GAAKjE,GAAKt5D,IAAMlK,EAAE,GAAK,SAAW,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,IAAMwyD,EAAI,EAAGt5D,IAAMs5D,GAAKxyD,GAAKy2D,IAAMznE,EAAE,IAAM,WAAa,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMz2D,GAAK9G,GAAKs5D,IAAMxjE,EAAE,GAAK,WAAa,EAAGynE,GAAKA,GAAK,GAAKA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMt5D,GAAKu9D,GAAKz2D,IAAMhR,EAAE,IAAM,QAAU,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMy2D,GAAKjE,GAAKt5D,IAAMlK,EAAE,GAAK,WAAa,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,IAAMwyD,EAAI,EAAGt5D,IAAMs5D,GAAKxyD,GAAKy2D,IAAMznE,EAAE,GAAK,WAAa,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMz2D,GAAK9G,GAAKs5D,IAAMxjE,EAAE,IAAM,SAAW,EAAGynE,GAAKA,GAAK,GAAKA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMt5D,GAAKu9D,GAAKz2D,IAAMhR,EAAE,GAAK,WAAa,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMy2D,GAAKjE,GAAKt5D,IAAMlK,EAAE,IAAM,WAAa,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,IAAMwyD,EAAI,EAAGt5D,IAAMs5D,GAAKxyD,GAAKy2D,IAAMznE,EAAE,GAAK,UAAY,EAAGkK,GAAKA,GAAK,EAAIA,IAAM,IAAM8G,EAAI,EAAGy2D,IAAMz2D,GAAK9G,GAAKs5D,IAAMxjE,EAAE,IAAM,WAAa,EAAGynE,GAAKA,GAAK,GAAKA,IAAM,IAAMv9D,EAAI,EAAGs5D,IAAMt5D,GAAKu9D,GAAKz2D,IAAMhR,EAAE,GAAK,UAAY,EAAGwjE,GAAKA,GAAK,GAAKA,IAAM,IAAMiE,EAAI,EAAGz2D,IAAMy2D,GAAKjE,GAAKt5D,IAAMlK,EAAE,GAAK,UAAY,EAAGgR,GAAKA,GAAK,GAAKA,IAAM,IAAMwyD,EAAI,EAAGqD,EAAE,GAAK38D,EAAI28D,EAAE,GAAK,EAAGA,EAAE,GAAK71D,EAAI61D,EAAE,GAAK,EAAGA,EAAE,GAAKrD,EAAIqD,EAAE,GAAK,EAAGA,EAAE,GAAKY,EAAIZ,EAAE,GAAK,CAC/+J,CAIAyI,QACE,OAAO7zE,KAAKkgJ,YAAc,EAAGlgJ,KAAKmgJ,cAAgB,EAAGngJ,KAAKqpE,OAAOnsD,IAAIosD,GAAE23E,eAAgBjhJ,IACzF,CAQA0gJ,UAAUt1E,GACR,MAAM7mE,EAAIvE,KAAKsgJ,SAAU7xI,EAAIzO,KAAKugJ,UAClC,IAA4Bx4E,EAAGiE,EAA3Bz2D,EAAIvV,KAAKmgJ,cACb,IAAKn0E,EAAI,EAAGA,EAAIZ,EAAE11D,OAAQs2D,GAAK,EAAG,CAChC,GAAIjE,EAAIqD,EAAEwb,WAAW5a,GAAIjE,EAAI,IAC3BxjE,EAAEgR,KAAOwyD,UACFA,EAAI,KACXxjE,EAAEgR,KAAmB,KAAXwyD,IAAM,GAAUxjE,EAAEgR,KAAW,GAAJwyD,EAAS,YACrCA,EAAI,OAASA,EAAI,MACxBxjE,EAAEgR,KAAoB,KAAZwyD,IAAM,IAAWxjE,EAAEgR,KAAOwyD,IAAM,EAAI,GAAK,IAAKxjE,EAAEgR,KAAW,GAAJwyD,EAAS,QACvE,CACH,GAAIA,EAAkB,MAAbA,EAAI,QAAiBqD,EAAEwb,aAAa5a,GAAK,OAAS,MAAOjE,EAAI,QACpE,MAAM,IAAIziD,MAAM,wDAClB/gB,EAAEgR,KAAoB,KAAZwyD,IAAM,IAAWxjE,EAAEgR,KAAOwyD,IAAM,GAAK,GAAK,IAAKxjE,EAAEgR,KAAOwyD,IAAM,EAAI,GAAK,IAAKxjE,EAAEgR,KAAW,GAAJwyD,EAAS,GAC1G,CACAxyD,GAAK,KAAOvV,KAAKkgJ,aAAe,GAAI52E,GAAE03E,UAAUhhJ,KAAKqpE,OAAQ56D,GAAI8G,GAAK,GAAI9G,EAAE,GAAKA,EAAE,IACrF,CACA,OAAOzO,KAAKmgJ,cAAgB5qI,EAAGvV,IACjC,CAKA4gJ,eAAex1E,GACb,MAAM7mE,EAAIvE,KAAKsgJ,SAAU7xI,EAAIzO,KAAKugJ,UAClC,IAA4Bx4E,EAAxBxyD,EAAIvV,KAAKmgJ,cAAkBn0E,EAAI,EACnC,OAAW,CACT,IAAKjE,EAAIxqD,KAAKi/B,IAAI4uB,EAAE11D,OAASs2D,EAAG,GAAKz2D,GAAIwyD,KACvCxjE,EAAEgR,KAAO61D,EAAEwb,WAAW5a,KACxB,GAAIz2D,EAAI,GACN,MACFvV,KAAKkgJ,aAAe,GAAI52E,GAAE03E,UAAUhhJ,KAAKqpE,OAAQ56D,GAAI8G,EAAI,CAC3D,CACA,OAAOvV,KAAKmgJ,cAAgB5qI,EAAGvV,IACjC,CAKAkhJ,gBAAgB91E,GACd,MAAM7mE,EAAIvE,KAAKsgJ,SAAU7xI,EAAIzO,KAAKugJ,UAClC,IAA4Bx4E,EAAxBxyD,EAAIvV,KAAKmgJ,cAAkBn0E,EAAI,EACnC,OAAW,CACT,IAAKjE,EAAIxqD,KAAKi/B,IAAI4uB,EAAE11D,OAASs2D,EAAG,GAAKz2D,GAAIwyD,KACvCxjE,EAAEgR,KAAO61D,EAAEY,KACb,GAAIz2D,EAAI,GACN,MACFvV,KAAKkgJ,aAAe,GAAI52E,GAAE03E,UAAUhhJ,KAAKqpE,OAAQ56D,GAAI8G,EAAI,CAC3D,CACA,OAAOvV,KAAKmgJ,cAAgB5qI,EAAGvV,IACjC,CAIAmhJ,WACE,MAAM/1E,EAAIprE,KAAKqpE,OACf,MAAO,CACL+E,OAAQpB,OAAOo0E,aAAa5kI,MAAM,KAAMc,MAAMhI,KAAKtV,KAAKsgJ,WACxDe,OAAQrhJ,KAAKmgJ,cACbzqI,OAAQ1V,KAAKkgJ,YACbj8I,MAAO,CAACmnE,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAEhC,CAKAk2E,SAASl2E,GACP,MAAM7mE,EAAI6mE,EAAEgD,OAAQ3/D,EAAI28D,EAAEnnE,MAAOsR,EAAIvV,KAAKqpE,OAC1C,IAAItB,EACJ,IAAK/nE,KAAKkgJ,YAAc90E,EAAE11D,OAAQ1V,KAAKmgJ,cAAgB/0E,EAAEi2E,OAAQ9rI,EAAE,GAAK9G,EAAE,GAAI8G,EAAE,GAAK9G,EAAE,GAAI8G,EAAE,GAAK9G,EAAE,GAAI8G,EAAE,GAAK9G,EAAE,GAAIs5D,EAAI,EAAGA,EAAIxjE,EAAEmR,OAAQqyD,GAAK,EAC7I/nE,KAAKsgJ,SAASv4E,GAAKxjE,EAAEqiF,WAAW7e,EACpC,CAKAorB,IAAI/nB,GAAI,GACN,MAAM7mE,EAAIvE,KAAKmgJ,cAAe1xI,EAAIzO,KAAKsgJ,SAAU/qI,EAAIvV,KAAKugJ,UAAWx4E,EAAe,GAAVxjE,GAAK,GAC/EvE,KAAKkgJ,aAAe37I,EACpB,MAAMynE,EAAuB,EAAnBhsE,KAAKkgJ,YACf,GAAIzxI,EAAElK,GAAK,IAAKkK,EAAElK,EAAI,GAAKkK,EAAElK,EAAI,GAAKkK,EAAElK,EAAI,GAAK,EAAGgR,EAAE2H,IAAIosD,GAAEi4E,iBAAiBC,SAASz5E,GAAIA,GAAIxjE,EAAI,KAAO+kE,GAAE03E,UAAUhhJ,KAAKqpE,OAAQ9zD,GAAIA,EAAE2H,IAAIosD,GAAEi4E,mBAAoBv1E,GAAK,WACrKz2D,EAAE,IAAMy2D,MACL,CACH,MAAMzB,EAAIyB,EAAE9iE,SAAS,IAAIgyC,MAAM,kBAC/B,GAAU,OAANqvB,EACF,OACF,MAAMzB,GAAIspC,SAAS7nC,EAAE,GAAI,IAAKQ,GAAIqnC,SAAS7nC,EAAE,GAAI,KAAO,EACxDh1D,EAAE,IAAMuzD,GAAGvzD,EAAE,IAAMw1D,EACrB,CACA,OAAOzB,GAAE03E,UAAUhhJ,KAAKqpE,OAAQ9zD,GAAI61D,EAAIprE,KAAKqpE,OAASC,GAAEu3E,KAAK7gJ,KAAKqpE,OACpE,EAOF,GALAC,GAAE23E,cAAgB,IAAIb,WAAW,CAAC,YAAY,WAAY,WAAa,YACvE92E,GAAEi4E,iBAAmB,IAAInB,WAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAClF92E,GAAEw3E,SAAW,mBACbx3E,GAAEy3E,OAAS,GACXz3E,GAAEm3E,cAAgB,IAAIn3E,GACK,qCAAvBA,GAAEk3E,QAAQ,SACZ,MAAM,IAAIl7H,MAAM,yBAClB,MAAMm8H,GACJ5hJ,cACEG,KAAK0hJ,OAAS/pI,QAAQC,UAAW5X,KAAK2hJ,WAAY,CACpD,CACAC,OACE,IAAIx2E,EAAIA,OAER,OAAOprE,KAAK0hJ,OAAS1hJ,KAAK0hJ,OAAOrhJ,KAAK,IAAM,IAAIsX,QAAQyzD,IAAK,IAAIzzD,QAASpT,IACxE6mE,EAAI7mE,GAER,CACA,YAAIs9I,GACF,OAAO7hJ,KAAK2hJ,SACd,CACM1wI,SAASm6D,GAAG,IAAAlrE,EAAAF,KAAA,SAAAG,KAAA,YAChB,MAAMoE,QAAUrE,EAAK0hJ,OACrB1hJ,EAAKyhJ,WAAY,EACjB,IACE,aAAahqI,QAAQC,QAAQwzD,IAC/B,SACE7mE,IAAKrE,EAAKyhJ,WAAY,CACxB,CAAC,EAPe,EAQlB,EAEF,MAAMG,GACJjiJ,cACEG,KAAK0hJ,OAAS,IAAID,GAAMzhJ,KAAK+hJ,QAAU,IAAIztE,GAAMt0E,KAAKgiJ,WAAa,GAAIhiJ,KAAKiiJ,iBAAkB,EAAIjiJ,KAAKkiJ,UAAY,GAAIliJ,KAAKmiJ,qBAAuB,IACrJ,CACAC,mBAAmBh3E,EAAG7mE,GAAK+rB,OAAQ7hB,IACjC,OAAO,IAAIkJ,QAAQ,CAACowD,EAAGiE,KACrBv9D,EAAEmqE,UAAY/lE,QAAQuZ,IAAI,8CAA+C4/C,EAAE,IAAIwM,aAAa,sBAAuB,gBAAiB/pE,EAAEoqE,iBAAiB,QAAS,KAC9JhmE,QAAQuZ,IAAI,qCAAsC4/C,EAAEv9D,EAAEkqE,OAAM,GAC1DvN,EAAEi3E,UAAa93E,IACjBxC,EAAEwC,EAAE9kE,KAAI,EACP2lE,EAAEmrC,QAAWhsC,IACd13D,QAAQuZ,IAAI,gBAAiB4/C,EAAEzB,EAAC,EAC/Ba,EAAEk3E,eAAkB/3E,IACrB13D,QAAQuZ,IAAI,uBAAwB4/C,EAAEzB,EAAC,EACtCa,EAAEm3E,qBAAwBh4E,IAC3B13D,QAAQuZ,IAAI,6BAA8B4/C,EAAEzB,EAAC,EAC5C13D,QAAQuZ,IAAI,+BAAiC7nB,EAAEi+I,SAAUp3E,EAAEq3E,YAAYl+I,EAAC,EAE/E,CACMm+I,WAAWt3E,GAAG,IAAAvjE,EAAA7H,KAAA,SAAAG,KAAA,YAClB,OAAO0H,EAAK65I,OAAOzwI,UAAQ9Q,OAAC,YAC1B,MAAMoE,EAAI,IAAI2rB,gBACd,aAAaroB,EAAKu6I,mBAAmBv6I,EAAKk6I,QAAS32E,EAAG,CAAE96C,OAAQ/rB,EAAE+rB,QACpE,GAAG,EAJe,EAKpB,CACMqyH,cAAcv3E,GAAG,IAAArjE,EAAA/H,KAAA,SAAAG,KAAA,YACrB,aAAa4H,EAAK26I,WAAW,CAC3BF,QAAS14E,GAAEw1E,cACXsD,MAAOx3E,GACN,EAJkB,EAKvB,CACMy3E,YAAYz3E,EAAG7mE,GAAG,IAAAmE,EAAA1I,KAAA,SAAAG,KAAA,kBAChBuI,EAAKg6I,WAAW,CAAEF,QAAS14E,GAAEs1E,YAAawD,MAAO,CAAEE,WAAY13E,EAAG23E,SAAUx+I,IAAO,EADnE,EAExB,CAIAy+I,wBACE,GAAIhjJ,KAAKiiJ,gBACP,OAAO,EACT,MAAM72E,EAAIprE,KAAKgiJ,WACf,OAAOhiJ,KAAKgiJ,WAAa,GAAIrqI,QAAQyE,IAAIgvD,EAAE/kE,IAAK9B,GAAY,OAANA,EAAaoT,QAAQC,UAAYrT,EAAElE,KAAMoO,IAC7FA,IAAMzO,KAAK+hJ,SAAWtzI,EAAEovE,WAAU,KAC/Bx9E,MACP,CACM4iJ,QAAQ73E,EAAG7mE,EAAGkK,EAAG8G,EAAGwyD,EAAGiE,EAAGzB,EAAGzB,GAAGiC,IAAG,IAAA5hE,GAAAnJ,KAAA,SAAAG,KAAA,YACvC,MAAM0qE,GAAI3jC,KAAKg4C,MACf,GAAI/1E,GAAKg5I,uBAAyBh5I,GAAKg5I,qBAAqBnsH,QAAS7sB,GAAKg5I,qBAAuB,KAAMtvI,QAAQuZ,IAAI,oCAAqCjjB,GAAK65I,yBAA0Bl6E,IAAU,GAALiC,SAAgB,IAANiB,EACpM,aAAa7iE,GAAKu5I,WAAW,CAAEF,QAAS14E,GAAEu1E,QAASuD,MAAO,CACxDM,WAAY93E,EACZ+3E,aAAc5+I,EACd25H,WAAYzvH,EACZqwI,eAAgBvpI,EAChBwpI,kCAAmCh3E,KAEvC5+D,GAAKg5I,qBAAuB,IAAIjyH,gBAChC,MAAMy6C,GAAIxhE,GAAKg5I,qBAAsBn/E,SAAU75D,GAAKi6I,WAAWh4E,EAAG7mE,EAAGomE,GAAGqB,EAAGzB,EAAGzB,GAAGiC,IAAIxB,SAAUpgE,GAAKk6I,oBAAoBj4E,EAAG7mE,EAAGy+D,GAAGv0D,EAAG8G,EAAGwyD,EAAG4C,IAC1I,GAAIA,GAAEr6C,OAAOsoD,QACX,MAAMjO,GAAEr6C,OAAOqoD,OACjB,OAAOxvE,GAAKg5I,qBAAuB,KAAMtvI,QAAQuZ,IAAK,yBAAuB8a,KAAKg4C,MAAQrU,KAAMtB,EAAE,EAd3D,EAezC,CACM65E,WAAWh4E,EAAG7mE,EAAGkK,EAAG8G,EAAGwyD,EAAGiE,EAAGzB,GAAG,IAAAhhE,GAAAvJ,KAAA,SAAAG,KAAA,YACpC,GAAIsO,EAAE6hB,OAAOsoD,QACX,MAAMnqE,EAAE6hB,OAAOqoD,OACjBlqE,EAAE6hB,OAAOuoD,iBAAiB,QAAS,QAC/BtO,EAAIA,GAAK,EAAGxC,EAAIA,IAAK,EAAIiE,EAAIA,IAAK,EACtC,IAAIlD,GAAI,GACR,GAAIvzD,EAAG,CACL,MAAMo1D,GAAI,IAAIrB,GAAKtG,SAAUoI,EAAEk4E,cAC/B34E,GAAEu2E,gBAAgB,IAAIr6G,WAAWm8B,KAAK8F,GAAI6B,GAAEwoB,KAAI,EAClD,CACA,IAAIpoB,GAAI,EACR,MAAMF,GAAI9C,EAAI,GAAKx+D,GAAKy4I,WACxBz4I,GAAK04I,iBAAkB,EACvB,IACE,IAAKj2E,GAAiB,GAAZnB,GAAEn1D,QAAgC,OAAjBnM,GAAKw4I,SAAoBl3E,GAAE5sD,KAAKtG,QAAQC,QAAQrO,GAAKw4I,UAAWl3E,GAAEn1D,OAAS60D,GACpGM,GAAE5sD,KAAK,MACT,MAAM0sD,GAAIpmE,EAAE8B,IAAI,CAACkjE,GAAGg6E,KAAOh6E,GAAE+5E,cAAcjjJ,KAAMmjJ,KAC/C,IAAIt5E,GAAI,GACR,GAAI30D,EAAG,CACL,MAAMm1D,GAAI,IAAIpB,GACdoB,GAAEw2E,gBAAgB,IAAIr6G,WAAW28G,KAAMt5E,GAAIQ,GAAEyoB,KAAI,EACnD,CACA,MAAM3oB,GAAIA,KACR,GAAI/7D,EAAE6hB,OAAOsoD,QACX,MAAMnqE,EAAE6hB,OAAOqoD,OACjB,MAAMjO,GAAIK,GAAIR,EACd,GAAIQ,KAAc,OAATF,GAAEH,IAAa,CACtB,GAAIj8D,EAAE6hB,OAAOsoD,QACX,MAAMnqE,EAAE6hB,OAAOqoD,OACjB9N,GAAEH,IAAK,IAAI/yD,QAASiyD,KAClB,MAAM65E,GAAK,IAAInvE,GACf/qE,GAAK64I,mBAAmBqB,GAAI,CAAEjB,QAAS14E,GAAEq1E,YAAayD,MAAOr5I,GAAK24I,WAAa,CAAE5xH,OAAQ7hB,EAAE6hB,SAAUjwB,KAAK,IAAMupE,GAAE65E,KAAKl7I,MAAO0iE,KAC5Hp4D,QAAQuZ,IAAI,uCAAwCw9C,GAAE65E,GAAE,EACzD,EAEL,CACA,MAAMh6E,GAAIoB,GAAEH,IAAIY,GAAI7B,GAAEppE,KAAMupE,IAAMA,KAAMrgE,GAAKw4I,QAAUx4I,GAAK64I,mBAAmBx4E,GAAG,CAAE44E,QAAS14E,GAAE81E,WAAYgD,MAAO,CAAEM,WAAY93E,EAAGs4E,YAAan6E,KAAO,CAAEj5C,OAAQ7hB,EAAE6hB,SAAY/mB,GAAKm5I,WAAW,CAAEF,QAAS14E,GAAE81E,WAAYgD,MAAO,CAAEM,WAAY93E,EAAGs4E,YAAan6E,OAC7P,OAAOsB,GAAEH,IAAKY,GAAEjrE,KAAK,IAAMopE,IAAIl0D,GAAK+1D,GAAEjrE,KAAMupE,KAC1Cr0D,EAAE2H,IAAIgtD,GAAIpB,GAAGc,GAAC,GACbrhE,MAAOqhE,KACR,KAAMA,cAAatkD,QAAqB,eAAXskD,GAAErjE,KAC7B,MAAMqjE,KACN0B,IAEN,OAAO/1D,EAAIA,EAAEzS,IAAIonE,GAAIpB,IAAGzoE,KAAMqqE,IAAMA,GAAI/yD,QAAQC,QAAQ8yD,IAAKF,MAAOA,IAAE,IAExE,aAAa7yD,QAAQyE,IAAIuuD,GAC3B,SACE,GAAIphE,GAAK04I,iBAAkB,EAAIl6E,EAC7B,UAAW4C,MAAKE,GACd,GAAU,OAANF,GAAY,CACd,MAAM3H,SAAU2H,GAChB3H,IAAKz5D,GAAKw4I,SAAW/+E,GAAE6a,WACzB,CAEN,CAAC,EAvDmC,EAwDtC,CACMwlE,oBAAoBj4E,EAAG7mE,EAAGkK,EAAG8G,EAAGwyD,EAAGiE,EAAGzB,GAAG,IAAA9gE,GAAAzJ,KAAA,SAAAG,KAAA,YAC7C,GAAIoqE,EAAEj6C,OAAOsoD,QACX,MAAMrO,EAAEj6C,OAAOqoD,OACjB,aAAalvE,GAAKi5I,WAAW,CAAEF,QAAS14E,GAAE+1E,oBAAqB+C,MAAO,CACpEM,WAAY93E,EACZ+3E,aAAc5+I,EACdo/I,kBAAmBl1I,EACnByvH,WAAY3oH,EACZupI,eAAgB/2E,EAChBg3E,kCAAmC/yE,IAChC,EAVwC,EAW/C,CACM43E,2BAA2Bx4E,EAAG7mE,EAAGkK,GAAG,IAAAq9E,EAAA9rF,KAAA,SAAAG,KAAA,YACxC,aAAa2rF,EAAK42D,WAAW,CAAEF,QAAS14E,GAAEg2E,2BAA4B8C,MAAO,CAC3EM,WAAY93E,EACZ+3E,aAAc5+I,EACd25H,WAAYzvH,IACT,EALmC,EAM1C,CACMo1I,kBAAkBz4E,EAAG7mE,EAAGkK,GAAG,IAAAw9E,EAAAjsF,KAAA,SAAAG,KAAA,YAC/B,aAAa8rF,EAAKy2D,WAAW,CAAEF,QAAS14E,GAAEy1E,kBAAmBqD,MAAO,CAClEc,YAAat4E,EACb04E,wBAAyBv/I,EACzBw/I,UAAWt1I,IACR,EAL0B,EAMjC,CACMu1I,mCAAmC54E,EAAG7mE,EAAGkK,GAAG,IAAA29E,EAAApsF,KAAA,SAAAG,KAAA,YAChD,aAAaisF,EAAKs2D,WAAW,CAAEF,QAAS14E,GAAE01E,mCAAoCoD,MAAO,CAAEqB,UAAW74E,EAAGxmE,OAAQL,EAAG2/I,qBAAsBz1I,IAAO,EAD7F,EAElD,CACM01I,gBAAgB/4E,GAAG,IAAAohB,EAAAxsF,KAAA,SAAAG,KAAA,YACvB,aAAaqsF,EAAKk2D,WAAW,CAAEF,QAAS14E,GAAE21E,gBAAiBmD,MAAOx3E,GAAK,EADhD,EAEzB,CACMg5E,WAAWh5E,GAAG,IAAAuhB,EAAA3sF,KAAA,SAAAG,KAAA,YAClB,aAAawsF,EAAK+1D,WAAW,CAAEF,QAAS14E,GAAE41E,WAAYkD,MAAOx3E,GAAK,EADhD,EAEpB,CACMi5E,6BAA6Bj5E,GAAG,IAAAk5E,EAAAtkJ,KAAA,SAAAG,KAAA,YACpC,aAAamkJ,EAAK5B,WAAW,CAAEF,QAAS14E,GAAEi2E,6BAA8B6C,MAAOx3E,GAAK,EADhD,EAEtC,CACMm5E,cAAcn5E,GAAG,IAAAo5E,EAAAxkJ,KAAA,SAAAG,KAAA,YACrB,aAAaqkJ,EAAK9B,WAAW,CAAEF,QAAS14E,GAAE61E,cAAeiD,MAAOx3E,GAAK,EADhD,EAEvB,CACMq5E,YAAYr5E,GAAG,IAAAs5E,EAAA1kJ,KAAA,SAAAG,KAAA,YACnBukJ,EAAKxC,UAAY92E,QAASs5E,EAAKhC,WAAW,CAAEF,QAAS14E,GAAEq1E,YAAayD,MAAO8B,EAAKxC,WAAa,EAD1E,EAErB,CACAyC,gBAAgBv5E,GACd,OAAOA,EAAEnmE,QAhVF,oCAgVc,QACvB,8BCx3FF,MAAM8Y,UAAsBq6D,WAApB,IAA+BA,kBAA+BC,KAApB,IAAyBA,YAAyBrwE,OAApB,IAA2BA,OAAOswE,OAAOjwD,GAAElU,OAAOmzB,KAAKtnB,GAAE1C,MAAMqnB,QAAQ,SAASvjB,GAAErD,EAAEiC,GAAG,MAAM,iBAAiBA,GAAGqI,GAAErI,GAAGC,QAAS,SAASoI,GAAGtK,EAAEsK,GAAGrI,EAAEqI,EAAE,GAAItK,CAAC,QAAqBpG,QAApB,KAA6BoG,GAAEpG,UAAUoG,GAAEpG,QAAQA,SAAS,MAAMpT,GAAE4P,OAAOqyB,eAAe/oB,GAAE,CAAC,EAAEuuB,eAAe,SAASjsB,GAAEhC,EAAEsK,GAAG,OAAO5K,GAAEszC,KAAKhzC,EAAEsK,EAAE,CAAC,SAASzZ,GAAEmP,EAAEiC,GAAG,mBAAmBA,IAAIA,EAAEA,EAAEzb,GAAEwZ,aAA0B6mI,QAApB,IAA4Bv8H,GAAEu8H,QAAQC,SAAS7kI,GAAGC,QAASoI,IAAIy/C,GAAE/pD,EAAEsK,EAAErI,EAAEqI,GAAE,EAAI,CAAC,MAAM1jB,GAAEwP,OAAOwzB,eAAe,SAASmgC,GAAE/pD,EAAEsK,EAAErI,EAAEzb,GAAGI,GAAEoZ,EAAEsK,EAAEjH,GAAEpB,GAAGD,GAAEC,EAAE,QAAQ,mBAAmBA,EAAEld,IAAI,CAACA,IAAIkd,EAAEld,IAAIoa,IAAI8C,EAAE9C,IAAI6qB,cAAa,GAAI,CAACx1B,MAAMyN,EAAE+nB,cAAa,EAAGD,UAAS,GAAIvjC,GAAG,CAAC,SAASkK,GAAEsP,GAAG,MAAM,CAACzI,KAAK,SAAS+S,GAAG,OAAOtK,EAAEwmB,UAAUpwB,OAAOizB,OAAO/e,EAAEkc,WAAWujC,GAAE/pD,EAAEwmB,UAAU,cAAcxmB,GAAG,CAAC+mI,OAAOl2I,GAAEq/B,KAAK,KAAKlwB,EAAEwmB,WAAW,EAAE,CAAC,MAAMwjC,GAAE5zD,OAAOuzB,yBAAyB,SAAS3D,GAAEhmB,EAAEsK,GAAG,IAAIrI,EAAE,OAAO+nD,GAAEhqD,EAAEsK,KAAKrI,EAAEzb,GAAEwZ,KAAKgmB,GAAE/jB,EAAEqI,EAAE,CAAC,MAAMyT,GAAE,GAAGpe,MAAM,SAAS23B,GAAEt3B,EAAEsK,EAAErI,GAAG,OAAO8b,GAAEi1B,KAAKhzC,EAAEsK,EAAErI,EAAE,CAAC,SAASwC,GAAEzE,EAAEsK,GAAG,OAAOA,EAAEtK,EAAE,CAAC,SAASiqD,GAAEjqD,GAAG,IAAIA,EAAE,MAAM,IAAIuH,MAAM,mBAAmB,CAAC,SAASgH,GAAEjE,GAAGtK,GAAEgnI,aAAaA,aAAa18H,GAAGstC,WAAWttC,EAAE,EAAE,CAAC,SAASxN,GAAEkD,EAAEsK,GAAG,OAAOtK,EAAEd,OAAQ,CAACc,EAAEiC,EAAEoB,KAAK,IAAI7c,EAAE8jB,EAAErI,EAAEoB,GAAG,OAAO7c,IAAIwZ,EAAExZ,EAAE,IAAIA,EAAE,IAAIwZ,GAAI,CAAC,EAAE,CAAC,SAASxI,GAAEwI,EAAEsK,GAAG,GAAG,iBAAiBA,GAAGtI,GAAEhC,EAAEsK,GAAG,OAAOtK,EAAEsK,GAAG,IAAIA,EAAE,OAAOtK,EAAE,GAAG,iBAAiBsK,EAAE,CAAC,QAAQrI,EAAE,GAAGoB,EAAE,EAAE7c,EAAE8jB,EAAE3S,OAAO0L,EAAE7c,IAAI6c,EAAE,CAAC,IAAI3D,EAAElI,GAAEwI,EAAEsK,EAAEjH,IAAIpB,EAAE/B,KAAKR,EAAE,CAAC,OAAOuC,CAAC,CAAC,IAAIpR,EAAEyZ,EAAEyc,QAAQ,KAAK,IAAG,IAAKl2B,EAAE,CAAC,IAAIjK,EAAEoZ,EAAEsK,EAAEq5D,OAAO,EAAE9yE,IAAI,OAAO,MAAMjK,OAAE,EAAO4Q,GAAE5Q,EAAE0jB,EAAEq5D,OAAO9yE,EAAE,GAAG,CAAC,CAAC,SAASjH,GAAEoW,EAAEsK,EAAEjH,GAAG,GAAGrD,QAAG,IAASsK,MAAM,aAAalU,UAAUA,OAAO6wI,SAASjnI,IAAI,GAAG,iBAAiBsK,GAAG,WAAWA,EAAE,CAAC2/C,GAAE,iBAAiB5mD,GAAG,WAAWA,GAAG,QAAQ7c,EAAE,EAAEkZ,EAAE4K,EAAE3S,OAAOnR,EAAEkZ,IAAIlZ,EAAEoD,GAAEoW,EAAEsK,EAAE9jB,GAAG6c,EAAE7c,GAAG,KAAK,CAAC,IAAIqK,EAAEyZ,EAAEyc,QAAQ,KAAK,IAAG,IAAKl2B,EAAE,CAAC,IAAIjK,EAAE0jB,EAAEq5D,OAAO,EAAE9yE,GAAGk5D,EAAEz/C,EAAEq5D,OAAO9yE,EAAE,GAAG,GAAG,KAAKk5D,OAAE,IAAS1mD,EAAEpB,GAAEjC,KAAKmrC,MAAMkpD,SAASztG,IAAIoZ,EAAExC,OAAO5W,EAAE,UAAUoZ,EAAEpZ,GAAGoZ,EAAEpZ,GAAGyc,MAAM,CAAC,IAAI3S,GAAEsP,EAAEpZ,GAAG8J,IAAGsR,GAAEhC,EAAEpZ,KAAK8J,GAAEsP,EAAEpZ,GAAG,CAAC,GAAGgD,GAAE8G,GAAEq5D,EAAE1mD,EAAE,CAAC,WAAM,IAASA,EAAEpB,GAAEjC,KAAKmrC,MAAMkpD,SAAS/pF,IAAItK,EAAExC,OAAO8M,EAAE,UAAUtK,EAAEsK,GAAGtK,EAAEsK,GAAGjH,CAAC,CAAC,CAAC,SAASwnD,GAAE7qD,GAAG,IAAIsK,EAAE,CAAC,EAAE,QAAQrI,KAAKjC,EAAEgC,GAAEhC,EAAEiC,KAAKqI,EAAErI,GAAGjC,EAAEiC,IAAI,OAAOqI,CAAC,CAAC,MAAMzV,GAAE,GAAGqyI,OAAO,SAAS1/G,GAAExnB,GAAG,OAAOnL,GAAE4J,MAAM,GAAGuB,EAAE,CAAC,MAAM0rD,GAAE,iNAAiN1kC,MAAM,KAAKkgH,OAAO1/G,GAAE,CAAC,EAAE,GAAG,GAAG,IAAIl/B,IAAK0X,GAAG,CAAC,MAAM,OAAO,SAAS1X,IAAKgiB,GAAGA,EAAEtK,EAAE,YAAc/W,OAAQqhB,GAAGtK,GAAEsK,IAAK4gD,GAAEQ,GAAEpjE,IAAKgiB,GAAGtK,GAAEsK,IAAKxN,GAAE4uD,GAAG1rD,GAAG,CAACA,GAAE,IAAM,IAAI6tD,GAAE,KAAK,SAAS9B,GAAE/rD,GAAG6tD,UAAsBs5E,QAApB,KAA6B,IAAIA,QAAQ,MAAM78H,EAAE6/C,GAAEnqD,GAAG,OAAO6tD,GAAE,KAAKvjD,CAAC,CAAC,SAAS6/C,GAAEnqD,GAAG,IAAIA,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,IAAIsK,EAAEujD,IAAGA,GAAE9oE,IAAIib,GAAG,GAAGsK,EAAE,OAAOA,EAAE,GAAGrI,GAAEjC,GAAG,CAACsK,EAAE,GAAGujD,IAAGA,GAAE1uD,IAAIa,EAAEsK,GAAG,QAAQjH,EAAE,EAAE3D,EAAEM,EAAErI,OAAO0L,EAAE3D,IAAI2D,EAAEiH,EAAEpK,KAAKiqD,GAAEnqD,EAAEqD,IAAI,SAAS6nD,GAAEnkC,QAAQ/mB,EAAEle,cAAc,EAAEwoB,EAAEtK,MAAM,CAAC,MAAMiC,EAAEzb,GAAEwZ,GAAG,QAAQnP,KAAKyZ,EAAErI,IAAI7L,OAAOowB,UAAU,CAAC,EAAEpwB,OAAOizB,OAAOpnB,GAAG4rD,IAAGA,GAAE1uD,IAAIa,EAAEsK,GAAGtK,EAAEgC,GAAEhC,EAAEnP,KAAKyZ,EAAEzZ,GAAGs5D,GAAEnqD,EAAEnP,IAAI,CAAC,OAAOyZ,CAAC,CAAC,MAAMnf,SAASqgE,IAAG,CAAC,EAAE,SAASP,GAAEjrD,GAAG,OAAOwrD,GAAExY,KAAKhzC,GAAGL,MAAM,GAAE,EAAG,CAAC,MAAMksD,UAAsBf,OAApB,IAA2BA,OAAO0E,SAAS,aAAapD,GAAE,iBAAiBP,GAAE,SAAS7rD,GAAG,IAAIsK,EAAE,OAAO,MAAMtK,IAAIsK,EAAEtK,EAAE6rD,MAAKvhD,EAAE7L,MAAMuB,EAAE,EAAE,WAAW,OAAO,IAAI,EAAEwsD,GAAE,CAAC,EAAE,SAASjB,GAAEvrD,GAAG,IAAIsK,EAAEjH,EAAE7c,EAAEkZ,EAAE,GAAG,IAAIhB,UAAU/G,OAAO,CAAC,GAAGsK,GAAEjC,GAAG,OAAOA,EAAEL,QAAQ,GAAG1d,OAAOuqE,IAAG,iBAAiBxsD,EAAE,MAAM,CAACA,GAAG,GAAGN,EAAE0sD,GAAEpsD,GAAG,CAAC,IAAIqD,EAAE,KAAK7c,EAAEkZ,EAAE9a,QAAQkpE,MAAMzqD,EAAEnD,KAAK1Z,EAAEgO,OAAO,OAAO6O,CAAC,CAAC,GAAG,MAAMrD,EAAE,MAAM,CAACA,GAAG,GAAG,iBAAiBsK,EAAEtK,EAAErI,QAAQ,CAAC,IAAI0L,EAAE,IAAI9D,MAAM+K,GAAGA,KAAKjH,EAAEiH,GAAGtK,EAAEsK,GAAG,OAAOjH,CAAC,CAAC,MAAM,CAACrD,EAAE,CAAC,IAAIsK,EAAE5L,UAAU/G,OAAO0L,EAAE,IAAI9D,MAAM+K,GAAGA,KAAKjH,EAAEiH,GAAG5L,UAAU4L,GAAG,OAAOjH,CAAC,CAAC,MAAM2nD,UAAsBF,OAApB,IAA2B9qD,GAAG,kBAAkBA,EAAE8qD,OAAOyD,aAAa,KAAI,EAAG,IAAIxD,UAAsBpnE,SAApB,KAA8B,6CAA6CkkC,KAAKlkC,SAASmH,MAAM,SAASyhE,GAAEvsD,EAAEsK,GAAGygD,GAAE/qD,EAAEilD,GAAE36C,CAAC,CAAC,IAAI26C,GAAEA,KAAI,EAAG,MAAM2H,IAAG,IAAIrlD,MAAM,IAAIstE,MAAM,SAAS1pB,KAAI,GAAGyB,GAAE,IAAI,MAAkB,IAAIrlD,KAAK,OAAOvH,GAAG,OAAOA,CAAC,CAAC,OAAO,IAAIuH,KAAK,CAAC,SAASklD,GAAEzsD,EAAEsK,GAAG,IAAIrI,EAAEjC,EAAE60E,MAAM,OAAO5yE,GAAGqI,EAAEA,GAAG,EAAE,IAAIrI,EAAE8kB,QAAQ/mB,EAAExX,QAAQ8hB,IAAItK,EAAExX,KAAKwX,EAAE4tB,SAAS5G,MAAM,MAAMrvB,QAAQsK,EAAE+kB,MAAM,MAAMrnB,MAAM2K,GAAGrhB,OAAOg8D,IAAG38D,IAAK0X,GAAG,KAAKA,GAAI7T,KAAK,KAAK,EAAE,CAAC,IAAI+gE,GAAE,CAAC,UAAU,aAAa,OAAO,sBAAsB,WAAW,UAAU,WAAW,eAAe,gBAAgB,QAAQ,UAAU,gBAAgB,SAAS,aAAaZ,GAAE,CAAC,SAAS,OAAO,aAAa,gBAAgB,SAAS,UAAU,eAAe,aAAa,iBAAiB,kBAAkB,iBAAiB,cAAc,WAAW,iBAAiB,kBAAkB,gBAAgB46E,OAAOh6E,IAAGF,GAAE,CAACo6E,eAAe,wDAAwDC,eAAe,2BAA2BC,MAAM,sBAAsBC,oBAAoB,8CAA8CC,WAAW,oEAAoE,SAAS57E,GAAE5rD,EAAEsK,GAAGroB,KAAK+tE,GAAG7E,KAAIlpE,KAAKuG,KAAKwX,EAAE/d,KAAK2rC,QAAQtjB,CAAC,CAAC,SAASoiD,GAAE1sD,EAAEsK,GAAG,OAAOtK,EAAE,aAAa5J,OAAOmzB,KAAKjf,GAAGhiB,IAAK0X,GAAGsK,EAAEtK,GAAG7U,YAAalC,OAAQ,CAAC+W,EAAEsK,EAAErI,IAAIA,EAAE8kB,QAAQ/mB,KAAKsK,GAAIne,KAAK,KAAK,CAAC,SAASggE,GAAEnsD,EAAEsK,EAAErI,EAAEoB,GAAGphB,KAAK+tE,GAAG7E,KAAIlpE,KAAKwlJ,SAASn9H,EAAEroB,KAAKylJ,WAAWrkI,EAAEphB,KAAK0lJ,aAAa1lI,EAAEhgB,KAAK2rC,QAAQ8+B,GAAE1sD,EAAEsK,EAAE,CAAC,SAAS+iD,GAAErtD,EAAEsK,GAAGroB,KAAK+tE,GAAG7E,KAAIlpE,KAAKuG,KAAK,YAAYvG,KAAKwlJ,SAASrxI,OAAOmzB,KAAKjf,GAAGhiB,IAAK0X,GAAGsK,EAAEtK,IAAK/d,KAAK2lJ,cAAct9H,EAAEroB,KAAK2rC,QAAQ8+B,GAAE1sD,EAAEsK,EAAE,CAAC5Z,GAAEk7D,IAAGr0D,KAAKgQ,OAAOw/H,OAAO,CAAClyD,MAAM,CAAC9vF,IAAI,WAAW,OAAO9C,KAAK4lJ,SAAS5lJ,KAAK4lJ,OAAO5lJ,KAAKuG,KAAK,KAAKvG,KAAK2rC,QAAQ6+B,GAAExqE,KAAK+tE,GAAG,GAAG,GAAG7kE,SAAS,WAAW,OAAOlJ,KAAKuG,KAAK,KAAKvG,KAAK2rC,OAAO,IAAIl9B,GAAEy7D,IAAG50D,KAAKq0D,IAAGl7D,GAAE28D,IAAG91D,KAAKq0D,IAAG,IAAIkB,GAAER,GAAEptD,OAAQ,CAACc,EAAEsK,KAAKtK,EAAEsK,GAAGA,EAAE,QAAQtK,GAAI,CAAC,GAAG,MAAM2sD,GAAEf,GAAE,IAAI0B,GAAEhB,GAAEptD,OAAQ,CAACc,EAAEsK,KAAK,IAAIrI,EAAEqI,EAAE,QAAQ,SAASjH,EAAErD,EAAEqD,GAAGphB,KAAK+tE,GAAG7E,KAAIlpE,KAAKuG,KAAKyZ,EAAEjC,EAAE,iBAAiBA,GAAG/d,KAAK2rC,QAAS,GAAE5tB,IAAIqD,EAAE,MAAMA,EAAE,KAAKphB,KAAK6lJ,MAAMzkI,GAAG,MAAM,iBAAiBrD,IAAI/d,KAAK2rC,QAAS,GAAE5tB,EAAExX,QAAQwX,EAAE4tB,UAAU3rC,KAAK6lJ,MAAM9nI,IAAI/d,KAAK2rC,QAAQo/B,GAAE1iD,IAAIrI,EAAEhgB,KAAK6lJ,MAAM,KAAK,CAAC,OAAOp3I,GAAE2S,GAAG9L,KAAKo1D,IAAG3sD,EAAEsK,GAAGjH,EAAErD,GAAI,CAAC,GAAGstD,GAAEy6E,OAAOC,YAAY16E,GAAE/mC,KAAK6jC,UAAUkD,GAAE26E,MAAMt3E,WAAW,IAAIpD,GAAEL,GAAEhuD,OAAQ,CAACc,EAAEsK,KAAKtK,EAAEsK,EAAE,SAASgjD,GAAEhjD,GAAGtK,GAAI,CAAC,GAAOiuD,GAAE3B,GAAEptD,OAAQ,CAACc,EAAEsK,MAAK,IAAK,CAAC,SAAS,OAAO,SAASyc,QAAQzc,KAAKtK,EAAEsK,EAAE,SAASgjD,GAAEhjD,IAAItK,GAAI,CAAC,GAAG,SAAS0tD,KAAK,CAAC,SAAS3pC,GAAG/jB,GAAG,OAAOA,CAAC,CAAC,SAASouD,GAAGpuD,EAAEsK,GAAG,OAAO,MAAMtK,GAAGA,IAAI+jB,GAAGzZ,EAAE,SAASrI,GAAG,OAAOqI,EAAEtK,EAAEiC,GAAG,CAAC,CAAC,SAAS2F,GAAG5H,EAAEsK,GAAG,OAAO,WAAWtK,EAAEvB,MAAMxc,KAAKyc,WAAW4L,EAAE7L,MAAMxc,KAAKyc,UAAU,CAAC,CAAC,SAASowD,GAAG9uD,EAAEsK,GAAG,OAAOtK,IAAI0tD,GAAGpjD,EAAE,WAAW,IAAIrI,EAAEjC,EAAEvB,MAAMxc,KAAKyc,gBAAW,IAASuD,IAAIvD,UAAU,GAAGuD,GAAG,IAAIoB,EAAEphB,KAAKimJ,UAAU1hJ,EAAEvE,KAAKu2G,QAAQv2G,KAAKimJ,UAAU,KAAKjmJ,KAAKu2G,QAAQ,KAAK,IAAI94F,EAAE4K,EAAE7L,MAAMxc,KAAKyc,WAAW,OAAO2E,IAAIphB,KAAKimJ,UAAUjmJ,KAAKimJ,UAAUtgI,GAAGvE,EAAEphB,KAAKimJ,WAAW7kI,GAAG7c,IAAIvE,KAAKu2G,QAAQv2G,KAAKu2G,QAAQ5wF,GAAGphB,EAAEvE,KAAKu2G,SAAShyG,QAAG,IAASkZ,EAAEA,EAAEuC,CAAC,CAAC,CAAC,SAASusD,GAAGxuD,EAAEsK,GAAG,OAAOtK,IAAI0tD,GAAGpjD,EAAE,WAAWtK,EAAEvB,MAAMxc,KAAKyc,WAAW,IAAIuD,EAAEhgB,KAAKimJ,UAAU7kI,EAAEphB,KAAKu2G,QAAQv2G,KAAKimJ,UAAUjmJ,KAAKu2G,QAAQ,KAAKluF,EAAE7L,MAAMxc,KAAKyc,WAAWuD,IAAIhgB,KAAKimJ,UAAUjmJ,KAAKimJ,UAAUtgI,GAAG3F,EAAEhgB,KAAKimJ,WAAWjmI,GAAGoB,IAAIphB,KAAKu2G,QAAQv2G,KAAKu2G,QAAQ5wF,GAAGvE,EAAEphB,KAAKu2G,SAASn1F,EAAE,CAAC,CAAC,SAAS8qD,GAAGnuD,EAAEsK,GAAG,OAAOtK,IAAI0tD,GAAGpjD,EAAE,SAASrI,GAAG,IAAIzb,EAAEwZ,EAAEvB,MAAMxc,KAAKyc,WAAW2E,GAAEpB,EAAEzb,GAAG,IAAIkZ,EAAEzd,KAAKimJ,UAAUlmI,EAAE/f,KAAKu2G,QAAQv2G,KAAKimJ,UAAU,KAAKjmJ,KAAKu2G,QAAQ,KAAK,IAAI3nG,EAAEyZ,EAAE7L,MAAMxc,KAAKyc,WAAW,OAAOgB,IAAIzd,KAAKimJ,UAAUjmJ,KAAKimJ,UAAUtgI,GAAGlI,EAAEzd,KAAKimJ,WAAWxoI,GAAGsC,IAAI/f,KAAKu2G,QAAQv2G,KAAKu2G,QAAQ5wF,GAAG5F,EAAE/f,KAAKu2G,SAASx2F,QAAG,IAASxb,OAAE,IAASqK,OAAE,EAAOA,EAAEwS,GAAE7c,EAAEqK,EAAE,CAAC,CAAC,SAASw9D,GAAGruD,EAAEsK,GAAG,OAAOtK,IAAI0tD,GAAGpjD,EAAE,WAAW,OAAM,IAAKA,EAAE7L,MAAMxc,KAAKyc,YAAYsB,EAAEvB,MAAMxc,KAAKyc,UAAU,CAAC,CAAC,SAASswD,GAAGhvD,EAAEsK,GAAG,OAAOtK,IAAI0tD,GAAGpjD,EAAE,WAAW,IAAIrI,EAAEjC,EAAEvB,MAAMxc,KAAKyc,WAAW,GAAGuD,GAAG,mBAAmBA,EAAE3f,KAAK,CAAC,QAAQ+gB,EAAEphB,KAAKuE,EAAEkY,UAAU/G,OAAO+H,EAAE,IAAIH,MAAM/Y,GAAGA,KAAKkZ,EAAElZ,GAAGkY,UAAUlY,GAAG,OAAOyb,EAAE3f,KAAM,WAAW,OAAOgoB,EAAE7L,MAAM4E,EAAE3D,EAAE,EAAG,CAAC,OAAO4K,EAAE7L,MAAMxc,KAAKyc,UAAU,CAAC,CAACuvD,GAAEk6E,YAAYh8E,GAAE8B,GAAEm6E,WAAWx8E,GAAEqC,GAAEo6E,UAAUh7E,GAAE,IAAIsB,GAAG,CAAC,EAAE,MAAMO,GAAG,KAAKQ,GAAGP,GAAGG,WAAwB11D,QAApB,IAA4B,SAAS,IAAIoG,EAAEpG,QAAQC,UAAU,UAAuByuI,OAApB,MAA6BA,OAAOC,OAAO,MAAM,CAACvoI,EAAExZ,GAAEwZ,GAAGA,GAAG,MAAMsK,EAAEg+H,OAAOC,OAAOC,OAAO,UAAU,IAAI1/G,WAAW,CAAC,KAAK,MAAM,CAACxe,EAAE9jB,GAAE8jB,GAAGtK,EAAE,EAA5K,GAAiLmZ,GAAGg2C,IAAIA,GAAG7sE,KAAK6tE,GAAGT,IAAIA,GAAG5tE,YAAYqM,KAAKmhE,GAAG,IAAIoB,IAAG,EAAGH,GAAGjB,GAAG,KAAKA,GAAGhtE,KAAK0xE,GAAE,EAAGh0D,GAAEgnI,aAAaA,aAAa92G,KAAK,KAAK8jC,IAAIh0D,GAAE49C,iBAAiB,KAAK,IAAI59C,EAAE5V,SAASof,cAAc,OAAO,IAAIo0C,iBAAkB,KAAKoW,KAAKh0D,EAAE,OAAQqqB,QAAQrqB,EAAE,CAACu4B,YAAW,IAAKv4B,EAAEiK,aAAa,IAAI,IAAG,EAAG,KAAK2tC,WAAWoc,GAAG,EAAC,EAAGzE,GAAG,SAASvvD,EAAEsK,GAAG8lD,GAAGlwD,KAAK,CAACF,EAAEsK,IAAIsmD,KAAKL,KAAKK,IAAG,EAAG,EAAEZ,IAAG,EAAGY,IAAG,EAAGwB,GAAG,GAAG2B,GAAG,GAAGL,GAAG,KAAKR,GAAGnvC,GAAG8tC,GAAG,CAACvjE,GAAG,SAASisE,QAAO,EAAGhhE,IAAI,EAAEkvI,WAAW,GAAGC,YAAYlzE,GAAGmzE,KAAI,EAAGC,IAAI,CAAC,EAAEC,SAAS,WAAW5mJ,KAAKwmJ,WAAWvmI,QAASlC,IAAI,IAAIw1D,GAAGx1D,EAAE,GAAGA,EAAE,GAAG,OAAU,GAAI,GAAG6zD,GAAGhC,GAAGzB,GAAG,GAAG8D,GAAG,EAAEjD,GAAG,GAAG,SAASgD,GAAGj0D,GAAG,GAAG,iBAAiB/d,KAAK,MAAM,IAAImoE,UAAU,wCAAwCnoE,KAAK6mJ,WAAW,GAAG7mJ,KAAK8mJ,YAAYr7E,GAAGzrE,KAAK+mJ,MAAK,EAAG,IAAI1+H,EAAEroB,KAAKgnJ,KAAKp1E,GAAG,GAAG9I,KAAI9oE,KAAKinJ,aAAa/9E,KAAIlpE,KAAKknJ,MAAM,KAAKlnJ,KAAKmnJ,SAAS,GAAG,mBAAmBppI,EAAE,CAAC,GAAGA,IAAI2uD,GAAG,MAAM,IAAIvE,UAAU,kBAAkB,OAAOnoE,KAAKqpE,OAAO5sD,UAAU,GAAGzc,KAAKm9H,OAAO1gH,UAAU,SAAQ,IAAKzc,KAAKqpE,QAAQsG,GAAG3vE,KAAKA,KAAKm9H,QAAQ,CAACn9H,KAAKqpE,OAAO,KAAKrpE,KAAKm9H,OAAO,OAAO90G,EAAE/Q,IAAIu6D,GAAG7xE,KAAK+d,EAAE,CAAC,MAAMyzD,GAAG,CAAC1uE,IAAI,WAAW,IAAIib,EAAE6zD,GAAGvpD,EAAEoqD,GAAG,SAASzyD,EAAEA,EAAEoB,GAAG,IAAI7c,GAAGwZ,EAAEu6D,SAASv6D,IAAI6zD,IAAIvpD,IAAIoqD,IAAI,MAAMh1D,EAAElZ,IAAIsuE,KAAK,IAAI9yD,EAAE,IAAIiyD,GAAI,CAAC3pD,GAAEtI,MAAKkzD,GAAGjzE,KAAK,IAAIsyE,GAAGS,GAAG/yD,EAAEjC,EAAExZ,EAAEkZ,GAAGs1D,GAAG3xD,EAAErD,EAAExZ,EAAEkZ,GAAG4K,GAAEtI,GAAEhC,GAAE,GAAK,OAAO+qD,IAAGuH,GAAGtwD,EAAE/f,MAAM+f,CAAC,CAAC,OAAOC,EAAEukB,UAAUmoC,GAAG1sD,CAAC,EAAE9C,IAAI,SAASa,GAAG+pD,GAAE9nE,KAAK,OAAO+d,GAAGA,EAAEwmB,YAAYmoC,GAAG8E,GAAG,CAAC1uE,IAAI,WAAW,OAAOib,CAAC,EAAEb,IAAIs0D,GAAGt0D,KAAK,GAAG,SAASo1D,GAAGv0D,EAAEsK,EAAErI,EAAEoB,EAAE7c,GAAGvE,KAAKonJ,YAAY,mBAAmBrpI,EAAEA,EAAE,KAAK/d,KAAKqnJ,WAAW,mBAAmBh/H,EAAEA,EAAE,KAAKroB,KAAK4X,QAAQoI,EAAEhgB,KAAK6nE,OAAOzmD,EAAEphB,KAAKsnJ,IAAI/iJ,CAAC,CAAC,SAASstE,GAAG9zD,EAAEsK,GAAG,IAAIA,EAAGA,IAAI,GAAG,OAAOtK,EAAEsrD,OAAO,CAAC,GAAGhhD,IAAItK,EAAE,MAAM,IAAIoqD,UAAU,6CAA6C,IAAInoD,EAAEjC,EAAEgpI,MAAM13E,KAAKhnD,GAAG,mBAAmBA,EAAEhoB,KAAKwxE,GAAG9zD,EAAG,CAACA,EAAEiC,KAAKqI,aAAa2pD,GAAG3pD,EAAEk/H,MAAMxpI,EAAEiC,GAAGqI,EAAEhoB,KAAK0d,EAAEiC,EAAC,IAAMjC,EAAEsrD,QAAO,EAAGtrD,EAAEo/G,OAAO90G,EAAEumD,GAAG7wD,IAAIiC,GAAGqyD,IAAI,GAAI1C,GAAG1hC,KAAK,KAAKlwB,GAAG,OAAOsK,GAAGsnD,GAAG5xD,EAAEsK,EAAE,CAAC,CAAC,SAASsnD,GAAG5xD,EAAEsK,GAAG,GAAGypD,GAAG7zD,KAAKoK,GAAG,OAAOtK,EAAEsrD,OAAO,CAAC,IAAIrpD,EAAEjC,EAAEgpI,MAAM13E,KAAKhnD,EAAE4oD,GAAG5oD,GAAGtK,EAAEsrD,QAAO,EAAGtrD,EAAEo/G,OAAO90G,EAAEygD,IAAG,OAAOzgD,GAAG,iBAAiBA,IAAIA,EAAE+sD,UAAU,SAASr3D,EAAEsK,EAAErI,GAAG,KAAwC,KAAK,IAAIA,EAAE+jB,GAAE1b,EAAE,SAASA,EAAE+sD,SAASr3D,EAAE+pD,GAAEz/C,EAAE,QAAQ,CAACvlB,IAAIA,IAAI2rE,GAAGzuD,IAAIA,EAAEld,IAAIkd,EAAEld,IAAI0Z,MAAM6L,GAAGrI,EAAEzN,OAAOwL,EAAE60E,OAAM,GAAzIp2E,MAAM,UAA5B,EAAmC,OAAOuB,GAAU,CAAC,CAArD,GAA6KA,EAAkDA,EAA/CoyD,GAAGpvD,KAAMsH,GAAGA,EAAE80G,SAASp/G,EAAEo/G,SAAUhtD,GAAGlyD,KAAKF,GAAO6wD,GAAG7wD,GAAGiC,GAAGqyD,IAAI,CAA3E,IAASt0D,CAAmE,CAAC,SAAS6wD,GAAG7wD,GAAG,IAAIsK,EAAEtK,EAAE8oI,WAAW9oI,EAAE8oI,WAAW,GAAG,QAAQ7mI,EAAE,EAAEoB,EAAEiH,EAAE3S,OAAOsK,EAAEoB,IAAIpB,EAAEizD,GAAGl1D,EAAEsK,EAAErI,IAAI,IAAIzb,EAAEwZ,EAAEipI,OAAOziJ,EAAE+S,KAAK/S,EAAEqiJ,WAAW,IAAI30E,OAAOA,GAAG3E,GAAI,KAAK,KAAK2E,IAAInC,IAAG,EAAI,IAAI,CAAC,SAASmD,GAAGl1D,EAAEsK,GAAG,GAAG,OAAOtK,EAAEsrD,OAAO,CAAC,IAAIrpD,EAAEjC,EAAEsrD,OAAOhhD,EAAE++H,YAAY/+H,EAAEg/H,WAAW,GAAG,OAAOrnI,EAAE,OAAOjC,EAAEsrD,OAAOhhD,EAAEzQ,QAAQyQ,EAAEw/C,QAAQ9pD,EAAEo/G,UAAU90G,EAAEi/H,IAAIhwI,MAAM26D,GAAG3E,GAAGiD,GAAG,CAACvwD,EAAEjC,EAAEsK,GAAG,MAAMtK,EAAE8oI,WAAW5oI,KAAKoK,EAAE,CAAC,SAASkoD,GAAGxyD,EAAEsK,EAAErI,GAAG,IAAIyxD,GAAGppD,EAAE,IAAIjH,EAAE7c,EAAE8jB,EAAE80G,OAAO90G,EAAEghD,OAAOjoD,EAAErD,EAAExZ,IAAIutE,GAAGp8D,SAASo8D,GAAG,IAAI1wD,EAAErD,EAAExZ,IAAG,IAAKutE,GAAGhtC,QAAQvgC,IAAI,SAASwZ,GAAmB,QAAZsK,EAAE8nD,GAAGz6D,OAAY2S,GAAG,GAAG8nD,KAAK9nD,GAAG80G,SAASp/G,EAAEo/G,OAAO,YAAYhtD,GAAG50D,OAAO8M,EAAE,EAAE,CAA3F,CAA6FA,IAAIrI,EAAEpI,QAAQwJ,EAAE,OAAOrD,GAAGiC,EAAE6nD,OAAO9pD,EAAE,SAAS0zD,GAAG,KAAK,KAAKQ,IAAInC,OAAO9vD,EAAEsnI,IAAIhwI,KAAK0I,EAAEsnI,IAAIV,UAAU,CAAC,CAAC,SAASp2E,GAAGzyD,EAAEsK,EAAErI,GAAG,GAAGqI,EAAE3S,SAASsK,EAAE,OAAOqI,EAAE,IAAIjH,EAAE,GAAG,IAAG,IAAKrD,EAAEsrD,OAAO,CAAC,IAAI9kE,EAAEkZ,EAAEsC,EAAEhC,EAAEo/G,OAAO,MAAMp9G,GAAGxb,EAAEwb,EAAExZ,MAAM,QAAQkX,EAAEsC,EAAE4rB,SAAS5rB,EAAEqB,EAAEopD,GAAEzqD,EAAE,KAAKxb,EAAEwb,EAAEtC,EAAE,IAAI4K,EAAEpK,KAAK1Z,GAAGkZ,EAAE,KAAKA,EAAE,IAAI2D,EAAE,CAAC,OAAO0nD,MAAK1nD,EAAEopD,GAAEzsD,EAAEkpI,aAAa,MAAK,IAAK5+H,EAAEyc,QAAQ1jB,IAAIiH,EAAEpK,KAAKmD,GAAGrD,EAAEmpI,OAAO12E,GAAGzyD,EAAEmpI,MAAM7+H,EAAErI,IAAIqI,CAAC,CAAC,SAASgoD,GAAGtyD,EAAEsK,GAAG,IAAIrI,EAAEqI,EAAEA,EAAE8+H,SAAS,EAAE,EAAEnnI,EAAE,MAAMjC,EAAEmpI,MAAM7+H,EAAEtK,EAAEopI,SAASnnI,EAAE,CAAC,SAAS+xD,KAAK1C,MAAMgD,IAAI,CAAC,SAAShD,KAAK,IAAItxD,EAAEgwD,GAAG,OAAOA,IAAG,EAAGY,IAAG,EAAG5wD,CAAC,CAAC,SAASs0D,KAAK,IAAIt0D,EAAEsK,EAAErI,EAAE,QAAQmuD,GAAGz4D,OAAO,GAAG,IAAIqI,EAAEowD,GAAGA,GAAG,GAAGnuD,EAAEjC,EAAErI,OAAO2S,EAAE,EAAEA,EAAErI,IAAIqI,EAAE,CAAC,IAAIjH,EAAErD,EAAEsK,GAAGjH,EAAE,GAAG5E,MAAM,KAAK4E,EAAE,GAAG,QAAQ+sD,GAAGz4D,OAAO,GAAGq4D,IAAG,EAAGY,IAAG,CAAE,CAAC,SAASmB,KAAK,IAAI/xD,EAAEoyD,GAAGA,GAAG,GAAGpyD,EAAEkC,QAASlC,IAAIA,EAAEipI,KAAKP,YAAY11F,KAAK,KAAKhzC,EAAEo/G,OAAOp/G,EAAC,GAAK,QAAQsK,EAAE2mD,GAAGtxD,MAAM,GAAGsC,EAAEqI,EAAE3S,OAAOsK,GAAGqI,IAAIrI,IAAI,CAAC,SAAS0xD,GAAG3zD,GAAG,OAAO,IAAIi0D,GAAGtF,IAAG,EAAG3uD,EAAE,CAAC,SAASkyD,GAAGlyD,EAAEsK,GAAG,IAAIrI,EAAE4xD,GAAG,OAAO,WAAW,IAAIxwD,EAAEiuD,KAAK9qE,EAAEqtE,GAAG,IAAI,OAAO5tB,GAAGhkC,GAAE,GAAIjC,EAAEvB,MAAMxc,KAAKyc,UAAU,OAAOsB,GAAGsK,GAAGA,EAAEtK,EAAE,SAASimC,GAAGz/C,GAAE,GAAI6c,GAAGixD,IAAI,CAAC,CAAC,CAACzjE,GAAEojE,GAAGztC,UAAU,CAAClkC,KAAKmxE,GAAG+1E,MAAM,SAASxpI,EAAEsK,GAAG4qD,GAAGjzE,KAAK,IAAIsyE,GAAG,KAAK,KAAKv0D,EAAEsK,EAAEupD,IAAI,EAAErpE,MAAM,SAASwV,GAAG,GAAG,IAAItB,UAAU/G,OAAO,OAAO1V,KAAKK,KAAK,KAAK0d,GAAG,IAAIsK,EAAE5L,UAAU,GAAGuD,EAAEvD,UAAU,GAAG,OAA2Bzc,KAAKK,KAAK,KAA/B,mBAAmBgoB,EAAkBtK,GAAGA,aAAasK,EAAErI,EAAEjC,GAAG2zD,GAAG3zD,GAAqBA,GAAGA,GAAGA,EAAExX,OAAO8hB,EAAErI,EAAEjC,GAAG2zD,GAAG3zD,GAAI,EAAEsvE,QAAQ,SAAStvE,GAAG,OAAO/d,KAAKK,KAAMgoB,IAAItK,IAAIsK,GAAKA,IAAItK,IAAI2zD,GAAGrpD,IAAK,EAAEuqE,MAAM,CAAC9vF,IAAI,WAAW,GAAG9C,KAAK4lJ,OAAO,OAAO5lJ,KAAK4lJ,OAAO,IAAIn3E,IAAG,EAAG,IAAI1wD,EAAEyyD,GAAGxwE,KAAK,GAAG,IAAIkK,KAAK,qBAAqB,OAAO,OAAOlK,KAAKqpE,SAASrpE,KAAK4lJ,OAAO7nI,GAAGA,CAAC,SAAS0wD,IAAG,CAAE,CAAC,GAAG+4E,QAAQ,SAASzpI,EAAEsK,GAAG,OAAOtK,EAAE,IAAI,IAAIi0D,GAAI,CAAChyD,EAAEoB,KAAK,IAAI7c,EAAEoxD,WAAY,IAAIv0C,EAAE,IAAIiqD,GAAEo8E,QAAQp/H,IAAKtK,GAAG/d,KAAKK,KAAK2f,EAAEoB,GAAGisE,QAAQq6D,aAAaz5G,KAAK,KAAK1pC,GAAE,GAAKvE,IAAI,WAAwB6oE,OAApB,KAA4BA,OAAOyD,aAAaxE,GAAEkK,GAAGztC,UAAUskC,OAAOyD,YAAY,iBAAiBsD,GAAG+2E,IAAIx1E,KAAKviE,GAAEojE,GAAG,CAAC51D,IAAI,WAAW,IAAI2B,EAAEurD,GAAE9sD,MAAM,KAAKC,WAAWpW,IAAIysE,IAAI,OAAO,IAAId,GAAI,SAAS3pD,EAAErI,GAAG,IAAIjC,EAAErI,QAAQ2S,EAAE,IAAI,IAAIjH,EAAErD,EAAErI,OAAOqI,EAAEkC,QAAS,CAAC1b,EAAEkZ,IAAIu0D,GAAGp6D,QAAQrT,GAAGlE,KAAM2f,IAAIjC,EAAEN,GAAGuC,IAAIoB,GAAGiH,EAAEtK,EAAC,EAAIiC,GAAI,EAAG,EAAEpI,QAAQmG,IAAI,GAAGA,aAAai0D,GAAG,OAAOj0D,EAAE,GAAGA,GAAG,mBAAmBA,EAAE1d,KAAK,OAAO,IAAI2xE,GAAI,CAAC3pD,EAAErI,KAAKjC,EAAE1d,KAAKgoB,EAAErI,EAAC,GAAK,IAAIqI,EAAE,IAAI2pD,GAAGtF,IAAG,EAAG3uD,GAAG,OAAOsyD,GAAGhoD,EAAEopD,IAAIppD,GAAGw/C,OAAO6J,GAAGi2E,KAAK,WAAW,IAAI5pI,EAAEurD,GAAE9sD,MAAM,KAAKC,WAAWpW,IAAIysE,IAAI,OAAO,IAAId,GAAI,CAAC3pD,EAAErI,KAAKjC,EAAE1X,IAAK0X,GAAGi0D,GAAGp6D,QAAQmG,GAAG1d,KAAKgoB,EAAErI,GAAG,EAAI,EAAE4nI,IAAI,CAAC9kJ,IAAIA,IAAI8uE,GAAG10D,IAAIa,GAAG6zD,GAAG7zD,GAAG8pI,YAAY,CAAC/kJ,IAAIA,IAAI2vE,IAAIq1E,OAAOp1E,GAAGq1E,OAAO/0E,GAAGg1E,UAAU,CAACllJ,IAAIA,IAAIwqE,GAAGpwD,IAAIa,IAAIuvD,GAAGvvD,IAAIkqI,gBAAgB,CAACnlJ,IAAIA,IAAImuE,GAAG/zD,IAAIa,IAAIkzD,GAAGlzD,IAAImqI,OAAOA,CAACnqI,EAAEsK,IAAI,IAAI2pD,GAAI,CAAChyD,EAAEoB,IAAIsxD,GAAI,CAACrqD,EAAErI,KAAK,IAAIoB,EAAEwwD,GAAGxwD,EAAEolI,WAAW,GAAGplI,EAAEqlI,YAAYzmI,EAAEoB,EAAEwlI,SAASjhI,GAAI,WAAW,IAAU5H,IAA8F,KAAK,IAAI/d,KAAKwmJ,WAAW9wI,OAAO2S,IAAIrI,EAAEhgB,KAAKwmJ,WAAW,GAAE,EAAvGx3E,GAAG/wD,KAA/C,SAASoK,KAAItK,IAAIixD,GAAGzzD,OAAOyzD,GAAGlqC,QAAQzc,IAAG,EAAE,KAAc4pD,GAAG3E,GAAI,KAAK,KAAK2E,IAAInC,IAAG,EAAI,GAAkE,EAAG1uD,EAAEwlI,UAAU7oI,GAAE,EAAIsK,EAAErI,EAAEoB,MAAO8sD,KAAKA,GAAGi6E,YAAYrgF,GAAEkK,GAAG,aAAc,WAAW,MAAMj0D,EAAEurD,GAAE9sD,MAAM,KAAKC,WAAWpW,IAAIysE,IAAI,OAAO,IAAId,GAAI3pD,IAAI,IAAItK,EAAErI,QAAQ2S,EAAE,IAAI,IAAIrI,EAAEjC,EAAErI,OAAO,MAAM0L,EAAE,IAAI9D,MAAM0C,GAAGjC,EAAEkC,QAAS,CAAClC,EAAExZ,IAAIytE,GAAGp6D,QAAQmG,GAAG1d,KAAM0d,GAAGqD,EAAE7c,GAAG,CAACisC,OAAO,YAAYj+B,MAAMwL,GAAKA,GAAGqD,EAAE7c,GAAG,CAACisC,OAAO,WAAWmoC,OAAO56D,IAAK1d,KAAM,MAAM2f,GAAGqI,EAAEjH,IAAK,EAAI,GAAI8sD,GAAGu1B,YAAyB2kD,eAApB,KAAoCtgF,GAAEkK,GAAG,MAAO,WAAW,MAAMj0D,EAAEurD,GAAE9sD,MAAM,KAAKC,WAAWpW,IAAIysE,IAAI,OAAO,IAAId,GAAI,CAAC3pD,EAAErI,KAAK,IAAIjC,EAAErI,QAAQsK,EAAE,IAAIooI,eAAe,KAAK,IAAIhnI,EAAErD,EAAErI,OAAO,MAAMnR,EAAE,IAAI+Y,MAAM8D,GAAGrD,EAAEkC,QAAS,CAAClC,EAAEN,IAAIu0D,GAAGp6D,QAAQmG,GAAG1d,KAAM0d,GAAGsK,EAAEtK,GAAKA,IAAIxZ,EAAEkZ,GAAGM,IAAIqD,GAAGpB,EAAE,IAAIooI,eAAe7jJ,GAAE,GAAK,EAAI,IAAK,MAAM2tE,GAAG,CAACm2E,OAAO,EAAEC,OAAO,EAAEj8I,GAAG,GAAG,IAAImjE,GAAG,EAAEtzB,GAAG,GAAGk0B,GAAG,EAAEqC,GAAG,EAAExD,GAAG,EAAE,SAASyD,GAAG30D,EAAEsK,EAAErI,EAAEzb,GAAG,IAAIkZ,EAAEm0D,GAAG7xD,EAAE5L,OAAOizB,OAAO3pB,GAAGsC,EAAEslB,OAAO5nB,EAAEsC,EAAEzI,IAAI,EAAEyI,EAAEu4D,QAAO,EAAGv4D,EAAE1T,KAAK4iE,GAAG,IAAIrgE,EAAEghE,GAAG+2E,IAAI5mI,EAAE4mI,IAAIz6I,GAAG,CAACyL,QAAQq6D,GAAGu2E,YAAY,CAACh2I,MAAMy/D,GAAGjqC,cAAa,EAAGD,UAAS,GAAI1rB,IAAI41D,GAAG51D,IAAIurI,KAAK31E,GAAG21E,KAAKQ,WAAWn2E,GAAGm2E,WAAW1kD,IAAIzxB,GAAGyxB,IAAI7rF,QAAQo6D,GAAGp6D,QAAQiwD,OAAOmK,GAAGnK,OAAO2gF,MAAMl1E,GAAG1kE,EAAE45I,MAAMzoI,GAAG0oI,MAAMn1E,GAAG1kE,EAAE65I,MAAM1oI,IAAI,CAAC,EAAEsI,GAAGjH,GAAErB,EAAEsI,KAAK5K,EAAEnG,IAAIyI,EAAE6mI,SAAS,aAAa5mJ,KAAKqlC,OAAO/tB,KAAKtX,KAAKqlC,OAAOuhH,UAAU,EAAE,IAAIjiJ,EAAEquE,GAAGjzD,EAAEhC,EAAEiC,EAAEzb,GAAG,OAAO,IAAIwb,EAAEzI,KAAKyI,EAAE6mI,WAAWjiJ,CAAC,CAAC,SAASguE,KAAK,OAAOT,GAAG7lE,KAAK6lE,GAAG7lE,KAAKmjE,MAAM0C,GAAGm2E,OAAOn2E,GAAGo2E,QAAQr7E,GAAGiF,GAAG7lE,EAAE,CAAC,SAASwmE,KAAK,QAAQX,GAAGm2E,SAAS,KAAKn2E,GAAGm2E,SAASn2E,GAAG7lE,GAAG,GAAG6lE,GAAGo2E,OAAOp2E,GAAGm2E,OAAOp7E,IAAG,EAAG,CAAC,SAAS6F,GAAG/0D,GAAG,OAAOm0D,GAAGo2E,QAAQvqI,GAAGA,EAAEle,cAAcquE,IAAIyE,KAAK50D,EAAE1d,KAAM0d,IAAI80D,KAAK90D,GAAKA,IAAI80D,KAAKW,GAAGz1D,MAAOA,CAAC,CAAC,SAASqzD,GAAGrzD,KAAK00D,GAAGP,GAAGo2E,QAAQ,KAAKp2E,GAAGo2E,SAASp2E,GAAGo2E,OAAOp2E,GAAG7lE,GAAG,GAAG6vC,GAAGj+B,KAAK2zD,IAAI5tB,GAAGjmC,GAAE,EAAG,CAAC,SAASo1D,KAAK,IAAIp1D,EAAEm+B,GAAGA,GAAGxmC,OAAO,GAAGwmC,GAAG1W,MAAMwe,GAAGjmC,GAAE,EAAG,CAAC,SAASimC,GAAG37B,EAAErI,GAAG,IAAIoB,EAAEwwD,GAAG,IAAI5xD,GAAGkyD,GAAGo2E,QAAQl4E,MAAM/nD,IAAIupD,IAAIxB,MAAMA,IAAI/nD,IAAIupD,KAAKyB,GAAGrzD,EAAEoxD,GAAGnjC,KAAK,KAAK5lB,GAAG8qD,IAAI9qD,IAAIupD,KAAKA,GAAGvpD,EAAEjH,IAAIwuD,KAAKA,GAAG+2E,IAAIx1E,MAAMjlE,IAAI,CAAC,IAAI3H,EAAEqrE,GAAG+2E,IAAIhvI,QAAQ8F,EAAE4K,EAAEs+H,IAAIz5E,GAAG7sE,KAAKod,EAAE+qI,MAAMjkJ,EAAEggC,UAAUlkC,KAAKod,EAAEgrI,OAAOrnI,EAAEk3D,QAAQjwD,EAAEiwD,UAAUnkE,OAAOwzB,eAAe5pB,GAAE,UAAUN,EAAE8qI,aAAahkJ,EAAE6X,IAAIqB,EAAErB,IAAI7X,EAAEojJ,KAAKlqI,EAAEkqI,KAAKpjJ,EAAEqT,QAAQ6F,EAAE7F,QAAQrT,EAAEsjE,OAAOpqD,EAAEoqD,OAAOpqD,EAAE0qI,aAAa5jJ,EAAE4jJ,WAAW1qI,EAAE0qI,YAAY1qI,EAAEgmF,MAAMl/F,EAAEk/F,IAAIhmF,EAAEgmF,KAAK,CAAC,CAAC,SAAStyB,KAAK,IAAI9oD,EAAEtK,GAAEpG,QAAQ,OAAOzL,GAAG,CAACyL,QAAQ0Q,EAAEkgI,YAAYp0I,OAAOuzB,yBAAyB3pB,GAAE,WAAW3B,IAAIiM,EAAEjM,IAAIurI,KAAKt/H,EAAEs/H,KAAKQ,WAAW9/H,EAAE8/H,WAAW1kD,IAAIp7E,EAAEo7E,IAAI7rF,QAAQyQ,EAAEzQ,QAAQiwD,OAAOx/C,EAAEw/C,OAAO2gF,MAAMt7E,GAAG7sE,KAAKooJ,MAAMpgI,EAAEkc,UAAUlkC,MAAM,CAAC,CAAC,CAAC,SAAS2yE,GAAGj1D,EAAEsK,EAAErI,EAAEoB,EAAE7c,GAAG,IAAIkZ,EAAEm0D,GAAG,IAAI,OAAO5tB,GAAGjmC,GAAE,GAAIsK,EAAErI,EAAEoB,EAAE7c,EAAE,SAASy/C,GAAGvmC,GAAE,EAAG,CAAC,CAAC,SAAS41D,GAAGt1D,GAAGmZ,GAAG65B,KAAK0c,GAAG1vD,EAAE,CAAC,SAASg1D,GAAGh1D,EAAEsK,EAAErI,EAAEoB,GAAG,MAAM,mBAAmBrD,EAAEA,EAAE,WAAW,IAAIxZ,EAAEqtE,GAAG5xD,GAAG2yD,KAAK3uB,GAAG37B,GAAE,GAAI,IAAI,OAAOtK,EAAEvB,MAAMxc,KAAKyc,UAAU,SAASunC,GAAGz/C,GAAE,GAAI6c,GAAGiyD,GAAGR,GAAG,CAAC,CAAC,CAAC,SAASS,GAAGv1D,EAAEsK,GAAG,OAAO,SAASrI,EAAEoB,GAAG,OAAOrD,EAAEgzC,KAAK/wD,KAAK+yE,GAAG/yD,EAAEqI,GAAG0qD,GAAG3xD,EAAEiH,GAAG,CAAC,EAAC,KAAM,GAAG6O,IAAI4N,QAAQ,mBAAmB6tC,GAAGE,GAAGpH,IAAI,MAAMlvB,GAAG,qBAAqB,SAASg3B,GAAGlrD,EAAErI,GAAG,IAAIzb,EAAE,IAAIA,EAAEyb,EAAE8mI,YAAYz+H,EAAE,OAAU,CAAC,IAAG,IAAK9jB,EAAE,IAAI,IAAIkZ,EAAEsC,EAAE,CAACwxF,QAAQvxF,EAAE24D,OAAOtwD,GAAG,GAAGtK,GAAE5V,UAAUA,SAASugJ,cAAcjrI,EAAEtV,SAASugJ,YAAY,UAAUC,UAAUpsG,IAAG,GAAG,GAAIn7B,GAAE3D,EAAEsC,IAAIhC,GAAE6qI,aAAaxnI,GAAE3D,EAAE,IAAImrI,YAAYrsG,GAAG,CAACssG,OAAO9oI,IAAIA,GAAGtC,GAAGM,GAAE+qI,gBAAgBA,cAAcrrI,IAAIM,GAAEgrI,uBAAuBhrI,GAAEwkI,sBAAsB,IAAIxkI,GAAEwkI,qBAAqB9kI,EAAE,OAAU,CAACqrD,IAAGrrD,IAAIA,EAAEurI,kBAAkBn2I,QAAQ3H,KAAM,wBAAuBmd,EAAEuqE,OAAOvqE,IAAI,OAAU,CAAC,CAAC,IAAImrD,GAAGxB,GAAGnK,OAAO,SAAS8L,GAAG51D,EAAEsK,EAAErI,EAAEoB,GAAG,GAAGrD,EAAEkrI,QAAQlrI,EAAEsrD,OAAO6/E,cAAct3E,GAAGu3E,YAAYprI,EAAEqrI,MAAM,CAAC,IAAI7kJ,EAAEwZ,EAAEsrI,mBAAmBhhI,EAAErI,EAAEjC,EAAEurI,WAAW,IAAI/kJ,EAAE6iC,SAASrpB,EAAEsrD,OAAOkgF,eAAe,CAAC,OAAOhlJ,GAAG,OAAOA,EAAEgC,OAAOskE,GAAE2+E,cAAczrI,EAAE0rI,YAAY1rI,EAAEsrD,OAAOkgF,eAAe,GAAG12I,QAAQ3H,KAAK,4BAA4B6S,EAAE2rI,SAAS3rI,EAAEq4F,OAAO/1G,KAAM,IAAIszE,GAAG51D,EAAEsK,EAAErI,EAAEoB,KAAMoyD,GAAGjvE,EAAE,CAAC,OAAOA,EAAE6wE,SAAS/sD,EAAG,CAACtK,EAAEsK,IAAIqqD,GAAI,KAAKd,GAAG+3E,MAAMplJ,EAAE6c,EAAErD,EAAEsK,EAAE9jB,MAAQlE,KAAM0d,GAAGxZ,EAAEqlJ,YAAYvpJ,KAAM,IAAI0d,GAAK,CAAC,GAAGA,EAAEsrD,OAAO6/E,aAAa,OAAO11E,GAAG,IAAInI,GAAE+5E,eAAernI,EAAEsrD,OAAOwgF,cAAc,IAAI9rI,EAAEsrD,OAAOygF,cAAc,CAAC,IAAI/rI,EAAEokC,SAAS4nG,SAAS,OAAOv2E,GAAG,IAAInI,GAAE+5E,gBAAgBrnI,EAAEq4F,OAAO7tG,MAAMkjE,GAAG,CAAC,OAAO1tD,EAAEsrD,OAAO2gF,eAAe3pJ,KAAM,IAAIszE,GAAG51D,EAAEsK,EAAErI,EAAEoB,GAAI,CAAC,MAA+CgzD,IAAG,IAAKj3B,GAAG,oGAAoGs2B,GAAG,mBAAmBr/B,GAAG,GAAGigC,UAAuBw5C,UAApB,KAA+B,sBAAsBjoF,KAAKioF,UAAUo8B,WAAWp/F,GAAGwpB,GAAGx3B,GAAGw3B,GAAG2B,GAAGj4D,IAAI,6BAA6B6nB,KAAK7nB,GAAG+3D,GAAG,YAAYU,GAAG,WAAWE,GAAG,YAAY,SAAS3C,GAAGh2D,EAAEsK,GAAG,OAAOtK,EAAEsK,EAAE,WAAW,OAAOtK,EAAEvB,MAAMxc,KAAKyc,YAAY4L,EAAE7L,MAAMxc,KAAKyc,UAAU,EAAEsB,EAAEsK,CAAC,CAAC,MAAM4uD,GAAG,CAAC7kE,KAAK,EAAE83I,OAAM,IAAKC,WAAU,EAAGC,MAAM,CAAC,IAAIC,WAAU,GAAI,SAAS50E,GAAG13D,GAAG,MAAM,iBAAiBA,GAAG,KAAK6nB,KAAK7nB,GAAGA,GAAGA,EAAEsK,SAAI,IAASA,EAAEtK,IAAIA,KAAKsK,UAAUA,EAAEyhD,GAAEzhD,IAAItK,GAAGsK,EAAE,CAAC,MAAM0tD,GAAGu0E,OAAOvsI,EAAEsK,EAAErI,GAAG,MAAMoB,EAAEphB,KAAKuqJ,KAAK34E,GAAG+3E,MAAMplJ,EAAEvE,KAAKuG,KAAK,SAASkX,EAAEM,GAAEiC,GAAEoB,IAAG,IAAIA,GAAEumC,OAAOpjD,GAAG,MAAM,IAAI8mE,GAAEm/E,SAAS,SAASjmJ,EAAE,4BAA4B,OAAO8jB,EAAEjH,GAAEqpI,SAASrpI,GAAE,CAAC,MAAMrB,EAAEsvD,KAAK,IAAI,OAAOjuD,GAAGA,EAAEspI,KAAK1qJ,KAAK0qJ,GAAGtpI,IAAIwwD,GAAG+3E,MAAMvoI,EAAEg0D,SAASr3D,EAAEN,EAAEuC,GAAG0yD,GAAI,IAAItxD,EAAEg0D,SAASr3D,EAAEN,EAAEuC,GAAI,CAAC2pI,MAAMvoI,EAAEupI,UAAU/4E,GAAG+4E,WAAW/4E,KAAK+B,GAAG3zE,KAAK0qJ,GAAG3sI,EAAE,CAAC/d,KAAKuG,MAAMkX,EAAE,SAASsC,GAAGsyD,IAAI,CAAC,CAACvvE,IAAIib,EAAEsK,GAAG,OAAOtK,GAAGA,EAAEle,cAAcsU,OAAOnU,KAAK4qJ,MAAM7sI,GAAGs2B,MAAMhsB,GAAGroB,KAAKsqJ,OAAO,WAAYjiI,GAAGroB,KAAK4tC,KAAK9qC,IAAI,CAAC6mJ,MAAMthI,EAAEmc,IAAIzmB,IAAI1d,KAAM0d,GAAG/d,KAAK6qJ,KAAKC,QAAQC,KAAKhtI,KAAO1d,KAAKgoB,EAAE,CAACuiI,MAAM7sI,GAAG,GAAG,iBAAiBA,EAAE,OAAO,IAAI/d,KAAK0qJ,GAAGM,YAAYhrJ,KAAK+d,GAAG,GAAGiC,GAAEjC,GAAG,OAAO,IAAI/d,KAAK0qJ,GAAGM,YAAYhrJ,KAAM,IAAG+d,EAAE7T,KAAK,SAAS,MAAMkX,EAAEiH,GAAEtK,GAAG,GAAG,IAAIqD,EAAE1L,OAAO,OAAO1V,KAAK4qJ,MAAMxpI,EAAE,IAAI6pI,OAAOltI,EAAEqD,EAAE,KAAK,MAAM7c,EAAEvE,KAAK2nD,OAAOujG,QAAQjG,OAAOjlJ,KAAK2nD,OAAOwjG,SAASnkJ,OAAQ+W,KAAI,GAAGA,GAAEqtI,UAAUhqI,EAAEy5B,MAAOxyB,IAAGtK,GAAEstI,QAAQvmH,QAAQzc,KAAI,GAAI,CAAC,QAAQA,GAAE,EAAEA,GAAEjH,EAAE1L,SAAS2S,GAAE,IAAG,IAAKjH,EAAE0jB,QAAQ/mB,GAAEstI,QAAQhjI,KAAI,OAAM,EAAG,OAAM,CAAE,CAAC,OAAM,IAAMvU,KAAM,CAACiK,GAAEsK,KAAItK,GAAEstI,QAAQ31I,OAAO2S,GAAEgjI,QAAQ31I,QAAS,GAAG,GAAGnR,GAAtlDyoE,WAAylDhtE,KAAK0qJ,GAAGY,QAAa,CAAC,MAAMjjI,GAAE9jB,EAAE8mJ,QAAQ3tI,MAAM,EAAE0D,EAAE1L,QAAQ,OAAO1V,KAAK4qJ,MAAMviI,IAAG4iI,OAAO5iI,GAAEhiB,IAAKgiB,IAAGtK,EAAEsK,KAAK,EAAE9jB,GAAGukE,IAAGj2D,QAAQ3H,KAAM,aAAYklB,KAAKC,UAAUtS,SAAS/d,KAAKuG,2CAA2C6a,EAAElX,KAAK,SAAS,MAAMqhJ,UAAU9tI,GAAGzd,KAAK2nD,OAAO5nC,EAAE/f,KAAK0qJ,GAAGc,MAAMC,UAAU,SAAS78I,EAAEmP,GAAEsK,IAAG,IAAI,OAAO,IAAItI,EAAE2rI,IAAI3tI,GAAEsK,GAAE,OAAU,OAAM,CAAE,CAAC,CAAC,MAAM1jB,EAAEmjE,IAAG1mD,EAAEnE,OAAQ,EAAEoL,GAAEjH,IAAG7c,MAAK,MAAMwb,GAAEtC,EAAElZ,IAAGI,GAAEoZ,EAAExZ,IAAG,MAAM,CAAC8jB,IAAGtI,GAAEsI,KAAItI,GAAEg0D,GAAG3yD,GAAErB,IAAGA,GAAE3S,MAAM2Q,KAAI,MAAMsK,GAAE9S,GAAEwI,GAAExZ,IAAG,OAAOyb,GAAEqI,KAAIA,GAAEtH,KAAMhD,IAAGnP,EAAEjK,GAAEoZ,IAAG,EAAGA,IAAGnP,EAAEjK,GAAE4Q,GAAEwI,GAAExZ,MAAK6c,GAAC,EAAI,CAAC,KAAK,OAAO,OAAOzc,EAAE3E,KAAK4qJ,MAAMjmJ,EAAE4B,MAAM0kJ,OAAOltI,EAAEpZ,EAAE0mJ,UAAUrkJ,OAAO8gE,IAAGvjE,EAAEvE,KAAKgH,OAAO8gE,IAAG9nE,KAAK4qJ,MAAMxpI,GAAG6pI,OAAO,GAAG,CAACjkJ,OAAO+W,GAAG,OAAO/d,KAAKmsH,eAAew/B,IAAI5tI,EAAE,CAACmhB,MAAMnhB,GAAG,OAAO/d,KAAKmsH,eAAejtF,MAAMnhB,EAAE,CAACkgE,OAAOlgE,GAAG,OAAO/d,KAAKmsH,eAAeluC,OAAOlgE,EAAE,CAAC6tI,MAAM7tI,GAAG,OAAO/d,KAAKmsH,eAAey/B,MAAM7tI,EAAE,CAAC8tI,KAAK9tI,GAAG,OAAO/d,KAAKmsH,eAAe0/B,KAAK9tI,EAAE,CAAC+tI,QAAQ/tI,GAAG,OAAO/d,KAAKmsH,eAAe2/B,QAAQ/tI,EAAE,CAACouG,eAAe,OAAO,IAAInsH,KAAK0qJ,GAAGqB,WAAW,IAAI/rJ,KAAK0qJ,GAAGM,YAAYhrJ,MAAM,CAACgsJ,QAAQjuI,GAAG,OAAO,IAAI/d,KAAK0qJ,GAAGqB,WAAW,IAAI/rJ,KAAK0qJ,GAAGM,YAAYhrJ,KAAKggB,GAAEjC,GAAI,IAAGA,EAAE7T,KAAK,QAAQ6T,GAAG,CAAC23C,UAAU,OAAO11D,KAAKmsH,eAAez2D,SAAS,CAACu2F,WAAWluI,GAAG/d,KAAK2nD,OAAOukG,YAAYnuI,EAAE,MAAMsK,EAAEA,IAAI,IAAIA,EAAE,OAAOA,EAAE,MAAMrI,EAAE7L,OAAOizB,OAAOrpB,EAAEwmB,WAAW,QAAQnjB,KAAKiH,EAAE,GAAGtI,GAAEsI,EAAEjH,GAAG,IAAIpB,EAAEoB,GAAGiH,EAAEjH,EAAE,OAAU,CAAC,OAAOpB,GAAG,OAAOhgB,KAAK2nD,OAAOwkG,UAAUnsJ,KAAK6qJ,KAAKC,QAAQ33I,YAAYnT,KAAK2nD,OAAOwkG,UAAUnsJ,KAAK2nD,OAAOwkG,SAAS9jI,EAAEroB,KAAK6qJ,KAAK,UAAUxiI,GAAGtK,CAAC,CAACquI,cAAc,OAAOpsJ,KAAKisJ,WAAY,SAASluI,GAAGqD,GAAEphB,KAAK+d,EAAE,EAAG,CAACy6B,IAAIz6B,EAAEsK,GAAG,MAAMgkI,KAAKrsI,EAAEqrI,QAAQjqI,GAAGphB,KAAK2nD,OAAOwjG,QAAQ,IAAI5mJ,EAAEwZ,EAAE,OAAOqD,GAAGpB,IAAIzb,EAAEkxE,GAAGr0D,EAAHq0D,CAAM13D,IAAI/d,KAAKsqJ,OAAO,YAAavsI,GAAG/d,KAAK4tC,KAAK0+G,OAAO,CAAC3C,MAAM5rI,EAAE3L,KAAK,MAAMk1B,KAAK,MAAMjf,EAAE,CAACA,GAAG,KAAKmmB,OAAO,CAACjqC,MAAOlE,KAAM0d,GAAGA,EAAEwuI,YAAYv6E,GAAGnK,OAAO9pD,EAAEynI,SAAS,IAAIznI,EAAEyuI,YAAansJ,KAAMgoB,IAAI,GAAGjH,EAAE,IAAIzZ,GAAEoW,EAAEqD,EAAEiH,EAAE,OAAU,CAAC,OAAOA,GAAI,CAACy6C,OAAO/kD,EAAEqD,GAAG,GAAG,iBAAiBrD,GAAGiC,GAAEjC,GAAG,OAAO/d,KAAK4qJ,MAAM,OAAOK,OAAOltI,GAAG0uI,OAAOrrI,GAAG,CAAC,MAAMpB,EAAEzK,GAAEwI,EAAE/d,KAAK2nD,OAAOwjG,QAAQE,SAAS,QAAG,IAASrrI,EAAE,OAAOwzD,GAAG,IAAInI,GAAEqhF,gBAAgB,kDAAkD,IAAI,mBAAmBtrI,EAAEiH,GAAEjH,GAAGnB,QAASoI,IAAI1gB,GAAEoW,EAAEsK,EAAEjH,EAAEiH,GAAE,GAAKjH,EAAErD,EAAE,CAACxL,MAAMwL,EAAEotI,QAAQnrI,GAAG,OAAU,CAAC,OAAOhgB,KAAK4qJ,MAAM,OAAOK,OAAOjrI,GAAGysI,OAAOrrI,EAAE,CAAC,CAACkgD,IAAIvjD,EAAEsK,GAAG,MAAMgkI,KAAKrsI,EAAEqrI,QAAQjqI,GAAGphB,KAAK2nD,OAAOwjG,QAAQ,IAAI5mJ,EAAEwZ,EAAE,OAAOqD,GAAGpB,IAAIzb,EAAEkxE,GAAGr0D,EAAHq0D,CAAM13D,IAAI/d,KAAKsqJ,OAAO,YAAavsI,GAAG/d,KAAK4tC,KAAK0+G,OAAO,CAAC3C,MAAM5rI,EAAE3L,KAAK,MAAMo8B,OAAO,CAACjqC,GAAG+iC,KAAK,MAAMjf,EAAE,CAACA,GAAG,QAAShoB,KAAM0d,GAAGA,EAAEwuI,YAAYv6E,GAAGnK,OAAO9pD,EAAEynI,SAAS,IAAIznI,EAAEyuI,YAAansJ,KAAMgoB,IAAI,GAAGjH,EAAE,IAAIzZ,GAAEoW,EAAEqD,EAAEiH,EAAE,OAAU,CAAC,OAAOA,GAAI,CAAC84C,OAAOpjD,GAAG,OAAO/d,KAAKsqJ,OAAO,YAAajiI,GAAGroB,KAAK4tC,KAAK0+G,OAAO,CAAC3C,MAAMthI,EAAEjW,KAAK,SAASk1B,KAAK,CAACvpB,MAAO1d,KAAM0d,GAAGA,EAAEwuI,YAAYv6E,GAAGnK,OAAO9pD,EAAEynI,SAAS,SAAI,EAAQ,CAACvzG,QAAQ,OAAOjyC,KAAKsqJ,OAAO,YAAavsI,GAAG/d,KAAK4tC,KAAK0+G,OAAO,CAAC3C,MAAM5rI,EAAE3L,KAAK,cAAcu6I,MAAM11E,MAAO52E,KAAM0d,GAAGA,EAAEwuI,YAAYv6E,GAAGnK,OAAO9pD,EAAEynI,SAAS,SAAI,EAAQ,CAACoH,QAAQ7uI,GAAG,OAAO/d,KAAKsqJ,OAAO,WAAYjiI,GAAGroB,KAAK4tC,KAAKi/G,QAAQ,CAACvlH,KAAKvpB,EAAE4rI,MAAMthI,IAAIhoB,KAAM0d,GAAGA,EAAE1X,IAAK0X,GAAG/d,KAAK6qJ,KAAKC,QAAQC,KAAKhtI,KAAQ,CAAC+uI,QAAQ/uI,EAAEsK,EAAErI,GAAG,MAAMoB,EAAE9D,MAAMqnB,QAAQtc,GAAGA,OAAE,EAAO9jB,GAAGyb,EAAEA,IAAIoB,OAAE,EAAOiH,IAAIrI,EAAE+sI,aAAQ,EAAO,OAAO/sJ,KAAKsqJ,OAAO,YAAajiI,IAAI,MAAMgkI,KAAKrsI,EAAEqrI,QAAQ5tI,IAAGzd,KAAK2nD,OAAOwjG,QAAQ,GAAG1tI,IAAG2D,EAAE,MAAM,IAAIiqD,GAAEqhF,gBAAgB,gEAAgE,GAAGtrI,GAAGA,EAAE1L,SAASqI,EAAErI,OAAO,MAAM,IAAI21D,GAAEqhF,gBAAgB,wDAAwD,MAAM3sI,GAAEhC,EAAErI,OAAO,IAAI9G,GAAE6O,IAAGuC,EAAEjC,EAAE1X,IAAIovE,GAAGh4D,KAAIM,EAAE,OAAO/d,KAAK4tC,KAAK0+G,OAAO,CAAC3C,MAAMthI,EAAEjW,KAAK,MAAMk1B,KAAKlmB,EAAEotB,OAAO5/B,GAAEo+I,YAAYzoJ,IAAIlE,KAAM,EAAEksJ,YAAYxuI,GAAEqR,QAAQ/G,GAAEmkI,WAAWxsI,GAAEwlI,SAASpkI,OAAM,GAAG,IAAIrD,GAAE,OAAOxZ,EAAE8jB,GAAErI,GAAE,MAAM,IAAIorD,GAAG,GAAEprE,KAAKuG,mBAAmBwX,SAAQgC,uBAAsBqB,GAAC,EAAG,EAAI,CAAC6rI,QAAQlvI,EAAEsK,EAAErI,GAAG,MAAMoB,EAAE9D,MAAMqnB,QAAQtc,GAAGA,OAAE,EAAO9jB,GAAGyb,EAAEA,IAAIoB,OAAE,EAAOiH,IAAIrI,EAAE+sI,aAAQ,EAAO,OAAO/sJ,KAAKsqJ,OAAO,YAAajiI,IAAI,MAAMgkI,KAAKrsI,EAAEqrI,QAAQ5tI,IAAGzd,KAAK2nD,OAAOwjG,QAAQ,GAAG1tI,IAAG2D,EAAE,MAAM,IAAIiqD,GAAEqhF,gBAAgB,gEAAgE,GAAGtrI,GAAGA,EAAE1L,SAASqI,EAAErI,OAAO,MAAM,IAAI21D,GAAEqhF,gBAAgB,wDAAwD,MAAM3sI,GAAEhC,EAAErI,OAAO,IAAI9G,GAAE6O,IAAGuC,EAAEjC,EAAE1X,IAAIovE,GAAGh4D,KAAIM,EAAE,OAAO/d,KAAK4tC,KAAK0+G,OAAO,CAAC3C,MAAMthI,EAAEjW,KAAK,MAAMk1B,KAAKlmB,EAAEotB,OAAO5/B,GAAEo+I,YAAYzoJ,IAAIlE,KAAM,EAAEksJ,YAAYxuI,GAAEqR,QAAQ/G,GAAEmkI,WAAWxsI,GAAEwlI,SAASpkI,OAAM,GAAG,IAAIrD,GAAE,OAAOxZ,EAAE8jB,GAAErI,GAAE,MAAM,IAAIorD,GAAG,GAAEprE,KAAKuG,mBAAmBwX,SAAQgC,uBAAsBqB,GAAC,EAAG,EAAI,CAAC8rI,WAAWnvI,GAAG,MAAMsK,EAAEtK,EAAErI,OAAO,OAAO1V,KAAKsqJ,OAAO,YAAajiI,GAAGroB,KAAK4tC,KAAK0+G,OAAO,CAAC3C,MAAMthI,EAAEjW,KAAK,SAASk1B,KAAKvpB,KAAM1d,KAAM,EAAEksJ,YAAYxuI,EAAEyuI,WAAWxsI,EAAEwlI,SAASpkI,MAAM,GAAG,IAAIrD,EAAE,OAAOiC,EAAE,MAAM,IAAIorD,GAAG,GAAEprE,KAAKuG,sBAAsBwX,QAAQsK,sBAAsBjH,EAAC,EAAI,EAAE,SAASu0D,GAAG53D,GAAG,IAAIqD,EAAE,CAAC,EAAE7c,EAAE,SAAS8jB,EAAErI,GAAG,GAAGA,EAAE,CAAC,QAAQzb,GAAEkY,UAAU/G,OAAO+H,GAAE,IAAIH,MAAM/Y,GAAE,KAAKA,IAAGkZ,GAAElZ,GAAE,GAAGkY,UAAUlY,IAAG,OAAO6c,EAAEiH,GAAGzmB,UAAU4a,MAAM,KAAKiB,IAAGM,CAAC,CAAC,GAAG,iBAAiBsK,EAAE,OAAOjH,EAAEiH,EAAE,EAAE9jB,EAAE4oJ,aAAav+I,EAAE,QAAQ6O,EAAE,EAAEsC,EAAEtD,UAAU/G,OAAO+H,EAAEsC,IAAItC,EAAE7O,EAAE6N,UAAUgB,IAAI,OAAOlZ,EAAE,SAASqK,EAAEmP,EAAEN,EAAEsC,IAAG,GAAG,iBAAiBhC,EAAE,CAAC,IAAIpZ,GAAE8Y,IAAIA,EAAE2uD,IAAIrsD,KAAIA,GAAE0rD,IAAI,IAAI3D,GAAE,CAACslF,YAAY,GAAGrC,KAAKhrI,GAAEne,UAAU,SAASmc,KAAG,IAAK+pD,GAAEslF,YAAYtoH,QAAQ/mB,MAAK+pD,GAAEslF,YAAYnvI,KAAKF,IAAG+pD,GAAEijF,KAAKttI,EAAEqqD,GAAEijF,KAAKhtI,IAAG,EAAE5K,YAAY,SAAS4K,IAAG+pD,GAAEslF,YAAYtlF,GAAEslF,YAAYpmJ,OAAQ,SAASqhB,IAAG,OAAOA,KAAItK,EAAC,GAAI+pD,GAAEijF,KAAKjjF,GAAEslF,YAAYnwI,OAAOQ,EAAEsC,GAAE,GAAG,OAAOqB,EAAErD,GAAGxZ,EAAEwZ,GAAG+pD,GAAEA,EAAC,CAACz/C,GAAE1jB,GAAEoZ,GAAGkC,QAAS,SAASlC,IAAG,IAAIsK,GAAE1jB,GAAEoZ,IAAG,GAAGiC,GAAEqI,IAAGzZ,EAAEmP,GAAEpZ,GAAEoZ,IAAG,GAAGpZ,GAAEoZ,IAAG,QAAQ,CAAC,GAAG,SAASsK,GAAE,MAAM,IAAIgjD,GAAEqhF,gBAAgB,wBAAwB,IAAItrI,GAAExS,EAAEmP,GAAE+jB,GAAI,WAAW,QAAQ/jB,GAAEtB,UAAU/G,OAAO2S,GAAE,IAAI/K,MAAMS,IAAGA,MAAKsK,GAAEtK,IAAGtB,UAAUsB,IAAGqD,GAAEgsI,YAAYntI,QAAS,SAASlC,IAAGuO,GAAG,WAAWvO,GAAEvB,MAAM,KAAK6L,GAAE,EAAG,EAAG,EAAG,CAAC,EAAG,CAAC,CAAC,SAASyvD,GAAG/5D,EAAEsK,GAAG,OAAO5Z,GAAE4Z,GAAG/S,KAAK,CAACivB,UAAUxmB,IAAIsK,CAAC,CAAC,SAAS2uD,GAAGj5D,EAAEsK,GAAG,QAAQtK,EAAE/W,QAAQ+W,EAAEsvI,WAAWtvI,EAAE23D,MAAMrtD,EAAEtK,EAAEuvI,WAAWvvI,EAAEwvI,aAAa,CAAC,SAAS13E,GAAG93D,EAAEsK,GAAGtK,EAAE/W,OAAO+sE,GAAGh2D,EAAE/W,OAAOqhB,EAAE,CAAC,SAASksD,GAAGx2D,EAAEsK,EAAErI,GAAG,IAAIoB,EAAErD,EAAEwvI,aAAaxvI,EAAEwvI,aAAansI,EAAE,IAAI2yD,GAAG3yD,IAAIiH,KAAKA,EAAEtK,EAAEuvI,UAAUttI,IAAIoB,CAAC,CAAC,SAAS6yD,GAAGl2D,EAAEsK,GAAG,GAAGtK,EAAEyvI,UAAU,OAAOnlI,EAAEolI,WAAW,MAAMztI,EAAEqI,EAAEqlI,kBAAkB3vI,EAAEpD,OAAO,IAAIqF,EAAE,MAAM,IAAIqrD,GAAEsiF,OAAO,WAAW5vI,EAAEpD,MAAM,oBAAoB0N,EAAE9hB,KAAK,mBAAmB,OAAOyZ,CAAC,CAAC,SAAS41D,GAAG73D,EAAEsK,EAAErI,GAAG,MAAMoB,EAAE6yD,GAAGl2D,EAAEsK,EAAEs/B,QAAQ,OAAOt/B,EAAEulI,WAAW,CAACjE,MAAM3pI,EAAEwuB,QAAQzwB,EAAE8vI,SAASn4F,QAAQ,SAAS33C,EAAE+vI,IAAIC,SAAShwI,EAAEgwI,OAAOtkD,MAAM,CAAC9uF,MAAMyG,EAAEurI,MAAM5uI,EAAE4uI,QAAQ,CAAC,SAASx4E,GAAGp2D,EAAEsK,EAAErI,EAAEoB,GAAG,MAAM7c,EAAEwZ,EAAEwvI,aAAax5E,GAAGh2D,EAAE/W,OAAO+W,EAAEwvI,gBAAgBxvI,EAAE/W,OAAO,GAAG+W,EAAE23D,GAAG,CAAC,MAAMj4D,EAAE,CAAC,EAAE7O,EAAEA,CAACmP,EAAEiC,GAAEoB,MAAK,IAAI7c,GAAGA,EAAEyb,GAAEoB,GAAGrD,IAAGiC,GAAEguI,KAAKjwI,IAAKA,IAAGiC,GAAEiuI,KAAKlwI,KAAK,CAAC,IAAInP,GAAEoR,GAAEytI,WAAW9oJ,GAAE,GAAGiK,GAAE,yBAAyBjK,KAAIA,GAAE,GAAG,IAAIkiC,WAAWj4B,KAAImR,GAAEtC,EAAE9Y,MAAK8Y,EAAE9Y,KAAG,EAAG0jB,EAAEtK,EAAEiC,GAAEoB,IAAG,GAAG,OAAOzJ,QAAQyE,IAAI,CAAC2B,EAAE23D,GAAGw4E,SAASt/I,EAAEoR,GAAGs0D,GAAGsB,GAAG73D,EAAEqD,EAAEpB,GAAGjC,EAAEsvI,UAAUz+I,GAAGmP,EAAE8vI,UAAU9vI,EAAEowI,cAAc,CAAC,OAAO75E,GAAGsB,GAAG73D,EAAEqD,EAAEpB,GAAG+zD,GAAGh2D,EAAEsvI,UAAU9oJ,GAAG8jB,GAAGtK,EAAE8vI,UAAU9vI,EAAEowI,YAAY,CAAC,SAAS75E,GAAGv2D,EAAEsK,EAAErI,EAAEoB,GAAG,IAAI7c,EAAE0rE,GAAG7uD,EAAE,CAACrD,EAAEsK,EAAE9jB,IAAIyb,EAAEoB,EAAErD,GAAGsK,EAAE9jB,GAAGyb,GAAG,OAAOjC,EAAE1d,KAAM0d,IAAI,GAAGA,EAAE,OAAOA,EAAE81D,MAAO,KAAK,IAAI7zD,EAAEA,IAAIjC,EAAEqwI,WAAW/lI,IAAIA,EAAEtK,EAAGA,GAAGiC,EAAEjC,EAAIsK,IAAItK,EAAEiwI,KAAK3lI,GAAGrI,EAAEyrD,IAAMpjD,IAAItK,EAAEkwI,KAAK5lI,GAAGrI,EAAEyrD,MAAOlnE,EAAEwZ,EAAExL,MAAMwL,EAAGA,GAAGiC,EAAEjC,GAAIiC,GAAE,EAAG,EAAI,CAAC,SAAS62D,GAAG94D,EAAEsK,GAAG,IAAI,MAAMrI,EAAE42D,GAAG74D,GAAGqD,EAAEw1D,GAAGvuD,GAAG,GAAGrI,IAAIoB,EAAE,MAAM,UAAUpB,EAAE,EAAE,UAAUoB,GAAE,EAAG,WAAWpB,EAAE,EAAE,WAAWoB,GAAE,EAAG,WAAWpB,EAAE,EAAE,WAAWoB,GAAE,EAAG,SAASpB,EAAE,EAAE,SAASoB,EAAEitI,KAAI,EAAG,OAAOruI,GAAG,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,OAAOjC,EAAEsK,EAAE,EAAEtK,EAAEsK,GAAE,EAAG,EAAE,IAAI,SAAS,OAAO,SAAStK,EAAEsK,GAAG,MAAMrI,EAAEjC,EAAErI,OAAO0L,EAAEiH,EAAE3S,OAAOnR,GAAEyb,EAAEoB,EAAEpB,EAAEoB,EAAE,QAAQpB,GAAE,EAAEA,GAAEzb,KAAIyb,GAAE,GAAGjC,EAAEiC,MAAKqI,EAAErI,IAAG,OAAOjC,EAAEiC,IAAGqI,EAAErI,KAAG,EAAG,EAAE,OAAOA,IAAIoB,EAAE,EAAEpB,EAAEoB,GAAE,EAAG,CAAC,CAApI,CAAsIs2D,GAAG35D,GAAG25D,GAAGrvD,IAAI,IAAI,QAAQ,OAAO,SAAStK,EAAEsK,GAAG,MAAMrI,EAAEjC,EAAErI,OAAO0L,EAAEiH,EAAE3S,OAAOnR,GAAEyb,EAAEoB,EAAEpB,EAAEoB,EAAE,QAAQpB,GAAE,EAAEA,GAAEzb,KAAIyb,GAAE,CAAC,MAAMoB,GAAEy1D,GAAG94D,EAAEiC,IAAGqI,EAAErI,KAAI,GAAG,IAAIoB,GAAE,OAAOA,EAAC,CAAC,OAAOpB,IAAIoB,EAAE,EAAEpB,EAAEoB,GAAE,EAAG,CAAC,CAAxI,CAA0IrD,EAAEsK,GAAG,OAAU,CAAC,OAAOgmI,GAAG,CAAC,SAASz3E,GAAG74D,GAAG,MAAMsK,SAAStK,EAAE,GAAG,WAAWsK,EAAE,OAAOA,EAAE,GAAGykD,YAAYyC,OAAOxxD,GAAG,MAAM,SAAS,MAAMiC,EAAEgpD,GAAEjrD,GAAG,MAAM,gBAAgBiC,EAAE,SAASA,CAAC,CAAC,SAAS03D,GAAG35D,GAAG,OAAOA,aAAa8oB,WAAW9oB,EAAE+uD,YAAYyC,OAAOxxD,GAAG,IAAI8oB,WAAW9oB,EAAEqwD,OAAOrwD,EAAEswD,WAAWtwD,EAAE6uD,YAAY,IAAI/lC,WAAW9oB,EAAE,CAAC,MAAM44D,GAAG23E,MAAMvwI,EAAEsK,GAAG,IAAIrI,EAAEhgB,KAAKuuJ,KAAK,OAAOvuI,EAAEvY,MAAMuY,EAAEg+D,MAAMssE,OAAO,KAAK92E,GAAGvlC,KAAK,KAAKjuB,EAAEvY,QAAQuY,EAAEg+D,MAAMssE,OAAO,WAAWvsI,GAAG1d,KAAKgoB,EAAE,CAACmmI,OAAOzwI,GAAG,IAAIsK,EAAEroB,KAAKuuJ,KAAK,OAAOlmI,EAAE5gB,MAAM4gB,EAAE21D,MAAMssE,OAAO,KAAK92E,GAAGvlC,KAAK,KAAK5lB,EAAE5gB,QAAQ4gB,EAAE21D,MAAMssE,OAAO,YAAYvsI,EAAE,SAAS,CAAC0wI,cAAc1wI,GAAG,IAAIsK,EAAEroB,KAAKuuJ,KAAKlmI,EAAEglI,UAAUt5E,GAAG1rD,EAAEglI,UAAUtvI,EAAE,CAACmwI,SAASnwI,EAAEsK,GAAG,OAAO8rD,GAAGn0E,KAAKuuJ,KAAKxwI,EAAEsK,EAAEroB,KAAKuuJ,KAAKvwE,MAAMpwC,KAAK,CAACxqC,MAAM2a,GAAG,IAAIsK,EAAElU,OAAOizB,OAAOpnC,KAAKH,YAAY0kC,WAAWvkB,EAAE7L,OAAOizB,OAAOpnC,KAAKuuJ,MAAM,OAAOxwI,GAAGqD,GAAEpB,EAAEjC,GAAGsK,EAAEkmI,KAAKvuI,EAAEqI,CAAC,CAACqmI,MAAM,OAAO1uJ,KAAKuuJ,KAAKJ,YAAY,KAAKnuJ,IAAI,CAAC6rJ,KAAK9tI,GAAG,IAAIsK,EAAEroB,KAAKuuJ,KAAK,OAAOvuJ,KAAKsuJ,MAAOtuI,GAAGm0D,GAAG9rD,EAAEtK,EAAEiC,EAAEqI,EAAE21D,MAAMpwC,MAAO,CAAC1O,MAAMnhB,GAAG,OAAO/d,KAAKsuJ,MAAOvwI,IAAI,MAAMsK,EAAEroB,KAAKuuJ,KAAKvuI,EAAEqI,EAAE21D,MAAMpwC,KAAK,GAAGopC,GAAG3uD,GAAE,GAAI,OAAOrI,EAAEkf,MAAM,CAACyqH,MAAM5rI,EAAE0rF,MAAM,CAAC9uF,MAAMs5D,GAAG5rD,EAAErI,EAAE2nC,QAAQglG,MAAMtkI,EAAEskI,SAAStsJ,KAAM0d,GAAGR,KAAKi/B,IAAIz+B,EAAEsK,EAAEujI,QAAS,IAAIxqI,EAAE,EAAE,OAAO+yD,GAAG9rD,EAAG,OAAOjH,GAAE,GAAKrD,EAAEiC,GAAG3f,KAAM,IAAI+gB,EAAE,GAAK/gB,KAAK0d,EAAE,CAAC4wI,OAAO5wI,EAAEsK,GAAG,MAAMrI,EAAEjC,EAAEgnB,MAAM,KAAK2wB,UAAUt0C,EAAEpB,EAAE,GAAGzb,EAAEyb,EAAEtK,OAAO,EAAE,SAAS+H,EAAEM,GAAEsK,IAAG,OAAOA,GAAE5K,EAAEM,GAAEiC,EAAEqI,KAAIA,GAAE,GAAGtK,GAAEqD,EAAE,CAAC,IAAIrB,EAAE,SAAS/f,KAAKuuJ,KAAKT,IAAI,GAAE,EAAG,SAASl/I,GAAEmP,GAAEsK,IAAG,IAAIrI,GAAEvC,EAAEM,GAAExZ,GAAG6c,GAAE3D,EAAE4K,GAAE9jB,GAAG,OAAOyb,GAAEoB,IAAGrB,EAAEC,GAAEoB,GAAErB,EAAE,CAAC,CAAC,OAAO/f,KAAK8rJ,QAAS,SAAS/tI,IAAG,OAAOA,GAAEjK,KAAKlF,GAAE,GAAIvO,KAAKgoB,EAAE,CAACyjI,QAAQ/tI,GAAG,OAAO/d,KAAKsuJ,MAAOvwI,IAAI,IAAIsK,EAAEroB,KAAKuuJ,KAAK,GAAG,SAASlmI,EAAEylI,KAAK92E,GAAG3uD,GAAE,IAAKA,EAAEujI,MAAM,EAAE,CAAC,MAAMuC,YAAYnuI,GAAGqI,EAAEjH,EAAE6yD,GAAG5rD,EAAEA,EAAE21D,MAAMpwC,KAAK+Z,QAAQ,OAAOt/B,EAAE21D,MAAMpwC,KAAK67D,MAAM,CAACkgD,MAAM5rI,EAAE6tI,MAAMvjI,EAAEujI,MAAMp9G,QAAO,EAAGi7D,MAAM,CAAC9uF,MAAMyG,EAAEurI,MAAMtkI,EAAEskI,SAAStsJ,KAAM,EAAEgc,OAAO0B,KAAKiC,EAAEjC,EAAE1X,IAAI2Z,GAAGjC,EAAG,CAAC,CAAC,MAAMiC,EAAE,GAAG,OAAOm0D,GAAG9rD,EAAGtK,GAAGiC,EAAE/B,KAAKF,GAAIA,EAAEsK,EAAE21D,MAAMpwC,MAAMvtC,KAAM,IAAI2f,EAAG,GAAIjC,EAAE,CAACkgE,OAAOlgE,GAAG,IAAIsK,EAAEroB,KAAKuuJ,KAAK,OAAOxwI,GAAG,IAAIsK,EAAE41D,QAAQlgE,EAAEi5D,GAAG3uD,GAAGksD,GAAGlsD,EAAG,KAAK,IAAIA,EAAEtK,EAAE,MAAM,CAACA,EAAEiC,IAAI,IAAIqI,IAAI,IAAIA,KAAKA,GAAE,IAAKrI,EAAG,KAAKjC,EAAEq+E,QAAQ/zE,GAAGA,EAAE,KAAK,MAAQksD,GAAGlsD,EAAG,KAAK,IAAIA,EAAEtK,EAAE,MAAM,MAAMsK,EAAE,KAAMroB,IAAI,CAAC4rJ,MAAM7tI,GAAG,OAAO/d,KAAKuuJ,KAAK3C,MAAMruI,KAAKi/B,IAAIx8C,KAAKuuJ,KAAK3C,MAAM7tI,GAAGw2D,GAAGv0E,KAAKuuJ,KAAM,KAAK,IAAIlmI,EAAEtK,EAAE,OAAO,SAASA,EAAEiC,EAAEoB,GAAG,QAAQiH,GAAG,GAAGrI,EAAEoB,GAAGiH,GAAG,CAAC,IAAI,GAAIroB,IAAI,CAAC4uJ,MAAM7wI,EAAEsK,GAAG,OAAOwtD,GAAG71E,KAAKuuJ,KAAM,SAASvuI,EAAEoB,EAAE7c,GAAG,OAAOwZ,EAAEiC,EAAEzN,SAAS6O,EAAE7c,GAAG8jB,EAAE,GAAIroB,IAAI,CAACq0C,MAAMt2B,GAAG,OAAO/d,KAAK4rJ,MAAM,GAAGE,QAAS,SAAS/tI,GAAG,OAAOA,EAAE,EAAE,GAAI1d,KAAK0d,EAAE,CAAC8wI,KAAK9wI,GAAG,OAAO/d,KAAK01D,UAAUrhB,MAAMt2B,EAAE,CAAC/W,OAAO+W,GAAG,IAAIsK,EAAI,OAAOwtD,GAAG71E,KAAKuuJ,KAAM,SAASlmI,GAAG,OAAOtK,EAAEsK,EAAE9V,MAAM,IAAI8V,EAAEroB,KAAKuuJ,MAAWO,QAAQ/6E,GAAG1rD,EAAEymI,QAAjB/wI,GAA4B/d,IAAI,CAAC2rJ,IAAI5tI,GAAG,OAAO/d,KAAKgH,OAAO+W,EAAE,CAAC23D,GAAG33D,GAAG,OAAO,IAAI/d,KAAK0qJ,GAAGM,YAAYhrJ,KAAKuuJ,KAAKvwE,MAAMjgE,EAAE/d,KAAK,CAAC01D,UAAU,OAAO11D,KAAKuuJ,KAAKT,IAAI,SAAS9tJ,KAAKuuJ,KAAKT,IAAI,OAAO,OAAO9tJ,KAAK+uJ,oBAAoB/uJ,KAAK+uJ,mBAAmB/uJ,KAAKuuJ,KAAKT,KAAK9tJ,IAAI,CAACyU,OAAO,OAAOzU,KAAK01D,SAAS,CAACs5F,QAAQjxI,GAAG,IAAIsK,EAAEroB,KAAKuuJ,KAAK,OAAOlmI,EAAEwlI,UAAUxlI,EAAEymI,QAAQ9uJ,KAAK6rJ,KAAM,SAASxjI,EAAErI,GAAGjC,EAAEiC,EAAEwkB,IAAIxkB,EAAE,EAAG,CAACivI,cAAclxI,GAAG,OAAO/d,KAAKuuJ,KAAKR,OAAO,SAAS/tJ,KAAKgvJ,QAAQjxI,EAAE,CAACmxI,eAAenxI,GAAG,IAAIsK,EAAEroB,KAAKuuJ,KAAK,OAAOlmI,EAAEwlI,UAAUxlI,EAAEymI,QAAQ9uJ,KAAK6rJ,KAAM,SAASxjI,EAAErI,GAAGjC,EAAEiC,EAAEytI,WAAWztI,EAAE,EAAG,CAACsnB,KAAKvpB,GAAG,IAAIsK,EAAEroB,KAAKuuJ,KAAKlmI,EAAEwlI,UAAUxlI,EAAEymI,QAAQ,IAAI9uI,EAAE,GAAG,OAAOhgB,KAAK6rJ,KAAM,SAAS9tI,EAAEsK,GAAGrI,EAAE/B,KAAKoK,EAAEmc,IAAI,GAAInkC,KAAM,WAAW,OAAO2f,CAAC,GAAI3f,KAAK0d,EAAE,CAACoxI,YAAYpxI,GAAG,IAAIsK,EAAEroB,KAAKuuJ,KAAK,GAAG,SAASlmI,EAAEylI,KAAK92E,GAAG3uD,GAAE,IAAKA,EAAEujI,MAAM,EAAE,OAAO5rJ,KAAKsuJ,MAAOvwI,IAAI,IAAIiC,EAAEi0D,GAAG5rD,EAAEA,EAAE21D,MAAMpwC,KAAK+Z,QAAQ,OAAOt/B,EAAE21D,MAAMpwC,KAAK67D,MAAM,CAACkgD,MAAM5rI,EAAEywB,QAAO,EAAGo9G,MAAMvjI,EAAEujI,MAAMniD,MAAM,CAAC9uF,MAAMqF,EAAE2sI,MAAMtkI,EAAEskI,QAAO,GAAKtsJ,KAAM,EAAEgc,OAAO0B,KAAKA,GAAI1d,KAAK0d,GAAGsK,EAAEwlI,UAAUxlI,EAAEymI,QAAQ,IAAI9uI,EAAE,GAAG,OAAOhgB,KAAK6rJ,KAAM,SAAS9tI,EAAEsK,GAAGrI,EAAE/B,KAAKoK,EAAEolI,WAAW,GAAIptJ,KAAM,WAAW,OAAO2f,CAAC,GAAI3f,KAAK0d,EAAE,CAACqxI,WAAWrxI,GAAG,OAAO/d,KAAKuuJ,KAAKR,OAAO,SAAS/tJ,KAAKsnC,KAAKvpB,EAAE,CAACsxI,SAAStxI,GAAG,OAAO/d,KAAK4rJ,MAAM,GAAGtkH,KAAM,SAASvpB,GAAG,OAAOA,EAAE,EAAE,GAAI1d,KAAK0d,EAAE,CAACuxI,QAAQvxI,GAAG,OAAO/d,KAAK01D,UAAU25F,SAAStxI,EAAE,CAAC+8G,WAAW,IAAI/8G,EAAE/d,KAAKuuJ,KAAKlmI,EAAEtK,EAAEpD,OAAOoD,EAAEigE,MAAMr2B,OAAO4jG,UAAUxtI,EAAEpD,OAAO,IAAI0N,IAAIA,EAAEjb,MAAM,OAAOpN,KAAK,IAAIggB,EAAE,CAAC,EAAE,OAAO61D,GAAG71E,KAAKuuJ,KAAM,SAASxwI,GAAG,IAAIsK,EAAEtK,EAAE0vI,WAAWvkJ,WAAWkY,EAAErB,GAAEC,EAAEqI,GAAG,OAAOrI,EAAEqI,IAAG,GAAIjH,CAAC,GAAIphB,IAAI,CAACysJ,OAAO1uI,GAAG,IAAIiC,EAAEhgB,KAAKuuJ,KAAK,OAAOvuJ,KAAKwuJ,OAAQptI,IAAI,IAAI7c,EAAE,GAAG,mBAAmBwZ,EAAExZ,EAAEwZ,MAAM,CAAC,IAAIN,EAAE4K,GAAEtK,GAAGgC,EAAEtC,EAAE/H,OAAOnR,EAAE,SAAS8jB,IAAG,QAAQrI,IAAE,EAAGoB,GAAE,EAAEA,GAAErB,IAAIqB,GAAE,CAAC,IAAI7c,GAAEkZ,EAAE2D,IAAGxS,GAAEmP,EAAExZ,IAAGgR,GAAE8S,GAAE9jB,MAAKqK,KAAIjH,GAAE0gB,GAAE9jB,GAAEqK,IAAGoR,IAAE,EAAG,CAAC,OAAOA,EAAC,CAAC,CAAC,MAAMpR,EAAEoR,EAAEg+D,MAAMpwC,MAAM2hH,SAAS5qJ,GAAE6qJ,WAAW1nF,IAAGl5D,EAAE+4C,OAAO8lG,WAAWh/I,GAAEzO,KAAK0qJ,GAAGvoG,SAASstG,iBAAiB,IAAI1nF,GAAE,GAAG,IAAIhkC,GAAE,EAAE,MAAMjI,GAAE,GAAGuZ,GAAEA,CAACt3B,GAAEiC,MAAK,MAAMwlI,SAASpkI,GAAEmrI,YAAYhoJ,IAAGyb,GAAE+jB,IAAGhmB,GAAExZ,GAAE,QAAQwZ,MAAKsK,GAAEjH,IAAG2mD,GAAE9pD,KAAKmD,GAAErD,IAAE,EAAG,OAAO/d,KAAKoD,QAAQ+rJ,cAAc9uJ,KAAMgoB,KAAI,MAAM5K,GAAEsC,KAAI,MAAMgoD,GAAExqD,KAAKi/B,IAAI/tC,GAAE4Z,GAAE3S,OAAOqK,IAAG,OAAOnR,EAAEi+I,QAAQ,CAAClD,MAAMvoI,EAAEkmB,KAAKjf,GAAE3K,MAAMqC,GAAEA,GAAEgoD,IAAG2nF,MAAM,cAAcrvJ,KAAM0jC,KAAI,MAAMjI,GAAE,GAAGtZ,GAAE,GAAGwlD,GAAErjE,GAAE,GAAG,KAAK2nB,GAAE,GAAG,QAAQvO,GAAE,EAAEA,GAAEgqD,KAAIhqD,GAAE,CAAC,MAAMiC,GAAE+jB,GAAEhmB,IAAGqD,GAAE,CAAC7O,MAAMu3D,GAAE9pD,IAAGmrI,QAAQ9iI,GAAEtI,GAAEhC,MAAI,IAAKxZ,EAAEwsD,KAAK3vC,GAAEA,GAAE7O,MAAM6O,MAAK,MAAMA,GAAE7O,MAAM+Z,GAAErO,KAAKoK,GAAEtI,GAAEhC,KAAIpZ,IAAG,IAAIkyE,GAAG/O,GAAE9nD,IAAG8nD,GAAE1mD,GAAE7O,SAASiQ,GAAEvE,KAAKmD,GAAE7O,OAAO5N,IAAGqjE,GAAE/pD,KAAKoK,GAAEtI,GAAEhC,OAAMuO,GAAErO,KAAKoK,GAAEtI,GAAEhC,KAAI+d,GAAE7d,KAAKmD,GAAE7O,QAAQ,CAAC,MAAMsI,GAAEm8D,GAAGh3D,IAAIA,EAAE4rI,QAAQ,MAAM,mBAAmB7tI,GAAGA,IAAIm4D,KAAK,CAACv7D,MAAMqF,EAAErF,MAAMgyI,MAAM3sI,EAAE2sI,OAAO,OAAOh1I,QAAQC,QAAQkkB,GAAEpmB,OAAO,GAAG9G,EAAE09I,OAAO,CAAC3C,MAAMvoI,EAAEhP,KAAK,MAAMo8B,OAAO1S,KAAIz7B,KAAM0d,KAAI,QAAQsK,MAAKtK,GAAEynI,SAASl5H,GAAE/Q,OAAO62F,SAAS/pF,IAAG,GAAGgtB,GAAEvZ,GAAEpmB,OAAOqI,GAAC,IAAM1d,KAAM,KAAKmiB,GAAE9M,OAAO,GAAGmF,IAAG,iBAAiBkD,IAAInP,EAAE09I,OAAO,CAAC3C,MAAMvoI,EAAEhP,KAAK,MAAMk1B,KAAK0gC,GAAEx5B,OAAOhsB,GAAEmtI,SAAS90I,GAAE+0I,WAAW,mBAAmB7xI,GAAGA,IAAI1d,KAAM0d,IAAGs3B,GAAE7yB,GAAE9M,OAAOqI,MAAO1d,KAAM,KAAKisB,GAAE5W,OAAO,GAAGmF,IAAGkD,IAAIm4D,KAAKtnE,EAAE09I,OAAO,CAAC3C,MAAMvoI,EAAEhP,KAAK,SAASk1B,KAAKhb,GAAEqjI,SAAS90I,KAAIxa,KAAM0d,IAAGs3B,GAAE/oB,GAAE5W,OAAOqI,MAAO1d,KAAM,IAAIgoB,GAAE3S,OAAOqK,GAAEgoD,IAAGtqD,GAAEsC,GAAEtR,IAAG,EAAG,EAAG,OAAOgP,GAAE,GAAGpd,KAAM,KAAK,GAAG0nE,GAAEryD,OAAO,EAAE,MAAM,IAAIw0D,GAAE,sCAAsCnC,GAAEhkC,GAAEjI,IAAG,OAAOzT,GAAE3S,QAAQ,EAAG,EAAI,CAACyrD,SAAS,IAAIpjD,EAAE/d,KAAKuuJ,KAAKlmI,EAAEtK,EAAE4uI,MAAM,OAAO31E,GAAGj5D,KAAKA,EAAEyvI,YAAY3wG,IAAI,IAAIx0B,EAAEjW,MAAMpS,KAAKwuJ,OAAQxuI,IAAI,MAAMytI,WAAWrsI,GAAGrD,EAAEigE,MAAMpwC,KAAK+Z,OAAOpjD,EAAE8jB,EAAE,OAAOtK,EAAEigE,MAAMpwC,KAAK1O,MAAM,CAACyqH,MAAM3pI,EAAEypF,MAAM,CAAC9uF,MAAMyG,EAAEurI,MAAMpoJ,KAAKlE,KAAMgoB,GAAGtK,EAAEigE,MAAMpwC,KAAK0+G,OAAO,CAAC3C,MAAM3pI,EAAE5N,KAAK,cAAcu6I,MAAMpoJ,IAAIlE,KAAM,EAAEmlJ,SAASznI,EAAyBwuI,YAAYhoJ,OAAM,GAAGA,GAAE,MAAM,IAAI2lE,GAAE,+BAA+B/1D,OAAOmzB,KAAKvpB,GAAG1X,IAAKgiB,IAAGtK,EAAEsK,KAAKA,EAAE9jB,IAAG,OAAO8jB,EAAE9jB,KAAK,GAAKvE,KAAKysJ,OAAOv2E,GAAG,EAAE,MAAMA,GAAGA,CAACn4D,EAAEsK,IAAIA,EAAE9V,MAAM,KAAK,SAASglE,GAAGx5D,EAAEsK,GAAG,OAAOtK,EAAEsK,GAAE,EAAGtK,IAAIsK,EAAE,EAAE,CAAC,CAAC,SAAS6uD,GAAGn5D,EAAEsK,GAAG,OAAOtK,EAAEsK,GAAE,EAAGtK,IAAIsK,EAAE,EAAE,CAAC,CAAC,SAASiuD,GAAGv4D,EAAEsK,EAAErI,GAAG,IAAIoB,EAAErD,aAAa8xI,GAAG,IAAI9xI,EAAEguI,WAAWhuI,GAAGA,EAAE,OAAOqD,EAAEmtI,KAAK9mJ,MAAMuY,EAAE,IAAIA,EAAEqI,GAAG,IAAI8/C,UAAU9/C,GAAGjH,CAAC,CAAC,SAASu2D,GAAG55D,GAAG,OAAO,IAAIA,EAAEguI,WAAWhuI,EAAG,IAAIo4D,GAAG,KAAMy1E,MAAM,EAAE,CAAC,SAASh0E,GAAG75D,EAAEsK,EAAErI,EAAEoB,EAAE7c,EAAEkZ,GAAG,QAAQsC,EAAExC,KAAKi/B,IAAIz+B,EAAErI,OAAO0L,EAAE1L,QAAQ9G,GAAE,EAAGjK,GAAE,EAAEA,GAAEob,IAAIpb,GAAE,CAAC,IAAImjE,GAAEz/C,EAAE1jB,IAAG,GAAGmjE,KAAI1mD,EAAEzc,IAAG,OAAOJ,EAAEwZ,EAAEpZ,IAAGqb,EAAErb,KAAI,EAAEoZ,EAAE2jE,OAAO,EAAE/8E,IAAGqb,EAAErb,IAAGqb,EAAE0hE,OAAO/8E,GAAE,GAAGJ,EAAEwZ,EAAEpZ,IAAGyc,EAAEzc,KAAI,EAAEoZ,EAAE2jE,OAAO,EAAE/8E,IAAGyc,EAAEzc,IAAGqb,EAAE0hE,OAAO/8E,GAAE,GAAGiK,GAAG,EAAEmP,EAAE2jE,OAAO,EAAE9yE,GAAGyZ,EAAEzZ,GAAGoR,EAAE0hE,OAAO9yE,EAAE,GAAG,KAAKrK,EAAEwZ,EAAEpZ,IAAGmjE,IAAG,IAAIl5D,EAAEjK,GAAE,CAAC,OAAOob,EAAEqB,EAAE1L,QAAQ,SAAS+H,EAAEM,EAAEiC,EAAE0hE,OAAO3jE,EAAErI,QAAQqK,EAAEhC,EAAErI,QAAQ,SAAS+H,EAAEM,EAAE2jE,OAAO,EAAE1hE,EAAEtK,QAAQ9G,EAAE,EAAE,KAAKmP,EAAE2jE,OAAO,EAAE9yE,GAAGwS,EAAExS,GAAGoR,EAAE0hE,OAAO9yE,EAAE,EAAE,CAAC,SAAS6nE,GAAG14D,EAAEsK,EAAErI,EAAEoB,GAAG,IAAI7c,EAAEkZ,EAAEsC,EAAEnR,EAAEjK,GAAEmjE,GAAEr5D,GAAEs5D,GAAE/nD,EAAEtK,OAAO,IAAIsK,EAAE66B,MAAO98B,IAAG,iBAAiBA,IAAI,OAAOu4D,GAAGv4D,EAAE01D,IAAI,SAAS1vC,GAAEhmB,IAAGxZ,EAAE,SAASwZ,IAAG,MAAM,SAASA,GAAEA,IAAGA,GAAEyV,cAAczV,IAAGA,GAAEvI,aAAa,CAAlE,CAAoEuI,IAAGN,EAAE,SAASM,IAAG,MAAM,SAASA,GAAEA,IAAGA,GAAEvI,cAAcuI,IAAGA,GAAEyV,aAAa,CAAlE,CAAoEzV,IAAGgC,EAAE,SAAShC,GAAEw5D,GAAGL,GAAG,IAAI7uD,GAAErI,EAAE3Z,IAAK,SAAS0X,IAAG,MAAM,CAACmsI,MAAMzsI,EAAEM,IAAGqsI,MAAM7lJ,EAAEwZ,IAAG,GAAIjK,KAAM,SAASiK,GAAEsK,IAAG,OAAOtI,EAAEhC,GAAEmsI,MAAM7hI,GAAE6hI,MAAM,GAAIt7I,EAAEyZ,GAAEhiB,IAAK,SAAS0X,IAAG,OAAOA,GAAEqsI,KAAK,GAAIzlJ,GAAE0jB,GAAEhiB,IAAK,SAAS0X,IAAG,OAAOA,GAAEmsI,KAAK,GAAIpiF,GAAE/pD,GAAEtP,GAAE,SAASsP,GAAE,GAAGqD,CAAC,CAAC2iB,GAAE,QAAQ,IAAIjI,GAAE,IAAI/d,EAAEguI,WAAWhuI,EAAG,IAAIk4D,GAAGrnE,EAAE,GAAGjK,GAAEojE,GAAE,GAAG3mD,IAAK0a,GAAEizH,mBAAmB,SAAShxI,IAAGgmB,GAAEhmB,GAAE,EAAE,IAAIs3B,GAAE,EAAE,OAAOvZ,GAAE2yH,cAAe,SAAS1wI,GAAEiC,GAAEoB,IAAG,IAAI7c,GAAEwZ,GAAEymB,IAAI,GAAG,iBAAiBjgC,GAAE,OAAM,EAAG,IAAIw/B,GAAEtmB,EAAElZ,IAAG,GAAG8jB,EAAE0b,GAAEp/B,GAAE0wC,IAAG,OAAM,EAAG,QAAQvZ,GAAE,KAAKtZ,GAAE6yB,GAAE7yB,GAAEulD,KAAIvlD,GAAE,CAAC,IAAIwlD,GAAE4P,GAAGrzE,GAAEw/B,GAAEn1B,EAAE4T,IAAG7d,GAAE6d,IAAGzC,EAAE+nD,IAAG,OAAOE,IAAG,OAAOlsC,GAAEuZ,GAAE7yB,GAAE,GAAG,OAAOsZ,IAAG/b,EAAE+b,GAAEksC,IAAG,KAAKlsC,GAAEksC,GAAE,CAAC,OAAOhoD,GAAE,OAAO8b,GAAE,WAAW/d,GAAEqwI,SAAStyH,GAAErtB,GAAE,EAAE2S,KAAG,CAAE,GAAI0a,EAAC,CAAC,SAASm6C,GAAGl4D,EAAEsK,EAAErI,EAAEoB,GAAG,MAAM,CAAChP,KAAK,EAAE83I,MAAMnsI,EAAEqsI,MAAM/hI,EAAE8hI,UAAUnqI,EAAEqqI,UAAUjpI,EAAE,CAAC,SAAS+0D,GAAGp4D,GAAG,MAAM,CAAC3L,KAAK,EAAE83I,MAAMnsI,EAAEqsI,MAAMrsI,EAAE,CAAC,MAAM8xI,GAAG,cAAI9D,GAAa,OAAO/rJ,KAAKuuJ,KAAKvwE,MAAM0sE,GAAGqB,UAAU,CAAC+D,QAAQ/xI,EAAEsK,EAAErI,EAAEoB,GAAGpB,GAAE,IAAKA,EAAEoB,GAAE,IAAKA,EAAE,IAAI,OAAOphB,KAAK+vJ,KAAKhyI,EAAEsK,GAAG,GAAG,IAAIroB,KAAK+vJ,KAAKhyI,EAAEsK,KAAKrI,GAAGoB,MAAMpB,IAAIoB,GAAGu2D,GAAG33E,MAAM,IAAIA,KAAK+rJ,WAAW/rJ,KAAM,IAAIi2E,GAAGl4D,EAAEsK,GAAGrI,GAAGoB,GAAI,OAAU,OAAOk1D,GAAGt2E,KAAKm9C,GAAG,CAAC,CAAC8tG,OAAOltI,GAAG,OAAO,MAAMA,EAAEu4D,GAAGt2E,KAAKm9C,IAAI,IAAIn9C,KAAK+rJ,WAAW/rJ,KAAM,IAAIm2E,GAAGp4D,GAAI,CAACiyI,MAAMjyI,GAAG,OAAO,MAAMA,EAAEu4D,GAAGt2E,KAAKm9C,IAAI,IAAIn9C,KAAK+rJ,WAAW/rJ,KAAM,IAAIi2E,GAAGl4D,OAAE,GAAO,GAAK,CAACkyI,aAAalyI,GAAG,OAAO,MAAMA,EAAEu4D,GAAGt2E,KAAKm9C,IAAI,IAAIn9C,KAAK+rJ,WAAW/rJ,KAAM,IAAIi2E,GAAGl4D,OAAE,GAAO,GAAK,CAACmyI,MAAMnyI,GAAG,OAAO,MAAMA,EAAEu4D,GAAGt2E,KAAKm9C,IAAI,IAAIn9C,KAAK+rJ,WAAW/rJ,KAAM,IAAIi2E,QAAG,EAAOl4D,GAAE,GAAG,GAAK,CAACoyI,aAAapyI,GAAG,OAAO,MAAMA,EAAEu4D,GAAGt2E,KAAKm9C,IAAI,IAAIn9C,KAAK+rJ,WAAW/rJ,KAAM,IAAIi2E,QAAG,EAAOl4D,GAAI,CAACsvF,WAAWtvF,GAAG,MAAM,iBAAiBA,EAAEu4D,GAAGt2E,KAAKyzE,IAAIzzE,KAAK8vJ,QAAQ/xI,EAAEA,EAAzrhBivD,UAA8rhB,GAAG,EAAG,CAACojF,qBAAqBryI,GAAG,MAAM,KAAKA,EAAE/d,KAAKqtG,WAAWtvF,GAAG04D,GAAGz2E,KAAM,CAAC+d,EAAEsK,IAAI,IAAItK,EAAE+mB,QAAQzc,EAAE,IAAK,CAACtK,GAAnyhBivD,SAAyyhB,CAACqjF,iBAAiBtyI,GAAG,OAAO04D,GAAGz2E,KAAM,CAAC+d,EAAEsK,IAAItK,IAAIsK,EAAE,GAAI,CAACtK,GAAG,GAAG,CAACuyI,kBAAkB,IAAIvyI,EAAEurD,GAAE9sD,MAAM+tD,GAAE9tD,WAAW,OAAO,IAAIsB,EAAErI,OAAOiiE,GAAG33E,MAAMy2E,GAAGz2E,KAAM,CAAC+d,EAAEsK,KAAI,IAAKA,EAAEyc,QAAQ/mB,GAAIA,EAAE,GAAG,CAACwyI,4BAA4B,IAAIxyI,EAAEurD,GAAE9sD,MAAM+tD,GAAE9tD,WAAW,OAAO,IAAIsB,EAAErI,OAAOiiE,GAAG33E,MAAMy2E,GAAGz2E,KAAM,CAAC+d,EAAEsK,IAAIA,EAAEtH,KAAMsH,GAAG,IAAItK,EAAE+mB,QAAQzc,IAAMtK,EAA7liBivD,SAAkmiB,CAAChiB,QAAQ,MAAMjtC,EAAEurD,GAAE9sD,MAAM+tD,GAAE9tD,WAAW,IAAI4L,EAAEroB,KAAK+vJ,KAAK,IAAIhyI,EAAEjK,KAAKuU,EAAE,OAAU,OAAOiuD,GAAGt2E,KAAKm9C,GAAG,CAAC,GAAG,IAAIp/B,EAAErI,OAAO,OAAOiiE,GAAG33E,MAAM,MAAMggB,EAAE,IAAIhgB,KAAK+rJ,WAAW/rJ,KAAM,IAAIi2E,GAAGl4D,EAAE,GAAGA,EAAEA,EAAErI,OAAO,KAAMsK,EAAE+uI,mBAAmB/uI,IAAIqI,EAAE,SAASrI,EAAEhgB,KAAKwwJ,WAAWxwJ,KAAKywJ,YAAY1yI,EAAEjK,KAAKuU,EAAC,EAAG,IAAIjH,EAAE,EAAE,OAAOpB,EAAEyuI,cAAe,CAACzuI,EAAEzb,EAAEkZ,KAAK,MAAMsC,GAAEC,EAAEwkB,IAAI,KAAKnc,EAAEtI,GAAEhC,EAAEqD,IAAI,GAAG,KAAKA,EAAEA,IAAIrD,EAAErI,OAAO,OAAOnR,EAAEkZ,IAAG,EAAG,OAAO,IAAI4K,EAAEtI,GAAEhC,EAAEqD,MAAM7c,EAAG,KAAKyb,EAAEouI,SAASrwI,EAAEqD,GAAE,IAAK,KAAOpB,CAAC,CAAC0wI,SAAS3yI,GAAG,OAAO/d,KAAK2wJ,WAAW,CAAC,CAACv8E,GAAGr2D,GAAG,CAACA,EAAE/d,KAAK0qJ,GAAGY,UAAU,CAACsF,eAAc,EAAGC,eAAc,GAAI,CAACC,SAAS,MAAM/yI,EAAEurD,GAAE9sD,MAAM+tD,GAAE9tD,WAAW,GAAG,IAAIsB,EAAErI,OAAO,OAAO,IAAI1V,KAAK+rJ,WAAW/rJ,MAAM,IAAI+d,EAAEjK,KAAK9T,KAAKwwJ,WAAW,OAAU,OAAOl6E,GAAGt2E,KAAKm9C,GAAG,CAAC,MAAM90B,EAAEtK,EAAEd,OAAQ,CAACc,EAAEsK,IAAItK,EAAEA,EAAEknI,OAAO,CAAC,CAAClnI,EAAEA,EAAErI,OAAO,GAAG,GAAG2S,KAAK,CAAC,CAAC+rD,GAAG/rD,IAAK,MAAM,OAAOA,EAAEpK,KAAK,CAACF,EAAEA,EAAErI,OAAO,GAAG1V,KAAK0qJ,GAAGY,UAAUtrJ,KAAK2wJ,WAAWtoI,EAAE,CAACuoI,eAAc,EAAGC,eAAc,GAAI,CAACF,WAAW5yI,EAAEsK,GAAG,MAAMrI,EAAEhgB,KAAK+vJ,KAAK3uI,EAAEphB,KAAKwwJ,WAAWjsJ,EAAEvE,KAAKywJ,YAAYhzI,EAAEzd,KAAK+wJ,KAAKhxI,EAAE/f,KAAKgxJ,KAAK,GAAG,IAAIjzI,EAAErI,OAAO,OAAOiiE,GAAG33E,MAAM,IAAI+d,EAAE88B,MAAO98B,SAAG,IAASA,GAAE,SAAI,IAASA,GAAE,IAAIqD,EAAErD,GAAE,GAAGA,GAAE,KAAK,GAAI,OAAOu4D,GAAGt2E,KAAK,6HAA6HqrE,GAAEqhF,iBAAiB,MAAM99I,IAAGyZ,IAAG,IAAKA,EAAEuoI,cAAcjsJ,GAAE0jB,IAAG,IAAKA,EAAEwoI,cAAc,IAAI/oF,GAAEr5D,GAAE2S,EAAE,SAAS2mD,GAAEhqD,GAAEsK,IAAG,OAAO5Z,GAAEsP,GAAE,GAAGsK,GAAE,GAAG,CAAC,IAAIy/C,GAAE/pD,EAAEd,OAAQ,SAASc,GAAEsK,IAAG,IAAIjH,GAAE,EAAE7c,GAAEwZ,GAAErI,OAAO,KAAK0L,GAAE7c,KAAI6c,GAAE,CAAC,MAAM7c,GAAEwZ,GAAEqD,IAAG,GAAGpB,EAAEqI,GAAE,GAAG9jB,GAAE,IAAI,GAAGyb,EAAEqI,GAAE,GAAG9jB,GAAE,IAAI,EAAE,CAACA,GAAE,GAAGkZ,EAAElZ,GAAE,GAAG8jB,GAAE,IAAI9jB,GAAE,GAAGwb,EAAExb,GAAE,GAAG8jB,GAAE,IAAI,KAAK,CAAC,CAAC,OAAOjH,KAAI7c,IAAGwZ,GAAEE,KAAKoK,IAAGtK,EAAC,EAAG,IAAI+pD,GAAEh0D,KAAKi0D,GAAE,OAAU,OAAOuO,GAAGt2E,KAAKm9C,GAAG,CAAC,IAAIpZ,GAAE,EAAE,MAAMjI,GAAEn3B,GAAEoZ,IAAGqD,EAAErD,GAAE+pD,GAAE/jC,IAAG,IAAI,EAAEhmB,IAAGqD,EAAErD,GAAE+pD,GAAE/jC,IAAG,KAAK,EAAEsR,GAAEzmC,GAAEmP,IAAGxZ,EAAEwZ,GAAE+pD,GAAE/jC,IAAG,IAAI,EAAEhmB,IAAGxZ,EAAEwZ,GAAE+pD,GAAE/jC,IAAG,KAAK,EAAE,IAAIvhB,GAAEsZ,GAAE,MAAMksC,GAAE,IAAIhoE,KAAK+rJ,WAAW/rJ,KAAM,IAAIi2E,GAAGnO,GAAE,GAAG,GAAGA,GAAEA,GAAEpyD,OAAO,GAAG,IAAI9G,IAAGjK,KAAK,OAAOqjE,GAAE+mF,mBAAmBhxI,KAAI,SAASA,IAAGyE,GAAEsZ,GAAErtB,GAAE2S,IAAIoB,GAAE6yB,GAAE5mC,GAAElK,GAAGujE,GAAEh0D,KAAKi0D,GAAC,EAAGC,GAAEymF,cAAe,CAAC1wI,GAAEsK,GAAErI,MAAK,QAAQzb,GAAEwZ,GAAEymB,IAAIhiB,GAAEje,KAAI,KAAKw/B,GAAEA,KAAI+jC,GAAEpyD,OAAO,OAAO2S,GAAErI,KAAG,EAAG,SAA2B8b,GAAV/d,GAAuBxZ,KAAN8wC,GAAEt3B,OAAS,IAAI/d,KAAK+vJ,KAAKxrJ,GAAEujE,GAAE/jC,IAAG,KAAK,IAAI/jC,KAAK+vJ,KAAKxrJ,GAAEujE,GAAE/jC,IAAG,KAAK1b,GAAG,KAAWtK,GAAEqwI,SAAR3/I,KAAI2S,EAAa0mD,GAAE/jC,IAAG,GAAe+jC,GAAE/jC,IAAG,GAAE,GAAK,IAAlJ,IAAShmB,EAAyI,GAAOiqD,EAAC,CAACipF,kBAAkB,MAAMlzI,EAAEurD,GAAE9sD,MAAM+tD,GAAE9tD,WAAW,OAAOsB,EAAE88B,MAAO98B,GAAG,iBAAiBA,GAAI,IAAIA,EAAErI,OAAOiiE,GAAG33E,MAAMA,KAAK2wJ,WAAW5yI,EAAE1X,IAAK0X,GAAG,CAACA,EAAEA,EAAvumBivD,YAAgvmBsJ,GAAGt2E,KAAK,4CAA4C,EAAE,SAASkxJ,GAAGnzI,GAAG,OAAOkyD,GAAI,SAAS5nD,GAAG,OAAO8oI,GAAG9oI,GAAGtK,EAAEsK,EAAEgF,OAAO5lB,QAAO,CAAE,EAAG,CAAC,SAAS0pJ,GAAGpzI,GAAGA,EAAEjQ,iBAAiBiQ,EAAEjQ,kBAAkBiQ,EAAEmf,gBAAgBnf,EAAEmf,gBAAgB,CAAC,MAAMk0H,GAAG,iBAAiBC,GAAG,qBAAqBl7I,GAAGw/D,GAAG,KAAKy7E,IAAI,MAAME,GAAGC,QAAQ,OAAOvpF,IAAG4J,GAAG0G,UAAUt4E,KAAKwxJ,UAAU,IAAIxxJ,KAAKwxJ,WAAW5/E,GAAG0G,SAAS1G,GAAG6/E,aAAazxJ,MAAMA,IAAI,CAAC0xJ,UAAU,GAAG1pF,IAAG4J,GAAG0G,QAAQ,KAAKt4E,KAAKwxJ,UAAU,IAAI5/E,GAAG0G,SAAS1G,GAAG6/E,aAAa,MAAMzxJ,KAAK2xJ,cAAcj8I,OAAO,IAAI1V,KAAK4xJ,WAAW,CAAC,IAAI7zI,EAAE/d,KAAK2xJ,cAAcjpF,QAAQ,IAAIsK,GAAGj1D,EAAE,GAAGA,EAAE,GAAG,OAAU,CAAC,CAAC,OAAO/d,IAAI,CAAC4xJ,UAAU,OAAO5xJ,KAAKwxJ,WAAW5/E,GAAG6/E,eAAezxJ,IAAI,CAAConC,OAAOrpB,GAAG,IAAI/d,KAAKyZ,KAAK,OAAOzZ,KAAK,MAAMqoB,EAAEroB,KAAK0qJ,GAAGzB,MAAMjpI,EAAEhgB,KAAK0qJ,GAAGrhF,OAAOwgF,YAAY,GAAG7hF,IAAGhoE,KAAKyqJ,WAAW1sI,IAAIsK,EAAE,OAAOrI,GAAGA,EAAEzZ,MAAM,IAAI,sBAAsB,MAAM,IAAI8kE,GAAE+5E,eAAeplI,GAAG,IAAI,kBAAkB,MAAM,IAAIqrD,GAAEk6E,WAAWvlI,EAAE2rB,QAAQ3rB,GAAG,QAAQ,MAAM,IAAIqrD,GAAEwmF,WAAW7xI,GAAG,IAAIhgB,KAAK8xJ,OAAO,MAAM,IAAIzmF,GAAEi6E,oBAAoB,OAAOt9E,GAAE,OAAOhoE,KAAK4pJ,YAAYvgF,SAAStrD,EAAE/d,KAAKyqJ,SAAS1sI,IAAI/d,KAAK0qJ,GAAG98G,KAAK5tC,KAAK0qJ,GAAG98G,KAAKmkH,YAAY/xJ,KAAKgyJ,WAAWhyJ,KAAKyZ,KAAK,CAACw4I,WAAWjyJ,KAAKkyJ,8BAA8B7pI,EAAE0pI,YAAY/xJ,KAAKgyJ,WAAWhyJ,KAAKyZ,KAAK,CAACw4I,WAAWjyJ,KAAKkyJ,gCAAgC37C,QAAQtmC,GAAI5nD,IAAI8oI,GAAG9oI,GAAGroB,KAAKs1E,QAAQv3D,EAAEtW,MAAK,GAAKsW,EAAEo0I,QAAQliF,GAAI5nD,IAAI8oI,GAAG9oI,GAAGroB,KAAK8xJ,QAAQ9xJ,KAAKs1E,QAAQ,IAAIjK,GAAEg6E,MAAMtnI,EAAEtW,QAAQzH,KAAK8xJ,QAAO,EAAG9xJ,KAAKmW,GAAG,SAAS40I,KAAK1iI,EAAC,GAAKtK,EAAEq0I,WAAWniF,GAAI,KAAKjwE,KAAK8xJ,QAAO,EAAG9xJ,KAAKq1E,WAAW,iBAAiBt3D,GAAG5H,GAAGk8I,eAAetH,KAAKhtI,EAAEu0I,aAAY,GAAKtyJ,IAAI,CAACo1E,SAASr3D,EAAEsK,EAAErI,GAAG,GAAG,cAAcjC,GAAG,cAAc/d,KAAKyZ,KAAK,OAAO+5D,GAAG,IAAInI,GAAEknF,SAAS,4BAA4B,IAAIvyJ,KAAK8xJ,OAAO,OAAOt+E,GAAG,IAAInI,GAAEi6E,qBAAqB,GAAGtlJ,KAAK4xJ,UAAU,OAAO,IAAI5/E,GAAI,CAAC5wD,EAAE7c,KAAKvE,KAAK2xJ,cAAc1zI,KAAK,CAAC,KAAKje,KAAKo1E,SAASr3D,EAAEsK,EAAErI,GAAG3f,KAAK+gB,EAAE7c,EAAC,EAAGqtE,IAAG,GAAK,GAAG5xD,EAAE,OAAO0yD,GAAI,KAAK,IAAI30D,EAAE,IAAIi0D,GAAI,CAACj0D,EAAEiC,KAAKhgB,KAAKuxJ,QAAQ,MAAMnwI,GAAEiH,EAAEtK,EAAEiC,EAAEhgB,MAAMohB,IAAGA,GAAE/gB,MAAM+gB,GAAE/gB,KAAK0d,EAAEiC,EAAC,GAAK,OAAOjC,EAAEsvE,QAAS,IAAIrtF,KAAK0xJ,WAAY3zI,EAAEgpI,MAAK,EAAGhpI,IAAK,IAAIqD,EAAE,IAAI4wD,GAAI,CAACj0D,EAAEiC,KAAK,IAAIoB,EAAEiH,EAAEtK,EAAEiC,EAAEhgB,MAAMohB,GAAGA,EAAE/gB,MAAM+gB,EAAE/gB,KAAK0d,EAAEiC,EAAC,GAAK,OAAOoB,EAAE2lI,MAAK,EAAG3lI,CAAC,CAACoxI,QAAQ,OAAOxyJ,KAAKqlC,OAAOrlC,KAAKqlC,OAAOmtH,QAAQxyJ,IAAI,CAACyyJ,QAAQ10I,GAAG,IAAIsK,EAAEroB,KAAKwyJ,QAAQ,MAAMxyI,EAAEgyD,GAAGp6D,QAAQmG,GAAG,GAAGsK,EAAEqqI,YAAYrqI,EAAEqqI,YAAYrqI,EAAEqqI,YAAYryJ,KAAM,IAAI2f,OAAQ,CAACqI,EAAEqqI,YAAY1yI,EAAEqI,EAAEsqI,cAAc,GAAG,IAAIvxI,EAAEiH,EAAEoiI,SAASmI,YAAYvqI,EAAE2pI,WAAW,KAAI,SAAUj0I,IAAI,MAAMsK,EAAEwqI,WAAWxqI,EAAEsqI,cAAcj9I,QAAQ2S,EAAEsqI,cAAcjqF,OAAhBrgD,GAA0BA,EAAEqqI,cAActxI,EAAEte,KAAI,KAAMmjJ,UAAUloI,EAAE,CAA3H,EAA8H,CAAC,IAAIxZ,EAAE8jB,EAAEqqI,YAAY,OAAO,IAAI1gF,GAAI,CAACj0D,EAAEqD,KAAKpB,EAAE3f,KAAM2f,IAAGqI,EAAEsqI,cAAc10I,KAAKgyD,GAAGlyD,EAAEkwB,KAAK,KAAKjuB,MAAOjC,IAAGsK,EAAEsqI,cAAc10I,KAAKgyD,GAAG7uD,EAAE6sB,KAAK,KAAKlwB,OAAOsvE,QAAS,KAAKhlE,EAAEqqI,cAAcnuJ,IAAI8jB,EAAEqqI,YAAY,OAAO,EAAI,CAAC18H,QAAQh2B,KAAK8xJ,SAAS9xJ,KAAK8xJ,QAAO,EAAG9xJ,KAAKyqJ,UAAUzqJ,KAAKyqJ,SAASz0H,QAAQh2B,KAAKs1E,QAAQ,IAAIjK,GAAEg6E,OAAO,CAACrnE,MAAMjgE,GAAG,MAAMsK,EAAEroB,KAAK8yJ,kBAAkB9yJ,KAAK8yJ,gBAAgB,CAAC,GAAG,GAAG/yI,GAAEsI,EAAEtK,GAAG,OAAOsK,EAAEtK,GAAG,MAAMiC,EAAEhgB,KAAK2nD,OAAO5pC,GAAG,IAAIiC,EAAE,MAAM,IAAIqrD,GAAEm/E,SAAS,SAASzsI,EAAE,4BAA4B,MAAMqD,EAAE,IAAIphB,KAAK0qJ,GAAGqI,MAAMh1I,EAAEiC,EAAEhgB,MAAM,OAAOohB,EAAEwsB,KAAK5tC,KAAK0qJ,GAAG98G,KAAKowC,MAAMjgE,GAAGsK,EAAEtK,GAAGqD,EAAEA,CAAC,EAAE,SAAS4xI,GAAGj1I,EAAEsK,EAAErI,EAAEoB,EAAE7c,EAAEkZ,EAAEsC,GAAG,MAAM,CAACxZ,KAAKwX,EAAEstI,QAAQhjI,EAAE0lI,OAAO/tI,EAAE5S,MAAMgU,EAAEirI,KAAK9nJ,EAAE6mJ,SAAS3tI,EAAE6c,KAAKta,IAAID,EAAE,IAAI,KAAKqB,EAAE,IAAI,KAAK7c,EAAE,KAAK,IAAI0uJ,GAAG5qI,GAAG,CAAC,SAAS4qI,GAAGl1I,GAAG,MAAM,iBAAiBA,EAAEA,EAAEA,EAAE,IAAI,GAAG7T,KAAK6mD,KAAKhzC,EAAE,KAAK,IAAI,EAAE,CAAC,SAASm1I,GAAGn1I,EAAEsK,EAAErI,GAAG,MAAM,CAACzZ,KAAKwX,EAAEotI,QAAQ9iI,EAAE6iI,QAAQlrI,EAAEksI,YAAY,KAAKX,UAAU1wI,GAAEmF,EAAGjC,GAAG,CAACA,EAAExX,KAAKwX,IAAK,CAAC,IAAIo1I,GAAGp1I,IAAI,IAAI,OAAOA,EAAEq1I,KAAK,CAAC,KAAKD,GAAGA,IAAI,CAAC,IAAI,CAAC,GAAG,OAAU,OAAOA,GAAGA,IAA7htBnmF,iBAAsitB,GAAG,SAASqmF,GAAGt1I,GAAG,OAAO,MAAMA,EAAE,OAAO,iBAAiBA,EAA0C,KAA/BA,EAA+DA,GAAlDgnB,MAAM,KAAkBrvB,OAAO2S,GAAGA,EAAEtK,GAAGsK,GAAG9S,GAAE8S,EAAEtK,GAAOsK,GAAG9S,GAAE8S,EAAEtK,GAAlF,IAASA,CAA2E,CAAC,SAASu1I,GAAGv1I,GAAG,MAAM,GAAGL,MAAMqzC,KAAKhzC,EAAE,CAAC,IAAIw1I,GAAG,EAAE,SAASC,GAAGz1I,GAAG,OAAO,MAAMA,EAAE,MAAM,iBAAiBA,EAAEA,EAAG,IAAGA,EAAE7T,KAAK,OAAO,CAAC,SAASupJ,GAAG11I,EAAEsK,EAAEjH,GAAG,SAAS7c,EAAEwZ,IAAG,GAAG,IAAIA,GAAE3L,KAAK,OAAO,KAAK,GAAG,IAAI2L,GAAE3L,KAAK,MAAM,IAAIkT,MAAM,4CAA4C,MAAM4kI,MAAMlqI,GAAEoqI,MAAMhpI,GAAE+oI,UAAU5lJ,GAAE8lJ,UAAU5sI,IAAGM,GAAE,YAAO,IAASiC,QAAE,IAASoB,GAAE,KAAKiH,EAAEqrI,WAAWtyI,KAAI3D,SAAG,IAAS2D,GAAEiH,EAAEsrI,WAAW3zI,KAAIzb,IAAG8jB,EAAEurI,MAAM5zI,GAAEoB,KAAI7c,KAAIkZ,GAAE,CAAC,MAAMkqC,OAAOlqC,EAAEo2I,UAAU9zI,GAAG,SAAShC,GAAEsK,IAAG,MAAMjH,GAAEkyI,GAAGv1I,GAAE+1I,kBAAkB,MAAM,CAACnsG,OAAO,CAACphD,KAAKwX,GAAExX,KAAKwtJ,OAAO3yI,GAAE/a,IAAK0X,IAAGsK,GAAEuqI,YAAY70I,KAAK1X,IAAK0X,KAAI,MAAMstI,QAAQhjI,GAAE2rI,cAAc5yI,IAAGrD,GAAExZ,GAAEyb,GAAEqI,IAAatI,GAAE,CAAC,EAAEnR,GAAE,CAACrI,KAAKwX,GAAExX,KAAKknJ,WAAW,CAAClnJ,KAAK,KAAK0tJ,cAAa,EAAG1E,SAAlE,MAAMlnI,GAAuE+iI,SAAS7mJ,GAAE8mJ,QAAQhjI,GAAE2rI,cAAc5yI,GAAE2sI,QAAO,EAAGyB,WAAW6D,GAAGhrI,KAAI6iI,QAAQoI,GAAGv1I,GAAEm2I,YAAY7tJ,IAAKgiB,IAAGtK,GAAEpD,MAAM0N,KAAKhiB,IAAK0X,KAAI,MAAMxX,KAAK8hB,GAAE0lI,OAAO3sI,GAAE+yI,WAAW5vJ,GAAE8mJ,QAAQ5tI,IAAGM,GAAEnP,GAAE,CAACrI,KAAK8hB,GAAE+iI,SAASprI,GAAEvC,IAAG4tI,QAAQ5tI,GAAEswI,OAAO3sI,GAAE+yI,WAAW5vJ,GAAEirJ,WAAW6D,GAAG51I,KAAI,OAAOsC,GAAEyzI,GAAG/1I,KAAI7O,GAAEA,KAAK8+I,kBAAkB3vI,IAAGgC,GAAEyzI,GAAGz1I,MAAK,OAAOgC,GAAE,OAAOnR,GAAE6+I,WAAW,MAAMplI,KAAItI,GAAEyzI,GAAGnrI,KAAIzZ,GAAE6+I,YAAY7+I,MAAMilJ,UAAUzyI,GAAE1L,OAAO,GAAG,WAAW2S,GAAEuqI,YAAYxxI,GAAE,cAA2BysG,UAApB,KAA+B,SAASjoF,KAAKioF,UAAUo8B,aAAa,oBAAoBrkH,KAAKioF,UAAUo8B,YAAY,GAAGhF,OAAOp3B,UAAUo8B,UAAU/uG,MAAM,kBAAkB,GAAG,KAAK,CAAn0B,CAAq0Bn9B,EAAEqD,GAAGxS,EAAE6O,EAAEs2I,OAAO1tJ,IAAK0X,IAAG,SAASA,IAAG,MAAMsK,GAAEtK,GAAExX,KAAK,MAAM,CAACA,KAAK8hB,GAAEs/B,OAAO5pC,GAAEuuI,OAAO,UAAU3C,MAAM5rI,GAAE3L,KAAK4N,GAAEsnB,KAAKlmB,GAAEotB,OAAO/wB,GAAEkvI,MAAM5sI,KAAI,OAAO,IAAIpI,QAAS,CAAC/I,GAAEjK,MAAKiK,GAAEqhE,GAAGrhE,IAAG,MAAMk5D,GAAE/pD,GAAE60I,YAAYvqI,IAAG5Z,GAAE,MAAMq5D,GAAEujF,QAAQtjF,GAAE,QAAQ/nD,IAAG,QAAQA,GAAE,IAAI+nD,IAAG,WAAW/nD,IAAG,gBAAgBA,GAAE,MAAM,IAAIsF,MAAM,2BAA2BtF,IAAG,MAAMtK,OAAOquB,IAAG3iB,IAAG3D,IAAG,CAAC/H,OAAO,GAAG,GAAG0L,IAAG3D,IAAG2D,GAAE1L,SAAS+H,GAAE/H,OAAO,MAAM,IAAI4P,MAAM,iEAAiE,GAAG,IAAIye,GAAE,OAAOn1B,GAAE,CAAC29I,YAAY,EAAE/G,SAAS,CAAC,EAAEp2H,QAAQ,GAAGo9H,gBAAW,IAAS,IAAI1wH,GAAE,MAAMuZ,GAAE,GAAG7yB,GAAE,GAAG,IAAIwlD,GAAE,EAAE,MAAM17C,GAAEvO,OAAMiqD,GAAEmpF,GAAGpzI,GAAC,EAAG,GAAG,gBAAgBiC,GAAE,CAAC,GAAG,IAAID,GAAE3N,KAAK,OAAOxD,GAAE,CAAC29I,YAAYvkF,GAAEw9E,SAAShjI,GAAE4M,QAAQ,GAAGo9H,gBAAW,IAAoBn3G,GAAEp3B,KAAK6d,GAAlB,IAAI/b,GAAE3N,KAAc01D,GAAE71B,QAAkB61B,GAAE3G,OAAO58D,EAAEwb,KAAI,KAAK,CAAC,MAAMhC,GAAEsK,IAAG0/C,GAAEt5D,GAAE,CAACgP,GAAE2D,IAAG,CAAC3D,GAAE,MAAM,CAAC2D,GAAE,MAAM,GAAG2mD,GAAE,QAAQ3mD,GAAE,EAAEA,GAAE2iB,KAAI3iB,GAAEi0B,GAAEp3B,KAAK6d,GAAEzT,SAAG,IAASA,GAAEjH,IAAG0mD,GAAE9nD,IAAGjC,GAAEqD,IAAGiH,GAAEjH,KAAI0mD,GAAE9nD,IAAGjC,GAAEqD,MAAK0a,GAAEy6E,QAAQjqF,QAAO,QAAQjE,GAAE,EAAEA,GAAE0b,KAAI1b,GAAEgtB,GAAEp3B,KAAK6d,GAAEgsC,GAAE9nD,IAAGjC,GAAEsK,MAAKyT,GAAEy6E,QAAQjqF,EAAC,CAAC,MAAMzR,GAAEkD,KAAI,MAAMsK,GAAEtK,GAAEsP,OAAOhR,OAAOg5B,GAAEp1B,QAAS,CAAClC,GAAEsK,KAAI,MAAMtK,GAAEtW,QAAQ+a,GAAE6F,IAAGtK,GAAEtW,QAASmH,GAAE,CAAC29I,YAAYvkF,GAAEw9E,SAAShjI,GAAE4M,QAAQ,WAAWpP,GAAEoB,GAAEi0B,GAAEhvC,IAAK0X,IAAGA,GAAE1B,QAASmwI,WAAWnkI,IAAE,EAAGyT,GAAEy6E,QAAQx4F,KAAIuO,GAAEvO,IAAGlD,GAAEkD,GAAC,EAAG+d,GAAEmqH,UAAUprI,IAAI,EAAEgyI,QAAQA,EAAElD,MAAM5rI,GAAEupB,KAAKtnB,MAAK,IAAIrI,QAAS,CAACyJ,GAAE7c,MAAK6c,GAAE6uD,GAAG7uD,IAAG,MAAM3D,GAAEM,GAAE60I,YAAYvqI,IAAGtI,GAAEC,GAAEtK,OAAO9G,GAAE,IAAI0O,MAAMyC,IAAG,IAAIpb,GAAEmjE,GAAE,EAAEr5D,GAAE,EAAE,MAAMs5D,GAAEhqD,KAAI,MAAMsK,GAAEtK,GAAEsP,OAAOze,GAAEyZ,GAAE+rI,MAAM/rI,GAAEhM,SAAS5N,KAAIq5D,IAAG1mD,GAAExS,GAAC,EAAGm1B,GAAEmtH,GAAG3sJ,IAAG,QAAQwZ,GAAE,EAAEA,GAAEgC,KAAIhC,GAAE,MAAMiC,GAAEjC,MAAKpZ,GAAE8Y,GAAE3a,IAAIkd,GAAEjC,KAAIpZ,GAAEyvJ,KAAKr2I,GAAEpZ,GAAEshJ,UAAUl+E,GAAEpjE,GAAE4xG,QAAQxyE,KAAI+jC,IAAG,IAAIA,IAAG1mD,GAAExS,GAAC,GAAK9L,IAAIA,EAAE6mJ,MAAM5rI,GAAEymB,IAAIxkB,MAAK,IAAIrI,QAAS,CAACyJ,GAAE7c,MAAK6c,GAAE6uD,GAAG7uD,IAAG,MAAM3D,GAAEM,GAAE60I,YAAYvqI,IAAGvlB,IAAIkd,IAAGvC,GAAEwoI,UAAUloI,IAAGqD,GAAErD,GAAEsP,OAAOhR,QAAQoB,GAAE84F,QAAQ26C,GAAG3sJ,GAAC,GAAKklG,MAAM,SAAS1rF,IAAG,OAAOiC,IAAG,IAAIrI,QAAS,CAACyJ,GAAE3D,MAAK2D,GAAE6uD,GAAG7uD,IAAG,MAAMuoI,MAAM5pI,GAAEyuB,OAAO5/B,GAAEg9I,MAAMjnJ,GAAE8kG,MAAM3hC,IAAG9nD,GAAEvR,GAAE9J,KAAI,SAAI,EAAOA,IAAGgW,MAAMotD,GAAE4kF,MAAM5oH,IAAG+jC,GAAEhsC,GAAE/b,GAAE6yI,YAAYvqI,IAAGgtB,GAAE0yB,GAAEksF,aAAan4H,GAAEA,GAAEnhB,MAAMotD,GAAExhE,MAAMic,GAAEje,EAAEw/B,IAAG,GAAG,IAAIp/B,GAAE,OAAOyc,GAAE,CAAC/E,OAAO,KAAK,GAAG0B,GAAE,CAAC,MAAMA,GAAEnP,GAAEymC,GAAEg/G,OAAO7xI,GAAE/T,IAAG4mC,GAAEi/G,WAAW9xI,GAAE/T,IAAGsP,GAAEkoI,UAAUloI,IAAGqD,GAAE,CAAC/E,OAAO0B,GAAEsP,OAAOhR,SAAS0B,GAAEw4F,QAAQ26C,GAAGzzI,GAAE,KAAK,CAAC,IAAIM,GAAE,EAAE,MAAMsK,GAAEzZ,MAAK,kBAAkBymC,IAAGA,GAAEu4G,WAAWprI,IAAG6yB,GAAEk/G,cAAc/xI,IAAGxC,GAAE,GAAGqI,GAAE49H,UAAU1hJ,KAAI,MAAMkZ,GAAE4K,GAAEhM,OAAO,OAAOoB,IAAGuC,GAAE/B,KAAKrP,GAAE6O,GAAElL,MAAMkL,GAAEgwI,cAAc1vI,KAAIpZ,GAAEyc,GAAE,CAAC/E,OAAO2D,UAASvC,GAAE2wI,YAAYhtI,GAAE,CAAC/E,OAAO2D,IAAE,EAAGqI,GAAEkuF,QAAQ26C,GAAGzzI,GAAE,GAAI,CAAvjB,CAAyjBsC,GAAG6tI,WAAW,UAAUjE,MAAM5rI,GAAEywB,OAAOxuB,GAAEypF,MAAMroF,GAAEs0C,QAAQj4C,GAAEswI,OAAOhuI,KAAI,OAAO,IAAIpI,QAAS,CAAC/I,GAAEjK,MAAKiK,GAAEqhE,GAAGrhE,IAAG,MAAM+L,MAAMmtD,GAAE6kF,MAAMl+I,IAAG2S,GAAE2mD,GAAEhqD,GAAE60I,YAAYvqI,IAAG0b,GAAE+jC,GAAEmsF,aAAalsF,GAAEA,GAAEptD,MAAMmtD,GAAEvhE,MAAMu1B,GAAEre,GAAEsC,GAAE,aAAa,OAAOA,GAAE,aAAa,OAAOs1B,GAAEr1B,MAAK,kBAAkB+jB,IAAGA,GAAE6pH,WAAWrpJ,EAAEkK,IAAGqtB,IAAGiI,GAAEwwH,cAAchwJ,EAAEkK,IAAGqtB,IAAGuZ,GAAEkhE,QAAQ26C,GAAGvsJ,IAAG0wC,GAAE4wG,UAAUh2E,GAAI5nD,KAAI,MAAMrI,GAAEq1B,GAAEh5B,OAAO,IAAI2D,GAAE,YAAYpR,GAAE,MAAMoR,GAAEw0I,QAAQjB,GAAGvzI,GAAE6rD,MAAK,EAAG,MAAMzqD,GAAEpB,GAAEouI,SAASngH,KAAKjuB,IAAG,IAAIzb,GAAEyb,GAAEy0I,mBAAmBlwJ,KAAIA,GAAEA,GAAE0pC,KAAKjuB,KAAI,MAAMvC,GAAEuC,GAAEo8E,QAAQnuD,KAAKjuB,IAAGD,GAAEA,KAAK,MAAM,IAAIuF,MAAM,qBAAoB,EAAGtF,GAAE2pI,MAAM5rI,GAAEiC,GAAEguI,KAAKhuI,GAAEouI,SAASpuI,GAAEy0I,mBAAmBz0I,GAAEo8E,QAAQ,KAAK,MAAM,IAAI92E,MAAM,qBAAoB,EAAGtF,GAAEiuI,KAAKh+E,GAAGtrE,IAAGqb,GAAErd,KAAK,WAAW,IAAIob,GAAE,EAAE,OAAO/d,KAAK6zE,MAAO,IAAI91D,KAAI/d,KAAKouJ,WAAWpuJ,KAAKguJ,QAAS3tJ,KAAM,IAAIL,KAAM,EAAEggB,GAAE6zD,MAAM91D,KAAI,MAAMsK,GAAE,IAAI1Q,QAAS,CAACoG,GAAEsK,MAAKtK,GAAEkyD,GAAGlyD,IAAGs3B,GAAEkhE,QAAQ26C,GAAG7oI,IAAGrI,GAAEiuI,KAAK5lI,GAAErI,GAAEguI,KAAK3lI,KAAIrI,GAAEguI,KAAKhuI,GAAEouI,SAASpuI,GAAEy0I,mBAAmBz0I,GAAEo8E,QAAQr8E,GAAEhC,GAAEsK,GAAC,CAAC,GAAKzZ,GAAEA,KAAK,GAAGymC,GAAEh5B,OAAO,IAAI0B,IAAG,OAAOA,IAAGiC,GAAEiuI,KAAKlwI,GAAE,MAAMiC,GAAE6rD,MAAK,EAAG7rD,GAAE6zD,MAAM,KAAK,MAAM,IAAIvuD,MAAM,2BAA0B,EAAGtF,GAAEguI,MAAK,EAAG,OAAO34G,GAAE4wG,UAAUh2E,GAAIlyD,KAAIs3B,GAAE4wG,UAAUr3I,GAAEA,IAAE,GAAKoR,GAAEouI,SAAShtI,GAAEpB,GAAEy0I,mBAAmBlwJ,GAAEyb,GAAEo8E,QAAQ3+E,GAAE7O,KAAIyZ,IAAGzZ,GAAEoR,GAAC,EAAIrb,GAAC,EAAI,EAAEu6B,OAAOuqE,MAAM1rF,GAAE4rI,MAAM3pI,KAAI,MAAMrF,MAAMyG,GAAEurI,MAAMlvI,IAAGM,GAAE,OAAO,IAAIpG,QAAS,CAACoG,GAAEgC,MAAK,MAAMnR,GAAEoR,GAAE4yI,YAAYvqI,IAAG1jB,GAAEyc,GAAE6yI,aAAarlJ,GAAEA,GAAE+L,MAAMyG,GAAE7a,MAAMuhE,GAAEvjE,EAAEkZ,IAAGhP,GAAEq5D,GAAEnjE,GAAEu6B,MAAM4oC,IAAGnjE,GAAEu6B,QAAQzwB,GAAEw3I,UAAUh2E,GAAI5nD,IAAGtK,GAAEsK,GAAEgF,OAAOhR,SAAU5N,GAAE8nG,QAAQ26C,GAAGnxI,GAAC,EAAI,EAAE,CAA38G,CAA68GhC,KAAKpZ,EAAE,CAAC,EAAE,OAAOiK,EAAEqR,QAASlC,IAAGpZ,EAAEoZ,GAAExX,MAAMwX,IAAI,CAAC60E,MAAM,SAASm/D,YAAYh0I,EAAEg0I,YAAY9jH,KAAKlwB,GAAGigE,MAAMjgE,IAAG,IAAIpZ,EAAEoZ,IAAG,MAAM,IAAIuH,MAAO,UAASvH,iBAAgB,OAAOpZ,EAAEoZ,GAAE,EAAE22I,SAAQ,IAAKC,QAAQxB,GAAG9qI,GAAGs/B,OAAOlqC,EAAE,CAAC,SAASm3I,IAAIC,OAAO92I,GAAGsK,GAAG,MAAajH,EAAE,SAASrD,EAAEsK,GAAGysI,YAAY90I,GAAezb,IAAoG,MAAM,CAACwwJ,QAAvFh3I,GAA4D01I,GAAGprI,EAAErI,EAAEzb,IAAjE8jB,GAAoEtK,EAAEg3I,OAA5D1sI,GAAEpL,OAAQ,CAACc,IAAGqpB,OAAO/e,OAAC,IAAStK,MAAKsK,GAAEtK,MAAMA,MAAjE,IAASA,GAAEsK,EAA8F,CAA7J,CAA+JtK,EAAEi3I,aAAxK3sI,EAAEqiI,GAAqL3sI,EAAEytI,MAAMnjI,GAAGtK,EAAE6vB,KAAKxsB,EAAE2zI,OAAOh3I,EAAEg2I,OAAO9zI,QAASoI,IAAI,MAAMrI,EAAEqI,EAAE9hB,KAAKwX,EAAE6vB,KAAK+Z,OAAOosG,OAAOhzI,KAAMhD,GAAGA,EAAExX,OAAOyZ,KAAMqI,EAAEulB,KAAK7vB,EAAE6vB,KAAKowC,MAAMh+D,GAAGjC,EAAEiC,aAAajC,EAAEg1I,QAAQh1I,EAAEiC,GAAG4tB,KAAKvlB,EAAEulB,QAAS,CAAC,SAASqnH,IAAIJ,OAAO92I,GAAGsK,EAAErI,EAAEoB,GAAGpB,EAAEC,QAASD,IAAI,MAAMzb,EAAE6c,EAAEpB,GAAGqI,EAAEpI,QAASoI,IAAI,MAAMjH,EAAE2iB,GAAE1b,EAAErI,KAAKoB,GAAG,UAAUA,QAAG,IAASA,EAAE7O,SAAS8V,IAAItK,EAAEm3I,YAAY3wH,WAAWlc,aAAatK,EAAEm3I,YAAYptF,GAAEz/C,EAAErI,EAAE,CAACld,MAAM,OAAO9C,KAAKg+E,MAAMh+D,EAAE,EAAE9C,IAAIa,IAAGpZ,GAAE3E,KAAKggB,EAAE,CAACzN,MAAMwL,GAAE+pB,UAAS,EAAGC,cAAa,EAAGF,YAAW,GAAI,IAAIxf,EAAErI,GAAG,IAAIjC,EAAEg1I,MAAM/yI,EAAEzb,GAAC,EAAI,EAAI,CAAC,SAAS4wJ,IAAIN,OAAO92I,GAAGsK,GAAGA,EAAEpI,QAASoI,IAAI,QAAQrI,KAAKqI,EAAEA,EAAErI,aAAajC,EAAEg1I,cAAc1qI,EAAErI,EAAC,EAAI,CAAC,SAASo1I,GAAGr3I,EAAEsK,GAAG,OAAOtK,EAAEs3I,KAAKC,QAAQjtI,EAAEgtI,KAAKC,OAAO,CAA6uD,SAASC,GAAGx3I,EAAEsK,GAAG,MAAMrI,EAAE,CAACw1I,IAAI,GAAGh9G,IAAI,GAAGvB,OAAO,IAAI,IAAI71B,EAAE,IAAIA,KAAKrD,EAAEsK,EAAEjH,IAAIpB,EAAEw1I,IAAIv3I,KAAKmD,GAAG,IAAIA,KAAKiH,EAAE,CAAC,MAAM9jB,EAAEwZ,EAAEqD,GAAG3D,EAAE4K,EAAEjH,GAAG,GAAG7c,EAAE,CAAC,MAAMwZ,EAAE,CAACxX,KAAK6a,EAAE+rC,IAAI1vC,EAAEg4I,UAAS,EAAGD,IAAI,GAAGh9G,IAAI,GAAGvB,OAAO,IAAI,GAAG,IAAI1yC,EAAE4mJ,QAAQE,SAAS,KAAK,IAAI5tI,EAAE0tI,QAAQE,SAAS,KAAK9mJ,EAAE4mJ,QAAQkB,OAAO5uI,EAAE0tI,QAAQkB,OAAOh4E,GAAGt2D,EAAE03I,UAAS,EAAGz1I,EAAEi3B,OAAOh5B,KAAKF,OAAO,CAAC,MAAMsK,EAAE9jB,EAAEgnJ,UAAUnqI,GAAE3D,EAAE8tI,UAAU,IAAIxrI,GAAE,IAAIA,MAAKsI,EAAEjH,GAAErB,KAAIhC,EAAEy3I,IAAIv3I,KAAK8B,IAAG,IAAIA,MAAKqB,GAAE,CAAC,MAAMpB,GAAEqI,EAAEtI,IAAGxb,GAAE6c,GAAErB,IAAGC,GAAEA,GAAEsa,MAAM/1B,GAAE+1B,KAAKvc,EAAEk5B,OAAOh5B,KAAK1Z,IAAGwZ,EAAEy6B,IAAIv6B,KAAK1Z,GAAE,EAAEwZ,EAAEy3I,IAAI9/I,OAAO,GAAGqI,EAAEy6B,IAAI9iC,OAAO,GAAGqI,EAAEk5B,OAAOvhC,OAAO,IAAIsK,EAAEi3B,OAAOh5B,KAAKF,EAAE,CAAC,MAAMiC,EAAEw4B,IAAIv6B,KAAK,CAACmD,EAAE3D,GAAG,CAAC,OAAOuC,CAAC,CAAC,SAAS01I,GAAG33I,EAAEsK,EAAErI,EAAEoB,GAAG,MAAM7c,EAAEwZ,EAAE2sI,GAAGiL,kBAAkBttI,EAAErI,EAAEqrI,QAAQ,CAACA,QAAQrrI,EAAEqrI,QAAQ2I,cAAch0I,EAAEqsI,MAAM,CAAC2H,cAAch0I,EAAEqsI,OAAO,OAAOjrI,EAAEnB,QAASlC,GAAG63I,GAAGrxJ,EAAEwZ,IAAKxZ,CAAC,CAAC,SAASqxJ,GAAG73I,EAAEsK,GAAGtK,EAAE83I,YAAYxtI,EAAE9hB,KAAK8hB,EAAEgjI,QAAQ,CAAC0C,OAAO1lI,EAAE0lI,OAAOoG,WAAW9rI,EAAEjb,OAAO,CAAC,SAAS0oJ,GAAG/3I,EAAEsK,EAAErI,GAAG,MAAMoB,EAAE,CAAC,EAAE,OAAOi0B,GAAEhtB,EAAEyrI,iBAAiB,GAAG7zI,QAASlC,IAAI,MAAMsK,EAAErI,EAAE4yI,YAAY70I,GAAG,IAAIxZ,EAAE8jB,EAAEgjI,QAAQ,MAAM5tI,EAAEu1I,GAAGC,GAAG1uJ,GAAGA,GAAG,IAAG,GAAG,IAAK8jB,EAAE2rI,cAAczvJ,GAAG,iBAAiBA,GAAE,GAAIwb,GAAE,GAAG,QAAQhC,GAAE,EAAEA,GAAEsK,EAAE6rI,WAAWx+I,SAASqI,GAAE,CAAC,MAAMiC,GAAEqI,EAAE1N,MAAM0N,EAAE6rI,WAAWn2I,KAAIxZ,EAAEyb,GAAEqrI,QAAQ,IAAIz8I,GAAEokJ,GAAGhzI,GAAEzZ,KAAKhC,IAAIyb,GAAE+tI,SAAS/tI,GAAEm0I,YAAW,EAAG5vJ,GAAG,iBAAiBA,GAAE,GAAIwb,GAAE9B,KAAKrP,GAAE,CAACwS,EAAErD,GAAGm1I,GAAGn1I,EAAEN,EAAEsC,GAAC,GAAKqB,CAAC,CAAC,SAAS20I,IAAIlB,OAAOxsI,GAAGrI,EAAEoB,GAAG,MAAM7c,EAAE6c,EAAEspI,GAAGoJ,iBAAiB,QAAQ/1I,EAAE,EAAEA,EAAExZ,EAAEmR,SAASqI,EAAE,CAAC,MAAMN,EAAElZ,EAAEwZ,GAAGgC,EAAEqB,EAAEwxI,YAAYn1I,GAAG4K,EAAE2tI,WAAW,WAAWj2I,EAAE,QAAQhC,EAAE,EAAEA,EAAEgC,EAAEm0I,WAAWx+I,SAASqI,EAAE,CAAC,MAAMsK,GAAEtI,EAAEm0I,WAAWn2I,GAAGqD,GAAErB,EAAEpF,MAAM0N,IAAGgjI,QAAQ9mJ,GAAE,iBAAiB6c,GAAEA,GAAE,IAAIi0B,GAAEj0B,IAAGlX,KAAK,KAAK,IAAI,GAAG8V,EAAEvC,GAAG,CAAC,MAAMM,GAAEiC,EAAEvC,GAAG8tI,UAAUhnJ,IAAGwZ,KAAIA,GAAExX,KAAK8hB,UAASrI,EAAEvC,GAAG8tI,UAAUhnJ,IAAGyb,EAAEvC,GAAG8tI,UAAUljI,IAAGtK,GAAE,CAAC,CAAC,QAAqB8vG,UAApB,KAA+B,SAASjoF,KAAKioF,UAAUo8B,aAAa,oBAAoBrkH,KAAKioF,UAAUo8B,YAAYlsI,GAAEk4I,mBAAmBl4I,cAAaA,GAAEk4I,mBAAmB,GAAGhR,OAAOp3B,UAAUo8B,UAAU/uG,MAAM,kBAAkB,GAAG,MAAM7yB,EAAE2tI,YAAW,EAAG,CAAC,MAAME,GAAGC,iBAAiBp4I,EAAEqD,GAAGiH,GAAEtK,GAAGkC,QAASoI,IAAI,GAAG,OAAOtK,EAAEsK,GAAG,CAAC,IAAI9jB,EAAEwZ,EAAEsK,GAAG0c,MAAM,KAAK1+B,IAAK,CAAC0X,EAAEsK,KAAK,MAAMjH,IAAGrD,EAAEA,EAAEihE,QAAQ/5E,QAAQ,eAAe,IAAIV,GAAE,MAAMqhC,KAAKxkB,IAAGA,GAAE85B,MAAM,cAAc,GAAGnW,MAAM,KAAK3jB,GAAE,OAAO4xI,GAAG5xI,GAAE7c,IAAG,KAAK,KAAKqhC,KAAK7nB,GAAG,KAAK6nB,KAAK7nB,GAAG,OAAO6nB,KAAK7nB,GAAGiC,GAAEzb,IAAG,IAAI8jB,EAAC,GAAK5K,EAAElZ,EAAEmkE,QAAQ,GAAGjrD,EAAErQ,MAAM,MAAM,IAAIi+D,GAAEsiF,OAAO,sCAAsCppJ,EAAE0b,QAASlC,IAAI,GAAGA,EAAEsuI,KAAK,MAAM,IAAIhhF,GAAEsiF,OAAO,wDAAwD,IAAI5vI,EAAEstI,QAAQ,MAAM,IAAIhgF,GAAEsiF,OAAO,uDAAsD,GAAKvsI,EAAEiH,GAAG6qI,GAAG7qI,EAAE5K,EAAElZ,EAAE,GAAI,CAAC6xJ,OAAOr4I,GAAG,MAAMiC,EAAEhgB,KAAK0qJ,GAAG1qJ,KAAKq1J,KAAKgB,aAAar2J,KAAKq1J,KAAKgB,aAAaj1I,GAAEphB,KAAKq1J,KAAKgB,aAAat4I,GAAGA,EAAE,MAAoBN,EAAE,CAAC,EAAE,IAAIsC,EAAE,CAAC,EAAE,OAA1BC,EAAEs2I,UAAiCr2I,QAASlC,IAAIqD,GAAE3D,EAAEM,EAAEs3I,KAAKgB,cAAct2I,EAAEhC,EAAEs3I,KAAKkB,SAAS,CAAC,EAAEx4I,EAAEo4I,iBAAiB14I,EAAEsC,EAAC,GAAKC,EAAEspI,UAAUvpI,EAAEo1I,GAAGn1I,EAAE,CAACA,EAAEw2I,WAAWx2I,EAAEA,EAAEk1I,YAAY3wH,YAAY0wH,GAAGj1I,EAAE,CAACA,EAAEw2I,WAAWx2I,EAAEA,EAAEk1I,YAAY3wH,UAAUvkC,KAAKq1J,KAAKtB,QAAQ1rI,GAAEtI,GAAGA,GAAGC,EAAEy2I,YAAYpuI,GAAEtI,GAAG/f,IAAI,CAAC02J,QAAQ34I,GAAG,OAAO/d,KAAKq1J,KAAKsB,eAAe5pF,GAAG/sE,KAAKq1J,KAAKsB,gBAAgBlrF,GAAG1tD,GAAG/d,IAAI,EAAE,SAAS42J,GAAG74I,EAAEsK,GAAG,IAAIrI,EAAEjC,EAAE84I,WAAW,OAAO72I,IAAIA,EAAEjC,EAAE84I,WAAW,IAAIC,GAAGhhF,GAAG,CAACihF,OAAO,GAAGtL,UAAU1tI,EAAE+2I,YAAYzsI,IAAIrI,EAAEs1I,QAAQ,GAAGc,OAAO,CAACY,QAAQ,UAAUh3I,EAAEg+D,MAAM,UAAU,CAAC,SAASi5E,GAAGl5I,GAAG,OAAOA,GAAG,mBAAmBA,EAAEm5I,SAAS,CAAC,SAASC,GAAGp5I,GAAG,OAAO20D,GAAI,WAAW,OAAOd,GAAGu3E,YAAW,EAAGprI,GAAG,EAAG,CAAC,SAASq5I,KAAK,IAAIr5I,EAAE,OAAO8vG,UAAUwpC,eAAe,WAAWzxH,KAAKioF,UAAUo8B,aAAa,iBAAiBrkH,KAAKioF,UAAUo8B,YAAYwB,UAAUyL,UAAU,IAAIv/I,QAAS,SAAS0Q,GAAG,IAAIrI,EAAE,WAAW,OAAOyrI,UAAUyL,YAAY7pE,QAAQhlE,EAAE,EAAEtK,EAAEu5I,YAAYt3I,EAAE,KAAKA,GAAG,GAAIqtE,QAAS,WAAW,OAAOkqE,cAAcx5I,EAAE,GAAIpG,QAAQC,SAAS,CAA2/E,SAAS4/I,GAAGz5I,GAAG,IAAIsK,EAAEA,GAAGtK,EAAEpb,KAAK0lB,GAAGjH,EAAE3D,EAAE4K,GAAG9jB,EAAEkZ,EAAG4K,GAAGtK,EAAE05I,MAAMpvI,IAAK,SAAS5K,EAAEM,GAAG,OAAOsK,IAAI,IAAI5K,EAAEM,EAAEsK,GAAGtI,GAAEtC,EAAElL,MAAM,OAAOkL,EAAEouD,KAAK9rD,GAAEA,IAAG,mBAAmBA,GAAE1f,KAAK0f,GAAE1f,KAAK+gB,EAAE7c,GAAGyb,GAAED,IAAGpI,QAAQyE,IAAI2D,IAAG1f,KAAK+gB,EAAE7c,GAAG6c,EAAErB,GAAC,CAAE,CAAC,OAAOtC,EAAE4K,EAAF5K,EAAM,CAAC,SAASi6I,GAAG35I,EAAEsK,EAAErI,GAAG,IAAIoB,EAAE3E,UAAU/G,OAAO,GAAG0L,EAAE,EAAE,MAAM,IAAIiqD,GAAEqhF,gBAAgB,qBAAqB,QAAQnoJ,EAAE,IAAI+Y,MAAM8D,EAAE,KAAKA,GAAG7c,EAAE6c,EAAE,GAAG3E,UAAU2E,GAAG,OAAOpB,EAAEzb,EAAEihC,MAAM,CAACznB,EAAEwnB,GAAEhhC,GAAGyb,EAAE,CAAC,SAAS23I,GAAG55I,EAAEsK,EAAErI,EAAEoB,EAAE7c,GAAG,OAAOytE,GAAGp6D,UAAUvX,KAAM,KAAK,MAAMod,EAAEm0D,GAAG+4E,WAAW/4E,GAAG7xD,EAAEhC,EAAEsrI,mBAAmBhhI,EAAErI,EAAEjC,EAAEurI,UAAUloI,GAAGxS,EAAE,CAAC+6I,MAAM5pI,EAAE4qI,UAAUltI,GAAG,GAAG2D,EAAErB,EAAE0qI,SAASrpI,EAAEqpI,cAAc,IAAI1qI,EAAEqnB,SAASrpB,EAAEsrD,OAAOkgF,eAAe,CAAC,OAAOnoI,IAAG,OAAOA,GAAE7a,OAAOskE,GAAE2+E,cAAczrI,EAAE0rI,YAAY1rI,EAAEsrD,OAAOkgF,eAAe,GAAG12I,QAAQ3H,KAAK,4BAA4B6S,EAAE2rI,SAAS3rI,EAAEq4F,OAAO/1G,KAAM,IAAIs3J,GAAG55I,EAAEsK,EAAErI,EAAE,KAAKzb,KAAMivE,GAAGpyD,GAAE,CAAC,MAAMzc,GAAEokE,GAAExkE,GAAG,IAAIujE,GAAEnjE,IAAGguE,KAAK,MAAMlkE,GAAEujE,GAAGk2E,OAAQ,KAAK,GAAGpgF,GAAEvjE,EAAEwsD,KAAKhxC,EAAEA,GAAG+nD,GAAE,GAAGnjE,GAAE,CAAC,IAAIoZ,GAAE80D,GAAG5kC,KAAK,KAAK,MAAM65B,GAAEznE,KAAK0d,GAAEA,GAAE,KAAK,mBAAmB+pD,GAAEnlE,MAAM,mBAAmBmlE,GAAE2vF,QAAQ3vF,GAAE0vF,GAAG1vF,IAAC,EAAKl5D,GAAG,OAAOk5D,IAAG,mBAAmBA,GAAEznE,KAAK2xE,GAAGp6D,QAAQkwD,IAAGznE,KAAM0d,IAAGgC,EAAE+xI,OAAO/zI,GAAEy1D,GAAG,IAAInI,GAAEusF,gBAAgB,gEAAiEnpJ,GAAEpO,KAAM,IAAIynE,KAAKznE,KAAM0d,KAAIqD,GAAGrB,EAAEs1D,WAAWt1D,EAAE6pI,YAAYvpJ,KAAM,IAAI0d,MAAOxV,MAAOwV,KAAIgC,EAAEu1D,QAAQv3D,IAAGy1D,GAAGz1D,KAAI,EAAI,CAAC,SAAS85I,GAAG95I,EAAEsK,EAAEjH,GAAG,MAAM7c,EAAEyb,GAAEjC,GAAGA,EAAEL,QAAQ,CAACK,GAAG,QAAQA,EAAE,EAAEA,EAAEqD,IAAIrD,EAAExZ,EAAE0Z,KAAKoK,GAAG,OAAO9jB,CAAC,CAAC,MAAMuzJ,GAAG,CAACllE,MAAM,SAASrsF,KAAK,yBAAyBi5E,MAAM,EAAEp4C,OAAO,SAASrpB,GAAG,MAAM,IAAIA,EAAEigE,MAAM31D,GAAG,MAAMrI,EAAEjC,EAAEigE,MAAM31D,IAAIs/B,OAAOvmC,GAAGpB,EAAEzb,EAAE,CAAC,EAAEkZ,EAAE,GAAG,SAASsC,EAAEhC,GAAEsK,GAAErI,IAAG,MAAMoB,GAAEoyI,GAAGz1I,IAAGnP,GAAErK,EAAE6c,IAAG7c,EAAE6c,KAAI,GAAGzc,GAAE,MAAMoZ,GAAE,EAAE,iBAAiBA,GAAE,EAAEA,GAAErI,OAAOoyD,GAAEz/C,GAAE,EAAE5Z,GAAE,IAAIuR,GAAE+3I,UAAUjwF,GAAEkwF,QAAQ3vI,GAAE4vI,UAAUtzJ,GAAE6qJ,WAAW6D,GAAGt1I,IAAGgwI,QAAQjmF,IAAG9nD,GAAE+tI,QAAQ,OAAGn/I,GAAEqP,KAAKxP,IAAGA,GAAEwlJ,cAAcx2I,EAAEQ,KAAKxP,IAAG9J,GAAE,GAAGob,EAAE,IAAIpb,GAAEoZ,GAAE,GAAGA,GAAEL,MAAM,EAAE/Y,GAAE,GAAG0jB,GAAE,EAAErI,IAAUpR,GAAEkF,KAAM,CAACiK,GAAEsK,KAAItK,GAAEi6I,QAAQ3vI,GAAE2vI,SAAUvpJ,EAAC,CAAC,MAAMG,EAAEmR,EAAEqB,EAAEqsI,WAAWpC,QAAQ,EAAEjqI,EAAEqsI,YAAYlpJ,EAAE,OAAO,CAACqK,GAAG,UAAUmP,MAAKqD,EAAE8pI,QAAQnrI,EAAEhC,GAAEstI,QAAQ,EAAEttI,IAAG,SAASpZ,GAAE0jB,IAAG,MAAMrI,GAAEqI,GAAEohF,MAAM9uF,MAAM,OAAOqF,GAAE+3I,UAAU,IAAI1vI,GAAEohF,MAAM,CAAC9uF,MAAMqF,GAAE2sI,OAAOvrI,GAAEiH,GAAEohF,MAAMkjD,MAAMpoJ,GAAEyb,GAAEg4I,QAAQ,CAAC5lJ,KAAK,IAAIgP,GAAEhP,KAAK,EAAEgP,GAAEhP,KAAK83I,MAAM2N,GAAGz2I,GAAE8oI,MAAM9oI,GAAE+oI,UAAUpsI,EAAE42I,QAAQ52I,EAAE22I,QAAQnwJ,IAAG4lJ,WAAU,EAAGC,MAAMyN,GAAGz2I,GAAEgpI,MAAMhpI,GAAEipI,UAAUtsI,EAAE22I,QAAQ32I,EAAE42I,QAAQpwJ,IAAG8lJ,WAAU,MAAOhiI,GAAE,IAAIjH,GAAE7c,EAAC,CAAmtB,MAA1sB,IAAIyb,EAAE2nC,OAAO,IAAIvmC,EAAEqsI,WAAW7+I,EAAEs8I,QAAQztI,EAAEiwI,kBAAkB,SAAS3vI,IAAG,MAAMsK,GAAE9jB,EAAEivJ,GAAGz1I,KAAI,OAAOsK,IAAGA,GAAE,EAAE,GAAG6W,MAAMnhB,IAAGiC,EAAEkf,MAAMv6B,GAAEoZ,KAAI0rF,MAAM1rF,IAAGiC,EAAEypF,MAAM9kG,GAAEoZ,KAAI6vI,WAAWvlI,IAAG,MAAM2vI,QAAQ52I,GAAE22I,UAAUxzJ,GAAE0zJ,UAAUx6I,IAAG4K,GAAEohF,MAAM9uF,MAAM,OAAIpW,GAAgCyb,EAAE4tI,WAAWjpJ,GAAE0jB,KAAIhoB,KAAM2f,KAAGA,YAAYA,GAA0ZA,GAA/Y7L,OAAOizB,OAAOpnB,GAAE,CAACouI,SAAS,CAAC77I,MAAM,SAAShO,IAAG,MAAMA,GAAEyb,GAAEouI,SAASyJ,GAAGtzJ,GAAE8jB,GAAEqtC,QAAQ33C,EAAE42I,QAAQ52I,EAAE22I,QAAQtzI,KAAIiH,GAAE0lI,OAAO/tI,GAAEouI,SAASpuI,GAAEwkB,IAAI9mB,MAAM,EAAED,IAAGwnI,OAAO58H,GAAEqtC,QAAQ33C,EAAE22I,QAAQ32I,EAAE42I,QAAQvzI,KAAIpB,GAAEouI,UAAU,GAAGqG,mBAAmB,CAACliJ,MAAM8V,GAAE9jB,IAAGyb,GAAEy0I,mBAAmBoD,GAAGxvI,GAAEtK,EAAE42I,QAAQvzI,IAAG7c,GAAE,GAAGkpJ,WAAW,CAAC3qJ,IAAIA,IAAIkd,GAAEytI,YAAYjpH,IAAI,CAAC1hC,MAAM,MAAMib,GAAEiC,GAAEwkB,IAAI,OAAO,IAAI/mB,GAAEM,GAAE,GAAGA,GAAEL,MAAM,EAAED,GAAE,GAAGlL,MAAM,CAACzP,IAAIA,IAAIkd,GAAEzN,UAAhZ,IAASyN,EAA6Z,GAA5dA,EAAE4tI,WAAWvlI,GAAgd,EAAW,EAAE,GAAG,SAAS6vI,GAAGn6I,EAAEiC,EAAEoB,EAAE7c,GAAG,OAAO6c,EAAEA,GAAG,CAAC,EAAE7c,EAAEA,GAAG,GAAG8jB,GAAEtK,GAAGkC,QAASoI,IAAI,GAAGtI,GAAEC,EAAEqI,GAAG,CAAC,IAAI5K,EAAEM,EAAEsK,GAAGzZ,EAAEoR,EAAEqI,GAAG,GAAG,iBAAiB5K,GAAG,iBAAiB7O,GAAG6O,GAAG7O,EAAE,CAAC,MAAMmP,EAAEirD,GAAEvrD,GAAGM,IAAIirD,GAAEp6D,GAAGwS,EAAE7c,EAAE8jB,GAAGrI,EAAEqI,GAAG,WAAWtK,EAAEm6I,GAAGz6I,EAAE7O,EAAEwS,EAAE7c,EAAE8jB,EAAE,KAAK5K,IAAI7O,IAAIwS,EAAE7c,EAAE8jB,GAAGrI,EAAEqI,GAAG,MAAM5K,IAAI7O,IAAIwS,EAAE7c,EAAE8jB,GAAGrI,EAAEqI,GAAG,MAAMjH,EAAE7c,EAAE8jB,QAAG,IAAUA,GAAErI,GAAGC,QAASoI,IAAItI,GAAEhC,EAAEsK,KAAKjH,EAAE7c,EAAE8jB,GAAGrI,EAAEqI,GAAC,GAAMjH,CAAC,CAAC,MAAM+2I,GAAG,CAACvlE,MAAM,SAASrsF,KAAK,kBAAkBi5E,MAAM,EAAEp4C,OAAOrpB,QAAQA,EAAEigE,MAAM31D,GAAG,MAAMrI,EAAEjC,EAAEigE,MAAM31D,IAAIolI,WAAWrsI,GAAGpB,EAAE2nC,OAAs9D,MAA78D,IAAI3nC,EAAEssI,OAAOvuI,GAAG,MAAMxZ,EAAEqtE,GAAG+3E,OAAOyO,SAAS36I,EAAE46I,SAASzpJ,GAAE0pJ,SAAS3zJ,IAAGJ,EAAEy5E,MAAM31D,GAAGwiI,KAAK,OAAO9sI,EAAE3L,MAAM,IAAI,MAAM,GAAGxD,GAAEm8I,OAAOt/E,GAAG,MAAM,OAAOlnE,EAAE6wE,SAAS,YAAa,IAAItN,GAAE/pD,IAAI,GAAI,IAAI,MAAM,GAAGnP,GAAEm8I,OAAOt/E,IAAI9mE,GAAEomJ,OAAOt/E,GAAG,MAAM,OAAOlnE,EAAE6wE,SAAS,YAAa,IAAItN,GAAE/pD,IAAI,GAAI,IAAI,SAAS,GAAGN,EAAEstI,OAAOt/E,GAAG,MAAM,OAAOlnE,EAAE6wE,SAAS,YAAa,IAAItN,GAAE/pD,IAAI,GAAI,IAAI,cAAc,GAAGN,EAAEstI,OAAOt/E,GAAG,MAAM,OAAOlnE,EAAE6wE,SAAS,YAAa,KAAI,OAAmB3mE,IAAVsP,GAAkCA,GAApB4rI,MAAM5rI,GAAE4uI,MAAM,KAArC,IAAS5uI,EAAmC,GAAG,GAAI,OAAOiC,EAAEssI,OAAOvuI,GAAG,SAAS+pD,GAAE/pD,IAAG,MAAMsK,GAAEupD,GAAG+3E,MAAMplJ,GAAEwZ,GAAEupB,OAA0B,YAATjf,GAAwEtK,IAAlD3L,KAAKiW,GAAEif,KAAKjf,GAAEif,MAAMjf,GAAEmmB,OAAOnoC,IAAmB+a,EAAbouI,aAApE,IAAWnnI,GAA2E,IAAI9jB,GAAE,MAAM,IAAI+gB,MAAM,gBAAgB,MAAM,YAAYvH,GAAE,QAAQA,GAAE3L,MAAM,QAAQ2L,GAAE3L,KAAK,IAAI2L,GAAEupB,KAAK/iC,IAAG,IAAIwZ,KAAI3L,OAAO2L,GAAEywB,OAAO,IAAIzwB,GAAEywB,SAASzwB,GAAEupB,OAAOvpB,GAAEupB,KAAK,IAAIvpB,GAAEupB,OAAO,SAASvpB,GAAEsK,GAAErI,IAAG,MAAM,QAAQqI,GAAEjW,KAAKuF,QAAQC,QAAQ,IAAImG,GAAE8uI,QAAQ,CAAClD,MAAMthI,GAAEshI,MAAMriH,KAAKtnB,GAAE0vI,MAAM,aAAa,CAA5G,CAA8G1vI,EAAEjC,GAAExZ,IAAGlE,KAAMynE,KAAI,MAAMr5D,GAAElK,GAAE8B,IAAK,CAAC2Z,GAAEzb,MAAK,MAAMkK,GAAEq5D,GAAEvjE,IAAGwjE,GAAE,CAACwuC,QAAQ,KAAK0vC,UAAU,MAAM,GAAG,WAAWloI,GAAE3L,KAAKqL,EAAEstI,KAAKh6F,KAAKgX,GAAE/nD,GAAEvR,GAAE4Z,SAAC,GAAU,QAAQtK,GAAE3L,WAAM,IAAS3D,GAAE,CAAC,MAAMgP,GAAE7O,GAAEm8I,KAAKh6F,KAAKgX,GAAE/nD,GAAEjC,GAAEywB,OAAOjqC,IAAG8jB,IAAG,MAAMrI,IAAG,MAAMvC,KAAQM,GAAEupB,KAAK/iC,IAAXyb,GAAEvC,GAAc2D,EAAEmuI,UAAU5nJ,GAAEoW,GAAEywB,OAAOjqC,IAAG6c,EAAEiqI,QAAQrrI,IAAG,KAAK,CAAC,MAAMoB,GAAE82I,GAAGzpJ,GAAEsP,GAAEywB,OAAOjqC,KAAIkZ,GAAE9Y,GAAEomJ,KAAKh6F,KAAKgX,GAAE3mD,GAAEpB,GAAEvR,GAAE4Z,IAAG,GAAG5K,GAAE,CAAC,MAAM4K,GAAEtK,GAAEywB,OAAOjqC,IAAG4P,OAAOmzB,KAAK7pB,IAAGwC,QAASlC,KAAIgC,GAAEsI,GAAEtK,IAAGsK,GAAEtK,IAAGN,GAAEM,IAAGpW,GAAE0gB,GAAEtK,GAAEN,GAAEM,IAAE,EAAI,CAAC,CAAC,OAAOgqD,KAAK,OAAO/nD,EAAEssI,OAAOvuI,IAAG1d,KAAM,EAAEmlJ,SAASn9H,GAAE+G,QAAQpP,GAAEusI,YAAYnrI,GAAEorI,WAAW/uI,OAAM,QAAQ2D,GAAE,EAAEA,GAAE7c,GAAEmR,SAAS0L,GAAE,CAAC,MAAM3D,GAAEuC,GAAEA,GAAEoB,IAAG7c,GAAE6c,IAAGrB,GAAEtR,GAAE2S,IAAG,MAAM3D,GAAEsC,GAAEw2F,SAASx2F,GAAEw2F,QAAQluF,GAAEjH,KAAIrB,GAAEkmI,WAAWlmI,GAAEkmI,UAAU,QAAQloI,GAAE3L,MAAM01D,GAAE1mD,IAAGrD,GAAEywB,OAAOptB,IAAG3D,GAAE,CAAC,MAAM,CAAC+nI,SAASn9H,GAAE+G,QAAQpP,GAAEusI,YAAYnrI,GAAEorI,WAAW/uI,GAAC,GAAKlV,MAAOwV,KAAItP,GAAEwR,QAASoI,IAAGA,GAAEkuF,SAASluF,GAAEkuF,QAAQx4F,KAAKpG,QAAQkwD,OAAO9pD,KAAI,EAAI,CAAC,SAAStP,GAAEsP,GAAEsK,GAAE9jB,IAAG,OAAOyb,EAAEypF,MAAM,CAACkgD,MAAM5rI,GAAEywB,QAAO,EAAGi7D,MAAM,CAAC9uF,MAAMyG,EAAEurI,MAAMtkI,IAAGujI,MAAMrnJ,KAAIlE,KAAM,EAAEgc,OAAO2D,MAAK8nD,GAAE,CAAC11D,KAAK,SAASk1B,KAAKtnB,GAAE2pI,MAAM5rI,KAAI1d,KAAM+gB,IAAGA,GAAEmrI,YAAY,EAAE50I,QAAQkwD,OAAOzmD,GAAEokI,SAAS,IAAIxlI,GAAEtK,OAAOnR,GAAE,CAACihJ,SAAS,GAAG+G,YAAY,EAAEC,gBAAW,GAAQ/9I,GAAEsP,GAAE,IAAIsK,GAAE6hI,MAAMlqI,GAAEA,GAAEtK,OAAO,GAAGy0I,WAAU,GAAI5lJ,KAAM,CAAC,EAAW,KAAK,SAASg0J,GAAGx6I,EAAEsK,EAAErI,GAAG,IAAsB,IAAdqI,GAAiBA,EAAEif,KAAK5xB,OAAOqI,EAAErI,OAAO,OAAO,KAAK,MAAM0L,EAAE,GAAG,QAAQ7c,EAAE,EAAEkZ,EAAE,EAAElZ,EAAE8jB,EAAEif,KAAK5xB,QAAQ+H,EAAEM,EAAErI,SAASnR,EAAE,IAAIsyE,GAAGxuD,EAAEif,KAAK/iC,GAAGwZ,EAAEN,MAAM2D,EAAEnD,KAAK+B,EAAE8pD,GAAEzhD,EAAEmmB,OAAOjqC,IAAI8jB,EAAEmmB,OAAOjqC,MAAMkZ,GAAG,OAAO2D,EAAE1L,SAASqI,EAAErI,OAAO0L,EAAE,IAAI,OAAU,OAAO,IAAI,CAAC,CAAC,MAAMo3I,GAAG,CAAC5lE,MAAM,SAASpT,OAAM,EAAGp4C,OAAOrpB,KAAKigE,MAAM31D,IAAI,MAAMrI,EAAEjC,EAAEigE,MAAM31D,GAAG,MAAM,IAAIrI,EAAE6sI,QAAQ9uI,IAAI,IAAIA,EAAE2xI,MAAM,OAAO1vI,EAAE6sI,QAAQ9uI,GAAG,MAAMsK,EAAEkwI,GAAGx6I,EAAEupB,KAAKvpB,EAAE4rI,MAAM8O,OAAO,UAAU16I,EAAE2xI,OAAO,OAAOrnI,EAAE2pD,GAAGp6D,QAAQyQ,GAAGrI,EAAE6sI,QAAQ9uI,GAAG1d,KAAMgoB,IAAItK,EAAE4rI,MAAM8O,OAAO,CAACnxH,KAAKvpB,EAAEupB,KAAKkH,OAAO,UAAUzwB,EAAE2xI,MAAM5lF,GAAEzhD,GAAGA,GAAGA,GAAG,EAAGikI,OAAOvuI,IAAI,QAAQA,EAAE3L,OAAO2L,EAAE4rI,MAAM8O,OAAO,MAAMz4I,EAAEssI,OAAOvuI,IAAG,KAAM,SAAS26I,GAAG36I,GAAG,QAAQ,SAASA,EAAE,CAAC,MAAM46I,GAAG,SAAS56I,EAAEsK,GAAG,IAAIroB,KAAK,CAAC,MAAMqoB,EAAE,IAAIswI,GAAG,OAAO56I,GAAG,MAAMA,GAAGqD,GAAEiH,EAAEtK,GAAGsK,CAAC,CAACjH,GAAEphB,KAAKyc,UAAU/G,OAAO,CAACquB,EAAE,EAAEzuB,KAAKyI,EAAE8R,GAAGpT,UAAU/G,OAAO,EAAE2S,EAAEtK,GAAG,CAACgmB,EAAE,GAAG,EAAE,SAAS60H,GAAG76I,EAAEsK,EAAErI,GAAG,MAAMzb,EAAEsyE,GAAGxuD,EAAErI,GAAG,GAAGkpC,MAAM3kD,GAAG,OAAO,GAAGA,EAAE,EAAE,MAAMmqE,aAAa,GAAGgqF,GAAG36I,GAAG,OAAOqD,GAAErD,EAAE,CAACzI,KAAK+S,EAAEwH,GAAG7P,EAAE+jB,EAAE,IAAI,MAAMtmB,EAAEM,EAAE+pD,EAAE/nD,EAAEhC,EAAEqD,EAAE,GAAGy1D,GAAG72D,EAAEjC,EAAEzI,MAAM,EAAE,OAAOmI,EAAEm7I,GAAGn7I,EAAE4K,EAAErI,GAAGjC,EAAE+pD,EAAE,CAACxyD,KAAK+S,EAAEwH,GAAG7P,EAAE+jB,EAAE,EAAE+jC,EAAE,KAAK1mD,EAAE,MAAMy3I,GAAG96I,GAAG,GAAG84D,GAAGxuD,EAAEtK,EAAE8R,IAAI,EAAE,OAAO9P,EAAE64I,GAAG74I,EAAEsI,EAAErI,GAAGjC,EAAEqD,EAAE,CAAC9L,KAAK+S,EAAEwH,GAAG7P,EAAE+jB,EAAE,EAAE+jC,EAAE,KAAK1mD,EAAE,MAAMy3I,GAAG96I,GAAG84D,GAAGxuD,EAAEtK,EAAEzI,MAAM,IAAIyI,EAAEzI,KAAK+S,EAAEtK,EAAE+pD,EAAE,KAAK/pD,EAAEgmB,EAAEhkB,EAAEA,EAAEgkB,EAAE,EAAE,GAAG8yC,GAAG72D,EAAEjC,EAAE8R,IAAI,IAAI9R,EAAE8R,GAAG7P,EAAEjC,EAAEqD,EAAE,KAAKrD,EAAEgmB,EAAEhmB,EAAE+pD,EAAE/pD,EAAE+pD,EAAE/jC,EAAE,EAAE,GAAG,MAAMn1B,GAAGmP,EAAEqD,EAAE3D,IAAIM,EAAE+pD,GAAGgxF,GAAG/6I,EAAEN,GAAGsC,GAAGnR,GAAGkqJ,GAAG/6I,EAAEgC,EAAE,CAAC,SAAS+4I,GAAG/6I,EAAEsK,GAAGqwI,GAAGrwI,IAAI,SAAStK,EAAEsK,GAAG/S,KAAK0K,EAAE6P,GAAGzO,EAAE0mD,EAAEvjE,EAAE6c,EAAE3D,IAAIm7I,GAAGvwI,EAAErI,EAAEoB,GAAG7c,GAAGwZ,EAAEsK,EAAE9jB,GAAGkZ,GAAGM,EAAEsK,EAAE5K,EAAE,CAAjE,CAAmEM,EAAEsK,EAAE,CAA2R,SAAS0wI,GAAGh7I,GAAG,IAAIsK,EAAEqwI,GAAG36I,GAAG,KAAK,CAACxZ,EAAE,EAAEyb,EAAEjC,GAAG,MAAM,CAACpb,KAAKob,GAAG,MAAMiC,EAAEvD,UAAU/G,OAAO,EAAE,KAAK2S,GAAG,OAAOA,EAAE9jB,GAAG,KAAK,EAAE,GAAG8jB,EAAE9jB,EAAE,EAAEyb,EAAE,KAAKqI,EAAErI,EAAE8nD,GAAG+O,GAAG94D,EAAEsK,EAAErI,EAAE1K,MAAM,GAAG+S,EAAE,CAAC2wI,GAAG3wI,EAAErI,EAAEqI,EAAErI,EAAE8nD,EAAEvjE,EAAE,QAAQ,KAAK8jB,EAAErI,EAAE8nD,GAAGz/C,EAAE,CAAC2wI,GAAG3wI,EAAErI,EAAEqI,EAAErI,EAAE8nD,EAAEvjE,EAAE,GAAG,KAAK,EAAE,GAAG8jB,EAAE9jB,EAAE,GAAGyb,GAAG62D,GAAG94D,EAAEsK,EAAErI,EAAE6P,KAAK,EAAE,MAAM,CAACtd,MAAM8V,EAAErI,EAAE6rD,MAAK,GAAI,KAAK,EAAE,GAAGxjD,EAAErI,EAAEoB,EAAE,CAACiH,EAAE9jB,EAAE,EAAE8jB,EAAE,CAAC2wI,GAAG3wI,EAAErI,EAAEqI,EAAErI,EAAEoB,EAAE7c,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE8jB,EAAEA,EAAE2wI,GAAG,MAAM,CAACntF,MAAK,EAAG,EAAE,CAAC,SAASgtF,GAAG96I,GAAG,IAAIsK,EAAErI,EAAE,MAAMoB,IAAI,QAAQiH,EAAEtK,EAAEqD,SAAI,IAASiH,OAAE,EAAOA,EAAE0b,IAAI,KAAK,QAAQ/jB,EAAEjC,EAAE+pD,SAAI,IAAS9nD,OAAE,EAAOA,EAAE+jB,IAAI,GAAGx/B,EAAE6c,EAAE,EAAE,IAAIA,GAAE,EAAG,IAAI,GAAG,GAAG7c,EAAE,CAAC,MAAM8jB,EAAE,MAAM9jB,EAAE,IAAI,IAAIyb,EAAE,IAAIjC,GAAGqD,EAAErD,EAAExZ,GAAGwZ,EAAEzI,KAAK8L,EAAE9L,KAAKyI,EAAE8R,GAAGzO,EAAEyO,GAAG9R,EAAExZ,GAAG6c,EAAE7c,GAAGyb,EAAEzb,GAAG6c,EAAEiH,GAAGtK,EAAEsK,GAAGrI,EAAEA,EAAE+jB,EAAEk1H,GAAGj5I,EAAE,CAACjC,EAAEgmB,EAAEk1H,GAAGl7I,EAAE,CAAC,SAASk7I,IAAI73I,EAAErD,EAAE+pD,EAAEz/C,IAAI,OAAOtK,EAAEsK,EAAE9K,KAAKk/B,IAAI1+B,EAAEgmB,EAAE1b,EAAE0b,GAAGhmB,EAAEgmB,EAAE1b,EAAEA,EAAE0b,EAAE,GAAG,CAAC,CAACn1B,GAAE+pJ,GAAGp0H,UAAU,CAACiU,IAAIz6B,GAAG,OAAO+6I,GAAG94J,KAAK+d,GAAG/d,IAAI,EAAEk5J,OAAOn7I,GAAG,OAAO66I,GAAG54J,KAAK+d,EAAEA,GAAG/d,IAAI,EAAEm5J,QAAQp7I,GAAG,OAAOA,EAAEkC,QAASlC,GAAG66I,GAAG54J,KAAK+d,EAAEA,IAAK/d,IAAI,EAAE,CAAC4pE,MAAK,OAAOmvF,GAAG/4J,KAAK,IAAI,MAAMo5J,GAAG,CAACxmE,MAAM,SAASpT,MAAM,EAAEp4C,OAAOrpB,IAAI,MAAMqD,EAAErD,EAAE4pC,OAAOphD,KAAKhC,EAAE,IAAIo0J,GAAG56I,EAAE22I,QAAQ32I,EAAE42I,SAAS,MAAM,IAAI52I,EAAEigE,MAAMvgE,IAAI,MAAMsC,EAAEhC,EAAEigE,MAAMvgE,IAAIkqC,OAAO/4C,GAAGmR,GAAG0tI,WAAW9oJ,GAAGiK,GAAG4gJ,WAAW1nF,EAAEynF,SAAS9gJ,IAAG9J,EAAEojE,GAAE,IAAIhoD,EAAEusI,OAAOvuI,KAAI,MAAMsK,GAAEtK,GAAE4rI,MAAMhlJ,GAAE0jB,GAAEiqI,eAAejqI,GAAEiqI,aAAa,CAAC,GAAGxqF,GAAE/pD,KAAI,MAAMsK,GAAG,SAAQjH,KAAK3D,KAAKM,KAAI,OAAOpZ,GAAE0jB,MAAK1jB,GAAE0jB,IAAG,IAAIswI,GAAC,EAAIlqJ,GAAEq5D,GAAE,IAAIC,GAAED,GAAE,UAAU11D,KAAK2xB,IAAGhmB,GAAE,IAAI+d,GAAEuZ,IAAG,gBAAgBt3B,GAAE3L,KAAK,CAAC2L,GAAE4uI,OAAO,WAAW5uI,GAAE3L,KAAK,CAAC2L,GAAEupB,MAAMvpB,GAAEywB,OAAO94B,OAAO,GAAG,CAAC,GAAGqI,GAAEywB,QAAQ,GAAG,MAAMhsB,GAAEzE,GAAE4rI,MAAM8O,OAAO,OAAO14I,EAAEusI,OAAOvuI,IAAG1d,KAAM0d,KAAI,GAAGiC,GAAE8b,IAAG,CAAC,WAAWiI,KAAIjI,GAAE/d,GAAEqR,SAAS3gB,GAAE0qJ,QAAQr9H,IAAG,MAAMzT,GAAEkwI,GAAGz8H,GAAEtZ,IAAG6F,IAAG,QAAQ0b,IAAGgkC,GAAEoxF,QAAQr9H,KAAIzT,IAAGgtB,MAAat3B,GAAiS+pD,GAA7R1mD,GAAiSiH,GAA/R9jB,GAAiS8wC,GAAJzmC,EAAtBs8I,QAAQjrI,QAA5Q,SAASxC,GAAE4K,IAAG,MAAM5K,GAAEM,GAAEsK,GAAE9hB,MAAM,IAAI,SAASwZ,GAAEhC,IAAG,OAAO,MAAMA,GAAEsK,GAAEmnI,WAAWzxI,IAAG,IAAI,CAAC,MAAMnP,GAAEmP,IAAGsK,GAAE8rI,YAAYn0I,GAAEjC,IAAGA,GAAEkC,QAASlC,IAAGN,GAAEy7I,OAAOn7I,KAAKN,GAAEy7I,OAAOn7I,KAAIqD,IAAG7c,IAAG0b,QAAS,CAAClC,GAAEsK,MAAK,MAAMrI,GAAEoB,IAAGrB,GAAEqB,GAAEiH,KAAI5K,GAAElZ,IAAGwb,GAAExb,GAAE8jB,KAAI,IAAIwuD,GAAG72D,GAAEvC,MAAK,MAAMuC,IAAGpR,GAAEoR,IAAG,MAAMvC,IAAG7O,GAAE6O,IAAC,EAAK,GAA+B,SAASqe,GAAE,CAAC,MAAM/d,GAAE,CAACzI,KAAKwmB,GAAEouH,MAAMr6H,GAAGiM,GAAEsuH,OAAOriF,GAAEvvB,IAAIz6B,IAAGtP,GAAE+pC,IAAIz6B,GAAE,MAAMtP,GAAE+pC,IAAIj0C,GAAGwjE,GAAEvvB,IAAIj0C,GAAGqK,EAAEs8I,QAAQjrI,QAASlC,IAAG+pD,GAAE/pD,GAAExX,MAAMiyC,IAAIj0C,IAA7a,IAASwZ,GAAIqD,GAAE7c,GAAma,OAAOwZ,IAAG,GAAIgmB,GAAEA,EAAE0lE,OAAO9uF,MAAM0N,GAAEskI,MAAM3sI,QAAO,IAAIoB,GAAE7c,GAAE,MAAM,CAAC8jB,GAAE,IAAIswI,GAAG,QAAQv3I,GAAEpB,GAAEkqI,aAAQ,IAAS9oI,GAAEA,GAAErD,EAAE22I,QAAQ,QAAQnwJ,GAAEyb,GAAEoqI,aAAQ,IAAS7lJ,GAAEA,GAAEwZ,EAAE42I,SAAQ,EAAG74H,GAAE,CAACh5B,IAAIib,IAAG,CAACpZ,EAAE,IAAIg0J,GAAG56I,GAAEymB,MAAMqoH,QAAQ9uI,IAAG,CAACpZ,GAAG,IAAIg0J,IAAIQ,QAAQp7I,GAAEupB,OAAOpI,MAAM6E,GAAE0lE,MAAM1lE,GAAE6pH,WAAW7pH,IAAG,OAAO1b,GAAEyT,IAAG7b,QAASlC,KAAIgqD,GAAEhqD,IAAG,SAASsK,IAAG,MAAMgxI,OAAOr5I,IAAG4xD,GAAG,GAAG5xD,GAAE,CAAC,MAAMpR,GAAEmP,KAAI,MAAMsK,GAAG,SAAQjH,KAAK3D,KAAKM,KAAI,OAAOiC,GAAEqI,MAAKrI,GAAEqI,IAAG,IAAIswI,GAAC,EAAIh0J,GAAEiK,GAAE,IAAIm5D,GAAEn5D,GAAE,UAAUm1B,GAAEsR,IAAGvZ,GAAE/d,IAAGsK,IAAG,GAAGzZ,GAAEm1B,GAAEx9B,MAAM,IAAIiyC,IAAInD,KAAItR,GAAEkwH,aAAa,CAAC,GAAG,UAAUl2I,GAAE,CAAC,MAAMiC,GAAE,UAAUjC,IAAGtP,IAAG4Z,GAAEmmB,QAAQzuB,EAAE0pF,MAAM,IAAIphF,GAAEmmB,QAAO,IAAK,OAAOzuB,EAAEhC,IAAGvB,MAAMxc,KAAKyc,WAAWpc,KAAM+gB,KAAI,GAAG,UAAUrD,GAAE,CAAC,GAAGtP,IAAG4Z,GAAEmmB,OAAO,OAAOxuB,GAAE3f,KAAM,EAAEgc,OAAO0B,OAAMpZ,GAAEw0J,QAAQp7I,IAAGqD,KAAK,MAAMrD,GAAEsK,GAAEmmB,OAAOptB,GAAE/E,OAAOhW,IAAIyhE,GAAG1mD,GAAE/E,OAAOgM,GAAEmmB,OAAO7pC,GAAEw0J,QAAQp7I,IAAGgqD,GAAEoxF,QAAQp7I,GAAE,SAAS,eAAeA,GAAE,CAAC,MAAMA,GAAEqD,GAAEpB,GAAEqI,GAAEmmB,OAAO,OAAOzwB,IAAG5J,OAAOizB,OAAOrpB,GAAE,CAACymB,IAAI,CAAC1hC,IAAIA,KAAKilE,GAAEmxF,OAAOn7I,GAAE0vI,YAAY1vI,GAAEymB,MAAMipH,WAAW,CAAC3qJ,MAAM,MAAMulB,GAAEtK,GAAE0vI,WAAW,OAAO1lF,GAAEmxF,OAAO7wI,IAAGA,EAAC,GAAG9V,MAAM,CAACzP,IAAIA,KAAKkd,IAAGrb,GAAEu0J,OAAOn7I,GAAE0vI,YAAY1vI,GAAExL,SAAS,CAAC,OAAO6O,IAAI,CAAC2mD,GAAEvvB,IAAIj0C,EAAE,CAAC,CAAC,OAAOwb,EAAEhC,IAAGvB,MAAMxc,KAAKyc,UAAU,IAAKsrD,IAAE,GAAI,MAAM+uF,GAAGj3J,YAAYke,EAAEsK,GAAGroB,KAAKg1J,aAAa,CAAC,EAAEh1J,KAAKs5J,MAAM,EAAE,MAAMt5I,EAAE82I,GAAGthH,aAAax1C,KAAKmiD,SAAS95B,EAAE,CAAC0uI,OAAOD,GAAGC,OAAOhN,UAAS,EAAG0B,UAAUzrI,EAAEyrI,UAAUqJ,YAAY90I,EAAE80I,eAAezsI,GAAGroB,KAAKwrJ,MAAM,CAACC,UAAUpjI,EAAEojI,UAAUqJ,YAAYzsI,EAAEysI,aAAa,MAAMiC,OAAO31I,GAAGiH,EAAEroB,KAAKspJ,UAAU,CAAC,EAAEtpJ,KAAKs2J,UAAU,GAAGt2J,KAAKy2J,YAAY,GAAGz2J,KAAKw2J,WAAW,CAAC,EAAEx2J,KAAKipJ,MAAM,KAAKjpJ,KAAK60J,OAAO70J,KAAK,MAAMuE,EAAE,CAACslJ,YAAY,KAAKC,eAAc,EAAGyP,kBAAkB,KAAKrQ,cAAa,EAAGsQ,eAAe/tF,GAAGu+E,eAAe,KAAKyP,WAAWhuF,GAAGiuF,cAAc,KAAKC,YAAW,EAAGpQ,eAAe,GAAG,IAAI9rI,EAAq+BM,EAAn+BxZ,EAAEylJ,eAAe,IAAIh4E,GAAIj0D,IAAIxZ,EAAEi1J,eAAez7I,IAAKxZ,EAAEm1J,cAAc,IAAI1nF,GAAI,CAACj0D,EAAEsK,MAAK9jB,EAAEk1J,WAAWpxI,KAAKroB,KAAKqpE,OAAO9kE,EAAEvE,KAAKuG,KAAKwX,EAAE/d,KAAKmW,GAAGw/D,GAAG31E,KAAK,WAAW,UAAU,gBAAgB,QAAQ,CAAC82E,MAAM,CAAC/J,GAAGtB,MAAMzrE,KAAKmW,GAAG2gE,MAAMl1E,UAAU4gB,GAAExiB,KAAKmW,GAAG2gE,MAAMl1E,UAAWmc,GAAG,CAACsK,GAAErI,MAAK82I,GAAG8C,IAAK,KAAK,MAAMx4I,GAAEphB,KAAKqpE,OAAO,GAAGjoD,GAAE8nI,aAAa9nI,GAAEyoI,aAAa73E,GAAGp6D,UAAUvX,KAAKgoB,IAAGrI,IAAGjC,EAAEsK,SAAC,GAAUjH,GAAEm4I,kBAAkBn4I,GAAEm4I,kBAAkBt7I,KAAKoK,IAAGrI,IAAGjC,EAAEsK,QAAO,CAACtK,EAAEsK,IAAG,MAAMjH,GAAEphB,KAAKggB,IAAGjC,EAAG,SAASA,KAAIqD,GAAEjL,GAAG2gE,MAAM3jE,YAAYkV,IAAGjH,GAAEjL,GAAG2gE,MAAM3jE,YAAY4K,GAAE,EAAG,GAAG,GAAK/d,KAAK+rJ,YAAYtuI,EAAEzd,KAAK83E,GAAGnB,GAAGpyC,UAAW,SAASxmB,EAAEsK,IAAGroB,KAAK0qJ,GAAGjtI,EAAE,IAAIuC,GAAEi3D,GAAG71D,GAAE,KAAK,GAAGiH,GAAE,IAAIrI,GAAEqI,IAAG,OAAOtK,IAAGqD,GAAErD,EAAC,CAAC,MAAMxZ,GAAEwZ,EAAEwwI,KAAKxuI,GAAExb,GAAEy5E,MAAMpvE,GAAEmR,GAAE8qI,KAAKC,QAAQC,KAAK/qJ,KAAKuuJ,KAAK,CAACvwE,MAAMj+D,GAAEpF,MAAMpW,GAAEoW,MAAM6yI,WAAWjpJ,GAAEoW,OAAOoF,GAAE4nC,OAAOwjG,QAAQE,SAAS9mJ,GAAEoW,QAAQoF,GAAE4nC,OAAOwjG,QAAQ5kJ,KAAKomJ,MAAM3sI,GAAE6tI,UAAS,EAAGC,IAAI,OAAOC,OAAO,GAAGV,UAAU,KAAKrmJ,OAAO,KAAKumJ,aAAa,KAAKD,WAAU,EAAGwB,QAAQ,KAAK7wE,OAAO,EAAE2tE,MAAM,IAAInkJ,MAAM2Z,GAAEs0D,GAAGnxE,GAAEmxE,GAAGy4E,YAAYv/I,KAAIkzB,GAAGlzB,GAAE,KAAK,IAAK5O,KAAK+yJ,OAAeh1I,EAA2N/d,KAAjN83E,GAAG/B,GAAGxxC,UAAW,SAASlc,GAAErI,GAAEoB,IAAGphB,KAAK0qJ,GAAG3sI,EAAE/d,KAAKuqJ,IAAInpI,GAAEphB,KAAKuG,KAAK8hB,GAAEroB,KAAK2nD,OAAO3nC,GAAEhgB,KAAK6qJ,KAAK9sI,EAAEy4I,WAAWnuI,IAAGtK,EAAEy4I,WAAWnuI,IAAGwiI,KAAKl1E,GAAG,KAAK,CAAC0iF,SAAS,CAACxrF,GAAGpB,IAAIq/E,QAAQ,CAAC3+E,GAAGrqC,IAAIw2H,SAAS,CAACpsF,GAAGT,IAAI2sF,SAAS,CAAC7rF,GAAGd,KAAK,IAAWzrE,KAAKk1J,YAAY,SAASn3I,GAAG,OAAO+5D,GAAGw5E,GAAG/sH,UAAW,SAASlc,GAAErI,GAAEoB,GAAE7c,GAAEkZ,IAAGzd,KAAK0qJ,GAAG3sI,EAAE/d,KAAKyZ,KAAK4O,GAAEroB,KAAKgyJ,WAAWhyI,GAAEhgB,KAAK2nD,OAAOvmC,GAAEphB,KAAKkyJ,4BAA4B3tJ,GAAEvE,KAAKyqJ,SAAS,KAAKzqJ,KAAKmW,GAAGw/D,GAAG31E,KAAK,WAAW,QAAQ,SAASA,KAAKqlC,OAAO5nB,IAAG,KAAKzd,KAAK8xJ,QAAO,EAAG9xJ,KAAKwxJ,UAAU,EAAExxJ,KAAK2xJ,cAAc,GAAG3xJ,KAAKq1E,SAAS,KAAKr1E,KAAKs1E,QAAQ,KAAKt1E,KAAK0yJ,YAAY,KAAK1yJ,KAAK2yJ,cAAc,KAAK3yJ,KAAK6yJ,WAAW,EAAE7yJ,KAAK4pJ,YAAY,IAAI53E,GAAI,CAACj0D,GAAEsK,MAAKroB,KAAKq1E,SAASt3D,GAAE/d,KAAKs1E,QAAQjtD,KAAKroB,KAAK4pJ,YAAYvpJ,KAAM,KAAKL,KAAK8xJ,QAAO,EAAG9xJ,KAAKmW,GAAGjD,SAAS63I,MAAK,EAAKhtI,KAAI,IAAIsK,GAAEroB,KAAK8xJ,OAAO,OAAO9xJ,KAAK8xJ,QAAO,EAAG9xJ,KAAKmW,GAAG1O,MAAMsjJ,KAAKhtI,IAAG/d,KAAKqlC,OAAOrlC,KAAKqlC,OAAOiwC,QAAQv3D,IAAGsK,IAAGroB,KAAKyqJ,UAAUzqJ,KAAKyqJ,SAASz0H,QAAQw9C,GAAGz1D,GAAC,EAAI,EAAG,CAAhqB,CAAkqB/d,MAAMA,KAAK65J,QAAQ,SAAS97I,GAAG,OAAO+5D,GAAGo+E,GAAG3xH,UAAW,SAASlc,IAAGroB,KAAK0qJ,GAAG3sI,EAAE/d,KAAKq1J,KAAK,CAACC,QAAQjtI,GAAEguI,aAAa,KAAKE,SAAS,CAAC,EAAExC,OAAO,CAAC,EAAE4C,eAAe,KAAK,EAAG,CAA9I,CAAgJ32J,MAAMA,KAAKgrJ,YAAY,SAASjtI,GAAG,OAAO+5D,GAAG+3E,GAAGtrH,UAAW,SAASlc,GAAErI,GAAEoB,IAAGphB,KAAK0qJ,GAAG3sI,EAAE/d,KAAKuuJ,KAAK,CAACvwE,MAAM31D,GAAE1N,MAAM,QAAQqF,GAAE,KAAKA,GAAE01D,GAAGt0D,IAAG,MAAM7c,GAAEwZ,EAAEytI,MAAMC,UAAU,IAAIlnJ,GAAE,MAAM,IAAI8mE,GAAEk6E,WAAWvlJ,KAAK+vJ,KAAK/vJ,KAAKwwJ,WAAWjsJ,GAAEmnJ,IAAIz9G,KAAK1pC,IAAGvE,KAAKywJ,YAAY,CAAC1yI,GAAEsK,KAAI9jB,GAAEmnJ,IAAIrjI,GAAEtK,IAAG/d,KAAKgxJ,KAAK,CAACjzI,GAAEsK,KAAI9jB,GAAEmnJ,IAAI3tI,GAAEsK,IAAG,EAAEtK,GAAEsK,GAAEroB,KAAK+wJ,KAAK,CAAChzI,GAAEsK,KAAI9jB,GAAEmnJ,IAAI3tI,GAAEsK,IAAG,EAAEtK,GAAEsK,GAAEroB,KAAK85J,aAAa/7I,EAAEytI,MAAMsJ,WAAW,EAAG,CAA5V,CAA8V90J,MAAMA,KAAKmW,GAAG,gBAAiB4H,IAAIA,EAAEg8I,WAAW,EAAElnJ,QAAQ3H,KAAM,iDAAgDlL,KAAKuG,gDAAgDsM,QAAQ3H,KAAM,gDAA+ClL,KAAKuG,uDAAuDvG,KAAK42B,OAAM,GAAK52B,KAAKmW,GAAG,UAAW4H,KAAKA,EAAEg8I,YAAYh8I,EAAEg8I,WAAWh8I,EAAEi8I,WAAWnnJ,QAAQ3H,KAAM,iBAAgBlL,KAAKuG,sBAAsBsM,QAAQ3H,KAAM,YAAWlL,KAAKuG,qDAAqDwX,EAAEi8I,WAAW,KAAI,GAAKh6J,KAAKsrJ,QAAQ6H,GAAG9qI,EAAEysI,aAAa90J,KAAKqpJ,mBAAmB,CAACtrI,EAAEsK,GAAErI,GAAEoB,KAAI,IAAIphB,KAAKk1J,YAAYn3I,EAAEsK,GAAErI,GAAEhgB,KAAKmiD,SAAS+vG,4BAA4B9wI,IAAGphB,KAAKi6J,eAAel8I,IAAI/d,KAAKmW,GAAG,WAAW40I,KAAKhtI,GAAGq2B,GAAGptC,OAAQ+W,IAAGA,GAAExX,OAAOvG,KAAKuG,MAAMwX,KAAI/d,OAAO+d,GAAEsrD,OAAO6wF,SAAU7zJ,IAAKgiB,IAAGA,GAAElS,GAAG,iBAAiB40I,KAAKhtI,GAAG,EAAG/d,KAAKm6J,IAAIrC,IAAI93J,KAAKm6J,IAAIhC,IAAIn4J,KAAKm6J,IAAIf,IAAIp5J,KAAKm6J,IAAI3B,IAAIx4J,KAAK45J,IAAIzlJ,OAAOizB,OAAOpnC,KAAK,CAACopJ,KAAK,CAAC72I,OAAM,KAAM6O,EAAEnB,QAASlC,GAAGA,EAAE/d,MAAO,CAACs1J,QAAQv3I,GAAG,GAAGmrC,MAAMnrC,IAAIA,EAAE,GAAG,MAAM,IAAIstD,GAAE/mC,KAAK,0CAA0C,GAAGvmB,EAAER,KAAK2sC,MAAM,GAAGnsC,GAAG,GAAG/d,KAAKipJ,OAAOjpJ,KAAKqpE,OAAOygF,cAAc,MAAM,IAAIz+E,GAAEsiF,OAAO,4CAA4C3tJ,KAAKs5J,MAAM/7I,KAAKk/B,IAAIz8C,KAAKs5J,MAAMv7I,GAAG,MAAMsK,EAAEroB,KAAKs2J,UAAU,IAAIt2I,EAAEqI,EAAErhB,OAAQqhB,GAAGA,EAAEgtI,KAAKC,UAAUv3I,GAAI,GAAG,OAAOiC,IAAIA,EAAE,IAAIhgB,KAAK65J,QAAQ97I,GAAGsK,EAAEpK,KAAK+B,GAAGqI,EAAEvU,KAAKshJ,IAAIp1I,EAAEo2I,OAAO,CAAC,GAAGp2J,KAAKqpE,OAAOswF,YAAW,EAAG35I,EAAE,CAACo6I,WAAWr8I,GAAG,OAAO/d,KAAKipJ,QAAQjpJ,KAAKqpE,OAAO6/E,cAAct3E,GAAGu3E,YAAYnpJ,KAAKopJ,MAAMrrI,IAAI,IAAIi0D,GAAI,CAACj0D,EAAEsK,KAAK,GAAGroB,KAAKqpE,OAAO6/E,aAAa,OAAO7gI,EAAE,IAAIgjD,GAAE+5E,eAAeplJ,KAAKqpE,OAAOwgF,cAAc,IAAI7pJ,KAAKqpE,OAAOygF,cAAc,CAAC,IAAI9pJ,KAAKmiD,SAAS4nG,SAAS,YAAY1hI,EAAE,IAAIgjD,GAAE+5E,gBAAgBplJ,KAAKo2G,OAAO7tG,MAAMkjE,GAAG,CAACzrE,KAAKqpE,OAAO2gF,eAAe3pJ,KAAK0d,EAAEsK,EAAC,GAAKhoB,KAAK0d,EAAE,CAACo8I,KAAKvnE,MAAM70E,EAAEqpB,OAAO/e,EAAEm3D,MAAMx/D,EAAEzZ,KAAK6a,IAAIA,GAAGphB,KAAKq6J,MAAM,CAACznE,MAAM70E,EAAExX,KAAK6a,IAAI,MAAM7c,EAAEvE,KAAKg1J,aAAaj3I,KAAK/d,KAAKg1J,aAAaj3I,GAAG,IAAI,OAAOxZ,EAAE0Z,KAAK,CAAC20E,MAAM70E,EAAEqpB,OAAO/e,EAAEm3D,MAAYx/D,GAAE,GAAKzZ,KAAK6a,IAAI7c,EAAEuP,KAAM,CAACiK,EAAEsK,IAAItK,EAAEyhE,MAAMn3D,EAAEm3D,OAAQx/E,IAAI,CAACq6J,OAAOznE,MAAM70E,EAAExX,KAAK8hB,EAAE+e,OAAOpnB,IAAI,OAAOjC,GAAG/d,KAAKg1J,aAAaj3I,KAAK/d,KAAKg1J,aAAaj3I,GAAG/d,KAAKg1J,aAAaj3I,GAAG/W,OAAQ+W,GAAGiC,EAAEjC,EAAEqpB,SAASpnB,IAAIqI,GAAGtK,EAAExX,OAAO8hB,IAAKroB,IAAI,CAACo2G,OAAO,OAAhriB,SAASkkD,GAAGv8I,GAAG,MAAMiC,EAAEjC,EAAEsrD,QAAQoiF,UAAUrqI,GAAGrD,EAAEytI,MAAM,GAAGxrI,EAAE8pI,eAAe/rI,EAAEkrI,MAAM,OAAOjpI,EAAEgqI,eAAe3pJ,KAAM,IAAI2f,EAAE6pI,YAAYr2E,GAAGxzD,EAAE6pI,aAAa9rI,GAAI+qD,KAAI9oD,EAAE05I,cAAczS,aAAa/9E,MAAKlpD,EAAE8pI,eAAc,EAAG9pI,EAAE6pI,YAAY,KAAK7pI,EAAEkpI,cAAa,EAAG,MAAM3kJ,EAAEyb,EAAE05I,cAAc,SAASj8I,IAAI,GAAGuC,EAAE05I,gBAAgBn1J,EAAE,MAAM,IAAI8mE,GAAE+5E,eAAe,0BAA0B,CAAC,IAAIrlI,EAAEC,EAAEw5I,eAAe5qJ,EAAE,KAAKjK,GAAE,EAAG,MAAMmjE,GAAEA,IAAI,IAAIkK,GAAI,CAACztE,GAAEwb,MAAK,GAAGtC,KAAK2D,EAAE,MAAM,IAAIiqD,GAAEk6E,WAAW,MAAMz9E,GAAE/pD,EAAExX,KAAKkI,GAAEuR,EAAE25I,WAAWv4I,EAAEg1F,KAAKtuC,IAAG1mD,EAAEg1F,KAAKtuC,GAAEvqD,KAAK2sC,MAAM,GAAGnsC,EAAEu7I,QAAQ,IAAI7qJ,GAAE,MAAM,IAAI48D,GAAEk6E,WAAW92I,GAAE8nG,QAAQ26C,GAAGnxI,IAAGtR,GAAE8rJ,UAAUtqF,GAAGlyD,EAAEk8I,gBAAgBxrJ,GAAE+rJ,gBAAgBvqF,GAAI5nD,KAAI,GAAGzZ,EAAEH,GAAEsjJ,YAAY/xI,EAAE25I,aAAa57I,EAAEokC,SAASs4G,aAAa,CAAChsJ,GAAE8nG,QAAQ46C,GAAGviJ,EAAEonB,QAAQvnB,GAAE4N,OAAOua,QAAQ,MAAM7Y,GAAEqD,EAAEs5I,eAAe5yF,IAAG/pD,GAAEkoI,UAAUloI,GAAEw4F,QAAQtmC,GAAI,KAAKlwD,GAAE,IAAIsrD,GAAEsvF,eAAgB,YAAW7yF,mBAAiB,EAAI,KAAK,CAACl5D,EAAE2nG,QAAQ26C,GAAGnxI,IAAG,IAAIxb,GAAE8jB,GAAE2xI,WAAWz8I,KAAKwsC,IAAI,EAAE,IAAI,EAAE1hC,GAAE2xI,WAAWr1J,EAAEJ,GAAE,EAAEwZ,EAAE82I,OAAO5L,MAAMx6I,GAAE4N,OAApjM,SAASu+I,GAAG78I,EAAEiC,EAAEoB,EAAE7c,GAAG,MAAMkZ,EAAEM,EAAEurI,UAAUvpI,EAAEhC,EAAEsrI,mBAAmB,YAAYtrI,EAAE04I,YAAYh5I,GAAGsC,EAAEqnB,OAAOhmB,GAAGrB,EAAE6pI,YAAYrhJ,MAAMhE,GAAG,MAAMqK,EAAEmR,EAAEu1D,QAAQrnC,KAAKluB,GAAGpb,EAAEitE,GAAG+4E,WAAW/4E,GAAGc,GAAI,KAAKd,GAAG+3E,MAAM5pI,EAAE6xD,GAAG+4E,UAAUhmJ,EAAE,IAAIqb,GAAGqI,GAAE5K,GAAGwC,QAASlC,KAAI23I,GAAGt0I,EAAErD,GAAEN,EAAEM,IAAGotI,QAAQ1tI,EAAEM,IAAGmtI,QAAO,GAAK0J,GAAG72I,EAAEqD,GAAG4wD,GAAGk2E,OAAQ,IAAInqI,EAAE5H,GAAG0kJ,SAAS9P,KAAKhrI,IAAKxX,MAAMqG,IAAI,UAAUimJ,OAAO92I,IAAGiC,GAAEoB,GAAE7c,IAAG,MAAMkZ,GAAE,GAAGsC,GAAEhC,GAAEu4I,UAAU,IAAI1nJ,GAAEmP,GAAEurI,UAAUwM,GAAG/3I,EAAEA,GAAEkrI,MAAM1kJ,IAAGI,IAAE,EAAgI,OAArHob,GAAE/Y,OAAQ+W,IAAGA,GAAEs3I,KAAKC,SAASt1I,IAAiGC,QAASF,KAAItC,GAAEQ,KAAM,KAAK,MAAMR,GAAE7O,GAAEk5D,GAAE/nD,GAAEs1I,KAAKkB,SAASR,GAAGh4I,GAAEN,GAAElZ,IAAGwxJ,GAAGh4I,GAAE+pD,GAAEvjE,IAAGqK,GAAEmP,GAAEurI,UAAUxhF,GAAE,MAAMr5D,GAAE8mJ,GAAG93I,GAAEqqD,IAAGr5D,GAAE+pC,IAAIv4B,QAASlC,KAAI23I,GAAGnxJ,GAAEwZ,GAAE,GAAGA,GAAE,GAAGotI,QAAQptI,GAAE,GAAGmtI,QAAO,GAAKz8I,GAAEwoC,OAAOh3B,QAASlC,KAAI,GAAGA,GAAE03I,SAAS,MAAM,IAAIpqF,GAAEyvF,QAAQ,4CAA4C,CAAC,MAAMzyI,GAAE9jB,GAAEquJ,YAAY70I,GAAExX,MAAMwX,GAAEy6B,IAAIv4B,QAASlC,IAAG63I,GAAGvtI,GAAEtK,KAAKA,GAAEk5B,OAAOh3B,QAASlC,KAAIsK,GAAE0yI,YAAYh9I,GAAExX,MAAMqvJ,GAAGvtI,GAAEtK,GAAC,GAAKA,GAAEy3I,IAAIv1I,QAASlC,IAAGsK,GAAE0yI,YAAYh9I,IAAI,IAAK,MAAMgqD,GAAEhoD,GAAEs1I,KAAKsB,eAAe,GAAG5uF,IAAGhoD,GAAEs1I,KAAKC,QAAQt1I,GAAE,CAAC40I,GAAG72I,GAAExZ,IAAG6c,GAAE0xI,gBAAgB,CAAC,EAAEnuJ,IAAE,EAAG,IAAIqb,GAAE4oD,GAAEd,IAAGr5D,GAAE+mJ,IAAIv1I,QAASlC,KAAIiC,GAAEjC,IAAGN,GAAEM,GAAC,GAAKo3I,GAAGp3I,GAAE,CAACA,GAAEm3I,YAAY3wH,YAAY0wH,GAAGl3I,GAAE,CAACA,GAAEm3I,YAAY3wH,WAAWlc,GAAErI,IAAGA,IAAGoB,GAAEumC,OAAO3nC,GAAE,MAAMD,GAAEgpD,GAAEhB,IAAG,IAAIn5D,GAAEmR,IAAG4yD,KAAK,MAAM5uC,GAAEiuC,GAAGk2E,OAAQ,KAAK,GAAGt5I,GAAEm5D,GAAE3mD,IAAGxS,IAAGmR,GAAE,CAAC,IAAIhC,GAAE80D,GAAG5kC,KAAK,KAAK,MAAMr/B,GAAEvO,KAAK0d,GAAEA,GAAE,IAAK,OAAOnP,IAAG,mBAAmBA,GAAEvO,KAAK2xE,GAAGp6D,QAAQhJ,IAAGm1B,GAAE1jC,KAAM,IAAIuO,GAAG,IAAK6O,GAAEQ,KAAMoK,KAAiB,IAAStK,GAAEsK,KAApB1jB,KAAIkmD,MAAc9sC,GAA+FgC,GAAEs1I,KAAKkB,SAAjG,GAAG74I,MAAMqzC,MAAZ1oC,GAA6GA,IAA1FqiI,GAAGoJ,kBAAkB7zI,QAASD,IAAG,MAAMjC,GAAEiC,KAAIqI,GAAEqiI,GAAGsQ,kBAAkBh7I,MAAyBm1I,GAAGp3I,GAAE,CAACA,GAAEm3I,YAAY3wH,YAAY0wH,GAAGl3I,GAAE,CAACA,GAAEm3I,YAAY3wH,WAAWxmB,GAAE04I,YAAY14I,GAAEurI,WAAWloI,GAAEumC,OAAO5pC,GAAEurI,WAAW,GAA5oC,SAAS76I,KAAI,OAAOgP,GAAE/H,OAAOs8D,GAAGp6D,QAAQ6F,GAAEirD,OAAFjrD,CAAU2D,GAAEqpI,WAAWpqJ,KAAKoO,IAAGujE,GAAGp6D,SAAS,CAA8jCnJ,GAAIpO,KAAM,KAAK,IAAI0d,GAAEiC,GAAEA,GAAEzb,GAAE8jB,GAAEtK,GAAEnP,IAAGqR,QAASoI,KAAIrI,GAAE0qI,GAAGoJ,iBAAiB1tI,SAASiC,KAAIqtI,GAAG11I,GAAEqI,GAAEtK,GAAEsK,IAAG8iI,QAAQptI,GAAEsK,IAAG6iI,QAAO,EAAG,EAAI,CAA94C,CAAg5CntI,EAAEiC,EAAED,EAAEqB,GAAG7Y,MAAMqG,EAAC,EAAI,CAAg1IgsJ,CAAG78I,EAAExZ,GAAE,GAAGqK,EAAEmR,GAAE,GAAIA,IAAGtR,GAAEw3I,UAAUh2E,GAAI,KAAKrhE,EAAE,KAAK,MAAMwS,GAAErD,EAAE82I,OAAO5L,MAAMx6I,GAAE4N,OAAOoB,GAAE43B,GAAEj0B,GAAE0yI,kBAAkB,GAAGr2I,GAAE/H,OAAO,EAAE,IAAI,MAAMnR,GAAE6c,GAAE2wI,YAAY,KAAKhyI,GAAEtC,IAAG/H,OAAOqK,GAAE,GAAGA,GAAE,YAAYC,EAAE25I,WAAW,UAAU9E,OAAO92I,IAAGiC,GAAEoB,IAAGrD,GAAEu7I,MAAMt5I,GAAEs1I,QAAQ,GAAG,MAAM/wJ,GAAEwZ,GAAEurI,UAAUwM,GAAG,EAAE91I,GAAEoB,IAAGrD,GAAE04I,YAAYphH,GAAEr1B,GAAE8zI,iBAAiB,GAAGmB,GAAGl3I,GAAE,CAACA,GAAEy4I,YAAYnuI,GAAE9jB,IAAGA,GAAE,CAA7I,CAA+IwZ,EAAEqD,GAAE7c,KAAIwxJ,GAAGh4I,EAAEA,EAAEurI,UAAU/kJ,IAAG,SAASwZ,GAAEsK,IAAG,MAAMrI,GAAEu1I,GAAGO,GAAG,EAAE/3I,GAAEkrI,MAAM5gI,IAAGtK,GAAEurI,WAAW,QAAQtpI,GAAEw4B,IAAI9iC,QAAQsK,GAAEi3B,OAAOl2B,KAAMhD,IAAGA,GAAEy6B,IAAI9iC,QAAQqI,GAAEk5B,OAAOvhC,QAAS,CAA9H,CAAgIqI,EAAExZ,KAAIsO,QAAQ3H,KAAK,uHAAuH0pJ,GAAG72I,EAAExZ,GAAE,OAAU,CAAC,IAAIwb,GAAEq0B,GAAGn2B,KAAKF,GAAGqD,GAAE65I,gBAAgBhrF,GAAI5nD,KAAIrI,EAAEk6I,SAAQ,EAAGn8I,EAAE5H,GAAG,iBAAiB40I,KAAK1iI,GAAC,GAAKjH,GAAE85I,QAAQjrF,GAAI5nD,KAAItK,EAAE5H,GAAG,SAAS40I,KAAK1iI,GAAC,GAAK1jB,GAAG,UAAU8mJ,UAAU1tI,GAAE+2I,YAAYzsI,IAAGrI,KAAIi3I,GAAGl5I,KAAIiC,KAAI81D,IAAI8gF,GAAG74I,GAAEsK,IAAGi5C,IAAI,CAAC/6D,KAAKyZ,KAAIzX,MAAMkjE,GAAG,CAAvF,CAAyF1tD,EAAEytI,MAAM1jF,IAAGvjE,IAAE,EAAIwb,GAAC,GAAKxX,MAAOwV,IAAGA,IAAG,iBAAiBA,GAAExX,MAAMyZ,EAAEupI,eAAe,GAAGvpI,EAAEupI,iBAAiB12I,QAAQ3H,KAAK,uDAAuD48D,MAAKkK,GAAGnK,OAAO9pD,KAAK,OAAOi0D,GAAG21E,KAAK,CAACpjJ,UAAuBspH,UAApB,IAA8B77C,GAAGp6D,UAAUw/I,MAAM/2J,KAAKynE,MAAKznE,KAAM,KAAKod,IAAIuC,EAAEu5I,kBAAkB,GAAGvnF,GAAGp6D,QAAQu/I,GAAI,IAAIp5I,EAAE5H,GAAG2gE,MAAMi0E,KAAKhtI,EAAE67I,OAAQv5J,KAAM,SAASgoB,KAAI,GAAGrI,EAAEu5I,kBAAkB7jJ,OAAO,EAAE,CAAC,IAAI0L,GAAEpB,EAAEu5I,kBAAkBt8I,OAAO8vD,GAAGtB,IAAI,OAAOzrD,EAAEu5I,kBAAkB,GAAGvnF,GAAGp6D,QAAQu/I,GAAI,IAAI/1I,GAAErD,EAAE67I,OAAQv5J,KAAKgoB,GAAE,CAAC,KAAOglE,QAAS,KAAKrtE,EAAEu5I,kBAAkB,KAAKv5I,EAAE8pI,eAAc,IAAMzpJ,KAAM,IAAI0d,GAAIxV,MAAO8f,KAAIrI,EAAE6pI,YAAYxhI,GAAE,IAAIzZ,GAAGA,EAAEonB,OAAO,OAAU,CAAC,OAAOzxB,IAAIyb,EAAE05I,eAAe37I,EAAE2rI,SAASl2E,GAAGnrD,GAAC,GAAKglE,QAAS,KAAKrtE,EAAEkpI,cAAa,EAAGnpI,GAAE,EAAI,CAA8rdu6I,CAAGt6J,KAAK,CAAC0pJ,SAAS,MAAM3rI,EAAE/d,KAAKqpE,OAAOhhD,EAAE+rB,GAAGtP,QAAQ9kC,MAAM,GAAGqoB,GAAG,GAAG+rB,GAAG74B,OAAO8M,EAAE,GAAGroB,KAAKipJ,MAAM,CAAC,IAAIjpJ,KAAKipJ,MAAMryH,OAAO,OAAU,CAAC52B,KAAK60J,OAAO5L,MAAM,IAAI,CAAClrI,EAAEisI,eAAe,IAAIh4E,GAAI3pD,IAAItK,EAAEy7I,eAAenxI,IAAKtK,EAAE27I,cAAc,IAAI1nF,GAAI,CAAC3pD,EAAErI,KAAKjC,EAAE07I,WAAWz5I,GAAI,CAAC4W,QAAQ52B,KAAK0pJ,SAAS,MAAM3rI,EAAE/d,KAAKqpE,OAAOrpE,KAAKmiD,SAAS4nG,UAAS,EAAGhsI,EAAE8rI,YAAY,IAAIx+E,GAAE+5E,eAAernI,EAAE+rI,eAAe/rI,EAAE07I,WAAW17I,EAAE8rI,YAAY,CAAC1oF,SAAS,MAAMpjD,EAAEtB,UAAU/G,OAAO,EAAE2S,EAAEroB,KAAKqpE,OAAO,OAAO,IAAI2I,GAAI,CAAChyD,EAAEoB,KAAK,MAAM7c,EAAEA,KAAKvE,KAAK42B,QAAQ,IAAI7Y,EAAE/d,KAAKwrJ,MAAMC,UAAUiP,eAAe16J,KAAKuG,MAAMwX,EAAEkoI,UAAUh2E,GAAI,MAAK,UAAWw7E,UAAU1tI,EAAE+2I,YAAYzsI,IAAGrI,KAAIi3I,GAAGl5I,IAAIiC,KAAI81D,IAAI8gF,GAAG74I,EAAEsK,IAAG84C,OAAOnhD,IAAGzX,MAAMkjE,GAAG,EAApF,CAAsFzrE,KAAKwrJ,MAAMxrJ,KAAKuG,MAAMyZ,GAAE,GAAKjC,EAAEw4F,QAAQ26C,GAAG9vI,GAAGrD,EAAEw8I,UAAUv6J,KAAKi6J,gBAAgB,GAAGl8I,EAAE,MAAM,IAAIstD,GAAEqhF,gBAAgB,wCAAwCrkI,EAAEyhI,cAAczhI,EAAE2hI,eAAe3pJ,KAAKkE,GAAGA,GAAE,EAAI,CAAC42J,YAAY,OAAOn7J,KAAKipJ,KAAK,CAACQ,SAAS,OAAO,OAAOzpJ,KAAKipJ,KAAK,CAACmS,gBAAgB,MAAMr9I,EAAE/d,KAAKqpE,OAAOwgF,YAAY,OAAO9rI,GAAG,mBAAmBA,EAAExX,IAAI,CAAC80J,YAAY,OAAO,OAAOr7J,KAAKqpE,OAAOwgF,WAAW,CAACyR,oBAAoB,OAAOt7J,KAAKqpE,OAAOswF,UAAU,CAAC,UAAI5F,GAAS,OAAO1rI,GAAEroB,KAAKw2J,YAAYnwJ,IAAK0X,GAAG/d,KAAKw2J,WAAWz4I,GAAI,CAACg0I,cAAc,MAAMh0I,EAAE25I,GAAGl7I,MAAMxc,KAAKyc,WAAW,OAAOzc,KAAKu7J,aAAa/+I,MAAMxc,KAAK+d,EAAE,CAACw9I,aAAax9I,EAAEsK,EAAErI,GAAG,IAAIoB,EAAEwwD,GAAG+3E,MAAMvoI,GAAGA,EAAEspI,KAAK1qJ,OAAM,IAAK+d,EAAE+mB,QAAQ,OAAO1jB,EAAE,MAAM,MAAM7c,GAAE,IAAKwZ,EAAE+mB,QAAQ,KAAK,IAAIrnB,EAAEsC,EAAEhC,EAAEA,EAAE9Y,QAAQ,IAAI,IAAIA,QAAQ,IAAI,IAAI,IAAI,GAAG8a,EAAEsI,EAAEhiB,IAAK0X,KAAI,IAAIsK,GAAEtK,cAAa/d,KAAK+yJ,MAAMh1I,GAAExX,KAAKwX,GAAE,GAAG,iBAAiBsK,GAAE,MAAM,IAAI8/C,UAAU,mFAAmF,OAAO9/C,KAAK,KAAKtK,GAAGA,IAAIy4D,GAAG/4D,EAAE+4D,OAAO,CAAC,GAAG,MAAMz4D,GAAGA,GAAG24D,GAAG,MAAM,IAAIrL,GAAEqhF,gBAAgB,6BAA6B3uI,GAAGN,EAAEi5D,EAAE,CAAC,GAAGt1D,EAAE,CAAC,GAAGA,EAAE3H,OAAO+8D,IAAI/4D,IAAIi5D,GAAG,CAAC,IAAInyE,EAAE,MAAM,IAAI8mE,GAAEmwF,eAAe,0FAA0Fp6I,EAAE,IAAI,CAACA,GAAGrB,EAAEE,QAASlC,KAAI,GAAGqD,IAAG,IAAKA,EAAE4wI,WAAWltH,QAAQ/mB,IAAG,CAAC,IAAIxZ,EAAE,MAAM,IAAI8mE,GAAEmwF,eAAe,SAASz9I,GAAE,wCAAwCqD,EAAE,IAAI,IAAK7c,GAAG6c,IAAIA,EAAE0wI,SAAS1wI,EAAE,KAAK,CAAC,OAAOrD,IAAG,OAAOqD,EAAEA,EAAEg0D,SAAS,KAAM,CAAC/sD,GAAErI,MAAKA,GAAEjC,GAAC,GAAKy1D,GAAGz1D,GAAE,CAAC,MAAMnP,GAAE+oJ,GAAG1pH,KAAK,KAAKjuC,KAAKyd,EAAEsC,EAAEqB,EAAEpB,GAAG,OAAOoB,EAAEA,EAAEg0D,SAAS33D,EAAE7O,GAAE,QAAQgjE,GAAG+3E,MAAM32E,GAAGpB,GAAG+4E,UAAW,IAAI3qJ,KAAKo6J,WAAWxrJ,KAAK5O,KAAKo6J,WAAWxrJ,GAAE,CAACovE,MAAMjgE,GAAG,IAAIgC,GAAE/f,KAAKw2J,WAAWz4I,GAAG,MAAM,IAAIstD,GAAEowF,aAAc,SAAQ19I,oBAAoB,OAAO/d,KAAKw2J,WAAWz4I,EAAE,EAAE,MAAM29I,UAAuB7yF,OAApB,KAA4B,eAAeA,OAAOA,OAAO8yF,WAAW,eAAe,MAAMC,GAAG/7J,YAAYke,GAAG/d,KAAK67J,WAAW99I,CAAC,CAACnc,UAAUmc,EAAEsK,EAAErI,GAAG,OAAOhgB,KAAK67J,WAAW99I,GAAG,mBAAmBA,EAAEA,EAAE,CAACpb,KAAKob,EAAEtW,MAAM4gB,EAAEnV,SAAS8M,GAAG,CAAC,CAAC07I,MAAM,OAAO17J,IAAI,EAAE,SAASu2E,GAAGx4D,EAAEiC,GAAG,OAAOqI,GAAErI,GAAGC,QAASoI,IAAIywI,GAAG/6I,EAAEsK,KAAKtK,EAAEsK,GAAG,IAAIswI,IAAI34I,EAAEqI,GAAE,GAAKtK,CAAC,CAAqqB,IAAIo6D,GAAG,IAAIA,GAAG,CAACszE,UAAU1tI,GAAE0tI,WAAW1tI,GAAE+9I,cAAc/9I,GAAEg+I,iBAAiBh+I,GAAEi+I,YAAYlH,YAAY/2I,GAAE+2I,aAAa/2I,GAAEk+I,kBAAkB,OAAU9jF,GAAG,CAACszE,UAAU,KAAKqJ,YAAY,KAAK,CAAC,MAAM19E,GAAG0/E,GAAG,SAASr9E,GAAG17D,GAAG,IAAIsK,EAAEqwD,GAAG,IAAIA,IAAG,EAAGviE,GAAGk8I,eAAetH,KAAKhtI,EAAE,SAAS26D,GAAGrwD,CAAC,CAAC,CAACzZ,GAAEwoE,GAAG,IAAIpL,GAAE7K,OAAOpjD,GAAG,IAAIq5D,GAAGr5D,EAAE,CAACg5I,OAAO,KAAK51F,SAAS+6F,OAAOn+I,GAAG,IAAIq5D,GAAGr5D,EAAE,CAACg5I,OAAO,KAAK3gD,OAAO/1G,KAAM0d,IAAIA,EAAE6Y,SAAQ,IAAMruB,MAAM,sBAAuB,KAAI,GAAK4zJ,iBAAiBp+I,GAAG,IAAI,OAAO,UAAU0tI,UAAU1tI,EAAE+2I,YAAYzsI,IAAI,OAAO4uI,GAAGl5I,GAAGpG,QAAQC,QAAQmG,EAAEm5I,aAAa72J,KAAM0d,GAAGA,EAAE1X,IAAK0X,GAAGA,EAAExX,MAAOS,OAAQ+W,GAAGA,IAAI+3D,KAAO8gF,GAAG74I,EAAEsK,GAAG8jG,eAAegjC,aAAa,CAAxK,CAA0K/3E,GAAG5hC,cAAcn1C,KAAK0d,EAAE,OAAU,OAAOy1D,GAAG,IAAInI,GAAEk6E,WAAW,CAAC,EAAE6G,YAAYA,IAAI,SAASruI,GAAGqD,GAAEphB,KAAK+d,EAAE,EAAEq+I,kBAAkBr+I,GAAG6zD,GAAG+3E,MAAM32E,GAAGpB,GAAG+4E,UAAU5sI,GAAGA,IAAI67I,IAAIzC,GAAGkF,MAAM,SAASt+I,GAAG,OAAO,WAAW,IAAI,IAAIsK,EAAEmvI,GAAGz5I,EAAEvB,MAAMxc,KAAKyc,YAAY,OAAO4L,GAAG,mBAAmBA,EAAEhoB,KAAKgoB,EAAE2pD,GAAGp6D,QAAQyQ,EAAE,OAAOtK,GAAG,OAAOy1D,GAAGz1D,EAAE,CAAC,CAAC,EAAEu+I,MAAM,SAASv+I,EAAEsK,EAAErI,GAAG,IAAI,IAAIoB,EAAEo2I,GAAGz5I,EAAEvB,MAAMwD,EAAEqI,GAAG,KAAK,OAAOjH,GAAG,mBAAmBA,EAAE/gB,KAAK+gB,EAAE4wD,GAAGp6D,QAAQwJ,EAAE,OAAOrD,GAAG,OAAOy1D,GAAGz1D,EAAE,CAAC,EAAEw+I,mBAAmB,CAACz5J,IAAIA,IAAI8uE,GAAG+3E,OAAO,MAAM8I,QAAQ,SAAS10I,EAAEsK,GAAG,MAAMrI,EAAEgyD,GAAGp6D,QAAQ,mBAAmBmG,EAAEq5D,GAAGglF,kBAAkBr+I,GAAGA,GAAGypI,QAAQn/H,GAAG,KAAK,OAAOupD,GAAG+3E,MAAM/3E,GAAG+3E,MAAM8I,QAAQzyI,GAAGA,CAAC,EAAErI,QAAQq6D,GAAGzuE,MAAM,CAACT,IAAIA,IAAIgmE,GAAE5rD,IAAIa,IAAIusD,GAAEvsD,EAAE,UAAUA,EAAE,KAAI,EAAGi4D,GAAE,GAAIwmF,OAAO/tJ,GAAEq2I,OAAO1jI,GAAE1I,MAAM9J,GAAE6tJ,SAASj6I,GAAEk6I,OAAO/mF,GAAGx/D,GAAGA,GAAGwmJ,UAAhgE,SAAStmF,GAAGt4D,GAAG,IAAIiC,EAAEoB,GAAE,EAAG,MAAM7c,EAAE,IAAIq3J,GAAIr3J,IAAI,MAAMkZ,EAAEsrD,GAAEhrD,GAAG,IAAIgC,GAAE,EAAGnR,EAAE,CAAC,EAAEjK,GAAE,CAAC,EAAE,MAAMmjE,GAAE,CAAC,UAAI0D,GAAS,OAAOzrD,CAAC,EAAE5M,YAAYA,KAAK4M,GAAE,EAAG5J,GAAGk8I,eAAel/I,YAAY2oB,GAAC,GAAIv3B,EAAEsvE,OAAOtvE,EAAEsvE,MAAM/L,IAAG,IAAIr5D,IAAE,EAAGs5D,IAAE,EAAG,SAAShkC,KAAI,OAAO1b,GAAE1jB,IAAGoc,KAAMhD,IAAGnP,EAAEmP,KAAtgW,SAAS6+I,GAAG7+I,EAAEsK,GAAG,MAAMrI,EAAE+4I,GAAG1wI,GAAG,IAAIjH,EAAEpB,EAAErd,OAAO,GAAGye,EAAEyqD,KAAK,OAAM,EAAG,IAAItnE,EAAE6c,EAAE7O,MAAM,MAAMkL,EAAEs7I,GAAGh7I,GAAG,IAAIgC,EAAEtC,EAAE9a,KAAK4B,EAAE+Q,MAAM1G,EAAEmR,EAAExN,MAAM,MAAM6O,EAAEyqD,OAAO9rD,EAAE8rD,MAAM,CAAC,GAAGgL,GAAGjoE,EAAE0G,KAAK/Q,EAAEsrB,KAAK,GAAGgnD,GAAGjoE,EAAEihB,GAAGtrB,EAAE+Q,OAAO,EAAE,OAAM,EAAGuhE,GAAGtyE,EAAE+Q,KAAK1G,EAAE0G,MAAM,EAAE/Q,GAAG6c,EAAEpB,EAAErd,KAAKiM,EAAE0G,OAAO/C,MAAM3D,GAAGmR,EAAEtC,EAAE9a,KAAK4B,EAAE+Q,OAAO/C,KAAK,CAAC,OAAM,CAAE,CAAivVqqJ,CAAGhuJ,EAAEmP,IAAGpZ,GAAEoZ,KAAK,CAAC,MAAM+d,GAAE/d,KAAIw4D,GAAG3nE,EAAEmP,IAAGgmB,MAAKsR,IAAE,EAAGA,GAAEA,KAAK,GAAG5mC,IAAGsR,EAAE,OAAOnR,EAAE,CAAC,EAAE,MAAMyZ,GAAE,CAAC,EAAE7F,GAAE,SAAS6F,IAAG5K,GAAGk1D,KAAK,MAAM3yD,GAAEA,IAAI0yD,GAAG30D,EAAE,CAACs7I,OAAOhxI,GAAEshI,MAAM,OAAOvoI,GAAEwwD,GAAG+3E,MAAM32E,GAAGpB,GAAG+4E,UAAU3qI,IAAGA,KAAI,OAAOvC,GAAG2D,GAAE/gB,KAAKwyE,GAAGA,IAAIzxD,EAAC,CAAvH,CAAyHiH,IAAG0/C,KAAI5xD,GAAGi7I,GAAGt1H,IAAGisC,IAAE,GAAIt5D,IAAE,EAAGkJ,QAAQC,QAAQ4K,IAAGniB,KAAM0d,KAAIqD,GAAE,EAAGpB,EAAEjC,GAAEtP,IAAE,EAAGsR,IAAIgkB,KAAIsR,MAAKzmC,EAAE,CAAC,EAAEjK,GAAE0jB,GAAE9jB,EAAE5B,MAAM4B,EAAE5B,KAAKob,KAAC,EAAOA,KAAItP,IAAE,EAAG2S,GAAE,EAAG7c,EAAEkD,OAAOlD,EAAEkD,MAAMsW,IAAG+pD,GAAE30D,aAAY,EAAG,EAAG,OAAOkiC,KAAIyyB,KAAK,OAAOvjE,EAAEs4J,SAAS,IAAIz7I,EAAE7c,EAAE6oB,SAAS,IAAIpN,EAAEzb,CAAC,EAA02Cu4J,uBAAuBvmF,GAAGwmF,aAAaxnJ,GAAEynJ,aAAar1J,GAAEs1J,aAAa,SAASl/I,EAAEsK,GAAG,iBAAiBA,EAAE1gB,GAAEoW,EAAEsK,OAAE,GAAQ,WAAWA,GAAG,GAAGhiB,IAAI0qD,KAAK1oC,EAAG,SAASA,GAAG1gB,GAAEoW,EAAEsK,OAAE,EAAO,EAAG,EAAE60I,aAAat0F,GAAEu0F,UAAUrzF,GAAEszF,cAAclF,GAAGxM,IAAI70E,GAAGwmF,KAAK/wI,GAAEgxI,OAAOlpF,GAAG2iF,OAAO,GAAGwG,YAAYnpH,GAAGopH,SAAS3yF,GAAEr1B,aAAa2iC,GAAGslF,OAA7rvD,QAAusvDnI,QAAvsvD,QAAktvDvwH,MAAM,KAAK1+B,IAAK0X,GAAGq0F,SAASr0F,IAAKd,OAAQ,CAACc,EAAEsK,EAAErI,IAAIjC,EAAEsK,EAAE9K,KAAKwsC,IAAI,GAAG,EAAE/pC,MAAOo3D,GAAGsmF,OAAOvK,GAAG/7E,GAAG5hC,aAAas/G,oBAAiChM,cAApB,YAAuDjwE,iBAApB,MAAuC1iE,GAAGi7I,GAAIrzI,IAAI,IAAI26D,GAAG,CAAC,IAAIrwD,EAAEgsD,IAAIhsD,EAAElgB,SAASugJ,YAAY,eAAergI,EAAEs1I,gBAAgBtM,IAAG,GAAG,EAAGtzI,IAAIsK,EAAE,IAAIugI,YAAYyI,GAAG,CAACxI,OAAO9qI,IAAI26D,IAAG,EAAGowE,cAAczgI,GAAGqwD,IAAG,CAAE,IAAKG,iBAAiBw4E,GAAI,EAAExI,OAAO9qI,MAAM26D,IAAIe,GAAG17D,EAAC,IAAM,IAAI26D,IAAG,EAAG,UAAuBklF,iBAApB,IAAqC,CAAC,MAAM7/I,EAAE,IAAI6/I,iBAAiBvM,IAAI,mBAAmBtzI,EAAE8/I,OAAO9/I,EAAE8/I,QAAQ1nJ,GAAGi7I,GAAI/oI,IAAIqwD,IAAI36D,EAAE0kI,YAAYp6H,EAAC,GAAKtK,EAAEskI,UAAUtkI,IAAIA,EAAEtY,MAAMg0E,GAAG17D,EAAEtY,KAAI,CAAE,gBAA6B4yE,KAApB,YAA8Cw1C,UAApB,IAA8B,CAAC13G,GAAGi7I,GAAIrzI,IAAI,IAAI26D,YAAyBhuE,aAApB,KAAkCA,aAAa0B,QAAQilJ,GAAGjhI,KAAKC,UAAU,CAACytI,KAAKvgJ,KAAKs/C,SAASkhG,aAAahgJ,KAAK,iBAAiBs6D,KAAK2lF,SAAS,IAAI3lF,KAAK2lF,QAAQztE,SAAS,CAAC0tE,qBAAoB,KAAMh+I,QAASoI,GAAGA,EAAEo6H,YAAY,CAACrwI,KAAKi/I,GAAG0M,aAAahgJ,KAAM,OAAU,WAAyB86D,iBAApB,KAAsCA,iBAAiB,UAAW96D,IAAI,GAAGA,EAAEymB,MAAM6sH,GAAG,CAAC,MAAMhpI,EAAE+H,KAAKgG,MAAMrY,EAAEmgJ,UAAU71I,GAAGoxD,GAAGpxD,EAAE01I,aAAa,IAAK,MAAMhgJ,EAAEs6D,KAAKlwE,UAAU0lH,UAAUswC,cAAcpgJ,GAAGA,EAAE86D,iBAAiB,UAAW,UAAUpzE,KAAKsY,IAAIA,GAAGA,EAAE3L,OAAOi/I,IAAI53E,GAAG17D,EAAEggJ,aAAa,EAAG,CAAC/rF,GAAGi2E,gBAAgB,SAASlqI,EAAEsK,GAAG,IAAItK,GAAGA,aAAa4rD,IAAG5rD,aAAaoqD,WAAWpqD,aAAagoI,cAAchoI,EAAExX,OAAO+kE,GAAEvtD,EAAExX,MAAM,OAAOwX,EAAE,IAAIiC,EAAE,IAAIsrD,GAAEvtD,EAAExX,MAAM8hB,GAAGtK,EAAE4tB,QAAQ5tB,GAAG,MAAM,UAAUA,GAAG+pD,GAAE9nD,EAAE,QAAQ,CAACld,IAAI,WAAW,OAAO9C,KAAK6lJ,MAAMjzD,KAAK,IAAI5yE,CAAC,EAAEsqD,GAAExB,GAAEkN,2CCAplzE,MAAMzxE,WAAUwZ,KAAE,sBAAIqgJ,GAAqB,OAAOp+J,KAAKq+J,mBAAmB,CAAC,sBAAID,CAAmBrgJ,GAAG/d,KAAKq+J,oBAAoBtgJ,CAAC,CAACy7C,UAAU,OAAM,CAAE,CAAC35D,YAAYke,GAAGla,MAAMka,EAAE,6BAA6B,IAAI,CAACugJ,uBAAsB,IAAI,GAAG,GAAIt+J,KAAKq+J,oBAAoB,CAAC,CAAC14B,eAAe,MAAM,4BAA4B,CAACC,eAAe7nH,EAAExZ,EAAE8jB,GAAGtK,EAAEugJ,sBAAsBt+J,KAAKw5D,SAAS,CAAC+kG,cAAc,MAAM,CAACC,IAAI,CAAC,CAACj4J,KAAK,sBAAsB8yB,KAAK,EAAEjnB,KAAK,UAAUqsJ,OAAO,+GAA+G,CAACC,eAAe3gJ,EAAExZ,EAAE8jB,EAAErI,GAAGjC,EAAE4gJ,YAAY,sBAAsB3+J,KAAKq+J,oBAAoB,CAACx4B,cAAc9nH,GAAG,MAAM,WAAWA,EAAE,CAAC6gJ,uBAAuB,mQAAmQ,IAAI,6EC0EriCC,SAAc,0BArEP,MAAMC,WAAwBC,KAOjCl/J,YAAYm/J,EAAgBC,EAAO/uE,GAC/BrsF,MAAMm7J,EAAgB9uE,GACtBlwF,KAAKk/J,OAASD,CAClB,CAEAE,WAAa,CAIbC,eACwBv8J,IAAhB7C,KAAKk/J,QACLl/J,KAAKk/J,OAAOvnB,MAEpB,CAMAvS,UAAU//F,GACN,OAAOxhC,MAAMw7J,WAAW,CACpB94J,KAAM,kBACN+jD,WAAY,CAAC,CAAE/jD,KAAM,QAASgM,MAAOvS,KAAKk/J,OAAO34J,QAClD8+B,EACP,KAsCoD,EACxDw5H,OAAc,0BAlCP,MAAMS,WAAwBP,KAOjCl/J,YAAYm/J,EAAgBC,EAAO/uE,GAC/BrsF,MAAMm7J,EAAgB9uE,GACtBlwF,KAAKk/J,OAASD,CAClB,CAEAE,WAAa,CAIbC,eACwBv8J,IAAhB7C,KAAKk/J,QACLl/J,KAAKk/J,OAAOlR,MAEpB,CAMA5oB,UAAU//F,GACN,OAAOxhC,MAAMw7J,WAAW,CACpB94J,KAAM,kBACN+jD,WAAY,CAAC,CAAE/jD,KAAM,QAASgM,MAAOvS,KAAKk/J,OAAO34J,QAClD8+B,EACP,qBCwCJw5H,SAAc,iCApGP,MAAMU,WAA+BR,KAYxCl/J,YAAYm/J,EAAgB3xI,EAAQmyI,EAAcjtJ,EAAOktJ,EAAW,IAAMvvE,EAAWwvE,EAAqBC,IACtG97J,MAAMm7J,EAAgB9uE,GAItBlwF,KAAKy/J,SAAW,IAIhBz/J,KAAK4/J,8BAAgC,IAAIjhI,MACzC3+B,KAAKw/J,aAAeA,EACpBx/J,KAAKuS,MAAQA,EACbvS,KAAKy/J,SAAWA,EAChBz/J,KAAK0/J,oBAAsBA,EAC3B1/J,KAAK2/J,oBAAsBA,GAC3B3/J,KAAK6/J,QAAU7/J,KAAK8/J,iBAAmBzyI,CAC3C,CAEA8xI,WACIn/J,KAAK8/J,iBAAmB9/J,KAAK+/J,oBAAoB//J,KAAK8/J,iBAAkB9/J,KAAKw/J,cAC7Ex/J,KAAKggK,UAAYhgK,KAAKigK,aAAajgK,KAAKw/J,aAC5C,CAIAJ,UACI,MAAM9gD,EAAQt+G,KAAKkgK,eAAev7B,WAC5Br9F,EAAO,CACT,CACIkmG,MAAO,EACPj7H,MAAOvS,KAAK8/J,iBAAiB9/J,KAAKggK,YAEtC,CACIxyB,MAAO,IACPj7H,MAAOvS,KAAKuS,QAGpB,IAAI4tJ,EACJ,GAA0B,iBAAfngK,KAAKuS,MACZ4tJ,EAAWC,KAAU/yB,4BAEhBrtI,KAAKuS,iBAAiB8tJ,KAC3BF,EAAWC,KAAUE,6BAEhBtgK,KAAKuS,iBAAiBguJ,KAC3BJ,EAAWC,KAAUI,8BAEhBxgK,KAAKuS,iBAAiBkuJ,KAC3BN,EAAWC,KAAUM,+BAEhB1gK,KAAKuS,iBAAiBouJ,MAK3B,YADAC,KAAOC,KAAK,oDAAsD7gK,KAAKuS,MAAQ,KAH/E4tJ,EAAWC,KAAUU,wBAKzB,CACA,MAAMlwB,EAAY,IAAIwvB,KAAU,yBAA0BpgK,KAAKggK,UAAkB,IAAShgK,KAAKy/J,SAArB,IAAgCU,EAAUC,KAAU9yB,4BAC9HsD,EAAUrD,QAAQjmG,GACdtnC,KAAK0/J,qBACLphD,EAAMyiD,cAAc/gK,KAAK8/J,kBAQ7BxhD,EAAMsvB,qBAAqB5tI,KAAK8/J,iBAAkB,CAAClvB,GAAY,EAAG,KAAK,EAAO,EAN9DrlG,KACZvrC,KAAK4/J,8BAA8BoB,gBAAgBhhK,MAC/CA,KAAK2/J,qBACL3/J,KAAK2/J,qBAAoB,EAIrC,CAMAv6B,UAAU//F,GACN,OAAOxhC,MAAMw7J,WAAW,CACpB94J,KAAM,yBACN+jD,WAAY,CACRy0G,KAAOkC,mBAAmBjhK,KAAK6/J,SAC/B,CAAEt5J,KAAM,eAAgBgM,MAAOvS,KAAKw/J,cACpC,CAAEj5J,KAAM,QAASgM,MAAOwsJ,KAAOmC,wBAAwBlhK,KAAKuS,QAC5D,CAAEhM,KAAM,WAAYgM,MAAOwsJ,KAAOmC,wBAAwBlhK,KAAKy/J,WAC/D,CAAEl5J,KAAM,sBAAuBgM,MAAOwsJ,KAAOmC,wBAAwBlhK,KAAK0/J,uBAAwB,KAEvGr6H,EACP,kKCpGG,MAAM87H,GAKTthK,YAAYy+G,GACRt+G,KAAKohK,SAAW,KAChBphK,KAAKqhK,YAAa,EAIlBrhK,KAAKisI,WAAY,EAIjBjsI,KAAKiiE,KAAO,GACZq8C,EAAQA,GAASgjD,KAAYC,oBAI7BvhK,KAAKq4I,OAAS/5B,EACdt+G,KAAKwhK,oBAAsB,IAAIC,KAAQ,EAAG,EAAG,EAAG,IACpD,CAEAC,kCACI,UAAWC,KAAQ3hK,KAAKq4I,OAAOnH,OACvBywB,EAAKC,8BAAgC5hK,MACrC2hK,EAAKD,iCAGjB,CAMAzzH,KAAKlyB,EAAQ8lJ,GAAe,GACxB,IAAK7hK,KAAKohK,WAAaphK,KAAKqhK,WACxB,OAEJ,MAAMhoI,EAAOr5B,KAAKohK,SAASr8B,UAC3BhpH,EAAO+lJ,UAAU,0CAA2C,EAAMzoI,EAAKoB,MAAO,EAAMpB,EAAKqB,QACzF3e,EAAOgmJ,SAAS,2BAA4B/hK,KAAKiiE,MAC5C4/F,GACD9lJ,EAAOimJ,WAAW,+BAAgChiK,KAAKwhK,qBAE3DzlJ,EAAO8vH,WAAW,8BAA+B7rI,KAAKohK,SAC1D,CAKAh+J,QACI,MAAMshB,EAAO,IAAIy8I,GAA4BnhK,KAAKq4I,QAClD,OAAAr4I,KAAKiiK,OAAOv9I,GACLA,CACX,CAQAw9I,uBAAuBC,EAAYC,EAAUnkF,EAAS,EAAGokF,EAAuB,IAC5EriK,KAAKwhK,oBAAsB,IAAIC,KAAQU,EAAYC,EAAUnkF,EAAQokF,EACzE,CAKA5gH,QAAQ6gH,GACAA,GACAtiK,KAAKohK,UAAU3/G,SAEvB,CAKAkkF,eACI,MAAO,6BACX,CAKAs8B,OAAOM,GACHC,KAAoBC,MAAM,IAAMF,EAAQviK,KAC5C,CAKAolI,YACI,OAAOo9B,KAAoBE,UAAU1iK,KACzC,CAOAo2B,MAAM6R,EAAQq2E,EAAOqkD,GACjBH,KAAoBI,MAAM,IAAM5iK,KAAMioC,EAAQq2E,EAAOqkD,EACzD,GAEJE,SAAW,IACPC,UAAmB,EACnBC,OAAiB,oCAClB5B,GAA4B58H,UAAW,eAAW,IAAM,EAC3Ds+H,OAAW,IACPz9B,UAAU,EACV29B,OAAiB,oCAClB5B,GAA4B58H,UAAW,iBAAa,IAAM,EAC7Ds+H,OAAW,IACPz9B,UACD+7B,GAA4B58H,UAAW,2BAAuB,IAAM,EACvEs+H,OAAW,IACPz9B,UACD+7B,GAA4B58H,UAAW,YAAQ,6HC5H3C,MAAMy+H,GAIT,YAAIC,GACA,OAAOjjK,KAAKkjK,SAChB,CACA,YAAID,CAAS1wJ,GACTvS,KAAKmjK,aAAa5wJ,EACtB,CAeA1S,YAAY8hK,EAAMyB,EAAM72I,GAIpBvsB,KAAKqjK,eAAiB9C,KAAQh/B,OAI9BvhI,KAAKsjK,mBAAqB/C,KAAQh/B,OAIlCvhI,KAAKujK,sBAAwBhD,KAAQh/B,OAIrCvhI,KAAKwjK,UAAY,EAIjBxjK,KAAKyjK,YAAc,EACnBzjK,KAAK0jK,WAAa/C,KAAWzzB,WAC7BltI,KAAK2jK,UAAYlD,KAAOvzB,WACxBltI,KAAK4jK,UAAYrmJ,KAAKgrH,GACtBvoI,KAAKkjK,UAAY3lJ,KAAKgrH,GACtBvoI,KAAK6jK,oBAAqB,EAC1B7jK,KAAK8jK,UAAYvD,KAAQhhC,QACzBv/H,KAAK+jK,WAAY,EACjB/jK,KAAKgkK,YAAc,EACnBhkK,KAAKikK,uBAAwB,EAC7BjkK,KAAKkkK,OAASd,EACd,MAAMe,EAAQf,EAAKgB,YACnB,IAAKD,EAGD,OAFAnkK,KAAKikK,uBAAwB,OAC7BrD,KAAOt7I,MAAM,6DAIjB,GADAtlB,KAAKqkK,OAASF,EACsB,IAAhCnkK,KAAKkkK,OAAOI,SAAS5uJ,SAAiB1V,KAAKkkK,OAAOxuJ,OAGlD,OAFA1V,KAAKikK,uBAAwB,OAC7BrD,KAAOt7I,MAAM,wFAGjBtlB,KAAK2hK,KAAOA,EACZyB,EAAKmB,cAAcC,0BACnB,MAAMC,EAAUrB,EAAKsB,cAWrB,GAVItB,EAAKuB,oBAAoBC,cAAgB,IACzC5kK,KAAK6jK,oBAAqB,EAC1B7jK,KAAK8jK,UAAUlxJ,EAAI,EACnB5S,KAAK8jK,UAAUthJ,EAAI,EACnBxiB,KAAK8jK,UAAU55F,GAAI,EACfu6F,EAAQ7xJ,EAAI6xJ,EAAQjiJ,GAAKiiJ,EAAQ7xJ,EAAI6xJ,EAAQv6F,IAC7ClqE,KAAKgkK,YAAwB,GAAVzmJ,KAAKgrH,GACxBvoI,KAAK8jK,UAAU55F,EAAI,IAGvBlqE,KAAKqkK,OAAO3uJ,QAAU1V,KAAKkkK,OAAOxuJ,OAAQ,CAC1C,MAAMmvJ,EAAa7kK,KAAKqkK,OAAOS,WACzBC,EAAa/kK,KAAKkkK,OAAOY,WAC/B9kK,KAAKglK,aAAehlK,KAAKqkK,OAAO3uJ,OAASmvJ,EAAWriJ,EAAIxiB,KAAK2hK,KAAKn6B,QAAQhlH,EAC1ExiB,KAAKilK,aAAejlK,KAAKkkK,OAAOxuJ,OAASqvJ,EAAWviJ,EAAIxiB,KAAK2hK,KAAKn6B,QAAQhlH,CAC9E,SACSxiB,KAAKkkK,OAAOI,SAAS,GAAI,CAC9B3C,EAAK56B,oBAAmB,GACxB,MAAMm+B,EAAOllK,KAAKkkK,OAAOI,SAAS,GAAGa,oBAAoBxD,GACnDyD,EAAOplK,KAAKkkK,OAAOiB,oBAAoBxD,GACvC0D,GAAOrlK,KAAKqkK,OAAOc,oBAAoBxD,GAC7C3hK,KAAKilK,aAAe1E,KAAQ+E,SAASJ,EAAME,GAC3CplK,KAAKglK,aAAezE,KAAQ+E,SAASF,EAAMC,GAC/C,KACK,CACD1D,EAAK56B,oBAAmB,GACxB,MAAMg+B,EAAa/kK,KAAKkkK,OAAOY,WAC/B9kK,KAAKilK,aAAejlK,KAAKkkK,OAAOxuJ,OAASqvJ,EAAWviJ,EAAIxiB,KAAK2hK,KAAKn6B,QAAQhlH,EAC1E,MAAM4iJ,EAAOplK,KAAKkkK,OAAOiB,oBAAoBxD,GACvC0D,GAAOrlK,KAAKqkK,OAAOc,oBAAoBxD,GAC7C3hK,KAAKglK,aAAezE,KAAQ+E,SAASF,EAAMC,GAC/C,CACArlK,KAAKqkK,OAAOkB,uBAAuB,EAAqB5D,EAAM3hK,KAAK2jK,WACnE3jK,KAAKijK,SAAW1lJ,KAAKgrH,GACjBh8G,IACIA,EAAQi5I,aACRxlK,KAAKwlK,WAAaj5I,EAAQi5I,WAC1BxlK,KAAKwlK,WAAWz+B,oBAAmB,IAEnCx6G,EAAQk5I,gBACRzlK,KAAKylK,eAAiBl5I,EAAQk5I,eAC9BzlK,KAAKylK,eAAe1+B,oBAAmB,IAElCx6G,EAAQm5I,eACb1lK,KAAK0lK,eAAiBn5I,EAAQm5I,eAEzB1lK,KAAKqkK,OAAOD,cACjBpkK,KAAK0lK,eAAiB1lK,KAAKqkK,OAAOD,aAElC73I,EAAQg3I,uBACRvjK,KAAKujK,sBAAsBoC,SAASp5I,EAAQg3I,uBAE5Ch3I,EAAQi3I,YACRxjK,KAAKwjK,UAAYj3I,EAAQi3I,WAEzBj3I,EAAQq5I,UACR5lK,KAAK8jK,UAAU6B,SAASp5I,EAAQq5I,UAEhCr5I,EAAQ02I,WACRjjK,KAAKijK,SAAW12I,EAAQ02I,UAExB12I,EAAQk3I,cACRzjK,KAAKyjK,YAAcl3I,EAAQk3I,aAGvC,CACAN,aAAa0C,GACLA,EAAM,IACNA,EAAM,IAENA,EAAMtoJ,KAAKgrH,IAAa1lI,MAAPgjK,KACjBA,EAAMtoJ,KAAKgrH,IAEfvoI,KAAKkjK,UAAY2C,EACjB,MAAMj3J,EAAI5O,KAAKglK,aACTzvJ,EAAIvV,KAAKilK,aACfjlK,KAAK8lK,UAAYvoJ,KAAKmkH,KAAK9yH,EAAIA,EAAI2G,EAAIA,EAAI,EAAI3G,EAAI2G,EAAIgI,KAAKirH,IAAIq9B,GACpE,CAIA/iG,SACI,GAAI9iE,KAAKikK,sBACL,OAEJ,MAAM52I,EAASrtB,KAAKqjK,eACd0C,EAAa/lK,KAAKsjK,mBAClB0C,EAAOhD,GAAiBiD,SAAS,GACjCC,EAAOlD,GAAiBiD,SAAS,GACnCjmK,KAAKwlK,YACLn4I,EAAOs4I,SAAS3lK,KAAKwlK,WAAWL,uBAEhCnlK,KAAK0lK,eACL1lK,KAAK0lK,eAAeS,kCAAkCnmK,KAAKujK,sBAAuBvjK,KAAK2hK,KAAMoE,GAExF/lK,KAAKylK,gBACVlF,KAAQ6F,0BAA0BpmK,KAAKujK,sBAAuBvjK,KAAKylK,eAAe9uB,iBAAkBovB,GAExG,MAAMtB,EAAUzB,GAAiBqD,SAAS,GACpCC,EAAQtD,GAAiBqD,SAAS,GAClCE,EAAQvD,GAAiBqD,SAAS,GAClCG,GAAQxD,GAAiBqD,SAAS,GAClCI,GAASzD,GAAiBqD,SAAS,GACnCK,GAAU1D,GAAiB2D,SACjC3mK,KAAKqkK,OAAOuC,yBAAyB5mK,KAAK2hK,KAAM8C,GAChDsB,EAAWc,cAAcpC,EAASgC,IAClB,GAAZA,GAAO7zJ,GAAsB,GAAZ6zJ,GAAOjkJ,GAAsB,GAAZikJ,GAAOv8F,EACzCu8F,GAAOjkJ,EAAI,EAGXikJ,GAAO/4D,YAEXrgF,EAAOw5I,cAAcpC,EAAS+B,IAC9BA,GAAM94D,YACN6yD,KAAQuG,WAAWN,GAAOC,GAAQH,GAClCA,EAAM54D,YACN6yD,KAAQuG,WAAWN,GAAOF,EAAOC,GACjCA,EAAM74D,YACN+yD,KAAOsG,iBAAiBR,EAAOC,GAAOF,EAAON,GAC7C,MAAMp3J,GAAI5O,KAAKglK,aACTzvJ,GAAIvV,KAAKilK,aACf,IAAIx2J,GAAI8xJ,KAAQ+E,SAASb,EAASp3I,GAC9BrtB,KAAK8lK,UAAY,IACjBr3J,GAAI8O,KAAKi/B,IAAIx8C,KAAK8lK,UAAWr3J,KAEjC,IAAIu4J,IAASzxJ,GAAIA,GAAI9G,GAAIA,GAAIG,GAAIA,KAAM,EAAI2G,GAAI9G,IAC3Cw4J,IAASx4J,GAAIA,GAAIG,GAAIA,GAAI2G,GAAIA,KAAM,EAAI9G,GAAIG,IAC3Co4J,GAAQ,IACRA,GAAQ,GAERC,GAAQ,IACRA,GAAQ,GAERD,IAAQ,IACRA,IAAQ,GAERC,IAAQ,IACRA,IAAQ,GAEZ,MAAMC,GAAO3pJ,KAAK4pJ,KAAKH,IACjBI,GAAO7pJ,KAAK4pJ,KAAKF,IACvB,IAAII,IAAQH,GAAOE,GACnB,GAAIpnK,KAAK6jK,mBACLpD,KAAO6G,0BAA0B,EAAG,EAAGtnK,KAAKgkK,YAAakC,GACzDA,EAAKqB,cAAcvB,EAAMA,GACzBvF,KAAO+G,kBAAkBxnK,KAAK8jK,UAAWsD,GAAMlB,GAC/CA,EAAKqB,cAAcvB,EAAMA,OAExB,CACD,MAAMyB,GAAUzE,GAAiBqD,SAAS,GAC1CoB,GAAQ9B,SAAS3lK,KAAK8jK,WACtB2D,GAAQ70J,IAAK,EACb6tJ,KAAO+G,kBAAkBC,IAAUL,GAAMlB,GACzCA,EAAKqB,cAAcvB,EAAMA,EAC7B,CACIhmK,KAAKwjK,YACL/C,KAAO+G,kBAAkBhB,GAAOxmK,KAAKwjK,UAAW0C,GAChDF,EAAKuB,cAAcrB,EAAMF,IAEzBhmK,KAAKqkK,SACDrkK,KAAKyjK,YAAc,GACdzjK,KAAK+jK,WACNpD,KAAW+G,wBAAwB1nK,KAAK2jK,UAAW3jK,KAAK0jK,YAE5D/C,KAAW+G,wBAAwB1B,EAAMU,IACzC/F,KAAWgH,WAAW3nK,KAAK0jK,WAAYgD,GAAS1mK,KAAKyjK,YAAazjK,KAAK0jK,YACvE2D,GAAOrnK,KAAK4jK,WAAa,EAAM5jK,KAAKyjK,aAAe4D,GAAOrnK,KAAKyjK,YAC/DzjK,KAAKqkK,OAAOuD,sBAAsB5nK,KAAK0jK,WAAY,EAAqB1jK,KAAK2hK,MAC7E3hK,KAAK+jK,WAAY,IAGjB/jK,KAAKqkK,OAAOwD,kBAAkB7B,EAAM,EAAqBhmK,KAAK2hK,MAC9D3hK,KAAK2jK,UAAUgC,SAASK,GACxBhmK,KAAK+jK,WAAY,GAErB/jK,KAAK8nK,+BAA+B9nK,KAAKqkK,SAE7CrkK,KAAKkkK,OAAO6D,aAAa/nK,KAAK8jK,UAAWuD,GAAM,GAC/CrnK,KAAK8nK,+BAA+B9nK,KAAKkkK,QACzClkK,KAAK4jK,UAAYyD,EACrB,CACAS,+BAA+B1E,GACvBA,EAAK4E,uBACA5E,EAAK4E,qBAAqBC,qBAC3B7E,EAAK4E,qBAAqBC,mBAAqB,IAAItH,MAEvDyC,EAAK8E,2BAA2B,EAAqB,KAAM9E,EAAK4E,qBAAqBC,oBAE7F,EAEJjF,GAAiBqD,SAAW,CAAC9F,KAAQh/B,OAAQg/B,KAAQh/B,OAAQg/B,KAAQh/B,OAAQg/B,KAAQh/B,OAAQg/B,KAAQh/B,OAAQg/B,KAAQh/B,QACrHyhC,GAAiB2D,SAAWhG,KAAWzzB,WACvC81B,GAAiBiD,SAAW,CAACxF,KAAOvzB,WAAYuzB,KAAOvzB,wCCrQhD,MAAMi7B,GAIT,UAAIC,GACA,OAAOpoK,KAAKqoK,OAChB,CACA,UAAID,CAAO71J,GACPvS,KAAKqoK,QAAU91J,EACfvS,KAAKsoK,WAAa/qJ,KAAKkrH,IAAIl2H,GAC3BvS,KAAKuoK,WAAahrJ,KAAKirH,IAAIj2H,GACP,MAAhBvS,KAAKwoK,UACLxoK,KAAKyoK,kBAAqE,GAAjDzoK,KAAK0oK,cAAc1oK,KAAKqoK,QAASroK,KAAKwoK,SAAiBxoK,KAAKqoK,QACrFroK,KAAK2oK,UAAY3oK,KAAKwoK,QAAUxoK,KAAKqoK,QAE7C,CAIA,UAAIO,GACA,OAAO5oK,KAAKwoK,OAChB,CACA,UAAII,CAAOr2J,GACPvS,KAAKwoK,QAAUj2J,EACfvS,KAAK6oK,WAAatrJ,KAAKkrH,IAAIl2H,GAC3BvS,KAAK8oK,WAAavrJ,KAAKirH,IAAIj2H,GACP,MAAhBvS,KAAKqoK,UACLroK,KAAKyoK,kBAAqE,GAAjDzoK,KAAK0oK,cAAc1oK,KAAKqoK,QAASroK,KAAKwoK,SAAiBxoK,KAAKqoK,QACrFroK,KAAK2oK,UAAY3oK,KAAKwoK,QAAUxoK,KAAKqoK,QAE7C,CAIA,YAAIU,GACA,OAAO/oK,KAAKgpK,SAChB,CACA,YAAID,CAASx2J,GACTvS,KAAKgpK,UAAYz2J,EACjBvS,KAAKipK,aAAe1rJ,KAAK2rJ,IAAI32J,EACjC,CAIA,YAAI42J,GACA,OAAOnpK,KAAKopK,SAChB,CACA,YAAID,CAAS52J,GACTvS,KAAKopK,UAAY72J,EACjBvS,KAAKqpK,aAAe9rJ,KAAK2rJ,IAAI32J,EACjC,CAgCA1S,YAAY8hK,EAAMyB,EAAM/1I,EAAQd,GAoC5B,GAhCAvsB,KAAKymK,OAASlG,KAAQ+I,KAItBtpK,KAAKupK,YAAc,EAInBvpK,KAAKwpK,UAAY,EAIjBxpK,KAAKypK,YAAc,EAInBzpK,KAAK0pK,WAAa,EAIlB1pK,KAAKyjK,YAAc,EACnBzjK,KAAK2pK,UAAYhJ,KAAWzzB,WAC5BltI,KAAK+jK,WAAY,EACjB/jK,KAAK4pK,oBAAqB,EAC1B5pK,KAAK6pK,YAActJ,KAAQuJ,UAI3B9pK,KAAK+pK,wBAAyB,EAC9B/pK,KAAK2hK,KAAOA,EACZ3hK,KAAKojK,KAAOA,EACZpjK,KAAKqtB,OAASA,EACVd,EAAS,CA2CT,GA1CIA,EAAQi9I,YACRxpK,KAAKwpK,UAAYj9I,EAAQi9I,WAEzBj9I,EAAQk9I,cACRzpK,KAAKypK,YAAcl9I,EAAQk9I,aAE3Bl9I,EAAQm9I,aACR1pK,KAAK0pK,WAAan9I,EAAQm9I,YAG1B1pK,KAAK4oK,OADa,MAAlBr8I,EAAQq8I,OACMr8I,EAAQq8I,OAGRrrJ,KAAKgrH,GAGnBvoI,KAAKooK,OADa,MAAlB77I,EAAQ67I,OACM77I,EAAQ67I,QAGP7qJ,KAAKgrH,GAGpBvoI,KAAKmpK,SADe,MAApB58I,EAAQ48I,SACQ58I,EAAQ48I,SAGR5rJ,KAAKgrH,GAGrBvoI,KAAK+oK,SADe,MAApBx8I,EAAQw8I,SACQx8I,EAAQw8I,UAGPxrJ,KAAKgrH,GAEC,MAAvBh8G,EAAQk3I,cACRzjK,KAAKyjK,YAAcl3I,EAAQk3I,aAET,MAAlBl3I,EAAQk6I,SACRzmK,KAAKymK,OAASl6I,EAAQk6I,QAEC,MAAvBl6I,EAAQg9I,cACRvpK,KAAKupK,YAAch9I,EAAQg9I,aAER,MAAnBh9I,EAAQy9I,SAAwC,MAArBz9I,EAAQ09I,UAAmB,CACtD,IAAIC,EAAaC,MAAK1/F,EAClB2/F,EAAeD,MAAK9+F,EACD,MAAnB9+C,EAAQy9I,UACRE,EAAa39I,EAAQy9I,QAAQ5mK,QAC7B8mK,EAAWx8D,aAEU,MAArBnhF,EAAQ09I,YACRG,EAAe79I,EAAQ09I,UAAU7mK,QACjCgnK,EAAa18D,aAEjB,MAAM28D,EAAc9J,KAAQhqB,MAAM6zB,EAAcF,GAChDlqK,KAAKsqK,mBAAqB7J,KAAOvzB,WACjCuzB,KAAOsG,iBAAiBqD,EAAcF,EAAYG,EAAarqK,KAAKsqK,oBACpEtqK,KAAKuqK,sBAAwBvqK,KAAKsqK,mBAAmBlnK,QACrDpD,KAAKsqK,mBAAmBxzB,QAC5B,MACuCj0I,IAAnC0pB,EAAQw9I,yBACR/pK,KAAK+pK,uBAAyBx9I,EAAQw9I,uBAE9C,EACK3G,EAAKgB,aAAmC,GAApBpkK,KAAKupK,cAC1BvpK,KAAKupK,YAAc,EAE3B,CAIAzmG,SAEI,GAAI9iE,KAAKyjK,YAAc,IAAMzjK,KAAK4pK,mBAE9B,YADA5pK,KAAK4pK,oBAAqB,GAG9B,MAAMxG,EAAOpjK,KAAKojK,KACZqB,EAAU0D,GAAmB9B,SAAS,GAC5CjD,EAAKwD,yBAAyB5mK,KAAK2hK,KAAM8C,GACzC,IAAIp3I,EAASrtB,KAAKqtB,OAClB,MAAMm9I,EAAWrC,GAAmBlC,SAAS,GACvCwE,EAAWtC,GAAmBlC,SAAS,GACvCtE,EAAO3hK,KAAK2hK,KACZ+I,EAAatH,EAAKgB,YAClBqC,GAAS0B,GAAmB9B,SAAS,GAC3CI,GAAOd,SAAS3lK,KAAKymK,QACG,GAApBzmK,KAAKupK,aAAqCmB,GACtC1qK,KAAKsqK,oBACL/J,KAAQ6F,0BAA0BK,GAAQzmK,KAAKuqK,sBAAuB9D,IAE1EiE,EAAWC,kBAAkBlE,GAAQzmK,KAAK2hK,KAAM8E,KAEvB,GAApBzmK,KAAKupK,cACV5H,EAAKgJ,kBAAkBlE,GAAQA,KACT,GAAlB9E,EAAKn6B,QAAQ50H,GAA4B,GAAlB+uJ,EAAKn6B,QAAQhlH,GAA4B,GAAlBm/I,EAAKn6B,QAAQt9D,IAC3Du8F,GAAO/4D,aAGf,IAAIk9D,IAAW,EACXC,IAAa,EAOjB,IANI7qK,KAAKwoK,SAAWjrJ,KAAKgrH,IAAMvoI,KAAKqoK,UAAY9qJ,KAAKgrH,MACjDqiC,IAAW,IAEX5qK,KAAKopK,WAAa7rJ,KAAKgrH,IAAMvoI,KAAKgpK,YAAczrJ,KAAKgrH,MACrDsiC,IAAa,GAEbD,IAAYC,GAAY,CACxB,MAAMC,GAAW3C,GAAmBlC,SAAS,GACvC8E,GAAc5C,GAAmBlC,SAAS,GAChD,GAAwB,GAApBjmK,KAAKupK,aAAiD,GAAZ9C,GAAOjkJ,GAAUkoJ,EAC3DA,EAAWnF,uBAAuB,EAAqBvlK,KAAK2hK,KAAMmJ,SAAQ,GAEjD,GAApB9qK,KAAKupK,aAAkD,GAAZ9C,GAAOjkJ,GAAWkoJ,EAGjE,CACD,IAAIM,GAAc7C,GAAmB9B,SAAS,GAC9C2E,GAAYrF,SAAS3lK,KAAK6pK,aACtB7pK,KAAKsqK,oBACL/J,KAAQ6F,0BAA0B4E,GAAahrK,KAAKuqK,sBAAuBS,IAE3EN,EACAA,EAAWC,kBAAkBK,GAAahrK,KAAK2hK,KAAMqJ,IAGrDrJ,EAAKgJ,kBAAkBK,GAAaA,IAExC,MAAMC,GAAY1K,KAAQhqB,MAAMkwB,GAAQuE,IACxCC,GAAUv9D,YACVs9D,GAAczK,KAAQhqB,MAAM00B,GAAWxE,IACvChG,KAAOsG,iBAAiBkE,GAAWxE,GAAQuE,GAAaF,GAC5D,MAlBIA,GAASnF,SAAShE,EAAKhrB,kBAmB3Bm0B,GAASI,YAAYH,IACrB,IAAII,GAAQ,KACZ,GAAIN,GAAY,CACZ,MAAMO,GAAcjD,GAAmB9B,SAAS,GAChDh5I,EAAOw5I,cAAcpC,EAAS2G,IAC9B7K,KAAQ6F,0BAA0BgF,GAAaL,GAAaK,IAC5DD,GAAQ5tJ,KAAKmkH,KAAK0pC,GAAYx4J,EAAIw4J,GAAYx4J,EAAIw4J,GAAYlhG,EAAIkhG,GAAYlhG,GAC9E,MAAMmhG,GAAQ9tJ,KAAKs5H,MAAMu0B,GAAY5oJ,EAAG2oJ,IACxC,IAAIG,GAAWD,GACXA,GAAQrrK,KAAKopK,WACbgC,GAAY5oJ,EAAIxiB,KAAKqpK,aAAe8B,GACpCG,GAAWtrK,KAAKopK,WAEXiC,GAAQrrK,KAAKgpK,YAClBoC,GAAY5oJ,EAAIxiB,KAAKipK,aAAekC,GACpCG,GAAWtrK,KAAKgpK,WAEhBqC,IAASC,KACT/K,KAAQ6F,0BAA0BgF,GAAaN,GAAUM,IACzDA,GAAY3oC,WAAWgiC,GACvBp3I,EAAS+9I,GAEjB,CACA,GAAIR,GAAU,CACV,MAAMQ,GAAcjD,GAAmB9B,SAAS,GAChDh5I,EAAOw5I,cAAcpC,EAAS2G,IAC9B7K,KAAQ6F,0BAA0BgF,GAAaL,GAAaK,IAC5D,MAAMG,GAAMhuJ,KAAKs5H,MAAMu0B,GAAYx4J,EAAGw4J,GAAYlhG,GAC5CshG,GAAWxrK,KAAK+pK,uBAAyBxsJ,KAAKkkH,IAAI8pC,IAAOA,GAC/D,IAAIE,GAASF,GAoCb,IAnCIC,GAAWxrK,KAAKwoK,SAAWgD,GAAWxrK,KAAKqoK,WAC9B,MAAT8C,KACAA,GAAQ5tJ,KAAKmkH,KAAK0pC,GAAYx4J,EAAIw4J,GAAYx4J,EAAIw4J,GAAYlhG,EAAIkhG,GAAYlhG,IAE9ElqE,KAAK2oK,UAAYprJ,KAAKgrH,GAClBvoI,KAAK0rK,gBAAgBH,GAAKvrK,KAAKwoK,QAASxoK,KAAKyoK,oBAC7C2C,GAAYlhG,EAAIlqE,KAAK8oK,WAAaqC,GAClCC,GAAYx4J,EAAI5S,KAAK6oK,WAAasC,GAClCM,GAASzrK,KAAKwoK,SAETxoK,KAAK0rK,gBAAgBH,GAAKvrK,KAAKyoK,kBAAmBzoK,KAAKqoK,WAC5D+C,GAAYlhG,EAAIlqE,KAAKuoK,WAAa4C,GAClCC,GAAYx4J,EAAI5S,KAAKsoK,WAAa6C,GAClCM,GAASzrK,KAAKqoK,SAIdmD,GAAWxrK,KAAKwoK,SAChB4C,GAAYlhG,EAAIlqE,KAAK8oK,WAAaqC,GAClCC,GAAYx4J,EAAI5S,KAAK6oK,WAAasC,GAC9BI,GAAM,GAAKvrK,KAAK+pK,yBAChBqB,GAAYx4J,IAAK,GAErB64J,GAASzrK,KAAKwoK,SAETgD,GAAWxrK,KAAKqoK,UACrB+C,GAAYlhG,EAAIlqE,KAAKuoK,WAAa4C,GAClCC,GAAYx4J,EAAI5S,KAAKsoK,WAAa6C,GAC9BI,GAAM,GAAKvrK,KAAK+pK,yBAChBqB,GAAYx4J,IAAK,GAErB64J,GAASzrK,KAAKqoK,UAItBroK,KAAK+jK,WAAa/jK,KAAK2oK,UAAYprJ,KAAKgrH,GAAI,CAE5C,MAAMojC,GAAUxD,GAAmB9B,SAAS,GAC5CsF,GAAQhG,SAASwE,MAAKn+F,GAClBhsE,KAAKsqK,oBACL/J,KAAQ6F,0BAA0BuF,GAAS3rK,KAAKuqK,sBAAuBoB,IAE3E,MAAMC,GAAazD,GAAmBlC,SAAS,GAC/CjmK,KAAK2pK,UAAUkC,iBAAiBD,IAChC5rK,KAAK2hK,KAAKhrB,iBAAiB4wB,cAAcqE,GAAYA,IACrDrL,KAAQ6F,0BAA0BuF,GAASC,GAAYD,IACvDpL,KAAQ6F,0BAA0BuF,GAASZ,GAAaY,IACxD,MAAMG,GAAUvuJ,KAAKs5H,MAAM80B,GAAQ/4J,EAAG+4J,GAAQzhG,GAG9C,GAFkBlqE,KAAK+rK,iBAAiBD,GAASP,IAC5BvrK,KAAK+rK,iBAAiBD,GAAS9rK,KAAKyoK,mBAC3B,CACb,MAAT0C,KACAA,GAAQ5tJ,KAAKmkH,KAAK0pC,GAAYx4J,EAAIw4J,GAAYx4J,EAAIw4J,GAAYlhG,EAAIkhG,GAAYlhG,IAElF,MAAM8hG,GAAYhsK,KAAK+rK,iBAAiBD,GAAS9rK,KAAKwoK,SACpCxoK,KAAK+rK,iBAAiBD,GAAS9rK,KAAKqoK,SACtC2D,IACZP,GAASK,GAAoB,IAAVvuJ,KAAKgrH,GACxB6iC,GAAYlhG,EAAI3sD,KAAKirH,IAAIijC,IAAUN,GACnCC,GAAYx4J,EAAI2K,KAAKkrH,IAAIgjC,IAAUN,KAGnCM,GAASK,GAAoB,IAAVvuJ,KAAKgrH,GACxB6iC,GAAYlhG,EAAI3sD,KAAKirH,IAAIijC,IAAUN,GACnCC,GAAYx4J,EAAI2K,KAAKkrH,IAAIgjC,IAAUN,GAE3C,CACJ,CACII,IAAOE,KACPlL,KAAQ6F,0BAA0BgF,GAAaN,GAAUM,IACzDA,GAAY3oC,WAAWgiC,GACvBp3I,EAAS+9I,GAEjB,CACJ,CACA,MAAM9E,GAAQ6B,GAAmB9B,SAAS,GACpCE,GAAQ4B,GAAmB9B,SAAS,GACpCG,GAAQ2B,GAAmB9B,SAAS,GACpCK,GAAUyB,GAAmBxB,SAC7BsF,GAAc9D,GAAmB9B,SAAS,GAChDh5I,EAAOw5I,cAAcpC,EAAS6B,IAC9BA,GAAM54D,YACN6yD,KAAQuG,WAAWL,GAAQH,GAAOC,IAClCA,GAAM74D,YACN6yD,KAAQuG,WAAWR,GAAOC,GAAOC,IACjCA,GAAM94D,YACN+yD,KAAOsG,iBAAiBR,GAAOC,GAAOF,GAAOkE,IAC7B,IAAZjE,GAAM3zJ,GAAuB,IAAZ2zJ,GAAM/jJ,GAAuB,IAAZ+jJ,GAAMr8F,KAG5B,IAAZs8F,GAAM5zJ,GAAuB,IAAZ4zJ,GAAMhkJ,GAAuB,IAAZgkJ,GAAMt8F,GAG5B,IAAZo8F,GAAM1zJ,GAAuB,IAAZ0zJ,GAAM9jJ,GAAuB,IAAZ8jJ,GAAMp8F,KAGxClqE,KAAKwpK,WAAaxpK,KAAKypK,aAAezpK,KAAK0pK,cAC3CjJ,KAAO6G,0BAA0BtnK,KAAKwpK,UAAWxpK,KAAKypK,YAAazpK,KAAK0pK,WAAYe,GACpFA,EAASlD,cAAciD,EAAUA,IAErCyB,GAAYtG,SAAS3lK,KAAKojK,KAAK0B,YAC3B9kK,KAAKyjK,YAAc,GACdzjK,KAAK+jK,WACN/jK,KAAKojK,KAAK8E,2BAA2B,EAAqBloK,KAAK2hK,KAAM3hK,KAAK2pK,WAE1E3pK,KAAKsqK,oBACLtqK,KAAKsqK,mBAAmB/C,cAAciD,EAAUA,GAEpD7J,KAAW+G,wBAAwB8C,EAAU9D,IAC7C/F,KAAWgH,WAAW3nK,KAAK2pK,UAAWjD,GAAS1mK,KAAKyjK,YAAazjK,KAAK2pK,WACtE3pK,KAAKojK,KAAKwE,sBAAsB5nK,KAAK2pK,UAAW,EAAqB3pK,KAAK2hK,MAC1E3hK,KAAK+jK,WAAY,IAGb/jK,KAAKsqK,oBACLtqK,KAAKsqK,mBAAmB/C,cAAciD,EAAUA,GAEpDxqK,KAAKojK,KAAKyE,kBAAkB2C,EAAU,EAAqBxqK,KAAK2hK,MAChE3hK,KAAK+jK,WAAY,GAErB/jK,KAAKojK,KAAK8I,SAASD,IACnBjsK,KAAK8nK,kCACT,CACAY,cAAcyD,EAAMC,GAChB,IAAIC,EAAUD,EAAOD,EACrBE,UAAqB,EAAV9uJ,KAAKgrH,GACZ8jC,EAAU9uJ,KAAKgrH,GACf8jC,GAAqB,EAAV9uJ,KAAKgrH,GAEX8jC,GAAW9uJ,KAAKgrH,KACrB8jC,GAAqB,EAAV9uJ,KAAKgrH,IAEb8jC,CACX,CACAN,iBAAiBI,EAAMC,GAKnB,IAAInvC,EAAK,EACT,OACIA,GALJkvC,GADAA,GAAQ,EAAI5uJ,KAAKgrH,IACH,EAAI4jC,EAAO,EAAI5uJ,KAAKgrH,GAAK4jC,IAEvCC,GADAA,GAAQ,EAAI7uJ,KAAKgrH,IACH,EAAI6jC,EAAO,EAAI7uJ,KAAKgrH,GAAK6jC,GAG9BA,EAAOD,EAGPA,EAAOC,EAEZnvC,EAAK1/G,KAAKgrH,KACVtL,EAAe,EAAV1/G,KAAKgrH,GAAStL,GAEhBA,CACX,CACAyuC,gBAAgB7F,EAAKsG,EAAMC,GAOvB,GALAvG,GADAA,GAAO,EAAItoJ,KAAKgrH,IACJ,EAAIs9B,EAAM,EAAItoJ,KAAKgrH,GAAKs9B,GAEpCsG,GADAA,GAAQ,EAAI5uJ,KAAKgrH,IACH,EAAI4jC,EAAO,EAAI5uJ,KAAKgrH,GAAK4jC,IAEvCC,GADAA,GAAQ,EAAI7uJ,KAAKgrH,IACH,EAAI6jC,EAAO,EAAI7uJ,KAAKgrH,GAAK6jC,IAEnC,GAAIvG,EAAMsG,GAAQtG,EAAMuG,EACpB,OAAO,UAIPvG,EAAMuG,GAAQvG,EAAMsG,EACpB,OAAO,EAGf,OAAO,CACX,CACArE,iCACI,MAAM1E,EAAOpjK,KAAKojK,KACdA,EAAK4E,uBACA5E,EAAK4E,qBAAqBC,qBAC3B7E,EAAK4E,qBAAqBC,mBAAqB,IAAItH,MAEvDyC,EAAK8E,2BAA2B,EAAqB,KAAM9E,EAAK4E,qBAAqBC,oBAE7F,EAEJE,GAAmB9B,YAAWiG,OAAW,GAAI/L,KAAQh/B,MACrD4mC,GAAmBxB,SAAWhG,KAAWzzB,WACzCi7B,GAAmBlC,YAAWqG,OAAW,EAAG7L,KAAOvzB,+CCrdnD,MAAMq/B,SACF,MAAMnuF,EAAQ,IAAIv3C,WAAW,GAE7B,UADa,IAAIE,YAAYq3C,EAAMhQ,QACnB,GAAK,GAAKgQ,EAAM,GACpC,EAJMmuF,GAKNp4J,OAAOwzB,eAAe6kI,IAAajoI,UAAW,sBAAuB,CACjEzhC,IAAK,WACD,OAAQ9C,KAAKysK,gBAAkBzsK,KAAKysK,eAAeC,YAAe1sK,KAAK0sK,UAC3E,EACA7kI,YAAY,EACZE,cAAc,IAElB5zB,OAAOwzB,eAAe6kI,IAAajoI,UAAW,sBAAuB,CACjEzhC,IAAK,WACD,OAAO9C,KAAKysK,eAAiB,EAAIzsK,KAAKquE,UAC1C,EACAxmC,YAAY,EACZE,cAAc,IAElB5zB,OAAOwzB,eAAe6kI,IAAajoI,UAAW,kBAAmB,CAC7DzhC,IAAK,WACD,OAAQ9C,KAAKysK,gBAAkBzsK,KAAKysK,eAAeE,aAAgB3sK,KAAKqgJ,QAAQssB,WACpF,EACA9kI,YAAY,EACZE,cAAc,IAElBykI,IAAajoI,UAAUqoI,SAAW,WAC9B5sK,KAAKqgJ,SAASusB,WACd5sK,KAAKysK,gBAAgBG,UACzB,EACAJ,IAAajoI,UAAUkd,QAAU,WACzBzhD,KAAK6sK,aACL7sK,KAAKqgJ,QAAQ5+F,UAEjBzhD,KAAKysK,gBAAgBhrH,UACrBzhD,KAAKysK,oBAAiB5pK,EACtB7C,KAAK8sK,aAAc,CACvB,EACAN,IAAajoI,UAAUwoI,iBAAmB,WACtC,OAAO/sK,KAAKysK,gBAAkBzsK,KAAKqgJ,OACvC,EACAmsB,IAAajoI,UAAUyoI,aAAe,WAClC,MAAMvnK,EAAOzF,KAAKqgJ,QAAQr6H,UAC1B,IAAKhmB,KAAK0qI,OAAOuiC,UAAUC,gDAAmDltK,KAAK0sK,WAAa,GAAM,GAAK1sK,KAAKquE,WAAa,GAAM,IAAO5oE,EACtI,OAEJ,MAAM0nK,EAAiBX,IAAaY,kBAAkBptK,KAAKoS,MACrDi7J,EAAqBrtK,KAAK0sK,WAAa,GAAK,EAC5CY,EAAcD,EAAoBF,EAClCI,EAAgBvtK,KAAKwtK,kBAErBC,EADkBF,EAAgBF,EACFF,EACtC,IAAIO,EAWAC,GAVJ,GAAIrwJ,MAAMqnB,QAAQl/B,GAAO,CACrB,MAAMmoK,GAAoB,IAAIC,aAAapoK,GAC3CioK,EAAa,IAAI7+F,SAAS++F,GAAkBx/F,OAAQw/F,GAAkBv/F,WAAYu/F,GAAkBhhG,WACxG,MAEI8gG,EADKjoK,aAAgBqnE,YACR,IAAI+B,SAASppE,EAAM,EAAGA,EAAKmnE,YAG3B,IAAIiC,SAASppE,EAAK2oE,OAAQ3oE,EAAK4oE,WAAY5oE,EAAKmnE,YAI7D+gG,GADA3tK,KAAKoS,OAASo6J,IAAasB,KACb,IAAIC,UAAUN,GAEvBztK,KAAKoS,OAASo6J,IAAawB,cAClB,IAAInnI,WAAW4mI,GAExBztK,KAAKoS,OAASo6J,IAAayB,MAClB,IAAIC,WAAWT,GAExBztK,KAAKoS,OAASo6J,IAAa2B,eAClB,IAAIrnI,YAAY2mI,GAEzBztK,KAAKoS,OAASo6J,IAAar0E,IAClB,IAAIioD,WAAWqtB,GAExBztK,KAAKoS,OAASo6J,IAAa4B,aAClB,IAAIrnI,YAAY0mI,GAGhB,IAAII,aAAaJ,GAEnC,MAAMY,GAAgBruK,KAAK+kI,UAC3B,IAAIupC,GAAetuK,KAAKquE,WACxB,QAAS5wD,GAAI,EAAGA,GAAI8vJ,IAAiB9vJ,GAAG,CACpC,QAASmsD,GAAI,EAAGA,GAAIykG,KAAiBzkG,GACjC,OAAQ5pE,KAAKoS,MACT,KAAKo6J,IAAasB,KACdH,GAAYlwJ,GAAI6vJ,EAAc1jG,IAAK8jG,EAAWa,QAAQD,GAAe1kG,IACrE,MACJ,KAAK4iG,IAAawB,cACdL,GAAYlwJ,GAAI6vJ,EAAc1jG,IAAK8jG,EAAWc,SAASF,GAAe1kG,IACtE,MACJ,KAAK4iG,IAAayB,MACdN,GAAYlwJ,GAAI6vJ,EAAc1jG,IAAK8jG,EAAWe,SAASH,GAAmB,EAAJ1kG,GAAO2iG,IAC7E,MACJ,KAAKC,IAAa2B,eACdR,GAAYlwJ,GAAI6vJ,EAAc1jG,IAAK8jG,EAAWgB,UAAUJ,GAAmB,EAAJ1kG,GAAO2iG,IAC9E,MACJ,KAAKC,IAAar0E,IACdw1E,GAAYlwJ,GAAI6vJ,EAAc1jG,IAAK8jG,EAAWiB,SAASL,GAAmB,EAAJ1kG,GAAO2iG,IAC7E,MACJ,KAAKC,IAAa4B,aACdT,GAAYlwJ,GAAI6vJ,EAAc1jG,IAAK8jG,EAAWkB,UAAUN,GAAmB,EAAJ1kG,GAAO2iG,IAC9E,MACJ,KAAKC,IAAap0E,MACdu1E,GAAYlwJ,GAAI6vJ,EAAc1jG,IAAK8jG,EAAWmB,WAAWP,GAAmB,EAAJ1kG,GAAO2iG,IAI3F+B,IAAgBtuK,KAAK0sK,UACzB,CACA1sK,KAAKysK,gBAAgBhrH,UACrBzhD,KAAKysK,eAAiB,IAAIqC,IAAO9uK,KAAK0qI,OAAQijC,IAAa,EAAON,GAAmB,EAAOrtK,KAAK+uK,kBAAkB,EAAM/uK,KAAKgvK,iBAAkBhvK,KAAKivK,QAAU,gBAAkB,WACrL,6EC/GAC,EAA6B3qI,UAAU4qI,uBAAyB,WAC5D,OAAAnvK,KAAKw4C,IAAI,IAAI42H,IACNpvK,IACX,EAKO,MAAMovK,GAITvvK,cAIIG,KAAKqvK,gBAAkB,EAIvBrvK,KAAKsvK,gBAAkB,EACvBtvK,KAAKuvK,OAAS,EACdvvK,KAAKwvK,OAAS,EACdxvK,KAAKyvK,QAAS,EACdzvK,KAAK0vK,0BAA6BC,GAAQ3vK,KAAK4vK,oBAAoBD,EACvE,CAKAE,cAAcC,GAEVA,EAAmBC,KAAMC,iCAAiCvzJ,WAC1Dzc,KAAKiwK,OAAOJ,cAAcC,GAC1B,MAAMI,EAAalwK,KAAKiwK,OAAOtrC,WAAWwrC,YAAYC,gBAClDF,WAEWG,uBAA2B,KAAmE,mBAA7CA,uBAAuBC,kBAC/ED,uBACKC,oBACAjwK,KAAM4nB,IACU,YAAbA,EACAioJ,EAAWr3F,iBAAiB,oBAAqB74E,KAAK0vK,2BAGtDK,KAAMlP,KAAK,0BAAyB,GAGvCt4J,MAAOd,IACRsoK,KAAMzqJ,MAAM7d,EAAK,GAIrByoK,EAAWr3F,iBAAiB,oBAAqB74E,KAAK0vK,2BAGlE,CAIAE,oBAAoBD,GACE,OAAdA,EAAIplC,QACJvqI,KAAKuvK,QAAuB,GAAZI,EAAIplC,OAAavqI,KAAKqvK,iBAExB,OAAdM,EAAIY,QACJvwK,KAAKwvK,QAAuB,GAAZG,EAAIY,OAAavwK,KAAKsvK,iBAE1CtvK,KAAKyvK,QAAS,CAClB,CAKAe,cACQxwK,KAAKyvK,SACLzvK,KAAKyvK,QAAS,EACVzvK,KAAKwvK,OAAS,IACdxvK,KAAKwvK,OAAS,IAAMxvK,KAAKwvK,QAE7BxvK,KAAKiwK,OAAO1lC,OAAYvqI,KAAKuvK,OAAS,IAAShyJ,KAAKgrH,GAAMhrH,KAAKgrH,GAAM,EACrEvoI,KAAKiwK,OAAOrzB,KAAQ58I,KAAKwvK,OAAS,IAASjyJ,KAAKgrH,GAExD,CAIAkoC,gBACIzoK,OAAO8wE,oBAAoB,oBAAqB94E,KAAK0vK,0BACzD,CAKA/pC,eACI,MAAO,yCACX,CAKA+qC,gBACI,MAAO,qBACX,EAEJC,KAAiBvB,wCAA6CA,mBCrGvD,MAAMwB,GACT/wK,cAIIG,KAAK6wK,YAAc,CAAC,IAIpB7wK,KAAK8wK,aAAe,CAAC,IAIrB9wK,KAAK+wK,OAAS,CAAC,IAIf/wK,KAAKgxK,SAAW,CAAC,IAIjBhxK,KAAKixK,UAAY,CAAC,IAIlBjxK,KAAKkxK,SAAW,CAAC,IACjBlxK,KAAKmxK,MAAQ,IAAI7zJ,KACrB,CAKAuyJ,cAAcC,GAEVA,EAAmBC,KAAMC,iCAAiCvzJ,YACtDzc,KAAKoxK,wBAGTpxK,KAAKq4I,OAASr4I,KAAKiwK,OAAOtrC,WAC1B3kI,KAAKqxK,QAAUrxK,KAAKq4I,OAAO83B,YAC3BnwK,KAAKoxK,sBAAwBpxK,KAAKqxK,QAAQC,uBAAuB94H,IAAI,KACjEx4C,KAAKmxK,MAAMz7J,OAAS,IAExB1V,KAAKuxK,oBAAsBvxK,KAAKq4I,OAAOm5B,qBAAqBh5H,IAAKtyC,IAC7D,MAAMypK,EAAMzpK,EAAK6iB,MACjB,GAAI7iB,EAAKkM,OAASq/J,MAAmBC,UACa,IAA1C1xK,KAAK6wK,YAAY/rI,QAAQ6qI,EAAIgC,WACc,IAA3C3xK,KAAK8wK,aAAahsI,QAAQ6qI,EAAIgC,WACO,IAArC3xK,KAAK+wK,OAAOjsI,QAAQ6qI,EAAIgC,WACe,IAAvC3xK,KAAKgxK,SAASlsI,QAAQ6qI,EAAIgC,WACa,IAAvC3xK,KAAKkxK,SAASpsI,QAAQ6qI,EAAIgC,WACc,IAAxC3xK,KAAKixK,UAAUnsI,QAAQ6qI,EAAIgC,aAEb,IADA3xK,KAAKmxK,MAAMrsI,QAAQ6qI,EAAIgC,UAEjC3xK,KAAKmxK,MAAMlzJ,KAAK0xJ,EAAIgC,SAEnB7B,GACDH,EAAIzyI,uBAAe,IAKmB,IAA1Cl9B,KAAK6wK,YAAY/rI,QAAQ6qI,EAAIgC,WACc,IAA3C3xK,KAAK8wK,aAAahsI,QAAQ6qI,EAAIgC,WACO,IAArC3xK,KAAK+wK,OAAOjsI,QAAQ6qI,EAAIgC,WACe,IAAvC3xK,KAAKgxK,SAASlsI,QAAQ6qI,EAAIgC,WACa,IAAvC3xK,KAAKkxK,SAASpsI,QAAQ6qI,EAAIgC,WACc,IAAxC3xK,KAAKixK,UAAUnsI,QAAQ6qI,EAAIgC,SAAiB,CAC5C,MAAMh3J,EAAQ3a,KAAKmxK,MAAMrsI,QAAQ6qI,EAAIgC,SACjCh3J,GAAS,GACT3a,KAAKmxK,MAAM51J,OAAOZ,EAAO,GAExBm1J,GACDH,EAAIzyI,gBAEZ,IAGZ,CAIAuzI,gBACQzwK,KAAKq4I,SACDr4I,KAAKuxK,qBACLvxK,KAAKq4I,OAAOm5B,qBAAqB94H,OAAO14C,KAAKuxK,qBAE7CvxK,KAAKoxK,uBACLpxK,KAAKqxK,QAAQC,uBAAuB54H,OAAO14C,KAAKoxK,uBAEpDpxK,KAAKuxK,oBAAsB,KAC3BvxK,KAAKoxK,sBAAwB,MAEjCpxK,KAAKmxK,MAAMz7J,OAAS,CACxB,CAKAiwH,eACI,MAAO,wBACX,CAIAisC,eACI5xK,KAAKmxK,MAAMz7J,OAAS,CACxB,CAKAg7J,gBACI,MAAO,UACX,CAKAF,cACI,GAAIxwK,KAAKuxK,oBAAqB,CAC1B,MAAMtB,EAASjwK,KAAKiwK,OAEpB,QAASt1J,EAAQ,EAAGA,EAAQ3a,KAAKmxK,MAAMz7J,OAAQiF,IAAS,CACpD,MAAMg3J,EAAU3xK,KAAKmxK,MAAMx2J,GACrBk3J,EAAQ5B,EAAO6B,4BACqB,IAAtC9xK,KAAK6wK,YAAY/rI,QAAQ6sI,GACzB1B,EAAO8B,gBAAgBC,eAAe,EAAG,EAAGH,IAEA,IAAvC7xK,KAAK8wK,aAAahsI,QAAQ6sI,GAC/B1B,EAAO8B,gBAAgBC,eAAe,EAAG,GAAIH,IAEP,IAAjC7xK,KAAK+wK,OAAOjsI,QAAQ6sI,GACzB1B,EAAO8B,gBAAgBC,eAAe,EAAGH,EAAO,IAER,IAAnC7xK,KAAKgxK,SAASlsI,QAAQ6sI,GAC3B1B,EAAO8B,gBAAgBC,eAAe,GAAIH,EAAO,IAER,IAApC7xK,KAAKixK,UAAUnsI,QAAQ6sI,GAC5B1B,EAAO8B,gBAAgBC,eAAeH,EAAO,EAAG,IAER,IAAnC7xK,KAAKkxK,SAASpsI,QAAQ6sI,IAC3B1B,EAAO8B,gBAAgBC,gBAAgBH,EAAO,EAAG,GAEjD5B,EAAOtrC,WAAWstC,uBAClBhC,EAAO8B,gBAAgB7nG,IAAK,GAEhC+lG,EAAO3lC,gBAAgB4gC,YAAY+E,EAAOiC,wBAC1C3R,KAAQ4R,qBAAqBlC,EAAO8B,gBAAiB9B,EAAOiC,uBAAwBjC,EAAOmC,uBAC3FnC,EAAOoC,gBAAgB5vC,WAAWwtC,EAAOmC,sBAC7C,CACJ,CACJ,GAEJvP,SAAW,IACPz9B,UACDwrC,GAAuBrsI,UAAW,mBAAe,IAAM,EAC1Ds+H,OAAW,IACPz9B,UACDwrC,GAAuBrsI,UAAW,oBAAgB,IAAM,EAC3Ds+H,OAAW,IACPz9B,UACDwrC,GAAuBrsI,UAAW,cAAU,IAAM,EACrDs+H,OAAW,IACPz9B,UACDwrC,GAAuBrsI,UAAW,gBAAY,IAAM,EACvDs+H,OAAW,IACPz9B,UACDwrC,GAAuBrsI,UAAW,iBAAa,IAAM,EACxDs+H,OAAW,IACPz9B,UACDwrC,GAAuBrsI,UAAW,gBAAY,GACjDosI,KAAiBC,uBAA4BA,GC3KtC,MAAM0B,GAKTzyK,cAIIG,KAAKuyK,QAAU,CAAC,EAAG,EAAG,GAItBvyK,KAAKwyK,WAAa,EAAC,EAAI,EAAG,GAI1BxyK,KAAKyyK,aAAe,EAAC,EAAI,EAAG,GAI5BzyK,KAAK0yK,YAAc,CAAC,GAQpB1yK,KAAK2yK,cAAe,EAKpB3yK,KAAK4yK,mBAAqB,IAC1B5yK,KAAK6yK,kBAAoB,IAC7B,CAKAhD,cAAcC,GAEVA,EAAmBC,KAAMC,iCAAiCvzJ,WAC1Dzc,KAAK8yK,kBAAoBhD,EACzB9vK,KAAK+yK,UAAY/yK,KAAKiwK,OAAOtrC,WAAWquC,cAAcC,0BAA2B59H,IAC7Er1C,KAAKkzK,cAAc79H,EAAC,EACrB89H,MAAkBC,YAAcD,MAAkBE,UAAYF,MAAkBG,aAEnFtzK,KAAKuzK,cAAgBvzK,KAAKiwK,OAAOtrC,WAAWD,yBAAyBlsF,IAAI,KACjEx4C,KAAKiwK,OAAOuD,aACZxzK,KAAKiwK,OAAOwD,YAAYzzK,KAAKiwK,OAAOuD,YAAW,EAG3D,CAIA/C,gBACQzwK,KAAK+yK,YACL/yK,KAAKiwK,OAAOtrC,WAAWquC,cAAcU,6BAA6B1zK,KAAK+yK,WACvE/yK,KAAKiwK,OAAOtrC,WAAWD,yBAAyBhsF,OAAO14C,KAAKuzK,eAC5DvzK,KAAK+yK,UAAY,KACjB/yK,KAAKuzK,cAAgB,KACrBvzK,KAAK6yK,kBAAoB,KACzB7yK,KAAK8yK,uBAAoBjwK,EAEjC,CAKA8iI,eACI,MAAO,qBACX,CAKA+qC,gBACI,MAAO,OACX,CAEAwC,cAAc79H,GACV,MAAMt3B,EAAIs3B,EAAEtsB,MAEN2hH,EADS1qI,KAAKiwK,OACEE,YAKtB,IAJKnwK,KAAK2zK,cAAkC,UAAlB51J,EAAE61J,aAIxBv+H,EAAEjjC,OAAS+gK,MAAkBG,cAAkD,IAAnCtzK,KAAKuyK,QAAQztI,QAAQ/mB,EAAE81J,QACnE,OAEJ,MAAMC,EAAa/1J,EAAEsP,OAErB,GAAIgoB,EAAEjjC,OAAS+gK,MAAkBC,YAAa,CAC1C,IACIU,GAAYC,kBAAkBh2J,EAAEi2J,UACpC,OAEI,CAEJh0K,KAAK6yK,kBAAoB,CACrBjgK,EAAGmL,EAAEg1H,QACLvwH,EAAGzE,EAAEi1H,SAEThzI,KAAK2yK,aAAe50J,EAAE81J,OACjB7zK,KAAK8yK,mBACN/0J,EAAEmf,iBAGFwtG,EAAOupC,eACPj0K,KAAKk0K,aAAa7+H,EAAEtsB,MAE5B,SAESssB,EAAEjjC,OAAS+gK,MAAkBE,UAAW,CAC7C,IACIS,GAAYK,sBAAsBp2J,EAAEi2J,UACxC,OAEI,CAEJh0K,KAAK2yK,cAAe,EACpB3yK,KAAK6yK,kBAAoB,KACpB7yK,KAAK8yK,mBACN/0J,EAAEmf,gBAEV,SAESmY,EAAEjjC,OAAS+gK,MAAkBG,YAAa,CAC/C,IAAKtzK,KAAK6yK,kBAIN,YAHInoC,EAAOupC,eACPj0K,KAAKk0K,aAAa7+H,EAAEtsB,QAM5B/oB,KAAKo0K,cAFWr2J,EAAEg1H,QAAU/yI,KAAK6yK,kBAAkBjgK,EACnCmL,EAAEi1H,QAAUhzI,KAAK6yK,kBAAkBrwJ,GAEnDxiB,KAAK6yK,kBAAoB,CACrBjgK,EAAGmL,EAAEg1H,QACLvwH,EAAGzE,EAAEi1H,SAEJhzI,KAAK8yK,mBACN/0J,EAAEmf,gBAEV,CACJ,CAEAg3I,aAAan2J,GACM/d,KAAKiwK,OACEE,YACV8D,gBAKZj0K,KAAKo0K,cAFWr2J,EAAEs2J,UACFt2J,EAAEu2J,WAElBt0K,KAAK6yK,kBAAoB,KACpB7yK,KAAK8yK,mBACN/0J,EAAEmf,iBAEV,CAMAk3I,cAAcG,EAASC,GACnB,MAAMvE,EAASjwK,KAAKiwK,OAGdr9J,GADN2hK,GAD6BtE,EAAOwE,kCAEhBz0K,KAAK4yK,mBACnBpwJ,EAAIgyJ,EAAUx0K,KAAK4yK,mBAEnB8B,EAAkB/T,KAAWgU,qBAAqB1E,EAAOpnC,SAASrmH,EAAGytJ,EAAOpnC,SAASj2H,EAAGq9J,EAAOpnC,SAAS3+D,GAC9G,IAAI0qG,GAWJ,GATI50K,KAAKyyK,aAAa1xJ,KAAMuL,IACjBA,KAAMtsB,KAAK2yK,gBAGlBiC,GAAiBjU,KAAW5pB,aAAaozB,MAAK9+F,EAAG7oD,GAEjDkyJ,EAAgBG,gBAAgBD,KAGhC50K,KAAKwyK,WAAWzxJ,KAAMuL,IACfA,KAAMtsB,KAAK2yK,cAClB,CAEAiC,GAAiBjU,KAAW5pB,aAAaozB,MAAK1/F,EAAG73D,GAEjD8hK,EAAgBG,gBAAgBD,IAEhC,MAAMhpB,GAAQqkB,EAAO6E,gBAAkB7E,EAAO8E,WAC1C9E,EAAO+E,aAAeppB,GAAQqkB,EAAOpnC,SAAS3+D,GAAK+lG,EAAOpnC,SAAS3+D,EAAI0hF,KAGvEgpB,GAAiBjU,KAAW5pB,aAAaozB,MAAKn+F,EAFzBikG,EAAOgF,sBAAwBriK,GAIpD8hK,EAAgBG,gBAAgBD,IAExC,CAEI50K,KAAK0yK,YAAY3xJ,KAAMuL,IAChBA,KAAMtsB,KAAK2yK,gBAGlBiC,GAAiBjU,KAAW5pB,aAAaozB,MAAKn+F,GAAIp5D,GAElDq9J,EAAO8E,YAAcniK,EAErB8hK,EAAgBG,gBAAgBD,KAGpCF,EAAgBQ,mBAAmBjF,EAAOpnC,SAC9C,GAEJg6B,SAAW,IACPz9B,UACDktC,GAAoB/tI,UAAW,eAAW,IAAM,EACnDs+H,OAAW,IACPz9B,UACDktC,GAAoB/tI,UAAW,0BAAsB,GACxDosI,KAAiB2B,oBAAyBA,GCrOnC,MAAM6C,GACTt1K,cAIIG,KAAKo1K,qBAAuB,CAAC,IAI7Bp1K,KAAKq1K,qBAAuB,CAAC,IAI7Br1K,KAAKs1K,6BAA8B,EAInCt1K,KAAKu1K,8BAA+B,EAIpCv1K,KAAKw1K,+BAAgC,EAIrCx1K,KAAKy1K,uBAAyB,CAAC,IAI/Bz1K,KAAK01K,uBAAyB,CAAC,IAI/B11K,KAAK21K,+BAAgC,EAIrC31K,KAAK41K,gCAAiC,EAItC51K,KAAK61K,iCAAkC,EAIvC71K,KAAK81K,eAAiB,CAAC,IAIvB91K,KAAK+1K,eAAiB,CAAC,IAIvB/1K,KAAKg2K,uBAAwB,EAI7Bh2K,KAAKi2K,wBAAyB,EAI9Bj2K,KAAKk2K,yBAA0B,EAI/Bl2K,KAAKm2K,kBAAoB,EAIzBn2K,KAAKo2K,oBAAsB,EAI3Bp2K,KAAKq2K,kBAAoB,EACzBr2K,KAAKmxK,MAAQ,IAAI7zJ,KACrB,CAKAuyJ,cAAcC,GAEVA,EAAmBC,KAAMC,iCAAiCvzJ,YACtDzc,KAAKoxK,wBAGTpxK,KAAKq4I,OAASr4I,KAAKiwK,OAAOtrC,WAC1B3kI,KAAKqxK,QAAUrxK,KAAKq4I,OAAO83B,YAC3BnwK,KAAKoxK,sBAAwBpxK,KAAKqxK,QAAQC,uBAAuB94H,IAAI,KACjEx4C,KAAKmxK,MAAMz7J,OAAS,IAExB1V,KAAKuxK,oBAAsBvxK,KAAKq4I,OAAOm5B,qBAAqBh5H,IAAKtyC,IAC7D,MAAMypK,EAAMzpK,EAAK6iB,MACjB,IAAK4mJ,EAAI2G,QACL,GAAIpwK,EAAKkM,OAASq/J,MAAmBC,QACjC1xK,KAAKu2K,aAAe5G,EAAI6G,QACxBx2K,KAAKy2K,YAAc9G,EAAI+G,OACvB12K,KAAK22K,cAAgBhH,EAAIiH,WAC8B,IAAnD52K,KAAKo1K,qBAAqBtwI,QAAQ6qI,EAAIgC,WACa,IAAnD3xK,KAAKq1K,qBAAqBvwI,QAAQ6qI,EAAIgC,WACe,IAArD3xK,KAAKy1K,uBAAuB3wI,QAAQ6qI,EAAIgC,WACa,IAArD3xK,KAAK01K,uBAAuB5wI,QAAQ6qI,EAAIgC,WACK,IAA7C3xK,KAAK81K,eAAehxI,QAAQ6qI,EAAIgC,WACa,IAA7C3xK,KAAK+1K,eAAejxI,QAAQ6qI,EAAIgC,aAElB,IADA3xK,KAAKmxK,MAAMrsI,QAAQ6qI,EAAIgC,UAEjC3xK,KAAKmxK,MAAMlzJ,KAAK0xJ,EAAIgC,SAEpBhC,EAAIzyI,iBACC4yI,GACDH,EAAIzyI,wBAAe,IAMwB,IAAnDl9B,KAAKo1K,qBAAqBtwI,QAAQ6qI,EAAIgC,WACa,IAAnD3xK,KAAKq1K,qBAAqBvwI,QAAQ6qI,EAAIgC,WACe,IAArD3xK,KAAKy1K,uBAAuB3wI,QAAQ6qI,EAAIgC,WACa,IAArD3xK,KAAK01K,uBAAuB5wI,QAAQ6qI,EAAIgC,WACK,IAA7C3xK,KAAK81K,eAAehxI,QAAQ6qI,EAAIgC,WACa,IAA7C3xK,KAAK+1K,eAAejxI,QAAQ6qI,EAAIgC,SAAiB,CACjD,MAAMh3J,EAAQ3a,KAAKmxK,MAAMrsI,QAAQ6qI,EAAIgC,SACjCh3J,GAAS,GACT3a,KAAKmxK,MAAM51J,OAAOZ,EAAO,GAEzBg1J,EAAIzyI,iBACC4yI,GACDH,EAAIzyI,iBAGhB,IAIhB,CAIAuzI,gBACQzwK,KAAKq4I,SACDr4I,KAAKuxK,qBACLvxK,KAAKq4I,OAAOm5B,qBAAqB94H,OAAO14C,KAAKuxK,qBAE7CvxK,KAAKoxK,uBACLpxK,KAAKqxK,QAAQC,uBAAuB54H,OAAO14C,KAAKoxK,uBAEpDpxK,KAAKuxK,oBAAsB,KAC3BvxK,KAAKoxK,sBAAwB,MAEjCpxK,KAAKmxK,MAAMz7J,OAAS,CACxB,CAKA86J,cACQxwK,KAAKuxK,qBACLvxK,KAAKmxK,MAAMlxJ,QAAS0xJ,KACmC,IAA/C3xK,KAAKo1K,qBAAqBtwI,QAAQ6sI,IAAmB3xK,KAAK62K,wBAC1D72K,KAAKiwK,OAAO6G,cAAgB92K,KAAKm2K,mBAEmB,IAA/Cn2K,KAAKq1K,qBAAqBvwI,QAAQ6sI,IAAmB3xK,KAAK62K,wBAC/D72K,KAAKiwK,OAAO6G,cAAgB92K,KAAKm2K,mBAEqB,IAAjDn2K,KAAKy1K,uBAAuB3wI,QAAQ6sI,IAAmB3xK,KAAK+2K,2BACjE/2K,KAAKiwK,OAAO+G,gBAAkBh3K,KAAKo2K,oBACnCp2K,KAAKiwK,OAAO+G,gBAAkB,MAEwB,IAAjDh3K,KAAK01K,uBAAuB5wI,QAAQ6sI,IAAmB3xK,KAAK+2K,2BACjE/2K,KAAKiwK,OAAO+G,gBAAkBh3K,KAAKo2K,oBACnCp2K,KAAKiwK,OAAO+G,gBAAkB,MAEgB,IAAzCh3K,KAAK81K,eAAehxI,QAAQ6sI,IAAmB3xK,KAAKi3K,kBACzDj3K,KAAKiwK,OAAOiH,QAAUl3K,KAAKq2K,mBAEmB,IAAzCr2K,KAAK+1K,eAAejxI,QAAQ6sI,IAAmB3xK,KAAKi3K,oBACzDj3K,KAAKiwK,OAAOiH,QAAUl3K,KAAKq2K,oBAI3C,CAKA1wC,eACI,MAAO,+BACX,CAKA+qC,gBACI,MAAO,UACX,CAMAmG,wBACI,OAAQ72K,KAAKs1K,8BAAgCt1K,KAAKy2K,aAC9Cz2K,KAAKu1K,+BAAiCv1K,KAAKu2K,cAC3Cv2K,KAAKw1K,gCAAkCx1K,KAAK22K,aACpD,CAMAI,0BACI,OAAQ/2K,KAAK21K,gCAAkC31K,KAAKy2K,aAChDz2K,KAAK41K,iCAAmC51K,KAAKu2K,cAC7Cv2K,KAAK61K,kCAAoC71K,KAAK22K,aACtD,CAMAM,kBACI,OAAOj3K,KAAKg2K,wBAA0Bh2K,KAAKy2K,aAAez2K,KAAKi2K,yBAA2Bj2K,KAAKu2K,cAAgBv2K,KAAKk2K,0BAA4Bl2K,KAAK22K,aACzJ,GAEJ9T,SAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,4BAAwB,IAAM,EAC1Es+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,4BAAwB,IAAM,EAC1Es+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,mCAA+B,IAAM,EACjFs+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,oCAAgC,IAAM,EAClFs+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,qCAAiC,IAAM,EACnFs+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,8BAA0B,IAAM,EAC5Es+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,8BAA0B,IAAM,EAC5Es+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,qCAAiC,IAAM,EACnFs+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,sCAAkC,IAAM,EACpFs+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,uCAAmC,IAAM,EACrFs+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,sBAAkB,IAAM,EACpEs+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,sBAAkB,IAAM,EACpEs+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,6BAAyB,IAAM,EAC3Es+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,8BAA0B,IAAM,EAC5Es+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,+BAA2B,IAAM,EAC7Es+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,yBAAqB,IAAM,EACvEs+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,2BAAuB,IAAM,EACzEs+H,OAAW,IACPz9B,UACD+vC,GAA8B5wI,UAAW,yBAAqB,GACjEosI,KAAiBwE,8BAAmCA,GCtR7C,MAAMgC,GACTt3K,cAIIG,KAAKo3K,mBAAoB,EAIzBp3K,KAAKq3K,mBAAoB,EAIzBr3K,KAAKs3K,qBAAsB,EAK3Bt3K,KAAKu3K,eAAiB,EAKtBv3K,KAAKw3K,qBAAuB,CAChC,CAKA3H,cAAcC,GACVA,EAAmBC,KAAMC,iCAAiCvzJ,WAC1Dzc,KAAKy3K,OAAUpiI,IAEX,GAAIA,EAAEjjC,OAAS+gK,MAAkBuE,aAC7B,OAEJ,MAAM3uJ,EAAQssB,EAAEtsB,MAChB,IAAI4uJ,EAAQ,EACZ,MAAMC,EAAar6J,KAAKk/B,KAAI,EAAIl/B,KAAKi/B,IAAI,EAAGzzB,EAAM8uJ,SAC9C73K,KAAKw3K,uBACAx3K,KAAKo3K,oBAAqBp3K,KAAKq3K,oBAAqBr3K,KAAKs3K,qBAC1D1W,KAAOC,KAAK,8GAIR7gK,KAAKo3K,kBACL,8BACAp3K,KAAKq3K,kBACL,gCACAr3K,KAAKs3K,qBAETt3K,KAAKo3K,kBACLO,EAAqB,IAAbC,EAAoB53K,KAAKw3K,qBAAuBx3K,KAAKiwK,OAAOiH,OAE/Dl3K,KAAKq3K,kBACVM,EAAqB,IAAbC,EAAoB53K,KAAKw3K,qBAAuBx3K,KAAKiwK,OAAO6G,aAE/D92K,KAAKs3K,sBACVK,EAAqB,IAAbC,EAAoB53K,KAAKw3K,qBAAuBx3K,KAAKiwK,OAAO+G,iBAIxEW,EAAQC,EAAa53K,KAAKu3K,eAE1BI,IACI33K,KAAKo3K,kBACLp3K,KAAKiwK,OAAOiH,QAAUS,EAEjB33K,KAAKq3K,kBACVr3K,KAAKiwK,OAAO6G,cAAgBa,EAEvB33K,KAAKs3K,sBACVt3K,KAAKiwK,OAAO+G,gBAAkBW,IAGlC5uJ,EAAMmU,iBACD4yI,GACD/mJ,EAAMmU,iBAAe,EAIjCl9B,KAAK+yK,UAAY/yK,KAAKiwK,OAAOtrC,WAAWquC,cAAcC,0BAA0BjzK,KAAKy3K,OAAQtE,MAAkBuE,aACnH,CAIAjH,gBACQzwK,KAAK+yK,YACL/yK,KAAKiwK,OAAOtrC,WAAWquC,cAAcU,6BAA6B1zK,KAAK+yK,WACvE/yK,KAAK+yK,UAAY,KACjB/yK,KAAKy3K,OAAS,KAEtB,CAKA9xC,eACI,MAAO,gCACX,CAKA+qC,gBACI,MAAO,YACX,GAEJ7N,SAAW,IACPz9B,UACD+xC,GAA4B5yI,UAAW,yBAAqB,IAAM,EACrEs+H,OAAW,IACPz9B,UACD+xC,GAA4B5yI,UAAW,yBAAqB,IAAM,EACrEs+H,OAAW,IACPz9B,UACD+xC,GAA4B5yI,UAAW,2BAAuB,IAAM,EACvEs+H,OAAW,IACPz9B,UACD+xC,GAA4B5yI,UAAW,sBAAkB,IAAM,EAClEs+H,OAAW,IACPz9B,UACD+xC,GAA4B5yI,UAAW,4BAAwB,GAClEosI,KAAiBwG,4BAAiCA,GC5H3C,MAAMW,WAAkCC,KAC3Cl4K,cACIgE,SAAS4Y,WAMTzc,KAAKg4K,oBAAsB,EAM3Bh4K,KAAKi4K,oBAAsB,EAK3Bj4K,KAAKk4K,eAAiB,IAOtBl4K,KAAKm4K,qBAAuB,EAI5Bn4K,KAAKo4K,oBAAqB,EAI1Bp4K,KAAKq4K,oBAAqB,EAI1Br4K,KAAKs4K,sBAAuB,EAI5Bt4K,KAAKu4K,oBAAqB,EAI1Bv4K,KAAKw4K,oBAAqB,EAI1Bx4K,KAAKy4K,sBAAuB,EAI5Bz4K,KAAK04K,wBAAyB,EAI9B14K,KAAK24K,wBAAyB,EAI9B34K,KAAK44K,0BAA2B,EAIhC54K,KAAK64K,eAAgB,EAErB74K,KAAK84K,gBAAkB,CAC3B,CAKAnzC,eACI,MAAO,2BACX,CACAozC,QAAQC,EAAQzE,EAASC,GACrBx0K,KAAKi5K,WACDj5K,KAAKs4K,qBACLt4K,KAAKiwK,OAAO+G,gBAAkBzC,EAAUv0K,KAAKg4K,oBAExCh4K,KAAKy4K,uBACVz4K,KAAKiwK,OAAO+G,gBAAkBxC,EAAUx0K,KAAKg4K,qBAE7Ch4K,KAAKq4K,mBACLr4K,KAAKiwK,OAAO6G,cAAgBvC,EAAUv0K,KAAKi4K,oBAEtCj4K,KAAKw4K,qBACVx4K,KAAKiwK,OAAO6G,cAAgBtC,EAAUx0K,KAAKi4K,qBAE3Cj4K,KAAKo4K,mBACLp4K,KAAKiwK,OAAOiH,QAAU3C,EAAUv0K,KAAKi4K,oBAEhCj4K,KAAKu4K,qBACVv4K,KAAKiwK,OAAOiH,QAAU1C,EAAUx0K,KAAKi4K,oBAE7C,CACAiB,aAAaF,EAAQG,EAAQC,EAA8BC,EAAsBC,EAA+BC,GAO5G,GANqC,IAAjCH,GAAwE,OAAlCE,GAMb,IAAzBD,GAAwD,OAA1BE,EAE9B,OAEJ,IAAIC,GAAcH,EAAuBD,IAAkCp5K,KAAKk4K,gBAAkBl4K,KAAKg4K,oBAAsBh4K,KAAKi4K,qBAAwB,GACtJj4K,KAAKm4K,sBACLqB,GAAc,IAAOx5K,KAAKm4K,qBACtBn4K,KAAK44K,2BACL54K,KAAKiwK,OAAO+G,gBAAkBwC,EAAax5K,KAAKiwK,OAAO+G,gBAEvDh3K,KAAK24K,yBACL34K,KAAKiwK,OAAO6G,cAAgB0C,EAAax5K,KAAKiwK,OAAO6G,cAErD92K,KAAK04K,yBACL14K,KAAKiwK,OAAOiH,QAAUsC,EAAax5K,KAAKiwK,OAAOiH,UAI/Cl3K,KAAK44K,2BACL54K,KAAKiwK,OAAO+G,gBAAkBwC,GAE9Bx5K,KAAK24K,yBACL34K,KAAKiwK,OAAO6G,cAAgB0C,GAE5Bx5K,KAAK04K,yBACL14K,KAAKiwK,OAAOiH,QAAUsC,GAGlC,CACAP,WACI,IAAKj5K,KAAK64K,eAAiB74K,KAAK84K,kBAAoB,KAAQ,EACxD,OAEJ,MAAM5tK,EAAO,wJACRlL,KAAKs4K,uBAAwBt4K,KAAKq4K,qBAAsBr4K,KAAKo4K,oBAAsB,GACpFxX,KAAOC,KAAK31J,EACR,yBACAlL,KAAKs4K,qBACL,yBACAt4K,KAAKq4K,mBACL,yBACAr4K,KAAKo4K,qBAERp4K,KAAKy4K,uBAAwBz4K,KAAKw4K,qBAAsBx4K,KAAKu4K,oBAAsB,GACpF3X,KAAOC,KAAK31J,EACR,yBACAlL,KAAKy4K,qBACL,yBACAz4K,KAAKw4K,mBACL,yBACAx4K,KAAKu4K,qBAERv4K,KAAK44K,2BAA4B54K,KAAK24K,yBAA0B34K,KAAK04K,wBAA0B,GAChG9X,KAAOC,KAAK31J,EACR,6BACAlL,KAAK44K,yBACL,6BACA54K,KAAK24K,uBACL,6BACA34K,KAAK04K,uBAEjB,GAEJ7V,SAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,2BAAuB,IAAM,EACrEs+H,OAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,2BAAuB,IAAM,EACrEs+H,OAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,sBAAkB,IAAM,EAChEs+H,OAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,4BAAwB,IAAM,EACtEs+H,OAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,0BAAsB,IAAM,EACpEs+H,OAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,0BAAsB,IAAM,EACpEs+H,OAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,4BAAwB,IAAM,EACtEs+H,OAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,0BAAsB,IAAM,EACpEs+H,OAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,0BAAsB,IAAM,EACpEs+H,OAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,4BAAwB,IAAM,EACtEs+H,OAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,8BAA0B,IAAM,EACxEs+H,OAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,8BAA0B,IAAM,EACxEs+H,OAAW,IACPz9B,UACD0yC,GAA0BvzI,UAAW,gCAA4B,GACpEosI,KAAiBmH,0BAA+BA,yECpMzC,IAAM2B,GAAe,MAArB,MAAMA,EACT,yBAAOC,GACH,MAAO,CACHC,SAAU,GACVC,cAAe,GACf//G,MAAO,OACPggH,eAAWh3K,EACXi3K,oBAAgBj3K,EAChByV,cAAUzV,EACVk3K,eAAe,EACfC,kBAAkB,EAE1B,CAMAn6K,YAAYo6K,EAAcC,GACtBl6K,KAAKm6K,WAAY,EACjB,MAAM5tJ,EAAU,IACTktJ,EAAgBC,wBAChBQ,GA8BP,GA3BIl6K,KAAKo6K,gBADLH,EAMJR,EAAgBY,uBAGhBr6K,KAAKs6K,4BAA8B,EACnCt6K,KAAKu6K,yBAA2B,EAChCv6K,KAAKw6K,kBAAmB,EACxBx6K,KAAKy6K,eAAgB,EAErBz6K,KAAK06K,SAAW,IAAIC,KACpB36K,KAAK46K,cAAgBra,KAAQh/B,OAC7BvhI,KAAK66K,qBAAuB,GAC5B76K,KAAK86K,qBAAuB,GAAK96K,KAAK66K,qBAAuB,KAC7D76K,KAAK+6K,UAAY,KACbtB,EAAgBuB,eAAiBhzK,OAAOizK,WACxCxB,EAAgByB,gBAAkBlzK,OAAOg1D,YACrCy8G,EAAgB0B,SAChB1B,EAAgB0B,OAAO1gJ,MAAQg/I,EAAgBuB,eAC/CvB,EAAgB0B,OAAOzgJ,OAAS++I,EAAgByB,iBAEpDzB,EAAgB2B,WAAa3B,EAAgBuB,eAAiB,IAG7DvB,EAAgB0B,OAAQ,CACzBnzK,OAAO6wE,iBAAiB,SAAU74E,KAAK+6K,WAAW,GAClDtB,EAAgB0B,OAAShzK,SAASof,cAAc,UAChDkyJ,EAAgBuB,eAAiBhzK,OAAOizK,WACxCxB,EAAgByB,gBAAkBlzK,OAAOg1D,YACzCy8G,EAAgB0B,OAAO1gJ,MAAQzyB,OAAOizK,WACtCxB,EAAgB0B,OAAOzgJ,OAAS1yB,OAAOg1D,YACvCy8G,EAAgB0B,OAAO3zJ,MAAMiT,MAAQ,OACrCg/I,EAAgB0B,OAAO3zJ,MAAMkT,OAAS,OACtC++I,EAAgB0B,OAAO3zJ,MAAMlP,SAAW,WACxCmhK,EAAgB0B,OAAO3zJ,MAAM6zJ,gBAAkB,cAC/C5B,EAAgB0B,OAAO3zJ,MAAMK,IAAM,MACnC4xJ,EAAgB0B,OAAO3zJ,MAAM0uH,KAAO,MACpCujC,EAAgB0B,OAAO3zJ,MAAM8zJ,OAAS,IACtC7B,EAAgB0B,OAAO3zJ,MAAM+zJ,YAAc,OAE3C9B,EAAgB0B,OAAOnzJ,aAAa,eAAgB,QACpD,MAAMwzJ,EAAU/B,EAAgB0B,OAAOxgJ,WAAW,MAClD,IAAK6gJ,EACD,MAAM,IAAIl2J,MAAM,gDAEpBm0J,EAAgBgC,iBAAmBD,EACnC/B,EAAgBgC,iBAAiB93C,YAAc,UAC/C81C,EAAgBgC,iBAAiB/3C,UAAY,EAC7Cv7H,SAAS+d,KAAKM,YAAYizJ,EAAgB0B,OAC9C,CACA1B,EAAgB2B,WAAa3B,EAAgB0B,OAAO1gJ,MAAQ,EAC5Dz6B,KAAK07K,SAAU,EACf17K,KAAKg6K,iBAAmBztJ,EAAQytJ,iBAEhCh6K,KAAK27K,eAAiBpvJ,EAAQstC,MAE9B75D,KAAK45K,cAAgBrtJ,EAAQqtJ,cAC7B55K,KAAK25K,SAAWptJ,EAAQotJ,SACpBptJ,EAAQjU,UACRtY,KAAK47K,YAAYrvJ,EAAQjU,SAAS1F,EAAG2Z,EAAQjU,SAASkK,GAEtD+J,EAAQstJ,WACR75K,KAAK67K,aAAatvJ,EAAQstJ,WAE1BttJ,EAAQutJ,gBACR95K,KAAK87K,kBAAkBvvJ,EAAQutJ,gBAE/BvtJ,EAAQwtJ,eACRN,EAAgBsC,uBAGpB/7K,KAAK+5K,cAAgBxtJ,EAAQwtJ,cAC7B/5K,KAAKg8K,oBAAqB,EAE1Bh8K,KAAKi8K,oBAAsB,IAAIC,KAAQ,EAAG,GAC1Cl8K,KAAKm8K,4BAA8B,IAAID,KAAQ,EAAG,GAElDl8K,KAAKo8K,yBAA2B,IAAIF,KAAQ,EAAG,GAC/Cl8K,KAAKq8K,qBAAuB,IAAIH,KAAQ,EAAG,GAC3Cl8K,KAAKs8K,yBAA4B3M,IAC7B3vK,KAAKu8K,eAAe5M,EAAG,EAE3B3vK,KAAKw8K,yBAA4B7M,IAC7B3vK,KAAKy8K,eAAe9M,EAAG,EAE3B3vK,KAAK08K,uBAA0B/M,IAC3B3vK,KAAK28K,aAAahN,EAAG,EAEzB8J,EAAgB0B,OAAOtiG,iBAAiB,cAAe74E,KAAKs8K,0BAA0B,GACtF7C,EAAgB0B,OAAOtiG,iBAAiB,cAAe74E,KAAKw8K,0BAA0B,GACtF/C,EAAgB0B,OAAOtiG,iBAAiB,YAAa74E,KAAK08K,wBAAwB,GAClFjD,EAAgB0B,OAAOtiG,iBAAiB,aAAc74E,KAAK08K,wBAAwB,GACnFjD,EAAgB0B,OAAOtiG,iBAAiB,cAAgB82F,IACpDA,EAAIzyI,gBAAe,GACpB,GACH0/I,sBAAsB,KAClB58K,KAAK68K,sBAAqB,EAElC,CAKAC,uBAAuBC,GACnB/8K,KAAK66K,qBAAuBkC,EAC5B/8K,KAAK86K,qBAAuB,GAAK96K,KAAK66K,qBAAuB,IACjE,CACA0B,eAAex+J,GACX,IAAIi/J,EACJj/J,EAAEmf,iBAEE8/I,GADuB,IAAvBh9K,KAAKo6K,cACuBr8J,EAAEg1H,QAAU0mC,EAAgB2B,WAG5Br9J,EAAEg1H,QAAU0mC,EAAgB2B,WAExD4B,GAA6Bh9K,KAAKg8K,mBAAqB,GAEvDh8K,KAAKg8K,mBAAqBj+J,EAAEi2J,UACxBh0K,KAAKi9K,mBACLj9K,KAAKo8K,yBAA2Bp8K,KAAKi9K,kBAAkB75K,QACvDpD,KAAKi8K,oBAAsBj8K,KAAKi9K,kBAAkB75K,QAClDpD,KAAKm8K,4BAA8Bn8K,KAAKi9K,kBAAkB75K,QAG1DpD,KAAKy8K,eAAe1+J,KAGpB/d,KAAKo8K,yBAAyBxpK,EAAImL,EAAEg1H,QACpC/yI,KAAKo8K,yBAAyB55J,EAAIzE,EAAEi1H,QACpChzI,KAAKi8K,oBAAsBj8K,KAAKo8K,yBAAyBh5K,QACzDpD,KAAKm8K,4BAA8Bn8K,KAAKo8K,yBAAyBh5K,SAErEpD,KAAKq8K,qBAAqBzpK,EAAI,EAC9B5S,KAAKq8K,qBAAqB75J,EAAI,EAC9BxiB,KAAK07K,SAAU,EACf17K,KAAK06K,SAASliI,IAAIz6B,EAAEi2J,UAAU9qK,WAAY6U,IAItC07J,EAAgBY,qBAAuB,GAAKr6K,KAAKk9K,UACjDl9K,KAAKk9K,UACLl9K,KAAK06K,SAASliI,IAAIz6B,EAAEi2J,UAAU9qK,WAAY,CAAE0J,EAAGmL,EAAEg1H,QAASvwH,EAAGzE,EAAEi1H,QAASmqC,MAAOp/J,EAAEg1H,QAASqqC,MAAOr/J,EAAEi1H,UAG/G,CACAypC,eAAe1+J,GAEX,GAAI/d,KAAKg8K,oBAAsBj+J,EAAEi2J,UAAW,CAExC,GAAIh0K,KAAKg6K,iBAAkB,CACvB,MAAMqD,EAAS,IAAInB,KAAQn+J,EAAEg1H,QAAU/yI,KAAKo8K,yBAAyBxpK,EAAGmL,EAAEi1H,QAAUhzI,KAAKo8K,yBAAyB55J,GAC5Go/G,GAAWy7C,EAAO3nK,SACpBksH,GAAW5hI,KAAK45K,eAChByD,EAAOC,aAAat9K,KAAK45K,cAAgBh4C,IAE7C5hI,KAAKi8K,oBAAoBrpK,EAAI5S,KAAKo8K,yBAAyBxpK,EAAIyqK,EAAOzqK,EACtE5S,KAAKi8K,oBAAoBz5J,EAAIxiB,KAAKo8K,yBAAyB55J,EAAI66J,EAAO76J,CAC1E,MAEIxiB,KAAKi8K,oBAAoBrpK,EAAImL,EAAEg1H,QAC/B/yI,KAAKi8K,oBAAoBz5J,EAAIzE,EAAEi1H,QAGnChzI,KAAKq8K,qBAAuBr8K,KAAKi8K,oBAAoB74K,QACrDpD,KAAKq8K,qBAAuBr8K,KAAKq8K,qBAAqBr6C,SAAShiI,KAAKo8K,0BAGhE,EAAI3C,EAAgBsC,uBAEhB/7K,KAAKi8K,oBAAoBrpK,EADzB5S,KAAKo6K,cACwB78J,KAAKi/B,IAAIi9H,EAAgB2B,WAAYp7K,KAAKi8K,oBAAoBrpK,GAG9D2K,KAAKk/B,IAAIg9H,EAAgB2B,WAAYp7K,KAAKi8K,oBAAoBrpK,IAInG,MAAM2qK,GADqBv9K,KAAKw6K,kBAAmB,EAAK,GACXx6K,KAAKq8K,qBAAqBzpK,EAAK5S,KAAK86K,qBACjF,OAAQ96K,KAAKs6K,6BACT,KAAK,EACDt6K,KAAK46K,cAAchoK,EAAI2K,KAAKi/B,IAAI,EAAGj/B,KAAKk/B,KAAI,EAAI8gI,IAChD,MACJ,KAAK,EACDv9K,KAAK46K,cAAcp4J,EAAIjF,KAAKi/B,IAAI,EAAGj/B,KAAKk/B,KAAI,EAAI8gI,IAChD,MACJ,KAAK,EACDv9K,KAAK46K,cAAc1wG,EAAI3sD,KAAKi/B,IAAI,EAAGj/B,KAAKk/B,KAAI,EAAI8gI,IAIxD,MAAMC,GADkBx9K,KAAKy6K,cAAgB,GAAI,GACPz6K,KAAKq8K,qBAAqB75J,EAAKxiB,KAAK86K,qBAC9E,OAAQ96K,KAAKu6K,0BACT,KAAK,EACDv6K,KAAK46K,cAAchoK,EAAI2K,KAAKi/B,IAAI,EAAGj/B,KAAKk/B,KAAI,EAAI+gI,IAChD,MACJ,KAAK,EACDx9K,KAAK46K,cAAcp4J,EAAIjF,KAAKi/B,IAAI,EAAGj/B,KAAKk/B,KAAI,EAAI+gI,IAChD,MACJ,KAAK,EACDx9K,KAAK46K,cAAc1wG,EAAI3sD,KAAKi/B,IAAI,EAAGj/B,KAAKk/B,KAAI,EAAI+gI,IAG5D,KACK,CACD,MAAM/3K,EAAOzF,KAAK06K,SAAS53K,IAAIib,EAAEi2J,UAAU9qK,YACvCzD,IACAA,EAAKmN,EAAImL,EAAEg1H,QACXttI,EAAK+c,EAAIzE,EAAEi1H,QAEnB,CACJ,CACA2pC,aAAa5+J,GACT,GAAI/d,KAAKg8K,oBAAsBj+J,EAAEi2J,UAC7Bh0K,KAAKy9K,qBACLz9K,KAAKg8K,oBAAqB,EAC1Bh8K,KAAK07K,SAAU,MAEd,CACD,MAAMgC,EAAQ19K,KAAK06K,SAAS53K,IAAIib,EAAEi2J,UAAU9qK,YACxCw0K,GACAjE,EAAgBgC,iBAAiBzlC,UAAU0nC,EAAMP,MAAQ,GAAIO,EAAMN,MAAQ,GAAI,GAAI,GAE3F,CACAp9K,KAAKq8K,qBAAqBzpK,EAAI,EAC9B5S,KAAKq8K,qBAAqB75J,EAAI,EAC9BxiB,KAAK06K,SAAShiI,OAAO36B,EAAEi2J,UAAU9qK,WACrC,CAKAy0K,iBAAiBC,GACb59K,KAAK27K,eAAiBiC,CAC1B,CAIA,iBAAIhE,CAAciE,GACd79K,KAAK89K,uBAAyBD,EAC9B79K,KAAK+9K,uBAAuD,IAA9B/9K,KAAK89K,wBACnC99K,KAAKg+K,6BAA+Bh+K,KAAK+9K,oBAAsB,EACnE,CACA,iBAAInE,GACA,OAAO55K,KAAK89K,sBAChB,CAIA,YAAInE,CAASkE,GACT79K,KAAKi+K,kBAAoBJ,EACzB79K,KAAKk+K,kBAA6C,IAAzBl+K,KAAKi+K,mBAC9Bj+K,KAAKm+K,wBAA0Bn+K,KAAKk+K,eAAiB,EACzD,CACA,YAAIvE,GACA,OAAO35K,KAAKi+K,iBAChB,CAIAG,gBACIp+K,KAAK+5K,eAAgB,EACrB/5K,KAAKi9K,kBAAoB,IAC7B,CAIA,iBAAIlD,CAAcxnK,GACVvS,KAAKq+K,iBAAmB9rK,IAGxBA,GAASvS,KAAKi9K,mBACdxD,EAAgBsC,uBAChB/7K,KAAKq+K,gBAAiB,IAGtB5E,EAAgBsC,uBAChB/7K,KAAKq+K,gBAAiB,GAE9B,CACA,iBAAItE,GACA,OAAO/5K,KAAKq+K,cAChB,CAMAzC,YAAYhpK,EAAG4P,GAEPxiB,KAAKo8K,0BACLp8K,KAAKy9K,qBAETz9K,KAAKi9K,kBAAoB,IAAIf,KAAQtpK,EAAG4P,EAC5C,CAKA87J,iBAAiB3qH,GACb3zD,KAAKk9K,QAAUvpH,CACnB,CAKA4qH,oBAAoBC,GAChB,OAAQA,GACJ,KAAK,EACL,KAAK,EACL,KAAK,EACDx+K,KAAKs6K,4BAA8BkE,EACnC,MACJ,QACIx+K,KAAKs6K,4BAA8B,EAG/C,CAKAmE,iBAAiBD,GACb,OAAQA,GACJ,KAAK,EACL,KAAK,EACL,KAAK,EACDx+K,KAAKu6K,yBAA2BiE,EAChC,MACJ,QACIx+K,KAAKu6K,yBAA2B,EAG5C,CAIAkD,qBACI,MAAMiB,EAAK1+K,KAAKi9K,mBAAqBj9K,KAAKo8K,yBAE1C3C,EAAgBgC,iBAAiBzlC,UAAU0oC,EAAG9rK,EAAI5S,KAAKg+K,0BAA2BU,EAAGl8J,EAAIxiB,KAAKg+K,0BAA2Bh+K,KAAK+9K,oBAAqB/9K,KAAK+9K,qBAExJtE,EAAgBgC,iBAAiBzlC,UAAUh2I,KAAKm8K,4BAA4BvpK,EAAI5S,KAAKm+K,qBAAuB,EAAGn+K,KAAKm8K,4BAA4B35J,EAAIxiB,KAAKm+K,qBAAuB,EAAGn+K,KAAKk+K,eAAiB,EAAGl+K,KAAKk+K,eAAiB,EACtO,CAKApC,kBAAkB6C,GACd,MAAM/9J,EAAQ,IAAIg+J,MAClBh+J,EAAM0Z,IAAMqkJ,EACZ/9J,EAAM4Z,OAAS,IAAOx6B,KAAK6+K,gBAAkBj+J,CACjD,CAKAi7J,aAAa8C,GACT,MAAM/9J,EAAQ,IAAIg+J,MAClBh+J,EAAM0Z,IAAMqkJ,EACZ/9J,EAAM4Z,OAAS,IAAOx6B,KAAK8+K,WAAal+J,CAC5C,CAIAm+J,iBACI,MAAML,EAAK1+K,KAAKi9K,mBAAqBj9K,KAAKo8K,yBAC1Cp8K,KAAKy9K,qBACDz9K,KAAK6+K,gBACLpF,EAAgBgC,iBAAiB7gJ,UAAU56B,KAAK6+K,gBAAiBH,EAAG9rK,EAAI5S,KAAK45K,cAAe8E,EAAGl8J,EAAIxiB,KAAK45K,cAAoC,EAArB55K,KAAK45K,cAAwC,EAArB55K,KAAK45K,gBAIpJH,EAAgBgC,iBAAiBp4C,YACjCo2C,EAAgBgC,iBAAiB93C,YAAc3jI,KAAK27K,eACpDlC,EAAgBgC,iBAAiB/3C,UAAY,EAC7C+1C,EAAgBgC,iBAAiBuD,IAAIN,EAAG9rK,EAAG8rK,EAAGl8J,EAAGxiB,KAAK45K,cAAe,EAAa,EAAVr8J,KAAKgrH,IAAQ,GACrFkxC,EAAgBgC,iBAAiBj4C,SACjCi2C,EAAgBgC,iBAAiBh4C,YAEjCg2C,EAAgBgC,iBAAiBp4C,YACjCo2C,EAAgBgC,iBAAiB/3C,UAAY,EAC7C+1C,EAAgBgC,iBAAiB93C,YAAc3jI,KAAK27K,eACpDlC,EAAgBgC,iBAAiBuD,IAAIN,EAAG9rK,EAAG8rK,EAAGl8J,EAAGxiB,KAAK25K,SAAU,EAAa,EAAVp8J,KAAKgrH,IAAQ,GAChFkxC,EAAgBgC,iBAAiBj4C,SACjCi2C,EAAgBgC,iBAAiBh4C,YAEzC,CAIAw7C,YACQj/K,KAAK8+K,WACLrF,EAAgBgC,iBAAiB7gJ,UAAU56B,KAAK8+K,WAAY9+K,KAAKi8K,oBAAoBrpK,EAAI5S,KAAK25K,SAAU35K,KAAKi8K,oBAAoBz5J,EAAIxiB,KAAK25K,SAA0B,EAAhB35K,KAAK25K,SAA8B,EAAhB35K,KAAK25K,WAG5KF,EAAgBgC,iBAAiBp4C,YACjCo2C,EAAgBgC,iBAAiB93C,YAAc3jI,KAAK27K,eACpDlC,EAAgBgC,iBAAiB/3C,UAAY,EAC7C+1C,EAAgBgC,iBAAiBuD,IAAIh/K,KAAKi8K,oBAAoBrpK,EAAG5S,KAAKi8K,oBAAoBz5J,EAAGxiB,KAAK25K,SAAU,EAAa,EAAVp8J,KAAKgrH,IAAQ,GAC5HkxC,EAAgBgC,iBAAiBj4C,SACjCi2C,EAAgBgC,iBAAiBh4C,YAEzC,CACAo5C,uBAEQ78K,KAAKm6K,YAGLn6K,KAAK+5K,eACL/5K,KAAK++K,iBAEL/+K,KAAK07K,SACL17K,KAAK06K,SAASz6J,QAAQ,CAACukB,EAAKk5I,KACpBA,EAAM1J,YAAch0K,KAAKg8K,oBACpBh8K,KAAK+5K,eACN/5K,KAAK++K,iBAET/+K,KAAKi/K,YAELj/K,KAAKm8K,4BAA8Bn8K,KAAKi8K,oBAAoB74K,UAG5Dq2K,EAAgBgC,iBAAiBzlC,UAAU0nC,EAAMP,MAAQ,GAAIO,EAAMN,MAAQ,GAAI,GAAI,IACnF3D,EAAgBgC,iBAAiBp4C,YACjCo2C,EAAgBgC,iBAAiByD,UAAY,QAC7CzF,EAAgBgC,iBAAiBp4C,YACjCo2C,EAAgBgC,iBAAiB93C,YAAc,MAC/C81C,EAAgBgC,iBAAiB/3C,UAAY,EAC7C+1C,EAAgBgC,iBAAiBuD,IAAItB,EAAM9qK,EAAG8qK,EAAMl7J,EAAG,GAAI,EAAa,EAAVjF,KAAKgrH,IAAQ,GAC3EkxC,EAAgBgC,iBAAiBj4C,SACjCi2C,EAAgBgC,iBAAiBh4C,YACjCi6C,EAAMP,MAAQO,EAAM9qK,EACpB8qK,EAAMN,MAAQM,EAAMl7J,KAIhCo6J,sBAAsB,KAClB58K,KAAK68K,sBAAqB,GAElC,CAIAsC,gBACQ1F,EAAgB0B,SAChB1B,EAAgB0B,OAAOriG,oBAAoB,cAAe94E,KAAKs8K,0BAC/D7C,EAAgB0B,OAAOriG,oBAAoB,cAAe94E,KAAKw8K,0BAC/D/C,EAAgB0B,OAAOriG,oBAAoB,YAAa94E,KAAK08K,wBAC7DjD,EAAgB0B,OAAOriG,oBAAoB,aAAc94E,KAAK08K,wBAC9D10K,OAAO8wE,oBAAoB,SAAU94E,KAAK+6K,WAC1C5yK,SAAS+d,KAAKS,YAAY8yJ,EAAgB0B,QAC1C1B,EAAgB0B,OAAS,MAE7Bn7K,KAAKm6K,WAAY,CACrB,EAGJV,SAAgBY,qBAAuB,EACvCZ,EAAgBsC,qBAAuB,EAte1BtC,CAAe,cCZ5B2F,EAAwB76I,UAAU86I,mBAAqB,WACnD,OAAAr/K,KAAKw4C,IAAI,IAAI8mI,IACNt/K,IACX,EAKO,MAAMs/K,GAKTC,kBACI,OAAOv/K,KAAKw/K,aAChB,CAKAC,mBACI,OAAOz/K,KAAK0/K,cAChB,CAKAlP,cACI,GAAIxwK,KAAKw/K,cAAe,CACpB,MAAMvP,EAASjwK,KAAKiwK,OACd4B,EAA4C,GAApC5B,EAAO6B,2BACf6N,EAAkBlf,KAAOkU,qBAAqB1E,EAAOpnC,SAASrmH,EAAGytJ,EAAOpnC,SAASj2H,EAAG,GACpFgtK,EAAiBrf,KAAQv5B,qBAAqB,IAAIu5B,KAAQvgK,KAAKw/K,cAAc5E,cAAchoK,EAAIi/J,EAAO7xK,KAAKw/K,cAAc5E,cAAcp4J,EAAIqvJ,EAAO7xK,KAAKw/K,cAAc5E,cAAc1wG,EAAI2nG,GAAQ8N,GACrM1P,EAAOoC,gBAAkBpC,EAAOoC,gBAAgB75H,IAAIonI,GACpD3P,EAAO4P,eAAiB5P,EAAO4P,eAAeC,WAAW9/K,KAAK0/K,eAAe9E,eACxE56K,KAAKw/K,cAAc9D,UACpB17K,KAAKw/K,cAAc5E,cAAgB56K,KAAKw/K,cAAc5E,cAAcmF,MAAM,KAEzE//K,KAAK0/K,eAAehE,UACrB17K,KAAK0/K,eAAe9E,cAAgB56K,KAAK0/K,eAAe9E,cAAcmF,MAAM,IAEpF,CACJ,CAIAlQ,gBACI7vK,KAAKw/K,cAAgB,IAAI/F,IAAgB,GACzCz5K,KAAKw/K,cAAcf,iBAAiB,GACpCz+K,KAAKw/K,cAAcjB,oBAAoB,GACvCv+K,KAAKw/K,cAAc1C,uBAAuB,KAC1C98K,KAAK0/K,eAAiB,IAAIjG,IAAgB,GAC1Cz5K,KAAK0/K,eAAejB,iBAAiB,GACrCz+K,KAAK0/K,eAAenB,oBAAoB,GACxCv+K,KAAK0/K,eAAejF,eAAgB,EACpCz6K,KAAK0/K,eAAe5C,uBAAuB,KAC3C98K,KAAK0/K,eAAe/B,iBAAiB,SACzC,CAIAlN,gBACIzwK,KAAKw/K,cAAcL,gBACnBn/K,KAAK0/K,eAAeP,eACxB,CAKAx5C,eACI,MAAO,gCACX,CAKA+qC,gBACI,MAAO,iBACX,EAEJC,KAAiB2O,+BAAoCA,qCChF9C,MAAMU,WAA+BC,KAKxCpgL,YAAYowK,GACRpsK,MAAMosK,EACV,CAKAiQ,cACI,OAAAlgL,KAAKw4C,IAAI,IAAIo4H,IACN5wK,IACX,CAKAmgL,WACI,OAAAngL,KAAKw4C,IAAI,IAAI85H,IACNtyK,IACX,ECnBG,MAAMogL,WAAkBC,KAK3B,sBAAIzN,GACA,MAAM0N,EAAQtgL,KAAK8P,OAAOywK,SAASD,MACnC,OAAIA,EACOA,EAAM1N,mBAEV,CACX,CAKA,sBAAIA,CAAmBrgK,GACnB,MAAM+tK,EAAQtgL,KAAK8P,OAAOywK,SAASD,MAC/BA,IACAA,EAAM1N,mBAAqBrgK,EAEnC,CAIA,eAAIs+J,GACA,MAAM2P,EAAWxgL,KAAK8P,OAAOywK,SAASC,SACtC,OAAIA,EACOA,EAAS3P,YAEb,EACX,CAIA,eAAIA,CAAYt+J,GACZ,MAAMiuK,EAAWxgL,KAAK8P,OAAOywK,SAASC,SAClCA,IACAA,EAAS3P,YAAct+J,EAE/B,CAIA,gBAAIu+J,GACA,MAAM0P,EAAWxgL,KAAK8P,OAAOywK,SAASC,SACtC,OAAIA,EACOA,EAAS1P,aAEb,EACX,CACA,gBAAIA,CAAav+J,GACb,MAAMiuK,EAAWxgL,KAAK8P,OAAOywK,SAASC,SAClCA,IACAA,EAAS1P,aAAev+J,EAEhC,CAIA,UAAIw+J,GACA,MAAMyP,EAAWxgL,KAAK8P,OAAOywK,SAASC,SACtC,OAAIA,EACOA,EAASzP,OAEb,EACX,CAIA,UAAIA,CAAOx+J,GACP,MAAMiuK,EAAWxgL,KAAK8P,OAAOywK,SAASC,SAClCA,IACAA,EAASzP,OAASx+J,EAE1B,CAIA,YAAIy+J,GACA,MAAMwP,EAAWxgL,KAAK8P,OAAOywK,SAASC,SACtC,OAAIA,EACOA,EAASxP,SAEb,EACX,CAIA,YAAIA,CAASz+J,GACT,MAAMiuK,EAAWxgL,KAAK8P,OAAOywK,SAASC,SAClCA,IACAA,EAASxP,SAAWz+J,EAE5B,CAIA,YAAI2+J,GACA,MAAMsP,EAAWxgL,KAAK8P,OAAOywK,SAASC,SACtC,OAAIA,EACOA,EAAStP,SAEb,EACX,CAIA,YAAIA,CAAS3+J,GACT,MAAMiuK,EAAWxgL,KAAK8P,OAAOywK,SAASC,SAClCA,IACAA,EAAStP,SAAW3+J,EAE5B,CAIA,aAAI0+J,GACA,MAAMuP,EAAWxgL,KAAK8P,OAAOywK,SAASC,SACtC,OAAIA,EACOA,EAASvP,UAEb,EACX,CAIA,aAAIA,CAAU1+J,GACV,MAAMiuK,EAAWxgL,KAAK8P,OAAOywK,SAASC,SAClCA,IACAA,EAASvP,UAAY1+J,EAE7B,CAUA1S,YAAY0G,EAAM+R,EAAUgmG,EAAOmiE,GAA+B,GAC9D58K,MAAM0C,EAAM+R,EAAUgmG,EAAOmiE,GAM7BzgL,KAAK0gL,UAAY,IAAIngB,KAAQ,EAAG,EAAG,GAMnCvgK,KAAK2gL,gBAAkB,IAAIpgB,KAAQ,EAAG,EAAG,GAIzCvgK,KAAK4gL,iBAAkB,EAIvB5gL,KAAK6gL,cAAe,EAIpB7gL,KAAKqyK,gBAAkB9R,KAAQh/B,OAI/BvhI,KAAK+0K,WAAa,EAIlB/0K,KAAKwzK,YAAc,IAKnBxzK,KAAKg1K,YAAa,EAIlBh1K,KAAK80K,gBAAkBv3J,KAAKgrH,GAAK,EAKjCvoI,KAAKi1K,qBAAuB,EAC5Bj1K,KAAK8gL,qBAAsB,EAC3B9gL,KAAK+gL,aAAexgB,KAAQh/B,OAC5BvhI,KAAKghL,cAAgBzgB,KAAQh/B,OAC7BvhI,KAAKihL,aAAe1gB,KAAQh/B,OAE5BvhI,KAAKkhL,gBAAiB,EAItBlhL,KAAKmhL,2BAA6B,CAACC,EAAaC,EAAaC,EAAe,QAWxEC,CAVwBC,KACpBxhL,KAAKihL,aAAatb,SAAS6b,IAC3BxhL,KAAKihL,aAAapa,cAAc7mK,KAAK+gL,aAAc/gL,KAAKghL,eACpDhhL,KAAKghL,cAActrK,SAAW+rK,KAAeC,oBAC7C1hL,KAAKsY,SAASmqH,WAAWziI,KAAKghL,eAC1BhhL,KAAK2hL,WAAaL,GAClBthL,KAAK2hL,UAAUL,GAG3B,EACAC,CAAeF,EAAW,EAE9BrhL,KAAK8P,OAAS,IAAIkwK,GAAuBhgL,MACzCA,KAAK8P,OAAOowK,cAAcC,UAC9B,CAMAtQ,cAAc+R,EAAS9R,GAEnBA,EAAmBC,KAAMC,iCAAiCvzJ,WAC1Dzc,KAAK8P,OAAO+xK,cAAc/R,EAC9B,CAKAW,gBACIzwK,KAAK8P,OAAOgyK,gBACZ9hL,KAAKqyK,gBAAkB,IAAI9R,KAAQ,EAAG,EAAG,EAC7C,CAIA,iBAAIwhB,GACA,OAAO/hL,KAAKkhL,cAChB,CAIA,iBAAIa,CAAcC,GACdhiL,KAAKkhL,eAAkBh4H,MAAM84H,IAAe,EAAPA,CACzC,CAIAC,kBAAkBC,GACd,IAAIC,EAEAA,EADAniL,KAAKqlC,OACYk7H,KAAQv5B,qBAAqBhnI,KAAKsY,SAAUtY,KAAKqlC,OAAOsxG,kBAGxD32I,KAAKsY,SAE1B6pK,EAAeC,wBAAwB,EAAGpiL,KAAK0gL,UAAUl+J,EAAG,EAAGxiB,KAAK+gL,cACpE/gL,KAAK+gL,aAAat+C,WAAWziI,KAAK2gL,iBAClC,MAAM0B,EAAcriL,KAAK2kI,WAAW29C,qBAC/BtiL,KAAKuiL,YACNviL,KAAKuiL,UAAYF,EAAYG,kBAEjCxiL,KAAKuiL,UAAUE,QAAUziL,KAAK0gL,UAC9B1gL,KAAKuiL,UAAUR,cAAgB/hL,KAAKkhL,eAEpC,IAAIwB,EAAqBR,EAErBliL,KAAK6gL,eAEL6B,EAAqBR,EAAa1pI,IAAIx4C,KAAK2kI,WAAWg+C,UAE1DN,EAAYO,eAAe5iL,KAAK+gL,aAAc2B,EAAoB1iL,KAAKuiL,UAAW,EAAG,KAAMviL,KAAKmhL,2BAA4BnhL,KAAK6iL,SACrI,CAEAC,eACS9iL,KAAK+xK,kBACN/xK,KAAK+xK,gBAAkBxR,KAAQh/B,OAC/BvhI,KAAKoyK,sBAAwB7R,KAAQh/B,QAEzCvhI,KAAK8P,OAAO0gK,cACZ3sK,MAAMi/K,cACV,CAIA,sBAAIC,CAAmBxwK,GACnBvS,KAAK8gL,oBAAsBvuK,CAC/B,CAIA,sBAAIwwK,GACA,OAAO/iL,KAAK8gL,mBAChB,CAEAkC,uBACI,OAAOhjL,KAAK8gL,qBAAuBvjK,KAAKkkH,IAAIzhI,KAAKqyK,gBAAgBz/J,GAAK,GAAK2K,KAAKkkH,IAAIzhI,KAAKqyK,gBAAgB7vJ,GAAK,GAAKjF,KAAKkkH,IAAIzhI,KAAKqyK,gBAAgBnoG,GAAK,CAC1J,CAEA+4G,kBACQjjL,KAAK4gL,iBAAmB5gL,KAAK2kI,WAAWu+C,kBACxCljL,KAAKiiL,kBAAkBjiL,KAAKqyK,iBAG5BxuK,MAAMo/K,iBAEd,CAMAxP,YAAY0P,GACR,MAAMv3B,EAAQ5rJ,KAAK+0K,WAEb4C,EAAQ/rB,EADJ5rJ,KAAK6oI,SAAS3+D,EAIpB3sD,KAAKkkH,IAAIk2C,IAFE,OAIX33K,KAAK6oI,SAAS3+D,GAAKytG,EAAQwL,EAEvB5lK,KAAKkkH,IAAImqB,EAAQ5rJ,KAAK6oI,SAAS3+D,IANxB,OAOPlqE,KAAK6oI,SAAS3+D,EAAI0hF,GAG9B,CAIAnqG,UACIzhD,KAAK8P,OAAOmiC,QACZpuC,MAAM49C,SACV,CAKAkkF,eACI,MAAO,WACX,GAEJk9B,SAAW,IACPugB,UACDhD,GAAU77I,UAAW,iBAAa,IAAM,EAC3Cs+H,OAAW,IACPugB,UACDhD,GAAU77I,UAAW,uBAAmB,IAAM,EACjDs+H,OAAW,IACPz9B,UACDg7C,GAAU77I,UAAW,uBAAmB,IAAM,EACjDs+H,OAAW,IACPz9B,UACDg7C,GAAU77I,UAAW,oBAAgB,IAAM,EAE9Cs6H,OAAc,oBAAqBuhB,mBCrW5B,MAAMiD,WAAkCpD,KAK3CpgL,YAAYowK,GACRpsK,MAAMosK,EACV,CAKAiQ,cACI,OAAAlgL,KAAKw4C,IAAI,IAAI28H,IACNn1K,IACX,CAKAsjL,gBACI,OAAAtjL,KAAKw4C,IAAI,IAAI2+H,IACNn3K,IACX,CAKAujL,cACI,OAAAvjL,KAAKw4C,IAAI,IAAIs/H,IACN93K,IACX,CAKAmvK,yBACIvO,YAAOC,KAAK,mEACL7gK,IACX,ECzCJwjL,KAAKC,mBAAmB,eAAgB,CAACl9K,EAAM+3G,IACpC,IAAM,IAAIolE,GAAan9K,EAAMg6J,KAAQh/B,OAAQjjB,IAExDklE,KAAKC,mBAAmB,kBAAmB,CAACl9K,EAAM+3G,IACvC,IAAM,IAAIqlE,GAAgBp9K,EAAM,EAAG,EAAG,EAAK,KAAM+3G,IAOrD,MAAMolE,WAAqBrD,KAS9BxgL,YAAY0G,EAAM+R,EAAUgmG,EAAOslE,EAAe,MAC9C//K,MAAM0C,EAAM+R,EAAUgmG,GAItBt+G,KAAKk3K,OAAS,GAMdl3K,KAAK6jL,iBAAmB,KAMxB7jL,KAAK8jL,iBAAmB,KAIxB9jL,KAAKg3K,eAAiB,EAKtBh3K,KAAK+jL,yBAA2B,KAKhC/jL,KAAKgkL,yBAA2B,KAKhChkL,KAAK82K,aAAe,EAKpB92K,KAAKikL,uBAAyB,KAK9BjkL,KAAKkkL,uBAAyB,KAI9BlkL,KAAKmkL,mBAAqB,IAI1BnkL,KAAKokL,eAAiB,GACtBpkL,KAAK4jL,aAAeA,EACpB5jL,KAAK8P,OAAS,IAAIuzK,GAA0BrjL,MAC5CA,KAAK8P,OAAOowK,cAAcoD,gBAAgBC,aAG9C,CACAc,QAAQC,GACJ,IAAKA,EACD,OAEJ,MAAMC,EAAYC,KAAW/jB,OAAO,GACpC6jB,EAAaG,2BAA2B5Y,iBAAiB0Y,GACzD,MAAMG,EAAYnnK,KAAKs5H,MAAM0tC,EAAUv8G,EAAE,GAAIu8G,EAAUv8G,EAAE,KACnD28G,EAAU5U,KAAMjnC,UAAU9oI,KAAKg3K,gBAAkB0N,EACjDrhB,EAAiBihB,EAAanf,sBAC9Byf,EAAUvhB,EAAezwJ,EAAI2K,KAAKkrH,IAAIk8C,GAAW3kL,KAAKk3K,OACtD2N,EAAUxhB,EAAen5F,EAAI3sD,KAAKirH,IAAIm8C,GAAW3kL,KAAKk3K,OAI5D,IAAI4N,IAHOF,EAAU5kL,KAAKsY,SAAS1F,GAGrB5S,KAAKmkL,mBAAqB,EACpCY,IAHO1hB,EAAe7gJ,EAAIxiB,KAAK82K,aAAe92K,KAAKsY,SAASkK,GAGlDxiB,KAAKmkL,mBACfa,IAHOH,EAAU7kL,KAAKsY,SAAS4xD,GAGrBlqE,KAAKmkL,mBAAqB,GACpCW,GAAK9kL,KAAKokL,gBAAkBU,IAAM9kL,KAAKokL,kBACvCU,GAAKA,GAAK,GAAK9kL,KAAKokL,eAAiBpkL,KAAKokL,iBAE1CW,GAAK/kL,KAAKokL,gBAAkBW,IAAM/kL,KAAKokL,kBACvCW,GAAKA,GAAK,GAAK/kL,KAAKokL,eAAiBpkL,KAAKokL,iBAE1CY,GAAKhlL,KAAKokL,gBAAkBY,IAAMhlL,KAAKokL,kBACvCY,GAAKA,GAAK,GAAKhlL,KAAKokL,eAAiBpkL,KAAKokL,gBAE9CpkL,KAAKsY,SAAW,IAAIioJ,KAAQvgK,KAAKsY,SAAS1F,EAAIkyK,GAAI9kL,KAAKsY,SAASkK,EAAIuiK,GAAI/kL,KAAKsY,SAAS4xD,EAAI86G,IAC1FhlL,KAAKilL,UAAU5hB,EACnB,CAMAwM,cAAc+R,EAAS9R,GAEnBA,EAAmBC,KAAMC,iCAAiCvzJ,WAC1Dzc,KAAK8P,OAAO+xK,cAAc/R,GAC1B9vK,KAAKklL,OAAS,MAClB,CAIAzU,gBACIzwK,KAAK8P,OAAOgyK,gBACR9hL,KAAKklL,QACLllL,KAAKklL,QAEb,CAEApC,eACI9iL,KAAK8P,OAAO0gK,cACZxwK,KAAKmlL,eACLthL,MAAMi/K,eACF9iL,KAAK4jL,cACL5jL,KAAKqkL,QAAQrkL,KAAK4jL,aAE1B,CACAuB,eACkC,OAA1BnlL,KAAK6jL,kBAA6B7jL,KAAKk3K,OAASl3K,KAAK6jL,mBACrD7jL,KAAKk3K,OAASl3K,KAAK6jL,kBAEO,OAA1B7jL,KAAK8jL,kBAA6B9jL,KAAKk3K,OAASl3K,KAAK8jL,mBACrD9jL,KAAKk3K,OAASl3K,KAAK8jL,kBAEa,OAAhC9jL,KAAKikL,wBAAmCjkL,KAAK82K,aAAe92K,KAAKikL,yBACjEjkL,KAAK82K,aAAe92K,KAAKikL,wBAEO,OAAhCjkL,KAAKkkL,wBAAmClkL,KAAK82K,aAAe92K,KAAKkkL,yBACjElkL,KAAK82K,aAAe92K,KAAKkkL,wBAES,OAAlClkL,KAAK+jL,0BAAqC/jL,KAAKg3K,eAAiBh3K,KAAK+jL,2BACrE/jL,KAAKg3K,eAAiBh3K,KAAK+jL,0BAEO,OAAlC/jL,KAAKgkL,0BAAqChkL,KAAKg3K,eAAiBh3K,KAAKgkL,2BACrEhkL,KAAKg3K,eAAiBh3K,KAAKgkL,yBAEnC,CAKAr+C,eACI,MAAO,cACX,GAEJk9B,SAAW,IACPz9B,UACDs+C,GAAan/I,UAAW,cAAU,IAAM,EAC3Cs+H,OAAW,IACPz9B,UACDs+C,GAAan/I,UAAW,wBAAoB,IAAM,EACrDs+H,OAAW,IACPz9B,UACDs+C,GAAan/I,UAAW,wBAAoB,IAAM,EACrDs+H,OAAW,IACPz9B,UACDs+C,GAAan/I,UAAW,sBAAkB,IAAM,EACnDs+H,OAAW,IACPz9B,UACDs+C,GAAan/I,UAAW,gCAA4B,IAAM,EAC7Ds+H,OAAW,IACPz9B,UACDs+C,GAAan/I,UAAW,gCAA4B,IAAM,EAC7Ds+H,OAAW,IACPz9B,UACDs+C,GAAan/I,UAAW,oBAAgB,IAAM,EACjDs+H,OAAW,IACPz9B,UACDs+C,GAAan/I,UAAW,8BAA0B,IAAM,EAC3Ds+H,OAAW,IACPz9B,UACDs+C,GAAan/I,UAAW,8BAA0B,IAAM,EAC3Ds+H,OAAW,IACPz9B,UACDs+C,GAAan/I,UAAW,0BAAsB,IAAM,EACvDs+H,OAAW,IACPz9B,UACDs+C,GAAan/I,UAAW,sBAAkB,IAAM,EACnDs+H,OAAW,IACPuiB,OAAyB,mBAC1B1B,GAAan/I,UAAW,oBAAgB,GAMpC,MAAMo/I,WAAwBtD,KAWjCxgL,YAAY0G,EAEZgkI,EAEAqS,EAEAs6B,EAEA7pJ,EAAQixF,GACJz6G,MAAM0C,EAAMg6J,KAAQh/B,OAAQjjB,GAC5Bt+G,KAAKuqI,MAAQA,EACbvqI,KAAK48I,KAAOA,EACZ58I,KAAKk3K,OAASA,EACdl3K,KAAKqlL,sBAAwB9kB,KAAQh/B,OACrCvhI,KAAKslL,cAAcj4J,EACvB,CAKAi4J,cAAcj4J,GACVrtB,KAAKulL,YAAcl4J,EACnBrtB,KAAKqkL,SACT,CACAA,UACI,IAAKrkL,KAAKulL,YACN,OAEJvlL,KAAKqlL,sBAAsBzyK,EAAI5S,KAAKk3K,OAAS35J,KAAKirH,IAAIxoI,KAAKuqI,OAAShtH,KAAKirH,IAAIxoI,KAAK48I,MAClF58I,KAAKqlL,sBAAsB7iK,EAAIxiB,KAAKk3K,OAAS35J,KAAKkrH,IAAIzoI,KAAK48I,MAC3D58I,KAAKqlL,sBAAsBn7G,EAAIlqE,KAAKk3K,OAAS35J,KAAKkrH,IAAIzoI,KAAKuqI,OAAShtH,KAAKirH,IAAIxoI,KAAK48I,MAClF,MAAMymB,EAAiBrjK,KAAKulL,YAAYpgB,sBACxCnlK,KAAKsY,SAAW+qJ,EAAe7qH,IAAIx4C,KAAKqlL,uBACxCrlL,KAAKilL,UAAU5hB,EACnB,CAEAyf,eACIj/K,MAAMi/K,eACN9iL,KAAKqkL,SACT,CAMA1+C,eACI,MAAO,iBACX,GAGJk5B,SAAc,uBAAwB6kB,KAAY,EAClD7kB,OAAc,0BAA2B8kB,oBCnRzCH,KAAKC,mBAAmB,gBAAiB,CAACl9K,EAAM+3G,IACrC,IAAM,IAAIknE,GAAcj/K,EAAMg6J,KAAQh/B,OAAQjjB,IAOlD,MAAMknE,WAAsBC,KAU/B5lL,YAAY0G,EAAM+R,EAAUgmG,GACxBz6G,MAAM0C,EAAM+R,EAAUgmG,EAC1B,CAKAqnB,eACI,MAAO,eACX,8BCzBG,MAAM+/C,WAA4BC,KAKrChgD,eACI,MAAO,qBACX,CAUA9lI,YAAY0G,EAAMgmB,EAASq5J,EAAYC,EAAcn7C,EAAQo7C,GACzDjiL,MAAM0C,EAAM,WAAY,KAAM,CAAC,eAAgBgmB,EAASq5J,EAAW,GAAIC,EAAcn7C,EAAQo7C,GAC7F9lL,KAAK+lL,eAAiBH,EAAW,GAAGI,gBACpChmL,KAAK4rI,kBAAkBpzF,IAAKz8B,IACxBA,EAAOkqK,0BAA0B,cAAejmL,KAAK+lL,eAAc,EAE3E,CACAG,eAAeC,EAAWxqK,GAClBwqK,GACAnmL,KAAKomL,cAAe,EACpBzqK,EAAKsC,KAAKtG,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,UAGV1qK,EAAKsC,KAAKtG,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,SAEdxiL,MAAMqiL,eAAeC,EAAWxqK,EACpC,ECjCG,SAAS2qK,GAA+BrW,GAC3CA,EAAOsW,YAAY,GAAGP,gBAAkB,IAAIQ,KAAgBvW,EAAO1pK,KAAO,YAAa,EAAK0pK,EAAOsW,YAAY,IAC/GtW,EAAOsW,YAAY,GAAGP,gBAAkB,IAAIN,GAAoBzV,EAAO1pK,KAAO,YAAa,EAAK0pK,EAAOsW,YAC3G,EDgCA1nB,SAAc,8BAA+B6mB,IEnC7ClC,KAAKC,mBAAmB,0BAA2B,CAACl9K,EAAM+3G,EAAO/xF,IACtD,IAAM,IAAIk6J,GAAwBlgL,EAAM,EAAG,EAAG,EAAKg6J,KAAQh/B,OAAQh1G,EAAQm6J,oBAAqBpoE,IAMpG,MAAMmoE,WAAgCE,IAWzC9mL,YAAY0G,EAAMgkI,EAAOqS,EAAMs6B,EAAQ7pJ,EAAQu5J,EAAoBtoE,GAC/Dz6G,MAAM0C,EAAMgkI,EAAOqS,EAAMs6B,EAAQ7pJ,EAAQixF,GACzCt+G,KAAK6mL,YAAc,IAAMP,GAA+BtmL,MACxDA,KAAK4mL,mBAAqBA,EAC1B5mL,KAAK8mL,iBAAiBC,IAAOC,+BAAgC,CAAEJ,mBAAoBA,GACvF,CAKAjhD,eACI,MAAO,yBACX,EC9BJ69C,KAAKC,mBAAmB,qBAAsB,CAACl9K,EAAM+3G,EAAO/xF,IACjD,IAAM,IAAI06J,GAAmB1gL,EAAMg6J,KAAQh/B,OAAQh1G,EAAQm6J,oBAAqBpoE,IAMpF,MAAM2oE,WAA2BC,KAQpCrnL,YAAY0G,EAAM+R,EAAUsuK,EAAoBtoE,GAC5Cz6G,MAAM0C,EAAM+R,EAAUgmG,GACtBt+G,KAAK6mL,YAAc,IAAMP,GAA+BtmL,MACxDA,KAAK4mL,mBAAqBA,EAC1B5mL,KAAK8mL,iBAAiBC,IAAOC,+BAAgC,CAAEJ,mBAAoBA,GACvF,CAKAjhD,eACI,MAAO,oBACX,EC3BJ69C,KAAKC,mBAAmB,wBAAyB,CAACl9K,EAAM+3G,EAAO/xF,IACpD,IAAM,IAAI46J,GAAsB5gL,EAAMg6J,KAAQh/B,OAAQh1G,EAAQm6J,oBAAqBpoE,IAMvF,MAAM6oE,WAA8B3B,GAQvC3lL,YAAY0G,EAAM+R,EAAUsuK,EAAoBtoE,GAC5Cz6G,MAAM0C,EAAM+R,EAAUgmG,GACtBt+G,KAAK6mL,YAAc,IAAMP,GAA+BtmL,MACxDA,KAAK4mL,mBAAqBA,EAC1B5mL,KAAK8mL,iBAAiBC,IAAOC,+BAAgC,CAAEJ,mBAAoBA,GACvF,CAKAjhD,eACI,MAAO,uBACX,EC3BJ69C,KAAKC,mBAAmB,0BAA2B,CAACl9K,EAAM+3G,EAAO/xF,IACtD,IAAM,IAAI66J,GAAwB7gL,EAAMg6J,KAAQh/B,OAAQh1G,EAAQm6J,oBAAqBpoE,IAMzF,MAAM8oE,WAAgC3B,KAQzC5lL,YAAY0G,EAAM+R,EAAUsuK,EAAoBtoE,GAC5Cz6G,MAAM0C,EAAM+R,EAAUgmG,GACtBt+G,KAAK6mL,YAAc,IAAMP,GAA+BtmL,MACxDA,KAAK4mL,mBAAqBA,EAC1B5mL,KAAK8mL,iBAAiBC,IAAOC,+BAAgC,CAAEJ,mBAAoBA,GACvF,CAKAjhD,eACI,MAAO,yBACX,kBCZJ0hD,KAAYC,aAAiB,iCAjBb,yjCCGT,MAAMC,WAA0C5B,KAKnDhgD,eACI,MAAO,mCACX,CAWA9lI,YAAY0G,EAAMq/K,EAAY4B,EAAqBC,EAA0B5B,EAAcn7C,EAAQo7C,GAC/FjiL,MAAM0C,EAAM,wBAAyB,CAAC,YAAa,CAAC,eAAgB,EAAGq/K,EAAW,GAAIC,EAAcn7C,EAAQo7C,EAAU2B,EAA2B,uCAAyCD,EAAsB,uCAAoC3kL,GACpP7C,KAAK+lL,eAAiBH,EAAW,GAAGI,gBACpChmL,KAAK0nL,UAAY,IAAIxL,KAAQ,EAAIl8K,KAAKy6B,MAAO,EAAIz6B,KAAK06B,QACtD16B,KAAK2nL,wBAAwBnvI,IAAI,KAC7Bx4C,KAAK0nL,UAAY,IAAIxL,KAAQ,EAAIl8K,KAAKy6B,MAAO,EAAIz6B,KAAK06B,OAAM,GAEhE16B,KAAK4rI,kBAAkBpzF,IAAKz8B,KACxBA,GAAOkqK,0BAA0B,cAAejmL,KAAK+lL,gBACrDhqK,GAAO+lJ,UAAU,WAAY9hK,KAAK0nL,UAAU90K,EAAG5S,KAAK0nL,UAAUllK,EAAC,EAEvE,EC5BG,SAASolK,GAAuB3X,GACnC,MAAMuX,EAAsBvX,EAAO4X,gBAAkBd,IAAOe,2CAA6C7X,EAAO4X,gBAAkBd,IAAOgB,2CACnIC,EAAa/X,EAAO4X,gBAAkBd,IAAOgB,2CAC9B9X,EAAO4X,gBAAkBd,IAAOkB,kCAGjDhY,EAAOsW,YAAY,GAAGP,gBAAkB,IAAIQ,KAAgBvW,EAAO1pK,KAAO,YAAa,EAAK0pK,EAAOsW,YAAY,IAC/GtW,EAAOsW,YAAY,GAAGP,gBAAkB,IAAIuB,GAAkCtX,EAAO1pK,KAAO,mBAAoB0pK,EAAOsW,aAAa,GAAO,KAI3ItW,EAAOsW,YAAYyB,EAAa,EAAI,GAAGl7C,SAAW,IAAIo7C,IAAS,EAAG,EAAGV,EAAsB,GAAM,EAAKA,EAAsB,EAAM,IAClIvX,EAAOsW,YAAYyB,EAAa,EAAI,GAAGl7C,SAAW,IAAIo7C,IAASV,EAAsB,GAAM,EAAGA,EAAsB,EAAI,GAAKA,EAAsB,GAAM,EAAKA,EAAsB,EAAM,IAElM,CChBAhE,KAAKC,mBAAmB,8BAA+B,CAACl9K,EAAM+3G,EAAO/xF,IAC1D,IAAM,IAAI47J,GAA4B5hL,EAAM,EAAG,EAAG,EAAKg6J,KAAQh/B,OAAQh1G,EAAQm6J,oBAAqBn6J,EAAQ67J,yBAA0B9pE,IAM1I,MAAM6pE,WAAoCxB,IAY7C9mL,YAAY0G,EAAMgkI,EAAOqS,EAAMs6B,EAAQ7pJ,EAAQu5J,EAAoBwB,EAA0B9pE,IACzFz6G,MAAM0C,EAAMgkI,EAAOqS,EAAMs6B,EAAQ7pJ,EAAQixF,IACzCt+G,KAAK6mL,YAAc,IAAMe,GAAuB5nL,MAChDA,KAAK4mL,mBAAqBA,EAC1B5mL,KAAKooL,yBAA2BA,EAChCpoL,KAAK8mL,iBAAiBsB,EAA2BrB,IAAOe,0CAA4Cf,IAAOsB,gCAAiC,CACxIzB,mBAAoBA,GAE5B,CAKAjhD,eACI,MAAO,6BACX,EClCJ69C,KAAKC,mBAAmB,yBAA0B,CAACl9K,EAAM+3G,EAAO/xF,IACrD,IAAM,IAAI+7J,GAAuB/hL,EAAMg6J,KAAQh/B,OAAQh1G,EAAQm6J,oBAAqBn6J,EAAQ67J,yBAA0B9pE,IAM1H,MAAMgqE,WAA+BpB,KASxCrnL,YAAY0G,EAAM+R,EAAUsuK,EAAoBwB,EAA0B9pE,GACtEz6G,MAAM0C,EAAM+R,EAAUgmG,GACtBt+G,KAAK6mL,YAAc,IAAMe,GAAuB5nL,MAChDA,KAAK4mL,mBAAqBA,EAC1B5mL,KAAKooL,yBAA2BA,EAChCpoL,KAAK8mL,iBAAiBsB,EAA2BrB,IAAOe,0CAA4Cf,IAAOsB,gCAAiC,CACxIzB,mBAAoBA,GAE5B,CAKAjhD,eACI,MAAO,wBACX,EC/BJ69C,KAAKC,mBAAmB,4BAA6B,CAACl9K,EAAM+3G,EAAO/xF,IACxD,IAAM,IAAIg8J,GAA0BhiL,EAAMg6J,KAAQh/B,OAAQh1G,EAAQm6J,oBAAqBn6J,EAAQ67J,yBAA0B9pE,IAM7H,MAAMiqE,WAAkC/C,GAS3C3lL,YAAY0G,EAAM+R,EAAUsuK,EAAoBwB,EAA0B9pE,GACtEz6G,MAAM0C,EAAM+R,EAAUgmG,GACtBt+G,KAAK6mL,YAAc,IAAMe,GAAuB5nL,MAChDA,KAAK4mL,mBAAqBA,EAC1B5mL,KAAKooL,yBAA2BA,EAChCpoL,KAAK8mL,iBAAiBsB,EAA2BrB,IAAOe,0CAA4Cf,IAAOsB,gCAAiC,CACxIzB,mBAAoBA,GAE5B,CAKAjhD,eACI,MAAO,2BACX,EC/BJ69C,KAAKC,mBAAmB,yBAA0B,CAACl9K,EAAM+3G,EAAO/xF,IACrD,IAAM,IAAIi8J,GAA4BjiL,EAAMg6J,KAAQh/B,OAAQh1G,EAAQm6J,oBAAqBn6J,EAAQ67J,yBAA0B9pE,IAM/H,MAAMkqE,WAAoC/C,KAS7C5lL,YAAY0G,EAAM+R,EAAUsuK,EAAoBwB,EAA0B9pE,GACtEz6G,MAAM0C,EAAM+R,EAAUgmG,GACtBt+G,KAAK6mL,YAAc,IAAMe,GAAuB5nL,MAChDA,KAAK4mL,mBAAqBA,EAC1B5mL,KAAKooL,yBAA2BA,EAChCpoL,KAAK8mL,iBAAiBsB,EAA2BrB,IAAOe,0CAA4Cf,IAAOsB,gCAAiC,CACxIzB,mBAAoBA,GAE5B,CAKAjhD,eACI,MAAO,6BACX,EChCJ69C,KAAKC,mBAAmB,yBAA0B,CAACl9K,EAAM+3G,IAC9C,IAAM,IAAImqE,GAAuBliL,EAAMg6J,KAAQh/B,OAAQjjB,IAQ3D,MAAMmqE,WAA+BvB,KAUxCrnL,YAAY0G,EAAM+R,EAAUgmG,GACxBz6G,MAAM0C,EAAM+R,EAAUgmG,GACtBt+G,KAAK8P,OAAOuvK,oBAChB,CAKA15C,eACI,MAAO,wBACX,6BC1BJ69C,KAAKC,mBAAmB,qCAAsC,CAACl9K,EAAM+3G,IAC1D,IAAM,IAAIoqE,GAAmCniL,EAAM,EAAG,EAAG,EAAKg6J,KAAQh/B,OAAQjjB,IAMlF,MAAMoqE,WAA2C/B,IAYpD9mL,YAAY0G,EAAMgkI,EAAOqS,EAAMs6B,EAAQ7pJ,EAAQixF,EAAOqqE,GAAuB,EAAMC,GAAkBC,KAAgBC,cACjHjlL,MAAM0C,EAAMgkI,EAAOqS,EAAMs6B,EAAQ7pJ,EAAQixF,GACzCt+G,KAAK6mL,YAAekC,OAAcC,MAAahpL,KAAM+oL,IACrDH,GAAgBD,qBAAuBA,EACvC3oL,KAAK8mL,iBAAiBC,IAAOkC,YAAa,CAAEL,gBAAiBA,KAC7D5oL,KAAK8P,OAAOq/J,wBAChB,CAKAxpC,eACI,MAAO,oCACX,2BCjCJ69C,KAAKC,mBAAmB,mCAAoC,CAACl9K,EAAM+3G,IACxD,IAAM,IAAI4qE,GAAiC3iL,EAAMg6J,KAAQh/B,OAAQjjB,IAMrE,MAAM4qE,WAAyCC,KASlDtpL,YAAY0G,EAAM+R,EAAUgmG,EAAOqqE,GAAuB,EAAMC,EAAkBC,KAAgBC,cAC9FjlL,MAAM0C,EAAM+R,EAAUgmG,EAAOqqE,EAAsBC,GACnD5oL,KAAK6mL,YAAekC,MAAcC,MAAahpL,KAAM+oL,GACrD/oL,KAAK8P,OAAOs5K,YAChB,CAKAzjD,eACI,MAAO,kCACX,WC/BJ,MAqBM0jD,GAAiB,WACnB,MAAMhtK,EAAS,CAAE+oB,KAAM,EAAGkkJ,OAAO,GACjC,OAAO,SAAU16K,EAAG2G,EAAG9G,EAAG86K,GACtBltK,EAAO+oB,KAAO,EACd/oB,EAAOitK,OAAQ,EACf,MAAM1kB,EAAcrvJ,EAAIA,EAAI,EAAM3G,EAAIH,EACtC,GAAIm2J,EAAc,EACd,OAAOvoJ,EAEX,MAAMmtK,EAAQjsK,KAAKmkH,KAAKkjC,GACxB,IAAI6kB,IAAOl0K,EAAIi0K,IAAU,EAAM56K,GAC3B86K,KAAOn0K,EAAIi0K,IAAU,EAAM56K,GAC/B,GAAI66K,EAAKC,GAAI,CACT,MAAM7tK,GAAO6tK,GACbA,GAAKD,EACLA,EAAK5tK,EACT,CACA,OAAI4tK,EAAK,GAAKA,EAAKF,GACfltK,EAAO+oB,KAAOqkJ,EACdptK,EAAOitK,OAAQ,EACRjtK,IAEPqtK,GAAK,GAAKA,GAAKH,IACfltK,EAAO+oB,KAAOskJ,GACdrtK,EAAOitK,OAAQ,GACRjtK,EAGf,CACJ,CA7BuB,GA+BhB,IAAMstK,GAAQ,MAAd,MAAMA,EACT9pL,cAGIG,KAAK4pL,gBAAkBrpB,KAAQh/B,OAC/BvhI,KAAK6pL,wBAA0BtpB,KAAQh/B,OACvCvhI,KAAK8pL,YAAcvpB,KAAQh/B,OAC3BvhI,KAAK+pL,aAAexpB,KAAQh/B,OAC5BvhI,KAAKgqL,aAAezpB,KAAQh/B,OAC5BvhI,KAAKiqL,aAAe1pB,KAAQh/B,OAC5BvhI,KAAKkqL,MAAQ3pB,KAAQh/B,OACrBvhI,KAAKmqL,cAAgB5pB,KAAQh/B,OAC7BvhI,KAAKoqL,kBAAoB7pB,KAAQh/B,OACjCvhI,KAAKqqL,kBAAoB9pB,KAAQh/B,OACjCvhI,KAAKsqL,oBAAsB/pB,KAAQh/B,OAEnCvhI,KAAKyiL,QAAUliB,KAAQgqB,MAEvBvqL,KAAKwqL,OAAS,EAEdxqL,KAAKyqL,gBAAkBlqB,KAAQh/B,OAC/BvhI,KAAK0qL,eAAiBnqB,KAAQh/B,OAC9BvhI,KAAK2qL,oBAAsBpqB,KAAQh/B,OACnCvhI,KAAKkhL,gBAAiB,CAC1B,CACA,iBAAIa,GACA,OAAO/hL,KAAKkhL,cAChB,CACA,iBAAIa,CAAcC,GACdhiL,KAAKkhL,eAAkBh4H,MAAM84H,IAAe,EAAPA,CACzC,CAIA,oBAAI4I,GACA,OAAO5qL,KAAKqqL,iBAChB,CAKAQ,YAAY5iJ,EAAQ6lH,EAAK/vI,GACrB/d,KAAK8qL,UAAYh9B,EACjB9tJ,KAAK+qL,uBAAyB/qL,KAAK8qL,UAAU7oD,gBAC7C,MAAMp5F,EAAMtrB,KAAKmkH,KAAK1hI,KAAK+qL,wBACf,IAARliJ,GAAqB,IAARA,EACb7oC,KAAK2qL,oBAAoB3Y,eAAelkB,EAAIvxI,GAAIuxI,EAAIk9B,GAAIl9B,EAAIm9B,IAG5Dn9B,EAAIo9B,WAAW,EAAMriJ,EAAK7oC,KAAK2qL,qBAEnC3qL,KAAKmrL,WAAaljJ,EAClBA,EAAOs/H,cAAcvnK,KAAKyiL,QAASziL,KAAKyqL,iBACxC38B,EAAIyZ,cAAcvnK,KAAKyiL,QAASziL,KAAK0qL,gBACrC1qL,KAAKorL,qBAAuBprL,KAAK0qL,eAAeh1K,SAChD1V,KAAKqrL,SAAWttK,EAChB/d,KAAKsrL,gBAAiB,CAC1B,CAIAC,sBAAsBvtF,EAAOwtF,EAAIC,EAAIC,EAAI1rK,GACrCwrK,EAAG3kB,cAAc7oE,EAAOh+F,KAAK8pL,aAC7B2B,EAAG5kB,cAAc7oE,EAAOh+F,KAAK+pL,cAC7BxpB,KAAQuG,WAAW9mK,KAAK8pL,YAAa9pL,KAAK+pL,aAAc/pL,KAAKiqL,cAC7D,IAAIlmJ,EAAIw8H,KAAQr+B,IAAIliI,KAAKiqL,aAAcjqK,GAOvC,QANI+jB,EAAI,IAGR2nJ,EAAG7kB,cAAc7oE,EAAOh+F,KAAKgqL,cAC7BzpB,KAAQuG,WAAW9mK,KAAK+pL,aAAc/pL,KAAKgqL,aAAchqL,KAAKiqL,cAC9DlmJ,EAAIw8H,KAAQr+B,IAAIliI,KAAKiqL,aAAcjqK,GAC/B+jB,EAAI,MAGRw8H,KAAQuG,WAAW9mK,KAAKgqL,aAAchqL,KAAK8pL,YAAa9pL,KAAKiqL,cAC7DlmJ,EAAIw8H,KAAQr+B,IAAIliI,KAAKiqL,aAAcjqK,GAC5B+jB,GAAK,EAChB,CAIA4nJ,gBAAgBC,EAAcC,EAAcC,EAAQC,GAChD,MAAMnqD,EAAW2+B,KAAQ+E,SAAStlK,KAAKyqL,gBAAiBmB,GAClDnvI,EAAMl/B,KAAKk/B,IAAIz8C,KAAKyiL,QAAQ7vK,EAAG5S,KAAKyiL,QAAQjgK,EAAGxiB,KAAKyiL,QAAQv4G,GAIlE,QAHI03D,EAAW5hI,KAAKorL,qBAAuB3uI,EAAMovI,IAzI5BG,EAACC,EAAQC,EAAQN,EAAcC,MACpDI,EAAOr5K,EAAIg5K,EAAah5K,EAAIi5K,GAG5BD,EAAah5K,EAAIi5K,EAAeK,EAAOt5K,GAGvCq5K,EAAOzpK,EAAIopK,EAAappK,EAAIqpK,GAG5BD,EAAappK,EAAIqpK,EAAeK,EAAO1pK,GAGvCypK,EAAO/hH,EAAI0hH,EAAa1hH,EAAI2hH,GAG5BD,EAAa1hH,EAAI2hH,EAAeK,EAAOhiH,GA4HlC8hH,CAAqBF,EAAQC,EAAQ/rL,KAAKyqL,gBAAiBzqL,KAAKorL,qBAAuB3uI,GAIhG,CAIA0vI,cAAcC,EAAWC,EAAoBC,EAAIC,EAAIC,EAAIC,EAAaC,IAClE,IAAIC,GACAC,IAAkB,EAEjBP,IACDA,EAAqB,IAEpBA,EAAmBD,KACpBC,EAAmBD,GAAa,IAAI5nD,KAAM,EAAG,EAAG,EAAG,GACnD6nD,EAAmBD,GAAWS,eAAeP,EAAIC,EAAIC,IAEzD,MAAMM,GAAgBT,EAAmBD,GACzC,IAAKK,IAAgBK,GAAcC,gBAAgB/sL,KAAK2qL,oBAAqB,GACzE,OAEJ,MAAMqC,GAA4BF,GAAcG,iBAAiBjtL,KAAKmrL,YAChE+B,GAAoB3sB,KAAQr+B,IAAI4qD,GAAcK,OAAQntL,KAAK8qL,WAGjE,GAAInB,EAASyD,kBAAoBF,GAAoB,KACjD,OAEJ,GAAyB,GAArBA,GAAwB,CACxB,GAAI3vK,KAAKkkH,IAAIurD,KAA8B,EACvC,OAEJJ,IAAkB,EAClBD,GAAK,CACT,KACK,CACDA,KAAM,EAAOK,IAA6BE,GAC1C,IAAI3/H,IAAM,EAAMy/H,IAA6BE,GAC7C,GAAIP,GAAKp/H,GAAI,CACT,MAAM1xC,GAAO0xC,GACbA,GAAKo/H,GACLA,GAAK9wK,EACT,CACA,GAAI8wK,GAAK,GAAOp/H,GAAK,EACjB,OAEAo/H,GAAK,IACLA,GAAK,GAELA,GAAK,IACLA,GAAK,EAEb,CACA3sL,KAAK4pL,gBAAgB5X,eAAe,EAAG,EAAG,GAC1C,IAAIsX,IAAQ,EACRjhK,GAAI,EAWR,GAVKukK,KACD5sL,KAAKmrL,WAAWtkB,cAAcimB,GAAcK,OAAQntL,KAAK6pL,yBACzD7pL,KAAK8qL,UAAUI,WAAWyB,GAAI3sL,KAAK8pL,aACnC9pL,KAAK6pL,wBAAwBpnD,WAAWziI,KAAK8pL,aACzC9pL,KAAKurL,sBAAsBvrL,KAAK6pL,wBAAyByC,EAAIC,EAAIC,EAAIM,GAAcK,UACnF7D,IAAQ,EACRjhK,GAAIskK,GACJ3sL,KAAK4pL,gBAAgBjkB,SAAS3lK,KAAK6pL,4BAGtCP,GAAO,CACR,IAAI16K,GAAI5O,KAAK+qL,uBACb/qL,KAAKmrL,WAAWtkB,cAAcylB,EAAItsL,KAAK8pL,aACvC,IAAIv0K,GAAI,EAAMgrJ,KAAQr+B,IAAIliI,KAAK8qL,UAAW9qL,KAAK8pL,aAC3Cr7K,GAAIzO,KAAK8pL,YAAY7nD,gBAAkB,EACvCorD,GAAahE,GAAcz6K,GAAG2G,GAAG9G,GAAG4Z,IACpCglK,GAAW/D,QACXjhK,GAAIglK,GAAWjoJ,KACfkkJ,IAAQ,EACRtpL,KAAK4pL,gBAAgBjkB,SAAS2mB,IAElCtsL,KAAKmrL,WAAWtkB,cAAc0lB,EAAIvsL,KAAK8pL,aACvCv0K,GAAI,EAAMgrJ,KAAQr+B,IAAIliI,KAAK8qL,UAAW9qL,KAAK8pL,aAC3Cr7K,GAAIzO,KAAK8pL,YAAY7nD,gBAAkB,EACvCorD,GAAahE,GAAcz6K,GAAG2G,GAAG9G,GAAG4Z,IAChCglK,GAAW/D,QACXjhK,GAAIglK,GAAWjoJ,KACfkkJ,IAAQ,EACRtpL,KAAK4pL,gBAAgBjkB,SAAS4mB,IAElCvsL,KAAKmrL,WAAWtkB,cAAc2lB,EAAIxsL,KAAK8pL,aACvCv0K,GAAI,EAAMgrJ,KAAQr+B,IAAIliI,KAAK8qL,UAAW9qL,KAAK8pL,aAC3Cr7K,GAAIzO,KAAK8pL,YAAY7nD,gBAAkB,EACvCorD,GAAahE,GAAcz6K,GAAG2G,GAAG9G,GAAG4Z,IAChCglK,GAAW/D,QACXjhK,GAAIglK,GAAWjoJ,KACfkkJ,IAAQ,EACRtpL,KAAK4pL,gBAAgBjkB,SAAS6mB,IAElCD,EAAG1lB,cAAcylB,EAAItsL,KAAKkqL,OAC1BoC,EAAGzlB,cAAc7mK,KAAKmrL,WAAYnrL,KAAKmqL,eACvC,IAAImD,GAAoBttL,KAAKkqL,MAAMjoD,gBAC/BsrD,GAAkBhtB,KAAQr+B,IAAIliI,KAAKkqL,MAAOlqL,KAAK8qL,WAC/C0C,GAAsBjtB,KAAQr+B,IAAIliI,KAAKkqL,MAAOlqL,KAAKmqL,eAKvD,GAJAv7K,GAAI0+K,IAAqBttL,KAAK+qL,uBAAyBwC,GAAkBA,GACzEh4K,GAAI,GAAK+3K,GAAoB/sB,KAAQr+B,IAAIliI,KAAK8qL,UAAW9qL,KAAKmqL,eAAiBoD,GAAkBC,IACjG/+K,GAAI6+K,IAAqB,EAAMttL,KAAKmqL,cAAcloD,iBAAmBurD,GAAsBA,GAC3FH,GAAahE,GAAcz6K,GAAG2G,GAAG9G,GAAG4Z,IAChCglK,GAAW/D,MAAO,CAClB,MAAMxtJ,IAAKyxJ,GAAkBF,GAAWjoJ,KAAOooJ,IAAuBF,GAClExxJ,IAAK,GAAOA,IAAK,IACjBzT,GAAIglK,GAAWjoJ,KACfkkJ,IAAQ,EACRtpL,KAAKkqL,MAAM5M,aAAaxhJ,IACxBwwJ,EAAGmB,SAASztL,KAAKkqL,MAAOlqL,KAAK4pL,iBAErC,CAUA,GATA4C,EAAG3lB,cAAc0lB,EAAIvsL,KAAKkqL,OAC1BqC,EAAG1lB,cAAc7mK,KAAKmrL,WAAYnrL,KAAKmqL,eACvCmD,GAAoBttL,KAAKkqL,MAAMjoD,gBAC/BsrD,GAAkBhtB,KAAQr+B,IAAIliI,KAAKkqL,MAAOlqL,KAAK8qL,WAC/C0C,GAAsBjtB,KAAQr+B,IAAIliI,KAAKkqL,MAAOlqL,KAAKmqL,eACnDv7K,GAAI0+K,IAAqBttL,KAAK+qL,uBAAyBwC,GAAkBA,GACzEh4K,GAAI,GAAK+3K,GAAoB/sB,KAAQr+B,IAAIliI,KAAK8qL,UAAW9qL,KAAKmqL,eAAiBoD,GAAkBC,IACjG/+K,GAAI6+K,IAAqB,EAAMttL,KAAKmqL,cAAcloD,iBAAmBurD,GAAsBA,GAC3FH,GAAahE,GAAcz6K,GAAG2G,GAAG9G,GAAG4Z,IAChCglK,GAAW/D,MAAO,CAClB,MAAMxtJ,IAAKyxJ,GAAkBF,GAAWjoJ,KAAOooJ,IAAuBF,GAClExxJ,IAAK,GAAOA,IAAK,IACjBzT,GAAIglK,GAAWjoJ,KACfkkJ,IAAQ,EACRtpL,KAAKkqL,MAAM5M,aAAaxhJ,IACxBywJ,EAAGkB,SAASztL,KAAKkqL,MAAOlqL,KAAK4pL,iBAErC,CAUA,GATA0C,EAAGzlB,cAAc2lB,EAAIxsL,KAAKkqL,OAC1BsC,EAAG3lB,cAAc7mK,KAAKmrL,WAAYnrL,KAAKmqL,eACvCmD,GAAoBttL,KAAKkqL,MAAMjoD,gBAC/BsrD,GAAkBhtB,KAAQr+B,IAAIliI,KAAKkqL,MAAOlqL,KAAK8qL,WAC/C0C,GAAsBjtB,KAAQr+B,IAAIliI,KAAKkqL,MAAOlqL,KAAKmqL,eACnDv7K,GAAI0+K,IAAqBttL,KAAK+qL,uBAAyBwC,GAAkBA,GACzEh4K,GAAI,GAAK+3K,GAAoB/sB,KAAQr+B,IAAIliI,KAAK8qL,UAAW9qL,KAAKmqL,eAAiBoD,GAAkBC,IACjG/+K,GAAI6+K,IAAqB,EAAMttL,KAAKmqL,cAAcloD,iBAAmBurD,GAAsBA,GAC3FH,GAAahE,GAAcz6K,GAAG2G,GAAG9G,GAAG4Z,IAChCglK,GAAW/D,MAAO,CAClB,MAAMxtJ,IAAKyxJ,GAAkBF,GAAWjoJ,KAAOooJ,IAAuBF,GAClExxJ,IAAK,GAAOA,IAAK,IACjBzT,GAAIglK,GAAWjoJ,KACfkkJ,IAAQ,EACRtpL,KAAKkqL,MAAM5M,aAAaxhJ,IACxB0wJ,EAAGiB,SAASztL,KAAKkqL,MAAOlqL,KAAK4pL,iBAErC,CACJ,CACA,GAAIN,GAAO,CACP,MAAMoE,GAAyBrlK,GAAIA,GAAIroB,KAAK+qL,yBACvC/qL,KAAKsrL,gBAAkBoC,GAAyB1tL,KAAK2tL,2BAIlDjB,GAASkB,oBACJ5tL,KAAK6tL,kBAIN7tL,KAAK6tL,kBAAkBloB,SAAS3lK,KAAK4pL,iBAHrC5pL,KAAK6tL,kBAAoB7tL,KAAK4pL,gBAAgBxmL,QAKlDpD,KAAK2tL,wBAA0BD,GAC/B1tL,KAAK8tL,iBAAmBvwK,KAAKmkH,KAAKgsD,IAClC1tL,KAAKsrL,gBAAiB,GAE1BtrL,KAAKshL,aAAeoL,GAE5B,CACJ,CAIAqB,SAAS1B,EAAoB2B,EAAKC,EAASC,EAAYC,EAAUC,EAAO3B,GAAaC,GAAU2B,GAAiBC,IAAgB,GAC5H,GAAIA,GACA,GAAKL,GAA8B,IAAnBA,EAAQv4K,OAmBpB,QAAS+H,GAAIywK,EAAYzwK,GAAI0wK,EAAW,EAAG1wK,IAAK,EAAG,CAC/C,MAAM8wK,GAASN,EAAQxwK,IACjB+wK,GAASP,EAAQxwK,GAAI,GACrBgxK,GAASR,EAAQxwK,GAAI,GAC3B,GAAe,aAAXgxK,GAAuB,CACvBhxK,IAAK,EACL,QACJ,CACA,MAAM6uK,GAAK0B,EAAIO,IACThC,GAAKyB,EAAIQ,IACThC,GAAKwB,EAAIS,KAEVnC,KAAOC,KAAOC,MAId6B,GAAkB,EAAI,GAAK5wK,GAAI,EAChCzd,KAAKmsL,cAAc1uK,GAAG4uK,EAAoBC,GAAIC,GAAIC,GAAIC,GAAaC,IAGnE1sL,KAAKmsL,cAAc1uK,GAAG4uK,EAAoBE,GAAID,GAAIE,GAAIC,GAAaC,IAE3E,MAxCA,QAASjvK,GAAI,EAAGA,GAAIuwK,EAAIt4K,OAAS,EAAG+H,IAAK,EAAG,CACxC,MAAM6uK,GAAK0B,EAAIvwK,IACT8uK,GAAKyB,EAAIvwK,GAAI,GACb+uK,GAAKwB,EAAIvwK,GAAI,IAEd6uK,KAAOC,KAAOC,MAId6B,GAAkB,EAAI,GAAK5wK,GAAI,EAChCzd,KAAKmsL,cAAc1uK,GAAG4uK,EAAoBC,GAAIC,GAAIC,GAAIC,GAAaC,IAGnE1sL,KAAKmsL,cAAc1uK,GAAG4uK,EAAoBE,GAAID,GAAIE,GAAIC,GAAaC,IAE3E,MAyBA,GAGEuB,GAA8B,IAAnBA,EAAQv4K,OAczB,QAAS+H,GAAIywK,EAAYzwK,GAAI0wK,EAAU1wK,IAAK,EAAG,CAC3C,MAAM6uK,GAAK0B,EAAIC,EAAQxwK,IAAK2wK,GACtB7B,GAAKyB,EAAIC,EAAQxwK,GAAI,GAAK2wK,GAC1B5B,GAAKwB,EAAIC,EAAQxwK,GAAI,GAAK2wK,GAC5BC,GACAruL,KAAKmsL,cAAc1uK,GAAG4uK,EAAoBC,GAAIC,GAAIC,GAAIC,GAAaC,IAGnE1sL,KAAKmsL,cAAc1uK,GAAG4uK,EAAoBG,GAAID,GAAID,GAAIG,GAAaC,GAE3E,MAvBA,QAASjvK,GAAI,EAAGA,GAAIuwK,EAAIt4K,OAAQ+H,IAAK,EAAG,CACpC,MAAM6uK,GAAK0B,EAAIvwK,IACT8uK,GAAKyB,EAAIvwK,GAAI,GACb+uK,GAAKwB,EAAIvwK,GAAI,GACf4wK,GACAruL,KAAKmsL,cAAc1uK,GAAG4uK,EAAoBC,GAAIC,GAAIC,GAAIC,GAAaC,IAGnE1sL,KAAKmsL,cAAc1uK,GAAG4uK,EAAoBG,GAAID,GAAID,GAAIG,GAAaC,GAE3E,CAeR,CAIAgC,aAAaj8F,EAAKk8F,GACdl8F,EAAIg7F,SAASkB,EAAK3uL,KAAKoqL,mBACvBuE,EAAIrR,aAAat9K,KAAK8tL,iBAAmBa,EAAIj5K,UAC7C1V,KAAKmrL,WAAWsC,SAASkB,EAAKl8F,GAC9BA,EAAIo0E,cAAc7mK,KAAK6tL,kBAAmB7tL,KAAKqqL,mBAC/CrqL,KAAKqqL,kBAAkB38E,YACvB1tG,KAAKqqL,kBAAkBa,WAAWlrL,KAAKqrL,SAAUrrL,KAAKsqL,qBACtD73F,EAAIgwC,WAAWziI,KAAKsqL,qBACpBtqL,KAAK6tL,kBAAkBprD,WAAWziI,KAAKsqL,qBACvCtqL,KAAKqqL,kBAAkB/M,aAAa94C,KAAMoqD,2CAA2C5uL,KAAK6tL,kBAAmB7tL,KAAKqqL,kBAAmBrqL,KAAKoqL,oBAC1IpqL,KAAKoqL,kBAAkByE,gBAAgB7uL,KAAKqqL,mBAC5CrqL,KAAKoqL,kBAAkBvjB,cAAc7mK,KAAK6tL,kBAAmBc,EACjE,EAKJhF,SAASyD,kBAAmB,EArWfzD,CAAQ,qBCjDd,MAAMmF,GACTjvL,cACIG,KAAK+uL,gBAAkBxuB,KAAQh/B,OAC/BvhI,KAAKgvL,gBAAkBzuB,KAAQh/B,OAC/BvhI,KAAKivL,eAAiB1uB,KAAQh/B,MAClC,CACAqhD,eAAetqK,EAAU4pK,EAAcgN,EAAUC,EAAcC,EAAcC,EAAeC,GACxFh3K,EAASi3K,YAAYL,EAASzM,QAASziL,KAAK+uL,iBAC5C7M,EAAaqN,YAAYL,EAASzM,QAASziL,KAAKgvL,iBAChDE,EAAS5N,aAAe,KACxB4N,EAAS1E,OAAS,EAClB0E,EAASM,iBAAmBxvL,KAAKgvL,gBACjCE,EAASO,iBAAmBzvL,KAAK+uL,gBACjC/uL,KAAKiiL,kBAAkBjiL,KAAK+uL,gBAAiB/uL,KAAKgvL,gBAAiBE,EAAUC,EAAcnvL,KAAKivL,eAAgBG,GAChHpvL,KAAKivL,eAAepa,gBAAgBqa,EAASzM,SAE7C4M,EAAcC,EAAgBtvL,KAAKivL,eAAgBC,EAAS5N,aAChE,CACAkB,iBACI,OAAO,IAAImH,EACf,CACA38J,KAAKsxF,GACDt+G,KAAKq4I,OAAS/5B,CAClB,CACA2jE,kBAAkB3pK,EAAUo3K,EAAUR,EAAUC,EAAcQ,EAAeP,EAAe,MACxF,MAAMQ,EAAmD,GAAnCnO,KAAeC,kBACrC,GAAIwN,EAAS1E,QAAU2E,EAEnB,YADAQ,EAAchqB,SAASrtJ,GAI3B,MAAMypK,GAAgBqN,EAAeA,EAAarN,cAAgBmN,EAASnN,cAC3EmN,EAASrE,YAAYvyK,EAAUo3K,EAAUE,GAGzC,MAAM1+C,GAAUk+C,GAAgBA,EAAaS,mBAAsB7vL,KAAKq4I,OAAOnH,OAC/E,QAASv2H,GAAQ,EAAGA,GAAQu2H,GAAOx7H,OAAQiF,KAAS,CAChD,MAAMgnJ,GAAOzwB,GAAOv2H,IAChBgnJ,GAAK11B,aAAe01B,GAAKif,iBAAmBjf,GAAKmuB,WAAanuB,KAASytB,GAAiBrN,GAAgBpgB,GAAKouB,gBAC7GpuB,GAAKvhC,gBAAgB8uD,EAE7B,CACKA,EAAS5D,iBAIK,IAAfoE,EAAS98K,GAA0B,IAAf88K,EAASltK,GAA0B,IAAfktK,EAASxlH,IACjDglH,EAASR,aAAap2K,EAAUo3K,GAEhCA,EAASh6K,UAAYk6K,EACrBD,EAAchqB,SAASrtJ,IAG3B42K,EAAS1E,SACTxqL,KAAKiiL,kBAAkB3pK,EAAUo3K,EAAUR,EAAUC,EAAcQ,EAAeP,KAX9E92K,EAASm1K,SAASiC,EAAUC,EAYpC,EAEJK,KAAMC,4BAA8B,IACzB,IAAInB,gHCvDR,IAAMoB,GAAa,MAAnB,MAAMA,EAQTrwL,YAAYswL,EAAU5jK,EAASm+G,EAAQlmG,EAAM,IAyDzC,IAAI4rJ,EArDJpwL,KAAKqwL,QAAU,GAIfrwL,KAAKswL,WAAa,KAIlBtwL,KAAKuwL,QAAU,KAIfvwL,KAAK6iL,SAAW,EAKhB7iL,KAAKwwL,oBAAsB,IAAI7xJ,MAI/B3+B,KAAKywL,kBAAoB,IAAI9xJ,MAI7B3+B,KAAK0wL,iBAAmB,IAAI/xJ,MAK5B3+B,KAAK2wL,qBAAsB,EAC3B3wL,KAAK4wL,UAAW,EAChB5wL,KAAK6wL,kBAAoB,GAEzB7wL,KAAK8wL,KAAO,GACZ9wL,KAAK+wL,2BAA6B,GAElC/wL,KAAKgxL,iBAAmB,KAExBhxL,KAAKixL,mBAAqB,GAC1BjxL,KAAKkxL,sBAAwB,GAC7BlxL,KAAKmxL,gBAAkB,EACvBnxL,KAAKuG,KAAO4pL,EACZnwL,KAAK8wL,KAAOtsJ,EACZxkC,KAAKqxK,QAAU3mC,EACf1qI,KAAK6iL,SAAWqN,EAAckB,gBAC9BpxL,KAAKqwL,QAAU9jK,EAAQ8jK,SAAW,GAClCrwL,KAAKuwL,QAAUhkK,EAAQgkK,QACvBvwL,KAAKswL,WAAa/jK,EAAQ+jK,WAC1BtwL,KAAKqxL,YAAc9kK,EAAQ+kK,YAAc,OACzCtxL,KAAKuxL,aAAelK,KAAYmK,gBAAgBxxL,KAAKmxL,iBACrDnxL,KAAKyxL,kBAAoBpK,KAAYqK,qBAAqB1xL,KAAKmxL,iBAC/DnxL,KAAK2xL,oBAAsBtK,KAAYuK,wBAAwB5xL,KAAKmxL,iBAEpE,MAAMU,KAAeC,SAAwB9xL,KAAKqxK,QAAQ0gB,kBAAoB,KAE1E3B,EADoB,iBAAbD,EACSA,EAEXA,EAASC,cACE,UAAYD,EAASC,cAEhCD,EAAS6B,eACEH,GAAc71H,eAAem0H,EAAS6B,iBAAmB7B,EAAS6B,eAGlE7B,EAAS8B,SAAW9B,EAExC,MAAM+B,GAAmB,CACrB7B,QAASrwL,KAAKqwL,QAAQtrJ,MAAM,MAC5BotJ,qBAAiBtvL,EACjBuvL,YAAY,EACZC,8BAA8B,EAC9BC,UAAW,KACXC,uBAAwBvyL,KAAKqxK,QAAQkhB,uBACrCC,kBAAmBxyL,KAAKyxL,kBACxBgB,qBAAsBzyL,KAAK2xL,oBAC3Br8B,SAAiC,IAAvBt1J,KAAKqxK,QAAQ/b,SAAepsJ,WACtCwpL,aAAc1yL,KAAKqxK,QAAQshB,mBAC3BC,kBAAmB,KACnBC,gBAAiB7yL,KAAKqxK,QAAQwhB,gBAC9BC,sBAAuB9yL,KAAKqxK,QAAQyhB,sBACpCC,yBAA0BA,CAACC,GAAYr2H,GAAM0zH,MACzC,IAAKA,GACD,OAAO1zH,GAGX,UAAWs2H,MAAU5C,GAAS,CAE1B,MAAMtrJ,GADWkuJ,GAAOhuL,QAAQ,UAAW,IAAIA,QAAQ,IAAK,IAAI+5E,OACzCj6C,MAAM,KAC7B,GAAqB,IAAjBA,GAAMrvB,OAAc,CACpB,MAAM8uB,GAAMO,GAAM,GACZxyB,GAAQwyB,GAAM,KACfmkB,MAAMkpD,SAAS7/F,OAAY22C,MAAMD,WAAW12C,QAC7CoqD,GAAQ,SAAQn4B,QAASjyB,QAAaoqD,GAE9C,CACJ,CACA,OAAOA,KAGf38D,KAAKkzL,YAAY9C,EAAe,UAAW,GAAK+C,MAC5CC,SAAWlB,KAAgB,EAC3BmB,OAAWF,GAAajB,GAAmBoB,KACvCtzL,KAAKkxL,sBAAwBiC,GACzB5mK,EAAQgnK,mBACRD,GAAsB/mK,EAAQgnK,iBAAiBD,KAEnD,MAAME,MAAeC,OAASH,GAAqB,GAAIpB,IACvDlyL,KAAK0zL,cAAcF,GAAaG,WAAYxD,EAAQ,EACrDnwL,KAAKqxK,QAAO,EAEvB,CACAqiB,cAAcE,EAAsBzD,GAG5BnwL,KAAKixL,mBAFLd,EAE0B,kCADVA,EAAS6B,gBAAkB7B,EAAS8B,SAAW9B,EAAS0D,aAAe1D,GAChB,KAAOyD,EAGpDA,EAE9B5zL,KAAK8zL,gBACT,CAIA,OAAItvJ,GACA,OAAOxkC,KAAK8wL,IAChB,CAKAiD,UACI,IACI,OAAO/zL,KAAKg0L,kBAChB,OAEI,OAAO,CACX,CACJ,CACAA,mBACI,QAAIh0L,KAAK4wL,YAGL5wL,KAAKgxL,kBACEhxL,KAAKgxL,iBAAiB+C,OAGrC,CAKA5jB,YACI,OAAOnwK,KAAKqxK,OAChB,CAKA4iB,qBACI,OAAOj0L,KAAKgxL,gBAChB,CAKAkD,sBACI,OAAOl0L,KAAK6wL,iBAChB,CAKAsD,oBAAoBC,GACZp0L,KAAK+zL,UACLK,EAAKp0L,OAGTA,KAAKwwL,oBAAoBh4I,IAAKz8B,IAC1Bq4K,EAAKr4K,EAAM,KAEV/b,KAAKgxL,kBAAoBhxL,KAAKgxL,iBAAiBqD,UAChD1+H,WAAW,KACP31D,KAAKs0L,cAAc,KAAI,EACxB,IAEX,CACAA,cAAcC,GACV,IACI,GAAIv0L,KAAKg0L,mBACL,MAER,OACOj2K,GAEH,YADA/d,KAAKw0L,0BAA0Bz2K,EAAGw2K,EAEtC,CACA5+H,WAAW,KACP31D,KAAKs0L,cAAcC,EAAuB,EAC3C,GACP,CACArB,YAAYuB,EAAQjwJ,EAAKkwJ,EAAa3mJ,GAClC,UAAW4mJ,YAAgB,KAEnBF,aAAkBE,YAGlB,YADA5mJ,GADM6mJ,EAAaC,OAAkBJ,IAM7C,GAA+B,YAA3BA,EAAOhzG,UAAU,EAAG,GAEpB,YADA1zC,EAAS0mJ,EAAOhzG,UAAU,IAI9B,GAA+B,YAA3BgzG,EAAOhzG,UAAU,EAAG,GAGpB,YADA1zC,EADqB/lC,OAAOw+E,KAAKiuG,EAAOhzG,UAAU,KAKtD,GAAIzhF,KAAKuxL,aAAakD,EAASjwJ,EAAM,UAEjC,YADAuJ,EAAS/tC,KAAKuxL,aAAakD,EAASjwJ,EAAM,WAG9C,GAAIkwJ,GAAe10L,KAAKuxL,aAAakD,EAASC,EAAc,UAExD,YADA3mJ,EAAS/tC,KAAKuxL,aAAakD,EAASC,EAAc,WAGtD,IAAII,EAEAA,EADc,MAAdL,EAAO,IAA4B,MAAdA,EAAO,IAAcA,EAAO3vJ,QAAQ,SAAU,EACvD2vJ,EAGAz0L,KAAKyxL,kBAAoBgD,EAEzCz0L,KAAKqxK,QAAQ0jB,UAAUD,EAAY,IAAMtwJ,EAAIhvB,cAAgB,MAAOu4B,EACxE,CAIA,qBAAIinJ,GACA,OAAOh1L,KAAK+wL,2BAA6B/wL,KAAK+wL,2BAA8B/wL,KAAKgxL,kBAAkBiE,yBAA2Bj1L,KAAKixL,kBACvI,CAIA,wBAAIiE,GACA,OAAOl1L,KAAKkxL,qBAChB,CAKA4C,iBACI,MAAMzD,EAAUrwL,KAAKqwL,QACfkE,EAA0Bv0L,KAAKgxL,iBACrChxL,KAAK4wL,UAAW,EAChB,IACI,MAAMlmD,EAAS1qI,KAAKqxK,QACpBrxK,KAAKgxL,iBAAmBtmD,EAAOyqD,+BAC/Bn1L,KAAKgxL,iBAAiBoE,MAAQp1L,KAAK8wL,KACnCpmD,EAAO2qD,+BAA+Br1L,KAAKgxL,iBAAkBhxL,KAAK+wL,2BAA6B/wL,KAAK+wL,2BAA6B/wL,KAAKixL,mBAAoBjxL,KAAKkxL,sBAAuBlxL,KAAK+wL,2BAA6B,KAAOV,EAASrwL,KAAKqxL,aAC7O3mD,EAAO4qD,mCAAmCt1L,KAAKgxL,iBAAmB7mJ,IAC1DA,GAAYA,EAASorJ,UAAY,EACjCv1L,KAAKw0L,0BAA0BrqJ,EAAUoqJ,IAG7Cv0L,KAAK6wL,kBAAoB,GACzB7wL,KAAK4wL,UAAW,EACZ5wL,KAAKswL,YACLtwL,KAAKswL,WAAWtwL,MAEpBA,KAAKwwL,oBAAoBxvB,gBAAgBhhK,MACzCA,KAAKwwL,oBAAoBv+I,QACrBsiJ,GACAv0L,KAAKmwK,YAAYqlB,8BAA8BjB,GAAuB,GAG1Ev0L,KAAKgxL,iBAAiBqD,SACtBr0L,KAAKs0L,cAAcC,EAE3B,OACOx2K,GACH/d,KAAKw0L,0BAA0Bz2K,EAAGw2K,EACtC,CACJ,CACAC,0BAA0Bz2K,EAAGw2K,EAA0B,MAMnD,GALAv0L,KAAK6wL,kBAAoB,GACzBjwB,KAAOt7I,MAAM,qCACTtlB,KAAKqwL,SACLzvB,KAAOt7I,MAAM,aAAetlB,KAAKqwL,SAEjCH,EAAcuF,gCAAiC,CAC/C,MAAM94H,EAAO38D,KAAKgxL,kBAAkBiE,wBAChCt4H,IACAikG,KAAOt7I,MAAM,iBACbs7I,KAAOt7I,MAAMq3C,GAErB,CACA,GAAiB,iBAAN5+C,EACP/d,KAAK6wL,kBAAoB9yK,EACzB6iJ,KAAOt7I,MAAM,UAAYtlB,KAAK6wL,wBAG9B,UAAWllJ,KAAW5tB,EAAEosB,SAAU,CAC9B,IAAIm4C,EAAM,QACWz/E,IAAjB8oC,EAAQ2kD,OACRhO,GAAO,QAAU32C,EAAQ2kD,KAAO,WAEbztF,IAAnB8oC,EAAQsyC,SACRqE,GAAO,UAAY32C,EAAQsyC,OAAS,WAEjBp7E,IAAnB8oC,EAAQj2B,SACR4sE,GAAO,UAAY32C,EAAQj2B,OAAS,MAExC4sE,GAAO32C,EAAQv5B,KAAO,KAAOu5B,EAAQj6B,KACjC1R,KAAK6wL,oBACL7wL,KAAK6wL,mBAAqB,MAE9B7wL,KAAK6wL,mBAAqBvuG,EAC1Bs+E,KAAOt7I,MAAMg9D,EACjB,CAEAiyG,IACAv0L,KAAKgxL,iBAAmBuD,EACxBv0L,KAAK4wL,UAAW,GAEhB5wL,KAAKuwL,SACLvwL,KAAKuwL,QAAQvwL,KAAMA,KAAK6wL,mBAE5B7wL,KAAKywL,kBAAkBzvB,gBAAgBhhK,KAC3C,CAIAyhD,UACQzhD,KAAKgxL,kBACLhxL,KAAKgxL,iBAAiBvvI,UAE1BzhD,KAAKqxK,QAAQqkB,sBAAsB11L,KACvC,CAMA,qBAAO21L,CAAepvL,EAAMqvL,GACxBvO,KAAYmK,gBAAgB,GAA8B,GAAEjrL,kBAAuBqvL,CACvF,EAEJ1F,SAAckB,cAAgB,EAI9BlB,EAAcuF,iCAAkC,EAjXnCvF,CAAa,oFCFnB,MAAM2F,GAUTh2L,YAAYi2L,EAAUC,EAAUC,EAAUvxD,EAAOwxD,EAAUC,GAIvDl2L,KAAKi5D,QAAU,GACfj5D,KAAKm2L,iBAAmB,IAAI74K,MAC5Btd,KAAKo2L,UAAYJ,EACjBh2L,KAAKq2L,OAAS5xD,EACdzkI,KAAKs2L,UAAYL,EACjBj2L,KAAKu2L,cAAgBL,EACrBl2L,KAAKw2L,UAAYV,EACjB91L,KAAKy2L,UAAYV,EACjB/1L,KAAKm2L,iBAAiBl4K,KAAK63K,EAAS1yL,SACpCpD,KAAKm2L,iBAAiBl4K,KAAK83K,EAAS3yL,SACpCpD,KAAKm2L,iBAAiBl4K,KAAK63K,EAAS1yL,SACpCpD,KAAKm2L,iBAAiB,GAAGvjL,EAAImjL,EAASnjL,EACtC5S,KAAKm2L,iBAAiBl4K,KAAK63K,EAAS1yL,SACpCpD,KAAKm2L,iBAAiB,GAAG3zK,EAAIuzK,EAASvzK,EACtCxiB,KAAKm2L,iBAAiBl4K,KAAK63K,EAAS1yL,SACpCpD,KAAKm2L,iBAAiB,GAAGjsH,EAAI6rH,EAAS7rH,EACtClqE,KAAKm2L,iBAAiBl4K,KAAK83K,EAAS3yL,SACpCpD,KAAKm2L,iBAAiB,GAAGjsH,EAAI4rH,EAAS5rH,EACtClqE,KAAKm2L,iBAAiBl4K,KAAK83K,EAAS3yL,SACpCpD,KAAKm2L,iBAAiB,GAAGvjL,EAAIkjL,EAASljL,EACtC5S,KAAKm2L,iBAAiBl4K,KAAK83K,EAAS3yL,SACpCpD,KAAKm2L,iBAAiB,GAAG3zK,EAAIszK,EAAStzK,CAC1C,CAKA,YAAIwzK,GACA,OAAOh2L,KAAKo2L,SAChB,CAIA,YAAIN,GACA,OAAO91L,KAAKw2L,SAChB,CAIA,YAAIT,GACA,OAAO/1L,KAAKy2L,SAChB,CAMAC,SAASt9H,GACL,GAAIp5D,KAAK22L,OACL,QAASh8K,EAAQ,EAAGA,EAAQ3a,KAAK22L,OAAOjhL,OAAQiF,IAC9B3a,KAAK22L,OAAOh8K,GACpB+7K,SAASt9H,QAIvBp5D,KAAKu2L,cAAcn9H,EAAOp5D,MACtBA,KAAKi5D,QAAQvjD,OAAS1V,KAAKg2L,UAAYh2L,KAAKq2L,OAASr2L,KAAKs2L,WAC1Dt2L,KAAK42L,mBAEb,CAKAC,YAAYz9H,GACR,GAAIp5D,KAAK22L,OAAQ,CACb,QAASh8K,EAAQ,EAAGA,EAAQ3a,KAAK22L,OAAOjhL,OAAQiF,IAC9B3a,KAAK22L,OAAOh8K,GACpBk8K,YAAYz9H,GAEtB,MACJ,CACA,MAAM09H,EAAa92L,KAAKi5D,QAAQn0B,QAAQs0B,GACpC09H,GAAa,GACb92L,KAAKi5D,QAAQ19C,OAAOu7K,EAAY,EAExC,CAKAC,WAAW99H,GACP,QAASt+C,EAAQ,EAAGA,EAAQs+C,EAAQvjD,OAAQiF,IAExC3a,KAAK02L,SADQz9H,EAAQt+C,GAG7B,CAOArW,OAAO0yL,EAAeC,EAAWC,GAC7B,GAAIC,KAAYC,YAAYp3L,KAAKm2L,iBAAkBa,GAAgB,CAC/D,GAAIh3L,KAAK22L,OAAQ,CACb,QAASh8K,EAAQ,EAAGA,EAAQ3a,KAAK22L,OAAOjhL,OAAQiF,IAC9B3a,KAAK22L,OAAOh8K,GACpBrW,OAAO0yL,EAAeC,EAAWC,GAE3C,MACJ,CACIA,EACAD,EAAUhyC,OAAOjlJ,KAAKi5D,SAGtBg+H,EAAUI,sBAAsBr3L,KAAKi5D,QAE7C,CACJ,CAQAq+H,WAAW1L,EAAcC,EAAcoL,EAAWC,GAC9C,GAAIC,KAAYI,iBAAiBv3L,KAAKw2L,UAAWx2L,KAAKy2L,UAAW7K,EAAcC,GAAe,CAC1F,GAAI7rL,KAAK22L,OAAQ,CACb,QAASh8K,EAAQ,EAAGA,EAAQ3a,KAAK22L,OAAOjhL,OAAQiF,IAC9B3a,KAAK22L,OAAOh8K,GACpB28K,WAAW1L,EAAcC,EAAcoL,EAAWC,GAE5D,MACJ,CACIA,EACAD,EAAUhyC,OAAOjlJ,KAAKi5D,SAGtBg+H,EAAUI,sBAAsBr3L,KAAKi5D,QAE7C,CACJ,CAMAu+H,cAActkD,EAAK+jD,GACf,GAAI/jD,EAAIukD,oBAAoBz3L,KAAKw2L,UAAWx2L,KAAKy2L,WAAY,CACzD,GAAIz2L,KAAK22L,OAAQ,CACb,QAASh8K,EAAQ,EAAGA,EAAQ3a,KAAK22L,OAAOjhL,OAAQiF,IAC9B3a,KAAK22L,OAAOh8K,GACpB68K,cAActkD,EAAK+jD,GAE7B,MACJ,CACAA,EAAUI,sBAAsBr3L,KAAKi5D,QACzC,CACJ,CAIA29H,oBACIf,GAAY6B,cAAc13L,KAAKw2L,UAAWx2L,KAAKy2L,UAAWz2L,KAAKi5D,QAASj5D,KAAKo2L,UAAWp2L,KAAKq2L,OAAQr2L,KAAKs2L,UAAWt2L,KAAMA,KAAKu2L,eAChIv2L,KAAKi5D,QAAQ19C,OAAO,EACxB,CAIA,oBAAOm8K,CAAcC,EAAUC,EAAU3+H,EAAS4+H,EAAkBC,EAAc7B,EAAU5oK,EAAQ6oK,IAChG7oK,EAAOspK,OAAS,IAAIr5K,MACpB,MAAMwvG,GAAY,IAAIyzC,MAASq3B,EAAShlL,EAAI+kL,EAAS/kL,GAAK,GAAIglL,EAASp1K,EAAIm1K,EAASn1K,GAAK,GAAIo1K,EAAS1tH,EAAIytH,EAASztH,GAAK,GAExH,QAASt3D,GAAI,EAAGA,GAAI,EAAGA,KACnB,QAAS4P,GAAI,EAAGA,GAAI,EAAGA,KACnB,QAAS0nD,GAAI,EAAGA,GAAI,EAAGA,KAAK,CACxB,MAAM6tH,GAAWJ,EAASn/I,IAAIs0E,GAAUoa,iBAAiBt0H,GAAG4P,GAAG0nD,KACzD8tH,GAAWL,EAASn/I,IAAIs0E,GAAUoa,iBAAiBt0H,GAAI,EAAG4P,GAAI,EAAG0nD,GAAI,IACrEvsD,GAAQ,IAAIk4K,GAAYkC,GAAUC,GAAUH,EAAkBC,EAAe,EAAG7B,EAAUC,IAChGv4K,GAAMo5K,WAAW99H,GACjB5rC,EAAOspK,OAAO14K,KAAKN,GACvB,CAGZ,EC9LG,IAAMs6K,GAAM,MAAZ,MAAMA,EAQTp4L,YAAYq2L,EAAc2B,EAE1B5B,EAAW,GACPj2L,KAAKi2L,SAAWA,EAIhBj2L,KAAKk4L,eAAiB,GACtBl4L,KAAKm4L,kBAAoBN,GAAoB,GAC7C73L,KAAKo4L,kBAAoB,IAAIC,KAAsB,MACnDr4L,KAAKu2L,cAAgBL,CACzB,CAQApzH,OAAO60H,EAAUC,EAAU3+H,GACvB48H,GAAY6B,cAAcC,EAAUC,EAAU3+H,EAASj5D,KAAKm4L,kBAAmB,EAAGn4L,KAAKi2L,SAAUj2L,KAAMA,KAAKu2L,cAChH,CAKA+B,QAAQl/H,GACJ,QAASz+C,EAAQ,EAAGA,EAAQ3a,KAAK22L,OAAOjhL,OAAQiF,IAC9B3a,KAAK22L,OAAOh8K,GACpB+7K,SAASt9H,EAEvB,CAKA+3E,WAAW/3E,GACP,QAASz+C,EAAQ,EAAGA,EAAQ3a,KAAK22L,OAAOjhL,OAAQiF,IAC9B3a,KAAK22L,OAAOh8K,GACpBk8K,YAAYz9H,EAE1B,CAOA90D,OAAO0yL,EAAeE,GAClBl3L,KAAKo4L,kBAAkB/kL,QACvB,QAASsH,EAAQ,EAAGA,EAAQ3a,KAAK22L,OAAOjhL,OAAQiF,IAC9B3a,KAAK22L,OAAOh8K,GACpBrW,OAAO0yL,EAAeh3L,KAAKo4L,kBAAmBlB,GAExD,OAAIA,EACAl3L,KAAKo4L,kBAAkBnzC,OAAOjlJ,KAAKk4L,gBAGnCl4L,KAAKo4L,kBAAkBf,sBAAsBr3L,KAAKk4L,gBAE/Cl4L,KAAKo4L,iBAChB,CAQAd,WAAW1L,EAAcC,EAAcqL,GACnCl3L,KAAKo4L,kBAAkB/kL,QACvB,QAASsH,EAAQ,EAAGA,EAAQ3a,KAAK22L,OAAOjhL,OAAQiF,IAC9B3a,KAAK22L,OAAOh8K,GACpB28K,WAAW1L,EAAcC,EAAc7rL,KAAKo4L,kBAAmBlB,GAEzE,OAAIA,EACAl3L,KAAKo4L,kBAAkBnzC,OAAOjlJ,KAAKk4L,gBAGnCl4L,KAAKo4L,kBAAkBf,sBAAsBr3L,KAAKk4L,gBAE/Cl4L,KAAKo4L,iBAChB,CAMAZ,cAActkD,GACVlzI,KAAKo4L,kBAAkB/kL,QACvB,QAASsH,EAAQ,EAAGA,EAAQ3a,KAAK22L,OAAOjhL,OAAQiF,IAC9B3a,KAAK22L,OAAOh8K,GACpB68K,cAActkD,EAAKlzI,KAAKo4L,mBAElC,OAAAp4L,KAAKo4L,kBAAkBf,sBAAsBr3L,KAAKk4L,gBAC3Cl4L,KAAKo4L,iBAChB,EAOJH,SAAOM,sBAAwB,CAACn/H,EAAOz7C,KACnC,MAAM66K,EAAep/H,EAAM6tE,mBACtB7tE,EAAMq/H,WAAaD,EAAal9C,YAAYo9C,iBAAiB/6K,EAAMm4K,SAAUn4K,EAAMo4K,WACpFp4K,EAAMs7C,QAAQh7C,KAAKm7C,EAAK,EAQhC6+H,EAAOU,yBAA2B,CAACv/H,EAAOz7C,KACjBy7C,EAAM6tE,kBACVqU,YAAYo9C,iBAAiB/6K,EAAMm4K,SAAUn4K,EAAMo4K,WAChEp4K,EAAMs7C,QAAQh7C,KAAKm7C,EAAK,EA7HnB6+H,CAAM,iCCCnBjI,KAAMzrJ,UAAUq0J,8BAAgC,SAAUC,EAAc,GAAI5C,EAAW,GACnF,IAAIppL,EAAY7M,KAAK84L,cAAcC,KAAwBC,aACtDnsL,IACDA,EAAY,IAAIosL,GAAqBj5L,MACrCA,KAAKk5L,cAAcrsL,IAElB7M,KAAKm5L,mBACNn5L,KAAKm5L,iBAAmB,IAAIlB,GAAOA,GAAOM,sBAAuBM,EAAa5C,IAElF,MAAMmD,EAAep5L,KAAKq5L,kBAE1B,OAAAr5L,KAAKm5L,iBAAiBr2H,OAAOs2H,EAAa58I,IAAK48I,EAAa38I,IAAKz8C,KAAKkxI,QAC/DlxI,KAAKm5L,gBAChB,EACAhlL,OAAOwzB,eAAeqoJ,KAAMzrJ,UAAW,kBAAmB,CACtDzhC,IAAK,WACD,OAAO9C,KAAKm5L,gBAChB,EACAtxJ,YAAY,EACZE,cAAc,IAWlBuxJ,KAAa/0J,UAAUg1J,8BAAgC,SAAUV,EAAc,GAAI5C,EAAW,GAC1F,MAAM33E,EAAQt+G,KAAK2kI,WACnB,IAAI93H,EAAYyxG,EAAMw6E,cAAcC,KAAwBC,aACvDnsL,IACDA,EAAY,IAAIosL,GAAqB36E,GACrCA,EAAM46E,cAAcrsL,IAEnB7M,KAAKw5L,mBACNx5L,KAAKw5L,iBAAmB,IAAIvB,GAAOA,GAAOU,yBAA0BE,EAAa5C,IAErFj2L,KAAK+mI,oBAAmB,GAGxB,MAAM0yD,EAFez5L,KAAKinI,kBAEAqU,YAC1B,OAAAt7I,KAAKw5L,iBAAiB12H,OAAO22H,EAAKC,aAAcD,EAAKE,aAAc35L,KAAK8vL,WACjE9vL,KAAKw5L,gBAChB,EAKO,MAAMP,GAKTp5L,YAAYy+G,GAIRt+G,KAAKuG,KAAOwyL,KAAwBC,YAIpCh5L,KAAK45L,iBAAkB,EACvB55L,KAAK65L,SAAW,IAAIC,MAAIv5B,KAAQh/B,OAAQ,IAAIg/B,KAAQ,EAAG,EAAG,KAC1DjiD,EAAQA,GAASgjD,KAAYC,oBAI7BvhK,KAAKs+G,MAAQA,EACbt+G,KAAKs+G,MAAMy7E,wBAA0B,IAAM/5L,KAAK+5L,0BAChD/5L,KAAKs+G,MAAM07E,2BAA8Br4B,GAAS3hK,KAAKg6L,2BAA2Br4B,GAClF3hK,KAAKs+G,MAAM27E,8BAAgC,CAACt4B,EAAMutB,IAAalvL,KAAKi6L,8BAA8Bt4B,EAAMutB,GACxGlvL,KAAKs+G,MAAM47E,iCAAmC,CAACv4B,EAAMw4B,IAAan6L,KAAKk6L,iCAAiCv4B,EAAMw4B,GAClH,CAIAC,WACIp6L,KAAKs+G,MAAM+7E,wBAAwB7hJ,IAAKmpH,IACpC,MAAM24B,EAAct6L,KAAKs+G,MAAMi8E,gBAC/B,GAAiD,MAAhBD,EAAsB,CACnD,MAAM3/K,EAAQ2/K,EAAYpC,eAAepzJ,QAAQ68H,IACnC,IAAVhnJ,GACA2/K,EAAYpC,eAAe38K,OAAOZ,EAAO,EAEjD,IAEJ3a,KAAKs+G,MAAMk8E,yBAAyBhiJ,IAAKmpH,IACrC,MAAM24B,EAAct6L,KAAKs+G,MAAMi8E,gBAE3BD,GAAYhC,QAAQ32B,EAAI,EAGpC,CAKAo4B,0BACI,OAAO/5L,KAAKs+G,MAAM66E,kBAAkB70L,OAAOtE,KAAKs+G,MAAM04E,gBAAkBh3L,KAAKs+G,MAAMm8E,2BACvF,CAMAT,2BAA2Br4B,GACvB,OAAIA,EAAK63B,kBAAoB73B,EAAK+4B,+BACR/4B,EAAK63B,iBAAiBl1L,OAAOtE,KAAKs+G,MAAM04E,eAG3Dh3L,KAAKs+G,MAAMq8E,6BAA6Bh5B,EACnD,CAOAu4B,iCAAiCv4B,EAAMw4B,GACnC,OAAIx4B,EAAK63B,kBAAoB73B,EAAKi5B,qBAC9Bd,MAAIe,eAAeV,EAAUx4B,EAAKhrB,iBAAkB32I,KAAK65L,UACnCl4B,EAAK63B,iBAAiBhC,cAAcx3L,KAAK65L,WAG5D75L,KAAKs+G,MAAMq8E,6BAA6Bh5B,EACnD,CAOAs4B,8BAA8Bt4B,EAAMutB,GAChC,GAAIvtB,EAAK63B,kBAAoB73B,EAAKm5B,uBAAwB,CACtD,MAAM5jB,EAASgY,EAAS9D,qBAAuB7tK,KAAKk/B,IAAIyyI,EAASzM,QAAQ7vK,EAAGs8K,EAASzM,QAAQjgK,EAAG0sK,EAASzM,QAAQv4G,GAEjH,OADsBy3F,EAAK63B,iBAAiBlC,WAAWpI,EAASzE,gBAAiBvT,EAErF,CACA,OAAOl3K,KAAKs+G,MAAMq8E,6BAA6Bh5B,EACnD,CAKAo5B,UACI,CAKJt5I,UACI,oCC5JRttC,OAAOwzB,eAAeqoJ,KAAMzrJ,UAAW,aAAc,CACjDzhC,IAAK,WACD,OAAK9C,KAAKg7L,cACNh7L,KAAKg7L,YAAc,IAAIC,GAAWj7L,OAE/BA,KAAKg7L,WAChB,EACAnzJ,YAAY,EACZE,cAAc,IAiCX,MAAMkzJ,GAIT,+BAAIC,GACA,OAAIl7L,KAAKm7L,cAAgBn7L,KAAKm7L,aAAaC,UAChCp7L,KAAKm7L,aAAaC,UAAUC,6BAElCr7L,KAAKs7L,+BACNt7L,KAAKs7L,6BAA+B,IAAI38J,OAErC3+B,KAAKs7L,6BAChB,CAIA,gCAAIC,GACA,OAAIv7L,KAAKm7L,cAAgBn7L,KAAKm7L,aAAaC,UAChCp7L,KAAKm7L,aAAaC,UAAUI,6BAElCx7L,KAAKy7L,gCACNz7L,KAAKy7L,8BAAgC,IAAI98J,OAEtC3+B,KAAKy7L,8BAChB,CAQA57L,YAAYy+G,GAERt+G,KAAKm7L,aAAen7L,KAAK07L,sBACzB17L,KAAKq4I,OAAS/5B,GAASgjD,KAAYC,iBAC9BvhK,KAAKq4I,QAGVr4I,KAAKq4I,OAAOrK,oBAAoBx1F,IAAI,KAE5Bx4C,KAAKq4I,OAAO2iD,aACZh7L,KAAKq4I,OAAO2iD,YAAY1xJ,MAAK,EAGzC,CAKAqyJ,iBAAiB/2L,GACb,GAAI5E,KAAK47L,YACL,OAEJ,GAAI57L,KAAKs7L,6BAA8B,CACnC,UAAWnzJ,KAAYnoC,KAAKs7L,6BAA6BpzK,UACrDloB,KAAKm7L,aAAaC,UAAUC,4BAA4B7iJ,IAAIrQ,GAEhEnoC,KAAKs7L,6BAA6BrpJ,QAClCjyC,KAAKs7L,kCAA+Bz4L,CACxC,CACA,GAAI7C,KAAKy7L,8BAA+B,CACpC,UAAWtzJ,KAAYnoC,KAAKy7L,8BAA8BvzK,UACtDloB,KAAKm7L,aAAaC,UAAUS,6BAA6BrjJ,IAAIrQ,GAEjEnoC,KAAKy7L,8BAA8BxpJ,QACnCjyC,KAAKy7L,mCAAgC54L,CACzC,CACA,MAAMi5L,EAAc,IACbb,GAAWc,UACXn3L,GAEP5E,KAAKm7L,aAAen7L,KAAKm7L,cAAgBn7L,KAAK07L,sBAC9C17L,KAAKm7L,aAAaC,UAAUY,KAAKh8L,KAAKq4I,OAAQyjD,EAClD,CAMAx3L,OAAOs/E,EAAQq4G,GACPj8L,KAAKm7L,eACDc,IAC2D,mBAAvD9nL,OAAOowB,UAAUr7B,SAAS6nD,KAAKkrI,GAC/Bj8L,KAAKm7L,aAAaC,UAAUc,sCAAsCD,GAGlEj8L,KAAKm7L,aAAaC,UAAUe,+CAA+CF,IAGnFj8L,KAAKm7L,aAAaC,UAAUI,4BAA4Bx6B,gBAAgBp9E,GAEhF,CAKA83G,sBAEI,cAAWU,UAAc,IACdA,iBAGAC,QAAY,YAAsBA,QAAQjB,UAAc,IACxDiB,aADX,CAIJ,CAKAT,YACI,OAAO57L,KAAKm7L,cAAgBn7L,KAAKm7L,aAAaC,UAAUkB,SAC5D,CAIAhzJ,OACQtpC,KAAKm7L,cACLn7L,KAAKm7L,aAAaC,UAAUmB,MAEpC,CAIAC,mBACQx8L,KAAKm7L,cACLn7L,KAAKm7L,aAAaC,UAAUqB,aAAaz8L,KAAKq4I,OAEtD,CACAqkD,qBACQ18L,KAAKm7L,cACLn7L,KAAKm7L,aAAaC,UAAUuB,oBAEpC,CACAC,iBACQ58L,KAAKm7L,cACLn7L,KAAKm7L,aAAaC,UAAUyB,gBAEpC,CACAC,aACQ98L,KAAKm7L,cACLn7L,KAAKm7L,aAAaC,UAAU2B,YAEpC,CAMAntL,KAAKhL,GACD,OAAO,IAAI+S,QAASC,WACL5X,KAAKm7L,aAAgB,IAG5BprB,KAAMitB,kBAFep4L,GAAUA,EAAOq4L,aAAer4L,EAAOq4L,aAAehC,GAAWiC,aAEhD,KAClCl9L,KAAK27L,iBAAiB/2L,GACtBgT,EAAQ5X,KAAI,IAKhBA,KAAK27L,iBAAiB/2L,GACtBgT,EAAQ5X,MAAI,EAGxB,EAOJi7L,GAAWiC,aAAgB,GAAEntB,KAAMotB,mBAAmB1b,KAAe5nB,gDAIrEohC,GAAWc,OAAS,CAChBqB,SAAS,EACTC,cAAc,EACdC,eAAe,EACfC,WAAW,EACXC,cAAc,EACdC,aAAa,mQClOV,MAAMC,GACT79L,cAEIG,KAAK29L,8BAAgC,EAErC39L,KAAK49L,4BAA6B,EAElC59L,KAAK69L,YAAa,EAElB79L,KAAK89L,qBAAsB,EAE3B99L,KAAK+9L,cAAgBzE,KAAa0E,oBAElCh+L,KAAKi+L,4BAA8B3E,KAAa4E,sCAEhDl+L,KAAKm+L,4BAA6B,CACtC,EAEJ1c,KAAel9I,UAAU65J,uBAAyB,WAC9C,OAAO,IACX,EACA3c,KAAel9I,UAAU85J,oBAAsB,SAAU9rL,GACrD,EAEJkvK,KAAel9I,UAAU+5J,YAAc,WACnC,OAAO,IACX,EACA7c,KAAel9I,UAAUg6J,YAAc,SAAU90F,GAE7C,OAAOzpG,IACX,EACAyhL,KAAel9I,UAAUi6J,uBAAyB,SAAU/0F,GAExD,OAAO,CACX,EACAg4E,KAAel9I,UAAUk6J,eAAiB,SAAUh1F,GAEhD,OAAO,CACX,EACAg4E,KAAel9I,UAAUm6J,oBAAsB,SAAUC,EAAel1F,GAEpE,OAAO,CACX,EACAg4E,KAAel9I,UAAUq6J,kBAAoB,SAAUD,GAEnD,OAAO3+L,IACX,EACAmU,OAAOwzB,eAAe2xJ,KAAa/0J,UAAW,6BAA8B,CACxEzhC,IAAK,WACD,OAAO9C,KAAK6+L,sBAAsBjB,0BACtC,EACA1gL,IAAK,SAAU3K,GACXvS,KAAK6+L,sBAAsBjB,2BAA6BrrL,CAC5D,EACAs1B,YAAY,EACZE,cAAc,IAElB5zB,OAAOwzB,eAAe2xJ,KAAa/0J,UAAW,wBAAyB,CACnEzhC,IAAK,WACD,OAAK9C,KAAK8+L,yBACN9+L,KAAK8+L,uBAAyB,IAAIpB,IAE/B19L,KAAK8+L,sBAChB,EACAj3J,YAAY,EACZE,cAAc,IAElB5zB,OAAOwzB,eAAe2xJ,KAAa/0J,UAAW,aAAc,CACxDzhC,IAAK,WACD,OAAO9C,KAAK6+L,sBAAsBhB,UACtC,EACA3gL,IAAK,SAAU3K,GACXvS,KAAK6+L,sBAAsBhB,WAAatrL,CAC5C,EACAs1B,YAAY,EACZE,cAAc,IAElB5zB,OAAOwzB,eAAe2xJ,KAAa/0J,UAAW,8BAA+B,CACzEzhC,IAAK,WACD,OAAO9C,KAAK6+L,sBAAsBZ,2BACtC,EACA/gL,IAAK,SAAU3K,GACXvS,KAAK6+L,sBAAsBZ,4BAA8B1rL,CAC7D,EACAs1B,YAAY,EACZE,cAAc,IAElB5zB,OAAOwzB,eAAe2xJ,KAAa/0J,UAAW,gBAAiB,CAC3DzhC,IAAK,WACD,OAAO9C,KAAK6+L,sBAAsBd,aACtC,EACA7gL,IAAK,SAAU3K,GACXvS,KAAK6+L,sBAAsBd,cAAgBxrL,CAC/C,EACAs1B,YAAY,EACZE,cAAc,IAElB5zB,OAAOwzB,eAAe2xJ,KAAa/0J,UAAW,sBAAuB,CACjEzhC,IAAK,WACD,OAAO9C,KAAK6+L,sBAAsBf,mBACtC,EACA5gL,IAAK,SAAU3K,GACXvS,KAAK6+L,sBAAsBf,oBAAsBvrL,CACrD,EACAs1B,YAAY,EACZE,cAAc,IAElB5zB,OAAOwzB,eAAe2xJ,KAAa/0J,UAAW,6BAA8B,CACxEzhC,IAAK,WACD,OAAO9C,KAAK6+L,sBAAsBV,0BACtC,EACAjhL,IAAK,SAAU3K,GACXvS,KAAK6+L,sBAAsBV,2BAA6B5rL,CAC5D,EACAs1B,YAAY,EACZE,cAAc,IAGlBuxJ,KAAa/0J,UAAUw6J,qBAAuB,WAC1C,MAAMC,EAAch/L,KAAK6+L,sBACzB,GAAIG,EAAYjB,gBAAkBzE,KAAa0E,oBAC3CgB,SAAYnB,YAAa,GAClB,EAEX,MAAMnzD,EAAS1qI,KAAKmwK,YAKpB,IAJKzlC,EAAOu0D,UAAUC,wBAIjBx0D,EAAO8zD,uBAERQ,SAAYnB,YAAa,GAClB,EAEX,GAAI79L,KAAK49L,4BAAL59L,MAAmCA,KAAKm/L,gBAExC,GADkCz0D,EAAO8zD,uBAAuBx+L,KAAKm/L,iBACtC,CAC3B,MAAMC,EAAuB10D,EAAO+zD,eAAez+L,KAAKm/L,iBACxDH,EAAYpB,4BAA6B,EACzCoB,EAAYrB,8BAAgC,EAC5CqB,EAAYnB,aAAauB,EAAuB,EACpD,SAEIJ,EAAYrB,mCAC4B,IAApCqB,EAAYlB,qBAA8BkB,EAAYrB,8BAAgCqB,EAAYlB,qBAQlG,OAAOkB,EAAYjB,gBAAkBzE,KAAa+F,2BAAoCL,EAAYnB,WAPlGmB,EAAYpB,4BAA6B,EACzCoB,EAAYrB,8BAAgC,EAG5CqB,EAAYnB,WAAamB,EAAYjB,gBAAkBzE,KAAa+F,2BAAoCL,EAAYnB,UAGlBA,CAI9G,MAAMv/E,EAAQt+G,KAAK2kI,WACnB,GAAIrmB,EAAMghF,uBAAwB,CAC9B,MAAMC,EAA+BjhF,EAAMghF,yBACd,OAAzBt/L,KAAKm/L,kBACLn/L,KAAKm/L,gBAAkBz0D,EAAO4zD,eAE9Bt+L,KAAKm/L,iBAAmBz0D,EAAOg0D,oBAAoBM,EAAYf,4BAA6Bj+L,KAAKm/L,mBACjGI,EAA6BC,2BAA2Bx/L,MACxD0qI,EAAOk0D,kBAAkBI,EAAYf,6BACrCj+L,KAAK6+L,sBAAsBjB,4BAA6B,EAEhE,CACA,OAAOoB,EAAYnB,UACvB,6BCrKA,MAAM4B,GAAgC,IAAI9gK,MACpC+gK,GAA+B,IAAI/gK,MACzCxqB,OAAOwzB,eAAe85I,KAAel9I,UAAW,+BAAgC,CAC5EzhC,IAAK,WACD,OAAO28L,EACX,IAEJtrL,OAAOwzB,eAAe85I,KAAel9I,UAAW,8BAA+B,CAC3EzhC,IAAK,WACD,OAAO48L,EACX,IAEJvrL,OAAOwzB,eAAe85I,KAAel9I,UAAW,eAAgB,CAC5DzhC,IAAK,WACD,OAAO9C,KAAK2/L,aAChB,EACAziL,IAAK,SAAU3K,GACPvS,KAAK2/L,gBAAkBptL,IACvBvS,KAAK2/L,cAAgBptL,EACrBvS,KAAK4/L,yBAEb,IAEJne,KAAel9I,UAAUs7J,gBAAkB,WACvC,OAAO7/L,KAAK4mB,cAAgB5mB,KAAK8/L,oBACrC,EACAre,KAAel9I,UAAUw7J,aAAe,SAAUxlK,EAAQ01I,EAAQ+vB,GACzDhgM,KAAKigM,QACNjgM,KAAKigM,MAAQ,IAEjB,UAAWlxH,KAAQ/uE,KAAKigM,MACpB,GAAIlxH,EAAK1hD,SAAWkN,EAChB,OAAOw0C,EAGf,MAAMmxH,EAAelgM,KAAK8/L,qBACtBI,IACA3lK,EAAOE,MAAQylK,EAAazlK,MAC5BF,EAAOG,OAASwlK,EAAaxlK,QAEjC,MAAMylK,EAAU,CAAE9yK,OAAQkN,EAAQ01I,SAAQ+vB,kBAAiBhrK,SAAS,EAAM3oB,IAAqB,IAAhBkR,KAAKs/C,UAAmB/iC,WACvG,OAAA95B,KAAKigM,MAAMhiL,KAAKkiL,GACZlwB,IAAW3yJ,MAAMqnB,QAAQsrI,IACzBA,EAAOjiC,oBAAoBx1F,IAAI,KAC3Bx4C,KAAKogM,eAAe7lK,EAAM,GAG3B4lK,CACX,EACA1e,KAAel9I,UAAU67J,eAAiB,SAAU7lK,GAChD,IAAKv6B,KAAKigM,OAA+B,IAAtBjgM,KAAKigM,MAAMvqL,OAC1B,OAAO1V,KAEX,UAAW+uE,KAAQ/uE,KAAKigM,MACpB,GAAIlxH,EAAK1hD,SAAWkN,EAAQ,CACxB,MAAM5f,EAAQ3a,KAAKigM,MAAMn7J,QAAQiqC,IACnB,IAAVp0D,GACA3a,KAAKigM,MAAM1kL,OAAOZ,EAAO,GAE7B,KACJ,CAEJ,OAAO3a,IACX,EACAyhL,KAAel9I,UAAU87J,gBAAkB,SAAUtxH,GACjD,MAAMx0C,EAASw0C,EAAK1hD,OACdmuJ,EAAUjhJ,EAAOI,WAAW,MAClC,IAAK6gJ,EACD,OAAO,EAEX,MAAMn2I,EAASrlC,KAAK8/L,qBACpBL,GAA8Bz+B,gBAAgBjyF,GAC9C,MAAMkhG,EAASlhG,EAAKkhG,OACpB,IAAIqwB,EAAgB,KAChBC,EAAiB,KACjBjiF,EAAQ,KAcZ,GAbI2xD,IACA3xD,EAAQhhG,MAAMqnB,QAAQsrI,GAAUA,EAAO,GAAGtrC,WAAasrC,EAAOtrC,WAC9D27D,EAAgBhiF,EAAM8rB,aACtBm2D,EAAiBjiF,EAAMkiF,cACnBljL,MAAMqnB,QAAQsrI,GACd3xD,EAAMkiF,cAAgBvwB,GAGtB3xD,EAAM8rB,aAAe6lC,EACrB3xD,EAAMkiF,cAAgB,OAG9BxgM,KAAKygM,WAAa1xH,EACdA,EAAK2xH,aACL3xH,EAAK2xH,aAAanmK,OAEjB,CAED,MAAME,GAAQld,KAAKwrC,MAAMxuB,EAAOs7G,YAAc71I,KAAK2gM,uBAC7CjmK,GAASnd,KAAKwrC,MAAMxuB,EAAOw7B,aAAe/1D,KAAK2gM,uBAEjDpmK,EAAOs7G,aAAet7G,EAAOw7B,eADbt7B,KAAUF,EAAOE,OAAS4K,EAAO5K,QAAUF,EAAOE,OAASC,KAAWH,EAAOG,QAAU2K,EAAO3K,SAAWH,EAAOG,UAEhIH,EAAOE,MAAQA,GACfF,EAAOG,OAASA,GAChB16B,KAAK4gM,QAAQnmK,GAAOC,IAE5B,CACA,SAAK2K,EAAO5K,QAAU4K,EAAO3K,SAI7B16B,KAAK6gM,eACL7gM,KAAK8gM,mBAED/xH,EAAKixH,iBACLxkB,EAAQxlC,UAAU,EAAG,EAAG3wG,EAAO5K,MAAO4K,EAAO3K,QAEjD8gJ,EAAQ5gJ,UAAUyK,EAAQ,EAAG,GAEzBi5E,IACAA,EAAMkiF,cAAgBD,EACtBjiF,EAAM8rB,aAAek2D,GAEzBZ,GAA6B1+B,gBAAgBjyF,GACtC,GACX,EACA0yG,KAAel9I,UAAUw8J,aAAe,WAKpC,IAJK/gM,KAAKigM,OAA+B,IAAtBjgM,KAAKigM,MAAMvqL,SAGf1V,KAAK8/L,qBAEhB,OAAO,EAEX,IAAIkB,EACJ,UAAWjyH,KAAQ/uE,KAAKigM,MACpB,GAAKlxH,EAAK/5C,QAKV,GAFe+5C,EAAK1hD,SAELrtB,KAAK4mB,cAIpB,IAAK5mB,KAAKqgM,gBAAgBtxH,GACtB,OAAO,OAJPiyH,EAAmBjyH,EAO3B,QAAIiyH,IACKhhM,KAAKqgM,gBAAgBW,KAI9BhhM,KAAKygM,WAAa,KACX,GACX,WC9JAhf,KAAel9I,UAAU08J,gBAAkB,SAAUC,EAAWC,GAAgB,EAChF1f,KAAel9I,UAAU68J,eAAiB,SAAUD,GAAgB,EACpE1f,KAAel9I,UAAU88J,mBAAqB,SAAU3vL,EAAMyvL,GAAgB,EAC9E1f,KAAel9I,UAAU+8J,2BAA6B,WAAc,ECD7D,MAAMC,GACT1hM,cACIG,KAAKwhM,wBAAyB,CAClC,kBCNJ,SAASC,GAAoBv+L,GAKzB,GAAIlD,KAAK0hM,6BAA+B1hM,KAAK0hM,4BAA4B3gL,KAJtDq4C,GAERl2D,IAAQA,IAAQk2D,GAASl2D,EAAIg4C,MAAM,IAAIymJ,OADtB,MAAQvoI,EAAQ,MAC8B,QAGtE,OAAOl2D,EAEX,MAAM0+L,EAAU1+L,EAAIy+E,YAAY,KAC1BkgH,EAAmB3+L,EAAIy+E,YAAY,KACnCmgH,EAAcD,GAAmB,EAAK3+L,EAAIu+E,UAAUogH,EAAkB3+L,EAAIwS,QAAU,GAC1F,OAAQksL,GAAU,EAAK1+L,EAAIu+E,UAAU,EAAGmgH,GAAW1+L,GAAOlD,KAAK+hM,oBAAsBD,CACzF,CCRAE,KAAOz9J,UAAU+5J,YAAc,WAC3B,MAAM70F,EAAQzpG,KAAKiiM,IAAI3D,cACvB,IAAK70F,EACD,MAAM,IAAInkF,MAAM,oCAEpB,OAAOmkF,CACX,EACAu4F,KAAOz9J,UAAUg6J,YAAc,SAAU90F,GACrC,OAAAzpG,KAAKiiM,IAAI1D,YAAY90F,GACdzpG,IACX,EACAgiM,KAAOz9J,UAAUi6J,uBAAyB,SAAU/0F,GAChD,OAAOzpG,KAAKiiM,IAAIC,kBAAkBz4F,EAAOzpG,KAAKiiM,IAAIE,uBACtD,EACAH,KAAOz9J,UAAUk6J,eAAiB,SAAUh1F,GACxC,OAAOzpG,KAAKiiM,IAAIC,kBAAkBz4F,EAAOzpG,KAAKiiM,IAAIG,aACtD,EACAJ,KAAOz9J,UAAUm6J,oBAAsB,SAAUC,EAAel1F,GAC5D,MAAM44F,EAAcriM,KAAKsiM,oBAAoB3D,GAC7C,OAAA3+L,KAAKiiM,IAAIM,WAAWF,EAAa54F,IAC1B,CACX,EACAu4F,KAAOz9J,UAAUq6J,kBAAoB,SAAUD,GAC3C,MAAM0D,EAAcriM,KAAKsiM,oBAAoB3D,GAC7C,OAAA3+L,KAAKiiM,IAAIO,SAASH,GACXriM,IACX,EACAgiM,KAAOz9J,UAAUk+J,iBAAmB,WAChC,MAAMC,EAAa1iM,KAAKi/L,UAAUyD,WAClC,OAAIA,EAAWC,eACJD,EAAWC,iBAEf3iM,KAAKs+L,aAChB,EACA0D,KAAOz9J,UAAUq+J,iBAAmB,SAAUn5F,GAC1C,MAAMi5F,EAAa1iM,KAAKi/L,UAAUyD,WAC9BA,EAAWG,eACXH,EAAWG,eAAep5F,GAG9BzpG,KAAKu+L,YAAY90F,EACrB,EACAu4F,KAAOz9J,UAAUu+J,oBAAsB,SAAUr5F,GAC7C,MAAMi5F,EAAa1iM,KAAKi/L,UAAUyD,WAClC,OAAIA,EAAWK,kBACJL,EAAWK,kBAAkBt5F,EAAOi5F,EAAWM,kBAEnDhjM,KAAKy+L,eAAeh1F,EAC/B,EACAu4F,KAAOz9J,UAAU0+J,0BAA4B,SAAUx5F,GACnD,MAAMi5F,EAAa1iM,KAAKi/L,UAAUyD,WAClC,OAAIA,EAAWK,kBACJL,EAAWK,kBAAkBt5F,EAAOi5F,EAAWQ,4BAEnDljM,KAAKw+L,uBAAuB/0F,EACvC,EACAu4F,KAAOz9J,UAAU4+J,eAAiB,WAC9B,MAAMC,EAAOpjM,KAAKi/L,UACZyD,EAAaU,EAAKV,WACxB,IAAKA,EACD,OAAO,KAEX,MAAM3/L,EAAQ,IAAIw+L,GAElB,GADAvhM,KAAKiiM,IAAIoB,aAAaX,EAAWY,kBAC7BF,EAAKG,6BACLxgM,EAAMygM,gBAAkBxjM,KAAKyiM,mBACzB1/L,EAAMygM,iBACNd,EAAWe,gBAAgB1gM,EAAMygM,gBAAiBd,EAAWgB,mBAGhE,CACD,GAAI1jM,KAAK2jM,0BACL,OAAO3jM,KAAK2jM,0BAEhB5gM,EAAM6gM,kBAAoB5jM,KAAKyiM,mBAC3B1/L,EAAM6gM,oBACFlB,EAAWmB,cACXnB,EAAWmB,cAAcnB,EAAWoB,iBAAkB/gM,EAAM6gM,mBAG5D5jM,KAAKiiM,IAAIM,WAAWG,EAAWoB,iBAAkB/gM,EAAM6gM,oBAG/D5jM,KAAK2jM,0BAA4B5gM,CACrC,CACA,OAAOA,CACX,EACAi/L,KAAOz9J,UAAUw/J,aAAe,SAAUhhM,GACtC,MAAMqgM,EAAOpjM,KAAKi/L,UACZyD,EAAaU,EAAKV,WACxB,IAAKA,IAAe3/L,EAChB,OAAO,EAEX,GAAIqgM,EAAKG,6BAA8B,CACnC,IAAKxgM,EAAMygM,gBACP,OAAO,EAENzgM,EAAMihM,gBACPjhM,EAAMihM,cAAgBhkM,KAAKyiM,mBACvB1/L,EAAMihM,eACNtB,EAAWe,gBAAgB1gM,EAAMihM,cAAetB,EAAWgB,eAGvE,UACU3gM,EAAMy+L,uBAAwB,CACpC,IAAKz+L,EAAM6gM,kBACP,OAAO,EAEPlB,EAAWuB,YACXvB,EAAWuB,YAAYvB,EAAWoB,mBAGlC9jM,KAAKiiM,IAAIO,SAASE,EAAWoB,kBAC7B9jM,KAAK2jM,0BAA4B,MAErC5gM,EAAMy+L,wBAAyB,CACnC,CACA,MAAM0C,EAAWlkM,KAAKiiM,IAAIoB,aAAaX,EAAWY,kBAClD,IAAIa,GAAY,EAOhB,GANIphM,EAAMihM,cACNG,EAAYnkM,KAAKijM,0BAA0BlgM,EAAMihM,eAE5CjhM,EAAM6gM,oBACXO,EAAYnkM,KAAKijM,0BAA0BlgM,EAAM6gM,oBAEjDO,IAAcD,EAAU,CACxB,IAAI7nL,EAAS,EACb,GAAI+mL,EAAKG,6BAA8B,CACnC,IAAKxgM,EAAMygM,kBAAoBzgM,EAAMihM,cACjC,OAAO,EAEX,MAAMI,EAAYpkM,KAAK8iM,oBAAoB//L,EAAMygM,iBAEjDnnL,EADgBrc,KAAK8iM,oBAAoB//L,EAAMihM,eAC5BI,EACnBpkM,KAAK4iM,iBAAiB7/L,EAAMygM,iBAC5BxjM,KAAK4iM,iBAAiB7/L,EAAMihM,eAC5BjhM,EAAMygM,gBAAkB,KACxBzgM,EAAMihM,cAAgB,IAC1B,KACK,CACD,IAAKjhM,EAAM6gM,kBACP,OAAO,EAEXvnL,EAASrc,KAAK8iM,oBAAoB//L,EAAM6gM,mBACxC5jM,KAAK4iM,iBAAiB7/L,EAAM6gM,mBAC5B7gM,EAAM6gM,kBAAoB,KAC1B7gM,EAAMy+L,wBAAyB,CACnC,CACA,OAAOnlL,CACX,CACA,OAAO,CACX,EACA2lL,KAAOz9J,UAAU8/J,sBAAuB,EACxCrC,KAAOz9J,UAAU+/J,cAAgB,IAAIC,KACrCvC,KAAOz9J,UAAU65J,uBAAyB,WACtC,OAAOp+L,KAAKskM,aAChB,EACAtC,KAAOz9J,UAAU85J,oBAAsB,SAAU9rL,GACzCA,IAAUvS,KAAKqkM,uBAGnBrkM,KAAKqkM,qBAAuB9xL,EACxBA,GACAvS,KAAKwkM,sBAAwBxkM,KAAKykM,uBAAuBjsJ,IAAI,KACpDx4C,KAAK0kM,qBACN1kM,KAAK0kM,mBAAqB1kM,KAAKmjM,iBAAe,GAGtDnjM,KAAK2kM,oBAAsB3kM,KAAK4kM,qBAAqBpsJ,IAAI,KACrD,IAAKx4C,KAAK0kM,mBACN,OAEJ,MAAMziI,EAAOjiE,KAAK+jM,aAAa/jM,KAAK0kM,oBAChCziI,GAAO,IACPjiE,KAAK0kM,mBAAqB,KAC1B1kM,KAAKskM,cAAcO,gBACnB7kM,KAAKskM,cAAcQ,SAAS7iI,GAAM,GAAI,KAK9CjiE,KAAKykM,uBAAuB/rJ,OAAO14C,KAAKwkM,uBACxCxkM,KAAKwkM,sBAAwB,KAC7BxkM,KAAK4kM,qBAAqBlsJ,OAAO14C,KAAK2kM,qBACtC3kM,KAAK2kM,oBAAsB,MAEnC,EACA3C,KAAOz9J,UAAU+9J,oBAAsB,SAAU3D,GAC7C,OAAOA,IAAkBrF,KAAa4E,sCAAwCl+L,KAAKiiM,IAAI8C,gCAAkC/kM,KAAKiiM,IAAI+C,kBACtI,EC9LAhD,KAAOz9J,UAAU0gK,wBAA0B,WACvC,MAAMC,EAAoBllM,KAAKiiM,IAAIgD,0BACnC,IAAKC,EACD,MAAM,IAAI5/K,MAAM,uCAEpB,OAAO4/K,CACX,EACAlD,KAAOz9J,UAAU4gK,wBAA0B,SAAU5yL,GACjDvS,KAAKiiM,IAAIkD,wBAAwB5yL,EACrC,EACAyvL,KAAOz9J,UAAU6gK,sBAAwB,SAAU7yL,GAC/CvS,KAAKiiM,IAAImD,sBAAsBplM,KAAKiiM,IAAIoD,mBAAoB9yL,EAChE,EACAyvL,KAAOz9J,UAAU+gK,uBAAyB,SAAUC,GAAY,GAC5DvlM,KAAKiiM,IAAIqD,uBAAuBC,EAAYvlM,KAAKiiM,IAAIuD,OAASxlM,KAAKiiM,IAAIwD,UAC3E,EACAzD,KAAOz9J,UAAUmhK,qBAAuB,WACpC1lM,KAAKiiM,IAAIyD,sBACb,EACA1D,KAAOz9J,UAAUohK,4BAA8B,SAAUC,EAASrzL,GAC9DvS,KAAKiiM,IAAI4D,0BAA0BD,EAASrzL,EAAOvS,KAAKiiM,IAAI6D,oBAChE,EACA9D,KAAOz9J,UAAUwhK,4BAA8B,SAAUxzL,GACrDvS,KAAKiiM,IAAI+D,eAAehmM,KAAKiiM,IAAIgE,0BAA2B,EAAG1zL,EAAQA,EAAM2zL,mBAAqB,KACtG,EACAlE,KAAOz9J,UAAU4hK,4BAA8B,SAAU94K,GACrDrtB,KAAKiiM,IAAImE,iBAAiBpmM,KAAKiiM,IAAIgE,0BAA2B,EAAG54K,EACrE,6BC7BAg5K,cAAW9hK,UAAU+hK,mBAAqB,SAAUC,EAASC,EAAOC,GAChE,IAAKF,GAAWA,EAAQG,YACpB,OAEJ,MAAMC,EAAW3mM,KAAK4mM,mBAAmBL,EAAQh3K,QAC3Cs3K,EAAiB7mM,KAAK8mM,kCAAkC,EAAGP,EAAQh3K,QACnEw3K,EAAqB/mM,KAAKgnM,qBAAqBhnM,KAAKiiM,IAAIgF,WAAYV,GAAS,GACnFvmM,KAAKknM,cAAcT,GACnB,IAcI,QAZoC5jM,IAAhC7C,KAAKmnM,yBAELnnM,KAAKiiM,IAAImF,WACTpnM,KAAKiiM,IAAIoF,WAAWrnM,KAAKiiM,IAAIgF,WAAY,EAAGJ,EAAgBF,EAAU3mM,KAAKiiM,IAAIj0B,cAAew4B,GAE1FxmM,KAAKmnM,uBADmB,IAAxBnnM,KAAKiiM,IAAImF,YAQZpnM,KAAKmnM,uBAgBNnnM,KAAKiiM,IAAIoF,WAAWrnM,KAAKiiM,IAAIgF,WAAY,EAAGJ,EAAgBF,EAAU3mM,KAAKiiM,IAAIj0B,cAAew4B,OAhBhE,CAC9B,IAAKD,EAAQe,eAAgB,CACzBf,EAAQe,eAAiBtnM,KAAKunM,aAAahB,EAAQ9rK,MAAO8rK,EAAQ7rK,QAClE,MAAM8gJ,EAAU+qB,EAAQe,eAAe3sK,WAAW,MAClD,IAAK6gJ,EACD,MAAM,IAAIl2J,MAAM,4BAEpBihL,EAAQiB,gBAAkBhsB,EAC1B+qB,EAAQe,eAAe7sK,MAAQ8rK,EAAQ9rK,MACvC8rK,EAAQe,eAAe5sK,OAAS6rK,EAAQ7rK,MAC5C,CACA6rK,EAAQiB,gBAAgBxxD,UAAU,EAAG,EAAGuwD,EAAQ9rK,MAAO8rK,EAAQ7rK,QAC/D6rK,EAAQiB,gBAAgB5sK,UAAU4rK,EAAO,EAAG,EAAGA,EAAMiB,WAAYjB,EAAMkB,YAAa,EAAG,EAAGnB,EAAQ9rK,MAAO8rK,EAAQ7rK,QACjH16B,KAAKiiM,IAAIoF,WAAWrnM,KAAKiiM,IAAIgF,WAAY,EAAGJ,EAAgBF,EAAU3mM,KAAKiiM,IAAIj0B,cAAeu4B,EAAQe,eAC1G,CAIIf,EAAQjiE,iBACRtkI,KAAKiiM,IAAI0F,eAAe3nM,KAAKiiM,IAAIgF,YAEhCF,GACD/mM,KAAKgnM,qBAAqBhnM,KAAKiiM,IAAIgF,WAAY,MAGnDV,EAAQxS,SAAU,CACtB,OAIIwS,EAAQG,aAAc,CAC1B,CACJ,ECpDAL,cAAW9hK,UAAUqjK,wBAA0B,WAE3C5nM,KAAK6nM,gBAAgB,CADV7nM,KAAKiiM,IACS6F,MAC7B,EACAzB,cAAW9hK,UAAUwjK,uCAAyC,WAE1D/nM,KAAK6nM,gBAAgB,CADV7nM,KAAKiiM,IACS+F,mBAC7B,EACA3B,cAAW9hK,UAAU0jK,mBAAqB,SAAUC,GAChD,MAAMC,EAAKnoM,KAAKiiM,IACV5lL,EAAS,GACf,QAASoB,EAAI,EAAGA,EAAIyqL,EAAcxyL,OAAQ+H,IAElCpB,EAAO4B,KADPiqL,EAAczqL,GACF0qL,EAAG,mBAAqB1qL,GAGxB0qL,EAAGrtD,MAGvB,OAAOz+H,CACX,EACAgqL,cAAW9hK,UAAUsjK,gBAAkB,SAAUO,GAClCpoM,KAAKiiM,IACboG,YAAYD,EACnB,EACA/B,cAAW9hK,UAAU+jK,sCAAwC,SAAUC,EAAWC,GAAyB,EAAOC,GAC9GzoM,KAAK0oM,qBAAuB,KAE5B,MAAMP,EAAKnoM,KAAKiiM,IACVmG,EAAcG,EAAUI,aACxBzpK,EAAQkpK,EAAY1yL,OAC1B,GAAI6yL,EAAUK,iBAAkB,CAC5BT,EAAGU,gBAAgBV,EAAGW,iBAAkBP,EAAUK,kBAClDT,EAAGU,gBAAgBV,EAAGY,iBAAkBR,EAAUS,cAClD,QAASvrL,EAAI,EAAGA,EAAIyhB,EAAOzhB,IAAK,CAC5B,MAAM8oL,EAAUgC,EAAU32D,SAASn0H,GACnC,QAASmsD,GAAI,EAAGA,GAAI1qC,EAAO0qC,KACvBw+H,EAAYx+H,IAAKu+H,EAAGrtD,KAExBstD,EAAY3qL,GAAK0qL,EAAGnoM,KAAKipM,aAAe,EAAI,mBAAqBxrL,EAAI,mBAAqBA,EAAI,UAC9F0qL,EAAGe,WAAWd,EAAY3qL,IAC1B0qL,EAAGE,YAAYD,GACfD,EAAGgB,gBAAgB,EAAG,EAAG5C,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQ,EAAG,EAAG6rK,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQytK,EAAGiB,iBAAkBjB,EAAGkB,QACzH,CACA,QAAS5rL,EAAI,EAAGA,EAAIyhB,EAAOzhB,IACvB2qL,EAAY3qL,GAAK0qL,EAAGnoM,KAAKipM,aAAe,EAAI,mBAAqBxrL,EAAI,mBAAqBA,EAAI,UAElG0qL,EAAGE,YAAYD,EACnB,CACA,QAAS3qL,EAAI,EAAGA,EAAIyhB,EAAOzhB,IAAK,CAC5B,MAAM8oL,EAAUgC,EAAU32D,SAASn0H,GAC/B8oL,GAASjiE,kBAAoBkkE,IAA2BjC,GAAS+C,SAAW/C,GAASgD,OACrFvpM,KAAKgnM,qBAAqBmB,EAAGlB,WAAYV,GAAS,GAClD4B,EAAGR,eAAeQ,EAAGlB,YACrBjnM,KAAKgnM,qBAAqBmB,EAAGlB,WAAY,MAEjD,CACIwB,IACIF,EAAUK,kBAEV5oM,KAAKwpM,wBAAwBjB,EAAUS,cAE3CP,KAEJzoM,KAAKwpM,wBAAwB,KACjC,EACAnD,cAAW9hK,UAAUklK,2BAA6B,SAAUpwK,EAAM9M,EAASm9K,GAAoB,GAC3F,IAAIplE,GAAkB,EAClBqlE,GAAsB,EACtBC,GAAwB,EACxBC,GAAuB,EACvBC,EAAqB,GACrBC,GAAe,EACfC,GAAU,EAMVhgK,GAAQ,GACRigK,GAAgB,GAChBC,GAAiB,GACjBC,GAAU,GACVC,GAAU,GACVhe,GAAY,GACZie,GAAa,GACbC,GAAS,GACTC,GAAS,GACb,MAAMhC,GAAYvoM,KAAKwqM,oCAAmC,GAAM,EAAOnxK,QACvDx2B,IAAZ0pB,IACA+3G,OAA8CzhI,IAA5B0pB,EAAQ+3G,iBAAwC/3G,EAAQ+3G,gBAC1EqlE,OAAsD9mM,IAAhC0pB,EAAQo9K,qBAA2Cp9K,EAAQo9K,oBACjFC,OAA0D/mM,IAAlC0pB,EAAQq9K,uBAA8Cr9K,EAAQq9K,sBACtFC,OAAwDhnM,IAAjC0pB,EAAQs9K,sBAA6Ct9K,EAAQs9K,qBACpFE,GAAex9K,EAAQw9K,cAAgB,EACvCC,GAAUz9K,EAAQy9K,SAAWA,GAC7BhgK,GAAQzd,EAAQyd,OAASA,GACzBigK,GAAgB19K,EAAQ09K,eAAiBA,GACzCC,GAAiB39K,EAAQ29K,gBAAkBA,GAC3CC,GAAU59K,EAAQ49K,SAAWA,GAC7BC,GAAU79K,EAAQk+K,aAAeL,GACjChe,GAAY7/J,EAAQ6/J,WAAaA,GACjCie,GAAa99K,EAAQ89K,YAAcA,GACnCC,GAAS/9K,EAAQm+K,aAAeJ,GAChCC,GAASh+K,EAAQg+K,QAAUA,GACvBvqM,KAAKipM,aAAe,IACY,KAA/B18K,EAAQu9K,oBAC0B,KAA/Bv9K,EAAQu9K,oBACuB,KAA/Bv9K,EAAQu9K,oBACuB,KAA/Bv9K,EAAQu9K,oBACuB,KAA/Bv9K,EAAQu9K,sBACZA,EAAqBv9K,EAAQu9K,qBAGrC,MAAM3B,GAAKnoM,KAAKiiM,IAEV0I,GAAcxC,GAAGyC,oBACvB5qM,KAAKwpM,wBAAwBmB,IAC7B,MAAMlwK,GAAQpB,EAAKoB,OAASpB,EACtBqB,GAASrB,EAAKqB,QAAUrB,EACxBu4G,GAAW,GACXw2D,GAAc,GACdyC,GAAoB7qM,KAAKipM,aAAe,IAClB,KAAvBa,GAC0B,KAAvBA,GACuB,KAAvBA,GACRvB,GAAUh4L,MAAQgc,GAAShc,OAAS,2BACpCg4L,GAAUS,aAAe2B,GACzBpC,GAAUuC,qBAAuBjB,GAAwBF,EACzDpB,GAAUwC,uBAAyBlB,EAAuBgB,GAAoBjB,EAC9ErB,GAAUyC,oBAAsBhrM,KAAKirM,kCAAkC1C,GAAUwC,uBAAwBxC,GAAUuC,qBAAsBrwK,GAAOC,GAAQ,EAAGovK,GAC3JvB,GAAUI,aAAeP,GACzB,QAAS3qL,GAAI,EAAGA,GAAIssL,GAActsL,KAAK,CACnC,IAAIooK,GAAeokB,GAAcxsL,KA1DT,EA2DpBrL,GAAO43B,GAAMvsB,KA5DD,EA6DZytL,GAAgBhB,GAAezsL,MA3DV,EA4DzB,MAAM8R,GAAS46K,GAAQ1sL,KA3DL,EA4DZ4P,GAAS+8K,GAAQ3sL,KA3DL,KA4DZ0tL,GAAab,GAAO7sL,KAAM,GACnB,IAATrL,KAAepS,KAAKorM,MAAMC,6BAIZ,IAATj5L,KAAepS,KAAKorM,MAAME,mCAE/BzlB,GAAe,GAEnB,MAAM70K,GAAUhR,KAAKurM,uBAAuB1lB,GAAcvhD,GAC7C,IAATlyH,KAAepS,KAAKorM,MAAMI,eAC1Bp5L,GAAO,EACPwuJ,KAAOC,KAAK,6FAEhBqqC,GAAgBA,IAAiBlrM,KAAKorM,MAAMK,qBAAuBzrM,KAAKipM,aAAe,GAAKjpM,KAAK0rM,UACjG,MAAMC,GAAW3rM,KAAKipM,aAAe,EAGrC,GADAb,GAAYnqL,KADOkqL,GAAGwD,GAAW,mBAAqBluL,GAAI,mBAAqBA,GAAI,YAEpE,IAAX4P,GACA,SAEJ,MAAMk5K,GAAU,IAAIqF,KAAgB5rM,KAAM,GAC1C4xI,GAASn0H,IAAK8oL,GACd4B,GAAG0D,cAAc1D,GAAG,UAAY1qL,KAChC0qL,GAAG2D,YAAYz+K,GAAQk5K,GAAQwF,iBAAiB7F,oBAChDiC,GAAG6D,cAAc3+K,GAAQ86K,GAAG8D,mBAAoBj7L,GAAQk7L,KACxD/D,GAAG6D,cAAc3+K,GAAQ86K,GAAGgE,mBAAoBn7L,GAAQwrC,KACxD2rJ,GAAG6D,cAAc3+K,GAAQ86K,GAAGiE,eAAgBjE,GAAGkE,eAC/ClE,GAAG6D,cAAc3+K,GAAQ86K,GAAGmE,eAAgBnE,GAAGkE,eAC/C,MAAME,GAAsBvsM,KAAK8mM,kCAAkC10L,GAAMmd,GAAQ27K,IAC3ErE,GAAiB7mM,KAAK4mM,mBAAmBr3K,IACzCi9K,GAAmBxsM,KAAKysM,qBAAqBr6L,IACnD,IAAIu5L,IAAwB,QAAXt+K,IAA+B,QAAXA,GAQiF,GAElG,QAAXA,GAAkB,CAEvB,QAAS5P,GAAI,EAAGA,GAAI,EAAGA,KACnB0qL,GAAGd,WAAWc,GAAGuE,4BAA8BjvL,GAAG,EAAG8uL,GAAqB9xK,GAAOC,GAAQ,EAAGmsK,GAAgB2F,GAAkB,MAElIjG,GAAQ+C,QAAS,CACrB,MAEInB,GAAGd,WAAWc,GAAGlB,WAAY,EAAGsF,GAAqB9xK,GAAOC,GAAQ,EAAGmsK,GAAgB2F,GAAkB,WAjB1F,QAAXn/K,GACAk5K,GAAQoG,WAAY,EAGpBpG,GAAQgD,MAAO,EAEnBhD,GAAQqG,UAAYrG,GAAQ9hE,MAAQ0mE,GACpChD,GAAG0E,WAAWx/K,GAAQ,EAAGk/K,GAAqB9xK,GAAOC,GAAQywK,GAAY,EAAGtE,GAAgB2F,GAAkB,MAY9GloE,GACA6jE,GAAGR,eAAet6K,IAGtBrtB,KAAKgnM,qBAAqB35K,GAAQ,MAClCk5K,GAAQuG,UAAYryK,GACpB8rK,GAAQwG,WAAaryK,GACrB6rK,GAAQ9rK,MAAQA,GAChB8rK,GAAQ7rK,OAASA,GACjB6rK,GAAQxS,SAAU,EAClBwS,GAAQyD,QAAU,EAClBzD,GAAQjiE,gBAAkBA,EAC1BiiE,GAAQ1gB,aAAeA,GACvB0gB,GAAQn0L,KAAOA,GACfm0L,GAAQyG,eAAiB9B,GACzB3E,GAAQh3K,OAASA,GACjBg3K,GAAQh2L,MAAQg6L,GAAO9sL,KAAM8qL,GAAUh4L,MAAQ,WAAakN,GAC5Dzd,KAAKitM,uBAAuBhvL,KAAKsoL,GACrC,CACA,GAAIsD,GAAwB7pM,KAAKorM,MAAM8B,sBAAuB,CAE1D,MAAMC,GAAe,IAAIvB,KAAgB5rM,KAAM,IAC/C,IAAIotM,GAAmB,EACnBC,GAA+BlF,GAAGmF,kBAClCC,GAAuBpF,GAAGqF,gBAC1BC,GAAqBtF,GAAGh6B,eACxBu/B,GAA2BvF,GAAGwF,iBAC9B3tM,KAAKipM,aAAe,EACpBoE,GAA+BlF,GAAGqF,gBAGP,KAAvB1D,GACAsD,GAAmB,EACnBK,GAAqBtF,GAAG/vG,MACxBi1G,GAA+BlF,GAAGyF,oBAEN,KAAvB9D,GACLsD,GAAmB,EACnBK,GAAqBtF,GAAG0F,+BACxBR,GAA+BlF,GAAG2F,kBAClCP,GAAuBpF,GAAG4F,cAC1BL,GAA2BvF,GAAG6F,0BAEF,KAAvBlE,GACLsD,GAAmB,EACnBK,GAAqBtF,GAAG/5B,aACxBi/B,GAA+BlF,GAAG8F,kBAClCP,GAA2BvF,GAAGwF,mBAEF,KAAvB7D,GAAoD,KAAvBA,KAClCsD,GAAmB,GACnBK,GAAqBtF,GAAG+F,kBACxBb,GAA+BlF,GAAGgG,iBAClCZ,GAAuBpF,GAAG4F,cAC1BL,GAA2BvF,GAAG6F,0BAGtChuM,KAAKgnM,qBAAqBmB,GAAGlB,WAAYkG,IAAc,GACvDhF,GAAG6D,cAAc7D,GAAGlB,WAAYkB,GAAG8D,mBAAoB9D,GAAGkB,SAC1DlB,GAAG6D,cAAc7D,GAAGlB,WAAYkB,GAAGgE,mBAAoBhE,GAAGkB,SAC1DlB,GAAG6D,cAAc7D,GAAGlB,WAAYkB,GAAGiE,eAAgBjE,GAAGkE,eACtDlE,GAAG6D,cAAc7D,GAAGlB,WAAYkB,GAAGmE,eAAgBnE,GAAGkE,eACtDlE,GAAGd,WAAWc,GAAGlB,WAAY,EAAGoG,GAA8B5yK,GAAOC,GAAQ,EAAG6yK,GAAsBE,GAAoB,MAC1HtF,GAAGiG,qBAAqBjG,GAAGkG,YAAaX,GAA0BvF,GAAGlB,WAAYkG,GAAapB,iBAAiB7F,mBAAoB,GACnIlmM,KAAKgnM,qBAAqBmB,GAAGlB,WAAY,MACzCsB,GAAU+F,qBAAuBnB,GACjC5E,GAAUgG,gCAAkC1D,GAC5CsC,GAAaL,UAAYryK,GACzB0yK,GAAaJ,WAAaryK,GAC1ByyK,GAAa1yK,MAAQA,GACrB0yK,GAAazyK,OAASA,GACtByyK,GAAapZ,SAAU,EACvBoZ,GAAanD,QAAU,EACvBmD,GAAa7oE,gBAAkBA,EAC/B6oE,GAAatnB,aAAe,EAC5BsnB,GAAa59K,OAASu6K,EACtBqD,GAAa/6L,KAAOg7L,GACpBD,GAAa58L,MAAQg4L,GAAUh4L,MAAQ,gBACvCqhI,GAASm4D,IAAgBoD,GACzBntM,KAAKitM,uBAAuBhvL,KAAKkvL,GACrC,CACA5E,UAAUiG,YAAY58D,IAClB83D,GACAvB,GAAGE,YAAYD,IAEnBpoM,KAAKwpM,wBAAwB,MAC7BjB,GAAUkG,uBAAuBpE,GAAYje,IAC7CpsL,KAAK0uM,oBACL1uM,KAAK2uM,6CAA6CpG,GAAWyB,GAASN,GAC/DnB,EACX,EACAlC,cAAW9hK,UAAUoqK,6CAA+C,SAAUpG,EAAWyB,EAASN,GAAoB,GAClH,GAAI1pM,KAAKipM,aAAe,IAAMV,EAC1B,OAAO,EAEX,GAAIA,EAAUyB,UAAYA,EACtB,OAAOA,EAEX,MAAM7B,EAAKnoM,KAAKiiM,IAChB+H,EAAUzsL,KAAKi/B,IAAIwtJ,EAAShqM,KAAKi/L,UAAU2P,gBAEvCrG,EAAUyC,sBACV7C,EAAG0G,mBAAmBtG,EAAUyC,qBAChCzC,EAAUyC,oBAAsB,MAEhCzC,EAAUK,mBACVT,EAAG2G,kBAAkBvG,EAAUK,kBAC/BL,EAAUK,iBAAmB,MAEjC,MAAM1pK,EAAQqpK,EAAUI,aAAajzL,OACrC,QAAS+H,EAAI,EAAGA,EAAIyhB,EAAOzhB,IACP8qL,EAAU32D,SAASn0H,GACHsuL,kBACfgD,2BAErB,GAAI/E,EAAU,GAAkD,mBAAtC7B,EAAG6G,+BAA+C,CACxE,MAAMrE,EAAcxC,EAAGyC,oBACvB,IAAKD,EACD,MAAM,IAAIrlL,MAAM,8CAEpBijL,EAAUK,iBAAmB+B,EAC7B3qM,KAAKwpM,wBAAwBmB,GAC7B,MAAMvC,EAAc,GACpB,QAAS3qL,GAAI,EAAGA,GAAIyhB,EAAOzhB,KAAK,CAC5B,MAAM8oL,GAAUgC,EAAU32D,SAASn0H,IAC7BwxL,GAAkB1I,GAAQwF,iBAC1BmD,GAAa/G,EAAGnoM,KAAKipM,aAAe,EAAI,mBAAqBxrL,GAAI,mBAAqBA,GAAI,UAC1F0xL,GAAoBnvM,KAAKovM,oBAAoB7I,GAAQ9rK,MAAO8rK,GAAQ7rK,OAAQsvK,GAAS,EAAmBhqM,KAAK8mM,kCAAkCP,GAAQn0L,KAAMm0L,GAAQh3K,OAAQg3K,GAAQyG,gBAAiBkC,IAC5M,IAAKC,GACD,MAAM,IAAI7pL,MAAM,8CAEpB2pL,GAAgBI,oBAAoBF,IACpC5I,GAAQyD,QAAUA,EAClB5B,EAAYnqL,KAAKixL,GACrB,CACIxF,GACAvB,EAAGE,YAAYD,EAEvB,MAEIpoM,KAAKwpM,wBAAwBjB,EAAUS,cAG3CT,SAAUyC,oBAAsBhrM,KAAKirM,kCAAkC1C,EAAUwC,uBAAwBxC,EAAUuC,qBAAsBvC,EAAU9tK,MAAO8tK,EAAU7tK,OAAQsvK,EADxJzB,EAAU+F,qBAAuB/F,EAAU+F,qBAAqB/+K,YAAS1sB,GAE7F7C,KAAKwpM,wBAAwB,MAC7BjB,EAAU+G,SAAWtF,EACdA,CACX,wECvUA3D,cAAW9hK,UAAUgrK,oBAAsB,SAAUpf,EAAU5jK,GAC3D,MAAM,IAAIjH,MAAM,qEACpB,EACA+gL,cAAW9hK,UAAU4wJ,6BAA+B,WAChD,MAAM,IAAI7vK,MAAM,8EACpB,EACA+gL,cAAW9hK,UAAUirK,qBAAuB,WAE5C,EACAnJ,cAAW9hK,UAAUkrK,gBAAkB,SAAU1zL,EAAQy/J,EAASk0B,EAAU98L,EAAG4P,EAAG0nD,EAAGylI,GACjF,MAAM,IAAIrqL,MAAM,iEACpB,EACA+gL,cAAW9hK,UAAUqrK,wBAA0B,SAAU7zL,EAAQy/J,EAASk0B,EAAUthI,EAAQ6P,EAAQ0xH,GAChG,MAAM,IAAIrqL,MAAM,yEACpB,EACA+gL,cAAW9hK,UAAUsrK,0BAA4B,WAC7C,OAAO,CACX,EACAxJ,cAAW9hK,UAAUurK,sBAAwB,WAAc,EAC3DzJ,cAAW9hK,UAAU8wJ,+BAAiC,SAAU0a,EAAiB/a,EAAmBE,EAAsB7E,EAASiB,GAAc,EACjJ+U,cAAW9hK,UAAUyrK,uBAAyB,WAAc,EAC5DvuB,KAAel9I,UAAU+wJ,mCAAqC,SAAUya,EAAiBp8I,GACrFA,EAAO,KACX,EACA0yI,cAAW9hK,UAAUmxJ,sBAAwB,SAAU35K,GAAU,EACjEsqL,cAAW9hK,UAAUixJ,8BAAgC,SAAUua,GAAmB,ELzBlF57L,OAAOwzB,eAAeq6J,KAAOz9J,UAAW,oBAAqB,CACzDzhC,IAAK,WAMD,MAAMmtM,EAAoB,GAC1B,OAAIjwM,KAAKorM,MAAM8E,MACXD,EAAkBhyL,KAAK,aAEvBje,KAAKorM,MAAM+E,MACXF,EAAkBhyL,KAAK,YAEvBje,KAAKorM,MAAMgF,OACXH,EAAkBhyL,KAAK,cAEvBje,KAAKorM,MAAMiF,MACXJ,EAAkBhyL,KAAK,aAEvBje,KAAKorM,MAAMkF,MACXL,EAAkBhyL,KAAK,aAEpBgyL,CACX,EACApoK,YAAY,EACZE,cAAc,IAElB5zB,OAAOwzB,eAAeq6J,KAAOz9J,UAAW,qBAAsB,CAC1DzhC,IAAK,WACD,OAAO9C,KAAK+hM,qBAAuB,IACvC,EACAl6J,YAAY,EACZE,cAAc,IAElBi6J,KAAOz9J,UAAUgsK,+BAAiC,SAAUC,GACxDxwM,KAAK0hM,4BAA8B8O,CACvC,EACAxO,KAAOz9J,UAAUksK,sBAAwB,SAAUC,GAC/C,MAAMT,EAAoBjwM,KAAKiwM,kBAC/B,QAASxyL,EAAI,EAAGkzL,EAAOV,EAAkBv6L,OAAQ+H,EAAIkzL,EAAMlzL,IACvD,QAASmsD,EAAI,EAAGgnI,EAAOF,EAAiBh7L,OAAQk0D,EAAIgnI,EAAMhnI,IACtD,GAAIqmI,EAAkBxyL,KAAOizL,EAAiB9mI,GAAGp0D,cAC7C,OAAAxV,KAAK6wM,qBAAuBpP,GAAoBxzJ,KAAKjuC,MAC7CA,KAAK+hM,oBAAsBkO,EAAkBxyL,GAMjE,OAAAzd,KAAK+hM,oBAAsB,GAC3B/hM,KAAK6wM,qBAAuB,KACrB,IACX,EMlEO,IAAMC,GAAgB,MAAtB,MAAMA,EACTjxM,cACI,MAAMuuE,EAAS,IAAItB,YAAYgkI,EAAiBC,qBAChD/wM,KAAKgxM,SAAW,IAAIjqK,YAAYqnC,GAChCpuE,KAAKixM,QAAU,IAAI7wD,WAAWhyE,GAC9BpuE,KAAKkxM,UAAY,IAAIrjC,aAAaz/F,GAClCpuE,KAAKmxM,QAAUL,EAAiBC,oBAAsB,EACtD/wM,KAAKoxM,UAAY,EACjBpxM,KAAKqxM,kBAAoB,IAAIC,QAAQR,iBAAiB,KAClD9wM,KAAKuxM,QAAO,EAEpB,CAKAC,YAAYj/L,GACRvS,KAAKyxM,kBAAkB,GACvBzxM,KAAKgxM,SAAShxM,KAAKoxM,aAAe7+L,CACtC,CAKAm/L,WAAWn/L,GACPvS,KAAKyxM,kBAAkB,GACvBzxM,KAAKixM,QAAQjxM,KAAKoxM,aAAe7+L,CACrC,CAKAo/L,aAAap/L,GACTvS,KAAKyxM,kBAAkB,GACvBzxM,KAAKkxM,UAAUlxM,KAAKoxM,aAAe7+L,CACvC,CAKAq/L,iBAAiBpjK,GACbxuC,KAAKyxM,kBAAkB,EAAIjjK,EAAO94B,QAClC1V,KAAKgxM,SAAShxM,KAAKoxM,aAAe5iK,EAAO94B,OACzC1V,KAAKgxM,SAAS9zL,IAAIsxB,EAAQxuC,KAAKoxM,WAC/BpxM,KAAKoxM,WAAa5iK,EAAO94B,MAC7B,CAKAm8L,gBAAgBrjK,GACZxuC,KAAKyxM,kBAAkB,EAAIjjK,EAAO94B,QAClC1V,KAAKgxM,SAAShxM,KAAKoxM,aAAe5iK,EAAO94B,OACzC1V,KAAKixM,QAAQ/zL,IAAIsxB,EAAQxuC,KAAKoxM,WAC9BpxM,KAAKoxM,WAAa5iK,EAAO94B,MAC7B,CAKAo8L,kBAAkBtjK,GACdxuC,KAAKyxM,kBAAkB,EAAIjjK,EAAO94B,QAClC1V,KAAKgxM,SAAShxM,KAAKoxM,aAAe5iK,EAAO94B,OACzC1V,KAAKkxM,UAAUh0L,IAAIsxB,EAAQxuC,KAAKoxM,WAChCpxM,KAAKoxM,WAAa5iK,EAAO94B,MAC7B,CAKAq8L,gBAAgBvuM,GACZxD,KAAKyxM,kBAAkBjuM,EAAOkS,QAC9B1V,KAAKgxM,SAAS9zL,IAAI1Z,EAAQxD,KAAKoxM,WAC/BpxM,KAAKoxM,WAAa5tM,EAAOkS,MAC7B,CAKAs8L,aAAaz/L,GACTvS,KAAKwxM,YAAYj/L,EAAQ,EAAI,EACjC,CACAk/L,kBAAkB71J,GACV57C,KAAKoxM,UAAYx1J,EAAW57C,KAAKmxM,SACjCnxM,KAAKuxM,QAEb,CACAA,SACIvxM,KAAKqxM,kBAAkBY,YAAYjyM,KAAKgxM,SAAS5iI,OAAQpuE,KAAKoxM,WAC9DpxM,KAAKoxM,UAAY,CACrB,EAIJN,SAAiBC,oBAAsB,MA9F1BD,CAAgB,qBCOtB,SAASoB,GAAsBC,EAAYC,EAAaz0L,EAAO00L,GAClE,IAAIC,EAAUD,EAAYE,EAAc,EAAGC,EAAc,GACzD,KAAOF,EAAU30L,EAAMjI,QAAQ,CAC3B,MAAM+8L,EAAW90L,EAAM8gH,OAAO6zE,GAC9B,GAAKE,EA2BGC,IAAaD,EACO,MAAhBA,GAAuC,MAAhBA,EACO,OAA9B70L,EAAM8gH,OAAO6zE,EAAU,KAAgBE,EAAc,IAGrDA,EAAc,GAGG,OAAhBA,GAAqC,MAAbC,GAAoBH,EAAU,EAAI30L,EAAMjI,SACvC,MAA9BiI,EAAM8gH,OAAO6zE,EAAU,KAAeE,EAAc,IAChC,KAAhBA,GACAF,UArCR,OAAQG,GACJ,KAAKN,EACDI,IACA,MACJ,KAAKH,EACDG,IACA,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACDC,EAAcC,EACd,MACJ,IAAK,IACD,GAAIH,EAAU,EAAI30L,EAAMjI,OAAQ,CAC5B,MAAMg9L,GAAW/0L,EAAM8gH,OAAO6zE,EAAU,GACvB,MAAbI,GACAF,EAAc,KAEI,MAAbE,KACLF,EAAc,KAEtB,EAqBZ,GADAF,IACoB,IAAhBC,EACA,KAER,CACA,OAAuB,IAAhBA,EAAoBD,EAAU,GAAI,CAC7C,CAOO,SAASK,GAAgBpuM,EAAGoW,GAC/B,KAAOA,EAAQpW,EAAEmR,QAAQ,CACrB,MAAMjH,EAAIlK,EAAEoW,GACZ,GAAU,MAANlM,GAAmB,OAANA,GAAoB,OAANA,GAAoB,OAANA,GAAoB,OAANA,GAAwB,SAANA,EACzE,MAEJkM,GACJ,CACA,OAAOA,CACX,CAMO,SAASi4L,GAAiBnkM,GAC7B,MAAM6d,EAAI7d,EAAEm4E,WAAW,GACvB,OAASt6D,GAAK,IAAMA,GAAK,IACpBA,GAAK,IAAMA,GAAK,IAChBA,GAAK,IAAMA,GAAK,KACZ,IAALA,CACR,CAMO,SAASumL,GAAel1L,GAC3B,IAAI20L,EAAU,EAAGE,EAAc,GAAIM,GAAa,EAChD,MAAMvuM,EAAI,GACV,KAAO+tM,EAAU30L,EAAMjI,QAAQ,CAC3B,MAAM+8L,EAAW90L,EAAM8gH,OAAO6zE,GAC9B,GAAKE,EA0BGC,IAAaD,EACO,MAAhBA,GAAuC,MAAhBA,GACO,OAA9B70L,EAAM8gH,OAAO6zE,EAAU,KAAgBE,EAAc,IACrDjuM,EAAE0Z,KAAKw0L,KAGPD,EAAc,GACdM,GAAa,GAGI,OAAhBN,GAAqC,MAAbC,GAAoBH,EAAU,EAAI30L,EAAMjI,QACvC,MAA9BiI,EAAM8gH,OAAO6zE,EAAU,KAAeE,EAAc,IAChC,KAAhBA,IACAM,GAAa,EACbR,MAICQ,GACDvuM,EAAE0Z,KAAKw0L,OA7CD,CACd,OAAQA,GACJ,IAAK,IACL,IAAK,IACL,IAAK,IACDD,EAAcC,EACd,MACJ,IAAK,IACD,GAAIH,EAAU,EAAI30L,EAAMjI,OAAQ,CAC5B,MAAMg9L,EAAW/0L,EAAM8gH,OAAO6zE,EAAU,GACvB,MAAbI,GACAF,EAAc,KACdM,GAAa,GAEK,MAAbJ,IACLF,EAAc,KACdM,GAAa,EAErB,EAGHA,GACDvuM,EAAE0Z,KAAKw0L,EAEf,CAyBAH,GACJ,CACA,OAAO/tM,EAAE2F,KAAK,GAClB,CASO,SAAS6oM,GAAaxuM,EAAGoW,EAAOlM,EAAGukM,GACtC,KAAOr4L,GAAS,GAAKpW,EAAEk6H,OAAO9jH,KAAWlM,KAAOukM,GAAMzuM,EAAEk6H,OAAO9jH,KAAWq4L,IACtEr4L,IAEJ,OAAOA,CACX,CAMO,SAASs4L,GAAa1uM,GACzB,OAAOA,EAAEU,QAAQ,sBAAuB,OAC5C,CAWO,SAASiuM,GAA4Bv2I,EAAMw2I,EAAcC,EAAcC,GAC1E,IAAIv4L,EAAM6hD,EAAK73B,QAAQquK,GACvB,GAAIr4L,EAAM,EACN,OAAO6hD,EAEX,GAAIy2I,EAAc,CAEd,KAAOt4L,IAAQ6hD,EAAKjnD,QAA8B,KAApBinD,EAAK8hE,OAAO3jH,KAC1C,GAAIA,EAAM6hD,EAAKjnD,OAAQ,CACnB,MAAM49L,EAAQ32I,EAAK8kB,UAAU,EAAG3mE,EAAM,GAChCy4L,EAAQ52I,EAAK8kB,UAAU3mE,EAAM,GACnC6hD,EAAO22I,EAAQF,EAAeG,CAClC,CACJ,CACA,GAAIF,EAAY,CACZ,MAAMG,EAAmB72I,EAAKglB,YAAY,KAC1ChlB,EAAOA,EAAK8kB,UAAU,EAAG+xH,GACzB72I,GAAQ02I,EAAa,KACzB,CACA,OAAO12I,CACX,CCvMO,IAAM82I,GAAiB,MAAvB,MAAMA,EAET,QAAI92I,GACA,OAAO38D,KAAK0zM,WAChB,CAMA7zM,YAAY8zM,EAAYC,EAAmB,IAEvC5zM,KAAKuD,OAAQ,EACbvD,KAAK0zM,YAAcC,EACnB3zM,KAAK6zM,kBAAoBD,EACzB5zM,KAAK8zM,eAAiB,GACtB9zM,KAAK+zM,YAAc,gBACvB,CAIAC,cACQh0M,KAAKuD,OACLq9J,KAAOqzC,IAAK,qCAAoCj0M,KAAK0zM,YAAYh+L,cAErE1V,KAAKk0M,oBACLl0M,KAAKm0M,iBAAiBn0M,KAAK6zM,mBACvB7zM,KAAKuD,OACLq9J,KAAOqzC,IAAI,2BAEnB,CACAC,oBACI,IAAI7B,EAAa,EACjB,KAAOA,EAAaryM,KAAK0zM,YAAYh+L,QAAQ,CAEzC,MAAM0+L,EAAmBp0M,KAAK0zM,YAAY5uK,QAAQ9kC,KAAK+zM,YAAa1B,GACpE,GAAI+B,EAAmB,EACnB,MAEJ,MAAMC,EAAuBr0M,KAAK0zM,YAAY5uK,QAAQ,IAAKsvK,EAAmBp0M,KAAK+zM,YAAYr+L,QAC/F,GAAI2+L,EAAuB,EAAG,CACtBr0M,KAAKuD,OACLq9J,KAAOC,KAAM,sEAAqEwxC,KAEtFA,EAAa+B,EAAmBp0M,KAAK+zM,YAAYr+L,OACjD,QACJ,CACA,MAAM4+L,EAAgBb,EAAkBc,+BAA+BC,KAAKx0M,KAAK0zM,YAAYjyH,UAAU2yH,EAAmBp0M,KAAK+zM,YAAYr+L,OAAQ2+L,IACnJ,IAAKC,EAAe,CACZt0M,KAAKuD,OACLq9J,KAAOC,KAAM,yDAAwD7gK,KAAK0zM,YAAYjyH,UAAU2yH,EAAmBp0M,KAAK+zM,YAAYr+L,OAAQ2+L,MAEhJhC,EAAa+B,EAAmBp0M,KAAK+zM,YAAYr+L,OACjD,QACJ,CACA,MAAO++L,EAAUC,GAAY,CAACJ,EAAc,GAAIA,EAAc,IAExDK,GAAqBzC,GAAsB,IAAK,IAAKlyM,KAAK0zM,YAAaW,GAC7E,GAAIM,GAAqB,EAAG,CACpB30M,KAAKuD,OACLq9J,KAAOC,KAAM,kDAAiD6zC,YAAmBD,4BAAmCJ,KAExHhC,EAAa+B,EAAmBp0M,KAAK+zM,YAAYr+L,OACjD,QACJ,CACA,MAAMk/L,GAAa50M,KAAK0zM,YAAYjyH,UAAU4yH,EAAuB,EAAGM,IAElEE,GAAqBlC,GAAgB3yM,KAAK0zM,YAAaiB,GAAqB,GAClF,GAAIE,KAAuB70M,KAAK0zM,YAAYh+L,OAAQ,CAC5C1V,KAAKuD,OACLq9J,KAAOC,KAAM,+CAA8C6zC,YAAmBD,0BAAiCE,MAEnHtC,EAAa+B,EAAmBp0M,KAAK+zM,YAAYr+L,OACjD,QACJ,CACA,MAAMo/L,GAAmB5C,GAAsB,IAAK,IAAKlyM,KAAK0zM,YAAamB,IAC3E,GAAIC,GAAmB,EAAG,CAClB90M,KAAKuD,OACLq9J,KAAOC,KAAM,+CAA8C6zC,YAAmBD,0BAAiCI,MAEnHxC,EAAa+B,EAAmBp0M,KAAK+zM,YAAYr+L,OACjD,QACJ,CACA,MAAMq/L,GAAW/0M,KAAK0zM,YAAYjyH,UAAUozH,GAAoBC,GAAmB,GAE7Er0I,GAASoyI,GAAe+B,IAAY7vK,MAAM,KAC1CiwK,GAAa,GACnB,QAAS3/J,GAAI,EAAGA,GAAIorB,GAAO/qD,SAAU2/B,GAAG,CACpC,MAAMutG,GAAQniF,GAAOprB,IAAG2pC,OAClBlkE,GAAM8nI,GAAMjhE,YAAY,KAC1B7mE,IAAO,GACPk6L,GAAW/2L,KAAK2kI,GAAMnhE,UAAU3mE,GAAM,GAE9C,CACiB,SAAb25L,GAEAO,GAAW/2L,KAAK,UAGpBje,KAAK8zM,eAAe71L,KAAK,CACrB1X,KAAMmuM,EACNtiM,KAAMqiM,EACNQ,WAAYD,GACZ9uL,KAAM6uL,GACNG,UAAW,IAEf7C,EAAayC,GAAmB,EAEhC,MAAMK,GAAaf,EAAmB,EAAIp0M,KAAK0zM,YAAYjyH,UAAU,EAAG2yH,GAAoB,GACtFgB,GAAYN,GAAmB,EAAI90M,KAAK0zM,YAAYh+L,OAAS,EAAI1V,KAAK0zM,YAAYjyH,UAAUqzH,GAAmB,GAAK,GAC1H90M,KAAK0zM,YAAcyB,GAAaC,GAChC/C,GAAcyC,GAAmB,EAAIV,CACzC,CACIp0M,KAAKuD,OACLq9J,KAAOqzC,IAAK,sBAAqBj0M,KAAK8zM,eAAep+L,yCAAyC1V,KAAK8zM,iBAE3G,CACAK,iBAAiBP,EAAmB,IAChC,KAAOA,MAAsB,GACpB5zM,KAAKq1M,gCAId,OAAIr1M,KAAKuD,OACLq9J,KAAOqzC,IAAK,uBAAsBL,4BAE/BA,GAAoB,CAC/B,CACAyB,8BACI,IAAIC,GAAU,EACd,UAAWlhB,KAAQp0L,KAAK8zM,eAAgB,CACpC,MAAQvtM,OAAM6L,OAAM6iM,aAAY/uL,QAASkuK,EACzC,IAAIie,GAAa,EACjB,KAAOA,GAAaryM,KAAK0zM,YAAYh+L,QAAQ,CAEzC,MAAM6/L,GAAoBv1M,KAAK0zM,YAAY5uK,QAAQv+B,EAAM8rM,IACzD,GAAIkD,GAAoB,EACpB,MAGJ,GAA0B,IAAtBA,IAA2B3C,GAAiB5yM,KAAK0zM,YAAYj1E,OAAO82E,GAAoB,IAAK,CAC7FlD,GAAakD,GAAoBhvM,EAAKmP,OACtC,QACJ,CAEA,MAAM8/L,GAAuB7C,GAAgB3yM,KAAK0zM,YAAa6B,GAAoBhvM,EAAKmP,QACxF,GAAI8/L,KAAyBx1M,KAAK0zM,YAAYh+L,QAA4D,MAAlD1V,KAAK0zM,YAAYj1E,OAAO+2E,IAA+B,CAC3GnD,GAAakD,GAAoBhvM,EAAKmP,OACtC,QACJ,CAEA,MAAM+/L,GAAqBvD,GAAsB,IAAK,IAAKlyM,KAAK0zM,YAAa8B,IAC7E,GAAIC,GAAqB,EAAG,CACpBz1M,KAAKuD,OACLq9J,KAAOC,KAAM,oEAAmEt6J,YAAe6L,4BAA+BojM,MAElInD,GAAakD,GAAoBhvM,EAAKmP,OACtC,QACJ,CACA,MAAMggM,GAAa11M,KAAK0zM,YAAYjyH,UAAU+zH,GAAuB,EAAGC,IA0BlEh1I,IAtBsBl8D,KACxB,MAAM0wM,GAAa,GACnB,IAAIU,GAAS,EAAGC,GAAgB,EAChC,KAAOD,GAASpxM,GAAEmR,QAAQ,CACtB,GAAyB,MAArBnR,GAAEk6H,OAAOk3E,IAAiB,CAC1B,MAAME,GAAO3D,GAAsB,IAAK,IAAK3tM,GAAGoxM,IAChD,GAAIE,GAAO,EACP,OAAO,KAEXF,GAASE,EACb,KAC8B,MAArBtxM,GAAEk6H,OAAOk3E,MACdV,GAAWh3L,KAAK1Z,GAAEk9E,UAAUm0H,GAAeD,KAC3CC,GAAgBD,GAAS,GAE7BA,IACJ,CACA,OAAIC,GAAgBD,IAChBV,GAAWh3L,KAAK1Z,GAAEk9E,UAAUm0H,GAAeD,KAExCV,EACX,EACMx0I,CAA4BoyI,GAAe6C,KACjD,GAAe,OAAXj1I,GAAiB,CACbzgE,KAAKuD,OACLq9J,KAAOC,KAAM,uFAAsFt6J,YAAe6L,4BAA+BojM,kBAC7IE,IAERrD,GAAakD,GAAoBhvM,EAAKmP,OACtC,QACJ,CACA,MAAMs/L,GAAa,GACnB,QAAS3/J,GAAI,EAAGA,GAAIorB,GAAO/qD,SAAU2/B,GAAG,CACpC,MAAMutG,GAAQniF,GAAOprB,IAAG2pC,OACxBg2H,GAAW/2L,KAAK2kI,GACpB,CACA,MAAMkzD,GAAwB,SAAT1jM,EAAkB7L,EAAO,IAAM6tL,EAAK8gB,YAAc,KAIvE,GAHIY,IACAd,GAAW/2L,KAAK63L,GAAe,MAE/Bd,GAAWt/L,SAAWu/L,EAAWv/L,OAAQ,CACrC1V,KAAKuD,OACLq9J,KAAOC,KAAM,6HAA4Ht6J,YAAe6L,2BAA8B6iM,sBAA+BD,MAEzN3C,GAAakD,GAAoBhvM,EAAKmP,OACtC,QACJ,CACA28L,GAAaoD,GAAqB,EAElC,MAAMV,GAAW/0M,KAAK+1M,cAAc7vL,EAAM+uL,EAAYD,IACtD,IAAIG,GAAaI,GAAoB,EAAIv1M,KAAK0zM,YAAYjyH,UAAU,EAAG8zH,IAAqB,GAC5F,MAAMH,GAAYK,GAAqB,EAAIz1M,KAAK0zM,YAAYh+L,OAAS,EAAI1V,KAAK0zM,YAAYjyH,UAAUg0H,GAAqB,GAAK,GAC9H,GAAIK,GAAc,CAKd,MAAME,GAAyBjD,GAAa/yM,KAAK0zM,YAAa6B,GAAoB,EAAG,KAAM,KAC3FJ,GAAan1M,KAAK0zM,YAAYjyH,UAAU,EAAGu0H,GAAyB,GACpE,MAAMC,GAAcj2M,KAAK0zM,YAAYjyH,UAAUu0H,GAAyB,EAAGT,IAC3Ev1M,KAAK0zM,YAAcyB,GAAa/iM,EAAO,IAAM0jM,GAAe,MAAQf,GAAW,KAAOkB,GAAcH,GAAeV,GAC/Gp1M,KAAKuD,OACLq9J,KAAOqzC,IAAK,4CAA2C1tM,YAAe6L,8BAAiC4jM,uBAA2ChB,KAE1J,MAGIh1M,KAAK0zM,YAAcyB,GAAaJ,GAAWK,GAC3C/C,IAAc0C,GAASr/L,QAAU+/L,GAAqB,EAAIF,IACtDv1M,KAAKuD,OACLq9J,KAAOqzC,IAAK,4CAA2C1tM,YAAe6L,yBAA4BmjM,uBAAsCP,MAGhJM,GAAU,CACd,CACJ,CACA,OAAOA,CACX,CACAS,cAAcp5I,EAAMu5I,EAASC,GACzB,QAAS14L,EAAI,EAAGA,EAAIy4L,EAAQxgM,SAAU+H,EAAG,CACrC,MAAMwqB,EAAS,IAAI05J,OAAOsR,GAAaiD,EAAQz4L,IAAK,KAAM24L,EAAYF,EAAQz4L,GAAG/H,OAAQ2gM,GAAcF,EAAa14L,GACpHk/C,EAAOA,EAAK13D,QAAQgjC,EAAQ,CAACiT,MAAUlV,MACnC,MAAMi4C,GAASj4C,GAAK,GAEpB,OAAI4sK,GAAiBj2I,EAAK8hE,OAAOxgD,GAAS,KAAO20H,GAAiBj2I,EAAK8hE,OAAOxgD,GAASm4H,IAC5EF,EAAQz4L,GAEZ44L,IAEf,CACA,OAAO15I,CACX,EAEJ82I,SAAkBc,+BAAiC,6BAhQtCd,CAAiB,KCJ9B,MAAM6C,GAAe,2BAEd,MAAMC,GACT12M,cACIG,KAAKw2M,eAAiB,CAC1B,CACAC,kBAAkB7jB,GACd5yL,KAAK02M,yBAA2B9jB,EAC5B5yL,KAAK02M,2BACL12M,KAAK02M,yBAAyBC,uBAAyB,CAAC,EACxD32M,KAAK02M,yBAAyBE,mBAAqB,GAE3D,CACAC,mBAAmBC,GACf,IAAK92M,KAAK02M,yBACN,OAAOI,EAAU7xM,QAAQ,YAAa,MAG1C,MAAMi2C,EADc,4CACMs5J,KAAKsC,GAC/B,GAAc,OAAV57J,EAAgB,CAChB,MAAM67J,EAAgB77J,EAAM,GACtB30C,EAAO20C,EAAM,GACbmzH,EAAgBruK,KAAK02M,yBAAyBM,qCAAqCzwM,GACzF,QAAsB1D,IAAlBwrK,EAA6B,CAE7B,MACM4oC,GAAW,QAAO1wM,KACxBuwM,EAAYA,EAAU7xM,QAAQi2C,EAAM,GAAK,MAFzBmzH,EAAgB,GAAuB,IAAlBA,EAAuB,MAAQ,QAAUA,EAAmC,IAAlBA,EAAsB,OAAS,OAASA,KAE9E4oC,OAAYF,KAAiBxwM,MACtFvG,KAAK02M,yBAAyBE,oBAAuB,GAAErwM,OAAUwwM,KAAiBE,SAClFj3M,KAAK02M,yBAAyBC,uBAAuBpwM,GAAQ0wM,EACjE,MAEIH,EAAYA,EAAU7xM,QAAQi2C,EAAM,GAAK,MAAK67J,KAAiBxwM,KAEvE,CACA,OAAOuwM,CACX,CACAI,aAAaC,EAASC,GAClB,OAAOd,GAAa1wK,KAAKuxK,EAC7B,CACAE,iBAAiBF,EAAS/kB,GACtB,OAAO+kB,EAAQlyM,QAAQ,UAAWmtL,EAAa,KAAO,MAC1D,CACAklB,cAAc36I,EAAM0zH,EAAS+B,GACzB,MAAMmlB,GAAsF,IAA5D56I,EAAKguC,OAAO,4CAM5C,GADAhuC,GAFAA,EAAOA,EAAK13D,QADE,iJACa,KAEfA,QAAQ,kBAAmB,YACnCmtL,EAAY,CACZ,MAAMolB,GAAgE,IAApD76I,EAAKguC,OAAO,oCAO9BhuC,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,EAAOA,EAAK13D,QAAQ,wBAAyB,gBACjCA,QAAQ,0BAA2B,gBACnCA,QAAQ,oBAAqB,aAC7BA,QAAQ,mBAAoB,iBAC5BA,QAAQ,gBAAiB,gBACzBA,QAAQ,eAAgB,eACxBA,QAAQ,sBAAuBsyM,GAA2BC,EAAY,GAAK,gDAAkD,aAC7I,SAEQx3M,KAAK02M,0BAA0BE,qBAC/Bj6I,EAAOu2I,GAA4Bv2I,EAAM,YAAa38D,KAAK02M,yBAAyBE,sBAEjB,IAAzCvmB,EAAQvrJ,QAAQ,qBAE1C,MAAO,uEAAyE63B,EAGxF,OAAOA,CACX,ECvEG,MAAM86I,GACT,WAAI1jB,GACA,GAAI/zL,KAAK03M,iBAAkB,CACvB,MAAM/rK,EAAU3rC,KAAK03M,iBAAiB/rK,QACtC,MAAM,IAAIrmB,MAAM,gBAAqC,iBAAZqmB,EAAuB,KAAOA,EAAU,IACrF,CACA,OAAO3rC,KAAK23M,UAChB,CACAC,uBACI,OAAO,IACX,CACAC,yBACI,OAAO,IACX,CACAh4M,YAAY6qI,EAAQ2pD,EAASyjB,GACzB93M,KAAK23M,YAAa,EAClB33M,KAAK+3M,uBAAyB,CAAC,EAC/B/3M,KAAKg4M,YAAc,CAAC,EACpBh4M,KAAKqxK,QAAU3mC,EACf1qI,KAAKq0L,QAAUA,EACfr0L,KAAK83M,wBAA0BA,CACnC,CACAG,uBAAuBl8L,EAAQm8L,EAAqBC,EAAeC,EAAUC,EAAaC,EAAUC,EAAiBjiK,IACjH,MAAMo0F,GAAS1qI,KAAKqxK,QACpB,GAAI3mC,GAAO6nD,uBACP,UAAWhsL,MAAQ2xM,EACfn8L,EAAOy8L,iBAAiBjyM,GAAM2xM,EAAoB3xM,KAQ1D,IAAIoU,GACJ,IANgC3a,KAAKqxK,QAAQ9S,YAAYv+J,KAAMm4M,GACvCl4L,QAAQ,CAACw4L,GAAS99L,MACtCy9L,EAASD,EAAcx9L,KAAU89L,KAErCz4M,KAAK04M,UAAYN,EAEZz9L,GAAQ,EAAGA,GAAQ09L,EAAY3iM,OAAQiF,KAEzB,MADCoB,EAAO48L,WAAWN,EAAY19L,OAE1C09L,EAAY98L,OAAOZ,GAAO,GAC1BA,MAGR09L,EAAYp4L,QAAQ,CAAC1Z,GAAMoU,MACvB29L,EAAS/xM,IAAQoU,KAErB27B,GAAWr4B,QAAQysH,GAAOkuE,cAAc54M,KAAMu4M,GAClD,CACAM,UAAUnuE,GACN1qI,KAAKqxK,QAAU3mC,CACnB,CAIAjpF,UACIzhD,KAAK04M,UAAY,CAAC,CACtB,CAIAI,aAAaC,EAAaC,GACtB,MAAMtpD,EAAQ1vJ,KAAKg4M,YAAYe,GACzBE,EAAOD,EAAOE,WACpB,YAAcr2M,IAAV6sJ,GAAuBA,IAAUupD,KAGrCj5M,KAAKg4M,YAAYe,GAAeE,GACzB,EACX,CAIAE,aAAaJ,EAAanmM,EAAG4P,GACzB,IAAIktI,EAAQ1vJ,KAAKg4M,YAAYe,GAC7B,IAAKrpD,EACDA,SAAQ,CAAC98I,EAAG4P,GACZxiB,KAAKg4M,YAAYe,GAAerpD,GACzB,EAEX,IAAI0pD,GAAU,EACd,OAAI1pD,EAAM,KAAO98I,IACb88I,EAAM,GAAK98I,EACXwmM,GAAU,GAEV1pD,EAAM,KAAOltI,IACbktI,EAAM,GAAKltI,EACX42L,GAAU,GAEPA,CACX,CAIAC,aAAaN,EAAanmM,EAAG4P,EAAG0nD,GAC5B,IAAIwlF,EAAQ1vJ,KAAKg4M,YAAYe,GAC7B,IAAKrpD,EACDA,SAAQ,CAAC98I,EAAG4P,EAAG0nD,GACflqE,KAAKg4M,YAAYe,GAAerpD,GACzB,EAEX,IAAI0pD,GAAU,EACd,OAAI1pD,EAAM,KAAO98I,IACb88I,EAAM,GAAK98I,EACXwmM,GAAU,GAEV1pD,EAAM,KAAOltI,IACbktI,EAAM,GAAKltI,EACX42L,GAAU,GAEV1pD,EAAM,KAAOxlF,IACbwlF,EAAM,GAAKxlF,EACXkvI,GAAU,GAEPA,CACX,CAIAE,aAAaP,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,GAC/B,IAAI8mF,EAAQ1vJ,KAAKg4M,YAAYe,GAC7B,IAAKrpD,EACDA,SAAQ,CAAC98I,EAAG4P,EAAG0nD,EAAGtB,GAClB5oE,KAAKg4M,YAAYe,GAAerpD,GACzB,EAEX,IAAI0pD,GAAU,EACd,OAAI1pD,EAAM,KAAO98I,IACb88I,EAAM,GAAK98I,EACXwmM,GAAU,GAEV1pD,EAAM,KAAOltI,IACbktI,EAAM,GAAKltI,EACX42L,GAAU,GAEV1pD,EAAM,KAAOxlF,IACbwlF,EAAM,GAAKxlF,EACXkvI,GAAU,GAEV1pD,EAAM,KAAO9mF,IACb8mF,EAAM,GAAK9mF,EACXwwI,GAAU,GAEPA,CACX,CAMAG,OAAOR,EAAaxmM,GAChB,MAAMm9I,EAAQ1vJ,KAAKg4M,YAAYe,QACjBl2M,IAAV6sJ,GAAuBA,IAAUn9I,GAGjCvS,KAAKqxK,QAAQkoC,OAAOv5M,KAAK04M,UAAUK,GAAcxmM,KACjDvS,KAAKg4M,YAAYe,GAAexmM,EAExC,CAOAinM,QAAQT,EAAanmM,EAAG4P,GAChBxiB,KAAKm5M,aAAaJ,EAAanmM,EAAG4P,KAC7BxiB,KAAKqxK,QAAQmoC,QAAQx5M,KAAK04M,UAAUK,GAAcnmM,EAAG4P,KACtDxiB,KAAKg4M,YAAYe,GAAe,MAG5C,CAQAU,QAAQV,EAAanmM,EAAG4P,EAAG0nD,GACnBlqE,KAAKq5M,aAAaN,EAAanmM,EAAG4P,EAAG0nD,KAChClqE,KAAKqxK,QAAQooC,QAAQz5M,KAAK04M,UAAUK,GAAcnmM,EAAG4P,EAAG0nD,KACzDlqE,KAAKg4M,YAAYe,GAAe,MAG5C,CASAW,QAAQX,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,GACtB5oE,KAAKs5M,aAAaP,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,KACnC5oE,KAAKqxK,QAAQqoC,QAAQ15M,KAAK04M,UAAUK,GAAcnmM,EAAG4P,EAAG0nD,EAAGtB,KAC5D5oE,KAAKg4M,YAAYe,GAAe,MAG5C,CAMAY,YAAYZ,EAAa36H,GACrBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQsoC,YAAY35M,KAAK04M,UAAUK,GAAc36H,EAC1D,CAMAw7H,aAAab,EAAa36H,GACtBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQuoC,aAAa55M,KAAK04M,UAAUK,GAAc36H,EAC3D,CAMAy7H,aAAad,EAAa36H,GACtBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQwoC,aAAa75M,KAAK04M,UAAUK,GAAc36H,EAC3D,CAMA07H,aAAaf,EAAa36H,GACtBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQyoC,aAAa95M,KAAK04M,UAAUK,GAAc36H,EAC3D,CAMA27H,QAAQhB,EAAaxmM,GACjB,MAAMm9I,EAAQ1vJ,KAAKg4M,YAAYe,QACjBl2M,IAAV6sJ,GAAuBA,IAAUn9I,GAGjCvS,KAAKqxK,QAAQ0oC,QAAQ/5M,KAAK04M,UAAUK,GAAcxmM,KAClDvS,KAAKg4M,YAAYe,GAAexmM,EAExC,CAOAynM,SAASjB,EAAanmM,EAAG4P,GACjBxiB,KAAKm5M,aAAaJ,EAAanmM,EAAG4P,KAC7BxiB,KAAKqxK,QAAQ2oC,SAASh6M,KAAK04M,UAAUK,GAAcnmM,EAAG4P,KACvDxiB,KAAKg4M,YAAYe,GAAe,MAG5C,CAQAkB,SAASlB,EAAanmM,EAAG4P,EAAG0nD,GACpBlqE,KAAKq5M,aAAaN,EAAanmM,EAAG4P,EAAG0nD,KAChClqE,KAAKqxK,QAAQ4oC,SAASj6M,KAAK04M,UAAUK,GAAcnmM,EAAG4P,EAAG0nD,KAC1DlqE,KAAKg4M,YAAYe,GAAe,MAG5C,CASAmB,SAASnB,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,GACvB5oE,KAAKs5M,aAAaP,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,KACnC5oE,KAAKqxK,QAAQ6oC,SAASl6M,KAAK04M,UAAUK,GAAcnmM,EAAG4P,EAAG0nD,EAAGtB,KAC7D5oE,KAAKg4M,YAAYe,GAAe,MAG5C,CAMAoB,aAAapB,EAAa36H,GACtBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQ8oC,aAAan6M,KAAK04M,UAAUK,GAAc36H,EAC3D,CAMAg8H,cAAcrB,EAAa36H,GACvBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQ+oC,cAAcp6M,KAAK04M,UAAUK,GAAc36H,EAC5D,CAMAi8H,cAActB,EAAa36H,GACvBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQgpC,cAAcr6M,KAAK04M,UAAUK,GAAc36H,EAC5D,CAMAk8H,cAAcvB,EAAa36H,GACvBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQipC,cAAct6M,KAAK04M,UAAUK,GAAc36H,EAC5D,CAMAm8H,cAAcxB,EAAa36H,GACvBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQkpC,cAAcv6M,KAAK04M,UAAUK,GAAc36H,EAC5D,CAMAo8H,eAAezB,EAAa36H,GACxBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQmpC,eAAex6M,KAAK04M,UAAUK,GAAc36H,EAC7D,CAMAq8H,eAAe1B,EAAa36H,GACxBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQopC,eAAez6M,KAAK04M,UAAUK,GAAc36H,EAC7D,CAMAs8H,eAAe3B,EAAa36H,GACxBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQqpC,eAAe16M,KAAK04M,UAAUK,GAAc36H,EAC7D,CAMAu8H,SAAS5B,EAAa36H,GAClBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQspC,SAAS36M,KAAK04M,UAAUK,GAAc36H,EACvD,CAMAw8H,UAAU7B,EAAa36H,GACnBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQupC,UAAU56M,KAAK04M,UAAUK,GAAc36H,EACxD,CAMAy8H,UAAU9B,EAAa36H,GACnBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQwpC,UAAU76M,KAAK04M,UAAUK,GAAc36H,EACxD,CAMA08H,UAAU/B,EAAa36H,GACnBp+E,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQypC,UAAU96M,KAAK04M,UAAUK,GAAc36H,EACxD,CAMA28H,YAAYhC,EAAaiC,GAChBA,IAGLh7M,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQ0pC,YAAY/6M,KAAK04M,UAAUK,GAAciC,GAC1D,CAMAC,UAAUlC,EAAaC,GACfh5M,KAAK84M,aAAaC,EAAaC,KAC1Bh5M,KAAKqxK,QAAQ0pC,YAAY/6M,KAAK04M,UAAUK,GAAcC,EAAOzzE,aAC9DvlI,KAAKg4M,YAAYe,GAAe,MAG5C,CAMAmC,aAAanC,EAAaC,GACtBh5M,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQ6pC,aAAal7M,KAAK04M,UAAUK,GAAcC,EAC3D,CAMAmC,aAAapC,EAAaC,GACtBh5M,KAAKg4M,YAAYe,GAAe,KAChC/4M,KAAKqxK,QAAQ8pC,aAAan7M,KAAK04M,UAAUK,GAAcC,EAC3D,CAMAj3C,SAASg3C,EAAaxmM,GAClB,MAAMm9I,EAAQ1vJ,KAAKg4M,YAAYe,QACjBl2M,IAAV6sJ,GAAuBA,IAAUn9I,GAGjCvS,KAAKqxK,QAAQtP,SAAS/hK,KAAK04M,UAAUK,GAAcxmM,KACnDvS,KAAKg4M,YAAYe,GAAexmM,EAExC,CAMA6oM,QAAQrC,EAAasC,GACjB,MAAM3rD,EAAQ1vJ,KAAKg4M,YAAYe,QACjBl2M,IAAV6sJ,GAAuBA,IAAU2rD,GAGjCr7M,KAAKqxK,QAAQkoC,OAAOv5M,KAAK04M,UAAUK,GAAcsC,EAAO,EAAI,KAC5Dr7M,KAAKg4M,YAAYe,GAAesC,EAAO,EAAI,EAEnD,CAMAC,WAAWvC,EAAawC,GAChBv7M,KAAKm5M,aAAaJ,EAAawC,EAAQ3oM,EAAG2oM,EAAQ/4L,KAC7CxiB,KAAKqxK,QAAQvP,UAAU9hK,KAAK04M,UAAUK,GAAcwC,EAAQ3oM,EAAG2oM,EAAQ/4L,KACxExiB,KAAKg4M,YAAYe,GAAe,MAG5C,CAOAj3C,UAAUi3C,EAAanmM,EAAG4P,GAClBxiB,KAAKm5M,aAAaJ,EAAanmM,EAAG4P,KAC7BxiB,KAAKqxK,QAAQvP,UAAU9hK,KAAK04M,UAAUK,GAAcnmM,EAAG4P,KACxDxiB,KAAKg4M,YAAYe,GAAe,MAG5C,CAMAyC,WAAWzC,EAAa0C,GAChBz7M,KAAKq5M,aAAaN,EAAa0C,EAAQ7oM,EAAG6oM,EAAQj5L,EAAGi5L,EAAQvxI,KACxDlqE,KAAKqxK,QAAQqqC,UAAU17M,KAAK04M,UAAUK,GAAc0C,EAAQ7oM,EAAG6oM,EAAQj5L,EAAGi5L,EAAQvxI,KACnFlqE,KAAKg4M,YAAYe,GAAe,MAG5C,CAQA2C,UAAU3C,EAAanmM,EAAG4P,EAAG0nD,GACrBlqE,KAAKq5M,aAAaN,EAAanmM,EAAG4P,EAAG0nD,KAChClqE,KAAKqxK,QAAQqqC,UAAU17M,KAAK04M,UAAUK,GAAcnmM,EAAG4P,EAAG0nD,KAC3DlqE,KAAKg4M,YAAYe,GAAe,MAG5C,CAMA/2C,WAAW+2C,EAAa4C,GAChB37M,KAAKs5M,aAAaP,EAAa4C,EAAQ/oM,EAAG+oM,EAAQn5L,EAAGm5L,EAAQzxI,EAAGyxI,EAAQ/yI,KACnE5oE,KAAKqxK,QAAQuqC,UAAU57M,KAAK04M,UAAUK,GAAc4C,EAAQ/oM,EAAG+oM,EAAQn5L,EAAGm5L,EAAQzxI,EAAGyxI,EAAQ/yI,KAC9F5oE,KAAKg4M,YAAYe,GAAe,MAG5C,CAMA8C,cAAc9C,EAAa+C,GACnB97M,KAAKs5M,aAAaP,EAAa+C,EAAWlpM,EAAGkpM,EAAWt5L,EAAGs5L,EAAW5xI,EAAG4xI,EAAWlzI,KAC/E5oE,KAAKqxK,QAAQuqC,UAAU57M,KAAK04M,UAAUK,GAAc+C,EAAWlpM,EAAGkpM,EAAWt5L,EAAGs5L,EAAW5xI,EAAG4xI,EAAWlzI,KAC1G5oE,KAAKg4M,YAAYe,GAAe,MAG5C,CASA6C,UAAU7C,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,GACxB5oE,KAAKs5M,aAAaP,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,KACnC5oE,KAAKqxK,QAAQuqC,UAAU57M,KAAK04M,UAAUK,GAAcnmM,EAAG4P,EAAG0nD,EAAGtB,KAC9D5oE,KAAKg4M,YAAYe,GAAe,MAG5C,CAMAgD,UAAUhD,EAAaiD,GACfh8M,KAAKq5M,aAAaN,EAAaiD,EAAO56L,EAAG46L,EAAOnhM,EAAGmhM,EAAOzmM,KACrDvV,KAAKqxK,QAAQqqC,UAAU17M,KAAK04M,UAAUK,GAAciD,EAAO56L,EAAG46L,EAAOnhM,EAAGmhM,EAAOzmM,KAChFvV,KAAKg4M,YAAYe,GAAe,MAG5C,CAOAkD,UAAUlD,EAAaiD,EAAQzxE,GACvBvqI,KAAKs5M,aAAaP,EAAaiD,EAAO56L,EAAG46L,EAAOnhM,EAAGmhM,EAAOzmM,EAAGg1H,KACxDvqI,KAAKqxK,QAAQuqC,UAAU57M,KAAK04M,UAAUK,GAAciD,EAAO56L,EAAG46L,EAAOnhM,EAAGmhM,EAAOzmM,EAAGg1H,KACnFvqI,KAAKg4M,YAAYe,GAAe,MAG5C,CAMAmD,gBAAgBnD,EAAaoD,GACrBn8M,KAAKs5M,aAAaP,EAAaoD,EAAO/6L,EAAG+6L,EAAOthM,EAAGshM,EAAO5mM,EAAG4mM,EAAOvtM,KAC/D5O,KAAKqxK,QAAQuqC,UAAU57M,KAAK04M,UAAUK,GAAcoD,EAAO/6L,EAAG+6L,EAAOthM,EAAGshM,EAAO5mM,EAAG4mM,EAAOvtM,KAC1F5O,KAAKg4M,YAAYe,GAAe,MAG5C,ECllBG,MAAMqD,WAAkCC,KAC3C,gBAAIrT,GACA,OAAOhpM,KAAKs8M,aAChB,CACA,gBAAItT,CAAa2B,GACT3qM,KAAKs8M,eACLt8M,KAAKqxK,QAAQkrC,2BAA2Bv8M,KAAKs8M,eAEjDt8M,KAAKs8M,cAAgB3R,CACzB,CACA,4BAAI6R,GACA,OAAOx8M,KAAKy8M,yBAChB,CACA,4BAAID,CAAyBE,GACrB18M,KAAKy8M,2BACLz8M,KAAKqxK,QAAQkrC,2BAA2Bv8M,KAAKy8M,2BAEjDz8M,KAAKy8M,0BAA4BC,CACrC,CACA78M,YAAY88M,EAASrT,EAAQjwK,EAAMqxG,GAC/B7mI,MAAM84M,EAASrT,EAAQjwK,EAAMqxG,GAE7B1qI,KAAKs8M,cAAgB,KAErBt8M,KAAKy8M,0BAA4B,KACjCz8M,KAAKqxK,QAAU3mC,CACnB,CACAjpF,QAAQm7J,GAA0B,GAC9B58M,KAAKgpM,aAAe,KACpBhpM,KAAKw8M,yBAA2B,KAChC34M,MAAM49C,QAAQm7J,EAClB,EC/BG,MAAMC,GACT,sBAAI3W,GACA,OAAOlmM,KAAK88M,cAChB,CACAj9M,YAAYk9M,EAAiBryE,GACzB1qI,KAAKqxK,QAAU3mC,EACf1qI,KAAKkd,IAAI6/L,EACb,CACAC,WAAa,CACb9/L,IAAI+xL,GACAjvM,KAAK88M,eAAiB7N,CAC1B,CACA57L,QACIrT,KAAK88M,eAAiB,IAC1B,CACAG,UACQj9M,KAAK88M,gBACL98M,KAAKqxK,QAAQ6rC,cAAcl9M,KAAK88M,gBAEpC98M,KAAKqT,OACT,kBClBG,SAAS8pM,GAAuB5tL,EAAQnd,GAC3C,OAAQmd,GAEJ,KAAK,GACD,OAAO+hL,QAAQtP,OAAOob,mBAC1B,KAAK,GACD,OAAO9L,QAAQtP,OAAOqb,mBAC1B,KAAK,GACD,OAAO/L,QAAQtP,OAAOsb,qBAC1B,KAAK,GACD,OAAOhM,QAAQtP,OAAOub,oBAE1B,KAAK,MACD,OAAOjM,QAAQtP,OAAOwb,mBAC1B,KAAK,MACD,OAAOlM,QAAQtP,OAAOyb,oBAC1B,KAAK,MACD,OAAOnM,QAAQtP,OAAO0b,mBAC1B,KAAK,MACD,OAAOpM,QAAQtP,OAAO2b,mBAC1B,KAAK,MAEL,KAAK,MACD,OAAOrM,QAAQtP,OAAO4b,mBAC1B,KAAK,MACD,OAAOtM,QAAQtP,OAAO6b,uBAC1B,KAAK,MACD,OAAOvM,QAAQtP,OAAO8b,oBAC1B,KAAK,MACD,OAAOxM,QAAQtP,OAAO+b,oBAC1B,KAAK,MACD,OAAOzM,QAAQtP,OAAOgc,qBAC1B,KAAK,EACD,OAAQ5rM,GACJ,KAAK,EACD,OAAOk/L,QAAQtP,OAAOic,oBAC1B,KAAK,EACD,OAAO3M,QAAQtP,OAAOkc,qBAC1B,KAAK,EACD,OAAO5M,QAAQtP,OAAOmc,qBAC1B,KAAK,EACD,OAAO7M,QAAQtP,OAAOoc,qBAE9B,MAEJ,KAAK,EACD,OAAQhsM,GACJ,KAAK,EACD,OAAOk/L,QAAQtP,OAAOqc,qBAC1B,KAAK,EACD,OAAO/M,QAAQtP,OAAOsc,uBAC1B,KAAK,EACD,OAAOhN,QAAQtP,OAAOuc,uBAC1B,KAAK,EACD,OAAOjN,QAAQtP,OAAOwc,sBAC1B,KAAK,EACD,OAAOlN,QAAQtP,OAAOyc,uBAC1B,KAAK,EACD,OAAOnN,QAAQtP,OAAO0c,uBAC1B,KAAK,EACD,OAAOpN,QAAQtP,OAAO2c,uBAC1B,KAAK,EACD,OAAOrN,QAAQtP,OAAO4c,uBAE9B,MAEJ,KAAK,EACD,OAAQxsM,GACJ,KAAK,EACD,OAAOk/L,QAAQtP,OAAO6c,kBAC1B,KAAK,EACD,OAAOvN,QAAQtP,OAAO8c,oBAC1B,KAAK,EACD,OAAOxN,QAAQtP,OAAO+c,oBAC1B,KAAK,EACD,OAAOzN,QAAQtP,OAAOgd,mBAC1B,KAAK,EACD,OAAO1N,QAAQtP,OAAOid,oBAC1B,KAAK,EACD,OAAO3N,QAAQtP,OAAOkd,oBAC1B,KAAK,EACD,OAAO5N,QAAQtP,OAAOmd,oBAC1B,KAAK,EACD,OAAO7N,QAAQtP,OAAOod,oBAE9B,MAEJ,KAAK,EACD,OAAQhtM,GACJ,KAAK,EACD,OAAOk/L,QAAQtP,OAAOqd,mBAC1B,KAAK,EACD,OAAO/N,QAAQtP,OAAOsd,qBAC1B,KAAK,EACD,OAAOhO,QAAQtP,OAAOud,qBAC1B,KAAK,EACD,OAAOjO,QAAQtP,OAAOwd,oBAC1B,KAAK,EACD,OAAOlO,QAAQtP,OAAOyd,qBAC1B,KAAK,EACD,OAAOnO,QAAQtP,OAAO0d,qBAC1B,KAAK,EACD,OAAOpO,QAAQtP,OAAO2d,qBAC1B,KAAK,EACD,OAAOrO,QAAQtP,OAAO4d,qBAE9B,MAEJ,KAAK,GACD,GACS,IADDxtM,EAEA,OAAOk/L,QAAQtP,OAAO6d,qBAKtC,MAAM,IAAIC,MAAc,8CAA6CvwL,WAAgBnd,KAAS2tM,MAAWC,wBAC7G,CACO,SAASC,GAAsBp6B,GAClC,OAAQA,GACJ,KAAK,EACD,OAAOyrB,QAAQtP,OAAOke,wBAC1B,KAAK,EACD,OAAO5O,QAAQtP,OAAOme,sBAC1B,KAAK,EACD,OAAO7O,QAAQtP,OAAOoe,gCAC1B,KAAK,EACD,OAAO9O,QAAQtP,OAAOqe,mCAC1B,KAAK,EACD,OAAO/O,QAAQtP,OAAOse,kCAC1B,KAAK,EACD,OAAOhP,QAAQtP,OAAOue,iCAC1B,KAAK,EACD,OAAOjP,QAAQtP,OAAOwe,uBAC1B,KAAK,EACD,OAAOlP,QAAQtP,OAAOye,kCAC1B,KAAK,EACD,OAAOnP,QAAQtP,OAAO0e,kCAC1B,KAAK,GACD,OAAOpP,QAAQtP,OAAO2e,iCAC1B,KAAK,GACD,OAAOrP,QAAQtP,OAAO4e,iCAC1B,KAAK,GACD,OAAOtP,QAAQtP,OAAO6e,uBAC1B,QACI,MAAM,IAAIv7L,MAAO,8BAA6BugK,MAE1D,CACO,SAASi7B,GAAqBC,GACjC,OAAQA,GACJ,KAAK,EACD,OAAOzP,QAAQtP,OAAOgf,kBAC1B,KAAK,EACD,OAAO1P,QAAQtP,OAAOif,mBAC1B,KAAK,EACD,OAAO3P,QAAQtP,OAAOkf,oBAC1B,QACI,MAAM,IAAI57L,MAAM,yBAA2By7L,EAAW,KAElE,CAqHO,SAASI,GAAoB/uM,GAChC,OAAQA,GACJ,KAAKo6J,IAAasB,KACd,OAAOwjC,QAAQtP,OAAOof,iBAC1B,KAAK50C,IAAawB,cACd,OAAOsjC,QAAQtP,OAAOqf,kBAC1B,KAAK70C,IAAayB,MACd,OAAOqjC,QAAQtP,OAAOsf,kBAC1B,KAAK90C,IAAa2B,eACd,OAAOmjC,QAAQtP,OAAOuf,mBAC1B,KAAK/0C,IAAap0E,MACd,OAAOk5G,QAAQtP,OAAOwf,kBAC1B,QACI,MAAM,IAAIl8L,MAAO,+BAA8BlT,MAE3D,CCrSA,MAAMqvM,GAAwC,CAC1C,CAACj1C,KAAa1yB,eAAe,EAC7B,CAAC0yB,KAAak1C,aAAa,EAC3B,CAACl1C,KAAam1C,cAAc,EAC5B,CAACn1C,KAAao1C,SAAS,EACvB,CAACp1C,KAAaq1C,UAAU,EACxB,CAACr1C,KAAas1C,UAAU,EACxB,CAACt1C,KAAau1C,UAAU,EACxB,CAACv1C,KAAaw1C,UAAU,EACxB,CAACx1C,KAAay1C,UAAU,EACxB,CAACz1C,KAAa01C,YAAY,EAC1B,CAAC11C,KAAa21C,oBAAoB,EAClC,CAAC31C,KAAa41C,sBAAsB,EACpC,CAAC51C,KAAa61C,sBAAsB,EACpC,CAAC71C,KAAa81C,2BAA2B,EACzC,CAAC91C,KAAa+1C,2BAA2B,GAO7C,SAASC,GAAapwM,GAClB,OAAQA,GACJ,KAAKo6J,KAAasB,KAClB,KAAKtB,KAAayB,MAClB,KAAKzB,KAAar0E,IAClB,KAAKq0E,KAAap0E,MACd,OAAO,EACX,KAAKo0E,KAAawB,cAClB,KAAKxB,KAAa2B,eAClB,KAAK3B,KAAa4B,aACd,OAAO,EACX,QACI,MAAM,IAAI9oJ,MAAO,iBAAgBlT,MAE7C,CAOO,SAASqwM,GAA2BC,EAAe3mM,GACtD,MAAM2uH,EAAS3uH,EAAOo0J,YAChB4/B,EAAkBh0L,EAAOi1K,iBAC/B,IAAK+e,GAAiBgI,uBAClB,OAEJ,IAAID,EAA0B,KAC9B,UAAWzkH,KAAQqvH,EAAe,CAC9B,MAAMC,EAAsBD,EAAcrvH,GAC1C,IAAKsvH,IAAwBlB,GAAsCpuH,GAC/D,SAEJ,MAAMuvH,EAA0BD,EAAoBE,WAAar2C,KAAap0E,MAAQuqH,EAAoBvwM,KACpG0wM,GAAmB/S,EAAgBgI,uBAAuB1kH,IAC3DuvH,IAA4Bp2C,KAAap0E,YAA8Bv1F,IAArBigN,SAC7BjgN,IAArBigN,IAAkCA,KAAqBF,KACnD9K,IACDA,EAA0BptE,EAAOq4E,4BAA4BhnM,EAAOy6L,gBAAgB,IAExFzG,EAAgBgI,uBAAuB1kH,GAAQuvH,EAC3CA,IAA4Bp2C,KAAap0E,QACzC0/G,EAAwBd,qCAAqC3jH,GAAQm5E,KAAaw2C,aAAa3vH,GAC3FmvH,GAAaI,KACb9K,EAAwBd,qCAAqC3jH,KAAS,IAItF,CACA,GAAIykH,EAAyB,CAGzB,MAAMmL,EAAwBv4E,EAAO0gE,MAAM6X,sBAC3Cv4E,EAAO0gE,MAAM6X,2BAAwBpgN,EACrCkZ,EAAOmnM,wBAAwB,KAAMx4E,EAAOuiC,UAAUk2C,uDAAwDrL,GAC9GptE,EAAO0gE,MAAM6X,sBAAwBA,CACzC,CACJ,CC7EO,MAAMG,GACTvjN,cACIG,KAAKg3M,qCAAuC,CAAC,EAC7Ch3M,KAAK22M,uBAAyB,CAAC,EAC/B32M,KAAK42M,mBAAqB,EAC9B,kBCcJ,MAAMyM,GAA4B,IAAI1kL,MACtC,UAAW05C,KAAS,MAAgBlkE,OAAOowB,UAAUyH,eAAe+kB,KAAKsnB,KAAM,WAAY,CACvF,IAAIirI,EACJnvM,OAAOwzB,eAAe0wC,KAAM,UAAW,CACnCv1E,IAAKA,IAAMwgN,EACXpmM,IAAM3K,IACF+wM,EAAW/wM,EACP+wM,GACAD,GAA0BriD,gBAAgBsiD,EAAQ,GAIlE,CAsBA,SAAAC,kBAAApjN,KAHO,UAAuC20G,EAAUj1G,UAdjD,SAAS2jN,KACZ,OAAO,IAAI7rM,QAASC,WACL05L,QAAY,IACnB+R,GAA0Bp1E,QAASw1E,GAAiB7rM,EAAQ6rM,IAG5D7rM,EAAQ05L,QAAO,EAG3B,CAMWkS,IAA4B1uG,GAAYj1G,CACnD,GAAC0jN,GAAA/mM,MAAAxc,KAAAyc,UAAA,CAID,MAAMinM,WAAyBC,MAG/B,MAAMC,GACF/jN,YAAYwxK,GACRrxK,KAAKqxK,QAAUA,EACfrxK,KAAK6jN,SAAW,IAAIvmM,MACpBtd,KAAK8jN,6BAA8B,EACnC9jN,KAAK+jN,eAAiBC,GAAaC,0BACnCjkN,KAAKqxK,QAAQ6yC,qBAAqBlkN,KAAK+jN,eAC3C,CACAI,oBACI,GAAInkN,KAAK8jN,4BACL,MAAM,IAAIx+L,MAAM,iCAEpBtlB,KAAK8jN,6BAA8B,CACvC,CACAM,kBACI,IAAKpkN,KAAK8jN,4BACN,MAAM,IAAIx+L,MAAM,gCAEpBtlB,KAAK8jN,6BAA8B,EACnC9jN,KAAKqkN,SACT,CACAC,qBAAqB9hE,GACjBxiJ,KAAK+jN,eAAehS,gBAAgBvvD,EACxC,CACA+hE,yBAAyBC,GACrBxkN,KAAK+jN,eAAevS,YAAYgT,EACpC,CACAC,0BAA0BD,GACtBxkN,KAAK+jN,eAAenS,iBAAiB4S,EACzC,CACAE,wBAAwBF,GACpBxkN,KAAK+jN,eAAerS,WAAW8S,EACnC,CACAG,yBAAyBH,GACrBxkN,KAAK+jN,eAAelS,gBAAgB2S,EACxC,CACAI,0BAA0BJ,GACtBxkN,KAAK+jN,eAAepS,aAAa6S,EACrC,CACAK,2BAA2BL,GACvBxkN,KAAK+jN,eAAejS,kBAAkB0S,EAC1C,CACAM,6BAA6BN,GACzBxkN,KAAK+jN,eAAehS,gBAAgByS,GACpCxkN,KAAK6jN,SAAS5lM,KAAKumM,EACvB,CACAO,wBACS/kN,KAAK8jN,6BACN9jN,KAAKqkN,SAEb,CACAA,UACIrkN,KAAKqxK,QAAQ2zC,iBACbhlN,KAAK6jN,SAASnuM,OAAS,CAC3B,EAEJ,MAAMuvM,GAA0B,GAEzB,IAAMjB,GAAY,MAAlB,MAAMA,UAAqBhiB,KAC9BkjB,wBAAwB1lI,GACpB37E,MAAMqhN,wBAAwB1lI,GAC9Bx/E,KAAKqxK,QAAQ6zC,wBAAwB1lI,EACzC,CACA3/E,YAAY0sB,EAAU,CAAC,GAuBnB,GAtBA1oB,MAAM,MAAM,OAAOhB,EAAW0pB,EAAQ44L,oBACtCnlN,KAAKqxK,QAAU,IAAIigC,QAAQtP,OAAO,CAC9B1sC,QAAS0sC,KAAOnoC,QAChBurD,uBAAuB,IAE3BplN,KAAKgmI,QAAUsrE,QAAQvqB,OAAS,IAAIuqB,QAAQvqB,OAAW,KACvD/mL,KAAKqlN,sBAAwB,IAAIzB,GAAqB5jN,KAAKqxK,SAC3DrxK,KAAKslN,yBAA2B,KAChCtlN,KAAKulN,kBAAoBjU,QAAQtP,OAAOwjB,kBACxCxlN,KAAKylN,cAAe,EACpBzlN,KAAK0lN,aAAe,IACpB1lN,KAAK2lN,aAAe,IACpB3lN,KAAK4lN,gBAAkB,EACvB5lN,KAAK6lN,iBAAmB,IACxB7lN,KAAK8lN,sBAAwB,KAC7B9lN,KAAK+lN,oBAAsB,KAC3B/lN,KAAKgmN,2BAA6B,KAClChmN,KAAKimN,SAAW,EAChBjmN,KAAKkmN,cAAgB,EACrBlmN,KAAKmmN,aAAc,EAEnBnmN,KAAKomN,2BAA4B,EAC7B9U,QAAQtP,OAAOqkB,mBAAqBrC,EAAaqC,iBACjD,MAAM,IAAI/gM,MAAO,8BAA6BgsL,QAAQtP,OAAOqkB,iCAAiCrC,EAAaqC,yBAE3GrmN,KAAKqxK,QAAQi1C,uBACbtmN,KAAKqxK,QAAQi1C,sBAAsB,KAC/BtmN,KAAK8xI,wBAAwBkvB,gBAAgBhhK,MAC7CA,KAAKumN,iBAAkB,EACvBvmN,KAAKwmN,gCAA+B,GAG5CxmN,KAAKymN,cAAgB,EACrBzmN,KAAK0mN,uBAAwB,EAC7B1mN,KAAK2mN,oBAAsB,SAG3B3mN,KAAKorM,MAAQ,CACTwb,sBAAuB,GACvBC,2BAA4B,GAC5BC,8BAA+B,GAC/BC,eAAgBzV,QAAQtP,OAAOglB,6BAC/BC,sBAAuB,IACvBC,qBAAsB,IACtBC,iBAAkB,GAClBC,kBAAmB,GACnBC,eAAgB,EAChBC,0BAA2B,GAC3BC,wBAAyB,GACzBC,qBAAqB,EACrBtX,KAAM,KACNE,MAAO,KACPE,KAAM,KACND,KAAM,KACNoX,KAAM,KACNC,cAAe,GACfC,aAAa,EACbC,wBAAwB,EACxBC,8BAA8B,EAC9BC,kBAAkB,EAClBC,6BAA6B,EAC7BC,0BAA0B,EAC1Bxc,cAAc,EACdH,6BAA6B,EAC7B4c,oBAAoB,EACpBC,kBAAkB,EAClB5c,iCAAiC,EACjC6c,wBAAwB,EACxBC,YAAY,EACZC,YAAY,EACZC,sBAAsB,EACtBpb,uBAAuB,EACvBqb,mBAAmB,EACnBC,iBAAiB,EACjBtpB,uBAAuB,EACvBqE,8BAA8B,EAC9BklB,aAAa,EACb7Z,eAAgB,GAChB8Z,oBAAoB,EACpBC,kBAAkB,EAClBC,uBAAuB,EACvBnd,oBAAoB,EACpBod,2BAA2B,EAC3BC,iBAAiB,EACjBC,4BAA6BzX,QAAQtP,OAAOgnB,+BAC5CC,2BAA2B,EAC3BhG,sBAAuB,CAAEiG,sBAAuB,IAEpDlpN,KAAKitK,UAAY,CACbk8C,iCAAiC,EACjCC,2CAA2C,EAC3CC,4BAA4B,EAC5BC,uBAAuB,EACvBC,8BAA8B,EAC9BC,0BAA0B,EAC1BC,kBAAkB,EAClBC,8BAA8B,EAC9BC,YAAY,EACZC,eAAe,EACfC,mBAAmB,EACnBC,iCAAiC,EACjCC,aAAa,EACbC,cAAc,EACdC,mBAAmB,EACnBC,+BAA+B,EAC/BC,2BAA2B,EAC3BC,wBAAwB,EACxBC,sBAAsB,EACtBC,oBAAoB,EACpBC,wBAAwB,EACxBC,gCAAgC,EAChCC,qBAAqB,EACrBC,yBAAyB,EACzBx9C,gDAAgD,EAChDi2C,wDAAwD,EACxDwH,4BAA4B,GAEhC56C,KAAMkkC,IAAI,oBAAsBjS,KAAOnoC,QAAU,cACjDkW,KAAM66C,WAAa,SAAUC,EAAWC,EAAWv6B,EAASw6B,IACxDh7C,KAAMi7C,SAASH,EAAYplN,KACvB80C,SAAS90C,IAAM+W,MAAM,MACjBsuM,GACAA,GAAU,OAEfjoN,OAAWA,GAAW,EAAO,CAAC6b,GAASusM,MAClC16B,GACAA,EAAQ,mBAAoB06B,GAAS,EAGjD,SAEWniN,IAAQ,MACfd,OAAOc,IAAM,CACTs5E,gBAAiB,WAAc,EAC/B88D,gBAAiB,WAAc,WAG5B94D,KAAS,MAChBp+E,OAAOo+E,KAAO,SAAU95D,GACpB,OAAOA,CACX,GAGChP,MAAMinB,UAAU8S,MACjBljC,OAAOwzB,eAAerqB,MAAMinB,UAAW,OAAQ,CAC3CwD,cAAc,EACdx1B,MAAO,SAAS8kC,IACZ,MAAMotF,EAAQv7E,MAAMzsC,UAAU,IAAM,EAAI4wB,OAAO5wB,UAAU,IACzD,OAAOgoH,EACDnnH,MAAMinB,UAAUtnB,OAAO8zC,KAAK/wD,KAAM,SAAU6rC,EAAKq/K,IAC/C,OAAI5tM,MAAMqnB,QAAQumL,IACdr/K,EAAI5tB,KAAKzB,MAAMqvB,EAAKwL,EAAK0Z,KAAKm6J,GAAKzmF,EAAQ,IAG3C54F,EAAI5tB,KAAKitM,IAENr/K,CACX,EAAG,IACDvuB,MAAMinB,UAAU7mB,MAAMqzC,KAAK/wD,KACrC,EACA8nC,UAAU,IAKlB,MAAMqjL,EAAmBnjN,QAASA,OAAOmjN,kBAAoB,EAC7DnrN,KAAK2gM,sBAAwBp0K,EAAQ44L,mBAAqB,EAAMgG,EAAmB,EACnFnrN,KAAKqxK,QAAQ6zC,wBAAwBllN,KAAK2gM,uBAC1C3gM,KAAKorN,sBAAwBD,EAC7BnrN,KAAKqrN,SACL,MAAMC,EAAuBtrN,KAAKurN,mBAC9BD,GACAtrN,KAAKwrN,iBAAiBF,GAG1BtrN,KAAKyrN,iBAAmB,IAAIlV,GAC5Bv2M,KAAK0rN,0BAA0BlzK,IAAK8lE,IAChC,MAAMqtG,EAAiBrtG,EAAM1sE,OAC7B0sE,EAAM1sE,OAAS,IAAI5L,KACfhmC,KAAKqlN,sBAAsBlB,oBAC3BwH,EAAenvM,MAAM8hG,EAAOt4E,GAC5BhmC,KAAKqlN,sBAAsBjB,iBAAgB,CAC/C,EAER,CACA3iK,UACI59C,MAAM49C,UACFzhD,KAAKslN,0BACLtlN,KAAK4rN,mBAAmB5rN,KAAKslN,0BAEjCtlN,KAAKqxK,QAAQ5vH,SACjB,CAEA,8BAAOwiK,GACH,OAAO,IAAInT,EACf,CAKA+a,eAAeC,EAAsBC,GAEjC,OAAIA,EAAUnvC,uBAAyBmvC,IAAc/jN,OACjD+jN,EAAUnvC,sBAAsBkvC,GAGhC9rN,KAAKqxK,QAAQuL,sBAAsBkvC,GAEhC,CACX,CACAtF,iCACIxmN,KAAKgsN,uBACL,MAAMC,EAAYjsN,KAAKksN,mBAAmBD,UACpCE,EAAYnsN,KAAKksN,mBAAmBC,UACpCC,EAAYpsN,KAAKksN,mBAAmBE,UACpCC,EAAcrsN,KAAKssN,cAAcD,YACvCrsN,KAAKusN,4BACLvsN,KAAKksN,mBAAmBD,UAAYA,EACpCjsN,KAAKksN,mBAAmBC,UAAYA,EACpCnsN,KAAKksN,mBAAmBE,UAAYA,EACpCpsN,KAAKssN,cAAcD,YAAcA,EACjCrsN,KAAKwsN,sBACT,CAKAhjB,wBAAwBmB,GAChB3qM,KAAKysN,sBAAwB9hB,IACzB3qM,KAAKysN,sBACLzsN,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO0qB,2BAC/D1sN,KAAKqlN,sBAAsBP,6BAA6B9kN,KAAKysN,qBAC7DzsN,KAAKqlN,sBAAsBN,yBAE3Bpa,IACA3qM,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO2qB,yBAC/D3sN,KAAKqlN,sBAAsBP,6BAA6Bna,GACxD3qM,KAAKqlN,sBAAsBN,yBAE/B/kN,KAAKysN,oBAAsB9hB,EAEnC,CAKA5Y,kBACI,OAAO,IACX,CACA9/I,MAAM4nB,EAAO+yJ,EAAYnoF,EAAOooF,GAAU,GACtC,GAAI7sN,KAAK8yL,sBACL,MAAM,IAAIxtK,MAAM,qDAEpBtlB,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO8qB,eAC/D9sN,KAAKqlN,sBAAsBd,yBAAyBqI,GAAc/yJ,EAAQ,EAAI,GAC9E75D,KAAKqlN,sBAAsBT,0BAA0B/qJ,EAAQA,EAAMz4C,EAAI,GACvEphB,KAAKqlN,sBAAsBT,0BAA0B/qJ,EAAQA,EAAMh/C,EAAI,GACvE7a,KAAKqlN,sBAAsBT,0BAA0B/qJ,EAAQA,EAAMtkD,EAAI,GACvEvV,KAAKqlN,sBAAsBT,0BAA0B/qJ,EAAQA,EAAMjrD,EAAI,GACvE5O,KAAKqlN,sBAAsBd,yBAAyB9/E,EAAQ,EAAI,GAChEzkI,KAAKqlN,sBAAsBT,0BAA0B,GACrD5kN,KAAKqlN,sBAAsBd,yBAAyBsI,EAAU,EAAI,GAClE7sN,KAAKqlN,sBAAsBd,yBAAyB,GACpDvkN,KAAKqlN,sBAAsBN,uBAC/B,CACAgI,kBAAkB9+B,EAAS++B,EAAY/9C,GACnC,MAAMxpK,EAAOzF,KAAKitN,oBAAoBh/B,GAChC7/G,EAAS,IAAIs1I,GACnBt1I,SAAOz/D,WAAa,EACpBy/D,EAAO8+I,SAAsC,IAA3BznN,EAAKytE,kBACnBztE,EAAKmnE,aACLwB,EAAO++I,kBAAoBntN,KAAKqxK,QAAQ07C,kBAAkBtnN,EAAK2oE,OAAQ3oE,EAAK4oE,WAAY5oE,EAAKmnE,WAAYwB,EAAO8+I,SAAUF,IAAc,IAErI5+I,CACX,CACAg/I,mBAAmBC,EAAUL,EAAY/9C,GACrC,MAAMxpK,EAAOqnE,YAAYyC,OAAO89I,GAAYA,EAAW,IAAIx/C,aAAaw/C,GAClEj/I,EAAS,IAAIs1I,GACnBt1I,SAAOz/D,WAAa,EAChBlJ,EAAKmnE,aACLwB,EAAOk/I,mBAAqBttN,KAAKqxK,QAAQ+7C,mBAAmB3nN,EAAK2oE,OAAQ3oE,EAAK4oE,WAAY5oE,EAAKmnE,WAAYogJ,IAAc,IAEtH5+I,CACX,CACAm/I,yBAAyBC,EAAa9K,EAAe+K,EAAa1xM,EAAQ2xM,GACjE3xM,EAAO4xM,gCACRlL,GAA2BC,EAAe3mM,GAC1CA,EAAO4xM,+BAAgC,GAEvCF,GACAztN,KAAKqxK,QAAQu8C,kBAAkBJ,EAAaC,EAAYN,mBAE5D,MAAM72K,EAAav6B,EAAO8xM,qBAC1B,QAASlzM,GAAQ,EAAGA,GAAQ27B,EAAW5gC,OAAQiF,KAAS,CACpD,MAAMjZ,GAAWqa,EAAO+xM,qBAAqBnzM,IAC7C,GAAIjZ,IAAY,EAAG,CACf,MAAM2xF,GAAO/8C,EAAW37B,IACxB,IAAIozM,GAAe,KAOnB,GANIL,IACAK,GAAeL,EAAsBr6H,KAEpC06H,KACDA,GAAerL,EAAcrvH,KAE7B06H,GAAc,CACd,MAAM3/I,GAAS2/I,GAAaC,gBACxB5/I,IAAUA,GAAOk/I,oBACjBttN,KAAKqxK,QAAQ48C,mBAAmBT,EAAap/I,GAAOk/I,mBAAoB5rN,GAAUqsN,GAAaG,oBAAqBH,GAAaI,oBAAqBJ,GAAahpF,UAAWo8E,GAAoB4M,GAAa37M,MAAO27M,GAAalL,WAAYkL,GAAaK,qBAEpQ,CACJ,CACJ,CACJ,CACAC,YAAY3L,EAAe+K,EAAa1xM,GAChC/b,KAAKslN,0BACLtlN,KAAK4rN,mBAAmB5rN,KAAKslN,0BAEjCtlN,KAAKslN,yBAA2BtlN,KAAKqxK,QAAQi9C,oBAC7CtuN,KAAKutN,yBAAyBvtN,KAAKslN,yBAA0B5C,EAAe+K,EAAa1xM,GACzF/b,KAAKuuN,sBAAsBvuN,KAAKslN,yBACpC,CACAkJ,wBAAwB9L,EAAe+K,EAAa1xM,EAAQ2xM,GACxD,MAAMF,EAAcxtN,KAAKqxK,QAAQi9C,oBACjC,OAAAtuN,KAAKutN,yBAAyBC,EAAa9K,EAAe+K,EAAa1xM,EAAQ2xM,GACxEF,CACX,CACA5B,mBAAmB4B,GACfxtN,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOysB,2BAC/DzuN,KAAKqlN,sBAAsBP,6BAA6B0I,GACxDxtN,KAAKqlN,sBAAsBN,uBAC/B,CACAwJ,sBAAsBf,GAClBxtN,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO0sB,yBAC/D1uN,KAAKqlN,sBAAsBP,6BAA6B0I,GACxDxtN,KAAKqlN,sBAAsBN,uBAC/B,CACA4J,yBAAyBnB,GACrBxtN,KAAK4rN,mBAAmB4B,EAC5B,CACA5U,cAAc7I,EAAiBwI,GAC3B,MAAMqW,EAAwB7e,EACxB8e,EAAgCD,EAAsB9W,wBAC5DmN,GAAwBvvM,OAAS,EACjC,QAASiF,EAAQ,EAAGA,EAAQ49L,EAAgB7iM,OAAQiF,IAAS,CACzD,MAAMm0M,EAAoBvW,EAAgB59L,GAE1CsqM,GAAwBtqM,GADFk0M,EAA8BlY,uBAAuBmY,IAAsBA,CAErG,CACA,OAAO9uN,KAAKqxK,QAAQunC,cAAcgW,EAAsBhpB,QAASqf,GACrE,CAMA8J,wBAAwBC,GACpB,OAAgB,GAAZA,GAA6B,GAAZA,IACZhvN,KAAKomN,4BACNxlD,KAAOC,KAAK,mIACZ7gK,KAAKomN,2BAA4B,IAE9B,EAGf,CAQA6I,iBAAiBD,EAAU9gC,EAAYghC,EAAYC,GAC1CnvN,KAAK+uN,wBAAwBC,KAIlChvN,KAAKovN,WAAWtqB,SAAS,GAAG,GACxBqqB,GAAkB7d,QAAQtP,OAAOqtB,8BACjCrvN,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOqtB,8BAC/DrvN,KAAKqlN,sBAAsBd,yBAAyByK,GACpDhvN,KAAKqlN,sBAAsBd,yBAAyBr2B,GACpDluL,KAAKqlN,sBAAsBd,yBAAyB2K,GACpDlvN,KAAKqlN,sBAAsBd,yBAAyB4K,KAGpDnvN,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOstB,qBAC/DtvN,KAAKqlN,sBAAsBd,yBAAyByK,GACpDhvN,KAAKqlN,sBAAsBd,yBAAyBr2B,GACpDluL,KAAKqlN,sBAAsBd,yBAAyB2K,IAExDlvN,KAAKqlN,sBAAsBN,wBAE/B,CAQAwK,eAAeP,EAAUQ,EAAeC,EAAeN,GAC9CnvN,KAAK+uN,wBAAwBC,KAIlChvN,KAAKovN,WAAWtqB,SAAS,GAAG,GACxBqqB,GAAkB7d,QAAQtP,OAAO0tB,uBACjC1vN,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO0tB,uBAC/D1vN,KAAKqlN,sBAAsBd,yBAAyByK,GACpDhvN,KAAKqlN,sBAAsBd,yBAAyBiL,GACpDxvN,KAAKqlN,sBAAsBd,yBAAyBkL,GACpDzvN,KAAKqlN,sBAAsBd,yBAAyB4K,KAGpDnvN,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO2tB,cAC/D3vN,KAAKqlN,sBAAsBd,yBAAyByK,GACpDhvN,KAAKqlN,sBAAsBd,yBAAyBiL,GACpDxvN,KAAKqlN,sBAAsBd,yBAAyBkL,IAExDzvN,KAAKqlN,sBAAsBN,wBAE/B,CACA6K,sBAAsB9X,GAElB,OAAO,IAAIL,GAAsBz3M,QADdA,KAAKorM,MAAM6X,wBAAyBjjN,KAAKqxK,QAAQw+C,oBACpB/X,EACpD,CACAgY,wBAEA,CACAC,oBAEA,CAIAC,wBAAwBjgB,EAAiBkgB,EAAkBC,EAAoBC,EAAaC,EAAsBC,EAAwBC,GAAgBjgC,GAASkgC,GAA4Bz/B,GAAM0/B,IAC7LL,EACAnwN,KAAKywN,yBAGLzwN,KAAK0wN,oBAAoB3gB,EAAiBkgB,EAAkBC,EAAoB7/B,IAEpFmgC,IACJ,CAIAzN,4BAA4B5xB,GACxB,OAAO,IAAIiyB,EACf,CAIAuN,qCAAqC5gB,EAAiBp8I,GAClD,MAAMi7J,EAAwB7e,EAC9B,GAAI6e,EAAsBv6B,QACtB,GAAIu6B,EAAsBt+B,WAAY,CAClC,MAAMsgC,EAAahC,EAAsBt+B,WACzCs+B,EAAsBt+B,WAAa,KAC/BsgC,IACAj9J,GAAO,CAEf,MAEIi7J,EAAsBt+B,WAAa38H,OAIvCA,GAER,CACA88J,yBACI,MAAM,IAAInrM,MAAM,gBACpB,CACAorM,oBAAoB3gB,EAAiBpc,EAAYk9B,EAAcxgC,GAC3D,MAAMu+B,EAAwB7e,EAC9B/vM,KAAK8wN,oCAAoC9vD,gBAAgBhhK,MACzD,MAAM+wN,EAAgB,IAAItd,GAAkB9f,GAC5Co9B,EAAc/c,cACdrgB,EAAao9B,EAAcp0J,KAC3B,MAAMq0J,GAAkB,IAAIvd,GAAkBod,GAC9CG,GAAgBhd,cAChB6c,EAAeG,GAAgBr0J,KAC/Bg3H,EAAa0S,cAAW4qB,mBAAmBt9B,EAAYtD,GACvDwgC,EAAexqB,cAAW4qB,mBAAmBJ,EAAcxgC,GAC3D,MAAMy6B,GAAYA,KACd8D,EAAsBjX,YAAa,EACnCiX,EAAsBt+B,eACtBtwL,KAAKkxN,mCAAmClwD,gBAAgBhhK,KAAI,EAEhE,GAAI+vM,EAAgB1b,QAChBu6B,EAAsBhpB,QAAU5lM,KAAKqxK,QAAQw+C,mBAAmBl8B,EAAYk9B,EAAc/F,GAAYrjN,KAClGmnN,EAAsBlX,iBAAmBjwM,UAI7C,IACImnN,EAAsBhpB,QAAU5lM,KAAKqxK,QAAQ8/C,cAAcx9B,EAAYk9B,GACvE/F,IACJ,OACO/sM,IACH,MAAM4tB,GAAU5tB,IAAG4tB,QACnB,MAAM,IAAIrmB,MAAM,gBAAqC,iBAAZqmB,GAAuB,KAAOA,GAAU,IACrF,CAEJ,OAAOijL,EAAsBhpB,OACjC,CAMAwrB,iBAAiBz0J,GACb,MAAM00J,EAAM,IAAI5d,GAAkB92I,GAClC00J,SAAI9tN,OAAQ,EACZ8tN,EAAIrd,cACGqd,EAAI10J,IACf,CACA20J,YAAY1rB,GACJ5lM,KAAKuxN,kBAAoB3rB,IACzB5lM,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOwvB,oBAC/DxxN,KAAKqlN,sBAAsBP,6BAA6Blf,GACxD5lM,KAAKqlN,sBAAsBN,wBAC3B/kN,KAAKuxN,gBAAkB3rB,EAE/B,CACA6rB,uBAAuB1hB,GACnB,MAAM6e,EAAwB7e,EAC1B6e,GAAyBA,EAAsBhpB,UAC/C5lM,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO0vB,uBAC/D1xN,KAAKqlN,sBAAsBP,6BAA6B8J,EAAsBhpB,SAC9E5lM,KAAKqlN,sBAAsBN,wBAEnC,CACAxmD,YAAYwxC,EAAiBoI,GAEzB,OAAOn4M,KAAKqxK,QAAQ9S,YADUwxC,EACwBnK,QAASuS,EACnE,CACAK,iBAAiBzI,EAAiB4hB,EAAWh3M,GAEzC,MAAM,IAAI2K,MAAM,kBACpB,CACAssM,aAAa71M,GACT,MAAM6yM,EAAwB7yM,EAAOk4K,qBACrCj0L,KAAKsxN,YAAY1C,EAAsBhpB,SAEvC,MAAM0S,EAAWv8L,EAAO81M,cACxB,QAASl3M,EAAQ,EAAGA,EAAQ29L,EAAS5iM,OAAQiF,IAAS,CAClD,MAAM89L,EAAU18L,EAAO48L,WAAWL,EAAS39L,IACvC89L,IACAz4M,KAAK8xN,eAAen3M,GAAS89L,EAErC,CACAz4M,KAAK+xN,eAAiB,IAC1B,CACArmF,eAAesmF,GAAY,GACvB,OAAKA,GAAahyN,KAAK0oM,qBACZ1oM,KAAK0oM,qBAAqBjuK,MAE9Bz6B,KAAKqxK,QAAQ3lC,gBACxB,CACAC,gBAAgBqmF,GAAY,GACxB,OAAKA,GAAahyN,KAAK0oM,qBACZ1oM,KAAK0oM,qBAAqBhuK,OAE9B16B,KAAKqxK,QAAQ1lC,iBACxB,CACAsmF,YAAYnlF,EAAUolF,EAAeC,GACjCnyN,KAAKoyN,gBAAkBtlF,EACvB9sI,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOqwB,qBAC/DryN,KAAKqlN,sBAAsBT,0BAA0B93E,EAASl6H,GAC9D5S,KAAKqlN,sBAAsBT,0BAA0B93E,EAAStqH,GAC9DxiB,KAAKqlN,sBAAsBT,0BAA0B93E,EAASryG,OAC9Dz6B,KAAKqlN,sBAAsBT,0BAA0B93E,EAASpyG,QAC9D16B,KAAKqlN,sBAAsBN,uBAC/B,CACAuN,cAAc1/M,EAAG4P,EAAGiY,EAAOC,GACvB16B,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOuwB,oBAC/DvyN,KAAKqlN,sBAAsBT,0BAA0BhyM,GACrD5S,KAAKqlN,sBAAsBT,0BAA0BpiM,GACrDxiB,KAAKqlN,sBAAsBT,0BAA0BnqL,GACrDz6B,KAAKqlN,sBAAsBT,0BAA0BlqL,GACrD16B,KAAKqlN,sBAAsBN,uBAC/B,CACAyN,iBACIxyN,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOuwB,oBAC/DvyN,KAAKqlN,sBAAsBT,0BAA0B,GACrD5kN,KAAKqlN,sBAAsBT,0BAA0B,GACrD5kN,KAAKqlN,sBAAsBT,0BAA0B,GACrD5kN,KAAKqlN,sBAAsBT,0BAA0B,GACrD5kN,KAAKqlN,sBAAsBN,uBAC/B,CACAzjE,SAASmxE,EAASC,EAAU,EAAGC,EAAOC,GAAc,EAAOC,EAAehG,EAASiG,GAAe,GAC9F9yN,KAAKimN,SAAWyM,EAChB1yN,KAAKkmN,cAAgB4M,GACC,IAAlB9yN,KAAKimN,UACLl2C,KAAMlP,KAAK,8CAEf7gK,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO+wB,kBAC/D/yN,KAAKqlN,sBAAsBd,yBAAyBkO,EAAU,EAAI,GAClEzyN,KAAKqlN,sBAAsBT,0BAA0B8N,GACrD1yN,KAAKqlN,sBAAsBT,0BAA0BkO,IACrD9yN,KAAKqlN,sBAAsBd,yBAA0BvkN,KAAK6yN,eAAiBA,GAAiB,EAAQ,EAAI,GACxG7yN,KAAKqlN,sBAAsBd,yBAAyBqO,EAAc,EAAI,GACtE5yN,KAAKqlN,sBAAsBN,uBAC/B,CAKAiO,4BAYI,MAXa,CACT97J,OAAQl3D,KAAK2rI,kBACbjxG,OAAQ16B,KAAK2rI,kBACbuK,KAAM,EACN+8E,MAAOjzN,KAAK0rI,iBACZ7jH,IAAK,EACL4S,MAAOz6B,KAAK0rI,iBACZ94H,EAAG,EACH4P,EAAG,EACHqwE,OAAQA,OAGhB,CAKAqgI,WAAW3gN,GACHA,IAAUvS,KAAKimN,WACfjmN,KAAKimN,SAAW1zM,EAChBvS,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOmxB,oBAC/DnzN,KAAKqlN,sBAAsBT,0BAA0B5kN,KAAK8yL,uBAAyBvgL,EAAQA,GAC3FvS,KAAKqlN,sBAAsBN,wBAEnC,CAKAqO,aACI,OAAOpzN,KAAKimN,QAChB,CAKAoN,gBAAgB9gN,GACRA,IAAUvS,KAAKkmN,gBACflmN,KAAKkmN,cAAgB3zM,EACrBvS,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOsxB,yBAC/DtzN,KAAKqlN,sBAAsBT,0BAA0B5kN,KAAK8yL,uBAAyBvgL,EAAQA,GAC3FvS,KAAKqlN,sBAAsBN,wBAEnC,CAKAwO,kBACI,OAAOvzN,KAAKkmN,aAChB,CAKAsN,eAAexjL,GACXhwC,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOyxB,sBAC/DzzN,KAAKqlN,sBAAsBd,yBAAyBv0K,EAAShwC,KAAKulN,kBAAoBjU,QAAQtP,OAAO0xB,mBACrG1zN,KAAKqlN,sBAAsBN,uBAC/B,CAKA4O,gBACI,OAAO3zN,KAAKmmN,WAChB,CACAoF,mBACI,OAAQvrN,KAAKulN,mBACT,KAAKjU,QAAQtP,OAAO4xB,iBAChB,OAAO,IACX,KAAKtiB,QAAQtP,OAAO0xB,kBAChB,OAAO,IACX,KAAKpiB,QAAQtP,OAAO6xB,mBAChB,OAAO,IACX,KAAKviB,QAAQtP,OAAO8xB,kBAChB,OAAO,IACX,KAAKxiB,QAAQtP,OAAO+xB,oBAChB,OAAO,IACX,KAAKziB,QAAQtP,OAAOgyB,iBAChB,OAAO,IACX,KAAK1iB,QAAQtP,OAAOiyB,gBAChB,OAAO,IACX,KAAK3iB,QAAQtP,OAAOwjB,kBAChB,OAAO,IAEf,OAAO,IACX,CACAgG,iBAAiBW,GACb,IAAI+H,EAAkB,EACtB,OAAQ/H,GACJ,KAAK,IACD+H,EAAkB5iB,QAAQtP,OAAO4xB,iBACjC,MACJ,KAAK,IACDM,EAAkB5iB,QAAQtP,OAAO0xB,kBACjC,MACJ,KAAK,IACDQ,EAAkB5iB,QAAQtP,OAAO6xB,mBACjC,MACJ,KAAK,IACDK,EAAkB5iB,QAAQtP,OAAO8xB,kBACjC,MACJ,KAAK,IACDI,EAAkB5iB,QAAQtP,OAAO+xB,oBACjC,MACJ,KAAK,IACDG,EAAkB5iB,QAAQtP,OAAOgyB,iBACjC,MACJ,KAAK,IACDE,EAAkB5iB,QAAQtP,OAAOiyB,gBACjC,MACJ,KAAK,IACDC,EAAkB5iB,QAAQtP,OAAOwjB,kBAGzCxlN,KAAKulN,kBAAoB2O,EACzBl0N,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOyxB,sBAC/DzzN,KAAKqlN,sBAAsBd,yBAAyBvkN,KAAKulN,mBACzDvlN,KAAKqlN,sBAAsBN,uBAC/B,CAKAoP,cAAcnkL,GACVhwC,KAAKmmN,YAAcn2K,EACnBhwC,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOoyB,uBAC/Dp0N,KAAKqlN,sBAAsBd,yBAAyBl3K,OAAO2C,IAC3DhwC,KAAKqlN,sBAAsBN,uBAC/B,CAKAsP,cAAcrkL,GACVhwC,KAAKs0N,YAActkL,EACnBhwC,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOuyB,uBAC/Dv0N,KAAKqlN,sBAAsBd,yBAAyBl3K,OAAO2C,IAC3DhwC,KAAKqlN,sBAAsBN,uBAC/B,CAKAyP,gBACI,OAAOx0N,KAAKs0N,WAChB,CACAG,eACIz0N,KAAK00N,YAAY10N,KAAK0lN,aH9rBvB,SAASiP,GAAuBC,GACnC,OAAQA,GACJ,KAAK,KACD,OAAOtjB,QAAQtP,OAAO6yB,uBAC1B,KAAK,EACD,OAAOvjB,QAAQtP,OAAO8yB,uBAC1B,KAAK,KACD,OAAOxjB,QAAQtP,OAAO+yB,0BAC1B,KAAK,KACD,OAAOzjB,QAAQtP,OAAOgzB,uBAC1B,KAAK,KACD,OAAO1jB,QAAQtP,OAAOizB,uBAC1B,KAAK,KACD,OAAO3jB,QAAQtP,OAAOkzB,yBAC1B,KAAK,MACD,OAAO5jB,QAAQtP,OAAOmzB,0BAC1B,KAAK,MACD,OAAO7jB,QAAQtP,OAAOozB,0BAC1B,QACI,MAAM,IAAI9vM,MAAO,oCAAmCsvM,MAEhE,CGyqB4CD,CAAuB30N,KAAK8lN,uBHxqBjE,SAASuP,GAA0BC,GACtC,OAAQA,GACJ,KAAK,KACD,OAAOhkB,QAAQtP,OAAOuzB,uBAC1B,KAAK,EACD,OAAOjkB,QAAQtP,OAAOwzB,uBAC1B,KAAK,KACD,OAAOlkB,QAAQtP,OAAOyzB,0BAC1B,KAAK,KACD,OAAOnkB,QAAQtP,OAAO0zB,uBAC1B,KAAK,KACD,OAAOpkB,QAAQtP,OAAO2zB,uBAC1B,KAAK,KACD,OAAOrkB,QAAQtP,OAAO4zB,yBAC1B,KAAK,MACD,OAAOtkB,QAAQtP,OAAO6zB,0BAC1B,KAAK,MACD,OAAOvkB,QAAQtP,OAAO8zB,0BAC1B,QACI,MAAM,IAAIxwM,MAAO,uCAAsCgwM,MAEnE,CGmpBgGD,CAA0Br1N,KAAK+lN,qBHlpBxH,SAASgQ,GAA0BC,GACtC,OAAQA,GACJ,KAAK,KACD,OAAO1kB,QAAQtP,OAAOi0B,uBAC1B,KAAK,EACD,OAAO3kB,QAAQtP,OAAOk0B,uBAC1B,KAAK,KACD,OAAO5kB,QAAQtP,OAAOm0B,0BAC1B,KAAK,KACD,OAAO7kB,QAAQtP,OAAOo0B,uBAC1B,KAAK,KACD,OAAO9kB,QAAQtP,OAAOq0B,uBAC1B,KAAK,KACD,OAAO/kB,QAAQtP,OAAOs0B,yBAC1B,KAAK,MACD,OAAOhlB,QAAQtP,OAAOu0B,0BAC1B,KAAK,MACD,OAAOjlB,QAAQtP,OAAOw0B,0BAC1B,QACI,MAAM,IAAIlxM,MAAO,oCAAmC0wM,MAEhE,CG6nBqJD,CAA0B/1N,KAAKgmN,4BHptB7K,SAASyQ,GAAqBriC,GACjC,OAAQA,GACJ,KAAK,IACD,OAAOkd,QAAQtP,OAAO00B,kBAC1B,KAAK,IACD,OAAOplB,QAAQtP,OAAO20B,oBAC1B,KAAK,IACD,OAAOrlB,QAAQtP,OAAO40B,mBAC1B,KAAK,IACD,OAAOtlB,QAAQtP,OAAO60B,oBAC1B,KAAK,IACD,OAAOvlB,QAAQtP,OAAO80B,qBAC1B,KAAK,IACD,OAAOxlB,QAAQtP,OAAO+0B,sBAC1B,KAAK,IACD,OAAOzlB,QAAQtP,OAAOg1B,mBAC1B,KAAK,IACD,OAAO1lB,QAAQtP,OAAOi1B,oBAC1B,QACI,MAAM,IAAI3xM,MAAO,kCAAiC8uK,MAE9D,CG+rBiNqiC,CAAqBz2N,KAAK2lN,cAAe3lN,KAAK4lN,gBAC3P,CACA8O,YAAY1yC,EAAMk1C,EAAeC,EAAaC,EAAahjC,EAAM98K,GAC7DtX,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOq1B,oBAC/Dr3N,KAAKqlN,sBAAsBd,yBAAyBviC,GACpDhiL,KAAKqlN,sBAAsBd,yBAAyB2S,GACpDl3N,KAAKqlN,sBAAsBd,yBAAyB4S,GACpDn3N,KAAKqlN,sBAAsBd,yBAAyB6S,GACpDp3N,KAAKqlN,sBAAsBd,yBAAyBnwB,GACpDp0L,KAAKqlN,sBAAsBd,yBAAyBjtM,GACpDtX,KAAKqlN,sBAAsBN,uBAC/B,CAKAuS,iBAAiBtnL,GACbhwC,KAAKylN,aAAez1K,EAChBA,EACAhwC,KAAKy0N,eAGLz0N,KAAK00N,YAAY,IAAKpjB,QAAQtP,OAAO6yB,uBAAwBvjB,QAAQtP,OAAOuzB,uBAAwBjkB,QAAQtP,OAAOi0B,uBAAwB3kB,QAAQtP,OAAOi1B,oBAAqB,EAEvL,CAKAM,mBACI,OAAOv3N,KAAKylN,YAChB,CAKA+R,0BACI,OAAOx3N,KAAKgmN,0BAChB,CAKAyR,wBAAwBt2H,GACpBnhG,KAAKgmN,2BAA6B7kH,EAClCnhG,KAAKy0N,cACT,CAKAiD,eAAe11C,GACXhiL,KAAK0lN,aAAe1jC,EACpBhiL,KAAKy0N,cACT,CAKAkD,mBAAmBC,GACf53N,KAAK2lN,aAAeiS,EACpB53N,KAAKy0N,cACT,CAKAoD,4BAA4B5oN,GACxBjP,KAAK4lN,gBAAkB32M,EACvBjP,KAAKy0N,cACT,CAKAqD,uBAAuB91C,GACnBhiL,KAAK6lN,iBAAmB7jC,CAC5B,CAKA+1C,wBAAwB52H,GACpBnhG,KAAK8lN,sBAAwB3kH,EAC7BnhG,KAAKy0N,cACT,CAKAuD,6BAA6B72H,GACzBnhG,KAAK+lN,oBAAsB5kH,EAC3BnhG,KAAKy0N,cACT,CAKAwD,iBACI,OAAOj4N,KAAK0lN,YAChB,CAKAwS,qBACI,OAAOl4N,KAAK2lN,YAChB,CAKAwS,8BACI,OAAOn4N,KAAK4lN,eAChB,CAKAwS,yBACI,OAAOp4N,KAAK6lN,gBAChB,CAKAwS,0BACI,OAAOr4N,KAAK8lN,qBAChB,CAKAwS,+BACI,OAAOt4N,KAAK+lN,mBAChB,CAQAwS,kBAAkBn3M,EAAGvG,EAAGtF,EAAG3G,GACvB,MAAM,IAAI0W,MAAM,0DACpB,CAOAkzM,aAAa/+M,EAAMg/M,GAAqB,GACpC,GAAIz4N,KAAK04N,aAAej/M,EACpB,OAEJ,MAAMk/M,EHxxBP,SAASC,GAAmBn/M,GAC/B,OAAQA,GACJ,KAAK,EACD,OAAO63L,QAAQtP,OAAO62B,cAC1B,KAAK,EACD,OAAOvnB,QAAQtP,OAAO82B,UAC1B,KAAK,EACD,OAAOxnB,QAAQtP,OAAO+2B,cAC1B,KAAK,EACD,OAAOznB,QAAQtP,OAAOg3B,eAC1B,KAAK,EACD,OAAO1nB,QAAQtP,OAAOi3B,eAC1B,KAAK,EACD,OAAO3nB,QAAQtP,OAAOk3B,gBAC1B,KAAK,EACD,OAAO5nB,QAAQtP,OAAOm3B,aAC1B,KAAK,EACD,OAAO7nB,QAAQtP,OAAOo3B,oBAC1B,KAAK,EACD,OAAO9nB,QAAQtP,OAAOq3B,+BAC1B,KAAK,EACD,OAAO/nB,QAAQtP,OAAOs3B,kBAC1B,KAAK,GACD,OAAOhoB,QAAQtP,OAAOu3B,iBAC1B,QACI,MAAM,IAAIj0M,MAAO,2BAA0B7L,MAEvD,CG6vB2Bm/M,CAAmBn/M,GACtCzZ,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOw3B,sBAC/Dx5N,KAAKqlN,sBAAsBd,yBAAyBoU,GACpD34N,KAAKqlN,sBAAsBN,wBACtB0T,GACDz4N,KAAKm0N,cAAuB,IAAT16M,GAEvBzZ,KAAK04N,WAAaj/M,CACtB,CACA8/L,OAAOd,EAASghB,GACZ,QAAKhhB,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO03B,gBAC/D15N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBX,wBAAwB+U,GACnDz5N,KAAKqlN,sBAAsBN,yBACpB,EACX,CACApL,YAAYlB,EAASr6H,GACjB,QAAKq6H,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO23B,qBAC/D35N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBV,yBAAyBvmI,GACpDp+E,KAAKqlN,sBAAsBN,yBACpB,EACX,CACAnL,aAAanB,EAASr6H,GAClB,QAAKq6H,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO43B,sBAC/D55N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBV,yBAAyBvmI,GACpDp+E,KAAKqlN,sBAAsBN,yBACpB,EACX,CACAlL,aAAapB,EAASr6H,GAClB,QAAKq6H,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO63B,sBAC/D75N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBV,yBAAyBvmI,GACpDp+E,KAAKqlN,sBAAsBN,yBACpB,EACX,CACAjL,aAAarB,EAASr6H,GAClB,QAAKq6H,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO83B,sBAC/D95N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBV,yBAAyBvmI,GACpDp+E,KAAKqlN,sBAAsBN,yBACpB,EACX,CACAxK,cAAc9B,EAASr6H,GACnB,QAAKq6H,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO+3B,uBAC/D/5N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBR,2BAA2BzmI,GACtDp+E,KAAKqlN,sBAAsBN,yBACpB,EACX,CACAvK,eAAe/B,EAASr6H,GACpB,QAAKq6H,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOg4B,wBAC/Dh6N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBR,2BAA2BzmI,GACtDp+E,KAAKqlN,sBAAsBN,yBACpB,EACX,CACAtK,eAAehC,EAASr6H,GACpB,QAAKq6H,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOi4B,wBAC/Dj6N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBR,2BAA2BzmI,GACtDp+E,KAAKqlN,sBAAsBN,yBACpB,EACX,CACArK,eAAejC,EAASr6H,GACpB,QAAKq6H,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOk4B,wBAC/Dl6N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBR,2BAA2BzmI,GACtDp+E,KAAKqlN,sBAAsBN,yBACpB,EACX,CACApK,SAASlC,EAASr6H,GACd,QAAKq6H,GAGEz4M,KAAKu6M,cAAc9B,EAAS,IAAI5qC,aAAazvF,GACxD,CACAw8H,UAAUnC,EAASr6H,GACf,QAAKq6H,GAGEz4M,KAAKw6M,eAAe/B,EAAS,IAAI5qC,aAAazvF,GACzD,CACAy8H,UAAUpC,EAASr6H,GACf,QAAKq6H,GAGEz4M,KAAKy6M,eAAehC,EAAS,IAAI5qC,aAAazvF,GACzD,CACA08H,UAAUrC,EAASr6H,GACf,QAAKq6H,GAGEz4M,KAAK06M,eAAejC,EAAS,IAAI5qC,aAAazvF,GACzD,CACA28H,YAAYtC,EAASuC,GACjB,QAAKvC,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOm4B,qBAC/Dn6N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBR,2BAA2B7J,GACtDh7M,KAAKqlN,sBAAsBN,yBACpB,EACX,CACA7J,aAAazC,EAASO,GAClB,QAAKP,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOo4B,sBAC/Dp6N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBR,2BAA2B7L,GACtDh5M,KAAKqlN,sBAAsBN,yBACpB,EACX,CACA5J,aAAa1C,EAASO,GAClB,QAAKP,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOq4B,sBAC/Dr6N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBR,2BAA2B7L,GACtDh5M,KAAKqlN,sBAAsBN,yBACpB,EACX,CACAhjD,SAAS02C,EAASlmM,GACd,QAAKkmM,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOs4B,kBAC/Dt6N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBT,0BAA0BryM,GACrDvS,KAAKqlN,sBAAsBN,yBACpB,EACX,CACAjjD,UAAU22C,EAAS7lM,EAAG4P,GAClB,QAAKi2L,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOu4B,mBAC/Dv6N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBT,0BAA0BhyM,GACrD5S,KAAKqlN,sBAAsBT,0BAA0BpiM,GACrDxiB,KAAKqlN,sBAAsBN,yBACpB,EACX,CACArJ,UAAUjD,EAAS7lM,EAAG4P,EAAG0nD,GACrB,QAAKuuI,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOw4B,mBAC/Dx6N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBT,0BAA0BhyM,GACrD5S,KAAKqlN,sBAAsBT,0BAA0BpiM,GACrDxiB,KAAKqlN,sBAAsBT,0BAA0B16I,GACrDlqE,KAAKqlN,sBAAsBN,yBACpB,EACX,CACAnJ,UAAUnD,EAAS7lM,EAAG4P,EAAG0nD,EAAGtB,GACxB,QAAK6vI,IAGLz4M,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOy4B,mBAC/Dz6N,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBT,0BAA0BhyM,GACrD5S,KAAKqlN,sBAAsBT,0BAA0BpiM,GACrDxiB,KAAKqlN,sBAAsBT,0BAA0B16I,GACrDlqE,KAAKqlN,sBAAsBT,0BAA0Bh8I,GACrD5oE,KAAKqlN,sBAAsBN,yBACpB,EACX,CACAhJ,UAAUtD,EAASuD,GACf,QAAKvD,IAGLz4M,KAAK07M,UAAUjD,EAASuD,EAAO56L,EAAG46L,EAAOnhM,EAAGmhM,EAAOzmM,IAC5C,EACX,CACA0mM,UAAUxD,EAASuD,EAAQzxE,GACvB,QAAKkuE,IAGLz4M,KAAK47M,UAAUnD,EAASuD,EAAO56L,EAAG46L,EAAOnhM,EAAGmhM,EAAOzmM,EAAGg1H,IAC/C,EACX,CACAmwF,WAAWC,GACH36N,KAAK46N,gCAGT56N,KAAK0uM,oBACL1uM,KAAK+xN,eAAiB,KAClB4I,IACA36N,KAAKuxN,gBAAkB,KACvBvxN,KAAK66N,sBAAsBxnN,QAC3BrT,KAAKksN,mBAAmB74M,QACxBrT,KAAK86N,YAAYznN,SAErBrT,KAAK+6N,qBAAuB,KAC5B/6N,KAAKg7N,mBAAqB,KAC1Bh7N,KAAKi7N,8BAAgC,KACzC,CACAC,iBACI,OAAOl7N,KAAKqxK,QAAQ9nC,eACxB,CACA4xF,eAAe50B,GACPA,GACAvmM,KAAKqxK,QAAQ6rC,cAAc3W,EAAQL,mBAE3C,CASAk1B,qBAAqB70B,EAAShsK,EAAQksK,EAAS40B,GAAc,EAAO9rM,GAIhE,QAHoB,IAAhB8rM,IACAA,GAAc,GAEZ90B,GAAaA,EAAQwF,iBAAkB,CACzC,MAAM9jK,EAAS1N,EAAO+gM,mBAEtBt7N,KAAKqxK,QAAQkqD,YADOh1B,EAAQwF,iBAAiB7F,mBACPj+J,GACtCs+J,EAAQxS,SAAU,CACtB,CACJ,CACAynC,qBAAqB/gM,EAAOC,EAAQ4pG,EAAiBuhD,GAGjDprJ,SAAQld,KAAKk/B,IAAIhiB,EAAO,GACxBC,EAASnd,KAAKk/B,IAAI/hB,EAAQ,GACnB16B,KAAKy7N,iBAAiB,IAAI50L,WAAWpM,EAAQC,EAAS,GAAID,EAAOC,EAAQ,GAAG,GAAO,EAAOmrJ,EACrG,CACA61C,mBAAmBC,GAEf,OAAI37N,KAAKgmI,QACEhmI,KAAKgmI,QAAQ41F,YAAYD,GAE7B,IACX,CACAr1B,mBAAmBC,EAASC,EAAOC,GAC3BF,GAAWA,EAAQwF,kBAAoB/rM,KAAKgmI,SAE5ChmI,KAAKgmI,QAAQsgE,mBADQC,EAAQwF,iBAAiB7F,mBACAM,EAAOC,EAE7D,CACAg1B,iBAAiBh2N,EAAMg1B,EAAOC,EAAQnL,EAAQ+0G,EAAiBmiE,EAAS5gB,GAAcg2C,GAAc,KAAMzpN,GAAO,EAAG0pN,GAAgB,EAAG5wB,IAAgB,GACnJ,MAAM3E,GAAU,IAAIqF,KAAgB5rM,KAAM,GAa1C,GAZAumM,GAAQh3K,OAASA,EACjBg3K,GAAQjiE,gBAAkBA,EAC1BiiE,GAAQ1gB,aAAeA,GACvB0gB,GAAQE,QAAUA,EAClBF,GAAQuG,UAAYryK,EACpB8rK,GAAQwG,WAAaryK,EACrB6rK,GAAQ9rK,MAAQ8rK,GAAQuG,UACxBvG,GAAQ7rK,OAAS6rK,GAAQwG,WACzBxG,GAAQw1B,aAAeF,GACvBt1B,GAAQn0L,KAAOA,GACfm0L,GAAQyG,eAAiBhtM,KAAKg8N,kBAAkB9wB,IAAgB5mE,GAChEtkI,KAAKi8N,iBAAiB11B,GAAS9gM,EAAM8pB,EAAQk3K,EAASo1B,GAAazpN,GAAMm0L,GAAQyG,gBAC7EzG,GAAQwF,iBAAkB,CAC1B,MAAMmwB,GAAe31B,GAAQwF,iBAAiB7F,mBACxCl/L,GAASi5M,GAAsBp6B,IACrC7lL,KAAKm8N,oBAAoBD,GAAcl1N,GAC3C,CACA,OAAAhH,KAAKitM,uBAAuBhvL,KAAKsoL,IAC1BA,EACX,CACA61B,wBAAwB32N,EAAMg1B,EAAOC,EAAQ+pG,EAAOl1G,EAAQ+0G,EAAiBmiE,GAAS5gB,GAAcg2C,GAAc,KAAMvwF,GAAc,GAClI,MAAMi7D,GAAU,IAAIqF,KAAgB5rM,KAAM,IAY1C,GAXAumM,GAAQuG,UAAYryK,EACpB8rK,GAAQwG,WAAaryK,EACrB6rK,GAAQqG,UAAYnoE,EACpB8hE,GAAQ9rK,MAAQA,EAChB8rK,GAAQ7rK,OAASA,EACjB6rK,GAAQ9hE,MAAQA,EAChB8hE,GAAQh3K,OAASA,EACjBg3K,GAAQn0L,KAAOk5H,GACfi7D,GAAQjiE,gBAAkBA,EAC1BiiE,GAAQ1gB,aAAeA,GACvB0gB,GAAQoG,WAAY,EAChBpG,GAAQwF,iBAAkB,CAC1B,MAAMswB,GAAgB91B,GAAQwF,iBAAiB7F,mBAC/ClmM,KAAKqxK,QAAQirD,sBAAsBD,GAAe52N,EAAMg1B,EAAOC,EAAQ+pG,EAAO04E,GAAuB5tL,EAAQ+7G,IAAchH,EAAiBmiE,IAC5I,MAAMz/L,GAASi5M,GAAsBp6B,IACrC7lL,KAAKm8N,oBAAoBE,GAAer1N,GAC5C,CACAu/L,UAAQxS,SAAU,EAClB/zL,KAAKitM,uBAAuBhvL,KAAKsoL,IAC1BA,EACX,CACA01B,iBAAiB11B,EAASg2B,EAAYhtM,EAAQk3K,EAASo1B,EAAc,KAAMzpN,EAAO,EAAG84L,IAAgB,GAC5F3E,IAGDg2B,GAAch2B,EAAQwF,kBAEtB/rM,KAAKqxK,QAAQmrD,eADcj2B,EAAQwF,iBAAiB7F,mBACJq2B,EAAYh2B,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQyiL,GAAuB5tL,EAAQnd,GAAOm0L,EAAQjiE,gBAAiBiiE,EAAQE,SAEtKF,EAAQxS,SAAU,EACtB,CAyBAxqD,cAAcrmI,EAAKu5N,EAAUh2B,EAASnoF,EAAOunE,EAAe,EAAG62C,EAAS,KAAMnsC,GAAU,KAAMniH,GAAS,KAAMuuJ,GAAW,KAAMptM,GAAS,KAAMqtM,GAAkB,KAAMzjM,GAAU0jM,GAAef,GAAe5wB,IAAgB,GAEzN,MAAM4xB,GAAmC,WADzC55N,EAAMA,GAAO,IACQu+E,UAAU,EAAG,GAE5Bs7I,GAAWD,KAAwC,IAA5B55N,EAAI4hC,QAAQ,YACnCyhK,GAAUo2B,IAAsB,IAAI/wB,KAAgB5rM,KAAM,GAC1Dg9N,GAAc95N,EAChBlD,KAAK6wM,uBAAyBksB,KAAaJ,KAAavuJ,KACxDlrE,EAAMlD,KAAK6wM,qBAAqB3tM,IAGpC,MAAM0+L,GAAU1+L,EAAIy+E,YAAY,KAC1Bv0C,GAAYwvL,KAAoCh7B,IAAU,EAAK1+L,EAAIu+E,UAAUmgH,IAASpsL,cAAgB,IAG5G,IAAIynN,GAAgB,MAChB7vL,GAAUgyC,SAAS,WAAahyC,GAAUgyC,SAAS,SAAWhyC,GAAUgyC,SAAS,UAAyB,cAAbjmD,IAAyC,eAAbA,MACzH8jM,MAAgBC,OAA4B9vL,KAE5CkxE,GACAA,EAAM6+G,eAAe52B,IAEzBA,GAAQrjM,IAAMA,EACdqjM,GAAQjiE,iBAAmBm4F,EAC3Bl2B,GAAQ1gB,aAAeA,EACvB0gB,GAAQE,QAAUA,EAClBF,GAAQyG,eAAiBhtM,KAAKg8N,kBAAkB9wB,GAAeuxB,GAC1Dz8N,KAAKo9N,yBAEN72B,GAAQlmD,QAAUjyE,IAEtB,IAAIivJ,GAAiB,KACjBX,IAAWC,KACXU,GAAiB92B,GAAQ+2B,mBAAmB9kL,IAAIkkL,IAE/CC,IACD38N,KAAKitM,uBAAuBhvL,KAAKsoL,IAErC,MAAMg3B,GAAkBA,CAAC5xL,GAASs/K,MAC1B3sG,GACAA,EAAMk/G,kBAAkBj3B,IAExBrjM,IAAQ85N,IACJK,IACA92B,GAAQ+2B,mBAAmB5kL,OAAO2kL,IAElC/7D,KAAYm8D,oBACZz9N,KAAKupI,cAAc+3B,KAAYo8D,gBAAiBjB,EAAUl2B,GAAQE,QAASnoF,EAAOunE,EAAc,KAAM0K,GAASniH,GAAQm4H,IAEvHhW,IACAA,IAAS5kJ,IAAW,kBAAoB21H,KAAYm8D,mBAAqB,+BAAiC,IAAKxS,MAKnHrqD,KAAOC,KAAM,kBAAiB39J,sBAAwB85N,MACtDh9N,KAAKupI,cAAcyzF,GAAaP,EAAUl2B,GAAQE,QAASnoF,EAAOunE,EAAc62C,EAAQnsC,GAASniH,GAAQm4H,GAASh3K,GAAQqtM,GAAiBzjM,GAAU0jM,IAAa,EAI1K,GAAII,GACA,MAAM,IAAI33M,MAAM,qEAEf,CACD,MAAMkV,GAAU/0B,KACZ,IAAK8gM,GAAQwF,iBAIT,YAHIztF,GACAA,EAAMk/G,kBAAkBj3B,KAIhC,MAAML,GAAqBK,GAAQwF,iBAAiB7F,mBACpDlmM,KAAKqxK,QAAQssD,YAAYz3B,GAAoBzgM,IAAOg3N,EAAUh2B,EAASF,GAAQyG,eAAgB,KAC3FzG,GAAQuG,UAAY9sM,KAAKqxK,QAAQusD,gBAAgB13B,IACjDK,GAAQwG,WAAa/sM,KAAKqxK,QAAQwsD,iBAAiB33B,IACnDK,GAAQ9rK,MAAQ8rK,GAAQuG,UACxBvG,GAAQ7rK,OAAS6rK,GAAQwG,WACzBxG,GAAQxS,SAAU,EAClB,MAAM/sL,GAASi5M,GAAsBp6B,GACrC7lL,KAAKm8N,oBAAoBj2B,GAAoBl/L,IACzCs3G,GACAA,EAAMk/G,kBAAkBj3B,IAE5BA,GAAQ+2B,mBAAmBt8D,gBAAgBulC,IAC3CA,GAAQ+2B,mBAAmBrrL,OAAM,EAClC,KACC,MAAM,IAAI3sB,MAAM,mCAAkC,EACrD,EAEL,GAAIw3M,IAAY1uJ,GACZ,GAAIA,cAAkBtB,YAClBtyC,GAAO,IAAIqM,WAAWunC,UAAO,GAExBtB,YAAYyC,OAAOnB,IACxB5zC,GAAO4zC,QAAM,IAEU,iBAAXA,GAIZ,MAAM,IAAI9oD,MAAM,2BAHhBkV,GAAO,IAAIqM,WAAWkpI,KAAM+tD,aAAa1vJ,KAGA,MAIzC2uJ,GACAviM,GAAO,IAAIqM,WAAWkpI,KAAM+tD,aAAa56N,KAGzClD,KAAK+0L,UAAU7xL,EAAMuC,IAAS+0B,GAAO,IAAIqM,WAAWphC,UAAQ5C,OAAWA,GAAW,EAAM,CAAC6b,GAASusM,MAC9FsS,GAAgB,kBAA0DtS,GAAU,EAIpG,CACA,OAAO1kB,EACX,CAQAw3B,kBAAkBx3B,EAASy3B,GAAa,EAAOn4C,EAAe,GAC1D,MAAMopB,EAAkB,IAAI4N,GAAsBtW,EAASvmM,KAAKqxK,SAC1D4sD,EAAkB,IAAIryB,KAAgB5rM,KAAM,GAAuC,GACzFi+N,SAAgBlyB,iBAAmBkD,EACnCgvB,EAAgBnxB,UAAY9sM,KAAKqxK,QAAQusD,gBAAgBr3B,GACzD03B,EAAgBlxB,WAAa/sM,KAAKqxK,QAAQwsD,iBAAiBt3B,GAC3D03B,EAAgBxjM,MAAQwjM,EAAgBnxB,UACxCmxB,EAAgBvjM,OAASujM,EAAgBlxB,WACzCkxB,EAAgBlqC,SAAU,EAC1BkqC,EAAgBC,WAAaF,EAC7Bh+N,KAAKm+N,0BAA0Bt4C,EAAco4C,GACtCA,CACX,CAMAG,mBACI,MAAM,IAAI94M,MAAM,oEACpB,CACA+4M,2BAA2BhlM,EAAM9M,EAASg8K,GAEtC,MAAM+1B,EAAkB/xM,EAAQ+xM,kBAAmB,EAC7Ct0B,EAAUz9K,EAAQy9K,SAAW,EAC7Bu0B,EAAkBh2B,EAClBhC,GAAU,IAAIqF,KAAgB5rM,KAAM,IAGpC2qM,GAAc3qM,KAAKqxK,QAAQmtD,kBAAkBj4B,GAAQwF,iBAAiB7F,mBAF9D7sK,EAAKoB,OAASpB,EACbA,EAAKqB,QAAUrB,EACiFilM,GAAiB,EAAMt0B,GACtIu0B,SAAgB/hB,yBAA2B7R,GACpCpE,EACX,CAIAgW,2BAA2B5R,GACnBA,IACA3qM,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOy8B,2BAC/Dz+N,KAAKqlN,sBAAsBP,6BAA6Bna,GACxD3qM,KAAKqlN,sBAAsBN,wBAEnC,CAOA2Z,6BAA6BC,EAAapyM,GAiBtC,OAhBgB,IAAI5U,QAAQ,CAACC,EAASiwD,KAClC,MAAMjnD,EAAQ5gB,KAAK4+N,oBACnBh+M,EAAM4Z,OAAS,KACX,IACI,MAAMqkM,GAAc7+N,KAAKqxK,QAAQytD,kBAAkBl+M,GACnDhJ,EAAQinN,GACZ,OACOp3N,IACHogE,EAAQ,uBAAsBjnD,EAAM0Z,uBAAuB7yB,KAC/D,GAEJmZ,EAAM21F,QAAW9uG,KACbogE,EAAQ,uBAAsBjnD,EAAM0Z,uBAAuB7yB,KAAO,EAEtEmZ,EAAM0Z,IAAMqkM,GAGpB,CAOAG,kBAAkBl+M,EAAO2L,GACrB,OAAO,IAAI5U,QAAQ,CAACC,EAASiwD,KACzB,GAAIvqD,MAAMqnB,QAAQ/jB,IACFA,EACJlL,OAAQ,CACZ,MAAMkL,EAAQ5gB,KAAKqxK,QAAQytD,kBAFnBl+M,EAEyC,IACjD,GAAIA,EAEA,YADAhJ,EAAQgJ,EAGhB,CAEJinD,EAAQ,0CAAwC,EAExD,CAQAk3J,kBAAkBn+M,EAAOo+M,EAAaC,GAClC,OAAOj/N,KAAKqxK,QAAQ0tD,kBAAkBn+M,EAAOo+M,EAAaC,EAC9D,CAoBAC,kBAAkBv8D,EAASrkD,EAAO9uF,EAAOitM,EAAUC,EAAS,KAAMnsC,EAAU,KAAMhhK,GAAQqtM,GAAkB,KAAMuC,IAAoB,EAAOC,GAAW,EAAGC,GAAY,EAAG1C,GAAW,KAAME,GAAe3xB,IAAgB,EAAO98H,GAAS,MACtO,MAAMm4H,GAAUo2B,IAAsB,IAAI/wB,KAAgB5rM,KAAM,GAChEumM,GAAQ+C,QAAS,EACjB/C,GAAQrjM,IAAMy/J,EACd4jC,GAAQjiE,iBAAmBm4F,EAC3Bl2B,GAAQ+4B,oBAAsBF,GAC9B74B,GAAQg5B,qBAAuBF,GAC/B94B,GAAQyG,eAAiBhtM,KAAKg8N,kBAAkB9wB,KAAiBuxB,GAC5Dz8N,KAAKw/N,0BACNj5B,GAAQk5B,WAAa7C,GACrBr2B,GAAQm5B,OAASlwM,EACjB+2K,GAAQlmD,QAAUjyE,IAEtB,MAAMwzH,GAAUj/B,EAAQhhF,YAAY,KAGpC,GAAkB,UAFAi7I,KAAoCh7B,IAAU,EAAKj/B,EAAQlhF,UAAUmgH,IAASpsL,cAAgB,KAEtF,CACtB,MAAMmqN,GAAcl6N,KAChB,MAAMS,MAAO05N,OAAWn6N,IACxB8gM,GAAQ9rK,MAAQv0B,GAAKu0B,MACrB8rK,GAAQ7rK,OAASx0B,GAAKu0B,SACtBolM,OAAmBt5B,GAASrgM,IAC5B,MAAM45N,GAAe55N,GAAK65N,SAC1B,IAAKD,GACD,MAAM,IAAIx6M,MAAO,8BAErBihL,GAAQ+4B,oBAAsBQ,GAAaE,mBAC3C,MAAMC,MAAYC,OAAgCz6N,GAAMS,IACxDqgM,GAAQh3K,OAAS,EACjBg3K,GAAQn0L,KAAO,EACfm0L,GAAQjiE,iBAAkB,EAC1BiiE,GAAQp2B,YAAYguD,0BAA0BgC,KAAQC,uBAAwB75B,IAC9EA,GAAQ85B,SAAU,EAClB95B,GAAQE,SAAU,EAClBzmM,KAAKqxK,QAAQivD,wBAAwB/5B,GAAQwF,iBAAiB7F,mBAAoB+5B,IAAW,EAAO15B,GAAQyG,eAAgB,KACxHzG,GAAQxS,SAAU,EACd2oC,GACAA,GAAO,EAEZ,KACC,MAAM,IAAIp3M,MAAM,wCAAuC,EAC1D,EAEL,GAAI8oD,GACAuxJ,GAAWvxJ,QAEV,IAAI5+C,GAA0B,IAAjBA,EAAM9Z,OACpB,MAAM,IAAI4P,MAAO,gDAQjBtlB,KAAK+0L,UAAUpyB,EAAUl9J,KACrBk6N,GAAW,IAAI94L,WAAWphC,GAAM,EAAGA,GAAKmnE,YAAW,OACpD/pE,OAAWA,GAAW,EAPD06N,CAAC7+M,GAASusM,MAC1B16B,GAAW7xK,IACX6xK,EAAQ7xK,GAAQ8xB,OAAS,IAAM9xB,GAAQ6hN,WAAYtV,GAAS,EAMxE,CACJ,KACK,CACD,IAAKz7L,GAA0B,IAAjBA,EAAM9Z,OAChB,MAAM,IAAI4P,MAAM,wDAIpB3N,QAAQyE,IADe,CAACoT,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IACrDnpB,IAAKopB,IAASzvB,KAAKwgO,eAAe/wM,QAAM5sB,GAAW,GAAMxC,KAAMoF,IAAS,IAAIohC,WAAWphC,GAAM,EAAGA,GAAKmnE,eAC3HvsE,KAAMoF,IACA,IAAIkS,QAAQ,CAACC,GAASiwD,MACzB7nE,KAAKqxK,QAAQovD,gBAAgBl6B,GAAQwF,iBAAiB7F,mBAAoBzgM,IAAOg3N,GAAU,EAAMl2B,GAAQyG,eAAgBp1L,GAASiwD,GAAM,IAG3IxnE,KAAK,KACNkmM,GAAQxS,SAAU,EACd2oC,GACAA,GAAO,EAEXj1N,KACI8oL,GACAA,EAAS,2BAA0B9oL,GAAMkkC,UAAWlkC,GAAK,EAGrE,CACA,OAAAzH,KAAKitM,uBAAuBhvL,KAAKsoL,IAC1BA,EACX,CAEAm6B,yBACI,OAAO,IAAI7jB,GAAsB78M,KAAKk7N,iBAAkBl7N,KAAKqxK,QACjE,CAEAm5B,mCAAmCmS,EAASrT,EAAQjwK,GAChD,MAAMkvK,EAAY,IAAI6T,GAA0BO,EAASrT,EAAQjwK,EAAMr5B,MACvE,OAAAA,KAAK2gO,0BAA0B1iN,KAAKsqL,GAC7BA,CACX,CAEAq4B,uBAAuBvnM,EAAM9M,EAASs0M,GAA2B,EAAM54L,EAAS,GAC5E,IAMI13B,GANA+zH,GAAkB,EAClBlyH,EAAO,EACPyzK,GAAe,EACft2J,GAAS,EACT27K,IAAgB,EAChBlB,GAAU,OAEEnnM,IAAZ0pB,GAA4C,iBAAZA,GAChC+3G,IAAoB/3G,EAAQ+3G,gBAC5BlyH,OAAwBvP,IAAjB0pB,EAAQna,KAAqB,EAAIma,EAAQna,KAChDyzK,QAAwChjL,IAAzB0pB,EAAQs5J,aAA6B,EAAIt5J,EAAQs5J,aAChEt2J,QAA4B1sB,IAAnB0pB,EAAQgD,OAAuB,EAAIhD,EAAQgD,OACpD27K,QAA0CroM,IAA1B0pB,EAAQ2+K,eAAsC3+K,EAAQ2+K,cACtElB,GAAUz9K,EAAQy9K,SAAW,EAC7Bz5L,GAAQgc,EAAQhc,OAGhB+zH,IAAoB/3G,EAExB2+K,GAAgBlrM,KAAKg8N,kBAAkB9wB,IAAgB5mE,IAC1C,IAATlyH,IAAepS,KAAKorM,MAAMC,6BAIZ,IAATj5L,IAAepS,KAAKorM,MAAME,mCAE/BzlB,GAAe,GAEN,IAATzzK,IAAepS,KAAKorM,MAAMI,eAC1Bp5L,EAAO,EACPwuJ,KAAOC,KAAK,+EAEhB,MAAM0lC,GAAU,IAAIqF,KAAgB5rM,KAAMioC,GACpCxN,GAAQpB,EAAKoB,OAASpB,EACtBqB,GAASrB,EAAKqB,QAAUrB,EACxBixK,GAASjxK,EAAKixK,QAAU,EAC9B,GAAe,IAAXA,GACA,MAAM,IAAIhlL,MAAM,sDAEpB,MAAM+2M,GAAgB91B,GAAQwF,iBAAiB7F,mBACzC46B,GAAsB3jB,GAAuB5tL,GAAQnd,GAE3D,OAAApS,KAAKqxK,QAAQ0vD,kBAAkB1E,GAAe5hM,GAAOC,GAAQ4pG,EAAiBw8F,IAAqB,EAAM51B,GAAelB,IACxHhqM,KAAKm8N,oBAAoBE,GAAepc,GAAsBp6B,KAC9D0gB,GAAQyG,eAAiB9B,GACzB3E,GAAQuG,UAAYryK,GACpB8rK,GAAQwG,WAAaryK,GACrB6rK,GAAQ9rK,MAAQA,GAChB8rK,GAAQ7rK,OAASA,GACjB6rK,GAAQ9hE,MAAQ6lE,GAChB/D,GAAQxS,SAAU,EAClBwS,GAAQyD,QAAUA,GAClBzD,GAAQjiE,gBAAkBA,EAC1BiiE,GAAQ1gB,aAAeA,GACvB0gB,GAAQn0L,KAAOA,EACfm0L,GAAQh3K,OAASA,GACjBg3K,GAAQh2L,MAAQA,GAChBvQ,KAAKitM,uBAAuBhvL,KAAKsoL,IAC1BA,EACX,CACAy6B,0BAA0B3nM,EAAM9M,GAC5B,MAAMg8K,EAAYvoM,KAAKwqM,oCAAmC,GAAO,EAAOnxK,GACxE,IAGI4nM,GAHAt3B,GAAsB,EACtBC,GAAwB,EACxBs3B,GAAoB,EAEpBl3B,GAAU,OACEnnM,IAAZ0pB,GAA4C,iBAAZA,IAChCo9K,EAAsBp9K,EAAQo9K,sBAAuB,EACrDC,IAA0Br9K,EAAQq9K,sBAClCs3B,IAAsB30M,EAAQ20M,kBAC9BD,GAAkB10M,EAAQ00M,gBAC1Bj3B,GAAUz9K,EAAQy9K,SAAW,GAEjC,MAAMzD,GAAU06B,KAAoBC,EAAoB,KAAOlhO,KAAK4gO,uBAAuBvnM,EAAM9M,GAAS,EAAM,IAG1Go+K,GAAc3qM,KAAKqxK,QAAQmtD,kBAAkBj4B,GAAUA,GAAQwF,iBAAiB7F,mBAAqB,KAF7F7sK,EAAKoB,OAASpB,EACbA,EAAKqB,QAAUrB,EACkGuwK,EAAuBD,EAAqBK,IAC5KzB,SAAUS,aAAe2B,GACzBpC,EAAUuC,qBAAuBnB,EACjCpB,EAAUwC,uBAAyBnB,EACnCrB,EAAU+G,SAAWtF,GACrBzB,EAAUiG,YAAYjI,IACfgC,CACX,CACA44B,qCAAqC54B,EAAWyB,GAC5CppC,YAAOC,KAAK,kEACL0nC,EAAUyB,OACrB,CACAm0B,0BAA0Bt4C,EAAc0gB,GACpC,GAAIA,EAAQwF,iBAAkB,CAC1B,MAAM/kM,EAASi5M,GAAsBp6B,GACrC7lL,KAAKm8N,oBAAoB51B,EAAQwF,iBAAiB7F,mBAAoBl/L,EAC1E,CACAu/L,EAAQ1gB,aAAeA,CAC3B,CACAgjB,gBAAgBtC,EAASna,EAAW8lC,EAAeC,EAAgBiP,GAC/D,MAAM7C,EAAkBh4B,EAKxB,GAJIvmM,KAAK0oM,sBACL1oM,KAAKosI,kBAAkBpsI,KAAK0oM,sBAEhC1oM,KAAK0oM,qBAAuBnC,EACxBna,EACA,MAAM,IAAI9mK,MAAM,+DAEpB,GAAI4sM,GAAiBC,EACjB,MAAM,IAAI7sM,MAAM,8EAGhBtlB,KAAKwpM,wBADL+0B,EAAgB/hB,yBACa+hB,EAAgB/hB,yBAGhB+hB,EAAgBv1B,aAErD,CACA58D,kBAAkBm6D,EAASiC,GAAyB,EAAOC,GAEvDzoM,KAAK0oM,qBAAuB,KACxBD,GACAA,IAEJzoM,KAAKwpM,wBAAwB,KACjC,CACA63B,0BAA0B57N,GACtB,OAAOzF,KAAKotN,mBAAmB3nN,GAAM,EACzC,CACA67N,yBAAyB7T,EAAax/B,EAAShwG,EAAS,GACpD,MAAM7P,EAASq/I,EACThoN,EAAOzF,KAAKitN,oBAAoBh/B,GACtC7/G,EAAO8+I,SAAsC,IAA3BznN,EAAKytE,kBACvBlzE,KAAKqxK,QAAQiwD,yBAAyBlzJ,EAAO++I,kBAAmB1nN,EAAK2oE,OAAQ3oE,EAAK4oE,WAAY5oE,EAAKmnE,WAAYqR,EACnH,CACAsjJ,0BAA0BxT,EAActoN,EAAM4oE,EAAa,EAAGzB,GAC1D,MAAMwB,EAAS2/I,EACTyT,EAAW/7N,aAAgB6X,MAAQ,IAAIuwJ,aAAapoK,GAAQA,aAAgBqnE,YAAc,IAAIjmC,WAAWphC,GAAQA,EACjHg8N,GAAW,IAAI56L,WAAW26L,EAASpzJ,OAAQozJ,EAASnzJ,WAAYzB,GAAc40J,EAAS50J,YAC7F5sE,KAAKqxK,QAAQkwD,0BAA0BnzJ,EAAOk/I,mBAAoBmU,GAASrzJ,OAAQqzJ,GAASpzJ,WAAYozJ,GAAS70J,WAAYyB,EACjI,CAKAqzJ,YAAYC,EAASp7B,EAASq7B,GAAuB,EAAOC,GAAsB,GAC9E,MAAMppB,EAAUz4M,KAAK8xN,eAAe6P,GACpC,IAAKlpB,EACD,OAAO,EAGX,IAAKlS,EACD,OAAyC,MAArCvmM,KAAK8hO,oBAAoBH,KACzB3hO,KAAK+hO,eAAiBJ,EACtB3hO,KAAK8hO,oBAAoBH,GAAW,KACpC3hO,KAAKgiO,oBAAoBvpB,KAEtB,EAGX,GAAIlS,EAAQC,MACRxmM,KAAK+hO,eAAiBJ,EACtBp7B,EAAQzjI,cAAO,GAEiB,IAA3ByjI,EAAQ07B,eAEb17B,SAAQ27B,aACD,EAEX,IAAIjE,EAoBJ,OAlBIA,EADA4D,EACkBt7B,EAAQs7B,oBAErBt7B,EAAQxS,UACKwS,EAAQ47B,qBAErB57B,EAAQ+C,OACKtpM,KAAKoiO,iBAElB77B,EAAQgD,KACKvpM,KAAKqiO,eAElB97B,EAAQoG,UACK3sM,KAAKsiO,oBAGLtiO,KAAKuiO,aAE3BviO,KAAK+hO,eAAiBJ,KACjB1D,IAAoBA,EAAgBlyB,mBAGzC/rM,KAAKwiO,oBAAoBvE,EAAgBlyB,iBAAiB7F,mBAAoB4a,GAAqBva,EAAQk8B,OAAQ3hB,GAAqBva,EAAQm8B,OAAQ5hB,GAAqBva,EAAQo8B,QACrL3iO,KAAK4iO,wBAAwBr8B,GAC7BvmM,KAAK6iO,kBAAkBpqB,EAASwlB,EAAgBlyB,iBAAiB7F,oBAC1D,GACX,CAEAi2B,oBAAoB51B,EAASv/L,GACzBhH,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO8gC,4BAC/D9iO,KAAKqlN,sBAAsBP,6BAA6Bve,GACxDvmM,KAAKqlN,sBAAsBd,yBAAyBv9M,GACpDhH,KAAKqlN,sBAAsBN,uBAC/B,CAEAyd,oBAAoBj8B,EAASw8B,EAAcC,EAAcC,GACrDjjO,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOkhC,4BAC/DljO,KAAKqlN,sBAAsBP,6BAA6Bve,GACxDvmM,KAAKqlN,sBAAsBd,yBAAyBwe,GACpD/iO,KAAKqlN,sBAAsBd,yBAAyBye,GACpDhjO,KAAKqlN,sBAAsBd,yBAAyB0e,GACpDjjO,KAAKqlN,sBAAsBN,uBAC/B,CACA8d,kBAAkBpqB,EAASlS,GACvBvmM,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOmhC,oBAC/DnjO,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBP,6BAA6Bve,GACxDvmM,KAAKqlN,sBAAsBN,uBAC/B,CACAid,oBAAoBvpB,GACXnH,QAAQtP,OAAOohC,uBAGpBpjO,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOohC,sBAC/DpjO,KAAKqlN,sBAAsBP,6BAA6BrM,GACxDz4M,KAAKqlN,sBAAsBN,wBAC/B,CAGA6d,wBAAwBr8B,GACpB,MAAM03B,EAAkB13B,EAAQ47B,qBAC1B5vN,EAAQg0L,EAAQ88B,2BACjBpF,IAAoBA,EAAgBlyB,kBAGrCkyB,EAAgBqF,mCAAqC/wN,IACrDvS,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAOuhC,oCAC/DvjO,KAAKqlN,sBAAsBP,6BAA6BmZ,EAAgBlyB,iBAAiB7F,oBACzFlmM,KAAKqlN,sBAAsBd,yBAAyBhyM,GACpDvS,KAAKqlN,sBAAsBN,wBAC3BkZ,EAAgBqF,iCAAmC/wN,EAE3D,CAIAixN,aAAa7B,EAASp7B,GAClB,MAAMkS,EAAUz4M,KAAK8xN,eAAe6P,GAC/BlpB,IAGDlS,GAAWA,EAAQwF,iBAEnB/rM,KAAK6iO,kBAAkBpqB,EADIlS,EAAQwF,iBAAiB7F,oBAIpDlmM,KAAKgiO,oBAAoBvpB,GAEjC,CAIAgrB,oBACSnyB,QAAQtP,OAAO0hC,6BAGpB1jO,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO0hC,4BAC/D1jO,KAAKqlN,sBAAsBN,wBAC/B,CACA4e,cAAcv1J,GACNA,EAAO++I,oBACPntN,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO4hC,2BAC/D5jO,KAAKqlN,sBAAsBP,6BAA6B12I,EAAO++I,mBAC/DntN,KAAKqlN,sBAAsBN,+BACpB32I,EAAO++I,mBAEd/+I,EAAOk/I,qBACPttN,KAAKqlN,sBAAsBf,qBAAqBhT,QAAQtP,OAAO6hC,4BAC/D7jO,KAAKqlN,sBAAsBP,6BAA6B12I,EAAOk/I,oBAC/DttN,KAAKqlN,sBAAsBN,+BACpB32I,EAAOk/I,mBAEtB,CAOA/lB,aAAa9sK,EAAOC,GAChB,IAAK42K,QAAQn2B,OACT,MAAM,IAAI71J,MAAM,uCAEpB,MAAMiV,EAAS,IAAI+2K,QAAQn2B,OAC3B5gJ,SAAOE,MAAQA,EACfF,EAAOG,OAASA,EACTH,CACX,CAKAqkM,oBACI,IAAKttB,QAAQn2B,OACT,MAAM,IAAI71J,MAAM,uCAGpB,OADc,IAAIgsL,QAAQ1yB,KAE9B,CAaAklD,kBAAkBv9B,EAAS05B,EAAW8D,EAASC,EAASvpM,EAAOC,EAAQ0xJ,GAAY,EAAG63C,GAAM,EAAG3/F,IAAkB,GAC7G,MAAM,IAAIh/G,MAAM,qCACpB,CAIA4+M,uCAAuC39B,EAASM,EAAgBpsK,EAAOC,EAAQj1B,EAAM2mL,EAAY,EAAG63C,GAAM,GACtG,MAAM,IAAI3+M,MAAM,0DACpB,CAIA6+M,6BAA6B59B,EAAS05B,EAAW7zC,EAAY,EAAG63C,EAAM,GAClE,MAAM,IAAI3+M,MAAM,gDACpB,CAIA8+M,gCAAgC79B,EAAS05B,EAAW7zC,EAAY,EAAG63C,EAAM,GACrE,MAAM,IAAI3+M,MAAM,mDACpB,CAIA++M,sBAAsB99B,EAAS3lL,EAAOwrK,EAAY,EAAG63C,EAAM,GACvD,MAAM,IAAI3+M,MAAM,mDACpB,CACAg/M,cAAcC,GAGV,MADe,CAAEC,OAAQ,EAAG9pM,OAAQ,EAAG+pM,QAAS,EAEpD,CAIA3jC,mBAAqB,CACrB4jC,mBAAmBn+B,EAAS9rK,EAAOC,EAAQ0xJ,EAAW5sG,EAAOpR,EAAQu2J,GAAgBC,GAAmBhyN,GAAG4P,IACvG,QAAkB3f,IAAdupL,IAAyC,IAAdA,EAC3B,MAAM,IAAI9mK,MAAO,4DAA2D8mK,MAEhF,OAAOpsL,KAAKqxK,QACPwzD,YAAYt+B,EAAQwF,kBAAkB7F,mBAAoB1mH,GAAS,EAAG5sE,IAAK,EAAG4P,IAAK,EAAGiY,EAAOC,EAAQ0zC,GAAQA,QAAU,KAAMA,GAAQC,YAAc,EAAGD,GAAQxB,YAAc,GAC5KvsE,KAAMykO,KACF12J,IACDA,EAAS,IAAIvnC,WAAWi+L,KAErB12J,GAEf,EAGJ41I,SAAaqC,iBAAmB,EAl8DnBrC,CAAY,KCtHzBA,GAAaC,wBAA0B,WACnC,OAAI3S,QAAQR,iBAAiBi0B,mBAClB,IAAIC,GAGJ,IAAIl0B,EAEnB,EAIO,MAAMk0B,WAAkCl0B,GAC3CjxM,cACIgE,OACJ,CACA2tM,YAAYj/L,GACR1O,MAAM2tM,YAAYF,QAAQR,iBAAiBm0B,oBAC3CphO,MAAM2tM,YAAYj/L,EACtB,CACAm/L,WAAWn/L,GACP1O,MAAM2tM,YAAYF,QAAQR,iBAAiBo0B,mBAC3CrhO,MAAM6tM,WAAWn/L,EACrB,CACAo/L,aAAap/L,GACT1O,MAAM2tM,YAAYF,QAAQR,iBAAiBq0B,qBAC3CthO,MAAM8tM,aAAap/L,EACvB,CACAq/L,iBAAiBpjK,GACb3qC,MAAM2tM,YAAYF,QAAQR,iBAAiBs0B,0BAC3CvhO,MAAM+tM,iBAAiBpjK,EAC3B,CACAqjK,gBAAgBrjK,GACZ3qC,MAAM2tM,YAAYF,QAAQR,iBAAiBu0B,yBAC3CxhO,MAAMguM,gBAAgBrjK,EAC1B,CACAsjK,kBAAkBtjK,GACd3qC,MAAM2tM,YAAYF,QAAQR,iBAAiBw0B,2BAC3CzhO,MAAMiuM,kBAAkBtjK,EAC5B,CACAujK,gBAAgBvuM,GACZK,MAAM2tM,YAAYF,QAAQR,iBAAiBy0B,wBAC3C1hO,MAAMkuM,gBAAgBvuM,EAC1B,CACAwuM,aAAaz/L,GACT1O,MAAM2tM,YAAYF,QAAQR,iBAAiB00B,oBAC3C3hO,MAAMmuM,aAAaz/L,EACvB,kBC7CG,MAAMkzN,GACT,6BAAOC,CAAuBjrM,EAAOC,GACjC,SAAOirM,UAAMpoN,KAAKk/B,IAAIhiB,EAAOC,IAAW,CAC5C,CACA,+BAAOkrM,CAAyBr2M,GAC5B,OAAQA,GAEJ,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,kBACL,IAAK,YACL,IAAK,aACL,IAAK,kBACL,IAAK,cACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,iBACL,IAAK,sBACL,IAAK,kBACL,IAAK,eACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,cACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,mBACL,IAAK,wBACL,IAAK,kBACL,IAAK,uBACL,IAAK,eACL,IAAK,gBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,kBACL,IAAK,uBACL,IAAK,kBACL,IAAK,uBACL,IAAK,kBACL,IAAK,uBACL,IAAK,mBACL,IAAK,wBACL,IAAK,mBACL,IAAK,wBACL,IAAK,mBACL,IAAK,wBACL,IAAK,WACD,OAAO,EAEX,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,YACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,eACL,IAAK,gBACD,OAAO,EAEX,IAAK,UACL,IAAK,WACL,IAAK,aACL,IAAK,eACD,OAAO,EAEX,IAAK,UACL,IAAK,WACL,IAAK,aACD,OAAO,EACX,IAAK,WACL,IAAK,YACL,IAAK,cACD,OAAO,EAEX,IAAK,UACL,IAAK,WACL,IAAK,aAGL,IAAK,UACL,IAAK,WACL,IAAK,aACD,OAAO,EACX,IAAK,WACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,wBACL,IAAK,cACL,IAAK,uBACD,OAAO,EAEf,OAAO,CACX,CACA,oCAAOs2M,CAA8Bt2M,GACjC,OAAQA,GAEJ,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,SACD,MAAO,CAAEkL,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,GAE1C,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,UAsCL,IAAK,eACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,GApC1C,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,aACL,IAAK,kBACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,kBACL,IAAK,eACL,IAAK,cACL,IAAK,eACL,IAAK,gBA2BL,IAAK,eACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,GAzB1C,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,aACL,IAAK,aACL,IAAK,cACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,GAE1C,IAAK,aACL,IAAK,aACL,IAAK,cACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,IAE1C,IAAK,WAED,KAAM,qCAGV,IAAK,cAED,KAAM,wCACV,IAAK,uBAED,KAAM,gDAGV,IAAK,wBACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,GAG1C,IAAK,iBACL,IAAK,sBACL,IAAK,kBACL,IAAK,iBACL,IAAK,eACL,IAAK,eACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBAgBL,IAAK,kBACL,IAAK,uBACL,IAAK,gBACL,IAAK,gBAIL,IAAK,iBACL,IAAK,sBACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,IAvB1C,IAAK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,sBAIL,IAAK,iBACL,IAAK,sBACL,IAAK,mBACL,IAAK,wBACL,IAAK,eACL,IAAK,eACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,GAW1C,IAAK,iBACL,IAAK,sBACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,IAC1C,IAAK,iBACL,IAAK,sBACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,IAC1C,IAAK,iBACL,IAAK,sBACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,IAC1C,IAAK,iBACL,IAAK,sBACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,IAC1C,IAAK,iBACL,IAAK,sBACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,IAC1C,IAAK,iBACL,IAAK,sBACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,IAC1C,IAAK,iBACL,IAAK,sBACD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,IAC1C,IAAK,kBACL,IAAK,uBACD,MAAO,CAAE+kB,MAAO,GAAIC,OAAQ,EAAGhlB,OAAQ,IAC3C,IAAK,kBACL,IAAK,uBACD,MAAO,CAAE+kB,MAAO,GAAIC,OAAQ,EAAGhlB,OAAQ,IAC3C,IAAK,kBACL,IAAK,uBACD,MAAO,CAAE+kB,MAAO,GAAIC,OAAQ,EAAGhlB,OAAQ,IAC3C,IAAK,mBACL,IAAK,wBACD,MAAO,CAAE+kB,MAAO,GAAIC,OAAQ,GAAIhlB,OAAQ,IAC5C,IAAK,mBACL,IAAK,wBACD,MAAO,CAAE+kB,MAAO,GAAIC,OAAQ,GAAIhlB,OAAQ,IAC5C,IAAK,mBACL,IAAK,wBACD,MAAO,CAAE+kB,MAAO,GAAIC,OAAQ,GAAIhlB,OAAQ,IAEhD,MAAO,CAAE+kB,MAAO,EAAGC,OAAQ,EAAGhlB,OAAQ,EAC1C,CACA,wBAAOowN,CAAkBv/B,GACrB,QAASA,EAAQ0W,OACrB,CACA,wBAAO8oB,CAAkBx/B,GACrB,QAASA,EAAQ9kJ,OACrB,CACA,oBAAOukL,CAAcnH,GACjB,YAA6Bh8N,IAAtBg8N,EAAYjoM,KACvB,CACA,yBAAOqvM,CAAmBpH,GACtB,OAAOvhN,MAAMqnB,QAAQk6L,SAAyCh8N,IAAzBg8N,EAAY,GAAGjoM,KACxD,CACA,yBAAOsvM,CAAmB32M,GACtB,OAAQA,GACJ,IAAK,sBACL,IAAK,iBACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,cACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,iBACL,IAAK,sBACL,IAAK,mBACL,IAAK,wBACL,IAAK,kBACL,IAAK,uBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,kBACL,IAAK,uBACL,IAAK,kBACL,IAAK,uBACL,IAAK,kBACL,IAAK,uBACL,IAAK,mBACL,IAAK,wBACL,IAAK,mBACL,IAAK,wBACL,IAAK,mBACL,IAAK,wBACD,OAAO,EAEf,OAAO,CACX,CACA,6BAAO42M,CAAuB/zN,EAAMmd,EAAQ27K,GAAgB,GACxD,OAAQ37K,GACJ,KAAK,GACD,MAAO,eACX,KAAK,GACD,MAAO,cACX,KAAK,GACD,MAAO,uBACX,KAAK,GACD,MAAO,eACX,KAAK,GACD,MAAO,wBACX,KAAK,GACD,MAAO,WACX,KAAK,MACD,OAAO27K,EAAgB,sBAA6E,iBACxG,KAAK,MACD,MAAO,kBACX,KAAK,MACD,MAAO,iBACX,KAAK,MACD,OAAOA,EAAgB,sBAA6E,iBACxG,KAAK,MACD,OAAOA,EAAgB,sBAA6E,iBACxG,KAAK,MACL,KAAK,MACD,OAAOA,EAAgB,sBAA6E,iBACxG,KAAK,MACD,OAAOA,EAAgB,sBAA6E,iBACxG,KAAK,MACL,KAAK,MACD,OAAOA,EAAgB,sBAA8E,iBACzG,KAAK,MACD,OAAOA,EAAgB,uBAAgF,kBAE/G,OAAQ94L,GACJ,KAAK,EACD,OAAQmd,GACJ,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,WACX,KAAK,EAED,KAAM,qCACV,KAAK,EACD,MAAO,SACX,KAAK,EACD,MAAO,UACX,KAAK,GAED,KAAM,6CACV,KAAK,GACD,MAAO,YACX,QACI,MAAO,aAEnB,KAAK,EACD,OAAQA,GACJ,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,WACX,KAAK,EAED,KAAM,mDACV,KAAK,EACD,OAAO27K,EAAgB,kBAAuE,aAClG,KAAK,GACD,OAAOA,EAAgB,kBAAuE,aAClG,KAAK,EACD,MAAO,SACX,KAAK,EACD,MAAO,UACX,KAAK,GAED,KAAM,6CACV,KAAK,GACD,MAAO,YACX,KAAK,EAED,KAAM,qDACV,KAAK,EAED,KAAM,yDACV,KAAK,EAED,KAAM,+DACV,QACI,MAAO,aAEnB,KAAK,EACD,OAAQ37K,GACJ,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,WACX,KAAK,GAED,KAAM,2DAGV,QACI,MAAO,aAEnB,KAAK,EACD,OAAQA,GACJ,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,WACX,KAAK,GAED,KAAM,2DAGV,QACI,MAAO,aAEnB,KAAK,EACD,OAAQA,GACJ,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,WACX,KAAK,GAED,KAAM,2DAGV,QACI,MAAO,aAEnB,KAAK,EACD,OAAQA,GACJ,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,WACX,KAAK,GAED,KAAM,2DAGV,QACI,MAAO,aAEnB,KAAK,EACD,OAAQA,GACJ,KAAK,EACD,MAAO,WACX,KAAK,EACD,MAAO,YACX,KAAK,EAED,KAAM,mDAGV,QACI,MAAO,cAEnB,KAAK,EACD,OAAQA,GACJ,KAAK,EACD,MAAO,WACX,KAAK,EACD,MAAO,YACX,KAAK,EAED,KAAM,mDAGV,QACI,MAAO,cAEnB,KAAK,GAED,KAAM,kEACV,KAAK,GACD,OAAQA,GACJ,KAAK,EAKL,QACI,MAAO,gBAJX,KAAK,GAED,KAAM,kHAIlB,KAAK,GACD,OAAQA,GACJ,KAAK,EAKL,QACI,MAAO,eAJX,KAAK,GAED,KAAM,8GAIlB,KAAK,EAED,KAAM,oEACV,KAAK,EAED,KAAM,oEACV,KAAK,GACD,OAAQA,GACJ,KAAK,EAIL,QACI,MAAO,eAHX,KAAK,GACD,MAAO,eAKvB,OAAO27K,EAAgB,kBAAuE,YAClG,CACA,4CAAOk7B,CAAsC72M,GACzC,OAAQA,GACJ,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,cACL,IAAK,cACL,IAAK,UACL,IAAK,UACL,IAAK,eACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,eACL,IAAK,WACL,IAAK,cACL,IAAK,eACL,IAAK,eACD,OAAO,EACX,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,wBACL,IAAK,eACL,IAAK,eACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,uBACL,IAAK,gBACL,IAAK,gBACD,OAAO,EACX,IAAK,eACL,IAAK,gBACL,IAAK,kBACL,IAAK,iBACL,IAAK,iBACL,IAAK,sBACD,OAAO,EACX,IAAK,aACL,IAAK,kBACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,kBACL,IAAK,cACL,IAAK,eACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,aACL,IAAK,aACL,IAAK,cACL,IAAK,aACL,IAAK,aACL,IAAK,cACL,IAAK,mBACL,IAAK,wBACL,IAAK,kBACL,IAAK,uBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,iBACL,IAAK,sBACL,IAAK,kBACL,IAAK,uBACL,IAAK,kBACL,IAAK,uBACL,IAAK,kBACL,IAAK,uBACL,IAAK,mBACL,IAAK,wBACL,IAAK,mBACL,IAAK,wBACL,IAAK,mBACL,IAAK,wBACD,OAAO,EAGf,KAAO,kBAAiBA,IAC5B,CACA,uBAAO82M,CAAiB92M,GACpB,OAAQA,GACJ,IAAK,WACL,IAAK,wBACL,IAAK,uBACD,OAAO,EAEf,OAAO,CACX,CACA,gCAAO+2M,CAA0B/2M,GAC7B,OAAQA,GACJ,IAAK,wBACL,IAAK,uBACD,OAAO,EAEf,OAAO,CACX,CACA,yBAAOg3M,CAAmBh3M,GACtB,OAAQA,GACJ,IAAK,eACD,MAAO,eACX,IAAK,cAEL,IAAK,uBACD,MAAO,cACX,IAAK,eAEL,IAAK,wBACD,MAAO,eAEf,OAAOA,CACX,CACA,gBAAOi3M,CAAUC,GAEb,OAAOA,EAAc,EAAI,EAAI,CACjC,kBC3qBG,MAAMC,WAAyBjlD,KAClC5hL,cACIgE,SAAS4Y,WAGTzc,KAAK2mO,mBAAoB,EAEzB3mO,KAAK4mO,iBAAkB,EAEvB5mO,KAAK6mO,wBAA0B,GAE/B7mO,KAAK8mO,wBAAyB,EAE9B9mO,KAAK+mO,+BAAgC,EAErC/mO,KAAKgnO,8BAA+B,EAEpChnO,KAAKinO,mBAAqB,KAC1BjnO,KAAKknO,uBAAyB,EAE9BlnO,KAAKmnO,gBAAkB,CAC3B,CAKA,+BAAIC,GACA,OAAOpnO,KAAKqnO,gBAAgBr3L,MAChC,CACA,+BAAIo3L,CAA4Bp3L,GACxBhwC,KAAKqnO,gBAAgBr3L,SAAWA,IAGpChwC,KAAKsnO,0BAA4Bt3L,EAAS,IAAIu3L,UAAsB1kO,EACpE7C,KAAKqnO,gBAAgBr3L,OAASA,EAClC,CACAw3L,yBACI,OAAqC,OAA9BxnO,KAAK0oM,oBAChB,CAEA++B,wBACI,IAAKznO,KAAKinO,mBACN,OAAO,EAEX,MAAMS,EAAmB1nO,KAAKwnO,yBAA2B,EAAI,EAC7D,OAAKxnO,KAAK2nO,mBAAmBC,cAAc5nO,KAAKinO,sBAAwBjnO,KAAK6nO,oBACzE7nO,KAAK8nO,YAAY3/M,IAAInoB,KAAKinO,oBAC1BjnO,KAAK8nO,YAAYz0N,SAErBrT,KAAKinO,mBAAmB9zI,MACxBnzF,KAAKqnO,gBAAgBU,QAAQ/nO,KAAKmnO,gBAAkBnnO,KAAK0oM,sBAAwB1oM,KAAK0oM,qBAAqBs/B,eACrGhoO,KAAK0oM,qBAAqBs/B,eAC1BhoO,KAAKsnO,2BACXtnO,KAAKmnO,iBAAmB,EACpBnnO,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,KAEbjoO,KAAKioO,QAAUjoO,KAAKioO,OAASjoO,KAAK6mO,0BACnCjmE,KAAOqzC,IAAI,UACPj0M,KAAKioO,OACL,OACsB,IAArBP,EAAyB,OAAS,iBACnC,aACsB,IAArBA,EAAyB,+BAAiC1nO,KAAK0oM,sBAAsBnC,SAAS1jB,SAAW,MAGtH7iL,KAAKohM,iBAAiB,GACtBphM,KAAKinO,mBAAqB,KACnBS,CACX,CAIAQ,iBAAiB3hC,EAAS4hC,GAEtB,MAAMC,EAAqB7hC,EAAQwF,iBACnC,IAAKq8B,EACD,QAHJD,EAAiBA,GAAkBnoO,KAAKqoO,kBAKjBroO,KAAKqoO,gBAExBroO,KAAKynO,wBAET,MAAMl4M,EAASg3K,EAAQwF,iBAAiBx8K,OAClC+4M,EAAc7C,GAAoBC,uBAAuBn/B,EAAQ9rK,MAAO8rK,EAAQ7rK,QAClF16B,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,KAEbjoO,KAAKioO,QAAUjoO,KAAKioO,OAASjoO,KAAK6mO,0BACnCjmE,KAAOqzC,IAAI,UACPj0M,KAAKioO,OACL,+BACA1hC,EAAQ9rK,MACR,YACA8rK,EAAQ7rK,OACR,YACA6rK,EAAQ+C,OACR,sBACC6+B,IAAmBnoO,KAAKqoO,eAAiB,SAAW,UAG7D9hC,EAAQ+C,OACRtpM,KAAKuoO,eAAeC,oBAAoBJ,EAAoB74M,EAAQ+4M,EAAaH,GAGjFnoO,KAAKuoO,eAAeE,gBAAgBL,EAAoB74M,EAAQ+4M,EAAa,EAAG/hC,EAAQgD,KAAM4+B,EAEtG,ECjHJzB,GAAiBniM,UAAUi0L,aAAe,SAAU/+M,EAAMg/M,GAAqB,GAC3E,GAAIz4N,KAAK04N,aAAej/M,IAAmB,IAATA,IAAezZ,KAAK86N,YAAY4N,YAAyB,IAATjvN,GAAczZ,KAAK86N,YAAY4N,aAC7G,IAAKjQ,EAAoB,CAErB,MAAMrM,EAAqB,IAAT3yM,EACdzZ,KAAK2oO,kBAAkBvc,YAAcA,IACrCpsN,KAAKm0N,cAAc/H,GACnBpsN,KAAK4oO,qBAAqBC,qBAAqBzc,GAEvD,MARJ,CAWA,OAAQ3yM,GACJ,KAAK,EACDzZ,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,EACD1oO,KAAK86N,YAAYgO,gCAAgC,EAAG,IAAK,EAAG,GAC5D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,EAgDL,KAAK,GACD1oO,KAAK86N,YAAYgO,gCAAgC,EAAG,IAAK,EAAG,KAC5D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MA/CJ,KAAK,EACD1oO,KAAK86N,YAAYgO,gCAAgC,IAAK,IAAK,EAAG,GAC9D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,EACD1oO,KAAK86N,YAAYgO,gCAAgC,EAAG,EAAG,EAAG,GAC1D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,EACD1oO,KAAK86N,YAAYgO,gCAAgC,IAAK,EAAG,EAAG,GAC5D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,EACD1oO,KAAK86N,YAAYgO,gCAAgC,EAAG,IAAK,EAAG,GAC5D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,EACD1oO,KAAK86N,YAAYgO,gCAAgC,IAAK,EAAG,EAAG,GAC5D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,EACD1oO,KAAK86N,YAAYgO,gCAAgC,IAAK,IAAK,EAAG,GAC9D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,EACD1oO,KAAK86N,YAAYgO,gCAAgC,MAAO,MAAO,MAAO,OACtE9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,GACD1oO,KAAK86N,YAAYgO,gCAAgC,EAAG,IAAK,EAAG,KAC5D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,GACD1oO,KAAK86N,YAAYgO,gCAAgC,EAAG,EAAG,EAAG,GAC1D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,GACD1oO,KAAK86N,YAAYgO,gCAAgC,IAAK,EAAG,EAAG,GAC5D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,GACD1oO,KAAK86N,YAAYgO,gCAAgC,IAAK,IAAK,IAAK,KAChE9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MAKJ,KAAK,GACD1oO,KAAK86N,YAAYgO,gCAAgC,EAAG,EAAG,EAAG,GAC1D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,GACD1oO,KAAK86N,YAAYgO,gCAAgC,IAAK,IAAK,EAAG,GAC9D9oO,KAAK86N,YAAY4N,YAAa,EAC9B,MACJ,KAAK,GAED1oO,KAAK86N,YAAYgO,gCAAgC,IAAK,IAAK,EAAG,KAC9D9oO,KAAK86N,YAAY4N,YAAa,EAGjCjQ,IACDz4N,KAAKm0N,cAAuB,IAAT16M,GACnBzZ,KAAK4oO,qBAAqBC,qBAA8B,IAATpvN,IAEnDzZ,KAAK04N,WAAaj/M,EAClBzZ,KAAK4oO,qBAAqBG,qBAAqB/oO,KAAK86N,YAAY4N,YAChE1oO,KAAK4oO,qBAAqBI,qBAAqBhpO,KAAK86N,YAAYmO,yBAA0BjpO,KAAK86N,YAAYoO,yBAjF3G,CAkFJ,EACAxC,GAAiBniM,UAAU4kM,iBAAmB,SAAUC,GACpD3nD,KAAel9I,UAAU4kM,iBAAiBp4K,KAAK/wD,KAAMopO,GACrDppO,KAAK4oO,qBAAqBI,qBAAqBhpO,KAAK86N,YAAYmO,yBAA0BjpO,KAAK86N,YAAYoO,yBAC/G,ECnGO,IAiCIG,GACV,SAAUA,GACPA,SAAYA,EAAYC,QAAa,GAAK,UAC1CD,EAAYA,EAAYE,SAAc,GAAK,WAC3CF,EAAYA,EAAYG,QAAa,GAAK,UAC1CH,EAAYA,EAAYI,QAAa,GAAK,UAC1CJ,EAAYA,EAAYK,MAAW,IAAM,QACzCL,EAAYA,EAAYM,OAAY,IAAM,SAC1CN,EAAYA,EAAYO,QAAa,IAAM,UAC3CP,EAAYA,EAAYQ,QAAa,KAAO,UAC5CR,EAAYA,EAAYS,SAAc,KAAO,WAC7CT,EAAYA,EAAYU,aAAkB,KAAO,eAV1CV,CAWX,CAXC,CAWEA,IAA8B,CAAC,eC9C3B,IAAMW,GAAqB,MAA3B,MAAMA,EACTnqO,cACIG,KAAKw2M,eAAiB,CAC1B,CACAyzB,yBAAyB1jO,EAAM2jO,EAAaC,GACxC,IAAIz0N,EAAS,GACZnP,EAAM2jO,EAAax0N,GAAU1V,KAAKoqO,cAAc7jO,EAAM2jO,EAAaC,GACpE,QAAS1sN,EAAI,EAAGA,EAAIzd,KAAKqqO,yBAAyBC,iBAAiB50N,OAAQ+H,IACvE,GAAIzd,KAAKqqO,yBAAyBC,iBAAiB7sN,GAAGlX,OAASA,EAC3D,OAGRvG,KAAKqqO,yBAAyBC,iBAAiBrsN,KAAK,CAChD1X,OACA6L,KAAM83N,EACNx0N,UAER,CACA60N,oBACI,IAAKvqO,KAAKqqO,yBAAyBC,iBAAiB50N,OAChD,MAAO,GAEX,MAAMnP,EAAOyjO,EAAsBQ,iBACnC,IAAIC,EAAezqO,KAAKqqO,yBAAyBK,iBAAiBnkO,GAClE,OAAKkkO,IACDA,EAAe,CACXE,QAAS3qO,KAAKqqO,yBAAyBO,yBAE3C5qO,KAAKqqO,yBAAyBK,iBAAiBnkO,GAAQkkO,EACvDzqO,KAAK6qO,6BAA6BtkO,EAAMkkO,EAAc,WAA2D,GACjHzqO,KAAK6qO,6BAA6BtkO,EAAMkkO,EAAc,WAA2D,IAE9GzqO,KAAK8qO,yBAAyBvkO,EAAMkkO,EAC/C,CACAM,uBAEI,QAASttN,EAAI,EAAGA,EAAIzd,KAAKqqO,yBAAyBW,uBAAuBt1N,OAAQ+H,IAAK,CAClF,MAAMwtN,EAAgBjrO,KAAKqqO,yBAAyBW,uBAAuBvtN,GAC3E,QAAsB5a,IAAlBooO,EAIJ,QAASrhK,EAAI,EAAGA,EAAIqhK,EAAcv1N,OAAQk0D,IAAK,CAC3C,MAAMxQ,EAAQp5D,KAAKqqO,yBAAyBW,uBAAuBvtN,GAAGmsD,GAChErjE,EAAOvG,KAAKqqO,yBAAyBa,yBAAyBztN,GAAG27C,EAAMuxK,SAASpkO,KAElF6yD,IACIA,EAAMmtI,SAAWntI,EAAM+xK,iBAAmB/xK,EAAMgyK,eAChDprO,KAAKqqO,yBAAyBgB,aAAaptN,KAHtBje,KAAKqqO,yBAAyBa,yBAAyBztN,GAAG27C,EAAMuxK,SAASW,sBAKzFlyK,EAAMmyK,QACXvrO,KAAKqqO,yBAAyBmB,aAAavtN,KAAK1X,GAE3C6yD,EAAMgV,QACXpuE,KAAKqqO,yBAAyBoB,YAAYxtN,KAAK1X,GAG3D,MAlBIvG,KAAKqqO,yBAAyBW,uBAAuBvtN,GAAK,EAmBlE,CACJ,CACAiuN,6BACI,MAAMC,EAAmB3rO,KAAKqqO,yBAAyBsB,iBACvD,QAASluN,EAAI,EAAGA,EAAIzd,KAAKqqO,yBAAyBW,uBAAuBt1N,OAAQ+H,IAAK,CAClF,MAAMwtN,EAAgBjrO,KAAKqqO,yBAAyBW,uBAAuBvtN,GACrEw7C,EAAU,GAChB,QAAS2Q,EAAI,EAAGA,EAAIqhK,EAAcv1N,OAAQk0D,IAAK,CAC3C,MAAMxQ,EAAQp5D,KAAKqqO,yBAAyBW,uBAAuBvtN,GAAGmsD,GAClExQ,EAAMmyK,SAAWnyK,EAAMmtI,SAAWntI,EAAMgyK,gBAAkBhyK,EAAM+xK,gBAChElyK,EAAQh7C,KAAK,CACT0sN,QAASvxK,EAAMuxK,QACfiB,cAAU/oO,IAGTu2D,EAAMgV,QACXnV,EAAQh7C,KAAK,CACT0sN,QAASvxK,EAAMuxK,QACfiB,SAAU,CACNx9J,YAAQvrE,EACRo7E,OAAQ,EACR5kD,KAAM,IAItB,CACAsyM,EAAiBluN,GAAKw7C,CAC1B,CACJ,CACA4yK,8BAA8BtlO,EAAMulO,EAAaC,EAAcC,EAAWz8M,EAAQ08M,GAE9E,IAAMC,cAAYC,iBAAiBL,EAAYl6F,SAASm6F,GAKxD,GAJK/rO,KAAKqqO,yBAAyBW,uBAAuBkB,MACtDlsO,KAAKqqO,yBAAyBW,uBAAuBkB,IAAc,GACnElsO,KAAKqqO,yBAAyBa,yBAAyBgB,IAAc,KAEpElsO,KAAKqqO,yBAAyBa,yBAAyBgB,IAAYC,IAAe,CACnF,IAAItjM,GAEAA,GAAM7oC,KAAKqqO,yBAAyBW,uBAAuBkB,IAAYjuN,KADzD,OAAd+tN,EAC4E,CACxErB,QAASwB,GACTC,WAAY,EACZjB,gBAAiB,CAAC,GAGjB57M,EACuE,CACxEo7M,QAASwB,GACTC,WAAY,EACZhB,eAAgB,CACZiB,OAAQ,aACR98M,SACA+8M,cAAeN,IAKqD,CACxErB,QAASwB,GACTC,WAAY,EACZ7lC,QAAS,CACLgmC,WAAYT,EAAYS,WACxBD,cAAeN,EACfQ,cAAc,KAK1BxsO,KAAKqqO,yBAAyBa,yBAAyBgB,IAAYC,IAAgB,CAAE5lO,OAAMoU,MAAOkuB,GAAM,EAAGyiM,qBADvFQ,EAAYW,eAAiBlmO,EAAOwlO,EAAexlO,EAE3E,CACA4lO,GAAensO,KAAKqqO,yBAAyBa,yBAAyBgB,IAAYC,IAAcxxN,MAE5F3a,KAAKqqO,yBAAyBW,uBAAuBkB,IAAYC,IAAcC,YAD/EH,EAC6F,EAGA,CAErG,CACAS,8BAA8BnmO,EAAMomO,EAAaV,GAE7C,IAAMC,aAAYC,gBAAiBQ,EAAYhC,QAK/C,GAJK3qO,KAAKqqO,yBAAyBW,uBAAuBkB,KACtDlsO,KAAKqqO,yBAAyBW,uBAAuBkB,GAAc,GACnElsO,KAAKqqO,yBAAyBa,yBAAyBgB,GAAc,KAEpElsO,KAAKqqO,yBAAyBa,yBAAyBgB,GAAYC,GAAe,CACnF,MAAMtjM,EAAM7oC,KAAKqqO,yBAAyBW,uBAAuBkB,GAAYjuN,KAAK,CAC9E0sN,QAASwB,EACTC,WAAY,EACZb,QAAS,CACLn5N,KAAMu6N,EAAYv6N,QAG1BpS,KAAKqqO,yBAAyBa,yBAAyBgB,GAAYC,GAAgB,CAAE5lO,OAAMoU,MAAOkuB,EAAM,EAC5G,CACAsjM,EAAensO,KAAKqqO,yBAAyBa,yBAAyBgB,GAAYC,GAAcxxN,MAE5F3a,KAAKqqO,yBAAyBW,uBAAuBkB,GAAYC,GAAcC,YAD/EH,EAC6F,EAGA,CAErG,CACApB,6BAA6BtkO,EAAMqmO,EAAmBC,EAAYZ,GAE9D,IAAMC,aAAYC,gBAAiBS,EAAkBjC,QAKrD,GAJK3qO,KAAKqqO,yBAAyBW,uBAAuBkB,KACtDlsO,KAAKqqO,yBAAyBW,uBAAuBkB,GAAc,GACnElsO,KAAKqqO,yBAAyBa,yBAAyBgB,GAAc,KAEpElsO,KAAKqqO,yBAAyBa,yBAAyBgB,GAAYC,GAAe,CACnF,MAAMtjM,GAAM7oC,KAAKqqO,yBAAyBW,uBAAuBkB,GAAYjuN,KAAK,CAC9E0sN,QAASwB,EACTC,WAAY,EACZh+J,OAAQ,CACJh8D,KAAMy6N,KAGd7sO,KAAKqqO,yBAAyBa,yBAAyBgB,GAAYC,GAAgB,CAAE5lO,OAAMoU,MAAOkuB,GAAM,EAC5G,CACAsjM,EAAensO,KAAKqqO,yBAAyBa,yBAAyBgB,GAAYC,GAAcxxN,MAE5F3a,KAAKqqO,yBAAyBW,uBAAuBkB,GAAYC,GAAcC,YAD/EH,EAC6F,EAGA,CAErG,EAEJjC,SAAsBQ,iBAAmB,WACzCR,EAAsB8C,iBAAmB,YACzC9C,EAAsB+C,aAAe,CAEjC1xB,KAAM,EACNoe,IAAK,EACLuT,MAAO,EACPC,KAAM,EACNC,MAAO,EACPC,MAAO,EACPC,KAAM,EACNC,MAAO,EACPC,MAAO,EACPC,KAAM,EACNC,MAAO,EACPC,MAAO,EACPvnE,KAAM,EACNwnE,KAAM,GACNC,KAAM,GAENC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,OAAQ,EACRC,OAAQ,GACRC,OAAQ,GACRC,QAAS,EACTC,QAAS,GACTC,QAAS,GACTC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,MAAO,GAGXhF,EAAsBiF,mCAAqC,CACvDC,UAAW,YACXC,eAAgB,iBAChBC,gBAAiB,kBACjBC,qBAAsB,uBACtBC,YAAa,cACbC,UAAW,aAGfvF,EAAsBwF,+BAAiC,CACnDN,UAAW,YACXC,eAAgB,iBAChBC,gBAAiB,YACjBC,qBAAsB,iBACtBC,YAAa,cACbG,iBAAkB,mBAClBF,UAAW,aAGfvF,EAAsB0F,4CAA8C,CAChEC,YAAa,OACbC,iBAAkB,aAClBC,UAAW,KACXC,eAAgB,WAChBC,UAAW,MAIf/F,EAAsBgG,+BAAiC,CACnDZ,gBAAiB,gBACjBC,qBAAsB,iBAG1BrF,EAAsBiG,wCAA0C,CAC5DC,eAAe,EACfC,oBAAoB,EACpB5E,SAAS,GA1QAvB,CAAqB,KCE3B,MAAMoG,GACT,WAAI/7C,GACA,OAAO,CACX,CACA,WAAIN,GACA,QAAI/zL,KAAKqwO,MAIb,CACAxwO,YAAYi4M,EAAyBptE,GAEjC1qI,KAAKswO,iBAAmB,CAAC,EACzBtwO,KAAKo1L,MAAQ,UACbp1L,KAAK83M,wBAA0BA,EAC/B93M,KAAKuwO,wBAA0B,CAAC,EAChCvwO,KAAK0qI,OAASA,EACd1qI,KAAK+3M,uBAAyB,CAAC,CACnC,CACAy4B,iCACI,CAEJv4B,uBAAuBl8L,EAAQm8L,EAAqBC,EAAeC,EAAUC,EAAaC,EAAUC,EAAiBjiK,IACjH,MAAMo0F,GAAS1qI,KAAK0qI,OAChBA,GAAO80F,0BACPzjN,EAAO00N,oBAAsB,GAC7B10N,EAAO20N,kBAAoB,IAE/B,MAAMC,GAAgB3wO,KAAK83M,wBAAwB84B,kBACnD,IAAIj2N,GACJ,IAAKA,GAAQ,EAAGA,GAAQ09L,EAAY3iM,OAAQiF,KAAS,CACjD,MAAMpU,GAAO8xM,EAAY19L,IACnB4wN,GAAUoF,GAAct4B,EAAY19L,KAC3B,MAAX4wN,IAA8B1oO,MAAX0oO,IACnBlzB,EAAY98L,OAAOZ,GAAO,GAC1BA,MAGA29L,EAAS/xM,IAAQoU,EAEzB,CACA,UAAW47B,MAAQm0F,GAAOkuE,cAAc54M,KAAMu4M,GAC1CjiK,GAAWr4B,KAAKs4B,IAGpBv2C,KAAK6wO,qBACL,MAAMC,GAA2B,GAC3BC,GAA+B,GACrC,IAAKp2N,GAAQ,EAAGA,GAAQ49L,EAAgB7iM,OAAQiF,KAAS,CACrD,MAAMjZ,GAAW40C,GAAW37B,IACxBjZ,IAAY,IACZovO,GAAyB7yN,KAAKs6L,EAAgB59L,KAC9Co2N,GAA6B9yN,KAAKvc,IAE1C,CACA1B,KAAK83M,wBAAwBg5B,yBAA2BA,GACxD9wO,KAAK83M,wBAAwBi5B,6BAA+BA,EAChE,CAKAF,qBACI,GAAK7wO,KAAK83M,wBAAwBwyB,iBAAiB50N,OAGnD,CAAA1V,KAAKgxO,eAAevvL,UACpBzhD,KAAKgxO,cAAgB,IAAIC,KAAcjxO,KAAK0qI,YAAQ7nI,OAAWA,EAAW,YAAc7C,KAAKo1L,OAC7F,UAAW87C,KAAmBlxO,KAAK83M,wBAAwBwyB,iBAAkB,CACzE,MAAMl4N,EAAO8+N,EAAgB9+N,KAAKnN,QAAQ,iBAAkB,MAE5DjF,KAAKgxO,cAAcG,WAAWD,EAAgB3qO,KADjCyjO,GAAsB+C,aAAa36N,GACU8+N,EAAgBx7N,QAC1E1V,KAAKuwO,wBAAwBW,EAAgB3qO,MAAQ2qO,EAAgB9+N,IACzE,CACApS,KAAKgxO,cAAc5pM,QAAO,CAC9B,CACAyxK,UAAUnuE,GACN1qI,KAAK0qI,OAASA,CAClB,CAIAjpF,UACQzhD,KAAKgxO,eACLhxO,KAAKgxO,cAAcvvL,SAE3B,CAMA83J,OAAOR,EAAaxmM,IACXvS,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcI,UAAUr4B,EAAaxmM,EAC9C,CAOAinM,QAAQT,EAAanmM,EAAG4P,IACfxiB,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcK,WAAWt4B,EAAanmM,EAAG4P,EAClD,CAQAi3L,QAAQV,EAAanmM,EAAG4P,EAAG0nD,IAClBlqE,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcM,WAAWv4B,EAAanmM,EAAG4P,EAAG0nD,EACrD,CASAwvI,QAAQX,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,IACrB5oE,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcO,WAAWx4B,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,EACxD,CAMA+wI,YAAYZ,EAAa36H,IAChBp+E,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcQ,eAAez4B,EAAa36H,EACnD,CAMAw7H,aAAab,EAAa36H,GACtBp+E,KAAK25M,YAAYZ,EAAa36H,EAClC,CAMAy7H,aAAad,EAAa36H,GACtBp+E,KAAK25M,YAAYZ,EAAa36H,EAClC,CAMA07H,aAAaf,EAAa36H,GACtBp+E,KAAK25M,YAAYZ,EAAa36H,EAClC,CAMA27H,QAAQhB,EAAaxmM,IACZvS,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcS,WAAW14B,EAAaxmM,EAC/C,CAOAynM,SAASjB,EAAanmM,EAAG4P,IAChBxiB,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcU,YAAY34B,EAAanmM,EAAG4P,EACnD,CAQAy3L,SAASlB,EAAanmM,EAAG4P,EAAG0nD,IACnBlqE,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcW,YAAY54B,EAAanmM,EAAG4P,EAAG0nD,EACtD,CASAgwI,SAASnB,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,IACtB5oE,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcY,YAAY74B,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,EACzD,CAMAuxI,aAAapB,EAAa36H,IACjBp+E,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAca,gBAAgB94B,EAAa36H,EACpD,CAMAg8H,cAAcrB,EAAa36H,GACvBp+E,KAAKm6M,aAAapB,EAAa36H,EACnC,CAMAi8H,cAActB,EAAa36H,GACvBp+E,KAAKm6M,aAAapB,EAAa36H,EACnC,CAMAk8H,cAAcvB,EAAa36H,GACvBp+E,KAAKm6M,aAAapB,EAAa36H,EACnC,CAMAu8H,SAAS5B,EAAa36H,IACbp+E,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcc,YAAY/4B,EAAa36H,EAChD,CAMAw8H,UAAU7B,EAAa36H,GACnBp+E,KAAK26M,SAAS5B,EAAa36H,EAC/B,CAMAy8H,UAAU9B,EAAa36H,GACnBp+E,KAAK26M,SAAS5B,EAAa36H,EAC/B,CAMA08H,UAAU/B,EAAa36H,GACnBp+E,KAAK26M,SAAS5B,EAAa36H,EAC/B,CAMA28H,YAAYhC,EAAaiC,IAChBh7M,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAce,eAAeh5B,EAAaiC,EACnD,CAMAC,UAAUlC,EAAaC,IACdh5M,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcgB,aAAaj5B,EAAaC,EACjD,CAMAkC,aAAanC,EAAaC,IACjBh5M,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAciB,gBAAgBl5B,EAAaC,EACpD,CAMAmC,aAAapC,EAAaC,IACjBh5M,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAckB,gBAAgBn5B,EAAaC,EACpD,CAMAj3C,SAASg3C,EAAaxmM,IACbvS,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcryE,YAAYo6C,EAAaxmM,EAChD,CAMA+oM,WAAWvC,EAAawC,GACpBv7M,KAAK8hK,UAAUi3C,EAAawC,EAAQ3oM,EAAG2oM,EAAQ/4L,EACnD,CAOAs/I,UAAUi3C,EAAanmM,EAAG4P,IACjBxiB,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcmB,aAAap5B,EAAanmM,EAAG4P,EACpD,CAMAg5L,WAAWzC,EAAa0C,GACpBz7M,KAAK07M,UAAU3C,EAAa0C,EAAQ7oM,EAAG6oM,EAAQj5L,EAAGi5L,EAAQvxI,EAC9D,CAQAwxI,UAAU3C,EAAanmM,EAAG4P,EAAG0nD,IACpBlqE,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcoB,aAAar5B,EAAanmM,EAAG4P,EAAG0nD,EACvD,CAMA83F,WAAW+2C,EAAa4C,GACpB37M,KAAK47M,UAAU7C,EAAa4C,EAAQ/oM,EAAG+oM,EAAQn5L,EAAGm5L,EAAQzxI,EAAGyxI,EAAQ/yI,EACzE,CAMAizI,cAAc9C,EAAa+C,GACvB97M,KAAK47M,UAAU7C,EAAa+C,EAAWlpM,EAAGkpM,EAAWt5L,EAAGs5L,EAAW5xI,EAAG4xI,EAAWlzI,EACrF,CASAgzI,UAAU7C,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,IACvB5oE,KAAKgxO,gBAAkBhxO,KAAKuwO,wBAAwBx3B,IAGzD/4M,KAAKgxO,cAAcqB,aAAat5B,EAAanmM,EAAG4P,EAAG0nD,EAAGtB,EAC1D,CAMAmzI,UAAUhD,EAAaiD,GACnBh8M,KAAK07M,UAAU3C,EAAaiD,EAAO56L,EAAG46L,EAAOnhM,EAAGmhM,EAAOzmM,EAC3D,CAOA0mM,UAAUlD,EAAaiD,EAAQzxE,GAC3BvqI,KAAK47M,UAAU7C,EAAaiD,EAAO56L,EAAG46L,EAAOnhM,EAAGmhM,EAAOzmM,EAAGg1H,EAC9D,CAMA2xE,gBAAgBnD,EAAaoD,GACzBn8M,KAAK47M,UAAU7C,EAAaoD,EAAO/6L,EAAG+6L,EAAOthM,EAAGshM,EAAO5mM,EAAG4mM,EAAOvtM,EACrE,CACAgpM,uBACI,OAAO53M,KAAKk2M,SAASz3C,MACzB,CACAo5C,yBACI,OAAO73M,KAAKk2M,SAASv0M,QACzB,ECncJ,MAGM2wO,GAAsB,CAExBpsE,KAAM,EACNwnE,KAAM,EACNC,KAAM,EAENI,OAAQ,EACRC,OAAQ,EACRC,OAAQ,GAKL,IAAMsE,GAA6B,MAAnC,MAAMA,EACT,oBAAWC,GACP,OAAOD,EAA8BE,yBAA2BF,EAA8BG,qBAAuBH,EAA8BI,UACvJ,CACA9yO,YAAY22M,EAAgBo8B,GAAW,GACnC5yO,KAAKg3M,qCAAuC,CAAC,EAC7Ch3M,KAAKw2M,eAAiBA,EACtBx2M,KAAK6yO,uBAAyB,EAC9B7yO,KAAK8yO,qBAAuB,EAC5B9yO,KAAK+yO,eAAiB,EACtB/yO,KAAKgzO,iBAAmB,EACxBhzO,KAAKizO,kBAAoB,CAAC,EAC1BjzO,KAAKkzO,oBAAsB,CAAC,EAC5BlzO,KAAK0qO,iBAAmB,CAAC,EACzB1qO,KAAK4wO,kBAAoB,CAAC,EAC1B5wO,KAAKmzO,kBAAoB,CAAC,EAC1BnzO,KAAKozO,kBAAoB,GACzBpzO,KAAKgrO,uBAAyB,GAC9BhrO,KAAKkrO,yBAA2B,GAChClrO,KAAK2rO,iBAAmB,GACxB3rO,KAAKyrO,YAAc,GACnBzrO,KAAKqrO,aAAe,GACpBrrO,KAAKwrO,aAAe,GACpBxrO,KAAKsqO,iBAAmB,GACnBsI,GACD5yO,KAAKqzO,2BAEb,CACAA,4BACI,MAAMC,EAAYf,EAA8BC,UAC1CzuN,EAAS,GACf,UAAWxd,KAAQ+sO,EAAW,CAC1B,MAAM3I,EAAU2I,EAAU/sO,GAAMokO,SACL,IAAvBA,EAAQuB,aAIRnoN,EAAO4mN,EAAQuB,iBADgBrpO,IAA/BkhB,EAAO4mN,EAAQuB,YACcvB,EAAQwB,aAGR5uN,KAAKk/B,IAAI14B,EAAO4mN,EAAQuB,YAAavB,EAAQwB,cAElF,CACAnsO,KAAK+yO,eAAiBhvN,EAAOrO,OAAS,EACV,IAAxB1V,KAAK+yO,gBACL/yO,KAAK+yO,iBACL/yO,KAAKgzO,iBAAmB,GAGxBhzO,KAAKgzO,iBAAmBjvN,EAAOA,EAAOrO,OAAS,GAAK,CAE5D,CACA69N,yBAAyBpzE,EAAUqzE,EAAc,GAC7C,MAAM74N,EAAQ3a,KAAK6yO,uBACnB,OAAA7yO,KAAK6yO,yBAA2BP,GAAoBnyE,IAAa,IAAMqzE,GAAe,GAC/E74N,CACX,CACA84N,uBAAuBtzE,EAAUqzE,EAAc,GAC3C,MAAM74N,EAAQ3a,KAAK8yO,qBACnB,OAAA9yO,KAAK8yO,uBAAyBR,GAAoBnyE,IAAa,IAAMqzE,GAAe,GAC7E74N,CACX,CACAiwN,wBACI,OAAO5qO,KAAK0zO,oBAAoB,EACpC,CACAA,oBAAoBC,GAKhB,GAJI3zO,KAAKgzO,iBAjFY,MAiF8BW,IAC/C3zO,KAAK+yO,iBACL/yO,KAAKgzO,iBAAmB,GApFjB,IAsFPhzO,KAAK+yO,eAEL,KAAM,kFAEV,MAAMa,EAAc,CAChB1H,WAAYlsO,KAAK+yO,eACjB5G,aAAcnsO,KAAKgzO,kBAEvB,OAAAhzO,KAAKgzO,kBAAoBW,EAClBC,CACX,EAGJrB,SAA8BE,0BAA2B,EAEzDF,EAA8BG,qBAAuB,CACjD1iD,MAAO,CAAE26C,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IACjD0H,OAAQ,CAAElJ,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACnD2H,OAAQ,CAAEnJ,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACnD4H,OAAQ,CAAEpJ,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACnD6H,OAAQ,CAAErJ,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACnD8H,OAAQ,CAAEtJ,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACnD+H,OAAQ,CAAEvJ,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACnDgI,OAAQ,CAAExJ,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACnDiI,OAAQ,CAAEzJ,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACnDkI,OAAQ,CAAE1J,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACnDmI,OAAQ,CAAE3J,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACnDoI,QAAS,CAAE5J,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDqI,QAAS,CAAE7J,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDsI,QAAS,CAAE9J,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDuI,QAAS,CAAE/J,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDwI,QAAS,CAAEhK,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDyI,QAAS,CAAEjK,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpD0I,QAAS,CAAElK,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpD2I,QAAS,CAAEnK,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpD4I,QAAS,CAAEpK,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpD6I,QAAS,CAAErK,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpD8I,QAAS,CAAEtK,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpD+I,QAAS,CAAEvK,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDgJ,QAAS,CAAExK,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDiJ,QAAS,CAAEzK,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDkJ,QAAS,CAAE1K,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDmJ,QAAS,CAAE3K,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDoJ,QAAS,CAAE5K,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDqJ,QAAS,CAAE7K,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDsJ,QAAS,CAAE9K,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDuJ,QAAS,CAAE/K,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDwJ,QAAS,CAAEhL,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpDyJ,QAAS,CAAEjL,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACpD0J,SAAU,CAAElL,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACrD2J,KAAM,CAAEnL,QAAS,CAAEuB,YAAY,EAAIC,cAAc,IACjD4J,UAAW,CAAEpL,QAAS,CAAEuB,YAAY,EAAIC,cAAc,KAE1DoG,EAA8BI,WAAa,CACvC3iD,MAAO,CAAE26C,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IACjD0H,OAAQ,CAAElJ,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IAClD2H,OAAQ,CAAEnJ,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IAClD4H,OAAQ,CAAEpJ,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IAClD6H,OAAQ,CAAErJ,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IAClD8H,OAAQ,CAAEtJ,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IAClD+H,OAAQ,CAAEvJ,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IAClDgI,OAAQ,CAAExJ,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IAClDiI,OAAQ,CAAEzJ,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IAClDkI,OAAQ,CAAE1J,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IAClDmI,OAAQ,CAAE3J,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IAClDoI,QAAS,CAAE5J,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDqI,QAAS,CAAE7J,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDsI,QAAS,CAAE9J,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDuI,QAAS,CAAE/J,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDwI,QAAS,CAAEhK,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDyI,QAAS,CAAEjK,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnD0I,QAAS,CAAElK,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnD2I,QAAS,CAAEnK,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnD4I,QAAS,CAAEpK,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnD6I,QAAS,CAAErK,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnD8I,QAAS,CAAEtK,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnD+I,QAAS,CAAEvK,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDgJ,QAAS,CAAExK,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDiJ,QAAS,CAAEzK,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDkJ,QAAS,CAAE1K,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDmJ,QAAS,CAAE3K,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDoJ,QAAS,CAAE5K,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDqJ,QAAS,CAAE7K,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDsJ,QAAS,CAAE9K,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDuJ,QAAS,CAAE/K,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDwJ,QAAS,CAAEhL,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnDyJ,QAAS,CAAEjL,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KACnD0J,SAAU,CAAElL,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IACpD2J,KAAM,CAAEnL,QAAS,CAAEuB,WAAY,EAAGC,aAAc,IAChD4J,UAAW,CAAEpL,QAAS,CAAEuB,WAAY,EAAGC,aAAc,KA/J5CoG,CAA6B,KCVnC,MAAMyD,WAAkChM,GAC3CnqO,cACIgE,SAAS4Y,WACTzc,KAAKi2O,iBAAmB,GACxBj2O,KAAKk2O,wBAA0B,GAC/Bl2O,KAAKm2O,gBAAiB,EACtBn2O,KAAKo2O,kBAAmB,EACxBp2O,KAAKw2M,eAAiB,EACtBx2M,KAAKq2O,YAAa,CACtB,CACAjM,cAAc7jO,EAAM6L,EAAM+3N,GACtB,IAAIz0N,EAAS,EACb,MAAM4gO,EAAa/vO,EAAKu+B,QAAQ,KAC1ByxM,EAAWhwO,EAAKu+B,QAAQ,KAC9B,GAAIwxM,EAAa,GAAKC,EAAW,EAAG,CAChC,MAAMC,EAAiBjwO,EAAKk7E,UAAU60J,EAAa,EAAGC,GACtD7gO,GAAU8gO,EACNttL,MAAMxzC,KACNA,GAAUy0N,EAAcqM,EAAex3J,SAE3Cz4E,EAAOA,EAAKk7E,UAAU,EAAG60J,EAC7B,CACA,MAAO,CAAC/vO,EAAM6L,EAAMsD,EACxB,CACA+gM,kBAAkB7jB,GACd5yL,KAAKqqO,yBAA2Bz3C,EAChC5yL,KAAKi2O,iBAAiBvgO,OAAS,EAC/B1V,KAAKk2O,wBAAwBxgO,OAAS,EACtC1V,KAAKy2O,0BAAuB5zO,EAC5B7C,KAAK02O,8BAA2B7zO,EAChC7C,KAAK22O,gCAA6B9zO,CACtC,CACA+zO,qBAAqBj6K,EAAMy1H,GACvB,MAAMykD,EAAiB,6BAA4B7M,GAAsB8C,yEACnEgK,GAAuD,IAArCn6K,EAAK73B,QAAQ,oBACrC,OAAIstJ,GACApyL,KAAKo2O,kBAAkD,IAA/Bz5K,EAAK73B,QAAQ,cACjC9kC,KAAKo2O,mBACLp2O,KAAK22O,2BAA6B,MAE/BG,EAAkBn6K,EAAOk6K,EAAgB,mBAAqBl6K,IAEzE38D,KAAKm2O,gBAAgD,IAA/Bx5K,EAAK73B,QAAQ,cAC/B9kC,KAAKm2O,iBACLn2O,KAAKy2O,qBAAuB,KAC5Bz2O,KAAK02O,yBAA2B,OAE7BI,EAAkBn6K,EAAOk6K,EAAgBl6K,EACpD,CACAu6I,aAAaC,EAAS/kB,GAKlB,OADcA,GAAcpyL,KAAKo2O,iBAFjB,sBAE+ChkD,GAAcpyL,KAAKm2O,eAHjE,sBAEI,2BAERvwM,KAAKuxK,EACtB,CACAE,iBAAiBF,EAAS/kB,EAAY+3C,GAClCnqO,KAAK+2O,eAAiB5M,EACtB,MAIMjvL,IADQk3I,GAAcpyL,KAAKo2O,iBAFjB,oEAE+ChkD,GAAcpyL,KAAKm2O,eAHjE,oEAEI,yEAED3hC,KAAK2C,GACzB,GAAc,OAAVj8J,GAAgB,CAChB,MAAM87L,GAAyB97L,GAAM,IAAM,GACrC+7L,GAAc/7L,GAAM,GACpB30C,GAAO20C,GAAM,GACnB,IAAIx5C,GACA0wL,GACA1wL,GAAW1B,KAAKqqO,yBAAyB4I,kBAAkB1sO,IAC3DvG,KAAKi2O,iBAAiBv0O,IAAY,QACjBmB,IAAbnB,IACAk/J,KAAOC,KAAM,+CAA8Ct6J,iFAI/D7E,GAAW1B,KAAKqqO,yBAAyBoJ,uBAAuBwD,GAAaj3O,KAAKoqO,cAAc7jO,GAAM0wO,GAAa9M,GAAe,IAClInqO,KAAKqqO,yBAAyB4I,kBAAkB1sO,IAAQ7E,GACxD1B,KAAKi2O,iBAAiBv0O,IAAa,qBAAoBA,OAAas1O,SAA6BC,MAAe1wO,OAEpH4wM,EAAUA,EAAQlyM,QAAQi2C,GAAM,QAAiBr4C,IAAbnB,GAAyB,GAAM,qBAAoBA,OAAas1O,MAA0B5kD,EAAa,KAAO,SAAS6kD,MAAe1wO,MAC9K,CACA,OAAO4wM,CACX,CACAN,mBAAmBC,EAAWqzB,GAC1BnqO,KAAK+2O,eAAiB5M,EACtB,MAGMjvL,GADQl7C,KAAKm2O,eAFH,8BACI,sCAEA3hC,KAAKsC,GACzB,GAAc,OAAV57J,EAAgB,CAChB,MAAM67J,EAAgB77J,EAAM,GACtB30C,GAAO20C,EAAM,GACbx5C,GAAW1B,KAAKqqO,yBAAyBkJ,yBAAyBx8B,EAAe/2M,KAAKoqO,cAAc7jO,GAAMwwM,EAAeozB,GAAe,IAC9InqO,KAAKqqO,yBAAyB6I,oBAAoB3sO,IAAQ7E,GAC1D1B,KAAKqqO,yBAAyB+I,kBAAkB1xO,IAAY6E,GAC5D,MAAM8nK,GAAgBruK,KAAKqqO,yBAAyBrzB,qCAAqCzwM,IACzF,QAAsB1D,IAAlBwrK,GAA6B,CAE7B,MACM4oC,GAAW,QAAO1wM,MACxBuwM,EAAYA,EAAU7xM,QAAQi2C,EAAM,GAAK,qBAAoBx5C,UAF7C2sK,GAAgB,GAAuB,IAAlBA,GAAuB,MAAQ,QAAUA,GAAmC,IAAlBA,GAAsB,OAAS,OAASA,MAE/C4oC,OAAYF,KAAiBxwM,QAAUwwM,KAAiBE,OACpJ,MAEIH,EAAYA,EAAU7xM,QAAQi2C,EAAM,GAAK,qBAAoBx5C,UAAgBq1M,KAAiBxwM,MAEtG,CACA,OAAOuwM,CACX,CACAogC,iBAAiBz+B,EAASrmB,EAAY+3C,GAClCnqO,KAAK+2O,eAAiB5M,EAEtB,MAAMjvL,EADe,8DACMs5J,KAAKiE,GAChC,GAAc,OAAVv9J,EAAgB,CAChB,IAAIgvL,EAAchvL,EAAM,GACpB30C,EAAO20C,EAAM,GACjB,GAAuC,IAAnCgvL,EAAYplM,QAAQ,YAAuD,IAAnColM,EAAYplM,QAAQ,WAAkB,CAC9E,IAAIqyM,GAAY,GACf5wO,EAAM2jO,EAAaiN,IAAan3O,KAAKoqO,cAAc7jO,EAAM2jO,EAAaC,GACvE,IAAI2B,GAAc9rO,KAAKqqO,yBAAyBuG,kBAAkBrqO,GAClE,IAAKulO,GAAa,CACdA,GAAc,CACVsL,iBAAiB,EACjB3K,eAAgB0K,GAAY,EAC5BE,kBAAkB,EAClBzlG,SAAU,GACV26F,WAAY,SAEhB,QAAS9uN,GAAI,EAAGA,IAAK05N,IAAa,KAAM15N,GACpCquN,GAAYl6F,SAAS3zH,KAAKje,KAAKqqO,yBAAyBO,wBAEhE,CACA,MAAM0M,GAActN,GAAsBgG,+BAA+B9F,IAAgB,UACnFqN,KAAwBvN,GAAsBiG,wCAAwCqH,IACtFE,GAAqBD,GAAsB,aAAmE,YAC9GE,GAAclxO,EAAQ,UAC5B,IAAIomO,GAAc3sO,KAAKqqO,yBAAyB8I,kBAAkBsE,IAC7D9K,KACDA,GAAc,CACVhC,QAAS3qO,KAAKqqO,yBAAyBO,wBACvCx4N,KAAMolO,KAGd,MAAM94L,GAA0C,MAA1BwrL,EAAYzrG,OAAO,GAAa,IAAgC,MAA1ByrG,EAAYzrG,OAAO,GAAa,IAAM,GAC9F//E,KACAwrL,EAAcA,EAAYzoJ,UAAU,IASxCqqJ,GAAYS,WAPOgL,GACb,QACkB,MAAlB74L,GACI,OACkB,MAAlBA,GACI,OACA,QAEd,MACMg5L,GAAoB/K,GAAYhC,QAAQuB,WACxCyL,GAAsBhL,GAAYhC,QAAQwB,aAC1CyL,GAAkB5N,GAAsBiF,mCAAmC/E,GAC3E5+F,GAAc0+F,GAAsBwF,+BAA+BtF,GACnE2N,GAAmB7N,GAAsB0F,4CAA4CpkG,IAE3F,GAPuB6rG,GAAY,EAa9B,CACD,MAAMW,GAAU,GAChBA,GAAQ75N,KAAM,gBAAey5N,iBAAgCC,eAAgCj5L,KAAgB44L,MAAeG,OAC5Hh/B,EAAW,KACX,QAASh7L,GAAI,EAAGA,GAAI05N,KAAa15N,GAG7Bq6N,GAAQ75N,KAAM,gBAFU6tN,GAAYl6F,SAASn0H,IAAGyuN,yBACpBJ,GAAYl6F,SAASn0H,IAAG0uN,yBACuC7gG,MAAe/kI,WAAckX,OACxHg7L,GAAY,GAAEh7L,GAAI,EAAI,KAAO,aAAalX,IAAOkX,MAAKihC,KAAgBk5L,MAAmBrxO,WAAckX,OAAMg6N,MAEjHh/B,EAAUq/B,GAAQ5tO,KAAK,MAAQuuM,EAC/Bz4M,KAAKk2O,wBAAwBj4N,KAAK1X,EACtC,MAjBI4wO,GAAY,EACZ1+B,EAAW,gBAAei/B,iBAAgCC,eAAgCL,MAAeG,6CACtF3L,GAAYl6F,SAAS,GAAGs6F,yBAAyBJ,GAAYl6F,SAAS,GAAGu6F,yBAAyBztL,KAAgB4sF,MAAe/kI,8CACtIA,KAAQm4C,KAAgBk5L,MAAmBrxO,aAAgBkxO,MAe7Ez3O,KAAKqqO,yBAAyBuG,kBAAkBrqO,GAAQulO,GACxD9rO,KAAKqqO,yBAAyB8I,kBAAkBsE,IAAe9K,GAC/D3sO,KAAK0sO,8BAA8B+K,GAAa9K,IAAcv6C,GAC9D,QAAS30K,GAAI,EAAGA,GAAI05N,KAAa15N,GAC7Bzd,KAAK6rO,8BAA8BtlO,EAAMulO,GAAaruN,GAAGo6N,GAAkB,MAAOzlD,EAE1F,MAEIpyL,KAAKiqO,yBAAyB1jO,EAAM2jO,EAAaC,GACjD1xB,EAAU,EAElB,CACA,OAAOA,CACX,CACAs/B,uBAAuB/G,EAAe5+C,GAElC,MAAMl3I,EADW,oBACMs5J,KAAKw8B,GAC5B,GAAc,OAAV91L,EAAgB,CAChB,MAAM30C,EAAO20C,EAAM,GACnB,IAAI0xL,EAAoB5sO,KAAKqqO,yBAAyBK,iBAAiBnkO,GACvE,IAAKqmO,EAAmB,CACpB,MAAMoL,EAAWzF,GAA8BC,UAAUjsO,GACzD,IAAIokO,GAEAA,GADAqN,IAA4C,IAAhCA,EAASrN,QAAQuB,WACnB8L,EAASrN,QAGT3qO,KAAKqqO,yBAAyBO,wBAE5CgC,EAAoB,CAAEjC,YACtB3qO,KAAKqqO,yBAAyBK,iBAAiBnkO,GAAQqmO,CAC3D,CACA5sO,KAAK6qO,6BAA6BtkO,EAAMqmO,EAAmB,WAA4Dx6C,GACvH4+C,EAAgBA,EAAc/rO,QAAQ,UAAY,gBAAe2nO,EAAkBjC,QAAQuB,yBAAyBU,EAAkBjC,QAAQwB,wBAClJ,CACA,OAAO6E,CACX,CACA15B,cAAc36I,EAAM0zH,EAAS+B,EAAY6lD,EAAoBC,GACzD,MAAM3gC,GAAsF,IAA5D56I,EAAKguC,OAAO,4CAM5C,GADAhuC,GAFAA,EAAOA,EAAK13D,QADE,iJACa,KAEfA,QAAQ,kBAAmB,YACnCmtL,EAAY,CACZ,MAAM+lD,GAAex7K,EAAK73B,QAAQ,iBAAmB,EAC/CszM,GAAiB,sMAMjBC,GAAaF,GAAe,uBAAyB,GACrD3gC,IAAgE,IAApD76I,EAAKguC,OAAO,oCAQ9B,GADAhuC,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,EAAOA,EAAK13D,QAAQ,wBAAyB,gBACjCA,QAAQ,0BAA2B,gBACnCA,QAAQ,oBAAqB,aAC7BA,QAAQ,mBAAoB,iBAC5BA,QAAQ,gBAAiB,gBACzBA,QAAQ,eAAgB,eACxBA,QAAQ,gBAAiB,gBAChCjF,KAAKo2O,iBAGL,CACD,MAAMl7L,GAAQ,4BAA4Bs5J,KAAK73I,GACjC,OAAVzhB,KACAyhB,EAAOA,EAAK8kB,UAAU,EAAGvmC,GAAMvgC,OAAS,wBAA0BgiD,EAAK8kB,UAAUvmC,GAAMvgC,OAE/F,MAPIgiD,EAAOA,EAAK13D,QAAQ,sBAAuBsyM,GAA2BC,GAAY,GAAK,gDAAkD,cAS7I76I,GADAA,EAAOA,EAAK13D,QAAQ,QAAS,qBACjBA,QAAQ,iBAAkBozO,IAClCF,KACAx7K,EAAOu2I,GAA4Bv2I,EAAM,YAAay7K,IAE9D,SAGIz7K,GADAA,EAAOA,EAAK13D,QAAQ,iBAAkB,qBAC1BA,QAAQ,eAAgB,mBACmC,IAAzCorL,EAAQvrJ,QAAQ,qBAE1C,MAAO,uEAAyE63B,EAIxF,IAAKy1H,EAAY,CACb,MAAMohB,GAAmB72I,EAAKglB,YAAY,KAC1ChlB,EAAOA,EAAK8kB,UAAU,EAAG+xH,IACzB72I,GAAQ,+BAERA,GAAQ,GACZ,CACA,OAAOA,CACX,CACA27K,6BAA6B37K,EAAMp2D,GAE/B,MAAMgyO,EAAQ,IAAI52C,OAAOp7L,EAAO,kBAAmB,MACnD,IAAI20C,EAAQq9L,EAAM/jC,KAAK73I,GACvB,KAAiB,OAAVzhB,GAAgB,CACnB,MAAMvgC,EAAQugC,EAAM,GACpB,IAAIs9L,GAAU79N,EACV3a,KAAK+2O,gBAAkB7tL,MAAMsvL,KAC7BA,GAAUx4O,KAAK+2O,eAAep8N,EAAMqkE,SAExCriB,EAAOA,EAAK13D,QAAQi2C,EAAM,GAAI30C,EAAOiyO,GACrCt9L,EAAQq9L,EAAM/jC,KAAK73I,EACvB,CACA,OAAOA,CACX,CACAmuK,yBAAyBvkO,EAAMkyO,GAC3B,IAAIj6E,EAAO,gBAAei6E,EAAyB9N,QAAQuB,yBAAyBuM,EAAyB9N,QAAQwB,yBAAyB5lO,YAC9I,UAAW2qO,KAAmBlxO,KAAKqqO,yBAAyBC,iBAEpD9rE,GADA0yE,EAAgBx7N,OAAS,EACjB,OAAMw7N,EAAgB9+N,QAAQ8+N,EAAgB3qO,QAAQ2qO,EAAgBx7N,aAGtE,OAAMw7N,EAAgB9+N,QAAQ8+N,EAAgB3qO,UAG9Di4J,UAAO,SACAA,CACX,CACAk6E,gBAAgB/kD,EAAYk9B,GAExB,QAASpzM,EAAI,EAAGA,EAAIzd,KAAKk2O,wBAAwBxgO,SAAU+H,EAAG,CAC1D,MAAMlX,EAAOvG,KAAKk2O,wBAAwBz4N,GAC1Ck2K,EAAa3zL,KAAKs4O,6BAA6B3kD,EAAYptL,GAC3DsqN,EAAe7wN,KAAKs4O,6BAA6BznB,EAActqN,EACnE,CAEA,QAASkX,EAAI,EAAGA,EAAIzd,KAAKi2O,iBAAiBvgO,SAAU+H,EAAG,CACnD,MAAMk7N,EAAO34O,KAAKi2O,iBAAiBx4N,GAC/Bk7N,GAAQA,EAAKjjO,OAAS,IACtBm7M,EAAe8nB,EAAO,KAAO9nB,EAErC,CAEA,MAAM+nB,EAAc54O,KAAKuqO,oBACzB52C,SAAailD,EAAcjlD,EAC3Bk9B,EAAe+nB,EAAc/nB,EAC7B7wN,KAAK+qO,uBACL/qO,KAAK0rO,6BACL1rO,KAAK+2O,eAAiB,KACtB/2O,KAAKqqO,yBAAyBrzB,qCAAuC,CAAC,EAC/D,CAAErjB,aAAYk9B,eACzB,mFC9TJ,MAGMgoB,GAAiD,CACnDC,WAAY,KACZC,WAAY,KACZC,iBAAkB,WAClBC,WAAY,KACZC,aAAc,OACdC,mBAAoB,aACpBC,wBAAyB,KACzBC,iBAAkB,KAClBC,uBAAwB,WACxBC,mBAAoB,OACpBC,yBAA0B,aAC1BC,8BAA+B,KAC/BC,mBAAoB,KACpBC,mBAAoB,KACpBC,yBAA0B,WAC1BC,mBAAoB,KACpBC,iBAAkB,MAGf,MAAMC,WAAkC/P,GAC3CnqO,cACIgE,SAAS4Y,WACTzc,KAAKw2M,eAAiB,EACtBx2M,KAAKg6O,cAAgB,iCACrBh6O,KAAKi6O,cAAgB,uFACrBj6O,KAAKk6O,aAAc,EACnBl6O,KAAK4yO,UAAW,CACpB,CACAuH,aAAax9K,EAAM0zH,EAAS85C,EAAe/3C,EAAYQ,GAEnD,UAAWpuJ,KAAO2lM,EAAe,CAC7B,GAAY,gBAAR3lM,EACA,SAEJ,MAAMjyB,EAAQ43N,EAAc3lM,KACvB0kB,MAAMkpD,SAAS7/F,MAAY22C,MAAMD,WAAW12C,OAC7CoqD,EAAQ,SAAQn4B,OAASjyB,OAAaoqD,EAE9C,CACA,OAAOA,CACX,CACAytK,cAAc7jO,EAAM2jO,EAAaC,GAC7B,IAAIz0N,EAAS,EACb,MAAM6gO,EAAWrM,EAAYvoJ,YAAY,KACzC,GAAIuoJ,EAAYplM,QAAQ,UAAY,GAAKyxM,EAAW,EAAG,CACnD,IAAID,EAAaC,EACjB,KAAOD,EAAa,GAAwC,MAAnCpM,EAAYzrG,OAAO63G,IAA0D,MAAnCpM,EAAYzrG,OAAO63G,IAClFA,IAEJ,MAAME,EAAiBtM,EAAYzoJ,UAAU60J,EAAa,EAAGC,GAK7D,IAJA7gO,GAAU8gO,EACNttL,MAAMxzC,KACNA,GAAUy0N,EAAcqM,EAAex3J,SAEpCs3J,EAAa,IAAyC,MAAnCpM,EAAYzrG,OAAO63G,IAA0D,MAAnCpM,EAAYzrG,OAAO63G,KACnFA,IAEJpM,EAAcA,EAAYzoJ,UAAUyoJ,EAAYplM,QAAQ,KAAO,EAAGwxM,EAAa,EACnF,CACA,MAAO,CAAC/vO,EAAM2jO,EAAax0N,EAC/B,CACA+gM,kBAAkB7jB,GACd5yL,KAAKqqO,yBAA2Bz3C,EAChC5yL,KAAKo6O,qBAAuB,GAC5Bp6O,KAAKq6O,gBAAkB,GACvBr6O,KAAKs6O,8BAAgC,GACrCt6O,KAAKu6O,uBAAwB,EAC7Bv6O,KAAKw6O,cAAgB,GACrBx6O,KAAKy6O,kBAAoB,GACzBz6O,KAAK06O,sBAAwB,EACjC,CACA9D,qBAAqBj6K,GAEjB,MAAMk6K,EAAgB72O,KAAK4yO,SACrB,GACC,UAAS5I,GAAsB8C,oGAA8G9C,GAAsB8C,sBAE1K,OADwD,IAAhCnwK,EAAK73B,QAAQ+xM,GACZl6K,EAAOk6K,EAAgBhkC,GAAel2I,EACnE,CACAu6I,aAAaC,GAET,MADc,uEACDvxK,KAAKuxK,EACtB,CACAE,iBAAiBF,EAAS/kB,EAAY+3C,GAElC,MAAMjvL,EADe,0HACMs5J,KAAK2C,GAChC,GAAc,OAAVj8J,EAAgB,CAChB,MAAMy/L,EAAoBz/L,EAAM,IAAM,cAEhC+7L,GAAc/7L,EAAM,GACpB30C,GAAO20C,EAAM,GACb0/L,GAAsC,SAAtBD,EAAgC,gBAAeA,KAAwB,gBAAeA,MAH9Ez/L,EAAM,IAAM,YAI1C,IAAIx5C,GACA0wL,GACA1wL,GAAW1B,KAAKqqO,yBAAyB4I,kBAAkB1sO,SAC1C1D,IAAbnB,IACAk/J,KAAOC,KAAM,+CAA8Ct6J,iFAI/D7E,GAAW1B,KAAKqqO,yBAAyBoJ,uBAAuBwD,GAAaj3O,KAAKoqO,cAAc7jO,GAAM0wO,GAAa9M,GAAe,IAClInqO,KAAKqqO,yBAAyB4I,kBAAkB1sO,IAAQ7E,GACxD1B,KAAKw6O,cAAcv8N,KAAM,eAAcvc,OAAak5O,MAAiBr0O,QAAU0wO,OAC/Ej3O,KAAKy6O,kBAAkBx8N,KAAK1X,KAEhC4wM,EAAU,EACd,CACA,OAAOA,CACX,CACAN,mBAAmBC,EAAWqzB,GAE1B,MAAMjvL,EADc,wCACMs5J,KAAKsC,GAC/B,GAAc,OAAV57J,EAAgB,CAChB,MAAM67J,EAAgB77J,EAAM,GACtB30C,EAAO20C,EAAM,GACbx5C,EAAW1B,KAAKqqO,yBAAyBkJ,yBAAyBx8B,EAAe/2M,KAAKoqO,cAAc7jO,EAAMwwM,EAAeozB,GAAe,IAC9InqO,KAAKqqO,yBAAyB6I,oBAAoB3sO,GAAQ7E,EAC1D1B,KAAKqqO,yBAAyB+I,kBAAkB1xO,GAAY6E,EAC5D,MAAM8nK,GAAgBruK,KAAKqqO,yBAAyBrzB,qCAAqCzwM,GACzF,QAAsB1D,IAAlBwrK,GAA6B,CAE7B,MACM4oC,GAAW,QAAO1wM,KACxBvG,KAAKo6O,qBAAqBn8N,KAAM,aAAYvc,MAAau1M,QAFzC5oC,GAAgB,GAAuB,IAAlBA,GAAuB,MAAQ,OAASA,GAAgB,QAA6B,IAAlBA,GAAsB,MAAQ,MAAQA,GAAgB,YAG9JruK,KAAKq6O,gBAAgBp8N,KAAM,GAAE1X,OAAUwwM,MACvC/2M,KAAKs6O,8BAA8Br8N,KAAM,gBAAe1X,OAAUwwM,mBAA+BE,QACjGj3M,KAAKu6O,uBAAwB,CACjC,MAEIv6O,KAAKo6O,qBAAqBn8N,KAAM,aAAYvc,MAAa6E,OAAUwwM,MACnE/2M,KAAKq6O,gBAAgBp8N,KAAM,GAAE1X,OAAUwwM,MACvC/2M,KAAKs6O,8BAA8Br8N,KAAM,gBAAe1X,qBAAwBA,MAEpFuwM,EAAY,EAChB,CACA,OAAOA,CACX,CACAogC,iBAAiBz+B,EAASrmB,EAAY+3C,GAClC,MAAMjvL,EAAQl7C,KAAKg6O,cAAcxlC,KAAKiE,GAOtC,OANc,OAAVv9J,IAGAl7C,KAAKiqO,yBADQ/uL,EAAM,GADCA,EAAM,GAEuBivL,GACjD1xB,EAAU,IAEPA,CACX,CACAoiC,iBAAiBt0C,EAASnU,EAAY+3C,GAClC,MAAMjvL,EAAQl7C,KAAKi6O,cAAczlC,KAAKjO,GACtC,GAAc,OAAVrrJ,EAAgB,CAChB,MAAM30C,EAAO20C,EAAM,GACb9oC,EAAO8oC,EAAM,GACb4/L,IAAqB5/L,EAAM,GAC3B6/L,GAAc7/L,EAAM,GACpBm8L,GAAmB0D,GAAYj2M,QAAQ,WAAa,EACpD4Z,GAAgBxD,EAAM,GACtB8/L,GAAuB3D,GAAmB34L,GAAc+iC,UAAU,EAAG/iC,GAAc5Z,QAAQ,MAAMk6C,OAAS,KAChH,IAAIm4J,GAAY2D,EAAmB96O,KAAKoqO,cAAc7jO,EAAM6L,EAAM+3N,GAAe,GAAK,EAClF2B,GAAc9rO,KAAKqqO,yBAAyBuG,kBAAkBrqO,GAClE,GAAKulO,GAaDqL,GAAYrL,GAAYl6F,SAASl8H,WAbnB,CACdo2N,GAAc,CACVW,eAAgB0K,GAAY,EAC5BE,oBACAzlG,SAAU,GACV26F,WAAY,SAEhB4K,GAAYA,IAAa,EACzB,QAAS15N,GAAI,EAAGA,GAAI05N,KAAa15N,GAC7BquN,GAAYl6F,SAAS3zH,KAAKje,KAAKqqO,yBAAyBO,wBAEhE,CAIA5qO,KAAKqqO,yBAAyBuG,kBAAkBrqO,GAAQulO,GACxD,MAAMmP,GAAiBF,GAAYj2M,QAAQ,SAAW,EAChD+yM,GAAmBgB,GAA+CkC,IASxE,GADAjP,GAAYS,WAPO0O,GACb,QACkB,QAAlBv8L,GACI,OACkB,QAAlBA,GACI,OACA,aAEW77C,IAArBg1O,GAEA,KAAO,0EAAyEkD,OAEpF,QAASt9N,GAAI,EAAGA,GAAI05N,KAAa15N,GAAG,CAChC,MAAQyuN,cAAYC,iBAAiBL,GAAYl6F,SAASn0H,IAChD,IAANA,KACA8oL,EAAW,UAAS2lC,gBAAwBC,OAAiB5lC,KAEjEvmM,KAAK6rO,8BAA8BtlO,EAAMulO,GAAaruN,GAAGo6N,GAAkBmD,IAAuB5oD,EACtG,CACJ,CACA,OAAOmU,CACX,CAEA+Q,cAAc36I,GACV,MAAMu+K,EAAgB,yBACtB,IAAIhgM,EACJ,KAA8C,QAAtCA,EAAQggM,EAAc1mC,KAAK73I,KAC/BA,EAAOA,EAAK13D,QAAQ,IAAI08L,OAAOzmJ,EAAM,GAAI,KAAMA,EAAM,IAEzD,OAAOyhB,CACX,CACA+7K,gBAAgB/kD,EAAYk9B,GACxB,MAAMunB,EAAgBvnB,EAAa/rL,QAAQ,4BAA8B,IAAM9kC,KAAK4yO,SAC7E,kLAKD,GAENj/C,EAAa3zL,KAAKm7O,iBAAiBxnD,GAAY,GAC/Ck9B,EAAe7wN,KAAKm7O,iBAAiBtqB,GAAc,GAEnDl9B,EAAa3zL,KAAKo7O,sBAAsBznD,GAAY,GACpDk9B,EAAe7wN,KAAKo7O,sBAAsBvqB,GAAc,GAExD,MAAM+nB,EAAc54O,KAAKuqO,oBAEzB1Z,EAAe+nB,EAAc/nB,EAG7Bl9B,GADAA,GAHAA,EAAailD,EAAcjlD,GAGH1uL,QAAQ,+BAAgC,mBACxCA,QAAQ,YAAa,cAC7C0uL,EAAa3zL,KAAKq7O,6BAA6B1nD,GAC/C,IAAI2nD,EAAe,wHACft7O,KAAKo6O,qBAAqB1kO,OAAS,IACnC4lO,GAAgBt7O,KAAKo6O,qBAAqBlwO,KAAK,OAEnDoxO,GAAgB,mCAAqCt7O,KAAKu6O,sBAAwB,IAAM,IAAM,qBAC1Fv6O,KAAKu6O,wBACLe,GAAgB,sEAChBA,GAAgBt7O,KAAKq6O,gBAAgBnwO,KAAK,MAC1CoxO,GAAgB,sDAEpB,IAAIC,EAAgB,wEAChBv7O,KAAKw6O,cAAc9kO,OAAS,IAC5B6lO,GAAiBv7O,KAAKw6O,cAActwO,KAAK,OAE7CqxO,GAAiB,uDACjB5nD,EAAa2nD,EAAeC,EAAgB5nD,EAC5C,IAAI6nD,EAA0B,mBAAkBx7O,KAAKu6O,sBAAwB,IAAM,gBAC/Ev6O,KAAKu6O,wBACLiB,GAA0B,qHAC1BA,GAA0Bx7O,KAAKs6O,8BAA8BpwO,KAAK,MAClEsxO,GAA0B,MAE9B,MAAMC,GAAuBz7O,KAAK4yO,SAC3B,0BACA,uGACP,IAAI8I,IAAkF,IAA9D/nD,EAAW7uJ,QAAS,uCAC5C6uJ,GACK+nD,GAAoB,4CAA8C,IAC/D,gDACAxoC,GAA4Bvf,EAAY,UAAW6nD,EAAwBC,IAGnF5qB,GADAA,EAAeA,EAAa5rN,QAAQ,+BAAgC,mBACxCA,QAAQ,YAAa,cACjD4rN,EAAe7wN,KAAKq7O,6BAA6BxqB,GAC5C7wN,KAAK4yO,WACN/hB,EAAeA,EAAa5rN,QAAQ,QAAS,+BAEjD,IAAI02O,GAAiB,sHACjB37O,KAAKw6O,cAAc9kO,OAAS,IAC5BimO,IAAkB37O,KAAKw6O,cAActwO,KAAK,OAE9CyxO,IAAkB,wDAClB,IAAIC,GAAkB,6BAEtB,MAAMC,GAAY,6BAClB,IAAI3gM,GAAQ21K,EAAa31K,MAAM,IAAIymJ,OAAOk6C,GAAY,IAAK,MACvDC,GAAgB,EACpB,GAAI5gM,GAAO,CACP0gM,IAAoB,cAAaE,+BACjCA,KACA,QAASnhO,GAAQ,EAAGA,GAAQ,EAAGA,KAC3BugC,GAAQ21K,EAAa31K,MAAM,IAAIymJ,OAAOk6C,GAAYlhO,GAAO,MACrDugC,KACA0gM,IAAoB,cAAaE,eAA0BA,oBAC3DA,OAGsC,IAA1CjrB,EAAa/rL,QAAQ,mBACrB82M,IAAoB,eAAcE,2BAClCA,KAER,CAGA5gM,GAAQ21K,EAAa31K,MADP,mBAEVA,KACA0gM,IAAoB,cAAaE,6BACjCF,IAAoB,cAAaE,kCACjCF,IAAoB,cAAaE,kCAEf,IAAlBA,KACAF,IAAmB,sCACnBE,MAGJ,IAAIC,IAAe,EACfjhO,GAAM,EACV,OAAQihO,KACJjhO,GAAM+1M,EAAa/rL,QAxTA,4BAwTgChqB,IAC/CA,GAAM,KAFQ,CAKlB,MAAMkhO,GAAYlhO,GAElB,IADAihO,IAAe,EACRjhO,GAAM,GAAkC,OAA7B+1M,EAAapyF,OAAO3jH,KAAe,CACjD,GAAiC,MAA7B+1M,EAAapyF,OAAO3jH,KAAiD,MAAjC+1M,EAAapyF,OAAO3jH,GAAM,GAAY,CAC1EihO,IAAe,EACf,KACJ,CACAjhO,IACJ,CACAA,GAAMkhO,GAAYC,EACtB,CACIF,KACAH,IAAmB,4CAEvBA,IAAmB,wDAEnB,MAAMM,GAAuB,gCAAkC9D,EAE/DsD,WAAoF,KAHpF7qB,EAAe8qB,GAAiBC,GAAkB/qB,GAGjB/rL,QAAS,uCAC1C+rL,GACK6qB,GAAoB,4CAA8C,IAC/D,gDACAxoC,GAA4B2d,EAAc,UAAWqrB,GALlC,6BAM3Bl8O,KAAK+qO,uBACL/qO,KAAK0rO,6BACL1rO,KAAKqqO,yBAAyBrzB,qCAAuC,CAAC,EAC/D,CAAErjB,aAAYk9B,eACzB,CACAia,yBAAyBvkO,EAAMkyO,GAC3B,IAAI0D,EAAgB,GAChB39E,EAAO,UAASj4J,QACpB,UAAW2qO,KAAmBlxO,KAAKqqO,yBAAyBC,iBAAkB,CAC1E,MAAMl4N,EAAO8+N,EAAgB9+N,KAAKnN,QAAQ,iBAAkB,MAE5D,GAAIisO,EAAgBx7N,OAAS,EACzB,GAFSs0N,GAAsB+C,aAAa36N,IAEhC,EAAG,CACX,MAAMgqO,GAAoB,GAAE71O,KAAQvG,KAAK06O,sBAAsBhlO,qBAC/DymO,GAAkB,UAASC,wEAEjBhqO,4BAEVpS,KAAK06O,sBAAsBz8N,KAAKizN,EAAgB3qO,MAChDi4J,GAAQ,eAAc0yE,EAAgB3qO,gBAAgB61O,OAAqBlL,EAAgBx7N,YAC/F,MAEI8oJ,GAAQ,IAAG0yE,EAAgB3qO,gBAAgB2qO,EAAgB9+N,SAAS8+N,EAAgBx7N,kBAIxF8oJ,GAAQ,KAAI0yE,EAAgB3qO,UAAU2qO,EAAgB9+N,SAE9D,CACAosJ,UAAO,OACPA,EAAO,GAAE29E,MAAkB39E,IAC3BA,GAAQ,UAASi6E,EAAyB9N,QAAQuB,wBAAwBuM,EAAyB9N,QAAQwB,yCAAmD5lO,OACvJi4J,CACX,CACA28E,iBAAiBx+K,EAAMsvK,GACnB,MAAMoQ,EAAgB,8DAEtB,OAAa,CACT,MAAMnhM,EAAQmhM,EAAc7nC,KAAK73I,GACjC,GAAc,OAAVzhB,EACA,MAEJ,MAAM30C,EAAO20C,EAAM,GACbo8L,EAAcp8L,EAAM,GACpBohM,EAAmB/1O,EAAKmP,OAAU,EAClC6mO,GAAch2O,EAAKo7E,YAAa,aAAc26J,EAAmB/1O,EAAKk7E,UAAU,EAAG66J,GAAoB,KACvG9E,GAAqC,uBAAhBF,EAAuC,aAAmE,YACrI,GAAIiF,GAAa,CACb,MAAMzQ,GAAc9rO,KAAKqqO,yBAAyBuG,kBAAkB2L,IAChEzQ,KACAA,GAAYsL,iBAAkB,EAEtC,CACA,IAAIzK,GAAc3sO,KAAKqqO,yBAAyB8I,kBAAkB5sO,GAC7DomO,KACDA,GAAc,CACVhC,QAAS3qO,KAAKqqO,yBAAyBO,wBACvCx4N,KAAMolO,IAEVx3O,KAAKqqO,yBAAyB8I,kBAAkB5sO,GAAQomO,IAE5D3sO,KAAK0sO,8BAA8BnmO,EAAMomO,GAAaV,GACtD,MAAM34B,GAAQ32I,EAAK8kB,UAAU,EAAGvmC,EAAMvgC,OAChC6hO,GAAc,UAAS7P,GAAYhC,QAAQuB,wBAAwBS,GAAYhC,QAAQwB,iBACvF54B,GAAQ52I,EAAK8kB,UAAUvmC,EAAMvgC,OACnCgiD,EAAO22I,GAAQkpC,GAAajpC,GAC5B8oC,EAActhM,WAAayhM,GAAW9mO,MAC1C,CACA,OAAOinD,CACX,CACAy+K,sBAAsBz+K,EAAMsvK,GACxB,MAAMwQ,EAA0B,oFAEhC,OAAa,CACT,MAAMvhM,EAAQuhM,EAAwBjoC,KAAK73I,GAC3C,GAAc,OAAVzhB,EACA,MAEJ,MAAM9oC,EAAO8oC,EAAM,GACbwhM,EAAaxhM,EAAM,GACzB,IAAI30C,EAAO20C,EAAM,GACjB,MAAMyhM,GAAazhM,EAAM,GACzB,IAAI0hM,GAAa58O,KAAKqqO,yBAAyBK,iBAAiBnkO,GAChE,IAAKq2O,GAAY,CACb,MAAM5E,GAAoB,YAAT5lO,EAAqBmgO,GAA8BC,UAAUmK,IAAc,KAC5F,IAAIhS,GACAqN,IACAzxO,EAAOo2O,GACPhS,GAAUqN,GAASrN,SACQ,IAAvBA,GAAQuB,aACRvB,GAAU3qO,KAAKqqO,yBAAyBK,iBAAiBnkO,IAAOokO,QAC3DA,KACDA,GAAU3qO,KAAKqqO,yBAAyBO,2BAKhDD,GAAU3qO,KAAKqqO,yBAAyBO,wBAE5CgS,GAAa,CAAEjS,YACf3qO,KAAKqqO,yBAAyBK,iBAAiBnkO,GAAQq2O,EAC3D,CACA58O,KAAK6qO,6BAA6BtkO,EAAMvG,KAAKqqO,yBAAyBK,iBAAiBnkO,GAAsB,eAAfm2O,EACxF,UACS,YAATtqO,EACI,oBACA,UAA2D65N,GACrE,MAAMC,GAAa0Q,GAAWjS,QAAQuB,WAChCC,GAAeyQ,GAAWjS,QAAQwB,aAClC74B,GAAQ32I,EAAK8kB,UAAU,EAAGvmC,EAAMvgC,OAChC6hO,GAAc,UAAStQ,gBAAwBC,OAC/C54B,GAAQ52I,EAAK8kB,UAAUvmC,EAAMvgC,OACnCgiD,EAAO22I,GAAQkpC,GAAajpC,GAC5BkpC,EAAwB1hM,WAAayhM,GAAW9mO,MACpD,CACA,OAAOinD,CACX,CACA0+K,6BAA6B1+K,GACzB,UAAWkgL,KAAoB78O,KAAK06O,sBAChC/9K,EAAOA,EAAK13D,QAAQ,IAAI08L,OAAQ,GAAEk7C,mBAAmC,KAAO,GAAEA,YAElF,OAAOlgL,CACX,ECxdG,MAAMmgL,GACT,sBAAI52C,GACA,OAAOlmM,KAAK+8O,cAChB,CACAC,eAAeriO,GACX,OAAO3a,KAAKi9O,qBAAqBtiO,IAAU,IAC/C,CACAuiO,eAAe32C,EAAS5rL,GACf3a,KAAKi9O,qBACNj9O,KAAKi9O,mBAAqB,IAE9Bj9O,KAAKi9O,mBAAmBtiO,GAAS4rL,CACrC,CACA42C,mBAAmBxiO,GACf,GAAI3a,KAAKi9O,mBACL,GAAItiO,EACA3a,KAAKi9O,mBAAmBtiO,IAAQ0L,iBACzBrmB,KAAKi9O,mBAAmBtiO,OAE9B,CACD,UAAW4rL,KAAWvmM,KAAKi9O,mBACvB12C,GAASlgL,UAEbrmB,KAAKi9O,mBAAqB,IAC9B,CAER,CACAp9O,YAAYk9M,EAAkB,MAE1B/8M,KAAKo9O,sBAAuB,EAC5Bp9O,KAAKuvB,OAAS,aACdvvB,KAAKq9O,cAAgB,EACrBr9O,KAAKs9O,wBAA0B,EAC/Bt9O,KAAK+8O,eAAiBhgC,EACtB/8M,KAAKi9O,mBAAqB,KAC1Bj9O,KAAK+uE,KAAO,KACZ/uE,KAAKu9O,eAAiB,IAC1B,CACArgO,IAAI+xL,GACAjvM,KAAK+8O,eAAiB9tC,CAC1B,CACA+N,SAASwgC,EAAgBl5G,EAAiBqoE,EAAWrD,EAAQC,EAAM9uK,EAAOC,EAAQ+pG,IAC9E,IAAI6nG,GAAgB,KAChBmR,GAAkB,EAClBn0C,GACAgjC,GAAgB3/B,EAAY,aAAoE,OAChG8wC,GAAkB,GAAKh5G,IAAS,IAE3B8kE,GACL+iC,GAAgB,KAChBmR,GAAkB,GAEb9wC,IACL2/B,GAAgB,WAChBmR,GAAkBh5G,IAEtB,MAAMl1G,GAASk2M,GAAoBc,mBAAmBvmO,KAAKuvB,QACrDmuN,GAASjY,GAAoBa,0BAA0BtmO,KAAKuvB,QAAU,aAA6D,MACzIvvB,KAAK29O,WAAW,CACZptO,MAAQ,cAAag5L,EAAO,KAAOD,EAAS,OAAS,OAAOqD,EAAY,SAAW8wC,GAAkB,MAAMhjN,KAASC,KAAU4pG,EAAkB,QAAU,YAAYtkI,KAAKuvB,UAAU+8M,KACrL/8M,UACAy8M,UAAWM,GACXsR,cAAet5G,KAAkBqhG,UAAMpoN,KAAKk/B,IAAIhiB,EAAOC,IAAW,EAAI,EACtEmjN,eAAgB,EAChBC,aAAc,EACdL,mBACAC,WAER,CACAC,WAAWI,EAAYC,GAAuB,GAE1C,GADAh+O,KAAK+uE,KAAO/uE,KAAK+8O,eAAeY,WAAWI,GACvCC,GAAwBD,EAAY,CACpC,MAAME,EAAiBF,EAAWH,cAClCG,EAAWH,cAAgB,EAC3B59O,KAAKu9O,eAAiBv9O,KAAK+8O,eAAeY,WAAWI,GACrDA,EAAWH,cAAgBK,CAC/B,CACJ,CACA5qO,QACIrT,KAAK+8O,eAAiB,KACtB/8O,KAAKi9O,mBAAqB,KAC1Bj9O,KAAK+uE,KAAO,KACZ/uE,KAAKu9O,eAAiB,IAC1B,CACAtgC,UACIj9M,KAAK+8O,gBAAgB12N,UACrBrmB,KAAKm9O,qBACLn9O,KAAKk+O,yBAAyB73N,UAC9BrmB,KAAKqT,OACT,EChEJ,MAuBM8qO,GAAuC,+mBAsCvCC,GAA8CD,GAqGpD,IAAIE,GACH,SAAUA,GACPA,SAAaA,EAAaC,OAAY,GAAK,SAC3CD,EAAaA,EAAaE,wBAA6B,GAAK,0BAC5DF,EAAaA,EAAaG,MAAW,GAAK,QAC1CH,EAAaA,EAAaI,gCAAqC,GAAK,kCAJ7DJ,CAKX,CALC,CAKEA,IAAgC,CAAC,GAChCK,GACH,SAAUA,GACPA,SAAkBA,EAAkBC,YAAiB,GAAK,cAC1DD,EAAkBA,EAAkBE,QAAa,GAAK,UAF/CF,CAGX,CAHC,CAGEA,IAA0C,CAAC,GAC9C,MAAMG,GAAyB,CAC3B,CAAEpgF,OA/KsB,meA+KM98J,SAnKJ,iQAoK1B,CAAE88J,OAAQ0/E,GAAqCx8O,SAvIJ,4kBAwI3C,CAAE88J,OArFqB,4RAqFM98J,SA7EJ,yKA8EzB,CAAE88J,OAAQ2/E,GAA6Cz8O,SApHJ,s9BA0H1Cm9O,GAAiC,CAC1C,GAAI,EACJC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,QAAS,EACTC,QAAS,EACTC,SAAU,EACVC,SAAU,EACVC,QAAS,EACTC,QAAS,EACTC,QAAS,GACTC,QAAS,GACTC,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,UAAW,GACXC,WAAY,GACZ,kBAAmB,GACnBC,UAAW,GACXC,UAAW,GACXC,WAAY,GACZ,kBAAmB,GACnBC,YAAa,GACbC,aAAc,GAEdC,SAAU,GACVC,SAAU,GACVC,UAAW,GACXC,WAAY,GACZC,WAAY,GACZC,YAAa,GACbC,WAAY,GACZC,WAAY,GACZC,YAAa,GACbC,SAAU,GACVC,aAAc,GACdC,YAAa,GACb,uBAAwB,GACxBC,aAAc,GACd,wBAAyB,IAGtB,MAAMC,GAITphP,YAAY6qI,EAAQw2G,EAAQC,EAAeC,GASvC,GARAphP,KAAKqhP,WAAa,CAAC,EACnBrhP,KAAKshP,iBAAmB,GACxBthP,KAAKuhP,gBAAkB,CAAC,EACxBvhP,KAAKwhP,sBAAwB,GAC7BxhP,KAAKyhP,yBAA2B,GAChCzhP,KAAKqxK,QAAU3mC,EACf1qI,KAAK0hP,QAAUR,EACflhP,KAAK2hP,eAAiBR,GACkG,IAApHC,EAAkBt8M,QAAQ,4BAA8F,CACxH,MAAMwC,EAAOnzB,OAAOmzB,KAAKw3M,IACzBA,GAA+B8C,cAAqE9C,GAA+Bx3M,EAAKA,EAAK5xB,OAAS,IAAM,CAChK,CACA1V,KAAK6hP,eAAiBX,EAAOY,cAAc,CAAEC,UAAW,WACxD/hP,KAAKgiP,cAAgBd,EAAOY,cAAc,CAAEC,UAAW,WACvD/hP,KAAKiiP,gBAAkBjiP,KAAK2hP,eAAeO,aAAa,GAAOC,GAA4BvY,QAAUuY,GAA4B1Y,QAAS,oBAAoBvjC,mBAC9JlmM,KAAKoiP,aAAa,cAClBpiP,KAAKqiP,kBAAkB,aAC3B,CACAD,aAAa7yN,EAAQnd,EAAOisO,GAAaC,OAAQ79K,GAC7C,MAAM9lD,EAAQvI,IAASisO,GAAaC,OAC9B,EACAlsO,IAASisO,GAAaE,0BAChB99K,EAAOgmI,QAAU,EAAI,IAAM,KAAOhmI,EAAO6hL,iBAAmB,EAAI,IAAM,GACxElwO,IAASisO,GAAaG,MAClB,EACApsO,IAASisO,GAAaI,kCAChBh+K,EAAOgmI,QAAU,EAAI,IAAM,KAAOhmI,EAAO6hL,iBAAmB,EAAI,IAAM,GACxE,EACbtiP,KAAKqhP,WAAW9xN,KACjBvvB,KAAKqhP,WAAW9xN,GAAU,IAE9B,IAAIgzN,EAAiBviP,KAAKqhP,WAAW9xN,GAAQ5U,GAC7C,IAAK4nO,EAAgB,CACjB,IAAIlyD,EAAU,IACVj+K,IAASisO,GAAaE,yBAA2BnsO,IAASisO,GAAaI,mCACnEh+K,EAAOgmI,UACPpW,GAAW,qBAEX5vH,EAAO6hL,mBACPjyD,GAAW,+BAGnB,IAAImyD,EAAUxiP,KAAKshP,iBAAiB3mO,GACpC,IAAK6nO,EAAS,CACV,IAAI7uD,GAAakrD,GAAuBzsO,GAAMqsJ,OAC1CoyD,GAAeguB,GAAuBzsO,GAAMzQ,SAChD,MAAMuwL,GAAmB,CACrB7B,QAASA,EAAQtrJ,MAAM,MACvBotJ,gBAAiB,KACjBC,YAAY,EACZC,8BAA8B,EAC9BC,UAAWtyL,KAAKqxK,QAAQoxE,oBAAoB,GAC5ClwD,wBAAwB,EACxBC,kBAAmB,GACnBC,qBAAsB,CAAC,EACvBn9B,SAAiC,IAAvBt1J,KAAKqxK,QAAQ/b,SAAepsJ,WACtCwpL,aAAc1yL,KAAKqxK,QAAQshB,mBAC3BC,kBAAmB5yL,KAAKqxK,QAAQ0xC,4BAA4B,GAA6B,GACzFlwB,gBAAiB7yL,KAAKqxK,QAAQwhB,gBAC9BC,sBAAuB9yL,KAAKqxK,QAAQyhB,wBAExCM,SAAWlB,IAEXA,GAAiBI,UAAUsgD,UAAW,KACtC8P,OAAQ/uD,GAAYzB,GAAmBywD,KACnChvD,GAAagvD,IACd3iP,KAAKqxK,SACR6gB,GAAiBE,YAAa,KAC9BswD,OAAQ7xB,GAAc3+B,GAAmB0wD,KACrC/xB,GAAe+xB,IAChB5iP,KAAKqxK,SACR,MAAMwxE,MAAQpvD,OAASE,GAAYk9B,GAAc3+B,IAEjDA,GAAiBI,UAAUsgD,UAAW,EACtC,MAAMkQ,GAAe9iP,KAAK0hP,QAAQqB,mBAAmB,CACjDpmL,KAAMkmL,GAAMlvD,aAEVqvD,GAAiBhjP,KAAK0hP,QAAQqB,mBAAmB,CACnDpmL,KAAMkmL,GAAMhyB,eAEhB2xB,EAAUxiP,KAAKshP,iBAAiB3mO,GAAS,CAACmoO,GAAcE,GAC5D,CACA,MAAMC,GAAWjjP,KAAK0hP,QAAQwB,qBAAqB,CAC/CC,OAAQ,OACR1kF,OAAQ,CACJ2kF,OAAQZ,EAAQ,GAChBlxD,WAAY,QAEhB3vL,SAAU,CACNyhP,OAAQZ,EAAQ,GAChBlxD,WAAY,OACZ8Y,QAAS,CACL,CACI76K,YAIZ8zN,UAAW,CACPC,SAAU,iBACVC,iBAAkB,YAG1BhB,EAAiBviP,KAAKqhP,WAAW9xN,GAAQ5U,GAAS,CAACsoO,GAAUA,GAASO,mBAAmB,GAC7F,CACA,OAAOjB,CACX,CACAF,kBAAkB9yN,EAAQnd,EAAOssO,GAAkBC,aAC/C,MAAMhkO,EAAQvI,IAASssO,GAAkBE,QAAU,EAAS,EACvD5+O,KAAKuhP,gBAAgBhyN,KACtBvvB,KAAKuhP,gBAAgBhyN,GAAU,IAEnC,IAAIgzN,EAAiBviP,KAAKuhP,gBAAgBhyN,GAAQ5U,GAClD,IAAK4nO,EAAgB,CACjB,IAAIC,EAAUxiP,KAAKwhP,sBAAsB7mO,GACzC,IAAK6nO,EAAS,CACV,MAAMM,EAAe9iP,KAAK0hP,QAAQqB,mBAAmB,CACjDpmL,KA/OoB,2vBAiPlBqmL,GAAiBhjP,KAAK0hP,QAAQqB,mBAAmB,CACnDpmL,KAAgB,IAAVhiD,EAnNgB,iUAWO,gWA0MjC6nO,EAAUxiP,KAAKwhP,sBAAsB7mO,GAAS,CAACmoO,EAAcE,GACjE,CACA,MAAMC,EAAWjjP,KAAK0hP,QAAQwB,qBAAqB,CAC/C3yO,MAAQ,sBAAqBvQ,KAAKqxK,QAAQwR,+BAA+BtzJ,KAAoB,IAAV5U,EAAc,cAAgB,YACjHwoO,OAAQ,OACR1kF,OAAQ,CACJ2kF,OAAQZ,EAAQ,GAChBlxD,WAAY,QAEhB3vL,SAAU,CACNyhP,OAAQZ,EAAQ,GAChBlxD,WAAY,OACZ8Y,QAAS,CACL,CACI76K,YAIZ8zN,UAAW,CACPC,SAAU,iBACVC,iBAAkB,YAG1BhB,EAAiBviP,KAAKuhP,gBAAgBhyN,GAAQ5U,GAAS,CAACsoO,EAAUA,EAASO,mBAAmB,GAClG,CACA,OAAOjB,CACX,CACAkB,kBAAkBjlK,GACdx+E,KAAK0jP,2BAA6BllK,CACtC,CACAmlK,mBAAmBn9C,EAAOD,EAASh3K,EAAQk3K,GAAU,EAAO0hC,GACxD,MAAMyb,OAA0C/gP,IAAnBslO,GACtB8a,EAAUY,IAAmB7jP,KAAKqiP,kBAAkB9yN,EAAQk3K,EAAUi4C,GAAkBE,QAAUF,GAAkBC,aACvHiF,IACAzb,EAAiBnoO,KAAK0hP,QAAQoC,qBAAqB,CAAC,IAExD3b,EAAe4b,iBAAkB,mCAAkCt9C,KACnE,MACMu9C,GAAuB,CACzBzzO,MAAQ,sBAAqBvQ,KAAKqxK,QAAQwR,+BAA+BtzJ,KAAUk3K,EAAU,UAAY,gBAAgBF,EAAQh2L,MAAQ,IAAMg2L,EAAQh2L,MAAQ,KAC/J0zO,iBAAkB,CACd,CACIl1K,KALkBw3H,EAAQwF,iBAKE7F,mBAAmBy3C,WAAW,CACtDpuN,SACAy8M,UAAW,KACX4R,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdL,gBAAiB,EACjBC,OAAQ,QAEZwG,OAAQ,OACRC,QAAS,WAIfC,GAAcjc,EAAekc,gBAAgBL,IAC7CjG,GAAa,CACfoF,OAAQU,GACR5qL,QAAS,CACL,CACI0xK,QAAS,EACTiB,SAAU5rO,KAAKgiP,eAEnB,CACIrX,QAAS,EACTiB,SAAU5rO,KAAK0hP,QAAQ4C,sBAAsB,CACzCr8M,OAAQu+J,EAAMN,wBAKxBq+C,GAAYvkP,KAAK0hP,QAAQ8C,gBAAgBzG,IAC/CqG,GAAYK,YAAYxB,GACxBmB,GAAYM,aAAa,EAAGH,IAC5BH,GAAYO,KAAK,EAAG,EAAG,EAAG,GAC1BP,GAAYjxJ,MACZg1I,EAAeyc,kBACXhB,IACA5jP,KAAK0hP,QAAQmD,MAAMC,OAAO,CAAC3c,EAAe4c,WAC1C5c,EAAiB,KAEzB,CACA6c,wBAAwBC,EAAiBxqN,EAAOC,EAAQnL,EAAQk3K,GAAU,EAAO67C,GAAmB,EAAOl2D,EAAY,EAAG84D,GAAW,EAAG56C,GAAS,EAAG66C,GAAQ,EAAGC,GAAQ,EAAGC,GAAY,EAAGC,GAAa,EAAGnd,GAEzMod,IACI,MAAMC,GAAwB,IAAdH,GACVzB,QAA0C/gP,IAAnBslO,IACtB8a,GAAUY,IAAmB7jP,KAAKoiP,aAAa7yN,EAAQi2N,GAAUnH,GAAaI,gCAAkCJ,GAAaE,wBAAyB,CACzJ93C,UACA67C,qBAOJ,IAAImD,GAYJ,GAjBAr5D,EAAY7uK,KAAKk/B,IAAI2vI,EAAW,GAC5Bw3D,KACAzb,GAAiBnoO,KAAK0hP,QAAQoC,qBAAqB,CAAC,IAExD3b,GAAe4b,iBAAkB,sCAAqCt9C,sBAA4B67C,KAE9F7c,GAAoBK,kBAAkBmf,IACtCQ,GAAaR,EAAgB/+C,mBACvBO,IAAY67C,GAA+B,IAAXh4C,IAA8B,IAAdle,IAElD64D,OAAkBpiP,KAItB4iP,GAAaR,EACbA,OAAkBpiP,IAEjB4iP,GACD,OAEAD,IACAxlP,KAAK2hP,eAAe+D,WAAW1lP,KAAKiiP,gBAAiB,EAAG,IAAIp0E,aAAa,CAACs3E,GAAOC,GAAOC,GAAWC,KAAc,EAAG,IAExH,MAAMK,GAAwBV,EACxBW,GAAgBD,IAAuBzH,yBACzCl+O,KAAKupI,cAAc,CAAE9uG,QAAOC,SAAQ4vK,OAAQ,IAAK,GAAO,GAAO,GAAO,GAAO,EAAO/6K,EAAQ,EAAG44M,GAAgB,QAA6JtlO,EAAW,iCACrRmhP,GAAuB2B,IAAuBE,6BAA+B,CAC/Et1O,MAAQ,sBAAqBvQ,KAAKqxK,QAAQwR,oCAAoCtzJ,KAAUk3K,EAAU,UAAY,iBAAiB67C,EAAmB,mBAAqB,yBACvK2B,iBAAkB,CACd,CACIl1K,KAAM62K,GAAcjI,WAAW,CAC3BpuN,SACAy8M,UAAW,KACX8R,aAAc,EACdF,cAAe,EACfH,gBAAiB,EACjBI,eAAgB,IAEpBqG,OAAQ,OACRC,QAAS,WAIfC,GAAcjc,GAAekc,gBAAgBL,IACnD,IAAIO,GAAYiB,GAAUG,IAAuBG,8BAAgCH,IAAuBI,sBACxG,IAAKxB,GAAW,CACZ,MAAMxG,GAAa,CACfoF,OAAQU,GACR5qL,QAAS,CACL,CACI0xK,QAAS,EACTiB,SAAU6Z,GAAW9H,WAAW,CAC5BpuN,SACAy8M,UAAW,KACX8R,aAAcoH,GACdtH,cAAe,EACfH,gBAAiBnzC,GACjBuzC,eAAgBzxD,OAK5Bo5D,IACAzH,GAAW9kL,QAAQh7C,KAAK,CACpB0sN,QAAS,EACTiB,SAAU,CACNx9J,OAAQpuE,KAAKiiP,mBAIzBsC,GAAYvkP,KAAK0hP,QAAQ8C,gBAAgBzG,GAC7C,CACAqG,GAAYK,YAAYxB,IACxBmB,GAAYM,aAAa,EAAGH,IAC5BH,GAAYO,KAAK,EAAG,EAAG,EAAG,GAC1BP,GAAYjxJ,MACZg1I,GAAe6d,qBAAqB,CAChCz/C,QAASq/C,IACV,CACCr/C,QAASk/C,GACTP,YACA78O,OAAQ,CACJuK,EAAG,EACH4P,EAAG,EACH0nD,EAAGkiH,IAER,CACC3xJ,QACAC,SACAurN,mBAAoB,IAEpBN,IACAA,GAAsBzH,wBAA0B0H,GAChDD,GAAsBE,4BAA8B7B,GAChDwB,GACAG,GAAsBG,8BAAgCvB,GAGtDoB,GAAsBI,sBAAwBxB,IAIlDvkP,KAAKyhP,yBAAyBxjO,KAAK,CAAC2nO,GAAe,OAEvDzd,GAAeyc,kBACXhB,KACA5jP,KAAK0hP,QAAQmD,MAAMC,OAAO,CAAC3c,GAAe4c,WAC1C5c,GAAiB,KAEzB,CACA+d,gBAAgBC,EAAgB52N,EAAQy0N,EAAsB7b,GAC1D,MAAMyb,OAA0C/gP,IAAnBslO,GACtB8a,EAAUY,GAAmB7jP,KAAKoiP,aAAa7yN,EAAQ8uN,GAAaE,wBAAyB,CAAE93C,SAAS,EAAM67C,kBAAkB,IACnIsB,IACAzb,EAAiBnoO,KAAK0hP,QAAQoC,qBAAqB,CAAC,IAExD3b,EAAe4b,iBAAkB,sCACjC,MAAMK,GAAcjc,EAAekc,gBAAgBL,GAC7CO,GAAYvkP,KAAK0hP,QAAQ8C,gBAAgB,CAC3CrB,OAAQU,EACR5qL,QAAS,CACL,CACI0xK,QAAS,EACTiB,SAAUua,MAItB/B,GAAYK,YAAYxB,GACxBmB,GAAYM,aAAa,EAAGH,IAC5BH,GAAYO,KAAK,EAAG,EAAG,EAAG,GAC1BP,GAAYjxJ,MACZg1I,EAAeyc,kBACXhB,IACA5jP,KAAK0hP,QAAQmD,MAAMC,OAAO,CAAC3c,EAAe4c,WAC1C5c,EAAiB,KAEzB,CAIA5+F,cAAcs1F,EAAaunB,GAAa,EAAO3d,GAAkB,EAAOhiC,GAAU,EAAO67C,GAAmB,EAAO/4C,GAAO,EAAOh6K,EAAS,aAA6Dk3M,GAAc,EAAG0B,GAAgBke,IAAQ,EAAIC,GAAmB,EAAG/1O,IACtQk2N,GAAchB,GAAoBe,UAAUC,IAC5C,MAAMt7B,GAAa0zB,EAAYv0B,QAAU,EACnCxlE,GAAc,CAChBrqG,MAAOokM,EAAYpkM,MACnBC,OAAQmkM,EAAYnkM,OACpBurN,mBAAoB96C,IAElBo7C,GAAuBzH,GAA+BvvN,GAAU,GAAyD,EACzHi3N,GAAqB/gB,GAAoBS,mBAAmB32M,GAC5DquN,GAAgBwI,EAAa3gB,GAAoBC,uBAAuB7G,EAAYpkM,MAAOokM,EAAYnkM,QAAU,EAEvH4rN,IAAoBF,IAAeI,GAAqB,EAA+CD,GAAuB,GACzHC,KAAuBj9C,IAExB+8C,IAA2C,EAAvBC,IAExB,MAAMd,GAAazlP,KAAK0hP,QAAQn4G,cAAc,CAC1Ch5H,MAAQ,sBAAqBvQ,KAAKqxK,QAAQwR,mBAAmB0mB,EAAO,KAAO,QAAQh5L,GAAQA,GAAQ,IAAM,KAAKu0H,GAAYrqG,SAASqqG,GAAYpqG,UAAUoqG,GAAYmhH,sBAAsBG,EAAa,QAAU,YAAY72N,YAAiBk3M,KAC/OptM,KAAMyrG,GACNknG,UAAWziC,EAAO,KAAkD,KACpEh6K,SACA82N,OAXWA,IAAS,EAAIA,GAAQ,GAWhBC,GAChB7f,eACAmX,mBAEJ,OAAInY,GAAoBO,cAAcnH,KAClC7+N,KAAKymP,cAAc5nB,EAAa4mB,GAAY5mB,EAAYpkM,MAAOokM,EAAYnkM,OAAQywK,GAAY57K,EAAQ,EAAG,EAAGk3K,EAAS67C,EAAkB,EAAG,GACvI8D,GAAc3d,GACdzoO,KAAKyoO,gBAAgBgd,GAAYl2N,EAAQquN,GAAe,EAAGr0C,EAAM4+B,KAGlEsd,EACX,CACAvmB,kBAAkBwnB,EAAcN,GAAa,EAAO3d,GAAkB,EAAOhiC,GAAU,EAAO67C,GAAmB,EAAO/yN,EAAS,aAA6Dk3M,EAAc,EAAG0B,GAAgBke,IAAQ,EAAIC,GAAmB,EAAG/1O,IAC7Pk2N,EAAchB,GAAoBe,UAAUC,GAC5C,MAAMhsM,GAAQgrM,GAAoBQ,mBAAmBygB,GAAgBA,EAAa,GAAGjsN,MAAQisN,EAAajsN,MACpGC,GAAS+qM,GAAoBQ,mBAAmBygB,GAAgBA,EAAa,GAAGhsN,OAASgsN,EAAahsN,OACtG6rN,GAAuBzH,GAA+BvvN,GAAU,GAAyD,EACzHi3N,GAAqB/gB,GAAoBS,mBAAmB32M,GAC5DquN,GAAgBwI,EAAa3gB,GAAoBC,uBAAuBjrM,GAAOC,IAAU,EAE/F4rN,IAAoBF,IAAeI,GAAqB,EAA+CD,GAAuB,EACzHC,KAEDF,IAA2C,EAAvBC,IAExB,MAAMd,GAAazlP,KAAK0hP,QAAQn4G,cAAc,CAC1Ch5H,MAAQ,sBAAqBvQ,KAAKqxK,QAAQwR,wBAAwBtyK,GAAQA,GAAQ,IAAM,KAAKkqB,MAASC,QAAY0rN,EAAa,QAAU,YAAY72N,YAAiBk3M,IACtKptM,KAAM,CACFoB,SACAC,UACAurN,mBAAoB,GAExBja,UAAW,KACXz8M,SACA82N,OAfWA,IAAS,EAAIA,GAAQ,GAehBC,GAChB7f,cACAmX,mBAEJ,OAAInY,GAAoBQ,mBAAmBygB,KACvC1mP,KAAK2mP,mBAAmBD,EAAcjB,GAAYhrN,GAAOC,GAAQnL,EAAQk3K,EAAS67C,EAAkB,EAAG,GACnG8D,GAAc3d,GACdzoO,KAAKwoO,oBAAoBid,GAAYl2N,EAAQquN,GAAezV,KAG7Dsd,EACX,CACAjd,oBAAoBid,EAAYl2N,EAAQquN,EAAezV,GACnD,MAAMyb,OAA0C/gP,IAAnBslO,EACzByb,IACAzb,EAAiBnoO,KAAK0hP,QAAQoC,qBAAqB,CAAC,IAExD3b,EAAe4b,iBAAkB,yBAAwBnG,YACzD,QAAS9hN,EAAI,EAAGA,EAAI,IAAKA,EACrB97B,KAAKyoO,gBAAgBgd,EAAYl2N,EAAQquN,EAAe9hN,GAAG,EAAOqsM,GAEtEA,EAAeyc,kBACXhB,IACA5jP,KAAK0hP,QAAQmD,MAAMC,OAAO,CAAC3c,EAAe4c,WAC1C5c,EAAiB,KAEzB,CACAM,gBAAgBwc,EAAiB11N,EAAQquN,EAAexxD,EAAY,EAAGmd,GAAO,EAAO4+B,GACjF,MAAMyb,OAA0C/gP,IAAnBslO,GACtB8a,GAAUY,IAAmB7jP,KAAKoiP,aAAa7yN,GAMtD,IAAIk2N,GAUJ,GAfAr5D,EAAY7uK,KAAKk/B,IAAI2vI,EAAW,GAC5Bw3D,IACAzb,EAAiBnoO,KAAK0hP,QAAQoC,qBAAqB,CAAC,IAExD3b,EAAe4b,iBAAkB,4BAA2B33D,OAAewxD,YAEvEnY,GAAoBK,kBAAkBmf,IACtCQ,GAAaR,EAAgB/+C,mBAC7B++C,EAAgB2B,0BAA4B3B,EAAgB2B,2BAA6B,GACzF3B,EAAgB4B,oBAAsB5B,EAAgB4B,qBAAuB,KAG7EpB,GAAaR,EACbA,OAAkBpiP,IAEjB4iP,GACD,OAEJ,MAAME,GAAwBV,EAC9B,QAASxnO,GAAI,EAAGA,GAAImgO,IAAiBngO,GAAG,CACpC,MAAMumO,GAAuB2B,IAAuBiB,0BAA0Bx6D,KAAa3uK,GAAI,IAAM,CACjGlN,MAAQ,sBAAqBvQ,KAAKqxK,QAAQwR,4BAA4BtzJ,cAAmB68J,UAAkB3uK,KAC3GwmO,iBAAkB,CACd,CACIl1K,KAAM02K,GAAW9H,WAAW,CACxBpuN,SACAy8M,UAAWziC,EAAO,KAAsD,KACxEu0C,aAAcrgO,GACdmgO,cAAe,EACfH,gBAAiB,EACjBI,eAAgBzxD,IAEpB83D,OAAQ,OACRC,QAAS,WAIjBwB,KACAA,GAAsBiB,0BAA0Bx6D,GAAau5D,GAAsBiB,0BAA0Bx6D,IAAc,GAC3Hu5D,GAAsBiB,0BAA0Bx6D,GAAW3uK,GAAI,GAAKumO,IAExE,MAAMI,GAAcjc,EAAekc,gBAAgBL,IAC7CO,GAAYoB,IAAuBkB,oBAAoBz6D,KAAa3uK,GAAI,IAC1Ezd,KAAK0hP,QAAQ8C,gBAAgB,CACzBrB,OAAQU,GACR5qL,QAAS,CACL,CACI0xK,QAAS,EACTiB,SAAU6Z,GAAW9H,WAAW,CAC5BpuN,SACAy8M,UAAWziC,EAAO,KAAsD,KACxEu0C,aAAcrgO,GAAI,EAClBmgO,cAAe,EACfH,gBAAiB,EACjBI,eAAgBzxD,KAGxB,CACIu+C,QAAS,EACTiB,SAAU5rO,KAAK6hP,mBAI3B8D,KACAA,GAAsBkB,oBAAoBz6D,GAAau5D,GAAsBkB,oBAAoBz6D,IAAc,GAC/Gu5D,GAAsBkB,oBAAoBz6D,GAAW3uK,GAAI,GAAK8mO,IAElEH,GAAYK,YAAYxB,IACxBmB,GAAYM,aAAa,EAAGH,IAC5BH,GAAYO,KAAK,EAAG,EAAG,EAAG,GAC1BP,GAAYjxJ,KAChB,CACAg1I,EAAeyc,kBACXhB,IACA5jP,KAAK0hP,QAAQmD,MAAMC,OAAO,CAAC3c,EAAe4c,WAC1C5c,EAAiB,KAEzB,CACA2e,mCAAmCvgD,EAAS9rK,EAAOC,EAAQ+pG,EAAOq3F,EAAeirB,GACxExgD,EAAQwF,mBACTxF,EAAQwF,iBAAmB,IAAI+wC,SAErBj6O,IAAV43B,IACAA,EAAQ8rK,EAAQ9rK,YAEL53B,IAAX63B,IACAA,EAAS6rK,EAAQ7rK,aAEP73B,IAAV4hI,IACAA,EAAQ8hE,EAAQ9hE,OAEpB,MAAMuiH,EAAoBzgD,EAAQwF,iBAC5BsrC,MAA2C,GAAtBvb,GAAiB,IAC5CkrB,EAAkBz3N,OAASk2M,GAAoBU,uBAAuB5/B,EAAQn0L,KAAMm0L,EAAQh3K,OAAQg3K,EAAQyG,gBAC5Gg6C,EAAkB3J,cACM,IAApB92C,EAAQ0gD,SAA6E,IAAnB1gD,EAAQt+J,OACpE,GACoB,KAApBs+J,EAAQ0gD,QACJ,IACA,EACdD,EAAkB1J,wBAA0BjG,GAAmB,EAAsD,EACrH,MAAMrZ,GAAaz3B,EAAQjiE,gBACrB6mE,GAAa1mE,GAAS,EAC5B,IAAI6jG,GAOJ,GALIA,GADyB,OAAzB/hC,EAAQ2gD,aACM3gD,EAAQ2gD,aAGRlpB,GAAayH,GAAoBC,uBAAuBjrM,EAAOC,GAAU,EAEvF6rK,EAAQ+C,OAAQ,CAChB,MAAMm8C,GAAazlP,KAAKk/N,kBAAkB,CAAEzkM,QAAOC,UAAU6rK,EAAQjiE,gBAAiBiiE,EAAQjiE,gBAAiBiiE,EAAQE,SAAS,EAAOugD,EAAkBz3N,OAAQ,EAAGvvB,KAAK0jP,2BAA4BsD,EAAkB3J,cAAe2J,EAAkB1J,wBAAyB/2C,EAAQh2L,OACzRy2O,EAAkB9pO,IAAIuoO,IACtB,MAAMhI,GAAkBl3C,EAAQgD,KAAO,EAAI4B,GACrC57K,GAASk2M,GAAoBc,mBAAmBygB,EAAkBz3N,QAClEmuN,GAASjY,GAAoBa,0BAA0B0gB,EAAkBz3N,QAAU,aAA6D,MAChJy8M,GAAYzlC,EAAQoG,UAAY,aAAoE,OAC1Gq6C,EAAkBrJ,WAAW,CACzBptO,MAAQ,sBAAqBvQ,KAAKqxK,QAAQwR,2BAA2B0jB,EAAQoG,UAAY,SAAW8wC,GAAkB,MAAMhjN,KAASC,KAAUsjM,GAAa,QAAU,YAAYzuM,MAAUy8M,MAAa0R,MAAUn3C,EAAQh2L,OAAS,WACpOgf,UACAy8M,aACA4R,cAAetV,GACfuV,eAAgB,EAChBC,aAAc,EACdL,gBAAiB,EACjBC,WACDrG,GACP,KACK,CACD,MAAMoO,GAAazlP,KAAKupI,cAAc,CAAE9uG,QAAOC,SAAQ4vK,OAAQa,IAAc5E,EAAQjiE,gBAAiBiiE,EAAQjiE,gBAAiBiiE,EAAQE,SAAS,EAAOF,EAAQgD,KAAMy9C,EAAkBz3N,OAAQ,EAAGvvB,KAAK0jP,2BAA4BsD,EAAkB3J,cAAe2J,EAAkB1J,wBAAyB/2C,EAAQh2L,OACvTy2O,EAAkB9pO,IAAIuoO,IACtB,MAAMhI,GAAkBl3C,EAAQgD,KAAO,EAAI4B,GACrC57K,GAASk2M,GAAoBc,mBAAmBygB,EAAkBz3N,QAClEmuN,GAASjY,GAAoBa,0BAA0B0gB,EAAkBz3N,QAAU,aAA6D,MAChJy8M,GAAYzlC,EAAQoG,UACpB,WACApG,EAAQgD,KACJ,KACA,KACVy9C,EAAkBrJ,WAAW,CACzBptO,MAAQ,sBAAqBvQ,KAAKqxK,QAAQwR,uBAAuB0jB,EAAQgD,KAAO,KAAO,OAAOhD,EAAQoG,UAAY,SAAW8wC,GAAkB,MAAMhjN,KAASC,IAAS6rK,EAAQgD,KAAO,IAAM4B,GAAa,MAAM6yB,GAAa,QAAU,YAAYzuM,MAAUy8M,MAAa0R,MAAUn3C,EAAQh2L,OAAS,WACpSgf,UACAy8M,aACA4R,cAAetV,GACfuV,eAAgB,EAChBC,aAAc,EACdL,mBACAC,WACDrG,GACP,CACA9wC,SAAQ9rK,MAAQ8rK,EAAQuG,UAAYryK,EACpC8rK,EAAQ7rK,OAAS6rK,EAAQwG,WAAaryK,EACtC6rK,EAAQ9hE,MAAQ8hE,EAAQqG,UAAYnoE,EAC/BsiH,GACD/mP,KAAKmnP,kBAAkB5gD,EAASA,EAAQyD,SAErCg9C,CACX,CACAG,kBAAkB5gD,EAASyD,EAASo9C,GAAkB,EAAMzsO,EAAQ,GAChE,MAAMqsO,EAAoBzgD,EAAQwF,iBAIlC,GAHIq7C,GACAJ,GAAmB7J,sBAElB6J,IAAsBh9C,GAAW,IAAM,EACxC,OAEJ,MAEMq9C,GAAiBrnP,KAAKupI,cAAc,CAAE9uG,MAF9B8rK,EAAQ9rK,MAE6BC,OADpC6rK,EAAQ7rK,OACoC4vK,OAAQ,IAAK,GAAO,GAAO,GAAO,GAAO,EAAO08C,EAAkBz3N,OAAQy6K,EAAShqM,KAAK0jP,2BAA4B,GAAwD,EAAGn9C,EAAQh2L,MAAQ,OAASg2L,EAAQh2L,WAAQ1N,GACnRmkP,EAAkB9J,eAAemK,GAAgB1sO,EACrD,CAIAgsO,mBAAmBD,EAAcjB,EAAYhrN,EAAOC,EAAQnL,EAAQk3K,GAAU,EAAO67C,GAAmB,EAAO/tE,GAAU,EAAGC,GAAU,GAClI,MAAM8yE,GAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAC9B,QAASxrN,GAAI,EAAGA,GAAIwrN,GAAM5xO,SAAUomB,GAEhC97B,KAAKymP,cADeC,EAAaY,GAAMxrN,KACP2pN,EAAYhrN,EAAOC,EAAQ,EAAGnL,EAAQuM,GAAG,EAAG2qK,EAAS67C,EAAkB/tE,GAASC,GAExH,CAEAiyE,cAAc5nB,EAAat4B,EAAS9rK,EAAOC,EAAQ4vK,EAAQ/6K,EAAQ68J,EAAY,EAAG84D,GAAW,EAAGz+C,IAAU,EAAO67C,IAAmB,EAAO/tE,GAAU,EAAGC,GAAU,EAAG+wE,IACjK,MAAME,GAAahgB,GAAoBM,kBAAkBx/B,GAAWA,EAAQwF,iBAAiB7F,mBAAqBK,EAC5GghD,GAAmB9hB,GAAoBI,8BAA8Bt2M,GACrE01N,GAAkBxf,GAAoBM,kBAAkBx/B,GAAWA,EAAQwF,iBAAmBxF,EAC9FihD,GAAkB,CACpBjhD,QAASk/C,GACTp9O,OAAQ,CACJuK,EAAG2hK,GACH/xJ,EAAGgyJ,GACHtqG,EAAG3sD,KAAKk/B,IAAI2vI,EAAW,IAE3B84D,SAAUA,GACVuC,mBAAoBnF,IAElBoF,GAAgB,CAClBjtN,MAAOld,KAAKC,KAAKid,EAAQ8sN,GAAiB9sN,OAAS8sN,GAAiB9sN,MACpEC,OAAQnd,KAAKC,KAAKkd,EAAS6sN,GAAiB7sN,QAAU6sN,GAAiB7sN,OACvEurN,mBAAoB37C,GAAU,GAElC,QAA+BznM,IAA3Bg8N,EAAYjyJ,WAA0B,CAEtC,MAAM+6K,GAAcpqO,KAAKC,KAAKid,EAAQ8sN,GAAiB9sN,OAAS8sN,GAAiB7xO,OAEjF,GAD+C,IAA/B6H,KAAKC,KAAKmqO,GAAc,OAAeA,GAC1C,CACT,MAAMxf,GAAiBnoO,KAAK0hP,QAAQoC,qBAAqB,CAAC,GACpD11K,GAASpuE,KAAK2hP,eAAeiG,gBAAgB/oB,EAAYjyJ,WAAYu1K,GAA4B5Y,SAAW4Y,GAA4B3Y,SAAS,EAAM,8BAAgCic,GAAa,IAAMA,GAAWl1O,MAAQ,KAC7N+yI,GAAcl1E,GAAOy5K,iBAC3B,IAAIhhN,WAAWy8G,IAAapmI,IAAI2hN,GAChCzwJ,GAAO05K,QACP3f,GAAe4f,oBAAoB,CAC/B35K,OAAQA,GACR6P,OAAQ,EACR0pK,eACAK,aAActtN,GACf8sN,GAAiBE,IACpB1nP,KAAK0hP,QAAQmD,MAAMC,OAAO,CAAC3c,GAAe4c,WAC1C/kP,KAAK2hP,eAAesG,cAAc75K,GACtC,MAEIpuE,KAAK0hP,QAAQmD,MAAMqD,aAAaV,GAAiB3oB,EAAa,CAC1D5gJ,OAAQ,EACR0pK,eACAK,aAActtN,GACfgtN,IAEP,GAAIjhD,IAAW67C,GACX,KAAI7c,GAAoBM,kBAAkBx/B,GAOtC,KAAM,iHAP0C,CAChD,MAAM4hD,GAA0B,IAAZ5zE,IAA6B,IAAZC,IAAiB/5I,IAAU8rK,EAAQ9rK,OAASC,IAAW6rK,EAAQ7rK,OACpG16B,KAAKglP,wBAAwBC,GAAiB1+C,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQnL,EAAQk3K,GAAS67C,GAAkBl2D,EAAW84D,GAAU56C,GAAU,EAAG/1B,GAASC,GAAS2zE,GAAc,EAAI1tN,EAAO0tN,GAAc,EAAIztN,OAAQ73B,EAAW0iP,GACtO,CAIU,CAGlB,SAGQ9+C,GAGA,GAFA+gD,GAAgBC,oBAAqB,EAEjChiB,GAAoBM,kBAAkBx/B,IAAwB,IAAZhyB,IAA6B,IAAZC,IAAiB/5I,IAAU8rK,EAAQ9rK,OAASC,IAAW6rK,EAAQ7rK,OAGlI16B,KAAK0hP,QAAQmD,MAAMuD,2BAA2B,CAAEngN,OAAQ42L,GAAe2oB,GAAiBE,IACxF1nP,KAAKglP,wBAAwBC,GAAiBxqN,EAAOC,EAAQnL,EAAQk3K,GAAS67C,GAAkBl2D,EAAW84D,GAAU56C,GAAU,EAAG,EAAG,EAAG,EAAG,OAAGznM,EAAW0iP,QAExJ,CAED,MAAMpd,GAAiBnoO,KAAK0hP,QAAQoC,qBAAqB,CAAC,GAEpDuE,GAAaroP,KAAKupI,cAAc,CAAE9uG,QAAOC,SAAQ4vK,OAAQ,IAAK,GAAO,GAAO,GAAO,GAAO,EAAO/6K,EAAQ,EAAG44M,GAAgB,OAAoGtlO,EAAW,+BACjP7C,KAAKyhP,yBAAyBxjO,KAAK,CAACoqO,GAAY,OAChDX,GAAczB,mBAAqB,EACnCjmP,KAAK0hP,QAAQmD,MAAMuD,2BAA2B,CAAEngN,OAAQ42L,GAAe,CAAEt4B,QAAS8hD,IAAcX,IAChGA,GAAczB,mBAAqB37C,GAAU,EAE7CtqM,KAAKglP,wBAAwBqD,GAAY5tN,EAAOC,EAAQnL,EAAQk3K,GAAS67C,GAAkBl2D,EAAW84D,GAAU56C,GAAU,EAAG,EAAG,EAAG,EAAG,EAAG69B,GAAgBod,IAEzJpd,GAAe6d,qBAAqB,CAAEz/C,QAAS8hD,IAAcb,GAAiBE,IAC9E1nP,KAAK0hP,QAAQmD,MAAMC,OAAO,CAAC3c,GAAe4c,UAC9C,MAIA/kP,KAAK0hP,QAAQmD,MAAMuD,2BAA2B,CAAEngN,OAAQ42L,GAAe2oB,GAAiBE,GAGpG,CACAY,WAAW/hD,EAAS3zL,EAAG4P,EAAGiY,EAAOC,EAAQnL,EAAQ68J,EAAY,EAAG84D,GAAW,EAAG92K,GAAS,KAAMm6K,IAAmB,GAC5G,MAAMhB,GAAmB9hB,GAAoBI,8BAA8Bt2M,GACrEo4N,GAAcpqO,KAAKC,KAAKid,EAAQ8sN,GAAiB9sN,OAAS8sN,GAAiB7xO,OAC3E8yO,GAAoD,IAA/BjrO,KAAKC,KAAKmqO,GAAc,KAC7CtuN,GAAOmvN,GAAqB9tN,EAC5B+tN,GAAYzoP,KAAK2hP,eAAeiG,gBAAgBvuN,GAAM8oN,GAA4B7Y,QAAU6Y,GAA4B1Y,aAAS5mO,EAAW,2BAA6B0jM,EAAQh2L,MAAQ,IAAMg2L,EAAQh2L,MAAQ,KAC/M43N,GAAiBnoO,KAAK0hP,QAAQoC,qBAAqB,CAAC,GAC1D3b,UAAeugB,oBAAoB,CAC/BniD,UACA2+C,YACA78O,OAAQ,CACJuK,IACA4P,IACA0nD,EAAG3sD,KAAKk/B,IAAI2vI,EAAW,KAE5B,CACCh+G,OAAQq6K,GACRxqK,OAAQ,EACR0pK,YAAaa,IACd,CACC/tN,QACAC,SACAurN,mBAAoB,IAExBjmP,KAAK0hP,QAAQmD,MAAMC,OAAO,CAAC3c,GAAe4c,WACnC/kP,KAAK2hP,eAAegH,mBAAmBF,GAAWpvN,GAAMoB,EAAOC,EAAQitN,GAAaa,GAAoB/iB,GAAoBG,yBAAyBr2M,GAAS,EAAG6+C,IAAQ,EAAMm6K,GAC1L,CAIAK,eAAeriD,GACPk/B,GAAoBM,kBAAkBx/B,GAItCvmM,KAAKyhP,yBAAyBxjO,KAAK,CAHXsoL,EAAQwF,iBACNxF,EAAQsiD,qBAKlC7oP,KAAKyhP,yBAAyBxjO,KAAK,CAACsoL,EAAS,MAErD,CACAuiD,0BACI,QAASrrO,EAAI,EAAGA,EAAIzd,KAAKyhP,yBAAyB/rO,SAAU+H,EAAG,CAC3D,MAAOwxL,EAAiB85C,GAAqB/oP,KAAKyhP,yBAAyBhkO,GACvEwxL,IACIw2B,GAAoBK,kBAAkB72B,GACtCA,EAAgBgO,UAGhBhO,EAAgB5oL,WAGxB0iO,GAAmBtnM,SACvB,CACAzhD,KAAKyhP,yBAAyB/rO,OAAS,CAC3C,EChgCG,MAAMszO,WAAyBrlC,KAClC,UAAIv1I,CAAOA,GACPpuE,KAAKqgJ,QAAUjyE,CACnB,CACAvuE,YAAY+rO,EAAU51C,EAAW,GAC7BnyL,QAEA7D,KAAKipP,UAAW,EAChBjpP,KAAKg2L,SAAWA,EACZ41C,IACA5rO,KAAKqgJ,QAAUurF,EAEvB,CACA,sBAAI1lC,GACA,OAAOlmM,KAAKqgJ,OAChB,8BCVG,MAAM6oG,GACT,mBAAOC,CAAa/6K,GAChB,YAAqCvrE,IAA9BurE,EAAO83H,kBAClB,CACA,qBAAOkjD,CAAeC,EAAOC,EAAS,IAClC,IAAIjtO,EAASitO,EACb,QAAS7rO,EAAI,EAAGA,GAAK,IAAKA,EAClB4rO,EAAS,GAAK5rO,IACVpB,IACAA,GAAU,KAEdA,GAAU8lO,GAA4B,GAAK1kO,IAGnD,OAAOpB,CACX,CACAxc,YAAY6qI,EAAQw2G,GAChBlhP,KAAKupP,wBAA0B,GAC/BvpP,KAAKqxK,QAAU3mC,EACf1qI,KAAK0hP,QAAUR,CACnB,CACA0G,gBAAgB4B,EAAYH,EAAOI,GAAmB,EAAOl5O,GACzD,MAAMm5O,OAA0C7mP,IAA1B2mP,EAAW58K,WAA4B48K,EAAW58K,WAAa,GAAK,EAAM48K,EAAa,GAAK,EAC5GG,EAA2B,CAC7Bp5O,MAAO,sBAAwBvQ,KAAKqxK,QAAQwR,SAAW,IAAMqmE,GAAoBE,eAAeC,EAAO94O,GAAS,UAAY,QAAUm5O,EACtID,mBACApwN,KAAMqwN,EACNrD,MAAOgD,GAEX,OAAOrpP,KAAK0hP,QAAQQ,aAAayH,EACrC,CACAzH,aAAasH,EAAYH,EAAO94O,GAC5B,MAAMg/D,OAAmC1sE,IAA1B2mP,EAAW58K,WACpBg9K,EAAa,IAAIZ,GACjBa,EAAU,sBAAwBD,EAAW/mE,SACnD+mE,SAAWx7K,OAASpuE,KAAK4nP,gBAAgB4B,EAAYH,OAAOxmP,EAAW0N,EAAQs5O,EAAU,IAAMt5O,EAAQs5O,GACvGD,EAAWj7O,WAAa,EACxBi7O,EAAW5zD,SAAWzmH,EAASi6K,EAAW58K,WAAa48K,EACvDI,EAAWX,SAAWjpP,KAAKqxK,QAAQwR,SAC/BtzG,GACAvvE,KAAK8pP,WAAWF,EAAY,EAAGJ,GAE5BI,CACX,CACAlE,WAAWt3K,EAAQ27K,EAAezvN,EAAK0vN,EAAep9K,GAClD5sE,KAAK0hP,QAAQmD,MAAM5yC,YAAY7jI,EAAQ27K,EAAezvN,EAAI8zC,OAAQ47K,EAAep9K,EACrF,CACAk9K,WAAWF,EAAYG,EAAezvN,EAAK0vN,EAAgB,EAAGp9K,EAAa,GACvE,MAAMwB,EAASw7K,EAAW1jD,mBAC1Bt5H,EAAaA,GAActyC,EAAIsyC,WAC/BA,EAAarvD,KAAKi/B,IAAIowB,EAAYg9K,EAAW5zD,SAAW+zD,GAExD,IAAIpsJ,EAAarjE,EAAI+zC,WAAa27K,EAC9BC,GAAWtsJ,EAAa/wB,EAE5B,MAAM88K,GAAiB98K,EAAa,GAAK,EACzC,GAAI88K,KAAkB98K,EAAY,CAC9B,MAAMs9K,GAAW,IAAIrjN,WAAWvM,EAAI8zC,OAAO1wD,MAAMigF,EAAYssJ,MAC7D3vN,EAAM,IAAIuM,WAAW6iN,KACjBxsO,IAAIgtO,IACRF,EAAgB,EAChBrsJ,EAAa,EACbssJ,GAAWP,GACX98K,EAAa88K,EACjB,CAEA,MAAMS,GAAW,SACjB,IAAIlsK,GAAS,EACb,KAAOgsK,IAAYtsJ,EAAa1f,IAAUksK,IACtCnqP,KAAK0hP,QAAQmD,MAAM5yC,YAAY7jI,EAAQ27K,EAAgB9rK,GAAQ3jD,EAAI8zC,OAAQuvB,EAAa1f,GAAQksK,IAChGlsK,IAAUksK,GAEdnqP,KAAK0hP,QAAQmD,MAAM5yC,YAAY7jI,EAAQ27K,EAAgB9rK,GAAQ3jD,EAAI8zC,OAAQuvB,EAAa1f,GAAQrR,EAAaqR,GACjH,CACAmsK,oCAAoCC,EAAY/mG,EAAagnG,GACpDA,IACDA,EAAY,IAAIz8E,aAAaw8E,IAEjC,MAAME,EAAU,IAAIzjN,YAAYw8G,GAChC,KAAO+mG,KACHC,EAAUD,IAAU,EAAIG,OAAcD,EAAQF,IAElD,OAAOC,CACX,CACA3B,mBAAmBF,EAAWpvN,EAAMoB,EAAOC,EAAQitN,EAAaa,EAAoBp2O,EAAO,EAAG6rE,GAAS,EAAG7P,GAAS,KAAMq8K,IAAgB,EAAMlC,IAAmB,GAC9J,MAAMmC,GAAuB,IAATt4O,EAAa,EAAa,IAATA,EAAa,EAAI,EAChD62O,GAAWjpP,KAAKqxK,QAAQwR,SAC9B,OAAO,IAAIlrK,QAAQ,CAACC,GAASiwD,MACzB4gL,EAAUkC,SAAS,EAAsC1sK,GAAQ5kD,GAAMh5B,KAAK,KACxE,MAAMuqP,GAAkBnC,EAAUZ,eAAe5pK,GAAQ5kD,GACzD,IAAI5zB,GAAO2oE,GACX,GAAIm6K,GAEI9iP,GADS,OAATA,IACAA,EAAOolP,OAA2Bz4O,EAAMinB,GAAM,EAAMuxN,KAGpDnlP,EAAOolP,OAA2Bz4O,EAAM3M,GAAK2oE,YAAQvrE,EAAW+nP,SAAe,GAItE,OAATnlP,GACA,OAAQilP,IACJ,KAAK,EACDjlP,GAAO,IAAIohC,WAAWxN,GACtB5zB,GAAKyX,IAAI,IAAI2pB,WAAW+jN,KACxB,MACJ,KAAK,EAEDnlP,GAAOzF,KAAKoqP,oCAAoC/wN,EAAO,EAAGuxN,IAC1D,MACJ,KAAK,EACDnlP,GAAO,IAAIooK,aAAax0I,EAAO,GAC/B5zB,GAAKyX,IAAI,IAAI2wJ,aAAa+8E,UAKlC,OAAQF,IACJ,KAAK,EACDjlP,GAAO,IAAIohC,WAAWphC,GAAK2oE,QAC3B3oE,GAAKyX,IAAI,IAAI2pB,WAAW+jN,KACxB,MACJ,KAAK,EAEDnlP,GAAOzF,KAAKoqP,oCAAoC/wN,EAAO,EAAGuxN,GAAiBx8K,IAC3E,MACJ,KAAK,EACD3oE,GAAO,IAAIooK,aAAapoK,GAAK2oE,QAC7B3oE,GAAKyX,IAAI,IAAI2wJ,aAAa+8E,KAK1C,GAAIjD,IAAgBa,EAAoB,CAEhB,IAAhBkC,KAAsBnC,KAEtBZ,GAAe,EACfa,GAAsB,GAE1B,MAAMsC,GAAQ,IAAIjkN,WAAWphC,GAAK2oE,QAClC,IAAI6P,GAAS0pK,EAAaoD,GAAU,EACpC,QAASvoO,GAAI,EAAGA,GAAIkY,IAAUlY,GAAG,CAC7BuoO,GAAUvoO,GAAIgmO,EACd,QAAS51O,GAAI,EAAGA,GAAI+0O,IAAe/0O,GAC/Bk4O,GAAM7sK,MAAY6sK,GAAMC,KAEhC,CAKItlP,GAJgB,IAAhBilP,IAAsBnC,GAIf,IAAI1hN,WAAWikN,GAAM18K,OAAQ,EAAG6P,IAHhC,IAAI4vF,aAAai9E,GAAM18K,OAAQ,EAAG6P,GAAS,EAK1D,CACAwqK,EAAUX,QACN2C,IACAzqP,KAAKioP,cAAcQ,GAEvB7wO,GAAQnS,GAAI,EACZkzE,KACI34E,KAAKqxK,QAAQ25E,YAAchrP,KAAKqxK,QAAQwR,WAAaomE,GAErDrxO,GAAQ,IAAIivB,YAGZghC,GAAO8Q,GAAM,EAEpB,EAET,CACAsvK,cAAc75K,GACV,OAAI86K,GAAoBC,aAAa/6K,IACjCpuE,KAAKupP,wBAAwBtrO,KAAKmwD,IAC3B,IAEXA,EAAOz/D,aACmB,IAAtBy/D,EAAOz/D,aACP3O,KAAKupP,wBAAwBtrO,KAAKmwD,EAAO83H,qBAClC,GAGf,CACA+kD,yBACI,QAASxtO,EAAI,EAAGA,EAAIzd,KAAKupP,wBAAwB7zO,SAAU+H,EACvDzd,KAAKupP,wBAAwB9rO,GAAG4I,UAEpCrmB,KAAKupP,wBAAwB7zO,OAAS,CAC1C,EClMJ,MAAMw1O,GAAe,CACjB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAGEC,GAA2B,CAC5B,EACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GAECC,GAAoB,CACtB,EACA,IACA,IACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,KAGG,MAAMC,GACTxrP,YAAYqhP,GACRlhP,KAAKsrP,UAAY,CAAC,EAClBtrP,KAAK0hP,QAAUR,EACflhP,KAAK6vC,UAAW,CACpB,CACA,yBAAO07M,CAAmBhgB,GAWtB,OARa2f,GAAa3f,EAAQ1lD,cAC9BslE,IAA0B5f,EAAQigB,qBAAuB,KAAU,IAAS,GAC5EJ,GAAkB7f,EAAQ1lD,gBACxB0lD,EAAQkgB,cAAgB,IAAM,KAC9BlgB,EAAQmgB,cAAgB,IAAM,MAC9BngB,EAAQogB,cAAgB,IAAM,MAC9BpgB,EAAQrN,WAAa,EAAI,IAAM,MAPlBqN,EAAQjI,iCAAmCiI,EAAQjI,iCAAmC,IAQtF,GAEvB,CACA,kCAAOsoB,CAA4BrgB,EAASsgB,GACxC,IAAIC,EAAW/J,EAAWgK,EAAcC,EAAaC,EACrD,MAAM/tB,GAAaqN,EAAQrN,WAC3B,OAAQqN,EAAQ1lD,cACZ,KAAK,GACDimE,EAAY,SACZ/J,EAAY,SACZgK,EAAe,UACV7tB,KACD8tB,EAAcC,EAAc,GAEhC,MACJ,KAAK,EACL,KAAK,EACDH,EAAY,SACZ/J,EAAY,SACP7jB,GAKD6tB,EAAe,UAJfA,EAAe,UACfC,EAAcC,EAAc,GAKhC,MACJ,KAAK,EACDH,EAAY,UACZ/J,EAAY,UACP7jB,GAKD6tB,EAAe,UAJfA,EAAe,UACfC,EAAcC,EAAc,GAKhC,MACJ,KAAK,EACDH,EAAY,UACZ/J,EAAY,UACZgK,EAAe,UACV7tB,KACD8tB,EAAcC,EAAc,GAEhC,MACJ,KAAK,EACDH,EAAY,UACZ/J,EAAY,SACZgK,EAAe,UACV7tB,KACD8tB,EAAcC,EAAc,GAEhC,MACJ,KAAK,EACDH,EAAY,UACZ/J,EAAY,SACP7jB,GAKD6tB,EAAe,UAJfA,EAAe,UACfC,EAAcC,EAAc,GAKhC,MACJ,KAAK,EACDH,EAAY,UACZ/J,EAAY,SACZgK,EAAe,UACfC,EAAcC,EAAc,EAC5B,MACJ,KAAK,EACL,KAAK,EAsCL,QACIH,EAAY,UACZ/J,EAAY,UACZgK,EAAe,UACfC,EAAcC,EAAc,EAC5B,MArCJ,KAAK,EACDH,EAAY,SACZ/J,EAAY,UACZgK,EAAe,UACV7tB,KACD8tB,EAAcC,EAAc,GAEhC,MACJ,KAAK,GACDH,EAAY,SACZ/J,EAAY,UACP7jB,GAKD6tB,EAAe,UAJfA,EAAe,UACfC,EAAcC,EAAc,GAKhC,MACJ,KAAK,EACL,KAAK,EACDH,EAAY,SACZ/J,EAAY,SACZgK,EAAe,UACfC,EAAcC,EAAc,EAC5B,MACJ,KAAK,GACDH,EAAY,SACZ/J,EAAY,UACZgK,EAAe,UACfC,EAAcC,EAAc,EASpC,OAAIJ,EAAa,IAAsB,IAAhBG,GAAqC,IAAhBC,IAAuC,YAAjBF,EACvD,CACHD,UAAW,SACX/J,UAAW,SACXgK,aAAc,SACdG,mBAAmB,GAGpB,CACHJ,YACA/J,YACAgK,eACAC,cACAC,cAER,CACA,uBAAOE,CAAiB1yO,GACpB,OAAQA,GACJ,KAAK,EACD,MAAO,SACX,KAAK,EACD,MAAO,gBACX,KAAK,EACD,MAAO,gBAEf,MAAO,QACX,CACA,oCAAO2yO,CAA8B7gB,GACjC,MAAO,CACHxI,aAAc/iO,KAAKmsP,iBAAiB5gB,EAAQkgB,cAC5CzoB,aAAchjO,KAAKmsP,iBAAiB5gB,EAAQmgB,cAC5CzoB,aAAcjjO,KAAKmsP,iBAAiB5gB,EAAQogB,cAEpD,CACA,4BAAOU,CAAsB9gB,EAASh7N,GAClC,MAAMs7O,EAAatgB,EAAQrN,YAAcqN,EAAQjI,iCAAmCiI,EAAQjI,iCAAmC,EACzHgpB,EAAmBtsP,KAAK4rP,4BAA4BrgB,EAASsgB,GACnE,MAAO,CACHt7O,WACG+7O,KACAtsP,KAAKosP,8BAA8B7gB,GACtCghB,QAAShhB,EAAQigB,oBAAsBH,GAAmBmB,mBAAmBjhB,EAAQigB,0BAAuB3oP,EAC5G6kN,cAAe4kC,EAAiBJ,kBAAoBL,EAAa,EAEzE,CACA,yBAAOW,CAAmBC,GACtB,OAAQA,GACJ,KAAK,IACD,MAAO,SACX,KAAK,IACD,MAAO,QACX,KAAK,IACD,MAAO,UACX,KAAK,IACD,MAAO,gBACX,KAAK,IAQL,QACI,MAAO,OAPX,KAAK,IACD,MAAO,aACX,KAAK,IACD,MAAO,QACX,KAAK,IACD,MAAO,YAInB,CACAC,WAAWnhB,EAASohB,GAAc,EAAOC,EAAO,EAAGr8O,GAC/C,GAAIvQ,KAAK6vC,SACL,OAAO7vC,KAAK0hP,QAAQI,cAAcuJ,GAAmBgB,sBAAsB9gB,EAASh7N,IAEpFo8O,EACAC,EAAO,EAEO,IAATA,IACLA,EAAOvB,GAAmBE,mBAAmBhgB,IAEjD,IAAIshB,EAAaF,OAAc9pP,EAAY7C,KAAKsrP,UAAUsB,GAC1D,OAAKC,IACDA,EAAa7sP,KAAK0hP,QAAQI,cAAcuJ,GAAmBgB,sBAAsB9gB,EAASh7N,IACrFo8O,IACD3sP,KAAKsrP,UAAUsB,GAAQC,IAGxBA,CACX,EC9PJ,IAAIC,GACH,SAAUA,GACPA,SAAcA,EAAcC,gBAAqB,GAAK,kBACtDD,EAAcA,EAAcE,iBAAsB,GAAK,mBAEvDF,EAAcA,EAAcG,UAAe,GAAK,YAChDH,EAAcA,EAAcI,oBAAyB,GAAK,sBAC1DJ,EAAcA,EAAcK,kBAAuB,GAAK,oBACxDL,EAAcA,EAAcM,gBAAqB,GAAK,kBACtDN,EAAcA,EAAcO,gBAAqB,GAAK,kBACtDP,EAAcA,EAAcQ,mBAAwB,GAAK,qBACzDR,EAAcA,EAAcS,YAAiB,GAAK,cAClDT,EAAcA,EAAcU,YAAiB,GAAK,cAClDV,EAAcA,EAAcW,aAAkB,IAAM,eACpDX,EAAcA,EAAcY,YAAiB,IAAM,cACnDZ,EAAcA,EAAca,UAAe,IAAM,YAd1Cb,CAeX,CAfC,CAeEA,IAAkC,CAAC,GACtC,MAAMc,GAA0B,CAC5B,EAAG,EACH,EAAG,EACH,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,GACR,IAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,IAENC,GAAmB,CACrB,EAAQ,EACR,KAAQ,EACR,KAAQ,EACR,KAAQ,EACR,KAAQ,EACR,KAAQ,EACR,MAAQ,EACR,MAAQ,GAGL,IAAMC,GAAyB,MAA/B,MAAMA,EACTjuP,YAAYqhP,EAAQ6M,GAChB/tP,KAAKguP,gBAAkB,EACvBhuP,KAAK0hP,QAAUR,EACflhP,KAAKiuP,kBAAmB,EACxBjuP,KAAKkuP,QAAU,IAAI5wO,MAAM,IACzBtd,KAAKmuP,cAAgB,EACrBnuP,KAAKouP,uBAAyB,EAC9BpuP,KAAKquP,mBAAqBN,EAC1B/tP,KAAKsuP,YAAc,GACnBtuP,KAAKuuP,WAAa,CAAExrP,WAAOF,EAAWogP,SAAU,MAChDjjP,KAAK6vC,UAAW,EAChB7vC,KAAK0iN,cAAgB,GACrB1iN,KAAKwuP,wBAA0BtN,EAAOuN,OAAOC,4BAA8B,KAC3E1uP,KAAKqT,OACT,CACAA,QACIrT,KAAK2uP,UAAW,EAChB3uP,KAAK0iN,cAAchtM,OAAS,EAC5B1V,KAAK4uP,oBAAmB,GACxB5uP,KAAK6uP,yBACL7uP,KAAK8uP,eAAc,GACnB9uP,KAAK+uP,aAAa,GAElB/uP,KAAKgvP,mBAAqB,CAAC,cAC3BhvP,KAAKivP,eAAe,cACpBjvP,KAAKkvP,OAAO,IACZlvP,KAAK+oO,sBAAqB,GAC1B/oO,KAAKgpO,qBAAqB,CAAC,KAAM,KAAM,KAAM,MAAO,CAAC,KAAM,OAC3DhpO,KAAKmvP,aAAa,IAClBnvP,KAAKovP,sBAAsB,wBAC3BpvP,KAAKqvP,mBAAkB,GACvBrvP,KAAKsvP,oBACLtvP,KAAKuvP,WAAW,KAAM,KAAM,MAC5BvvP,KAAKwvP,iBAAiB,EAC1B,CACA,gBAAIC,GACA,OAAOzvP,KAAK0vP,iBAAmB,EAAI1vP,KAAKsuP,YAActuP,KAAKgvP,kBAC/D,CACAW,kBAAkB3gC,EAAUjzM,EAAQ0qN,EAAampB,EAAe,GAE5D,GADAnpB,EAAchB,GAAoBe,UAAUC,GACxCzmO,KAAK6vC,SAAU,CACf,MAAMyzM,EAAWwK,EAA0B+B,aAAa7gC,GACxD,OAAAhvN,KAAK8vP,gBAAgB/zO,GACrB/b,KAAKwvP,iBAAiBI,GACtB5vP,KAAKuuP,WAAWtL,SAAWjjP,KAAK+vP,sBAAsBh0O,EAAQunO,EAAU7c,GACxEqnB,EAA0BkC,eAC1BlC,EAA0BmC,mCACnBjwP,KAAKuuP,WAAWtL,QAC3B,CAQA,GAPAjjP,KAAKkwP,gBAAgBn0O,EAAO8mK,UAC5B7iL,KAAKmwP,uBAAuBnhC,EAAUyX,GACtCzmO,KAAKowP,kBACLpwP,KAAKqwP,wBACLrwP,KAAK8vP,gBAAgB/zO,GACrB/b,KAAKwvP,iBAAiBI,GACtB5vP,KAAKswP,0BAA4BtwP,KAAKouP,wBACjCpuP,KAAK2uP,UAAY3uP,KAAKuuP,WAAWtL,SAClC,OAAAjjP,KAAKouP,uBAAyBpuP,KAAKmuP,cACnCL,EAA0ByC,yBACnBvwP,KAAKuuP,WAAWtL,SAK3B,GAHAjjP,KAAKwwP,mBAAmBxwP,KAAKuuP,YAC7BvuP,KAAK2uP,UAAW,EAChB3uP,KAAKouP,uBAAyBpuP,KAAKmuP,cAC/BnuP,KAAKuuP,WAAWtL,SAChB6K,SAA0B2C,sBACnBzwP,KAAKuuP,WAAWtL,SAE3B,MAAMK,EAAWwK,EAA0B+B,aAAa7gC,GACxD,OAAAhvN,KAAKuuP,WAAWtL,SAAWjjP,KAAK+vP,sBAAsBh0O,EAAQunO,EAAU7c,GACxEzmO,KAAK0wP,mBAAmB1wP,KAAKuuP,YAC7BT,EAA0BkC,eAC1BlC,EAA0BmC,mCACnBjwP,KAAKuuP,WAAWtL,QAC3B,CACA7gF,WACI0rF,EAA0B6C,6BAA+B7C,EAA0BmC,iCACnFnC,EAA0BmC,iCAAmC,CACjE,CACArB,mBAAmB55N,GACfh1B,KAAK4wP,wBAA0B57N,CACnC,CACA67N,aAAaC,GACT9wP,KAAK+wP,WAAaD,CACtB,CACAE,eAAeh8N,GACXh1B,KAAKixP,aAAej8N,CACxB,CACAk8N,YAAYC,GACRnxP,KAAKoxP,UAAYD,CACrB,CACArC,cAAcuC,GACVrxP,KAAKsxP,YAAcD,CACvB,CACAxC,yBACI7uP,KAAKuxP,sBAAqB,EAAO,EAAG,EAAG,EAAG,GAAG,GAAM,EAAM,IAC7D,CACAA,qBAAqBC,EAAaV,EAAWK,EAAUz+B,EAASI,EAAc2+B,EAAkBC,GAAmBC,IAC/G3xP,KAAK4xP,mBAAqBF,GAC1B1xP,KAAK6xP,kBAAoBJ,EACzBzxP,KAAK8xP,eAAiBH,IAAgB,KAAO,IAC7C3xP,KAAKoxP,UAAYD,EACjBnxP,KAAKixP,aAAeO,EACpBxxP,KAAK+wP,WAAaD,EAClB9wP,KAAK+xP,uBAAuBr/B,GAC5B1yN,KAAK+uP,aAAaj8B,EACtB,CACAi8B,aAAaiD,GACLhyP,KAAKiyP,aAAeD,IACpBhyP,KAAKiyP,WAAaD,EAClBhyP,KAAKkuP,QAAQpB,GAAcG,WAAa+E,EACxChyP,KAAK2uP,UAAW,EAChB3uP,KAAKouP,uBAAyB7wO,KAAKi/B,IAAIx8C,KAAKouP,uBAAwBtB,GAAcG,WAE1F,CAQA8E,uBAAuBG,GACflyP,KAAKmyP,uBAAyBD,IAC9BlyP,KAAKmyP,qBAAuBD,EAC5BlyP,KAAKkuP,QAAQpB,GAAcI,qBAAuBgF,EAClDlyP,KAAK2uP,UAAW,EAChB3uP,KAAKouP,uBAAyB7wO,KAAKi/B,IAAIx8C,KAAKouP,uBAAwBtB,GAAcI,qBAE1F,CACA+B,eAAe1/N,GACXvvB,KAAKgvP,mBAAmB,GAAKz/N,EAC7BvvB,KAAKoyP,aAAetT,GAA+BvvN,GAAU,GACjE,CACA8iO,kBAAkBjqD,GACdpoM,KAAKsyP,eAAiBlqD,EACtB,IAAIpmB,EAAO,EACX,QAASvkK,EAAI,EAAGA,EAAI2qL,EAAY1yL,SAAU+H,EACf,IAAnB2qL,EAAY3qL,KACZukK,GAAQ,GAAKvkK,GAGjBzd,KAAKuyP,kBAAoBvwE,IACzBhiL,KAAKuyP,gBAAkBvwE,EACvBhiL,KAAK2uP,UAAW,EAChB3uP,KAAKouP,uBAAyB7wO,KAAKi/B,IAAIx8C,KAAKouP,uBAAwBtB,GAAcM,iBAE1F,CACA8B,OAAOsD,EAAczoD,GAEjB,IADAA,EAAeA,GAAgByoD,EAAa98O,QACzB,GAKf,KAAM,4EAEV1V,KAAKyyP,gBAAkBD,EACvBxyP,KAAKguP,gBAAkBjkD,EACvB/pM,KAAKuyP,gBAAkB,MACvB,MAAMG,EAAO,CAAC,EAAG,GACjB,IAAIC,EAAY,EAAG3wE,EAAO,EAAG4wE,EAAQ,EACrC,QAASn1O,GAAI,EAAGA,GAAIssL,IAAgBtsL,GAAG,CAEnC,MAAMo1O,GADUL,EAAa/0O,KACDsuL,iBAC5B/rM,KAAKsuP,YAAYsE,GAASC,IAAYtjO,QAAUvvB,KAAKgvP,mBAAmB,GACxE0D,EAAKC,IAAc7T,GAA+B9+O,KAAKsuP,YAAYsE,IAAU,KAAO5wE,EACpFA,GAAQ,EACR4wE,IACI5wE,GAAQ,KACRA,EAAO,EACP2wE,IAER,CACA3yP,KAAKsuP,YAAY54O,OAASk9O,GACtB5yP,KAAK0vP,mBAAqBgD,EAAK,IAAM1yP,KAAK8yP,mBAAqBJ,EAAK,MACpE1yP,KAAK0vP,iBAAmBgD,EAAK,GAC7B1yP,KAAK8yP,iBAAmBJ,EAAK,GAC7B1yP,KAAKkuP,QAAQpB,GAAcM,iBAAmBsF,EAAK,GACnD1yP,KAAKkuP,QAAQpB,GAAcO,iBAAmBqF,EAAK,GACnD1yP,KAAK2uP,UAAW,EAChB3uP,KAAKouP,uBAAyB7wO,KAAKi/B,IAAIx8C,KAAKouP,uBAAwBtB,GAAcM,iBAE1F,CACArkB,qBAAqB/zM,GACjBh1B,KAAK+yP,mBAAqB/9N,CAC9B,CACAg0M,qBAAqBgqB,EAASC,GAC1BjzP,KAAKkzP,sBAAwBF,EAC7BhzP,KAAKmzP,oBAAsBF,CAC/B,CACA9D,aAAantE,GACThiL,KAAKozP,WAAapxE,CACtB,CACAotE,sBAAsB7/N,GAClBvvB,KAAKqzP,0BAA4B9jO,EACjCvvB,KAAKszP,yBAAiCzwP,IAAX0sB,EAAuB,EAAIuvN,GAA+BvvN,EACzF,CACAgkO,oBAAoBv+N,GAChBh1B,KAAK6xP,kBAAoB78N,CAC7B,CACA6zM,qBAAqB7zM,GACjBh1B,KAAK4xP,mBAAqB58N,CAC9B,CACAw+N,gBAAgBp/D,GACZp0L,KAAK8xP,eAAiB19D,GAAQ,KAAO,GACzC,CACAi7D,kBAAkBr6N,GACdh1B,KAAKyzP,gBAAkBz+N,CAC3B,CACA0+N,kBAAkBt/D,GACdp0L,KAAK2zP,sBAAwBv/D,GAAQ,KAAO,GAChD,CACAw/D,sBAAsBC,GAClB7zP,KAAK8zP,yBAAkC,OAAPD,EAAc,EAAehG,GAAiBgG,EAClF,CACAE,iBAAiBF,GACb7zP,KAAKg0P,oBAA6B,OAAPH,EAAc,EAAkBhG,GAAiBgG,EAChF,CACAI,iBAAiBJ,GACb7zP,KAAKk0P,oBAA6B,OAAPL,EAAc,EAAehG,GAAiBgG,EAC7E,CACAM,mBAAmBnyE,GACXhiL,KAAKo0P,mBAAqBpyE,IAC1BhiL,KAAKo0P,iBAAmBpyE,EACxBhiL,KAAKkuP,QAAQpB,GAAcC,iBAAmB/qE,EAC9ChiL,KAAK2uP,UAAW,EAChB3uP,KAAKouP,uBAAyB7wO,KAAKi/B,IAAIx8C,KAAKouP,uBAAwBtB,GAAcC,iBAE1F,CACAsH,oBAAoBryE,GACZhiL,KAAKs0P,oBAAsBtyE,IAC3BhiL,KAAKs0P,kBAAoBtyE,EACzBhiL,KAAKkuP,QAAQpB,GAAcE,kBAAoBhrE,EAC/ChiL,KAAK2uP,UAAW,EAChB3uP,KAAKouP,uBAAyB7wO,KAAKi/B,IAAIx8C,KAAKouP,uBAAwBtB,GAAcE,kBAE1F,CACAsC,oBACItvP,KAAKu0P,iBAAgB,EAAO,IAAK,KAAM,KAAM,KAAM,IAAM,IAC7D,CACAA,gBAAgBC,EAAgBjI,EAASkI,EAAaC,EAAQC,EAAQC,EAAUC,IAC5E70P,KAAKyzP,gBAAkBe,EACvBx0P,KAAK2zP,sBAAwBpH,GAAW,KAAO,IAC/CvsP,KAAK8zP,yBAA2C,OAAhBW,EAAuB,EAAe5G,GAAiB4G,GACvFz0P,KAAKg0P,oBAAiC,OAAXU,EAAkB,EAAkB7G,GAAiB6G,GAChF10P,KAAKk0P,oBAAiC,OAAXS,EAAkB,EAAe9G,GAAiB8G,GAC7E30P,KAAKm0P,mBAAmBS,GACxB50P,KAAKq0P,oBAAoBQ,GAC7B,CACAtF,WAAW7sC,EAAe+K,EAAaC,GACnC1tN,KAAK80P,eAAiBpyC,EACtB1iN,KAAK+0P,uBAAyBrnC,EAC9B1tN,KAAKg1P,aAAevnC,CACxB,CACA,mBAAOoiC,CAAa7gC,GAChB,OAAQA,GAEJ,KAAK,EAyBL,QACI,MAAO,gBAxBX,KAAK,EAKL,KAAK,EACD,MAAO,aAJX,KAAK,EAKL,KAAK,EACD,MAAO,YACX,KAAK,EAID,KAAM,gDACV,KAAK,EACD,MAAO,aACX,KAAK,EACD,MAAO,iBACX,KAAK,EAID,KAAM,mDAIlB,CACA,6BAAOimC,CAAuB9zJ,GAC1B,OAAQA,GACJ,KAAK,MAUL,QACI,MAAO,MATX,KAAK,MACD,MAAO,WACX,KAAK,MACD,MAAO,mBACX,KAAK,MACD,MAAO,MACX,KAAK,MACD,MAAO,MAInB,CACA,0BAAO+zJ,CAAoBC,GACvB,OAAQA,GACJ,KAAK,EACD,MAAO,OACX,KAAK,EAoCL,QACI,MAAO,MAnCX,KAAK,IACD,MAAO,MACX,KAAK,IACD,MAAO,gBACX,KAAK,IACD,MAAO,YACX,KAAK,IACD,MAAO,sBACX,KAAK,IACD,MAAO,YACX,KAAK,IACD,MAAO,sBACX,KAAK,IACD,MAAO,MACX,KAAK,IACD,MAAO,gBACX,KAAK,IACD,MAAO,sBACX,KAAK,MAIL,KAAK,MACD,MAAO,WAHX,KAAK,MAIL,KAAK,MACD,MAAO,qBACX,KAAK,MACD,MAAO,OACX,KAAK,MACD,MAAO,iBACX,KAAK,MACD,MAAO,aACX,KAAK,MACD,MAAO,uBAInB,CACA,0BAAOC,CAAoB3I,GACvB,OAAQA,GACJ,KAAK,EACD,MAAO,QACX,KAAK,EACD,MAAO,OACX,KAAK,EACD,MAAO,QACX,KAAK,EACD,MAAO,aACX,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,YACX,KAAK,EACD,MAAO,gBACX,KAAK,EACD,MAAO,SAEf,MAAO,OACX,CACA,4BAAO4I,CAAsBl0J,GACzB,OAAQA,GACJ,KAAK,EACD,MAAO,OACX,KAAK,EACD,MAAO,OACX,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,SACX,KAAK,EACD,MAAO,iBACX,KAAK,EACD,MAAO,iBAEf,MAAO,MACX,CACA,sCAAOm0J,CAAgCvnC,GACnC,MAAM37M,EAAO27M,EAAa37M,KACpBywM,EAAakL,EAAalL,WAC1BxpL,EAAO00L,EAAahpF,UAC1B,OAAQ3yH,GACJ,KAAKo6J,IAAasB,KACd,OAAQz0I,GACJ,KAAK,EACL,KAAK,EACD,OAAOwpL,EAAa,WAAyD,UACjF,KAAK,EACL,KAAK,EACD,OAAOA,EAAa,WAAyD,UAErF,MACJ,KAAKr2C,IAAawB,cACd,OAAQ30I,GACJ,KAAK,EACL,KAAK,EACD,OAAOwpL,EAAa,WAAyD,UACjF,KAAK,EACL,KAAK,EACD,OAAOA,EAAa,WAAyD,UAErF,MACJ,KAAKr2C,IAAayB,MACd,OAAQ50I,GACJ,KAAK,EACL,KAAK,EACD,OAAOwpL,EAAa,YAA2D,WACnF,KAAK,EACL,KAAK,EACD,OAAOA,EAAa,YAA2D,WAEvF,MACJ,KAAKr2C,IAAa2B,eACd,OAAQ90I,GACJ,KAAK,EACL,KAAK,EACD,OAAOwpL,EAAa,YAA2D,WACnF,KAAK,EACL,KAAK,EACD,OAAOA,EAAa,YAA2D,WAEvF,MACJ,KAAKr2C,IAAar0E,IACd,OAAQ9+D,GACJ,KAAK,EACD,MAAO,SACX,KAAK,EACD,MAAO,WACX,KAAK,EACD,MAAO,WACX,KAAK,EACD,MAAO,WAEf,MACJ,KAAKmzI,IAAa4B,aACd,OAAQ/0I,GACJ,KAAK,EACD,MAAO,SACX,KAAK,EACD,MAAO,WACX,KAAK,EACD,MAAO,WACX,KAAK,EACD,MAAO,WAEf,MACJ,KAAKmzI,IAAap0E,MACd,OAAQ/+D,GACJ,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,YACX,KAAK,EACD,MAAO,YACX,KAAK,EACD,MAAO,aAIvB,MAAM,IAAI/T,MAAO,mBAAkByoM,EAAawnC,qBAAqBnjP,iBAAoBywM,WAAoBxpL,IACjH,CACAm8N,qBACI,OAAKx1P,KAAK+yP,mBAGH,CACH0C,UAAW3H,EAA0BoH,oBAAoBl1P,KAAKkzP,sBAAsB,IACpFwC,UAAW5H,EAA0BoH,oBAAoBl1P,KAAKkzP,sBAAsB,IACpF/xJ,UAAW2sJ,EAA0BmH,uBAAuBj1P,KAAKmzP,oBAAoB,KAL9E,IAOf,CACAwC,sBACI,OAAK31P,KAAK+yP,mBAGH,CACH0C,UAAW3H,EAA0BoH,oBAAoBl1P,KAAKkzP,sBAAsB,IACpFwC,UAAW5H,EAA0BoH,oBAAoBl1P,KAAKkzP,sBAAsB,IACpF/xJ,UAAW2sJ,EAA0BmH,uBAAuBj1P,KAAKmzP,oBAAoB,KAL9E,IAOf,CACAjD,gBAAgB7jP,GACRrM,KAAK41P,YAAcvpP,IACnBrM,KAAK41P,UAAYvpP,EACjBrM,KAAKkuP,QAAQpB,GAAcU,aAAenhP,EAC1CrM,KAAK2uP,UAAW,EAChB3uP,KAAKouP,uBAAyB7wO,KAAKi/B,IAAIx8C,KAAKouP,uBAAwBtB,GAAcU,aAE1F,CACA2C,uBAAuB7M,EAAU7c,GAC7B,MAIMovB,GAJY71P,KAAK+wP,WAIgB,IAHtB/wP,KAAKixP,aAAejxP,KAAKoxP,UAAY,IAGE,KAFrCpxP,KAAKsxP,YAAc,EAAI,IAEkC,KADpDtxP,KAAK4wP,wBAA0B,EAAI,IAC0C,IAAMtN,GAAY,IAAM7c,GAAe,GACxIzmO,KAAK81P,sBAAwBD,KAC7B71P,KAAK81P,oBAAsBD,GAC3B71P,KAAKkuP,QAAQpB,GAAcQ,oBAAsBttP,KAAK81P,oBACtD91P,KAAK2uP,UAAW,EAChB3uP,KAAKouP,uBAAyB7wO,KAAKi/B,IAAIx8C,KAAKouP,uBAAwBtB,GAAcQ,oBAE1F,CACA8C,kBACI,IAAI2F,IAAgB/1P,KAAKozP,WAAa,EAAI,IAAM,KAAOpzP,KAAKoyP,cAAgB,MAAQpyP,KAAK4xP,mBAAqB,EAAI,IAAM,IACpH5xP,KAAK+yP,qBACLgD,IAC8G,GAAtE,OAAlC/1P,KAAKkzP,sBAAsB,GAAc,EAAItF,GAAwB5tP,KAAKkzP,sBAAsB,QAC1D,OAAlClzP,KAAKkzP,sBAAsB,GAAc,EAAItF,GAAwB5tP,KAAKkzP,sBAAsB,MAAQ,KACtE,OAAlClzP,KAAKkzP,sBAAsB,GAAc,EAAItF,GAAwB5tP,KAAKkzP,sBAAsB,MAAQ,KACtE,OAAlClzP,KAAKkzP,sBAAsB,GAAc,EAAItF,GAAwB5tP,KAAKkzP,sBAAsB,MAAQ,MACxE,OAAhClzP,KAAKmzP,oBAAoB,GAAc,EAAInzP,KAAKmzP,oBAAoB,GAAK,QAAW,MACpD,OAAhCnzP,KAAKmzP,oBAAoB,GAAc,EAAInzP,KAAKmzP,oBAAoB,GAAK,QAAW,KAE9F4C,IAAgB/1P,KAAKg2P,eACrBh2P,KAAKg2P,aAAeD,EACpB/1P,KAAKkuP,QAAQpB,GAAcS,aAAevtP,KAAKg2P,aAC/Ch2P,KAAK2uP,UAAW,EAChB3uP,KAAKouP,uBAAyB7wO,KAAKi/B,IAAIx8C,KAAKouP,uBAAwBtB,GAAcS,aAE1F,CACA8C,wBACI,MAGM4F,EAAoBj2P,KAAKszP,sBAAwBtzP,KAAK6xP,kBAAoB7xP,KAAK8xP,cAAgB,IAAmB,KAHlG9xP,KAAKyzP,gBAErBzzP,KAAK2zP,sBAAwB3zP,KAAK8zP,0BAA4B,IAAM9zP,KAAKg0P,qBAAuB,IAAMh0P,KAAKk0P,qBAAuB,GADlI,MAEwI,IAC1Il0P,KAAKk2P,qBAAuBD,IAC5Bj2P,KAAKk2P,mBAAqBD,EAC1Bj2P,KAAKkuP,QAAQpB,GAAcK,mBAAqBntP,KAAKk2P,mBACrDl2P,KAAK2uP,UAAW,EAChB3uP,KAAKouP,uBAAyB7wO,KAAKi/B,IAAIx8C,KAAKouP,uBAAwBtB,GAAcK,mBAE1F,CACA2C,gBAAgB/zO,GACZ,MAAMo6O,EAAen2P,KAAKmuP,cAC1B,IAAIiI,EAAetJ,GAAcY,YACjC,MAAM2I,EAAwBt6O,EAAOi1K,iBAC/B16I,EAAa+/M,EAAsBv+C,wBAAwBg5B,yBAC3Dt+I,EAAY6jK,EAAsBv+C,wBAAwBi5B,6BAChE,IAAIulB,GACAC,GAAmB,EACvB,QAAS57O,GAAQ,EAAGA,GAAQ27B,EAAW5gC,OAAQiF,KAAS,CACpD,MAAMjZ,GAAW8wF,EAAU73E,IAC3B,IAAIozM,IAAgB/tN,KAAK+0P,wBAA0B/0P,KAAK+0P,uBAAuBz+M,EAAW37B,OAAY3a,KAAK80P,eAAex+M,EAAW37B,KAChIozM,KAGDA,GAAe/tN,KAAKquP,oBAExB,MAAMjgL,GAAS2/I,GAAaC,iBAAiB9nB,mBAI7C,QAAuCrjM,IAAnCkrN,GAAayoC,kBAAiC,CAC9C,MAAMv4K,GAAS8vI,GAAaG,oBACtBuoC,GAAa1oC,GAAahpF,SAAQ,GAClC2nC,GAAaqhD,GAAaI,oBAChCJ,GAAayoC,kBACRv4K,GAASw4K,IAAcz2P,KAAKwuP,yBAA0C,IAAf9hF,IAAqC,IAAfA,IAAoBzuF,GAASw4K,IAAc/pF,EACjI,CACM4pF,IAAoBA,KAAqBloL,IAAU2/I,GAAayoC,oBAElEx2P,KAAK0iN,cAAc6zC,MAAsBxoC,GACzCuoC,GAAmBvoC,GAAayoC,kBAAoBpoL,GAAS,MAEjE,MAAMsoL,GAAM3oC,GAAa4oC,UAAYj1P,IAAY,GACjD1B,KAAK2uP,SAAW3uP,KAAK2uP,UAAY3uP,KAAKkuP,QAAQkI,KAAkBM,GAChE12P,KAAKkuP,QAAQkI,KAAkBM,EACnC,CACA12P,KAAK0iN,cAAchtM,OAAS6gP,GAC5Bv2P,KAAKmuP,cAAgBiI,EACrBp2P,KAAK2uP,SAAW3uP,KAAK2uP,UAAYyH,IAAiBD,EAC9Cn2P,KAAK2uP,WACL3uP,KAAKouP,uBAAyB7wO,KAAKi/B,IAAIx8C,KAAKouP,uBAAwBtB,GAAcY,aAE1F,CACA8B,iBAAiBI,GACT5vP,KAAK42P,gBAAkBhH,IACvB5vP,KAAK42P,cAAgBhH,EACrB5vP,KAAKkuP,QAAQpB,GAAcW,cAAgBztP,KAAK42P,cAChD52P,KAAK2uP,UAAW,EAChB3uP,KAAKouP,uBAAyB7wO,KAAKi/B,IAAIx8C,KAAKouP,uBAAwBtB,GAAcW,cAE1F,CACAoJ,sBAAsBR,GAClB,GAAIr2P,KAAKiuP,iBACL,OAAOjuP,KAAK82P,sCAAsCT,GAEtD,MAAM/lB,EAAmB,GACnBtF,EAAyBqrB,EAAsBv+C,wBAAwBkzB,uBAC7E,QAASvtN,EAAI,EAAGA,EAAIutN,EAAuBt1N,OAAQ+H,IAE/C6yN,EAAiB7yN,GAAKzd,KAAK0hP,QAAQqV,sBAAsB,CACrD99L,QAFkB+xK,EAAuBvtN,KAKjD44O,SAAsB/lB,iBAAiB,GAAKA,EACrCtwO,KAAK0hP,QAAQsV,qBAAqB,CAAE1mB,oBAC/C,CACAwmB,sCAAsCT,GAClC,MAAMv+C,EAA0Bu+C,EAAsBv+C,wBAChDkzB,EAAyBlzB,EAAwBkzB,uBACvD,IAAIisB,EAAS,EACb,QAASx5O,EAAI,EAAGA,EAAIutN,EAAuBt1N,OAAQ+H,IAAK,CACpD,MAAMwtN,GAAgBD,EAAuBvtN,GAC7C,QAASmsD,GAAI,EAAGA,GAAIqhK,GAAcv1N,OAAQk0D,KAAK,CAC3C,MAAMxQ,GAAQ4xK,EAAuBvtN,GAAGmsD,IACxC,GAAIxQ,GAAMmtI,QAAS,CACf,MAAMhgM,GAAOuxM,EAAwBozB,yBAAyBztN,GAAG27C,GAAMuxK,SAASpkO,KAC1EulO,GAAch0B,EAAwB84B,kBAAkBrqO,IACxDomO,GAAcb,GAAYsL,gBAAkBt/B,EAAwBq7B,kBAAkB5sO,GAAQ,WAAY,KAChH,IAAIgmO,GAAaT,GAAYS,WACzB+K,GAAc3K,IAAav6N,MAAQ,YACnCpS,KAAK42P,cAAgBK,GAAyB,UAAf1qB,KAG3BT,GAAYsL,kBACZE,GAAc,iBAElB/K,GAAa,sBAEjBnzK,GAAMmtI,QAAQgmC,WAAaA,GACvBI,KAEA3B,EAAuB2B,GAAYhC,QAAQuB,YAD3Bp0B,EAAwBozB,yBAAyByB,GAAYhC,QAAQuB,YAAYS,GAAYhC,QAAQwB,cAAcxxN,OACnE4wN,QAAQn5N,KAAOklO,IAEnF2f,IAAmB,CACvB,CACJ,CACJ,CACA,MAAM3mB,EAAmB,GACzB,QAAS7yN,EAAI,EAAGA,EAAIutN,EAAuBt1N,SAAU+H,EACjD6yN,EAAiB7yN,GAAKzd,KAAK0hP,QAAQqV,sBAAsB,CACrD99L,QAAS+xK,EAAuBvtN,KAGxC44O,SAAsB/lB,iBAAiBtwO,KAAK42P,eAAiBtmB,EACtDtwO,KAAK0hP,QAAQsV,qBAAqB,CAAE1mB,oBAC/C,CACA4mB,0BAA0Bn7O,GACtB,MAAMo7O,EAAc,GACdd,EAAwBt6O,EAAOi1K,iBAC/B16I,EAAa+/M,EAAsBv+C,wBAAwBg5B,yBAC3Dt+I,EAAY6jK,EAAsBv+C,wBAAwBi5B,6BAChE,IAAIulB,EACAc,GACJ,QAASz8O,GAAQ,EAAGA,GAAQ27B,EAAW5gC,OAAQiF,KAAS,CACpD,MAAMjZ,GAAW8wF,EAAU73E,IAC3B,IAAIozM,IAAgB/tN,KAAK+0P,wBAA0B/0P,KAAK+0P,uBAAuBz+M,EAAW37B,OAAY3a,KAAK80P,eAAex+M,EAAW37B,KAChIozM,KAGDA,GAAe/tN,KAAKquP,oBAExB,IAAIjgL,GAAS2/I,GAAaC,iBAAiB9nB,mBAEvCjoH,GAAS8vI,GAAaG,oBAC1B,MAAMmpC,IAAsBtpC,GAAayoC,kBACzC,IAAMF,IAAoBc,IAAwBd,IAAqBloL,IAAWipL,GAAoB,CAClG,MAAMC,GAAyB,CAC3BC,YAAaxpC,GAAaI,oBAC1BqpC,SAAUzpC,GAAah/C,iBAAmB,WAA2D,SACrGz4H,WAAY,IAEhB6gN,EAAYl5O,KAAKq5O,IACjBF,GAAuBE,GAAuBhhN,WAC1C+gN,KACAp5K,GAAS,EACT7P,GAAS,KAEjB,CACAgpL,GAAqBn5O,KAAK,CACtBw5O,eAAgB/1P,GAChBu8E,UACA1uD,OAAQu+N,EAA0BwH,gCAAgCvnC,MAEtEuoC,EAAmBloL,EACvB,CACA,OAAO+oL,CACX,CACApH,sBAAsBh0O,EAAQunO,EAAU7c,GACpC,MAAM4vB,EAAwBt6O,EAAOi1K,iBAC/B0mE,EAAuB13P,KAAKk3P,0BAA0Bn7O,GACtD47O,EAAiB33P,KAAK62P,sBAAsBR,GAC5CN,GAAc,GACdrtB,GAAa1oO,KAAKw1P,qBAClBoC,GAAa53P,KAAK21P,sBAIxB,GAHI31P,KAAK80P,gBACLryC,GAA2BziN,KAAK80P,eAAgB/4O,GAEhD/b,KAAK0vP,iBAAmB,EACxB,QAASjyO,GAAI,EAAGA,GAAIzd,KAAKsuP,YAAY54O,SAAU+H,GAAG,CAC9C,MAAM8R,GAASvvB,KAAKsuP,YAAY7wO,IAChC,GAAI8R,GAAQ,CACR,MAAMsoO,GAAQ,CACVtoO,UACAslO,UAAY70P,KAAKuyP,gBAAmB,GAAK90O,GAAYzd,KAAKozP,WAAa,GAEvE1qB,IAAckvB,KACdC,GAAMC,MAAQ,CACVvtH,MAAOm+F,GACP7uK,MAAO+9L,KAGf7B,GAAY93O,KAAK45O,GACrB,MAEI9B,GAAY93O,KAAK,KAEzB,SAGIje,KAAKgvP,mBAAmB,GAAI,CAC5B,MAAM6I,GAAQ,CACVtoO,OAAQvvB,KAAKgvP,mBAAmB,GAChC6F,UAAW70P,KAAKozP,YAEhB1qB,IAAckvB,KACdC,GAAMC,MAAQ,CACVvtH,MAAOm+F,GACP7uK,MAAO+9L,KAGf7B,GAAY93O,KAAK45O,GACrB,MAEI9B,GAAY93O,KAAK,MAGzB,MAAM85O,GAAmB,CACrBxL,QAASuB,EAA0BsH,oBAAoBp1P,KAAKyzP,gBAAkBzzP,KAAK2zP,qBAAuB,GAC1Gc,YAAa3G,EAA0BuH,sBAAsBr1P,KAAKyzP,gBAAkBzzP,KAAK8zP,yBAA2B,GACpHa,OAAQ7G,EAA0BuH,sBAAsBr1P,KAAKyzP,gBAAkBzzP,KAAKk0P,oBAAsB,GAC1GQ,OAAQ5G,EAA0BuH,sBAAsBr1P,KAAKyzP,gBAAkBzzP,KAAKg0P,oBAAsB,IAE9G,IAAIzQ,IACa,eAAbD,GAA4F,mBAAbA,KAC/EC,IAAoBvjP,KAAKg1P,cAAgBh1P,KAAKg1P,aAAa9nC,SAAW,SAAoD,UAE9H,MAAM8qC,KAA+Bh4P,KAAKqzP,2BAA4B5tB,GAAoBY,iBAAiBrmO,KAAKqzP,2BAChH,OAAOrzP,KAAK0hP,QAAQwB,qBAAqB,CACrC3yO,MAAQ,kBAAiBwlP,GAAY,IAAIxmO,QAAU,cAAcvvB,KAAKqzP,2BAA6B,oBAAoB5sB,iBAA2BzmO,KAAK42P,gBACvJzT,OAAQwU,EACRl5F,OAAQ,CACJ2kF,OAAQiT,EAAsBhmB,OAAO4nB,YAAY7U,OACjD9xD,WAAY+kE,EAAsBhmB,OAAO4nB,YAAY3mE,WACrD4mE,QAASR,GAEbrU,UAAW,CACPC,WACAC,oBACAuN,UAA+B,IAApB9wP,KAAK+wP,WAAmB,MAA4C,KAC/EoH,SAAWn4P,KAAKixP,aAA+E,IAAnBjxP,KAAKoxP,UAAkB,QAA+C,OAAnH,QAEnCzvP,SAAW00P,EAAsBhmB,OAAO+nB,cAElC,CACEhV,OAAQiT,EAAsBhmB,OAAO+nB,cAAchV,OACnD9xD,WAAY+kE,EAAsBhmB,OAAO+nB,cAAc9mE,WACvD8Y,QAAS2rD,SAJXlzP,EAMNw1P,YAAa,CACTn5N,MAAOunM,GAIX6xB,kBAAiDz1P,IAAnC7C,KAAKqzP,+BACbxwP,EACA,CACE6uP,kBAAmB1xP,KAAK4xP,mBACxBD,aAAc3xP,KAAK6xP,kBAAoB/D,EAA0BsH,oBAAoBp1P,KAAK8xP,eAAiB,SAC3GviO,OAAQvvB,KAAKqzP,0BACbkF,aAAcv4P,KAAKyzP,iBAAmBuE,GAA+BD,QAAmBl1P,EACxF21P,YAAax4P,KAAKyzP,iBAAmBuE,GAA+BD,QAAmBl1P,EACvF41P,gBAAiBz4P,KAAKyzP,iBAAmBuE,GAA+Bh4P,KAAKo0P,sBAAmBvxP,EAChG61P,iBAAkB14P,KAAKyzP,iBAAmBuE,GAA+Bh4P,KAAKs0P,uBAAoBzxP,EAClGmvP,UAAWhyP,KAAKiyP,WAChB0G,eAAgB34P,KAAK44P,gBACrB1G,oBAAqBlyP,KAAKmyP,uBAG1C,EAEJrE,SAA0ByC,uBAAyB,EACnDzC,EAA0B2C,oBAAsB,EAChD3C,EAA0BkC,aAAe,EACzClC,EAA0B6C,6BAA+B,EACzD7C,EAA0BmC,iCAAmC,EA/xBhDnC,CAAyB,KCnDtC,MAAM+K,GACFh5P,cACIG,KAAKwuC,OAAS,CAAC,CACnB,CACAtP,QACI,IAAI45N,EAAY,EAAGC,EAAgB/4P,KAAKijP,SAAW,EAAI,EACvD,UAAW1wO,KAASvS,KAAKwuC,OAAQ,CAC7B,MAAM8jD,EAAOtyF,KAAKwuC,OAAOj8B,IAClBymP,EAAiBC,GAAsB3mK,EAAKpzD,QACnD45N,GAAaE,EACbD,GAAiBE,EACjBH,GACJ,CACA,MAAO,CAACA,EAAWC,EACvB,EAGG,MAAMG,WAAsCpL,GAC/C,oBAAOqL,GACH,MAAMC,EAASF,GAA8BG,OAAOn6N,QACpD,MAAO,CAAEo6N,UAAWF,EAAO,GAAIG,cAAeH,EAAO,GACzD,CACA,oBAAOI,CAAclnK,EAAMmnK,EAAWC,EAASC,GAC3C,GAAIrnK,EAAK2wJ,SAAU,CACf,MAAMr2O,EAAO8sP,EAAQh8O,QACrB9Q,EAAK8I,OAASikP,EACdF,EAAUx7O,KAAKrR,EACnB,CACA,UAAW2F,KAAS+/E,EAAK9jD,OAAQ,CAC7B,MAAMorN,EAAQtnK,EAAK9jD,OAAOj8B,GAC1BmnP,EAAQC,GAAcvnJ,SAAS7/F,GAC/B2mP,GAA8BM,cAAcI,EAAOH,EAAWC,EAASC,EAAa,EACxF,CACJ,CACA,mBAAOE,GACH,MAAMJ,EAAY,GAClBP,UAA8BM,cAAcN,GAA8BG,OAAQI,EAAW,GAAI,GAC1FA,CACX,CACA,iBAAOK,GACHZ,GAA8BG,OAAS,IAAIR,EAC/C,CACAxlP,QACIrT,KAAK+5P,WAAa,GAClB/5P,KAAK+5P,WAAW,GAAKb,GAA8BG,OACnDx1P,MAAMwP,OACV,CACAm9O,mBAAmB5tG,GACf,IAAItwD,EAAOtyF,KAAK+5P,WAAW/5P,KAAKouP,wBAChC,QAAS3wO,EAAIzd,KAAKouP,uBAAwB3wO,EAAIzd,KAAKmuP,gBAAiB1wO,EAAG,CACnE,IAAI0zI,EAAK7+D,EAAK9jD,OAAOxuC,KAAKkuP,QAAQzwO,IAC7B0zI,IACDA,EAAK,IAAI0nG,GACTvmK,EAAK9jD,OAAOxuC,KAAKkuP,QAAQzwO,IAAM0zI,GAEnC7+D,EAAO6+D,EACPnxJ,KAAK+5P,WAAWt8O,EAAI,GAAK60E,CAC7B,CACAswD,EAAM7/I,MAAQuvF,EACdswD,EAAMqgG,SAAW3wJ,EAAK2wJ,QAC1B,CACAyN,mBAAmB9tG,GACfA,EAAM7/I,MAAMkgP,SAAWrgG,EAAMqgG,QACjC,EAEJiW,GAA8BG,OAAS,IAAIR,mBC/DpC,MAAMmB,WAAmCC,KAC5Cp6P,YAAY6vJ,GACR7rJ,OAAM,GACN7D,KAAKy4J,OAAS/I,EACd1vJ,KAAKqT,OACT,CACA,QAAI+gL,GACA,OAAOp0L,KAAKk6P,KAChB,CACA,QAAI9lE,CAAK7hL,GACDvS,KAAKk6P,QAAU3nP,IAGnBvS,KAAKk6P,MAAQ3nP,EACbvS,KAAKy4J,OAAOi7F,kBAAkBnhP,GAClC,CACA,YAAI4nP,GACA,OAAOn6P,KAAKo6P,SAChB,CACA,YAAID,CAAS5nP,GACLvS,KAAKo6P,YAAc7nP,IAGvBvS,KAAKo6P,UAAY7nP,EACjBvS,KAAKy4J,OAAO07F,mBAAmB5hP,GACnC,CACA,iBAAI8nP,GACA,OAAOr6P,KAAKs6P,cAChB,CACA,iBAAID,CAAc9nP,GACVvS,KAAKs6P,iBAAmB/nP,IAG5BvS,KAAKs6P,eAAiB/nP,EACtBvS,KAAKy4J,OAAOw7F,iBAAiB1hP,GACjC,CACA,eAAIgoP,GACA,OAAOv6P,KAAKw6P,YAChB,CACA,eAAID,CAAYhoP,GACRvS,KAAKw6P,eAAiBjoP,IAG1BvS,KAAKw6P,aAAejoP,EACpBvS,KAAKy4J,OAAOm7F,sBAAsBrhP,GACtC,CACA,sBAAIkoP,GACA,OAAOz6P,KAAK06P,mBAChB,CACA,sBAAID,CAAmBloP,GACfvS,KAAK06P,sBAAwBnoP,IAGjCvS,KAAK06P,oBAAsBnoP,EAC3BvS,KAAKy4J,OAAOs7F,iBAAiBxhP,GACjC,CACA,QAAIyvK,GACA,OAAOhiL,KAAK26P,KAChB,CACA,QAAI34E,CAAKzvK,GACDvS,KAAK26P,QAAUpoP,IAGnBvS,KAAK26P,MAAQpoP,EACbvS,KAAKy4J,OAAO47F,oBAAoB9hP,GACpC,CACA,WAAIyiB,GACA,OAAOh1B,KAAK46P,QAChB,CACA,WAAI5lO,CAAQziB,GACJvS,KAAK46P,WAAaroP,IAGtBvS,KAAK46P,SAAWroP,EAChBvS,KAAKy4J,OAAO42F,kBAAkB98O,GAClC,CACAc,QACIxP,MAAMwP,QACNrT,KAAKy4J,OAAO62F,mBAChB,CACA9yO,QACI,MAAMq+O,EAAyB76P,KAAK86P,iBAAiB9lO,QACrDh1B,KAAKg1B,QAAU6lO,EAAyB76P,KAAK86P,gBAAgB9lO,QAAUh1B,KAAK+6P,cAAc/lO,QACrFh1B,KAAKg1B,UAGVh1B,KAAKo0L,KAAOymE,EAAyB76P,KAAK86P,gBAAgB1mE,KAAOp0L,KAAK+6P,cAAc3mE,KACpFp0L,KAAKg7P,QAAUH,EAAyB76P,KAAK86P,gBAAgBE,QAAUh7P,KAAK+6P,cAAcC,QAC1Fh7P,KAAKm6P,SAAWU,EAAyB76P,KAAK86P,gBAAgBX,SAAWn6P,KAAK+6P,cAAcZ,SAC5Fn6P,KAAKq6P,cAAgBQ,EAAyB76P,KAAK86P,gBAAgBT,cAAgBr6P,KAAK+6P,cAAcV,cACtGr6P,KAAKu6P,YAAcM,EAAyB76P,KAAK86P,gBAAgBP,YAAcv6P,KAAK+6P,cAAcR,YAClGv6P,KAAKy6P,mBAAqBI,EAAyB76P,KAAK86P,gBAAgBL,mBAAqBz6P,KAAK+6P,cAAcN,mBAChHz6P,KAAKgiL,KAAO64E,EAAyB76P,KAAK86P,gBAAgB94E,KAAOhiL,KAAK+6P,cAAc/4E,KACxF,kBC7FG,MAAMi5E,WAAgCC,KAKzCr7P,YAAY6vJ,GACR7rJ,OAAM,GACN7D,KAAKy4J,OAAS/I,EACd1vJ,KAAKqT,OACT,CACA,WAAIq/M,GACA,OAAO1yN,KAAKimN,QAChB,CACA,WAAIyM,CAAQngN,GACJvS,KAAKimN,WAAa1zM,IAGtBvS,KAAKimN,SAAW1zM,EAChBvS,KAAKm7P,iBAAkB,EACvBn7P,KAAKy4J,OAAOs5F,uBAAuBx/O,GACvC,CACA,gBAAIugN,GACA,OAAO9yN,KAAKkmN,aAChB,CACA,gBAAI4M,CAAavgN,GACTvS,KAAKkmN,gBAAkB3zM,IAG3BvS,KAAKkmN,cAAgB3zM,EACrBvS,KAAKm7P,iBAAkB,EACvBn7P,KAAKy4J,OAAOs2F,aAAax8O,GAC7B,CACA,YAAI4+O,GACA,OAAOnxP,KAAKoxP,SAChB,CACA,YAAID,CAAS5+O,GACLvS,KAAKoxP,YAAc7+O,IAGvBvS,KAAKoxP,UAAY7+O,EACjBvS,KAAKo7P,kBAAmB,EACxBp7P,KAAKy4J,OAAOy4F,YAAY3+O,GAAS,GACrC,CACA,QAAI8oP,GACA,OAAOr7P,KAAKs7P,KAChB,CACA,QAAID,CAAK9oP,GACDvS,KAAKs7P,QAAU/oP,IAGnBvS,KAAKs7P,MAAQ/oP,EACbvS,KAAKu7P,cAAe,EACpBv7P,KAAKy4J,OAAOu4F,iBAAiBz+O,GACjC,CACA,aAAI45M,GACA,OAAOnsN,KAAKw7P,UAChB,CACA,aAAIrvC,CAAU55M,GACNvS,KAAKw7P,aAAejpP,IAGxBvS,KAAKw7P,WAAajpP,EAClBvS,KAAKy7P,mBAAoB,EACzBz7P,KAAKy4J,OAAO+6F,gBAAgBjhP,GAChC,CACA,aAAI65M,GACA,OAAOpsN,KAAK07P,UAChB,CACA,aAAItvC,CAAU75M,GACNvS,KAAK07P,aAAenpP,IAGxBvS,KAAK07P,WAAanpP,EAClBvS,KAAK27P,mBAAoB,EACzB37P,KAAKy4J,OAAOowE,qBAAqBt2N,GACrC,CACA,aAAI05M,GACA,OAAOjsN,KAAK47P,UAChB,CACA,aAAI3vC,CAAU15M,GACNvS,KAAK47P,aAAerpP,IAGxBvS,KAAK47P,WAAarpP,EAClBvS,KAAK67P,mBAAoB,EACzB77P,KAAKy4J,OAAO86F,oBAAoBhhP,GACpC,CACA,aAAIu+O,GACA,OAAO9wP,KAAK+wP,UAChB,CACA,aAAID,CAAUv+O,GACNvS,KAAK+wP,aAAex+O,IAGxBvS,KAAK+wP,WAAax+O,EAClBvS,KAAK87P,mBAAoB,EACzB97P,KAAKy4J,OAAOo4F,aAAat+O,GAAS,GACtC,CACAc,QACIxP,MAAMwP,QACNrT,KAAKy4J,OAAOo2F,wBAChB,CACAryO,QACI,ECtGD,MAAMu/O,GAMT,wBAAOC,CAAkBz1D,GACrB,YAAsC1jM,IAA/B0jM,EAAQL,kBACnB,CAKAvgE,eACI,MAAO,iBACX,CAIA,sBAAIugE,GACA,OAAOlmM,KAAKi8P,MAChB,CAKAp8P,YAAY2mM,GAIRxmM,KAAKk+N,YAAa,EAIlBl+N,KAAKoS,KAAO,GAIZpS,KAAKuvB,OAAS,WACdvvB,KAAKi8P,OAASz1D,EACdxmM,KAAK6iL,SAAW+oB,KAAgBswD,UACpC,CAKAnoE,UACI,OAAO/zL,KAAKi8P,OAAOE,YAAcn8P,KAAKi8P,OAAOG,iBACjD,CAIA36M,UAAY,ECnDT,IAAM46M,GAAqB,MAA3B,MAAMA,EACT,0BAAIC,GAGA,OAAOt8P,KAAKu8P,qBAAuB,CACvC,CACA,2BAAIC,GACA,OAAOx8P,KAAKy8P,yBAA2B,CAC3C,CACA58P,cACIG,KAAK6iL,SAAWw5E,EAAsBH,WACtCl8P,KAAK08P,SAAW,EAChB18P,KAAK4vP,aAAe,EACpB5vP,KAAKqT,OACT,CACAA,QACIrT,KAAKs4M,SAAW,CAAC,EACjBt4M,KAAK4xI,SAAW,CAAC,EACjB5xI,KAAK28P,SAAU,EACf38P,KAAKy8P,yBAA2B,EAChCz8P,KAAKu8P,qBAAuB,CAChC,CACAK,WAAWr2P,EAAMglO,GACb,IAAIsxB,EAAe78P,KAAKs4M,SAAS/xM,GAC7Bu2P,GAAkB,EACjBD,EAIDC,EAAkBD,EAAalG,SAH/B32P,KAAKs4M,SAAS/xM,GAAQs2P,EAAe,CAAEtxB,UAASorB,SAAU,GAK9DkG,EAAatxB,QAAUA,EACvBsxB,EAAalG,SAAWprB,EAAU8f,GAAmBE,mBAAmBhgB,GAAW,EACnF,MAAMoxB,EAAUG,IAAoBD,EAAalG,SAC7CgG,GACA38P,KAAK08P,WAET18P,KAAK28P,UAAY38P,KAAK28P,QAAUA,EACpC,CACA9wH,WAAWtlI,EAAMggM,GACb,IAAIw2D,EAAe/8P,KAAK4xI,SAASrrI,GAC7By2P,GAAmB,EAClBD,EAIDC,EAAmBD,EAAax2D,SAAS1jB,WAAY,EAHrD7iL,KAAK4xI,SAASrrI,GAAQw2P,EAAe,CAAEx2D,UAAS02D,uBAAuB,EAAOC,mBAAmB,GAKjGH,EAAaG,mBACbl9P,KAAKu8P,uBAELQ,EAAaE,uBACbj9P,KAAKy8P,2BAELl2D,GACAw2D,EAAaE,sBACQ,IAAjB12D,EAAQn0L,MACHm0L,EAAQh3K,QAAU,IAAMg3K,EAAQh3K,QAAU,GACnDwtO,EAAaG,kBAAoBnB,GAAgBC,kBAAkBz1D,GAC/Dw2D,EAAaE,uBACbj9P,KAAKy8P,2BAELM,EAAaG,mBACbl9P,KAAKu8P,yBAITQ,EAAaE,uBAAwB,EACrCF,EAAaG,mBAAoB,GAErCH,EAAax2D,QAAUA,EACvB,MAAMo2D,EAAUK,KAAsBz2D,GAAS1jB,WAAY,GACvD85E,GACA38P,KAAK08P,WAET18P,KAAK28P,UAAY38P,KAAK28P,QAAUA,EACpC,EAEJN,SAAsBH,SAAW,EA9EpBG,CAAqB,KCJrBc,GAAiB,MAAvB,MAAMA,EACTR,QAAQS,GACJ,OAAOp9P,KAAK2uP,UAAY3uP,KAAKq9P,2BAA6BD,CAC9D,CACAE,aAAaF,GACTp9P,KAAK2uP,UAAW,EAChB3uP,KAAKq9P,yBAA2BD,CACpC,CACA,iBAAIG,GACA,OAAOv9P,KAAKw9P,cAChB,CACA,iBAAID,CAAcpjG,GACVn6J,KAAKw9P,iBAAmBrjG,IAGvBA,GAQDn6J,KAAKy9P,mBAAqBz9P,KAAK2hP,eAAeiG,gBAAgB,GAAIzF,GAA4B1Y,QAAU0Y,GAA4BrY,SAAWqY,GAA4BtY,aAAShnO,EAAW,sBAC/L7C,KAAK09P,kBAAoB,IAAI32N,YAAY,GACzC/mC,KAAK09P,kBAAkB,GAAK,EAC5B19P,KAAK09P,kBAAkB,GAAK,IAVxB19P,KAAKy9P,oBACLz9P,KAAK2hP,eAAesG,cAAcjoP,KAAKy9P,oBAE3Cz9P,KAAKy9P,wBAAqB56P,EAC1B7C,KAAK09P,uBAAoB76P,GAQ7B7C,KAAKw9P,eAAiBrjG,EACtBn6J,KAAK29P,uBAAwB,EACjC,CACA99P,YAAYshP,GACRnhP,KAAK2hP,eAAiBR,EACtBnhP,KAAK6iL,SAAWs6E,EAAkBjB,WAClCl8P,KAAKw9P,gBAAiB,EACtBx9P,KAAK29P,sBAAwB,EAC7B39P,KAAKqT,OACT,CACAA,QACIrT,KAAKk4P,QAAU,CAAC,EAChBl4P,KAAK2uP,UAAW,EAChB3uP,KAAKq9P,yBAA2B,EAChCr9P,KAAK49P,gBAAa/6P,EAClB7C,KAAK69P,gBAAah7P,CACtB,CACAi7P,UAAUv3P,EAAM6nE,GACZpuE,KAAK2uP,WAAa3uP,KAAK2uP,SAAWvgL,GAAQy0G,WAAa7iL,KAAKk4P,QAAQ3xP,IAAOs8K,UAC3E7iL,KAAKk4P,QAAQ3xP,GAAQ6nE,CACzB,CACA2vL,gBAAgBC,EAAoBC,EAAeC,GAC3CD,IAAkBj+P,KAAK29P,wBAA0B39P,KAAKy9P,qBAAuBz9P,KAAK09P,oBAMtF19P,KAAK29P,sBAAwBM,EAC7Bj+P,KAAK09P,kBAAkB,GAAKM,EAC5Bh+P,KAAK09P,kBAAkB,GAAKO,EAC5Bj+P,KAAK09P,kBAAkB,GAAKQ,EAC5Bl+P,KAAK2hP,eAAe+D,WAAW1lP,KAAKy9P,mBAAoB,EAAGz9P,KAAK09P,kBAAmB,EAAG,IAC1F,CACAj8M,UACQzhD,KAAKy9P,qBACLz9P,KAAK2hP,eAAesG,cAAcjoP,KAAKy9P,oBACvCz9P,KAAKy9P,wBAAqB56P,EAC1B7C,KAAK09P,uBAAoB76P,GAE7B7C,KAAK49P,gBAAa/6P,EAClB7C,KAAK69P,gBAAah7P,EAClB7C,KAAKk4P,aAAUr1P,CACnB,EAEJs6P,SAAkBjB,SAAW,EAzEhBiB,CAAiB,KCY9B,MAAMgB,GACFt+P,cACIG,KAAKwuC,OAAS,CAAC,CACnB,EAGG,MAAM4vN,GACT,qBAAWC,GACP,MAAO,CACHC,aAAcF,GAAsBG,0BACpCC,iBAAkBJ,GAAsBK,8BACxCC,gBAAiBN,GAAsBO,6BACvCC,kBAAmBR,GAAsBS,+BAEjD,CACA,iBAAO/E,GACHsE,GAAsB/E,OAAS,IAAI8E,GACnCC,GAAsBG,0BAA4B,EAClDH,GAAsBK,8BAAgC,EACtDL,GAAsBO,6BAA+B,EACrDP,GAAsBS,+BAAiC,EACvDT,GAAsBU,kCAAoC,EAC1DV,GAAsBW,iCAAmC,EACzDX,GAAsBY,mCAAqC,CAC/D,CACAn/P,YAAYqhP,EAAQ+d,EAAcv0H,GAC9B1qI,KAAK6vC,UAAW,EAChB7vC,KAAK0hP,QAAUR,EACflhP,KAAKk/P,cAAgBD,EACrBj/P,KAAKqxK,QAAU3mC,CACnB,CACA03B,WACIg8F,GAAsBK,8BAAgCL,GAAsBU,kCAC5EV,GAAsBO,6BAA+BP,GAAsBW,iCAC3EX,GAAsBS,+BAAiCT,GAAsBY,mCAC7EZ,GAAsBU,kCAAoC,EAC1DV,GAAsBW,iCAAmC,EACzDX,GAAsBY,mCAAqC,CAC/D,CAUAG,cAAc9I,EAAuB+I,EAAaC,GAC9C,IAAIxB,EACAvrK,EAAO8rK,GAAsB/E,OACjC,MAAMiG,EAAkBt/P,KAAK6vC,UAAYwvN,EAAgB/C,uBACzD,IAAKgD,EAAiB,CAClB,IAAKF,EAAYzC,QAAQ0C,EAAgB3C,YAAc2C,EAAgB1C,QACnEyB,UAAsBY,qCACfI,EAAYvB,WAEvB,UAAW0B,MAAclJ,EAAsBv+C,wBAAwB2zB,YAAa,CAChF,MAAM+zB,IAASJ,EAAYlH,QAAQqH,KAAa18E,UAAY,GAlEtD,QAmEN,IAAI48E,GAAWntK,EAAK9jD,OAAOgxN,IACtBC,KACDA,GAAW,IAAItB,GACf7rK,EAAK9jD,OAAOgxN,IAASC,IAEzBntK,EAAOmtK,EACX,CACA,UAAWhoB,MAAe4e,EAAsBv+C,wBAAwB0zB,aAAc,CAClF,MAAMk0B,GAAkBL,EAAgB/mD,SAASm/B,KAAckf,UAAY,EAC3E,IAAI8I,GAAWntK,EAAK9jD,OAAOkxN,IACtBD,KACDA,GAAW,IAAItB,GACf7rK,EAAK9jD,OAAOkxN,IAAmBD,IAEnCntK,EAAOmtK,EACX,CACA,UAAWljB,MAAe8Z,EAAsBv+C,wBAAwBuzB,aAAc,CAClF,MAAMs0B,IAAaN,EAAgBztH,SAAS2qG,KAAch2C,SAAS1jB,UAAY,GA7ExE,YA8EP,IAAI48E,GAAWntK,EAAK9jD,OAAOmxN,IACtBF,KACDA,GAAW,IAAItB,GACf7rK,EAAK9jD,OAAOmxN,IAAaF,IAE7BntK,EAAOmtK,EACX,CACA5B,EAAavrK,EAAKurK,UACtB,CAGA,GAFAuB,EAAY9B,aAAa+B,EAAgB3C,UACzC2C,EAAgB1C,SAAU,EACtBkB,EACAuB,SAAYvB,WAAaA,EACzBO,GAAsBW,mCACflB,EAEXA,EAAa,GACbuB,EAAYvB,WAAaA,EACpByB,IACDhtK,EAAKurK,WAAaA,GAEtBO,GAAsBG,4BACtBH,GAAsBU,oCACtB,MAAMxuB,EAAmB+lB,EAAsB/lB,iBAAiB+uB,EAAgBzP,cAChF,QAASnyO,GAAI,EAAGA,GAAI44O,EAAsBv+C,wBAAwBkzB,uBAAuBt1N,OAAQ+H,KAAK,CAClG,MAAMwtN,GAAgBorB,EAAsBv+C,wBAAwBkzB,uBAAuBvtN,IACrFw7C,GAAUo9L,EAAsBv+C,wBAAwB6zB,iBAAiBluN,IAC/E,QAASmsD,GAAI,EAAGA,GAAIqhK,GAAcv1N,OAAQk0D,KAAK,CAC3C,MAAMxQ,GAAQi9L,EAAsBv+C,wBAAwBkzB,uBAAuBvtN,IAAGmsD,IAChFg2L,GAAYvJ,EAAsBv+C,wBAAwBozB,yBAAyBztN,IAAG27C,GAAMuxK,SAC5FpkO,GAAOq5P,GAAUt0B,sBAAwBs0B,GAAUr5P,KACzD,GAAI6yD,GAAMmyK,QAAS,CACf,MAAMs0B,GAAcR,EAAgB/mD,SAAS/xM,IAC7C,GAAIs5P,GAAa,CACb,MAAMt0B,GAAUs0B,GAAYt0B,QAC5B,IAAKA,GAAS,CACNvrO,KAAKqxK,QAAQu1D,iBACbhmE,KAAOt7I,MAAO,wCAAuC8K,KAAKC,UAAU+oC,aAAgB7yD,mBAAqB6pB,KAAKC,UAAUwvO,GAAa,CAACr7N,GAAKjyB,KAAmB,YAARiyB,GAAoB,YAAcjyB,iCAAqC8sP,EAAgBx8E,WAAY,IAE7P,QACJ,CACA5pH,GAAQ2Q,IAAGgiK,SAAW5rO,KAAKk/P,cAAcxS,WAAWnhB,IAAS,EAAOs0B,GAAYlJ,SAAUprB,GAAQh7N,MACtG,MAEIqwJ,KAAOt7I,MAAO,YAAW/e,iCAAmC6pB,KAAKC,UAAU+oC,wBAA2BhpC,KAAKC,UAAUgvO,EAAiB,CAAC76N,GAAKjyB,KAAkB,YAARiyB,IAA6B,YAARA,GAAoB,YAAcjyB,MAAU,GAE/N,SACS6mD,GAAMmtI,SAAWntI,GAAMgyK,eAAgB,CAC5C,MAAMy0B,GAAcR,EAAgBztH,SAASrrI,IAC7C,GAAIs5P,GAAa,CACb,GAAI7/P,KAAKqxK,QAAQu1D,iBAA2C,OAAxBi5B,GAAYt5D,QAAkB,CAC9D3lC,KAAOt7I,MAAO,wCAAuC8K,KAAKC,UAAU+oC,oBAAuBhpC,KAAKC,UAAUwvO,GAAa,CAACr7N,GAAKjyB,KAAkB,YAARiyB,GAAoB,YAAcjyB,iCAAoC8sP,EAAgBx8E,WAAY,IACzO,QACJ,CACA,MAAMosB,GAAkB4wD,GAAYt5D,QAAQwF,iBAC5C,GAAI/rM,KAAKqxK,QAAQu1D,mBACX33B,IAAoB71I,GAAMmtI,UAAY0I,GAAgBlgI,MAAU3V,GAAMgyK,iBAAmBn8B,GAAgBsuC,gBAAkB,CAC7H38E,KAAOt7I,MAAO,oDAAmD8K,KAAKC,UAAU+oC,aAAgB7yD,mBAAqB6pB,KAAKC,UAAUwvO,GAAa,CAACr7N,GAAKjyB,KAAmB,YAARiyB,GAAoB,YAAcjyB,gBAAoBstP,GAAYt5D,SAASxS,qCAAqCsrE,EAAgBx8E,WAAY,IAC9S,QACJ,CACA5pH,GAAQ2Q,IAAGgiK,SAAWxyK,GAAMgyK,eAAiBn8B,GAAgBsuC,eAAiBtuC,GAAgBlgI,IAClG,MAEI6xF,KAAOt7I,MAAO,YAAW/e,iCAAmC6pB,KAAKC,UAAU+oC,wBAA2BhpC,KAAKC,UAAUgvO,EAAiB,CAAC76N,GAAKjyB,KAAkB,YAARiyB,IAA6B,YAARA,GAAoB,YAAcjyB,MAAU,GAE/N,SACS6mD,GAAM+xK,gBAAiB,CAC5B,MAAM00B,GAAcR,EAAgBztH,SAASrrI,IAC7C,GAAIs5P,GAAa,CACb,GAAI7/P,KAAKqxK,QAAQu1D,iBAA2C,OAAxBi5B,GAAYt5D,QAAkB,CAC9D3lC,KAAOt7I,MAAO,iDAAgD8K,KAAKC,UAAU+oC,aAAgB7yD,mBAAqB6pB,KAAKC,UAAUwvO,GAAa,CAACr7N,GAAKjyB,KAAmB,YAARiyB,GAAoB,YAAcjyB,iCAAqC8sP,EAAgBx8E,WAAY,IAClQ,QACJ,CACA,MAAMsoD,GAAkB00B,GAAYt5D,QAAQL,mBAC5C,GAAIlmM,KAAKqxK,QAAQu1D,kBAAoBuE,GAAiB,CAClDvqE,KAAOt7I,MAAO,qDAAoD8K,KAAKC,UAAU+oC,aAAgB7yD,mBAAqB6pB,KAAKC,UAAUwvO,GAAa,CAACr7N,GAAKjyB,KAAmB,YAARiyB,GAAoB,YAAcjyB,gBAAoBstP,GAAYt5D,SAASxS,qCAAqCsrE,EAAgBx8E,WAAY,IAC/S,QACJ,CACA5pH,GAAQ2Q,IAAGgiK,SAAW5rO,KAAK0hP,QAAQ4C,sBAAsB,CAAEr8M,OAAQkjM,IACvE,MAEIvqE,KAAOt7I,MAAO,YAAW/e,iCAAmC6pB,KAAKC,UAAU+oC,wBAA2BhpC,KAAKC,UAAUgvO,EAAiB,CAAC76N,GAAKjyB,KAAkB,YAARiyB,IAA6B,YAARA,GAAoB,YAAcjyB,MAAU,GAE/N,SACS6mD,GAAMgV,OAAQ,CACnB,MAAMw7K,GAAawV,EAAYlH,QAAQ3xP,IACnCqjP,IAEA3wL,GAAQ2Q,IAAGgiK,SAASx9J,OADCw7K,GAAW1jD,mBAEhCjtI,GAAQ2Q,IAAGgiK,SAASvyM,KAAOuwN,GAAW5zD,UAGtCp1B,KAAOt7I,MAAO,sBAAqB/e,cAAgB6pB,KAAKC,UAAU+oC,gBAAmBhpC,KAAKC,UAAU+uO,EAAYlH,kCAAkCkH,EAAYv8E,WAAY,GAElL,CACJ,CAEAg7E,EAAWpgP,IAAKzd,KAAK0hP,QAAQ8C,gBAAgB,CACzCrB,OAFgB7S,EAAiB7yN,IAGjCw7C,YAER,CACA,OAAO4kM,CACX,EAEJO,GAAsBG,0BAA4B,EAClDH,GAAsBK,8BAAgC,EACtDL,GAAsBO,6BAA+B,EACrDP,GAAsBS,+BAAiC,EACvDT,GAAsB/E,OAAS,IAAI8E,GACnCC,GAAsBU,kCAAoC,EAC1DV,GAAsBW,iCAAmC,EACzDX,GAAsBY,mCAAqC,ECzL3D33E,KAAYy4E,iBAAqB,sBAfjB,yWCIhBz4E,KAAYy4E,iBAAqB,qBAJjB,4HCKT,MAAMC,GACT3Q,sBAAsB7/N,GAClBvvB,KAAKggQ,oBAAsBzwO,EAC3BvvB,KAAK4oO,qBAAqBwmB,sBAAsB7/N,EACpD,CACA0/N,eAAe1/N,GACXvvB,KAAK4oO,qBAAqBqmB,eAAe1/N,EAC7C,CACA8iO,kBAAkBjqD,EAAaoqD,EAAczoD,GACzC/pM,KAAK4oO,qBAAqBsmB,OAAOsD,EAAczoD,GAC/C/pM,KAAK4oO,qBAAqBypB,kBAAkBjqD,EAChD,CACAvoM,YAAYqhP,EAAQx2G,EAAQqjH,GACxB/tP,KAAKigQ,YAAc,CAAC,EACpBjgQ,KAAKkgQ,aAAe,CAAC,EACrBlgQ,KAAKmgQ,SAAW,GAChBngQ,KAAK0hP,QAAUR,EACflhP,KAAKqxK,QAAU3mC,EACf1qI,KAAK4oO,qBAAuB,IAAIswB,GAA8Bl5P,KAAK0hP,QAASqM,GAC5E/tP,KAAK4oO,qBAAqB2qB,qBAAoB,GAC9CvzP,KAAK4oO,qBAAqBurB,mBAAmB,KAC7Cn0P,KAAKogQ,QAAU11H,EAAOv1H,aAAa,YAAa,GAAI,CAAC,QAAS,mBAAetS,OAAWA,OAAWA,OAAWA,OAAWA,OAAWA,EAAW,EACnJ,CACAovC,MAAMouN,EAAYC,EAAYC,EAAYC,EAAc/5B,EAAc,GAClE,IAAIg6B,EAEAC,GADAC,EAAS,KAEb,MAAMC,KAAc5gQ,KAAKqxK,QAAQq3B,qBACjC,GAAI23D,EACAI,EAAcJ,MAEb,CACD,IAAIvlP,GAAM,EACV9a,KAAKmgQ,SAASzqP,OAAS,EACvB,QAAS+H,GAAI,EAAGA,GAAIzd,KAAK4oO,qBAAqB6mB,aAAa/5O,SAAU+H,GACjEzd,KAAKmgQ,SAASrlP,MAASgkO,GAA+B9+O,KAAK4oO,qBAAqB6mB,aAAahyO,KAAM,IAavG,GAVAzd,KAAKmgQ,SAASrlP,KACTwlP,EAAaA,EAAWl/O,EAAmB,IAAfk/O,EAAWzlP,EAAyB,IAAfylP,EAAW/qP,EAAU,IAAqB,IAAf+qP,EAAW1xP,EAAU,IAAM,IAAM,IACzG2xP,EAAa,GAAK,GAAK,IACvBC,EAAe,GAAK,GAAK,IACzBxgQ,KAAKqxK,QAAQyhB,sBAAwB,GAAK,GAAK,IAC/C8tE,GAAY,GAAK,GAAK,IACtBn6B,EAAc,EAAI,GAAK,GAAK,GAPLqY,GAA+B9+O,KAAKggQ,qBAAuB,GAQzD,GAAK,GACvCU,GAAY1gQ,KAAKmgQ,SAASj2P,KAAK,KAC/By2P,EAAS3gQ,KAAKkgQ,aAAaQ,IACvBC,EACA,OAAOA,EAEXF,EAAczgQ,KAAK0hP,QAAQmf,0BAA0B,CACjDtwP,MAAO,wBACPk/O,aAAczvP,KAAK4oO,qBAAqB6mB,aACxCqR,mBAAoB9gQ,KAAKggQ,oBACzBv5B,YAAahB,GAAoBe,UAAUC,IAEnD,CACAzmO,KAAK4oO,qBAAqBC,uBAAuB03B,GACjDvgQ,KAAK4oO,qBAAqBymB,oBAAoBmR,KAAkBxgQ,KAAKggQ,qBAAuBv6B,GAAoBY,iBAAiBrmO,KAAKggQ,sBACtIhgQ,KAAK4oO,qBAAqByrB,oBAAoBmM,EAAe,IAAO,GACpExgQ,KAAK4oO,qBAAqB8qB,kBAAkB8M,EAAe,IAAM,KACjExgQ,KAAK4oO,qBAAqBmrB,iBAAiByM,EAAe,KAAO,MACjExgQ,KAAK4oO,qBAAqBumB,aAAamR,EAAa,GAAM,GAC1D,MAAMrd,GAAWjjP,KAAK4oO,qBAAqB+mB,kBAAkB,EAAG3vP,KAAKogQ,QAAS35B,GACxE4vB,GAAwBr2P,KAAKogQ,QAAQpvE,iBACvCsvE,GACAtgQ,KAAKogQ,QAAQlkD,gBAAgB,QAASokD,GAE1CtgQ,KAAKogQ,QAAQr+F,SAAS,aAAc/hK,KAAKqxK,QAAQyhB,sBAAwB9yL,KAAKqxK,QAAQ0vF,wBAA0B/gQ,KAAKqxK,QAAQ2vF,kBAC7H3K,GAAsBrlB,cAAcluK,SACpC,MAAMm+L,GAAkBL,GAAY5gQ,KAAKqxK,QAAQ6vF,WAAalhQ,KAAKqxK,QAAQ8vF,eACrEC,GAAiB/K,GAAsBrlB,cAAcrkE,YACrDnoI,GAAM48N,GAAev+E,SAAW,IAAMo+E,GAAgBp+E,SAC5D,IAAIg7E,GAAa79P,KAAKigQ,YAAYz7N,IAClC,IAAKq5N,GAAY,CACb,MAAMvtB,GAAmB+lB,GAAsB/lB,iBAAiB,GAChEutB,GAAa79P,KAAKigQ,YAAYz7N,IAAO,GACrCq5N,GAAW5/O,KAAKje,KAAK0hP,QAAQ8C,gBAAgB,CACzCj0O,MAAQ,uBAAsBi0B,KAC9B2+M,OAAQ7S,GAAiB,GACzBr3K,QAAS,MAERs5K,GAA8BE,0BAC/BorB,GAAW5/O,KAAKje,KAAK0hP,QAAQ8C,gBAAgB,CACzCj0O,MAAQ,uBAAsBi0B,KAC9B2+M,OAAQ7S,GAAiB,GACzBr3K,QAAS,MAGjB4kM,GAAW5/O,KAAKje,KAAK0hP,QAAQ8C,gBAAgB,CACzCj0O,MAAQ,qBAAoBgiO,GAA8BE,yBAA2B,EAAI,KAAKjuM,KAC9F2+M,OAAQ7S,GAAiBiC,GAA8BE,yBAA2B,EAAI,GACtFx5K,QAAS,CACL,CACI0xK,QAAS,EACTiB,SAAU,CACNx9J,OAAQ6yL,GAAgB/6D,mBACxB7sK,KAAM4nO,GAAgBjrE,WAG9B,CACI20C,QAAS,EACTiB,SAAU,CACNx9J,OAAQgzL,GAAel7D,mBACvB7sK,KAAM+nO,GAAeprE,cAKzC,CACAyqE,EAAYhc,YAAYxB,IACxB,QAASxlO,GAAI,EAAGA,GAAIogP,GAAWnoP,SAAU+H,GACrCgjP,EAAY/b,aAAajnO,GAAGogP,GAAWpgP,KAE3CgjP,SAAY9b,KAAK,EAAG,EAAG,EAAG,GACrB0b,IACDM,EAASF,EAAY1b,SACrB/kP,KAAKkgQ,aAAaQ,IAAaC,GAE5BA,CACX,EC/HG,MAAMU,GACTxhQ,YAAY+S,EAAG4P,EAAGomD,EAAGb,GACjB/nE,KAAK4S,EAAI2K,KAAKwrC,MAAMn2C,GACpB5S,KAAKwiB,EAAIjF,KAAKwrC,MAAMvmC,GACpBxiB,KAAK4oE,EAAIrrD,KAAKwrC,MAAM6f,GACpB5oE,KAAK+nE,EAAIxqD,KAAKwrC,MAAMgf,EACxB,CACA5/C,IAAIk4O,GACAA,EAAWpuC,YAAYjyN,KAAK4S,EAAG5S,KAAKwiB,EAAGxiB,KAAK4oE,EAAG5oE,KAAK+nE,EAAG,EAAG,EAC9D,CACA3kE,QACI,OAAO,IAAIi+P,GAAyBrhQ,KAAK4S,EAAG5S,KAAKwiB,EAAGxiB,KAAK4oE,EAAG5oE,KAAK+nE,EACrE,EAGG,MAAMu5L,GACTzhQ,YAAY+S,EAAG4P,EAAGomD,EAAGb,GACjB/nE,KAAK4S,EAAIA,EACT5S,KAAKwiB,EAAIA,EACTxiB,KAAK4oE,EAAIA,EACT5oE,KAAK+nE,EAAIA,CACb,CACA5/C,IAAIk4O,GACAA,EAAWkB,eAAevhQ,KAAK4S,EAAG5S,KAAKwiB,EAAGxiB,KAAK4oE,EAAG5oE,KAAK+nE,EAC3D,CACA3kE,QACI,OAAO,IAAIk+P,GAAwBthQ,KAAK4S,EAAG5S,KAAKwiB,EAAGxiB,KAAK4oE,EAAG5oE,KAAK+nE,EACpE,EAGG,MAAMy5L,GACT3hQ,YAAYyX,GACRtX,KAAKsX,IAAMA,CACf,CACA6Q,IAAIk4O,GACAA,EAAWoB,oBAAoBzhQ,KAAKsX,IACxC,CACAlU,QACI,OAAO,IAAIo+P,GAA2BxhQ,KAAKsX,IAC/C,EAGG,MAAMoqP,GACT7hQ,YAAYg6D,GACR75D,KAAK65D,MAAQA,CACjB,CACA1xC,IAAIk4O,GACAA,EAAWsB,iBAAiB3hQ,KAAK65D,MACrC,CACAz2D,QACI,OAAO,IAAIs+P,GAA2B1hQ,KAAK65D,MAC/C,EAGG,MAAM+nM,GACT/hQ,YAAY4pG,GACRzpG,KAAKypG,MAAQA,CACjB,CACAthF,IAAIk4O,GACAA,EAAW3hE,oBAAoB1+L,KAAKypG,MACxC,CACArmG,QACI,OAAO,IAAIw+P,GAAoC5hQ,KAAKypG,MACxD,EAGG,MAAMo4J,GACThiQ,cAAgB,CAChBsoB,IAAIk4O,GACAA,EAAWzhE,mBACf,CACAx7L,QACI,OAAO,IAAIy+P,EACf,EAEJ,MAAMC,GACFjiQ,cACIG,KAAK+hQ,QAAU,EACnB,CACA55O,IAAIk4O,GACAA,EAAW2B,eAAehiQ,KAAK+hQ,QACnC,CACA3+P,QACI,MAAM6+P,EAAS,IAAIH,GACnBG,SAAOF,QAAU/hQ,KAAK+hQ,QACfE,CACX,EAGG,MAAMC,GACTriQ,YAAYqhP,GACRlhP,KAAKmiQ,aAAe,EACpBniQ,KAAK0hP,QAAUR,EACflhP,KAAKoiQ,MAAQ,IAAI9kP,MAAM,IACvBtd,KAAKqiQ,YAAc,CACvB,CACAC,UAAU3B,GACN,IAAK3gQ,KAAKuiQ,qBAAsB,CAC5B,MAAMl2O,EAAO,IAAIy1O,GACjB9hQ,KAAKoiQ,MAAMpiQ,KAAKqiQ,eAAiBh2O,EACjCrsB,KAAKwiQ,mBAAqBn2O,EAAK01O,QAC/B/hQ,KAAKuiQ,sBAAuB,CAChC,CACI5B,GACA3gQ,KAAKwiQ,mBAAmBvkP,KAAK0iP,EAErC,CACA8B,gBACQziQ,KAAKuiQ,sBAAwBviQ,KAAK0iQ,iBAClC1iQ,KAAKwiQ,mBAAmBvkP,KAAKje,KAAK0iQ,eAAe3d,UACjD/kP,KAAK0iQ,oBAAiB7/P,EACtB7C,KAAKuiQ,sBAAuB,EAEpC,CACAI,QAAQt2O,GACJrsB,KAAKyiQ,gBACLziQ,KAAKoiQ,MAAMpiQ,KAAKqiQ,eAAiBh2O,EACjCrsB,KAAKuiQ,sBAAuB,CAChC,CACAK,iBAAiBnT,EAAcqR,EAAoBr6B,GAC/C,OAAKzmO,KAAKuiQ,uBACNviQ,KAAKsiQ,YACLtiQ,KAAK0iQ,eAAiB1iQ,KAAK0hP,QAAQmf,0BAA0B,CACzDpR,eACAqR,qBACAr6B,YAAahB,GAAoBe,UAAUC,MAG5CzmO,KAAK0iQ,cAChB,CACA9rO,QACI52B,KAAKyiQ,eACT,CACAt6O,IAAIk4O,GACArgQ,KAAK42B,QACL,QAASnZ,EAAI,EAAGA,EAAIzd,KAAKqiQ,cAAe5kP,EACpCzd,KAAKoiQ,MAAM3kP,GAAG0K,IAAIk4O,EAE1B,CACAhtP,QACIrT,KAAKqiQ,YAAc,EACnBriQ,KAAKuiQ,sBAAuB,EAC5BviQ,KAAKmiQ,aAAe,CACxB,CACA/+P,QACIpD,KAAK42B,QACL,MAAMqrO,EAAS,IAAIC,GAAiBliQ,KAAK0hP,SACzCugB,EAAOG,MAAQ,IAAI9kP,MAAMtd,KAAKqiQ,aAC9BJ,EAAOI,YAAcriQ,KAAKqiQ,YAC1BJ,EAAOE,aAAeniQ,KAAKmiQ,aAC3B,QAAS1kP,EAAI,EAAGA,EAAIzd,KAAKqiQ,cAAe5kP,EACpCwkP,EAAOG,MAAM3kP,GAAKzd,KAAKoiQ,MAAM3kP,GAAGra,QAEpC,OAAO6+P,CACX,EC1JG,MAAMY,GACT,YAAIC,GACA,OAAO9iQ,KAAK+iQ,SAChB,CACAljQ,YAAY6qI,EAAQxrG,EAAO9sB,EAAM8uO,EAAQC,EAAe6hB,GAAwB,EAAMzyP,GAClFvQ,KAAKijQ,YAAc,GACnBjjQ,KAAKqxK,QAAU3mC,EACf1qI,KAAK0hP,QAAUR,EACflhP,KAAK2hP,eAAiBR,EACtBnhP,KAAKioO,OAAS/oM,EACdl/B,KAAKkjQ,uBAAyBF,EAC9BhjQ,KAAK+iQ,UAAY7hB,EAAOiiB,eAAe,CACnC5yP,MAAOA,GAAS,WAChB6B,OACA8sB,UAEJl/B,KAAKojQ,aAAejiB,EAAcyG,gBAAgB,EAAI1oN,EAAOijN,GAA4BpY,aAAeoY,GAA4B3Y,aAAS3mO,EAAW,eACnJmgQ,GACDhjQ,KAAKijQ,YAAYhlP,KAAKje,KAAK2hP,eAAeiG,gBAAgB,EAAI5nP,KAAKioO,OAAQka,GAA4B7Y,QAAU6Y,GAA4B1Y,aAAS5mO,EAAW,gCAEzK,CACAwgQ,WAAWC,EAAYC,GACnB,IAAKvjQ,KAAKkjQ,wBAAsD,IAA5BljQ,KAAKijQ,YAAYvtP,OACjD,OAAO,KAEX,MAAM8tP,EAAgBxjQ,KAAK0hP,QAAQoC,uBACnC,IAAI11K,EACJ,OAAgC,IAA5BpuE,KAAKijQ,YAAYvtP,OACjB04D,EAASpuE,KAAK2hP,eAAeiG,gBAAgB,EAAI5nP,KAAKioO,OAAQka,GAA4B7Y,QAAU6Y,GAA4B1Y,aAAS5mO,EAAW,gCAGpJurE,EAASpuE,KAAKijQ,YAAYjjQ,KAAKijQ,YAAYvtP,OAAS,GACpD1V,KAAKijQ,YAAYvtP,UAErB8tP,EAAcC,gBAAgBzjQ,KAAK+iQ,UAAWO,EAAYC,EAAYvjQ,KAAKojQ,aAAc,GACzFI,EAAcE,mBAAmB1jQ,KAAKojQ,aAAc,EAAGh1L,EAAQ,EAAG,EAAIm1L,GACtEvjQ,KAAK0hP,QAAQmD,MAAMC,OAAO,CAAC0e,EAAcze,WAClC32K,CACX,CACMu1L,WAAWL,EAAa,EAAGC,EAAa,GAAG,IAAArjQ,EAAAF,KAAA,SAAAG,KAAA,YAC7C,MAAMiuE,EAASluE,EAAKmjQ,WAAWC,EAAYC,GAC3C,GAAe,OAAXn1L,EACA,OAAO,KAEX,MAAM66K,EAAW/oP,EAAKmxK,QAAQwR,SAC9B,OAAOz0G,EAAOu8K,SAAS,GAAsCtqP,KAAK,KAC9D,MAAMujQ,EAAW,IAAIC,eAAez1L,EAAOy5K,kBAAkBnqO,QAC7D0wD,SAAO05K,QACP5nP,EAAK+iQ,YAAY/iQ,EAAK+iQ,YAAYvtP,QAAU04D,EACrCw1L,GACPp7P,IACA,GAAItI,EAAKmxK,QAAQ25E,YAAc9qP,EAAKmxK,QAAQwR,WAAaomE,EAErD,OAAO,KAEX,MAAMzgP,GACP,EAjB0C,EAkBjD,CACMs7P,UAAUR,EAAa,GAAG,IAAAz7P,EAAA7H,KAAA,SAAAG,KAAA,YAC5B,MAAMiuE,EAASvmE,EAAKw7P,WAAWC,EAAY,GAC3C,GAAe,OAAXl1L,EACA,OAAO,KAEX,MAAM66K,EAAWphP,EAAKwpK,QAAQwR,SAC9B,OAAOz0G,EAAOu8K,SAAS,GAAsCtqP,KAAK,KAC9D,MAAMujQ,EAAW,IAAIC,eAAez1L,EAAOy5K,kBACrCt1O,EAAQ86B,OAAOu2N,EAAS,IAC9Bx1L,SAAO05K,QACPjgP,EAAKo7P,YAAYp7P,EAAKo7P,YAAYvtP,QAAU04D,EACrC77D,GACP/J,IACA,GAAIX,EAAKwpK,QAAQ25E,YAAcnjP,EAAKwpK,QAAQwR,WAAaomE,EAErD,OAAO,EAEX,MAAMzgP,GACP,EAlByB,EAmBhC,CACMu7P,yBAAyBT,EAAa,GAAG,IAAAv7P,EAAA/H,KAAA,SAAAG,KAAA,YAC3C,MAAMiuE,EAASrmE,EAAKs7P,WAAWC,EAAY,GAC3C,GAAe,OAAXl1L,EACA,OAAO,KAEX,MAAM66K,EAAWlhP,EAAKspK,QAAQwR,SAC9B,OAAOz0G,EAAOu8K,SAAS,GAAsCtqP,KAAK,KAC9D,MAAMujQ,EAAW,IAAIC,eAAez1L,EAAOy5K,kBACrCt1O,EAAQ86B,OAAOu2N,EAAS,GAAKA,EAAS,IAC5Cx1L,SAAO05K,QACP//O,EAAKk7P,YAAYl7P,EAAKk7P,YAAYvtP,QAAU04D,EACrC77D,GACP/J,IACA,GAAIT,EAAKspK,QAAQ25E,YAAcjjP,EAAKspK,QAAQwR,WAAaomE,EAErD,OAAO,EAEX,MAAMzgP,GACP,EAlBwC,EAmB/C,CACAi5C,UACIzhD,KAAK+iQ,UAAU18O,UACfrmB,KAAK2hP,eAAesG,cAAcjoP,KAAKojQ,cACvC,QAAS3lP,EAAI,EAAGA,EAAIzd,KAAKijQ,YAAYvtP,SAAU+H,EAC3Czd,KAAK2hP,eAAesG,cAAcjoP,KAAKijQ,YAAYxlP,GAE3D,ECtGG,MAAMumP,GACT,uBAAIC,GACA,OAAOjkQ,KAAKkkQ,oBAChB,CACArkQ,YAAY6qI,EAAQw2G,EAAQC,GACxBnhP,KAAK46P,UAAW,EAChB56P,KAAKkkQ,qBAAuB,IAAI3/D,KAChCvkM,KAAKmkQ,sBAAwB,EAC7BnkQ,KAAKqxK,QAAU3mC,EACf1qI,KAAK0hP,QAAUR,EACflhP,KAAK2hP,eAAiBR,CAC1B,CACA,UAAInxM,GACA,OAAOhwC,KAAK46P,QAChB,CACA,UAAI5qN,CAAOz9B,GACP,GAAIvS,KAAK46P,WAAaroP,EAKtB,GAFAvS,KAAK46P,SAAWroP,EAChBvS,KAAKmkQ,sBAAwB,EACzB5xP,EACA,IACIvS,KAAKokQ,iBAAmB,IAAIC,GAAsBrkQ,KAAKqxK,QAASrxK,KAAK0hP,QAAS1hP,KAAK2hP,eAAgB,IAAM,0BAC7G,OACO5jO,GAGH,OAFA/d,KAAK46P,UAAW,OAChBh6F,KAAOt7I,MAAM,qDAAuDvH,EAAE4tB,QAAU,wEAEpF,MAGA3rC,KAAKokQ,iBAAiB3iN,SAE9B,CACA0gH,WAAWgmE,GACHnoO,KAAK46P,UAA2C,IAA/B56P,KAAKmkQ,wBACtBnkQ,KAAKokQ,iBAAiBvwL,MAAMs0J,GAC5BnoO,KAAKmkQ,sBAAwB,EAErC,CACA/hG,SAAS+lE,GAC8B,IAA/BnoO,KAAKmkQ,wBACLnkQ,KAAKmkQ,sBAAwB,EAC7BnkQ,KAAKokQ,iBAAiBp2G,KAAKm6E,GAAgB9nO,KAAMo/J,IAC5B,OAAbA,GAAqBA,GAAY,IACjCz/J,KAAKkkQ,qBAAqBr/D,gBAC1B7kM,KAAKkkQ,qBAAqBp/D,SAASrlC,GAAU,IAEjDz/J,KAAKmkQ,sBAAwB,IAGzC,CACAG,UAAUvmB,EAAYpjO,GACd3a,KAAK46P,SACL56P,KAAKokQ,iBAAiBE,UAAUvmB,EAAYpjO,GAG5CojO,EAAWwmB,qBAAkB1hQ,CAErC,CACAklO,QAAQptN,EAAO6pP,GACX,IAAKxkQ,KAAK46P,WAAa4J,EACnB,OAEJ,MAAMC,EAAiBzkQ,KAAKqxK,QAAQqzF,QACpC1kQ,KAAKokQ,iBAAiBO,SAAShqP,GAAOta,KAAMukQ,IACxCJ,EAAeK,aAAaJ,EAA8B,OAAdG,GAAsBA,EAAY,EAAIA,EAAY,EAAC,EAEvG,CACAnjN,UACIzhD,KAAKokQ,kBAAkB3iN,SAC3B,EAGG,MAAM4iN,GACTxkQ,YAAY6qI,EAAQw2G,EAAQC,EAAejiN,EAAQ,EAAG4lO,GAClD9kQ,KAAKioO,OAAS/oM,EACdl/B,KAAK+iQ,UAAY,IAAIF,GAAen4H,EAAQxrG,EAAO,YAAuDgiN,EAAQC,GAAe,EAAM2jB,EAC3I,CACAjxL,MAAM2K,GACFA,EAAQumL,iBAAiB/kQ,KAAK+iQ,UAAUD,SAAU,EACtD,CACM90G,KAAKxvE,GAAS,IAAAt+E,EAAAF,KAAA,SAAAG,KAAA,YAChBq+E,SAAQumL,iBAAiB7kQ,EAAK6iQ,UAAUD,SAAU,GAC3CtkL,EAAQumL,eAAiB7kQ,EAAK6iQ,UAAUgB,yBAAyB,GAAK,CAAE,EAF/D,EAGpB,CACAO,UAAUvmB,EAAYpjO,GAClB,GAAIA,EAAQ,EAAI3a,KAAKioO,OACjB,MAAM,IAAI3iN,MAAM,8CAAgD3K,EAAQ,KAE5EojO,EAAWwmB,gBAAkB,CACzBzB,SAAU9iQ,KAAK+iQ,UAAUD,SACzBkC,0BAA2BrqP,EAAQ,EACnCsqP,oBAAqBtqP,EAAQ,EAErC,CACMgqP,SAAShqP,GAAO,IAAA9S,EAAA7H,KAAA,SAAAG,KAAA,YAClB,OAAO0H,EAAKk7P,UAAUgB,yBAAyBppP,EAAQ,EAAG,EADxC,EAEtB,CACA8mC,UACIzhD,KAAK+iQ,UAAUthN,SACnB,ECxGG,MAAMyjN,GACT,YAAIpC,GACA,OAAO9iQ,KAAK+iQ,UAAUD,QAC1B,CACA,cAAIqC,GACA,OAAOnlQ,KAAKolQ,uBAAyBplQ,KAAKqlQ,kBAAkB3vP,MAChE,CACA4vP,cAAc3qP,GACV,GAAI3a,KAAKulQ,wBAA0BvlQ,KAAKqxK,QAAQqzF,SAAW1kQ,KAAKwlQ,cAAc7qP,KAAW3a,KAAKqxK,QAAQqzF,QAClG,OAAO,EAEX,MAAMe,OAAkG5iQ,IAAvF7C,KAAKqxK,QAAQq0F,+BAA+B1hB,qBAAqB2hB,kBAClF,OAAIF,IACAzlQ,KAAKwlQ,cAAc7qP,GAAS3a,KAAKqxK,QAAQqzF,SAEtCe,CACX,CACA5lQ,YAAY6qI,EAAQw2G,EAAQC,EAAeykB,EAAa,GAAIC,EAAiB,KACzE7lQ,KAAKqlQ,kBAAoB,GACzBrlQ,KAAKulQ,uBAAwB,EAC7BvlQ,KAAKwlQ,cAAgB,GACrBxlQ,KAAKqxK,QAAU3mC,EACf1qI,KAAK0hP,QAAUR,EACflhP,KAAK2hP,eAAiBR,EACtBnhP,KAAK8lQ,kBAAmB,EACxB9lQ,KAAKolQ,qBAAuB,EAC5BplQ,KAAK+lQ,gBAAkBF,EACvB7lQ,KAAKgmQ,oBAAoBJ,EAC7B,CACAtnE,cAC0C,IAAlCt+L,KAAKqlQ,kBAAkB3vP,QACvB1V,KAAKgmQ,sBAET,MAAMrrP,EAAQ3a,KAAKqlQ,kBAAkBrlQ,KAAKqlQ,kBAAkB3vP,OAAS,GACrE,OAAA1V,KAAKqlQ,kBAAkB3vP,SAChBiF,CACX,CACA4jL,YAAY5jL,GACR3a,KAAKqlQ,kBAAkBrlQ,KAAKqlQ,kBAAkB3vP,QAAUiF,CAC5D,CACA6jL,uBAAuB7jL,GACnB,OAAA3a,KAAKimQ,yBACIjmQ,KAAKkmQ,aAAevrP,EAAQ3a,KAAKkmQ,YAAYxwP,MAC1D,CACA+oL,eAAe9jL,GACX,OAAO0yB,OAAOrtC,KAAKkmQ,cAAcvrP,KAAU,EAC/C,CACAsrP,uBACQjmQ,KAAKkmQ,aAAelmQ,KAAK8lQ,mBAAqB9lQ,KAAKqxK,QAAQqzF,SAG3D1kQ,KAAK8lQ,mBAAqB9lQ,KAAKqxK,QAAQqzF,UACvC1kQ,KAAK8lQ,iBAAmB9lQ,KAAKqxK,QAAQqzF,QACrC1kQ,KAAK+iQ,UAAUY,WAAW,EAAG3jQ,KAAKolQ,sBAAsB/kQ,KAAMijJ,IAC1DtjJ,KAAKkmQ,YAAc5iH,IAG/B,CACA0iH,oBAAoBG,GAChBA,EAAaA,GAAcnmQ,KAAK+lQ,gBAChC/lQ,KAAKomQ,wBACL,QAAS3oP,EAAI,EAAGA,EAAI0oP,IAAc1oP,EAC9Bzd,KAAKqlQ,kBAAkBpnP,KAAKje,KAAKolQ,qBAAuB3nP,GAE5Dzd,KAAKolQ,sBAAwBe,EAC7BnmQ,KAAK+iQ,UAAY,IAAIF,GAAe7iQ,KAAKqxK,QAASrxK,KAAKolQ,qBAAsB,YAAuDplQ,KAAK0hP,QAAS1hP,KAAK2hP,gBAAgB,EAAO,iCAAmC3hP,KAAKolQ,sBACtNplQ,KAAKulQ,sBAAwBvlQ,KAAKqxK,QAAQqzF,OAC9C,CACA0B,wBACI,MAAMtD,EAAW9iQ,KAAK+iQ,UAClBD,GAEAntM,WAAW,IAAMmtM,EAASrhN,QAAS,IAE3C,CACAA,UACIzhD,KAAK+iQ,WAAWthN,UAChBzhD,KAAKqlQ,kBAAkB3vP,OAAS,CACpC,EC7EG,MAAM2wP,GACHC,UAAUC,GAAc,SAAApmQ,KAAA,YAC1B,IAAIkmQ,GAAeG,OAQnB,OALAD,EAAeA,GAAgB,CAAC,GAChCA,EAAe,IACRF,GAAeI,wBACfF,IAEUG,OACbL,GAAeG,OAASD,EAAaG,MAC9B/uP,QAAQC,YAEf2uP,EAAaI,QAAUJ,EAAaK,iBAC9B72F,KAAM82F,uBAAuBN,EAAaI,SAEhDtuL,KAAKquL,OACLL,GAAeG,aAAenuL,KAAKquL,MAAM32F,KAAM+2F,oBAAoBP,EAAaK,WACzEjvP,QAAQC,WAEZD,QAAQkwD,OAAO,2BAA2B,EApBvB,EAqB9B,CACAk/L,kBAAkBpqM,EAAMqqM,GAA4B,GAChD,MAAMC,EAAQZ,GAAeG,OAAOO,kBAAkBpqM,EAAM0pM,GAAea,2BAA6BF,GACxG,OAAIX,GAAec,qBACfvmG,KAAOqzC,IAAIgzD,GACXrmG,KAAOqzC,IAAI,oDAERoyD,GAAea,2BAA6BF,EAA4B,4CAA8CC,EAAQA,CACzI,EAGJZ,GAAeI,qBAAuB,CAClCE,OAAS,GAAE52F,KAAMotB,gCACjBypE,SAAW,GAAE72F,KAAMotB,mCAEvBkpE,GAAec,oBAAqB,EACpCd,GAAea,2BAA4B,EAC3Cb,GAAeG,OAAS,KCxCjB,MAAMY,GACTvnQ,YAAY6qI,EAAQ28H,EAAeC,GAC/BtnQ,KAAKunQ,SAAU,EACfvnQ,KAAKwnQ,OAAQ,EACbxnQ,KAAKynQ,qBAAuB,EAC5BznQ,KAAK0nQ,gBAAkB,GACvB1nQ,KAAK46P,UAAW,EAChB56P,KAAKqxK,QAAU3mC,EACf1qI,KAAK2nQ,MAAQN,EACbrnQ,KAAK8nO,YAAcw/B,CACvB,CACA,WAAItyO,GACA,OAAOh1B,KAAK46P,QAChB,CACA,QAAIjjH,GACA,OAAO33I,KAAKwnQ,KAChB,CACA,UAAIz3P,GACA,OAAO/P,KAAKunQ,OAChB,CACA,WAAIvyO,CAAQ4yO,GACR5nQ,KAAK0nQ,gBAAgBhyP,OAAS,EAC9B1V,KAAKunQ,QAAUvnQ,KAAK46P,SAAWgN,EAC/B5nQ,KAAKwnQ,OAAQ,EACTI,IACA5nQ,KAAK6nQ,WAAa7nQ,KAAK2nQ,MACvB3nQ,KAAK2nQ,MAAQ,EAErB,CACA,QAAIluP,GACA,OAAOzZ,KAAK2nQ,KAChB,CACA,QAAIluP,CAAKA,GACDzZ,KAAKunQ,QACLvnQ,KAAK6nQ,WAAapuP,EAGlBzZ,KAAK2nQ,MAAQluP,CAErB,CACAmuN,cAAckgC,GACV,IAAK9nQ,KAAKunQ,UAAYvnQ,KAAKwnQ,MAEvB,OAAO,EAEX,IAAIF,EACJ,GAAItnQ,KAAKunQ,QACLD,EAAatnQ,KAAK8nO,YAAY1kO,QAC9BpD,KAAK0nQ,gBAAgBzpP,KAAKqpP,GAC1BtnQ,KAAK8nO,YAAYz0N,YAEhB,CAED,GAAIrT,KAAKynQ,sBAAwBznQ,KAAK0nQ,gBAAgBhyP,OAClD,MAAM,IAAI4P,MAAO,2IAA0ItlB,KAAKynQ,+CAA+CznQ,KAAK0nQ,gBAAgBhyP,WAExO4xP,EAAatnQ,KAAK0nQ,gBAAgB1nQ,KAAKynQ,uBAC3C,CACAH,SAAWn/O,IAAI2/O,GACI,IAAf9nQ,KAAK2nQ,OACL3nQ,KAAKqxK,QAAQ02F,gBAAgBT,EAAWnF,eAErC,CACX,CACA//F,WACQpiK,KAAKunQ,UAELvnQ,KAAKunQ,SAAU,EACfvnQ,KAAKwnQ,OAAQ,EACbxnQ,KAAK2nQ,MAAQ3nQ,KAAK6nQ,YAEtB7nQ,KAAKynQ,qBAAuB,CAChC,CACAp0P,QACQrT,KAAKunQ,UACLvnQ,KAAK2nQ,MAAQ3nQ,KAAK6nQ,YAEtB7nQ,KAAKg1B,SAAU,EACfh1B,KAAKg1B,SAAU,CACnB,sDC3EG,MAAMgzO,WAA8BjM,GACvCl8P,YAAY2mM,GACR3iM,MAAM2iM,EACV,EC0PJ,SAASyhE,GAA6BC,EAASztO,EAAOC,EAAQ4wG,GAE1D,IAAI68H,EACAC,EAAO,EACS,IAAhB98H,EACA68H,EAAW,IAAIt6F,aAAapzI,EAAQC,EAAS,GAExB,IAAhB4wG,GACL68H,EAAW,IAAIrhO,YAAYrM,EAAQC,EAAS,GAC5C0tO,EAAO,OAGPD,EADqB,IAAhB78H,EACM,IAAIvkG,YAAYtM,EAAQC,EAAS,GAGjC,IAAImM,WAAWpM,EAAQC,EAAS,GAG/C,QAAS9nB,EAAI,EAAGA,EAAI6nB,EAAO7nB,IACvB,QAAS4P,EAAI,EAAGA,EAAIkY,EAAQlY,IAAK,CAC7B,MAAM7H,GAA0B,GAAjB6H,EAAIiY,EAAQ7nB,GACrBy1P,GAA6B,GAAjB7lP,EAAIiY,EAAQ7nB,GAE9Bu1P,EAASE,GAAW,GAAKH,EAAQvtP,GAAQ,GACzCwtP,EAASE,GAAW,GAAKH,EAAQvtP,GAAQ,GACzCwtP,EAASE,GAAW,GAAKH,EAAQvtP,GAAQ,GAEzCwtP,EAASE,GAAW,GAAKD,CAC7B,CAEJ,OAAOD,CACX,CA9RAzhC,GAAiBniM,UAAUk3L,iBAAmB,SAAUh2N,EAAMg1B,EAAOC,EAAQnL,EAAQ+0G,EAAiBmiE,EAAS5gB,EAAcg2C,EAAc,KAAMzpN,GAAO,EAAG0pN,GAAgB,EAAG5wB,IAAgB,GAC1L,MAAM3E,GAAU,IAAIqF,KAAgB5rM,KAAM,GAC1CumM,UAAQuG,UAAYryK,EACpB8rK,GAAQwG,WAAaryK,EACrB6rK,GAAQ9rK,MAAQA,EAChB8rK,GAAQ7rK,OAASA,EACjB6rK,GAAQh3K,OAASA,EACjBg3K,GAAQjiE,gBAAkBA,EAC1BiiE,GAAQ1gB,aAAeA,EACvB0gB,GAAQE,QAAUA,EAClBF,GAAQw1B,aAAeF,EACvBt1B,GAAQn0L,KAAOA,GACfm0L,GAAQ+hE,eAAiBxsC,GACzBv1B,GAAQyG,eAAiB9B,GACpBlrM,KAAKw/N,0BACNj5B,GAAQgiE,YAAc9iQ,GAE1BzF,KAAKuoO,eAAeue,mCAAmCvgD,GAAS9rK,EAAOC,OAAQ73B,EAAWi5N,IAC1F97N,KAAKi8N,iBAAiB11B,GAAS9gM,EAAM8pB,EAAQk3K,EAASo1B,EAAazpN,GAAM84L,IACzElrM,KAAKitM,uBAAuBhvL,KAAKsoL,IAC1BA,EACX,EACAmgC,GAAiBniM,UAAU03L,iBAAmB,SAAU11B,EAASg2B,EAAYhtM,EAAQk3K,EAASo1B,EAAc,KAAMzpN,EAAO,EAAG84L,GAAgB,GACxI,GAAK3E,EASL,IANKvmM,KAAKw/N,0BACNj5B,EAAQgiE,YAAchsC,EACtBh2B,EAAQE,QAAUA,EAClBF,EAAQw1B,aAAeF,EACvBt1B,EAAQyG,eAAiB9B,GAEzBqxB,EAAY,CACZ,MAAMyqB,EAAoBzgD,EAAQwF,iBACA,IAAXx8K,IAEnBgtM,EAAa0rC,GAA6B1rC,EAAYh2B,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQtoB,IAEzF,MAAM3M,GAAO,IAAIohC,WAAW01L,EAAWnuJ,OAAQmuJ,EAAWluJ,WAAYkuJ,EAAW3vJ,YACjF5sE,KAAKuoO,eAAeke,cAAchhP,GAAM8gM,EAASA,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQ6rK,EAAQ9hE,MAAOuiH,EAAkBz3N,OAAQ,EAAG,EAAGk3K,GAAS,EAAO,EAAG,GAC9IF,EAAQjiE,iBACRtkI,KAAKkoO,iBAAiB3hC,EAASvmM,KAAKwoQ,eAE5C,CACAjiE,EAAQxS,SAAU,EACtB,EACA2yC,GAAiBniM,UAAUkkO,qBAAuB,SAAUhjQ,EAAM4zB,EAAM9J,EAAQnd,EAAMkyH,EAAiBmiE,EAAS5gB,EAAcg2C,EAAc,MACxI,MAAMt1B,GAAU,IAAIqF,KAAgB5rM,KAAM,GAuC1C,OAtCa,IAAToS,GAAepS,KAAKorM,MAAMC,4BAKZ,IAATj5L,GAAepS,KAAKorM,MAAME,gCAKjB,IAATl5L,GAAepS,KAAKorM,MAAM6c,mBAIjB,IAAT71M,IAAepS,KAAKorM,MAAM0c,mBAC/BxjF,GAAkB,EAClBs8B,KAAOC,KAAK,wFALZv8B,GAAkB,EAClBs8B,KAAOC,KAAK,mFANZv8B,GAAkB,EAClBuhD,EAAe,EACfjlB,KAAOC,KAAK,4JAPZv8B,GAAkB,EAClBuhD,EAAe,EACfjlB,KAAOC,KAAK,sJAehB0lC,GAAQ+C,QAAS,EACjB/C,GAAQmiE,gBAAkBn5O,EAC1Bg3K,GAAQh3K,OAAoB,IAAXA,EAAe,EAAIA,EACpCg3K,GAAQn0L,KAAOA,EACfm0L,GAAQjiE,gBAAkBA,EAC1BiiE,GAAQ9rK,MAAQpB,EAChBktK,GAAQ7rK,OAASrB,EACjBktK,GAAQ1gB,aAAeA,EAClB7lL,KAAKw/N,0BACNj5B,GAAQoiE,iBAAmBljQ,GAE/B8gM,GAAQE,QAAUA,EAClBF,GAAQw1B,aAAeF,EACvBt1B,GAAQklD,aAAe,EACvBllD,GAAQmlD,aAAe,EACvB1rP,KAAKuoO,eAAeue,mCAAmCvgD,IACxC,IAAXh3K,IAC0Bg3K,GAAQwF,iBAChBqxC,sBAAuB,GAEzC33O,GACAzF,KAAK4oQ,qBAAqBriE,GAAS9gM,EAAM8pB,EAAQnd,EAAMq0L,EAASo1B,GAEpEt1B,GAAQxS,SAAU,EACXwS,EACX,EACAmgC,GAAiBniM,UAAUqkO,qBAAuB,SAAUriE,EAASg2B,EAAYssC,EAASz2P,EAAMq0L,EAASo1B,EAAc,MACnHt1B,EAAQoiE,iBAAmBpsC,EAC3Bh2B,EAAQE,QAAUA,EAClBF,EAAQw1B,aAAeF,EACvB,MAAMmrB,EAAoBzgD,EAAQwF,iBAC5B+8D,EAAiB9hB,EAAkB5J,qBACnCkK,GAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACxB7hP,GAAO,GACb,QAASgY,GAAI,EAAGA,GAAI8+M,EAAW7mN,SAAU+H,GAAG,CACxC,IAAIsrP,GAAWxsC,EAAW+qB,GAAM7pO,KAC5BqrP,IACAC,GAAWd,GAA6Bc,GAAUxiE,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQtoB,IAErF3M,GAAKwY,KAAK,IAAI4oB,WAAWkiO,GAAS36L,OAAQ26L,GAAS16L,WAAY06L,GAASn8L,YAC5E,CACA5sE,KAAKuoO,eAAeoe,mBAAmBlhP,GAAMuhP,EAAkB9gD,mBAAoBK,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQssN,EAAkBz3N,OAAQk3K,GAAS,EAAO,EAAG,GAC3JF,EAAQjiE,iBACRtkI,KAAKkoO,iBAAiB3hC,EAASvmM,KAAKwoQ,gBAExCjiE,EAAQxS,SAAU,CACtB,EACA2yC,GAAiBniM,UAAUykO,4BAA8B,SAAU9lQ,EAAKo7G,EAAOjlF,EAAM9J,EAAQnd,EAAMqqN,EAAU1uL,EAAUk7N,EAAiBvsC,GAAS,KAAMnsC,GAAU,KAAM1K,GAAe,EAAG4gB,IAAU,GAC/L,MAAMF,GAAUvmM,KAAKyoQ,qBAAqB,KAAMpvO,EAAM9J,EAAQnd,GAAOqqN,EAAUh2B,GAAS5gB,GAAc,MACtGvnE,GAAO6+G,eAAe52B,IACtBA,GAAQrjM,IAAMA,EACdqjM,GAAQxS,SAAU,EAClB/zL,KAAKitM,uBAAuBhvL,KAAKsoL,IACjC,MAMM2iE,GAAoBzjQ,KACtB,MAAMg1B,GAAQ8rK,GAAQ9rK,MAChB0uO,GAAiBp7N,EAAStoC,IAChC,GAAK0jQ,GAGL,IAAIF,EAAiB,CACjB,MAAMH,GAA4B,IAAXv5O,EACjB65O,GAAUH,EAAgBE,IAC1BniB,GAAoBzgD,GAAQwF,iBAC5Bu7C,GAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAC9B,QAAS9nK,GAAQ,EAAGA,GAAQ4pL,GAAQ1zP,OAAQ8pE,KAAS,CACjD,MAAM6pL,GAAU5uO,IAAS+kD,GACnB8pL,GAAW,GACjB,QAASl9E,GAAY,EAAGA,GAAY,EAAGA,KAAa,CAChD,IAAIm9E,GAAcH,GAAQ5pL,IAAO8nK,GAAMl7D,KACnC08E,KACAS,GAActB,GAA6BsB,GAAaF,GAASA,GAASj3P,IAE9Ek3P,GAASrrP,KAAK,IAAI4oB,WAAW0iO,GAAYn7L,OAAQm7L,GAAYl7L,WAAYk7L,GAAY38L,YACzF,CACA5sE,KAAKuoO,eAAeoe,mBAAmB2iB,GAAUtiB,GAAkB9gD,mBAAoBmjE,GAASA,GAASriB,GAAkBz3N,OAAQk3K,IAAS,EAAO,EAAG,EAC1J,CACJ,MAEIzmM,KAAK4oQ,qBAAqBriE,GAAS4iE,GAAgB55O,EAAQnd,EAAMq0L,IAErEF,GAAQxS,SAAU,EAClBz1E,GAAOk/G,kBAAkBj3B,IACrBm2B,IACAA,IAAO,GAGf,OAAA18N,KAAK+0L,UAAU7xL,EAAMuC,KACjByjQ,GAAiBzjQ,GAAI,OACtB5C,EAAWy7G,GAAOkrJ,iBAAiB,EAzCtBjzJ,CAAC73F,GAASusM,MACtB3sG,GAAOk/G,kBAAkBj3B,IACrBhW,IAAW7xK,IACX6xK,GAAQ7xK,GAAQ8xB,OAAS,IAAM9xB,GAAQ6hN,WAAYtV,GAAS,GAuC7D1kB,EACX,EACAmgC,GAAiBniM,UAAUklO,mBAAqB,SAAUhkQ,EAAMg1B,EAAOC,EAAQ+pG,EAAOl1G,EAAQ+0G,EAAiBmiE,EAAS5gB,EAAcg2C,GAAc,KAAMvwF,GAAc,EAAGwwF,GAAgB,GAEvL,MAAMv1B,GAAU,IAAIqF,KAAgB5rM,KAAMioC,IAC1Cs+J,UAAQuG,UAAYryK,EACpB8rK,GAAQwG,WAAaryK,EACrB6rK,GAAQqG,UAAYnoE,EACpB8hE,GAAQ9rK,MAAQA,EAChB8rK,GAAQ7rK,OAASA,EACjB6rK,GAAQ9hE,MAAQA,EAChB8hE,GAAQh3K,OAASA,EACjBg3K,GAAQn0L,KAAOk5H,GACfi7D,GAAQjiE,gBAAkBA,EAC1BiiE,GAAQ1gB,aAAeA,EACvB0gB,GAAQgD,MAAO,EACfhD,GAAQ+hE,eAAiBxsC,GACpB97N,KAAKw/N,0BACNj5B,GAAQgiE,YAAc9iQ,GAE1BzF,KAAKuoO,eAAeue,mCAAmCvgD,GAAS9rK,EAAOC,OAAQ73B,EAAWi5N,IAC1F97N,KAAK0pQ,mBAAmBnjE,GAAS9gM,EAAM8pB,EAAQk3K,EAASo1B,GAAavwF,IACrEtrI,KAAKitM,uBAAuBhvL,KAAKsoL,IAC1BA,EACX,EACAmgC,GAAiBniM,UAAUmlO,mBAAqB,SAAUnjE,EAASg2B,EAAYhtM,EAAQk3K,EAASo1B,EAAc,KAAMvwF,EAAc,GAO9H,GANKtrI,KAAKw/N,0BACNj5B,EAAQgiE,YAAchsC,EACtBh2B,EAAQh3K,OAASA,EACjBg3K,EAAQE,QAAUA,EAClBF,EAAQw1B,aAAeF,GAEvBU,EAAY,CACZ,MAAMyqB,EAAoBzgD,EAAQwF,iBACA,IAAXx8K,IAEnBgtM,EAAa0rC,GAA6B1rC,EAAYh2B,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQ4wG,IAEzF,MAAM7lI,GAAO,IAAIohC,WAAW01L,EAAWnuJ,OAAQmuJ,EAAWluJ,WAAYkuJ,EAAW3vJ,YACjF5sE,KAAKuoO,eAAeke,cAAchhP,GAAM8gM,EAASA,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQ6rK,EAAQ9hE,MAAOuiH,EAAkBz3N,OAAQ,EAAG,EAAGk3K,GAAS,EAAO,EAAG,GAC9IF,EAAQjiE,iBACRtkI,KAAKkoO,iBAAiB3hC,EAASvmM,KAAKwoQ,eAE5C,CACAjiE,EAAQxS,SAAU,CACtB,EACA2yC,GAAiBniM,UAAU63L,wBAA0B,SAAU32N,EAAMg1B,EAAOC,EAAQ+pG,EAAOl1G,EAAQ+0G,EAAiBmiE,EAAS5gB,EAAcg2C,GAAc,KAAMvwF,GAAc,EAAGwwF,GAAgB,GAE5L,MAAMv1B,GAAU,IAAIqF,KAAgB5rM,KAAMioC,IAC1Cs+J,UAAQuG,UAAYryK,EACpB8rK,GAAQwG,WAAaryK,EACrB6rK,GAAQqG,UAAYnoE,EACpB8hE,GAAQ9rK,MAAQA,EAChB8rK,GAAQ7rK,OAASA,EACjB6rK,GAAQ9hE,MAAQA,EAChB8hE,GAAQh3K,OAASA,EACjBg3K,GAAQn0L,KAAOk5H,GACfi7D,GAAQjiE,gBAAkBA,EAC1BiiE,GAAQ1gB,aAAeA,EACvB0gB,GAAQoG,WAAY,EACpBpG,GAAQ+hE,eAAiBxsC,GACpB97N,KAAKw/N,0BACNj5B,GAAQgiE,YAAc9iQ,GAE1BzF,KAAKuoO,eAAeue,mCAAmCvgD,GAAS9rK,EAAOC,EAAQ+pG,EAAOq3F,IACtF97N,KAAK2pQ,wBAAwBpjE,GAAS9gM,EAAM8pB,EAAQk3K,EAASo1B,GAAavwF,IAC1EtrI,KAAKitM,uBAAuBhvL,KAAKsoL,IAC1BA,EACX,EACAmgC,GAAiBniM,UAAUolO,wBAA0B,SAAUpjE,EAASg2B,EAAYhtM,EAAQk3K,EAASo1B,EAAc,KAAMvwF,EAAc,GAOnI,GANKtrI,KAAKw/N,0BACNj5B,EAAQgiE,YAAchsC,EACtBh2B,EAAQh3K,OAASA,EACjBg3K,EAAQE,QAAUA,EAClBF,EAAQw1B,aAAeF,GAEvBU,EAAY,CACZ,MAAMyqB,EAAoBzgD,EAAQwF,iBACA,IAAXx8K,IAEnBgtM,EAAa0rC,GAA6B1rC,EAAYh2B,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQ4wG,IAEzF,MAAM7lI,GAAO,IAAIohC,WAAW01L,EAAWnuJ,OAAQmuJ,EAAWluJ,WAAYkuJ,EAAW3vJ,YACjF5sE,KAAKuoO,eAAeke,cAAchhP,GAAM8gM,EAASA,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQ6rK,EAAQ9hE,MAAOuiH,EAAkBz3N,OAAQ,EAAG,EAAGk3K,GAAS,EAAO,EAAG,GAC9IF,EAAQjiE,iBACRtkI,KAAKkoO,iBAAiB3hC,EAASvmM,KAAKwoQ,eAE5C,CACAjiE,EAAQxS,SAAU,CACtB,EC7PA2yC,GAAiBniM,UAAUmgM,mBAAqB,SAAUn+B,EAAS9rK,EAAOC,EAAQ0xJ,GAAY,EAAI5sG,EAAQ,EAAGpR,EAAS,KAAMw7L,GAAgB,EAAMrhB,GAAmB,EAAO31O,GAAI,EAAG4P,GAAI,GACnL,MAAMwkO,GAAoBzgD,EAAQwF,iBAClC,OAAI69D,GACA5pQ,KAAK8gM,mBAEF9gM,KAAKuoO,eAAe+f,WAAWtB,GAAkB9gD,mBAAoBtzL,GAAG4P,GAAGiY,EAAOC,EAAQssN,GAAkBz3N,OAAQ68J,EAAW5sG,EAAOpR,EAAQm6K,EACzJ,EACA7hB,GAAiBniM,UAAUslO,uBAAyB,WAEhD,KAAM,kDACV,ECPAnjC,GAAiBniM,UAAUulO,+BAAiC,SAAUzwO,EAAM9M,GACxE,MAAM0xM,EAAkB,IAAIryB,KAAgB5rM,KAAMusB,EAAQ+xM,gBAAkB,GAA8C,IAC1HL,EAAgB30B,QAAS,EACzB20B,EAAgB1tN,MAAQgc,EAAQhc,MAChC,MAAMw5P,EAAkB,CACpBC,mBAAmB,EACnBC,mBAAoB,EACpB3rC,iBAAiB,EACjBt0B,QAAS,EACTF,mBAAoBv9K,EAAQ+xM,gBAAkB,GAAK,MAChD/xM,GAOP0xM,OALAA,EAAgB1uM,OAASw6O,EAAgBjgE,mBACzC9pM,KAAKkqQ,0BAA0BjsC,EAAiB5kM,EAAM0wO,EAAgBC,kBAAmBD,EAAgBE,mBAAoBF,EAAgB//D,SAC7IhqM,KAAKuoO,eAAeue,mCAAmC7oB,GAGvDA,EAAgB7rN,KAAOqzN,GAAoBG,yBADjB3H,EAAgBlyB,iBAC4Cx8K,QACtFvvB,KAAKitM,uBAAuBhvL,KAAKggN,GAC1BA,CACX,EACAyI,GAAiBniM,UAAU26L,kBAAoB,SAAUv8D,EAASrkD,EAAO9uF,EAAOitM,EAAUC,EAAS,KAAMnsC,EAAU,KAAMhhK,EAAQqtM,EAAkB,KAAMuC,IAAoB,EAAOC,GAAW,EAAGC,GAAY,EAAG1C,GAAW,KAAME,GAAe3xB,IAAgB,EAAO98H,GAAS,MAC7Q,OAAOpuE,KAAKmqQ,sBAAsBxnG,EAASrkD,EAAO9uF,IAASitM,EAAUC,EAAQnsC,EAAShhK,EAAQqtM,EAAiBuC,GAAmBC,GAAUC,GAAW1C,GAAU,KAAM,CAACp2B,GAAS6jE,MAC7K,MAAM1jB,GAAe0jB,GACf3vO,GAAQisN,GAAa,GAAGjsN,MACxBC,GAASD,GACfz6B,KAAKqqQ,yBAAyB9jE,IAAUk2B,GACxCl2B,GAAQh3K,OAASA,IAAU,EAC3B,MAAMy3N,GAAoBhnP,KAAKuoO,eAAeue,mCAAmCvgD,GAAS9rK,GAAOC,IACjG16B,KAAKuoO,eAAeoe,mBAAmBD,GAAcM,GAAkB9gD,mBAAoBzrK,GAAOC,GAAQssN,GAAkBz3N,QAAQ,GAAO,EAAO,EAAG,GAChJktM,GACDz8N,KAAKkoO,iBAAiB3hC,GAASvmM,KAAKwoQ,gBAExCjiE,GAAQxS,SAAU,EAClBwS,GAAQ+2B,mBAAmBt8D,gBAAgBulC,IAC3CA,GAAQ+2B,mBAAmBrrL,QACvByqL,GACAA,GAAO,IAEVxxB,GAAe98H,GACxB,EACAs4J,GAAiBniM,UAAU8lO,yBAA2B,SAAU9jE,EAAS+jE,EAAYC,GACjFhkE,EAAQ1gB,aAAeykF,EAAa,EAAI,EACxC/jE,EAAQklD,aAAe,EACvBllD,EAAQmlD,aAAe,EACnB6e,IACAhkE,EAAQ2gD,aAAeqjB,EAE/B,EACA7jC,GAAiBniM,UAAUimO,0BAA4B,SAAUjkE,GACzDA,EAAQjiE,kBACWiiE,EAAQwF,kBAAkB7F,oBAEzClmM,KAAKuoO,eAAeue,mCAAmCvgD,GAE3DvmM,KAAKkoO,iBAAiB3hC,GAE9B,ECxDO,MAAMkkE,WAAkCpuD,KAS3Cx8M,YAAY88M,EAASrT,EAAQjwK,EAAMqxG,EAAQn6H,GACvC1M,MAAM84M,EAASrT,EAAQjwK,EAAMqxG,EAAQn6H,GACjCm6H,EAAO08F,8BACPpnO,KAAKgoO,eAAiB,IAAIT,KAElC,ECbJb,GAAiBniM,UAAUimK,mCAAqC,SAAUmS,EAASrT,EAAQjwK,GACvF,MAAMkvK,EAAY,IAAIkiE,GAA0B9tD,EAASrT,EAAQjwK,EAAMr5B,MACvE,OAAAA,KAAK2gO,0BAA0B1iN,KAAKsqL,GAC7BA,CACX,EACAm+B,GAAiBniM,UAAUy8L,0BAA4B,SAAU3nM,EAAM9M,GACnE,MAAMg8K,EAAYvoM,KAAKwqM,oCAAmC,GAAO,EAAOnxK,GAClEqxO,EAAc,CAAC,OACL7nQ,IAAZ0pB,GAA4C,iBAAZA,GAChCm+O,EAAYpmI,gBAAkB/3G,EAAQ+3G,gBACtComI,EAAY/gE,yBAAsD9mM,IAAhC0pB,EAAQo9K,qBAA2Cp9K,EAAQo9K,oBAC7F+gE,EAAY9gE,sBAAwB8gE,EAAY/gE,qBAAuBp9K,EAAQq9K,sBAC/E8gE,EAAY7kF,kBAAwChjL,IAAzB0pB,EAAQs5J,aAA6B,EAAIt5J,EAAQs5J,aAC5E6kF,EAAY5uC,cAAgBvvM,EAAQuvM,eAAiB,EACrD4uC,EAAYxpC,oBAAsB30M,EAAQ20M,kBAC1CwpC,EAAYzpC,gBAAkB10M,EAAQ00M,gBACtCypC,EAAY1gE,QAAUz9K,EAAQy9K,QAC9B0gE,EAAYn6P,MAAQgc,EAAQhc,MAC5Bm6P,EAAYn7O,OAAShD,EAAQgD,OAC7Bm7O,EAAYt4P,KAAOma,EAAQna,OAG3Bs4P,EAAYpmI,gBAAkB/3G,EAC9Bm+O,EAAY/gE,qBAAsB,EAClC+gE,EAAY9gE,uBAAwB,EACpC8gE,EAAY7kF,aAAe,EAC3B6kF,EAAY5uC,cAAgB,EAC5B4uC,EAAYxpC,mBAAoB,GAEpC,MAAM36B,EAAUmkE,EAAYzpC,kBAAoBypC,EAAYxpC,kBAAoB,KAAOlhO,KAAK4gO,uBAAuBvnM,EAAMqxO,GAAa,EAAM,IAC5IniE,SAAUh4L,MAAQm6P,EAAYn6P,OAAS,sBACvCg4L,EAAU+G,SAAWo7D,EAAYzpC,iBAAiBj3B,SAAW0gE,EAAY1gE,SAAW,EACpFzB,EAAUuC,qBAAuB4/D,EAAY/gE,oBAC7CpB,EAAUwC,yBAAyB2/D,EAAY9gE,sBAC/CrB,EAAUiG,YAAYjI,IAClBgC,EAAUuC,sBAAwBvC,EAAUwC,yBAC5CxC,EAAUoiE,0BAA0B,GAAG,EACvCpiE,EAAUwC,uBAAwBxC,EAAUyB,QAAS0gE,EAAY9gE,sBAAwB,GAAK,GAAI8gE,EAAYn6P,MAAQm6P,EAAYn6P,MAAQ,qBAAkB1N,GAE5J0jM,IAAYmkE,EAAYzpC,uBACRp+N,IAAZ0pB,GAA4C,iBAAZA,GAAwBA,EAAQq+O,gBAAkBF,EAAYpmI,kBAC9FiiE,EAAQjiE,iBAAkB,GAE9BtkI,KAAKuoO,eAAeue,mCAAmCvgD,OAAS1jM,OAAWA,OAAWA,EAAW6nQ,EAAY5uC,oBAC7Fj5N,IAAZ0pB,GAA4C,iBAAZA,GAAwBA,EAAQq+O,gBAAkBF,EAAYpmI,kBAC9FiiE,EAAQjiE,iBAAkB,IAG3BikE,CACX,EACAm+B,GAAiBniM,UAAU85L,2BAA6B,SAAUhlM,EAAM9M,EAASgf,GAC7E,MAAMw+N,EAAkB,CACpBC,mBAAmB,EACnBC,mBAAoB,EACpB3rC,iBAAiB,EACjBt0B,QAAS,EACTF,mBAAoBv9K,EAAQ+xM,gBAAkB,GAAK,MAChD/xM,GAEDs+O,EAAoD,KAAvCd,EAAgBjgE,oBACQ,KAAvCigE,EAAgBjgE,oBACuB,KAAvCigE,EAAgBjgE,mBACpBv+J,EAAQgjK,gCAAkCs8D,EAC1C,MAAM5sC,EAAkB,IAAIryB,KAAgB5rM,KAAM6qQ,EAAa,GAA8C,IAO7G5sC,OANAA,EAAgB1tN,MAAQgc,EAAQhc,MAChC0tN,EAAgB1uM,OAASw6O,EAAgBjgE,mBACzC9pM,KAAKkqQ,0BAA0BjsC,EAAiB5kM,EAAM0wO,EAAgBC,kBAAmBD,EAAgBE,mBAAoBF,EAAgB//D,SAC7IhqM,KAAKuoO,eAAeue,mCAAmC7oB,GAGvDA,EAAgB7rN,KAAOqzN,GAAoBG,yBADjB3H,EAAgBlyB,iBAC4Cx8K,QACtFvvB,KAAKitM,uBAAuBhvL,KAAKggN,GAC1BA,CACX,EACAyI,GAAiBniM,UAAU2lO,0BAA4B,SAAUjsC,EAAiB5kM,EAAM2wO,EAAmBC,EAAoBjgE,EAAU,GACrI,MAAMvvK,EAAQpB,EAAKoB,OAASpB,EACtBqB,EAASrB,EAAKqB,QAAUrB,EACxBixK,EAASjxK,EAAKixK,QAAU,EACxB7lE,GAAQprG,EAAKorG,OAAS,EAC5Bw5F,EAAgBnxB,UAAYryK,EAC5BwjM,EAAgBlxB,WAAaryK,EAC7BujM,EAAgBxjM,MAAQA,EACxBwjM,EAAgBvjM,OAASA,EACzBujM,EAAgBtxB,UAAYrC,EAAS,EACrC2zB,EAAgB10B,KAAO9kE,GAAQ,EAC/Bw5F,EAAgBx5F,MAAQ6lE,GAAU7lE,GAClCw5F,EAAgBlqC,SAAU,EAC1BkqC,EAAgBj0B,QAAUA,EAC1Bi0B,EAAgB35F,iBAAkB,EAClC25F,EAAgBp4C,aAAemkF,EAAoB,EAAI,EACvD/rC,EAAgB7rN,KAAO,EACvB6rN,EAAgButB,oBAAsBye,EACtChsC,EAAgBwtB,aAAe,EAC/BxtB,EAAgBytB,aAAe,CACnC,EACAhlB,GAAiBniM,UAAU48L,qCAAuC,SAAU54B,EAAWyB,GACnF,OAAKzB,IAAcA,EAAUhC,SAAWgC,EAAUyB,UAAYA,IAG9DA,EAAUzsL,KAAKi/B,IAAIwtJ,EAAShqM,KAAKi/L,UAAU2P,gBAC3C5uM,KAAKuoO,eAAe4e,kBAAkB5+C,EAAUhC,QAASyD,GACrDzB,EAAU+F,uBACVtuM,KAAKuoO,eAAe4e,kBAAkB5+C,EAAU+F,qBAAsBtE,GACtEzB,EAAU+F,qBAAqBtE,QAAUA,GAE7CzB,EAAU+G,SAAWtF,EACrBzB,EAAUhC,QAAQyD,QAAUA,GACrBA,CACX,ECjHA08B,GAAiBniM,UAAUumO,uBAAyB,SAAUnpC,EAASlpB,EAASlS,EAAShgM,GAChFggM,GAAYA,EAAQs7B,oBAIrB7hO,KAAK0hO,YAAYC,EAASp7B,GAAS,GAAO,EAAMhgM,GAHhDvG,KAAK0hO,YAAYC,EAAS,UAAM9+N,OAAWA,EAAW0D,EAK9D,ECLAmgO,GAAiBniM,UAAUwmO,8BAAgC,SAAU1xO,EAAM9M,GACvE,MAAMg8K,EAAYvoM,KAAKwqM,oCAAmC,GAAO,EAAMnxK,GACjEqxO,EAAc,CAChBpmI,iBAAiB,EACjBqlE,qBAAqB,EACrBC,uBAAuB,EACvBx3L,KAAM,EACNyzK,aAAc,EACdt2J,OAAQ,EACRy6K,QAAS,KACNz9K,GAEPm+O,EAAY9gE,sBAAwB8gE,EAAY/gE,qBAAuB+gE,EAAY9gE,sBACnFrB,EAAUh4L,MAAQm6P,EAAYn6P,OAAS,sBACvCg4L,EAAUuC,qBAAuB4/D,EAAY/gE,oBAC7CpB,EAAUwC,uBAAyB2/D,EAAY9gE,sBAC/C,MAAMrD,EAAU,IAAIqF,KAAgB5rM,KAAM,GAC1CumM,SAAQ9rK,MAAQpB,EAChBktK,EAAQ7rK,OAASrB,EACjBktK,EAAQ9hE,MAAQ,EAChB8hE,EAAQxS,SAAU,EAClBwS,EAAQ+C,QAAS,EACjB/C,EAAQyD,QAAU0gE,EAAY1gE,QAC9BzD,EAAQjiE,gBAAkBomI,EAAYpmI,gBACtCiiE,EAAQ1gB,aAAe6kF,EAAY7kF,aACnC0gB,EAAQn0L,KAAOs4P,EAAYt4P,KAC3Bm0L,EAAQh3K,OAASm7O,EAAYn7O,OAC7BvvB,KAAKitM,uBAAuBhvL,KAAKsoL,GACjCgC,EAAUiG,YAAYjI,IAClBgC,EAAUuC,sBAAwBvC,EAAUwC,yBAC5CxC,EAAUoiE,0BAA0B,OAAgC9nQ,IAA7B6nQ,EAAY7kF,cAClB,IAA7B6kF,EAAY7kF,cACiB,IAA7B6kF,EAAY7kF,cACiB,IAA7B6kF,EAAY7kF,cACiB,IAA7B6kF,EAAY7kF,cACiB,IAA7B6kF,EAAY7kF,cACiB,IAA7B6kF,EAAY7kF,cACiB,IAA7B6kF,EAAY7kF,cACiB,KAA7B6kF,EAAY7kF,aAAqB0iB,EAAUwC,uBAAwBxC,EAAUyB,SAEjFz9K,GAAWA,EAAQq+O,gBAAkBF,EAAYpmI,kBACjDiiE,EAAQjiE,iBAAkB,GAE9BtkI,KAAKuoO,eAAeue,mCAAmCvgD,GACnDh6K,GAAWA,EAAQq+O,gBAAkBF,EAAYpmI,kBACjDiiE,EAAQjiE,iBAAkB,GAEvBikE,CACX,EChDAm+B,GAAiBniM,UAAU65J,uBAAyB,WAChD,OAAOp+L,KAAKqnO,gBAAgB48B,mBAChC,EACAv9B,GAAiBniM,UAAU85J,oBAAsB,SAAU9rL,GACvDvS,KAAKqnO,gBAAgBr3L,OAASz9B,KAAWvS,KAAKorM,MAAM1I,UACxD,EACAgkC,GAAiBniM,UAAU+5J,YAAc,WACrC,OAAOt+L,KAAKm/L,gBAAgBb,aAChC,EACAooC,GAAiBniM,UAAUg6J,YAAc,SAAU90F,GAC/C,OAAAzpG,KAAKm/L,gBAAgBZ,YAAY90F,GAC1BzpG,IACX,EACA0mO,GAAiBniM,UAAUi6J,uBAAyB,SAAU/0F,GAC1D,OAAOzpG,KAAKm/L,gBAAgBX,uBAAuB/0F,EACvD,EACAi9H,GAAiBniM,UAAUk6J,eAAiB,SAAUh1F,GAClD,OAAOzpG,KAAKm/L,gBAAgBV,eAAeh1F,EAC/C,EACAi9H,GAAiBniM,UAAUm6J,oBAAsB,SAAUC,EAAel1F,GACtE,OAAIzpG,KAAK6nO,oBACD7nO,KAAKm/L,gBAAgBmmE,cAAc77J,KACnCzpG,KAAKinO,oBAAoBvoC,oBAAoBj1F,IACtC,IAIXzpG,KAAK8nO,YAAY66B,QAAQ,IAAIf,GAAoCn4J,KAC1D,EAGf,EACAi9H,GAAiBniM,UAAUq6J,kBAAoB,WAC3C,OAAI5+L,KAAK6nO,kBACL7nO,KAAKinO,oBAAoBroC,oBAGzB5+L,KAAK8nO,YAAY66B,QAAQ,IAAId,IAE1B7hQ,IACX,ECcA,MAAMgrQ,GAAsC,CACxCz6P,MAAQ,sCACRy7N,UAAW,KACXz8M,YAAQ1sB,EACR+6O,cAAe,EACfH,gBAAiB,GAEfwtB,GAA0B,CAC5B16P,MAAQ,wBACRy7N,UAAW,KACXz8M,YAAQ1sB,EACR+6O,cAAe,EACfH,gBAAiB,GAEfytB,GAAa,IAAIC,MAKhB,MAAMC,WAAqB1kC,GAI9B,yBAAI2kC,GACA,OAAOrrQ,KAAK2nO,mBAAmBluN,IACnC,CACA,yBAAI4xP,CAAsB5xP,GACtBzZ,KAAK2nO,mBAAmBluN,KAAOA,CACnC,CAIA6xP,yBACItrQ,KAAK2nO,mBAAmBt0N,OAC5B,CAKA,qBAAIk4P,GACA,OAAOvrQ,KAAK2nO,mBAAmB3yM,OACnC,CACA,qBAAIu2O,CAAkB3D,GAClB5nQ,KAAK2nO,mBAAmB3yM,QAAU4yO,CACtC,CAIA,wBAAI4D,GACA,QAAOxrQ,KAAKk/P,eAAgBl/P,KAAKk/P,cAAcrvN,QACnD,CACA,wBAAI27N,CAAqBz7N,GACjB/vC,KAAKk/P,gBACLl/P,KAAKk/P,cAAcrvN,SAAWE,EAEtC,CAIA,+BAAI07N,GACA,QAAOzrQ,KAAK4oO,sBAAuB5oO,KAAK4oO,qBAAqB/4L,QACjE,CACA,+BAAI47N,CAA4B17N,GACxB/vC,KAAK4oO,uBACL5oO,KAAK4oO,qBAAqB/4L,SAAWE,EAE7C,CAIA,0BAAI27N,GACA,QAAO1rQ,KAAK2rQ,kBAAmB3rQ,KAAK2rQ,iBAAiB97N,QACzD,CACA,0BAAI67N,CAAuB37N,GACnB/vC,KAAK2rQ,mBACL3rQ,KAAK2rQ,iBAAiB97N,SAAWE,EAEzC,CAKA67N,qBACI,OAAO,CACX,CAMAtnC,cAAcC,GACV,SAAOsnC,OAActnC,EACzB,CAIA,2BAAWunC,GACP,OAAQj+I,UAAUk+I,IAEZl+I,UAAUk+I,IACPC,iBACA3rQ,KAAM4rQ,KAAcA,EAAS,KAAM,GACnC1jQ,MAAM,KAAM,GAJfoP,QAAQC,SAAQ,EAK1B,CAIA,sBAAWs0P,GACPtrG,YAAOC,KAAK,+CACL,CACX,CAIA,0BAAI0xB,GACA,OAAO,CACX,CAEA,uBAAI45E,GACA,OAAOnsQ,KAAKosQ,2BAChB,CAEA,qBAAIhrB,GACA,OAAOphP,KAAKqsQ,wBAChB,CAEA,mBAAIC,GACA,OAAOtsQ,KAAKusQ,uBAChB,CAEA,iBAAIC,GACA,OAAOxsQ,KAAKysQ,aAChB,CAIA,eAAIvsN,GAEA,OADoBlgD,KAAKuG,KAAOvG,KAAKs1J,OAEzC,CAIA,WAAIA,GACA,OAAO,CACX,CAKAo3G,UACI,MAAO,CACHC,OAAQ3sQ,KAAK4sQ,aAAaD,QAAU,iBACpCjkP,SAAU1oB,KAAK4sQ,aAAaC,cAAgB,mBAC5Cv3G,QAASt1J,KAAK4sQ,aAAa1sN,aAAe,kBAElD,CAMA,qBAAI2nL,GACA,OAAO7nO,KAAK8sQ,kBAChB,CACA,qBAAIjlC,CAAkBpuN,GAClBzZ,KAAK8sQ,mBAAqBrzP,CAC9B,CAEA,sBAAIszP,GACA,OAAO/sQ,KAAK0oM,qBAAuB1oM,KAAK0oM,qBAAqBsB,QAAUhqM,KAAKgtQ,oBAChF,CAOA,kBAAOC,CAAY1yO,EAAQhO,EAAU,CAAC,GAClC,MAAMm+G,EAAS,IAAI0gI,GAAa7wO,EAAQhO,GACxC,OAAO,IAAI5U,QAASC,IAChB8yH,EAAOwiI,UAAU3gP,EAAQ4gP,eAAgB5gP,EAAQg6O,cAAclmQ,KAAK,IAAMuX,EAAQ8yH,GAAO,EAEjG,CAMA7qI,YAAY06B,EAAQhO,EAAU,CAAC,GAC3B1oB,MAAM0oB,EAAQ6gP,YAAa,EAAM7gP,GAEjCvsB,KAAK6iL,UAAW,EAEhB7iL,KAAKqtQ,yBAA2B,CAAE98P,MAAO,UACzCvQ,KAAKstQ,yBAA2B,CAAE/8P,MAAO,UAEzCvQ,KAAKghQ,iBAAmB,EAExBhhQ,KAAK+gQ,wBAA0B,EAE/B/gQ,KAAKutQ,mBAAqB,EAC1BvtQ,KAAKwtQ,oBAAsB,EAC3BxtQ,KAAKytQ,SAAW,KAChBztQ,KAAK0tQ,UAAY,KACjB1tQ,KAAK2tQ,+BAAgC,EACrC3tQ,KAAK4sQ,aAAe,CAChBD,OAAQ,GACRE,aAAc,GACd3rB,OAAQ,GACRhhM,YAAa,IAGjBlgD,KAAK4tQ,wBAA0B,CAAC,EAEhC5tQ,KAAK6tQ,UAAY,CACbC,iBAAkB,EAClBC,qBAAsB,EACtBC,+BAAgC,EAChCC,4BAA6B,GAKjCjuQ,KAAKkuQ,kBAAoB,CACrBJ,iBAAkB,EAClBC,qBAAsB,EACtBC,+BAAgC,EAChCC,4BAA6B,GAKjCjuQ,KAAKmuQ,uBAAyB,GAI9BnuQ,KAAKkP,OAAS,GAEdlP,KAAKouQ,eAAiB,IAAI9wP,MAC1Btd,KAAKquQ,gBAAkB,CAAC,KAAM,MAE9BruQ,KAAKsuQ,uBAAyB,CAC1BtqB,qBAAsB,KACtBuqB,8BAA+B,KAC/BC,8BAA+B,KAC/BC,2BAA4B,GAC5B3kE,wBAAoBjnM,GAExB7C,KAAK0uQ,sBAAwB,CACzB1qB,qBAAsB,KACtBuqB,8BAA+B,KAC/BC,8BAA+B,KAC/BC,2BAA4B,GAC5B3kE,wBAAoBjnM,GAGxB7C,KAAK2uQ,sBAAwB,GAE7B3uQ,KAAK4uQ,sBAAwB,GAC7B5uQ,KAAK6uQ,8BAAgC,KACrC7uQ,KAAK8uQ,oBAAsB,KAC3B9uQ,KAAK+uQ,kBAAmB,EACxB/uQ,KAAKgvQ,oBAAqB,EAI1BhvQ,KAAK6yL,iBAAkB,EAIvB7yL,KAAKivQ,qBAAsB,EAI3BjvQ,KAAKkvQ,8BAAgC,KAKrClvQ,KAAKmvQ,kBAAoB,CAAEv8P,EAAG,EAAG4P,EAAG,EAAGomD,EAAG,EAAGb,EAAG,GAChD/nE,KAAKovQ,iBAAmB,CAAEx8P,EAAG,EAAG4P,EAAG,EAAGomD,EAAG,EAAGb,EAAG,GAC/C/nE,KAAKqvQ,eAAiB,CAAEz8P,EAAG,EAAG4P,EAAG,EAAG0nD,EAAG,EAAGtB,EAAG,GAC7C5oE,KAAKsvQ,qBAAsB,EAC3BtvQ,KAAKuvQ,oBAAsB,CAAC,KAAM,KAAM,KAAM,MAC9CvvQ,KAAKwvQ,oBAAsB,IAAIC,KAC/BzvQ,KAAKo1L,MAAQ,SACbp1L,KAAKovN,WAAa,IAAI7qB,KACtBh4K,EAAQmjP,iBAAmBnjP,EAAQmjP,kBAAoB,CAAC,EACxDnjP,EAAQojP,sBAAwBpjP,EAAQojP,wBAAyB,EACjE/uG,KAAOqzC,IAAK,eAAcxyB,KAAe5nB,aAAa75J,KAAKkgD,sBACtD2tE,UAAUk+I,KAIfx/O,EAAQqjP,gBAAkBrjP,EAAQqjP,iBAAmB/hJ,UAAUk+I,IAAI8D,2BACnE7vQ,KAAK8vQ,WAAY,EACjB9vQ,KAAK2mN,oBAAsB,SAC3B3mN,KAAK+vQ,iBAAmBx1O,EACxBv6B,KAAKmiD,SAAW51B,EAChBvsB,KAAKgtQ,qBAAuBzgP,EAAQ6gP,UAAYptQ,KAAKwtQ,oBAAsB,EACvE3/I,WAAaA,UAAUo8B,WACvBjqJ,KAAKgwQ,qBAEThwQ,KAAKiwQ,YAAYjwQ,KAAK+vQ,kBACtB/vQ,KAAKyrN,iBAAmB,IAAIuqB,GAC5Bh2O,KAAKkwQ,qBAAuB,IAAIn2B,IAd5Bn5E,KAAOt7I,MAAM,2CAerB,CAKA6qP,6BACI,OAAKnwQ,KAAKkvQ,gCACNlvQ,KAAKkvQ,8BAAgC,IAAIv3P,QAASC,IAC9C5X,KAAKowQ,aAAapwQ,KAAKqwQ,iBAAmBrwQ,KAAKmiD,UAAUgrN,gBAAgB9sQ,KAAMiwQ,IAC3EtwQ,KAAKytQ,SAAW6C,EAChBtwQ,KAAK0tQ,UAAY,IAAIrH,GACrBrmQ,KAAK0tQ,UAAUpH,UAAUtmQ,KAAKuwQ,eAAiBvwQ,KAAKmiD,UAAUokN,cAAclmQ,KAAK,KAC7EL,KAAK2tQ,+BAAgC,EACrC/1P,GAAQ,EACX,EACJ,IAGF5X,KAAKkvQ,6BAChB,CAOAhC,UAAUC,EAAgB5G,GAAc,IAAArmQ,EAAAF,KACpC,OAAAA,KAAK6iL,SAAWuoF,GAAaoF,cAC7BxwQ,KAAKqwQ,gBAAkBlD,EACvBntQ,KAAKuwQ,cAAgBhK,EACd14I,UACFk+I,IAAIC,eAAehsQ,KAAKmiD,UACxB9hD,KAAM4rQ,IACP,GAAKA,EAIA,CACDjsQ,KAAKywQ,SAAWxE,EAChBjsQ,KAAKosQ,4BAA8B,GACnCpsQ,KAAKywQ,SAASvsQ,UAAU+b,QAASywP,GAAY1wQ,KAAKosQ,4BAA4BnuP,KAAKyyP,IACnF1wQ,KAAKusQ,wBAA0BvsQ,KAAKywQ,SAAShiB,OAC7CzuP,KAAK4sQ,aAAe5sQ,KAAKywQ,SAASvqQ,KAClC,MAAMwpQ,EAAmB1vQ,KAAKmiD,SAASutN,kBAAoB,CAAC,EACtDiB,EAAmBjB,GAAkBiB,mBAAqB3wQ,KAAKmiD,SAASyuN,kBAAoB5wQ,KAAKosQ,iCAA8BvpQ,GACrI,GAAI8tQ,EAAkB,CAClB,MAAME,EAAsBF,EACtBG,GAAkB,GACxB,UAAW1jO,MAAayjO,GACwC,IAAxD7wQ,KAAKosQ,4BAA4BtnO,QAAQsI,KACzC0jO,GAAgB7yP,KAAKmvB,IAG7BsiO,EAAiBiB,iBAAmBG,EACxC,CACA,GAAI9wQ,KAAKmiD,SAAS4uN,mBAAqBrB,EAAiBsB,eAAgB,CACpEtB,EAAiBsB,eAAiB,CAAC,EACnC,UAAWzqQ,KAAQvG,KAAKusQ,wBACP,oBAAThmQ,GAAuC,oBAATA,IAIlCmpQ,EAAiBsB,eAAezqQ,GAAQvG,KAAKusQ,wBAAwBhmQ,GAE7E,CACAmpQ,SAAiBn/P,MAAS,sBAAqBvQ,KAAK6iL,WAC7C7iL,KAAKywQ,SAASQ,cAAcvB,EACvC,CAhCI,KAAM,2DAkCTrvQ,KAAM6gP,IACPlhP,KAAK0hP,QAAUR,EACflhP,KAAKqsQ,yBAA2B,GAChCrsQ,KAAK0hP,QAAQx9O,UAAU+b,QAASywP,GAAY1wQ,KAAKqsQ,yBAAyBpuP,KAAKyyP,IAC/E1wQ,KAAKysQ,cAAgBvrB,EAAOuN,OAC5B,IAAIyiB,GAAsB,EAC1BlxQ,KAAK0hP,QAAQ7oK,iBAAiB,kBAAoB9vD,MACxCmoP,EAAsBlxQ,KAAKmuQ,uBAC7BvtG,KAAOC,KAAM,4BAA2BqwG,EAAsB,OAAOnoP,EAAMthB,WAAWshB,EAAMthB,MAAMkkC,WAE7FulO,MAA0BlxQ,KAAKmuQ,wBACpCvtG,KAAOC,KAAM,+CAA8C7gK,KAAKmuQ,6FAA4F,GAG/JnuQ,KAAKw/N,yBACNx/N,KAAK0hP,QAAQyvB,MAAM9wQ,KAAM6F,IACjBlG,KAAK8sK,cAGT9sK,KAAKumN,iBAAkB,EACvB3lD,KAAOC,KAAK,wBAA0B36J,GACtClG,KAAK8xI,wBAAwBkvB,gBAAgBhhK,MAC7CA,KAAKwmN,gCAA8BrmN,OAAC,YAChC,MAAMkrQ,EAAwBnrQ,EAAKmrQ,sBAC7BE,GAAoBrrQ,EAAKqrQ,kBACzBC,GAAuBtrQ,EAAKsrQ,qBAC5BC,GAA8BvrQ,EAAKurQ,4BACnCC,GAAyBxrQ,EAAKwrQ,uBAC9BtkC,GAA8BlnO,EAAKknO,kCACnClnO,EAAKgtQ,UAAUhtQ,EAAKmwQ,iBAAmBnwQ,EAAKiiD,UAAUgrN,eAAgBjtQ,EAAKqwQ,eAAiBrwQ,EAAKiiD,UAAUokN,cACjHrmQ,EAAKmrQ,sBAAwBA,EAC7BnrQ,EAAKqrQ,kBAAoBA,GACzBrrQ,EAAKsrQ,qBAAuBA,GAC5BtrQ,EAAKurQ,4BAA8BA,GACnCvrQ,EAAKwrQ,uBAAyBA,GAC9BxrQ,EAAKknO,4BAA8BA,GACnClnO,EAAK+mO,mBAAqB,IAC9B,IAAC,EACJ,GAGJ5mO,KAAK,KACNL,KAAKoxQ,oBACLpxQ,KAAK2hP,eAAiB,IAAIuH,GAAoBlpP,KAAMA,KAAK0hP,SACzD1hP,KAAKuoO,eAAiB,IAAI0Y,GAAqBjhP,KAAMA,KAAK0hP,QAAS1hP,KAAK2hP,eAAgB3hP,KAAKqsQ,0BAC7FrsQ,KAAKk/P,cAAgB,IAAI7T,GAAmBrrP,KAAK0hP,SACjD1hP,KAAK2rQ,iBAAmB,IAAIvN,GAAsBp+P,KAAK0hP,QAAS1hP,KAAKk/P,cAAel/P,MACpFA,KAAKqnO,gBAAkB,IAAI28B,GAAqBhkQ,KAAMA,KAAK0hP,QAAS1hP,KAAK2hP,gBACzE3hP,KAAKm/L,gBAAkBn/L,KAAK0hP,QAAQyhB,eAAiB,IAAI+B,GAAqBllQ,KAAMA,KAAK0hP,QAAS1hP,KAAK2hP,qBAAkB9+O,EACzH7C,KAAK8nO,YAAc,IAAIo6B,GAAiBliQ,KAAK0hP,SAC7C1hP,KAAK2nO,mBAAqB,IAAIy/B,GAAwBpnQ,KAAMA,KAAKknO,uBAAwBlnO,KAAK8nO,aAC9F9nO,KAAKkhQ,WAAalhQ,KAAK2hP,eAAeO,aAAa,IAAIr0E,aAAa,EAAC,EAAI,IAAKs0E,GAA4BvY,QAAUuY,GAA4B1Y,QAAS,aACzJzpO,KAAKmhQ,eAAiBnhQ,KAAK2hP,eAAeO,aAAa,IAAIr0E,aAAa,CAAC,EAAG,IAAKs0E,GAA4BvY,QAAUuY,GAA4B1Y,QAAS,iBACxJzpO,KAAKgnO,mCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,EACdrnE,KAAOqzC,IAAI,CAAC,aAAej0M,KAAKioO,OAAS,WAAY,yBAG7DjoO,KAAKwoQ,eAAiBxoQ,KAAK0hP,QAAQoC,qBAAqB9jP,KAAKqtQ,0BAC7DrtQ,KAAKqoO,eAAiBroO,KAAK0hP,QAAQoC,qBAAqB9jP,KAAKstQ,0BAC7DttQ,KAAKquP,mBAAqB,IAAI7hF,IAAaxsK,KAAM,CAAC,GAAI,GAAI,CACtDqxQ,OAAQ,EACRpzL,OAAQ,EACR5kD,KAAM,EACN9oB,MAAO,sBAEXvQ,KAAK4oO,qBAAuB,IAAIswB,GAA8Bl5P,KAAK0hP,QAAS1hP,KAAKquP,oBACjFruP,KAAKksN,mBAAqB,IAAI+uC,GAAwBj7P,KAAK4oO,sBAC3D5oO,KAAK66N,sBAAwB,IAAIm/B,GAA2Bh6P,KAAK4oO,sBACjE5oO,KAAK66N,sBAAsBkgC,cAAgB/6P,KAAKssN,cAChDtsN,KAAKksN,mBAAmBD,WAAY,EACpCjsN,KAAKksN,mBAAmBC,UAAY,IACpCnsN,KAAKksN,mBAAmBE,WAAY,EACpCpsN,KAAKuoO,eAAekb,kBAAkBzjP,KAAKwoQ,gBAC3CxoQ,KAAKsxQ,WAAa,IAAIvR,GAAgB//P,KAAK0hP,QAAS1hP,KAAMA,KAAKquP,oBAC/DruP,KAAKuxQ,oBAAsBvxQ,KAAK+vN,oBAChC/vN,KAAKwxQ,oBAAsBxxQ,KAAKuxQ,oBAChCvxQ,KAAKyxQ,wBAA0BzxQ,KAAK8vN,wBACpC9vN,KAAK0xQ,wBAA0B1xQ,KAAKyxQ,wBACpCzxQ,KAAK2xQ,iCACL3xQ,KAAK4xQ,6BACL5xQ,KAAKqrN,QAAO,GAEX9iN,MAAOwV,IACR6iJ,WAAOt7I,MAAM,iEACPvH,GAEd,CACAqyP,aAAajD,GAMT,OALAA,EAAiBA,GAAkB,CAAC,GACpCA,EAAiB,IACV/B,GAAayG,0BACb1E,IAEYmD,QACR34P,QAAQC,QAAQu1P,EAAemD,SAEtCj4L,KAAKi4L,QACEj4L,KAAKi4L,QAAQnD,EAAevG,UAEnCuG,EAAexG,QAAUwG,EAAevG,SACjC72F,KAAM82F,uBAAuBsG,EAAexG,QAAQtmQ,KAAK,IACrDg4E,KAAKi4L,QAAQvgG,KAAM+2F,oBAAoBqG,EAAevG,YAG9DjvP,QAAQkwD,OAAO,2BAC1B,CACAupM,oBAGIpxQ,KAAKorM,MAAQ,CACTwb,sBAAuB5mN,KAAKysQ,cAAcqF,iCAC1CjrD,2BAA4B7mN,KAAKysQ,cAAcqF,iCAC/ChrD,8BAAqF,EAAtD9mN,KAAKysQ,cAAcqF,iCAClD/qD,eAAgB/mN,KAAKysQ,cAAcsF,sBACnC9qD,sBAAuBjnN,KAAKysQ,cAAcsF,sBAC1C7qD,qBAAsBlnN,KAAKysQ,cAAcsF,sBACzC5qD,iBAAkBnnN,KAAKysQ,cAAcuF,oBACrC3qD,eAAgB,EAChBD,kBAAmBpnN,KAAKysQ,cAAcwF,6BACtC3qD,0BAA2B/pM,KAAKwrC,MAAM/oD,KAAKysQ,cAAcyF,4BAA8B,GACvF3qD,wBAAyBhqM,KAAKwrC,MAAM/oD,KAAKysQ,cAAcyF,4BAA8B,GACrF1qD,qBAAqB,EACrBtX,KAAOlwM,KAAKqsQ,yBAAyBvnO,QAAQ,6BAAwF,QAAWjiC,EAChJstM,KAAOnwM,KAAKqsQ,yBAAyBvnO,QAAQ,2BAAoF,QAAWjiC,EAC5IutM,MAAO,KACPE,KAAM,KACND,KAAOrwM,KAAKqsQ,yBAAyBvnO,QAAQ,6BAAwF,QAAWjiC,EAChJ4kN,KAAMznN,KAAKqsQ,yBAAyBvnO,QAAQ,2BAAoF,QAAWjiC,EAC3I6kN,cAAe,GACfC,aAAa,EACbC,wBAAwB,EACxBC,8BAA8B,EAC9BC,kBAAkB,EAClBC,6BAA6B,EAC7BC,yBAA0BhoN,KAAKqsQ,yBAAyBvnO,QAAQ,6BAAyF,EACzJ0mK,cAAc,EACdH,4BAA6BrrM,KAAKqsQ,yBAAyBvnO,QAAQ,uBAA6E,EAChJmjL,oBAAoB,EACpBC,kBAAkB,EAClB5c,iCAAiC,EACjC6c,wBAAwB,EACxBC,YAAY,EACZC,YAAY,EACZC,sBAAsB,EACtBpb,uBAAuB,EACvBqb,mBAAmB,EACnBC,iBAAiB,EACjB9lB,kBAAmBmhE,eAAmB,MAA6H,IAA9G7jQ,KAAKqsQ,yBAAyBvnO,QAAQ,yBAAoFjiC,EAC/Kq8L,6BAA8B2kE,eAAmB,IACjDtgE,8BAA8B,EAC9B4uE,WAAW,EACXC,iBAAiB,EACjBnvD,2BAAuBpgN,EACvB4lN,aAAa,EACb7Z,eAAgB,EAChB8Z,oBAAoB,EACpBC,kBAAkB,EAClBC,uBAAuB,EACvBnd,oBAAoB,EACpBod,2BAA2B,EAC3BC,iBAAiB,EACjBC,4BAA6B/oN,KAAKysQ,cAAc4F,sBAChDppD,2BAA2B,GAE/BjpN,KAAKitK,UAAY,CACbk8C,iCAAiC,EACjCC,2CAA2C,EAC3CC,4BAA4B,EAC5BC,uBAAuB,EACvBC,8BAA8B,EAC9BC,0BAA0B,EAC1BC,kBAAkB,EAClBC,8BAA8B,EAC9BC,YAAY,EACZC,eAAe,EACfC,mBAAmB,EACnBC,iCAAiC,EACjCC,aAAa,EACbC,cAAc,EACdC,mBAAmB,EACnBC,+BAA+B,EAC/BC,2BAA2B,EAC3BC,wBAAwB,EACxBC,sBAAsB,EACtBC,oBAAoB,EACpBC,wBAAwB,EACxBC,gCAAgC,EAChCC,qBAAqB,EACrBC,yBAAyB,EACzBx9C,gDAAgD,EAChDi2C,wDAAwD,EACxDwH,4BAA4B,EAEpC,CACAgnD,iCACI,IAAK3xQ,KAAK+vQ,iBAEN,KAAM,yCAEV/vQ,KAAKsyQ,SAAWtyQ,KAAK+vQ,iBAAiBp1O,WAAW,UACjD36B,KAAKuyQ,oBACLvyQ,KAAKoyP,aAAepyP,KAAKmiD,SAASytN,gBAClC5vQ,KAAKsuQ,uBAAuBG,2BAA6B,CAAC,IAAI3xB,IAC9D98O,KAAKsuQ,uBAAuBG,2BAA2B,GAAGl/O,OAASvvB,KAAKoyP,aACxEpyP,KAAKwyQ,gBAAgBxyQ,KAAKsuQ,uBAC9B,CAEAsD,6BACI,IAAK5xQ,KAAK2hP,eACN,OAEJ3hP,KAAK8gM,mBACL9gM,KAAKyyQ,oBAAsB,CACvBh4O,MAAOz6B,KAAK0rI,gBAAe,GAC3BhxG,OAAQ16B,KAAK2rI,iBAAgB,GAC7Bs6G,mBAAoB,GAExB,MAAMysB,EAAmB,IAAI7kG,aAAa,CAAC7tK,KAAK2rI,iBAAgB,KAGhE,IAAIgnI,EACJ,GAHA3yQ,KAAK2hP,eAAemI,WAAW9pP,KAAKkhQ,WAAY,EAAGwR,GACnD1yQ,KAAK2hP,eAAemI,WAAW9pP,KAAKmhQ,eAAgB,EAAGuR,GAEnD1yQ,KAAKmiD,SAASirN,UAAW,CACzB,MAAMwF,EAAwB,CAC1BriQ,MAAQ,qBAAoBvQ,KAAKyyQ,oBAAoBh4O,SAASz6B,KAAKyyQ,oBAAoB/3O,sBACvFrB,KAAMr5B,KAAKyyQ,oBACX70B,cAAe,EACfnX,YAAazmO,KAAKgtQ,qBAClBhhC,UAAW,KACXz8M,OAAQvvB,KAAKmiD,SAASytN,gBACtBvpB,MAAO,IAEPrmP,KAAK6yQ,cACL7yQ,KAAKuoO,eAAeqgB,eAAe5oP,KAAK6yQ,cAE5C7yQ,KAAK6yQ,aAAe7yQ,KAAK0hP,QAAQn4G,cAAcqpI,GAC/CD,EAAuB,CACnB,CACI5jM,KAAM/uE,KAAK6yQ,aAAal1B,WAAW,CAC/BptO,MAAO,qCACPy7N,UAAW,KACXz8M,OAAQvvB,KAAKmiD,SAASytN,gBACtBhyB,cAAe,EACfH,gBAAiB,IAErBq1B,WAAY,IAAI3H,MAAO,EAAG,EAAG,EAAG,GAChCjnB,OAAQ,QACRC,QAAS,SAGrB,MAEIwuB,EAAuB,CACnB,CACI5jM,UAAMlsE,EACNiwQ,WAAY,IAAI3H,MAAO,EAAG,EAAG,EAAG,GAChCjnB,OAAQ,QACRC,QAAS,UAIrBnkP,KAAKsuQ,uBAAuBxkE,mBAAqB9pM,KAAK+yQ,gBAAkB,uBAAiF,eACzJ/yQ,KAAKgzQ,uBAAuBhzQ,KAAKsuQ,wBACjCtuQ,KAAKwyQ,gBAAgBxyQ,KAAKsuQ,wBAC1B,MAAM2E,EAAyB,CAC3B1iQ,MAAQ,4BAA2BvQ,KAAKyyQ,oBAAoBh4O,SAASz6B,KAAKyyQ,oBAAoB/3O,SAC9FrB,KAAMr5B,KAAKyyQ,oBACX70B,cAAe,EACfnX,YAAazmO,KAAKgtQ,qBAClBhhC,UAAW,KACXz8M,OAAQvvB,KAAKsuQ,uBAAuBxkE,mBACpCu8C,MAAO,IAEPrmP,KAAKkzQ,eACLlzQ,KAAKuoO,eAAeqgB,eAAe5oP,KAAKkzQ,eAE5ClzQ,KAAKkzQ,cAAgBlzQ,KAAK0hP,QAAQn4G,cAAc0pI,GAChD,MAAME,EAAsB,CACxBpkM,KAAM/uE,KAAKkzQ,cAAcv1B,WAAW,CAChCptO,MAAQ,gCAA+BvQ,KAAKyyQ,oBAAoBh4O,SAASz6B,KAAKyyQ,oBAAoB/3O,SAClGsxM,UAAW,KACXz8M,OAAQvvB,KAAKkzQ,cAAc3jP,OAC3BquN,cAAe,EACfH,gBAAiB,IAErB21B,gBAAiBpzQ,KAAKghQ,iBACtBqS,YAAa,QACbC,aAAc,QACdC,kBAAmBvzQ,KAAKutQ,mBACxBiG,cAAgBxzQ,KAAK+yQ,gBAA8B,aAAZlwQ,EACvC4wQ,eAAiBzzQ,KAAK+yQ,gBAA8B,aAAZlwQ,GAE5C7C,KAAKsuQ,uBAAuBtqB,qBAAuB,CAC/CzzO,MAAO,iBACP0zO,iBAAkB0uB,EAClBe,uBAAwBP,EAEhC,CAKAlD,YAAY11O,GACR12B,MAAMosQ,YAAY11O,IAAM,EACxBo5O,OAAY3zQ,KAAMu6B,EAAQv6B,KAAK4zQ,iBACnC,CACArB,oBACIvyQ,KAAKsyQ,SAAS7tP,UAAU,CACpBy8N,OAAQlhP,KAAK0hP,QACbnyN,OAAQvvB,KAAKmiD,SAASytN,gBACtBvpB,MAAO,GACPwtB,UAAW7zQ,KAAKynP,mBAAqB,gBAAsE,UAEnH,CAQA1oB,kBAAkBn+M,EAAOo+M,EAAaC,GAClC,SAAO60C,OAAkB9zQ,KAAM4gB,EAAOo+M,EAAaC,EACvD,CAOAP,6BAA6BC,EAAapyM,GACtC,SAAOwnP,OAA4B/zQ,KAAM2+N,EAAapyM,EAC1D,CAKAynP,iBAAiBC,GACTj0Q,KAAKk0Q,aACLl0Q,KAAKm0Q,iBAGLn0Q,KAAKo0Q,gBAAgBH,EAE7B,CAKAG,gBAAgBH,GACPj0Q,KAAKk0Q,eACNl0Q,KAAKq0Q,sBAAwBJ,EACzBj0Q,KAAK+vQ,qBACLuE,OAAkBt0Q,KAAK+vQ,kBAGnC,CAIAoE,iBACQn0Q,KAAKk0Q,iBACLK,QAER,CAIAC,mBACQx0Q,KAAK+vQ,qBACL0E,OAAmBz0Q,KAAK+vQ,iBAEhC,CAIA2E,mBACIC,UACJ,CACAC,kBACI/wQ,MAAM+wQ,kBACN,UAAWC,KAAiB70Q,KAAK80Q,gBAEzBD,EAAcloG,YAAYs8E,WAAajpP,KAAK6iL,UAC5CgyF,EAAcjoG,UAG1B,CACA45C,+BAA+BuuD,GAC3B7b,GAA8BY,aAC9BsE,GAAsBtE,aAEtB,MAAMkb,EAAe9lQ,IACjB,UAAWovG,KAASpvG,EAAQ,CACxB,UAAWyyJ,KAAQrjD,EAAM4yB,OAAQ,CAC7B,MAAM4+C,EAAYnuB,EAAKmuB,UACvB,GAAKA,EAGL,UAAWmlF,MAAWnlF,EAClBmlF,GAAQC,cAAgB,EAEhC,CACA,UAAW7tI,KAAY/oB,EAAM8yB,UACzB/J,EAAS8tI,kBAAkB9hQ,OAEnC,GAEJ2hQ,EAAYh1Q,KAAKkP,QACjB8lQ,EAAYh1Q,KAAKouQ,gBAEjB,MAAMgH,EAAU,GAChB,UAAWpkC,KAAiBhxO,KAAKq1Q,gBACzBrkC,EAAczqO,KAAKu+B,QAAQ,YAAc,GACzCswO,EAAQn3P,KAAK+yN,GAGrBhxO,KAAKq1Q,gBAAkBD,EACvBvxQ,MAAM2iN,+BAA+BuuD,EACzC,CAQAn0E,QAAQnmK,EAAOC,EAAQ46O,GAAe,GAClC,QAAKzxQ,MAAM+8L,QAAQnmK,EAAOC,EAAQ46O,KAG9Bt1Q,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,KAEbjoO,KAAKioO,QAAUjoO,KAAKioO,OAASjoO,KAAK6mO,0BACnCjmE,KAAOqzC,IAAI,CAAC,UAAYj0M,KAAKioO,OAAS,eAAgBxtM,EAAOC,KAGrE16B,KAAK4xQ,6BACD5xQ,KAAKurQ,mBAELvrQ,KAAKsrQ,0BAEF,EACX,CAIA7oB,oBAAoBjsC,GAChB,OAAuB,IAAnBA,EACOx2M,KAAKkwQ,qBAETlwQ,KAAKyrN,gBAChB,CAIA1I,4BAA4BvM,EAAgBo8B,GACxC,OAAO,IAAIL,GAA8B/7B,EAAgBo8B,EAC7D,CACA2iC,wBACI,OAAIv1Q,KAAK0oM,uBAAyB1oM,KAAKinO,mBAEnCjnO,KAAKw1Q,6BAA6Bx1Q,KAAK0oM,sBAAsB,EAAO,MAAM,GAAO,GAE3E1oM,KAAKinO,oBACXjnO,KAAKy1Q,sBAAqB,GAEvBz1Q,KAAKinO,kBAChB,CAEAy+B,+BACI,OAAO1lQ,KAAK0oM,qBAAuB1oM,KAAK0uQ,sBAAwB1uQ,KAAKsuQ,sBACzE,CAKAoH,cACI11Q,KAAK66N,sBAAsBr+M,QAC3Bxc,KAAK4oO,qBAAqBG,qBAAqB/oO,KAAK86N,YAAY4N,WACpE,CAMAhO,WAAWC,GACH36N,KAAK46N,gCAAkCD,IAK3C36N,KAAKgvQ,oBAAqB,EAC1BhvQ,KAAK8uQ,oBAAsB,KAC3B9uQ,KAAK6uQ,8BAAgC,KACrC7uQ,KAAK4oO,qBAAqB2mB,WAAW,KAAM,KAAM,MAC7C50B,IACA36N,KAAK66N,sBAAsBxnN,QAC3BrT,KAAKksN,mBAAmB74M,QACxBrT,KAAKksN,mBAAmBC,UAAY,IACpCnsN,KAAK86N,YAAYznN,QACjBrT,KAAK04N,WAAa,EAClB14N,KAAK21Q,eAAiB,EACtB31Q,KAAK4oO,qBAAqBI,qBAAqBhpO,KAAK86N,YAAYmO,yBAA0BjpO,KAAK86N,YAAYoO,0BAC3GlpO,KAAK4oO,qBAAqBG,sBAAqB,GAC/C/oO,KAAKq0N,eAAc,IAEvBr0N,KAAK+6N,qBAAuB,KAC5B/6N,KAAKg7N,mBAAqB,KAC1Bh7N,KAAKi7N,8BAAgC,KACzC,CAKA5G,cAAcrkL,GACVhwC,KAAK+uQ,iBAAmB/+N,EACxBhwC,KAAK4oO,qBAAqBumB,aAAan/M,EAAS,GAAM,EAC1D,CAKAwkL,gBACI,OAAOx0N,KAAK+uQ,gBAChB,CACA6G,sBACI,MACM9yM,EAAS9iE,KAAKmvQ,kBAAkBv8P,IAD5B5S,KAAK61Q,gBAAgBjjQ,GACkB5S,KAAKmvQ,kBAAkB3sP,IADlCxiB,KAAK61Q,gBAAgBrzP,GACwBxiB,KAAKmvQ,kBAAkBvmM,IADxC5oE,KAAK61Q,gBAAgB3rM,GAC8BlqE,KAAKmvQ,kBAAkBpnM,IAD9C/nE,KAAK61Q,gBAAgBjtM,EAEnH,OAAI9F,IACA9iE,KAAKmvQ,kBAAkBv8P,EAAI5S,KAAK61Q,gBAAgBjjQ,EAChD5S,KAAKmvQ,kBAAkB3sP,EAAIxiB,KAAK61Q,gBAAgBrzP,EAChDxiB,KAAKmvQ,kBAAkBvmM,EAAI5oE,KAAK61Q,gBAAgB3rM,EAChDlqE,KAAKmvQ,kBAAkBpnM,EAAI/nE,KAAK61Q,gBAAgBjtM,GAE7C9F,CACX,CACAgzM,eAAexO,GACX,MAAM10P,EAAI2K,KAAKwrC,MAAM/oD,KAAK61Q,gBAAgBjjQ,GACpCg2D,EAAIrrD,KAAKwrC,MAAM/oD,KAAK61Q,gBAAgB3rM,GACpCnC,EAAIxqD,KAAKwrC,MAAM/oD,KAAK61Q,gBAAgBjtM,GAC1C,IAAIpmD,EAAIjF,KAAKwrC,MAAM/oD,KAAK61Q,gBAAgBrzP,GACnCxiB,KAAK0oM,uBACNlmL,EAAIxiB,KAAK2rI,iBAAgB,GAAQnpH,EAAIulD,GAErCu/L,EACAA,EAAW3E,QAAQ,IAAItB,GAAyBzuP,EAAG4P,EAAGomD,EAAGb,IAGzD/nE,KAAKu1Q,wBAAwBtjD,YAAYr/M,EAAG4P,EAAGomD,EAAGb,EAAG,EAAG,GAExD/nE,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,KAEbjoO,KAAKioO,QAAUjoO,KAAKioO,OAASjoO,KAAK6mO,0BACnCjmE,KAAOqzC,IAAI,CACP,UAAYj0M,KAAKioO,OAAS,0BAC1BjoO,KAAK61Q,gBAAgBjjQ,EACrB5S,KAAK61Q,gBAAgBrzP,EACrBxiB,KAAK61Q,gBAAgB3rM,EACrBlqE,KAAK61Q,gBAAgBjtM,EACrB,+BAAiC5oE,KAAKwnO,2BAItD,CAIAuuC,UAAUnjQ,EAAG4P,EAAGiY,EAAOC,GACnB16B,KAAK61Q,gBAAgBjjQ,EAAIA,EACzB5S,KAAK61Q,gBAAgBrzP,EAAIA,EACzBxiB,KAAK61Q,gBAAgB3rM,EAAIzvC,EACzBz6B,KAAK61Q,gBAAgBjtM,EAAIluC,CAC7B,CACAs7O,qBACI,MACMlzM,EAAS9iE,KAAKovQ,iBAAiBx8P,IAD3B5S,KAAKqvQ,eAAez8P,GACkB5S,KAAKovQ,iBAAiB5sP,IADjCxiB,KAAKqvQ,eAAe7sP,GACwBxiB,KAAKovQ,iBAAiBxmM,IADvC5oE,KAAKqvQ,eAAenlM,GAC8BlqE,KAAKovQ,iBAAiBrnM,IAD7C/nE,KAAKqvQ,eAAezmM,EAE/G,OAAI9F,IACA9iE,KAAKovQ,iBAAiBx8P,EAAI5S,KAAKqvQ,eAAez8P,EAC9C5S,KAAKovQ,iBAAiB5sP,EAAIxiB,KAAKqvQ,eAAe7sP,EAC9CxiB,KAAKovQ,iBAAiBxmM,EAAI5oE,KAAKqvQ,eAAenlM,EAC9ClqE,KAAKovQ,iBAAiBrnM,EAAI/nE,KAAKqvQ,eAAezmM,GAE3C9F,CACX,CACAmzM,cAAc3O,GACV,MAAM9kP,EAAIxiB,KAAK0oM,qBAAuB1oM,KAAKqvQ,eAAe7sP,EAAIxiB,KAAK2rI,kBAAoB3rI,KAAKqvQ,eAAezmM,EAAI5oE,KAAKqvQ,eAAe7sP,EAC/H8kP,EACAA,EAAW3E,QAAQ,IAAIrB,GAAwBthQ,KAAKqvQ,eAAez8P,EAAG4P,EAAGxiB,KAAKqvQ,eAAenlM,EAAGlqE,KAAKqvQ,eAAezmM,IAGpH5oE,KAAKu1Q,wBAAwBhU,eAAevhQ,KAAKqvQ,eAAez8P,EAAG4P,EAAGxiB,KAAKqvQ,eAAenlM,EAAGlqE,KAAKqvQ,eAAezmM,GAEjH5oE,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,KAEbjoO,KAAKioO,QAAUjoO,KAAKioO,OAASjoO,KAAK6mO,0BACnCjmE,KAAOqzC,IAAI,CACP,UAAYj0M,KAAKioO,OAAS,yBAC1BjoO,KAAKqvQ,eAAez8P,EACpB5S,KAAKqvQ,eAAe7sP,EACpBxiB,KAAKqvQ,eAAenlM,EACpBlqE,KAAKqvQ,eAAezmM,EACpB,+BAAiC5oE,KAAKwnO,2BAItD,CACA0uC,mBACI,OAAiC,IAA1Bl2Q,KAAKqvQ,eAAez8P,GAAqC,IAA1B5S,KAAKqvQ,eAAe7sP,GAAqC,IAA1BxiB,KAAKqvQ,eAAenlM,GAAqC,IAA1BlqE,KAAKqvQ,eAAezmM,CAC5H,CACA0pJ,cAAc1/M,EAAG4P,EAAGiY,EAAOC,GACvB16B,KAAKqvQ,eAAez8P,EAAIA,EACxB5S,KAAKqvQ,eAAe7sP,EAAIA,EACxBxiB,KAAKqvQ,eAAenlM,EAAIzvC,EACxBz6B,KAAKqvQ,eAAezmM,EAAIluC,CAC5B,CACA83L,iBACIxyN,KAAKqvQ,eAAez8P,EAAI5S,KAAKqvQ,eAAe7sP,EAAIxiB,KAAKqvQ,eAAenlM,EAAIlqE,KAAKqvQ,eAAezmM,EAAI,EAChG5oE,KAAKovQ,iBAAiBx8P,EAAI5S,KAAKovQ,iBAAiB5sP,EAAIxiB,KAAKovQ,iBAAiBxmM,EAAI5oE,KAAKovQ,iBAAiBrnM,EAAI,CAC5G,CACAouM,wBACI,MAAMrzM,EAAS9iE,KAAK66N,sBAAsBmgC,UAAYh7P,KAAKsvQ,oBAC3D,OAAIxsM,IACA9iE,KAAKsvQ,oBAAsBtvQ,KAAK66N,sBAAsBmgC,SAEnDl4L,CACX,CACAszM,iBAAiB9O,GACTA,EACAA,EAAW3E,QAAQ,IAAInB,GAA2BxhQ,KAAK66N,sBAAsBmgC,SAAW,IAGxFh7P,KAAKu1Q,wBAAwB9T,oBAAoBzhQ,KAAK66N,sBAAsBmgC,SAAW,EAE/F,CACAqb,wBACI,MAAMze,EAAa53P,KAAK86N,YAAYw7C,gBAC9BxzM,EAAS80L,EAAW,KAAO53P,KAAKuvQ,oBAAoB,IACtD3X,EAAW,KAAO53P,KAAKuvQ,oBAAoB,IAC3C3X,EAAW,KAAO53P,KAAKuvQ,oBAAoB,IAC3C3X,EAAW,KAAO53P,KAAKuvQ,oBAAoB,GAC/C,OAAIzsM,IACA9iE,KAAKuvQ,oBAAoB,GAAK3X,EAAW,GACzC53P,KAAKuvQ,oBAAoB,GAAK3X,EAAW,GACzC53P,KAAKuvQ,oBAAoB,GAAK3X,EAAW,GACzC53P,KAAKuvQ,oBAAoB,GAAK3X,EAAW,IAEtC90L,CACX,CACAyzM,iBAAiBjP,GACTA,EACAA,EAAW3E,QAAQ,IAAIjB,GAA2B1hQ,KAAK86N,YAAYw7C,gBAAgB54P,UAGnF1d,KAAKu1Q,wBAAwB5T,iBAAiB3hQ,KAAK86N,YAAYw7C,gBAEvE,CACAE,yBACIx2Q,KAAKmvQ,kBAAkBv8P,EAAI5S,KAAKmvQ,kBAAkB3sP,EAAIxiB,KAAKmvQ,kBAAkBvmM,EAAI5oE,KAAKmvQ,kBAAkBpnM,EAAI,EAC5G/nE,KAAKovQ,iBAAiBx8P,EAAI5S,KAAKovQ,iBAAiB5sP,EAAIxiB,KAAKovQ,iBAAiBxmM,EAAI5oE,KAAKovQ,iBAAiBrnM,EAAI,EACxG/nE,KAAKsvQ,qBAAsB,EAC3BtvQ,KAAKuvQ,oBAAoB,GAAKvvQ,KAAKuvQ,oBAAoB,GAAKvvQ,KAAKuvQ,oBAAoB,GAAKvvQ,KAAKuvQ,oBAAoB,GAAK,IAC5H,CAQAt9N,MAAM4nB,EAAO+yJ,EAAYnoF,EAAOooF,GAAU,GAElChzJ,QAAqBh3D,IAAZg3D,EAAMjrD,IACfirD,EAAMjrD,EAAI,GAEd,MAAM6nQ,EAAaz2Q,KAAKk2Q,mBACpBl2Q,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,KAEbjoO,KAAKioO,QAAUjoO,KAAKioO,OAASjoO,KAAK6mO,0BACnCjmE,KAAOqzC,IAAI,CAAC,UAAYj0M,KAAKioO,OAAS,yBAA0Brb,EAAY,UAAWnoF,EAAO,YAAaooF,EAAS,sBAAuB4pD,KAI/Iz2Q,KAAK0oM,qBACD+tE,GACKz2Q,KAAKinO,oBACNjnO,KAAKw1Q,6BAA6Bx1Q,KAAK0oM,sBAAsB,EAAOkkB,EAAa/yJ,EAAQ,KAAM4qE,EAAOooF,GAE1G7sN,KAAKi2Q,cAAej2Q,KAAK6nO,kBAAuC,KAAnB7nO,KAAK8nO,aAClD9nO,KAAK02Q,eAAe9pD,EAAa/yJ,EAAQ,KAAM4qE,EAAOooF,KAGlD7sN,KAAKinO,oBACLjnO,KAAKynO,wBAETznO,KAAKw1Q,6BAA6Bx1Q,KAAK0oM,sBAAsB,EAAMkkB,EAAa/yJ,EAAQ,KAAM4qE,EAAOooF,OAIpG7sN,KAAKinO,qBAAuBwvC,IAC7Bz2Q,KAAKy1Q,sBAAsBgB,EAAY7pD,EAAa/yJ,EAAQ,KAAM4qE,EAAOooF,GAEzE4pD,IACAz2Q,KAAKi2Q,cAAej2Q,KAAK6nO,kBAAuC,KAAnB7nO,KAAK8nO,aAClD9nO,KAAK02Q,eAAe9pD,EAAa/yJ,EAAQ,KAAM4qE,EAAOooF,IAGlE,CACA6pD,eAAepW,EAAYC,EAAYC,GACnC,MAAMH,EAAcrgQ,KAAK6nO,kBAA2B7nO,KAAKu1Q,wBAAZ,KAC7Cv1Q,KAAKsxQ,WAAWriB,eAAejvP,KAAKoyP,cACpCpyP,KAAKsxQ,WAAWliB,sBAAsBpvP,KAAKggQ,qBAC3ChgQ,KAAKsxQ,WAAWjf,kBAAkBryP,KAAK4oO,qBAAqB0pB,gBAAkB,GAAItyP,KAAK4oO,qBAAqB6pB,iBAAmB,GAAIzyP,KAAK4oO,qBAAqBolB,iBACxJhuP,KAAK6nO,kBAINw4B,EAAWoB,oBAAoBzhQ,KAAKutQ,oBAHpCvtQ,KAAK8nO,YAAY66B,QAAQ,IAAInB,GAA2BxhQ,KAAKutQ,qBAKjE,MAAM5M,EAAS3gQ,KAAKsxQ,WAAWr/N,MAAMouN,EAAYC,EAAYC,EAAYC,EAAcxgQ,KAAK+sQ,oBACvF/sQ,KAAK6nO,kBAMN7nO,KAAKo2Q,iBAAiB,OALtBp2Q,KAAK8nO,YAAYw6B,UAAU3B,GAC3B3gQ,KAAKo2Q,iBAAiBp2Q,KAAK8nO,aAC3B9nO,KAAK+nQ,kBAKb,CAWA36C,mBAAmB3nN,EAAMkxQ,EAAYpmQ,GACjC,IAAIw+D,EACJ,OACIA,EADAtpE,aAAgB6X,MACT,IAAIuwJ,aAAapoK,GAEnBA,aAAgBqnE,YACd,IAAIjmC,WAAWphC,GAGfA,EAEQzF,KAAK2hP,eAAeO,aAAanzK,EAAMozK,GAA4BxY,OAASwY,GAA4B1Y,QAASl5N,EAExI,CAOA8wN,0BAA0B57N,EAAM8K,GAC5B,OAAOvQ,KAAKotN,mBAAmB3nN,OAAM5C,EAAW0N,EACpD,CAQAw8M,kBAAkB9+B,EAAS0oF,EAAYpmQ,GACnC,IACIw+D,EADAm+I,GAAW,EAEXj/B,aAAmBlnJ,aAAeknJ,aAAmB7tC,WACrDrxE,EAAOk/G,EAEFA,aAAmBnnJ,aACxBioC,EAAOk/G,EACPi/B,GAAW,GAGPj/B,EAAQv4K,OAAS,MACjBq5D,EAAO,IAAIhoC,YAAYknJ,IAGvBl/G,EAAO,IAAIjoC,YAAYmnJ,GACvBi/B,GAAW,GAGnB,MAAM08B,EAAa5pP,KAAK2hP,eAAeO,aAAanzK,EAAMozK,GAA4BzY,MAAQyY,GAA4B1Y,QAASl5N,GACnIq5O,SAAW18B,SAAWA,EACf08B,CACX,CAOAtoB,yBAAyB7T,EAAax/B,EAAShwG,EAAS,GACpD,MAAMwqK,EAAYh7B,EAClB,IAAI1+I,EAEAA,EADA0+I,EAAYP,SACLj/B,aAAmBlnJ,YAAcknJ,EAAU,IAAIlnJ,YAAYknJ,GAG3DA,aAAmBnnJ,YAAcmnJ,EAAU,IAAInnJ,YAAYmnJ,GAEtEjuL,KAAK2hP,eAAemI,WAAWrB,EAAWxqK,EAAQlP,EACtD,CAQAwyJ,0BAA0BxT,EAActoN,EAAM4oE,EAAYzB,GACtD,MAAMg9K,EAAa77B,EAInB,IAAIh/I,OAHelsE,IAAfwrE,IACAA,EAAa,QAGExrE,IAAf+pE,GAEImC,EADAtpE,aAAgB6X,MACT,IAAIuwJ,aAAapoK,GAEnBA,aAAgBqnE,YACd,IAAIjmC,WAAWphC,GAGfA,EAEXmnE,EAAamC,EAAKnC,YAIdmC,EADAtpE,aAAgB6X,MACT,IAAIuwJ,aAAapoK,GAEnBA,aAAgBqnE,YACd,IAAIjmC,WAAWphC,GAGfA,EAGfzF,KAAK2hP,eAAemI,WAAWF,EAAYv7K,EAAYU,EAAM,EAAGnC,EACpE,CAIAgqM,cAAcnxQ,EAAMq2N,EAAevrN,GAC/B,IAAIw+D,EAEAA,EADAtpE,aAAgB6X,MACT,IAAIuwJ,aAAapoK,GAEnBA,aAAgBqnE,YACd,IAAIjmC,WAAWphC,GAGfA,EAEX,IAAI4jP,EAAQ,EACZ,OAAoB,EAAhBvtB,IACAutB,GAASlH,GAA4B3Y,SAErB,EAAhB1N,IACAutB,GAASlH,GAA4B1Y,SAErB,EAAhB3N,IACAutB,GAASlH,GAA4BvY,SAErB,EAAhB9N,IACAutB,GAASlH,GAA4BxY,QAErB,GAAhB7N,IACAutB,GAASlH,GAA4BzY,OAErB,GAAhB5N,IACAutB,GAASlH,GAA4BtY,SAErB,GAAhB/N,IACAutB,GAASlH,GAA4BrY,UAElC9pO,KAAK2hP,eAAeO,aAAanzK,EAAMs6K,EAAO94O,EACzD,CAIAsmQ,sBAEI,KAAM,2BACV,CAIAC,+BAEI,KAAM,2BACV,CAIAC,2BACI,CASJ1oD,YAAY3L,EAAe+K,EAAa1xM,EAAQ2xM,GAC5C1tN,KAAK8uQ,oBAAsBrhD,EAC3BztN,KAAK6uQ,8BAAgCnhD,GAAyB,KAC9D1tN,KAAK4oO,qBAAqB2mB,WAAW7sC,EAAe+K,EAAaztN,KAAK6uQ,8BAC1E,CAIAmI,eAAe5oM,GACX,OAAOpuE,KAAK2hP,eAAesG,cAAc75K,EAC7C,CAWA6oM,oBAAoBl6P,EAAUxM,GAC1B,IAAIw+D,EACJ,OACIA,EADAhyD,aAAoBO,MACb,IAAIuwJ,aAAa9wJ,GAGjBA,EAEQ/c,KAAK2hP,eAAeO,aAAanzK,EAAMozK,GAA4BvY,QAAUuY,GAA4B1Y,QAASl5N,EAEzI,CAQA2mQ,2BAA2Bn6P,EAAUxM,GACjC,OAAOvQ,KAAKi3Q,oBAAoBl6P,EAAUxM,EAC9C,CASA4mQ,oBAAoBnmC,EAAej0N,EAAUkhE,EAAQ/+C,QAClCr8B,IAAXo7E,IACAA,EAAS,GAEb,MAAM2rK,EAAa5Y,EACnB,IAAIjiK,OACUlsE,IAAVq8B,GAEI6vC,EADAhyD,aAAoB8wJ,aACb9wJ,EAGA,IAAI8wJ,aAAa9wJ,GAE5BmiB,EAAQ6vC,EAAKnC,YAITmC,EADAhyD,aAAoB8wJ,aACb9wJ,EAGA,IAAI8wJ,aAAa9wJ,GAGhC/c,KAAK2hP,eAAemI,WAAWF,EAAY3rK,EAAQlP,EAAM,EAAG7vC,EAChE,CAOAk4O,sBAAsBhpM,EAAQipM,EAAW9wQ,GACrCvG,KAAKwxQ,oBAAoB1T,UAAUv3P,EAAM6nE,EAC7C,CAIAoqI,mBAAqB,CAmBrBrjM,aAAag7K,EAAUmnF,EAA0BC,EAAuBj/D,EAAUjoB,EAASmnF,EAAWlnF,EAAYC,GAAS4B,GAAiBqkB,GAAiB,EAA6BihE,IACtL,MAAMh5G,GAA6B,iBAAb0xB,EAAwBA,EAAWA,EAASunF,aAAevnF,EAASwnF,cAAgBxnF,EAASynF,eAAiBznF,EAAS1xB,OACvI98J,GAA+B,iBAAbwuL,EAAwBA,EAAWA,EAAS0nF,eAAiB1nF,EAAS2nF,gBAAkB3nF,EAAS4nF,iBAAmB5nF,EAASxuL,SAC/Iq2Q,GAAgBh4Q,KAAKi4Q,oBAC3B,IAAIC,GAAc7nF,GAAWinF,EAAyBjnF,SAAW,GAC7D2nF,KACAE,IAAe,KAAOF,IAE1B,MAAMzxQ,GAAOk4J,GAAS,IAAM98J,GAAW,IAAMu2Q,GAC7C,GAAIl4Q,KAAKm4Q,iBAAiB5xQ,IAAO,CAC7B,MAAM6xQ,GAAiBp4Q,KAAKm4Q,iBAAiB5xQ,IAC7C,OAAI+pL,GAAc8nF,GAAerkF,WAC7BzD,EAAW8nF,IAEfA,GAAeC,YACRD,EACX,CACA,MAAMr8P,GAAS,IAAIu8P,KAAOnoF,EAAUmnF,EAA0BC,EAAuBj/D,EAAUt4M,KAAMqwL,EAASmnF,EAAWlnF,EAAYC,GAAS4B,GAAiB5rL,GAAM+wQ,EAAyB9gE,gBAAkBA,GAAgB8gE,EAAyBG,2BAA6BA,IACtR,OAAAz3Q,KAAKm4Q,iBAAiB5xQ,IAAQwV,GACvBA,EACX,CACAw8P,yBAAyBtwO,EAAQ71B,GAC7B,OAAOpS,KAAKytQ,SAAS+K,YAAYvwO,EAAQ71B,EAC7C,CACAqmQ,sBAAsBxwO,EAAQ71B,EAAMi+K,EAASqoF,GACzC,OAAO14Q,KAAKu4Q,yBAAyBG,GAAiBroF,EAAUA,EAAU,KAAO,IAAMpoJ,EAAQ71B,EACnG,CACAumQ,eAAe1wO,EAAQ71B,EAAMi+K,GACzB,OACIA,EADAA,EACU,KAAOA,EAAQtrJ,MAAM,MAAM76B,KAAK,QAAU,KAG1C,IAEG+9B,CACrB,CACA2wO,+BAA+BC,EAAcC,EAAgBtiE,EAAgBuiE,EAAmCC,GAC5G,OAAIh5Q,KAAK0tQ,WAAgC,IAAnBl3D,IAClBqiE,EAAe74Q,KAAK0tQ,UAAU3G,kBAAkB8R,EAAcE,GAC9DD,EAAiB94Q,KAAK0tQ,UAAU3G,kBAAkB+R,EAAgBE,IAE/D,CACH/gB,YAAa,CACT7U,OAAQpjP,KAAK0hP,QAAQqB,mBAAmB,CACpCxyO,MAAO,SACPosD,KAAMk8M,IAEVvnF,WAAY,QAEhB8mE,cAAe,CACXhV,OAAQpjP,KAAK0hP,QAAQqB,mBAAmB,CACpCxyO,MAAO,WACPosD,KAAMm8M,IAEVxnF,WAAY,QAGxB,CACA2nF,mCAAmCtlF,EAAYk9B,EAAcra,GACzD,MAAMuiE,EAAoCplF,EAAW7uJ,QAAS,wCAAyC,EACjGk0O,EAAsCnoD,EAAa/rL,QAAS,wCAAyC,EACrG+zO,EAAkC,IAAnBriE,EAAiDx2M,KAAKu4Q,yBAAyB5kF,EAAY,UAAYA,EACtHmlF,EAAoC,IAAnBtiE,EAAiDx2M,KAAKu4Q,yBAAyB1nD,EAAc,YAAcA,EAClI,OAAO7wN,KAAK44Q,+BAA+BC,EAAcC,EAAgBtiE,EAAgBuiE,EAAmCC,EAChI,CACAE,gCAAgCvlF,EAAYk9B,EAAcxgC,EAASmmB,GAC/Dx2M,KAAK8wN,oCAAoC9vD,gBAAgBhhK,MACzD,MAAM+4Q,EAAoCplF,EAAW7uJ,QAAS,wCAAyC,EACjGk0O,EAAsCnoD,EAAa/rL,QAAS,wCAAyC,EACrG4zO,EAAgB,iBAChBG,GAAkC,IAAnBriE,EAAiDx2M,KAAKy4Q,sBAAsB9kF,EAAY,SAAUtD,EAASqoF,GAAiB14Q,KAAK24Q,eAAehlF,EAAY,SAAUtD,GACrLyoF,GAAoC,IAAnBtiE,EACjBx2M,KAAKy4Q,sBAAsB5nD,EAAc,WAAYxgC,EAASqoF,GAC9D14Q,KAAK24Q,eAAe9nD,EAAc,WAAYxgC,GAC9CuV,GAAU5lM,KAAK44Q,+BAA+BC,GAAcC,GAAgBtiE,EAAgBuiE,EAAmCC,GACrI,OAAAh5Q,KAAKkxN,mCAAmClwD,gBAAgBhhK,MACjD4lM,EACX,CAIA6qB,yBAEI,KAAM,yBACV,CAIAC,sBAEI,KAAM,yBACV,CAMAU,iBAAiBz0J,GACb,MAAM00J,EAAM,IAAI5d,GAAkB92I,GAClC00J,SAAI9tN,OAAQ,EACZ8tN,EAAIrd,cACGqd,EAAI10J,IACf,CAMAizJ,sBAAsB9X,GAClB,OAAO,IAAIs4B,GAAsBt4B,EAAyB93M,KAC9D,CAKA8vN,wBACI,OAAO,IAAIusC,EACf,CAKAtsC,oBACI,OAAO,IAAIotC,GAAkBn9P,KAAK2hP,eACtC,CAIM3xB,wBAAwBjgB,EAAiBkgB,EAAkBC,EAAoBC,EAAagpD,EAAqBC,EAAuB9oD,EAAgBjgC,GAASkgC,GAA4Bz/B,GAAM0/B,IAAS,IAAA3oN,GAAA7H,KAAA,SAAAG,KAAA,YAC9M,MAAMk5Q,GAAgBtpE,EAChByG,GAAiB6iE,GAAcvhE,wBAAwBtB,eACtC,IAAnBA,KAAmD3uM,GAAK8lQ,sCAClD9lQ,GAAKsoQ,8BAEXtoQ,GAAK8+N,oBACL/lE,KAAOqzC,IAAI,CAAC,UAAW5jB,KACvBzvB,KAAOqzC,IAAIgc,GACXrvD,KAAOqzC,IAAIic,GACXtvD,KAAOqzC,IAAI,oDAEfolE,GAAcnjE,QAAU,CACpBv0M,SAAUuuN,EACVzxD,OAAQwxD,EACRqpD,UAAWH,EACXI,YAAaH,GAGbC,GAAchpC,OADdlgB,EACuBtoN,GAAKoxQ,mCAAmChpD,EAAkBC,EAAoB1Z,IAG9E3uM,GAAKqxQ,gCAAgCjpD,EAAkBC,EAAoB7/B,GAASmmB,IAE/Gga,IAAU,EAxBoM,EAyBlN,CAOA5X,cAAc7I,EAAiBwI,GAC3B,MAAMnpL,EAAU,IAAI9R,MAAMi7L,EAAgB7iM,QACpC8jQ,EAAqBzpE,EAC3B,QAAStyL,EAAI,EAAGA,EAAI86L,EAAgB7iM,OAAQ+H,IAAK,CAC7C,MACMg8P,EAAoBD,EAAmB1hE,wBAAwBo7B,oBAD/C36B,EAAgB96L,SAEZ5a,IAAtB42Q,IAGJrqP,EAAQ3R,GAAKg8P,EACjB,CACA,OAAOrqP,CACX,CAKAsqP,aAAa39P,GACT,GAAKA,EAGL,KAAI,EAAC49P,MAAU59P,GAM8S,KAGnTA,EAAOA,QACZA,EAAOA,SAAW/b,KAAK+xN,gBACpBh2M,EAAOsjP,kBAAoBr/P,KAAK0xQ,yBAChC31P,EAAOqjP,cAAgBp/P,KAAKwxQ,sBAC3BxxQ,KAAKgvQ,mBAAqB,CAC/B,IAAKjzP,EAAOA,QAAU/b,KAAK+mO,8BACvBnmE,WAAOqzC,IAAI,CAAC,eAAgBl4L,IAEtB,8DAEV,MACJ,IAEI/b,KAAK+xN,eAAiBh2M,EAAOA,OAC7B/b,KAAK0xQ,wBAA0B31P,EAAOsjP,gBACtCr/P,KAAKwxQ,oBAAsBz1P,EAAOqjP,YAClCp/P,KAAK6tQ,UAAUE,wBACV/tQ,KAAK0xQ,wBACN9wG,WAAOqzC,IAAI,CAAC,eAAgBl4L,IAErB,4EA5BX/b,KAAK+xN,eAAiBh2M,EACtB/b,KAAK0xQ,wBAA0B1xQ,KAAKyxQ,wBACpCzxQ,KAAKwxQ,oBAAsBxxQ,KAAKuxQ,oBAChCvxQ,KAAK6tQ,UAAUC,mBACX9tQ,KAAK8mO,wBACLlmE,KAAOC,KAAM,kFAAiF9kJ,EAAO8mK,yBAAyB9mK,EAAOxV,4BAAmD,iBAAhBwV,EAAOxV,KAAoB,GAAKwV,EAAOxV,KAAKk4J,gCAAuD,iBAAhB1iJ,EAAOxV,KAAoB,GAAKwV,EAAOxV,KAAK5E,WAAY,IA0B3T3B,KAAK66N,sBAAsBigC,qBAAkBj4P,EAC7C7C,KAAKgvQ,oBAAqB,EACtBhvQ,KAAK+xN,eAAe6nD,QACpB55Q,KAAK+xN,eAAe6nD,OAAO55Q,KAAK+xN,gBAEhC/xN,KAAK+xN,eAAe8nD,mBACpB75Q,KAAK+xN,eAAe8nD,kBAAkB74G,gBAAgBhhK,KAAK+xN,eAAc,CAEjF,CAIA+nD,eAAe/9P,GACP/b,KAAKm4Q,iBAAiBp8P,EAAO+0K,eACtB9wL,KAAKm4Q,iBAAiBp8P,EAAO+0K,MACpC9wL,KAAKyxN,uBAAuB11M,EAAOk4K,sBAE3C,CAIA8lF,iBACI,UAAWxzQ,KAAQvG,KAAKm4Q,iBAAkB,CACtC,MAAM6B,EAAwBh6Q,KAAKm4Q,iBAAiB5xQ,GAAM0tL,qBAC1Dj0L,KAAKyxN,uBAAuBuoD,EAChC,CACAh6Q,KAAKm4Q,iBAAmB,CAAC,CAC7B,CACA1mD,uBAAuB1hB,GACWA,IAC1BsmD,EACA4jB,OAF0BlqE,EAIlC,CAQA,mBAAImqE,GACA,OAAO,CACX,CAEAx5C,yBACI,OAAO,IAAIoc,EACf,CAIAq9B,gBAAgB5zE,GACZ,MAAM5rL,EAAQ3a,KAAKitM,uBAAuBnoK,QAAQyhK,IACpC,IAAV5rL,GACA3a,KAAKitM,uBAAuB1xL,OAAOZ,EAAO,GAE9C3a,KAAKuoO,eAAeqgB,eAAeriD,EACvC,CAIAO,oCACI,OAAO,CACX,CACAszE,gCAAgC7zE,EAAS0jE,GACrC1jE,EAAQilD,oBAAsBye,CAClC,CAUArpC,uBAAuBvnM,EAAM9M,EAAS8tP,GAA0B,EAAMpyO,EAAS,GAC3E,MAAMyiO,EAAc,CAAC,OACL7nQ,IAAZ0pB,GAA4C,iBAAZA,GAChCm+O,EAAYpmI,gBAAkB/3G,EAAQ+3G,gBACtComI,EAAYt4P,UAAwBvP,IAAjB0pB,EAAQna,KAAqB,EAAIma,EAAQna,KAC5Ds4P,EAAY7kF,kBAAwChjL,IAAzB0pB,EAAQs5J,aAA6B,EAAIt5J,EAAQs5J,aAC5E6kF,EAAYn7O,YAA4B1sB,IAAnB0pB,EAAQgD,OAAuB,EAAIhD,EAAQgD,OAChEm7O,EAAY1gE,QAAUz9K,EAAQy9K,SAAW,EACzC0gE,EAAY5uC,cAAgBvvM,EAAQuvM,eAAiB,EACrD4uC,EAAYx/D,cAAgB3+K,EAAQ2+K,gBAAiB,EACrDw/D,EAAYn6P,MAAQgc,EAAQhc,QAG5Bm6P,EAAYpmI,gBAAkB/3G,EAC9Bm+O,EAAYt4P,KAAO,EACnBs4P,EAAY7kF,aAAe,EAC3B6kF,EAAYn7O,OAAS,EACrBm7O,EAAY1gE,QAAU,EACtB0gE,EAAY5uC,cAAgB,EAC5B4uC,EAAYx/D,eAAgB,IAEP,IAArBw/D,EAAYt4P,OAAepS,KAAKorM,MAAMC,6BAGZ,IAArBq/D,EAAYt4P,OAAepS,KAAKorM,MAAME,mCAC3Co/D,EAAY7kF,aAAe,GAEN,IAArB6kF,EAAYt4P,OAAepS,KAAKorM,MAAMI,eACtCk/D,EAAYt4P,KAAO,EACnBwuJ,KAAOC,KAAK,+EAEhB,MAAM0lC,EAAU,IAAIqF,KAAgB5rM,KAAMioC,GACpCxN,EAAQpB,EAAKoB,OAASpB,EACtBqB,GAASrB,EAAKqB,QAAUrB,EACxBorG,GAAQprG,EAAKorG,OAAS,EACtB6lE,GAASjxK,EAAKixK,QAAU,EAC9B/D,SAAQuG,UAAYryK,EACpB8rK,EAAQwG,WAAaryK,GACrB6rK,EAAQ9rK,MAAQA,EAChB8rK,EAAQ7rK,OAASA,GACjB6rK,EAAQ9hE,MAAQA,IAAS6lE,GACzB/D,EAAQxS,SAAU,EAClBwS,EAAQyD,QAAU0gE,EAAY1gE,QAC9BzD,EAAQjiE,kBAAkBomI,EAAYpmI,gBACtCiiE,EAAQ1gB,aAAe6kF,EAAY7kF,aACnC0gB,EAAQn0L,KAAOs4P,EAAYt4P,KAC3Bm0L,EAAQh3K,OAASm7O,EAAYn7O,OAC7Bg3K,EAAQoG,UAAYrC,GAAS,EAC7B/D,EAAQgD,KAAO9kE,GAAQ,EACvB8hE,EAAQklD,aAAe,EACvBllD,EAAQmlD,aAAe,EACvBnlD,EAAQyG,eAAiB09D,EAAYx/D,cACrC3E,EAAQh2L,MAAQm6P,EAAYn6P,MAC5BvQ,KAAKitM,uBAAuBhvL,KAAKsoL,GAC5B8zE,GACDr6Q,KAAKuoO,eAAeue,mCAAmCvgD,EAAS9rK,EAAOC,GAAQ4vK,IAAU,EAAGogE,EAAY5uC,eAErGv1B,CACX,CAwBAh9D,cAAcrmI,EAAKu5N,EAAUh2B,EAASnoF,EAAOunE,EAAe,EAAG62C,EAAS,KAAMnsC,EAAU,KAAMniH,GAAS,KAAMuuJ,GAAW,KAAMptM,GAAS,KAAMqtM,GAAkB,KAAMzjM,GAAU0jM,GAAef,GAAe5wB,IACzM,OAAOlrM,KAAKs6Q,mBAAmBp3Q,EAAKu5N,EAAUh2B,EAASnoF,EAAOunE,EAAc62C,EAAQnsC,EAAS,CAACgW,GAASn5J,GAAWkxE,GAAOjkF,GAAKosK,GAASg2B,GAAU89C,GAAcC,MAC3J,MAAM37C,GAAcxkM,GASpB,GARAksK,GAAQuG,UAAY+xB,GAAYpkM,MAChC8rK,GAAQwG,WAAa8xB,GAAYnkM,OACjC6rK,GAAQ9rK,MAAQokM,GAAYpkM,MAC5B8rK,GAAQ7rK,OAASmkM,GAAYnkM,OAC7B6rK,GAAQh3K,QAA4B,IAAnBg3K,GAAQh3K,OAAgBg3K,GAAQh3K,OAAUA,IAAU,EACrEg3K,GAAQn0L,MAAwB,IAAjBm0L,GAAQn0L,KAAcm0L,GAAQn0L,KAAO,EACpDm0L,GAAQ+hE,eAAiBxsC,IAAiB,EAC1C0+C,GAAgBj0E,GAAQ9rK,MAAO8rK,GAAQ7rK,OAAQmkM,GAAazxL,GAAWm5J,GAAS,QAC3EA,GAAQwF,kBAAkB7F,oBAUrBu2B,KAAa89C,IACnBv6Q,KAAKkoO,iBAAiB3hC,GAASvmM,KAAKwoQ,oBAXW,CAE/C,MAAMxhB,GAAoBhnP,KAAKuoO,eAAeue,mCAAmCvgD,GAASs4B,GAAYpkM,MAAOokM,GAAYnkM,YAAQ73B,EAAWi5N,IACxI2J,GAAoBO,cAAcnH,MAClC7+N,KAAKuoO,eAAeke,cAAc5nB,GAAat4B,GAASs4B,GAAYpkM,MAAOokM,GAAYnkM,OAAQ6rK,GAAQ9hE,MAAOuiH,GAAkBz3N,OAAQ,EAAG,EAAGk3K,IAAS,EAAO,EAAG,IAC5Jg2B,KAAa89C,IACdv6Q,KAAKkoO,iBAAiB3hC,GAASvmM,KAAKwoQ,gBAGhD,CAIIlqJ,IACAA,GAAMk/G,kBAAkBj3B,IAE5BA,GAAQxS,SAAU,EAClBwS,GAAQ+2B,mBAAmBt8D,gBAAgBulC,IAC3CA,GAAQ+2B,mBAAmBrrL,OAAM,EAClC,KAAM,EAAOm8B,GAAQuuJ,GAAUptM,GAAQqtM,GAAiBzjM,GAAU0jM,GAAe3xB,GACxF,CAMAuvE,kBAAkBl0E,GACd,MAAM0I,EAAkB,IAAI6tC,GAAsBv2C,GAC5C03B,EAAkB,IAAIryB,KAAgB5rM,KAAM,GAAuC,GACzFi+N,SAAgBlyB,iBAAmBkD,EACnCgvB,EAAgBlqC,SAAU,EACnBkqC,CACX,CAMAG,mBACI,MAAM,IAAI94M,MAAM,oEACpB,CAIA02M,kBAAkB9wB,EAAeuxB,GAC7B,OAAOvxB,GAAiBlrM,KAAKorM,MAAMK,kBACvC,CAIAvE,aAAa30L,GAAS,CAOtB4rN,0BAA0Bt4C,EAAc0gB,EAASjiE,GAAkB,GAC3DA,IACAiiE,EAAQjiE,iBAAkB,EAC1BtkI,KAAKkoO,iBAAiB3hC,IAE1BA,EAAQ1gB,aAAeA,CAC3B,CAQA60F,0BAA0Bn0E,EAASk8B,EAAOC,EAAQ,KAAMC,EAAQ,MAC9C,OAAVF,IACAl8B,EAAQklD,aAAehpB,GAEb,OAAVC,IACAn8B,EAAQmlD,aAAehpB,IAEtBn8B,EAAQoG,WAAapG,EAAQgD,OAAmB,OAAVo5B,IACvCp8B,EAAQolD,aAAehpB,EAE/B,CAQAg4C,wBAAwBp0E,EAAS9rK,EAAOC,EAAQ+pG,EAAQ,GAKpD,IAJK8hE,EAAQwF,kBAITxF,EAAQ9rK,QAAUA,GAAS8rK,EAAQ7rK,SAAWA,GAAU6rK,EAAQ9hE,QAAUA,EAC1E,OAEJ,MAAM6hH,EAAmB//C,EAAQwF,iBAAiBuxC,wBAClD/2C,EAAQwF,iBAAiBkR,UACzBj9M,KAAKuoO,eAAeue,mCAAmCvgD,EAAS9rK,EAAOC,EAAQ+pG,EAAO6hH,EAC1F,CAIAs0B,oBAAoBr0Q,EAAMggM,EAASpW,GAE/B,GADAA,EAAWA,GAAY5pL,EACnBvG,KAAK+xN,eAAgB,CAErB,MAAM8oD,EADwB76Q,KAAK+xN,eAAe/gC,iBACH8mB,wBAAwB84B,kBAAkBzgD,GACzFnwL,KAAK0xQ,wBAAwB7lI,WAAWtlI,EAAMggM,GAC1Cs0E,GAAoBA,EAAiBzjC,iBAErCp3O,KAAK0xQ,wBAAwB9U,WADTzsE,EAAY,UACqBoW,EAE7D,CACJ,CAcAu0E,6BAA6Bn4G,EAASrkD,EAAO8gH,EAAUC,EAAW3C,EAAS,KAAMnsC,EAAU,KAAMhhK,EAAQqtM,GAAkB,KAAMuC,IAAoB,GAoBjJ,OAAOn/N,KAAKk/N,kBAAkBv8D,EAASrkD,EAAO,MAAM,EAnBlCy8J,KACd,IAAKA,GAID,YAHIr+C,GACAA,EAAO,OAIf,MAAMn2B,GAAUw0E,GAASx0E,QACpB44B,GAGI47C,GAAS70Q,KAAK80Q,sBACnBz0E,GAAQ00E,qBAAuBF,GAAS70Q,KAAK80Q,qBAH7Cz0E,GAAQ00E,qBAAuB,IAAIC,KAKvC30E,GAAQ0gD,QAAU,EACdvqB,GACAA,EAAOn2B,GAAO,EAG+ChW,EAAShhK,EAAQqtM,GAAiBuC,GAAmBC,EAAUC,EACxI,CAQAxzF,WAAW81F,EAASw5C,EAAQ50E,EAAShgM,GACjCvG,KAAK0hO,YAAYC,EAASp7B,GAAS,GAAO,EAAOhgM,EAAMA,EAC3D,CAQA60Q,gBAAgBz5C,EAASw5C,EAAQvpI,EAAUrrI,GACvC,QAASoU,EAAQ,EAAGA,EAAQi3H,EAASl8H,OAAQiF,IACzC3a,KAAK0hO,aAAY,EAAI9vF,EAASj3H,IAAQ,GAAM,EAAOpU,EAAOoU,EAAMzR,WAAY3C,EAEpF,CAIAm7N,YAAYC,EAASp7B,EAErBq7B,GAAuB,EAAOC,GAAsB,EAAOt7N,EAAO,GAAI4pL,GAMlE,GADAA,EAAWA,GAAY5pL,EACnBvG,KAAK+xN,eAAgB,CACrB,IAAKxrB,EACD,OAAAvmM,KAAK0xQ,wBAAwB7lI,WAAWtlI,EAAM,OACvC,EAGX,GAAIggM,EAAQC,MACRD,EAAQzjI,cAAO,GAEiB,IAA3ByjI,EAAQ07B,eAEb17B,SAAQ27B,aACD,EAEX,IAAIjE,EAAkB,KAmBtB,GAjBIA,EADA4D,EACkBt7B,EAAQs7B,oBAErBt7B,EAAQxS,UACKwS,EAAQ47B,qBAErB57B,EAAQ+C,OACKtpM,KAAKoiO,iBAElB77B,EAAQgD,KACKvpM,KAAKqiO,eAElB97B,EAAQoG,UACK3sM,KAAKsiO,oBAGLtiO,KAAKuiO,aAEvBtE,IAAoBA,EAAgBo9C,YAAa,CAEjD,GAAIp9C,EAAgB30B,QAAU20B,EAAgBq9C,yBAA2B/0E,EAAQg1E,gBAAiB,CAC9Ft9C,EAAgBq9C,uBAAyB/0E,EAAQg1E,gBACjD,MAAMC,GAA8C,IAA5Bj1E,EAAQg1E,iBAAqD,IAA5Bh1E,EAAQg1E,gBAC3D,EACA,EACNh1E,EAAQk8B,MAAQ+4C,GAChBj1E,EAAQm8B,MAAQ84C,EACpB,CACAv9C,EAAgBwtB,aAAellD,EAAQk8B,MACvCxE,EAAgBytB,aAAenlD,EAAQm8B,MACnCzE,EAAgB10B,OAChB00B,EAAgB0tB,aAAeplD,EAAQo8B,OAE3C3iO,KAAKy7Q,qBAAqB,EAAGx9C,EAAiB13B,EAAQ88B,0BAC1D,CACArjO,KAAK46Q,oBAAoBr0Q,EAAM03N,EAAiB9tC,EACpD,MAEQnwL,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,KAEbjoO,KAAKioO,QAAUjoO,KAAKioO,OAASjoO,KAAK6mO,0BACnCjmE,KAAOqzC,IAAI,CAAC,UAAYj0M,KAAKioO,OAAS,6DAA8D1hC,KAIhH,OAAO,CACX,CAIAk1E,qBAAqBpuP,EAAQ4wM,EAAiBoF,GACtCpF,EAAgBqF,mCAAqCD,IACrDpF,EAAgBqF,iCAAmC/lN,KAAKi/B,IAAI6mL,EAA2BrjO,KAAKorM,MAAMsc,eAE1G,CAIA8b,aAAa7B,EAASp7B,EAAShgM,QACX1D,IAAZ8+N,GAGJ3hO,KAAK46Q,oBAAoBr0Q,EAAMggM,EACnC,CAKAkiC,gBAAgBliC,GACZvmM,KAAKkoO,iBAAiB3hC,EAC1B,CAaAu9B,kBAAkBv9B,EAAS05B,EAAW8D,EAASC,EAASvpM,EAAOC,EAAQ0xJ,EAAY,EAAG63C,GAAM,EAAG3/F,IAAkB,GAC7G,IAAI0iH,GAAoBzgD,EAAQwF,iBAC3BxF,EAAQwF,kBAAkB7F,qBAC3B8gD,GAAoBhnP,KAAKuoO,eAAeue,mCAAmCvgD,IAE/E,MAAM9gM,GAAO,IAAIohC,WAAWo5L,EAAU7xJ,OAAQ6xJ,EAAU5xJ,WAAY4xJ,EAAUrzJ,YAC9E5sE,KAAKuoO,eAAeke,cAAchhP,GAAM8gM,EAAS9rK,EAAOC,EAAQ6rK,EAAQ9hE,MAAOuiH,GAAkBz3N,OAAQ68J,EAAW63C,GAAK19B,EAAQE,SAAS,EAAOs9B,EAASC,GACtJ1/F,IACAtkI,KAAKkoO,iBAAiB3hC,EAE9B,CAIA29B,uCAAuC39B,EAASM,EAAgBpsK,EAAOC,EAAQulM,EAAW7zC,EAAY,EAAG63C,EAAM,GAC3G,IAAI+iB,GAAoBzgD,EAAQwF,iBAC3BxF,EAAQwF,kBAAkB7F,qBAC3BK,EAAQh3K,OAASs3K,EACjBmgD,GAAoBhnP,KAAKuoO,eAAeue,mCAAmCvgD,EAAS9rK,EAAOC,IAE/F,MAAMj1B,GAAO,IAAIohC,WAAWo5L,EAAU7xJ,OAAQ6xJ,EAAU5xJ,WAAY4xJ,EAAUrzJ,YAC9E5sE,KAAKuoO,eAAeke,cAAchhP,GAAM8gM,EAAS9rK,EAAOC,EAAQ6rK,EAAQ9hE,MAAOuiH,GAAkBz3N,OAAQ68J,EAAW63C,GAAK,GAAO,EAAO,EAAG,EAC9I,CAIAE,6BAA6B59B,EAAS05B,EAAW7zC,EAAY,EAAG63C,EAAM,EAAGy3C,EAAuBC,GAA2B,GACvH,MAAMC,EAAcr+P,KAAK2sC,MAAM3sC,KAAK6O,IAAIm6K,EAAQ9rK,OAASld,KAAKs+P,OACxDC,GAAev+P,KAAK2sC,MAAM3sC,KAAK6O,IAAIm6K,EAAQ7rK,QAAUnd,KAAKs+P,OAC1DphP,GAAQkhP,EAA2Bp1E,EAAQ9rK,MAAQld,KAAKwsC,IAAI,EAAGxsC,KAAKk/B,IAAIm/N,EAAc33C,EAAK,IAC3FvpM,GAASihP,EAA2Bp1E,EAAQ7rK,OAASnd,KAAKwsC,IAAI,EAAGxsC,KAAKk/B,IAAIq/N,GAAe73C,EAAK,IACpG,IAAI+iB,GAAoBzgD,EAAQwF,iBAC3BxF,EAAQwF,kBAAkB7F,qBAC3B8gD,GAAoBhnP,KAAKuoO,eAAeue,mCAAmCvgD,EAAS9rK,GAAOC,KAE/F,MAAMj1B,GAAO,IAAIohC,WAAWo5L,EAAU7xJ,OAAQ6xJ,EAAU5xJ,WAAY4xJ,EAAUrzJ,YAC9E5sE,KAAKuoO,eAAeke,cAAchhP,GAAM8gM,EAAS9rK,GAAOC,GAAQ6rK,EAAQ9hE,MAAOuiH,GAAkBz3N,OAAQ68J,EAAW63C,EAAK19B,EAAQE,SAAS,EAAO,EAAG,EACxJ,CAIA29B,gCAAgC79B,EAAS05B,EAAW7zC,EAAY,EAAG63C,EAAM,GACrEjkO,KAAKmkO,6BAA6B59B,EAAS05B,EAAW7zC,EAAW63C,EACrE,CAIAI,sBAAsB99B,EAAS3lL,EAAOwrK,EAAY,EAAG63C,EAAM,GACvD,IAAI+iB,EAAoBzgD,EAAQwF,iBAIhC,GAHKxF,EAAQwF,kBAAkB7F,qBAC3B8gD,EAAoBhnP,KAAKuoO,eAAeue,mCAAmCvgD,IAE3E3lL,aAAiBm7P,iBAEjB,KAAM,0EAEV,MAAMC,EAASp7P,EACT6Z,EAAQld,KAAKC,KAAK+oL,EAAQ9rK,OAAS,GAAKwpM,IACxCvpM,GAASnd,KAAKC,KAAK+oL,EAAQ7rK,QAAU,GAAKupM,IAChDjkO,KAAKuoO,eAAeke,cAAcu1B,EAAQz1E,EAAS9rK,EAAOC,GAAQ6rK,EAAQ9hE,MAAOuiH,EAAkBz3N,OAAQ68J,EAAW63C,EAAK19B,EAAQE,SAAS,EAAO,EAAG,EAC1J,CAYA6hD,WAAW11O,EAAG4P,EAAGiY,EAAOC,EAAQwqG,GAAW,EAAM0kI,GAAgB,GAE7D,MAAM36D,GADoBjvM,KAAK0lQ,+BACW+I,2BAA2B,GACrE,IAAKx/D,GAED,OAAOt3L,QAAQC,QAAQ,IAAIivB,WAAW,IAE1C,MAAM4+M,GAAax2C,GAAgB/I,mBAC7B+1E,GAAmBhtE,GAAgB1/K,OACzC,OAAKk2N,IAIDmkB,GACA5pQ,KAAK8gM,mBAEF9gM,KAAKuoO,eAAe+f,WAAW7C,GAAY7yO,EAAG4P,EAAGiY,EAAOC,EAAQuhP,KAL5DtkQ,QAAQC,QAAQ,IAAIivB,WAAW,GAM9C,CAIAq1O,cACIl8Q,KAAKwvQ,oBAAoB2M,cACzBn8Q,KAAKo8Q,KAAOp8Q,KAAKwvQ,oBAAoB6M,WACrCr8Q,KAAKs8Q,WAAat8Q,KAAKwvQ,oBAAoB+M,wBAA0B,CACzE,CAKA,sBAAI7rI,GACA,OAAO1wI,KAAKwvQ,mBAChB,CAIAgN,aACIx8Q,KAAKk8Q,cACLr4Q,MAAM24Q,YACV,CAIAp6G,WAQI,GAPApiK,KAAKynO,wBACLznO,KAAK2nO,mBAAmBvlE,WACxBpiK,KAAKqnO,gBAAgBjlE,SAASpiK,KAAKqoO,gBACnCroO,KAAKmnO,gBAAkB,EACvBnnO,KAAK8gM,mBACL9gM,KAAKuoO,eAAeugB,0BACpB9oP,KAAK2hP,eAAesJ,yBAChBjrP,KAAKitK,UAAU09C,2BAA4B,CAC3C,GAAI3qN,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,IAEbjoO,KAAKioO,QAAUjoO,KAAKioO,OAASjoO,KAAK6mO,yBAAyB,CAC5D,MAAMlrN,EAAO,GACb,UAAWpV,KAAQ0qO,KAAcwrC,oBAC7B9gQ,EAAKsC,KAAK1X,EAAO,IAAM0qO,KAAcwrC,oBAAoBl2Q,IAE7Dq6J,KAAOqzC,IAAI,CAAC,UAAYj0M,KAAKioO,OAAS,oBAAqBtsN,EAAKzR,KAAK,OACzE,CAEJ+mO,KAAcwrC,oBAAsB,CAAC,CACzC,CACAz8Q,KAAKkuQ,kBAAkBJ,iBAAmB9tQ,KAAK6tQ,UAAUC,iBACzD9tQ,KAAKkuQ,kBAAkBH,qBAAuB/tQ,KAAK6tQ,UAAUE,qBAC7D/tQ,KAAKkuQ,kBAAkBF,+BAAiChuQ,KAAK6tQ,UAAUG,+BACvEhuQ,KAAKkuQ,kBAAkBD,4BAA8BjuQ,KAAK6tQ,UAAUI,4BACpEjuQ,KAAK6tQ,UAAUC,iBAAmB,EAClC9tQ,KAAK6tQ,UAAUE,qBAAuB,EACtC/tQ,KAAK6tQ,UAAUG,+BAAiC,EAChDhuQ,KAAK6tQ,UAAUI,4BAA8B,EAC7CjuQ,KAAK4oO,qBAAqBxmE,WAC1BpiK,KAAK2rQ,iBAAiBvpG,WACtBpiK,KAAK2uQ,sBAAsBj5P,OAAS,EAChC1V,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,GAEdjoO,KAAKioO,OAASjoO,KAAK6mO,yBACnBjmE,KAAOqzC,IAAI,CAAC,aAAej0M,KAAKioO,OAAS,SAAU,wBAEnDjoO,KAAKioO,OAASjoO,KAAK6mO,0BACnB7mO,KAAKioO,SACDjoO,KAAKioO,SAAWjoO,KAAK6mO,yBACrBjmE,KAAOqzC,IAAI,CAAC,aAAej0M,KAAKioO,OAAS,WAAY,0BAIjEpkO,MAAMu+J,UACV,CAEAs6G,oBACI,MAAO,EACX,CAIA57E,mBAEI9gM,KAAKynO,wBACLznO,KAAKquQ,gBAAgB,GAAKruQ,KAAKwoQ,eAAezjB,SAC9C/kP,KAAKquQ,gBAAgB,GAAKruQ,KAAKqoO,eAAe0c,SAC9C/kP,KAAK0hP,QAAQmD,MAAMC,OAAO9kP,KAAKquQ,iBAC/BruQ,KAAKwoQ,eAAiBxoQ,KAAK0hP,QAAQoC,qBAAqB9jP,KAAKqtQ,0BAC7DrtQ,KAAKqoO,eAAiBroO,KAAK0hP,QAAQoC,qBAAqB9jP,KAAKstQ,0BAC7DttQ,KAAKqnO,gBAAgBllE,WAAWniK,KAAKwoQ,gBACrCxoQ,KAAKuoO,eAAekb,kBAAkBzjP,KAAKwoQ,gBAC3CxoQ,KAAK8nO,YAAYz0N,OACrB,CAEAspQ,0CACI,OAAO38Q,KAAKwnO,wBAChB,CAIAguC,6BAA6BoH,EAAqBC,EAAgBvc,EAAYC,EAAYC,GACtFxgQ,KAAKynO,wBACL,MAAMl/B,EAAYq0E,EACZ/6C,EAAsBt5B,EAAU+F,qBAChCwuE,GAAyBj7C,GAAqB91B,iBAC9CgxE,GAAyBD,IAAwB52E,mBACjD82E,GAA6BF,IAAwB9/B,eAAe,GACpEigC,GAAmBF,IAAwBp/B,WAAW39O,KAAK0uQ,sBAAsBF,+BACjF0O,GAAuBF,IAA4Br/B,WAAW39O,KAAK0uQ,sBAAsBF,+BACzF2O,KAAyBL,IAAyBr3C,GAAoBY,iBAAiBy2C,GAAuBvtP,QAC9G00N,GAAmB,GACrBjkP,KAAK8yL,uBACL9yL,KAAKo9Q,mCAET,MAAMC,GAAyBnS,GAC3B5K,IACA+c,GAAuBj8P,EAAmB,IAAfk/O,EAAWl/O,EACtCi8P,GAAuBxiQ,EAAmB,IAAfylP,EAAWzlP,EACtCwiQ,GAAuB9nQ,EAAmB,IAAf+qP,EAAW/qP,EACtC8nQ,GAAuBzuQ,EAAmB,IAAf0xP,EAAW1xP,GAE1C,MAAM0uQ,GAAiBT,GAAkBvc,EACnCid,GAAiBV,GAAkBtc,EACnCid,GAAmBX,GAAkBrc,EAC3C,GAAIj4D,EAAUI,cAAgBJ,EAAUoU,QAAS,GAExC38M,KAAKy9Q,iBAAmD,IAAhCz9Q,KAAKy9Q,gBAAgB/nQ,UAC9C1V,KAAKy9Q,gBAAkBl1E,EAAUm1E,qBAErC,QAASjgQ,GAAI,EAAGA,GAAIzd,KAAKy9Q,gBAAgB/nQ,SAAU+H,GAAG,CAClD,MAAM9C,GAAQ3a,KAAKy9Q,gBAAgBhgQ,IAC7BkgQ,GAAap1E,EAAU32D,SAASn0H,IAChCmgQ,GAAgBD,IAAY5xE,iBAC5B8xE,GAAgBD,IAAe13E,mBACrC,GAAI03E,IAAiBC,GAAe,CAChC,MAAMhgC,GAAiBt1C,EAAUu1E,kBAAkBrgQ,IAC7C4pO,GAAiBu2B,GAAc5gC,eAAea,IAC9CkgC,GAAiB,IAChB/9Q,KAAK0uQ,sBAAsBH,8BAC9BviC,UAAW2xC,GAAWp0E,KAAO,KAAsD,KACnFh6K,OAAQquP,GAAcruP,OACtBsuN,mBAEEmgC,GAAqB,IACpBh+Q,KAAK0uQ,sBAAsBH,8BAC9BviC,UAAW2xC,GAAWp0E,KAAO,KAAsD,KACnFh6K,OAAQquP,GAAcruP,OACtBsuN,eAAgB,GAEdogC,GAAkC,IAApBN,GAAWvrQ,MAAkC,IAApBurQ,GAAWvrQ,KAClD8rQ,GAAmBL,GAAclgC,WAAWogC,IAC5CI,GAAuB92B,IAAgB1J,WAAWqgC,IACxD/5B,GAAiBhmO,KAAK,CAClB8wD,KAAMovM,IAA8CD,GACpDE,cAAe/2B,GAAiB62B,QAAmBr7Q,EACnDw7Q,WAAYV,GAAWp0E,KAAQhB,EAAU+1E,eAAe7gQ,KAAM,OAAK5a,EACnEiwQ,WAAsB,IAAVn4P,IAAe2iQ,GAAkBW,GAAcZ,GAAyB/c,OAAcz9P,EAClGqhP,OAAkB,IAAVvpO,IAAe2iQ,GAAiB,QAA6C,OACrFn5B,QAAS,SAEjB,CACJ,CACAnkP,KAAK4oO,qBAAqBsmB,OAAO3mD,EAAU32D,SAAU5xI,KAAKy9Q,gBAAgB/nQ,QAC1E1V,KAAK4oO,qBAAqBypB,kBAAkBryP,KAAKy9Q,gBACrD,KACK,CAED,MAAMx/C,GAAkB11B,EAAUhC,QAClC,GAAI03B,GAAiB,CACjB,MAAM40B,GAAa50B,GAAgBlyB,iBAC7B05C,GAAaoN,GAAW3sD,mBAC9B,IAAIm4E,GACA91E,EAAUgB,OACV80E,GAAar+Q,KAAK0uQ,sBAAsBH,8BAA8B1wB,eACtE79O,KAAK0uQ,sBAAsBH,8BAA8B1wB,eAAiB,GAE9E,MAAMwJ,GAAiBwL,GAAW7V,eAAe,GAC3CkhC,GAAmBz4B,GAAW9H,WAAW39O,KAAK0uQ,sBAAsBH,+BACpE4P,GAAuB92B,IAAgB1J,WAAW39O,KAAK0uQ,sBAAsBH,+BAEnFtqB,GAAiBhmO,KAAK,CAClB8wD,KAAMovM,IAA8CD,GACpDE,cAAe/2B,GAAiB62B,QAAmBr7Q,EACnDw7Q,cACAvL,WAAYwK,GAL6B,IAAzBr/C,GAAgB7rN,MAAuC,IAAzB6rN,GAAgB7rN,KAKlBirQ,GAAyB/c,OAAcz9P,EACnFqhP,OAAQo5B,GAAiB,QAA6C,OACtEn5B,QAAS,SAEjB,MAEIF,GAAiBhmO,KAAK,KAE9B,CAwBA,GAvBAje,KAAKihM,kBAAkB,sBAAwB27E,EAAoBrsQ,MAAQ,KAAOqsQ,EAAoBrsQ,MAAQ,IAAM,IAAK,GACzHvQ,KAAK0uQ,sBAAsB1qB,qBAAuB,CAC9CzzO,OAAQqsQ,EAAoBrsQ,OAAS,OAAS,gBAC9C0zO,oBACAyvB,uBAAwB7xC,GAAuBk7C,GACzC,CACEhuM,KAAMmuM,IAA8CD,GACpD7J,gBAAiBmK,GAAkBv9Q,KAAK8yL,sBAAwB9yL,KAAK+gQ,wBAA0B/gQ,KAAKghQ,sBAAoBn+P,EACxHwwQ,YAAakK,GAAiB,QAA6C,OAC3EjK,aAAc,QACdC,kBAAmBhrE,EAAUgG,iCAAmCivE,GAAmBx9Q,KAAKutQ,wBAAqB1qQ,EAC7G2wQ,cAAgB2J,GAEV50E,EAAUgG,iCAAmCivE,GACzC,QACA,YAHJ36Q,EAIN4wQ,eAAiB0J,GAAqC,aAAZt6Q,QAE5CA,EACN8iQ,kBAAmB3lQ,KAAKm/L,iBAAiBgmE,WAAanlQ,KAAKm/L,gBAAgB2jE,cAAWjgQ,GAE1F7C,KAAKqnO,gBAAgBi9B,UAAUtkQ,KAAK0uQ,sBAAsB1qB,qBAAsBhkP,KAAKmnO,iBACrFnnO,KAAKinO,mBAAqBjnO,KAAKqoO,eAAegc,gBAAgBrkP,KAAK0uQ,sBAAsB1qB,sBACrFhkP,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,IAEbjoO,KAAKioO,QAAUjoO,KAAKioO,OAASjoO,KAAK6mO,yBAAyB,CAC5D,MAAM5I,GAAkB11B,EAAUhC,QAClC3lC,KAAOqzC,IAAI,CACP,UACIj0M,KAAKioO,OACL,0CACA20C,EAAoBrsQ,MACpB,8BACA0tN,GAAgBp7C,SAChB,WACAo7C,GAAgBxjM,MAChB,YACAwjM,GAAgBvjM,OAChB,oBACAmiP,EACJ,wBACA78Q,KAAK0uQ,sBAAsB1qB,sBAEnC,CAEJhkP,KAAKshM,+BACLthM,KAAKw2Q,2BACAsG,KAA2Br3C,GAAoBY,iBAAiBy2C,GAAuBvtP,WACxFvvB,KAAK66N,sBAAsB7lM,SAAU,EAE7C,CACAygP,qBAAqBoH,EAAgBvc,EAAYC,EAAYC,GACzDxgQ,KAAKynO,wBACDznO,KAAK8yL,uBACL9yL,KAAKo9Q,mCAET,MAAME,EAAiBT,GAAkBvc,EACnCid,EAAiBV,GAAkBtc,EACnCid,EAAmBX,GAAkBrc,EAC3CxgQ,KAAKsuQ,uBAAuBtqB,qBAAqBC,iBAAiB,GAAG6uB,WAAawK,EAAiBhd,OAAaz9P,EAChH7C,KAAKsuQ,uBAAuBtqB,qBAAqBC,iBAAiB,GAAGC,OAASo5B,EAAiB,QAA6C,OAC5It9Q,KAAKsuQ,uBAAuBtqB,qBAAqB0vB,uBAAuBN,gBAAkBmK,EACpFv9Q,KAAK8yL,sBACD9yL,KAAK+gQ,wBACL/gQ,KAAKghQ,sBACTn+P,EACN7C,KAAKsuQ,uBAAuBtqB,qBAAqB0vB,uBAAuBL,YAAckK,EAAiB,QAA6C,OACpJv9Q,KAAKsuQ,uBAAuBtqB,qBAAqB0vB,uBAAuBH,kBAAoBiK,EAAmBx9Q,KAAKutQ,wBAAqB1qQ,EACzI7C,KAAKsuQ,uBAAuBtqB,qBAAqB0vB,uBAAuBF,cAAiBxzQ,KAAK+yQ,gBAExFyK,EACI,QACA,YAHJ36Q,EAIN7C,KAAKsuQ,uBAAuBtqB,qBAAqB2hB,kBAAoB3lQ,KAAKm/L,iBAAiBgmE,WAAanlQ,KAAKm/L,gBAAgB2jE,cAAWjgQ,EACxI,MAAM07Q,GAAmBv+Q,KAAKsyQ,SAASkM,oBACvCx+Q,KAAKsuQ,uBAAuBG,2BAA2B,GAAGvxP,IAAIqhQ,IAE1Dv+Q,KAAKmiD,SAASirN,WACdpC,GAAoCz7O,OAASgvP,GAAiBhvP,OAC9DvvB,KAAKsuQ,uBAAuBtqB,qBAAqBC,iBAAiB,GAAGm6B,cAAgBG,GAAiB5gC,WAAWqtB,MAGjHC,GAAwB17O,OAASgvP,GAAiBhvP,OAClDvvB,KAAKsuQ,uBAAuBtqB,qBAAqBC,iBAAiB,GAAGl1K,KAAOwvM,GAAiB5gC,WAAWstB,KAExGjrQ,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,KAEbjoO,KAAKioO,QAAUjoO,KAAKioO,OAASjoO,KAAK6mO,0BACnCjmE,KAAOqzC,IAAI,CACP,UAAYj0M,KAAKioO,OAAS,sCAAwCjoO,KAAKyyQ,oBAAoBh4O,MAC3F,WAAaz6B,KAAKyyQ,oBAAoB/3O,OAAS,oBAAsBmiP,EACrE,wBACA78Q,KAAKsuQ,uBAAuBtqB,wBAIxChkP,KAAKihM,kBAAkB,YAAa,GACpCjhM,KAAKqnO,gBAAgBi9B,UAAUtkQ,KAAKsuQ,uBAAuBtqB,qBAAsBhkP,KAAKmnO,iBACtFnnO,KAAKinO,mBAAqBjnO,KAAKqoO,eAAegc,gBAAgBrkP,KAAKsuQ,uBAAuBtqB,sBAC1FhkP,KAAKgzQ,uBAAuBhzQ,KAAKsuQ,wBACjCtuQ,KAAKwyQ,gBAAgBxyQ,KAAKsuQ,wBAC1BtuQ,KAAKshM,+BACLthM,KAAKw2Q,yBACAx2Q,KAAKy+Q,mBACNz+Q,KAAK66N,sBAAsB7lM,SAAU,EAE7C,CAWA6zK,gBAAgBtC,EAASna,EAAY,EAAG8lC,EAAeC,EAAgBiP,EAAyBs9C,EAAW,EAAGC,EAAQ,GAClH,MAAM1vE,GAAkB1I,EAAQA,SAASwF,iBACrC/rM,KAAK0oM,qBACL1oM,KAAKosI,kBAAkBpsI,KAAK0oM,sBAG5B1oM,KAAKynO,wBAETznO,KAAK0oM,qBAAuBnC,EAC5B,MAAMs7B,GAAsB7hO,KAAK0oM,qBAAqB4F,qBACtDtuM,KAAK0uQ,sBAAsBD,2BAA2B,GAAKx/D,GAC3DjvM,KAAK0uQ,sBAAsB5kE,mBAAqB+3B,GAAsB4D,GAAoBU,wBAAuB,EAAItE,GAAoBtyM,aAAU1sB,EACnJ7C,KAAKgzQ,uBAAuBhzQ,KAAK0uQ,uBACjC1uQ,KAAKwyQ,gBAAgBxyQ,KAAK0uQ,uBAC1B1uQ,KAAK0uQ,sBAAsBH,8BAAgC,CACvDh/O,OAAQvvB,KAAKoyP,aACbpmB,UAAWzlC,EAAQgD,KAAO,KAAsD,KAChFq0C,cAAe,EACfC,eAAgBt3C,EAAQ+C,OAAiB,EAARq1E,EAAYvyF,EAAYuyF,EACzD7gC,aAAc4gC,EACdjhC,gBAAiB,EACjBC,OAAQ,OAEZ19O,KAAK0uQ,sBAAsBF,8BAAgC,CACvDj/O,OAAQvvB,KAAKggQ,oBACbh0B,UAAWnK,IAAuBA,GAAoBt4B,KAAO,KAAsD,KACnHq0C,cAAe,EACfC,eAAgBhc,GAAuBA,GAAoBv4B,OAAiB,EAARq1E,EAAYvyF,EAAYuyF,EAAS,EACrG7gC,aAAc,EACdL,gBAAiB,EACjBC,OAAQ,OAER19O,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,KAEbjoO,KAAKioO,QAAUjoO,KAAKioO,OAASjoO,KAAK6mO,0BACnCjmE,KAAOqzC,IAAI,CACP,UACIj0M,KAAKioO,OACL,iCACA1hC,EAAQh2L,MACR,8BACAg2L,EAAQA,SAAS1jB,SACjB,UACAuJ,EACA,cACAsyF,EACA,WACAC,EACJ,iCACA3+Q,KAAK0uQ,sBAAsBH,8BAC3B,iCACAvuQ,KAAK0uQ,sBAAsBF,iCAKnCxuQ,KAAKoyN,kBAAoBgP,EACzBphO,KAAKiyN,YAAYjyN,KAAKoyN,gBAAiBF,EAAeC,IAGjDD,IACDA,EAAgB3rB,EAAQ9rK,MACpBikP,IACAxsD,GAAgC30M,KAAKwsC,IAAI,EAAG20N,KAG/CvsD,IACDA,EAAiB5rB,EAAQ7rK,OACrBgkP,IACAvsD,GAAkC50M,KAAKwsC,IAAI,EAAG20N,KAGtD1+Q,KAAK+1Q,UAAU,EAAG,EAAG7jD,EAAeC,IAExCnyN,KAAK06N,YACT,CAOAtuF,kBAAkBm6D,EAASiC,GAAyB,EAAOC,GACvD,MAAMm2E,EAAU5+Q,KAAK0oM,qBACrB1oM,KAAK0oM,qBAAuB,KACxBD,GACAA,IAEJzoM,KAAK0oM,qBAAuBk2E,EAC5B5+Q,KAAKynO,wBACDlhC,EAAQA,SAASjiE,kBAAoBkkE,IAA2BjC,EAAQ+C,QACxEtpM,KAAKkoO,iBAAiB3hC,EAAQA,SAElCvmM,KAAK0oM,qBAAuB,KACxB1oM,KAAKgnO,oCACenkO,IAAhB7C,KAAKioO,SACLjoO,KAAKioO,OAAS,KAEbjoO,KAAKioO,QAAUjoO,KAAKioO,OAASjoO,KAAK6mO,0BACnCjmE,KAAOqzC,IAAI,UAAYj0M,KAAKioO,OAAS,mCAAqC1hC,EAAQh2L,MAAQ,8BAA+Bg2L,EAAQA,SAAS1jB,WAGlJ7iL,KAAKy9Q,gBAAkB,GACvBz9Q,KAAK4oO,qBAAqBsmB,OAAO,IACjClvP,KAAK4oO,qBAAqBypB,kBAAkBryP,KAAKy9Q,gBACrD,CAIAoB,4BACQ7+Q,KAAK0oM,qBACL1oM,KAAKosI,kBAAkBpsI,KAAK0oM,sBAEtB1oM,KAAKinO,oBACXjnO,KAAKy1Q,sBAAqB,GAE1Bz1Q,KAAKoyN,iBACLpyN,KAAKiyN,YAAYjyN,KAAKoyN,iBAE1BpyN,KAAK06N,YACT,CAOA83C,gBAAgBjnO,GACZ,MAAMhc,EAASgc,EAAQkjO,2BAA2B,IAAIl/O,QAAU,KAChEvvB,KAAK4oO,qBAAqBqmB,eAAe1/N,GACrCvvB,KAAKoyP,eAAiB7iO,IAG1BvvB,KAAKoyP,aAAe7iO,EACxB,CAIAyjP,uBAAuBznO,GACnBvrC,KAAK4oO,qBAAqBwmB,sBAAsB7jN,EAAQu+J,oBACpD9pM,KAAKggQ,sBAAwBz0N,EAAQu+J,qBAGzC9pM,KAAKggQ,oBAAsBz0N,EAAQu+J,mBACvC,CACAg1E,oBACI,CAEJC,qBACI,CAKJpuD,qCAAqC5gB,EAAiBp8I,GAGlDA,GACJ,CAIAi+J,eAAiB,CAEjBotD,uBACI,OAAO,CACX,CAIAh4E,uBACI,OAAO,CACX,CAWA1lD,SAASmxE,EAASC,EAAU,EAAGC,EAAOC,GAAc,EAAOC,EAAehG,EAASiG,EAAe,IAE1F9yN,KAAKksN,mBAAmBmvC,OAAS5oC,GAAWE,KAC5C3yN,KAAKksN,mBAAmBmvC,KAAO5oC,GAGnC,MAAM0+B,GAAYnxP,KAAK6yN,eAAiBA,GAAiB,EAAQ,EAAI,GACjE7yN,KAAKksN,mBAAmBilC,WAAaA,IAAYx+B,KACjD3yN,KAAKksN,mBAAmBilC,SAAWA,IAGvCnxP,KAAKkzN,WAAWR,GAChB1yN,KAAKqzN,gBAAgBP,GAErB,MAAMg+B,GAAYl+B,EAAe5yN,KAAK0oM,qBAAuB,EAAI,EAAK1oM,KAAK0oM,qBAAuB,EAAI,GAClG1oM,KAAKksN,mBAAmB4kC,YAAcA,IAAan+B,KACnD3yN,KAAKksN,mBAAmB4kC,UAAYA,IAExC9wP,KAAK66N,sBAAsBigC,gBAAkBjuC,CACjD,CACAoyD,wBAAwB3X,GACpB,MAAM4X,IAAwBl/Q,KAAK66N,sBAAsB7lM,SAAkBh1B,KAAKm2Q,wBAC1EgJ,IAAwBn/Q,KAAK86N,YAAY4N,YAAqB1oO,KAAKq2Q,wBACrEr2Q,KAAK41Q,uBACL51Q,KAAK81Q,eAAexO,GAEpBtnQ,KAAKg2Q,sBACLh2Q,KAAKi2Q,cAAc3O,GAEnB4X,GACAl/Q,KAAKo2Q,iBAAiB9O,GAEtB6X,GACAn/Q,KAAKu2Q,iBAAiBjP,EAE9B,CACA8X,MAAMC,EAAUrwD,EAAUn7I,EAAO30C,EAAOiwL,GACpC,MAAMkxC,EAAargQ,KAAKu1Q,wBAClBjO,EAAatnQ,KAAK8nO,YACxB9nO,KAAK01Q,cACL,MAAMrf,GAAwBr2P,KAAK+xN,eAAe/gC,iBAMlD,GALAhxL,KAAKo3Q,sBAAsBp3Q,KAAK0oM,qBAAuB1oM,KAAKkhQ,WAAalhQ,KAAKmhQ,eAAgB,EAAGn3B,GAAsB8C,kBACnHupB,GAAsBrlB,gBACtBqlB,GAAsBrlB,cAAcluK,SACpC9iE,KAAKo3Q,sBAAsB/gB,GAAsBrlB,cAAcrkE,YAAa,EAAGq9D,GAAsBQ,mBAErGxqO,KAAK2nO,mBAAmBhwF,KAExB,YADA33I,KAAK+nQ,mBAGJ/nQ,KAAK6nO,oBACL7nO,KAAKwxQ,oBAAoB7U,QAAQ38P,KAAK0xQ,wBAAwBhV,WAAa18P,KAAK0xQ,wBAAwB/U,SAAW38P,KAAK0xQ,wBAAwBpV,0BACjJt8P,KAAKwxQ,oBAAoB5T,gBAAa/6P,GAG1C,IAAI49P,GAAcJ,EAClB,IAFqBrgQ,KAAK6nO,mBAAqB7nO,KAAKwxQ,oBAAoB5T,YAErD59P,KAAK2nO,mBAAmB53N,OAAQ,CAE/C,GADA/P,KAAKi/Q,wBAAwB3X,IACxBtnQ,KAAK2nO,mBAAmB53N,OAOzB,OANA/P,KAAK6tQ,UAAUI,8BACXjuQ,KAAKwxQ,oBAAoB/T,oBACzBz9P,KAAKwxQ,oBAAoBzT,gBAAgB7+N,EAAOiwL,GAAkB,EAAGt7I,GAEzEyzL,EAAWhF,UAAUtiQ,KAAKwxQ,oBAAoB5T,iBAC9C59P,KAAK+nQ,kBAGTtH,GAAc6G,EAAW1E,iBAAiB5iQ,KAAK4oO,qBAAqB6mB,aAAczvP,KAAKggQ,oBAAqBhgQ,KAAK+sQ,oBACjHzF,EAAWnF,cACf,CACA,IAAIvS,GAAe,EACnB,GAAI5vP,KAAK0xQ,wBAAwBlV,wBAAyB,CACtD,IAAIvF,GAAS,EACb,QAASx5O,GAAI,EAAGA,GAAI44O,GAAsBv+C,wBAAwBuzB,aAAa31N,SAAU+H,GAAG,CACxF,MAAM8+N,GAAc8Z,GAAsBv+C,wBAAwBuzB,aAAa5tN,IACzE8oL,GAAUvmM,KAAK0xQ,wBAAwB9/H,SAAS2qG,KAAch2C,QAC9D+4E,GAAiB/4E,IAAWA,GAAQh3K,QAAU,IAAMg3K,GAAQh3K,QAAU,IACrD,IAAlBg3K,IAASn0L,OAAepS,KAAKorM,MAAMC,6BAAgCi0E,MACpE1vB,IAAgBqH,IAEpBA,KAAmB,CACvB,CACJ,CACAj3P,KAAK0xQ,wBAAwB9hB,aAAeA,GAC5C,MAAM3M,GAAWjjP,KAAK4oO,qBAAqB+mB,kBAAkB3gC,EAAUhvN,KAAK+xN,eAAgB/xN,KAAK+sQ,mBAAoBnd,IAC/GiO,GAAa79P,KAAK2rQ,iBAAiBxM,cAAc9I,GAAuBr2P,KAAKwxQ,oBAAqBxxQ,KAAK0xQ,yBACxG1xQ,KAAK2nO,mBAAmB53N,SACzB/P,KAAKi/Q,wBAAyBj/Q,KAAK6nO,kBAAiC,KAAby/B,GAClDtnQ,KAAK6nO,oBACN7nO,KAAK6tQ,UAAUG,iCACfvN,GAAczgQ,KAAK0hP,QAAQmf,0BAA0B,CACjDpR,aAAczvP,KAAK4oO,qBAAqB6mB,aACxCqR,mBAAoB9gQ,KAAKggQ,oBACzBv5B,YAAahB,GAAoBe,UAAUxmO,KAAK+sQ,wBAK5DtM,GAAYhc,YAAYxB,IAEpBjjP,KAAK8uQ,qBACLrO,GAAY8e,eAAev/Q,KAAK8uQ,oBAAoB5oE,mBAAoBlmM,KAAK8uQ,oBAAoB5hD,SAAW,SAAoD,SAAmD,GAEvN,MAAMxK,GAAgB1iN,KAAK4oO,qBAAqBlmB,cAChD,QAAS/nM,GAAQ,EAAGA,GAAQ+nM,GAAchtM,OAAQiF,KAAS,CACvD,MAAMozM,GAAerL,GAAc/nM,IAC7ByzD,GAAS2/I,GAAaC,gBACxB5/I,IACAqyL,GAAY+e,gBAAgB7kQ,GAAOyzD,GAAO83H,mBAAoB6nB,GAAayoC,kBAAoB,EAAIzoC,GAAa1/I,WAExH,CAEA,QAAS5wD,GAAI,EAAGA,GAAIogP,GAAWnoP,OAAQ+H,KACnCgjP,GAAY/b,aAAajnO,GAAGogP,GAAWpgP,KAG3C,MAAMgiQ,IAAiBz/Q,KAAK6nO,oBAAsB7nO,KAAK2nO,mBAAmB53N,OACtE0vQ,IAAiBz/Q,KAAKwxQ,oBAAoB/T,oBAC1Cz9P,KAAKwxQ,oBAAoBzT,gBAAgB7+N,EAAOiwL,GAAkB,EAAGt7I,GACpD,IAAbwrM,EACA5e,GAAYif,oBAAoB1/Q,KAAKwxQ,oBAAoB/T,mBAAoB,GAG7EgD,GAAYkf,aAAa3/Q,KAAKwxQ,oBAAoB/T,mBAAoB,IAGxD,IAAb4hB,EACL5e,GAAYmf,YAAY1gP,EAAOiwL,GAAkB,EAAGt7I,EAAO,EAAG,GAG9D4sL,GAAY9b,KAAKzlN,EAAOiwL,GAAkB,EAAGt7I,EAAO,GAEpD4rM,KACAz/Q,KAAKwxQ,oBAAoB5T,WAAa6C,GAAY1b,SAClDuiB,EAAWhF,UAAUtiQ,KAAKwxQ,oBAAoB5T,aAElD59P,KAAK+nQ,iBACT,CAQA94C,iBAAiBD,EAAU9gC,EAAYghC,EAAYC,EAAiB,GAChEnvN,KAAKo/Q,MAAM,EAAGpwD,EAAU9gC,EAAYghC,EAAYC,EACpD,CAQAI,eAAeP,EAAUQ,EAAeC,EAAeN,EAAiB,GACpEnvN,KAAK8uQ,oBAAsB,KAC3B9uQ,KAAKo/Q,MAAM,EAAGpwD,EAAUQ,EAAeC,EAAeN,EAC1D,CAOA1tK,UACIzhD,KAAK8sK,aAAc,EACnB9sK,KAAK6/Q,gBACL7/Q,KAAKqnO,gBAAgB5lL,UACrBzhD,KAAK6yQ,cAAcxsP,UACnBrmB,KAAKkzQ,eAAe7sP,UACpBrmB,KAAKuoO,eAAeugB,0BACpB9oP,KAAK2hP,eAAesJ,yBACpBjrP,KAAK0hP,QAAQr7N,WAAQ,EACrBy5P,OAAe9/Q,KAAMA,KAAK+vQ,kBAC1BlsQ,MAAM49C,SACV,CASAiqF,eAAesmF,GAAY,GACvB,OAAKA,GAAahyN,KAAK0oM,qBACZ1oM,KAAK0oM,qBAAqBjuK,MAE9Bz6B,KAAK+vQ,kBAAkBt1O,OAAS,CAC3C,CAMAkxG,gBAAgBqmF,GAAY,GACxB,OAAKA,GAAahyN,KAAK0oM,qBACZ1oM,KAAK0oM,qBAAqBhuK,OAE9B16B,KAAK+vQ,kBAAkBr1O,QAAU,CAC5C,CAQA0sK,WAEI,OAAO,CACX,CASA24E,sBAAsBv5E,GAElB,OADgB,IAAIwhE,GAAsBxhE,EAE9C,CAMAw5E,mBAAmBz5Q,EAAMggM,GAChBA,EAILvmM,KAAK46Q,oBAAoBr0Q,EAAMggM,GAH3BvmM,KAAK0xQ,wBAAwB7lI,WAAWtlI,EAAM,KAItD,CASA05Q,kBAAkB15Q,EAAMglO,GACpBvrO,KAAK0xQ,yBAAyB9U,WAAWr2P,EAAMglO,EACnD,CAWA20C,oBAAoBz6Q,EAAMq2N,EAAevrN,GACrC,OAAOvQ,KAAK42Q,cAAcnxQ,EAAsB,GAAhBq2N,EAAoBvrN,EACxD,CAQA4vQ,oBAAoB/xM,EAAQ3oE,EAAM4oE,EAAYzB,GAC1C,MAAMg9K,EAAax7K,EAInB,IAAIW,OAHelsE,IAAfwrE,IACAA,EAAa,QAGExrE,IAAf+pE,GAEImC,EADAtpE,aAAgB6X,MACT,IAAIuwJ,aAAapoK,GAEnBA,aAAgBqnE,YACd,IAAIjmC,WAAWphC,GAGfA,EAEXmnE,EAAamC,EAAKnC,YAIdmC,EADAtpE,aAAgB6X,MACT,IAAIuwJ,aAAapoK,GAEnBA,aAAgBqnE,YACd,IAAIjmC,WAAWphC,GAGfA,EAGfzF,KAAK2hP,eAAemI,WAAWF,EAAYv7K,EAAYU,EAAM,EAAGnC,EACpE,CACAwzM,mBAAmB33B,EAAWpvN,EAAM+0C,EAAQiyM,GACxC,OAAO,IAAI1oQ,QAAQ,CAACC,EAASiwD,KACzB,MAAMy4M,EAAiBA,KACnB73B,EAAUkC,SAAS,EAAsC,EAAGtxN,GAAMh5B,KAAK,KACnE,MAAMuqP,GAAkBnC,EAAUZ,eAAe,EAAGxuN,GACpD,IAAI5zB,GAAO2oE,EACX,QAAavrE,IAAT4C,GACAA,GAAO,IAAIohC,WAAWxN,GACtB5zB,GAAKyX,IAAI,IAAI2pB,WAAW+jN,SAEvB,CACD,MAAM21B,GAAO96Q,GAAK5F,YAClB4F,GAAO,IAAI86Q,GAAK96Q,GAAK2oE,QACrB3oE,GAAKyX,IAAI,IAAIqjQ,GAAK31B,IACtB,CACAnC,EAAUX,QACV9nP,KAAK2hP,eAAesG,cAAcQ,GAClC7wO,EAAQnS,GAAI,EACZkzE,KACI34E,KAAKgrP,WACLpzO,EAAQ,IAAIivB,YAGZghC,EAAO8Q,GAAM,EAEpB,EAED0nM,GACArgR,KAAK8gM,mBACLw/E,KAKAtgR,KAAK4kM,qBAAqB32D,QAAQ,KAC9BqyI,GAAe,EAClB,EAGb,CAUAE,sBAAsB3L,EAAe52L,EAAQ5kD,EAAM+0C,EAAQiyM,GAEvD,MAAM53B,EAAYzoP,KAAK2hP,eAAeiG,gBADtCvuN,EAAOA,GAAQw7O,EAAc7+E,SAC+BmsD,GAA4B7Y,QAAU6Y,GAA4B1Y,aAAS5mO,EAAW,6BAClJ,OAAA7C,KAAKqoO,eAAeq7B,mBAAmBmR,EAAc3uE,mBAAoBjoH,GAAU,EAAGwqK,EAAW,EAAGpvN,GAC7Fr5B,KAAKogR,mBAAmB33B,EAAWpvN,EAAM+0C,EAAQiyM,EAC5D,CAUAI,+BAA+BC,EAAgBziM,EAAQ5kD,EAAM+0C,EAAQiyM,GAEjE,MAAM53B,EAAYzoP,KAAK2hP,eAAeiG,iBADtCvuN,EAAOA,GAAQqnP,EAAe,GAAG1qF,UAC4B0qF,EAAehrQ,OAAQysO,GAA4B7Y,QAAU6Y,GAA4B1Y,aAAS5mO,EAAW,sCAC1K,QAAS4a,EAAI,EAAGA,EAAIijQ,EAAehrQ,OAAQ+H,IACvCzd,KAAKqoO,eAAeq7B,mBAAmBgd,EAAejjQ,GAAGyoL,mBAAoBjoH,GAAU,EAAGwqK,EAAWhrO,EAAI4b,EAAMA,GAEnH,OAAOr5B,KAAKogR,mBAAmB33B,EAAWpvN,EAAOqnP,EAAehrQ,OAAQ04D,EAAQiyM,EACpF,CAMAM,iBAAiBp6Q,EAAM6nE,GACnBpuE,KAAKwxQ,qBAAqB1T,UAAUv3P,EAAM6nE,GAAQu+F,aAAe,KACrE,EAGJy+F,GAAayG,uBAAyB,CAClClL,OAAS,GAAE52F,KAAMotB,oCACjBypE,SAAW,GAAE72F,KAAMotB,uCAEvBiuE,GAAaoF,YAAc,EC3hGpB,IAAMoQ,GAAoB,MAA1B,MAAMA,EACTzhB,cAAczvD,EAAUmxE,EAAiBlxE,GACrC,IAAKA,EACD,MAAM,IAAIrqL,MAAM,uHAEpB,GAAgC,IAA5BtlB,KAAKigQ,YAAYvqP,OAAc,CAC/B,MAAMorQ,EAAwB9gR,KAAK+gR,kBAAkBrrQ,OAAS,EAC9D,UAAW8uB,KAAOkrK,EAAU,CACxB,MAAMi7B,EAAUj7B,EAASlrK,GAAM9iC,GAAWiuM,EAAgBnrK,GAAMxpB,GAAQtZ,GAASsZ,MAAOL,GAAQjZ,GAASipO,QAASv4N,GAAOu4N,EAAQv4N,KAAMk4E,GAASqgJ,EAAQrgJ,OACxJ,IAAI02L,GAAsBr2C,EAAQq2C,oBAC9B/nN,GAAUj5D,KAAK+gR,kBAAkB/lQ,IAIrC,OAHKi+C,KACDA,GAAUj5D,KAAK+gR,kBAAkB/lQ,IAAS,IAEtC5I,IACJ,KAAK,EAAoC,CACrC,MAAMm5N,GAAUjhJ,QACYznF,IAAxBm+Q,IAAqCF,EACrC7nN,GAAQ+nN,IAAqBp1C,SAAW5rO,KAAKk/P,cAAcxS,WAAWnhB,KAGtEZ,EAAQq2C,oBAAsB/nN,GAAQvjD,OACtCujD,GAAQh7C,KAAK,CACT0sN,QAAShwN,GACTixN,SAAU5rO,KAAKk/P,cAAcxS,WAAWnhB,OAGhD,KACJ,CACA,KAAK,EACL,KAAK,EAAkD,CACnD,MAAMhlC,GAAUj8G,GACV2kH,GAAkB1I,GAAQnlC,SAAS2qC,sBACblpM,IAAxBm+Q,IAAqCF,GACxB,IAAT1uQ,KACA6mD,GAAQ+nN,MAAuBp1C,SAAW5rO,KAAKk/P,cAAcxS,WAAWnmD,GAAQnlC,WAEpFnoG,GAAQ+nN,IAAqBp1C,SAAW38B,GAAgBlgI,OAGxD47J,EAAQq2C,oBAAsB/nN,GAAQvjD,OACzB,IAATtD,IACA6mD,GAAQh7C,KAAK,CACT0sN,QAAShwN,GAAQ,EACjBixN,SAAU5rO,KAAKk/P,cAAcxS,WAAWnmD,GAAQnlC,YAGxDnoG,GAAQh7C,KAAK,CACT0sN,QAAShwN,GACTixN,SAAU38B,GAAgBlgI,QAGlC,KACJ,CACA,KAAK,EAA2C,CAC5C,MACMkgI,GADU3kH,GACgB82E,SAAS2qC,iBACM,EAA1CkD,GAAgBquC,yBACjB18E,KAAOt7I,MAAO,sCAHFglE,GAG+C/jF,kBAH/C+jF,GAGyEu4F,sCAAuC,SAEpGhgL,IAAxBm+Q,IAAqCF,EACrC7nN,GAAQ+nN,IAAqBp1C,SAAW38B,GAAgBsuC,gBAGxD5S,EAAQq2C,oBAAsB/nN,GAAQvjD,OACtCujD,GAAQh7C,KAAK,CACT0sN,QAAShwN,GACTixN,SAAU38B,GAAgBsuC,kBAGlC,KACJ,CACA,KAAK,EAA4C,CAE7C,MAAMpS,GADU7gJ,GACgB47G,wBACJrjM,IAAxBm+Q,IAAqCF,EACrC7nN,GAAQ+nN,IAAqBp1C,SAAW5rO,KAAK0hP,QAAQ4C,sBAAsB,CAAEr8M,OAAQkjM,MAGrFR,EAAQq2C,oBAAsB/nN,GAAQvjD,OACtCujD,GAAQh7C,KAAK,CACT0sN,QAAShwN,GACTixN,SAAU5rO,KAAK0hP,QAAQ4C,sBAAsB,CAAEr8M,OAAQkjM,QAG/D,KACJ,CACA,KAAK,EACL,KAAK,EACL,KAAK,EAAuC,CACxC,MAAMye,GAAsB,IAATx3O,GACbk4E,GAEIA,GAAOqiF,YAEXs0G,GAAer3B,GAAW1jD,wBACJrjM,IAAxBm+Q,IAAqCF,GACrC7nN,GAAQ+nN,IAAqBp1C,SAASx9J,OAAS6yM,GAC/ChoN,GAAQ+nN,IAAqBp1C,SAASvyM,KAAOuwN,GAAW5zD,WAGxD20C,EAAQq2C,oBAAsB/nN,GAAQvjD,OACtCujD,GAAQh7C,KAAK,CACT0sN,QAAShwN,GACTixN,SAAU,CACNx9J,OAAQ6yM,GACRhjM,OAAQ,EACR5kD,KAAMuwN,GAAW5zD,aAI7B,KACJ,EAER,CACA,QAASv4K,EAAI,EAAGA,EAAIzd,KAAK+gR,kBAAkBrrQ,SAAU+H,EAAG,CACpD,MAAMw7C,EAAUj5D,KAAK+gR,kBAAkBtjQ,GAKvCzd,KAAKigQ,YAAYxiP,GAJZw7C,EAIiBj5D,KAAK0hP,QAAQ8C,gBAAgB,CAC/CrB,OAAQ09B,EAAgBr9B,mBAAmB/lO,GAC3Cw7C,iBALsBp2D,CAO9B,CACA7C,KAAKigQ,YAAYvqP,OAAS1V,KAAK+gR,kBAAkBrrQ,MACrD,CACA,OAAO1V,KAAKigQ,WAChB,CACApgQ,YAAYqhP,EAAQ+d,GAChBj/P,KAAK0hP,QAAUR,EACflhP,KAAKk/P,cAAgBD,EACrBj/P,KAAK6iL,SAAW+9F,EAAqB1kB,WACrCl8P,KAAK+gR,kBAAoB,GACzB/gR,KAAKiyC,OACT,CACAA,QACIjyC,KAAKigQ,YAAc,EAEvB,EAEJ2gB,SAAqB1kB,SAAW,EA9InB0kB,CAAoB,KCD1B,MAAMM,GACT,WAAI7sF,GACA,OAAO,CACX,CACA,WAAIN,GACA,OAEW,CAIf,CACAl0L,YAAY6qI,GACR1qI,KAAKo1L,MAAQ,UACbp1L,KAAK0qI,OAASA,CAClB,CACAuqD,wBACI,OAAOj1L,KAAKk2M,SAASjkB,OACzB,CACAxwI,UAAY,ECfhB,MAAM0/N,GAAwB,CAAC,EAC/B/V,GAAa7mO,UAAUirK,qBAAuB,WAC1C,OAAO,IAAIoxE,GAAqB5gR,KAAK0hP,QAAS1hP,KAAKk/P,cACvD,EACAkM,GAAa7mO,UAAUgrK,oBAAsB,SAAUpf,EAAU5jK,GAE7D,MAAMhmB,GAD8B,iBAAb4pL,EAAwBA,EAAWA,EAASixF,cAAgBjxF,EAASC,eAAiBD,EAAS6B,gBAAkB7B,EAAS8B,SAC1H,IAAM1lK,EAAQ8jK,QACrC,GAAIrwL,KAAK4tQ,wBAAwBrnQ,GAAO,CACpC,MAAM6xQ,EAAiBp4Q,KAAK4tQ,wBAAwBrnQ,GACpD,OAAIgmB,EAAQ+jK,YAAc8nF,EAAerkF,WACrCxnK,EAAQ+jK,WAAW8nF,GAEhBA,CACX,CACA,MAAMr8P,EAAS,IAAIm0K,GAAcC,EAAU5jK,EAASvsB,KAAMuG,GAC1D,OAAAvG,KAAK4tQ,wBAAwBrnQ,GAAQwV,EAC9BA,CACX,EACAqvP,GAAa7mO,UAAU4wJ,6BAA+B,WAClD,OAAO,IAAI+rF,GAA6BlhR,KAC5C,EACAorQ,GAAa7mO,UAAUsrK,0BAA4B,WAC/C,UAAWrrK,KAAOxkC,KAAK4tQ,wBAEnB,IADe5tQ,KAAK4tQ,wBAAwBppO,GAChCuvJ,UACR,OAAO,EAGf,OAAO,CACX,EACAq3E,GAAa7mO,UAAUkrK,gBAAkB,SAAU1zL,EAAQy/J,EAASk0B,EAAU98L,EAAG4P,EAAI,EAAG0nD,EAAI,EAAGylI,EAAiB60D,GAC5GxkQ,KAAKqhR,iBAAiBtlQ,EAAQy/J,EAASk0B,EAAU98L,EAAG4P,EAAG0nD,OAAGrnE,OAAWA,EAAW8sM,EAAiB60D,EACrG,EACA4G,GAAa7mO,UAAUqrK,wBAA0B,SAAU7zL,EAAQy/J,EAASk0B,EAAUthI,EAAQ6P,EAAS,EAAG0xH,EAAiB60D,GACvHxkQ,KAAKqhR,iBAAiBtlQ,EAAQy/J,EAASk0B,OAAU7sM,OAAWA,OAAWA,EAAWurE,EAAQ6P,EAAQ0xH,EAAiB60D,EACvH,EACA4G,GAAa7mO,UAAU88O,iBAAmB,SAAUtlQ,EAAQy/J,EAASk0B,EAAU98L,EAAG4P,EAAG0nD,EAAGkE,EAAQ6P,EAAQ0xH,GAAiB60D,IACrHxkQ,KAAKynO,wBACL,MAAM65C,GAAkBvlQ,EAAOi1K,iBACzBuwF,GAAiB/lG,EAClB8lG,GAAgBT,kBACjBS,GAAgBT,gBAAkB7gR,KAAK0hP,QAAQ8/B,sBAAsB,CACjEr+B,OAAQ,OACRlxD,QAASqvF,GAAgBG,SAG7Bjd,IACAxkQ,KAAKqnO,gBAAgBi9B,UAAU6c,GAAuBnhR,KAAKmnO,iBAE/D,MAAMu6C,GAAc1hR,KAAKqoO,eAAes5C,iBAAiBR,IACzDO,GAAYj9B,YAAY68B,GAAgBT,iBACxC,MAAMhjB,GAAa0jB,GAAepiB,cAAczvD,EAAU4xE,GAAgBT,gBAAiBlxE,IAC3F,QAASlyL,GAAI,EAAGA,GAAIogP,GAAWnoP,SAAU+H,GAAG,CACxC,MAAM8mO,GAAYsZ,GAAWpgP,IACxB8mO,IAGLm9B,GAAYh9B,aAAajnO,GAAG8mO,GAChC,MACe1hP,IAAXurE,EACAszM,GAAYE,2BAA2BxzM,EAAO83H,mBAAoBjoH,GAG9DrrE,EAAI4P,EAAI0nD,EAAI,GACZw3M,GAAYG,mBAAmBjvQ,EAAG4P,EAAG0nD,GAG7Cw3M,GAAYvuL,MACRqxK,KACAxkQ,KAAKqnO,gBAAgBU,QAAQ/nO,KAAKmnO,gBAAiBq9B,IACnDxkQ,KAAKmnO,iBAAmB,EAEhC,EACAikC,GAAa7mO,UAAUurK,sBAAwB,WAC3C,UAAWvpM,KAAQvG,KAAK4tQ,wBAAyB,CAC7C,MAAMkU,EAA+B9hR,KAAK4tQ,wBAAwBrnQ,GAAM0tL,qBACxEj0L,KAAKw1L,8BAA8BssF,EACvC,CACA9hR,KAAK4tQ,wBAA0B,CAAC,CACpC,EACAxC,GAAa7mO,UAAU8wJ,+BAAiC,SAAU0a,EAAiB/a,EAAmBE,EAAsB7E,EAASiB,GACjI,MAAM+nF,EAAgBtpE,EAClB/vM,KAAK2mO,oBACL/lE,KAAOqzC,IAAI5jB,GACXzvB,KAAOqzC,IAAIjf,IAEfqkF,EAAcnjE,QAAU,CACpBjkB,QAAS+C,EACT+sF,WAAY7sF,GAEhBmkF,EAAcoI,MAAQzhR,KAAKgiR,sCAAsChtF,EAAmB3E,EAASiB,EACjG,EACA85E,GAAa7mO,UAAUmxJ,sBAAwB,SAAU35K,GACjD/b,KAAK4tQ,wBAAwB7xP,EAAO+0K,eAC7B9wL,KAAK4tQ,wBAAwB7xP,EAAO+0K,MAC3C9wL,KAAKw1L,8BAA8Bz5K,EAAOk4K,sBAElD,EACAm3E,GAAa7mO,UAAUyrK,uBAAyB,WAC5C,UAAWxrK,KAAOxkC,KAAK4tQ,wBAAyB,CAC5C,MAAM7xP,EAAS/b,KAAK4tQ,wBAAwBppO,GAC5CzoB,EAAOi1K,iBAAmB,KAC1Bj1K,EAAO40K,qBAAsB,EAC7B50K,EAAO+3K,gBACX,CACJ,EACAs3E,GAAa7mO,UAAU+wJ,mCAAqC,SAAUya,EAAiBp8I,GACnFo8I,EAAgB0xE,MAAMr+B,OAAO6+B,qBAAqB5hR,KAAM6F,IACpD,MAAMg8Q,EAAsB,CACxB3sF,UAAW,EACXprJ,SAAU,IAEd,UAAWwB,KAAWzlC,EAAKikC,SACF,UAAjBwB,EAAQv5B,MACR8vQ,EAAoB3sF,YAExB2sF,EAAoB/3O,SAASlsB,KAAK,CAC9B7L,KAAMu5B,EAAQv5B,KACdV,KAAMi6B,EAAQA,QACd2kD,KAAM3kD,EAAQolD,QACdP,OAAQ7kD,EAAQw2O,QAChBzsQ,OAAQi2B,EAAQj2B,OAChBuoE,OAAQtyC,EAAQsyC,SAGxBtqB,EAAOuuN,EAAmB,EAElC,EACA9W,GAAa7mO,UAAUixJ,8BAAgC,SAAUua,GAC/BA,GAE1BA,EAAgBtuJ,SAExB,EACA2pN,GAAa7mO,UAAUy9O,sCAAwC,SAAUpsF,EAAevF,EAASiB,GAC7F,OACIjB,EADAA,EACU,KAAOA,EAAQtrJ,MAAM,MAAM76B,KAAK,QAAU,KAG1C,GAEP,CACHk5O,OAAQpjP,KAAK0hP,QAAQqB,mBAAmB,CACpCpmL,KAAM0zH,EAAUuF,IAEpBtE,aAER,ECvJA85E,GAAa7mO,UAAU08J,gBAAkB,SAAUC,EAAWC,GACrDnhM,KAAKmiD,SAASwtN,wBAGE,IAAjBxuE,GAAuC,IAAjBA,GACD,IAAjBA,IACInhM,KAAK0oM,qBACL1oM,KAAKosI,kBAAkBpsI,KAAK0oM,sBAG5B1oM,KAAKynO,yBAGbznO,KAAKqoO,eAAe0b,eAAe7iD,IAE9BlhM,KAAKinO,oBACVjnO,KAAKinO,mBAAmB8c,eAAe7iD,GACvClhM,KAAK4uQ,sBAAsB3wP,KAAKijL,IAGhClhM,KAAK2uQ,sBAAsB1wP,KAAK,CAAC,OAAQijL,EAAWC,IAE5D,EACAiqE,GAAa7mO,UAAU68J,eAAiB,SAAUD,GACzCnhM,KAAKmiD,SAASwtN,wBAGE,IAAjBxuE,GAAuC,IAAjBA,GACD,IAAjBA,IACInhM,KAAK0oM,qBACL1oM,KAAKosI,kBAAkBpsI,KAAK0oM,sBAG5B1oM,KAAKynO,yBAGbznO,KAAKqoO,eAAeuc,iBAEf5kP,KAAKinO,oBACVjnO,KAAKinO,mBAAmB2d,gBACxB5kP,KAAK4uQ,sBAAsBppO,OAG3BxlC,KAAK2uQ,sBAAsB1wP,KAAK,CAAC,MAAO,KAAMkjL,IAEtD,EACAiqE,GAAa7mO,UAAU88J,mBAAqB,SAAU3vL,EAAMyvL,GACnDnhM,KAAKmiD,SAASwtN,wBAGE,IAAjBxuE,GAAuC,IAAjBA,GACD,IAAjBA,IACInhM,KAAK0oM,qBACL1oM,KAAKosI,kBAAkBpsI,KAAK0oM,sBAG5B1oM,KAAKynO,yBAGbznO,KAAKqoO,eAAe+5C,kBAAkB1wQ,IAEjC1R,KAAKinO,mBACVjnO,KAAKinO,mBAAmBm7C,kBAAkB1wQ,GAG1C1R,KAAK2uQ,sBAAsB1wP,KAAK,CAAC,SAAUvM,EAAMyvL,IAEzD,EACAiqE,GAAa7mO,UAAU+8J,2BAA6B,WAChD,GAA0C,IAAtCthM,KAAK4uQ,sBAAsBl5P,OAAc,CACzC,MAAM2sQ,EAAoBriR,KAAK4uQ,sBAAsBlxP,QACrD1d,KAAK4uQ,sBAAsBl5P,OAAS,EACpC,QAAS+H,EAAI,EAAGA,EAAI4kQ,EAAkB3sQ,SAAU+H,EAC5Czd,KAAKihM,gBAAgBohF,EAAkB5kQ,GAAI,EAEnD,CACA,QAASA,EAAI,EAAGA,EAAIzd,KAAK2uQ,sBAAsBj5P,SAAU+H,EAAG,CACxD,MAAOlX,EAAMq8I,EAAOu+C,GAAgBnhM,KAAK2uQ,sBAAsBlxP,GAC/D,OAAQlX,GACJ,IAAK,OACDvG,KAAKihM,gBAAgBr+C,EAAOu+C,GAC5B,MACJ,IAAK,MACDnhM,KAAKohM,eAAeD,GACpB,MACJ,IAAK,SACDnhM,KAAKqhM,mBAAmBz+C,EAAOu+C,GAG3C,CACAnhM,KAAK2uQ,sBAAsBj5P,OAAS,CACxC,kBCzFA01P,GAAa7mO,UAAUi3L,qBAAuB,SAAU/gM,EAAOC,EAAQ4pG,EAAiBuhD,GACpF,MAAM0gB,EAAU,IAAIqF,KAAgB5rM,KAAM,GAC1CumM,SAAQuG,UAAYryK,EACpB8rK,EAAQwG,WAAaryK,EACjB4pG,IACA7pG,EAAQz6B,KAAKk6Q,mBAAkBoI,MAAiB7nP,EAAOz6B,KAAKorM,MAAM2b,gBAAkBtsL,EACpFC,EAAS16B,KAAKk6Q,mBAAkBoI,MAAiB5nP,EAAQ16B,KAAKorM,MAAM2b,gBAAkBrsL,GAE1F6rK,EAAQ9rK,MAAQA,EAChB8rK,EAAQ7rK,OAASA,EACjB6rK,EAAQxS,SAAU,EAClBwS,EAAQjiE,gBAAkBA,EAC1BiiE,EAAQ1gB,aAAeA,EACvB7lL,KAAKm+N,0BAA0Bt4C,EAAc0gB,GAC7CvmM,KAAKitM,uBAAuBhvL,KAAKsoL,GAC7B9rK,GAASC,GACT16B,KAAKuoO,eAAeue,mCAAmCvgD,EAAS9rK,EAAOC,GAEpE6rK,CACX,EACA6kE,GAAa7mO,UAAU62L,qBAAuB,SAAU70B,EAASt+J,EAAQw+J,EAAS40B,GAAc,EAAO9rM,EAAQgzP,EAAkBh9B,GAC7H,IAAKh/C,EACD,OAEJ,MAAM9rK,EAAQwN,EAAOxN,MAAOC,GAASuN,EAAOvN,OAC5C,IAAIssN,GAAoBzgD,EAAQwF,iBAC3BxF,EAAQwF,kBAAkB7F,qBAC3B8gD,GAAoBhnP,KAAKuoO,eAAeue,mCAAmCvgD,EAAS9rK,EAAOC,KAE/F16B,KAAKuoO,eAAeke,cAAcx+M,EAAQs+J,EAAS9rK,EAAOC,GAAQ6rK,EAAQ9hE,MAAOuiH,GAAkBz3N,OAAQ,EAAG,EAAGk3K,EAAS40B,EAAa,EAAG,EAAGkqB,GACzIh/C,EAAQjiE,iBACRtkI,KAAKkoO,iBAAiB3hC,GAE1BA,EAAQi8E,sBAAwBv6O,EAChCs+J,EAAQk8E,aAAepnD,EACvB90B,EAAQE,QAAUA,IAAW,EAC7BF,EAAQxS,SAAU,CACtB,ECpCAq3E,GAAa7mO,UAAU+jK,sCAAwC,SAAUC,EAAWC,GAAyB,EAAOC,GAC5GA,GACAA,IAGJ,MAAMvpK,EADcqpK,EAAUI,aACJjzL,OAC1B1V,KAAKynO,wBACL,QAAShqN,EAAI,EAAGA,EAAIyhB,EAAOzhB,IAAK,CAC5B,MAAM8oL,EAAUgC,EAAU32D,SAASn0H,GAC/B8oL,EAAQjiE,kBAAoBkkE,IAA2BjC,EAAQ+C,SAAW/C,EAAQgD,MAClFvpM,KAAKkoO,iBAAiB3hC,EAE9B,CACAvmM,KAAK0oM,qBAAuB,KAC5B1oM,KAAKy9Q,gBAAkB,GACvBz9Q,KAAK4oO,qBAAqBsmB,OAAO,IACjClvP,KAAK4oO,qBAAqBypB,kBAAkBryP,KAAKy9Q,gBACrD,EACArS,GAAa7mO,UAAUklK,2BAA6B,SAAUpwK,EAAM9M,EAASm9K,GACzE,IAAIplE,GAAkB,EAClBqlE,GAAsB,EACtBC,GAAwB,EACxBC,GAAuB,EACvBC,EAAqB,GACrBC,GAAe,EACfC,GAAU,EAMVhgK,GAAQ,GACRigK,GAAgB,GAChBC,GAAiB,GACjBC,GAAU,GACVC,GAAU,GACVhe,GAAY,GACZie,GAAa,GACbC,GAAS,GACTC,GAAS,GACTuxB,GAAgB,GACpB,MAAMvzB,GAAYvoM,KAAKwqM,oCAAmC,GAAM,EAAOnxK,QACvDx2B,IAAZ0pB,IACA+3G,EAAkB/3G,EAAQ+3G,kBAAmB,EAC7CqlE,EAAsBp9K,EAAQo9K,sBAAuB,EACrDC,EAAwBr9K,EAAQq9K,wBAAyB,EACzDC,EAAuBt9K,EAAQs9K,uBAAwB,EACvDE,GAAex9K,EAAQw9K,cAAgB,EACvCD,EAAqBv9K,EAAQu9K,oBAAsB,GACnD9/J,GAAQzd,EAAQyd,OAASA,GACzBigK,GAAgB19K,EAAQ09K,eAAiBA,GACzCC,GAAiB39K,EAAQ29K,gBAAkBA,GAC3CC,GAAU59K,EAAQ49K,SAAWA,GAC7BC,GAAU79K,EAAQk+K,aAAeL,GACjChe,GAAY7/J,EAAQ6/J,WAAaA,GACjCie,GAAa99K,EAAQ89K,YAAcA,GACnCC,GAAS/9K,EAAQm+K,aAAeJ,GAChCC,GAASh+K,EAAQg+K,QAAUA,GAC3BuxB,GAAgBvvM,EAAQuvM,eAAiBA,GACzC9xB,GAAUz9K,EAAQy9K,SAAWA,IAEjC,MAAMvvK,GAAQpB,EAAKoB,OAASpB,EACtBqB,GAASrB,EAAKqB,QAAUrB,EACxBu4G,GAAW,GACXw2D,GAAc,GACds6E,GAAqB,GAC3Bn6E,GAAUh4L,MAAQgc,GAAShc,OAAS,2BACpCg4L,GAAUuC,qBAAuBnB,EACjCpB,GAAUwC,uBAAyBnB,EACnCrB,GAAUI,aAAeP,GACzBG,GAAUm1E,oBAAsBgF,GAChC,IAAI7gD,GAAsB,MACtBl4B,GAAuBC,GAAyBC,KAC3CA,IAIGC,EADAH,GAAuBC,EACF,GAEhBD,EACgB,GAGA,IAG7Bk4B,GAAsBt5B,GAAUoiE,0BAA0B,GAAG,EAAO/gE,EAAuB,EAAGE,EAAoBvB,GAAUh4L,MAAQ,kBAExI,MAAMoyQ,QAAkC9/Q,IAAZ0pB,GAA4C,iBAAZA,GAAwBA,EAAQq+O,gBAAkBtmI,EAC9G,QAAS7mH,GAAI,EAAGA,GAAIssL,GAActsL,KAAK,CACnC,IAAIooK,GAAeokB,GAAcxsL,KA/DT,EAgEpBrL,GAAO43B,GAAMvsB,KAjED,EAkEhB,MAAM8R,GAAS46K,GAAQ1sL,KA/DL,EAgEZytL,KAAiBhB,GAAezsL,KAA+Bzd,KAAKorM,MAAMK,mBAC1Ep+K,GAAS+8K,GAAQ3sL,KAhEL,KAiEZ0tL,GAAab,GAAO7sL,KAAM,EAC1BmlQ,GAAe9mD,GAAcr+M,IAenC,IAda,IAATrL,KAAepS,KAAKorM,MAAMC,6BAIZ,IAATj5L,KAAepS,KAAKorM,MAAME,mCAE/BzlB,GAAe,GAEN,IAATzzK,KAAepS,KAAKorM,MAAMI,eAC1Bp5L,GAAO,EACPwuJ,KAAOC,KAAK,6FAEhBunC,GAAYnqL,KAAKR,GAAI,GACrBilQ,GAAmBzkQ,KAAKyrL,EAAoBjsL,GAAI,EAAU,IAANA,GAAU,EAAI,IACnD,IAAX4P,GACA,SAEJ,MAAMk5K,GAAU,IAAIqF,KAAgB5rM,KAAM,GAE1C,OADA4xI,GAASn0H,IAAK8oL,GACNl5K,IACJ,KAAK,MACDk5K,GAAQ+C,QAAS,EACjB,MACJ,KAAK,MACD/C,GAAQgD,MAAO,EACfhD,GAAQqG,UAAYrG,GAAQ9hE,MAAQ0mE,GACpC,MACJ,KAAK,MACD5E,GAAQoG,WAAY,EACpBpG,GAAQqG,UAAYrG,GAAQ9hE,MAAQ0mE,GAG5C5E,GAAQuG,UAAYryK,GACpB8rK,GAAQwG,WAAaryK,GACrB6rK,GAAQ9rK,MAAQA,GAChB8rK,GAAQ7rK,OAASA,GACjB6rK,GAAQxS,SAAU,EAClBwS,GAAQyD,QAAU,EAClBzD,GAAQjiE,gBAAkBA,EAC1BiiE,GAAQ1gB,aAAeA,GACvB0gB,GAAQn0L,KAAOA,GACfm0L,GAAQklD,aAAe,EACvBllD,GAAQmlD,aAAe,EACvBnlD,GAAQyG,eAAiB9B,GACzB3E,GAAQh3K,OAASA,GACjBg3K,GAAQh2L,MAAQg6L,GAAO9sL,KAAM8qL,GAAUh4L,MAAQ,WAAakN,GAC5Dzd,KAAKitM,uBAAuBhvL,KAAKsoL,IAC7Bo8E,KAEAp8E,GAAQjiE,iBAAkB,GAE9BtkI,KAAKuoO,eAAeue,mCAAmCvgD,QAAS1jM,OAAWA,OAAWA,EAAW+/Q,IAAc,GAC3GD,KACAp8E,GAAQjiE,iBAAkB,EAElC,CACA,OAAIu9F,KACAA,GAAoBghD,sBACpBjxI,GAASm4D,IAAgB83B,GACzB7hO,KAAKitM,uBAAuBhvL,KAAK4jN,KAErCt5B,GAAUiG,YAAY58D,IACtB22D,GAAUkG,uBAAuBpE,GAAYje,IAC7CpsL,KAAK2uM,6CAA6CpG,GAAWyB,IACtDzB,EACX,EACA6iE,GAAa7mO,UAAUoqK,6CAA+C,SAAUpG,EAAWyB,GACvF,IAAKzB,IAAcA,EAAU32D,UAAY22D,EAAU32D,SAAS,GAAGo4D,UAAYA,EACvE,OAAOA,EAEX,MAAM9qK,EAAQqpK,EAAU32D,SAASl8H,OACjC,GAAc,IAAVwpB,EACA,OAAO,EAEX8qK,EAAUzsL,KAAKi/B,IAAIwtJ,EAAShqM,KAAKi/L,UAAU2P,gBAC3C,QAASnxL,EAAI,EAAGA,EAAIyhB,IAASzhB,EACT8qL,EAAU32D,SAASn0H,GACDsuL,kBACfoxC,mBAAmB50C,EAAUu1E,kBAAkBrgQ,IAGtE,MAAMqlQ,EAA4Bv6E,EAAU+F,uBAAyB/F,EAAU32D,SAAS1yG,EAAQ,GAChG,QAASzhB,EAAI,EAAGA,EAAIyhB,IAASzhB,EAAG,CAC5B,MAAM8oL,EAAUgC,EAAU32D,SAASn0H,GACnCzd,KAAKuoO,eAAe4e,kBAAkB5gD,EAASyD,GAAS,EAAOzB,EAAUu1E,kBAAkBrgQ,IAC3F8oL,EAAQyD,QAAUA,CACtB,CAIA,OAAIzB,EAAU+F,uBAAyBw0E,IACnC9iR,KAAKuoO,eAAe4e,kBAAkB5+C,EAAU+F,qBAAsBtE,GACtEzB,EAAU+F,qBAAqBtE,QAAUA,GAE7CzB,EAAU+G,SAAWtF,EACdA,CACX,EACAohE,GAAa7mO,UAAUsjK,gBAAkB,SAAUO,GACpB,IAAvBA,EAAY1yL,SAAiB1V,KAAK0oM,uBAGtC1oM,KAAKy9Q,gBAAkBr1E,EACnBpoM,KAAKinO,oBAELjnO,KAAK4oO,qBAAqBypB,kBAAkBjqD,GAKpD,EACAgjE,GAAa7mO,UAAU0jK,mBAAqB,SAAUC,GAClD,MAAM7rL,EAAS,GACf,QAASoB,EAAI,EAAGA,EAAIyqL,EAAcxyL,OAAQ+H,IAElCpB,EAAO4B,KADPiqL,EAAczqL,GACFA,EAAI,EAGJ,GAGpB,OAAOpB,CACX,EACA+uP,GAAa7mO,UAAUqjK,wBAA0B,WAC7C,EAEJwjE,GAAa7mO,UAAUwjK,uCAAyC,WAC5D,EC/NJqjE,GAAa7mO,UAAU+hK,mBAAqB,SAAUC,EAASC,EAAOC,GAClE,IAAKF,GAAWA,EAAQG,YACpB,YAEgC7jM,IAAhC7C,KAAKmnM,yBACLnnM,KAAKmnM,wBAAyB,GAElC,IAAI6/C,EAAoBzgD,EAAQwF,iBAIhC,GAHKxF,EAAQwF,kBAAkB7F,qBAC3B8gD,EAAoBhnP,KAAKuoO,eAAeue,mCAAmCvgD,IAZnF,SAASy1D,GAAkBz1D,GACvB,SAAOA,QAA0C1jM,IAA/B0jM,EAAQL,mBAC9B,CAYQ81D,CAAkBx1D,IAClB,GAAIA,EAAMzS,UAAW,CACjB,IACI/zL,KAAKuoO,eAAeob,mBAAmBn9C,EAAOD,EAASygD,EAAkBz3N,QAASk3K,GAC9EF,EAAQjiE,iBACRtkI,KAAKkoO,iBAAiB3hC,EAE9B,OAGI,CAEJA,EAAQxS,SAAU,CACtB,OAEKyS,GACLxmM,KAAK8+N,kBAAkBt4B,GAClBnmM,KAAM27Q,IACPh8Q,KAAKuoO,eAAeke,cAAcu1B,EAAQz1E,EAASA,EAAQ9rK,MAAO8rK,EAAQ7rK,OAAQ6rK,EAAQ9hE,MAAOuiH,EAAkBz3N,OAAQ,EAAG,GAAIk3K,GAAS,EAAO,EAAG,GACjJF,EAAQjiE,iBACRtkI,KAAKkoO,iBAAiB3hC,GAE1BA,EAAQxS,SAAU,IAEjBxrL,MAAM,KAGPg+L,EAAQxS,SAAU,GAG9B,mMChBAl1B,SAAc,gBAtBP,MAAMkkH,WAA6BC,KACtCnjR,YAAY+E,GACRf,MAAMe,GACN5E,KAAKkwF,UAAYlwF,KAAKijR,kBAAkB,YAAaC,OACrDljR,KAAKmjR,OAASnjR,KAAKojR,sBAAsB,UACzCpjR,KAAKqjR,QAAUrjR,KAAKojR,sBAAsB,UAC9C,CACAE,SAAS9nG,GACDx7K,KAAKkwF,UAAU9iE,SAASouJ,GACxBx7K,KAAKmjR,OAAOI,gBAAgB/nG,GAG5Bx7K,KAAKqjR,QAAQE,gBAAgB/nG,EAErC,CAIA71C,eACI,MAAO,eACX,8BCuBJk5B,SAAc,iBA3CP,MAAM2kH,WAA8BC,KACvC5jR,YAAY+E,GACRf,MAAMe,GACN5E,KAAKqyM,WAAaryM,KAAKijR,kBAAkB,aAAcS,OACvD1jR,KAAK2jR,SAAW3jR,KAAKijR,kBAAkB,WAAYS,OACnD1jR,KAAK4pD,KAAO5pD,KAAKijR,kBAAkB,OAAQS,OAC3C1jR,KAAK2a,MAAQ3a,KAAK4jR,mBAAmB,QAASF,OAC9C1jR,KAAK6jR,OAAS7jR,KAAKojR,sBAAsB,SAC7C,CACAU,aAAatoG,GACT,IAAI7gK,EAAQ6gK,EAAQuoG,sBAAsB/jR,KAAM,SAE5C2a,EADa6gK,EAAQuoG,sBAAsB/jR,KAAM,aAEjDA,KAAK2a,MAAMuR,SAASvR,EAAO6gK,GAC3Bx7K,KAAK6jR,OAAON,gBAAgB/nG,GAE5B7gK,GADa6gK,EAAQuoG,sBAAsB/jR,KAAM,OAAQ,GAEzDw7K,EAAQwoG,sBAAsBhkR,KAAM,QAAS2a,GAC7C3a,KAAK8jR,aAAatoG,IAGlBx7K,KAAKikR,IAAIV,gBAAgB/nG,EAEjC,CAIA8nG,SAAS9nG,GACL,MAAM7gK,EAAQ3a,KAAKqyM,WAAWjlL,SAASouJ,GACjCmoG,EAAW3jR,KAAK2jR,SAASv2P,SAASouJ,GAClC5xH,EAAO5pD,KAAK4pD,KAAKx8B,SAASouJ,GAChCA,EAAQwoG,sBAAsBhkR,KAAM,QAAS2a,GAC7C6gK,EAAQwoG,sBAAsBhkR,KAAM,WAAY2jR,GAChDnoG,EAAQwoG,sBAAsBhkR,KAAM,OAAQ4pD,GAC5C5pD,KAAK8jR,aAAatoG,EACtB,CAIA71C,eACI,MAAO,gBACX,KCXJk5B,SAAc,kBA9BP,MAAMqlH,WAA+BT,KACxC5jR,YAAY+E,GACRf,MAAMe,GACN5E,KAAKqT,MAAQrT,KAAKmkR,qBAAqB,SACvCnkR,KAAKy/J,SAAWz/J,KAAKijR,kBAAkB,WAAYS,OACnD1jR,KAAKokR,cAAgBpkR,KAAK4jR,mBAAmB,gBAAiBF,MAClE,CACAJ,SAAS9nG,EAAS6oG,GACd,MAAMC,EAAmB9oG,EAAQuoG,sBAAsB/jR,KAAM,oBACvDukR,EAAgBvkR,KAAKy/J,SAASryI,SAASouJ,GACvCgpG,EAAct9O,KAAKg4C,MACrBmlM,IAAkBrkR,KAAKqT,YAA8BxQ,IAArByhR,GAAkCE,EAAcF,EAAmBC,GAEnGvkR,KAAKokR,cAAcl4P,SAAS,EAAGsvJ,GAC/Bx7K,KAAKikR,IAAIV,gBAAgB/nG,GACzBA,EAAQwoG,sBAAsBhkR,KAAM,mBAAoBwkR,IAKxDxkR,KAAKokR,cAAcl4P,SADDq4P,GAAiBC,EAAcF,GACV9oG,EAE/C,CAIA71C,eACI,MAAO,iBACX,cC4DJk5B,SAAc,mBAvFP,MAAM4lH,WAAgCzB,KACzCnjR,YAIA+E,GACIf,MAAMe,GACN5E,KAAK4E,OAASA,EACd5E,KAAK0kR,qBAAuB,GAC5B1kR,KAAKqT,MAAQrT,KAAKmkR,qBAAqB,SACvCnkR,KAAK2kR,aAAe3kR,KAAK4jR,mBAAmB,eAAgBF,OAC5D1jR,KAAK4E,OAAOytM,gBAAwCxvM,IAA3B7C,KAAK4E,OAAOytM,WAA2BryM,KAAK4E,OAAOytM,WAAa,EACzFryM,KAAK4E,OAAOytM,WAAa90L,KAAKk/B,IAAI,EAAGl/B,KAAKi/B,IAAIx8C,KAAK4E,OAAOytM,WAAYryM,KAAK4E,OAAOggR,kBAAoB,IACtG5kR,KAAK6kR,SAAW,GAChB,QAASpnQ,EAAI,EAAGA,EAAIzd,KAAK4E,OAAOggR,kBAAmBnnQ,IAC/Czd,KAAK6kR,SAAS5mQ,KAAKje,KAAKojR,sBAAuB,MAAK3lQ,KAE5D,CACAqnQ,kBAAkBtpG,GACd,MAAMn/J,EAASrc,KAAK0kR,qBAEpB,GADAroQ,EAAO3G,OAAS,EACX8lK,EAAQupG,sBAAsB/kR,KAAM,iBAKpC,CACD,MAAMglR,EAAuBxpG,EAAQuoG,sBAAsB/jR,KAAM,iBACjE,QAASyd,EAAI,EAAGA,EAAIunQ,EAAqBtvQ,OAAQ+H,IAC7CpB,EAAO4B,KAAK+mQ,EAAqBvnQ,GAEzC,MATI,QAASA,EAAI,EAAGA,EAAIzd,KAAK4E,OAAOggR,kBAAmBnnQ,IAC/CpB,EAAO4B,KAAKR,GASpB,OAAOpB,CACX,CACA4oQ,eAAeN,EAAcO,GACzB,OAAIllR,KAAK4E,OAAOugR,SAELD,EADW3nQ,KAAKwrC,MAAMxrC,KAAKs/C,SAAWqoN,EAAcxvQ,SAIpDivQ,EAAe,CAE9B,CACArB,SAAS9nG,EAAS6oG,GACd,MAAMM,EAAenpG,EAAQuoG,sBAAsB/jR,KAAM,iBAAmBA,KAAK4E,OAAOytM,WAAa,EACrG,IAAI6yE,EAAgBllR,KAAK8kR,kBAAkBtpG,GAC3C,GAAI6oG,IAAkBrkR,KAAKqT,MAGvB,OAFAmoK,EAAQ4pG,yBAAyBplR,KAAM,qBACvCw7K,EAAQ4pG,yBAAyBplR,KAAM,iBAG3C,IAAIqlR,EAAYrlR,KAAKilR,eAAeN,EAAcO,GAClD,GAAIG,GAAarlR,KAAK4E,OAAOggR,mBAAqB5kR,KAAK4E,OAAO0gR,KAC1DD,EAAY,UAEPA,GAAarlR,KAAK4E,OAAOggR,oBAAsB5kR,KAAK4E,OAAO0gR,KAChE,OAGJ,GADAJ,EAAgBA,EAAcl+Q,OAAQyW,GAAMA,IAAM4nQ,GACrB,IAAzBH,EAAcxvQ,OACd,QAAS+H,EAAI,EAAGA,EAAIzd,KAAK4E,OAAOggR,kBAAmBnnQ,IAC/CynQ,EAAcjnQ,KAAKR,GAG3B+9J,EAAQwoG,sBAAsBhkR,KAAM,gBAAiBklR,GACrD1pG,EAAQwoG,sBAAsBhkR,KAAM,eAAgBqlR,GACpDrlR,KAAK2kR,aAAaz4P,SAASm5P,EAAW7pG,GACtCx7K,KAAK6kR,SAASQ,GAAW9B,gBAAgB/nG,EAC7C,CAIA71C,eACI,MAAO,kBACX,CAKAP,UAAUC,GACNxhI,MAAMuhI,UAAUC,GAChBA,EAAoBzgI,OAAOggR,kBAAoB5kR,KAAK4E,OAAOggR,kBAC3Dv/I,EAAoBzgI,OAAOugR,SAAWnlR,KAAK4E,OAAOugR,SAClD9/I,EAAoBzgI,OAAO0gR,KAAOtlR,KAAK4E,OAAO0gR,KAC9CjgJ,EAAoBzgI,OAAOytM,WAAaryM,KAAK4E,OAAOytM,UACxD,KC9CJxzC,SAAc,gBAxCP,MAAM0mH,WAA6BvC,KACtCnjR,YAIA+E,GACIf,MAAMe,GACN5E,KAAK4E,OAASA,EACd5E,KAAKi3L,UAAYj3L,KAAKijR,kBAAkB,YAAauC,OACrDxlR,KAAKylR,YAAc,GACnB,QAAShoQ,EAAI,EAAGA,GAAKzd,KAAK4E,OAAO8gR,MAAMhwQ,OAAQ+H,IAC3Czd,KAAKylR,YAAYxnQ,KAAKje,KAAKojR,sBAAuB,MAAK3lQ,KAE/D,CACA6lQ,SAAS9nG,EAASmqG,GACd,MAAMC,EAAiB5lR,KAAKi3L,UAAU7pK,SAASouJ,GAC/C,QAAS/9J,EAAI,EAAGA,EAAIzd,KAAK4E,OAAO8gR,MAAMhwQ,OAAQ+H,IAC1C,GAAImoQ,IAAmB5lR,KAAK4E,OAAO8gR,MAAMjoQ,GAErC,YADAzd,KAAKylR,YAAYhoQ,GAAG8lQ,gBAAgB/nG,GAK5Cx7K,KAAKylR,YAAYzlR,KAAKylR,YAAY/vQ,OAAS,GAAG6tQ,gBAAgB/nG,EAClE,CAIA71C,eACI,MAAO,eACX,CAKAP,UAAUC,GACNxhI,MAAMuhI,UAAUC,GAChBA,EAAoBqgJ,MAAQ1lR,KAAK4E,OAAO8gR,KAC5C,KCmCJ7mH,SAAc,iBA1EP,MAAMgnH,WAA8BpC,KACvC5jR,YAIA+E,GACIf,MAAMe,GACN5E,KAAK4E,OAASA,EAId5E,KAAK8lR,QAAU,GACf9lR,KAAK+lR,uBAAyB,GAC9B/lR,KAAKqT,MAAQrT,KAAKmkR,qBAAqB,SAEvC,QAAS1mQ,EAAI,EAAGA,EAAIzd,KAAK4E,OAAOohR,iBAAkBvoQ,IAC9Czd,KAAK8lR,QAAQ7nQ,KAAKje,KAAKmkR,qBAAsB,KAAI1mQ,KAEzD,CACAwoQ,2BAA2BzqG,GACvB,MAAM0qG,EAAkBlmR,KAAK+lR,uBAE7B,GADAG,EAAgBxwQ,OAAS,EACpB8lK,EAAQupG,sBAAsB/kR,KAAM,mBAKpC,CACD,MAAMmmR,EAAyB3qG,EAAQuoG,sBAAsB/jR,KAAM,mBACnE,QAASyd,EAAI,EAAGA,EAAI0oQ,EAAuBzwQ,OAAQ+H,IAC/CyoQ,EAAgBjoQ,KAAKkoQ,EAAuB1oQ,GAEpD,MATI,QAASA,EAAI,EAAGA,EAAIzd,KAAK4E,OAAOohR,iBAAkBvoQ,IAC9CyoQ,EAAgBjoQ,MAAK,GAS7B,OAAOioQ,CACX,CACA5C,SAAS9nG,EAAS6oG,GACd,MAAM6B,EAAkBlmR,KAAKimR,2BAA2BzqG,GACxD,GAAI6oG,IAAkBrkR,KAAKqT,MACvB,QAASoK,EAAI,EAAGA,EAAIzd,KAAK4E,OAAOohR,iBAAkBvoQ,IAC9CyoQ,EAAgBzoQ,IAAK,UAGpB4mQ,IAAkBrkR,KAAKomR,GAC5BF,EAAgB,IAAK,MAEpB,CACD,MAAMvrQ,EAAQ3a,KAAK8lR,QAAQhhP,QAAQu/O,GAC/B1pQ,GAAS,IACTurQ,EAAgBvrQ,EAAQ,IAAK,EAErC,CAEA,GADA6gK,EAAQwoG,sBAAsBhkR,KAAM,kBAAmBkmR,EAAgBxoQ,SACnEwoQ,EAAgBrrO,MAAOtoC,GAAUA,GAAQ,CACzCvS,KAAKikR,IAAIV,gBAAgB/nG,GACzB,QAAS/9J,EAAI,EAAGA,EAAIzd,KAAK4E,OAAOohR,iBAAkBvoQ,IAC9CyoQ,EAAgBzoQ,IAAK,CAE7B,CACJ,CAIAkoH,eACI,MAAO,gBACX,CAKAP,UAAUC,GACNxhI,MAAMuhI,UAAUC,GAChBA,EAAoBzgI,OAAOohR,iBAAmBhmR,KAAK4E,OAAOohR,gBAC9D,KC/CJnnH,SAAc,iBAxBP,MAAMwnH,WAA8B5C,KACvC5jR,YAAY+E,GACRf,MAAMe,GACN5E,KAAKk/B,MAAQl/B,KAAK4jR,mBAAmB,QAASF,OAC9C1jR,KAAKqT,MAAQrT,KAAKmkR,qBAAqB,QAC3C,CACAb,SAAS9nG,EAAS6oG,GACd,GAAIA,IAAkBrkR,KAAKqT,MAGvB,OAFAmoK,EAAQwoG,sBAAsBhkR,KAAM,QAAS,QAC7CA,KAAKk/B,MAAMhT,SAAS,EAAGsvJ,GAG3B,MAAM8qG,GAAc9qG,EAAQuoG,sBAAsB/jR,KAAM,UAAY,GAAK,EACzEw7K,EAAQwoG,sBAAsBhkR,KAAM,QAASsmR,GAC7CtmR,KAAKk/B,MAAMhT,SAASo6P,EAAY9qG,GAChCx7K,KAAKikR,IAAIV,gBAAgB/nG,EAC7B,CAIA71C,eACI,MAAO,gBACX,cCOJk5B,SAAc,kBA7BP,MAAM0nH,WAA+B9C,KACxC5jR,YAAY+E,GACRf,MAAMe,GACN5E,KAAKk/B,MAAQl/B,KAAKijR,kBAAkB,QAASS,OAC7C1jR,KAAKqT,MAAQrT,KAAKmkR,qBAAqB,SACvCnkR,KAAKwmR,aAAexmR,KAAK4jR,mBAAmB,eAAgBF,MAChE,CACAJ,SAAS9nG,EAAS6oG,GACd,GAAIA,IAAkBrkR,KAAKqT,MAEvB,YADAmoK,EAAQwoG,sBAAsBhkR,KAAM,gBAAiB,GAGzD,MAAMk/B,EAAQl/B,KAAKk/B,MAAM9R,SAASouJ,GAE5BirG,EADejrG,EAAQuoG,sBAAsB/jR,KAAM,gBAAiB,GAC1C,EAChCA,KAAKwmR,aAAat6P,SAASu6P,EAAUjrG,GACrCA,EAAQwoG,sBAAsBhkR,KAAM,gBAAiBymR,GACjDA,GAAYvnP,IACZl/B,KAAKikR,IAAIV,gBAAgB/nG,GACzBA,EAAQwoG,sBAAsBhkR,KAAM,gBAAiB,GAE7D,CAIA2lI,eACI,MAAO,iBACX,KCDJk5B,SAAc,kBA1BP,MAAM6nH,WAA+B1D,KACxCnjR,YAAY+E,GACRf,MAAMe,GACN5E,KAAK2mR,KAAO3mR,KAAKojR,sBAAsB,QACvCpjR,KAAK4mR,MAAQ5mR,KAAKojR,sBAAsB,SACxCpjR,KAAK6mR,KAAO7mR,KAAK4jR,mBAAmB,OAAQV,MAChD,CACAI,SAAS9nG,EAASmqG,GACd,IAAIpzQ,EAAQipK,EAAQuoG,sBAAsB/jR,KAAM,SAAS,GACzDuS,GAASA,EACTipK,EAAQwoG,sBAAsBhkR,KAAM,QAASuS,GAC7CvS,KAAK6mR,KAAK36P,SAAS3Z,EAAOipK,GACtBjpK,EACAvS,KAAK2mR,KAAKpD,gBAAgB/nG,GAG1Bx7K,KAAK4mR,MAAMrD,gBAAgB/nG,EAEnC,CAIA71C,eACI,MAAO,iBACX,yCCvBG,IAAMmhJ,GAA2B,MAAjC,MAAMA,UAAoCC,KAC7ClnR,YAIA+E,GACIf,MAAMe,GACN5E,KAAK4E,OAASA,EACd5E,KAAKgnR,wBAA0B,IAAIC,KAAgCriR,EAAOsiR,WAAYlnR,MACtFA,KAAKmnR,2BAA6B,IAAIF,KAAgCriR,EAAOwiR,cAAepnR,MAC5FA,KAAK6xK,MAAQ7xK,KAAKijR,kBAAkB,QAASS,OAC7C1jR,KAAKslR,KAAOtlR,KAAKijR,kBAAkB,OAAQC,OAC3CljR,KAAKsV,KAAOtV,KAAKijR,kBAAkB,OAAQS,OAC3C1jR,KAAK6vB,GAAK7vB,KAAKijR,kBAAkB,KAAMS,OACvC1jR,KAAKqnR,kBAAoBrnR,KAAK4jR,mBAAmB,oBAAqB4B,MAC1E,CAKA8B,qBAAqB9rG,GACjB,MAAM+rG,EAAiBvnR,KAAKgnR,wBAAwBQ,YAAYxnR,KAAK4E,OAAO6iR,cAAejsG,GACrFksG,EAAcH,EAAerhR,KAAKyhR,UAAUJ,EAAej9L,QAC3Ds9L,EAAoB5nR,KAAKmnR,2BAA2BK,YAAYxnR,KAAK4E,OAAO6iR,cAAejsG,GAC3FqsG,EAAiBD,EAAkB1hR,KAAKpD,IAAI8kR,EAAkBt9L,QACpE,IAAKo9L,IAAgBG,EACjB,MAAM,IAAIviQ,MAAM,qDAEpB,MAAMwiQ,EAAqBtsG,EAAQuoG,sBAAsB/jR,KAAM,uBAAyB,GAElF+nR,GAAqB/nR,KAAKqnR,kBAAkBj6P,SAASouJ,GAC3D,GAAIusG,IAAsBA,GAAmBC,OACzCD,GAAmBE,cAElB,CAED,MAAMC,GADQ1sG,EAAQv0G,cAAcq3C,MACXsvB,qBAAqB85I,EAAa,CAACG,GAAiB7nR,KAAKsV,KAAK8X,SAASouJ,GAAUx7K,KAAK6vB,GAAGzC,SAASouJ,GAAUx7K,KAAKslR,KAAKl4P,SAASouJ,GAAUx7K,KAAK6xK,MAAMzkJ,SAASouJ,GAAU,IAAMx7K,KAAKmoR,gBAAgBD,GAAY1sG,IACvOx7K,KAAKqnR,kBAAkBn7P,SAASg8P,GAAY1sG,GAC5CssG,EAAmB7pQ,KAAKiqQ,GAC5B,CACA1sG,EAAQwoG,sBAAsBhkR,KAAM,qBAAsB8nR,EAC9D,CACAxE,SAAS9nG,GACLx7K,KAAKooR,mBAAmB5sG,GACxBx7K,KAAKikR,IAAIV,gBAAgB/nG,EAC7B,CACA2sG,gBAAgBD,EAAY1sG,GACxB,MAAM6sG,EAAe7sG,EAAQuoG,sBAAsB/jR,KAAM,uBAAyB,GAC5E2a,EAAQ0tQ,EAAavjP,QAAQojP,IACrB,IAAVvtQ,GACA0tQ,EAAa9sQ,OAAOZ,EAAO,GAE/B6gK,EAAQ8sG,oBAAoBtoR,MAC5BA,KAAK6rE,KAAK03M,gBAAgB/nG,EAC9B,CAKA+sG,oBAAoB/sG,GAChB,MAAM6sG,EAAe7sG,EAAQuoG,sBAAsB/jR,KAAM,uBAAyB,GAClF,UAAWwoR,KAAQH,EACfG,EAAKx6H,OAETwtB,EAAQ4pG,yBAAyBplR,KAAM,qBAC3C,CAIA2lI,eACI,OAAOmhJ,EAA4B2B,SACvC,CAKArjJ,UAAUC,EAAsB,CAAC,GAC7BxhI,MAAMuhI,UAAUC,GAChBA,EAAoBzgI,OAAOsiR,WAAalnR,KAAK4E,OAAOsiR,WACpD7hJ,EAAoBzgI,OAAOwiR,cAAgBpnR,KAAK4E,OAAOwiR,aAC3D,EAKJN,SAA4B2B,UAAY,uBArF3B3B,CAA2B,MAsFxCjoH,SAAcioH,GAA4B2B,UAAW3B,KCtErDjoH,SAAc,uBAjBP,MAAM6pH,WAAoCjF,KAC7C5jR,YAAY+E,GACRf,MAAMe,GACN5E,KAAK2oR,gBAAkB3oR,KAAKijR,kBAAkB,kBAAmBuC,MACrE,CACAlC,SAAS9nG,GACwBx7K,KAAK2oR,gBAAgBv7P,SAASouJ,GACtCxtB,OACrBhuJ,KAAKikR,IAAIV,gBAAgB/nG,EAC7B,CAIA71C,eACI,MAAO,sBACX,KCEJk5B,SAAc,wBAjBP,MAAM+pH,WAAqCnF,KAC9C5jR,YAAY+E,GACRf,MAAMe,GACN5E,KAAK6oR,iBAAmB7oR,KAAKijR,kBAAkB,mBAAoBuC,MACvE,CACAlC,SAAS9nG,GACyBx7K,KAAK6oR,iBAAiBz7P,SAASouJ,GACvC3qC,QACtB7wI,KAAKikR,IAAIV,gBAAgB/nG,EAC7B,CAIA71C,eACI,MAAO,uBACX,KCOJk5B,SAAc,yBAtBP,MAAMiqH,WAAsCC,KAC/ClpR,YAAY+E,GACRf,MAAMe,GACN5E,KAAKkwF,UAAYlwF,KAAKijR,kBAAkB,YAAaC,OACrDljR,KAAKgpR,UAAYhpR,KAAKijR,kBAAkB,YAAauC,OACrDxlR,KAAKipR,WAAajpR,KAAKijR,kBAAkB,aAAcuC,OACvDxlR,KAAKm/B,OAASn/B,KAAK4jR,mBAAmB,SAAU4B,MACpD,CAIA0D,eAAe1tG,GACXx7K,KAAKm/B,OAAOjT,SAASlsB,KAAKkwF,UAAU9iE,SAASouJ,GAAWx7K,KAAKgpR,UAAU57P,SAASouJ,GAAWx7K,KAAKipR,WAAW77P,SAASouJ,GAAUA,EAClI,CAKA71C,eACI,MAAO,wBACX,cCkBJk5B,SAAc,6BArCP,MAAMsqH,WAA0CJ,KAKnDlpR,YAAY+E,GACRf,MAAMe,GACN5E,KAAKopR,aAAeppR,KAAKijR,kBAAkB,eAAgBuC,OAC3DxlR,KAAKqpR,kBAAoBrpR,KAAKijR,kBAAkB,oBAAqBuC,OACrExlR,KAAKspR,iBAAmBtpR,KAAKijR,kBAAkB,mBAAoBsG,OACnEvpR,KAAKwpR,kBAAoBxpR,KAAK4jR,mBAAmB,oBAAqB2F,MAC1E,CACAL,eAAe5W,GACX,MAAMmX,EAAoBzpR,KAAKopR,aAAah8P,SAASklP,GAC/CoX,EAAyB1pR,KAAKqpR,kBAAkBj8P,SAASklP,GACzDqX,EAAwB3pR,KAAKspR,iBAAiBl8P,SAASklP,GAEvDsX,EAAcH,EAAkB9yI,iBAEhCkzI,EAAmBH,EAAuB/yI,iBAC1CmzI,EAA0BtlG,KAAW/jB,OAAO,GAAGkF,SAASkkH,GAE9DC,EAAwBhzI,SACxB,MAAMizI,GAAsBvlG,KAAW/jB,OAAO,GAE9CqpH,EAAwBviH,cAAcqiH,EAAaG,IACnD,MAAMC,GAAyBhqR,KAAKwpR,kBAAkBp8P,SAASklP,GAC/D/xG,KAAQ6F,0BAA0BujH,EAAuBI,GAAqBC,GAClF,CAKArkJ,eACI,MAAO,4BACX,qBCLJk5B,SAAc,kBA9BP,MAAMorH,WAA+BlB,KACxClpR,YAIA+E,GACIf,MAAMe,GACN5E,KAAK4E,OAASA,EACd5E,KAAKm/B,OAASn/B,KAAK4jR,mBAAmB,YAAUsG,OAAqBtlR,EAAO2N,OAChF,CACA22Q,eAAe1tG,GACXx7K,KAAKm/B,OAAOjT,SAASlsB,KAAK4E,OAAO2N,MAAOipK,EAC5C,CAKA71C,eACI,MAAO,iBACX,CAMAP,UAAUC,EAAsB,CAAC,EAAG8kJ,EAAyBC,OACzDvmR,MAAMuhI,UAAUC,GAChB8kJ,EAAuB,QAASnqR,KAAK4E,OAAO2N,MAAO8yH,EAAoBzgI,OAC3E,wCChCJ,MAAMylR,GAAS,UACTC,GAAM,WACNC,GAAK,UACLC,GAAM,YAUZ3rH,SAAe,GAAEwrH,KAASC,KALnB,MAAMG,WAA+BC,KACxC7qR,YAAY+E,GACRf,MAAMq/Q,MAAiBA,MAAiBA,MAAiB,CAAChtI,EAAM+8E,IAAU/8E,GAAQ+8E,EAAQ,GAAEo3D,KAASC,KAAO1lR,EAChH,KAYJi6J,SAAe,GAAEwrH,KAASE,KALnB,MAAMI,WAA8BD,KACvC7qR,YAAY+E,GACRf,MAAMq/Q,MAAiBA,MAAiBA,MAAiB,CAAChtI,EAAM+8E,IAAU/8E,GAAQ+8E,EAAQ,GAAEo3D,KAASE,KAAM3lR,EAC/G,KAYJi6J,SAAe,GAAEwrH,KAASG,KALnB,MAAMI,WAA+BC,KACxChrR,YAAY+E,GACRf,MAAMq/Q,MAAiBA,MAAkB3wQ,IAAWA,EAAQ,GAAE83Q,KAASG,KAAO5lR,EAClF,wFC9BG,MAAMkmR,WAA4CC,KACrDh7Q,SACI,QAA2BlN,IAAvB7C,KAAKgrR,cACL,MAAM,IAAI1lQ,MAAO,wCAAuCtlB,KAAKuG,oCAEjE,MAAM0kR,EAAOjrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,MACjD0kR,EAAKG,gBCR+B,GDSpCH,EAAKI,eAAgB7vG,IACZA,EAAQ8vG,aAAatrR,KAAKgrR,gBAC3BxvG,EAAQ+/C,YAAYv7N,KAAKgrR,cAAa,GAG9C,MAAMO,EAAevrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,KAAO,aAAa,GAC7EglR,EAAaH,gBCfuB,GDgBpCG,EAAaF,eAAgB/Y,MACjC,EEbG,MAAMkZ,WAAmCC,KAI5C,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CAOA9rR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK6rR,WAAY,EACjB7rR,KAAK8rR,cAAc,UAAWC,MAAyC5rD,SACvEngO,KAAKumM,QAAQylF,gCAAgCD,MAAyCE,YACtFjsR,KAAK2rR,gBAAkB,IAAIb,GAAoCvkR,EAAMqlR,EACzE,CAKAjmJ,eACI,MAAO,4BACX,CAIA,WAAI4gE,GACA,OAAOvmM,KAAKksR,QAAQ,EACxB,CACAC,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBjE,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjC,MAAM6lR,EAAwBpsR,KAAKumM,QAAQ8lF,eACvCD,IACApsR,KAAK2rR,gBAAgBX,cAAgBoB,EAAsB75Q,MAEnE,GAEJssJ,SAAc,qCAAsC2sH,wDCnC7C,MAAMc,GAIT,kBAAI91E,GACA,OAAOx2M,KAAKmxL,eAChB,CACAo7F,mBAAmBhmF,GACf,YAAsC1jM,IAA/B0jM,EAAQ47B,kBACnB,CAMAtiO,YAAY6qI,EAAQuwG,GAAiB,GAEjCj7O,KAAKmxL,gBAAkB,EACvBnxL,KAAKwsR,gBAAiB,EACtBxsR,KAAKqxK,QAAU3mC,EACf1qI,KAAKysR,gBAAkBxxC,EACvBj7O,KAAK0sR,UAAY,IAAIC,KAAejiJ,GACpC1qI,KAAK4sR,uBAAuB3xC,EAChC,CACM2xC,uBAAuB3xC,GAAgB,IAAA/6O,EAAAF,KAAA,SAAAG,KAAA,YACzC,MAAMuqI,EAASxqI,EAAKmxK,QAChB3mC,EAAOghE,UACPxrM,EAAKixL,gBAAkB,QACjBx5K,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,eAGA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QAEVnmL,EAAKssR,gBAAiB,EACtBtsR,EAAK2sR,eAAiB,IAAIC,KAAc,CACpCpiJ,OAAQA,EACRnkI,KAAM,uBACNuyQ,eAAgB,uBAChBiU,gBAAgB,EAChBC,aAAc,CAAC,cACfxhD,aAAc,CAAC,kBACfn7C,QAAS4qD,EAAiB,CAAC,yBAA2B,GACtDzkC,eAAgBt2M,EAAKixL,kBAEzBjxL,EAAK2sR,eAAejhJ,kBAAkBpzF,IAAI,KAClCyiM,GACAvwG,EAAO4W,UAAS,GAChB5W,EAAO8oF,gBAAe,GACtB9oF,EAAOi+F,kBAAkBvc,WAAY,EACrC1hF,EAAOi+F,kBAAkBxc,UAAY,KAGrCzhF,EAAOi+F,kBAAkBvc,WAAY,EAGrClsN,EAAKqsR,mBAAmBrsR,EAAK+mP,SAC7B/mP,EAAK2sR,eAAe9wQ,OAAOynN,aAAa,iBAAkBtjO,EAAK+mP,SAG/D/mP,EAAK2sR,eAAe9wQ,OAAO8vH,WAAW,iBAAkB3rI,EAAK+mP,SAEjE/mP,EAAK2sR,eAAe9wQ,OAAOgmJ,SAAS,aAAc7hK,EAAK+sR,YAAW,EACnE,EAtCsC,EAuC7C,CAKAl5F,UACI,OAAO/zL,KAAKwsR,gBAAkBxsR,KAAK6sR,eAAe9wQ,OAAOg4K,SAC7D,CAQArvK,KAAKujB,EAAQouK,EAAc,KAAM62E,EAAa,GAC1C,IAAKltR,KAAK+zL,UACN,OAAO,EAEX/zL,KAAKinP,QAAUh/M,EACfjoC,KAAKitR,YAAcC,EACnB,MAAMC,EAAkBntR,KAAKqxK,QAAQk6C,mBAC/B6hE,EAAkBptR,KAAKqxK,QAAQsiD,gBACrC,OAAA3zN,KAAK0sR,UAAU96O,OAAO5xC,KAAK6sR,eAAgBx2E,GAC3Cr2M,KAAKqxK,QAAQ8iD,cAAci5D,GACvBptR,KAAKysR,iBAAmBU,GACxBntR,KAAKqxK,QAAQm6C,iBAAiB2hE,IAE3B,CACX,CAIA1rO,UACIzhD,KAAK6sR,gBAAgBprO,UACrBzhD,KAAK0sR,UAAUjrO,SACnB,EC9GG,MAAM4rO,ICMN,MAAMC,WAAgCD,GACzC,wBAAOE,CAAkBh7Q,GACrB,YAA4B1P,IAArB0P,EAAMi7Q,UACjB,CAEA3tR,YAAYwxK,EAASo8G,EAAiBp1I,GAClCx0I,QACA7D,KAAKqxK,QAAUA,EACfrxK,KAAKytR,gBAAkBA,EACvBztR,KAAKq4I,OAASA,EACdr4I,KAAK0tR,4BAA6B,EAClC1tR,KAAK2tR,sBAAuB,EAC5B3tR,KAAK4tR,gBAAkB,IAAIjB,KAAe3sR,KAAKqxK,SAC/CrxK,KAAK6tR,aAAe,IAAIvB,GAAqBtsR,KAAKqxK,SAClDrxK,KAAK8tR,2BJpB+B,CIqBxC,CAMAxC,aAAa9nR,GACT,OAAOxD,KAAKytR,gBAAgBnC,aAAa9nR,EAC7C,CAMAuqR,kBAAkBvqR,GACd,OAAOxD,KAAKytR,gBAAgBM,kBAAkBvqR,EAClD,CAMAwqR,yBAAyBxqR,GACrB,OAAOxD,KAAKytR,gBAAgBO,yBAAyBxqR,EACzD,CAQAyuC,MAAM4nB,EAAO+yJ,EAAYnoF,EAAOooF,GAC5B7sN,KAAKiuR,qBACLjuR,KAAKqxK,QAAQp/H,MAAM4nB,EAAO+yJ,EAAYnoF,EAAOooF,EACjD,CAMAqhE,sBAAsBr0N,EAAOuuI,GACzBpoM,KAAKiuR,qBACLjuR,KAAKqxK,QAAQw2B,gBAAgBO,GAC7BpoM,KAAKqxK,QAAQp/H,MAAM4nB,GAAO,GAAM,GAAO,EAC3C,CAKAguI,gBAAgBO,GACZpoM,KAAKiuR,qBACLjuR,KAAKqxK,QAAQw2B,gBAAgBO,EACjC,CAIA9jE,kBACI,MAAMiiE,EAAUvmM,KAAKytR,gBAAgBU,qBAAqBnuR,KAAK8tR,4BAC1DvnF,IAIDvmM,KAAK2tR,uBAEL3tR,KAAKouR,sBACLpuR,KAAKqxK,QAAQjlC,kBAAkBm6D,GAC/BvmM,KAAK2tR,sBAAuB,GAEhC3tR,KAAKqxK,QAAQo3D,gBAAgBliC,EAAQA,SACzC,CAMA8nF,uBAAuB7qR,EAAQqiL,GAC3B,MAAMo4C,EAAkBj+N,KAAKytR,gBAAgBU,qBAAqB3qR,IAAS+iM,QACvE03B,GAAmBA,EAAgBp4C,eAAiBA,GACpD7lL,KAAKqxK,QAAQ8sD,0BAA0Bt4C,EAAco4C,EAE7D,CAOAqwD,kBAAkBvyQ,EAAQxV,EAAM/C,GAC5B,MAAM+iM,EAAUvmM,KAAKytR,gBAAgBU,qBAAqB3qR,GACtD+iM,GACAxqL,EAAOynN,aAAaj9N,EAAMggM,EAAQA,QAE1C,CAMAgoF,eAAetiE,EAAWuiE,GACtBxuR,KAAKqxK,QAAQmiD,eAAevH,GAC5BjsN,KAAKqxK,QAAQ8iD,cAAcq6D,EAC/B,CAOAC,sBAAsBC,EAAaC,GAC/B,IAAKD,EAAY3yQ,QAAQg4K,UACrB,OAAO,EAEX/zL,KAAKiuR,qBACL,MAAMb,EAAkBptR,KAAKqxK,QAAQsiD,gBACrC,OAAA3zN,KAAK4tR,gBAAgBgB,aACrB5uR,KAAK4tR,gBAAgB37D,cACrBjyN,KAAKqxK,QAAQqoG,aAAagV,GAC1B1uR,KAAKqxK,QAAQ/vB,UAAS,GACtBthJ,KAAKqxK,QAAQmiD,gBAAe,GAC5BxzN,KAAKqxK,QAAQ8iD,eAAc,GAC3Bn0N,KAAK4tR,gBAAgBv/D,YAAYqgE,EAAY3yQ,QAC7C4yQ,MACA3uR,KAAK4tR,gBAAgBjpC,OACrB3kP,KAAK4tR,gBAAgBiB,gBACrB7uR,KAAKqxK,QAAQ8iD,cAAci5D,GAC3BptR,KAAKqxK,QAAQmnD,aAAa,IACnB,CACX,CAMA+C,YAAYyvD,EAAe8D,GAAwB,GAC3CA,GACA9uR,KAAK+uR,mBAET/uR,KAAKiuR,qBACLjuR,KAAK6tR,aAAanpQ,KAAK1kB,KAAKytR,gBAAgBU,qBAAqBnD,GAAezkF,QACpF,CAOA30J,OAAO04C,EAAQ0kM,EAAeC,GACtB3B,GAAwBC,kBAAkBjjM,GACtCA,EAAO4kM,iBACPlvR,KAAKq4I,QAAQ82I,oBACbnvR,KAAKq4I,QAAQ+2I,sBACb9kM,EAAO+kM,oBACP/kM,EAAOkjM,WAAWwB,EAAeC,GACjCjvR,KAAKiuR,qBACL3jM,EAAO14C,SACP04C,EAAOglM,iBAIXtvR,KAAKiuR,qBACL3jM,EAAO14C,SAEf,CAQAm9O,iBAAiBQ,EJhMuB,EIgM4BC,GAChE,GAAID,IAAuBvvR,KAAK8tR,2BAO5B,OANA9tR,KAAKouR,gCACgBvrR,IAAjB2sR,IACAxvR,KAAKqxK,QAAQ4vB,kBAAkBuuF,EAAc,GAC7CxvR,KAAKyvR,kCAA+B5sR,EACpC7C,KAAK0tR,4BAA6B,IAI1C1tR,KAAK8tR,2BAA6ByB,EAClCvvR,KAAKyvR,6BAA+BD,EACpCxvR,KAAK2tR,sBAAuB,CAChC,CAEAS,sBACQpuR,KAAK0tR,6BACL1tR,KAAKqxK,QAAQ+vB,iBAAiB,GAC9BphM,KAAK0tR,4BAA6B,EAE1C,CAEAgC,YAAYC,EAAuBC,GAC/B,MAAMvnC,EAAaroP,KAAKytR,gBAAgBU,qBAAqBwB,GACvDE,EAAa7vR,KAAKytR,gBAAgBU,qBAAqByB,GACzDvnC,GAAcwnC,GACdxnC,EAAWynC,WAAWD,EAE9B,CACA5B,qBACI,GAAIjuR,KAAK2tR,qBACL,OAEJ,MAAMnqR,EAASxD,KAAK8tR,2BACdiC,EAAc/vR,KAAKytR,gBAAgBuC,UAAUltR,IAAIU,GACvD,IAAIwoI,EAAe+jJ,EAAYxpF,QAC/B,GAAIwpF,EAAYE,gBAAgBC,iBAAkB,CAC9C,MAAMC,EAAenwR,KAAKytR,gBAAgB2C,iBAAiBttR,IAAIitR,EAAYM,WAAa7sR,GACxFwoI,EAAemkJ,EAAav+I,SAASu+I,EAAax1Q,MACtD,CACA3a,KAAKouR,sBACApiJ,EASDhsI,KAAKqxK,QAAQw3B,gBAAgB78D,IJlPG,II0O5BxoI,GJ1O4B,II0OeusR,EAAYM,WJtOpB,IIyO9B7sR,GJzO8B,IIyOoBusR,EAAYM,YAFnErwR,KAAKqxK,QAAQwtG,iCASqBh8Q,IAAtC7C,KAAKyvR,+BACLzvR,KAAKqxK,QAAQ4vB,kBAAkBjhM,KAAKyvR,6BAA8B,GAClEzvR,KAAKyvR,kCAA+B5sR,EACpC7C,KAAK0tR,4BAA6B,GAEtC1tR,KAAK2tR,sBAAuB,CAChC,CAEA2C,WACItwR,KAAK4tR,gBAAgBnsO,UACrBzhD,KAAK6tR,aAAapsO,SACtB,EC7PG,SAAS8uO,GAAoBl3P,GAEhC,YAAsBx2B,IAAfw2B,EAAKoB,KAChB,CAMO,SAAS+1P,GAA6Bn3P,GACzC,OAAIk3P,GAAoBl3P,GACb,CAAEoB,MAAOpB,EAAKoB,MAAOC,OAAQrB,EAAKqB,QAEtC,CAAED,MAAOpB,EAAMqB,OAAQrB,EAClC,CCfA,IAAIo3P,GACH,SAAUA,GACPA,SAA2BA,EAA2BC,KAAU,GAAK,OACrED,EAA2BA,EAA2BE,MAAW,GAAK,QACtEF,EAA2BA,EAA2BG,SAAc,GAAK,WAHlEH,CAIX,CAJC,CAIEA,IAA4D,CAAC,GAKzD,IAAMI,GAAwB,MAA9B,MAAMA,EACThxR,YAAYwxK,EAASy/G,GAAiB,EAAOz4I,GACzCr4I,KAAKqxK,QAAUA,EACfrxK,KAAK8wR,eAAiBA,EACtB9wR,KAAKq4I,OAASA,EACdr4I,KAAKgwR,UAAY,IAAI7yQ,IACrBnd,KAAKowR,iBAAmB,IAAIjzQ,IAC5Bnd,KAAK+wR,oBACT,CACAzF,aAAa9nR,GACT,GNrBoC,IMqBhCA,GNjBuC,IMiBIA,EAC3C,OAAO,EAEX,MAAMwtR,EAAehxR,KAAKgwR,UAAUltR,IAAIU,GACxC,QAAKwtR,INzB+B,IM4B7BA,EAAaX,WNxBuB,IMwBuBW,EAAaX,UACnF,CACAtC,kBAAkBvqR,GACd,GN/BoC,IM+BhCA,EACA,OAAO,EAEX,MAAMwtR,EAAehxR,KAAKgwR,UAAUltR,IAAIU,GACxC,QAAKwtR,GNnC+B,IMsC7BA,EAAaX,SACxB,CACArC,yBAAyBxqR,GACrB,GNrC2C,IMqCvCA,EACA,OAAO,EAEX,MAAMwtR,EAAehxR,KAAKgwR,UAAUltR,IAAIU,GACxC,QAAKwtR,GNzCsC,IM4CpCA,EAAaX,SACxB,CACAY,0BAA0BztR,GACtB,OAAOxD,KAAKgwR,UAAUltR,IAAIU,GAAQysR,eACtC,CACA9B,qBAAqB3qR,GACjB,MAAM2sR,EAAenwR,KAAKowR,iBAAiBttR,IAAIU,GAC/C,OAAI2sR,EACOA,EAAav+I,SAA8B,EAArBu+I,EAAax1Q,OAEvC3a,KAAKgwR,UAAUltR,IAAIU,GAAQ+iM,OACtC,CACA2qF,cAAc3qR,EAAMggM,EAAS/iM,GACzB,MAAMy6N,EAAkB13B,EAAQA,QAChC,IAAK03B,EACD,MAAM,IAAI34M,MAAM,uEA8BpB,YA5BeziB,IAAXW,GACAxD,KAAKmxR,WAAW3tR,GA2BbxD,KAAKoxR,wBAAwB7qR,EAAMggM,EAzBlB,CACpBltK,KAAM,CAAEoB,MAAO8rK,EAAQ9rK,MAAOC,OAAQ6rK,EAAQ7rK,QAC9CnO,QAAS,CACL+3G,gBAAiB25F,EAAgB35F,gBACjCqlE,oBAAqBpD,EAAQuE,qBAC7BlB,sBAAuBrD,EAAQwE,uBAC/Bf,QAASi0B,EAAgBj0B,QACzBz5L,MAAO0tN,EAAgB1tN,MACvBy5B,MAAO,CAACi0L,EAAgB7rN,MACxB63L,cAAe,CAACg0B,EAAgBp4C,cAChCskB,QAAS,CAAC8zB,EAAgB1uM,QAC1Bk7K,YAAa,CACTwzB,EAAgB30B,OACV,MACA20B,EAAgB10B,KACZ,MACA00B,EAAgBtxB,UACZ,MACA,MAElBzC,eAAgB,CAAC+zB,EAAgBjxB,gBACjCzC,OAAQ0zB,EAAgB1tN,MAAQ,CAAC0tN,EAAgB1tN,YAAS1N,GAE9DwuR,kBAAkB,GAE8CZ,GAA2BG,UAAU,EAAOptR,EACpH,CACAw9N,0BAA0Bz6N,EAAM+qR,EAAerB,EAAiBsB,GAAkB,EAAO/tR,GACrF,OAAOxD,KAAKoxR,wBAAwB7qR,EAAM,KAAM0pR,EAAiBqB,EAAgBb,GAA2BC,KAAOD,GAA2BE,MAAOY,EAAiB/tR,EAC1K,CACAguR,sBAAsBn4P,EAAMo4P,EAAczxR,KAAKqxK,QAAQ3lC,gBAAe,GAAOgmJ,EAAe1xR,KAAKqxK,QAAQ1lC,iBAAgB,IACrH,MAAQlxG,QAAOC,UAAW81P,GAA6Bn3P,GACvD,MAAO,CACHoB,MAAOld,KAAKwrC,MAAOtuB,EAAQg3P,EAAe,KAC1C/2P,OAAQnd,KAAKwrC,MAAOruB,EAASg3P,EAAgB,KAErD,CACAC,wBACI3xR,KAAKowR,iBAAiBnwQ,QAASm5C,IAC3BA,EAAMz+C,MAAsB,EAAdy+C,EAAMz+C,MACpB,UAAW01Q,KAAaj3N,EAAMw4N,WACL5xR,KAAKgwR,UAAUltR,IAAIutR,GAC3B9pF,QAAUntI,EAAMw4E,SAASx4E,EAAMz+C,MAChD,EAER,CACA8mC,UACIzhD,KAAK6xR,iBACT,CACAC,mBACI9xR,KAAKgwR,UAAU/vQ,QAASm5C,IACpB,IAAKA,EAAMmtI,QACP,QAAwB1jM,IAApBu2D,EAAMi3N,UAAyB,CAC/B,MAAM0B,EAAW/xR,KAAKgwR,UAAUltR,IAAIs2D,EAAMi3N,WAC1Cj3N,EAAMmtI,QAAUwrF,EAASxrF,QACzBntI,EAAMmtI,SAASA,SAASs8E,sBN3HA,IM4HpBkP,EAAS1B,YACTj3N,EAAMi3N,UN7Hc,GAIO,IM2H3B0B,EAAS1B,YACTj3N,EAAMi3N,UN5HqB,EM8HnC,SACSj3N,EAAM44N,YAAcvB,GAA2BG,SACpD,QAA2B/tR,IAAvBu2D,EAAM64N,aAA4B,CAClC,MAAMhC,EAAkB72N,EAAM62N,gBACxB52P,EAAO42P,EAAgBoB,iBAAmBrxR,KAAKwxR,sBAAsBvB,EAAgB52P,MAAQ42P,EAAgB52P,KAE7G64P,EADclyR,KAAKgwR,UAAUltR,IAAIs2D,EAAM64N,cACH1rF,QAAQ30D,SAASx4E,EAAM+4N,oBAajE/4N,EAAMmtI,QAAUvmM,KAAKqxK,QAAQ2vD,0BAA0B3nM,EAZrB,CAC9BuxO,cAAeqlB,EAAgB1jQ,QAAQq+O,cACvCtmI,gBAAiB2rJ,EAAgB1jQ,QAAQ+3G,gBACzCqlE,oBAAqBsmF,EAAgB1jQ,QAAQo9K,oBAC7CC,sBAAuBqmF,EAAgB1jQ,QAAQq9K,sBAC/CI,QAASimF,EAAgB1jQ,QAAQy9K,QACjC53L,KAAM69Q,EAAgB1jQ,QAAQyd,MAAM,GACpCza,OAAQ0gQ,EAAgB1jQ,QAAQ49K,QAAQ,GACxCe,cAAe+kF,EAAgB1jQ,QAAQ29K,eAAe,GACtD+2B,gBAAiBixD,EACjB3hR,MAAO0/Q,EAAgB1jQ,QAAQhc,QAGnC2hR,EAAsBrP,qBAC1B,KACK,CACD,MAAMoN,EAAkB72N,EAAM62N,gBACxB52P,EAAO42P,EAAgBoB,iBAAmBrxR,KAAKwxR,sBAAsBvB,EAAgB52P,MAAQ42P,EAAgB52P,KACnH+/B,EAAMmtI,QAAUvmM,KAAKqxK,QAAQo4B,2BAA2BpwK,EAAM42P,EAAgB1jQ,SAAS,EAC3F,CAGJ6sC,EAAMmtI,cAA+B1jM,IAApBu2D,EAAMi3N,YACvBj3N,EAAM71D,OAAOk+C,UACb2X,EAAM71D,MAAQvD,KAAKoyR,oBAAoBh5N,EAAM7yD,KAAM6yD,EAAMmtI,SAAO,GAGxEvmM,KAAKowR,iBAAiBnwQ,QAASm5C,IAC3B,QAAS37C,EAAI,EAAGA,EAAI27C,EAAMi5N,QAAQ38Q,OAAQ+H,IACtC27C,EAAMw4E,SAASn0H,GAAKzd,KAAKgwR,UAAUltR,IAAIs2D,EAAMi5N,QAAQ50Q,IAAI8oL,SAGrE,CACA+rF,uBACI,OAAOzB,EAAyB30B,UACpC,CACAq2B,sBAAsBC,EAAgBhvR,GAClC,MAAMwtR,EAAehxR,KAAKgwR,UAAUltR,IAAIU,GACxC,QAAqBX,IAAjBmuR,EACA,MAAM,IAAI1rQ,MAAO,iCAAgC9hB,qBAErDxD,KAAKgwR,UAAU9yQ,IAAIs1Q,EAAgB,CAC/BjsF,QAASyqF,EAAazqF,QACtB8pF,UAAW7sR,EACX+C,KAAMyqR,EAAazqR,KACnB0pR,gBAAiB,CACb52P,KAAM,IAAK23P,EAAaf,gBAAgB52P,MACxC9M,QAAS,IAAKykQ,EAAaf,gBAAgB1jQ,QAAShc,MAAOygR,EAAazqR,MACxE8qR,iBAAkBL,EAAaf,gBAAgBoB,iBAC/CnB,kBAAkB,GAEtB8B,UAAWhB,EAAagB,UACxBC,aAAcjB,EAAaiB,aAC3BE,mBAAoBnB,EAAamB,qBAErC,MAAMhC,EAAenwR,KAAKowR,iBAAiBttR,IAAIU,GAC3C2sR,GACAA,EAAayB,WAAW3zQ,KAAKu0Q,EAErC,CACAX,gBAAgBY,GAAa,GACzBzyR,KAAKgwR,UAAU/vQ,QAAQ,CAACm5C,EAAO51D,MACvBivR,GAAcr5N,EAAM44N,YAAcvB,GAA2BG,YAC7Dx3N,EAAM71D,OAAOk+C,UACb2X,EAAM71D,WAAQV,GAEdu2D,EAAM44N,YAAcvB,GAA2BG,WAGnDx3N,EAAMmtI,SAAS9kJ,UACf2X,EAAMmtI,QAAU,MACZksF,GAAcr5N,EAAM44N,YAAcvB,GAA2BC,OAC7D1wR,KAAKgwR,UAAU7uN,OAAO39D,GAAM,GAGpCxD,KAAKowR,iBAAiBnwQ,QAASm5C,IAC3B,QAAS37C,EAAI,EAAGA,EAAI27C,EAAMi5N,QAAQ38Q,OAAQ+H,IACtC27C,EAAMw4E,SAASn0H,GAAK,OAGxBg1Q,IACAzyR,KAAKgwR,UAAU/9O,QACfjyC,KAAKowR,iBAAiBn+O,QACtBjyC,KAAK+wR,qBAEb,CACAA,qBACI,MAAM13P,EAAO,CAAEoB,MAAOz6B,KAAKqxK,QAAQ3lC,gBAAe,GAAOhxG,OAAQ16B,KAAKqxK,QAAQ1lC,iBAAgB,IAC9F3rI,KAAKgwR,UAAU9yQ,INjOqB,EMiOa,CAC7C3W,KAAM,mBACNggM,QAAS,KACT0pF,gBAAiB,CACb52P,OACA9M,QAAS,CAAC,EACV8kQ,kBAAkB,GAEtBW,UAAWvB,GAA2BG,WAE1C5wR,KAAKgwR,UAAU9yQ,INvO4B,EMuOa,CACpD3W,KAAM,2BACNggM,QAAS,KACT0pF,gBAAiB,CACb52P,OACA9M,QAAS,CAAC,EACV8kQ,kBAAkB,GAEtBW,UAAWvB,GAA2BG,UAE9C,CACAwB,oBAAoB7rR,EAAMggM,GACtB,IAAKvmM,KAAK8wR,iBAAmB9wR,KAAKq4I,OAC9B,OAEJ,MAAMq6I,EAAe,IAAIvyD,KAAQ,KAAMngO,KAAKq4I,QAC5Cq6I,SAAansR,KAAOA,EACpBmsR,EAAatxH,SAAWmlC,EAAQA,SAAWA,EAAQ+H,qBACnDokF,EAAatxH,SAASyhH,sBACf6P,CACX,CACAvB,WAAW3tR,GACP,MAAM41D,EAAQp5D,KAAKgwR,UAAUltR,IAAIU,GAC7B41D,IACAA,EAAM71D,OAAOk+C,UACbzhD,KAAKgwR,UAAU7uN,OAAO39D,GAE9B,CACA4tR,wBAAwB7qR,EAAMggM,EAAS0pF,EAAiB+B,EAAWT,GAAkB,EAAO/tR,EAAQyuR,GAAcE,IAC9G3uR,EAASA,GAAUqtR,EAAyB30B,WAC5C,MAAM3f,GAAc0zC,EAAgBC,iBAAoB,GAAE3pR,WAAgBA,EACpEyqR,GAAe,CACjBzqF,UACAhgM,KAAMg2O,GACN0zC,gBAAiB,CACb52P,KAAMm3P,GAA6BP,EAAgB52P,MACnD9M,QAAS,IAAK0jQ,EAAgB1jQ,QAAShc,MAAOgsO,IAC9C80C,iBAAkBpB,EAAgBoB,iBAClCnB,iBAAkBD,EAAgBC,kBAEtC8B,YACAC,gBACAE,uBAGJ,GADAnyR,KAAKgwR,UAAU9yQ,IAAI1Z,EAAQwtR,IACvBgB,IAAcvB,GAA2BG,SACzC,OAAOptR,EAEX,GAAIysR,EAAgBC,iBAAkB,CAClC,MAAMyC,GAAsB,CACxBt5P,KAAM,IAAK23P,GAAaf,gBAAgB52P,MACxC9M,QAAS,IAAKykQ,GAAaf,gBAAgB1jQ,SAC3C8kQ,iBAAkBL,GAAaf,gBAAgBoB,iBAC/CnB,kBAAkB,GAEhB0C,GAAc5yR,KAAKoxR,wBAAyB,GAAE7qR,WAAe,KAAMosR,GAAqBX,GAAW,GACzG,OAAAhyR,KAAKowR,iBAAiBlzQ,IAAI1Z,EAAQ,CAAEouI,SAAU,CAAC,KAAM,MAAOygJ,QAAS,CAAC7uR,EAAQovR,IAAcj4Q,MAAO,EAAGi3Q,WAAY,KAC3GpuR,CACX,CACA,GAAI+tR,EAAiB,CACjB,MAAMxnF,GAAekmF,EAAgB1jQ,QAAQw9K,cAAgB,EAC7D,QAAStsL,GAAI,EAAGA,GAAIssL,GAActsL,KAAK,CACnC,MACM8+N,GAAe,GAAEh2O,OADT0pR,EAAgB1jQ,QAAQg+K,SAAS9sL,KAAO,GAAEA,OAElDo1Q,GAA4B,CAC9Bx5P,KAAMm3P,GAA6BP,EAAgB52P,MACnD9M,QAAS,IACF0jQ,EAAgB1jQ,QACnB49K,QAAS,CAAC8lF,EAAgB1jQ,QAAQ49K,QAAQ1sL,KAC1CusB,MAAO,CAACimP,EAAgB1jQ,QAAQyd,MAAMvsB,KACtCssL,aAAc,GAElBsnF,iBAAkBpB,EAAgBoB,kBAEtCrxR,KAAKoxR,wBAAwB70C,GAAa,KAAMs2C,GAA2Bb,GAAW,EAAOxuR,EAASia,GAAI,EAAGja,EAAQia,GACzH,CACAozQ,EAAyB30B,UAAYnyD,EACzC,CACA,OAAOvmM,CACX,EAEJqtR,SAAyB30B,SAAW,EAjTvB20B,CAAwB,KCNrC,IAAIiC,GACH,SAAUA,GACPA,SAAmBA,EAAmBC,OAAY,GAAK,SACvDD,EAAmBA,EAAmBE,KAAU,GAAK,OACrDF,EAAmBA,EAAmBG,QAAa,GAAK,UAHjDH,CAIX,CAJC,CAIEA,IAA4C,CAAC,GAKzC,MAAMI,GAIT,UAAIxoJ,GACA,OAAO1qI,KAAKqxK,OAChB,CAOAxxK,YAAY6qI,EAAQyoJ,GAAgB,EAAO70K,GACvCt+G,KAAKozR,OAAS,GACdpzR,KAAKqzR,sBAAwB,KAI7BrzR,KAAKszR,kBAAoB,IAAI30P,MAC7B3+B,KAAKqxK,QAAU3mC,EACf1qI,KAAKytR,gBAAkB,IAAIoD,GAAyB7wR,KAAKqxK,QAAS8hH,EAAe70K,GACjFt+G,KAAKuzR,aAAe,IAAIlG,GACxBrtR,KAAKwzR,eAAiB,IAAIlG,GAAwBttR,KAAKqxK,QAASrxK,KAAKytR,gBACzE,CAMAgG,cAAcltR,GACV,OAAOvG,KAAKozR,OAAOr6Q,KAAMsP,GAAMA,EAAE9hB,OAASA,EAC9C,CAKAmtR,QAAQhI,GACJ,GAAmC,OAA/B1rR,KAAKqzR,sBACL,MAAM,IAAI/tQ,MAAO,2CAA0ComQ,EAAKnlR,yDAAyDvG,KAAKqzR,sBAAsB9sR,UAExJvG,KAAKozR,OAAOn1Q,KAAKytQ,EACrB,CAOAP,cAAc5kR,EAAMotR,GAAmB,GACnC,OAAO3zR,KAAK4zR,SAASrtR,EAAMusR,GAAmBC,OAAQY,EAC1D,CAOAE,YAAYttR,EAAMotR,GAAmB,GACjC,OAAO3zR,KAAK4zR,SAASrtR,EAAMusR,GAAmBE,KAAMW,EACxD,CACAC,SAASrtR,EAAMutR,EAAUH,GAAmB,GACxC,IAAK3zR,KAAKqzR,sBACN,MAAM,IAAI/tQ,MAAM,2EAEpB,IAAI2lQ,EACJ,OAAQ6I,GACJ,KAAKhB,GAAmBC,OACpB9H,EAAO,IAAI8I,KAAqBxtR,EAAMvG,KAAKqzR,sBAAuBrzR,KAAKwzR,eAAgBxzR,KAAKqxK,SAC5F,MACJ,KAAKyhH,GAAmBE,KACpB/H,EAAO,IAAI+I,KAAmBztR,EAAMvG,KAAKqzR,sBAAuBrzR,KAAKuzR,aAAcvzR,KAAKqxK,SACxF,MACJ,QACI45G,EAAO,IAAIgJ,KAAe1tR,EAAMvG,KAAKqzR,sBAAuBrzR,KAAKuzR,cAGzE,OAAAvzR,KAAKqzR,sBAAsBO,SAAS3I,EAAM0I,GACnC1I,CACX,CAKAjzQ,QACIhY,KAAKytR,gBAAgBoE,iBAAgB,GACrC,UAAWnG,KAAQ1rR,KAAKozR,OACpB1H,EAAKxmG,SACLllL,KAAKqzR,sBAAwB3H,EAC7BA,EAAK37Q,SACL/P,KAAKqzR,sBAAwB,KAEjCrzR,KAAKytR,gBAAgBqE,mBACrB,UAAWpG,KAAQ1rR,KAAKozR,OACpB1H,EAAKwI,aAETl0R,KAAKszR,kBAAkBtyH,gBAAgBhhK,KAC3C,CAOAm0R,eAAe3sI,EAAU,IACrB,OAAO,IAAI7vI,QAASC,IAChB,MAAMw8Q,EAAaA,KACf,IAAIt9M,GAAQ,EACZ,UAAW40M,KAAQ1rR,KAAKozR,OACpBt8M,IAAUA,EAAQ40M,EAAK33F,WAEvBj9G,EACAl/D,IAGA+9C,WAAWy+N,EAAY5sI,EAAO,EAGtC4sI,GAAW,EAEnB,CAIAh1H,UACIp/J,KAAKwzR,eAAezE,mBACpB/uR,KAAKytR,gBAAgBkE,wBACrB,UAAWjG,KAAQ1rR,KAAKozR,OAAQ,CAC5B,MAAMiB,EAAS3I,EAAK4I,aACpB,UAAWrJ,KAAQoJ,EACfpJ,EAAK3H,UAEb,CACJ,CAQA4N,cAAc3qR,EAAMggM,EAAS/iM,GACzB,OAAOxD,KAAKytR,gBAAgByD,cAAc3qR,EAAMggM,EAAS/iM,EAC7D,CAOAytR,0BAA0BztR,EAAQ+wR,GAAe,GAC7C,MAAMtE,EAAkBjwR,KAAKytR,gBAAgBwD,0BAA0BztR,GACvE,OAAO+wR,EACD,CACEl7P,KAAMm3P,GAA6BP,EAAgB52P,MACnD9M,QAAS,IAAK0jQ,EAAgB1jQ,SAC9B8kQ,iBAAkBpB,EAAgBoB,kBAEpCpB,CACV,CAMAuE,sBAAsBhxR,GAClB,MAAMysR,EAAkBjwR,KAAKixR,0BAA0BztR,GAMvD,MAAO,CACH61B,KANU42P,EAAgBoB,iBAIxBrxR,KAAKytR,gBAAgB+D,sBAAsBvB,EAAgB52P,MAH3Dk3P,GAAoBN,EAAgB52P,MAChC,CAAEoB,MAAOw1P,EAAgB52P,KAAKoB,MAAOC,OAAQu1P,EAAgB52P,KAAKqB,QAClE,CAAED,MAAOw1P,EAAgB52P,KAAMqB,OAAQu1P,EAAgB52P,MAI7D9M,QAAS,IAAK0jQ,EAAgB1jQ,SAEtC,CAQAkoQ,gCAAgCjxR,EAAQkxR,EAAgBzE,GACpD,QAAeptR,IAAXW,EAAsB,CACtB,QAAuBX,IAAnB6xR,QAAoD7xR,IAApBotR,EAChC,MAAM,IAAI3qQ,MAAM,0GAEpB,OAAOtlB,KAAKghO,0BAA0B0zD,EAAgBzE,EAC1D,CACA,OAAOzsR,CACX,CAMAmxR,WAAWnxR,GACP,OAAOxD,KAAKytR,gBAAgBU,qBAAqB3qR,EACrD,CAQAw9N,0BAA0Bz6N,EAAM0pR,EAAiBsB,GAAkB,GAC/D,OAAOvxR,KAAKytR,gBAAgBzsD,0BAA0Bz6N,IAAQvG,KAAKqzR,sBAAuBpD,EAAiBsB,EAC/G,CAMAe,uBACI,OAAOtyR,KAAKytR,gBAAgB6E,sBAChC,CAQAC,sBAAsBC,EAAgBhvR,EAAQkxR,EAAgBzE,GAC1D,QAAeptR,IAAXW,EAOJxD,KAAKytR,gBAAgB8E,sBAAsBC,EAAgBhvR,OAP3D,CACI,QAAuBX,IAAnB6xR,QAAoD7xR,IAApBotR,EAChC,MAAM,IAAI3qQ,MAAM,gGAEpBtlB,KAAKytR,gBAAgBzsD,0BAA0B0zD,IAAkB10R,KAAKqzR,sBAAuBpD,GAAiB,EAAOuC,EAEzH,CAEJ,CAMAtC,iBAAiB1sR,GACb,MAAM41D,EAAQp5D,KAAKytR,gBAAgBuC,UAAUltR,IAAIU,GACjD,QAAK41D,GAIEp5D,KAAKytR,gBAAgB2C,iBAAiB75L,IAD7C/yF,EAAS41D,EAAMi3N,WAAa7sR,EAEhC,CAKAyuC,QACI,UAAWy5O,KAAQ1rR,KAAKozR,OACpB1H,EAAKxmG,SAETllL,KAAKozR,OAAO19Q,OAAS,EACrB1V,KAAKytR,gBAAgBoE,kBACrB7xR,KAAKqzR,sBAAwB,IACjC,CAIA5xO,UACIzhD,KAAKiyC,QACLjyC,KAAKytR,gBAAgBhsO,UACrBzhD,KAAKwzR,eAAelD,UACxB,8BCnRG,MAAMsE,WAAkCnJ,KAI3C,QAAIr5Q,GACA,OAAOpS,KAAK60R,KAChB,CAQAh1R,YAAY0G,EAAMqlR,EAAYttK,EAAOlsG,EAAO25Q,MAAyC+I,WACjFjxR,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK+0R,aAAe,KACpB/0R,KAAK60R,MAAQ9I,MAAyC+I,UAEtD90R,KAAKg1R,yBAA2B,IAAIr2P,MAEpC3+B,KAAKi1R,YAAa,EAClBj1R,KAAK60R,MAAQziR,EACbpS,KAAKk1R,UAAW,EAChBl1R,KAAKm1R,eAAe,SAAU/iR,GAC9BpS,KAAKypC,iBACT,CAIAA,kBACI,OAAQzpC,KAAKoS,MACT,KAAK25Q,MAAyC5rD,QAC9C,KAAK4rD,MAAyCqJ,iBAC9C,KAAKrJ,MAAyCsJ,mBAC9C,KAAKtJ,MAAyCuJ,kBAC9C,KAAKvJ,MAAyCwJ,mBAC9C,KAAKxJ,MAAyCyJ,cAC9C,KAAKzJ,MAAyC0J,oBAC9C,KAAK1J,MAAyC2J,qBAC9C,KAAK3J,MAAyC4J,qBAC9C,KAAK5J,MAAyC6J,gBAC9C,KAAK7J,MAAyC8J,sBAC9C,KAAK9J,MAAyC+J,kBAC9C,KAAK/J,MAAyCgK,kBAc1C/1R,KAAKiwR,gBAbW,CACZ52P,KAAM,CAAEoB,MAAO,IAAKC,OAAQ,KAC5BnO,QAAS,CACLq+O,eAAe,EACftmI,iBAAiB,EACjBt6F,MAAO,CAAC,GACRmgK,QAAS,CAAC,GACVH,QAAS,EACTE,eAAgB,EAAC,GACjBP,qBAAqB,GAEzB0nF,kBAAkB,GAGtB,MAEJ,KAAKtF,MAAyCiK,8BAe1Ch2R,KAAKiwR,gBAdW,CACZ52P,KAAM,CAAEoB,MAAO,IAAKC,OAAQ,KAC5BnO,QAAS,CACLq+O,eAAe,EACftmI,iBAAiB,EACjBwlE,mBAAoB,GACpBC,aAAc,EACdC,QAAS,EACTH,sBAAsB,EACtBF,qBAAqB,EACrBC,uBAAuB,GAE3BynF,kBAAkB,GAGtB,MAEJ,KAAKtF,MAAyCkK,WAC1Cj2R,KAAKuS,MAAQ,CAAE2+H,OAAQ,GAAIglJ,gBAAiB,IAC5Cl2R,KAAKi1R,YAAa,EAClB,MACJ,KAAKlJ,MAAyChlG,OAC1C/mL,KAAKuS,MAAQvS,KAAKq4I,OAAO89I,QAAQ,GACjCn2R,KAAKi1R,YAAa,EAClB,MACJ,QACIj1R,KAAKi1R,YAAa,EAE9B,CAIA,SAAI1iR,GACA,OAAOvS,KAAK+0R,YAChB,CACA,SAAIxiR,CAAMA,GACNvS,KAAK+0R,aAAexiR,EACpBvS,KAAKm/B,OAAO5sB,WAAQ1P,EACpB7C,KAAKg1R,yBAAyBh0H,gBAAgBhhK,KAClD,CAKAo2R,gBACI,OAAOp2R,KAAK+0R,YAChB,CAKAsB,gCACI,OAAIr2R,KAAK+0R,aAAajF,WACX9vR,KAAK+0R,aAET,IACX,CAKAuB,8BACI,OAAIt2R,KAAK+0R,aAAajF,WACX9vR,KAAK+0R,aAAaxuF,QAEtB,IACX,CAKA5gE,eACI,MAAO,2BACX,CAIA,UAAIxmG,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CAKAC,eACI,SAAQx2R,KAAKoS,KAAO25Q,MAAyCE,WACjE,CAKAwK,eACI,SAAQz2R,KAAKoS,KAAO25Q,MAAyC2K,kBACjE,CAKAC,qCACI,SAAQ32R,KAAKoS,KAAO25Q,MAAyC6K,wCACjE,CAKAC,WACI,SAAQ72R,KAAKoS,KAAO25Q,MAAyChlG,OACjE,CAKA+vG,eACI,SAAQ92R,KAAKoS,KAAO25Q,MAAyCkK,WACjE,CACA9J,YAAYloR,GAER,GADAJ,MAAMsoR,YAAYloR,GACdjE,KAAKi1R,WACL,GAAIj1R,KAAKy2R,eACLz2R,KAAKm/B,OAAO5sB,MR7LgB,OQ6LRwkR,GAEf/2R,KAAK22R,qCACV32R,KAAKm/B,OAAO5sB,MR5LuB,OQ4LfykR,GAEfh3R,KAAK62R,WACV72R,KAAKm/B,OAAO5sB,MAAQvS,KAAKo2R,qBAAc,GAElCp2R,KAAK82R,eACV92R,KAAKm/B,OAAO5sB,MAAQvS,KAAKo2R,oBAExB,CACD,GAAIp2R,WAAK+0R,aACL,MAAM,IAAIzvQ,MAAO,8CAA6CtlB,KAAKuG,oBAEvE,MAAMggM,EAAUvmM,KAAKq2R,gCACjB9vF,IACAvmM,KAAKm/B,OAAO5sB,MAAQvS,KAAKkrR,YAAYgG,cAAclxR,KAAKuG,KAAMggM,EAASvmM,KAAKm/B,OAAO5sB,OAE3F,MAGJ,GAAKvS,KAAKoS,KAAO25Q,MAAyCkL,wBAAgC,CACtF,MAAMC,EAAuBl3R,KAAKiwR,gBAClC,IAAKiH,EACD,MAAM,IAAI5xQ,MAAO,wEAAuEtlB,KAAKuG,SAEjGvG,KAAKm/B,OAAO5sB,MAAQvS,KAAKkrR,YAAYlqD,0BAA0BhhO,KAAKuG,KAAM2wR,EAC9E,CACJ,CACAz1O,UACIzhD,KAAK+0R,aAAe,KACpB/0R,KAAKg1R,yBAAyB/iP,QAC9BpuC,MAAM49C,SACV,CACA01O,sBACI,MAAMC,EAAQ,GACdA,SAAMn5Q,KAAM,GAAEje,KAAKq3R,kCAAkCr3R,KAAKi1R,eACtDj1R,KAAKw2R,eAKDY,EAAMn5Q,KAJLje,KAAKi1R,WAIM,GAAEj1R,KAAKq3R,gFAHP,GAAEr3R,KAAKq3R,uCAAuCjnQ,KAAKC,UAAUrwB,KAAKiwR,qBAM7EjwR,KAAK62R,WACVO,EAAMn5Q,KAAM,GAAEje,KAAKq3R,+EAEdr3R,KAAK82R,gBACVM,EAAMn5Q,KAAM,GAAEje,KAAKq3R,yFAEhBxzR,MAAMszR,sBAAwBC,EAAMltR,KAAK,KACpD,CACAk7H,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBjzH,KAAOpS,KAAKoS,KAChCizH,EAAoB4vJ,WAAaj1R,KAAKi1R,WAClCj1R,KAAKiwR,kBACL5qJ,EAAoB4qJ,gBAAkBjwR,KAAKiwR,iBAExC5qJ,CACX,CACAiyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,GACnBrlI,KAAK60R,MAAQxvJ,EAAoBjzH,KACjCpS,KAAKm/B,OAAO/sB,KAAOpS,KAAK60R,MACxB70R,KAAKi1R,WAAa5vJ,EAAoB4vJ,WAClC5vJ,EAAoB4qJ,kBACpBjwR,KAAKiwR,gBAAkB5qJ,EAAoB4qJ,gBAEnD,GAEJptH,SAAW,IACP00H,MAAuB,cAAe,EAAwC,eAC/E3C,GAA0BrwP,UAAW,kBAAc,IAAM,EAC5Ds6H,OAAc,oCAAqC+1H,ICvQ5C,MAAM4C,WAAmCzM,KAC5ClrR,YAAY0G,EAAMqlR,GACd/nR,MAAM0C,EAAMqlR,GAIZ5rR,KAAK65D,MAAQ,IAAIsxM,KAAO,GAAK,GAAK,GAAK,GAIvCnrQ,KAAKsgQ,YAAa,EAIlBtgQ,KAAKugQ,YAAa,EAIlBvgQ,KAAKwgQ,cAAe,EACpBxgQ,KAAK4lP,cAAgB5lP,KAAKkrR,YAAYoH,sBAC1C,CACAviR,SACI,QAAgClN,IAA5B7C,KAAKy3R,mBACL,MAAM,IAAInyQ,MAAO,8BAA6BtlB,KAAKuG,wCAEvDvG,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK4lP,cAAe5lP,KAAKy3R,oBAChE,MAAMxM,EAAOjrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,MACjD0kR,EAAKG,gBAAgBprR,KAAKy3R,oBAC1BxM,EAAKI,eAAgB7vG,IACjBA,EAAQvpI,MAAMjyC,KAAK65D,QAAS75D,KAAKsgQ,aAActgQ,KAAKugQ,aAAcvgQ,KAAKwgQ,aAAY,GAEvF,MAAM+qB,EAAevrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,KAAO,aAAa,GAC7EglR,EAAaH,gBAAgBprR,KAAKy3R,oBAClClM,EAAaF,eAAgB/Y,MACjC,EC7BG,MAAMolB,WAAkCjM,KAI3C,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CAOA9rR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK8rR,cAAc,UAAWC,MAAyC5rD,SACvEngO,KAAKm1R,eAAe,SAAUpJ,MAAyC4L,cACvE33R,KAAKumM,QAAQylF,gCAAgCD,MAAyCE,YACtFjsR,KAAKm/B,OAAOy4P,sBAAwB53R,KAAKumM,QACzCvmM,KAAK2rR,gBAAkB,IAAI6L,GAA2BjxR,EAAMqlR,EAChE,CAEA,SAAI/xN,GACA,OAAO75D,KAAK2rR,gBAAgB9xN,KAChC,CACA,SAAIA,CAAMtnD,GACNvS,KAAK2rR,gBAAgB9xN,MAAQtnD,CACjC,CAEA,cAAI+tP,GACA,QAAStgQ,KAAK2rR,gBAAgBrrB,UAClC,CACA,cAAIA,CAAW/tP,GACXvS,KAAK2rR,gBAAgBrrB,WAAa/tP,CACtC,CAEA,cAAIguP,GACA,QAASvgQ,KAAK2rR,gBAAgBprB,UAClC,CACA,cAAIA,CAAWhuP,GACXvS,KAAK2rR,gBAAgBprB,WAAahuP,CACtC,CAEA,gBAAIiuP,GACA,QAASxgQ,KAAK2rR,gBAAgBnrB,YAClC,CACA,gBAAIA,CAAajuP,GACbvS,KAAK2rR,gBAAgBnrB,aAAejuP,CACxC,CAKAozH,eACI,MAAO,2BACX,CAIA,WAAI4gE,GACA,OAAOvmM,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBjE,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjCvG,KAAK63R,6BAA6B73R,KAAKumM,QAASvmM,KAAKm/B,QACrD,MAAMitP,EAAwBpsR,KAAKumM,QAAQ8lF,eACvCD,IACApsR,KAAK2rR,gBAAgB8L,mBAAqBrL,EAAsB75Q,MAExE,CACA4kR,sBACI,MAAMC,EAAQ,GACdA,SAAMn5Q,KAAM,GAAEje,KAAKq3R,gDAAgDr3R,KAAK65D,MAAMz4C,MAAMphB,KAAK65D,MAAMh/C,MAAM7a,KAAK65D,MAAMtkD,MAAMvV,KAAK65D,MAAMjrD,OACjIwoR,EAAMn5Q,KAAM,GAAEje,KAAKq3R,kCAAkCr3R,KAAKsgQ,eAC1D82B,EAAMn5Q,KAAM,GAAEje,KAAKq3R,kCAAkCr3R,KAAKugQ,eAC1D62B,EAAMn5Q,KAAM,GAAEje,KAAKq3R,oCAAoCr3R,KAAKwgQ,iBACrD38P,MAAMszR,sBAAwBC,EAAMltR,KAAK,KACpD,CACAk7H,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBxrE,MAAQ75D,KAAK65D,MAAM0rE,UACvCF,EAAoBi7H,WAAatgQ,KAAKsgQ,WACtCj7H,EAAoBk7H,WAAavgQ,KAAKugQ,WACtCl7H,EAAoBm7H,aAAexgQ,KAAKwgQ,aACjCn7H,CACX,CACAiyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,GACnBrlI,KAAK65D,MAAQsxM,KAAO2sB,UAAUzyJ,EAAoBxrE,OAClD75D,KAAKsgQ,WAAaj7H,EAAoBi7H,WACtCtgQ,KAAKugQ,WAAal7H,EAAoBk7H,WACtCvgQ,KAAKwgQ,aAAen7H,EAAoBm7H,YAC5C,GAEJ39F,SAAW,IACP00H,MAAuB,QAAS,IACjCG,GAA0BnzP,UAAW,QAAS,OAAI,EACrDs+H,OAAW,IACP00H,MAAuB,cAAe,OAAwC10R,EAAW,CAAEk1R,UAAU,KACtGL,GAA0BnzP,UAAW,aAAc,OAAI,EAC1Ds+H,OAAW,IACP00H,MAAuB,cAAe,OAAwC10R,EAAW,CAAEk1R,UAAU,KACtGL,GAA0BnzP,UAAW,aAAc,OAAI,EAC1Ds+H,OAAW,IACP00H,MAAuB,gBAAiB,OAAwC10R,EAAW,CAAEk1R,UAAU,KACxGL,GAA0BnzP,UAAW,eAAgB,OAAI,EAC5Ds6H,OAAc,oCAAqC64H,ICvH5C,MAAMM,GACTn4R,cAEIG,KAAKi4R,SAAU,EAKfj4R,KAAKk4R,+BAAiC,EAC1C,CAMAC,WAAWC,EAAkB,MACzB,IAAIlgP,EAAe,GACnB,UAAWmgP,KAAqBr4R,KAAKk4R,+BACjChgP,GAAiB,UAASmgP,EAAkB9xR,qBAAqB8xR,EAAkBC,WAAW/xR,SAAS8xR,EAAkBC,WAAW3yJ,0DAExI,OAAIztF,IACIkgP,GACAA,EAAgBp3H,gBAAgB9oH,GAEpC0oH,KAAOt7I,MAAM,uCAAyC4yB,IAC/C,EAGf,ECdG,MAAMqgP,GAETC,kCAEI,cAAWC,sBAA0B,IAC1BA,6BAGAp8F,QAAY,YAAsBA,QAAQq8F,sBAA0B,IACpEr8F,aADX,CAIJ,CAIA,cAAIuvF,GACA,OAAO5rR,KAAKkrR,WAChB,CAKAvmJ,WACI,OAAO3kI,KAAKq4I,MAChB,CAOAx4I,YAAY0G,EAAM+3G,EAAO/xF,GACrBvsB,KAAK24R,SAAWJ,GAAgBK,oBAEhC54R,KAAK64R,yBAA2B74R,KAAKw4R,kCAKrCx4R,KAAK84R,WAAa,KAIlB94R,KAAK+4R,eAAiB,GAItB/4R,KAAKszR,kBAAoB,IAAI30P,MAI7B3+B,KAAKg5R,uBAAyB,IAAIr6P,MAElC3+B,KAAKi5R,YAAc,KACnBj5R,KAAKkqI,gBAAkB,KACvBlqI,KAAKuG,KAAOA,EACZvG,KAAKq4I,OAAS/5B,EACdt+G,KAAKqxK,QAAU/yD,EAAM6xD,YACrB5jJ,EAAU,CACN4mQ,eAAe,EACf+F,eAAe,EACfjB,SAAS,EACTkB,4BAA4B,EAC5BC,wBAAwB,KACrB7sQ,GAEPvsB,KAAKmiD,SAAW51B,EAChBvsB,KAAKkrR,YAAc,IAAIgI,GAAWlzR,KAAKqxK,QAAS9kJ,EAAQ4mQ,cAAenzR,KAAKq4I,QACxE9rH,EAAQ4sQ,6BACRn5R,KAAKkqI,gBAAkBlqI,KAAKqxK,QAAQtjC,mBAAmBv1F,IAAI,KACvDx4C,KAAKgY,OAAM,GAGvB,CAKA2tH,eACI,MAAO,iBACX,CAMA0zJ,eAAe9yR,GACX,IAAI8V,EAAS,KACb,UAAWsB,KAAS3d,KAAK+4R,eACrB,GAAIp7Q,EAAMpX,OAASA,EACf,IAAK8V,EAID0zJ,YAAMlP,KAAK,gDAAkDt6J,EAAO,KAC7D8V,EAJPA,EAASsB,CAIFtB,CAInB,OAAOA,CACX,CAMAi9Q,oBAAoBC,GAChB,UAAW57Q,KAAS3d,KAAK+4R,eACrB,GAAIQ,EAAU57Q,GACV,OAAOA,EAGf,OAAO,IACX,CAMA67Q,qBAAqBD,GACjB,MAAM5iG,EAAS,GACf,UAAWh5K,KAAS3d,KAAK+4R,eACjBQ,EAAU57Q,IACVg5K,EAAO14K,KAAKN,GAGpB,OAAOg5K,CACX,CAKA8iG,iBACI,MAAM9iG,EAAS,GACf,UAAWh5K,KAAS3d,KAAK+4R,eACjBp7Q,EAAM+7Q,SACN/iG,EAAO14K,KAAKN,GAGpB,OAAOg5K,CACX,CAMAgjG,KAAK/0R,GACD,OAAO,IAAI+S,QAASC,IAChB5X,KAAK64R,yBAA2B74R,KAAK64R,0BAA4B74R,KAAKw4R,yCAC3Dx4R,KAAK64R,yBAA4B,IAGxC9oH,KAAMitB,kBAFYp4L,GAAUA,EAAOg1R,UAAYh1R,EAAOg1R,UAAYrB,GAAgBsB,UAE/C,KAC/B75R,KAAK64R,yBAA2B74R,KAAK64R,0BAA4B74R,KAAKw4R,kCACtEx4R,KAAK85R,kBAAkBl1R,GAAQm1R,6BAC/BniR,GAAQ,IAKZ5X,KAAK85R,kBAAkBl1R,GAAQm1R,6BAC/BniR,IAAQ,EAGpB,CAKAkiR,kBAAkBE,GACd,MAAMC,EAAmB,CACrBC,gBAAiBl6R,QACdg6R,GAEPh6R,KAAK64R,yBAAyBH,sBAAsB18F,KAAKi+F,EAC7D,CAIAjiR,QACI,IAAKhY,KAAKi5R,YACN,MAAM,IAAI3zQ,MAAM,kFAEpBtlB,KAAKm6R,iBAAiBn6R,KAAKi5R,aAC3Bj5R,KAAKkrR,YAAYj5O,QACjB,MAAMhuC,EAAQ,IAAI+zR,GAClB/zR,EAAMm2R,QAAUp6R,KAAK24R,SACrB10R,EAAMg0R,QAAUj4R,KAAKmiD,SAAS81O,QAC1Bj4R,KAAKmiD,SAASi3O,wBACdp5R,KAAKq6R,0BAETr6R,KAAKi5R,YAAYjhR,MAAM/T,GACvBjE,KAAKkrR,YAAYlzQ,QACjBhY,KAAK24R,SAAWJ,GAAgBK,oBAC5B30R,EAAMk0R,WAAWn4R,KAAKg5R,yBACtBh5R,KAAKszR,kBAAkBtyH,gBAAgBhhK,KAE/C,CACAq6R,0BACI,MAAMC,EAAYt6R,KAAKy5R,iBACvB,IAAIc,EAAc,EAClB,UAAWpxO,KAASmxO,EAChB,GAAKnxO,EAAM8rO,YAGN9rO,EAAMqxO,mBAAmB,iCAGzBrxO,EAAM/2C,KAAO25Q,MAAyCkL,yBAGtD,GAAI9tO,EAAM0tO,WAAY,CACvB,MAAM5mH,EAASjwK,KAAKq4I,OAAO89I,QAAQoE,MAAkBv6R,KAAKq4I,OAAO89I,QAAQ,GACpEn2R,KAAKq4I,OAAOoiJ,yBACbz6R,KAAKq4I,OAAOoiJ,uBAAyBxqH,GAEzC9mH,EAAM52C,MAAQ09J,CAClB,MACS9mH,EAAM2tO,iBACX3tO,EAAM52C,MAAQ,CAAE2+H,OAAQlxI,KAAKq4I,OAAOnH,OAAQglJ,gBAAiBl2R,KAAKq4I,OAAO69I,iBAGrF,CAOA/B,eAAe3sI,EAAU,IACrB,OAAOxnJ,KAAKkrR,YAAYiJ,eAAe3sI,EAC3C,CAIA4X,UACIp/J,KAAKkrR,YAAY9rH,SACrB,CACA+6H,iBAAiB7nM,GACbA,EAAKooM,aACD16R,KAAKmiD,SAAS+2O,eACd5mM,EAAK4mM,iBAEiC,IAAtCl5R,KAAK+4R,eAAej0P,QAAQwtD,IAC5BtyF,KAAK+4R,eAAe96Q,KAAKq0E,GAE7B,UAAWnpC,KAASmpC,EAAKxiF,OAAQ,CAC7B,MAAMu8Q,EAAiBljO,EAAMkjO,eAC7B,GAAIA,EAAgB,CAChB,MAAM1uQ,EAAQ0uQ,EAAeiM,WACzB36Q,IAAU20E,GACVtyF,KAAKm6R,iBAAiBx8Q,EAE9B,CACJ,CACJ,CAIAs0B,QACIjyC,KAAKi5R,YAAc,KACnBj5R,KAAK+4R,eAAerjR,OAAS,CACjC,CAKAilR,YAAYh9Q,GACR,MAAMi9Q,EAAqB56R,KAAK+4R,eAAej0P,QAAQnnB,GACnDi9Q,GAAqB,GACrB56R,KAAK+4R,eAAex9Q,OAAOq/Q,EAAoB,GAE/Cj9Q,IAAU3d,KAAKi5R,cACfj5R,KAAKi5R,YAAc,KAE3B,CAMA4B,sBAAsB5yP,EAAQ+P,GAAQ,GAC7BA,GACDh4C,KAAKiyC,QAET,MAAM5rC,EAAM,CAAC,EAEb,UAAWy0R,KAAe7yP,EAAO0uJ,OAAQ,CACrC,MAAMokG,KAAYC,OAASF,EAAYG,YACvC,GAAIF,EAAW,CACX,MAAMG,EAAmCJ,EAAYI,iCAC/Cv9Q,EAAQu9Q,EACR,IAAIH,EAAU,GAAI/6R,KAAKkrR,YAAalrR,KAAKq4I,UAAW6iJ,GACpD,IAAIH,EAAU,GAAI/6R,KAAKkrR,YAAalrR,KAAKq4I,QAC/C16H,EAAM25Q,aAAawD,GACnBz0R,EAAIy0R,EAAYzuR,IAAMsR,EACtB3d,KAAK+4R,eAAe96Q,KAAKN,EAC7B,CACJ,CAEA,UAAWA,KAAS3d,KAAK+4R,eACrB,GAAIp7Q,EAAMw9Q,cAAe,CACrB,MACM9uR,EADcsR,EACGy9Q,wBACvB,GAAI/uR,EAAI,CACJ,MAAM47B,EAAS5hC,EAAIgG,GACf47B,GACAA,EAAOozP,iBALK19Q,EAOpB,CACJ,CAGJ,QAAS29Q,EAAa,EAAGA,EAAarzP,EAAO0uJ,OAAOjhL,OAAQ4lR,IAAc,CACtE,MAAMR,EAAc7yP,EAAO0uJ,OAAO2kG,GAC5B39Q,EAAQtX,EAAIy0R,EAAYzuR,IACzBsR,IAGDA,EAAM7N,OAAO4F,QAAUolR,EAAYhrR,OAAOiR,KAAMtD,GAAMA,EAAE89Q,wBAA0BvjP,GAGtFh4C,KAAKw7R,oBAAoB79Q,EAAOsqB,EAAQ5hC,GAC5C,CAMA,GAJI4hC,EAAOwzP,eACPz7R,KAAKi5R,YAAc5yR,EAAI4hC,EAAOwzP,eAG9BxzP,EAAOuqD,WAAcvqD,EAAO6wP,YAAc7wP,EAAO6wP,WAAWtmM,UAAY,CACxE,MAAMA,EAAYvqD,EAAOuqD,WAAavqD,EAAO6wP,WAAWtmM,UACxD,UAAW9wF,KAAY8wF,EACfnsF,EAAI3E,EAASg6R,WACbh6R,EAASg6R,QAAUr1R,EAAI3E,EAASg6R,SAAS74G,UAG7C7qI,GAASh4C,KAAK84R,YAAc94R,KAAK84R,WAAWtmM,WAC5CA,EAAUyyD,OAAOjlJ,KAAK84R,WAAWtmM,WAEjCvqD,EAAOuqD,UACPxyF,KAAK84R,WAAa,CACdtmM,UAAWA,IAIfxyF,KAAK84R,WAAa7wP,EAAO6wP,WACzB94R,KAAK84R,WAAWtmM,UAAYA,GAEhC,MAAMmpM,EAAW,GACjB,UAAWn3P,KAAOn+B,EACds1R,EAASn3P,GAAOn+B,EAAIm+B,GAAKq+I,SAE7B7iL,KAAK84R,WAAWzyR,IAAMs1R,CAC1B,CACA37R,KAAKy/E,QAAUx3C,EAAOw3C,OAC1B,CACA+7M,oBAAoB79Q,EAAOsqB,EAAQ5hC,GAC/B,UAAWu1R,KAAej+Q,EAAMmM,QAC5B,UAAW+xQ,KAAa5zP,EAAO0uJ,OAAQ,CACnC,MAAMtpK,EAAShnB,EAAIw1R,EAAUxvR,IAC7B,GAAKghB,EAGL,UAAW87B,KAAS0yO,EAAU/rR,OAC1B,GAAIzJ,EAAI8iD,EAAM2yO,iBAAmBn+Q,GAASwrC,EAAMoyO,uBAAyBK,EAAYr1R,KAAM,CACvF,MAAMw1R,GAAa1uQ,EAAO2uQ,eAAe7yO,EAAM8yO,WAC/C,IAAKF,IAAcA,GAAWG,YAC1B,SAEJN,EAAYO,UAAUJ,IAAY,GAClC/7R,KAAKw7R,oBAAoBnuQ,EAAQ4a,EAAQ5hC,GACzC,QACJ,CAER,CAER,CAKA+1R,eACI,IAAIC,EAAgB,GACpB,MAAM1lG,EAAS,GACT2lG,EAAc,CAAC,QAAS,MAAO,OAEjCt8R,KAAKi5R,aACLj5R,KAAKu8R,cAAcv8R,KAAKi5R,YAAatiG,GAGzC,MAAMpqK,EAAU6D,KAAKC,UAAUrwB,KAAKmiD,UACpC,IAAIq6O,EAAc,sDAAqDx8R,KAAKuG,MAAQ,2BAA2BgmB,QAC/G,UAAW+lE,KAAQqkG,EACXrkG,EAAKonM,UAA2C,IAAhC2C,EAAcv3P,QAAQwtD,KACtCkqM,GAAclqM,EAAKmqM,UAAUH,EAAaD,GAAiB,MAGnE,OAAIr8R,KAAKi5R,cAELoD,EAAgB,GAChBG,GAAc,mBACdA,GAAcx8R,KAAKi5R,YAAYyD,8BAA8BL,GAE7DG,GAAc,oBACdA,GAAe,iCAAgCx8R,KAAKi5R,YAAY5B,uBAChEmF,GAAe,8BAEZA,CACX,CACAD,cAAc11J,EAAUlrH,GACpB,IAA+B,IAA3BA,EAAKmpB,QAAQ+hG,GAGjBlrH,GAAKsC,KAAK4oH,GACV,UAAW19E,KAAS09E,EAAS/2H,OAAQ,CACjC,MAAMu8Q,EAAiBljO,EAAMkjO,eAC7B,GAAIA,EAAgB,CAChB,MAAM1uQ,EAAQ0uQ,EAAeiM,WACzB36Q,IAAUkpH,GACV7mI,KAAKu8R,cAAc5+Q,EAAOhC,EAElC,CACJ,CAEIkrH,EAASs0J,eACKt0J,EACJyqD,YACNtxL,KAAKu8R,cAFK11J,EAEeyqD,WAAY31K,EAE7C,CACJ,CAIAghR,eACI38R,KAAKiyC,QACLjyC,KAAK84R,WAAa,KAElB,MAAMlsE,EAAa,IAAIgoE,GAA0B,mBAAoB50R,KAAKkrR,YAAalrR,KAAKq4I,OAAQ0zI,MAAyC2K,mBAEvIzkP,EAAQ,IAAIylP,GAA0B,QAAS13R,KAAKkrR,YAAalrR,KAAKq4I,QAC5Eu0E,EAAWztL,OAAOg9P,UAAUlqP,EAAMs0J,SAElC,MAAMpnK,EAAS,IAAIqsP,GAA2B,SAAUxrR,KAAKkrR,YAAalrR,KAAKq4I,QAC/EpmG,EAAM9S,OAAOg9P,UAAUh9P,EAAOonK,SAC9BvmM,KAAKi5R,YAAc95P,CACvB,CAMA/7B,MAAMmD,GACF,MAAM8+H,EAAsBrlI,KAAKolI,YAC3BhiI,EAAQo/J,KAAoBC,MAAM,IAAM,IAAI81H,GAAgBhyR,EAAMvG,KAAKq4I,QAASr4I,MACtFoD,SAAMmD,KAAOA,EACbnD,EAAMy3R,sBAAsBx1J,GAC5BjiI,EAAMu1R,SAAW34R,KAAK24R,SACtBv1R,EAAM4U,QACC5U,CACX,CAMAgiI,UAAUw3J,GACN,MAAMv3J,EAAsBu3J,EAAiB,CAAC,EAAIp6H,KAAoBE,UAAU1iK,MAChFqlI,EAAoByzJ,WAAa1oQ,KAAKgG,MAAMhG,KAAKC,UAAUrwB,KAAK84R,aAChE,IAAIniG,EAAS,GACTimG,EACAjmG,EAASimG,GAGTv3J,EAAoB41J,WAAa,0BAC7Bj7R,KAAKi5R,cACL5zJ,EAAoBo2J,aAAez7R,KAAKi5R,YAAYp2G,WAI5Dx9C,EAAoBsxD,OAAS,GAC7B,UAAWh5K,KAASg5K,EAChBtxD,EAAoBsxD,OAAO14K,KAAKN,EAAMynH,aAE1C,IAAKw3J,EACD,UAAWj/Q,KAAS3d,KAAK+4R,gBACS,IAA1BpiG,EAAO7xJ,QAAQnnB,IAGnB0nH,EAAoBsxD,OAAO14K,KAAKN,EAAMynH,aAG9C,OAAOC,CACX,CAIA5jF,UACI,UAAW9jC,KAAS3d,KAAK+4R,eACrBp7Q,EAAM8jC,UAEVzhD,KAAKkrR,YAAYzpO,UACjBzhD,KAAKkrR,iBAAcroR,EACnB7C,KAAKqxK,QAAQtjC,mBAAmBr1F,OAAO14C,KAAKkqI,iBAC5ClqI,KAAKkqI,gBAAkB,KACvBlqI,KAAK+4R,eAAerjR,OAAS,EAC7B1V,KAAKszR,kBAAkBrhP,QACvBjyC,KAAKg5R,uBAAuB/mP,OAChC,CAQA,oBAAO4qP,CAAct2R,EAAM+3G,EAAOw+K,GAC9B,MAAMC,EAAc,IAAIxE,GAAgBhyR,EAAM+3G,EAAOw+K,GACrDC,SAAYJ,eACZI,EAAY/kR,QACL+kR,CACX,CASA,YAAOn6H,CAAM36H,EAAQq2E,EAAOw+K,EAAwBE,GAAY,GAC5D,MAAMD,EAAcv6H,KAAoBI,MAAM,IAAM,IAAI21H,GAAgBtwP,EAAO1hC,KAAM+3G,EAAOw+K,GAAyB70P,EAAQ,MAC7H80P,SAAYlC,sBAAsB5yP,GAC7B+0P,GACDD,EAAY/kR,QAET+kR,CACX,CAUA,4BAAOE,CAAsBC,EAAW5+K,EAAOw+K,EAAwB5C,EAAiB8C,GAAY,GAChG,MAAkB,WAAdE,EACOvlR,QAAQC,QAAQ2gR,GAAgBsE,cAAc,QAASv+K,EAAOw+K,IAElE,IAAInlR,QAAQ,CAACC,EAASiwD,KACzB,MAAMnpD,GAAU,IAAIy+Q,KACpBz+Q,GAAQm6D,iBAAiB,mBAAoB,KACzC,GAA0B,GAAtBn6D,GAAQy9O,WACR,GAAsB,KAAlBz9O,GAAQ8xB,OAAe,CACvB,MAAM4sP,GAAUhtQ,KAAKgG,MAAMhG,KAAKgG,MAAM1X,GAAQk6G,cAAcykK,aACtDh4J,GAAsBj1G,KAAKgG,MAAMgnQ,GAAQlD,iBAC1CA,IACDA,EAAkB13H,KAAoBI,MAAM,IAAM,IAAI21H,GAAgB2E,EAAW5+K,EAAOw+K,GAAyBz3J,GAAqB,OAE1I60J,EAAgBW,sBAAsBx1J,IACtC60J,EAAgBgD,UAAYA,EAC5B,IACSF,GACD9C,EAAgBliR,QAEpBJ,EAAQsiR,EACZ,OACO1xR,IACHq/D,EAAOr/D,GACX,CACJ,MAEIq/D,EAAO,8BAAgCq1N,EAAS,GAI5Dx+Q,GAAQ03F,KAAK,MAAOp2G,KAAKs9R,WAAa,IAAMJ,EAAUj4R,QAAQ,KAAM,MACpEyZ,GAAQ83F,MAAK,EAErB,EAEJ+hL,GAAgBK,kBAAoB,EAEpCL,GAAgBsB,UAAa,GAAE9pH,KAAMotB,mBAAmB6E,KAAOnoC,qDAE/D0+H,GAAgB+E,WAAc,mCAC9Bz6H,OAAW,IACPz9B,UACDmzJ,GAAgBh0P,UAAW,YAAQ,IAAM,EAC5Cs+H,OAAW,IACPz9B,OAAU,YACXmzJ,GAAgBh0P,UAAW,eAAW,aCvjBzCs6H,SAAc,oCAvCP,MAAM0+H,WAAkC9R,KAO3C5rR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK8rR,cAAc,QAASC,MAAyCyR,YACrEx9R,KAAKm1R,eAAe,SAAUpJ,MAAyC4L,cACvE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,EAC1D,CAKAvmJ,eACI,MAAO,2BACX,CAIA,SAAIx8E,GACA,OAAOnpD,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAGlBjE,KAAK63R,6BADS73R,KAAKksR,QAAQ,GADZlsR,KAAKu2R,SAAS,GAGjC,ICtCG,IAAMkH,GAA4B,MAAlC,MAAMA,UAAqC3Q,KAC9C5mG,eAAeC,EAAWxqK,GAClBwqK,GACAnmL,KAAKomL,cAAe,EACpBzqK,EAAKsC,KAAKtG,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,UAGV1qK,EAAKsC,KAAKtG,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QAElB,CAOAxmL,YAAY0G,EAAMmkI,EAAS,KAAMn+G,GAC7B1oB,MAAM,IACC0oB,EACHhmB,OACAmkI,OAAQA,GAAUs3D,KAAO07F,kBACzB3Q,gBAAgB,EAChB4Q,kBAAkB,EAClB7kB,eAAgB2kB,EAA6BG,YAC7CxlF,SAAUqlF,EAA6BI,WAK3C79R,KAAK89R,OAAS,CAClB,CACA7vP,OACIpqC,MAAMoqC,OACNjuC,KAAK+9R,aAAahiR,OAAOgmJ,SAAS,SAAU/hK,KAAK89R,OACrD,EAKJL,SAA6BG,YAAc,gBAI3CH,EAA6BI,SAAW,CAAC,UA3C5BJ,CAA4B,KCAlC,MAAMO,WAAkCjT,KAO3ClrR,YAAY0G,EAAMqlR,EAAYqS,GAC1Bp6R,MAAM0C,EAAMqlR,GAIZ5rR,KAAKk+R,mBAAqB,EAC1Bl+R,KAAKi+R,YAAcA,EACnBj+R,KAAKm+R,wBAA0Bn+R,KAAKi+R,YAAYvP,YAChD1uR,KAAK4lP,cAAgB5lP,KAAKkrR,YAAYoH,sBAC1C,CACAv+F,UACI,OAAO/zL,KAAKi+R,YAAYlqG,SAC5B,CACAhkL,OAAOquR,GAA+B,EAAOC,EAAmBC,GAC5D,QAA2Bz7R,IAAvB7C,KAAKgrR,cACL,MAAM,IAAI1lQ,MAAO,8BAA6BtlB,KAAKuG,oCAEvD,MAAMg4R,EAA+Bv+R,KAAKkrR,YAAY+F,0BAA0BjxR,KAAKgrR,eAAe,GACpGuT,EAA6BhyQ,QAAQo9K,qBAAsB,EAC3D40F,EAA6BhyQ,QAAQq9K,uBAAwB,EAC7D20F,EAA6BhyQ,QAAQy9K,QAAU,EAC/ChqM,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK4lP,cAAe5lP,KAAKy3R,mBAAoBz3R,KAAKuG,KAAMg4R,GAC/F,MAAMC,EAA2Bx+R,KAAKkrR,YAAYsJ,sBAAsBx0R,KAAK4lP,eAC7E5lP,KAAKy+R,aAAeD,EAAyBnlQ,KAAKoB,MAClDz6B,KAAK0+R,cAAgBF,EAAyBnlQ,KAAKqB,OACnD,MAAMuwP,EAAOjrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,MAYjD,GAXA0kR,EAAK0T,WAAW3+R,KAAKgrR,eACrBC,EAAKG,gBAAgBprR,KAAK4lP,eAC1BqlC,EAAKI,eAAgB7vG,IACjBA,EAAQ6yG,uBAAuBruR,KAAKgrR,cAAehrR,KAAKk+R,oBACxDG,IAAoB7iH,GACpBA,EAAQizG,sBAAsBzuR,KAAKm+R,wBAAyB,KACxD3iH,EAAQ8yG,kBAAkBtuR,KAAKm+R,wBAAwBpiR,OAAQ,iBAAkB/b,KAAKgrR,eACtFsT,IAAqB9iH,GACrBx7K,KAAKi+R,YAAYhwP,MAAK,EACzB,IAEAmwP,EAA8B,CAC/B,MAAM7S,EAAevrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,KAAO,aAAa,GAC7EglR,EAAaH,gBAAgBprR,KAAK4lP,eAClC2lC,EAAaF,eAAgB7vG,KACzBA,GAAQ+/C,YAAYv7N,KAAKgrR,cAAa,EAE9C,CACA,OAAOC,CACX,CACAxpO,UACIzhD,KAAKi+R,YAAYx8O,UACjB59C,MAAM49C,SACV,ECxDG,MAAMm9O,WAAoCZ,GAO7Cn+R,YAAY0G,EAAMqlR,EAAYiT,GAC1Bh7R,MAAM0C,EAAMqlR,EAAYiT,GAAmB,IAAIpB,GAA6Bl3R,EAAMqlR,EAAWlhJ,QACjG,ECJG,MAAMo0J,WAAqDrT,KAI9D,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CAOA9rR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK8rR,cAAc,SAAUC,MAAyC5rD,SACtEngO,KAAK8rR,cAAc,cAAeC,MAAyC5rD,SAAS,GACpFngO,KAAKm1R,eAAe,SAAUpJ,MAAyC4L,cACvE33R,KAAKioC,OAAO+jP,gCAAgCD,MAAyCkL,yBACrFj3R,KAAKq2M,YAAY21E,gCAAgCD,MAAyCE,YAC1FjsR,KAAKm/B,OAAOy4P,sBAAwB,IACzB53R,KAAKq2M,YAAY6lF,YAAcl8R,KAAKq2M,YAAcr2M,KAAKioC,OAElEjoC,KAAK2rR,gBAAkB,IAAIiT,GAA4B5+R,KAAKuG,KAAMqlR,EAAY,IAAI6R,GAA6Bl3R,EAAM+3G,EAAM6xD,aAC/H,CAEA,sBAAI+tH,GACA,OAAOl+R,KAAK2rR,gBAAgBuS,kBAChC,CACA,sBAAIA,CAAmB3rR,GACnBvS,KAAK2rR,gBAAgBuS,mBAAqB3rR,CAC9C,CAEA,UAAIurR,GACA,OAAO99R,KAAK2rR,gBAAgBsS,YAAYH,MAC5C,CACA,UAAIA,CAAOvrR,GACPvS,KAAK2rR,gBAAgBsS,YAAYH,OAASvrR,CAC9C,CAKAozH,eACI,MAAO,8CACX,CAIA,UAAI19F,GACA,OAAOjoC,KAAKksR,QAAQ,EACxB,CAIA,eAAI71E,GACA,OAAOr2M,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBjE,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjCvG,KAAKm/B,OAAO5sB,MAAQvS,KAAK2rR,gBAAgB/lC,cACzC,MAAMm5C,EAAuB/+R,KAAKioC,OAAOokP,eACrC0S,IACA/+R,KAAK2rR,gBAAgBX,cAAgB+T,EAAqBxsR,OAE9D,MAAMysR,EAA4Bh/R,KAAKq2M,YAAYg2E,eAC/C2S,IACAh/R,KAAK2rR,gBAAgB8L,mBAAqBuH,EAA0BzsR,MAE5E,CACA4kR,sBACI,MAAMC,EAAQ,GACdA,SAAMn5Q,KAAM,GAAEje,KAAKq3R,8BAA8Br3R,KAAK89R,WACtD1G,EAAMn5Q,KAAM,GAAEje,KAAKq3R,0CAA0Cr3R,KAAKk+R,uBAC3Dr6R,MAAMszR,sBAAwBC,EAAMltR,KAAK,KACpD,CACAk7H,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBy4J,OAAS99R,KAAK89R,OAClCz4J,EAAoB64J,mBAAqBl+R,KAAKk+R,mBACvC74J,CACX,CACAiyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,GACnBrlI,KAAK89R,OAASz4J,EAAoBy4J,OAClC99R,KAAKk+R,mBAAqB74J,EAAoB64J,kBAClD,GAEJr7H,SAAW,IACP00H,MAAuB,uBAAwB,EAA6C,eAC7FuH,GAA6Cv6P,UAAW,qBAAsB,OAAI,EACrFs+H,OAAW,IACP00H,MAAuB,SAAU,EAAsC,aAAc,CAAE/6O,IAAK,EAAGC,IAAK,KACrGqiP,GAA6Cv6P,UAAW,SAAU,OAAI,EACzEs6H,OAAc,uDAAwDigI,oBC1G/D,MAAMG,WAAiCjB,GAC1Cn+R,YAAY0G,EAAMqlR,EAAYiT,GAC1Bh7R,MAAM0C,EAAMqlR,EAAYiT,GAAmB,IAAIK,KAA0B34R,EAAMqlR,EAAWlhJ,QAC9F,CACA36H,OAAOquR,GAA+B,GAClC,QAA2Bv7R,IAAvB7C,KAAKgrR,oBAAoDnoR,IAArB7C,KAAKm/R,YACzC,MAAM,IAAI75Q,MAAO,6BAA4BtlB,KAAKuG,qDAEtD,MAAM0kR,EAAOpnR,MAAMkM,OAAOquR,OAA8Bv7R,EAAY24K,IAChEA,EAAQ8yG,kBAAkBtuR,KAAKm+R,wBAAwBpiR,OAAQ,YAAa/b,KAAKm/R,YAAW,GAEhGlU,SAAK0T,WAAW3+R,KAAKm/R,aACdlU,CACX,8BCbG,MAAMmU,WAAwCpB,GAOjDn+R,YAAY0G,EAAMqlR,EAAYiT,GAC1Bh7R,MAAM0C,EAAMqlR,EAAYiT,GAAmB,IAAIQ,KAAiC94R,EAAMqlR,EAAWlhJ,QACrG,kBCRG,MAAM40J,WAA2BtB,GAOpCn+R,YAAY0G,EAAMqlR,EAAYiT,GAC1Bh7R,MAAM0C,EAAMqlR,EAAYiT,GAAmB,IAAIU,KAAoBh5R,EAAMqlR,EAAWlhJ,OAAQ,IAAIwxC,KAAQ,EAAG,GAAI,IACnH,CACAnsK,OAAOquR,GAA+B,EAAOC,EAAmBC,GAC5D,MAAMrT,EAAOpnR,MAAMkM,OAAOquR,EAA8BC,EAAmBC,GAC3E,OAAAt+R,KAAKi+R,YAAYuB,aAAex/R,KAAKy+R,aACrCz+R,KAAKi+R,YAAYwB,cAAgBz/R,KAAK0+R,cAC/BzT,CACX,ECZG,MAAMyU,WAA4B3U,KAYrClrR,YAAY0G,EAAMqlR,EAAYlhJ,EAAQi1J,EAAQC,EAAQC,EAAWC,GAAM,EAAOC,GAAa,IAQvF,GAPAl8R,MAAM0C,EAAMqlR,GAIZ5rR,KAAKk+R,mBAAqB,EAC1Bl+R,KAAK8/R,IAAMA,EACX9/R,KAAKggS,4BAA8B,EAC/BF,EAAK,CACL,MAAM18F,GAAO14D,EAAOu0D,UAChBmE,GAAK+kB,uBACLnoN,KAAKggS,4BAA8B,EAE9B58F,GAAK6kB,qBACVjoN,KAAKggS,4BAA8B,EAE3C,CACAhgS,KAAKigS,MAAQ,IAAIC,KAAgB35R,EAAMmkI,EAAQq1J,IAC/C//R,KAAKigS,MAAMJ,UAAYA,EACvB7/R,KAAKigS,MAAML,OAASA,EACpB5/R,KAAKigS,MAAMN,OAASA,EACpB3/R,KAAKmgS,WAAa,IAAIf,GAAiC,GAAE74R,cAAkBvG,KAAKkrR,YAAalrR,KAAKigS,MAAME,YACxGngS,KAAKogS,OAAS,IAAId,GAAoB,GAAE/4R,WAAevG,KAAKkrR,YAAalrR,KAAKigS,MAAMG,QACpFpgS,KAAKqgS,OAAS,IAAIf,GAAoB,GAAE/4R,WAAevG,KAAKkrR,YAAalrR,KAAKigS,MAAMI,QACpFrgS,KAAKsgS,OAAS,IAAIrB,GAA0B,GAAE14R,UAAcvG,KAAKkrR,YAAalrR,KAAKigS,MAAMK,QACzFtgS,KAAK4lP,cAAgB5lP,KAAKkrR,YAAYoH,sBAC1C,CACAv+F,UACI,OAAO/zL,KAAKigS,MAAMlsG,SACtB,CACAhkL,SACI,QAA2BlN,IAAvB7C,KAAKgrR,cACL,MAAM,IAAI1lQ,MAAM,kDAEpB,MAAMi7Q,EAA2BvgS,KAAKkrR,YAAYsJ,sBAAsBx0R,KAAKgrR,eACvEwV,EAAyB,CAC3BnnQ,KAAM,CACFoB,MAAOld,KAAKwrC,MAAMw3O,EAAyBlnQ,KAAKoB,MAAQz6B,KAAKigS,MAAMlgH,OACnErlJ,OAAQnd,KAAKwrC,MAAMw3O,EAAyBlnQ,KAAKqB,OAAS16B,KAAKigS,MAAMlgH,QAEzExzJ,QAAS,CACLq+O,eAAe,EACftmI,iBAAiB,EACjBt6F,MAAO,CAAChqC,KAAKggS,6BACb/1F,cAAe,CAAC,GAChBE,QAAS,CAAC,GACVH,QAAS,EACTE,eAAgB,EAAC,GACjBP,qBAAqB,EACrBC,uBAAuB,EACvBr5L,MAAO,IAEX8gR,kBAAkB,GAEhBoP,EAAyBzgS,KAAKkrR,YAAYlqD,0BAA0BhhO,KAAKmgS,WAAW55R,KAAMi6R,GAChGxgS,KAAKmgS,WAAWnV,cAAgBhrR,KAAKgrR,cACrChrR,KAAKmgS,WAAWjC,mBAAqB,EACrCl+R,KAAKmgS,WAAW1I,mBAAqBgJ,EACrCzgS,KAAKmgS,WAAWpwR,QAAO,GACvB,MAAM2wR,EAAqB1gS,KAAKkrR,YAAYlqD,0BAA0BhhO,KAAKogS,OAAO75R,KAAMi6R,GACxFxgS,KAAKogS,OAAOpV,cAAgByV,EAC5BzgS,KAAKogS,OAAOlC,mBAAqB,EACjCl+R,KAAKogS,OAAO3I,mBAAqBiJ,EACjC1gS,KAAKogS,OAAOrwR,QAAO,GACnB,MAAM4wR,EAAqB3gS,KAAKkrR,YAAYlqD,0BAA0BhhO,KAAKqgS,OAAO95R,KAAMi6R,GACxFxgS,KAAKqgS,OAAOrV,cAAgB0V,EAC5B1gS,KAAKqgS,OAAOnC,mBAAqB,EACjCl+R,KAAKqgS,OAAO5I,mBAAqBkJ,EACjC3gS,KAAKqgS,OAAOtwR,QAAO,GACnB,MAAMwuR,EAA+Bv+R,KAAKkrR,YAAY+F,0BAA0BjxR,KAAKgrR,eAAe,GACpGuT,EAA6BhyQ,QAAQo9K,qBAAsB,EAC3D40F,EAA6BhyQ,QAAQq9K,uBAAwB,EAC7D5pM,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK4lP,cAAe5lP,KAAKy3R,mBAAoBz3R,KAAKsgS,OAAO/5R,KAAMg4R,GACtGv+R,KAAKsgS,OAAOtV,cAAgBhrR,KAAKgrR,cACjChrR,KAAKsgS,OAAOpC,mBAAqBl+R,KAAKk+R,mBACtCl+R,KAAKsgS,OAAOnB,YAAcwB,EAC1B3gS,KAAKsgS,OAAO7I,mBAAqBz3R,KAAK4lP,cACtC5lP,KAAKsgS,OAAOvwR,QAAO,GACnB,MAAMw7Q,EAAevrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,KAAO,aAAa,GAC7EglR,EAAaH,gBAAgBprR,KAAK4lP,eAClC2lC,EAAaF,eAAgB7vG,KACzBA,GAAQ+/C,YAAYv7N,KAAKgrR,cAAa,EAE9C,CACAvpO,UACIzhD,KAAKmgS,WAAW1+O,UAChBzhD,KAAKogS,OAAO3+O,UACZzhD,KAAKqgS,OAAO5+O,UACZzhD,KAAKsgS,OAAO7+O,UACZ59C,MAAM49C,SACV,ECtGG,MAAMm/O,WAA6CnV,KAItD,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CASA9rR,YAAY0G,EAAMqlR,EAAYttK,EAAOwhL,GAAM,EAAOC,EAAa,IAC3Dl8R,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK6gS,kCAAoC,CAACf,EAAKC,GAC/C//R,KAAK8rR,cAAc,SAAUC,MAAyC5rD,SACtEngO,KAAK8rR,cAAc,cAAeC,MAAyC5rD,SAAS,GACpFngO,KAAKm1R,eAAe,SAAUpJ,MAAyC4L,cACvE33R,KAAKioC,OAAO+jP,gCAAgCD,MAAyCkL,yBACrFj3R,KAAKq2M,YAAY21E,gCAAgCD,MAAyCE,YAC1FjsR,KAAKm/B,OAAOy4P,sBAAwB,IACzB53R,KAAKq2M,YAAY6lF,YAAcl8R,KAAKq2M,YAAcr2M,KAAKioC,OAElEjoC,KAAK2rR,gBAAkB,IAAI+T,GAAoB1/R,KAAKuG,KAAMqlR,EAAYttK,EAAM6xD,YAAa,IAAM,GAAI,GAAK2vH,EAAKC,EACjH,CACAe,YAAYf,EAAYD,GACpB,MAAM5B,EAAqBl+R,KAAK2rR,gBAAgBuS,mBAC1C2B,EAAY7/R,KAAK2rR,gBAAgBsU,MAAMJ,UACvCF,EAAS3/R,KAAK2rR,gBAAgBsU,MAAMN,OACpCC,EAAS5/R,KAAK2rR,gBAAgBsU,MAAML,OAC1C5/R,KAAK2rR,gBAAgBlqO,UACrBzhD,KAAK2rR,gBAAkB,IAAI+T,GAAoB1/R,KAAKuG,KAAMvG,KAAKkrR,YAAalrR,KAAKq4I,OAAO83B,YAAawvH,EAAQC,EAAQC,EAAWC,EAAKC,GACrI//R,KAAK2rR,gBAAgBuS,mBAAqBA,EAC1Cl+R,KAAK6gS,kCAAoC,CAACf,EAAKC,EACnD,CAEA,cAAIA,GACA,OAAO//R,KAAK2rR,gBAAgBsU,MAAMlgH,KACtC,CACA,cAAIggH,CAAWxtR,GACXvS,KAAK8gS,YAAYvuR,EAAOvS,KAAK2rR,gBAAgBmU,IACjD,CAEA,OAAIA,GACA,OAAO9/R,KAAK2rR,gBAAgBmU,GAChC,CACA,OAAIA,CAAIvtR,GACJvS,KAAK8gS,YAAY9gS,KAAK2rR,gBAAgBsU,MAAMlgH,MAAOxtK,EACvD,CAEA,sBAAI2rR,GACA,OAAOl+R,KAAK2rR,gBAAgBuS,kBAChC,CACA,sBAAIA,CAAmB3rR,GACnBvS,KAAK2rR,gBAAgBuS,mBAAqB3rR,CAC9C,CAEA,aAAIstR,GACA,OAAO7/R,KAAK2rR,gBAAgBsU,MAAMJ,SACtC,CACA,aAAIA,CAAUttR,GACVvS,KAAK2rR,gBAAgBsU,MAAMJ,UAAYttR,CAC3C,CAEA,UAAIotR,GACA,OAAO3/R,KAAK2rR,gBAAgBsU,MAAMN,MACtC,CACA,UAAIA,CAAOptR,GACPvS,KAAK2rR,gBAAgBsU,MAAMN,OAASptR,CACxC,CAEA,UAAIqtR,GACA,OAAO5/R,KAAK2rR,gBAAgBsU,MAAML,MACtC,CACA,UAAIA,CAAOrtR,GACPvS,KAAK2rR,gBAAgBsU,MAAML,OAASrtR,CACxC,CAKAozH,eACI,MAAO,sCACX,CAIA,UAAI19F,GACA,OAAOjoC,KAAKksR,QAAQ,EACxB,CAIA,eAAI71E,GACA,OAAOr2M,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBjE,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjCvG,KAAKm/B,OAAO5sB,MAAQvS,KAAK2rR,gBAAgB/lC,cACzC,MAAMm5C,EAAuB/+R,KAAKioC,OAAOokP,eACrC0S,IACA/+R,KAAK2rR,gBAAgBX,cAAgB+T,EAAqBxsR,OAE9D,MAAMysR,EAA4Bh/R,KAAKq2M,YAAYg2E,eAC/C2S,IACAh/R,KAAK2rR,gBAAgB8L,mBAAqBuH,EAA0BzsR,MAE5E,CACA4kR,sBACI,MAAMC,EAAQ,GACdA,SAAMn5Q,KAAM,GAAEje,KAAKq3R,iCAAiCr3R,KAAK6/R,cACzDzI,EAAMn5Q,KAAM,GAAEje,KAAKq3R,8BAA8Br3R,KAAK2/R,WACtDvI,EAAMn5Q,KAAM,GAAEje,KAAKq3R,8BAA8Br3R,KAAK4/R,WACtDxI,EAAMn5Q,KAAM,GAAEje,KAAKq3R,0CAA0Cr3R,KAAKk+R,uBAC3Dr6R,MAAMszR,sBAAwBC,EAAMltR,KAAK,KACpD,CACAk7H,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBw6J,UAAY7/R,KAAK6/R,UACrCx6J,EAAoBs6J,OAAS3/R,KAAK2/R,OAClCt6J,EAAoBu6J,OAAS5/R,KAAK4/R,OAClCv6J,EAAoB64J,mBAAqBl+R,KAAKk+R,mBACvC74J,CACX,CACAiyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,GACnBrlI,KAAK6/R,UAAYx6J,EAAoBw6J,UACrC7/R,KAAK2/R,OAASt6J,EAAoBs6J,OAClC3/R,KAAK4/R,OAASv6J,EAAoBu6J,OAClC5/R,KAAKk+R,mBAAqB74J,EAAoB64J,kBAClD,GAEJr7H,SAAW,IACP00H,MAAuB,cAAe,EAAsC,eAC7EqJ,GAAqCr8P,UAAW,aAAc,OAAI,EACrEs+H,OAAW,IACP00H,MAAuB,MAAO,EAAwC,eACvEqJ,GAAqCr8P,UAAW,MAAO,OAAI,EAC9Ds+H,OAAW,IACP00H,MAAuB,uBAAwB,IAChDqJ,GAAqCr8P,UAAW,qBAAsB,OAAI,EAC7Es+H,OAAW,IACP00H,MAAuB,YAAa,EAAsC,aAAc,CAAE/6O,IAAK,EAAGC,IAAK,KACxGmkP,GAAqCr8P,UAAW,YAAa,OAAI,EACpEs+H,OAAW,IACP00H,MAAuB,SAAU,EAAsC,aAAc,CAAE/6O,IAAK,EAAGC,IAAK,KACrGmkP,GAAqCr8P,UAAW,SAAU,OAAI,EACjEs+H,OAAW,IACP00H,MAAuB,SAAU,EAAoC,aAAc,CAAE/6O,IAAK,EAAGC,IAAK,OACnGmkP,GAAqCr8P,UAAW,SAAU,OAAI,EACjEs6H,OAAc,+CAAgD+hI,IC9JvD,MAAMG,WAA4CtV,KAIrD,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CAOA9rR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK8rR,cAAc,SAAUC,MAAyC5rD,SACtEngO,KAAK8rR,cAAc,cAAeC,MAAyC5rD,SAAS,GACpFngO,KAAKm1R,eAAe,SAAUpJ,MAAyC4L,cACvE33R,KAAKioC,OAAO+jP,gCAAgCD,MAAyCkL,yBACrFj3R,KAAKq2M,YAAY21E,gCAAgCD,MAAyCE,YAC1FjsR,KAAKm/B,OAAOy4P,sBAAwB,IACzB53R,KAAKq2M,YAAY6lF,YAAcl8R,KAAKq2M,YAAcr2M,KAAKioC,OAElEjoC,KAAK2rR,gBAAkB,IAAI2T,GAAmBt/R,KAAKuG,KAAMqlR,EAAY,IAAI2T,KAAoBh5R,EAAM+3G,EAAM6xD,YAAa,IAAI+L,KAAQ,EAAG,GAAI,IAC7I,CAEA,sBAAIgiH,GACA,OAAOl+R,KAAK2rR,gBAAgBuS,kBAChC,CACA,sBAAIA,CAAmB3rR,GACnBvS,KAAK2rR,gBAAgBuS,mBAAqB3rR,CAC9C,CAEA,aAAI0I,GACA,OAAOjb,KAAK2rR,gBAAgBsS,YAAYhjR,SAC5C,CACA,aAAIA,CAAU1I,GACVvS,KAAK2rR,gBAAgBsS,YAAYhjR,UAAY1I,CACjD,CAEA,UAAIqtR,GACA,OAAO5/R,KAAK2rR,gBAAgBsS,YAAY2B,MAC5C,CACA,UAAIA,CAAOrtR,GACPvS,KAAK2rR,gBAAgBsS,YAAY2B,OAASrtR,CAC9C,CAKAozH,eACI,MAAO,qCACX,CAIA,UAAI19F,GACA,OAAOjoC,KAAKksR,QAAQ,EACxB,CAIA,eAAI71E,GACA,OAAOr2M,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBjE,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjCvG,KAAKm/B,OAAO5sB,MAAQvS,KAAK2rR,gBAAgB/lC,cACzC,MAAMm5C,EAAuB/+R,KAAKioC,OAAOokP,eACrC0S,IACA/+R,KAAK2rR,gBAAgBX,cAAgB+T,EAAqBxsR,OAE9D,MAAMysR,EAA4Bh/R,KAAKq2M,YAAYg2E,eAC/C2S,IACAh/R,KAAK2rR,gBAAgB8L,mBAAqBuH,EAA0BzsR,MAE5E,CACA4kR,sBACI,MAAMC,EAAQ,GACdA,SAAMn5Q,KAAM,GAAEje,KAAKq3R,qDAAqDr3R,KAAKib,UAAUrI,MAAM5S,KAAKib,UAAUuH,OAC5G40Q,EAAMn5Q,KAAM,GAAEje,KAAKq3R,8BAA8Br3R,KAAK4/R,WACtDxI,EAAMn5Q,KAAM,GAAEje,KAAKq3R,0CAA0Cr3R,KAAKk+R,uBAC3Dr6R,MAAMszR,sBAAwBC,EAAMltR,KAAK,KACpD,CACAk7H,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBpqH,UAAYjb,KAAKib,UAAUsqH,UAC/CF,EAAoBu6J,OAAS5/R,KAAK4/R,OAClCv6J,EAAoB64J,mBAAqBl+R,KAAKk+R,mBACvC74J,CACX,CACAiyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,GACnBrlI,KAAKib,UAAU+lR,UAAU37J,EAAoBpqH,WAC7Cjb,KAAK4/R,OAASv6J,EAAoBu6J,OAClC5/R,KAAKk+R,mBAAqB74J,EAAoB64J,kBAClD,GAEJr7H,SAAW,IACP00H,MAAuB,uBAAwB,EAA6C,eAC7FwJ,GAAoCx8P,UAAW,qBAAsB,OAAI,EAC5Es+H,OAAW,IACP00H,MAAuB,YAAa,EAAwC,eAC7EwJ,GAAoCx8P,UAAW,YAAa,OAAI,EACnEs+H,OAAW,IACP00H,MAAuB,SAAU,EAAoC,aAAc,CAAE/6O,IAAK,EAAGC,IAAK,OACnGskP,GAAoCx8P,UAAW,SAAU,OAAI,EAChEs6H,OAAc,8CAA+CkiI,oBCvHtD,MAAME,WAAwCjD,GAOjDn+R,YAAY0G,EAAMqlR,EAAYiT,GAC1Bh7R,MAAM0C,EAAMqlR,EAAYiT,GAAmB,IAAIqC,KAAiC36R,EAAMqlR,EAAWlhJ,SAIjG1qI,KAAKmhS,kBAAoB,CAC7B,CACApxR,OAAOquR,GAA+B,GAClC,QAA2Bv7R,IAAvB7C,KAAKgrR,oBAAqDnoR,IAAtB7C,KAAKmtM,mBAA8CtqM,IAAhB7C,KAAKiwK,OAC5E,MAAM,IAAI3qJ,MAAO,oCAAmCtlB,KAAKuG,8DAE7D,MAAM0kR,EAAOpnR,MAAMkM,OAAOquR,EAA+B5iH,IACrDA,EAAQ6yG,uBAAuBruR,KAAKmtM,aAAcntM,KAAKmhS,kBAAiB,EACxE3lH,IACAx7K,KAAKi+R,YAAYhuH,OAASjwK,KAAKiwK,OAC/BuL,EAAQ8yG,kBAAkBtuR,KAAKm+R,wBAAwBpiR,OAAQ,eAAgB/b,KAAKmtM,aAAY,GAEpG89E,SAAK0T,WAAW3+R,KAAKmtM,cACd89E,CACX,ECtBG,MAAMmW,WAAyD3V,KAIlE,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CAOA9rR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK8rR,cAAc,SAAUC,MAAyC5rD,SACtEngO,KAAK8rR,cAAc,gBAAiBC,MAAyCqJ,kBAC7Ep1R,KAAK8rR,cAAc,cAAeC,MAAyC5rD,SAAS,GACpFngO,KAAK8rR,cAAc,SAAUC,MAAyChlG,QACtE/mL,KAAKm1R,eAAe,SAAUpJ,MAAyC4L,cACvE33R,KAAKioC,OAAO+jP,gCAAgCD,MAAyCkL,yBACrFj3R,KAAKq2M,YAAY21E,gCAAgCD,MAAyCE,YAC1FjsR,KAAKm/B,OAAOy4P,sBAAwB,IACzB53R,KAAKq2M,YAAY6lF,YAAcl8R,KAAKq2M,YAAcr2M,KAAKioC,OAElEjoC,KAAK2rR,gBAAkB,IAAIsV,GAAgCjhS,KAAKuG,KAAMqlR,EAAY,IAAIsV,KAAiC36R,EAAM+3G,EAAM6xD,YAAa,CAAEkxH,oBAAoB,IAC1K,CAEA,sBAAInD,GACA,OAAOl+R,KAAK2rR,gBAAgBuS,kBAChC,CACA,sBAAIA,CAAmB3rR,GACnBvS,KAAK2rR,gBAAgBuS,mBAAqB3rR,CAC9C,CAEA,qBAAI4uR,GACA,OAAOnhS,KAAK2rR,gBAAgBwV,iBAChC,CACA,qBAAIA,CAAkB5uR,GAClBvS,KAAK2rR,gBAAgBwV,kBAAoB5uR,CAC7C,CAEA,YAAI+uR,GACA,OAAOthS,KAAK2rR,gBAAgBsS,YAAYqD,QAC5C,CACA,YAAIA,CAAS/uR,GACTvS,KAAK2rR,gBAAgBsS,YAAYqD,SAAW/uR,CAChD,CAEA,SAAIgvR,GACA,OAAOvhS,KAAK2rR,gBAAgBsS,YAAYsD,KAC5C,CACA,SAAIA,CAAMhvR,GACNvS,KAAK2rR,gBAAgBsS,YAAYsD,MAAQhvR,CAC7C,CAEA,iBAAIivR,GACA,OAAOxhS,KAAK2rR,gBAAgBsS,YAAYuD,aAC5C,CACA,iBAAIA,CAAcjvR,GACdvS,KAAK2rR,gBAAgBsS,YAAYuD,cAAgBjvR,CACrD,CAEA,eAAIkvR,GACA,OAAOzhS,KAAK2rR,gBAAgBsS,YAAYwD,WAC5C,CACA,eAAIA,CAAYlvR,GACZvS,KAAK2rR,gBAAgBsS,YAAYwD,YAAclvR,CACnD,CAKAozH,eACI,MAAO,kDACX,CAIA,UAAI19F,GACA,OAAOjoC,KAAKksR,QAAQ,EACxB,CAIA,iBAAIwV,GACA,OAAO1hS,KAAKksR,QAAQ,EACxB,CAIA,eAAI71E,GACA,OAAOr2M,KAAKksR,QAAQ,EACxB,CAIA,UAAIj8G,GACA,OAAOjwK,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBjE,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjCvG,KAAKm/B,OAAO5sB,MAAQvS,KAAK2rR,gBAAgB/lC,cACzC,MAAMm5C,EAAuB/+R,KAAKioC,OAAOokP,eACrC0S,IACA/+R,KAAK2rR,gBAAgBX,cAAgB+T,EAAqBxsR,OAE9D,MAAMovR,EAA8B3hS,KAAK0hS,cAAcrV,eACnDsV,IACA3hS,KAAK2rR,gBAAgBx+E,aAAew0F,EAA4BpvR,OAEpE,MAAMysR,EAA4Bh/R,KAAKq2M,YAAYg2E,eAC/C2S,IACAh/R,KAAK2rR,gBAAgB8L,mBAAqBuH,EAA0BzsR,OAExE,MAAMqvR,EAAuB5hS,KAAKiwK,OAAOo8G,eACrCuV,IACA5hS,KAAK2rR,gBAAgB17G,OAAS2xH,EAAqBrvR,MAE3D,CACA4kR,sBACI,MAAMC,EAAQ,GACdA,SAAMn5Q,KAAM,GAAEje,KAAKq3R,gCAAgCr3R,KAAKshS,aACxDlK,EAAMn5Q,KAAM,GAAEje,KAAKq3R,6BAA6Br3R,KAAKuhS,UACrDnK,EAAMn5Q,KAAM,GAAEje,KAAKq3R,qCAAqCr3R,KAAKwhS,kBAC7DpK,EAAMn5Q,KAAM,GAAEje,KAAKq3R,mCAAmCr3R,KAAKyhS,gBAC3DrK,EAAMn5Q,KAAM,GAAEje,KAAKq3R,0CAA0Cr3R,KAAKk+R,uBAClE9G,EAAMn5Q,KAAM,GAAEje,KAAKq3R,yCAAyCr3R,KAAKmhS,sBAC1Dt9R,MAAMszR,sBAAwBC,EAAMltR,KAAK,KACpD,CACAk7H,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBi8J,SAAWthS,KAAKshS,SACpCj8J,EAAoBk8J,MAAQvhS,KAAKuhS,MACjCl8J,EAAoBm8J,cAAgBxhS,KAAKwhS,cACzCn8J,EAAoBo8J,YAAczhS,KAAKyhS,YACvCp8J,EAAoB64J,mBAAqBl+R,KAAKk+R,mBAC9C74J,EAAoB87J,kBAAoBnhS,KAAKmhS,kBACtC97J,CACX,CACAiyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,GACnBrlI,KAAKshS,SAAWj8J,EAAoBi8J,SACpCthS,KAAKuhS,MAAQl8J,EAAoBk8J,MACjCvhS,KAAKwhS,cAAgBn8J,EAAoBm8J,cACzCxhS,KAAKyhS,YAAcp8J,EAAoBo8J,YACvCzhS,KAAKk+R,mBAAqB74J,EAAoB64J,mBAC9Cl+R,KAAKmhS,kBAAoB97J,EAAoB87J,iBACjD,GAEJt+H,SAAW,IACP00H,MAAuB,uBAAwB,EAA6C,eAC7F6J,GAAiD78P,UAAW,qBAAsB,OAAI,EACzFs+H,OAAW,IACP00H,MAAuB,sBAAuB,EAA6C,eAC5F6J,GAAiD78P,UAAW,oBAAqB,OAAI,EACxFs+H,OAAW,IACP00H,MAAuB,YAAa,EAAsC,eAC3E6J,GAAiD78P,UAAW,WAAY,OAAI,EAC/Es+H,OAAW,IACP00H,MAAuB,SAAU,EAAsC,eACxE6J,GAAiD78P,UAAW,QAAS,OAAI,EAC5Es+H,OAAW,IACP00H,MAAuB,iBAAkB,EAAsC,eAChF6J,GAAiD78P,UAAW,gBAAiB,OAAI,EACpFs+H,OAAW,IACP00H,MAAuB,eAAgB,EAAsC,eAC9E6J,GAAiD78P,UAAW,cAAe,OAAI,EAClFs6H,OAAc,2DAA4DuiI,oBCpLnE,MAAMS,WAAwC7D,GACjDn+R,YAAY0G,EAAMqlR,EAAYiT,GAC1Bh7R,MAAM0C,EAAMqlR,EAAYiT,GAAmB,IAAIiD,KAAiCv7R,EAAMqlR,EAAWlhJ,SACjG1qI,KAAK+hS,UAAY,EACrB,CACAhyR,OAAOquR,GAA+B,GAClC,QAA2Bv7R,IAAvB7C,KAAKgrR,oBAAiEnoR,IAAlC7C,KAAKgiS,0BAAoE,IAA1BhiS,KAAK+hS,UAAUrsR,OAClG,MAAM,IAAI4P,MAAO,6BAA4BtlB,KAAKuG,6EAEtDvG,KAAKi+R,YAAYgE,aAAa,uBAAyBjiS,KAAK+hS,UAAUrsR,OAAS,GAAK,MACpF,MAAMu1Q,EAAOpnR,MAAMkM,OAAOquR,OAA8Bv7R,EAAY24K,IAChEA,EAAQ8yG,kBAAkBtuR,KAAKm+R,wBAAwBpiR,OAAQ,2BAA4B/b,KAAKgiS,0BAChGhiS,KAAK+hS,UAAU9hR,QAAQ,CAACzc,EAAQmX,KAC5B6gK,EAAQ8yG,kBAAkBtuR,KAAKm+R,wBAAwBpiR,OAAQ,YAAc/b,KAAK+hS,UAAUrsR,OAASiF,EAAQ,GAAInX,EAAM,EAC1H,GAELynR,EAAK0T,WAAW3+R,KAAKgiS,0BACrB,UAAWx+R,KAAUxD,KAAK+hS,UACtB9W,EAAK0T,WAAWn7R,GAEpB,OAAOynR,CACX,ECtBG,MAAMiX,WAAwC3C,KACjD1/R,YAAY0G,EAAMmkI,EAAS,KAAMzvH,EAAW2kR,EAAQrzQ,GAChD1oB,MAAM0C,EAAMmkI,EAAQzvH,EAAW2kR,EAAQ,IAChCrzQ,EACH8jK,QAAU,mBAElB,ECHG,MAAM8xG,WAAuC7C,GAChDz/R,YAAY0G,EAAMqlR,EAAYiT,GAC1Bh7R,MAAM0C,EAAMqlR,EAAYiT,GAAmB,IAAIqD,GAAgC37R,EAAMqlR,EAAWlhJ,OAAQ,IAAIwxC,KAAQ,EAAG,GAAI,KAC3Hl8K,KAAKoiS,8BAAgC,CACzC,CACAryR,OAAOquR,GAA+B,GAClC,QAA2Bv7R,IAAvB7C,KAAKgrR,oBAAiEnoR,IAAlC7C,KAAKgiS,yBACzC,MAAM,IAAI18Q,MAAO,mCAAkCtlB,KAAKuG,kEAE5D,MAAM0kR,EAAOpnR,MAAMkM,OAAOquR,EAA+B5iH,IACrDA,EAAQ6yG,uBAAuBruR,KAAKgiS,yBAA0BhiS,KAAKoiS,8BAA6B,EAChG5mH,IACAA,EAAQ8yG,kBAAkBtuR,KAAKm+R,wBAAwBpiR,OAAQ,2BAA4B/b,KAAKgiS,yBAAwB,GAE5H/W,SAAK0T,WAAW3+R,KAAKgiS,0BACd/W,CACX,kBCdG,MAAMoX,WAAmCtX,KAS5ClrR,YAAY0G,EAAMqlR,EAAYlhJ,EAAQ43J,EAAY,EAA6CxC,GAAM,GAejG,GAdAj8R,MAAM0C,EAAMqlR,GAIZ5rR,KAAKk+R,mBAAqB,EAI1Bl+R,KAAKmhS,kBAAoB,EACzBnhS,KAAKogS,OAAS,GACdpgS,KAAKqgS,OAAS,GACdrgS,KAAKqxK,QAAU3mC,EACf1qI,KAAK8/R,IAAMA,EACX9/R,KAAKggS,4BAA8B,EAC/BF,EAAK,CACL,MAAM18F,EAAO14D,EAAOu0D,UAChBmE,EAAK+kB,uBACLnoN,KAAKggS,4BAA8B,EAE9B58F,EAAK6kB,qBACVjoN,KAAKggS,4BAA8B,EAE3C,CACAhgS,KAAKuiS,aAAe,IAAIC,KAAuBj8R,EAAMmkI,EAAQ43J,GAAW,GACxEtiS,KAAKyiS,mBAAqB,IAAIxB,GAAiC,GAAE16R,wBAA4BvG,KAAKkrR,YAAalrR,KAAKuiS,aAAaE,oBACjI,MAAMC,EAAY1iS,KAAKuiS,aAAaI,mBAAmBjtR,OACvD,QAAS+H,EAAI,EAAGA,EAAIilR,EAAWjlR,IAC3Bzd,KAAKogS,OAAOniR,KAAK,IAAIkkR,GAAgC,GAAE57R,WAAevG,KAAKkrR,YAAalrR,KAAKuiS,aAAaI,mBAAmBllR,GAAG,KAChIzd,KAAKqgS,OAAOpiR,KAAK,IAAIkkR,GAAgC,GAAE57R,WAAevG,KAAKkrR,YAAalrR,KAAKuiS,aAAaK,mBAAmBnlR,GAAG,KAEpIzd,KAAKsgS,OAAS,IAAIuB,GAAiC,GAAEt7R,UAAcvG,KAAKkrR,YAAalrR,KAAKuiS,aAAaM,WACvG7iS,KAAK4lP,cAAgB5lP,KAAKkrR,YAAYoH,sBAC1C,CACAv+F,UACI,OAAO/zL,KAAKuiS,aAAaxuG,SAC7B,CACAhkL,SACI,QAA2BlN,IAAvB7C,KAAKgrR,oBAAqDnoR,IAAtB7C,KAAKmtM,mBAA8CtqM,IAAhB7C,KAAKiwK,OAC5E,MAAM,IAAI3qJ,MAAM,mFAEpB,MAAMi7Q,EAA2BvgS,KAAKkrR,YAAYsJ,sBAAsBx0R,KAAKgrR,eACvElmJ,EAAc,CAChBrqG,MAAO8lQ,EAAyBlnQ,KAAKoB,MACrCC,OAAQ6lQ,EAAyBlnQ,KAAKqB,QAGpC8lQ,EAAyB,CAC3BnnQ,KAAMyrG,EACNv4G,QAAS,CACLq+O,eAAe,EACftmI,iBAAiB,EACjBt6F,MAAO,CAAChqC,KAAKggS,6BACb71F,QAAS,CAPsBnqM,KAAKqxK,QAAQq6B,UAAY1rM,KAAKqxK,QAAQ/b,QAAU,EAAI,EAAI,GAQvF00C,QAAS,EACTE,eAAgB,EAAC,GACjBP,qBAAqB,EACrBC,uBAAuB,EACvBr5L,MAAO,IAEX8gR,kBAAkB,GAEhByR,EAAiC9iS,KAAKkrR,YAAYlqD,0BAA0BhhO,KAAKyiS,mBAAmBl8R,KAAMi6R,GAChHxgS,KAAKyiS,mBAAmBzX,cAAgBhrR,KAAKgrR,cAC7ChrR,KAAKyiS,mBAAmBt1F,aAAentM,KAAKmtM,aAC5CntM,KAAKyiS,mBAAmBtB,kBAAoBnhS,KAAKmhS,kBACjDnhS,KAAKyiS,mBAAmBxyH,OAASjwK,KAAKiwK,OACtCjwK,KAAKyiS,mBAAmBhL,mBAAqBqL,EAC7C9iS,KAAKyiS,mBAAmB1yR,QAAO,GAC/BywR,EAAuBj0Q,QAAQ49K,QAAU,CAAC,GAC1C,MAAM43F,EAAY,GAClB,QAAStkR,GAAI,EAAGA,GAAIzd,KAAKogS,OAAO1qR,OAAQ+H,KAAK,CACzC,MAAMslR,GAAQ/iS,KAAKuiS,aAAaI,mBAAmBllR,IAAG,GACtDqnH,EAAYrqG,MAAQld,KAAKwrC,MAAMw3O,EAAyBlnQ,KAAKoB,MAAQsoQ,IACrEj+J,EAAYpqG,OAASnd,KAAKwrC,MAAMw3O,EAAyBlnQ,KAAKqB,OAASqoQ,IACvE,MAAMpC,GAAqB3gS,KAAKkrR,YAAYlqD,0BAA0BhhO,KAAKqgS,OAAO5iR,IAAGlX,KAAMi6R,GAC3FxgS,KAAKqgS,OAAO5iR,IAAGutQ,cAAsB,IAANvtQ,GAAUzd,KAAKgrR,cAAgBhrR,KAAKogS,OAAO3iR,GAAI,GAAGmoO,cACjF5lP,KAAKqgS,OAAO5iR,IAAGygR,mBAAqB,EACpCl+R,KAAKqgS,OAAO5iR,IAAGukR,yBAA2Bc,EAC1C9iS,KAAKqgS,OAAO5iR,IAAGg6Q,mBAAqBkJ,GACpC3gS,KAAKqgS,OAAO5iR,IAAG1N,QAAO,GACtB,MAAM2wR,GAAqB1gS,KAAKkrR,YAAYlqD,0BAA0BhhO,KAAKogS,OAAO3iR,IAAGlX,KAAMi6R,GAC3FxgS,KAAKogS,OAAO3iR,IAAGutQ,cAAgBhrR,KAAKqgS,OAAO5iR,IAAGmoO,cAC9C5lP,KAAKogS,OAAO3iR,IAAGygR,mBAAqB,EACpCl+R,KAAKogS,OAAO3iR,IAAGukR,yBAA2Bc,EAC1C9iS,KAAKogS,OAAO3iR,IAAGg6Q,mBAAqBiJ,GACpC1gS,KAAKogS,OAAO3iR,IAAG1N,QAAO,GACtBgyR,EAAU9jR,KAAKyiR,GACnB,CACA,MAAMnC,EAA+Bv+R,KAAKkrR,YAAY+F,0BAA0BjxR,KAAKgrR,eAAe,GACpGuT,EAA6BhyQ,QAAQo9K,qBAAsB,EAC3D40F,EAA6BhyQ,QAAQq9K,uBAAwB,EAC7D5pM,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK4lP,cAAe5lP,KAAKy3R,mBAAoBz3R,KAAKsgS,OAAO/5R,KAAMg4R,GACtGv+R,KAAKsgS,OAAOtV,cAAgBhrR,KAAKgrR,cACjChrR,KAAKsgS,OAAOpC,mBAAqBl+R,KAAKk+R,mBACtCl+R,KAAKsgS,OAAO0B,yBAA2Bc,EACvC9iS,KAAKsgS,OAAOyB,UAAYA,EACxB/hS,KAAKsgS,OAAO7I,mBAAqBz3R,KAAK4lP,cACtC5lP,KAAKsgS,OAAOvwR,QAAO,GACnB,MAAMw7Q,GAAevrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,KAAO,aAAa,GAC7EglR,GAAaH,gBAAgBprR,KAAK4lP,eAClC2lC,GAAaF,eAAgB7vG,KACzBA,GAAQ+/C,YAAYv7N,KAAKgrR,cAAa,EAE9C,CACAvpO,UACIzhD,KAAKyiS,mBAAmBhhP,UACxB,QAAShkC,EAAI,EAAGA,EAAIzd,KAAKogS,OAAO1qR,OAAQ+H,IACpCzd,KAAKogS,OAAO3iR,GAAGgkC,UACfzhD,KAAKqgS,OAAO5iR,GAAGgkC,UAEnBzhD,KAAKsgS,OAAO7+O,UACZ59C,MAAM49C,SACV,EC1HG,MAAMuhP,WAAoDvX,KAI7D,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CASA9rR,YAAY0G,EAAMqlR,EAAYttK,EAAOgkL,EAAY,EAA6CxC,GAAM,GAChGj8R,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK6gS,kCAAoC,CAACyB,EAAWxC,GACrD9/R,KAAK8rR,cAAc,SAAUC,MAAyC5rD,SACtEngO,KAAK8rR,cAAc,gBAAiBC,MAAyCqJ,kBAC7Ep1R,KAAK8rR,cAAc,cAAeC,MAAyC5rD,SAAS,GACpFngO,KAAK8rR,cAAc,SAAUC,MAAyChlG,QACtE/mL,KAAKm1R,eAAe,SAAUpJ,MAAyC4L,cACvE33R,KAAKioC,OAAO+jP,gCAAgCD,MAAyCkL,yBACrFj3R,KAAKq2M,YAAY21E,gCAAgCD,MAAyCE,YAC1FjsR,KAAKm/B,OAAOy4P,sBAAwB,IACzB53R,KAAKq2M,YAAY6lF,YAAcl8R,KAAKq2M,YAAcr2M,KAAKioC,OAElEjoC,KAAK2rR,gBAAkB,IAAI0W,GAA2BriS,KAAKuG,KAAMqlR,EAAYttK,EAAM6xD,YAAamyH,EAAWxC,EAC/G,CACAgB,YAAYwB,EAAWxC,GACnB,MAAM5B,EAAqBl+R,KAAK2rR,gBAAgBuS,mBAC1CiD,EAAoBnhS,KAAK2rR,gBAAgBwV,kBACzCM,EAAczhS,KAAK2rR,gBAAgB4W,aAAad,YAChDF,EAAQvhS,KAAK2rR,gBAAgB4W,aAAahB,MAC1CC,EAAgBxhS,KAAK2rR,gBAAgB4W,aAAaf,cAClDF,GAAWthS,KAAK2rR,gBAAgB4W,aAAajB,SACnDthS,KAAK2rR,gBAAgBlqO,UACrBzhD,KAAK2rR,gBAAkB,IAAI0W,GAA2BriS,KAAKuG,KAAMvG,KAAKkrR,YAAalrR,KAAKq4I,OAAO83B,YAAamyH,EAAWxC,GACvH9/R,KAAK2rR,gBAAgBuS,mBAAqBA,EAC1Cl+R,KAAK2rR,gBAAgBwV,kBAAoBA,EACzCnhS,KAAK2rR,gBAAgB4W,aAAad,YAAcA,EAChDzhS,KAAK2rR,gBAAgB4W,aAAahB,MAAQA,EAC1CvhS,KAAK2rR,gBAAgB4W,aAAaf,cAAgBA,EAClDxhS,KAAK2rR,gBAAgB4W,aAAajB,SAAWA,GAC7CthS,KAAK6gS,kCAAoC,CAACyB,EAAWxC,EACzD,CAEA,aAAIwC,GACA,OAAOtiS,KAAK2rR,gBAAgB4W,aAAaD,SAC7C,CACA,aAAIA,CAAU/vR,GACVvS,KAAK8gS,YAAYvuR,EAAOvS,KAAK2rR,gBAAgBmU,IACjD,CAEA,OAAIA,GACA,OAAO9/R,KAAK2rR,gBAAgBmU,GAChC,CACA,OAAIA,CAAIvtR,GACJvS,KAAK8gS,YAAY9gS,KAAK2rR,gBAAgB4W,aAAaD,UAAW/vR,EAClE,CAEA,sBAAI2rR,GACA,OAAOl+R,KAAK2rR,gBAAgBuS,kBAChC,CACA,sBAAIA,CAAmB3rR,GACnBvS,KAAK2rR,gBAAgBuS,mBAAqB3rR,CAC9C,CAEA,qBAAI4uR,GACA,OAAOnhS,KAAK2rR,gBAAgBwV,iBAChC,CACA,qBAAIA,CAAkB5uR,GAClBvS,KAAK2rR,gBAAgBwV,kBAAoB5uR,CAC7C,CAEA,eAAIkvR,GACA,OAAOzhS,KAAK2rR,gBAAgB4W,aAAad,WAC7C,CACA,eAAIA,CAAYlvR,GACZvS,KAAK2rR,gBAAgB4W,aAAad,YAAclvR,CACpD,CAEA,SAAIgvR,GACA,OAAOvhS,KAAK2rR,gBAAgB4W,aAAahB,KAC7C,CACA,SAAIA,CAAMhvR,GACNvS,KAAK2rR,gBAAgB4W,aAAahB,MAAQhvR,CAC9C,CAEA,iBAAIivR,GACA,OAAOxhS,KAAK2rR,gBAAgB4W,aAAaf,aAC7C,CACA,iBAAIA,CAAcjvR,GACdvS,KAAK2rR,gBAAgB4W,aAAaf,cAAgBjvR,CACtD,CAEA,YAAI+uR,GACA,OAAOthS,KAAK2rR,gBAAgB4W,aAAajB,QAC7C,CACA,YAAIA,CAAS/uR,GACTvS,KAAK2rR,gBAAgB4W,aAAajB,SAAW/uR,CACjD,CAKAozH,eACI,MAAO,6CACX,CAIA,UAAI19F,GACA,OAAOjoC,KAAKksR,QAAQ,EACxB,CAIA,iBAAIwV,GACA,OAAO1hS,KAAKksR,QAAQ,EACxB,CAIA,eAAI71E,GACA,OAAOr2M,KAAKksR,QAAQ,EACxB,CAIA,UAAIj8G,GACA,OAAOjwK,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBjE,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjCvG,KAAKm/B,OAAO5sB,MAAQvS,KAAK2rR,gBAAgB/lC,cACzC,MAAMm5C,EAAuB/+R,KAAKioC,OAAOokP,eACrC0S,IACA/+R,KAAK2rR,gBAAgBX,cAAgB+T,EAAqBxsR,OAE9D,MAAMovR,EAA8B3hS,KAAK0hS,cAAcrV,eACnDsV,IACA3hS,KAAK2rR,gBAAgBx+E,aAAew0F,EAA4BpvR,OAEpE,MAAMysR,EAA4Bh/R,KAAKq2M,YAAYg2E,eAC/C2S,IACAh/R,KAAK2rR,gBAAgB8L,mBAAqBuH,EAA0BzsR,OAExE,MAAMqvR,EAAuB5hS,KAAKiwK,OAAOo8G,eACrCuV,IACA5hS,KAAK2rR,gBAAgB17G,OAAS2xH,EAAqBrvR,MAE3D,CACA4kR,sBACI,MAAMC,EAAQ,GACdA,SAAMn5Q,KAAM,GAAEje,KAAKq3R,gCAAgCr3R,KAAKshS,aACxDlK,EAAMn5Q,KAAM,GAAEje,KAAKq3R,6BAA6Br3R,KAAKuhS,UACrDnK,EAAMn5Q,KAAM,GAAEje,KAAKq3R,qCAAqCr3R,KAAKwhS,kBAC7DpK,EAAMn5Q,KAAM,GAAEje,KAAKq3R,mCAAmCr3R,KAAKyhS,gBAC3DrK,EAAMn5Q,KAAM,GAAEje,KAAKq3R,0CAA0Cr3R,KAAKk+R,uBAClE9G,EAAMn5Q,KAAM,GAAEje,KAAKq3R,yCAAyCr3R,KAAKmhS,sBAC1Dt9R,MAAMszR,sBAAwBC,EAAMltR,KAAK,KACpD,CACAk7H,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBi8J,SAAWthS,KAAKshS,SACpCj8J,EAAoBk8J,MAAQvhS,KAAKuhS,MACjCl8J,EAAoBm8J,cAAgBxhS,KAAKwhS,cACzCn8J,EAAoBo8J,YAAczhS,KAAKyhS,YACvCp8J,EAAoB64J,mBAAqBl+R,KAAKk+R,mBAC9C74J,EAAoB87J,kBAAoBnhS,KAAKmhS,kBACtC97J,CACX,CACAiyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,GACnBrlI,KAAKshS,SAAWj8J,EAAoBi8J,SACpCthS,KAAKuhS,MAAQl8J,EAAoBk8J,MACjCvhS,KAAKwhS,cAAgBn8J,EAAoBm8J,cACzCxhS,KAAKyhS,YAAcp8J,EAAoBo8J,YACvCzhS,KAAKk+R,mBAAqB74J,EAAoB64J,mBAC9Cl+R,KAAKmhS,kBAAoB97J,EAAoB87J,iBACjD,GAEJt+H,SAAW,IACP00H,MAAuB,aAAc,EAAqC,aAAc,CACpFhrQ,QAAS,CACL,CAAEhc,MAAO,MAAOgC,MAAO,GACvB,CAAEhC,MAAO,SAAUgC,MAAO,GAC1B,CAAEhC,MAAO,OAAQgC,MAAO,OAGjCywR,GAA4Cz+P,UAAW,YAAa,OAAI,EAC3Es+H,OAAW,IACP00H,MAAuB,MAAO,EAAwC,eACvEyL,GAA4Cz+P,UAAW,MAAO,OAAI,EACrEs+H,OAAW,IACP00H,MAAuB,uBAAwB,EAA6C,eAC7FyL,GAA4Cz+P,UAAW,qBAAsB,OAAI,EACpFs+H,OAAW,IACP00H,MAAuB,sBAAuB,EAA6C,eAC5FyL,GAA4Cz+P,UAAW,oBAAqB,OAAI,EACnFs+H,OAAW,IACP00H,MAAuB,eAAgB,EAAsC,eAC9EyL,GAA4Cz+P,UAAW,cAAe,OAAI,EAC7Es+H,OAAW,IACP00H,MAAuB,SAAU,EAAsC,eACxEyL,GAA4Cz+P,UAAW,QAAS,OAAI,EACvEs+H,OAAW,IACP00H,MAAuB,iBAAkB,EAAsC,eAChFyL,GAA4Cz+P,UAAW,gBAAiB,OAAI,EAC/Es+H,OAAW,IACP00H,MAAuB,YAAa,EAAsC,eAC3EyL,GAA4Cz+P,UAAW,WAAY,OAAI,EAC1Es6H,OAAc,sDAAuDmkI,IC5N9D,MAAMC,WAAyDxX,KAIlE,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CAOA9rR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK8rR,cAAc,SAAUC,MAAyC5rD,SACtEngO,KAAK8rR,cAAc,cAAeC,MAAyC5rD,SAAS,GACpFngO,KAAKm1R,eAAe,SAAUpJ,MAAyC4L,cACvE33R,KAAKioC,OAAO+jP,gCAAgCD,MAAyCkL,yBACrFj3R,KAAKq2M,YAAY21E,gCAAgCD,MAAyCE,YAC1FjsR,KAAKm/B,OAAOy4P,sBAAwB,IACzB53R,KAAKq2M,YAAY6lF,YAAcl8R,KAAKq2M,YAAcr2M,KAAKioC,OAElEjoC,KAAK2rR,gBAAkB,IAAIyT,GAAgCp/R,KAAKuG,KAAMqlR,EAAY,IAAIyT,KAAiC94R,EAAM+3G,EAAM6xD,aACvI,CAEA,sBAAI+tH,GACA,OAAOl+R,KAAK2rR,gBAAgBuS,kBAChC,CACA,sBAAIA,CAAmB3rR,GACnBvS,KAAK2rR,gBAAgBuS,mBAAqB3rR,CAC9C,CAEA,aAAIstR,GACA,OAAO7/R,KAAK2rR,gBAAgBsS,YAAY4B,SAC5C,CACA,aAAIA,CAAUttR,GACVvS,KAAK2rR,gBAAgBsS,YAAY4B,UAAYttR,CACjD,CAKAozH,eACI,MAAO,kDACX,CAIA,UAAI19F,GACA,OAAOjoC,KAAKksR,QAAQ,EACxB,CAIA,eAAI71E,GACA,OAAOr2M,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBjE,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjCvG,KAAKm/B,OAAO5sB,MAAQvS,KAAK2rR,gBAAgB/lC,cACzC,MAAMm5C,EAAuB/+R,KAAKioC,OAAOokP,eACrC0S,IACA/+R,KAAK2rR,gBAAgBX,cAAgB+T,EAAqBxsR,OAE9D,MAAMysR,EAA4Bh/R,KAAKq2M,YAAYg2E,eAC/C2S,IACAh/R,KAAK2rR,gBAAgB8L,mBAAqBuH,EAA0BzsR,MAE5E,CACA4kR,sBACI,MAAMC,EAAQ,GACdA,SAAMn5Q,KAAM,GAAEje,KAAKq3R,iCAAiCr3R,KAAK6/R,cACzDzI,EAAMn5Q,KAAM,GAAEje,KAAKq3R,0CAA0Cr3R,KAAKk+R,uBAC3Dr6R,MAAMszR,sBAAwBC,EAAMltR,KAAK,KACpD,CACAk7H,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBw6J,UAAY7/R,KAAK6/R,UACrCx6J,EAAoB64J,mBAAqBl+R,KAAKk+R,mBACvC74J,CACX,CACAiyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,GACnBrlI,KAAK6/R,UAAYx6J,EAAoBw6J,UACrC7/R,KAAKk+R,mBAAqB74J,EAAoB64J,kBAClD,GAEJr7H,SAAW,IACP00H,MAAuB,uBAAwB,EAA6C,eAC7F0L,GAAiD1+P,UAAW,qBAAsB,OAAI,EACzFs+H,OAAW,IACP00H,MAAuB,YAAa,EAAsC,aAAc,CAAE/6O,IAAK,EAAGC,IAAK,KACxGwmP,GAAiD1+P,UAAW,YAAa,OAAI,EAChFs6H,OAAc,2DAA4DokI,IC3GnE,MAAMC,WAAkCnY,KAO3ClrR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,GACZ5rR,KAAKq4I,OAAS/5B,EACdt+G,KAAKmjS,iBAAmB,CACpBjyJ,OAAQ,GACRglJ,gBAAiB,GAEzB,CACAnmR,SACI,QAAwBlN,IAApB7C,KAAKojS,iBAA4CvgS,IAAhB7C,KAAKiwK,OACtC,MAAM,IAAI3qJ,MAAO,6BAA4BtlB,KAAKuG,4CAEtD,MAAM0kR,EAAOjrR,KAAKkrR,YAAY2I,YAAY7zR,KAAKuG,MAC/C0kR,EAAKoY,cAAcrjS,KAAKmjS,kBACxBlY,EAAKI,eAAgB/Y,IACjBtyQ,KAAKmjS,iBAAiBjyJ,OAAS,GAC/BlxI,KAAKiwK,OAAOqzH,uBACZ,MAAMtsG,EAAgBh3L,KAAKiwK,OAAOszH,eAC5BryJ,EAASlxI,KAAKojS,WAAWlyJ,QAAUlxI,KAAKq4I,OAAOnH,OACrD,QAASzzH,EAAI,EAAGA,EAAIyzH,EAAOx7H,OAAQ+H,IAAK,CACpC,MAAMkkJ,EAAOzwB,EAAOzzH,GAChBkkJ,EAAK82B,YAAc92B,EAAKoyB,YAAcpyB,EAAK11B,aAAe01B,EAAKn6B,QAAQg8J,mBAGvE7hI,EAAKi6B,WACLj6B,EAAKyqE,WAAa,GACjBzqE,EAAK8hI,UAAYzjS,KAAKiwK,OAAOwzH,YAC7BzjS,KAAKq4I,OAAOqrJ,qBAAuB/hI,EAAKgiI,0BAA4BhiI,EAAKiiI,YAAY5sG,KACtFh3L,KAAKmjS,iBAAiBjyJ,OAAOjzH,KAAK0jJ,EAE1C,IAEJ,MAAM4pH,EAAevrR,KAAKkrR,YAAY2I,YAAY7zR,KAAKuG,KAAO,aAAa,GAC3EglR,EAAa8X,cAAcrjS,KAAKmjS,kBAChC5X,EAAaF,eAAgB/Y,IACzBtyQ,KAAKmjS,iBAAiBjyJ,OAASlxI,KAAKojS,WAAWlyJ,OAC/ClxI,KAAKmjS,iBAAiBjN,gBAAkBl2R,KAAKojS,WAAWlN,iBAEhE,GC4BJr3H,SAAc,0CAtEP,MAAMglI,WAAwCpY,KAIjD,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CAOA9rR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK8rR,cAAc,SAAUC,MAAyChlG,QACtE/mL,KAAK8rR,cAAc,UAAWC,MAAyCkK,YACvEj2R,KAAKm1R,eAAe,SAAUpJ,MAAyCkK,YACvEj2R,KAAK2rR,gBAAkB,IAAIuX,GAA0BljS,KAAKuG,KAAMqlR,EAAYttK,EAChF,CAKAqnB,eACI,MAAO,iCACX,CAIA,UAAIsqC,GACA,OAAOjwK,KAAKksR,QAAQ,EACxB,CAIA,WAAI4X,GACA,OAAO9jS,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBjE,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjCvG,KAAKm/B,OAAO5sB,MAAQvS,KAAK2rR,gBAAgBwX,iBACzC,MAAMvB,EAAuB5hS,KAAKiwK,OAAOo8G,eACrCuV,IACA5hS,KAAK2rR,gBAAgB17G,OAAS2xH,EAAqBrvR,OAEvD,MAAMwxR,EAAwB/jS,KAAK8jS,QAAQzX,eACvC0X,IACA/jS,KAAK2rR,gBAAgByX,WAAaW,EAAsBxxR,MAEhE,CACA4kR,sBAEI,OAAOtzR,MAAMszR,sBADC,GAC6BjtR,KAAK,KACpD,CACAk7H,YAEI,OAD4BvhI,MAAMuhI,WAEtC,CACAkyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,EACvB,gCCrEJ,MAAM2+J,GAAc,CAAC,IAAI74B,KAAO,EAAG,EAAG,EAAG,GAAI,IAAIA,KAAO,EAAG,EAAG,EAAG,GAAI,IAAIA,KAAO,IAAK,IAAK,IAAK,MAIxF,MAAM84B,WAAuClZ,KAIhD,UAAI96G,GACA,OAAOjwK,KAAKgmI,OAChB,CACA,UAAIiqC,CAAOA,GACPjwK,KAAKgmI,QAAUiqC,EACfjwK,KAAK0sR,UAAUtiJ,aAAepqI,KAAKiwK,MACvC,CAIA,kBAAIi0H,GACA,OAAOlkS,KAAK0sR,SAChB,CAIA,QAAInmR,GACA,OAAOvG,KAAKo1L,KAChB,CACA,QAAI7uL,CAAKgM,GACLvS,KAAKo1L,MAAQ7iL,EACTvS,KAAK0sR,YACL1sR,KAAK0sR,UAAUnmR,KAAOgM,EAE9B,CAQA1S,YAAY0G,EAAMqlR,EAAYttK,EAAO/xF,GACjC1oB,MAAM0C,EAAMqlR,GAIZ5rR,KAAKisN,WAAY,EAIjBjsN,KAAKwuR,YAAa,EAIlBxuR,KAAKq5B,KAAO,CAAEoB,MAAO,IAAKC,OAAQ,KAIlC16B,KAAKqxR,kBAAmB,EAIxBrxR,KAAKgqM,QAAU,EAIfhqM,KAAKmkS,oBAAsB,GAC3BnkS,KAAKq4I,OAAS/5B,EACdt+G,KAAKqxK,QAAUrxK,KAAKq4I,OAAO83B,YAC3BnwK,KAAK0sR,UAAY,IAAI0X,KAAe79R,EAAM+3G,EAAO/xF,GACjDvsB,KAAK0sR,UAAU2X,eAAgB,EAC/BrkS,KAAK0sR,UAAU4X,iBAAkB,EACjCtkS,KAAK0sR,UAAU6X,yCAAyC/rP,IAAI,KACnDx4C,KAAK0sR,UAAUngQ,QAAQi4Q,wBACxBlmL,EAAMq7B,uBAAsB,EAAI,GAGxC35I,KAAKuG,KAAOA,EACZvG,KAAKykS,wBAA0B,IAAItnR,IACnCnd,KAAK0kS,sBAAwB,GAC7B1kS,KAAK2kS,mBAAqB3kS,KAAKkrR,YAAYoH,uBAC3CtyR,KAAK4kS,yBAA2B5kS,KAAKkrR,YAAYoH,uBACjDtyR,KAAK6kS,2BAA6B7kS,KAAKkrR,YAAYoH,uBACnDtyR,KAAK8kS,0BAA4B9kS,KAAKkrR,YAAYoH,uBAClDtyR,KAAK+kS,2BAA6B/kS,KAAKkrR,YAAYoH,uBACnDtyR,KAAKglS,6BAA+BhlS,KAAKkrR,YAAYoH,uBACrDtyR,KAAKilS,6BAA+BjlS,KAAKkrR,YAAYoH,uBACrDtyR,KAAKklS,sBAAwBllS,KAAKkrR,YAAYoH,uBAC9CtyR,KAAKmlS,4BAA8BnlS,KAAKkrR,YAAYoH,uBACpDtyR,KAAKolS,wBAA0BplS,KAAKkrR,YAAYoH,uBAChDtyR,KAAKqlS,8BAAgCrlS,KAAKkrR,YAAYoH,sBAC1D,CAIA,0CAAIgT,GACA,OAAOC,KAAgCC,iBAAiBxlS,KAAK0sR,UAAU+Y,cAAcC,mBACzF,CACA3xG,UACI,OAAO/zL,KAAK0sR,UAAUiZ,oBAAoB3lS,KAAK4lS,cAAe5lS,KAAK6lS,eACvE,CACA91R,SACI,GAAwC,IAApC/P,KAAKmkS,oBAAoBzuR,aAAoC7S,IAApB7C,KAAKojS,WAC9C,MAAM,IAAI99Q,MAAO,kCAAiCtlB,KAAKuG,oFAE3D,MAAMu/R,EAAsB9lS,KAAK+lS,kCAC3BC,EAAehmS,KAAKimS,kCAC1BjmS,KAAKkmS,+BACLlmS,KAAKmmS,yBAAyBnmS,KAAK0sR,UAAU+Y,cAC7C,MAAMjH,EAA2Bx+R,KAAKkrR,YAAYsJ,sBAAsBsR,GACxE9lS,KAAK4lS,cAAgBpH,EAAyBnlQ,KAAKoB,MACnDz6B,KAAK6lS,eAAiBrH,EAAyBnlQ,KAAKqB,OAEpD6qQ,KAAgCa,YAAYpmS,KAAK0sR,UAAU+Y,aAAczlS,KAAKojS,WAAWlyJ,QAAUlxI,KAAKq4I,OAAOnH,QAC/G,MAAM+5I,EAAOjrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,MACjD0kR,EAAKG,gBAAgB0a,GACrB,IAAItiS,EAASsiS,EAAsB,EACnC,QAASroR,EAAI,EAAGA,EAAIzd,KAAKmkS,oBAAoBzuR,OAAQ+H,IAAK,CACtD,MAAMyiC,EAAclgD,KAAKmkS,oBAAoB1mR,GACvC9C,GAAQ4qR,KAAgCc,4BAA4BhrR,UAAWygB,IAAMA,GAAE1pB,OAAS8tC,EAAY9tC,MAElH,OAD4BmzR,KAAgCc,4BAA4B1rR,IAC5DvI,MACxB,KAAK,EACDpS,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK4kS,yBAA0BphS,KACtE,MACJ,KAAK,GACDxD,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK6kS,2BAA4BrhS,KACxE,MACJ,KAAK,EACDxD,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK8kS,0BAA2BthS,KACvE,MACJ,KAAK,EACDxD,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK+kS,2BAA4BvhS,KACxE,MACJ,KAAK,EACDxD,KAAKkrR,YAAYqH,sBAAsBvyR,KAAKglS,6BAA8BxhS,KAC1E,MACJ,KAAK,EACDxD,KAAKkrR,YAAYqH,sBAAsBvyR,KAAKilS,6BAA8BzhS,KAC1E,MACJ,KAAK,GACDxD,KAAKkrR,YAAYqH,sBAAsBvyR,KAAKklS,sBAAuB1hS,KACnE,MACJ,KAAK,EACDxD,KAAKkrR,YAAYqH,sBAAsBvyR,KAAKmlS,4BAA6B3hS,KACzE,MACJ,KAAK,EACDxD,KAAKkrR,YAAYqH,sBAAsBvyR,KAAKolS,wBAAyB5hS,KACrE,MACJ,KAAK,GACDxD,KAAKkrR,YAAYqH,sBAAsBvyR,KAAKqlS,8BAA+B7hS,KAGvF,MAC0BX,IAAtB7C,KAAKmtM,cACL89E,EAAKqb,qBAAqBtmS,KAAKmtM,cAEnC89E,EAAKI,eAAgB7vG,IACjBx7K,KAAK0sR,UAAUvnJ,WAAanlI,KAAKojS,WAAWlyJ,OAC5ClxI,KAAK0sR,UAAU6Z,mBAAqBvmS,KAAKojS,WAAWlN,gBACpD16G,EAAQ+yG,eAAevuR,KAAKisN,WAAa+5E,EAAchmS,KAAKwuR,YAAcwX,GAC1EhmS,KAAKykS,wBAAwBxkR,QAAQ,CAACkjO,EAAQqjD,MAC1ChrH,EAAQ0yG,sBAAsB8V,GAAYwC,IAAYrjD,EAAM,GAEhE3nE,EAAQqsB,gBAAgB7nM,KAAK0kS,uBAC7BlpH,EAAQ5pI,OAAO5xC,KAAK0sR,UAAW1sR,KAAK4lS,cAAe5lS,KAAK6lS,eAAc,EAE9E,CACApkP,UACI8jP,KAAgCkB,oBAAoBzmS,KAAK0sR,UAAU+Y,cACnEzlS,KAAK0sR,UAAUjrO,UACf59C,MAAM49C,SACV,CACAskP,kCACI,MAAM/7P,EAAQ,GACRmgK,EAAU,GACVI,EAAS,GACTL,EAAiB,GACvB,QAASzsL,EAAI,EAAGA,EAAIzd,KAAKmkS,oBAAoBzuR,OAAQ+H,IAAK,CACtD,MAAMyiC,EAAclgD,KAAKmkS,oBAAoB1mR,GACvC9C,EAAQ4qR,KAAgCc,4BAA4BhrR,UAAWygB,IAAMA,GAAE1pB,OAAS8tC,EAAY9tC,MAClH,IAAc,IAAVuI,EACA,MAAM,IAAI2K,MAAO,kCAAiCtlB,KAAKuG,8BAA8B25C,EAAY9tC,QAErG43B,EAAMvsB,GAAKyiC,EAAYorF,YACvB6+D,EAAQ1sL,GAAKyiC,EAAYwmP,cACzBn8F,EAAO9sL,GAAK8nR,KAAgCc,4BAA4B1rR,GAAOpU,KAC/E2jM,EAAezsL,IAAK,CACxB,CACA,OAAOzd,KAAKkrR,YAAYlqD,0BAA0BhhO,KAAKuG,KAAM,CACzD8yB,KAAMr5B,KAAKq5B,KACXg4P,iBAAkBrxR,KAAKqxR,iBACvB9kQ,QAAS,CACLq+O,eAAe,EACfjhE,qBAAqB,EACrBI,aAAc/pM,KAAKmkS,oBAAoBzuR,OACvCs0L,QAAShqM,KAAKgqM,QACdhgK,QACAmgK,UACAD,iBACAK,YAEL,EACP,CACA07F,kCACI,IAAID,GAAe,EACnB,QAA0BnjS,IAAtB7C,KAAKmtM,aAA4B,CACjC,GlC7MuC,IkC6MnCntM,KAAKmtM,aACL,MAAM,IAAI7nL,MAAO,kCAAiCtlB,KAAKuG,yEAG3D,GADgCvG,KAAKkrR,YAAYsJ,sBAAsBx0R,KAAKmtM,cAChD5gL,QAAQy9K,UAAYhqM,KAAKgqM,QACjD,MAAM,IAAI1kL,MAAO,kCAAiCtlB,KAAKuG,uFAE3DvG,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK2kS,mBAAoB3kS,KAAKmtM,cACrE64F,GAAe,CACnB,CACA,OAAOA,CACX,CACAE,+BACI,MAAMS,EAAyB,IAAIxpR,IAC7BypR,EAAuB,GAC7B,QAASnpR,EAAI,EAAGA,EAAIzd,KAAKmkS,oBAAoBzuR,OAAQ+H,IAAK,CACtD,MAAMyiC,EAAclgD,KAAKmkS,oBAAoB1mR,GACvC9C,EAAQ4qR,KAAgCc,4BAA4BhrR,UAAWygB,IAAMA,GAAE1pB,OAAS8tC,EAAY9tC,MAC5Gy0R,EAAsBtB,KAAgCc,4BAA4B1rR,GACxF,IAAIwoO,EAASwjD,EAAuB7jS,IAAI+jS,EAAoBL,WAC5D,QAAe3jS,IAAXsgP,EAAsB,CACtBA,EAAS,GACTwjD,EAAuBzpR,IAAI2pR,EAAoBL,UAAWrjD,GAC1D,QAASv5K,GAAI,EAAGA,GAAInsD,EAAGmsD,KACnBu5K,EAAOv5K,KAAK,CAEpB,CACA+8N,EAAuB1mR,QAAQ,CAACkjO,GAAQqjD,MACpCrjD,GAAOllO,KAAKuoR,KAAcK,EAAoBL,UAAS,GAE3DI,EAAqB3oR,MAAK,EAC9B,CACAje,KAAKykS,wBAA0B,IAAItnR,IACnCwpR,EAAuB1mR,QAAQ,CAACkjO,EAAQqjD,KACpCxmS,KAAKykS,wBAAwBvnR,IAAIspR,EAAWxmS,KAAKqxK,QAAQ42B,mBAAmBk7C,GAAO,GAEvFnjP,KAAK0kS,sBAAwB1kS,KAAKqxK,QAAQ42B,mBAAmB2+F,EACjE,CACAT,yBAAyBV,GACrB,MAAMx+N,EAAgBs+N,KAAgCuB,oBAAoBrB,GAC1E,QAAShoR,EAAI,EAAGA,EAAIzd,KAAKmkS,oBAAoBzuR,OAAQ+H,IAAK,CACtD,MAAMyiC,EAAclgD,KAAKmkS,oBAAoB1mR,GACvC9C,EAAQ4qR,KAAgCc,4BAA4BhrR,UAAWygB,GAAMA,EAAE1pB,OAAS8tC,EAAY9tC,MAElH60D,EAAcopH,QADck1G,KAAgCc,4BAA4B1rR,GAC9CosR,aAAetpR,CAC7D,CACJ,ECxPG,MAAMupR,WAA6Cvb,KAItD,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CAQA9rR,YAAY0G,EAAMqlR,EAAYttK,EAAOkmL,GAAyB,GAC1D3gS,MAAM0C,EAAMqlR,EAAYttK,GAExBt+G,KAAKinS,gBAAkB,EACvBjnS,KAAKknS,cAAgB,EAErBlnS,KAAKmnS,kBAAoB,EACzBnnS,KAAKonS,gBAAkB,EAEvBpnS,KAAKqnS,iBAAmB,EACxBrnS,KAAKsnS,eAAiB,EAEtBtnS,KAAKunS,kBAAoB,EACzBvnS,KAAKwnS,gBAAkB,EAEvBxnS,KAAKynS,oBAAsB,EAC3BznS,KAAK0nS,kBAAoB,EAEzB1nS,KAAK2nS,oBAAsB,EAC3B3nS,KAAK4nS,kBAAoB,EAEzB5nS,KAAK6nS,aAAe,EACpB7nS,KAAK8nS,WAAa,EAElB9nS,KAAK+nS,mBAAqB,EAC1B/nS,KAAKgoS,iBAAmB,EAExBhoS,KAAKioS,eAAiB,EACtBjoS,KAAKkoS,aAAe,EAEpBloS,KAAKmoS,qBAAuB,EAC5BnoS,KAAKooS,mBAAqB,EAC1BpoS,KAAK6gS,kCAAoC,CAAC2D,GAC1CxkS,KAAK8rR,cAAc,QAASC,MAAyC6K,yCAAyC,GAC9G52R,KAAK8rR,cAAc,SAAUC,MAAyChlG,QACtE/mL,KAAK8rR,cAAc,UAAWC,MAAyCkK,YACvEj2R,KAAKm1R,eAAe,cAAepJ,MAAyC4L,cAC5E33R,KAAKm1R,eAAe,gBAAiBpJ,MAAyCqJ,kBAC9Ep1R,KAAKm1R,eAAe,kBAAmBpJ,MAAyCsJ,oBAChFr1R,KAAKm1R,eAAe,iBAAkBpJ,MAAyCuJ,mBAC/Et1R,KAAKm1R,eAAe,kBAAmBpJ,MAAyCuJ,mBAChFt1R,KAAKm1R,eAAe,oBAAqBpJ,MAAyC2J,sBAClF11R,KAAKm1R,eAAe,oBAAqBpJ,MAAyC4J,sBAClF31R,KAAKm1R,eAAe,aAAcpJ,MAAyCyJ,eAC3Ex1R,KAAKm1R,eAAe,mBAAoBpJ,MAAyC0J,qBACjFz1R,KAAKm1R,eAAe,eAAgBpJ,MAAyC6J,iBAC7E51R,KAAKm1R,eAAe,qBAAsBpJ,MAAyC8J,uBACnF71R,KAAKykI,MAAMunJ,gCAAgCD,MAAyCiK,+BACpFh2R,KAAKqoS,YAAYzQ,sBAAwB53R,KAAKykI,MAC9CzkI,KAAK2rR,gBAAkB,IAAIsY,GAA+BjkS,KAAKuG,KAAMqlR,EAAYttK,EAAO,CAAEkmL,0BAC9F,CAEA,aAAIv4E,GACA,OAAOjsN,KAAK2rR,gBAAgB1/D,SAChC,CACA,aAAIA,CAAU15M,GACVvS,KAAK2rR,gBAAgB1/D,UAAY15M,CACrC,CAEA,cAAIi8Q,GACA,OAAOxuR,KAAK2rR,gBAAgB6C,UAChC,CACA,cAAIA,CAAWj8Q,GACXvS,KAAK2rR,gBAAgB6C,WAAaj8Q,CACtC,CAEA,0BAAIiyR,GACA,OAAOxkS,KAAK2rR,gBAAgBuY,eAAe33Q,QAAQi4Q,sBACvD,CACA,0BAAIA,CAAuBjyR,GACvBvS,KAAK2rR,gBAAgBlqO,UACrBzhD,KAAK2rR,gBAAkB,IAAIsY,GAA+BjkS,KAAKuG,KAAMvG,KAAKkrR,YAAalrR,KAAKq4I,OAAQ,CAAEmsJ,uBAAwBjyR,IAC9HvS,KAAK6gS,kCAAoC,CAACtuR,EAC9C,CAEA,SAAIkoB,GACA,OAAOz6B,KAAK2rR,gBAAgBtyP,KAAKoB,KACrC,CACA,SAAIA,CAAMloB,GACNvS,KAAK2rR,gBAAgBtyP,KAAKoB,MAAQloB,CACtC,CAEA,UAAImoB,GACA,OAAO16B,KAAK2rR,gBAAgBtyP,KAAKqB,MACrC,CACA,UAAIA,CAAOnoB,GACPvS,KAAK2rR,gBAAgBtyP,KAAKqB,OAASnoB,CACvC,CAEA,oBAAI+1R,GACA,OAAOtoS,KAAK2rR,gBAAgB0F,gBAChC,CACA,oBAAIiX,CAAiB/1R,GACjBvS,KAAK2rR,gBAAgB0F,iBAAmB9+Q,CAC5C,CAEA,WAAIy3L,GACA,OAAOhqM,KAAK2rR,gBAAgB3hF,OAChC,CACA,WAAIA,CAAQz3L,GACRvS,KAAK2rR,gBAAgB3hF,QAAUz3L,CACnC,CAKAozH,eACI,MAAO,sCACX,CAIA,SAAIlB,GACA,OAAOzkI,KAAKksR,QAAQ,EACxB,CAIA,UAAIj8G,GACA,OAAOjwK,KAAKksR,QAAQ,EACxB,CAIA,WAAI4X,GACA,OAAO9jS,KAAKksR,QAAQ,EACxB,CAIA,eAAImc,GACA,OAAOroS,KAAKu2R,SAAS,EACzB,CAIA,iBAAImL,GACA,OAAO1hS,KAAKu2R,SAAS,EACzB,CAIA,mBAAIgS,GACA,OAAOvoS,KAAKu2R,SAAS,EACzB,CAIA,kBAAIiS,GACA,OAAOxoS,KAAKu2R,SAAS,EACzB,CAIA,mBAAIkS,GACA,OAAOzoS,KAAKu2R,SAAS,EACzB,CAIA,qBAAImS,GACA,OAAO1oS,KAAKu2R,SAAS,EACzB,CAIA,qBAAIoS,GACA,OAAO3oS,KAAKu2R,SAAS,EACzB,CAIA,cAAIqS,GACA,OAAO5oS,KAAKu2R,SAAS,EACzB,CAIA,oBAAIsS,GACA,OAAO7oS,KAAKu2R,SAAS,EACzB,CAIA,gBAAIuS,GACA,OAAO9oS,KAAKu2R,SAAS,EACzB,CAIA,sBAAIwS,GACA,OAAO/oS,KAAKu2R,SAAS,GACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAM+kS,EAAoB,CACtBhpS,KAAK0hS,cAAcxF,YACnBl8R,KAAKuoS,gBAAgBrM,YACrBl8R,KAAKwoS,eAAetM,YACpBl8R,KAAKyoS,gBAAgBvM,YACrBl8R,KAAK0oS,kBAAkBxM,YACvBl8R,KAAK2oS,kBAAkBzM,YACvBl8R,KAAK4oS,WAAW1M,YAChBl8R,KAAK6oS,iBAAiB3M,YACtBl8R,KAAK8oS,aAAa5M,YAClBl8R,KAAK+oS,mBAAmB7M,aAE5B,GAAI8M,EAAkBnuP,MAAOxyB,KAAOA,IAChC,MAAM,IAAI/C,MAAM,+FAEpBtlB,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjCvG,KAAKqoS,YAAY91R,MAAQvS,KAAK2rR,gBAAgBgZ,mBAC9C3kS,KAAK0hS,cAAcnvR,MAAQvS,KAAK2rR,gBAAgBiZ,yBAChD5kS,KAAKuoS,gBAAgBh2R,MAAQvS,KAAK2rR,gBAAgBkZ,2BAClD7kS,KAAKwoS,eAAej2R,MAAQvS,KAAK2rR,gBAAgBmZ,0BACjD9kS,KAAKyoS,gBAAgBl2R,MAAQvS,KAAK2rR,gBAAgBoZ,2BAClD/kS,KAAK0oS,kBAAkBn2R,MAAQvS,KAAK2rR,gBAAgBqZ,6BACpDhlS,KAAK2oS,kBAAkBp2R,MAAQvS,KAAK2rR,gBAAgBsZ,6BACpDjlS,KAAK4oS,WAAWr2R,MAAQvS,KAAK2rR,gBAAgBuZ,sBAC7CllS,KAAK6oS,iBAAiBt2R,MAAQvS,KAAK2rR,gBAAgBwZ,4BACnDnlS,KAAK8oS,aAAav2R,MAAQvS,KAAK2rR,gBAAgByZ,wBAC/CplS,KAAK+oS,mBAAmBx2R,MAAQvS,KAAK2rR,gBAAgB0Z,8BACrD,MAAM4D,EAAsBjpS,KAAKykI,MAAM4nJ,eACnC4c,IACAjpS,KAAK2rR,gBAAgBx+E,aAAe87F,EAAoB12R,OAE5D,MAAMqvR,EAAuB5hS,KAAKiwK,OAAOo8G,eACrCuV,IACA5hS,KAAK2rR,gBAAgB17G,OAAS2xH,EAAqBrvR,OAEvD,MAAMwxR,EAAwB/jS,KAAK8jS,QAAQzX,eACvC0X,IACA/jS,KAAK2rR,gBAAgByX,WAAaW,EAAsBxxR,OAE5DvS,KAAK2rR,gBAAgBwY,oBAAsB,GAC3C,MAAM+E,EAAiB,CACnBlpS,KAAKinS,gBACLjnS,KAAKmnS,kBACLnnS,KAAKqnS,iBACLrnS,KAAKunS,kBACLvnS,KAAKynS,oBACLznS,KAAK2nS,oBACL3nS,KAAK6nS,aACL7nS,KAAK+nS,mBACL/nS,KAAKioS,eACLjoS,KAAKmoS,sBAEHgB,EAAe,CACjBnpS,KAAKknS,cACLlnS,KAAKonS,gBACLpnS,KAAKsnS,eACLtnS,KAAKwnS,gBACLxnS,KAAK0nS,kBACL1nS,KAAK4nS,kBACL5nS,KAAK8nS,WACL9nS,KAAKgoS,iBACLhoS,KAAKkoS,aACLloS,KAAKooS,oBAEHgB,GAAc,CAChB,EACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,IAEJ,QAAS3rR,GAAI,EAAGA,GAAIurR,EAAkBtzR,OAAQ+H,KACtCurR,EAAkBvrR,KAClBzd,KAAK2rR,gBAAgBwY,oBAAoBlmR,KAAK,CAC1CyoR,cAAewC,EAAezrR,IAC9B6tH,YAAa69J,EAAa1rR,IAC1BrL,KAAMg3R,GAAY3rR,KAIlC,CACA05Q,sBACI,MAAMC,EAAQ,GACdA,SAAMn5Q,KAAM,GAAEje,KAAKq3R,iCAAiCr3R,KAAKisN,cACzDmrE,EAAMn5Q,KAAM,GAAEje,KAAKq3R,kCAAkCr3R,KAAKwuR,eAC1D4I,EAAMn5Q,KAAM,GAAEje,KAAKq3R,+BAA+Br3R,KAAKgqM,YACvDotF,EAAMn5Q,KAAM,GAAEje,KAAKq3R,uCAAuCr3R,KAAKinS,oBAC/D7P,EAAMn5Q,KAAM,GAAEje,KAAKq3R,qCAAqCr3R,KAAKknS,kBAC7D9P,EAAMn5Q,KAAM,GAAEje,KAAKq3R,yCAAyCr3R,KAAKmnS,sBACjE/P,EAAMn5Q,KAAM,GAAEje,KAAKq3R,uCAAuCr3R,KAAKonS,oBAC/DhQ,EAAMn5Q,KAAM,GAAEje,KAAKq3R,2CAA2Cr3R,KAAKynS,wBACnErQ,EAAMn5Q,KAAM,GAAEje,KAAKq3R,yCAAyCr3R,KAAK0nS,sBACjEtQ,EAAMn5Q,KAAM,GAAEje,KAAKq3R,2CAA2Cr3R,KAAK2nS,wBACnEvQ,EAAMn5Q,KAAM,GAAEje,KAAKq3R,yCAAyCr3R,KAAK4nS,sBACjExQ,EAAMn5Q,KAAM,GAAEje,KAAKq3R,wCAAwCr3R,KAAKqnS,qBAChEjQ,EAAMn5Q,KAAM,GAAEje,KAAKq3R,sCAAsCr3R,KAAKsnS,mBAC9DlQ,EAAMn5Q,KAAM,GAAEje,KAAKq3R,yCAAyCr3R,KAAKunS,sBACjEnQ,EAAMn5Q,KAAM,GAAEje,KAAKq3R,uCAAuCr3R,KAAKwnS,oBAC/DpQ,EAAMn5Q,KAAM,GAAEje,KAAKq3R,oCAAoCr3R,KAAK6nS,iBAC5DzQ,EAAMn5Q,KAAM,GAAEje,KAAKq3R,kCAAkCr3R,KAAK8nS,eAC1D1Q,EAAMn5Q,KAAM,GAAEje,KAAKq3R,0CAA0Cr3R,KAAK+nS,uBAClE3Q,EAAMn5Q,KAAM,GAAEje,KAAKq3R,wCAAwCr3R,KAAKgoS,qBAChE5Q,EAAMn5Q,KAAM,GAAEje,KAAKq3R,sCAAsCr3R,KAAKioS,mBAC9D7Q,EAAMn5Q,KAAM,GAAEje,KAAKq3R,oCAAoCr3R,KAAKkoS,iBAC5D9Q,EAAMn5Q,KAAM,GAAEje,KAAKq3R,4CAA4Cr3R,KAAKmoS,yBACpE/Q,EAAMn5Q,KAAM,GAAEje,KAAKq3R,0CAA0Cr3R,KAAKooS,uBAC3DvkS,MAAMszR,sBAAwBC,EAAMltR,KAAK,KACpD,CACAk7H,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoB4mF,UAAYjsN,KAAKisN,UACrC5mF,EAAoBmpJ,WAAaxuR,KAAKwuR,WACtCnpJ,EAAoB2kE,QAAUhqM,KAAKgqM,QACnC3kE,EAAoB4hK,gBAAkBjnS,KAAKinS,gBAC3C5hK,EAAoB6hK,cAAgBlnS,KAAKknS,cACzC7hK,EAAoB8hK,kBAAoBnnS,KAAKmnS,kBAC7C9hK,EAAoB+hK,gBAAkBpnS,KAAKonS,gBAC3C/hK,EAAoBoiK,oBAAsBznS,KAAKynS,oBAC/CpiK,EAAoBqiK,kBAAoB1nS,KAAK0nS,kBAC7CriK,EAAoBsiK,oBAAsB3nS,KAAK2nS,oBAC/CtiK,EAAoBuiK,kBAAoB5nS,KAAK4nS,kBAC7CviK,EAAoBgiK,iBAAmBrnS,KAAKqnS,iBAC5ChiK,EAAoBiiK,eAAiBtnS,KAAKsnS,eAC1CjiK,EAAoBkiK,kBAAoBvnS,KAAKunS,kBAC7CliK,EAAoBmiK,gBAAkBxnS,KAAKwnS,gBAC3CniK,EAAoBwiK,aAAe7nS,KAAK6nS,aACxCxiK,EAAoByiK,WAAa9nS,KAAK8nS,WACtCziK,EAAoB0iK,mBAAqB/nS,KAAK+nS,mBAC9C1iK,EAAoB2iK,iBAAmBhoS,KAAKgoS,iBAC5C3iK,EAAoB4iK,eAAiBjoS,KAAKioS,eAC1C5iK,EAAoB6iK,aAAeloS,KAAKkoS,aACxC7iK,EAAoB8iK,qBAAuBnoS,KAAKmoS,qBAChD9iK,EAAoB+iK,mBAAqBpoS,KAAKooS,mBACvC/iK,CACX,CACAiyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,GACnBrlI,KAAKisN,UAAY5mF,EAAoB4mF,UACrCjsN,KAAKwuR,WAAanpJ,EAAoBmpJ,WACtCxuR,KAAKgqM,QAAU3kE,EAAoB2kE,QACnChqM,KAAKinS,gBAAkB5hK,EAAoB4hK,gBAC3CjnS,KAAKknS,cAAgB7hK,EAAoB6hK,cACzClnS,KAAKmnS,kBAAoB9hK,EAAoB8hK,kBAC7CnnS,KAAKonS,gBAAkB/hK,EAAoB+hK,gBAC3CpnS,KAAKynS,oBAAsBpiK,EAAoBoiK,oBAC/CznS,KAAK0nS,kBAAoBriK,EAAoBqiK,kBAC7C1nS,KAAK2nS,oBAAsBtiK,EAAoBsiK,oBAC/C3nS,KAAK4nS,kBAAoBviK,EAAoBuiK,kBAC7C5nS,KAAKqnS,iBAAmBhiK,EAAoBgiK,iBAC5CrnS,KAAKsnS,eAAiBjiK,EAAoBiiK,eAC1CtnS,KAAKunS,kBAAoBliK,EAAoBkiK,kBAC7CvnS,KAAKwnS,gBAAkBniK,EAAoBmiK,gBAC3CxnS,KAAK6nS,aAAexiK,EAAoBwiK,aACxC7nS,KAAK8nS,WAAaziK,EAAoByiK,WACtC9nS,KAAK+nS,mBAAqB1iK,EAAoB0iK,mBAC9C/nS,KAAKgoS,iBAAmB3iK,EAAoB2iK,iBAC5ChoS,KAAKioS,eAAiB5iK,EAAoB4iK,eAC1CjoS,KAAKkoS,aAAe7iK,EAAoB6iK,aACxCloS,KAAKmoS,qBAAuB9iK,EAAoB8iK,qBAChDnoS,KAAKooS,mBAAqB/iK,EAAoB+iK,kBAClD,GAEJvlI,SAAW,IACP00H,MAAuB,aAAc,EAAwC,eAC9EyP,GAAqCziQ,UAAW,YAAa,OAAI,EACpEs+H,OAAW,IACP00H,MAAuB,cAAe,EAAwC,eAC/EyP,GAAqCziQ,UAAW,aAAc,OAAI,EACrEs+H,OAAW,IACP00H,MAAuB,6BAA8B,EAAwC,eAC9FyP,GAAqCziQ,UAAW,yBAA0B,OAAI,EACjFs+H,OAAW,IACP00H,MAAuB,gBAAiB,EAAoC,eAC7EyP,GAAqCziQ,UAAW,QAAS,OAAI,EAChEs+H,OAAW,IACP00H,MAAuB,iBAAkB,EAAoC,eAC9EyP,GAAqCziQ,UAAW,SAAU,OAAI,EACjEs+H,OAAW,IACP00H,MAAuB,wBAAyB,EAAwC,eACzFyP,GAAqCziQ,UAAW,mBAAoB,OAAI,EAC3Es+H,OAAW,IACP00H,MAAuB,UAAW,EAAoC,aAAc,CAAE/6O,IAAK,EAAGC,IAAK,KACpGuqP,GAAqCziQ,UAAW,UAAW,OAAI,EAClEs+H,OAAW,IACP00H,MAAuB,oBAAqB,EAA8C,qBAC3FyP,GAAqCziQ,UAAW,uBAAmB,IAAM,EAC5Es+H,OAAW,IACP00H,MAAuB,kBAAmB,EAA4C,qBACvFyP,GAAqCziQ,UAAW,qBAAiB,IAAM,EAC1Es+H,OAAW,IACP00H,MAAuB,sBAAuB,EAA8C,qBAC7FyP,GAAqCziQ,UAAW,yBAAqB,IAAM,EAC9Es+H,OAAW,IACP00H,MAAuB,oBAAqB,EAA4C,qBACzFyP,GAAqCziQ,UAAW,uBAAmB,IAAM,EAC5Es+H,OAAW,IACP00H,MAAuB,qBAAsB,EAA8C,qBAC5FyP,GAAqCziQ,UAAW,wBAAoB,IAAM,EAC7Es+H,OAAW,IACP00H,MAAuB,mBAAoB,EAA4C,qBACxFyP,GAAqCziQ,UAAW,sBAAkB,IAAM,EAC3Es+H,OAAW,IACP00H,MAAuB,sBAAuB,EAA8C,qBAC7FyP,GAAqCziQ,UAAW,yBAAqB,IAAM,EAC9Es+H,OAAW,IACP00H,MAAuB,oBAAqB,EAA4C,qBACzFyP,GAAqCziQ,UAAW,uBAAmB,IAAM,EAC5Es+H,OAAW,IACP00H,MAAuB,wBAAyB,EAA8C,qBAC/FyP,GAAqCziQ,UAAW,2BAAuB,IAAM,EAChFs+H,OAAW,IACP00H,MAAuB,sBAAuB,EAA4C,qBAC3FyP,GAAqCziQ,UAAW,yBAAqB,IAAM,EAC9Es+H,OAAW,IACP00H,MAAuB,wBAAyB,EAA8C,qBAC/FyP,GAAqCziQ,UAAW,2BAAuB,IAAM,EAChFs+H,OAAW,IACP00H,MAAuB,sBAAuB,EAA4C,qBAC3FyP,GAAqCziQ,UAAW,yBAAqB,IAAM,EAC9Es+H,OAAW,IACP00H,MAAuB,gBAAiB,EAA8C,qBACvFyP,GAAqCziQ,UAAW,oBAAgB,IAAM,EACzEs+H,OAAW,IACP00H,MAAuB,cAAe,EAA4C,qBACnFyP,GAAqCziQ,UAAW,kBAAc,IAAM,EACvEs+H,OAAW,IACP00H,MAAuB,sBAAuB,EAA8C,qBAC7FyP,GAAqCziQ,UAAW,0BAAsB,IAAM,EAC/Es+H,OAAW,IACP00H,MAAuB,oBAAqB,EAA4C,qBACzFyP,GAAqCziQ,UAAW,wBAAoB,IAAM,EAC7Es+H,OAAW,IACP00H,MAAuB,kBAAmB,EAA8C,qBACzFyP,GAAqCziQ,UAAW,sBAAkB,IAAM,EAC3Es+H,OAAW,IACP00H,MAAuB,gBAAiB,EAA4C,qBACrFyP,GAAqCziQ,UAAW,oBAAgB,IAAM,EACzEs+H,OAAW,IACP00H,MAAuB,yBAA0B,EAA8C,qBAChGyP,GAAqCziQ,UAAW,4BAAwB,IAAM,EACjFs+H,OAAW,IACP00H,MAAuB,uBAAwB,EAA4C,qBAC5FyP,GAAqCziQ,UAAW,0BAAsB,IAAM,EAC/Es6H,OAAc,+CAAgDmoI,IC7cvD,MAAMqC,WAAqCte,KAI9C,UAAI96G,GACA,OAAOjwK,KAAKgmI,OAChB,CACA,UAAIiqC,CAAOA,GACPjwK,KAAKgmI,QAAUiqC,EACfjwK,KAAK0sR,UAAUtiJ,aAAepqI,KAAKiwK,MACvC,CAIA,kBAAIi0H,GACA,OAAOlkS,KAAK0sR,SAChB,CACA,QAAInmR,GACA,OAAOvG,KAAKo1L,KAChB,CACA,QAAI7uL,CAAKgM,GACLvS,KAAKo1L,MAAQ7iL,EACTvS,KAAK0sR,YACL1sR,KAAK0sR,UAAUnmR,KAAOgM,EAE9B,CAQA1S,YAAY0G,EAAMqlR,EAAYttK,EAAO/xF,GACjC1oB,MAAM0C,EAAMqlR,GAIZ5rR,KAAKw1C,aAAe,GAIpBx1C,KAAKisN,WAAY,EAIjBjsN,KAAKwuR,YAAa,EAClBxuR,KAAKq4I,OAAS/5B,EACdt+G,KAAK0sR,UAAY,IAAI0X,KAAe79R,EAAM+3G,EAAO/xF,GACjDvsB,KAAKuG,KAAOA,EACZvG,KAAK0sR,UAAU6X,yCAAyC/rP,IAAI,KACnDx4C,KAAK0sR,UAAUngQ,QAAQi4Q,wBACxBlmL,EAAMq7B,uBAAsB,EAAI,GAGxC35I,KAAK4lP,cAAgB5lP,KAAKkrR,YAAYoH,uBACtCtyR,KAAK2kS,mBAAqB3kS,KAAKkrR,YAAYoH,sBAC/C,CACAv+F,UACI,OAAO/zL,KAAK0sR,UAAUiZ,oBAAoB3lS,KAAK4lS,cAAe5lS,KAAK6lS,eACvE,CACA91R,OAAOquR,GAA+B,EAAOC,GACzC,QAAgCx7R,IAA5B7C,KAAKy3R,yBAAwD50R,IAApB7C,KAAKojS,WAC9C,MAAM,IAAI99Q,MAAO,gCAA+BtlB,KAAKuG,wDAEzD,MAAMi4R,EAA2Bx+R,KAAKkrR,YAAYsJ,sBAAsBx0R,KAAKy3R,oBAC7E,IAAIuO,GAAe,EACnB,QAA0BnjS,IAAtB7C,KAAKmtM,aAA4B,CACjC,GpCnEuC,IoCmEnCntM,KAAKmtM,cpCvEuB,IoCuEiCntM,KAAKy3R,mBAClE,MAAM,IAAInyQ,MAAO,gCAA+BtlB,KAAKuG,yHAEzD,GpCtEuC,IoCsEnCvG,KAAKmtM,cpC1EuB,IoC0EiCntM,KAAKy3R,mBAClE,MAAM,IAAInyQ,MAAO,gCAA+BtlB,KAAKuG,+HAGzD,GADgCvG,KAAKkrR,YAAYsJ,sBAAsBx0R,KAAKmtM,cAChD5gL,QAAQy9K,UAAYw0F,EAAyBjyQ,QAAQy9K,QAC7E,MAAM,IAAI1kL,MAAO,gCAA+BtlB,KAAKuG,uFAEzDy/R,GAAe,CACnB,CACAhmS,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK4lP,cAAe5lP,KAAKy3R,yBACtC50R,IAAtB7C,KAAKmtM,cACLntM,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK2kS,mBAAoB3kS,KAAKmtM,cAEzEntM,KAAK4lS,cAAgBpH,EAAyBnlQ,KAAKoB,MACnDz6B,KAAK6lS,eAAiBrH,EAAyBnlQ,KAAKqB,OACpD,MAAMuwP,EAAOjrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,MAYjD,GAXA0kR,EAAKG,gBAAgBprR,KAAKy3R,yBACA50R,IAAtB7C,KAAKmtM,cACL89E,EAAKqb,qBAAqBtmS,KAAKmtM,cAEnC89E,EAAKI,eAAgB7vG,IACjBx7K,KAAK0sR,UAAUvnJ,WAAanlI,KAAKojS,WAAWlyJ,OAC5ClxI,KAAK0sR,UAAU6Z,mBAAqBvmS,KAAKojS,WAAWlN,gBACpD16G,EAAQ+yG,eAAevuR,KAAKisN,WAAa+5E,EAAchmS,KAAKwuR,YAAcwX,GAC1ExqH,EAAQ5pI,OAAO5xC,KAAK0sR,UAAW1sR,KAAK4lS,cAAe5lS,KAAK6lS,gBACxDxH,IAAoB7iH,EAAO,QAEL34K,IAAtB7C,KAAKw1C,aACL,UAAWhyC,KAAUxD,KAAKw1C,aACtBy1O,EAAK0T,WAAWn7R,GAGxB,IAAK46R,EAA8B,CAC/B,MAAM7S,EAAevrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,KAAO,aAAa,GAM7E,GALAglR,EAAaH,gBAAgBprR,KAAKy3R,yBACR50R,IAAtB7C,KAAKmtM,cACLo+E,EAAa+a,qBAAqBtmS,KAAKmtM,cAE3Co+E,EAAaF,eAAgB/Y,YACHzvQ,IAAtB7C,KAAKw1C,aACL,UAAWhyC,KAAUxD,KAAKw1C,aACtB+1O,EAAaoT,WAAWn7R,EAGpC,CACJ,CACAi+C,UACIzhD,KAAK0sR,UAAUjrO,UACf59C,MAAM49C,SACV,ECvHG,MAAM6nP,WAA+C7d,KAIxD,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CAOA9rR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK8rR,cAAc,cAAeC,MAAyC5rD,SAC3EngO,KAAK8rR,cAAc,QAASC,MAAyC6K,yCAAyC,GAC9G52R,KAAK8rR,cAAc,SAAUC,MAAyChlG,QACtE/mL,KAAK8rR,cAAc,UAAWC,MAAyCkK,YACvEj2R,KAAK8rR,cAAc,eAAgBC,MAAyC5rD,SAAS,GACrFngO,KAAKm1R,eAAe,SAAUpJ,MAAyC4L,cACvE33R,KAAKm1R,eAAe,cAAepJ,MAAyC4L,cAC5E33R,KAAKq2M,YAAY21E,gCAAgCD,MAAyCwd,qCAC1FvpS,KAAKykI,MAAMunJ,gCAAgCD,MAAyCiK,+BACpFh2R,KAAKw1C,aAAaw2O,gCAAgCD,MAAyCkL,yBAC3Fj3R,KAAKm/B,OAAOy4P,sBAAwB53R,KAAKq2M,YACzCr2M,KAAKqoS,YAAYzQ,sBAAwB53R,KAAKykI,KAClD,CAEA,aAAIwnF,GACA,OAAOjsN,KAAK2rR,gBAAgB1/D,SAChC,CACA,aAAIA,CAAU15M,GACVvS,KAAK2rR,gBAAgB1/D,UAAY15M,CACrC,CAEA,cAAIi8Q,GACA,OAAOxuR,KAAK2rR,gBAAgB6C,UAChC,CACA,cAAIA,CAAWj8Q,GACXvS,KAAK2rR,gBAAgB6C,WAAaj8Q,CACtC,CAKAozH,eACI,MAAO,wCACX,CAIA,eAAI0wE,GACA,OAAOr2M,KAAKksR,QAAQ,EACxB,CAIA,SAAIznJ,GACA,OAAOzkI,KAAKksR,QAAQ,EACxB,CAIA,UAAIj8G,GACA,OAAOjwK,KAAKksR,QAAQ,EACxB,CAIA,WAAI4X,GACA,OAAO9jS,KAAKksR,QAAQ,EACxB,CAIA,gBAAI12O,GACA,OAAOx1C,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CAIA,eAAI8R,GACA,OAAOroS,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBjE,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjCvG,KAAKm/B,OAAO5sB,MAAQvS,KAAK2rR,gBAAgB/lC,cACzC5lP,KAAKqoS,YAAY91R,MAAQvS,KAAK2rR,gBAAgBgZ,mBAC9C,MAAM3F,EAA4Bh/R,KAAKq2M,YAAYg2E,eAC/C2S,IACAh/R,KAAK2rR,gBAAgB8L,mBAAqBuH,EAA0BzsR,OAExE,MAAM02R,EAAsBjpS,KAAKykI,MAAM4nJ,eACnC4c,IACAjpS,KAAK2rR,gBAAgBx+E,aAAe87F,EAAoB12R,OAE5D,MAAMqvR,EAAuB5hS,KAAKiwK,OAAOo8G,eACrCuV,IACA5hS,KAAK2rR,gBAAgB17G,OAAS2xH,EAAqBrvR,OAEvD,MAAMwxR,EAAwB/jS,KAAK8jS,QAAQzX,eACvC0X,IACA/jS,KAAK2rR,gBAAgByX,WAAaW,EAAsBxxR,OAE5DvS,KAAK2rR,gBAAgBn2O,aAAe,GACpC,MAAMg0P,EAA6BxpS,KAAKw1C,aAAa62O,eACjDmd,IACAxpS,KAAK2rR,gBAAgBn2O,aAAa,GAAKg0P,EAA2Bj3R,MAE1E,CACA4kR,sBACI,MAAMC,EAAQ,GACdA,SAAMn5Q,KAAM,GAAEje,KAAKq3R,iCAAiCr3R,KAAKisN,cACzDmrE,EAAMn5Q,KAAM,GAAEje,KAAKq3R,kCAAkCr3R,KAAKwuR,eACnD3qR,MAAMszR,sBAAwBC,EAAMltR,KAAK,KACpD,CACAk7H,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoB4mF,UAAYjsN,KAAKisN,UACrC5mF,EAAoBmpJ,WAAaxuR,KAAKwuR,WAC/BnpJ,CACX,CACAiyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,GACnBrlI,KAAKisN,UAAY5mF,EAAoB4mF,UACrCjsN,KAAKwuR,WAAanpJ,EAAoBmpJ,UAC1C,GAEJ3rH,SAAW,IACP00H,MAAuB,aAAc,EAAwC,eAC9E+R,GAAuC/kQ,UAAW,YAAa,OAAI,EACtEs+H,OAAW,IACP00H,MAAuB,cAAe,EAAwC,eAC/E+R,GAAuC/kQ,UAAW,aAAc,MC5I5D,MAAMklQ,WAA2CH,GAQpDzpS,YAAY0G,EAAMqlR,EAAYttK,EAAOkmL,GAAyB,GAC1D3gS,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK6gS,kCAAoC,CAAC2D,GAC1CxkS,KAAK2rR,gBAAkB,IAAI0d,GAA6BrpS,KAAKuG,KAAMqlR,EAAYttK,EAAO,CAAEkmL,0BAC5F,CAEA,0BAAIA,GACA,OAAOxkS,KAAK2rR,gBAAgBuY,eAAe33Q,QAAQi4Q,sBACvD,CACA,0BAAIA,CAAuBjyR,GACvBvS,KAAK2rR,gBAAgBlqO,UACrBzhD,KAAK2rR,gBAAkB,IAAI0d,GAA6BrpS,KAAKuG,KAAMvG,KAAKkrR,YAAalrR,KAAKq4I,OAAQ,CAAEmsJ,uBAAwBjyR,IAC5HvS,KAAK6gS,kCAAoC,CAACtuR,EAC9C,CAKAozH,eACI,MAAO,oCACX,GAEJk9B,SAAW,IACP00H,MAAuB,6BAA8B,EAAwC,eAC9FkS,GAAmCllQ,UAAW,yBAA0B,OAAI,EAC/Es6H,OAAc,6CAA8C4qI,ICrCrD,MAAMC,GAST7pS,YAAY8pS,EAAYC,EAAQ,EAAGC,EAAQ,EAAGpvQ,EAAQ,EAAGC,EAAS,GAC9D16B,KAAK8pS,UAAY,EACjB9pS,KAAK+pS,UAAY,GACjB/pS,KAAKgqS,YAAc,EAInBhqS,KAAK4S,EAAI,EAIT5S,KAAKwiB,EAAI,EACTxiB,KAAKiqS,OAASxvQ,EACdz6B,KAAKkqS,QAAUxvQ,EACf16B,KAAKmqS,OAASP,EACd5pS,KAAKoqS,OAASP,EACd7pS,KAAKqqS,kBAAkBV,GACvB3pS,KAAK2C,MACT,CAKA2nS,WAAWX,GACP3pS,KAAKqqS,kBAAkBV,GACvB3pS,KAAK2C,MACT,CAMA4nS,cAAc9vQ,EAAOC,GACjB16B,KAAKiqS,OAASxvQ,EACdz6B,KAAKkqS,QAAUxvQ,CACnB,CAIA/3B,OACI3C,KAAK4S,EAAI5S,KAAK+pS,UAAU/pS,KAAK8pS,WAAa9pS,KAAKiqS,OAC/CjqS,KAAKwiB,EAAIxiB,KAAK+pS,UAAU/pS,KAAK8pS,UAAY,GAAK9pS,KAAKkqS,QACnDlqS,KAAK8pS,WAAa,EACd9pS,KAAK8pS,WAAgC,EAAnB9pS,KAAKgqS,cACvBhqS,KAAK8pS,UAAY,EAEzB,CACAO,kBAAkBV,GACd3pS,KAAK+pS,UAAY,GACjB/pS,KAAK8pS,UAAY,EACjB9pS,KAAKgqS,YAAcL,EACnB,QAASlsR,EAAI,EAAGA,GAAKksR,IAAclsR,EAC/Bzd,KAAK+pS,UAAU9rR,KAAKje,KAAKwqS,QAAQ/sR,EAAGzd,KAAKmqS,QAAU,GAAKnqS,KAAKwqS,QAAQ/sR,EAAGzd,KAAKoqS,QAAU,GAE/F,CACAI,QAAQ7vR,EAAOwxC,GACX,IAAIs+O,EAAW,EACXpuR,EAAS,EACb,KAAO1B,EAAQ,GACX8vR,GAAYt+O,EACZ9vC,GAAUouR,GAAY9vR,EAAQwxC,GAC9BxxC,KAAWA,EAAQwxC,GAEvB,OAAO9vC,CACX,ECrEG,IAAMquR,GAAkB,MAAxB,MAAMA,UAA2B5d,KACpC5mG,eAAeC,EAAWxqK,GAClBwqK,GACAnmL,KAAKomL,cAAe,EACpBzqK,EAAKsC,KAAKtG,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,UAGV1qK,EAAKsC,KAAKtG,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QAElB,CAIA,WAAI2jB,CAAQA,GACJhqM,KAAKsvM,WAAatF,IAGtBhqM,KAAKsvM,SAAWtF,EAChBhqM,KAAK2qS,IAAIL,WAAWtgG,GACxB,CACA,WAAIA,GACA,OAAOhqM,KAAKsvM,QAChB,CAIA,YAAIz/J,GACA,OAAO7vC,KAAK4qS,SAChB,CACA,YAAI/6P,CAASt9B,GACLvS,KAAK4qS,YAAcr4R,IAGvBvS,KAAK4qS,UAAYr4R,EACjBvS,KAAKklL,SACT,CAIA,gBAAIs6G,GACA,OAAOx/R,KAAK4lS,aAChB,CACA,gBAAIpG,CAAa/kQ,GACTz6B,KAAK4lS,gBAAkBnrQ,IAG3Bz6B,KAAK4lS,cAAgBnrQ,EACrBz6B,KAAKklL,SACT,CAIA,iBAAIu6G,GACA,OAAOz/R,KAAK6lS,cAChB,CACA,iBAAIpG,CAAc/kQ,GACV16B,KAAK6lS,iBAAmBnrQ,IAG5B16B,KAAK6lS,eAAiBnrQ,EACtB16B,KAAKklL,SACT,CAOArlL,YAAY0G,EAAMmkI,EAAS,KAAMn+G,GAC7B1oB,MAAM,IACC0oB,EACHhmB,OACAmkI,OAAQA,GAAUs3D,KAAO07F,kBACzB3Q,gBAAgB,EAChB4Q,kBAAkB,EAClB7kB,eAAgB4xB,EAAmB9M,YACnCxlF,SAAUsyF,EAAmB7M,SAC7BvlF,SAAUoyF,EAAmBG,WAEjC7qS,KAAKsvM,SAAW,EAIhBtvM,KAAKm1P,OAAS,IACdn1P,KAAK4qS,WAAY,EACjB5qS,KAAK4lS,cAAgB,EACrB5lS,KAAK6lS,eAAiB,EAKtB7lS,KAAK8qS,qBAAsB,EAC3B9qS,KAAK+qS,cAAe,EACpB/qS,KAAK2qS,IAAM,IAAIjB,GAAiB1pS,KAAKgqM,QACzC,CAEA9kB,SACIllL,KAAK2qS,IAAIJ,cAAcvqS,KAAK4lS,cAAgB,EAAG5lS,KAAK6lS,eAAiB,GACrE7lS,KAAK2qS,IAAIhoS,OACT3C,KAAK+qS,cAAe,CACxB,CACAC,yBACI,IAAIhrS,KAAK6vC,SAGT,IAAI7vC,KAAKiwK,SAAWjwK,KAAKiwK,OAAOg7H,SAC5B,GAAIjrS,KAAKiwK,OAAOx2J,OAASstK,IAAOmkH,mBAAoB,CAChD,MAAMC,EAAUnrS,KAAKiwK,OAAOjjC,sBAC5Bm+J,EAAQC,iBAAiB,EAAGprS,KAAK2qS,IAAI/3R,EAAG5S,KAAK2qS,IAAInoR,EAAG2oR,EAAQnjO,EAAE,IAAKmjO,EAAQnjO,EAAE,IACjF,KACK,CAED,MAAMmjO,EAAUnrS,KAAKiwK,OAAOjjC,qBAAoB,GAChDm+J,EAAQC,iBAAiB,EAAGprS,KAAK2qS,IAAI/3R,EAAIu4R,EAAQnjO,EAAE,IAAKhoE,KAAK2qS,IAAInoR,EAAI2oR,EAAQnjO,EAAE,IAAKmjO,EAAQnjO,EAAE,IAAKmjO,EAAQnjO,EAAE,IACjH,CAEJhoE,KAAK2qS,IAAIhoS,MAAK,CAClB,CACAsrC,OACIpqC,MAAMoqC,OACFjuC,KAAK6vC,WAGM7vC,KAAK+9R,aAAahiR,OAC1BgmJ,SAAS,SAAW/hK,KAAKiwK,QAAQg7H,UAAYjrS,KAAK8qS,qBAAwB9qS,KAAK+qS,aAAe,EAAI/qS,KAAKm1P,QAC9Gn1P,KAAK+qS,cAAe,EACxB,EAKJL,SAAmB9M,YAAc,MAIjC8M,EAAmB7M,SAAW,CAAC,UAI/B6M,EAAmBG,SAAW,CAAC,kBA3IlBH,CAAkB,KCDxB,MAAMW,WAAwChC,GAQjDxpS,YAAY0G,EAAMqlR,EAAYttK,EAAO/xF,GACjC1oB,MAAM0C,EAAMqlR,EAAYttK,EAAO/xF,GAC/BvsB,KAAKi+R,YAAc,IAAIyM,GAAoB,GAAEnkS,iBAAqB+3G,EAAM6xD,aACxEnwK,KAAKm+R,wBAA0Bn+R,KAAKi+R,YAAYvP,WACpD,CACA3+Q,SACI,QAAgClN,IAA5B7C,KAAKy3R,yBAAwD50R,IAApB7C,KAAKojS,WAC9C,MAAM,IAAI99Q,MAAO,mCAAkCtlB,KAAKuG,wDAE5D,GzCrBoC,IyCqBhCvG,KAAKy3R,oBzCjBkC,IyCiBqBz3R,KAAKmtM,aACjE,MAAM,IAAI7nL,MAAO,mCAAkCtlB,KAAKuG,6FAE5D,MAAMi4R,EAA2Bx+R,KAAKkrR,YAAYsJ,sBAAsBx0R,KAAKy3R,oBAC7E,IAAIuO,GAAe,EACnB,QAA0BnjS,IAAtB7C,KAAKmtM,aAA4B,CAEjC,GADgCntM,KAAKkrR,YAAYsJ,sBAAsBx0R,KAAKmtM,cAChD5gL,QAAQy9K,UAAYw0F,EAAyBjyQ,QAAQy9K,QAC7E,MAAM,IAAI1kL,MAAO,mCAAkCtlB,KAAKuG,uFAE5Dy/R,GAAe,CACnB,CACAhmS,KAAKi+R,YAAYhuH,OAASjwK,KAAKiwK,OAC/BjwK,KAAKi+R,YAAYuB,aAAehB,EAAyBnlQ,KAAKoB,MAC9Dz6B,KAAKi+R,YAAYwB,cAAgBjB,EAAyBnlQ,KAAKqB,OAC/D,MAiBM4wQ,EAAiBtrS,KAAKkrR,YAAYlqD,0BAA2B,GAAEhhO,KAAKuG,eAjB3C,CAC3B8yB,KAAMmlQ,EAAyBnlQ,KAC/B9M,QAAS,CACLq+O,eAAe,EACftmI,iBAAiB,EACjBt6F,MAAO,CAAC,GACRigK,cAAe,CAAC,GAChBE,QAAS,CAAC,GACVH,QAAS,EACTE,eAAgB,EAAC,GACjBP,qBAAqB,EACrBC,uBAAuB,EACvBr5L,MAAO,IAEX8gR,kBAAkB,EAClBnB,kBAAkB,IAGtBlwR,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK4lP,cAAe0lD,QACjCzoS,IAAtB7C,KAAKmtM,cACLntM,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK2kS,mBAAoB3kS,KAAKmtM,cAEzEntM,KAAK4lS,cAAgBpH,EAAyBnlQ,KAAKoB,MACnDz6B,KAAK6lS,eAAiBrH,EAAyBnlQ,KAAKqB,OACpD,MAAMuwP,EAAOjrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,MACjD0kR,EAAKG,gBAAgBprR,KAAKy3R,yBACA50R,IAAtB7C,KAAKmtM,cACL89E,EAAKqb,qBAAqBtmS,KAAKmtM,cAEnC89E,EAAKI,eAAgB7vG,IACjBx7K,KAAK0sR,UAAUvnJ,WAAanlI,KAAKojS,WAAWlyJ,OAC5ClxI,KAAK0sR,UAAU6Z,mBAAqBvmS,KAAKojS,WAAWlN,gBACpDl2R,KAAKi+R,YAAY+M,yBACjBxvH,EAAQ+yG,eAAevuR,KAAKisN,WAAa+5E,EAAchmS,KAAKwuR,YAAcwX,GAGrEhmS,KAAKi+R,YAAYpuP,WAClB7vC,KAAKq4I,OAAOjO,aAAepqI,KAAKiwK,OAChCjwK,KAAKq4I,OAAOkzJ,mBAAmBvrS,KAAKiwK,OAAO3lC,gBAAiBtqI,KAAKiwK,OAAOjjC,wBAE5EwuC,EAAQ5pI,OAAO5xC,KAAK0sR,UAAW1sR,KAAK4lS,cAAe5lS,KAAK6lS,gBACxD7lS,KAAKq4I,OAAOjO,aAAe,KAC3BoxC,EAAQuzG,iBAAiBuc,EAAgB,gDACpCtrS,KAAKi+R,YAAYpuP,SAQlB2rI,EAAQ+/C,YAAYv7N,KAAKy3R,oBAPzBj8G,EAAQizG,sBAAsBzuR,KAAKm+R,wBAAyB,KACxDn+R,KAAKi+R,YAAYhwP,OACjButI,EAAQ8yG,kBAAkBtuR,KAAKm+R,wBAAwBpiR,OAAQ,iBAAkB/b,KAAKy3R,oBACtFj8G,EAAQ8yG,kBAAkBtuR,KAAKm+R,wBAAwBpiR,OAAQ,iBAAkBuvR,EAAc,EAClG,GAMT,MAAM/f,EAAevrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,KAAO,aAAa,GAQ7E,GAPAglR,EAAaH,gBAAgBprR,KAAK4lP,oBACR/iP,IAAtB7C,KAAKmtM,cACLo+E,EAAa+a,qBAAqBtmS,KAAKmtM,cAE3Co+E,EAAaF,eAAgB7vG,IACzBA,EAAQ+/C,YAAYv7N,KAAKy3R,mBAAkB,QAErB50R,IAAtB7C,KAAKw1C,aACL,UAAWhyC,KAAUxD,KAAKw1C,aACtBy1O,EAAK0T,WAAWn7R,GAChB+nR,EAAaoT,WAAWn7R,EAGpC,ECnGG,MAAMgoS,WAA8ClC,GAIvD,QAAI5d,GACA,OAAO1rR,KAAK2rR,eAChB,CAQA9rR,YAAY0G,EAAMqlR,EAAYttK,EAAOkmL,GAAyB,GAC1D3gS,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK6gS,kCAAoC,CAAC2D,GAC1CxkS,KAAK2rR,gBAAkB,IAAI0f,GAAgCrrS,KAAKuG,KAAMqlR,EAAYttK,EAAO,CAAEkmL,0BAC/F,CAEA,0BAAIA,GACA,OAAOxkS,KAAK2rR,gBAAgBuY,eAAe33Q,QAAQi4Q,sBACvD,CACA,0BAAIA,CAAuBjyR,GACvBvS,KAAK2rR,gBAAgBlqO,UACrBzhD,KAAK2rR,gBAAkB,IAAI0f,GAAgCrrS,KAAKuG,KAAMvG,KAAKkrR,YAAalrR,KAAKq4I,OAAQ,CAAEmsJ,uBAAwBjyR,IAC/HvS,KAAK6gS,kCAAoC,CAACtuR,EAC9C,CAEA,WAAIy3L,GACA,OAAOhqM,KAAK2rR,gBAAgBsS,YAAYj0F,OAC5C,CACA,WAAIA,CAAQz3L,GACRvS,KAAK2rR,gBAAgBsS,YAAYj0F,QAAUz3L,CAC/C,CAEA,UAAI4iP,GACA,OAAOn1P,KAAK2rR,gBAAgBsS,YAAY9oC,MAC5C,CACA,UAAIA,CAAO5iP,GACPvS,KAAK2rR,gBAAgBsS,YAAY9oC,OAAS5iP,CAC9C,CAEA,uBAAIu4R,GACA,OAAO9qS,KAAK2rR,gBAAgBsS,YAAY6M,mBAC5C,CACA,uBAAIA,CAAoBv4R,GACpBvS,KAAK2rR,gBAAgBsS,YAAY6M,oBAAsBv4R,CAC3D,CAEA,cAAIk5R,GACA,OAAOzrS,KAAK2rR,gBAAgBsS,YAAYpuP,QAC5C,CACA,cAAI47P,CAAWl5R,GACXvS,KAAK2rR,gBAAgBsS,YAAYpuP,SAAWt9B,CAChD,CAKAozH,eACI,MAAO,uCACX,CACAwxJ,sBACI,MAAMC,EAAQ,GACdA,SAAMn5Q,KAAM,GAAEje,KAAKq3R,+BAA+Br3R,KAAKgqM,YACvDotF,EAAMn5Q,KAAM,GAAEje,KAAKq3R,8BAA8Br3R,KAAKm1P,WACtDiiC,EAAMn5Q,KAAM,GAAEje,KAAKq3R,2CAA2Cr3R,KAAK8qS,wBACnE1T,EAAMn5Q,KAAM,GAAEje,KAAKq3R,kCAAkCr3R,KAAKyrS,eACnD5nS,MAAMszR,sBAAwBC,EAAMltR,KAAK,KACpD,CACAk7H,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoB2kE,QAAUhqM,KAAKgqM,QACnC3kE,EAAoB8vH,OAASn1P,KAAKm1P,OAClC9vH,EAAoBylK,oBAAsB9qS,KAAK8qS,oBAC/CzlK,EAAoBomK,WAAazrS,KAAKyrS,WAC/BpmK,CACX,CACAiyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,GACnBrlI,KAAKgqM,QAAU3kE,EAAoB2kE,QACnChqM,KAAKm1P,OAAS9vH,EAAoB8vH,OAClCn1P,KAAK8qS,oBAAsBzlK,EAAoBylK,oBAC/C9qS,KAAKyrS,WAAapmK,EAAoBomK,UAC1C,GAEJ5oI,SAAW,IACP00H,MAAuB,6BAA8B,EAAwC,eAC9FiU,GAAsCjnQ,UAAW,yBAA0B,OAAI,EAClFs+H,OAAW,IACP00H,MAAuB,UAAW,EAAoC,2BACvEiU,GAAsCjnQ,UAAW,UAAW,OAAI,EACnEs+H,OAAW,IACP00H,MAAuB,SAAU,EAAsC,2BACxEiU,GAAsCjnQ,UAAW,SAAU,OAAI,EAClEs+H,OAAW,IACP00H,MAAuB,yBAA0B,EAAwC,2BAC1FiU,GAAsCjnQ,UAAW,sBAAuB,OAAI,EAC/Es+H,OAAW,IACP00H,MAAuB,cAAe,EAAwC,2BAC/EiU,GAAsCjnQ,UAAW,aAAc,OAAI,EACtEs6H,OAAc,gDAAiD2sI,KCmB/D3sI,SAAc,yCA3HP,MAAM6sI,WAAuCjgB,KAEhD,aAAIkgB,GACA,OAAO3rS,KAAK4rS,UAChB,CAOA/rS,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK4rS,WAAa,GAClB5rS,KAAK6rS,eAAgB,EACrB7rS,KAAK8rR,cAAc,QAASC,MAAyCyR,WACzE,CAKA73J,eACI,MAAO,gCACX,CAIA,SAAIx8E,GACA,OAAOnpD,KAAKksR,QAAQ,EACxB,CACAuQ,UAAUH,EAAaD,GACnB,IAAIG,EAAa34R,MAAM44R,UAAUH,EAAaD,GAC9C,UAAWyP,KAAY9rS,KAAK2rS,WACgB,IAApCtP,EAAcv3P,QAAQgnQ,KACtBtP,GAAcsP,EAASrP,UAAUH,EAAaD,IAGtD,OAAOG,CACX,CAMAhC,mBAAmBpoR,GACf,GAAIpS,KAAK2lI,iBAAmBvzH,EACxB,OAAO,EAEX,UAAW05R,KAAY9rS,KAAK2rS,UACxB,GAAIG,EAAStR,mBAAmBpoR,GAC5B,OAAO,EAGf,OAAO,CACX,CAMA25R,eAAepuR,GACX,UAAWmuR,KAAY9rS,KAAK2rS,UAIxB,GAHIG,IAAanuR,GAGbmuR,EAASC,eAAepuR,GACxB,OAAO,EAGf,OAAO,CACX,CAMAquR,yBAAyBzS,GACrB,GAAIA,EAAUv5R,MACV,OAAOA,KAEX,UAAW8rS,KAAY9rS,KAAK2rS,UAAW,CACnC,MAAMM,EAAaH,EAASE,yBAAyBzS,GACrD,GAAI0S,EACA,OAAOA,CAEf,CACA,OAAO,IACX,CAKA5Q,iBAAiByQ,GACbA,EAASx5P,SACTtyC,KAAK4rS,WAAW3tR,KAAK6tR,GACrBA,EAASz6G,YAAcrxL,KACvB8rS,EAASvV,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GAC1D4f,EAAS1Q,wBAA0B,KACnC0Q,EAASvlS,KAAO,KAAOvG,KAAKuG,IAChC,CAKA2lS,mBAAmBJ,GACf,MAAMnxR,EAAQ3a,KAAK4rS,WAAW9mQ,QAAQgnQ,IACxB,IAAVnxR,IACA3a,KAAK4rS,WAAWrwR,OAAOZ,EAAO,GAC9BmxR,EAASvV,SAAS,GAAGqB,sBAAwB,KAC7CkU,EAASz6G,YAAc,KAE/B,CAIA5vI,UACI59C,MAAM49C,UACN,UAAWqqP,KAAY9rS,KAAK4rS,WACxB5rS,KAAKksS,mBAAmBJ,GAE5B9rS,KAAK4rS,WAAa,EACtB,KCtBJ/sI,SAAc,0CAnGP,MAAMstI,WAAwC1gB,KAOjD5rR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GAExBt+G,KAAKqxL,YAAc,KAEnBrxL,KAAKo7R,wBAA0B,KAC/Bp7R,KAAKosS,gBAAiB,EACtBpsS,KAAKm1R,eAAe,SAAUpJ,MAAyC4L,aAC3E,CAIA,cAAIrmG,GACA,OAAOtxL,KAAKqxL,WAChB,CAKA1rD,eACI,MAAO,iCACX,CAIA,UAAIxmG,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CAEAjkP,SACStyC,KAAKqxL,aAGVrxL,KAAKqxL,YAAY66G,mBAAmBlsS,KACxC,CACAmsR,cAEI,CAEJkgB,iBAAiBpoS,GACTjE,KAAKsxL,YACLtxL,KAAKsxL,WAAWt5K,MAAM/T,EAE9B,CACAw4R,UAAUH,EAAaD,GACnB,IAAIG,EAAa,GACjB,OAAIx8R,KAAKsxL,aAC0C,IAA3C+qG,EAAcv3P,QAAQ9kC,KAAKsxL,cAC3BkrG,GAAcx8R,KAAKsxL,WAAWmrG,UAAUH,EAAaD,IAGtDG,EAAa34R,MAAM44R,UAAUH,EAAaD,EACrD,CACAK,8BAA8BL,GAC1B,IAAIG,EAAa34R,MAAM64R,8BAA8BL,GACrD,OAAIr8R,KAAKsxL,aACLkrG,GAAcx8R,KAAKsxL,WAAWorG,8BAA8BL,IAEzDG,CACX,CAKAp5R,QACI,MAAMA,EAAQS,MAAMT,QACpB,OAAIpD,KAAKsxL,YACLtxL,KAAKsxL,WAAW+pG,iBAAiBj4R,GAE9BA,CACX,CACA+zR,sBACI,IAAIqF,EAAa34R,MAAMszR,sBACvB,OAAIn3R,KAAKsxL,aACLkrG,GAAe,GAAEx8R,KAAKsxL,WAAW+lG,sCAAsCr3R,KAAKq3R,yBAEzEmF,CACX,CAKAp3J,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBisD,WAAatxL,KAAKsxL,YAAYzO,UAAY,GACvDx9C,CACX,CACAiyJ,aAAajyJ,GACTxhI,MAAMyzR,aAAajyJ,GACnBrlI,KAAKo7R,wBAA0B/1J,EAAoBisD,UACvD,ICnGG,MAAMg7G,WAAoCvhB,KAM7ClrR,YAAY0G,EAAMqlR,GACd/nR,MAAM0C,EAAMqlR,GACZ5rR,KAAK4lP,cAAgB5lP,KAAKkrR,YAAYoH,sBAC1C,CACAviR,SACI,QAA2BlN,IAAvB7C,KAAKgrR,oBAA2DnoR,IAA5B7C,KAAKy3R,mBACzC,MAAM,IAAInyQ,MAAO,gCAA+BtlB,KAAKuG,4DAEzDvG,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK4lP,cAAe5lP,KAAKy3R,oBAChE,MAAMxM,EAAOjrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,MACjD0kR,EAAK0T,WAAW3+R,KAAKgrR,eACrBC,EAAKG,gBAAgBprR,KAAK4lP,eAC1BqlC,EAAKI,eAAgB7vG,IACjBA,EAAQ+/C,YAAYv7N,KAAKgrR,cAAa,GAE1C,MAAMO,EAAevrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,KAAO,aAAa,GAC7EglR,EAAaH,gBAAgBprR,KAAK4lP,eAClC2lC,EAAaF,eAAgB/Y,MACjC,GCyCJzzG,SAAc,0CA9DP,MAAM0tI,WAAwC9gB,KAIjD,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CAOA9rR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK8rR,cAAc,SAAUC,MAAyC5rD,SACtEngO,KAAK8rR,cAAc,cAAeC,MAAyC5rD,SAC3EngO,KAAKm1R,eAAe,SAAUpJ,MAAyC4L,cACvE33R,KAAKioC,OAAO+jP,gCAAgCD,MAAyCkL,yBACrFj3R,KAAKq2M,YAAY21E,gCAAgCD,MAAyCE,YAC1FjsR,KAAKm/B,OAAOy4P,sBAAwB53R,KAAKq2M,YACzCr2M,KAAK2rR,gBAAkB,IAAI2gB,GAA4B/lS,EAAMqlR,EACjE,CAKAjmJ,eACI,MAAO,iCACX,CAIA,UAAI19F,GACA,OAAOjoC,KAAKksR,QAAQ,EACxB,CAIA,eAAI71E,GACA,OAAOr2M,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBjE,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjCvG,KAAKm/B,OAAO5sB,MAAQvS,KAAK2rR,gBAAgB/lC,cACzC,MAAMm5C,EAAuB/+R,KAAKioC,OAAOokP,eACrC0S,IACA/+R,KAAK2rR,gBAAgBX,cAAgB+T,EAAqBxsR,OAE9D,MAAMysR,EAA4Bh/R,KAAKq2M,YAAYg2E,eAC/C2S,IACAh/R,KAAK2rR,gBAAgB8L,mBAAqBuH,EAA0BzsR,MAE5E,IC/DG,MAAMi6R,WAAsCzhB,KAM/ClrR,YAAY0G,EAAMqlR,GACd/nR,MAAM0C,EAAMqlR,GACZ5rR,KAAK4lP,cAAgB5lP,KAAKkrR,YAAYoH,sBAC1C,CACAviR,SACI,QAAgClN,IAA5B7C,KAAKy3R,mBACL,MAAM,IAAInyQ,MAAO,iCAAgCtlB,KAAKuG,wCAI1D,GAFAvG,KAAKkrR,YAAYqH,sBAAsBvyR,KAAK4lP,cAAe5lP,KAAKy3R,qBAC/Bz3R,KAAKkrR,YAAYsJ,sBAAsBx0R,KAAKy3R,oBAC/ClrQ,QAAQq+O,cAClC,MAAM,IAAItlP,MAAO,iCAAgCtlB,KAAKuG,gEAE1D,MAAM0kR,EAAOjrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,MACjD0kR,EAAKG,gBAAgBprR,KAAK4lP,eAC1BqlC,EAAKI,eAAgB7vG,IACjBA,EAAQl3C,iBAAgB,GAE5B,MAAMinJ,EAAevrR,KAAKkrR,YAAYC,cAAcnrR,KAAKuG,KAAO,aAAa,GAC7EglR,EAAaH,gBAAgBprR,KAAK4lP,eAClC2lC,EAAaF,eAAgB/Y,MACjC,GC0BJzzG,SAAc,8CAlDP,MAAM4tI,WAA4ChhB,KAIrD,QAAIC,GACA,OAAO1rR,KAAK2rR,eAChB,CAOA9rR,YAAY0G,EAAMqlR,EAAYttK,GAC1Bz6G,MAAM0C,EAAMqlR,EAAYttK,GACxBt+G,KAAK8rR,cAAc,UAAWC,MAAyC5rD,SACvEngO,KAAKm1R,eAAe,SAAUpJ,MAAyC4L,cACvE33R,KAAKumM,QAAQylF,gCAAgCD,MAAyCkL,yBACtFj3R,KAAKm/B,OAAOy4P,sBAAwB53R,KAAKumM,QACzCvmM,KAAK2rR,gBAAkB,IAAI6gB,GAA8BjmS,EAAMqlR,EACnE,CAKAjmJ,eACI,MAAO,qCACX,CAIA,WAAI4gE,GACA,OAAOvmM,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBjE,KAAK2rR,gBAAgBplR,KAAOvG,KAAKuG,KACjCvG,KAAK63R,6BAA6B73R,KAAKumM,QAASvmM,KAAKm/B,QACrD,MAAMitP,EAAwBpsR,KAAKumM,QAAQ8lF,eACvCD,IACApsR,KAAK2rR,gBAAgB8L,mBAAqBrL,EAAsB75Q,MAExE,yFCdJujO,KAAK42D,iBAAmB,CAACnmS,EAAMomS,EAAUC,EAAUtuL,IA/B5C,SAASouL,GAAiBnmS,EAAMgmB,EAAU,CAAC,EAAG+xF,GAC5C/xF,EAAQqgR,WACTrgR,EAAQqgR,SAAW,GAElBrgR,EAAQogR,WACTpgR,EAAQogR,SAAW,IAEvB,MAAME,KAAaC,OAAa,GAAI,CAAEpvR,MAAO,GAAKkvR,SAAUrgR,EAAQqgR,SAAUD,SAAUpgR,EAAQogR,UAAYruL,GACtGyuL,KAAOC,OAAW,GAAI,CAAE91H,OAAQ3qJ,EAAQqgR,SAAW,EAAGK,aAAiC,EAAnB1gR,EAAQogR,UAAgB,EAAIpgR,EAAQogR,WAAaruL,GAC3HyuL,EAAKlkK,SAASj2H,GAAK2K,KAAKgrH,GAAK,EAC7BwkK,EAAK1nQ,OAASwnQ,EACd,MAAMK,EAASp3D,KAAKq3D,YAAY,CAACJ,EAAMF,IAAa,GACpDK,SAAO3mS,KAAOA,EACP2mS,CACX,CAsBWR,CAAiBnmS,EAJR,CACZomS,SAAUA,EACVC,SAAUA,GAEyBtuL,YChCpC,IAAM8uL,GAAW,MAAjB,MAAMA,UAAoBC,IAI7B,WAAI9mG,GACA,OAAOvmM,KAAKohK,QAChB,CAIA,WAAImlC,CAAQvhE,GACJhlI,KAAKohK,WAAap8B,IAGtBhlI,KAAKohK,SAAWp8B,EACZhlI,KAAKstS,mBACLttS,KAAKohK,SAASqhE,MAAQtC,KAAQotE,kBAC9BvtS,KAAKohK,SAASshE,MAAQvC,KAAQotE,kBAC9BvtS,KAAKwtS,UAAUzkK,eAAiB/oI,KAAKohK,WAGrCphK,KAAKohK,SAASm6G,gBAAkBp7C,KAAQstE,oCACxCztS,KAAKohK,SAASshE,MAAQvC,KAAQotE,kBAC9BvtS,KAAKwtS,UAAUE,kBAAoB1tS,KAAKohK,UAE5CphK,KAAK2tS,mBAAmB3tS,KAAK4tS,cACjC,CAIA,QAAIjsI,GACA,OAAO3hK,KAAK6tS,KAChB,CAKA,iBAAIC,GACA,OAAO9tS,KAAKwtS,UAAUM,aAC1B,CACA,iBAAIA,CAAcv7R,GACdvS,KAAKwtS,UAAUM,cAAgBv7R,CACnC,CAOA,eAAIw7R,GACA,OAAO/tS,KAAK4tS,YAChB,CAOA,eAAIG,CAAYx7R,GACRvS,KAAK4tS,eAAiBr7R,GAG1BvS,KAAK2tS,mBAAmBp7R,EAC5B,CAIA,YAAIy7R,GACA,OAAOhuS,KAAKiuS,SAChB,CAIA,YAAID,CAASh5Q,GACTh1B,KAAKiuS,UAAYj5Q,EACjBh1B,KAAKkuS,cAAc3mK,WAAWvyG,GAC9Bh1B,KAAK2tS,mBAAmB3tS,KAAK4tS,aACjC,CAIA,YAAIO,CAASn5Q,GACTh1B,KAAKouS,UAAYp5Q,EACjBh1B,KAAK2tS,mBAAmB3tS,KAAK4tS,aACjC,CAIA,YAAIO,GACA,OAAOnuS,KAAKouS,SAChB,CAIA,YAAI/mK,GACA,OAAOrnI,KAAKwtS,SAChB,CAqBA3tS,YAAY0G,EAAM8nS,EAAqB9hR,EAAS+xF,EAEhDiyE,EAAU,MACN1sL,MAAM0C,EAAM+3G,GACZt+G,KAAKuwL,QAAUA,EACfvwL,KAAKiuS,WAAY,EACjBjuS,KAAKouS,WAAY,EACjBpuS,KAAKstS,mBAAoB,EACzBttS,KAAK4tS,aAAeR,EAAYkB,gBAIhCtuS,KAAKuuS,8BAAgC,KAIrCvuS,KAAKwuS,sBAAwB,IAAI7vQ,MAIjC3+B,KAAKyuS,iBAAmB,IAAI9vQ,MAC5B2/E,EAAQt+G,KAAK2kI,WAEbp+H,EAAOA,GAAQ,cACfgmB,EAAQyrF,WAA4C,EAA/Bz6F,KAAKkkH,IAAIl1G,EAAQyrF,aAAmB,GACzDzrF,EAAQmiR,cAAsBniR,EAAQmiR,YACtCniR,EAAQoiR,cAAgC9rS,IAArB0pB,EAAQoiR,YAAwCpiR,EAAQoiR,SAC3EpiR,EAAQ+4P,UAAwBziR,IAAjB0pB,EAAQ+4P,QAAoC/4P,EAAQ+4P,KACnE/4P,EAAQ8M,KAAO9b,KAAKkkH,IAAIl1G,EAAQ8M,QAAUilF,EAAM8rB,aAAyC,IAA1B9rB,EAAM8rB,aAAawkK,KAAc,KAE5F5uS,KAAKstS,uBADwBzqS,IAA7B0pB,EAAQsiR,kBAIiBtiR,EAAQsiR,sBAEThsS,IAAxB0pB,EAAQuiR,cACRviR,EAAQuiR,aAAc,GAE1B9uS,KAAK+uS,WAAU,GAKX/uS,KAAK6tS,MAJJthR,EAAQo1I,KAIIp1I,EAAQo1I,MAHhBksI,EAAQf,OAAavmS,EAAO,QAAS,CAAEomS,SAAUpgR,EAAQyrF,WAAY40L,SAAUrgR,EAAQ8M,KAAM21Q,WAAW,EAAOC,gBAAiBn5D,KAAKo5D,UAAY5wL,GAM1J,MAAM+oB,EAAYrnI,KAAKwtS,UAAY,IAAI2B,KAAmB5oS,EAAO,YAAa+3G,GAC9E+oB,EAAS+nK,uBAAwB,EACjC/nK,EAASymK,cAAgB,EACzBzmK,EAASgoK,gBAAiB,EAC1B,MAAM9oG,GAAUvmM,KAAKsvS,aAAajB,EAAqB/vL,EAAO/xF,GAoB9D,GAnBAvsB,KAAKumM,QAAUA,GAEfvmM,KAAK6tS,MAAMxmK,SAAWA,EACtBrnI,KAAK6tS,MAAMxoQ,OAASrlC,KAEpBA,KAAKkuS,iBAAgBpB,OAAa,GAAI,CAAEpvR,MAAO,GAAKkvR,SAAyB,IAAfrgR,EAAQ8M,KAAaszQ,SAA+B,EAArBpgR,EAAQyrF,WAAgBi3L,gBAAiBn5D,KAAKo5D,UAAY5wL,GACvJt+G,KAAKkuS,cAAchyJ,OAAOiuB,MAAK9+F,GAAI9tD,KAAKgrH,GAAK,GAE7CvoI,KAAKkuS,cAAc7oQ,OAASrlC,KAAK6tS,MACjC7tS,KAAKiuS,YAAc1hR,EAAQgjR,aAE3BvvS,KAAKkuS,cAAc3mK,WAAWvnI,KAAKiuS,WACnCjuS,KAAKouS,YAAc7hR,EAAQijR,aAE3BxvS,KAAKohK,SAASiiE,0BAA4B,EAC1CrjO,KAAKohK,SAASqtI,iBAAiBxgK,QAAQ,KACnCjuI,KAAK+uS,WAAU,EAAI,GAGnBxiR,EAAQuiR,aAAexwL,EAAM8rB,aAAc,CAC3C,MAAM6lC,GAAS3xD,EAAM8rB,aACfqlK,GAAUlvI,KAAQuJ,UAClB7uJ,GAAYslJ,KAAQ3pB,gBAAgB64J,GAASx/H,GAAO3lC,iBAC1DrvH,GAAUyyF,YACV1tG,KAAK6oI,SAASrmH,EAAIjF,KAAK4pJ,KAAK5G,KAAQr+B,IAAIutK,GAASx0R,IACrD,CACAjb,KAAK2tS,mBAAmB3tS,KAAK4tS,aACjC,CACAD,mBAAmBp7R,GASf,OARAvS,KAAKq4I,OAAOq3J,+BAA+Bh3P,OAAO14C,KAAKuuS,+BACvDvuS,KAAK4tS,aAAer7R,EAEpBvS,KAAKohK,SAASuuI,OAAS,EACvB3vS,KAAKohK,SAASwuI,OAAS,EACvB5vS,KAAKohK,SAASyuI,QAAU,EACxB7vS,KAAKohK,SAAS0uI,QAAU,EACxB9vS,KAAKohK,SAAS2uI,KAAO,EACbx9R,GACJ,KAAK66R,EAAYkB,gBACTtuS,KAAKiuS,YACLjuS,KAAKohK,SAASuuI,OAAS,EACvB3vS,KAAKohK,SAASyuI,SAAU,GAE5B,MACJ,KAAKzC,EAAY4C,gBAAiB,CAG9BhwS,KAAKohK,SAASuuI,OAAS3vS,KAAKiuS,UAAY,OAAU,GAClD,MAAMgC,EAAcjwS,KAAKiuS,UAAY,EAAM,GACrCiC,EAAalwS,KAAKiuS,WAAY,GAAO,EAC3CjuS,KAAKuuS,8BAAgCvuS,KAAKq4I,OAAOq3J,+BAA+Bl3P,IAAKy3H,IACjF,IAAIkgI,EAAgBlgI,EAAOkgI,cACvBnwS,KAAKouS,YACL+B,GAAiBA,GAGjBnwS,KAAKohK,SAASyuI,QADdM,EACwBF,EAGAC,IAGhC,KACJ,CACA,KAAK9C,EAAYgD,eAGbpwS,KAAKohK,SAASwuI,OAAS5vS,KAAKiuS,UAAY,OAAU,GAClDjuS,KAAKuuS,8BAAgCvuS,KAAKq4I,OAAOq3J,+BAA+Bl3P,IAAKy3H,IACjF,IAAIkgI,EAAgBlgI,EAAOkgI,cAEvBnwS,KAAKouS,YACL+B,GAAiBA,GAErBnwS,KAAKohK,SAAS0uI,QAAUK,EAAgB,GAAM,IAI9D,CAMA1uP,QAAQ4uP,EAAcC,GAA6B,GAC/CtwS,KAAKohK,SAAS3/G,UACdzhD,KAAK6tS,MAAMpsP,UACXzhD,KAAKwtS,UAAU/rP,UACfzhD,KAAKq4I,OAAOq3J,+BAA+Bh3P,OAAO14C,KAAKuuS,+BACvDvuS,KAAKwuS,sBAAsBv8P,QAC3BjyC,KAAKyuS,iBAAiBx8P,QACtBpuC,MAAM49C,QAAQ4uP,EAAcC,EAChC,EAKJlD,SAAYkB,gBAAkB,EAI9BlB,EAAYgD,eAAiB,EAI7BhD,EAAY4C,gBAAkB,EAjRjB5C,CAAW,KCNjB,MAAMmD,WAAkBnD,GAI3B,gBAAIoD,GACA,OAAOxwS,KAAKumM,OAChB,CAIA,gBAAIiqG,CAAaj+R,GACbvS,KAAKumM,QAAUh0L,CACnB,CAOA,aAAIk+R,GACA,OAAOzwS,KAAK+tS,WAChB,CAOA,aAAI0C,CAAUl+R,GACVvS,KAAK+tS,YAAcx7R,CACvB,CACA+8R,aAAaoB,EAAepyL,EAAO/xF,GAC/B,OAAO,IAAI4zM,KAAQuwE,EAAepyL,GAAQ/xF,EAAQ+3G,iBAAkBtkI,KAAKstS,uBAAmBzqS,EAAW,KACnG7C,KAAKyuS,iBAAiBztI,iBAAgB,EACvC,CAACr1H,EAASs/K,KACTjrN,KAAKwuS,sBAAsBxtI,gBAAgBr1H,GAAW,yBAClD3rC,KAAKuwL,SACLvwL,KAAKuwL,QAAQ5kJ,EAASs/K,EAAS,EAG3C,ECtCJ,SAAS0lF,GAAanqG,GAElB,KAAOA,EAAMoqG,YACTpqG,EAAM7/K,YAAY6/K,EAAMoqG,YAG5BpqG,EAAMqqG,UAAY,KAElBrqG,EAAMlsK,IAAM,GAEZksK,EAAMvzJ,gBAAgB,MAC1B,CDgCAs9P,GAAUjC,gBAAkBlB,GAAYkB,gBAIxCiC,GAAUH,eAAiBhD,GAAYgD,eAIvCG,GAAUP,gBAAkB5C,GAAY4C,gBClCjC,MAAMc,WAAqB3wE,KAK9B,mCAAI4wE,GACA,OAAK/wS,KAAKgxS,mCACNhxS,KAAKgxS,iCAAmC,IAAIryQ,OAEzC3+B,KAAKgxS,gCAChB,CACAC,cAAct4N,GACV34E,KAAKkxS,aAAc,EACflxS,KAAKmxS,SACLnxS,KAAKmxS,SAASx4N,GAAQhtC,SAGtBi1H,KAAOt7I,MAAMqzD,GAAQhtC,QAE7B,CACAylQ,cACIpxS,KAAKkxS,aAAc,EACnBlxS,KAAKwmM,MAAM7uD,OAAOpvI,MAAOowE,IACrB,GAAqB,oBAAjBA,GAAQpyE,KAAS,CACjB,GAAIvG,KAAKgxS,kCAAoChxS,KAAKgxS,iCAAiCK,eAE/E,YADArxS,KAAKgxS,iCAAiChwI,gBAAgBhhK,MAE1D,IACUA,KAAKwmM,MAAM8qG,MAOjB,OANA1wI,KAAOC,KAAK,8EACZ7gK,KAAKwmM,MAAM8qG,OAAQ,EACnBtxS,KAAKkxS,aAAc,OACnBlxS,KAAKwmM,MAAM7uD,OAAOpvI,MAAOgpS,IACrBvxS,KAAKixS,cAAcM,EAAW,EAGtC,CAEJvxS,KAAKixS,cAAct4N,EAAM,EAEjC,CAgBA94E,YAAY0G,EAAM+zB,EAAKgkF,EAAOgmB,GAAkB,EAAOmiE,GAAU,EAAO5gB,EAAes6C,KAAQC,uBAAwB7nN,EAAW,CAAC,EAAGg4K,GAAShhK,GAAS,GACpJ1rB,MAAM,KAAMy6G,GAAQgmB,EAAiBmiE,GACrCzmM,KAAKwxS,iBAAmB,KACxBxxS,KAAKgxS,iCAAmC,KACxChxS,KAAKyxS,qBAAsB,EAC3BzxS,KAAK0xS,0BAA2B,EAChC1xS,KAAK2xS,UAAW,EAChB3xS,KAAK4xS,YAAc,KACnB5xS,KAAKkxS,aAAc,EAInBlxS,KAAK6xS,SAAU,EACf7xS,KAAK8xS,uBAAyB,KAEL,MAAjB9xS,KAAKohK,UACLphK,KAAKohK,SAAS3/G,WAEbzhD,KAAK+xS,aAAa73B,iBAAoBnqG,KAAMiiI,gBAAgBhyS,KAAKwmM,MAAMiB,aAAe13B,KAAMiiI,gBAAgBhyS,KAAKwmM,MAAMkB,cACxH1nM,KAAKyiO,MAAQtC,KAAQ8xE,iBACrBjyS,KAAK0iO,MAAQvC,KAAQ8xE,mBAGrBjyS,KAAKyiO,MAAQtC,KAAQotE,kBACrBvtS,KAAK0iO,MAAQvC,KAAQotE,kBACrBvtS,KAAKilI,kBAAmB,GAE5BjlI,KAAKohK,SAAWphK,KAAK+xS,aAAav2E,qBAAqBx7N,KAAKwmM,MAAMiB,WAAYznM,KAAKwmM,MAAMkB,YAAa1nM,KAAKilI,iBAAkBjlI,KAAK6lL,cAClI7lL,KAAKohK,SAAS7xI,OAASvvB,KAAK6oQ,SAAW,EAEvC7oQ,KAAK2xS,UAAW,EAChB3xS,KAAKkyS,wBAAuB,EAEhClyS,KAAK4gO,uBAAyB,KAC1B,GAAqB,MAAjB5gO,KAAKohK,SACL,KAAIphK,KAAK0xS,yBAIL,OAHA1xS,KAAK0xS,0BAA2B,CAGhC,CAKR,GAFA1xS,KAAKwmM,MAAM3tH,iBAAiB,SAAU74E,KAAK8xS,wBAC3C9xS,KAAK8xS,yBACA9xS,KAAKwmM,MAAM2rG,UAAanyS,KAAKoyS,UAAUC,QAAWryS,KAAKoyS,UAAUE,uBAkBlEtyS,KAAKkyS,yBACDlyS,KAAKyuS,iBAAiB4C,gBACtBrxS,KAAKyuS,iBAAiBztI,gBAAgBhhK,UApBgD,CAC1F,MAAM4wN,GAAa5wN,KAAKwmM,MAAM+rG,UACxBC,GAAWxyS,KAAKwmM,MAAM8qG,MAC5BtxS,KAAKwmM,MAAM8qG,OAAQ,EACnBtxS,KAAKwmM,MAAM+rG,UAAY,KACnBvyS,KAAKwmM,MAAM8qG,MAAQkB,GACnBxyS,KAAKwmM,MAAM+rG,UAAY3hF,GACvB5wN,KAAKkyS,yBACAlyS,KAAKkxS,aACNlxS,KAAKwmM,MAAM31D,QAEX7wI,KAAKyuS,iBAAiB4C,gBACtBrxS,KAAKyuS,iBAAiBztI,gBAAgBhhK,KAAI,EAGlDA,KAAKoxS,aACT,CAIkD,EAItDpxS,KAAKklL,OAAS,KACW,MAAjBllL,KAAKohK,WAGJphK,KAAK0xS,2BACN1xS,KAAKohK,SAAS3/G,UACdzhD,KAAKohK,SAAW,QAGxBphK,KAAKkyS,uBAAyB,KAO1B,GANqB,MAAjBlyS,KAAKohK,UAGLphK,KAAKwmM,MAAM21D,WAAan8P,KAAKwmM,MAAM41D,mBAGnCp8P,KAAK0xS,yBACL,OAEJ,MAAMhtC,GAAU1kQ,KAAK2kI,WAAW8tK,aAC5BzyS,KAAK2xS,WAAajtC,KAGtB1kQ,KAAK2xS,SAAWjtC,GAChB1kQ,KAAK+xS,aAAazrG,mBAAmBtmM,KAAKohK,SAAUphK,KAAKwxS,iBAAmBxxS,KAAKwxS,iBAAmBxxS,KAAKwmM,MAAOxmM,KAAK0yS,UAAQ,EAEjI1yS,KAAKoyS,UAAY,CACbzD,UAAU,EACVrpB,MAAM,EACNqtB,mBAAmB,KAChBp6R,GAEPvY,KAAKmxS,SAAW5gH,GAChBvwL,KAAKilI,iBAAmBX,EACxBtkI,KAAK4yS,qBAAuB/sH,EAC5B7lL,KAAK2yS,kBAAoB3yS,KAAKoyS,UAAUO,kBACxC3yS,KAAK4xS,YAAct3Q,EACnBt6B,KAAKuG,KAAOA,GAAQvG,KAAK6yS,SAASv4Q,GAClCt6B,KAAKwmM,MAAQxmM,KAAK8yS,UAAUx4Q,GAC5B,MAAMy4Q,GAAe/yS,KAAKqxK,QACpB0uG,GAAwBgzB,IAAchzB,sBACxCA,KACA//Q,KAAKwxS,iBAAmBzxB,GAAsBhvN,KAAKgiP,GAAc/yS,KAAKwmM,QAErExmM,KAAKoyS,UAAUE,yBACZtyS,KAAKoyS,UAAUC,SACfryS,KAAKwmM,MAAM6rG,OAASryS,KAAKoyS,UAAUC,aAEPxvS,IAA5B7C,KAAKoyS,UAAUzD,WACf3uS,KAAKwmM,MAAM2rG,SAAWnyS,KAAKoyS,UAAUzD,eAEb9rS,IAAxB7C,KAAKoyS,UAAU9sB,OACftlR,KAAKwmM,MAAM8+E,KAAOtlR,KAAKoyS,UAAU9sB,WAERziR,IAAzB7C,KAAKoyS,UAAUd,QACftxS,KAAKwmM,MAAM8qG,MAAQtxS,KAAKoyS,UAAUd,OAEtCtxS,KAAKwmM,MAAMx+K,aAAa,cAAe,IACvChoB,KAAKwmM,MAAM3tH,iBAAiB,SAAU74E,KAAKkyS,wBAC3ClyS,KAAKwmM,MAAM3tH,iBAAiB,SAAU74E,KAAKkyS,wBAC3ClyS,KAAKwmM,MAAM3tH,iBAAiB,aAAc74E,KAAKkyS,wBAC/ClyS,KAAKwmM,MAAM3tH,iBAAiB,UAAW74E,KAAKklL,QACxCllL,KAAKoyS,UAAUzD,UACf3uS,KAAKoxS,eAGbpxS,KAAKgzS,8BAAgChzS,KAAKoyS,UAAUC,SAAWryS,KAAKoyS,UAAUzD,SAAW,OAAS,UAClG3uS,KAAKwmM,MAAM3tH,iBAAiB74E,KAAKgzS,8BAA+BhzS,KAAK4gO,wBACrE5gO,KAAK6oQ,QAAUt5O,GACf,MAAM0jR,GAAqBjzS,KAAKwmM,MAAM21D,YAAcn8P,KAAKwmM,MAAM41D,mBAC3Dp8P,KAAKoyS,UAAUC,QAAYryS,KAAKoyS,UAAUzD,UAAasE,GAIlDA,IACLjzS,KAAK4gO,0BAJL5gO,KAAKohK,SAAWphK,KAAK+xS,aAAaxoK,cAAcvpI,KAAKoyS,UAAUC,QAAQ,GAAQryS,KAAKymM,QAASnoF,GAC7Ft+G,KAAK0xS,0BAA2B,EAKxC,CAKA/rK,eACI,MAAO,cACX,CACAktK,SAASv4Q,GACL,OAAIA,aAAe44Q,iBACR54Q,EAAI64Q,WAEI,iBAAR74Q,EACAA,EAAIpxB,WAERoxB,CACX,CACAw4Q,UAAUx4Q,GACN,GAAIA,EAAI84Q,SACJ,OAAO94Q,EAEX,GAAIA,aAAe44Q,iBACfnjI,YAAMsjI,gBAAgB/4Q,EAAI64Q,WAAY74Q,GAC/BA,EAEX,MAAMksK,EAAQr+L,SAASof,cAAc,SACrC,MAAmB,iBAAR+S,GACPy1I,KAAMsjI,gBAAgB/4Q,EAAKksK,GAC3BA,EAAMlsK,IAAMA,IAGZy1I,KAAMsjI,gBAAgB/4Q,EAAI,GAAIksK,GAC9BlsK,EAAIra,QAAS/c,IACT,MAAM+kC,EAAS9/B,SAASof,cAAc,UACtC0gB,EAAO3N,IAAMp3B,EACbsjM,EAAMhgL,YAAYyhB,EAAM,IAGhCjoC,KAAKguI,oBAAoBC,QAAQ,KAC7B0iK,GAAanqG,EAAK,GAEfA,CACX,CAIA55B,WACI5sK,KAAK8iE,QACT,CAIAA,SACS9iE,KAAK2yS,mBAIV3yS,KAAKymP,eAAc,EACvB,CAKAA,cAAc7qD,GACLA,IAGD57L,KAAKwmM,MAAMwhF,QAAUhoR,KAAKyxS,sBAG9BzxS,KAAKyxS,qBAAsB,EAC3BzxS,KAAKkyS,0BACT,CAIA,mBAAI/mE,GACA,OAAOnrO,KAAKwxS,gBAChB,CAKA8B,UAAUpwS,GACNlD,KAAKwmM,MAAMlsK,IAAMp3B,EACjBlD,KAAK4xS,YAAc1uS,CACvB,CAKAE,QACI,OAAO,IAAI0tS,GAAa9wS,KAAKuG,KAAMvG,KAAK4xS,YAAa5xS,KAAK2kI,WAAY3kI,KAAKilI,iBAAkBjlI,KAAKymM,QAASzmM,KAAK6lL,aAAc7lL,KAAKoyS,UACvI,CAIA3wP,UACI59C,MAAM49C,UACNzhD,KAAK4xS,YAAc,KACf5xS,KAAKgxS,mCACLhxS,KAAKgxS,iCAAiC/+P,QACtCjyC,KAAKgxS,iCAAmC,MAE5ChxS,KAAKwmM,MAAM1tH,oBAAoB94E,KAAKgzS,8BAA+BhzS,KAAK4gO,wBACnE5gO,KAAKoyS,UAAUE,yBAChBtyS,KAAKwmM,MAAM1tH,oBAAoB,SAAU94E,KAAKkyS,wBAC9ClyS,KAAKwmM,MAAM1tH,oBAAoB,SAAU94E,KAAKkyS,wBAC9ClyS,KAAKwmM,MAAM1tH,oBAAoB,aAAc94E,KAAKkyS,wBAClDlyS,KAAKwmM,MAAM1tH,oBAAoB,UAAW94E,KAAKklL,QAC/CllL,KAAKwmM,MAAM1tH,oBAAoB,SAAU94E,KAAK8xS,wBAC9C9xS,KAAKwmM,MAAM31D,SAEf7wI,KAAKwxS,kBAAkB/vP,SAC3B,CASA,4BAAO8xP,CAAsBj1L,EAAOz9B,EAAQ86I,EAAal1B,GAAU,GAC/D,MAAMD,EAAQloF,EAAM6xD,YAAYurD,mBAAmBC,GACnD,OAAIr9G,EAAM6xD,YAAYqjI,SAElBrrS,SAAS+d,KAAKM,YAAYggL,GAC1BA,EAAMh/K,MAAMg6B,UAAY,wBACxBglJ,EAAMh/K,MAAMisR,QAAU,IACtBjtG,EAAMh/K,MAAMlP,SAAW,QACvBkuL,EAAMh/K,MAAM0vC,OAAS,MACrBsvI,EAAMh/K,MAAMyrM,MAAQ,OAExBzsB,EAAMx+K,aAAa,WAAY,IAC/Bw+K,EAAMx+K,aAAa,QAAS,QAC5Bw+K,EAAMx+K,aAAa,cAAe,IAClCw+K,EAAM8qG,OAAQ,EACV9qG,EAAM4sG,WAIwB,iBAAnB5sG,EAAMqqG,UACbrqG,EAAMqqG,UAAYhwN,EAIlB2lH,EAAMlsK,IAAMtyB,OAAOc,KAAOd,OAAOc,IAAIs5E,gBAAgBvB,IAGtD,IAAIlpE,QAASC,IAChB,MAAM87R,EAAYA,KACd,MAAMC,GAAe,IAAI7C,GAAa,QAAStqG,EAAOloF,GAAO,EAAMmoF,OAAS5jM,OAAWA,OAAWA,EAAW,GACzGy7G,EAAM6xD,YAAYqjI,QAClBG,GAAa3lK,oBAAoBC,QAAQ,KACrCu4D,EAAM9tJ,QAAO,GAGrBi7P,GAAa3lK,oBAAoBC,QAAQ,KACrC0iK,GAAanqG,EAAK,GAEtB5uL,EAAQ+7R,IACRntG,EAAM1tH,oBAAoB,UAAW46N,EAAS,EAElDltG,EAAM3tH,iBAAiB,UAAW66N,GAClCltG,EAAM7uD,MAAK,EAEnB,CASA,4BAAai8J,CAAsBt1L,EAAOq9G,EAAak4E,GAAkB,EAAOptG,GAAU,GAAM,IAAAvmM,EAAAF,KAAA,SAAAG,KAAA,YAC5F,GAAI0tH,UAAUimL,aAAc,CACxB,MAAMjzN,QAAegtC,UAAUimL,aAAaC,aAAa,CACrDvtG,MAAOm1B,EACPq4E,MAAOH,IAELF,QAAqBzzS,EAAKqzS,sBAAsBj1L,EAAOz9B,EAAQ86I,EAAal1B,GAClFktG,SAAa3lK,oBAAoBC,QAAQ,KACrCptD,EAAOozN,YAAYh0R,QAASi0R,KACxBA,GAAMlmJ,MAAK,EACd,GAEE2lJ,CACX,CACA,OAAOh8R,QAAQkwD,OAAO,0CAA2C,EAd2B,EAehG,CASA,uBAAOssO,CAAiB71L,EAAOkyG,EAASmL,EAAak4E,GAAkB,EAAOptG,GAAU,GACpFzmM,KAAK4zS,sBAAsBt1L,EAAOq9G,EAAak4E,EAAiBptG,GAC3DpmM,KAAK,SAAUszS,GACZnjF,GACAA,EAAQmjF,EAEhB,GACKprS,MAAM,SAAUC,GACjBo4J,KAAOt7I,MAAM9c,EAAIjC,KACrB,EACJ,GAEJs8J,SAAW,IACPz9B,OAAU,aACX0rK,GAAavsQ,UAAW,iBAAa,IAAM,EAC9Cs+H,OAAW,IACPz9B,OAAU,QACX0rK,GAAavsQ,UAAW,mBAAe,IAAM,EAChDs+H,OAAW,IACPz9B,UACD0rK,GAAavsQ,UAAW,eAAW,GACtC47L,KAAQi0E,oBAAsB,CAAC7tS,EAAM+zB,EAAKgkF,EAAOgmB,GAAkB,EAAOmiE,GAAU,EAAO5gB,EAAes6C,KAAQC,uBAAwB7nN,EAAW,CAAC,EAAGg4K,EAAShhK,GAAS,IAChK,IAAIuhR,GAAavqS,EAAM+zB,EAAKgkF,EAAOgmB,EAAiBmiE,EAAS5gB,EAActtK,EAAUg4K,EAAShhK,KAAM,EAG/GsvI,OAAc,uBAAwBiyI,IC3b/B,MAAMuD,WAAkBjH,GAI3B,gBAAIuG,GACA,OAAO3zS,KAAKohK,QAChB,CAIA,aAAIkzI,GACA,OAAOt0S,KAAK+tS,WAChB,CAKA,aAAIuG,CAAU/hS,GACVvS,KAAK+tS,YAAcx7R,CACvB,CACA+8R,aAAaoB,EAAepyL,EAAO/xF,GAC/B,MACMg6K,EAAU,IAAIuqG,IAAc9wS,KAAKuG,MAAQ,aAAe,WAAYmqS,EAAepyL,EAAO/xF,EAAQ+3G,gBAAiBtkI,KAAKstS,kBAAmBntE,KAAQC,uBADrI,CAAEklD,KAAM/4P,EAAQ+4P,KAAMqpB,SAAUpiR,EAAQoiR,SAAUgE,mBAAmB,EAAMN,OAAQ9lR,EAAQ8lR,SAG/G,OAAI9lR,EAAQmiR,cACR1uS,KAAKu0S,iBAAmBj2L,EAAMk2L,oBAAoBh8P,IAAK/yC,IACnDA,EAAKgvS,UAAUxhK,aAAejzI,KAAK2hK,MAAQ3hK,KAAKohK,SAASolC,MAAM7uD,MAAK,EACrEw7B,MAAkBC,cAEzBpzK,KAAK00S,iBAAmBnuG,EAAQkoG,iBAAiBj2P,IAAI,KACjDx4C,KAAKyuS,iBAAiBztI,iBAAgB,GAEnCulC,CACX,CAMA9kJ,QAAQ4uP,EAAcC,GAA6B,GAC/CtwS,KAAKohK,SAASqtI,iBAAiB/1P,OAAO14C,KAAK00S,kBAC3C10S,KAAKq4I,OAAOm8J,oBAAoB97P,OAAO14C,KAAKu0S,kBAC5C1wS,MAAM49C,QAAQ4uP,EAAcC,EAChC,EAKJ+D,GAAU/F,gBAAkBlB,GAAYkB,gBAIxC+F,GAAUjE,eAAiBhD,GAAYgD,eAIvCiE,GAAUrE,gBAAkB5C,GAAY4C,iDC9CxChgH,KAAMzrJ,UAAUowQ,wBAA0B,SAAUpuS,GAChD,QAASoU,EAAQ,EAAGA,EAAQ3a,KAAK40S,cAAcl/R,OAAQiF,IACnD,GAAI3a,KAAK40S,aAAaj6R,GAAOpU,OAASA,GAAQvG,KAAK40S,aAAaj6R,GAAOk6R,kBAAoBC,GAAeC,WACtG,OAAO/0S,KAAK40S,aAAaj6R,GAGjC,OAAO,IACX,EAKA,MAAMq6R,WAA4BrvH,KAC9B9lL,YAAY0G,EAAM0U,EAAW2kR,EAAQrzQ,EAAS0jJ,EAAQ4V,EAAes6C,KAAQ30F,sBAAuBd,EAAQo7C,IACxGjiL,MAAM0C,EAAM,sBAAuB,CAAC,aAAc,YAAa,aAAc,KAAMgmB,EAAS0jJ,EAAQ4V,EAAcn7C,EAAQo7C,IAC1H9lL,KAAKib,UAAYA,EACjBjb,KAAK4/R,OAASA,EACd5/R,KAAK4rI,kBAAkBpzF,IAAKz8B,KACxBA,GAAO+lJ,UAAU,aAAc9hK,KAAKy6B,MAAOz6B,KAAK06B,QAChD3e,GAAOu/L,WAAW,YAAat7M,KAAKib,WACpCc,GAAOgmJ,SAAS,YAAa/hK,KAAK4/R,OAAM,EAEhD,CACA15G,eAAeC,EAAWxqK,GAClBwqK,GACAnmL,KAAKomL,cAAe,EACpBzqK,EAAKsC,KAAKtG,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,UAGV1qK,EAAKsC,KAAKtG,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,SAEdxiL,MAAMqiL,eAAeC,EAAWxqK,EACpC,EAUG,MAAMm5R,WAAuBG,KAIhC,sBAAIC,CAAmB3iS,GACnBvS,KAAKm1S,2BAA2BvV,OAASrtR,EACzCvS,KAAKmiD,SAAS+yP,mBAAqB3iS,CACvC,CAIA,oBAAI6iS,CAAiB7iS,GACjBvS,KAAKq1S,yBAAyBzV,OAASrtR,EACvCvS,KAAKmiD,SAASizP,iBAAmB7iS,CACrC,CAIA,sBAAI2iS,GACA,OAAOl1S,KAAKm1S,2BAA2BvV,MAC3C,CAIA,oBAAIwV,GACA,OAAOp1S,KAAKq1S,yBAAyBzV,MACzC,CAOA//R,YAAY0G,EAAM+3G,EAAO/xF,GACrB1oB,MAAM0C,EAAM+3G,OAAmBz7G,IAAZ0pB,KAA0BA,EAAQ+oR,WACrDt1S,KAAKuG,KAAOA,EAIZvG,KAAKu1S,WAAY,EAIjBv1S,KAAKw1S,WAAY,EAIjBx1S,KAAKy1S,uBAAyB,IAAI92Q,MAIlC3+B,KAAK01S,sBAAwB,IAAI/2Q,MACjC3+B,KAAK21S,qCAAuCb,GAAec,8BAC3D51S,KAAK61S,QAAU,CAAC,EAChB71S,KAAK81S,gBAAkB,CAAC,EACxB91S,KAAK+1S,aAAejB,GAAekB,aAE9Bh2S,KAAKqxK,QAAQ0hG,iBACdnyG,KAAOC,KAAK,+IAGhB7gK,KAAKmiD,SAAW,CACZ8zP,iBAAkB,GAClBC,qBAAsB,GACtBhB,mBAAoB,EACpBE,iBAAkB,EAClBe,kBAAmB,EACnBlmI,OAAQ,KACR58B,kBAAkB,EAClB+iK,gBAAiB,EACjBd,WAAW,KACR/oR,GAGPvsB,KAAKq2S,MAAM,CACPF,kBAAmBn2S,KAAKmiD,SAASg0P,kBACjClmI,OAAQjwK,KAAKmiD,SAAS8tH,OACtBqmI,qBAAsBt2S,KAAKmiD,SAASm0P,qBACpCL,iBAAkBj2S,KAAKmiD,SAAS8zP,iBAChC5iK,iBAAkBrzI,KAAKmiD,SAASkxF,iBAChC+iK,gBAAiBp2S,KAAKmiD,SAASi0P,kBAGnCp2S,KAAKu2S,eAAgB,CACzB,CACMC,sBAAsB,IAAAC,MAAA5yS,MAAA2yS,oBAAAt2S,EAAAF,KAAA,SAAAG,KAAA,YACK,IAAzBD,EAAKixL,sBACCx5K,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,gBAIE1uK,QAAQyE,IAAI,CAACzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QAA+C1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,OAA6C1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,gBAE7GowH,IAAA1lP,KAAA7wD,EAA4B,EAXV,EAY5B,CAKA20S,gBACI,OAAOC,GAAeC,UAC1B,CACA2B,oBACI,OAAO,CACX,CAMAC,qBAAqB,IAAA9uS,EAAA7H,KAEjB,OAAOA,KAAKqxK,QAAQl8J,aAAa,eAAgB,CAACq3J,IAAa1yB,cAAe,CAAC,UAAW,CAAC,kBAAmB95I,KAAKmiD,SAASy0P,SAAW,yBAAsB/zS,OAAWA,OAAWA,OAAWA,OAAWA,EAAW7C,KAAKmxL,gBAAiBnxL,KAAKwsR,oBACzO3pR,GAAS1C,OACT,kBACQ0H,EAAK2uS,sBACX3uS,EAAK2kR,gBAAiB,CAC1B,GACR,CAIAqqB,iCACI,IAAIC,EAAmB92S,KAAK+2S,wBAAwBt8Q,MAAQz6B,KAAKmiD,SAAS+zP,qBACtEc,EAAoBh3S,KAAK+2S,wBAAwBr8Q,OAAS16B,KAAKmiD,SAAS+zP,qBAC5EY,EAAmB92S,KAAKqxK,QAAQ6oG,mBAAkBoI,MAAiBw0B,EAAkB92S,KAAKi3S,UAAYH,EACtGE,EAAoBh3S,KAAKqxK,QAAQ6oG,mBAAkBoI,MAAiB00B,EAAmBh3S,KAAKi3S,UAAYD,EACxG,IAAI1rK,EAAc,EAkBlB,GAhBIA,EADAtrI,KAAKqxK,QAAQ4tB,UAAUkpB,uBACT,EAGA,EAElBnoN,KAAKk3S,aAAe,IAAI7yK,KAAoB,wBAAyB,CACjE5pG,MAAOq8Q,EACPp8Q,OAAQs8Q,GACTh3S,KAAKq4I,QAAQ,GAAO,EAAM/M,GAC7BtrI,KAAKk3S,aAAaz0E,MAAQtC,KAAQotE,kBAClCvtS,KAAKk3S,aAAax0E,MAAQvC,KAAQotE,kBAClCvtS,KAAKk3S,aAAa7zE,0BAA4B,GAC9CrjO,KAAKk3S,aAAaC,mBAAmBh3E,KAAQC,wBAC7CpgO,KAAKk3S,aAAa5S,iBAAkB,EACpCtkS,KAAKk3S,aAAa3rK,sBAAuB,EACzCvrI,KAAKgwR,UAAY,CAAChwR,KAAKk3S,cACiB,IAApCl3S,KAAKmiD,SAASg0P,kBACdn2S,KAAKo3S,uBAAyB,IAAI5wH,KAAgB,oBAAqBxmL,KAAKmiD,SAAS+zP,qBAAsB,KAAM/1E,KAAQ30F,sBAAuBxrI,KAAKq4I,OAAO83B,aAC5JnwK,KAAKo3S,uBAAuBC,+BAAgC,EAC5Dr3S,KAAKo3S,uBAAuBxrK,kBAAkBpzF,IAAKz8B,IAC/CA,EAAO8vH,WAAW,iBAAkB7rI,KAAK6yQ,aAAY,GAEzD7yQ,KAAKm1S,2BAA6B,IAAIH,GAAoB,oBAAqB,IAAI94H,KAAQ,EAAK,GAAIl8K,KAAKmiD,SAAS+yP,mBAAoB,EAAG,KAAM/0E,KAAQ30F,sBAAuBxrI,KAAKq4I,OAAO83B,aAC1LnwK,KAAKm1S,2BAA2BvpK,kBAAkBpzF,IAAKz8B,IACnDA,EAAO+lJ,UAAU,aAAcg1I,EAAkBE,EAAiB,GAEtEh3S,KAAKq1S,yBAA2B,IAAIL,GAAoB,oBAAqB,IAAI94H,KAAQ,EAAG,GAAMl8K,KAAKmiD,SAASizP,iBAAkB,EAAG,KAAMj1E,KAAQ30F,sBAAuBxrI,KAAKq4I,OAAO83B,aACtLnwK,KAAKq1S,yBAAyBzpK,kBAAkBpzF,IAAKz8B,IACjDA,EAAO+lJ,UAAU,aAAcg1I,EAAkBE,EAAiB,GAEtEh3S,KAAKs3S,eAAiB,CAACt3S,KAAKo3S,uBAAwBp3S,KAAKm1S,2BAA4Bn1S,KAAKq1S,8BAEzF,CACDr1S,KAAKm1S,2BAA6B,IAAIoC,KAAgB,oBAAqB,IAAIr7H,KAAQ,EAAK,GAAIl8K,KAAKmiD,SAAS+yP,mBAAqB,EAAG,CAClIz6Q,MAAOq8Q,EACPp8Q,OAAQs8Q,GACT,KAAM72E,KAAQ30F,sBAAuBxrI,KAAKq4I,OAAO83B,aAAa,EAAO7kC,GACxE,MAAMksK,EAA4Bx3S,KAAKm1S,2BACvCqC,EAA0B/8Q,MAAQq8Q,EAClCU,EAA0B98Q,OAASs8Q,EACnCQ,EAA0BH,+BAAgC,EAC1DG,EAA0B5rK,kBAAkBpzF,IAAKz8B,IAC7CA,EAAO8vH,WAAW,iBAAkB7rI,KAAK6yQ,aAAY,GAEzD7yQ,KAAKq1S,yBAA2B,IAAIkC,KAAgB,oBAAqB,IAAIr7H,KAAQ,EAAG,GAAMl8K,KAAKmiD,SAASizP,iBAAmB,EAAG,CAC9H36Q,MAAOq8Q,EACPp8Q,OAAQs8Q,GACT,KAAM72E,KAAQ30F,sBAAuBxrI,KAAKq4I,OAAO83B,aAAa,EAAO7kC,GACxEtrI,KAAKs3S,eAAiB,CAACt3S,KAAKm1S,2BAA4Bn1S,KAAKq1S,yBACjE,CACAr1S,KAAK6yQ,aAAa9mI,wBAAwBvzF,IAAI,KAC1Cx4C,KAAKy1S,uBAAuBz0I,gBAAgBhhK,MAC5C,MAAMi+N,EAAkBj+N,KAAKk3S,aAAalrK,aACtCiyF,IACAj+N,KAAKq4I,OAAOnM,mBAAmBC,aAAansI,KAAKs3S,eAAgBr5E,GAAiB,GAClFj+N,KAAKqxK,QAAQjlC,kBAAkB6xF,GAAiB,IAEpDj+N,KAAK01S,sBAAsB10I,gBAAgBhhK,KAAI,GAGnDA,KAAKs3S,eAAejxS,IAAKoxS,IACrBA,EAAGhsK,WAAY,GAEvB,CAIAisK,cACI,OAAO,CACX,CAOA3jH,QAAQkhF,EAASpzG,GACb,MAAMx6B,EAAW4tI,EAAQ0iC,cACnBh2I,EAAOszG,EAAQ2iC,mBACrB,IAAKvwK,IAAas6B,IAAS3hK,KAAK61S,QAC5B,OAAO,EAEX,IAAIgC,EAAkB,KACtB,MAAMC,EAAqB93S,KAAK61S,QAAQl0I,EAAKkhB,UAC7C,OAAIi1H,GAAsBA,EAAmBC,kBAAoB1wK,IAC7DwwK,EAAkBxwK,EAASwwK,iBAExBh0S,MAAM+sL,SAASqkF,EAASpzG,EAAcg2I,EACjD,CAMAG,gBAAgBj8R,EAAQk8R,GAEpBl8R,EAAO8vH,WAAW,iBAAkB7rI,KAAKk3S,cAEzC,MAAMxsK,EAAS1qI,KAAKqxK,QACpB3mC,EAAOwtK,oBAEPxtK,EAAO+sF,wBAAwB,MAC/B/sF,EAAOqtF,wBAAwB,MAC/BrtF,EAAOstF,6BAA6B,MAEpCttF,EAAOgtF,eAAe,GACtBhtF,EAAO4sF,kBAAiB,GACxB5sF,EAAOmtF,4BAA4B73N,KAAK21S,sCAEpC31S,KAAKw1S,WAA6B,IAAhByC,IAElBl8R,EAAOgmJ,SAAS,SAAU,GAC1Br3B,EAAOitF,mBAAmB,KAC1BjtF,EAAOukF,iBAAiB4mB,KAASsiE,iBAAkB,EAAG,IAEtDn4S,KAAKu1S,WAA6B,IAAhB0C,IAElBl8R,EAAOgmJ,SAAS,SAAU,GAC1Br3B,EAAOitF,mBAAmB,KAC1BjtF,EAAOukF,iBAAiB4mB,KAASsiE,iBAAkB,EAAG,IAG1DztK,EAAO0tK,qBACX,CAIAlpB,eACI,QAAIrrR,MAAMqrR,kBACClvR,KAAK61S,OAGpB,CAMAwC,kBAAkB12I,GAKd,QAHI3hK,KAAK81S,iBAAmB91S,KAAK81S,gBAAgBn0I,EAAKkhB,YAGjDh/K,MAAMy0S,QAAQ32I,GAIvB,CAOA42I,eAAe52I,EAAMt6B,GAEjB,OAAO,CACX,CAKAmxK,wBAAwBnoH,GACpBA,EAAQpyK,KAAK,oBACjB,CAOAw6R,4BAA4B92I,EAAMszG,EAAS5tI,GACvC,MAAMywK,EAAqB93S,KAAK61S,QAAQl0I,EAAKkhB,UACzCi1H,EACA93S,KAAK04S,yBAAyB7+O,MAAM38C,IAAI46R,EAAmBj+O,MAAMz4C,EAAG02R,EAAmBj+O,MAAMh/C,EAAGi9R,EAAmBj+O,MAAMtkD,EAAG,GAG5HvV,KAAK04S,yBAAyB7+O,MAAM38C,IAAIld,KAAK+1S,aAAa30R,EAAGphB,KAAK+1S,aAAal7R,EAAG7a,KAAK+1S,aAAaxgS,EAAGvV,KAAK+1S,aAAannS,GAEzHkpS,GAAsBA,EAAmBC,kBAAoB1wK,GAC7DrnI,KAAK04S,yBAAyBnyG,QAAUl/D,EAASwwK,gBACjD73S,KAAK04S,yBAAyB7+O,MAAM38C,IAAI,EAAK,EAAK,EAAK,IAGvDld,KAAK04S,yBAAyBnyG,QAAU,IAEhD,CAKAoyG,gBAAgBh3I,GACZ,GAAK3hK,KAAK81S,kBAGW91S,KAAK81S,gBAAgBn0I,EAAKkhB,UAC5B,CACf,MAAMjmI,EAAM,CACR+kH,KAAMA,EACNi3I,WAAY,KACZC,YAAa,KACbC,cAAc,GAElBl8P,EAAIg8P,WAAaj3I,EAAKo3I,uBAAuBvgQ,IAAKmpH,IAC9C/kH,EAAIk8P,aAAen3I,EAAKwO,YAAYonD,mBACpC51D,EAAKwO,YAAYmnD,kBAAiB,EAAK,GAE3C16K,EAAIi8P,YAAcl3I,EAAK98B,wBAAwBrsF,IAAKmpH,IAChDA,EAAKwO,YAAYmnD,iBAAiB16K,EAAIk8P,aAAY,GAEtD94S,KAAK81S,gBAAgBn0I,EAAKkhB,UAAYjmI,CAC1C,CACJ,CAKAo8P,mBAAmBr3I,GACf,IAAK3hK,KAAK81S,gBACN,OAEJ,MAAMmD,EAAej5S,KAAK81S,gBAAgBn0I,EAAKkhB,UAC3Co2H,IACIA,EAAaL,YACbj3I,EAAKo3I,uBAAuBrgQ,OAAOugQ,EAAaL,YAEhDK,EAAaJ,aACbl3I,EAAK98B,wBAAwBnsF,OAAOugQ,EAAaJ,cAGzD74S,KAAK81S,gBAAgBn0I,EAAKkhB,UAAY,IAC1C,CAMAy1H,QAAQ32I,GAIJ,SAHK3hK,KAAK61S,UAGLhyS,MAAMy0S,QAAQ32I,KAGZ3hK,WAAK61S,QAAQl0I,EAAKkhB,SAC7B,CAOAyV,QAAQ32B,EAAM9nG,EAAOk+O,GAAmB,GACpC,IAAK/3S,KAAK61S,QACN,OAEJ,MAAMqD,EAAgBl5S,KAAK61S,QAAQl0I,EAAKkhB,UACpCq2H,EACAA,EAAcr/O,MAAQA,GAGtB75D,KAAK61S,QAAQl0I,EAAKkhB,UAAY,CAC1BlhB,KAAMA,EACN9nG,MAAOA,EAEPs/O,kBAAmBx3I,EAAKo3I,uBAAuBvgQ,IAAKmpH,IAC5C3hK,KAAKisI,YACDjsI,KAAK81S,iBAAmB91S,KAAK81S,gBAAgBn0I,EAAKkhB,UAClD7iL,KAAKo5S,yBAAyBz3I,GAG9BA,EAAKh9B,WAAWwrC,YAAY0nD,4BAA4B73N,KAAK21S,sCAAoC,GAI7G0D,gBAAiB13I,EAAK98B,wBAAwBrsF,IAAKmpH,IAC3C3hK,KAAKisI,WACLjsI,KAAKo5S,yBAAyBz3I,EAAI,GAG1Co2I,iBAAkBA,GAEtBp2I,EAAK3zB,oBAAoBx1F,IAAI,KACzBx4C,KAAKs5S,aAAa33I,EAAI,IAG9B3hK,KAAKu2S,eAAgB,CACzB,CAKAplK,WAAWwwB,GACP,IAAK3hK,KAAK61S,QACN,OAEJ,MAAMqD,EAAgBl5S,KAAK61S,QAAQl0I,EAAKkhB,UACpCq2H,IACIA,EAAcC,mBACdx3I,EAAKo3I,uBAAuBrgQ,OAAOwgQ,EAAcC,mBAEjDD,EAAcG,iBACd13I,EAAK98B,wBAAwBnsF,OAAOwgQ,EAAcG,wBAE/Cr5S,KAAK61S,QAAQl0I,EAAKkhB,WAE7B7iL,KAAKu2S,eAAgB,EACrB,UAAWgD,KAAwBv5S,KAAK61S,QACpC,GAAI71S,KAAK61S,QAAQ0D,GAAuB,CACpCv5S,KAAKu2S,eAAgB,EACrB,KACJ,CAER,CAIAiD,kBACI,GAAKx5S,KAAK61S,QAGV,UAAWhzH,KAAY7iL,KAAK61S,QACxB,GAAI1hS,OAAOowB,UAAUyH,eAAe+kB,KAAK/wD,KAAK61S,QAAShzH,GAAW,CAC9D,MAAMlhB,EAAO3hK,KAAK61S,QAAQhzH,GACtBlhB,GACA3hK,KAAKmxI,WAAWwwB,EAAKA,KAE7B,CAER,CAKAy3I,yBAAyBz3I,GACrBA,EAAKh9B,WAAWwrC,YAAY0nD,4BAA4Bi9E,GAAe2E,2BAC3E,CAOAH,aAAa33I,GACT3hK,KAAKmxI,WAAWwwB,GAChB3hK,KAAKg5S,mBAAmBr3I,EAC5B,CAIAlgH,UACI,GAAIzhD,KAAK61S,QAAS,CAEd,UAAWxpS,KAAMrM,KAAK61S,QAAS,CAC3B,MAAMqD,EAAgBl5S,KAAK61S,QAAQxpS,GAC/B6sS,GAAiBA,EAAcv3I,OAC3Bu3I,EAAcC,mBACdD,EAAcv3I,KAAKo3I,uBAAuBrgQ,OAAOwgQ,EAAcC,mBAE/DD,EAAcG,iBACdH,EAAcv3I,KAAK98B,wBAAwBnsF,OAAOwgQ,EAAcG,iBAG5E,CACAr5S,KAAK61S,QAAU,IACnB,CACA,GAAI71S,KAAK81S,gBAAiB,CACtB,UAAWzpS,KAAMrM,KAAK81S,gBAAiB,CACnC,MAAMoD,EAAgBl5S,KAAK81S,gBAAgBzpS,GACvC6sS,IACIA,EAAcN,YACdM,EAAcv3I,KAAKo3I,uBAAuBrgQ,OAAOwgQ,EAAcN,YAE/DM,EAAcL,aACdK,EAAcv3I,KAAK98B,wBAAwBnsF,OAAOwgQ,EAAcL,aAG5E,CACA74S,KAAK81S,gBAAkB,IAC3B,CACAjyS,MAAM49C,SACV,CAKAkkF,eACI,MAAO,gBACX,CAKAP,YACI,MAAMC,EAAsBm9B,KAAoBE,UAAU1iK,MAI1D,GAHAqlI,EAAoB41J,WAAa,yBAEjC51J,EAAoB6L,OAAS,GACzBlxI,KAAK61S,QACL,UAAW7tO,KAAKhoE,KAAK61S,QAAS,CAC1B,MAAMl0I,EAAO3hK,KAAK61S,QAAQ7tO,GACtB25F,GACAt8B,EAAoB6L,OAAOjzH,KAAK,CAC5B85R,iBAAkBp2I,EAAKo2I,iBACvBl+O,MAAO8nG,EAAK9nG,MAAM0rE,UAClBm0K,OAAQ/3I,EAAKA,KAAKt1J,IAG9B,CAIJ,GADAg5H,EAAoBs0K,eAAiB,GACjC35S,KAAK81S,gBACL,UAAW/3R,KAAK/d,KAAK81S,gBAAiB,CAClC,MAAM1mH,EAAepvL,KAAK81S,gBAAgB/3R,GACtCqxK,GACA/pD,EAAoBs0K,eAAe17R,KAAKmxK,EAAaztB,KAAKt1J,GAElE,CAEJ,OAAOg5H,CACX,CAQA,YAAOu9B,CAAMg3I,EAAuBt7L,EAAOqkD,GACvC,MAAMk3I,EAAKr3I,KAAoBI,MAAM,IAAM,IAAIkyI,GAAe8E,EAAsBrzS,KAAM+3G,EAAOs7L,EAAsBrtR,SAAUqtR,EAAuBt7L,EAAOqkD,GAC/J,IAAIhoJ,EAEJ,IAAKA,EAAQ,EAAGA,EAAQi/R,EAAsBD,eAAejkS,OAAQiF,IAAS,CAC1E,MAAMgnJ,EAAOrjD,EAAMw7L,YAAYF,EAAsBD,eAAeh/R,IAChEgnJ,GACAk4I,EAAGlB,gBAAgBh3I,EAE3B,CAEA,IAAKhnJ,EAAQ,EAAGA,EAAQi/R,EAAsB1oK,OAAOx7H,OAAQiF,IAAS,CAClE,MAAMo/R,EAAkBH,EAAsB1oK,OAAOv2H,GAC/CgnJ,EAAOrjD,EAAMw7L,YAAYC,EAAgBL,QAC3C/3I,GACAk4I,EAAGvhH,QAAQ32B,EAAMtB,KAAOy3H,UAAUiiB,EAAgBlgP,OAAQkgP,EAAgBhC,iBAElF,CACA,OAAO8B,CACX,EAKJ/E,GAAeC,WAAa,iBAK5BD,GAAekB,aAAe,IAAI7qC,KAAO,EAAG,EAAG,EAAG,GAIlD2pC,GAAec,4BAA8B,EAI7Cd,GAAe2E,2BAA6B,KAC5C52I,OAAW,IACPz9B,UACD0vK,GAAevwQ,UAAW,iBAAa,IAAM,EAChDs+H,OAAW,IACPz9B,UACD0vK,GAAevwQ,UAAW,iBAAa,IAAM,EAChDs+H,OAAW,IACPz9B,UACD0vK,GAAevwQ,UAAW,qBAAsB,OAAI,EACvDs+H,OAAW,IACPz9B,UACD0vK,GAAevwQ,UAAW,mBAAoB,OAAI,EACrDs+H,OAAW,IACPz9B,OAAU,YACX0vK,GAAevwQ,UAAW,gBAAY,IAAM,EAC/Cs6H,OAAc,yBAA0Bi2I,mKC1pBjC,MAAMkF,GAaT,eAAOC,CAAS5gR,EAAM/gB,EAAUuhD,EAAOqgP,EAAQC,GAC3C,OAAO,IAAIH,GAAU3gR,EAAM/gB,EAAUuhD,EAAOqgP,EAAQC,EACxD,CAYAt6S,YAIAw5B,EAIA/gB,EAAUuhD,EAAOqgP,EAAQC,GACrBn6S,KAAKq5B,KAAOA,EACZr5B,KAAKsY,SAAWA,EAIhBtY,KAAK6zQ,UAAY,EACjB7zQ,KAAK65D,MAAQA,GAAS,IAAIwmG,KAAO,EAAG,EAAG,GACvCrgK,KAAKumM,QAAU2zG,EAAS,IAAI/5E,KAAQ+5E,EAAQC,EAAOx1K,YAAY,GAAQ,KACvE3kI,KAAKo6S,QAAUD,EACf,MAAMzvK,EAASyvK,EAAO77L,MAAM6xD,YAC5BgqI,EAAOE,iBAAiBpsK,QAAQ,KAC5BjuI,KAAK+9R,aAAe,IAAIuc,KAAY5vK,GACpC1qI,KAAK+9R,aAAahiR,OAAS2uH,EAAOv1H,aAAa,YAAa,CAACq3J,IAAa1yB,cAAe,CAAC,QAAS,kBAAmB,CAAC,kBAAmB,QAAIj3I,OAAWA,OAAWA,OAAWA,EAAWs3S,EAAO3jG,eAAc,GAEnN2jG,EAAOI,WAAWt8R,KAAKje,KAC3B,CAIAyhD,UACQzhD,KAAKumM,SACLvmM,KAAKumM,QAAQ9kJ,UAGjB,MAAM9mC,EAAQ3a,KAAKo6S,QAAQG,WAAWz1Q,QAAQ9kC,MAC9CA,KAAKo6S,QAAQG,WAAWh/R,OAAOZ,EAAO,EAC1C,kBCvDG,IAAM6/R,GAAe,MAArB,MAAMA,EAET,SAAIl8L,GACA,OAAOt+G,KAAKq4I,MAChB,CAIA,kBAAIm+D,GACA,OAAOx2M,KAAKmxL,eAChB,CAUAtxL,YAIA0G,EAAMk0S,EAASn8L,GACXt+G,KAAKuG,KAAOA,EAIZvG,KAAKu6S,WAAa,GAIlBv6S,KAAK06S,YAAc,IAInB16S,KAAK26S,eAAiB,EAItB36S,KAAKyjS,UAAY,UAEjBzjS,KAAKmxL,gBAAkB,EACvBnxL,KAAK80P,eAAiB,CAAC,EACvB90P,KAAKqhK,YAAa,EAElBrhK,KAAKq6S,iBAAmB,IAAI17Q,WAAW97B,GAAW,GAClD7C,KAAKwsR,gBAAiB,EACtBxsR,KAAKq4I,OAAS/5B,GAASgjD,KAAYC,iBACnCi5I,EAAgBI,8BAA8B56S,KAAKq4I,QACnDr4I,KAAK66S,SAAWJ,EAChBz6S,KAAKqM,GAAK9F,EACV+3G,EAAMw8L,iBAAiB78R,KAAKje,MAC5BA,KAAK+6S,yBAA4B/yO,GAAOs2C,EAAM8rB,cAAgBpiE,EAAEq/D,UAAYr/D,EAAE4zH,WAAa5zH,EAAEikE,aAAejkE,EAAEgzO,cAAchzO,EAAEy7N,UAAYnlL,EAAM8rB,aAAaq5J,WAC7J,MAAM/4J,EAASpsB,EAAM6xD,YAEfk9C,EAAW,GACjBA,EAASpvM,KAAK,EAAG,GACjBovM,EAASpvM,MAAK,EAAI,GAClBovM,EAASpvM,MAAK,GAAI,GAClBovM,EAASpvM,KAAK,GAAG,GACjBje,KAAK80P,eAAetoF,IAAa1yB,cAAgB,IAAI0yB,IAAa9hC,EAAQ2iF,EAAU7gD,IAAa1yB,cAAc,GAAO,EAAO,GAE7H95I,KAAKi7S,qBACLj7S,KAAK4sR,wBACT,CACMA,yBAAyB,IAAA1sR,EAAAF,KAAA,SAAAG,KAAA,YACZD,EAAKm4I,OAAO83B,YAChBu7B,WAAa8uG,EAAgBU,WACpCh7S,EAAKixL,gBAAkB,QACjBx5K,QAAQyE,IAAI,CAACzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QAAgD1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,iBAG7D1uK,QAAQyE,IAAI,CAACzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QAA4C1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,UAEnEnmL,EAAKssR,gBAAiB,EACtBtsR,EAAKm6S,iBAAiBr5I,iBAAkB,EAVb,EAW/B,CACAi6I,qBACI,MAAMhtH,EAAU,GAChBA,EAAQhwK,KAAK,GACbgwK,EAAQhwK,KAAK,GACbgwK,EAAQhwK,KAAK,GACbgwK,EAAQhwK,KAAK,GACbgwK,EAAQhwK,KAAK,GACbgwK,EAAQhwK,KAAK,GACbje,KAAKg1P,aAAeh1P,KAAKq4I,OAAO83B,YAAY48C,kBAAkB9+B,EAClE,CAIA,aAAIhiD,GACA,OAAOjsI,KAAKqhK,UAChB,CACA,aAAIp1B,CAAU15H,GACVvS,KAAKqhK,WAAa9uJ,CACtB,CAKAoyH,WACI,OAAO3kI,KAAKq4I,MAChB,CAMA8iK,aACI,OAAOn7S,KAAK66S,QAChB,CAMAO,WAAWC,GACPr7S,KAAK66S,SAAWQ,CACpB,CAMAC,qBACI,OAAOt7S,KAAK66S,SAAS11I,oBAAsBnlK,KAAK66S,SAAS11I,sBAAwBnlK,KAAK66S,SAASviS,QACnG,CAIAijS,yBAAyBC,GACrB,IAAIljS,EAAWtY,KAAKs7S,qBACpBhjS,EAAWioJ,KAAQtzB,QAAQ30H,EAAUmoJ,KAAOvzB,WAAYltI,KAAKq4I,OAAOnB,qBAAsBskK,GAC1Fx7S,KAAKy7S,WAAanjS,EAAS1F,EAC3B5S,KAAK07S,WAAapjS,EAASkK,EAC3BlK,EAAWioJ,KAAQv5B,qBAAqBhnI,KAAKs7S,qBAAsBt7S,KAAKq4I,OAAO/N,iBAC3EtqI,KAAK26S,eAAiB,IACtBa,EAAe5oS,GAAK5S,KAAK26S,eACzBa,EAAeh5R,GAAKxiB,KAAK26S,eACzBa,EAAe/gR,OAA+B,EAAtBz6B,KAAK26S,eAC7Ba,EAAe9gR,QAAgC,EAAtB16B,KAAK26S,eAC9BriS,EAAS1F,GAAK5S,KAAK26S,eACnBriS,EAASkK,GAAKxiB,KAAK26S,eACnB36S,KAAKy7S,YAAcz7S,KAAK26S,eACxB36S,KAAK07S,YAAc17S,KAAK26S,gBAE5B,MAAMgB,EAAM37S,KAAKq4I,OAAO45B,qBAExB,SADa35J,EAAS4xD,EAAI,IAAMyxO,GAASrjS,EAAS4xD,EAAI,GAAKyxO,EAU/D,CAEAC,aACI,IAAK57S,KAAKqhK,aAAerhK,KAAKq4I,OAAOjO,aACjC,OAAO,EAGX,MAAMnvH,EADkBjb,KAAKs7S,qBACKt5K,SAAShiI,KAAKq4I,OAAOjO,aAAa+3C,gBAC9DvgD,EAAW3mH,EAAUvF,SAC3BuF,EAAUyyF,YACV,MAAMwlC,EAAM,IAAI4mD,MAAI95L,KAAKq4I,OAAOjO,aAAa+3C,eAAgBlnK,GACvDw5R,EAAWz0S,KAAKq4I,OAAOwjK,YAAY3oK,EAAKlzI,KAAK+6S,0BAA0B,GAC7E,OAAQtG,IAAaA,EAASrhK,KAAOqhK,EAAS7yK,SAAWA,CAC7D,CAIAhwF,SACI,IAAK5xC,KAAKq4I,OAAOjO,eAAiBpqI,KAAKwsR,eACnC,OAAO,EAEX,MAAM9hJ,EAAS1qI,KAAKq4I,OAAO83B,YAErBqrI,EADWx7S,KAAKq4I,OAAOjO,aAAa0C,SACVkK,SAAStM,EAAOgB,gBAAe,GAAOhB,EAAOiB,iBAAgB,IAM7F,IAJK3rI,KAAKu7S,yBAAyBC,KAI9Bx7S,KAAK47S,aACN,OAAO,EAGX,IAAIE,EACAC,EAEAD,EADA97S,KAAKy7S,WAAaz7S,KAAK06S,YAAcc,EAAe5oS,EAC5C5S,KAAK06S,YAAcc,EAAe5oS,EAAI5S,KAAKy7S,WAE9Cz7S,KAAKy7S,WAAaD,EAAe5oS,EAAI4oS,EAAe/gR,MAAQz6B,KAAK06S,YAC9D16S,KAAKy7S,WAAaD,EAAe5oS,EAAI4oS,EAAe/gR,MAAQz6B,KAAK06S,YAGjE,EAGRqB,EADA/7S,KAAK07S,WAAa17S,KAAK06S,YAAcc,EAAeh5R,EAC5CxiB,KAAK06S,YAAcc,EAAeh5R,EAAIxiB,KAAK07S,WAE9C17S,KAAK07S,WAAaF,EAAeh5R,EAAIg5R,EAAe9gR,OAAS16B,KAAK06S,YAC/D16S,KAAK07S,WAAaF,EAAeh5R,EAAIg5R,EAAe9gR,OAAS16B,KAAK06S,YAGlE,EAEZ,IAAIsB,EAAOF,EAAQC,EAAQD,EAAQC,EACnCC,GAAQh8S,KAAK26S,eACTqB,EAAOh8S,KAAK06S,cACZsB,EAAOh8S,KAAK06S,aAEhB,IAAIuB,GAAY,KAAMC,UAAMF,EAAOh8S,KAAK06S,YAAa,EAAG,GACxD,GAAIuB,GAAY,EACZ,OAAO,EAEPA,GAAY,IACZA,GAAY,GAEZj8S,KAAK26S,eAAiB,IACtBa,EAAe5oS,GAAK5S,KAAK26S,eACzBa,EAAeh5R,GAAKxiB,KAAK26S,eACzBa,EAAe/gR,OAA+B,EAAtBz6B,KAAK26S,eAC7Ba,EAAe9gR,QAAgC,EAAtB16B,KAAK26S,eAC9B36S,KAAKy7S,YAAcz7S,KAAK26S,eACxB36S,KAAK07S,YAAc17S,KAAK26S,gBAG5B,MAAMwB,GAAUX,EAAe5oS,EAAI4oS,EAAe/gR,MAAQ,EACpD2hR,GAAUZ,EAAeh5R,EAAIg5R,EAAe9gR,OAAS,EACrD2hR,GAAQF,GAAUn8S,KAAKy7S,WACvBa,GAAQF,GAAUp8S,KAAK07S,WAE7BhxK,EAAO4W,UAAS,GAChB5W,EAAO8oF,gBAAe,GAEtB,QAAS74M,GAAQ,EAAGA,GAAQ3a,KAAKu6S,WAAW7kS,OAAQiF,KAAS,CACzD,MAAM4hS,GAAQv8S,KAAKu6S,WAAW5/R,IAC9B,IAAK4hS,GAAMxe,aAAahiR,OAAOg4K,WAAcwoH,GAAMh2G,UAAYg2G,GAAMh2G,QAAQxS,UACzE,SAEJrpD,EAAOgvI,aAAa6iC,GAAMxe,cAC1BrzJ,EAAO2jF,YAAYruN,KAAK80P,eAAgB90P,KAAKg1P,aAAcunD,GAAMxe,aAAahiR,QAC9E2uH,EAAO8tF,aAAa+jF,GAAM1oC,WAC1B,MAAMjhQ,GAAIupS,GAAUE,GAAQE,GAAMjkS,SAC5BkK,GAAI45R,GAAUE,GAAQC,GAAMjkS,SAC5BkkS,GAAKD,GAAMljR,KACXojR,GAAKF,GAAMljR,KAAOqxG,EAAOgyK,eAAe18S,KAAKq4I,OAAOjO,cAAc,GAGlEuyK,GAAiBl8I,KAAOm8I,WAAWJ,GAAK,EAAG,EAAG,EAAG,EAAG,EAAGC,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAFnE7pS,GAAI4oS,EAAe5oS,GAAK4oS,EAAe/gR,MAA7C,EAAsD,EACtD,GAAYjY,GAAIg5R,EAAeh5R,GAAKg5R,EAAe9gR,OAA7C,EAC8E,EAAG,GAClG6hR,GAAMxe,aAAahiR,OAAOk/L,UAAU,iBAAkB0hG,IAEtDJ,GAAMxe,aAAahiR,OAAO8vH,WAAW,iBAAkB0wK,GAAMh2G,SAE7Dg2G,GAAMxe,aAAahiR,OAAO6/L,UAAU,QAAS2gG,GAAM1iP,MAAMz4C,EAAI66R,GAAWM,GAAM1iP,MAAMh/C,EAAIohS,GAAWM,GAAM1iP,MAAMtkD,EAAI0mS,GAAW,GAE9HvxK,EAAOukF,iBAAiB4mB,KAASsiE,iBAAkB,EAAG,EAC1D,CACAztK,SAAO8oF,gBAAe,GACtB9oF,EAAO8tF,aAAa,IACb,CACX,CAIAz9B,UACI/6L,KAAKi7S,qBACL,UAAWz2Q,KAAOxkC,KAAK80P,eACnB90P,KAAK80P,eAAetwN,IAAMooI,UAElC,CAIAnrH,UACIzhD,KAAKq6S,iBAAiBpoQ,QACtB,MAAM87K,EAAe/tN,KAAK80P,eAAetoF,IAAa1yB,cAStD,IARIi0E,IACAA,EAAatsK,UACbzhD,KAAK80P,eAAetoF,IAAa1yB,cAAgB,MAEjD95I,KAAKg1P,eACLh1P,KAAKq4I,OAAO83B,YAAY6mG,eAAeh3Q,KAAKg1P,cAC5Ch1P,KAAKg1P,aAAe,MAEjBh1P,KAAKu6S,WAAW7kS,QACnB1V,KAAKu6S,WAAW,GAAG94P,UAGvB,MAAM9mC,EAAQ3a,KAAKq4I,OAAOyiK,iBAAiBh2Q,QAAQ9kC,MACnDA,KAAKq4I,OAAOyiK,iBAAiBv/R,OAAOZ,EAAO,EAC/C,CAQA,YAAOioJ,CAAMi6I,EAAuBv+L,EAAOqkD,GACvC,MAAM83I,EAAUn8L,EAAMw+L,iBAAiBD,EAAsBE,WACvDx2S,EAAOs2S,EAAsBt2S,MAAQ,mBAAqBs2S,EAAsBE,UAChFC,EAAkB,IAAIxC,EAAgBj0S,EAAMk0S,EAASn8L,GAC3D0+L,EAAgB3wS,GAAKwwS,EAAsBxwS,IAAM9F,EACjDy2S,EAAgBtC,YAAcmC,EAAsBnC,YACpD,QAAS//R,GAAQ,EAAGA,GAAQkiS,EAAsBI,OAAOvnS,OAAQiF,KAAS,CACtE,MAAMuiS,GAAcL,EAAsBI,OAAOtiS,IACjDq/R,GAAUC,SAASiD,GAAY7jR,KAAM6jR,GAAY5kS,SAAU+nJ,KAAOy3H,UAAUolB,GAAYrjP,OAAQqjP,GAAY3gE,YAAc55E,EAAUu6I,GAAY3gE,YAAc,GAAIygE,EACtK,CACA,OAAOA,CACX,CAKA53K,YACI,MAAMC,EAAsB,CAAC,EAC7BA,EAAoBh5H,GAAKrM,KAAKqM,GAC9Bg5H,EAAoB9+H,KAAOvG,KAAKuG,KAChC8+H,EAAoB03K,UAAY/8S,KAAKm7S,aAAa9uS,GAClDg5H,EAAoBq1K,YAAc16S,KAAK06S,YACvCr1K,EAAoB43K,OAAS,GAC7B,QAAStiS,EAAQ,EAAGA,EAAQ3a,KAAKu6S,WAAW7kS,OAAQiF,IAAS,CACzD,MAAM4hS,EAAQv8S,KAAKu6S,WAAW5/R,GAC9B0qH,EAAoB43K,OAAOh/R,KAAK,CAC5Bob,KAAMkjR,EAAMljR,KACZ/gB,SAAUikS,EAAMjkS,SAChBuhD,MAAO0iP,EAAM1iP,MAAM0rE,UACnBg3G,YAAaxsE,KAAMotI,YAAYZ,EAAMh2G,QAAUg2G,EAAMh2G,QAAQhgM,KAAO,KAE5E,CACA,OAAO8+H,CACX,EAMJm1K,SAAgBU,WAAY,EAI5BV,EAAgBI,8BAAiCjzS,IAC7C,QAAMy1S,MAAY,gCAA+B,EA7VxC5C,CAAe,sBCX5B6C,SAAUtkH,KAAwBukH,qBAAsB,CAACC,EAAYj/L,EAAOr4F,EAAW08I,KAEnF,GAAI46I,QAAWzC,iBAAwE,CAC9E70R,EAAU60R,mBACX70R,EAAU60R,iBAAmB,IAEjC,QAASngS,EAAQ,EAAG+0I,EAAQ6tJ,EAAWzC,iBAAiBplS,OAAQiF,EAAQ+0I,EAAO/0I,IAAS,CACpF,MACM6iS,EAAKhD,GAAgB53I,MADG26I,EAAWzC,iBAAiBngS,GACF2jG,EAAOqkD,GAC/D18I,EAAU60R,iBAAiB78R,KAAKu/R,EACpC,CACJ,IAEJxtH,KAAMzrJ,UAAUk5Q,yBAA2B,SAAUl3S,GACjD,QAASoU,EAAQ,EAAGA,EAAQ3a,KAAK86S,iBAAiBplS,OAAQiF,IACtD,GAAI3a,KAAK86S,iBAAiBngS,GAAOpU,OAASA,EACtC,OAAOvG,KAAK86S,iBAAiBngS,GAGrC,OAAO,IACX,EACAq1K,KAAMzrJ,UAAUm5Q,uBAAyB,SAAUrxS,GAC/C,QAASsO,EAAQ,EAAGA,EAAQ3a,KAAK86S,iBAAiBplS,OAAQiF,IACtD,GAAI3a,KAAK86S,iBAAiBngS,GAAOtO,KAAOA,EACpC,OAAOrM,KAAK86S,iBAAiBngS,GAGrC,OAAO,IACX,EACAq1K,KAAMzrJ,UAAUo5Q,uBAAyB,SAAUtxS,GAC/C,OAAOrM,KAAK09S,uBAAuBrxS,EACvC,EACA2jL,KAAMzrJ,UAAUq5Q,sBAAwB,SAAUC,GAC9C,MAAMljS,EAAQ3a,KAAK86S,iBAAiBh2Q,QAAQ+4Q,GAC5C,OAAc,IAAVljS,GACA3a,KAAK86S,iBAAiBv/R,OAAOZ,EAAO,GAEjCA,CACX,EACAq1K,KAAMzrJ,UAAUu5Q,mBAAqB,SAAUC,GAC3C/9S,KAAK86S,iBAAiB78R,KAAK8/R,EAC/B,EAKO,MAAMC,GAKTn+S,YAAYy+G,GAIRt+G,KAAKuG,KAAOwyL,KAAwBukH,qBACpCt9S,KAAKs+G,MAAQA,CACjB,CAIA87E,WACIp6L,KAAKs+G,MAAM2/L,sBAAsBC,aAAanlH,KAAwBolH,qCAAsCn+S,KAAMA,KAAKo/Q,MAC3H,CAKArkF,UACI,QAASpgL,EAAQ,EAAGA,EAAQ3a,KAAKs+G,MAAMw8L,iBAAiBplS,OAAQiF,IAC5D3a,KAAKs+G,MAAMw8L,iBAAiBngS,GAAOogL,SAE3C,CAKAqjH,iBAAiBn4R,GACRA,EAAU60R,kBAGf70R,EAAU60R,iBAAiB76R,QAASF,IAChC/f,KAAKs+G,MAAMw/L,mBAAmB/9R,EAAC,EAEvC,CAMAs+R,oBAAoBp4R,EAAWw7B,GACtBx7B,EAAU60R,kBAGf70R,EAAU60R,iBAAiB76R,QAASF,IAChC/f,KAAKs+G,MAAMs/L,sBAAsB79R,GAC7B0hC,GACA1hC,EAAE0hC,SAAQ,EAGtB,CAKA2jF,UAAUC,GAENA,EAAoBy1K,iBAAmB,GACvC,MAAMA,EAAmB96S,KAAKs+G,MAAMw8L,iBACpC,UAAWkC,KAAmBlC,EAC1Bz1K,EAAoBy1K,iBAAiB78R,KAAK++R,EAAgB53K,YAElE,CAIA3jF,UACI,MAAMq5P,EAAmB96S,KAAKs+G,MAAMw8L,iBACpC,KAAOA,EAAiBplS,QACpBolS,EAAiB,GAAGr5P,SAE5B,CACA29N,MAAMnvG,GAEF,GAAIjwK,KAAKs+G,MAAMggM,kBAAmB,CAC9B,MAAMxD,EAAmB96S,KAAKs+G,MAAMw8L,iBACpC/qI,KAAMwuI,wBAAwB,cAAezD,EAAiBplS,OAAS,GACvE,UAAWsnS,KAAmBlC,EACrB7qI,EAAOwzH,UAAYuZ,EAAgBvZ,WACpCuZ,EAAgBprQ,SAGxBm+H,KAAMyuI,sBAAsB,cAAe1D,EAAiBplS,OAAS,EACzE,CACJ,EAEJ8kS,GAAgBI,8BAAiCt8L,IAC7C,IAAIzxG,EAAYyxG,EAAMw6E,cAAcC,KAAwBukH,sBACvDzwS,IACDA,EAAY,IAAImxS,GAA8B1/L,GAC9CA,EAAM46E,cAAcrsL,GAAS,gJC7I9B,IAAM4xS,GAAoB,MAA1B,MAAMA,EAOT5+S,YAAYkwQ,EAAkB2uC,EAAe,GAAIC,EAA6B,SAC1E3+S,KAAK+vQ,iBAAmBA,EACxB/vQ,KAAK0+S,aAAeA,EACpB1+S,KAAK2+S,2BAA6BA,EAElC3+S,KAAK4+S,iBAAmB,KACpB,MAAMC,EAAa7+S,KAAK+vQ,iBAAiB94M,wBACnC6nP,EAAoB92S,OAAO+2S,iBAAiB/+S,KAAK+vQ,kBAAkBz3P,SACpEtY,KAAKg/S,cAGVh/S,KAAKg/S,YAAYx3R,MAAMlP,SAAiC,UAAtBwmS,EAAgC,QAAU,WAC5E9+S,KAAKg/S,YAAYx3R,MAAM0uH,KAAO2oK,EAAW3oK,KAAO,KAChDl2I,KAAKg/S,YAAYx3R,MAAMK,IAAMg3R,EAAWh3R,IAAM,KAC9C7nB,KAAKg/S,YAAYx3R,MAAMiT,MAAQokR,EAAWpkR,MAAQ,KAClDz6B,KAAKg/S,YAAYx3R,MAAMkT,OAASmkR,EAAWnkR,OAAS,MAE5D,CAIAukR,mBACI,GAAIj/S,KAAKg/S,YAEL,OAEJh/S,KAAKg/S,YAAc72S,SAASof,cAAc,OAC1CvnB,KAAKg/S,YAAY3yS,GAAK,sBACtBrM,KAAKg/S,YAAYx3R,MAAMisR,QAAU,IACjCzzS,KAAKg/S,YAAYx3R,MAAM03R,WAAa,oBACpCl/S,KAAKg/S,YAAYx3R,MAAM23R,cAAgB,OACvCn/S,KAAKg/S,YAAYx3R,MAAM43R,QAAU,OACjCp/S,KAAKg/S,YAAYx3R,MAAM63R,iBAAmB,OAC1Cr/S,KAAKg/S,YAAYx3R,MAAM83R,oBAAsB,OAC7Ct/S,KAAKg/S,YAAYx3R,MAAM+3R,aAAe,SACtCv/S,KAAKg/S,YAAYx3R,MAAMg4R,WAAa,SAEpCx/S,KAAKy/S,gBAAkBt3S,SAASof,cAAc,OAC9CvnB,KAAKy/S,gBAAgBj4R,MAAMlP,SAAW,WACtCtY,KAAKy/S,gBAAgBj4R,MAAM0uH,KAAO,IAClCl2I,KAAKy/S,gBAAgBj4R,MAAMK,IAAM,MACjC7nB,KAAKy/S,gBAAgBj4R,MAAMk4R,UAAY,OACvC1/S,KAAKy/S,gBAAgBj4R,MAAMiT,MAAQ,OACnCz6B,KAAKy/S,gBAAgBj4R,MAAMkT,OAAS,OACpC16B,KAAKy/S,gBAAgBj4R,MAAMu3G,WAAa,QACxC/+H,KAAKy/S,gBAAgBj4R,MAAMC,SAAW,OACtCznB,KAAKy/S,gBAAgBj4R,MAAMqyC,MAAQ,QACnC75D,KAAKy/S,gBAAgBj4R,MAAMm4R,UAAY,SACvC3/S,KAAKy/S,gBAAgBj4R,MAAM8zJ,OAAS,IACpCt7K,KAAKy/S,gBAAgB5jP,UAAY,UACjC77D,KAAKg/S,YAAYx4R,YAAYxmB,KAAKy/S,iBAElCz/S,KAAKy/S,gBAAgB5jP,UAAY77D,KAAK0+S,aAEtC1+S,KAAK4/S,OAASz3S,SAASof,cAAc,SACrCvnB,KAAK4/S,OAAOxtS,KAAO,WASnBpS,KAAK4/S,OAAO/jP,UARO,yUASnB1zD,SAAS03S,qBAAqB,QAAQ,GAAGr5R,YAAYxmB,KAAK4/S,QAC1D,MAAME,IAAe93S,OAAO+3S,cAEtBC,EAAU,IAAIphI,MAOhBohI,EAAQ1lR,IANPmkR,EAAqBwB,eAMRxB,EAAqBwB,eALpBH,EAER,6lDADD,mDAMVE,EAAQx4R,MAAMiT,MAAQ,QACtBulR,EAAQx4R,MAAM04R,WAAa,IAC3BF,EAAQx4R,MAAM24R,QAAU,IACxBH,EAAQx4R,MAAMK,IAAM,MACpBm4R,EAAQx4R,MAAM0uH,KAAO,MACrB8pK,EAAQx4R,MAAMg6B,UAAY,wBAC1Bw+P,EAAQx4R,MAAMlP,SAAW,WACzB,MAAM8nS,EAAwBj4S,SAASof,cAAc,OACrD64R,EAAsB54R,MAAMiT,MAAQ,QACpC2lR,EAAsB54R,MAAM04R,WAAa,IACzCE,EAAsB54R,MAAM24R,QAAU,IACtCC,EAAsB54R,MAAMK,IAAM,MAClCu4R,EAAsB54R,MAAM0uH,KAAO,MACnCkqK,EAAsB54R,MAAMg6B,UAAY,wBACxC4+P,EAAsB54R,MAAMlP,SAAW,WAEvC,MAAM+nS,EAAa,IAAIzhI,MAWvB,GAJIyhI,EAAW/lR,IANVmkR,EAAqB6B,kBAML7B,EAAqB6B,kBALpBR,EAEX,6/CADD,mDAMVO,EAAW74R,MAAMopH,UAAY,8BAC7ByvK,EAAW74R,MAAM+4R,gBAAkB,WAC9BT,EAAY,CACb,MAAMU,EAAW,CAAE53O,EAAG,GAAIb,EAAG,MACvB04O,GAAc,CAAE73O,EAAG,GAAIb,EAAG,IAEhCi4O,EAAQx4R,MAAMiT,MAAS,GAAE+lR,EAAS53O,MAClCo3O,EAAQx4R,MAAMkT,OAAU,GAAE8lR,EAASz4O,MACnCi4O,EAAQx4R,MAAM0uH,KAAQ,cAAasqK,EAAS53O,EAAI,OAChDo3O,EAAQx4R,MAAMK,IAAO,cAAa24R,EAASz4O,EAAI,OAC/Cs4O,EAAW74R,MAAMiT,MAAS,GAAEgmR,GAAY73O,MACxCy3O,EAAW74R,MAAMkT,OAAU,GAAE+lR,GAAY14O,MACzCs4O,EAAW74R,MAAM0uH,KAAQ,cAAauqK,GAAY73O,EAAI,OACtDy3O,EAAW74R,MAAMK,IAAO,cAAa44R,GAAY14O,EAAI,MACzD,CACAq4O,EAAsB55R,YAAY65R,GAClCrgT,KAAKg/S,YAAYx4R,YAAYw5R,GAC7BhgT,KAAKg/S,YAAYx4R,YAAY45R,GAC7BpgT,KAAK4+S,mBACL52S,OAAO6wE,iBAAiB,SAAU74E,KAAK4+S,kBACvC5+S,KAAKg/S,YAAYx3R,MAAM6zJ,gBAAkBr7K,KAAK2+S,2BAC9Cx2S,SAAS+d,KAAKM,YAAYxmB,KAAKg/S,aAC/Bh/S,KAAKg/S,YAAYx3R,MAAMisR,QAAU,GACrC,CAIA5zB,gBACS7/Q,KAAKg/S,cAkBVh/S,KAAKg/S,YAAYx3R,MAAMisR,QAAU,IACjCzzS,KAAKg/S,YAAYnmO,iBAAiB,gBAhBV6nO,KAChB1gT,KAAKy/S,kBACLz/S,KAAKy/S,gBAAgB/mQ,SACrB14C,KAAKy/S,gBAAkB,MAEvBz/S,KAAKg/S,cACLh/S,KAAKg/S,YAAYtmQ,SACjB14C,KAAKg/S,YAAc,MAEnBh/S,KAAK4/S,SACL5/S,KAAK4/S,OAAOlnQ,SACZ14C,KAAK4/S,OAAS,MAElB53S,OAAO8wE,oBAAoB,SAAU94E,KAAK4+S,iBAAgB,GAIlE,CAIA,iBAAI+B,CAAcjvS,GACd1R,KAAK0+S,aAAehtS,EAChB1R,KAAKy/S,kBACLz/S,KAAKy/S,gBAAgB5jP,UAAY77D,KAAK0+S,aAE9C,CACA,iBAAIiC,GACA,OAAO3gT,KAAK0+S,YAChB,CAIA,4BAAIkC,GACA,OAAO5gT,KAAK2+S,0BAChB,CACA,4BAAIiC,CAAyB/mP,GACzB75D,KAAK2+S,2BAA6B9kP,EAC7B75D,KAAKg/S,cAGVh/S,KAAKg/S,YAAYx3R,MAAM6zJ,gBAAkBr7K,KAAK2+S,2BAClD,EAGJF,SAAqBwB,eAAiB,GAEtCxB,EAAqB6B,kBAAoB,GA3L5B7B,CAAoB,KA4LjCh9H,KAAeo/H,4BAA+BtmR,GACnC,IAAIkkR,GAAqBlkR,uMCvL7B,MAAMumR,WAAsCC,KAI/C,2CAAIC,GACA,OAAOhhT,KAAKihT,wCAChB,CAOAphT,YAAY0G,EAAM+3G,GACdz6G,MAAM0C,EAAM+3G,GACZt+G,KAAKihT,0CAA2C,CACpD,CAIAt7K,eACI,MAAO,+BACX,CAMAviI,MAAMmD,GACF,MAAMnD,EAAQo/J,KAAoBC,MAAM,IAAM,IAAIq+I,GAA8Bv6S,EAAMvG,KAAK2kI,YAAa3kI,MACxGoD,SAAMiJ,GAAK9F,EACXnD,EAAMmD,KAAOA,EACbvG,KAAKkhT,UAAUj/I,OAAO7+J,EAAM89S,WAC5BlhT,KAAK6rP,WAAW5pF,OAAO7+J,EAAMyoP,YAC7B7rP,KAAKmhT,KAAKl/I,OAAO7+J,EAAM+9S,MACvBnhT,KAAKohT,MAAMn/I,OAAO7+J,EAAMg+S,OACxBphT,KAAK4qI,WAAWq3B,OAAO7+J,EAAMwnI,YACtBxnI,CACX,CAKAgiI,YACI,MAAMC,EAAsBm9B,KAAoBE,UAAU1iK,MAC1DqlI,SAAoB41J,WAAa,wCACjC51J,EAAoB67K,UAAYlhT,KAAKkhT,UAAU97K,YAC/CC,EAAoBwmH,WAAa7rP,KAAK6rP,WAAWzmH,YACjDC,EAAoB87K,KAAOnhT,KAAKmhT,KAAK/7K,YACrCC,EAAoB+7K,MAAQphT,KAAKohT,MAAMh8K,YACvCC,EAAoBuF,WAAa5qI,KAAK4qI,WAAWxF,YACjDC,EAAoBg8K,YAAcrhT,KAAKqhT,YAAYj8K,YAC5CC,CACX,CAQA,YAAOu9B,CAAM36H,EAAQq2E,EAAOqkD,GACxB,MAAMt7B,EAAWm7B,KAAoBI,MAAM,IAAM,IAAIk+I,GAA8B74Q,EAAO1hC,KAAM+3G,GAAQr2E,EAAQq2E,EAAOqkD,GACvH,OAAI16H,EAAOi5Q,WACP75K,EAAS65K,UAAU9qR,MAAM6R,EAAOi5Q,UAAW5iM,EAAOqkD,GAElD16H,EAAO4jN,YACPxkH,EAASwkH,WAAWz1N,MAAM6R,EAAO4jN,WAAYvtI,EAAOqkD,GAEpD16H,EAAOk5Q,MACP95K,EAAS85K,KAAK/qR,MAAM6R,EAAOk5Q,KAAM7iM,EAAOqkD,GAExC16H,EAAOm5Q,OACP/5K,EAAS+5K,MAAMhrR,MAAM6R,EAAOm5Q,MAAO9iM,EAAOqkD,GAE1C16H,EAAO2iG,YACPvD,EAASuD,WAAWx0G,MAAM6R,EAAO2iG,WAAYtsB,EAAOqkD,GAEpD16H,EAAOo5Q,aACPh6K,EAASg6K,YAAYjrR,MAAM6R,EAAOo5Q,YAAa/iM,EAAOqkD,GAEnDt7B,CACX,GAEJw7B,SAAW,IACPy+I,OAAkB,YAAS,EAC3Bv+I,OAAiB,mCAAoC,iBACtD+9I,GAA8Bv8Q,UAAW,oBAAgB,IAAM,EAClEs+H,OAAW,IACPC,UAAmB,EACnBC,OAAiB,mCAAoC,mBACtD+9I,GAA8Bv8Q,UAAW,sBAAkB,IAAM,EACpEs+H,OAAW,IACPy+I,OAAkB,aAAU,EAC5Bv+I,OAAiB,mCAAoC,uBACtD+9I,GAA8Bv8Q,UAAW,qBAAiB,IAAM,EACnEs+H,OAAW,IACPz9B,UAAU,EACV29B,OAAiB,mCAAoC,kBACtD+9I,GAA8Bv8Q,UAAW,kBAAc,IAAM,EAChEs+H,OAAW,IACPC,UAAmB,EACnBC,OAAiB,mCAAoC,yBACtD+9I,GAA8Bv8Q,UAAW,iCAA6B,IAAM,EAC/Es6H,OAAc,wCAAyCiiJ,0FCvGhD,IAAMS,GAAmB,MAAzB,MAAMA,UAA4BC,KAQrC3hT,YAAYqD,EAAKu+S,EAAe/kF,EAAS,MAErC,GADA74N,MAAM49S,GACDv+S,EAQL,GALAlD,KAAK0hT,eAAiBjhJ,KAAOvzB,WAC7BltI,KAAKuG,KAAOrD,EACZlD,KAAKkD,IAAMA,EACXlD,KAAK2hT,QAAUjlF,EACf18N,KAAKohK,SAAWphK,KAAK4hT,cAAc1+S,GAAK,GACnClD,KAAKohK,SAeNphK,KAAK6hT,qBAfW,CAChB,MAAMvjM,EAAQt+G,KAAK2kI,WACfrmB,GACKA,EAAMwjM,yBAIP9hT,KAAKiiO,eAAiB,EAI1BjiO,KAAK+hT,cAEb,CAIJ,CAIAF,iBACQ7hT,KAAK2hT,SACL3hT,KAAK2hT,SAEb,CAKAK,mBACI,OAAOhiT,KAAK0hT,cAChB,CAKAO,kBACI,MAAMv3K,EAAS1qI,KAAK+xS,aACpB,IAAIxrG,EAKAA,EAJC77D,EAAOuiC,UAAU48C,kBAIRn/E,EAAO++H,mBAAmB,KAAM,EAAG,EAAG,EAAG,GAAG,GAAO,EAAO,EAAG,KAAM,GAHnE/+H,EAAO+wF,iBAAiB,KAAM,EAAG,EAAG,GAAG,GAAO,EAAO,EAAG,KAAM,GAK5Ez7N,KAAKohK,SAAWmlC,EAChBvmM,KAAKohK,SAAS2yB,SAAU,EACxB/zL,KAAKspM,QAAS,EACdtpM,KAAKupM,KAAO7+D,EAAOuiC,UAAU48C,kBAC7B7pN,KAAKyiO,MAAQ,EACbziO,KAAK0iO,MAAQ,EACb1iO,KAAK2iO,MAAQ,EACb3iO,KAAKqjO,0BAA4B,EACjC,MAAMt1L,EAAYr8B,IACd,GAAoB,iBAATA,EACP,OAEJ,IAEI4+E,GAFA7qF,EAAO,KACPy8S,GAAW,KAEf,MAAMhxN,GAAQx/E,EAAKqzB,MAAM,MACzB,IAAI1L,GAAO,EAAG8oR,GAAc,EAAGC,GAAc,EAAGC,GAAkB,EAC9DC,GAAW,EACf,QAAS7kS,GAAI,EAAGA,GAAIyzE,GAAMx7E,OAAQ+H,KAAK,CAKnC,GAJA6yE,GAAOY,GAAMzzE,KACR8jS,EAAoBgB,oBAAoB38Q,KAAK0qD,KAGxB,IAAtBA,GAAKxrD,QAAQ,KACb,SAEJ,MAAM09Q,GAAQlyN,GAAKvrD,MAAM,KACzB,GAAa,IAAT1L,IAOJ,GAAY,GAARA,GAAW,CACX,MAAMjY,GAAI7D,KAAKk/B,IAAI21D,SAASowM,GAAM,IAAK,GACjC3nS,GAAI0C,KAAKk/B,IAAI21D,SAASowM,GAAM,IAAK,GACjCjtS,GAAIgI,KAAKk/B,IAAI21D,SAASowM,GAAM,IAAK,GACvCF,GAAW/kS,KAAKk/B,IAAIr7B,GAAGkhS,IACvBA,GAAW/kS,KAAKk/B,IAAI5hC,GAAGynS,IACvBA,GAAW/kS,KAAKk/B,IAAIlnC,GAAG+sS,IACvB,MAAMG,GAAyF,GAApEN,GAAcE,GAAkBhpR,GAAO+oR,GAAc/oR,GAAOA,IACnF6oR,KACAA,GAASO,GAAoB,GAAKrhS,GAClC8gS,GAASO,GAAoB,GAAK5nS,GAClCqnS,GAASO,GAAoB,GAAKltS,IAYtC6sS,KACIA,GAAc/oR,IAAQ,IACtBgpR,KACAD,GAAc,EACVC,GAAkBhpR,IAAQ,IAC1B8oR,KACAE,GAAkB,GAG9B,OArCIhpR,GAAOmpR,GAAM9sS,OACbjQ,EAAO,IAAIohC,WAAWxN,GAAOA,GAAOA,GAAO,GAC3C6oR,GAAW,IAAIr0I,aAAax0I,GAAOA,GAAOA,GAAO,EAoCzD,CACA,GAAI6oR,IAAYz8S,EACZ,QAASgY,GAAI,EAAGA,GAAIykS,GAASxsS,OAAQ+H,KAE7BhY,EAAKgY,IADLA,GAAI,IAAMA,GAAI,GAAK,GAAM,EACf,IAGIykS,GAASzkS,IACJ6kS,GAAY,IAIvC/7G,EAAQgD,MACRhD,EAAQm8G,WAAWrpR,GAAMA,GAAMA,IAC/BqxG,EAAOg/H,mBAAmBnjE,EAAS9gM,EAAM,GAAG,KAG5C8gM,EAAQm8G,WAAWrpR,GAAOA,GAAMA,IAChCqxG,EAAOuxF,iBAAiB11B,EAAS9gM,EAAM,GAAG,IAE9C8gM,EAAQxS,SAAU,EAClB/zL,KAAK6hT,gBAAe,EAElBvjM,EAAQt+G,KAAK2kI,WACnB,OAAIrmB,EACAA,EAAMy2E,UAAU/0L,KAAKkD,IAAK6qC,GAG1B28F,EAAOqqD,UAAU/0L,KAAKkD,IAAK6qC,GAExB/tC,KAAKohK,QAChB,CAIA2gJ,eACQ/hT,KAAKkD,KAAOlD,KAAKkD,IAAI6tB,oBAAoB+T,QAAQ,SAAW9kC,KAAKkD,IAAIwS,OAAS,GAC9E1V,KAAKiiT,iBAEb,CAKA7+S,QACI,MAAM4hI,EAAa,IAAIu8K,EAAoBvhT,KAAKkD,IAAKlD,KAAK2kI,YAAc3kI,KAAK+xS,cAE7E/sK,SAAWxlD,MAAQx/E,KAAKw/E,MACjBwlD,CACX,CAIAk9F,YACgC,IAAxBliO,KAAKiiO,iBAGTjiO,KAAKiiO,eAAiB,EACtBjiO,KAAKohK,SAAWphK,KAAK4hT,cAAc5hT,KAAKkD,KAAK,GACxClD,KAAKohK,UACNphK,KAAK+hT,eAEb,CAOA,YAAOn/I,CAAM+/I,EAAerkM,GACxB,IAAIioF,EAAU,KACd,OAAIo8G,EAAcp8S,OAASo8S,EAAcC,iBACrCr8G,EAAU,IAAIg7G,EAAoBoB,EAAcp8S,KAAM+3G,GACtDioF,EAAQhgM,KAAOo8S,EAAcp8S,KAC7BggM,EAAQ/mH,MAAQmjO,EAAcnjO,OAE3B+mH,CACX,CAKAnhE,YACI,IAAKplI,KAAKuG,KACN,OAAO,KAEX,MAAM8+H,EAAsB,CAAC,EAC7BA,SAAoB9+H,KAAOvG,KAAKuG,KAChC8+H,EAAoB7lD,MAAQx/E,KAAKw/E,MACjC6lD,EAAoB41J,WAAa,8BAC1B51J,CACX,EAKJk8K,SAAoBgB,oBAAsB,MAnO7BhB,CAAmB,MAoOhC1iJ,SAAc,8BAA+B0iJ,4KCtOtC,MAAMsB,WAA0Bx+K,KAInC,eAAIz/G,GACA,OAAO5kB,KAAKqxK,SAAS4tB,UAAUqpB,uBAAwB,CAC3D,CAIA,YAAI12E,GACA,OAAO5xI,KAAKgwR,SAChB,CAIA,SAAI9wP,GACA,OAAOl/B,KAAKioO,MAChB,CAIA,gBAAI96B,GACA,OAAOntM,KAAKgwR,UAAUhwR,KAAKgwR,UAAUt6Q,OAAS,EAClD,CAKA,SAAI+sN,CAAM16H,GACN,GAAI/nG,KAAKgwR,UACL,QAASvyQ,EAAI,EAAGA,EAAIzd,KAAKgwR,UAAUt6Q,OAAQ+H,IACvCzd,KAAKgwR,UAAUvyQ,GAAGglN,MAAQ16H,CAGtC,CAKA,SAAI26H,CAAM36H,GACN,GAAI/nG,KAAKgwR,UACL,QAASvyQ,EAAI,EAAGA,EAAIzd,KAAKgwR,UAAUt6Q,OAAQ+H,IACvCzd,KAAKgwR,UAAUvyQ,GAAGilN,MAAQ36H,CAGtC,CAcAloG,YAAY0G,EAAM8yB,EAAM6F,EAAOo/E,EAAO/xF,EAAS8+M,GAC3C,MAAM/mG,KAAkB/3G,IAAWA,EAAQ+3G,kBAAkB/3G,EAAQ+3G,gBAC/DulE,MAAuBt9K,IAAWA,EAAQs9K,uBAAuBt9K,EAAQs9K,qBACzEC,GAAqBv9K,GAAWA,EAAQu9K,mBAAqBv9K,EAAQu9K,mBAAqB,GAE1Fg5G,MAAqCv2R,IAAWA,EAAQu2R,qCAAqCv2R,EAAQu2R,mCAE3G,GADAj/S,MAAM0C,EAAM8yB,EAAMilF,EAAOgmB,GAFO/3G,QAA8C1pB,IAAnC0pB,EAAQi4Q,wBAA8Cj4Q,EAAQi4Q,4BAEvC3hS,OAAWA,OAAWA,OAAWA,OAAWA,OAAWA,OAAWA,GAAW,IAC1I7C,KAAK4kB,YAEN,YADA5kB,KAAKyhD,UAGTzhD,KAAK+iT,cAAgB13E,EACrB,MAAMrhM,GAAQ,GACRigK,GAAgB,GAChBC,GAAiB,GACjBC,GAAU,GACVM,GAAc,GACdre,GAAY,GACZie,GAAa,GACbK,GAAc,GACpB1qM,KAAKgjT,WAAW9jR,EAAO8K,GAAOigK,GAAeC,GAAgBC,GAASM,GAAare,GAAWie,GAAYK,GAAan+K,GAIvHvsB,KAAKijT,0BAA4B,CAC7Bh5G,cAAeA,GACf3lE,gBAAiBA,EACjBqlE,qBANyBp9K,QAA2C1pB,IAAhC0pB,EAAQo9K,qBAA2Cp9K,EAAQo9K,oBAO/FC,yBAN2Br9K,QAA6C1pB,IAAlC0pB,EAAQq9K,wBAA8Cr9K,EAAQq9K,sBAOpGC,qBAAsBA,GACtBC,mBAAoBA,GACpB9/J,MAAOA,GACP+/J,aAAc7qK,EACdgrK,eAAgBA,GAChBF,QAXYz9K,GAAWA,EAAQy9K,QAAUz9K,EAAQy9K,QAAU,EAY3DG,QAASA,GACTM,YAAaA,GACbre,UAAWA,GACXie,WAAYA,GACZK,YAAaA,GACbH,OAAQ8gC,EACR96N,MAAOhK,GAEXvG,KAAKioO,OAAS/oM,EACdl/B,KAAKkjT,oCAAsCJ,GACvC5jR,EAAQ,IACRl/B,KAAKmjT,0BACLnjT,KAAKojT,gBAAgB/3E,GAE7B,CACA23E,WAAW9jR,EAAO8K,EAAOigK,EAAeC,EAAgBC,EAASC,EAAShe,EAAWie,GAAYK,GAAan+K,IAC1G,QAAS9O,GAAI,EAAGA,GAAIyhB,EAAOzhB,KAEnBusB,EAAM/rB,KADNsO,IAAWA,GAAQyd,YAA8BnnC,IAArB0pB,GAAQyd,MAAMvsB,IAC/B8O,GAAQyd,MAAMvsB,IAGd8O,IAAWA,GAAQ82R,YAAc92R,GAAQ82R,YAAc,GAGlEp5G,EAAchsL,KADdsO,IAAWA,GAAQ09K,oBAA8CpnM,IAA7B0pB,GAAQ09K,cAAcxsL,IACvC8O,GAAQ09K,cAAcxsL,IAGtB0iN,KAAQ30F,uBAG3B0+D,EAAejsL,QADfsO,KAAWA,GAAQ29K,qBAAgDrnM,IAA9B0pB,GAAQ29K,eAAezsL,MACxC8O,GAAQ29K,eAAezsL,KAM3C0sL,EAAQlsL,KADRsO,IAAWA,GAAQ49K,cAAkCtnM,IAAvB0pB,GAAQ49K,QAAQ1sL,IACjC8O,GAAQ49K,QAAQ1sL,IAGhB,GAGb2sL,EAAQnsL,KADRsO,IAAWA,GAAQk+K,kBAA0C5nM,IAA3B0pB,GAAQk+K,YAAYhtL,IACzC8O,GAAQk+K,YAAYhtL,IAGpB,MAGb2uK,EAAUnuK,KADVsO,IAAWA,GAAQ6/J,gBAAsCvpL,IAAzB0pB,GAAQ6/J,UAAU3uK,IACnC8O,GAAQ6/J,UAAU3uK,IAGlB,GAGf4sL,GAAWpsL,KADXsO,IAAWA,GAAQ89K,iBAAwCxnM,IAA1B0pB,GAAQ89K,WAAW5sL,IACpC8O,GAAQ89K,WAAW5sL,IAGnB,GAGhBitL,GAAYzsL,KADZsO,IAAWA,GAAQm+K,kBAA0C7nM,IAA3B0pB,GAAQm+K,YAAYjtL,IACrC8O,GAAQm+K,YAAYjtL,IAGpB,EAG7B,CACA6lS,oCACI,MAAMC,EAA+B,CAAC,EAChCC,EAA+B,GACrC,IAAKxjT,KAAKyjT,cACN,OAAOD,EAEX,MAAME,EAAmB1jT,KAAKyjT,cAAc7xK,SAC5C,QAASn0H,EAAI,EAAGA,EAAIimS,EAAiBhuS,OAAQ+H,IAAK,CAC9C,MAAM8oL,EAAUm9G,EAAiBjmS,GACjC,IAAK8oL,EACD,SAEJ,MAAMo9G,EAAYJ,EAA6Bh9G,EAAQ1jB,eACrChgL,IAAd8gT,EACAH,EAA6B/lS,GAAKkmS,EAGlCJ,EAA6Bh9G,EAAQ1jB,UAAYplK,CAEzD,CACA,OAAO+lS,CACX,CAIA52I,SAASg3I,GAAkB,EAAOC,GAAmB,EAAOx4E,GACxD,GAAIrrO,KAAKioO,OAAS,GAAK27E,EACnB,OAEJ,MAAMJ,EAA+BxjT,KAAKsjT,oCAC1CtjT,KAAK8jT,0BACL9jT,KAAKmjT,0BACDU,IACA7jT,KAAK+jT,mBACL/jT,KAAKojT,gBAAgB/3E,IAEzB,MAAMq4E,EAAmB1jT,KAAKyjT,cAAc7xK,SAC5C,QAASn0H,EAAI,EAAGA,EAAIimS,EAAiBhuS,OAAQ+H,IAAK,CAC9C,MAAM8oL,EAAUvmM,KAAKgwR,UAAUvyQ,QACS5a,IAApC2gT,EAA6B/lS,IAC7Bzd,KAAKyjT,cAAc53K,WAAW63K,EAAiBF,EAA6B/lS,IAAKA,GAErF8oL,EAAQnlC,SAAWsiJ,EAAiBjmS,GAChC8oL,EAAQnlC,WACRmlC,EAAQy9G,WAAaz9G,EAAQnlC,SAAS88D,WACtC33B,EAAQyG,eAAiBzG,EAAQnlC,SAAS4rC,eAElD,CACqB,IAAjBhtM,KAAKgqM,SACLhqM,KAAKyjT,cAAcQ,WAAWjkT,KAAKgqM,SAAUhqM,KAAKkjT,qCAAqC,EAE/F,CACAC,0BACInjT,KAAKyjT,cAAgBzjT,KAAK+xS,aAAatoG,2BAA2BzpM,KAAKqoE,MAAOroE,KAAKijT,2BAA4BjjT,KAAKkjT,qCACpHljT,KAAKohK,SAAWphK,KAAKyjT,cAAcl9G,OACvC,CACAw9G,mBACI,GAAI/jT,KAAKgwR,UACL,QAASvyQ,EAAI,EAAGA,EAAIzd,KAAKgwR,UAAUt6Q,OAAQ+H,IACvCzd,KAAKgwR,UAAUvyQ,GAAG2jJ,SAAW,KAC7BphK,KAAKgwR,UAAUvyQ,GAAGgkC,SAG9B,CACA2hQ,gBAAgB/3E,GACZ,MAAMq4E,EAAmB1jT,KAAKyjT,cAAc7xK,SAC5C5xI,KAAKgwR,UAAY,GACjB,QAASvyQ,EAAI,EAAGA,EAAIimS,EAAiBhuS,OAAQ+H,IAAK,CAC9C,MAAM8oL,EAAU,IAAI45B,KAAQ,KAAMngO,KAAK2kI,YACnC0mG,IAAe5tN,KACf8oL,EAAQhgM,KAAO8kO,EAAa5tN,IAEhC8oL,EAAQnlC,SAAWsiJ,EAAiBjmS,GAChC8oL,EAAQnlC,WACRmlC,EAAQy9G,WAAaz9G,EAAQnlC,SAAS88D,WACtC33B,EAAQyG,eAAiBzG,EAAQnlC,SAAS4rC,gBAE9ChtM,KAAKgwR,UAAU/xQ,KAAKsoL,EACxB,CACJ,CAOA29G,mBAAmB39G,EAAS5rL,EAAOwpS,GAAkB,GACjD,GAAKnkT,KAAKgsI,eAGI,IAAVrxH,IACA3a,KAAKohK,SAAWmlC,GAEpBvmM,KAAKgsI,aAAaH,WAAW06D,EAAS5rL,EAAOwpS,GACxCnkT,KAAK4xI,SAASj3H,KACf3a,KAAK4xI,SAASj3H,GAAS,IAAIwlN,KAAQ,KAAMngO,KAAK2kI,YAC9C3kI,KAAK4xI,SAASj3H,GAAOpU,KAAOvG,KAAK+iT,gBAAgBpoS,IAAU3a,KAAK4xI,SAASj3H,GAAOpU,MAEpFvG,KAAK4xI,SAASj3H,GAAOymJ,SAAWmlC,EAChCvmM,KAAK4xI,SAASj3H,GAAOqpS,WAAaz9G,EAAQ23B,WAC1Cl+N,KAAK4xI,SAASj3H,GAAOqyL,eAAiBzG,EAAQyG,eAC9ChtM,KAAKioO,OAASjoO,KAAKgsI,aAAa4F,SAAW5xI,KAAKgsI,aAAa4F,SAASl8H,OAAS,EAC3E1V,KAAKijT,0BAA0Bj5Q,QAC/BhqC,KAAKijT,0BAA0Bj5Q,MAAMrvB,GAAS4rL,EAAQn0L,MAEtDpS,KAAKijT,0BAA0Bh5G,gBAC/BjqM,KAAKijT,0BAA0Bh5G,cAActvL,GAAS4rL,EAAQ1gB,cAE9D7lL,KAAKijT,0BAA0B/4G,iBAC/BlqM,KAAKijT,0BAA0B/4G,eAAevvL,GAAS4rL,EAAQyG,gBAE/DhtM,KAAKijT,0BAA0Bx4G,cAAqE,IAAtDzqM,KAAKijT,0BAA0Bx4G,YAAY9vL,IAAe,CACxG,IAAI0S,EAAS,EAETA,EADAk5K,EAAQoG,UACC,MAEJpG,EAAQ+C,OACJ,MAIJ/C,EAAQgD,KACJ,MAGA,KAEbvpM,KAAKijT,0BAA0Bx4G,YAAY9vL,GAAS0S,CACxD,CACJ,CAOA+2R,qBAAqBzpS,EAAO0vL,GAAa,EAAIje,GAAY,IAChDpsL,KAAK4xI,SAASj3H,KAAW3a,KAAKgsI,eAG/BhsI,KAAKijT,0BAA0B54G,aAC/BrqM,KAAKijT,0BAA0B54G,WAAW1vL,GAAS0vL,GAEnDrqM,KAAKijT,0BAA0B72H,YAC/BpsL,KAAKijT,0BAA0B72H,UAAUzxK,GAASyxK,GAEtDpsL,KAAKgsI,aAAao4K,qBAAqBzpS,EAAO0vL,EAAYje,GAC9D,CAMAqiB,uBAAuB6vE,EAAc+lC,GAC5BrkT,KAAKgsI,eAGVhsI,KAAKijT,0BAA0B54G,WAAai0E,EAC5Ct+Q,KAAKijT,0BAA0B72H,UAAYi4H,EAC3CrkT,KAAKgsI,aAAayiE,uBAAuB6vE,EAAc+lC,GAC3D,CAIA,WAAIr6G,GACA,OAAOhqM,KAAKsvM,QAChB,CACA,WAAItF,CAAQz3L,GAEJvS,KAAKsvM,SADLtvM,KAAKyjT,cACWzjT,KAAKyjT,cAAcQ,WAAW1xS,GAI9BA,CAExB,CAMA84M,OAAOhyL,GACHr5B,KAAKskT,sBAAsBjrR,GAC3Br5B,KAAK4sK,UAAS,OAAO/pK,EAAW7C,KAAK+iT,cACzC,CAQAwB,YAAYrlR,EAAO3S,EAAS8+M,GACxBrrO,KAAKijT,0BAA0Bl5G,aAAe7qK,EAC9Cl/B,KAAKioO,OAAS/oM,EACd,MAAM8K,EAAQ,GACRigK,EAAgB,GAChBC,EAAiB,GACjBC,EAAU,GACVM,GAAc,GACdre,GAAY,GACZie,GAAa,GACbK,GAAc,GACpB1qM,KAAK+iT,cAAgB13E,EACrBrrO,KAAKgjT,WAAW9jR,EAAO8K,EAAOigK,EAAeC,EAAgBC,EAASM,GAAare,GAAWie,GAAYK,GAAan+K,GACvHvsB,KAAKijT,0BAA0Bj5Q,MAAQA,EACvChqC,KAAKijT,0BAA0Bh5G,cAAgBA,EAC/CjqM,KAAKijT,0BAA0B/4G,eAAiBA,EAChDlqM,KAAKijT,0BAA0B94G,QAAUA,EACzCnqM,KAAKijT,0BAA0Bx4G,YAAcA,GAC7CzqM,KAAKijT,0BAA0B72H,UAAYA,GAC3CpsL,KAAKijT,0BAA0B54G,WAAaA,GAC5CrqM,KAAKijT,0BAA0Bv4G,YAAcA,GAC7C1qM,KAAKijT,0BAA0B14G,OAAS8gC,EACxCrrO,KAAK4sK,UAAS,GAAO,EAAMy+D,EAC/B,CACAm5E,mBAAmB95K,EAAQ0hD,GACnBpsL,KAAKyjT,eACL/4K,EAAO49D,sCAAsCtoM,KAAKyjT,cAAezjT,KAAKspM,OAAQ,KAC1EtpM,KAAK6kI,wBAAwBm8B,gBAAgBorB,EAAS,EAGlE,CAKA3qI,QAAQgjQ,GAA+B,GACnCzkT,KAAK+jT,mBACAU,EAKDzkT,KAAKohK,SAAW,KAJhBphK,KAAK8jT,0BAMTjgT,MAAM49C,SACV,CAIAqiQ,0BACI,MAAMJ,EAAmB1jT,KAAKyjT,eAAe7xK,SAC7C,GAAK8xK,EAGL,SAASjmS,EAAIimS,EAAiBhuS,OAAS,EAAG+H,GAAK,EAAGA,IAC9Czd,KAAKgwR,UAAUvyQ,GAAG2jJ,SAAW,KAEjCphK,KAAKyjT,eAAehiQ,UACpBzhD,KAAKyjT,cAAgB,KACzB,kBCtZJp8H,KAAYC,aAAiB,iBAdb,qkCCIT,MAAMo9H,WAA+BC,KASxC9kT,YAAY0G,EAAM8yB,EAAO,IAAKilF,EAAQgjD,KAAYC,iBAAkBqjJ,EAAiBtgL,GACjFzgI,MAAM0C,EAAM8yB,EAAM,QAASilF,EAAOsmM,EAAiBtgL,GAEnDtkI,KAAKiiE,KAAO,EAEZjiE,KAAK6kT,WAAa,GAElB7kT,KAAK8kT,QAAU,EAEf9kT,KAAK+kT,YAAc,GAEnB/kT,KAAKglT,qBAAuB,EAC5BhlT,KAAKyrI,WAAY,EACjBzrI,KAAKilT,uBACT,CACAA,wBACI,MAAM3mM,EAAQt+G,KAAK2kI,WACdrmB,IAGLt+G,KAAKiiE,MAAQq8C,EAAM4mM,oBAAsBllT,KAAKglT,qBAAuB,IACrEhlT,KAAK+hK,SAAS,aAAc/hK,KAAK6kT,YACjC7kT,KAAK+hK,SAAS,cAAe/hK,KAAK+kT,aAClC/kT,KAAK+hK,SAAS,YAAa/hK,KAAKiiE,MACpC,CACAkjP,cACI,MAAO,oBAAqC,EAAfnlT,KAAK8kT,QACtC,CAKAlzQ,OAAOwzQ,GACHplT,KAAKilT,wBACLphT,MAAM+tC,OAAOwzQ,EACjB,CAKAhgL,YACI,MAAMC,EAAsB,CAC5BA,WAAiC,kCAAjCA,OACAA,EAAoBw/K,WAAa7kT,KAAK6kT,WACtCx/K,EAAoBy/K,QAAU9kT,KAAK8kT,QACnCz/K,EAAoB0/K,YAAc/kT,KAAK+kT,YACvC1/K,EAAoB2/K,qBAAuBhlT,KAAKglT,qBAChD3/K,EAAoBhsG,KAAOr5B,KAAK+kI,UAAUtqG,MAC1C4qG,EAAoBf,gBAAkBtkI,KAAKilI,iBAC3CI,EAAoBpjE,KAAOjiE,KAAKiiE,KACzBojE,CACX,CAKAjiI,QACI,MAAM0hI,EAAc9kI,KAAK+kI,UACnBC,EAAa,IAAI0/K,GAAuB1kT,KAAKuG,KAAMu+H,EAAYrqG,MAAOz6B,KAAK2kI,WAAY3kI,KAAKqlT,iBAAmBrlT,KAAKqlT,sBAAmBxiT,EAAW7C,KAAKilI,kBAE7JD,SAAWE,SAAWllI,KAAKklI,SAC3BF,EAAWxlD,MAAQx/E,KAAKw/E,MAExBwlD,EAAWu2I,gBAAkBv7Q,KAAKu7Q,gBAElCv2I,EAAW6/K,WAAa7kT,KAAK6kT,WAC7B7/K,EAAW8/K,QAAU9kT,KAAK8kT,QAC1B9/K,EAAW+/K,YAAc/kT,KAAK+kT,YAC9B//K,EAAWggL,qBAAuBhlT,KAAKglT,qBACvChgL,EAAW/iE,KAAOjiE,KAAKiiE,KAChB+iE,CACX,CAOA,YAAO49B,CAAM+/I,EAAerkM,GACxB,MAAMioF,EAAU,IAAIm+G,GAAuB/B,EAAcp8S,KAAMo8S,EAActpR,KAAMilF,OAAOz7G,EAAW8/S,EAAcr+K,iBACnHiiE,SAAQs+G,WAAalC,EAAckC,WACnCt+G,EAAQu+G,QAAUnC,EAAcmC,QAChCv+G,EAAQw+G,YAAcpC,EAAcoC,YACpCx+G,EAAQy+G,qBAAuBrC,EAAcqC,qBAC7Cz+G,EAAQtkI,KAAO0gP,EAAc1gP,MAAQ,EAC9BskI,CACX,GAEJ1nC,SAAc,iCAAkC6lJ,mMCpGzC,MAAMY,WAAgDC,KASzD1lT,YAAY0G,EAAM+xR,EAAYr9Q,EAE9BuqS,EAAYC,GACR5hT,MAAM0C,EAAM+xR,EAAYr9Q,GACxBjb,KAAKwlT,WAAaA,EAClBxlT,KAAKylT,WAAaA,EAClBzlT,KAAK0lT,6BAA8B,CACvC,CAMAC,wBAAwBC,GACpB,OAAOA,aAA2BN,IAA2CM,EAAgBH,aAAezlT,KAAKylT,WAC3G,EACA,CACV,CAMAI,yBACI,MAAO,CAAC,IAAI7lT,KAAKwlT,WAAWxlT,KAAKylT,YAAazlT,KAAKuG,KACvD,2DCqEJs4J,SAAc,iCAnGP,MAAMinJ,UAA+BC,KAKxClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBr8E,QACrC3pO,KAAK6rR,WAAY,EACjB7rR,KAAK8rR,cAAc,gBAAiBm6B,KAAsC1lJ,SAAS,EAAOylJ,KAAyBr8E,QACnH3pO,KAAK8rR,cAAc,aAAcm6B,KAAsC/pI,SAAS,EAAM8pI,KAAyBr8E,QAC/G3pO,KAAK8rR,cAAc,QAASm6B,KAAsCxlJ,QAAQ,EAAOulJ,KAAyBr8E,QAC1G3pO,KAAK8rR,cAAc,OAAQm6B,KAAsCxlJ,QAAQ,EAAOulJ,KAAyBr8E,QACzG3pO,KAAK8rR,cAAc,aAAcm6B,KAAsCxlJ,QAAQ,EAAOulJ,KAAyBr8E,QAC/G3pO,KAAKm1R,eAAe,cAAe8wB,KAAsCxkJ,QAASukJ,KAAyBr8E,OAC/G,CAKAhkG,eACI,MAAO,wBACX,CAIA,iBAAIugL,GACA,OAAOlmT,KAAKksR,QAAQ,EACxB,CAIA,cAAIi6B,GACA,OAAOnmT,KAAKksR,QAAQ,EACxB,CAIA,SAAIk6B,GACA,OAAOpmT,KAAKksR,QAAQ,EACxB,CAIA,QAAIn9M,GACA,OAAO/uE,KAAKksR,QAAQ,EACxB,CAIA,cAAIm6B,GACA,OAAOrmT,KAAKksR,QAAQ,EACxB,CAIA,eAAIo6B,GACA,OAAOtmT,KAAKu2R,SAAS,EACzB,CAKAmE,WAAWz2R,GACPA,EAAMsiT,qBAAqB,SAC3BtiT,EAAMsiT,qBAAqB,cAC/B,CACAp6B,YAAYloR,GAER,GADAJ,MAAMsoR,YAAYloR,GACdA,EAAMopB,SAAW24R,KAAyBQ,SAC1C,OAEJ,MAAMC,EAAY,KAAIzmT,KAAKuG,OAC3BtC,EAAMyiT,yBAAyB,qCAAsCD,GACrExiT,EAAMyiT,yBAAyB,oBAAqBD,GACpDxiT,EAAM0iT,uBAAuB,QAASV,KAAsC/pI,SAC5Ej4K,EAAM0iT,uBAAuB,cAAeV,KAAsC/pI,SAClFj4K,EAAMqyC,WAAWr4B,KAAKuuJ,KAAa1yB,cACnC71I,EAAM2iT,WAAWC,aAAarvK,iBAAkB,EAChD,MAAM0uK,EAAgBlmT,KAAKkmT,cACrBC,EAAanmT,KAAKmmT,WAClBC,EAAQpmT,KAAKomT,MACbr3O,EAAO/uE,KAAK+uE,KACZs3O,EAAarmT,KAAKqmT,WAGxB,IAAIS,GAAuB,OADd7iT,EAAM8iT,iBAEfZ,EAAWjqB,cACX4qB,GAAsBX,EAAWa,wBAErC,IAAI79P,GAAQ,WACRivJ,GAAW,GACf,OAA6B,IAAzBn0M,EAAMuyM,iBACNrtJ,GAAQ,iBACRivJ,GAAW,0CAEfn0M,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAZrBlnT,KAAKsmT,oCAY8Dn9P,OAAU+8P,EAAcc,2BAA2BF,mBAAoCV,EAAMY,2BAA2Bj4O,EAAKi4O,2BAA2BX,EAAWW,yBAAyB5uG,SACvQp4M,IACX,KCtCJ6+J,SAAc,wBA5DP,MAAMsoJ,WAAsBpB,KAK/BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UACrCxmT,KAAK6rR,WAAY,EACjB7rR,KAAK8rR,cAAc,aAAcm6B,KAAsC96C,QAAQ,EAAO66C,KAAyBQ,UAC/GxmT,KAAKm1R,eAAe,OAAQ8wB,KAAsC96C,OAAQ66C,KAAyBQ,SACvG,CAKA7gL,eACI,MAAO,eACX,CAIA,cAAIyhL,GACA,OAAOpnT,KAAKksR,QAAQ,EACxB,CAIA,QAAIm7B,GACA,OAAOrnT,KAAKu2R,SAAS,EACzB,CAKAmE,WAAWz2R,GACPA,EAAMsiT,qBAAqB,YAC/B,CACAp6B,YAAYloR,GAER,GADAJ,MAAMsoR,YAAYloR,GACdA,EAAMopB,SAAW24R,KAAyBr8E,OAC1C,OAGJ,MAAM88E,EAAY,KAAIzmT,KAAKuG,OAC3BtC,EAAMyiT,yBAAyB,+BAAgCD,GAC/DxiT,EAAMyiT,yBAAyB,sBAAuBD,GACtDxiT,EAAMyiT,yBAAyB,yBAA0BD,GACzDxiT,EAAMyiT,yBAAyB,uCAAwCD,GACvExiT,EAAMqjT,uBAAuB,YAAarB,KAAsC/pI,SAChF,MAAMriH,EAAQ75D,KAAKonT,WACbjoR,EAASn/B,KAAKu2R,SAAS,GAC7B,OACItyR,EAAMgjT,mBADmB,IAAzBhjT,EAAMuyM,eACsB,GAAEvyM,EAAMijT,eAAe/nR,sBAA2B06B,EAAMmtP,8CAGxD,GAAE/iT,EAAMijT,eAAe/nR,sBAA2B06B,EAAMmtP,6BAEjFhnT,IACX,oBCoCJ6+J,SAAc,2BA7FP,MAAM0oJ,WAAyBxB,KAKlClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBr8E,QACrC3pO,KAAK6rR,WAAY,EACjB7rR,KAAK8rR,cAAc,aAAcm6B,KAAsCuB,OAAO,EAAOxB,KAAyBr8E,QAC9G3pO,KAAKm1R,eAAe,gBAAiB8wB,KAAsC1lJ,QAASylJ,KAAyBr8E,QAC7G3pO,KAAKm1R,eAAe,aAAc8wB,KAAsC96C,OAAQ66C,KAAyBr8E,OAC7G,CAKAhkG,eACI,MAAO,kBACX,CAIA,cAAI8hL,GACA,OAAOznT,KAAKksR,QAAQ,EACxB,CAIA,iBAAIg6B,GACA,OAAOlmT,KAAKu2R,SAAS,EACzB,CAIA,cAAI6wB,GACA,OAAOpnT,KAAKu2R,SAAS,EACzB,CAKAmE,WAAWz2R,GACPA,EAAMsiT,qBAAqB,QAC3BtiT,EAAMsiT,qBAAqB,QAC3BtiT,EAAMsiT,qBAAqB,aAC3BtiT,EAAMsiT,qBAAqB,uBAC3BtiT,EAAMsiT,qBAAqB,uBAC3BtiT,EAAMsiT,qBAAqB,kBAC3BtiT,EAAMsiT,qBAAqB,iBAC3BtiT,EAAMsiT,qBAAqB,kBAC/B,CACAt4Q,KAAKlyB,EAAQ8qS,EAAcllJ,GACvB,IAAKA,EACD,OAEJ,MAAMrjD,EAAQqjD,EAAKh9B,WACnB+iL,IAA0BC,WAAWhmJ,EAAM5lJ,EAAQuiG,EACvD,CACA6tK,YAAYloR,GAER,GADAJ,MAAMsoR,YAAYloR,GACdA,EAAMopB,SAAW24R,KAAyBQ,SAC1C,OAEJviT,EAAM2iT,WAAWgB,eAAe3pS,KAAKje,MAErC,MAAMymT,EAAY,KAAIzmT,KAAKuG,OAC3BtC,EAAM4jT,eAAe,uBACrB5jT,EAAM4jT,eAAe,uBACrB5jT,EAAM4jT,eAAe,kBACrB5jT,EAAM4jT,eAAe,iBACrB5jT,EAAMyiT,yBAAyB,qCAAsCD,GACrExiT,EAAMyiT,yBAAyB,oBAAqBD,GACpDxiT,EAAMqjT,uBAAuB,YAAarB,KAAsC/pI,SAChFj4K,EAAM0iT,uBAAuB,kBAAmBV,KAAsC/pI,SACtF,MAAMurI,EAAaznT,KAAKynT,WAClBvB,EAAgBlmT,KAAKkmT,cACrBkB,EAAapnT,KAAKonT,WAClBU,EAAoB7jT,EAAM8jT,qBAAqB,SACrD,OAA6B,IAAzB9jT,EAAMuyM,gBACNvyM,EAAMgjT,mBAAsB,OAAMa,wBAAwCL,EAAWT,uDACrF/iT,EAAMgjT,mBAAsB,4FAC5BhjT,EAAMgjT,mBAAqB,gDAG3BhjT,EAAMgjT,mBAAsB,SAAQa,iBAAiCL,EAAWT,6BAChF/iT,EAAMgjT,mBAAsB,+EAC5BhjT,EAAMgjT,mBAAqB,2BAE/BhjT,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAehB,QAAoB4B,kBACvE7jT,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAeE,QAAiBU,aAC7D9nT,IACX,oBCyEJ6+J,SAAc,qBAlKP,MAAMmpJ,WAAmBjC,KAK5BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBr8E,QACrC3pO,KAAK8rR,cAAc,kBAAmBm6B,KAAsCxkJ,SAC5EzhK,KAAK8rR,cAAc,kBAAmBm6B,KAAsCxkJ,SAC5EzhK,KAAK8rR,cAAc,uBAAwBm6B,KAAsCxkJ,SAAS,GAC1FzhK,KAAK8rR,cAAc,uBAAwBm6B,KAAsCxkJ,SAAS,GAC1FzhK,KAAK8rR,cAAc,QAASm6B,KAAsCxlJ,QAClEzgK,KAAKm1R,eAAe,SAAU8wB,KAAsCxlJ,OACxE,CAKAi6H,WAAWz2R,GACPA,EAAMsiT,qBAAqB,eAC3BtiT,EAAMsiT,qBAAqB,oBAC3BtiT,EAAMsiT,qBAAqB,UAC3BtiT,EAAMsiT,qBAAqB,gBAC3BvmT,KAAK4sR,uBAAuB3oR,EAAMuyM,eACtC,CACMo2E,uBAAuBp2E,GAAgB,IAAAt2M,EAAAF,KAAA,SAAAG,KAAA,YACzCD,EAAK+nT,cAAe,EACG,IAAnBzxG,QACM7+L,QAAQyE,IAAI,CAACzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,OAAsE1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,gBAGnF1uK,QAAQyE,IAAI,CAACzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QAAkE1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,UAEzFnmL,EAAK+nT,cAAe,EACpB/nT,EAAKgoT,wBAAwBlnJ,gBAAgB9gK,EAAM,EATV,EAU7C,CAKAylI,eACI,MAAO,YACX,CAIA,mBAAIwiL,GACA,OAAOnoT,KAAKksR,QAAQ,EACxB,CAIA,mBAAIk8B,GACA,OAAOpoT,KAAKksR,QAAQ,EACxB,CAIA,wBAAIm8B,GACA,OAAOroT,KAAKksR,QAAQ,EACxB,CAIA,wBAAIo8B,GACA,OAAOtoT,KAAKksR,QAAQ,EACxB,CAIA,SAAIk6B,GACA,OAAOpmT,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACA2C,cAAc7xJ,EAAUkhL,EAA0BA,MAAM,IACpD,IAAKvoT,KAAKmoT,gBAAgBjsB,YAAa,CACnC,IAAIssB,EAAuBnhL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,oBAAXnzS,EAAEhP,MAA8BgiT,EAAwBhzS,IACxIizS,IACDA,EAAuB,IAAIG,KAAW,mBACtCH,EAAqBI,eAAe,oBAExCJ,EAAqBrpR,OAAOg9P,UAAUn8R,KAAKmoT,gBAC/C,CACA,IAAKnoT,KAAKooT,gBAAgBlsB,YAAa,CACnC,IAAI2sB,EAAuBxhL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,oBAAXnzS,EAAEhP,MAA8BgiT,EAAwBhzS,IACxIszS,IACDA,EAAuB,IAAIF,KAAW,mBACtCE,EAAqBD,eAAe,oBAExCC,EAAqB1pR,OAAOg9P,UAAUn8R,KAAKooT,gBAC/C,CACA,IAAKpoT,KAAKomT,MAAMlqB,YAAa,CACzB,IAAI4sB,EAAazhL,EAASohL,yBAA0BlzS,GAAMA,EAAEwzS,cAAgBC,KAAyBC,OAASV,EAAwBhzS,IACjIuzS,IACDA,EAAa,IAAIH,KAAW,SAC5BG,EAAWI,iBAAiBF,KAAyBC,QAEzDH,EAAW3pR,OAAOg9P,UAAUn8R,KAAKomT,MACrC,CACJ,CACA+C,iBAAiBxnJ,EAAM61G,GACf71G,GAAQA,EAAKynJ,UAAYznJ,EAAK0nJ,0BAA4B1nJ,EAAKzoB,UAC/Ds+H,EAAU8xC,uBAAuB,EAAG3nJ,EAE5C,CACA1zH,KAAKlyB,EAAQ8qS,EAAcllJ,IACvB4nJ,SAAoB5nJ,EAAM5lJ,EAC9B,CACA6pH,eAAe+7B,EAAMklJ,EAAcx2H,GAC1BA,EAAQm5H,wBAGbC,OAAuB9nJ,EAAM0uB,EACjC,CACA87F,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAElBA,EAAM2iT,WAAW8C,oBAAoBzrS,KAAKje,MAE1CiE,EAAM2iT,WAAW+C,qBAAqB1rS,KAAKje,MAE3CiE,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,MAExCiE,EAAMm0M,SAASn6L,KAAK,oBACpBha,EAAMm0M,SAASn6L,KAAK,UACpBha,EAAMq0M,SAASr6L,KAAK,eAEpB,MAAMwoS,EAAY,KAAIzmT,KAAKuG,OAC3BtC,EAAMyiT,yBAAyB,mBAAoBD,EAAU,CACzDoD,kBAAkB,EAClBC,gBAAgB,EAChBC,gBAAgB,EAChBC,aAAa,IAEjB,MAAMC,EAAwBhmT,EAAM8jT,qBAAqB,aACzD9jT,EAAMgjT,mBAAqBhjT,EAAMimT,qBAAqB,cAAezD,EAAU,CAC3E0D,eAAgB,CACZ,CACIx/M,OAAQ,oCACR1lG,QAAS,IAEb,CACI0lG,OAAQ,cACR1lG,QAASglT,MAIrB,MAAM9qR,EAASn/B,KAAKu2R,SAAS,GACvBuyB,EAAa9oT,KAAKomT,MACxBniT,SAAMgjT,mBAAsB,+BAC5BhjT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe/nR,GAAW,MAAK2pR,EAAW9B,4BAA4BiD,OACvGhmT,EAAMgjT,mBAAsB,UAC5BhjT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe/nR,GAAW,MAAK2pR,EAAW9B,4BAC3E/iT,EAAMgjT,mBAAsB,WACrBjnT,IACX,KCCJ6+J,SAAc,yBAjKP,MAAMurJ,WAAuBrE,KAKhClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBr8E,QACrC3pO,KAAK8rR,cAAc,SAAUm6B,KAAsCxkJ,SACnEzhK,KAAK8rR,cAAc,SAAUm6B,KAAsCxkJ,SACnEzhK,KAAK8rR,cAAc,SAAUm6B,KAAsCxkJ,SACnEzhK,KAAK8rR,cAAc,SAAUm6B,KAAsCxkJ,SACnEzhK,KAAK8rR,cAAc,QAASm6B,KAAsCxlJ,QAAQ,GAC1EzgK,KAAKm1R,eAAe,SAAU8wB,KAAsCxlJ,QACpEzgK,KAAKm1R,eAAe,aAAc8wB,KAAsCuB,MAC5E,CAKA7hL,eACI,MAAO,gBACX,CAIA,UAAI0kL,GACA,OAAOrqT,KAAKksR,QAAQ,EACxB,CAIA,UAAIo+B,GACA,OAAOtqT,KAAKksR,QAAQ,EACxB,CAIA,UAAIq+B,GACA,OAAOvqT,KAAKksR,QAAQ,EACxB,CAIA,UAAIs+B,GACA,OAAOxqT,KAAKksR,QAAQ,EACxB,CAIA,SAAIk6B,GACA,OAAOpmT,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CAIA,cAAIk0B,GACA,OAAOzqT,KAAKu2R,SAAS,EACzB,CACA2C,cAAc7xJ,EAAUkhL,EAA0BA,MAAM,IACpD,IAAKvoT,KAAKqqT,OAAOh+B,eAAgB,CAC7B,IAAIq+B,EAAcrjL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,WAAXnzS,EAAEhP,MAAqBgiT,EAAwBhzS,IACtHm1S,IACDA,EAAc,IAAI/B,KAAW,UAC7B+B,EAAY9B,eAAe,WAE/B8B,EAAYvrR,OAAOg9P,UAAUn8R,KAAKqqT,OACtC,CACA,IAAKrqT,KAAKsqT,OAAOj+B,eAAgB,CAC7B,IAAIs+B,EAActjL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,WAAXnzS,EAAEhP,MAAqBgiT,EAAwBhzS,IACtHo1S,IACDA,EAAc,IAAIhC,KAAW,UAC7BgC,EAAY/B,eAAe,WAE/B+B,EAAYxrR,OAAOg9P,UAAUn8R,KAAKsqT,OACtC,CACA,IAAKtqT,KAAKuqT,OAAOl+B,eAAgB,CAC7B,IAAIu+B,EAAcvjL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,WAAXnzS,EAAEhP,MAAqBgiT,EAAwBhzS,IACtHq1S,IACDA,EAAc,IAAIjC,KAAW,UAC7BiC,EAAYhC,eAAe,WAE/BgC,EAAYzrR,OAAOg9P,UAAUn8R,KAAKuqT,OACtC,CACA,IAAKvqT,KAAKwqT,OAAOn+B,eAAgB,CAC7B,IAAIw+B,EAAcxjL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,WAAXnzS,EAAEhP,MAAqBgiT,EAAwBhzS,IACtHs1S,IACDA,EAAc,IAAIlC,KAAW,UAC7BkC,EAAYjC,eAAe,WAE/BiC,EAAY1rR,OAAOg9P,UAAUn8R,KAAKwqT,OACtC,CACA,IAAKxqT,KAAKomT,MAAM/5B,eAAgB,CAC5B,IAAIy8B,EAAazhL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,UAAXnzS,EAAEhP,MAAoBgiT,EAAwBhzS,IACpHuzS,IACDA,EAAa,IAAIH,KAAW,SAC5BG,EAAWI,iBAAiBF,KAAyBC,QAEzDH,EAAW3pR,OAAOg9P,UAAUn8R,KAAKomT,MACrC,CACApmT,KAAKomT,MAAMnzH,OAAS,8BACxB,CACArtD,eAAe+7B,EAAMklJ,EAAcx2H,EAASxuB,GAAe,EAAOozG,GAC9D,IAAI77D,GAAU,EACV/oB,EAAQy6H,YAAiBjpJ,IACzBwuB,EAAQnkK,SAAS,YAAa21I,GAC9Bu3C,GAAU,GAEV67D,GAAW5kF,EAAQ06H,mBAAwB91C,GAAS2iC,mBAAmBoT,mBACvE36H,EAAQnkK,SAAS,mBAAoB+oP,GAAS2iC,mBAAmBoT,kBACjE5xG,GAAU,GAEVA,GACA/oB,EAAQ46H,mBAEhB,CACA9+B,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMymI,EAASzmI,EAAM2iT,WAAWtoM,MAAM6xD,YAEtClsK,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,MAExC,MAAMm/B,EAASn/B,KAAKu2R,SAAS,GACvBk0B,EAAazqT,KAAKu2R,SAAS,GAC3B8zB,EAASrqT,KAAKqqT,OACdC,EAAStqT,KAAKsqT,OACdC,EAASvqT,KAAKuqT,OACdC,GAASxqT,KAAKwqT,OACpB,IAAI78E,GAAO,OACPlvM,GAAW,gBACXysR,GAAY,QAChB,OAA6B,IAAzBjnT,EAAMuyM,iBACNm3B,GAAO,UACPlvM,GAAW,6BACXysR,GAAY,OAEhBjnT,EAAMgjT,mBAAsB,qBAC5BhjT,EAAMgjT,mBACFhjT,EAAMijT,eAAe/nR,GAChB,MAAKwuM,MAAQ08E,EAAOrD,2BAA2BsD,EAAOtD,2BAA2BuD,EAAOvD,2BAA2BwD,GAAOxD,6BACnI/iT,EAAMgjT,mBAAsB,0BAC5BhjT,EAAMgjT,mBAAsB,GAAE9nR,EAAO6nR,4BAA4BhnT,KAAKomT,MAAMY,4BAA4B7nR,EAAO6nR,4BAC/G/iT,EAAMgjT,mBAAsB,WAExBhjT,EAAMgjT,mBADNv8K,EAAO0gE,MAAMsd,mBACczkN,EAAMijT,eAAeuD,GAAe,MAAKS,MAAazsR,SAGtDx6B,EAAMijT,eAAeuD,GAAe,YAEnExmT,EAAMgjT,mBAAsB,UAC5BhjT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe/nR,GAAW,MAAKn/B,KAAKomT,MAAMY,4BAC3E/iT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAeuD,GAAe,YAC/DxmT,EAAMgjT,mBAAsB,WACrBjnT,IACX,IC/JG,MAAMmrT,WAA0BpF,KAKnClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBr8E,QACrC3pO,KAAK8rR,cAAc,WAAYm6B,KAAsC1lJ,SACrEvgK,KAAK8rR,cAAc,SAAUm6B,KAAsC1lJ,SACnEvgK,KAAK8rR,cAAc,UAAWm6B,KAAsCzoB,YACpEx9R,KAAKorT,QAAQC,2CAA2CpF,KAAsC96C,OAAS86C,KAAsCxkJ,QAAUwkJ,KAAsC1lJ,SAC7LvgK,KAAK8rR,cAAc,KAAMm6B,KAAsC/pI,SAC/Dl8K,KAAKm1R,eAAe,iBAAkB8wB,KAAsC1lJ,SAC5EvgK,KAAKm1R,eAAe,eAAgB8wB,KAAsC1lJ,SAC1EvgK,KAAKm1R,eAAe,gBAAiB8wB,KAAsCxkJ,SAC3EzhK,KAAKm1R,eAAe,WAAY8wB,KAAsC/pI,QAC1E,CAKAv2C,eACI,MAAO,mBACX,CAIA,YAAIrtH,GACA,OAAOtY,KAAKksR,QAAQ,EACxB,CAIA,UAAI/+F,GACA,OAAOntL,KAAKksR,QAAQ,EACxB,CAIA,WAAIk/B,GACA,OAAOprT,KAAKksR,QAAQ,EACxB,CAIA,MAAIo/B,GACA,OAAOtrT,KAAKksR,QAAQ,EACxB,CAIA,kBAAIq/B,GACA,OAAOvrT,KAAKu2R,SAAS,EACzB,CAIA,gBAAIi1B,GACA,OAAOxrT,KAAKu2R,SAAS,EACzB,CAIA,iBAAIk1B,GACA,OAAOzrT,KAAKu2R,SAAS,EACzB,CAIA,YAAIm1B,GACA,OAAO1rT,KAAKu2R,SAAS,EACzB,CACAmE,WAAWz2R,GACPA,EAAMsiT,qBAAqB,yBAC3BvmT,KAAK4sR,uBAAuB3oR,EAAMuyM,eACtC,CACMo2E,uBAAuBp2E,GAAgB,IAAAt2M,EAAAF,KAAA,SAAAG,KAAA,YACzCD,EAAK+nT,cAAe,EACG,IAAnBzxG,QACM7+L,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,gBAIE1uK,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,UAGRnmL,EAAK+nT,cAAe,EACpB/nT,EAAKgoT,wBAAwBlnJ,gBAAgB9gK,EAAM,EAnBV,EAoB7C,CACAg5R,cAAc7xJ,EAAUkhL,EAA0BA,MAAM,IACpD,IAAKvoT,KAAKsY,SAAS4jR,YAAa,CAC5B,IAAIyvB,EAAgBtkL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,aAAXnzS,EAAEhP,MAAuBgiT,EAAwBhzS,IAC1Ho2S,IACDA,EAAgB,IAAIhD,KAAW,YAC/BgD,EAAc/C,kBAElB+C,EAAcxsR,OAAOg9P,UAAUn8R,KAAKsY,SACxC,CACA,IAAKtY,KAAKmtL,OAAO+uG,YAAa,CAC1B,IAAI0vB,EAAcvkL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,WAAXnzS,EAAEhP,MAAqBgiT,EAAwBhzS,IACtHq2S,IACDA,EAAc,IAAIjD,KAAW,UAC7BiD,EAAYhD,eAAe,WAE/BgD,EAAYzsR,OAAOg9P,UAAUn8R,KAAKmtL,OACtC,CACA,IAAKntL,KAAKorT,QAAQlvB,YAAa,CAC3B,IAAI2vB,EAAexkL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,YAAXnzS,EAAEhP,MAAsBgiT,EAAwBhzS,IACxHs2S,IACDA,EAAe,IAAIlD,KAAW,WAC9BkD,EAAajD,eAAe,YAEhCiD,EAAa1sR,OAAOg9P,UAAUn8R,KAAKorT,QACvC,CACA,IAAKprT,KAAKsrT,GAAGpvB,YAAa,CACtB,IAAI4vB,EAAUzkL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,OAAXnzS,EAAEhP,MAAiBgiT,EAAwBhzS,IAC9Gu2S,IACDA,EAAU,IAAInD,KAAW,MACzBmD,EAAQlD,eAAe,OAE3BkD,EAAQ3sR,OAAOg9P,UAAUn8R,KAAKsrT,GAClC,CACJ,CACA1lL,eAAe+7B,EAAMklJ,EAAcx2H,GAC/B,GAAI1uB,EAAKoqJ,mBAAoB,CACzB,MAAMA,EAAqBpqJ,EAAKoqJ,mBAC5BA,GAAoBC,2BAA6BD,EAAmBE,mBAAqBF,EAAmBG,kBAAoB77H,EAAQ87H,uBACxI97H,EAAQ+7H,uBAEhB,CACK/7H,EAAQm5H,wBAGb6C,OAA8B1qJ,EAAM0uB,EACxC,CACApiJ,KAAKlyB,EAAQ8qS,EAAcllJ,GACnBA,GAAQA,EAAKoqJ,oBAAsBpqJ,EAAKoqJ,mBAAmBG,eAAiB,OAC5EI,OAA0B3qJ,EAAM5lJ,GAC5B4lJ,EAAKoqJ,mBAAmBC,0BACxBrqJ,EAAKoqJ,mBAAmBQ,MAAMxwS,GAG1C,CACAywS,yBAAyBC,EAAmBC,EAAqB/qJ,EAAM0uB,GACnE,MAAM/3K,EAAWtY,KAAKsY,SAChB60K,EAASntL,KAAKmtL,OACdi+H,EAAUprT,KAAKorT,QACfE,GAAKtrT,KAAKsrT,GACVC,GAAiBvrT,KAAKurT,eACtBC,GAAexrT,KAAKwrT,aACpBC,GAAgBzrT,KAAKyrT,cACrBC,GAAW1rT,KAAK0rT,SAChBznT,GAAQwoT,EACRE,GAAct8H,EAAQ87H,sBACtBS,GAAUjrJ,EAAKoqJ,mBACfc,GAAaD,IAAWA,GAAQE,iBAAmBz8H,EAAQ08H,OAC3DC,GAAcJ,IAAWA,GAAQK,kBAAoB58H,EAAQ68H,QAC7DC,GAASP,IAAWA,GAAQQ,aAAe/8H,EAAQg9H,IACzD,IAAIC,GAAgB,GAChBV,IAASZ,0BAA4BW,GAAc,IACnDW,IAAkB,GAAErpT,GAAMspT,iBAAiB,WAAYtH,KAAsCuB,aAEjG8F,IAAkB,wBAClB,MAAM5hH,GAAoC,IAAzBznM,GAAMuyM,eACjBg3G,GAAiB9hH,GAAW,YAAc,GAChD,GAAIkhH,IAASZ,yBACTsB,IAAkB,QAAO5hH,GAAW,MAAQ,mDAC5C4hH,IAAkB,YAAWE,mCAC7BF,IAAkB,cAAa5hH,GAAW,+BAAiC,0BAA0B8hH,gCACrGF,IAAkB,GAAE/B,GAAevE,uEAAuE1uS,EAAS0uS,6BAA6BwG,gCAChJF,IAAkB,qBACdT,KACAS,IAAkB,+BAClBA,IAAkB,GAAE9B,GAAaxE,uEAAuE75H,EAAO65H,6BAA6BwG,gCAC5IF,IAAkB,qBAClBA,IAAkB,YAElBH,KACAG,IAAkB,2BAClBA,IAAkB,GAAE5B,GAAS1E,0EAA0EsE,GAAGtE,6BAA6BwG,gCACvIF,IAAkB,qBAClBA,IAAkB,YAElBN,KACAM,IAAkB,gCAClBA,IAAkB,GAAE7B,GAAczE,2EAA2EoE,EAAQpE,iCAAiCwG,gCAElJF,IADAlC,EAAQh5S,OAAS6zS,KAAsCxkJ,QACrC,GAAEgqJ,GAAczE,8BAA8BoE,EAAQpE,8BAGtD,GAAEyE,GAAczE,mCAEtCsG,IAAkB,YAEtBA,IAAiB,WAGjB,QAAS3yS,GAAQ,EAAGA,GAAQgyS,GAAahyS,KACrC2yS,IAAkB,GAAE/B,GAAevE,sCAAsCrsS,QAAWrC,EAAS0uS,6BAA6BwG,2BAAuC7yS,SAC7JkyS,KACAS,IAAkB,+BAClBA,IAAkB,GAAE9B,GAAaxE,oCAAoCrsS,QAAWwyK,EAAO65H,6BAA6BwG,2BAAuC7yS,SAC3J2yS,IAAkB,YAElBH,KACAG,IAAkB,2BAClBA,IAAkB,GAAE5B,GAAS1E,oCAAoCrsS,QAAW2wS,GAAGtE,gCAAgCwG,2BAAuC7yS,SACtJ2yS,IAAkB,YAElBN,KACAM,IAAkB,gCAClBA,IAAkB,GAAE7B,GAAczE,yCAAyCrsS,QAAWywS,EAAQpE,iCAAiCwG,2BAAuC7yS,SAElK2yS,IADAlC,EAAQh5S,OAAS6zS,KAAsCxkJ,QACrC,GAAEgqJ,GAAczE,8BAA8BoE,EAAQpE,8BAGtD,GAAEyE,GAAczE,mCAEtCsG,IAAkB,YAM9B,GAFAA,IAAkB,WAClBrpT,GAAMgjT,kBAAoBhjT,GAAMgjT,kBAAkBhiT,QAAQjF,KAAKytT,yBAA0BH,IACrFX,GAAc,EACd,QAAShyS,GAAQ,EAAGA,GAAQgyS,GAAahyS,KACrC1W,GAAMqyC,WAAWr4B,KAAKuuJ,IAAa1yB,aAAen/H,IAC9CkyS,IACA5oT,GAAMqyC,WAAWr4B,KAAKuuJ,IAAak1C,WAAa/mM,IAEhDqyS,IACA/oT,GAAMqyC,WAAWr4B,KAAKuuJ,IAAam1C,YAAchnM,IAEjDwyS,IACAlpT,GAAMqyC,WAAWr4B,KAAKuuJ,IAAao1C,OAAS,IAAMjnM,GAIlE,CACAwxQ,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAElBA,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,MAExCiE,EAAM2iT,WAAWgB,eAAe3pS,KAAKje,MAErCiE,EAAM2iT,WAAW8G,wBAAwBzvS,KAAKje,MAE9C,MAAMsY,EAAWtY,KAAKsY,SAChB60K,EAASntL,KAAKmtL,OACdi+H,EAAUprT,KAAKorT,QACfE,EAAKtrT,KAAKsrT,GACVC,EAAiBvrT,KAAKurT,eACtBC,EAAexrT,KAAKwrT,aACpBC,GAAgBzrT,KAAKyrT,cACrBC,GAAW1rT,KAAK0rT,SAChBjF,GAAY,KAAIzmT,KAAKuG,OAC3BtC,SAAMm0M,SAASn6L,KAAK,yBACpBha,EAAMm0M,SAASn6L,KAAK,oBACpBha,EAAMm0M,SAASn6L,KAAK,0BACpBha,EAAMm0M,SAASn6L,KAAK,6BACpBha,EAAMq0M,SAASr6L,KAAK,gBACpBha,EAAMyiT,yBAAyB,sCAAuCD,IACtExiT,EAAMyiT,yBAAyB,gCAAiCD,GAAU,CACtEkH,UAAW,gCAEf1pT,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAeqE,QAAqBjzS,EAAS0uS,4BACjF/iT,EAAMgjT,mBAAsB,kBAC5BhjT,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAesE,QAAmBr+H,EAAO65H,4BAC7E/iT,EAAMgjT,mBAAsB,UAC5BhjT,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAesE,2BACnDvnT,EAAMgjT,mBAAsB,WAC5BhjT,EAAMgjT,mBAAsB,mBAC5BhjT,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAeuE,SAAoBL,EAAQpE,4BAC/E/iT,EAAMgjT,mBAAsB,UAC5BhjT,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAeuE,gCACnDxnT,EAAMgjT,mBAAsB,WAC5BhjT,EAAMgjT,mBAAsB,eAC5BhjT,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAewE,SAAeJ,EAAGtE,4BACrE/iT,EAAMgjT,mBAAsB,UAC5BhjT,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAewE,wBACnDznT,EAAMgjT,mBAAsB,WAE5BjnT,KAAKytT,yBAA2BxpT,EAAMwpT,yBACtCxpT,EAAMgjT,mBAAqBjnT,KAAKytT,yBACzBztT,IACX,GAEJ6+J,SAAc,4BAA6BssJ,KCzH3CtsJ,SAAc,gCAjLP,MAAM+uJ,WAA8B7H,KAKvClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBr8E,QACrC3pO,KAAK8rR,cAAc,gBAAiBm6B,KAAsCxkJ,SAAS,EAAOukJ,KAAyBr8E,QACnH3pO,KAAKm1R,eAAe,YAAa8wB,KAAsC1lJ,SACvEvgK,KAAKm1R,eAAe,QAAS8wB,KAAsC5lJ,QACnErgK,KAAKm1R,eAAe,YAAa8wB,KAAsCuB,OACvExnT,KAAKm1R,eAAe,aAAc8wB,KAAsCuB,OACxExnT,KAAKm1R,eAAe,mBAAoB8wB,KAAsCuB,OAC9ExnT,KAAKm1R,eAAe,mBAAoB8wB,KAAsCuB,OAC9ExnT,KAAKm1R,eAAe,mBAAoB8wB,KAAsC/pI,QAClF,CAKAv2C,eACI,MAAO,uBACX,CAIA,iBAAIkoL,GACA,OAAO7tT,KAAKksR,QAAQ,EACxB,CAIA,aAAIjxQ,GACA,OAAOjb,KAAKu2R,SAAS,EACzB,CAIA,SAAI18N,GACA,OAAO75D,KAAKu2R,SAAS,EACzB,CAIA,aAAI0lB,GACA,OAAOj8S,KAAKu2R,SAAS,EACzB,CAIA,cAAIu3B,GACA,OAAO9tT,KAAKu2R,SAAS,EACzB,CAIA,oBAAIw3B,GACA,OAAO/tT,KAAKu2R,SAAS,EACzB,CAIA,oBAAIy3B,GACA,OAAOhuT,KAAKu2R,SAAS,EACzB,CAIA,oBAAI03B,GACA,OAAOjuT,KAAKu2R,SAAS,EACzB,CACAtoP,KAAKlyB,EAAQ8qS,EAAcllJ,GACvB,IAAKA,EACD,OAEA3hK,KAAKkuT,OAASluT,KAAKkuT,MAAMljE,eACzBhrP,KAAKkuT,MAAQ,MAEjB,IAAIA,EAAQluT,KAAKkuT,MACjB,MAAM5vM,EAAQuoM,EAAaliL,WAK3B,IAJKupL,GAAS5vM,EAAMgzB,OAAO57H,SACvBw4S,EAAQluT,KAAKkuT,MAAQ5vM,EAAMgzB,OAAO,GAClCtxI,KAAKmuT,sBAAuB,IAE3BD,IAAUA,EAAMjiL,UAGjB,OAFAlwH,EAAO2/L,UAAU17M,KAAKouT,sBAAuB,EAAG,EAAG,QACnDryS,EAAO6/L,UAAU57M,KAAKquT,uBAAwB,EAAG,EAAG,EAAG,GAG3DH,EAAMI,6BAA6BvyS,EAAQ/b,KAAKouT,uBAChDryS,EAAOkgM,UAAUj8M,KAAKquT,uBAAwBH,EAAMK,QAASL,EAAMjS,WACnE,MAAMuS,EAAYN,EAAMxyK,qBASxB,IARI17I,KAAK8tT,WAAWW,cAAgBzuT,KAAK+tT,iBAAiBU,cAAgBzuT,KAAKguT,iBAAiBS,gBACxFD,EACAzyS,EAAO2/L,UAAU17M,KAAK0uT,wBAAyBF,EAAUG,KAAMH,EAAUI,WAAYJ,EAAUK,YAG/F9yS,EAAO2/L,UAAU17M,KAAK0uT,wBAAyB,EAAG,EAAG,IAGzD1uT,KAAKiuT,iBACL,GAAIO,GAAalwM,EAAM8rB,aAAc,CACjC,MAAM0kL,EAAcZ,EACpBnyS,EAAO+lJ,UAAU9hK,KAAK+uT,6BAA8BD,EAAYE,aAAa1wM,EAAM8rB,cAAe0kL,EAAYE,aAAa1wM,EAAM8rB,cAAgB0kL,EAAYG,aAAa3wM,EAAM8rB,cACpL,MAEIruH,EAAO+lJ,UAAU9hK,KAAK+uT,6BAA8B,EAAG,EAGnE,CACAnpL,eAAe+7B,EAAMklJ,EAAcx2H,GAC/B,IAAKA,EAAQ6+H,kBAAoBlvT,KAAKmuT,qBAClC,OAEJnuT,KAAKmuT,sBAAuB,EAC5B,MAAMD,EAAQluT,KAAKkuT,MACnB79H,EAAQnkK,SAASlsB,KAAKmvT,wBAAsBjB,GAASA,aAAiBkB,OAA2B,EACrG,CACAjjC,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClBA,EAAM2iT,WAAWgB,eAAe3pS,KAAKje,MACrCiE,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,MACxC,MAAMib,EAAYjb,KAAKib,UACjB4+C,EAAQ75D,KAAK65D,MACboiP,EAAYj8S,KAAKi8S,UACjB6R,EAAa9tT,KAAK8tT,WAClBC,EAAmB/tT,KAAK+tT,iBACxBC,EAAmBhuT,KAAKguT,iBACxBC,GAAmBjuT,KAAKiuT,iBAC9BjuT,KAAKouT,sBAAwBnqT,EAAM8jT,qBAAqB,aACxD/nT,KAAKquT,uBAAyBpqT,EAAM8jT,qBAAqB,cACzD/nT,KAAK0uT,wBAA0BzqT,EAAM8jT,qBAAqB,cAC1D/nT,KAAK+uT,6BAA+B9qT,EAAM8jT,qBAAqB,mBAC/D/nT,KAAKmvT,qBAAuBlrT,EAAMorT,mBAAmB,kBACrD,MAAMC,GAAsC,IAAzBrrT,EAAMuyM,eAAiD,YAAc,GACxFvyM,SAAM0iT,uBAAuB3mT,KAAKouT,sBAAuBnI,KAAsC1lJ,SAC/Ft8J,EAAM0iT,uBAAuB3mT,KAAKquT,uBAAwBpI,KAAsCxkJ,SAChGx9J,EAAMgjT,mBAAsB,UAASjnT,KAAKmvT,yBAC1ClrT,EAAMgjT,mBACFhjT,EAAMijT,eAAejsS,GAAc,gBAAejb,KAAK6tT,cAAc7G,gCAAgCsI,KAAatvT,KAAKouT,4BAC3HnqT,EAAMgjT,mBAAsB,UAC5BhjT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAejsS,GAAc,MAAKq0S,KAAatvT,KAAKouT,2BACrFnqT,EAAMgjT,mBAAsB,WAC5BhjT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAertP,GAAU,MAAKy1P,KAAatvT,KAAKquT,gCACjFpqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAejL,GAAc,MAAKqT,KAAatvT,KAAKquT,+BACjFP,EAAWW,cAAgBV,EAAiBU,cAAgBT,EAAiBS,gBAC7ExqT,EAAM0iT,uBAAuB3mT,KAAK0uT,wBAAyBzI,KAAsC1lJ,SAC7FutJ,EAAWW,eACXxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe4G,GAAe,MAAKwB,KAAatvT,KAAK0uT,gCAEtFX,EAAiBU,eACjBxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe6G,GAAqB,MAAKuB,KAAatvT,KAAK0uT,gCAE5FV,EAAiBS,eACjBxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe8G,GAAqB,MAAKsB,KAAatvT,KAAK0uT,iCAGhGT,GAAiBQ,eACjBxqT,EAAM0iT,uBAAuB3mT,KAAK+uT,6BAA8B9I,KAAsC/pI,SACtGj4K,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe+G,IAAqB,MAAKjuT,KAAK0uT,8BAE5E1uT,IACX,CACAolI,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClC,OAAIplI,KAAKkuT,QACL7oL,EAAoBkqL,QAAUvvT,KAAKkuT,MAAM7hT,IAEtCg5H,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC9+J,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC3Ct9B,EAAoBkqL,UACpBvvT,KAAKkuT,MAAQ5vM,EAAMkxM,aAAanqL,EAAoBkqL,SAE5D,+GC9KG,MAAME,WAA6B1J,KAKtClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UAIrCxmT,KAAK0vT,2BAA4B,EACjC1vT,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsC96C,QACpEnrQ,KAAKm1R,eAAe,MAAO8wB,KAAsC5lJ,QACjErgK,KAAKksR,QAAQ,GAAGm/B,2CAA2CpF,KAAsC5lJ,OAC7F4lJ,KAAsC96C,OACtC86C,KAAsC1lJ,QACtC0lJ,KAAsCxkJ,QAC9C,CAKA97B,eACI,MAAO,sBACX,CAIA,SAAI9rE,GACA,OAAO75D,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CAIA,OAAIo5B,GACA,OAAO3vT,KAAKu2R,SAAS,EACzB,CAKAmE,WAAWz2R,GACPA,EAAMsiT,qBAAqB,kBAC3BtiT,EAAMsiT,qBAAqB,YAC3BtiT,EAAMsiT,qBAAqB,sBAC3BtiT,EAAMsiT,qBAAqB,qBAC3BtiT,EAAMsiT,qBAAqB,qBAC3BtiT,EAAMsiT,qBAAqB,6BAC3BtiT,EAAMsiT,qBAAqB,4BAC3BtiT,EAAMsiT,qBAAqB,6BAC3BtiT,EAAMsiT,qBAAqB,oBAC3BtiT,EAAMsiT,qBAAqB,0BAC3BtiT,EAAMsiT,qBAAqB,mBAC3BvmT,KAAK4sR,uBAAuB3oR,EAAMuyM,eACtC,CACMo2E,uBAAuBp2E,GAAgB,IAAAt2M,EAAAF,KAAA,SAAAG,KAAA,YACzCD,EAAK+nT,cAAe,EACG,IAAnBzxG,QACM7+L,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,OACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,gBAIE1uK,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,UAGRnmL,EAAK+nT,cAAe,EACpB/nT,EAAKgoT,wBAAwBlnJ,gBAAgB9gK,EAAM,EAjBV,EAkB7C,CACA6zL,QAAQpyB,EAAMklJ,EAAcx2H,GACxB,QAAIA,EAAQu/H,0BAA4B/I,EAAagJ,+BAC5ChJ,EAAagJ,6BAA6B97H,UAKvD,CACAnuD,eAAe+7B,EAAMklJ,EAAcx2H,GAC3BA,EAAQu/H,0BAA4B/I,EAAagJ,8BACjDhJ,EAAagJ,6BAA6BjqL,eAAeyqD,EAEjE,CACApiJ,KAAKlyB,EAAQ8qS,EAAcllJ,GAClBA,GAGAklJ,EAAagJ,8BAGlBhJ,EAAagJ,6BAA6B5hR,KAAKlyB,EACnD,CACAowQ,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAElBA,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,MAExCiE,EAAM2iT,WAAWkJ,eAAe7xS,KAAKje,MAErCiE,EAAM2iT,WAAWgB,eAAe3pS,KAAKje,MAErCiE,EAAMm0M,SAASn6L,KAAK,kBACpBha,EAAMm0M,SAASn6L,KAAK,YACpBha,EAAMm0M,SAASn6L,KAAK,sBACpBha,EAAMm0M,SAASn6L,KAAK,qBACpBha,EAAMm0M,SAASn6L,KAAK,qBACpBha,EAAMm0M,SAASn6L,KAAK,6BACpBha,EAAMm0M,SAASn6L,KAAK,4BACpBha,EAAMm0M,SAASn6L,KAAK,6BACpBha,EAAMm0M,SAASn6L,KAAK,oBACpBha,EAAMm0M,SAASn6L,KAAK,0BACpBha,EAAMm0M,SAASn6L,KAAK,mBAEpB,MAAM47C,EAAQ75D,KAAK65D,MACb16B,EAASn/B,KAAKu2R,SAAS,GACvBkwB,EAAY,KAAIzmT,KAAKuG,OACrBwpT,EAAwC,IAAzB9rT,EAAMuyM,eAAiD,OAAS,GACrFvyM,SAAMyiT,yBAAyB,kBAAmBD,GAClDxiT,EAAMyiT,yBAAyB,6BAA8BD,GAC7DxiT,EAAMyiT,yBAAyB,2BAA4BD,GACvD5sP,EAAMwyN,gBAAgB6P,cAElBj4R,EAAMgjT,mBADNptP,EAAMwyN,eAAej6Q,OAAS6zS,KAAsC96C,QAAUtxM,EAAMwyN,eAAej6Q,OAAS6zS,KAAsCxkJ,QACtH,GAAEx9J,EAAMijT,eAAe/nR,QAAa06B,EAAMmtP,4BAG1C,GAAE/iT,EAAMijT,eAAe/nR,YAAiBl7B,EAAM8iT,WAAWltP,EAAMmtP,kCAE/F/iT,EAAMgjT,mBAAsB,sCACxBjnT,KAAK0vT,4BACLzrT,EAAMgjT,mBAAsB,GAAE9nR,EAAO6nR,gCAAgC/iT,EAAM8iT,wBAAwBgJ,KAAgBl2P,EAAMmtP,gCAAgCntP,EAAMmtP,gCAEnK/iT,EAAMgjT,mBAAsB,UAC5BhjT,EAAMgjT,mBAAsB,2BACxBjnT,KAAK0vT,4BACLzrT,EAAMgjT,mBAAsB,GAAE9nR,EAAO6nR,gCAAgC/iT,EAAM8iT,wBAAwBgJ,KAAgBl2P,EAAMmtP,gCAAgCntP,EAAMmtP,gCAEnK/iT,EAAMgjT,mBAAsB,GAAE9nR,EAAO6nR,iDAAiD7nR,EAAO6nR,6BAC7F/iT,EAAMgjT,mBAAsB,WAC5BhjT,EAAMgjT,mBAAsB,WACxBjnT,KAAK2vT,IAAIlB,eACTxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAelnT,KAAK2vT,KAAQ,MAAK3vT,KAAKm/B,OAAO6nR,kCAG/EhnT,IACX,CACAm3R,sBACI,IAAIqF,EAAa34R,MAAMszR,sBACvBqF,UAAe,GAAEx8R,KAAKq3R,iDAAiDr3R,KAAK0vT,+BACrElzB,CACX,CACAp3J,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBqqL,0BAA4B1vT,KAAK0vT,0BAC9CrqL,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC9+J,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC/C3iK,KAAK0vT,0BAA4BrqL,EAAoBqqL,4BAA6B,CACtF,GAEJ7sJ,SAAW,IACP00H,MAAuB,gCAAiC,EAAwC,aACjGk4B,GAAqBlrR,UAAW,iCAA6B,IAAM,EACtEs6H,OAAc,+BAAgC4wJ,IC7KvC,MAAMO,WAAiBjK,KAK1BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UAAU,GAC/CxmT,KAAK8rR,cAAc,SAAUm6B,KAAsCzoB,YAAY,GAC/Ex9R,KAAKmtL,OAAOk+H,2CAA2CpF,KAAsC96C,OAAS86C,KAAsCxkJ,QAAUwkJ,KAAsC1lJ,SAC5LvgK,KAAK8rR,cAAc,UAAWm6B,KAAsCxkJ,SAAS,GAC7EzhK,KAAK8rR,cAAc,QAASm6B,KAAsCxlJ,QAAQ,GAC1EzgK,KAAKm1R,eAAe,MAAO8wB,KAAsC9xS,OAAQ6xS,KAAyBQ,SAAU,IAAIlB,GAAwC,MAAOtlT,KAAM,EAAqDgwT,GAAU,aACpOhwT,KAAKm1R,eAAe,OAAQ8wB,KAAsC1lJ,QAASylJ,KAAyBQ,UACpGxmT,KAAKm1R,eAAe,OAAQ8wB,KAAsC1lJ,QAASylJ,KAAyBQ,UACpGxmT,KAAKm1R,eAAe,OAAQ8wB,KAAsC1lJ,QAASylJ,KAAyBQ,SACxG,CAKA7gL,eACI,MAAO,UACX,CAKA+0J,WAAWz2R,GACPA,EAAMsiT,qBAAqB,aAC3BtiT,EAAMsiT,qBAAqB,cAC3BtiT,EAAMsiT,qBAAqB,gBAC3BtiT,EAAMsiT,qBAAqB,MAC/B,CAIA,UAAIp5H,GACA,OAAOntL,KAAKksR,QAAQ,EACxB,CAIA,WAAIk/B,GACA,OAAOprT,KAAKksR,QAAQ,EACxB,CAIA,SAAIk6B,GACA,OAAOpmT,KAAKksR,QAAQ,EACxB,CAKA,OAAI+jC,GACA,OAAOjwT,KAAKu2R,SAAS,EACzB,CAIA,QAAI25B,GACA,OAAOlwT,KAAKu2R,SAAS,EACzB,CAIA,QAAI45B,GACA,OAAOnwT,KAAKu2R,SAAS,EACzB,CAIA,QAAI65B,GACA,OAAOpwT,KAAKu2R,SAAS,EACzB,CACA,UAAIlpQ,GACA,OAAO24R,KAAyBQ,QACpC,CACA,UAAIn5R,CAAO9a,GAAS,CACpB2mR,cAAc7xJ,EAAUkhL,EAA0BA,MAAM,IACpD,IAAKvoT,KAAKomT,MAAMlqB,YAAa,CACzB,IAAI4sB,EAAazhL,EAASohL,yBAA0BlzS,GAAMA,EAAE86S,eAAiB96S,EAAEwzS,cAAgBC,KAAyBC,OAASV,EAAwBhzS,IACpJuzS,IACDA,EAAa,IAAIH,KAAW,SAC5BG,EAAWI,iBAAiBF,KAAyBC,QAEzDH,EAAW3pR,OAAOg9P,UAAUn8R,KAAKomT,MACrC,CACA,IAAKpmT,KAAKmtL,OAAO+uG,YAAa,CAC1B,IAAI0vB,EAAcvkL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,WAAXnzS,EAAEhP,MAAqBgiT,EAAwBhzS,IACtHq2S,IACDA,EAAc,IAAIjD,KAAW,UAC7BiD,EAAYhD,eAAe,WAE/BgD,EAAYzsR,OAAOg9P,UAAUn8R,KAAKmtL,OACtC,CACA,IAAKntL,KAAKorT,QAAQlvB,YAAa,CAC3B,IAAI2vB,EAAexkL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,YAAXnzS,EAAEhP,MAAsBgP,EAAEnD,OAAS6zS,KAAsCxkJ,SAAW8mJ,EAAwBhzS,IACpLs2S,IACDA,EAAe,IAAIlD,KAAW,WAC9BkD,EAAajD,eAAe,YAEhCiD,EAAa1sR,OAAOg9P,UAAUn8R,KAAKorT,QACvC,CACJ,CACAxlL,eAAe+7B,EAAMklJ,EAAcx2H,GAC/B,MAAMlD,EAASntL,KAAKmtL,OACdi+H,EAAUprT,KAAKorT,QACrB,IAAIkF,EAAkBnjI,EAAO+uG,YACzB/uG,EAAOojI,mBAAmB7H,cAAgB/mJ,EAAK6uJ,sBAAsBrjI,EAAOojI,mBAAmBhqT,QAC/F+pT,GAAkB,GAEtB,IAAIG,EAAmBrF,EAAQlvB,YAC3BkvB,EAAQmF,mBAAmB7H,cAAgB/mJ,EAAK6uJ,sBAAsBpF,EAAQmF,mBAAmBhqT,QACjGkqT,GAAmB,GAGvBpgI,EAAQnkK,SAAS,WADGokS,GAAmBG,GACG,EAC9C,CACAtkC,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMkpL,EAASntL,KAAKmtL,OACdi+H,EAAUprT,KAAKorT,QACfhF,EAAQpmT,KAAKomT,MACb6J,EAAMjwT,KAAKiwT,IACXC,EAAOlwT,KAAKkwT,KACZC,EAAOnwT,KAAKmwT,KACZC,GAAOpwT,KAAKowT,KACZ1kH,GAAoC,IAAzBznM,EAAMuyM,eACjBk3B,GAAOhiC,GAAW,UAAY,OAC9Bq7G,GAAUr7G,GAAW,IAAM,GAEjC,OAAIznM,EAAMopB,SAAW24R,KAAyBQ,WAC1CviT,EAAMgjT,mBAAsB,wBACnBjnT,KAAKuG,yBACRtC,EAAMspT,iBAAiB,YAAatH,KAAsC1lJ,wBAAwB4sB,EAAO65H,iDACzG/iT,EAAMspT,iBAAiB,aAActH,KAAsC1lJ,wBAAwB6qJ,EAAQpE,iDAC3G/iT,EAAMspT,iBAAiB,eAAgBtH,KAAsC1lJ,6CAA6C6qJ,EAAQpE,8CAClIt7G,GAAW,MAAQ,UAAUukH,EAAIjJ,4BAA4Bt5E,MAAQ04E,EAAMY,kCAAkCZ,EAAMY,kCAAkCZ,EAAMY,oCAAoCt5E,yDAEjMwiF,EAAKzB,eACLxqT,EAAMgjT,mBACFhjT,EAAMijT,eAAegJ,GAChB,UAASnJ,MAAWkJ,EAAIjJ,iCAAiCiJ,EAAIjJ,iCAAiCiJ,EAAIjJ,oCAE3GmJ,EAAK1B,eACLxqT,EAAMgjT,mBACFhjT,EAAMijT,eAAeiJ,GAChB,UAASpJ,MAAWkJ,EAAIjJ,gCAAgCiJ,EAAIjJ,iCAAiCiJ,EAAIjJ,oCAE1GoJ,GAAK3B,eACLxqT,EAAMgjT,mBACFhjT,EAAMijT,eAAekJ,IAChB,UAASrJ,MAAWkJ,EAAIjJ,iCAAiCiJ,EAAIjJ,iCAAiCiJ,EAAIjJ,oCAE/G/iT,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,OAErCA,IACX,GAEJ6+J,SAAc,mBAAoBmxJ,IC9J3B,MAAMU,WAA2B3K,KAKpClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UACrCxmT,KAAK2wT,2BAA6B,GAClC3wT,KAAK4wT,6BAA+B,GACpC5wT,KAAK6wT,iBAAmB,GAExB7wT,KAAK8wT,SAAU,EAEf9wT,KAAKymM,SAAU,EAEfzmM,KAAK+wT,sBAAuB,EAE5B/wT,KAAKgxT,yBAA0B,EAC/BhxT,KAAK6rR,WAAY,EAEjB7rR,KAAK8rR,cAAc,gBAAiBm6B,KAAsCxkJ,SAAS,GACnFzhK,KAAK8rR,cAAc,cAAem6B,KAAsCxkJ,SAAS,GACjFzhK,KAAK8rR,cAAc,eAAgBm6B,KAAsCxkJ,SAAS,GAClFzhK,KAAK8rR,cAAc,KAAMm6B,KAAsC/pI,SAAS,GACxEl8K,KAAK8rR,cAAc,iBAAkBm6B,KAAsC5lJ,QAAQ,GACnFrgK,KAAK8rR,cAAc,WAAYm6B,KAAsCuB,OAAO,GAC5ExnT,KAAK8rR,cAAc,gBAAiBm6B,KAAsC1lJ,SAAS,GACnFvgK,KAAK8rR,cAAc,gBAAiBm6B,KAAsCuB,OAAO,GACjFxnT,KAAK8rR,cAAc,iBAAkBm6B,KAAsCuB,OAAO,GAClFxnT,KAAK8rR,cAAc,MAAOm6B,KAAsC9xS,QAAQ,EAAM6xS,KAAyBiL,kBAAmB,IAAI3L,GAAwC,MAAOtlT,KAAM,EAAoDgwT,GAAU,aACjPhwT,KAAK8rR,cAAc,QAASm6B,KAAsCxlJ,QAAQ,GAE1EzgK,KAAKm1R,eAAe,SAAU8wB,KAAsCxkJ,SACpEzhK,KAAKm1R,eAAe,WAAY8wB,KAAsC/pI,QAC1E,CAKAv2C,eACI,MAAO,oBACX,CAIA,iBAAIkoL,GACA,OAAO7tT,KAAKksR,QAAQ,EACxB,CAIA,eAAIglC,GACA,OAAOlxT,KAAKksR,QAAQ,EACxB,CAIA,gBAAIilC,GACA,OAAOnxT,KAAKksR,QAAQ,EACxB,CAIA,MAAIo/B,GACA,OAAOtrT,KAAKksR,QAAQ,EACxB,CAIA,kBAAIklC,GACA,OAAOpxT,KAAKksR,QAAQ,EACxB,CAIA,YAAImlC,GACA,OAAOrxT,KAAKksR,QAAQ,EACxB,CAIA,iBAAIolC,GACA,OAAOtxT,KAAKksR,QAAQ,EACxB,CAIA,iBAAIqlC,GACA,OAAOvxT,KAAKksR,QAAQ,EACxB,CAIA,kBAAIslC,GACA,OAAOxxT,KAAKksR,QAAQ,EACxB,CAKA,OAAI+jC,GACA,OAAOjwT,KAAKksR,QAAQ,EACxB,CAIA,SAAIk6B,GACA,OAAOpmT,KAAKksR,QAAQ,GACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CAIA,YAAIk7B,GACA,OAAOzxT,KAAKu2R,SAAS,EACzB,CACAmE,WAAWz2R,GACPjE,KAAK4sR,uBAAuB3oR,EAAMuyM,eACtC,CACMo2E,uBAAuBp2E,GAAgB,IAAAt2M,EAAAF,KAAA,SAAAG,KAAA,YACzCD,EAAK+nT,cAAe,EACG,IAAnBzxG,QACM7+L,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,OACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,gBAIE1uK,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,OACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,UAGRnmL,EAAK+nT,cAAe,EACpB/nT,EAAKgoT,wBAAwBlnJ,gBAAgB9gK,EAAM,EAjBV,EAkB7C,CACA0lI,eAAe+7B,EAAMklJ,EAAcx2H,GAC/B,MACMqhI,EAAc1xT,KAAKsxT,cAAcp1B,cAAiBl8R,KAAK+wT,sBADnC/wT,KAAKoxT,eAAe/kC,eAAeslC,YAAYl6E,cACoCz3O,KAAK+wT,sBAAwB/wT,KAAKwxT,eAAet1B,aAC9J7rG,EAAQnkK,SAAS,QAAQ,GACzBmkK,EAAQnkK,SAAS,WAAYwlS,GAAa,GAC1CrhI,EAAQnkK,SAAS,eAAgB26R,EAAaliL,WAAWstC,sBAAsB,GAC/Eoe,EAAQnkK,SAAS,oBAAqBlsB,KAAK+wT,sBAAsB,GACjE1gI,EAAQnkK,SAAS,wBAAyBlsB,KAAKgxT,yBAAyB,EAC5E,CACA/iR,KAAKlyB,EAAQ8qS,EAAcllJ,GACnBklJ,EAAaliL,WAAWitL,wBACxB71S,EAAO+lJ,UAAU9hK,KAAK2wT,2BAA4B3wT,KAAK8wT,QAAU,GAAM,EAAM9wT,KAAKymM,QAAU,GAAM,GAGlG1qL,EAAO+lJ,UAAU9hK,KAAK2wT,2BAA4B3wT,KAAK8wT,SAAU,EAAO,EAAK9wT,KAAKymM,SAAU,EAAO,GAEnG9kC,IACA5lJ,EAAOgmJ,SAAS/hK,KAAK4wT,6BAA8BjvJ,EAAKhrB,iBAAiBiuB,cAAgB,GAAI,EAAK,GAC9F5kK,KAAKgxT,0BAA4BhxT,KAAKomT,MAAMlqB,aAE5CngR,EAAOk/L,UAAUj7M,KAAK6wT,iBAAkBlvJ,EAAKhrB,kBAGzD,CACAuiJ,cAAc7xJ,EAAUkhL,EAA0BA,MAAM,IACpD,IAAKvoT,KAAKsrT,GAAGpvB,YAAa,CACtB,IAAI4vB,EAAUzkL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,OAAXnzS,EAAEhP,MAAiBgiT,EAAwBhzS,IAC9Gu2S,IACDA,EAAU,IAAInD,KAAW,MACzBmD,EAAQlD,kBAEZkD,EAAQ3sR,OAAOg9P,UAAUn8R,KAAKsrT,GAClC,CACA,IAAKtrT,KAAKqxT,SAASn1B,YAAa,CAC5B,MAAM21B,EAAgB,IAAIlJ,KAAW,YACrCkJ,EAAct/S,MAAQ,EACtBs/S,EAAc1yR,OAAOg9P,UAAUn8R,KAAKqxT,SACxC,CACJ,CACAllC,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMwiT,EAAY,KAAIzmT,KAAKuG,OACrB+kT,EAAKtrT,KAAKsrT,GACVuC,EAAgB7tT,KAAK6tT,cACrBqD,EAAclxT,KAAKkxT,YACnBC,EAAenxT,KAAKmxT,aACpBzlH,EAAoC,IAAzBznM,EAAMuyM,eACjBk3B,GAAOhiC,EAAW,UAAY,OAC9Bq7G,GAAUr7G,EAAW,IAAM,GAC3BomH,GAAgBpmH,EAAW,YAAc,GAC/CznM,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,MACxCiE,EAAM2iT,WAAWgB,eAAe3pS,KAAKje,MACrCA,KAAK2wT,2BAA6B1sT,EAAMorT,mBAAmB,yBAC3DprT,EAAM0iT,uBAAuB3mT,KAAK2wT,2BAA4B1K,KAAsC/pI,SACpGl8K,KAAK4wT,6BAA+B3sT,EAAMorT,mBAAmB,2BAC7DprT,EAAM0iT,uBAAuB3mT,KAAK4wT,6BAA8B3K,KAAsCuB,OACtGxnT,KAAK6wT,iBAAmB5sT,EAAMorT,mBAAmB,4BACjDprT,EAAM0iT,uBAAuB3mT,KAAK6wT,iBAAkB5K,KAAsCxlJ,QAC1F,IAAIsxJ,GAAoB,KACpB/xT,KAAKoxT,eAAe/kC,iBACpB0lC,GAAoB/xT,KAAKoxT,eAAe/kC,eAAeslC,YAAYl6E,aAEvE,MAAMi6E,GAAc1xT,KAAKsxT,cAAcp1B,cAAiBl8R,KAAK+wT,sBAAwBgB,KAAwB/xT,KAAK+wT,sBAAwB/wT,KAAKwxT,eAAet1B,aACxJ81B,GAA2BhyT,KAAKuxT,cAAcU,wBAE9CjyT,KAAKuxT,cAAchB,kBAAkB2B,WACjCjuT,EAAMkuT,WAAWnyT,KAAKuxT,cAAchB,kBAAkBh+S,OACtDvS,KAAKuxT,cAAcvK,uBAHvB,OAIAoL,GAAsBpyT,KAAKqxT,SAASY,yBAA2BjyT,KAAKqxT,SAASd,kBAAkB2B,WAC9F,gDAA+CjuT,EAAMkuT,WAAWnyT,KAAKqxT,SAASd,kBAAkBh+S,SAChG,gDAA+CvS,KAAKqxT,SAASrK,yBAC/Dt7G,GACDznM,EAAMouT,eAAe,cAAe,mDAExC,MAAMC,GAAuB,CAAE3nN,OAAQ,sBAAuB1lG,QAASksT,EAAaj1B,YAAc,mBAAqB,mBAGjH+zB,GAAMjwT,KAAKiwT,IACbA,GAAI/zB,YACJj4R,EAAMgjT,mBAAsB,8CAE1Bv7G,EAAW,MAAQ,iBAAiBukH,GAAIjJ,4DAIrCmK,EAAaj1B,cAClBj4R,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,YAAatH,KAAsC1lJ,wBAAwB2wJ,EAAYlK,iCAC5I/iT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,aAActH,KAAsC1lJ,wBAAwB4wJ,EAAanK,iCAC9I/iT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,eAAgBtH,KAAsC1lJ,6CAA6CmrC,EAAW,YAAc,KAAK1rM,KAAK4wT,kCAC3L3sT,EAAMgjT,mBAAsB,GAAEv7G,EAAW,MAAQ,iBAAiBgiC,8CAEtE,IAAIy8E,GAAiB,CAACmI,GAhBH,CAAE3nN,OAAQ,sBAAuB1lG,QAAS,IAC3B,CAAE0lG,OAAQ,8BAA+B1lG,QAAS,KAgBhFymM,IACAy+G,GAAelsS,KAAK,CAAE0sF,OAAQ,yBAA0B1lG,QAAS,KACjEklT,GAAelsS,KAAK,CAAE0sF,OAAQ,yBAA0B1lG,QAAS,KACjEklT,GAAelsS,KAAK,CAAE0sF,OAAQ,yBAA0B1lG,QAAS,MAErEhB,EAAMyiT,yBAAyB,4BAA6BD,EAAU,CAClE0D,eAAgBA,KAYpBlmT,EAAMyiT,yBAAyB,wBAAyBD,EAAU,CAC9D0D,eAAgB,CACZ,CAAEx/M,OAAQ,mGAAoG1lG,QAAS,IACvH,CAAE0lG,OAAQ,kCAAmC1lG,QAAS,IACtD,CACI0lG,OAZO+gG,EACb,mGACA,gGAWMzmM,QAhBWymM,EACjB,+IACA,wIAgBE,CAAE/gG,OATS+gG,EAAW,wDAA0D,yDAS1DzmM,QAZPymM,EACjB,oEACA,uEAWE,CAAE/gG,OAAQ,sCAAuC1lG,QAAS,cAGlE,MACMstT,GAAsBb,IAAgBK,GAAkE,GAD3FrmH,EAAY,iBAAgBqmH,OAAsBA,GAAqB,YAAc,aAAYA,SACWzG,EAAGtE,yCAAlEhnT,KAAKoxT,eAAepK,uBAC9EwL,GAAavuT,EAAM8jT,qBAAqB,cAC9C9jT,SAAMgjT,mBAAqBhjT,EAAMspT,iBAAiBiF,GAAYvM,KAAsC1lJ,SAAY,UAASwmJ,YACzHoD,GAAiB,CACb,CAAEx/M,OAAQ,IAAIg3F,OAAQ,wBAAuB+J,EAAW,0BAA4B,gBAAiB,KAAMzmM,QAAU,GAAEstT,MACvH,CACI5nN,OAAQ,yCACR1lG,QAAU,GAAEhB,EAAMspT,iBAAiB,eAAgBtH,KAAsCxlJ,4BAA4BzgK,KAAKomT,MAAMlqB,YAAcl8R,KAAKomT,MAAMY,uBAAyBhnT,KAAK6wT,sBAE3L,CACIlmN,OAAQ,IAAIg3F,OAAQ,4CAA2C+J,EAAW,0BAA4B,gCAAgCA,EAAW,YAAc,oBAAqB,KACpLzmM,QAAU,sBAAqBstT,qBAEnC,CACI5nN,OAAQ,qFACR1lG,QAAU,4FAA2FymM,EAC/FgmH,IAAe1xT,KAAK+wT,qBACf,GAAEgB,OAAsBA,GAAqB,YAC9C,oBACJL,IAAe1xT,KAAK+wT,qBAChBgB,GACA,kBAEd,CACIpnN,OAAQ,0DACR1lG,QAAU,yDAAwDysT,GAAc1xT,KAAKwxT,eAAexK,uBAAyB,SAEjI,CAAEr8M,OAAQ,gBAAiB1lG,QAASmtT,IACpC,CAAEznN,OAAQ,gBAAiB1lG,QAAS+sT,IACpC,CAAErnN,OAAQ,YAAa1lG,QAASutT,GAAa,OAC7C,CAAE7nN,OAAQ,iCAAkC1lG,QAAU,GAAEyoO,sBAA0B8kF,IAClF,CAAE7nN,OAAQ,WAAY1lG,QAASisT,EAAYlK,uBAAyB,QACpE,CAAEr8M,OAAQ,kBAAmB1lG,QAASysT,GAAc1xT,KAAKsxT,cAActK,uBAA0B,OAAMD,UACvGuL,IAEA5mH,GACAy+G,GAAelsS,KAAK,CAAE0sF,OAAQ,0BAA2B1lG,QAASqmT,EAAGtE,yBACrEmD,GAAelsS,KAAK,CAAE0sF,OAAQ,oBAAqB1lG,QAAS4oT,EAAc7G,uBAAyB,SACnGmD,GAAelsS,KAAK,CAAE0sF,OAAQ,gCAAiC1lG,QAAS6sT,GAAgB9xT,KAAK2wT,6BAC7FxG,GAAelsS,KAAK,CAAE0sF,OAAQ,wEAAyE1lG,QAAU,sBAGjHklT,GAAelsS,KAAK,CAAE0sF,OAAQ,WAAY1lG,QAASqmT,EAAGtE,yBACtDmD,GAAelsS,KAAK,CAAE0sF,OAAQ,cAAe1lG,QAAS4oT,EAAc7G,uBAAyB,SAC7FmD,GAAelsS,KAAK,CAAE0sF,OAAQ,uBAAwB1lG,QAAS6sT,GAAgB9xT,KAAK2wT,8BAExF1sT,EAAMgjT,mBAAqBhjT,EAAMimT,qBAAqB,eAAgBzD,EAAU,CAC5E0D,eAAgBA,KAEpBlmT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAelnT,KAAKm/B,QAAW,UAAS4nR,MAAWyL,aAC7ExyT,IACX,CACAm3R,sBACI,IAAIqF,EAAa34R,MAAMszR,sBAAyB,GAAEn3R,KAAKq3R,+BAA+Br3R,KAAK8wT,aAC3Ft0B,UAAe,GAAEx8R,KAAKq3R,+BAA+Br3R,KAAKymM,aAC1D+1F,GAAe,GAAEx8R,KAAKq3R,4CAA4Cr3R,KAAK+wT,0BACvEv0B,GAAe,GAAEx8R,KAAKq3R,+CAA+Cr3R,KAAKgxT,6BACnEx0B,CACX,CACAp3J,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoByrL,QAAU9wT,KAAK8wT,QACnCzrL,EAAoBohE,QAAUzmM,KAAKymM,QACnCphE,EAAoB0rL,qBAAuB/wT,KAAK+wT,qBAChD1rL,EAAoB2rL,wBAA0BhxT,KAAKgxT,wBAC5C3rL,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC9+J,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC/C3iK,KAAK8wT,QAAUzrL,EAAoByrL,QACnC9wT,KAAKymM,QAAUphE,EAAoBohE,QACnCzmM,KAAK+wT,uBAAyB1rL,EAAoB0rL,qBAClD/wT,KAAKgxT,0BAA4B3rL,EAAoB2rL,uBACzD,GAEJnuJ,SAAW,IACP00H,MAAuB,gBAAiB,EAAwC,aAAc,CAAEQ,UAAU,EAAM06B,UAAW,CAAE3vP,QAAQ,MACtI4tP,GAAmBnsR,UAAW,eAAW,IAAM,EAClDs+H,OAAW,IACP00H,MAAuB,gBAAiB,EAAwC,aAAc,CAAEQ,UAAU,EAAM06B,UAAW,CAAE3vP,QAAQ,MACtI4tP,GAAmBnsR,UAAW,eAAW,IAAM,EAClDs+H,OAAW,IACP00H,MAAuB,yBAA0B,OAAwC10R,EAAW,CAAEk1R,UAAU,EAAM06B,UAAW,CAAE3vP,QAAQ,MAC5I4tP,GAAmBnsR,UAAW,4BAAwB,IAAM,EAC/Ds+H,OAAW,IACP00H,MAAuB,oBAAqB,EAAwC,aAAc,CAAEQ,UAAU,EAAM06B,UAAW,CAAE3vP,QAAQ,MAC1I4tP,GAAmBnsR,UAAW,+BAA2B,IAAM,EAClEs6H,OAAc,6BAA8B6xJ,KChU5C7xJ,SAAc,uBAvCP,MAAM6zJ,WAAqB3M,KAK9BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UAAU,GAC/CxmT,KAAK8rR,cAAc,QAASm6B,KAAsCuB,OAAO,GACzExnT,KAAK8rR,cAAc,SAAUm6B,KAAsCuB,OAAO,EAC9E,CAKA7hL,eACI,MAAO,cACX,CAIA,SAAIpzH,GACA,OAAOvS,KAAKksR,QAAQ,EACxB,CAIA,UAAIymC,GACA,OAAO3yT,KAAKksR,QAAQ,EACxB,CACAC,YAAYloR,GAGR,GAFAJ,MAAMsoR,YAAYloR,GAClBA,EAAM2iT,WAAWgM,MAAMC,kBAAmB,EACrC7yT,KAAK2yT,OAAOz2B,aAAgBl8R,KAAKuS,MAAM2pR,YAG5Cj4R,SAAMgjT,mBAAsB,OAAMjnT,KAAKuS,MAAMy0S,4BAA4BhnT,KAAK2yT,OAAO3L,yCAC9EhnT,IACX,KCFJ6+J,SAAc,2BAnCP,MAAMi0J,WAAyB/M,KAKlClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UACrCxmT,KAAKm1R,eAAe,SAAU8wB,KAAsCuB,MAAOxB,KAAyBQ,SACxG,CAKA7gL,eACI,MAAO,kBACX,CAIA,UAAIxmG,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAER,GADAJ,MAAMsoR,YAAYloR,GACdA,EAAMopB,SAAW24R,KAAyBr8E,OAE1C,KAAM,0DAGV1lO,SAAMgjT,mBACFhjT,EAAMijT,eAFKlnT,KAAKu2R,SAAS,IAGpB,MAAKtyR,EAAM8uT,iBAAiB,MAAO,MAAgC,IAAzB9uT,EAAMuyM,eAAiD,iBAAmB,mCACtHx2M,IACX,KCyBJ6+J,SAAc,0BA1DP,MAAMm0J,WAAwBjN,KAKjClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UACrCxmT,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAAY,GAC9Ex9R,KAAKm1R,eAAe,KAAM8wB,KAAsCtuB,cAChE33R,KAAKm1R,eAAe,KAAM8wB,KAAsCtuB,cAChE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GACtDlsR,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,EAC1D,CAKAvmJ,eACI,MAAO,iBACX,CAIA,SAAIx8E,GACA,OAAOnpD,KAAKksR,QAAQ,EACxB,CAIA,MAAI+mC,GACA,OAAOjzT,KAAKu2R,SAAS,EACzB,CAIA,MAAI28B,GACA,OAAOlzT,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMgvT,EAAKjzT,KAAKu2R,SAAS,GACnB28B,EAAKlzT,KAAKu2R,SAAS,GACzBtyR,EAAMouT,eAAe,cAAe,mDACpC,IAAIc,EAAO,OACPC,EAAO,OACX,OAA6B,IAAzBnvT,EAAMuyM,iBACN28G,EAAO,OACPC,EAAO,QAEPH,EAAGxE,eACHxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe+L,GAAO,MAAKE,KAAQnzT,KAAKmpD,MAAM69P,8BAE/EkM,EAAGzE,eACHxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAegM,GAAO,MAAKE,KAAQpzT,KAAKmpD,MAAM69P,8BAE5EhnT,IACX,KC6BJ6+J,SAAc,yBArFP,MAAMw0J,WAAuBtN,KAKhClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UACrCxmT,KAAKm1R,eAAe,KAAM8wB,KAAsC/pI,QAAS8pI,KAAyBQ,UAClGxmT,KAAKm1R,eAAe,MAAO8wB,KAAsC1lJ,QAASylJ,KAAyBQ,UACnGxmT,KAAKm1R,eAAe,OAAQ8wB,KAAsCxkJ,QAASukJ,KAAyBQ,UACpGxmT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyBQ,UAC/FxmT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyBQ,UAC/FxmT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyBQ,UAC/FxmT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyBQ,SACnG,CAKA7gL,eACI,MAAO,gBACX,CAIA,MAAI2tL,GACA,OAAOtzT,KAAKu2R,SAAS,EACzB,CAIA,OAAIg9B,GACA,OAAOvzT,KAAKu2R,SAAS,EACzB,CAIA,QAAIi9B,GACA,OAAOxzT,KAAKu2R,SAAS,EACzB,CAIA,KAAI3jR,GACA,OAAO5S,KAAKu2R,SAAS,EACzB,CAIA,KAAI/zQ,GACA,OAAOxiB,KAAKu2R,SAAS,EACzB,CAIA,KAAIrsN,GACA,OAAOlqE,KAAKu2R,SAAS,EACzB,CAIA,UAAIp3P,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CAEAk9B,aAAaxvT,GACT,IAAI04D,EAAO,GACX,MAAM+2P,EAAiC,IAAzBzvT,EAAMuyM,eAAiD,0BAA4B,eACjG,UAAWr3K,KAAUn/B,KAAKu2R,SAClBp3P,EAAOsvR,eACP9xP,GAAS,GAAE14D,EAAMijT,eAAe/nR,QAAau0R,KAASv0R,EAAO54B,WAGrE,OAAOo2D,CACX,CACAwvN,YAAYloR,GAER,GADAJ,MAAMsoR,YAAYloR,GACdA,EAAMopB,SAAW24R,KAAyBr8E,OAE1C,KAAM,wDAEV1lO,SAAMgjT,mBAAqBjnT,KAAKyzT,aAAaxvT,GACtCjE,IACX,KClBJ6+J,SAAc,0BAjEP,MAAM80J,WAAwB5N,KAKjClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UACrCxmT,KAAKm1R,eAAe,KAAM8wB,KAAsC/pI,QAAS8pI,KAAyBQ,UAClGxmT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyBQ,UAC/FxmT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyBQ,SACnG,CAKA7gL,eACI,MAAO,iBACX,CAIA,MAAI2tL,GACA,OAAOtzT,KAAKu2R,SAAS,EACzB,CAIA,KAAI3jR,GACA,OAAO5S,KAAKu2R,SAAS,EACzB,CAIA,KAAI/zQ,GACA,OAAOxiB,KAAKu2R,SAAS,EACzB,CACAtoP,KAAKlyB,GACD,MAAM2uH,EAAS1qI,KAAKq4I,OAAO83B,YAC3Bp0J,EAAO+lJ,UAAU9hK,KAAK4zT,SAAUlpL,EAAOgB,iBAAkBhB,EAAOiB,kBACpE,CAEA8nL,aAAaxvT,EAAO4vT,GAChB,IAAIl3P,EAAO,GACX,UAAWx9B,KAAUn/B,KAAKu2R,SAClBp3P,EAAOsvR,eACP9xP,GAAS,GAAE14D,EAAMijT,eAAe/nR,QAAa00R,KAAW10R,EAAO54B,WAGvE,OAAOo2D,CACX,CACAwvN,YAAYloR,GAGR,GAFAJ,MAAMsoR,YAAYloR,GAClBjE,KAAKq4I,OAASp0I,EAAM2iT,WAAWtoM,MAC3Br6G,EAAMopB,SAAW24R,KAAyBr8E,OAE1C,KAAM,yDAMV1lO,OAJAA,EAAM2iT,WAAWgB,eAAe3pS,KAAKje,MACrCA,KAAK4zT,SAAW3vT,EAAM8jT,qBAAqB,cAC3C9jT,EAAM0iT,uBAAuB3mT,KAAK4zT,SAAU3N,KAAsC/pI,SAElFj4K,EAAMgjT,mBAAqBjnT,KAAKyzT,aAAaxvT,GADL,IAAzBA,EAAMuyM,eAAiD,YAAc,IACvBx2M,KAAK4zT,UAC3D5zT,IACX,KC+BJ6+J,SAAc,2BA5FP,MAAMi1J,WAAyB/N,KAKlClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UACrCxmT,KAAK8rR,cAAc,SAAUm6B,KAAsCzoB,YACnEx9R,KAAK8rR,cAAc,sBAAuBm6B,KAAsCxlJ,QAChFzgK,KAAKm1R,eAAe,SAAU8wB,KAAsC/pI,SACpEl8K,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,OAC/DxnT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,OAC/DxnT,KAAK8P,OAAO,GAAGu7S,2CAA2CpF,KAAsC5lJ,OAAS4lJ,KAAsC1lJ,QAAU0lJ,KAAsCxkJ,QACnM,CAKA97B,eACI,MAAO,kBACX,CAIA,UAAI03C,GACA,OAAOr9K,KAAKksR,QAAQ,EACxB,CAIA,uBAAI6nC,GACA,OAAO/zT,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CAIA,KAAI3jR,GACA,OAAO5S,KAAKu2R,SAAS,EACzB,CAIA,KAAI/zQ,GACA,OAAOxiB,KAAKu2R,SAAS,EACzB,CACA2C,cAAc7xJ,EAAUkhL,EAA0BA,MAAM,IACpD,IAAKvoT,KAAK+zT,oBAAoB73B,YAAa,CACvC,IAAI83B,EAA2B3sL,EAASohL,yBAA0BlzS,GAAMA,EAAEwzS,cAAgBC,KAAyBiL,qBAAuB1L,EAAwBhzS,IAC7Jy+S,IACDA,EAA2B,IAAIrL,KAAW,uBAC1CqL,EAAyB9K,iBAAiBF,KAAyBiL,sBAEvED,EAAyB70R,OAAOg9P,UAAUn8R,KAAK+zT,oBACnD,CACJ,CACA5nC,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMo5K,EAASr9K,KAAKq9K,OAEpB,IAAKA,EAAOgvG,eACR,OAEJ,MAAM6nC,EAJsBl0T,KAAK+zT,oBAImB/M,uBAC9CmN,EAAmBlwT,EAAM8jT,qBAAqB,mBACpD,OAAQ1qI,EAAOgvG,eAAej6Q,MAC1B,KAAK6zS,KAAsC1lJ,QACvCt8J,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB4G,EAAkBlO,KAAsCxkJ,cAAcyyJ,WAAiCjwT,EAAM8iT,WAAW1pI,EAAO2pI,kCACpL,MACJ,KAAKf,KAAsCxkJ,QACvCx9J,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB4G,EAAkBlO,KAAsCxkJ,cAAcyyJ,OAA6B72I,EAAO2pI,4BAGvK/iT,SAAMgjT,mBAAsB,GAAEkN,WAA0BlwT,EAAM8iT,WAAWoN,UAAyBA,QAAuBA,SACzHlwT,EAAMgjT,mBAAsB,GAAEkN,WAA0BlwT,EAAM8iT,WAAWoN,oBAAmClwT,EAAM8iT,sBAAsBoN,SACpIn0T,KAAKm/B,OAAOsvR,eACZxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAelnT,KAAKm/B,QAAW,MAAKg1R,WAErEn0T,KAAK4S,EAAE67S,eACPxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAelnT,KAAK4S,GAAM,MAAKuhT,UAEhEn0T,KAAKwiB,EAAEisS,eACPxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAelnT,KAAKwiB,GAAM,MAAK2xS,UAE7Dn0T,IACX,KCiBJ6+J,SAAc,qBA3GP,MAAMu1J,WAAmBrO,KAK5BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UACrCxmT,KAAK8rR,cAAc,QAASm6B,KAAsC/pI,SAClEl8K,KAAK8rR,cAAc,WAAYm6B,KAAsCuB,OACrExnT,KAAK8rR,cAAc,SAAUm6B,KAAsC/pI,SACnEl8K,KAAK8rR,cAAc,SAAUm6B,KAAsC/pI,SACnEl8K,KAAKm1R,eAAe,SAAU8wB,KAAsC/pI,SACpEl8K,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,OAC/DxnT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MACnE,CAKA7hL,eACI,MAAO,YACX,CAIA,SAAIx8E,GACA,OAAOnpD,KAAKksR,QAAQ,EACxB,CAIA,YAAImlC,GACA,OAAOrxT,KAAKksR,QAAQ,EACxB,CAIA,UAAImoC,GACA,OAAOr0T,KAAKksR,QAAQ,EACxB,CAIA,UAAIjuM,GACA,OAAOj+E,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CAIA,KAAI3jR,GACA,OAAO5S,KAAKu2R,SAAS,EACzB,CAIA,KAAI/zQ,GACA,OAAOxiB,KAAKu2R,SAAS,EACzB,CACA2C,gBACI,IAAKl5R,KAAKq0T,OAAOn4B,YAAa,CAC1B,MAAMo4B,EAAc,IAAI3L,KAAW,UACnC2L,EAAY/hT,MAAQ,IAAI2pK,KAAQ,GAAK,IACrCo4I,EAAYn1R,OAAOg9P,UAAUn8R,KAAKq0T,OACtC,CACA,IAAKr0T,KAAKqxT,SAASn1B,YAAa,CAC5B,MAAM21B,EAAgB,IAAIlJ,KAAW,YACrCkJ,EAAct/S,MAAQ,EACtBs/S,EAAc1yR,OAAOg9P,UAAUn8R,KAAKqxT,SACxC,CACA,IAAKrxT,KAAKi+E,OAAOi+M,YAAa,CAC1B,MAAMq4B,EAAc,IAAI5L,KAAW,UACnC4L,EAAYhiT,MAAQ,IAAI2pK,KAAQ,EAAG,GACnCq4I,EAAYp1R,OAAOg9P,UAAUn8R,KAAKi+E,OACtC,CACJ,CACAkuM,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMuwT,EAAYvwT,EAAM8jT,qBAAqB,SACvC0M,EAAYxwT,EAAM8jT,qBAAqB,SACvC2M,EAAQzwT,EAAM8jT,qBAAqB,KACnC4M,EAAQ1wT,EAAM8jT,qBAAqB,KACnC6M,EAAa3wT,EAAM8jT,qBAAqB,UAC9C9jT,SAAMgjT,mBAAsB,yBACtBhjT,EAAMspT,iBAAiBiH,EAAWvO,KAAsC/pI,cAAcl8K,KAAKmpD,MAAM69P,4BAA4BhnT,KAAKq0T,OAAOrN,wCACzI/iT,EAAMspT,iBAAiBkH,EAAWxO,KAAsCuB,YAAYxnT,KAAKqxT,SAASrK,mCAAmCwN,oBACrIvwT,EAAMspT,iBAAiBmH,EAAOzO,KAAsCuB,gBAAgBiN,QAAgBD,aAAqBC,QAAgBD,qBACzIvwT,EAAMspT,iBAAiBoH,EAAO1O,KAAsCuB,gBAAgBiN,QAAgBD,aAAqBC,QAAgBD,qBACzIvwT,EAAMspT,iBAAiBqH,EAAY3O,KAAsC/pI,mBAAmBw4I,OAAW10T,KAAKq0T,OAAOrN,8BAA8BhnT,KAAKi+E,OAAO+oO,6BAA6B2N,OAAW30T,KAAKq0T,OAAOrN,8BAA8BhnT,KAAKi+E,OAAO+oO,uCAE7PhnT,KAAKm/B,OAAOsvR,eACZxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAelnT,KAAKm/B,QAAW,MAAKy1R,QAErE50T,KAAK4S,EAAE67S,eACPxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAelnT,KAAK4S,GAAM,MAAKgiT,UAEhE50T,KAAKwiB,EAAEisS,eACPxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAelnT,KAAKwiB,GAAM,MAAKoyS,UAE7D50T,IACX,ICxGG,MAAM60T,WAA4B9O,KAKrClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UAKrCxmT,KAAK80T,sBAAuB,EAI5B90T,KAAK+0T,8BAA+B,EAIpC/0T,KAAKg1T,+BAAgC,EACrCh1T,KAAK8rR,cAAc,QAASm6B,KAAsCuB,OAClExnT,KAAK8rR,cAAc,gBAAiBm6B,KAAsC1lJ,SAC1EvgK,KAAK8rR,cAAc,cAAem6B,KAAsC1lJ,SACxEvgK,KAAK8rR,cAAc,eAAgBm6B,KAAsCzoB,YAAY,GACrFx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCxkJ,SACpEzhK,KAAKm1R,eAAe,MAAO8wB,KAAsC1lJ,SACjEvgK,KAAKksR,QAAQ,GAAGm/B,2CAA2CpF,KAAsC5lJ,OAAS4lJ,KAAsC1lJ,QAAU0lJ,KAAsCxkJ,QACpM,CAKA97B,eACI,MAAO,qBACX,CAIA,SAAIx8E,GACA,OAAOnpD,KAAKksR,QAAQ,EACxB,CAIA,iBAAI2hC,GACA,OAAO7tT,KAAKksR,QAAQ,EACxB,CAIA,eAAIglC,GACA,OAAOlxT,KAAKksR,QAAQ,EACxB,CAIA,gBAAIilC,GACA,OAAOnxT,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CAIA,OAAIg9B,GACA,OAAOvzT,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMk7B,EAASn/B,KAAKu2R,SAAS,GACvB7qF,EAAoC,IAAzBznM,EAAMuyM,eACjBy+G,EAAUhxT,EAAM8iT,SACjB/mT,KAAK80T,uBAAyB90T,KAAKmxT,aAAaj1B,aACjDt7H,KAAOt7I,MAAO,oDAAmDtlB,KAAKuG,eAc1E,IAAI2uT,EAAkB,2HAEDl1T,KAAKg1T,8BAAgC,sBAAwB,2CAC5Dh1T,KAAK+0T,6BAA+B,qBAAuB,8BAf/D/0T,KAAK80T,qBACjB,GACC,uoBAIS90T,KAAK80T,qBACf,GACC,sKAoBP,OAAIppH,EACAwpH,EAAiBjxT,EAAMkxT,iBAAiBD,GAGxCjxT,EAAMouT,eAAe,cAAe,mDAExCpuT,EAAMmxT,cAAc,iBAAkBF,EAAgB,qBACtDjxT,EAAMgjT,mBACFhjT,EAAMijT,eAAe/nR,GAChB,qBAAoBn/B,KAAKmpD,MAAM69P,2BAA2BhnT,KAAK6tT,cAAc7G,2BAA2BhnT,KAAKmxT,aAAaj1B,YAAcl8R,KAAKmxT,aAAanK,uBAA0B,OAAMiO,gBAAsBj1T,KAAKkxT,YAAYlK,6BACtOhnT,KAAKuzT,IAAI9E,eACTxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAelnT,KAAKuzT,KAAQ,MAAKvzT,KAAKm/B,OAAO6nR,iCAE3EhnT,IACX,CACAm3R,sBACI,IAAIqF,EAAa34R,MAAMszR,sBACvBqF,UAAe,GAAEx8R,KAAKq3R,4CAA4Cr3R,KAAK80T,0BACvEt4B,GAAe,GAAEx8R,KAAKq3R,oDAAoDr3R,KAAK+0T,kCAC/Ev4B,GAAe,GAAEx8R,KAAKq3R,qDAAqDr3R,KAAKg1T,mCACzEx4B,CACX,CACAp3J,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoByvL,qBAAuB90T,KAAK80T,qBAChDzvL,EAAoB0vL,6BAA+B/0T,KAAK+0T,6BACxD1vL,EAAoB2vL,8BAAgCh1T,KAAKg1T,8BAClD3vL,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC9+J,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC/C3iK,KAAK80T,qBAAuBzvL,EAAoByvL,qBAChD90T,KAAK+0T,6BAA+B1vL,EAAoB0vL,6BACxD/0T,KAAKg1T,8BAAgC3vL,EAAoB2vL,6BAC7D,GAEJnyJ,SAAW,IACP00H,MAAuB,mDAAoD,EAAwC,aAAc,CAAEk7B,UAAW,CAAE3vP,QAAQ,MACzJ+xP,GAAoBtwR,UAAW,4BAAwB,IAAM,EAChEs+H,OAAW,IACP00H,MAAuB,gDAAiD,EAAwC,aAAc,CAAEk7B,UAAW,CAAE3vP,QAAQ,MACtJ+xP,GAAoBtwR,UAAW,oCAAgC,IAAM,EACxEs+H,OAAW,IACP00H,MAAuB,iDAAkD,EAAwC,aAAc,CAAEk7B,UAAW,CAAE3vP,QAAQ,MACvJ+xP,GAAoBtwR,UAAW,qCAAiC,IAAM,EACzEs6H,OAAc,8BAA+Bg2J,KC/F7Ch2J,SAAc,yBA3DP,MAAMw2J,WAAuBtP,KAKhClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UAAU,GAC/CxmT,KAAK8rR,cAAc,QAASm6B,KAAsCuB,OAAO,GACzExnT,KAAK8rR,cAAc,WAAYm6B,KAAsCxkJ,SAAS,GAC9EzhK,KAAK8rR,cAAc,iBAAkBm6B,KAAsCxlJ,QAAQ,EACvF,CAKA96B,eACI,MAAO,gBACX,CAIA,SAAIlB,GACA,OAAOzkI,KAAKksR,QAAQ,EACxB,CAIA,YAAIopC,GACA,OAAOt1T,KAAKksR,QAAQ,EACxB,CAIA,kBAAIqpC,GACA,OAAOv1T,KAAKksR,QAAQ,EACxB,CACAC,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMuxT,EAAqC,IAAzBvxT,EAAMuyM,eAAiD,eAAiB,4BAC1F,OAAIx2M,KAAKykI,MAAMy3J,YACXj4R,EAAMgjT,mBAAsB,GAAEuO,OAAex1T,KAAKykI,MAAMuiL,4BAEnDhnT,KAAKs1T,SAASp5B,aAAel8R,KAAKu1T,eAAer5B,YACtDj4R,EAAMgjT,mBAAsB,qBACtBhjT,EAAMspT,iBAAiB,IAAKtH,KAAsCxkJ,cAAczhK,KAAKu1T,eAAevO,4BAA4BhnT,KAAKs1T,SAAStO,4CAC9I/iT,EAAMspT,iBAAiB,IAAKtH,KAAsCuB,oJAIlEgO,6BAKN50J,KAAOC,KAAK,4GAET7gK,IACX,KCsEJ6+J,SAAc,yBAhIP,MAAM42J,WAAuB1P,KAKhClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UACrCxmT,KAAK8rR,cAAc,gBAAiBm6B,KAAsCxkJ,SAAS,GACnFzhK,KAAK8rR,cAAc,iBAAkBm6B,KAAsCxlJ,QAAQ,GACnFzgK,KAAK8rR,cAAc,cAAem6B,KAAsCzoB,YAAY,GACpFx9R,KAAKm1R,eAAe,QAAS8wB,KAAsC1lJ,SACnEvgK,KAAKkxT,YAAY7F,2CAA2CpF,KAAsC5lJ,OAAS4lJ,KAAsC1lJ,QAAU0lJ,KAAsCxkJ,QACrM,CAKA97B,eACI,MAAO,gBACX,CAKA+0J,WAAWz2R,GACPA,EAAMsiT,qBAAqB,gBAC3BtiT,EAAMsiT,qBAAqB,eAC3BtiT,EAAMsiT,qBAAqB,kBAC3BtiT,EAAMsiT,qBAAqB,iBAC3BtiT,EAAMsiT,qBAAqB,WAC3BtiT,EAAMsiT,qBAAqB,YAC3BtiT,EAAMsiT,qBAAqB,OAC3BvmT,KAAK4sR,uBAAuB3oR,EAAMuyM,eACtC,CACMo2E,uBAAuBp2E,GAAgB,IAAAt2M,EAAAF,KAAA,SAAAG,KAAA,YACzCD,EAAK+nT,cAAe,EACG,IAAnBzxG,QACM7+L,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,eAIE1uK,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,UAGRnmL,EAAK+nT,cAAe,EACpB/nT,EAAKgoT,wBAAwBlnJ,gBAAgB9gK,EAAM,EAjBV,EAkB7C,CAIA,iBAAI2tT,GACA,OAAO7tT,KAAKksR,QAAQ,EACxB,CAIA,kBAAIqpC,GACA,OAAOv1T,KAAKksR,QAAQ,EACxB,CAIA,eAAIglC,GACA,OAAOlxT,KAAKksR,QAAQ,EACxB,CAIA,SAAIznJ,GACA,OAAOzkI,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMwiT,EAAY,KAAIzmT,KAAKuG,OACrBmlM,EAAoC,IAAzBznM,EAAMuyM,eACvBvyM,EAAM0iT,uBAAuB,iBAAkBV,KAAsC1lJ,SACrFt8J,EAAM0iT,uBAAuB,cAAeV,KAAsC1lJ,SAClFt8J,EAAM0iT,uBAAuB,gBAAiBV,KAAsC/pI,SACpFj4K,EAAMyiT,yBAAyB,mBAAoBD,GACnDxiT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,WAAYtH,KAAsCxkJ,cAAczhK,KAAK6tT,cAAc7G,4BACxI/iT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,eAAgBtH,KAAsC1lJ,cAC3Gt8J,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,iBAAkBtH,KAAsCuB,kBAC7GvjT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,MAAOtH,KAAsCuB,YAC9FxnT,KAAKkxT,YAAYh1B,cACjBj4R,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,WAAYtH,KAAsC1lJ,cAAcvgK,KAAKkxT,YAAYlK,gCACtI/iT,EAAMgjT,mBAAqBhjT,EAAMimT,qBAAqB,4BAA6BzD,IAEvFxiT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,UAAWtH,KAAsCxkJ,cAAczhK,KAAKu1T,eAAevO,uCACxI/iT,EAAMgjT,mBAAqBhjT,EAAMimT,qBAAqB,wBAAyBzD,EAAU,CACrF0D,eAAgB,CACZ,CACIx/M,OAAQ,eACR1lG,QAAS,WAEb,CACI0lG,OAAQ,0BACR1lG,QAAS,cAIrBhB,EAAMgjT,mBAAqBhjT,EAAMimT,qBAAqB,oBAAqBzD,EAAU,CACjF0D,eAAgB,CACZ,CACIx/M,OAAQ,WACR1lG,QAAS,OAIrB,MAAMk6B,EAASusK,EAAW,4BAA8B,eACxDznM,SAAMgjT,mBAAsB,0GAGd9nR,4EAEAA,iGAIdl7B,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAelnT,KAAKykI,gBAAgBxgI,EAAM8iT,8BACvE/mT,IACX,KCsDJ6+J,SAAc,6BAnLP,MAAM62J,WAA2B3P,KAKpClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBQ,UAAU,GAC/CxmT,KAAK8rR,cAAc,YAAam6B,KAAsCuB,OAAO,GAC7ExnT,KAAK8rR,cAAc,cAAem6B,KAAsCuB,OAAO,GAC/ExnT,KAAK8rR,cAAc,gBAAiBm6B,KAAsCzoB,YAAY,GACtFx9R,KAAK8rR,cAAc,gBAAiBm6B,KAAsCzoB,YAAY,GACtFx9R,KAAK8rR,cAAc,aAAcm6B,KAAsCzoB,YAAY,GACnFx9R,KAAK8rR,cAAc,cAAem6B,KAAsCzoB,YAAY,GACpFx9R,KAAK8rR,cAAc,eAAgBm6B,KAAsCzoB,YAAY,GACrFx9R,KAAK8P,OAAO,GAAGu7S,2CAA2CpF,KAAsC1lJ,QAAU0lJ,KAAsCxkJ,SAChJzhK,KAAK8P,OAAO,GAAGu7S,2CAA2CpF,KAAsC1lJ,QAAU0lJ,KAAsCxkJ,SAChJzhK,KAAK8P,OAAO,GAAGu7S,2CAA2CpF,KAAsC1lJ,QAAU0lJ,KAAsCxkJ,SAChJzhK,KAAK8P,OAAO,GAAGu7S,2CAA2CpF,KAAsC1lJ,QAAU0lJ,KAAsCxkJ,SAChJzhK,KAAK8P,OAAO,GAAGu7S,2CAA2CpF,KAAsC1lJ,QAC5F0lJ,KAAsCxkJ,QACtCwkJ,KAAsC5lJ,OACtC4lJ,KAAsC96C,OAC9C,CAKAxlI,eACI,MAAO,oBACX,CAIA,aAAIgwL,GACA,OAAO31T,KAAKksR,QAAQ,EACxB,CAIA,eAAI0pC,GACA,OAAO51T,KAAKksR,QAAQ,EACxB,CAIA,iBAAI2hC,GACA,OAAO7tT,KAAKksR,QAAQ,EACxB,CAIA,iBAAI2pC,GACA,OAAO71T,KAAKksR,QAAQ,EACxB,CAIA,cAAI4pC,GACA,OAAO91T,KAAKksR,QAAQ,EACxB,CAIA,eAAIglC,GACA,OAAOlxT,KAAKksR,QAAQ,EACxB,CAIA,gBAAI6pC,GACA,OAAO/1T,KAAKksR,QAAQ,EACxB,CACA8pC,aAAatqH,EAAU/wL,GACnB,OAAO+wL,EAAY,2BAA0B/wL,IAAW,eAAcA,IAC1E,CACAwxQ,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAM4pT,EAAgB7tT,KAAK6tT,cACrBgI,EAAgB71T,KAAK61T,cACrBC,EAAa91T,KAAK81T,WAClB5E,EAAclxT,KAAKkxT,YACnByE,EAAY31T,KAAK21T,UACjBI,EAAe/1T,KAAK+1T,aACpBH,GAAc51T,KAAK41T,YACzB3xT,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,MACxC,MAAMymT,GAAY,KAAIzmT,KAAKuG,OACrBgnO,GAAOtpO,EAAMgyT,eAAehQ,KAAsCxkJ,SAClEiqC,GAAoC,IAAzBznM,EAAMuyM,eACvBvyM,SAAMyiT,yBAAyB,kBAAmBD,IAClDxiT,EAAMgjT,mBAAsB,2BAC5BhjT,EAAMgjT,mBAAqBv7G,GAAY,uDAAyD,sCAChGznM,EAAMgjT,mBAAsB,2BAExBhjT,EAAMgjT,mBADN0O,EAAUtpC,eACkB,oCAAmC9+C,MAAQooF,EAAU3O,8CAIrD,oCAAmCz5E,8BAEnEtpO,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,uCAExBhjT,EAAMgjT,mBADN2O,GAAYvpC,eACgB,wDAAuDupC,GAAY5O,8CAInE,gFAEhC/iT,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,8BAExBhjT,EAAMgjT,mBADN4G,EAAcxhC,eACc,sCAAqC9+C,MAAQsgF,EAAc7G,+BAA+B6G,EAAcxhC,eAAej6Q,OAAS6zS,KAAsCxkJ,QAAUosJ,EAAc7G,uBAAyB,KAAO,cAI9N,uCAAsCz5E,8BAEtEtpO,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,oCAExBhjT,EAAMgjT,mBADN4O,EAAcxpC,eACc,qDAAoDwpC,EAAc7O,+BAA+B6O,EAAcxpC,eAAej6Q,OAAS6zS,KAAsCxkJ,QAAUo0J,EAAc7O,uBAAyB,KAAO,cAIrO,6EAEhC/iT,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,4BAExBhjT,EAAMgjT,mBADN6O,EAAWzpC,eACiB,qCAAoC9+C,MAAQuoF,EAAW9O,+BAA+B8O,EAAWzpC,eAAej6Q,OAAS6zS,KAAsCxkJ,QAAUq0J,EAAW9O,uBAAyB,KAAO,cAIpN,qCAAoCz5E,8BAEpEtpO,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,kCAExBhjT,EAAMgjT,mBADNiK,EAAY7kC,eACgB,mDAAkD6kC,EAAYlK,+BAA+BkK,EAAY7kC,eAAej6Q,OAAS6zS,KAAsCxkJ,QAAUyvJ,EAAYlK,uBAAyB,KAAO,cAI7N,2EAEhC/iT,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,kCAExBhjT,EAAMgjT,mBADN8O,EAAa1pC,eACe,2CAA0C9+C,MAAQwoF,EAAa/O,+BAA+B+O,EAAa1pC,eAAej6Q,OAAS6zS,KAAsCxkJ,QAAUs0J,EAAa/O,uBAAyB,KAAO,cAIhO,2CAA0Cz5E,8BAE1EtpO,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,8BAC5BhjT,EAAMgjT,mBAAsB,GAAEjnT,KAAKg2T,aAAatqH,GAAU,wBAC1DznM,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,8BAC5BhjT,EAAMgjT,mBAAsB,GAAEjnT,KAAKg2T,aAAatqH,GAAU,wBAC1DznM,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,8BAC5BhjT,EAAMgjT,mBAAsB,GAAEjnT,KAAKg2T,aAAatqH,GAAU,wBAC1DznM,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,8BAC5BhjT,EAAMgjT,mBAAsB,GAAEjnT,KAAKg2T,aAAatqH,GAAU,wBAC1DznM,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,8BAC5BhjT,EAAMgjT,mBAAsB,GAAEjnT,KAAKg2T,aAAatqH,GAAU,wBAC1DznM,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,8BAC5BhjT,EAAMgjT,mBAAsB,GAAEjnT,KAAKg2T,aAAatqH,GAAU,wBAC1DznM,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,8BAC5BhjT,EAAMgjT,mBAAsB,GAAEjnT,KAAKg2T,aAAatqH,GAAU,wBAC1DznM,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,aACrBjnT,IACX,0JC3BJ6+J,SAAc,mBApJP,MAAMq3J,WAAiBnQ,KAK1BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBiL,mBAAmB,GAExDjxT,KAAK8rR,cAAc,gBAAiBm6B,KAAsCxkJ,SAAS,EAAOukJ,KAAyBr8E,QACnH3pO,KAAK8rR,cAAc,OAAQm6B,KAAsCxlJ,QAAQ,EAAOulJ,KAAyBr8E,QAEzG3pO,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAAY,EAAOwoB,KAAyBQ,UAC9GxmT,KAAK8rR,cAAc,WAAYm6B,KAAsCzoB,YAAY,EAAOwoB,KAAyBQ,UACjHxmT,KAAKm1R,eAAe,SAAU8wB,KAAsC5lJ,OAAQ2lJ,KAAyBQ,UACrGxmT,KAAKmpD,MAAMkiQ,2CAA2CpF,KAAsC5lJ,OAAS4lJ,KAAsC1lJ,QAAU0lJ,KAAsC96C,QAC3LnrQ,KAAKm2T,SAAS9K,2CAA2CpF,KAAsC5lJ,OAAS4lJ,KAAsC1lJ,QAAU0lJ,KAAsC96C,OAClM,CAKAxlI,eACI,MAAO,UACX,CAIA,iBAAIkoL,GACA,OAAO7tT,KAAKksR,QAAQ,EACxB,CAIA,QAAIn9M,GACA,OAAO/uE,KAAKksR,QAAQ,EACxB,CAIA,SAAI/iO,GACA,OAAOnpD,KAAKksR,QAAQ,EACxB,CAIA,YAAIiqC,GACA,OAAOn2T,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACAmE,WAAWz2R,GACPjE,KAAK4sR,uBAAuB3oR,EAAMuyM,eACtC,CACMo2E,uBAAuBp2E,GAAgB,IAAAt2M,EAAAF,KAAA,SAAAG,KAAA,YACzCD,EAAK+nT,cAAe,EACG,IAAnBzxG,QACM7+L,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,cAGA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QAEVnmL,EAAK+nT,cAAe,EACpB/nT,EAAKgoT,wBAAwBlnJ,gBAAgB9gK,EAAM,EATV,EAU7C,CACAg5R,cAAc7xJ,EAAUkhL,EAA0BA,MAAM,IACpD,IAAKvoT,KAAK+uE,KAAKmtN,YAAa,CACxB,IAAIk6B,EAAY/uL,EAASohL,yBAA0BlzS,GAAMA,EAAEwzS,cAAgBC,KAAyBqN,MAAQ9N,EAAwBhzS,IAC/H6gT,IACDA,EAAY,IAAIzN,KAAW,QAC3ByN,EAAUlN,iBAAiBF,KAAyBqN,OAExDD,EAAUj3R,OAAOg9P,UAAUn8R,KAAK+uE,KACpC,CACA,IAAK/uE,KAAKm2T,SAASj6B,YAAa,CAC5B,IAAIo6B,EAAgBjvL,EAASohL,yBAA0BlzS,GAAMA,EAAEwzS,cAAgBC,KAAyBuN,UAAYhO,EAAwBhzS,IACvI+gT,IACDA,EAAgB,IAAI3N,KAAW,gBAAY9lT,EAAWojT,KAAsC5lJ,QAC5Fi2J,EAAcpN,iBAAiBF,KAAyBuN,WAE5DD,EAAcn3R,OAAOg9P,UAAUn8R,KAAKm2T,SACxC,CACJ,CACAvwL,eAAe+7B,EAAMklJ,EAAcx2H,GAC/B,MAAM/xE,EAAQqjD,EAAKh9B,WACnB0rD,EAAQnkK,SAAS,MAAO26R,EAAa2P,eAAcC,OAAY90J,EAAMrjD,GACzE,CACArwE,KAAKlyB,EAAQ8qS,EAAcllJ,GACvB,IAAKA,EACD,OAEJ,MAAMrjD,EAAQqjD,EAAKh9B,WACnB5oH,EAAO6/L,UAAU57M,KAAK02T,eAAgBp4M,EAAMq4M,QAASr4M,EAAMs4M,SAAUt4M,EAAMu4M,OAAQv4M,EAAMw4M,WAC7F,CACA3qC,YAAYloR,GAER,GADAJ,MAAMsoR,YAAYloR,GACdA,EAAMopB,SAAW24R,KAAyBQ,SAAU,CACpDviT,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,MACxCiE,EAAM2iT,WAAWgB,eAAe3pS,KAAKje,MACrC,IAAImqT,EAAiB,GACjB4M,EAAU,GACVC,EAAU,GACe,IAAzB/yT,EAAMuyM,gBACN2zG,EAAiB,CACb,CAAEx/M,OAAQ,uBAAwB1lG,QAAS,2DAC3C,CAAE0lG,OAAQ,sBAAuB1lG,QAAS,aAC1C,CAAE0lG,OAAQ,+BAAgC1lG,QAAS,iBAEvD8xT,EAAU,kBACVC,EAAU,aAGV7M,EAAiB,CAAC,CAAEx/M,OAAQ,0BAA2B1lG,QAAS,2DAEpEhB,EAAMyiT,yBAAyB,yBAA2B,KAAI1mT,KAAKuG,OAAQ,CACvEujT,gBAAgB,EAChBC,gBAAgB,EAChBC,aAAa,EACbG,eAAgBA,IAEpB,MAAM8M,EAAsBhzT,EAAM8jT,qBAAqB,OACjDluP,EAAQ75D,KAAKmpD,MACbgtQ,EAAWn2T,KAAKm2T,SACtBn2T,KAAK02T,eAAiBzyT,EAAM8jT,qBAAqB,iBACjD,MAAM5oR,GAASn/B,KAAKu2R,SAAS,GAC7BtyR,EAAM0iT,uBAAuB3mT,KAAK02T,eAAgBzQ,KAAsCxkJ,SACxFx9J,EAAMgjT,mBAAsB,eAC5BhjT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB0J,EAAqBhR,KAAsCuB,0BAA0BuP,IAAU/2T,KAAKk3T,qBAAqBF,IAAUh3T,KAAK02T,qBAC7LzyT,EAAMgjT,mBACFhjT,EAAMijT,eAAe/nR,IAChB,MAAK83R,OAAyBp9P,EAAMmtP,uCAAuCiQ,QAA0Bd,EAASnP,gCACvH/iT,EAAMgjT,mBAAsB,UAAShjT,EAAMijT,eAAe/nR,UAAc06B,EAAMmtP,gCAC9E/iT,EAAMgjT,mBAAsB,UAChC,KACK,CACD,MAAMqO,EAAWt1T,KAAK6tT,cAChB9+O,EAAO/uE,KAAK+uE,KAClB/uE,KAAKk3T,iBAAmBjzT,EAAM8jT,qBAAqB,gBACnD9jT,EAAMqjT,uBAAuBtnT,KAAKk3T,iBAAkBjR,KAAsC1lJ,SAE1Ft8J,EAAMgjT,mBAAsB,GADY,IAAzBhjT,EAAMuyM,eAAiD,iBAAmB,KAClDx2M,KAAKk3T,uBAAuBnoP,EAAKi4O,4BAA4BsO,EAAStO,gCACjH,CACA,OAAOhnT,IACX,IC/IG,MAAMm3T,WAAmBpR,KAC5B,yCAAOqR,CAAmCz5S,EAAO05S,GAC7C,MAAMC,EAAO35S,EACb,OAAI25S,EAAKzJ,cAAc3xB,aACnBo7B,EAAKC,0BAA4BD,EAAKC,yBACtC32J,KAAOt7I,MAAM,wEACN,IAEXgyS,EAAKE,cACE,EACX,CACAA,aACIx3T,KAAKy3T,kBAAkBz3T,KAAKu3T,yBAA2BvR,KAAyBQ,SAAWR,KAAyBiL,mBACpHjxT,KAAKg8R,eAAe,iBAAiB3uQ,OAASrtB,KAAKu3T,yBAA2BvR,KAAyBQ,SAAWR,KAAyBr8E,MAC/I,CAKA9pO,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBiL,mBACrCjxT,KAAK03T,SAAW,EAEhB13T,KAAKu3T,0BAA2B,EAChCv3T,KAAK6rR,WAAY,EACjB7rR,KAAK8rR,cAAc,gBAAiBm6B,KAAsCxkJ,SAAS,EAAOukJ,KAAyBr8E,QACnH3pO,KAAK8rR,cAAc,cAAem6B,KAAsCxkJ,SAAS,EAAOukJ,KAAyBQ,UACjHxmT,KAAK8rR,cAAc,iBAAkBm6B,KAAsC1lJ,SAAS,EAAOylJ,KAAyBQ,UACpHxmT,KAAK8rR,cAAc,aAAcm6B,KAAsCuB,OAAO,EAAMxB,KAAyBQ,UAC7GxmT,KAAK8rR,cAAc,aAAcm6B,KAAsCuB,OAAO,EAAMxB,KAAyBQ,UAC7GxmT,KAAK8rR,cAAc,eAAgBm6B,KAAsC5lJ,QAAQ,EAAM2lJ,KAAyBQ,UAChHxmT,KAAK8rR,cAAc,gBAAiBm6B,KAAsC5lJ,QAAQ,EAAM2lJ,KAAyBQ,UACjHxmT,KAAK8rR,cAAc,OAAQm6B,KAAsCxlJ,QAAQ,GACzEzgK,KAAKm1R,eAAe,gBAAiB8wB,KAAsC5lJ,OAAQ2lJ,KAAyBQ,UAC5GxmT,KAAKm1R,eAAe,iBAAkB8wB,KAAsC5lJ,OAAQ2lJ,KAAyBQ,UAC7GxmT,KAAKm1R,eAAe,SAAU8wB,KAAsCuB,MAAOxB,KAAyBQ,SACxG,CAKA7gL,eACI,MAAO,YACX,CAIA,iBAAIkoL,GACA,OAAO7tT,KAAKksR,QAAQ,EACxB,CAIA,eAAIglC,GACA,OAAOlxT,KAAKksR,QAAQ,EACxB,CAIA,kBAAIyrC,GACA,OAAO33T,KAAKksR,QAAQ,EACxB,CAIA,cAAI0rC,GACA,OAAO53T,KAAKksR,QAAQ,EACxB,CAIA,cAAI2rC,GACA,OAAO73T,KAAKksR,QAAQ,EACxB,CAIA,gBAAI90I,GACA,OAAOp3I,KAAKksR,QAAQ,EACxB,CAIA,iBAAI50I,GACA,OAAOt3I,KAAKksR,QAAQ,EACxB,CAIA,QAAIn9M,GACA,OAAO/uE,KAAKksR,QAAQ,EACxB,CAIA,iBAAI4rC,GACA,OAAO93T,KAAKu2R,SAAS,EACzB,CAIA,kBAAIwhC,GACA,OAAO/3T,KAAKu2R,SAAS,EACzB,CAIA,UAAIyhC,GACA,OAAOh4T,KAAKu2R,SAAS,EACzB,CACAmE,WAAWz2R,GACPjE,KAAK4sR,uBAAuB3oR,EAAMuyM,eACtC,CACMo2E,uBAAuBp2E,GAAgB,IAAAt2M,EAAAF,KAAA,SAAAG,KAAA,YACzCD,EAAK+nT,cAAe,EACG,IAAnBzxG,QACM7+L,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,OACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,cAIE1uK,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,UAGRnmL,EAAK+nT,cAAe,EACpB/nT,EAAKgoT,wBAAwBlnJ,gBAAgB9gK,EAAM,EA3BV,EA4B7C,CACAg5R,cAAc7xJ,EAAUkhL,EAA0BA,MAAM,IACpD,IAAKvoT,KAAK23T,eAAez7B,YAAa,CAClC,IAAI+7B,EAAsB5wL,EAASohL,yBAA0BlzS,GAAMA,EAAEwzS,cAAgBC,KAAyBkP,gBAAkB3P,EAAwBhzS,IACnJ0iT,IACDA,EAAsB,IAAItP,KAAW,kBACrCsP,EAAoB/O,iBAAiBF,KAAyBkP,iBAElED,EAAoB94R,OAAOg9P,UAAUn8R,KAAK23T,eAC9C,CACJ,CACA/xL,eAAe+7B,EAAMklJ,EAAcx2H,GAC/B,IAAKA,EAAQ6+H,gBACT,OAEJ,MAAM5wM,EAAQqjD,EAAKh9B,WACnB,GAAK3kI,KAAKkuT,MAGL,CACD,MAAMjqT,EAAQ,CACVk0T,aAAa,EACbC,aAAa,EACbC,cAAc,EACdC,eAAe,EACfC,iBAAiB,IAErBC,SAAuBl6M,EAAOqjD,EAAM3hK,KAAKkuT,MAAOluT,KAAK03T,SAAUrnI,GAAS,EAAMpsL,GAC1EA,EAAMm0T,aACN/nI,EAAQ0K,SAEhB,MAdI09H,SAAwBn6M,EAAOqjD,EAAM0uB,GAAS,EAAMw2H,EAAa6R,sBAezE,CACAC,yBAAyB10T,EAAO4iT,EAAcx2H,EAASuoI,GACnD,QAASC,EAAa,EAAGA,EAAahS,EAAa6R,uBAC1CroI,EAAQ,QAAUwoI,GAD+CA,IAAc,CAIpF,MAAMC,EAAwB70T,EAAMm0M,SAAStzK,QAAQ,aAAe+zR,IAAe,GACnFE,SAAmCF,EAAY50T,EAAMm0M,SAAUn0M,EAAMq0M,SAAUjoB,EAAQ,wBAA0BwoI,GAAaD,EAAgBE,EAClJ,CACJ,CACA7qR,KAAKlyB,EAAQ8qS,EAAcllJ,GACvB,IAAKA,EACD,OAEJ,MAAMrjD,EAAQqjD,EAAKh9B,WACd3kI,KAAKkuT,SAIN8K,OAAUh5T,KAAKkuT,MAAOluT,KAAK03T,SAAUp5M,EAAOviG,GAAQ,IAAI,EAHxDk9S,OAAW36M,EAAOqjD,EAAM5lJ,GAAQ,EAAM8qS,EAAa6R,sBAK3D,CACAQ,kBAAkBj1T,GACd,MAAMqxT,EAAWt1T,KAAK6tT,cAChBpH,EAAY,KAAIzmT,KAAKuG,OAEtBvG,KAAKkuT,OASNluT,KAAK03T,eAA+C70T,IAAnCoB,EAAMk1T,SAASC,aAAgCn1T,EAAMk1T,SAASC,cAAkB,GAAM,EACvGn1T,EAAMk1T,SAASC,aAAkBp5T,KAAK03T,SACtCzzT,EAAMyiT,yBAAyBziT,EAAMo1T,sBAAwB,wBAA0B,6BAA8B5S,EAAU,CAC3H0D,eAAgB,CAAC,CAAEx/M,OAAQ,OAAQ1lG,QAASjF,KAAK03T,SAASxuT,cAC3DlJ,KAAK03T,SAASxuT,cAXjBjF,EAAMyiT,yBAAyBziT,EAAMo1T,sBAAwB,wBAA0B,6BAA8B5S,EAAU,CAC3HkH,UAAW,0BAEf3tT,KAAK03T,SAAW,EAChBzzT,EAAM2iT,WAAW0S,qBAAqBr7S,KAAKje,OAU/C,MAAMu5T,EAAsB,KAAOjE,EAAStO,uBACxC/iT,EAAMqjT,uBAAuBiS,EAAqBtT,KAAsCxkJ,WACxFx9J,EAAMgjT,oBAA+C,IAAzBhjT,EAAMuyM,eAAiD,iBAAmB,IAAO,GAAE+iH,OAAyBjE,EAAStO,6BAEjJhnT,KAAKkuT,MACLjqT,EAAMgjT,mBAAqBhjT,EAAMimT,qBAAqB,gBAAiBzD,EAAU,CAC7E0D,eAAgB,CACZ,CAAEx/M,OAAQ,OAAQ1lG,QAASjF,KAAK03T,SAASxuT,YACzC,CAAEyhG,OAAQ,YAAa1lG,QAASqwT,EAAStO,4BAKjD/iT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,WAAYtH,KAAsCxkJ,cAAc6zJ,EAAStO,4BAC1HhnT,KAAK+uE,KAAKmtN,cACVj4R,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,OAAQtH,KAAsCxlJ,aAAazgK,KAAK+uE,KAAKi4O,6BAE9H/iT,EAAMgjT,mBAAqBhjT,EAAMimT,qBAAqB,gBAAiBzD,EAAU,CAC7EkH,UAAW,0BAGvB,CACA6L,sBAAsBv1T,GAClB,MAAMwiT,EAAY,KAAIzmT,KAAKuG,OACtBvG,KAAKkuT,MAQNjqT,EAAMyiT,yBAAyBziT,EAAMo1T,sBAAwB,sBAAwB,2BAA4B5S,EAAU,CACvH0D,eAAgB,CAAC,CAAEx/M,OAAQ,OAAQ1lG,QAASjF,KAAK03T,SAASxuT,cAC3DlJ,KAAK03T,SAASxuT,YARjBjF,EAAMyiT,yBAAyBziT,EAAMo1T,sBAAwB,sBAAwB,2BAA4B5S,EAAU,CACvHkH,UAAW,wBACX8L,iBAAkBz5T,KAAKu3T,yBAA2B,gBAAa10T,GAQ3E,CACAspR,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMy1T,EAAkC,IAAzBz1T,EAAMuyM,eACfmjH,EAAOD,EAAS,IAAM,GACtBjT,EAAY,KAAIzmT,KAAKuG,OAC3B,GAAItC,EAAMopB,SAAW24R,KAAyBQ,SAG1C,YADAxmT,KAAKk5T,kBAAkBj1T,GAGvBjE,KAAKu3T,0BACLtzT,EAAM2iT,WAAW0S,qBAAqBr7S,KAAKje,MAG/C,MAAM45T,EAAWF,EAAS,kBAAoB,GAC9Cz1T,EAAM2iT,WAAW+C,qBAAqB1rS,KAAKje,MAC3CiE,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,MACxC,MAAMs1T,EAAWt1T,KAAK6tT,cACtB,IAAIgM,EAAuBvE,EAAStO,uBAChChnT,KAAKu3T,0BACLsC,EAAuB51T,EAAM8jT,qBAAqB,kBAClD9jT,EAAMmxT,cAAc,uBAAyB,GAAEnxT,EAAMspT,iBAAiBsM,EAAsB5T,KAAsC1lJ,cAAekmJ,GACjJxiT,EAAMgjT,mBAAsB,GAAE4S,OAA0BvE,EAAStO,gCACjE/iT,EAAMgjT,mBAAqBhjT,EAAMimT,qBAAqB,gBAAiBzD,EAAU,CAC7EkH,UAAW,wBACX8L,iBAAkBz5T,KAAKu3T,yBAA4B,YAAWjC,EAAStO,8BAA2BnkT,KAItGg3T,EAAuBD,EAAW,KAAOC,EAAuB,OAEpE51T,EAAMyiT,yBAAyB,kBAAmBD,GAClD,IAAIqT,GAAgB,CAAEnvN,OAAQ,cAAe1lG,QAAS40T,GAyBtD,GAxBIH,IACAI,GAAgB,CAAEnvN,OAAQ,8BAA+B1lG,QAAS40T,IAEtE51T,EAAMyiT,yBAAyB,0BAA2BD,EAAU,CAChE0D,eAAgB,CAAC2P,MAErB71T,EAAMyiT,yBAAyB,2BAA4BD,EAAU,CACjE0D,eAAgB,CAAC2P,MAErB95T,KAAKw5T,sBAAsBv1T,GAEL,IAAlBjE,KAAK03T,WACDzzT,EAAM81T,sBAAsB,oBAC5B91T,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,iBAAkBtH,KAAsC1lJ,wBAAwBvgK,KAAK23T,eAAe3Q,4BAA4B6S,SAEzL51T,EAAMgjT,mBAAqByS,EAAU,4BAA8B,uBACnEz1T,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,SAAUtH,KAAsCuB,iBACrGvjT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,YAAatH,KAAsCuB,iBACxGvjT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,YAAatH,KAAsCuB,iBACxGvjT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,aAActH,KAAsCuB,YAAYxnT,KAAK43T,WAAW17B,YAAcl8R,KAAK43T,WAAW5Q,uBAAyB,WAAWhnT,KAAK63T,WAAW37B,YAAcl8R,KAAK63T,WAAW7Q,uBAAyB,cAC9Q/iT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,cAAetH,KAAsC1lJ,kBAAkBo5J,mBAC5H11T,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,eAAgBtH,KAAsC1lJ,mBAAmBo5J,mBAC9H11T,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB,UAAWtH,KAAsC1lJ,cAAcvgK,KAAKkxT,YAAYlK,iCAErIhnT,KAAKkuT,MAAO,CACZ,IAAI4L,GAAgB,CAAEnvN,OAAQ,cAAe1lG,QAAS40T,EAAuB,QACzEH,IACAI,GAAgB,CAAEnvN,OAAQ,8BAA+B1lG,QAAS40T,EAAuB,SAE7F51T,EAAMgjT,mBAAqBhjT,EAAMimT,qBAAqB,gBAAiBzD,EAAU,CAC7E0D,eAAgB,CAAC,CAAEx/M,OAAQ,OAAQ1lG,QAASjF,KAAK03T,SAASxuT,YAAc4wT,KAEhF,KACK,CACD,IAAIL,GAAoB,cAAaI,QACjCH,IACAD,GAAoB,6BAA4BI,SAEpD51T,EAAMgjT,mBAAqBhjT,EAAMimT,qBAAqB,gBAAiBzD,EAAU,CAC7EkH,UAAW,wBACX8L,iBAAkBA,IAE1B,CACsB,IAAlBz5T,KAAK03T,WACLzzT,EAAMgjT,mBAAsB,wCAEhC,MACM8Q,GAAiB/3T,KAAK+3T,eAC5B9zT,SAAMgjT,mBACFhjT,EAAMijT,eAHYlnT,KAAK83T,eAGgB,iBAAgB93T,KAAKo3I,aAAa8kJ,YAAc,MAAQl8R,KAAKo3I,aAAa4vK,uBAAyB,QAC1I+Q,GAAetJ,eACfxqT,EAAMgjT,mBACFhjT,EAAMijT,eAAe6Q,IAAmB,kBAAiB/3T,KAAKs3I,cAAc4kJ,YAAc,MAAQl8R,KAAKs3I,cAAc0vK,uBAAyB,SAElJhnT,KAAKg4T,OAAOvJ,eACZxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAelnT,KAAKg4T,QAAW,mBAE7Dh4T,IACX,CACAolI,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBkyL,yBAA2Bv3T,KAAKu3T,yBAChDv3T,KAAKkuT,QACL7oL,EAAoBkqL,QAAUvvT,KAAKkuT,MAAM7hT,IAEtCg5H,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC9+J,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC3Ct9B,EAAoBkqL,UACpBvvT,KAAKkuT,MAAQ5vM,EAAMkxM,aAAanqL,EAAoBkqL,UAExDvvT,KAAKu3T,yBAA2BlyL,EAAoBkyL,yBACpDv3T,KAAKw3T,YACT,GAEJ30J,SAAW,IACP00H,MAAuB,8BAA+B,EAAwC,WAAY,CACtGk7B,UAAW,CAAE13H,SAAS,EAAMj4H,QAAQ,EAAMk3P,aAAc7C,GAAWC,uCAExED,GAAW5yR,UAAW,gCAA4B,IAAM,EAC3Ds6H,OAAc,qBAAsBs4J,IC/W7B,MAAM8C,WAAyBlU,KAIlC,WAAIx/G,GACA,OAAOvmM,KAAKohK,QAChB,CACA,WAAImlC,CAAQA,GACR,GAAIvmM,KAAKohK,WAAamlC,EAClB,OAEJ,MAAMjoF,EAAQioF,GAAS5hE,YAAc28B,KAAYC,kBAC5CglC,GAAWjoF,GACZA,EAAM47M,wBAAwB,EAAIC,GACvBA,EAAIC,WAAWp6T,KAAKohK,WAGnCphK,KAAKohK,SAAWmlC,EACZA,GAAWjoF,GACXA,EAAM47M,wBAAwB,EAAIC,GACvBA,EAAIC,WAAW7zH,GAGlC,CAIA,eAAIkxC,GACA,OAAOz3O,KAAKq6T,YAChB,CAKAx6T,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBiL,mBACrCjxT,KAAKm1R,eAAe,SAAU8wB,KAAsC9xS,OAAQ6xS,KAAyBiL,kBAAmB,IAAI3L,GAAwC,SAAUtlT,KAAM,EAAqDi6T,GAAkB,qBAC3Pj6T,KAAKm1R,eAAe,aAAc8wB,KAAsC/pI,QAC5E,CACAjuI,KAAKlyB,GACI/b,KAAKumM,SAGVxqL,EAAO8vH,WAAW7rI,KAAKq6T,aAAcr6T,KAAKumM,QAC9C,CACAxS,UACI,QAAI/zL,KAAKumM,UAAYvmM,KAAKumM,QAAQ+zH,uBAItC,CAKA30L,eACI,MAAO,kBACX,CAIA,UAAI19F,GACA,OAAOjoC,KAAKu2R,SAAS,EACzB,CAIA,cAAIgkC,GACA,OAAOv6T,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GASR,GARAJ,MAAMsoR,YAAYloR,GACdA,EAAMopB,SAAW24R,KAAyBr8E,SAC1C3pO,KAAKq6T,aAAep2T,EAAM8jT,qBAAqB/nT,KAAKuG,KAAO,WAE3DtC,EAAM2iT,WAAWkJ,eAAe7xS,KAAKje,MACrCiE,EAAM2iT,WAAW4T,cAAcv8S,KAAKje,MACpCiE,EAAM2iT,WAAWgB,eAAe3pS,KAAKje,OAErCA,KAAKu6T,WAAWr+B,YAAa,CAC7B,IAAIu+B,EAAS,GAETA,EADyB,IAAzBx2T,EAAMuyM,eACI,2BAA0Bx2M,KAAKq6T,uBAG/B,oBAAmBr6T,KAAKq6T,uBAEtCp2T,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAelnT,KAAKu6T,iBAAiBE,MAC7E,CACAx2T,SAAM4jT,eAAe7nT,KAAKq6T,cACnBr6T,IACX,CACAm3R,sBACI,IAAIqF,EAAa34R,MAAMszR,sBACvB,OAAKn3R,KAAKumM,UAGVi2F,GAAe,GAAEx8R,KAAKq3R,oDAAoDr3R,KAAKumM,QAAQhgM,gBAAgBvG,KAAKumM,QAAQk2B,aAAaz8N,KAAKumM,QAAQE,YAAYzmM,KAAKumM,QAAQ1gB,mBACvK22G,GAAe,GAAEx8R,KAAKq3R,qCAAqCr3R,KAAKumM,QAAQk8B,WACxE+5D,GAAe,GAAEx8R,KAAKq3R,qCAAqCr3R,KAAKumM,QAAQm8B,WACxE85D,GAAe,GAAEx8R,KAAKq3R,oCAAoCr3R,KAAKumM,QAAQm0H,UACvEl+B,GAAe,GAAEx8R,KAAKq3R,oCAAoCr3R,KAAKumM,QAAQwpG,UACvEvT,GAAe,GAAEx8R,KAAKq3R,oCAAoCr3R,KAAKumM,QAAQo0H,UACvEn+B,GAAe,GAAEx8R,KAAKq3R,uCAAuCr3R,KAAKumM,QAAQspG,aAC1ErT,GAAe,GAAEx8R,KAAKq3R,uCAAuCr3R,KAAKumM,QAAQupG,aAC1EtT,GAAe,GAAEx8R,KAAKq3R,sCAAsCr3R,KAAKumM,QAAQopG,YACzEnT,GAAe,GAAEx8R,KAAKq3R,sCAAsCr3R,KAAKumM,QAAQqpG,YACzEpT,GAAe,GAAEx8R,KAAKq3R,+CAA+Cr3R,KAAKumM,QAAQg1E,sBAC3EihB,CACX,CACAp3J,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClC,OAAIplI,KAAKumM,UAAYvmM,KAAKumM,QAAQq8G,gBAAkD,iBAAhC5iT,KAAKumM,QAAQ5gE,iBAC7DN,EAAoBkhE,QAAUvmM,KAAKumM,QAAQnhE,aAExCC,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,EAASi4J,GAC9C/2T,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,EAASi4J,GACpDv1L,EAAoBkhE,UAAYs0H,KAAaC,+BAAgEj4T,IAApCwiI,EAAoBkhE,QAAQrjM,MAC5C,IAArDmiI,EAAoBkhE,QAAQrjM,IAAI4hC,QAAQ,SACxC69H,EAAU,GAELi4J,IACLv1L,EAAoBkhE,QAAQrjM,IAAM03T,EAAYv1L,EAAoBkhE,QAAQrjM,KAC1EmiI,EAAoBkhE,QAAQhgM,KAAO8+H,EAAoBkhE,QAAQrjM,KAEnElD,KAAKumM,QAAU45B,KAAQv9D,MAAMv9B,EAAoBkhE,QAASjoF,EAAOqkD,GAEzE,GAEJ9D,SAAc,2BAA4Bo7J,IC/HnC,MAAMc,WAAqBhV,KAI9B,WAAIx/G,GACA,OAAIvmM,KAAKioC,OAAOi0P,aACJl8R,KAAKioC,OAAOokP,gBAAgBiM,YAAY/xF,QAE7CvmM,KAAKohK,QAChB,CACA,WAAImlC,CAAQA,GACR,GAAIvmM,KAAKohK,WAAamlC,EAClB,OAEJ,MAAMjoF,EAAQioF,GAAS5hE,YAAc28B,KAAYC,kBAC5CglC,GAAWjoF,GACZA,EAAM47M,wBAAwB,EAAIC,GACvBA,EAAIC,WAAWp6T,KAAKohK,WAGnCphK,KAAKohK,SAAWmlC,EACZA,GAAWjoF,GACXA,EAAM47M,wBAAwB,EAAIC,GACvBA,EAAIC,WAAW7zH,GAGlC,CACA,6BAAOy0H,CAAuBr9S,GAC1B,MAAiC,wBAA1BA,GAAOgoH,cAClB,CACA,oBAAIs1L,GACA,OAAOF,GAAaC,uBAAuBh7T,KAAKk7T,aACpD,CAIA,eAAIzjF,GACA,GAAIz3O,KAAKk7T,aAAc,CACnB,IAAKH,GAAaC,uBAAuBh7T,KAAKk7T,cAC1C,OAAOl7T,KAAKk7T,aAAazjF,YAE7B,GAAIz3O,KAAKioC,OAAOokP,eACZ,OAAOrsR,KAAKk7T,aAAaC,eAAen7T,KAAKioC,OAAOokP,eAE5D,CACA,OAAOrsR,KAAKq6T,YAChB,CAIA,kBAAIe,GACA,OAAOp7T,KAAKioC,OAAOi0P,WACvB,CAIA,uBAAIm/B,CAAoB9oT,GAChBA,IAAUvS,KAAKs7T,uBAGnBt7T,KAAKs7T,qBAAuB/oT,EACxBvS,KAAKumM,UACSvmM,KAAKumM,QAAQ5hE,YAAc28B,KAAYC,mBAC9C24J,wBAAwB,EAAIC,GACxBA,EAAIC,WAAWp6T,KAAKumM,UAGvC,CACA,uBAAI80H,GACA,OAAOr7T,KAAKs7T,oBAChB,CAIA,wBAAIC,CAAqBhpT,GACjBA,IAAUvS,KAAKw7T,wBAGnBx7T,KAAKw7T,sBAAwBjpT,EACzBvS,KAAKumM,UACSvmM,KAAKumM,QAAQ5hE,YAAc28B,KAAYC,mBAC9C24J,wBAAwB,EAAIC,GACxBA,EAAIC,WAAWp6T,KAAKumM,UAGvC,CACA,wBAAIg1H,GACA,OAAOv7T,KAAKw7T,qBAChB,CAMA37T,YAAY0G,EAAMk1T,GAAe,GAC7B53T,MAAM0C,EAAMk1T,EAAezV,KAAyBQ,SAAWR,KAAyBiL,mBACxFjxT,KAAKs7T,sBAAuB,EAC5Bt7T,KAAKw7T,uBAAwB,EAI7Bx7T,KAAK07T,4BAA6B,EAClC17T,KAAK27T,cAAgBF,EACrBz7T,KAAK8rR,cAAc,KAAMm6B,KAAsCzoB,YAAY,EAAOwoB,KAAyBiL,mBAC3GjxT,KAAK8rR,cAAc,SAAUm6B,KAAsC9xS,QAAQ,EAAM6xS,KAAyBiL,kBAAmB,IAAI3L,GAAwC,SAAUtlT,KAAM,EAAoDi6T,GAAkB,qBAC/Pj6T,KAAK8rR,cAAc,QAASm6B,KAAsCuB,OAAO,GACzExnT,KAAK8rR,cAAc,MAAOm6B,KAAsCuB,OAAO,GACvExnT,KAAKm1R,eAAe,OAAQ8wB,KAAsC96C,OAAQ66C,KAAyB4V,SACnG57T,KAAKm1R,eAAe,MAAO8wB,KAAsC5lJ,OAAQ2lJ,KAAyB4V,SAClG57T,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyB4V,SAC/F57T,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyB4V,SAC/F57T,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyB4V,SAC/F57T,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyB4V,SAC/F57T,KAAKm1R,eAAe,QAAS8wB,KAAsCuB,MAAOxB,KAAyB4V,SACnG57T,KAAKksR,QAAQ,GAAGm/B,2CAA2CpF,KAAsC/pI,QAAU+pI,KAAsC1lJ,QAAU0lJ,KAAsCxkJ,SACjMzhK,KAAKksR,QAAQ,GAAG2vC,mBAAqBJ,CACzC,CAKA91L,eACI,MAAO,cACX,CAIA,MAAI2lL,GACA,OAAOtrT,KAAKksR,QAAQ,EACxB,CAIA,UAAIjkP,GACA,OAAOjoC,KAAKksR,QAAQ,EACxB,CAIA,SAAIvN,GACA,OAAO3+Q,KAAKksR,QAAQ,EACxB,CAIA,OAAIjoD,GACA,OAAOjkO,KAAKksR,QAAQ,EACxB,CAIA,QAAIm7B,GACA,OAAOrnT,KAAKu2R,SAAS,EACzB,CAIA,OAAIo5B,GACA,OAAO3vT,KAAKu2R,SAAS,EACzB,CAIA,KAAIn1Q,GACA,OAAOphB,KAAKu2R,SAAS,EACzB,CAIA,KAAI17Q,GACA,OAAO7a,KAAKu2R,SAAS,EACzB,CAIA,KAAIhhR,GACA,OAAOvV,KAAKu2R,SAAS,EACzB,CAIA,KAAI3nR,GACA,OAAO5O,KAAKu2R,SAAS,EACzB,CAIA,SAAI/2M,GACA,OAAOx/E,KAAKu2R,SAAS,EACzB,CACAulC,kBAAkB3yQ,GACd,GAAIA,EAAM97B,SAAW24R,KAAyBQ,SAC1C,OAAO,EAEX,GAAIr9P,EAAM97B,SAAW24R,KAAyBr8E,OAC1C,OAAO,EAEX,GAAIxgL,EAAM97B,SAAW24R,KAAyB4V,SAAWzyQ,EAAM97B,SAAW24R,KAAyBiL,kBAAmB,CAClH,MAAM8K,EAAc5yQ,EAAMmvO,WAC1B,GAAIyjC,EAAY1uS,SAAW24R,KAAyBQ,SAChD,OAAO,EAEX,UAAWr9P,KAAS4yQ,EAAYjsT,OAC5B,GAAKq5C,EAAM+yO,aAGPl8R,KAAK87T,kBAAkB3yQ,EAAMkjO,gBAC7B,OAAO,CAGnB,CACA,OAAO,CACX,CACAtsH,sBACI,OAAI//J,KAAK27T,cACE3V,KAAyBQ,UAI/BxmT,KAAKsrT,GAAGpvB,aAGTl8R,KAAKsrT,GAAG0Q,YAAYtiC,QACbssB,KAAyBiL,kBAEhCjxT,KAAK87T,kBAAkB97T,KAAKsrT,GAAGj/B,gBACxB25B,KAAyBQ,SAE7BR,KAAyBiL,iBACpC,CACA,UAAI5jS,GACA,OAAOrtB,KAAK+/J,qBAChB,CACA,UAAI1yI,CAAO9a,GAAS,CACpB2mR,cAAc7xJ,EAAUkhL,EAA0BA,MAAM,IACpD,IAAKvoT,KAAKsrT,GAAGpvB,YACT,GAAI70J,EAAS5tH,OAASwiT,KAAkBt2I,YAAa,CACjD,MAAMmmI,EAAUzkL,EAASiyJ,oBAAqB/jR,GAAiB,OAAXA,EAAEhP,MAAiBgiT,EAAwBhzS,IAC3Fu2S,GACAA,EAAQ3vB,UAAUn8R,KAE1B,SACSqnI,EAAS5tH,OAASwiT,KAAkBtX,kBAAmB,CAC5D,MAAMuX,EAAgB70L,EAAS5tH,OAASwiT,KAAkBE,SAAW,cAAgB,KACrF,IAAIrQ,EAAUzkL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAAenzS,EAAEhP,OAAS21T,GAAiB3T,EAAwBhzS,IACvHu2S,IACDA,EAAU,IAAInD,KAAW,MACzBmD,EAAQlD,eAAesT,IAE3BpQ,EAAQ3sR,OAAOg9P,UAAUn8R,KAAKsrT,GAClC,CAER,CACA8Q,kBAAkBz6J,EAAMklJ,EAAcx2H,GAC7BA,EAAQgsI,wBAGkBx5T,IAA3B7C,KAAKs8T,mBACLjsI,EAAQnkK,SAASlsB,KAAKs8T,mBAAmB,GAAO,EAExD,CACA12L,eAAe+7B,EAAMklJ,EAAcx2H,GAC/B,IAAKA,EAAQgsI,kBACT,OAEJ,IAAKr8T,KAAKumM,UAAYvmM,KAAKumM,QAAQy7G,iBAK/B,YAJIhiT,KAAKu8T,WACLlsI,EAAQnkK,SAASlsB,KAAKw8T,aAAa,GAAO,GAC1CnsI,EAAQnkK,SAASlsB,KAAKs8T,mBAAmB,GAAM,KAIvD,MACMG,EAAWz8T,KAAKu7T,sBAAwBv7T,KAAKumM,SAAWvmM,KAAKumM,QAAQm2H,WAE3ErsI,EAAQnkK,SAASlsB,KAAK28T,kBAHN38T,KAAKq7T,qBAAuBr7T,KAAKumM,UAAYvmM,KAAKumM,QAAQm2H,YAGxB,GAClDrsI,EAAQnkK,SAASlsB,KAAK48T,iBAAkBH,GAAU,GAC9Cz8T,KAAKu8T,WACAv8T,KAAKumM,QAAQy7G,mBAAmB6a,mBAOjCxsI,EAAQnkK,SAASlsB,KAAKw8T,aAAa,GAAO,GAC1CnsI,EAAQnkK,SAASlsB,KAAKs8T,mBAAmB,GAAM,KAP/CjsI,EAAQnkK,SAASlsB,KAAKw8T,aAAa,GACI35T,MAAnCwtL,EAAQrwL,KAAKs8T,oBACbjsI,EAAQnkK,SAASlsB,KAAKs8T,mBAAmB,GAAO,IAQhE,CACAvoI,UACI,QAAI/zL,KAAKi7T,oBAGLj7T,KAAKumM,UAAYvmM,KAAKumM,QAAQ+zH,uBAItC,CACArsR,KAAKlyB,GACG/b,KAAKi7T,kBACLl/S,EAAOgmJ,SAAS/hK,KAAK88T,iBAAkB,GAEtC98T,KAAKumM,UAGNvmM,KAAKu8T,WACLxgT,EAAOgmJ,SAAS/hK,KAAK88T,iBAAkB98T,KAAKumM,QAAQ/mH,OACpDzjE,EAAOk/L,UAAUj7M,KAAK+8T,sBAAuB/8T,KAAKumM,QAAQy7G,qBAEzDhiT,KAAKk7T,cACNn/S,EAAO8vH,WAAW7rI,KAAKq6T,aAAcr6T,KAAKumM,SAElD,CACA,YAAIg2H,GACA,OAAOv8T,KAAKqtB,SAAW24R,KAAyBQ,QACpD,CACA0S,kBAAkBj1T,GACd,MAAM6nT,EAAU9rT,KAAKsrT,GAErBtrT,KAAKw8T,YAAcv4T,EAAMorT,mBAAmB,eAC5CrvT,KAAKs8T,kBAAoB,QAAUxQ,EAAQkR,wBAAwBxpS,cACnExzB,KAAKi9T,YAAc,QAAUnR,EAAQkR,wBACrCh9T,KAAKk9T,mBAAqBj5T,EAAM8jT,qBAAqB,iBACrD/nT,KAAK+8T,sBAAwB94T,EAAM8jT,qBAAqB,oBACxD/nT,KAAK88T,iBAAmB74T,EAAM8jT,qBAAqB,mBACnD/nT,KAAKw/E,MAAMwnO,uBAAyBhnT,KAAK88T,iBACzC74T,EAAMqjT,uBAAuBtnT,KAAKk9T,mBAAoBjX,KAAsC/pI,QAASl8K,KAAKw8T,aAC1Gv4T,EAAMqjT,uBAAuBtnT,KAAKi9T,YAAahX,KAAsC/pI,QAASl8K,KAAKs8T,mBACnGr4T,EAAM0iT,uBAAuB3mT,KAAK+8T,sBAAuB9W,KAAsCxlJ,OAAQzgK,KAAKw8T,aAC5G,MAAMjvF,EAAOtpO,EAAMgyT,eAAehQ,KAAsCxkJ,SAClEwrE,EAAOhpO,EAAMgyT,eAAehQ,KAAsC/pI,SACxEj4K,EAAMgjT,mBAAsB,UAASjnT,KAAKw8T,gBAC1Cv4T,EAAMgjT,mBAAsB,GAAEhjT,EAAMk5T,gBAAgBn9T,KAAKk9T,yBAAyBjwF,KAAQjtO,KAAK+8T,2BAA2BxvF,KAAQu+E,EAAQ9E,2CAC1I/iT,EAAMgjT,mBAAsB,iBAAgBjnT,KAAKs8T,uBACjD,IAAIc,EAAkB,GAQtB,GAP6B,IAAzBn5T,EAAMuyM,gBACFs1G,EAAQmG,0BAAuF,IAA5DnG,EAAQ9E,uBAAuBliR,QAAQ,mBAC1Es4R,EAAkB,iBAG1Bn5T,EAAMgjT,mBAAsB,GAAEhjT,EAAMk5T,gBAAgBn9T,KAAKi9T,kBAAkBG,IAAkBtR,EAAQ9E,+BACrG/iT,EAAMgjT,mBAAsB,WACvBjnT,KAAKu2R,SAASx1Q,KAAMhB,GAAMA,EAAEs9S,2BAGjC,CAAAr9T,KAAKs9T,kBAAkBr5T,GAAO,GAC9B,UAAWk7B,KAAUn/B,KAAKu2R,SAClBp3P,EAAOsvR,cAAgC,UAAhBtvR,EAAO54B,MAC9BvG,KAAKu9T,aAAat5T,EAAOk7B,EAAQA,EAAO54B,MAAM,EAAI,CAG9D,CACAi3T,QAAQC,GACJ,IAAIC,EAASD,EAWb,OAVyBz9T,KAAKohK,UAAUA,UAAUurC,WACrC3sM,KAAKohK,UAAUA,UAAUmoC,QAGlCm0H,EAAU,QAAOD,MADEz9T,KAAK2+Q,MAAMud,YAAcl8R,KAAK2+Q,MAAMqoC,uBAAyB,QAO7E0W,CACX,CACAC,aAAa15T,GACT,OAA6B,IAAzBA,EAAMuyM,eACCvyM,EAAMopB,SAAW24R,KAAyBr8E,OAAS,qBAAuB,gBAE9E3pO,KAAKikO,IAAIi4D,YAAc,kBAAoB,WACtD,CACA,qBAAI0hC,GACA,OAAO59T,KAAKikO,IAAIi4D,YAAe,KAAIl8R,KAAKikO,IAAI+iF,yBAA2B,EAC3E,CACA6W,uBAAuBvS,EAAIrnT,GACvB,GAA6B,IAAzBA,EAAMuyM,eAAgD,CACtD,MAAMy1B,EAAWhoO,EAAMopB,SAAW24R,KAAyBr8E,OAC3D,MAAQ,GAAE3pO,KAAK29T,aAAa15T,MAAUjE,KAAKy3O,eAAez3O,KAAKy3O,YAAe,cAAaz3O,KAAKw9T,QAAQlS,KAAMtrT,KAAK49T,oBAAoB3xF,EAAW,MAAQ,KAC9J,CACA,MAAQ,GAAEjsO,KAAK29T,aAAa15T,MAAUjE,KAAKy3O,gBAAgBz3O,KAAKw9T,QAAQlS,KAAMtrT,KAAK49T,oBACvF,CACAE,uBAAuB75T,GACnBA,EAAMgjT,mBAAsB,UAASjnT,KAAKw8T,gBAC1Cv4T,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiBvtT,KAAK+9T,iBAAkB9X,KAAsCxkJ,cAAczhK,KAAK69T,uBAAuB55T,EAAMk5T,gBAAgBn9T,KAAKk9T,oBAAqBj5T,QAC5MA,EAAMgjT,mBAAsB,iBAAgBjnT,KAAKs8T,uBACjDr4T,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiBvtT,KAAK+9T,iBAAkB9X,KAAsCxkJ,cAAczhK,KAAK69T,uBAAuB79T,KAAKi9T,YAAch5T,EAAMk5T,gBAAgBn9T,KAAKi9T,aAAej9T,KAAKsrT,GAAGtE,uBAAwB/iT,KAASjE,KAAK49T,uBACvQ35T,EAAMgjT,mBAAsB,UAChC,CACAqW,kBAAkBr5T,EAAO+5T,GAAa,GAClC,MAAMlS,EAAU9rT,KAAKsrT,GACrB,GAAI0S,EAAJ,CACI,GAAI/5T,EAAMopB,SAAW24R,KAAyBQ,SAC1C,OAEJxmT,KAAK89T,uBAAuB75T,EAEhC,MACIjE,KAAKsrT,GAAGhzB,WAAWjrQ,SAAW24R,KAAyBQ,SAI3DxmT,KAAK89T,uBAAuB75T,GAHxBA,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiBvtT,KAAK+9T,iBAAkB9X,KAAsCxkJ,cAAczhK,KAAK69T,uBAAuB/R,EAAQ9E,uBAAwB/iT,KAASjE,KAAK49T,sBAIlN,CACAK,wBAAwBh6T,EAAOk7B,EAAQ++R,GACnB,MAAZA,MAEKl+T,KAAKumM,UAAYvmM,KAAKumM,QAAQm2H,cAC/Bz4T,EAAMgjT,mBAAsB,UAASjnT,KAAK28T,0CACpCx9R,EAAO6nR,yCAAyC7nR,EAAO6nR,0EAIjE/iT,EAAMgjT,mBAAsB,UAASjnT,KAAK48T,qCACpCz9R,EAAO6nR,4BAA4B/iT,EAAMk6T,eAAeh/R,4CAItE,CACAo+R,aAAat5T,EAAOk7B,EAAQ++R,EAASF,GAAa,GAC9C,GAAIA,EAAY,CACZ,GAAI/5T,EAAMopB,SAAW24R,KAAyBQ,SAC1C,OAIJ,OAFAviT,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAe/nR,QAAan/B,KAAK+9T,oBAAoBG,YACzFl+T,KAAKi+T,wBAAwBh6T,EAAOk7B,EAAQ++R,EAEhD,CACA,GAAIl+T,KAAKsrT,GAAGhzB,WAAWjrQ,SAAW24R,KAAyBQ,SAGvD,OAFAviT,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAe/nR,QAAan/B,KAAK+9T,oBAAoBG,YACzFl+T,KAAKi+T,wBAAwBh6T,EAAOk7B,EAAQ++R,GAGhD,IAAIE,EAAa,GACZp+T,KAAK07T,6BACN0C,EAAc,OAA+B,IAAzBn6T,EAAMuyM,eAAiD,YAAc,IAAMx2M,KAAK88T,kBAExG74T,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAe/nR,QAAan/B,KAAK+9T,oBAAoBG,IAAUE,OACnGp+T,KAAKi+T,wBAAwBh6T,EAAOk7B,EAAQ++R,EAChD,CACA/xC,YAAYloR,GAaR,GAZAJ,MAAMsoR,YAAYloR,GAEdjE,KAAKk7T,aADLl7T,KAAKioC,OAAOi0P,YACQl8R,KAAKioC,OAAOokP,eAAeiM,WAG3B,MAEpBr0R,EAAMopB,SAAW24R,KAAyBr8E,QAAU3pO,KAAK27T,eAAiB13T,EAAMopB,SAAW24R,KAAyBQ,YACpHxmT,KAAK+9T,iBAAmB95T,EAAM8jT,qBAAqB,mBACnD/nT,KAAK28T,kBAAoB14T,EAAMorT,mBAAmB,YAClDrvT,KAAK48T,iBAAmB34T,EAAMorT,mBAAmB,aAE/CrvT,KAAKu8T,UAAYt4T,EAAMopB,SAAW24R,KAAyBQ,UAAcxmT,KAAKu8T,UAAYt4T,EAAMopB,SAAW24R,KAAyBr8E,OAAS,CAC/I,IAAK3pO,KAAKk7T,aAAc,CACpB,MAAMrH,EAAU5vT,EAAM8jT,qBAAqB/nT,KAAKuG,MAChDvG,KAAKq6T,aAAexG,EAAU,UAC1B7zT,KAAKohK,UAAUA,UAAUurC,UACzB1oM,EAAMo6T,oBAAoBr+T,KAAKq6T,cAG/Bp2T,EAAM4jT,eAAe7nT,KAAKq6T,aAElC,CAEAp2T,EAAM2iT,WAAWkJ,eAAe7xS,KAAKje,MACrCiE,EAAM2iT,WAAW4T,cAAcv8S,KAAKje,MACpCiE,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,MACxCiE,EAAM2iT,WAAWgB,eAAe3pS,KAAKje,KACzC,CACA,GAAIiE,EAAMopB,SAAW24R,KAAyBQ,UAM9C,GAAKxmT,KAAKu2R,SAASx1Q,KAAMhB,GAAMA,EAAEu+S,6BAAjC,CAGIt+T,KAAKu8T,WAAav8T,KAAKk7T,eAEnBl7T,KAAKohK,UAAUA,UAAUurC,UACzB1oM,EAAMo6T,oBAAoBr+T,KAAKq6T,cAG/Bp2T,EAAM4jT,eAAe7nT,KAAKq6T,eAIlCp2T,EAAMyiT,yBAAyB,kBADb,KAAI1mT,KAAKuG,QAEvBvG,KAAKu8T,UACLt4T,EAAM0iT,uBAAuB3mT,KAAK88T,iBAAkB7W,KAAsCuB,OAE9FxnT,KAAKs9T,kBAAkBr5T,GACvB,UAAWk7B,KAAUn/B,KAAKu2R,SAClBp3P,EAAOsvR,cAAgC,UAAhBtvR,EAAO54B,MAC9BvG,KAAKu9T,aAAat5T,EAAOk7B,EAAQA,EAAO54B,MAGhD,OAAOvG,IAtBH,OALAA,KAAKk5T,kBAAkBj1T,EA4B/B,CACAkzR,sBACI,IAAIqF,EAAa34R,MAAMszR,sBAIvB,OAHAqF,GAAe,GAAEx8R,KAAKq3R,2CAA2Cr3R,KAAKq7T,yBACtE7+B,GAAe,GAAEx8R,KAAKq3R,4CAA4Cr3R,KAAKu7T,0BACvE/+B,GAAe,GAAEx8R,KAAKq3R,kDAAkDr3R,KAAK07T,gCACxE17T,KAAKumM,UAGVi2F,GAAe,GAAEx8R,KAAKq3R,oDAAoDr3R,KAAKumM,QAAQhgM,gBAAgBvG,KAAKumM,QAAQk2B,aAAaz8N,KAAKumM,QAAQE,YAAYzmM,KAAKumM,QAAQ1gB,mBACvK22G,GAAe,GAAEx8R,KAAKq3R,qCAAqCr3R,KAAKumM,QAAQk8B,WACxE+5D,GAAe,GAAEx8R,KAAKq3R,qCAAqCr3R,KAAKumM,QAAQm8B,WACxE85D,GAAe,GAAEx8R,KAAKq3R,oCAAoCr3R,KAAKumM,QAAQm0H,UACvEl+B,GAAe,GAAEx8R,KAAKq3R,oCAAoCr3R,KAAKumM,QAAQwpG,UACvEvT,GAAe,GAAEx8R,KAAKq3R,oCAAoCr3R,KAAKumM,QAAQo0H,UACvEn+B,GAAe,GAAEx8R,KAAKq3R,uCAAuCr3R,KAAKumM,QAAQspG,aAC1ErT,GAAe,GAAEx8R,KAAKq3R,uCAAuCr3R,KAAKumM,QAAQupG,aAC1EtT,GAAe,GAAEx8R,KAAKq3R,sCAAsCr3R,KAAKumM,QAAQopG,YACzEnT,GAAe,GAAEx8R,KAAKq3R,sCAAsCr3R,KAAKumM,QAAQqpG,YACzEpT,GAAe,GAAEx8R,KAAKq3R,+CAA+Cr3R,KAAKumM,QAAQg1E,sBAC3EihB,CACX,CACAp3J,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBg2L,oBAAsBr7T,KAAKq7T,oBAC/Ch2L,EAAoBk2L,qBAAuBv7T,KAAKu7T,qBAChDl2L,EAAoBo2L,aAAez7T,KAAK27T,cACxCt2L,EAAoBq2L,2BAA6B17T,KAAK07T,4BACjD17T,KAAKo7T,gBAAkBp7T,KAAKumM,UAAYvmM,KAAKumM,QAAQq8G,gBAAkD,iBAAhC5iT,KAAKumM,QAAQ5gE,iBACrFN,EAAoBkhE,QAAUvmM,KAAKumM,QAAQnhE,aAExCC,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,EAASi4J,GAC9C/2T,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC/C3iK,KAAKq7T,oBAAsBh2L,EAAoBg2L,oBAC/Cr7T,KAAKu7T,uBAAyBl2L,EAAoBk2L,qBAClDv7T,KAAK27T,gBAAkBt2L,EAAoBo2L,aAC3Cz7T,KAAK07T,6BAA+Br2L,EAAoBq2L,2BACpDr2L,EAAoBkhE,UAAYs0H,KAAaC,+BAAgEj4T,IAApCwiI,EAAoBkhE,QAAQrjM,MAC5C,IAArDmiI,EAAoBkhE,QAAQrjM,IAAI4hC,QAAQ,SACxC69H,EAAU,GAELi4J,IACLv1L,EAAoBkhE,QAAQrjM,IAAM03T,EAAYv1L,EAAoBkhE,QAAQrjM,KAC1EmiI,EAAoBkhE,QAAQhgM,KAAO8+H,EAAoBkhE,QAAQrjM,KAEnElD,KAAKumM,QAAU45B,KAAQv9D,MAAMv9B,EAAoBkhE,QAASjoF,EAAOqkD,GAEzE,GAEJ9D,SAAc,uBAAwBk8J,ICxiB/B,MAAMwD,WAAmCxY,KAI5C,WAAIx/G,GACA,OAAOvmM,KAAKohK,QAChB,CACA,WAAImlC,CAAQA,GACR,GAAIvmM,KAAKohK,WAAamlC,EAClB,OAEJ,MAAMjoF,EAAQioF,GAAS5hE,YAAc28B,KAAYC,kBAC5CglC,GAAWjoF,GACZA,EAAM47M,wBAAwB,EAAIC,GACvBA,EAAIC,WAAWp6T,KAAKohK,WAGnCphK,KAAKohK,SAAWmlC,EACZA,GAAWjoF,GACXA,EAAM47M,wBAAwB,EAAIC,GACvBA,EAAIC,WAAW7zH,GAGlC,CACA,yCAAO6wH,CAAmCz5S,EAAO05S,GAE7C,OADa15S,EACD6gT,oCAChB,CACAA,qCACI,OAAAx+T,KAAKw3T,cACE,CACX,CACAA,aACIx3T,KAAKy3T,kBAAkBz3T,KAAKu3T,yBAA2BvR,KAAyBQ,SAAWR,KAAyBiL,kBACxH,CAKApxT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBiL,mBAErCjxT,KAAKu3T,0BAA2B,CACpC,CAKA5xL,eACI,MAAO,4BACX,CACA84L,cACI,OAAOz+T,KAAKumM,OAChB,CACAm0F,WAAWz2R,GACPjE,KAAK4sR,uBAAuB3oR,EAAMuyM,eACtC,CACMo2E,uBAAuBp2E,GAAgB,IAAAt2M,EAAAF,KAAA,SAAAG,KAAA,YACzCD,EAAK+nT,cAAe,EACG,IAAnBzxG,QACM7+L,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,aAGA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,OAEVnmL,EAAK+nT,cAAe,EACpB/nT,EAAKgoT,wBAAwBlnJ,gBAAgB9gK,EAAM,EATV,EAU7C,CAMAg5R,cAAc7xJ,EAAUkhL,EAA0BA,MAAM,IACpD,IAAKvoT,KAAKsY,SAAS4jR,YAAa,CAC5B,IAAIyvB,EAAgBtkL,EAASohL,yBAA0BlzS,GAAMA,EAAEmzS,aAA0B,aAAXnzS,EAAEhP,MAAuBgiT,EAAwBhzS,IAC1Ho2S,IACDA,EAAgB,IAAIhD,KAAW,YAC/BgD,EAAc/C,kBAElB+C,EAAcxsR,OAAOg9P,UAAUn8R,KAAKsY,SACxC,CACA,IAAKtY,KAAKomT,MAAMlqB,YAAa,CACzB,IAAI4sB,EAAazhL,EAASohL,yBAA0BlzS,GAAMA,EAAEwzS,cAAgBC,KAAyBC,OAASV,EAAwBhzS,IACjIuzS,IACDA,EAAa,IAAIH,KAAW,SAC5BG,EAAWI,iBAAiBF,KAAyBC,QAEzDH,EAAW3pR,OAAOg9P,UAAUn8R,KAAKomT,MACrC,CACA,GAAIpmT,KAAK+uE,OAAS/uE,KAAK+uE,KAAKmtN,YAAa,CACrC,IAAIk6B,EAAY/uL,EAASohL,yBAA0BlzS,GAAMA,EAAEwzS,cAAgBC,KAAyBqN,MAAQ9N,EAAwBhzS,IAC/H6gT,IACDA,EAAY,IAAIzN,KAAW,QAC3ByN,EAAUlN,iBAAiBF,KAAyBqN,OAExDD,EAAUj3R,OAAOg9P,UAAUn8R,KAAK+uE,KACpC,CACJ,CACA62D,eAAe+7B,EAAMklJ,EAAcx2H,GAC/B,IAAKA,EAAQgsI,kBACT,OAEJ,MAAM91H,EAAUvmM,KAAKy+T,eAChBl4H,IAAYA,EAAQy7G,mBAGzB3xH,EAAQnkK,SAASlsB,KAAK0+T,cAAen4H,EAAQ+C,QAAQ,GACrDjZ,EAAQnkK,SAASlsB,KAAK2+T,wBAAuBp4H,EAAQq4H,iBAAgC,GACrFvuI,EAAQnkK,SAASlsB,KAAK6+T,oBAAiD,IAA5Bt4H,EAAQg1E,iBAAuB,GAC1ElrF,EAAQnkK,SAASlsB,KAAK8+T,kBAA+C,IAA5Bv4H,EAAQg1E,iBAAuB,GACxElrF,EAAQnkK,SAASlsB,KAAK++T,iBAA8C,IAA5Bx4H,EAAQg1E,iBAAqD,IAA5Bh1E,EAAQg1E,iBAAuB,GACxGlrF,EAAQnkK,SAAS,iBAA8C,IAA5Bq6K,EAAQg1E,iBAAuB,GAClElrF,EAAQnkK,SAASlsB,KAAKg/T,qBAAkD,IAA5Bz4H,EAAQg1E,iBAAuB,GAC3ElrF,EAAQnkK,SAASlsB,KAAKi/T,kBAA+C,IAA5B14H,EAAQg1E,iBAAuB,GACxElrF,EAAQnkK,SAASlsB,KAAKk/T,sBAAmD,IAA5B34H,EAAQg1E,iBAAuB,GAC5ElrF,EAAQnkK,SAASlsB,KAAKm/T,2BAAwD,IAA5B54H,EAAQg1E,iBAAuB,GACjFlrF,EAAQnkK,SAASlsB,KAAKo/T,gCAA6D,IAA5B74H,EAAQg1E,iBAAuB,GACtFlrF,EAAQnkK,SAASlsB,KAAKq/T,wCAAqE,IAA5B94H,EAAQg1E,iBAAuB,GAClG,CACAxnF,UACI,MAAMwS,EAAUvmM,KAAKy+T,cACrB,QAAIl4H,IAAYA,EAAQ+zH,uBAI5B,CACArsR,KAAKlyB,EAAQ8qS,EAAcllJ,EAAM29J,GAC7B,MAAM/4H,EAAUvmM,KAAKy+T,cACrB,GAAK98J,GAAS4kC,IAGdxqL,EAAOk/L,UAAUj7M,KAAKu/T,sBAAuBh5H,EAAQi5H,8BAEjDzjT,EAAO8vH,WADP06D,EAAQ+C,OACUtpM,KAAKy/T,iBAGLz/T,KAAK0/T,eAHkBn5H,GAKzCA,EAAQq4H,iBAAiB,CACzB,MAAMe,EAAcp5H,EACpBxqL,EAAOy/L,WAAWx7M,KAAK4/T,wBAAyBD,EAAYE,qBAC5D9jT,EAAOy/L,WAAWx7M,KAAK8/T,oBAAqBH,EAAYf,gBAC5D,CACJ,CAMAmB,iBAAiB97T,GACb,GAAIjE,KAAKu3T,0BAA4BtzT,EAAMopB,SAAW24R,KAAyBr8E,OAC3E,MAAO,GAEX,MAAMj+B,EAAoC,IAAzBznM,EAAMuyM,eACvBx2M,KAAK0+T,cAAgBz6T,EAAMorT,mBAAmB,oBAC9CrvT,KAAK++T,iBAAmB96T,EAAMorT,mBAAmB,uBACjDrvT,KAAKg/T,qBAAuB/6T,EAAMorT,mBAAmB,2BACrDrvT,KAAKi/T,kBAAoBh7T,EAAMorT,mBAAmB,wBAClDrvT,KAAKk/T,sBAAwBj7T,EAAMorT,mBAAmB,4BACtDrvT,KAAK6+T,oBAAsB56T,EAAMorT,mBAAmB,0BACpDrvT,KAAKm/T,2BAA6Bl7T,EAAMorT,mBAAmB,iCAC3DrvT,KAAK2+T,sBAAwB16T,EAAMorT,mBAAmB,iCACtDrvT,KAAKq/T,wCAA0Cp7T,EAAMorT,mBAAmB,+CACxErvT,KAAKo/T,gCAAkCn7T,EAAMorT,mBAAmB,uCAChErvT,KAAK8+T,kBAAoB76T,EAAMorT,mBAAmB,wBAClDrvT,KAAKggU,iBAAmB/7T,EAAMorT,mBAAmB,2BACjDrvT,KAAKu/T,sBAAwBt7T,EAAM8jT,qBAAqB,oBACxD9jT,EAAM0iT,uBAAuB3mT,KAAKu/T,sBAAuBtZ,KAAsCxlJ,QAC/F,IAAI9jG,EAAO,GACX38D,KAAKigU,qCAAuCh8T,EAAM8jT,qBAAqB,iBACvE,MAAMwR,EAAsBv5T,KAAKu3T,yBAA2Bv3T,KAAKigU,qCAAuC,KAAOjgU,KAAK6tT,cAAc7G,uBAClI,OAAIhnT,KAAKu3T,0BAA4BtzT,EAAMqjT,uBAAuBiS,EAAqBtT,KAAsCxkJ,YAErH9kG,GADA38D,KAAKu3T,yBACI,GAAEtzT,EAAMspT,iBAAiBgM,EAAqBtT,KAAsCxkJ,cAAczhK,KAAK6tT,cAAc7G,4BAGrH,GAAEt7G,EAAW,iBAAmB,KAAK6tH,OAAyBv5T,KAAK6tT,cAAc7G,6BAGlGhnT,KAAKkgU,iBAAmBj8T,EAAM8jT,qBAAqB,eACnD/nT,KAAKmgU,gBAAkBl8T,EAAM8jT,qBAAqB,eAC9C/nT,KAAKu3T,0BAA4BtzT,EAAMqjT,uBAAuBtnT,KAAKkgU,iBAAkBja,KAAsC1lJ,QAASvgK,KAAK8+T,sBACzIniQ,GAAS,UAAS38D,KAAK8+T,sBAEnBniQ,GADA38D,KAAKu3T,yBACI,GAAEtzT,EAAMspT,iBAAiBvtT,KAAKkgU,iBAAkBja,KAAsC1lJ,cAAcvgK,KAAKsY,SAAS0uS,gCAGlH,GAAEt7G,EAAW,iBAAmB,KAAK1rM,KAAKkgU,sBAAsBlgU,KAAKsY,SAAS0uS,gCAE3FrqP,GAAS,aAET38D,KAAKu3T,0BACLtzT,EAAMqjT,uBAAuBtnT,KAAKmgU,gBAAiBla,KAAsC1lJ,QAAU,WAAUvgK,KAAKo/T,+CAA+Cp/T,KAAKq/T,+CACtK1iQ,GAAS,eAAc38D,KAAKo/T,+CAA+Cp/T,KAAKq/T,6CAE5E1iQ,GADA38D,KAAKu3T,yBACI,GAAEtzT,EAAMspT,iBAAiBvtT,KAAKmgU,gBAAiBla,KAAsC1lJ,4BAA4Bt8J,EAAM8iT,WAAW/mT,KAAKomT,MAAMY,gCAAgC/iT,EAAM8iT,WAAW/mT,KAAKsY,SAAS0uS,wCAG5M,GAAEt7G,EAAW,iBAAmB,KAAK1rM,KAAKmgU,mCAAmCl8T,EAAM8iT,WAAW/mT,KAAKomT,MAAMY,gCAAgC/iT,EAAM8iT,WAAW/mT,KAAKsY,SAAS0uS,wCAErLrqP,GAAS,YAENA,CACX,CAKAyjQ,wBAAwBn8T,GACpBA,EAAM2iT,WAAWkJ,eAAe7xS,KAAKje,MACrCiE,EAAM2iT,WAAW4T,cAAcv8S,KAAKje,MAEpCA,KAAKy/T,iBAAmBx7T,EAAM8jT,qBAAqB/nT,KAAKuG,KAAO,eAC/DtC,EAAMq0M,SAASr6L,KAAKje,KAAKy/T,kBACzBz/T,KAAK0/T,eAAiBz7T,EAAM8jT,qBAAqB/nT,KAAKuG,KAAO,aAC7DtC,EAAMq0M,SAASr6L,KAAKje,KAAK0/T,gBACzBz7T,EAAMo8T,qBAAwB,UAASrgU,KAAK0+T,kBAC5Cz6T,EAAMq8T,iBAAiBtgU,KAAKy/T,iBAAkB,IAAI,GAClDx7T,EAAMo8T,qBAAwB,UAC9Bp8T,EAAM4jT,eAAe7nT,KAAK0/T,eAAgB,IAAI,GAC9Cz7T,EAAMo8T,qBAAwB,WAE9Bp8T,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,MACxCiE,EAAM2iT,WAAWgB,eAAe3pS,KAAKje,MACrC,MAAMymT,EAAY,KAAIzmT,KAAKuG,OAC3BtC,EAAMyiT,yBAAyB,kBAAmBD,GAClDxiT,EAAMyiT,yBAAyB,qBAAsBD,EAAU,CAC3D0D,eAAgB,CACZ,CAAEx/M,OAAQ,gCAAiC1lG,QAAS,kBACpD,CAAE0lG,OAAQ,2EAA4E1lG,QAAS,qBAGvGjF,KAAKugU,qBAAuBt8T,EAAM8jT,qBAAqB,mBACvD/nT,KAAKwgU,sBAAwBv8T,EAAM8jT,qBAAqB,iBACxD/nT,KAAKygU,sBAAwBx8T,EAAM8jT,qBAAqB,oBACxD/nT,KAAK4/T,wBAA0B37T,EAAM8jT,qBAAqB,uBAC1D9jT,EAAM0iT,uBAAuB3mT,KAAK4/T,wBAAyB3Z,KAAsC1lJ,SACjGvgK,KAAK8/T,oBAAsB77T,EAAM8jT,qBAAqB,uBACtD9jT,EAAM0iT,uBAAuB3mT,KAAK8/T,oBAAqB7Z,KAAsC1lJ,QACjG,CAUAmgK,uCAAuCz8T,EAAO08T,EAAoBrL,EAAUsL,GAAuB,EAAOC,GAAmB,GACpHvL,IACDA,EAAWt1T,KAAKu3T,yBAA2Bv3T,KAAKigU,qCAAwC,KAAIjgU,KAAK6tT,cAAc7G,0BAGnH,MAAM8Z,GADoC,IAAzB78T,EAAMuyM,eACc,YAAc,IAAMx2M,KAAKu/T,sBACxDtkT,GAAa,aAAYjb,KAAKmgU,mBAC9BY,GAAe,GAAE/gU,KAAKkgU,mBACtBc,GAAgB,GAAEhhU,KAAK23T,eAAe3Q,yBACtCj4O,GAAQ,GAAE/uE,KAAK+uE,KAAKi4O,yBAC1B2Z,GAAsB,OACtB,IAAIhkQ,GAAQ,wBACC38D,KAAKq/T,2DACTp7T,EAAMspT,iBAAiBvtT,KAAKwgU,sBAAuBva,KAAsC1lJ,wDAAwD+0J,MAAaqL,MAAuB1lT,kDAGjLjb,KAAKo/T,oDACRn7T,EAAMspT,iBAAiBvtT,KAAKwgU,sBAAuBva,KAAsC1lJ,gDAAgD+0J,MAAaqL,MAAuB1lT,kDAG1Kjb,KAAKm/T,+CACRl7T,EAAMspT,iBAAiBvtT,KAAKwgU,sBAAuBva,KAAsC1lJ,2CAA2C+0J,MAAaqL,MAAuBK,WAAqBF,iDAG1L9gU,KAAKg/T,yCACR/6T,EAAMspT,iBAAiBvtT,KAAKwgU,sBAAuBva,KAAsC1lJ,qCAAqC+0J,MAAaqL,MAAuB5xP,OAAS+xP,iDAGxK9gU,KAAKi/T,sCACRh7T,EAAMspT,iBAAiBvtT,KAAKwgU,sBAAuBva,KAAsC1lJ,kCAAkC+0J,MAAaqL,MAAuBK,WAAqBF,iDAGjL9gU,KAAK++T,4CACD/+T,KAAK2+T,8CACR16T,EAAMspT,iBAAiBvtT,KAAKwgU,sBAAuBva,KAAsC1lJ,sCAAsC+0J,MAAaqL,MAAuBK,WAAqBF,MAAqB9gU,KAAK8/T,wBAAwB9/T,KAAK4/T,qEAEnP37T,EAAMspT,iBAAiBvtT,KAAKwgU,sBAAuBva,KAAsC1lJ,iCAAiC+0J,MAAaqL,MAAuBK,WAAqBF,yEAIhL9gU,KAAKk/T,0CACRj7T,EAAMspT,iBAAiBvtT,KAAKwgU,sBAAuBva,KAAsC1lJ,sCAAsC+0J,MAAavmP,OAAS+xP,iDAGlJ9gU,KAAK8+T,sCACR76T,EAAMspT,iBAAiBvtT,KAAKwgU,sBAAuBva,KAAsC1lJ,kCAAkCwgK,OAAgBD,iDAGxI9gU,KAAK6+T,wCACR56T,EAAMspT,iBAAiBvtT,KAAKwgU,sBAAuBva,KAAsC1lJ,kDAEnG,OAAKsgK,IACDlkQ,IAAS,UAAS38D,KAAKggU,qCACjBhgU,KAAKwgU,0DAGVI,IACDjkQ,IAAS,4BACI38D,KAAK0+T,sCACRz6T,EAAMspT,iBAAiBvtT,KAAKygU,sBAAuBxa,KAAsC1lJ,cAAcvgK,KAAKwgU,sEAE5Gv8T,EAAMspT,iBAAiBvtT,KAAKygU,sBAAuBxa,KAAsC/pI,cAAcl8K,KAAKwgU,yDACrGxgU,KAAKk/T,kDACRl/T,KAAKygU,4BAA4BzgU,KAAKwgU,6EAE1CxgU,KAAKygU,mCAAmCzgU,KAAKygU,sDAGpD9jQ,EACX,CAQAskQ,sCAAsCh9T,EAAOi9T,EAAYC,EAAuB,QAC5E,IAAIC,EAAYnb,KAAsCxkJ,QAClB,IAAhC0/J,EAAqBzrT,SACrB0rT,EAAYnb,KAAsC1lJ,SAEtD,IAAI5jG,EAAQ,GAAE14D,EAAMspT,iBAAiBvtT,KAAKugU,qBAAsBa,2BACnDphU,KAAK0+T,kBAClB,OACI/hQ,GADAukQ,EACS,GAAElhU,KAAKugU,0BAA0Bt8T,EAAMo9T,8BAA8BrhU,KAAKwgU,sBAAuBxgU,KAAKy/T,iBAAkByB,KAAcC,OAGtI,GAAEnhU,KAAKugU,0BAA0Bt8T,EAAMq9T,2BAA2BthU,KAAKwgU,sBAAuBxgU,KAAKy/T,oBAAoB0B,OAEpIxkQ,GAAS,wBAGLA,GADAukQ,EACS,GAAElhU,KAAKugU,yBAAyBt8T,EAAMs9T,0BAA0BvhU,KAAKygU,sBAAuBzgU,KAAK0/T,eAAgBwB,KAAcC,OAG/H,GAAEnhU,KAAKugU,0BAA0Bt8T,EAAM45T,uBAAuB79T,KAAKygU,sBAAuBzgU,KAAK0/T,kBAAkByB,OAE9HxkQ,GAAS,WACFA,CACX,CAOA82P,aAAaxvT,EAAO4vT,GAChB,IAAIl3P,EAAO,GACX,GAAI14D,EAAMopB,SAAW24R,KAAyBQ,SAC1C,UAAWrnR,KAAUn/B,KAAKu2R,SAClBp3P,EAAOsvR,eACP9xP,GAAS,GAAE14D,EAAMijT,eAAe/nR,QAAa00R,KAAW10R,EAAO54B,WAI3E,OAAOo2D,CACX,CACAwvN,YAAYloR,GACR,OAAAJ,MAAMsoR,YAAYloR,GACXjE,IACX,CACAm3R,sBACI,IAAIqF,EAAa34R,MAAMszR,sBACvB,IAAKn3R,KAAKumM,QACN,OAAOi2F,EAEX,GAAIx8R,KAAKumM,QAAQ+C,OAAQ,CACrB,MAAMszB,EAAkB58N,KAAKumM,QAAQq2B,gBACrC4/D,GAAe,GAAEx8R,KAAKq3R,wDAAwDr3R,KAAKumM,QAAQhgM,gCAAgCvG,KAAKumM,QAAQk2B,oDAAoDz8N,KAAKumM,QAAQi7H,iBAAiB5kG,EAAkB,IAAMA,EAAkB,IAAM,YAC9Q,MAEI4/D,GAAe,GAAEx8R,KAAKq3R,oDAAoDr3R,KAAKumM,QAAQhgM,kBAE3Fi2R,UAAe,GAAEx8R,KAAKq3R,+CAA+Cr3R,KAAKumM,QAAQg1E,qBAC3EihB,CACX,CACAp3J,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClC,OAAIplI,KAAKumM,UAAYvmM,KAAKumM,QAAQq8G,iBAC9Bv9K,EAAoBkhE,QAAUvmM,KAAKumM,QAAQnhE,aAE/CC,EAAoBkyL,yBAA2Bv3T,KAAKu3T,yBAC7ClyL,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC9+J,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC3Ct9B,EAAoBkhE,UAAYs0H,KAAaC,2BAC7Cn4J,EAA+D,IAArDt9B,EAAoBkhE,QAAQrjM,IAAI4hC,QAAQ,SAAiB,GAAK69H,EAEpE3iK,KAAKumM,QADLlhE,EAAoBkhE,QAAQ+C,OACbm4H,KAAY7+J,MAAMv9B,EAAoBkhE,QAASjoF,EAAOqkD,GAGtDw9D,KAAQv9D,MAAMv9B,EAAoBkhE,QAASjoF,EAAOqkD,IAGzE3iK,KAAKu3T,yBAA2BlyL,EAAoBkyL,yBACpDv3T,KAAKw3T,YACT,GAEJ30J,SAAW,IACP00H,MAAuB,8BAA+B,EAAwC,WAAY,CACtGk7B,UAAW,CAAE13H,SAAS,EAAMj4H,QAAQ,EAAMk3P,aAAcuE,GAA2BnH,uCAExFmH,GAA2Bh6R,UAAW,gCAA4B,IAAM,EAC3Es6H,OAAc,qCAAsC0/J,KC7QpD1/J,SAAc,iCAxJP,MAAM6iK,WAA+BnD,GACxCC,qCACI,OAAIx+T,KAAKsY,SAAS4jR,aACdl8R,KAAKu3T,0BAA4Bv3T,KAAKu3T,yBACtC32J,KAAOt7I,MAAM,mEACN,GAEPtlB,KAAK6tT,cAAc3xB,aACnBl8R,KAAKu3T,0BAA4Bv3T,KAAKu3T,yBACtC32J,KAAOt7I,MAAM,wEACN,IAEXtlB,KAAKw3T,cACE,EACX,CACAA,aACI3zT,MAAM2zT,aACNx3T,KAAKg8R,eAAe,YAAY3uQ,OAASrtB,KAAKu3T,yBAA2BvR,KAAyBQ,SAAWR,KAAyBr8E,OACtI3pO,KAAKg8R,eAAe,iBAAiB3uQ,OAASrtB,KAAKu3T,yBAA2BvR,KAAyBQ,SAAWR,KAAyBr8E,MAC/I,CAKA9pO,YAAY0G,GACR1C,MAAM0C,GACNvG,KAAK8rR,cAAc,WAAYm6B,KAAsCzoB,YAAY,EAAOwoB,KAAyBr8E,QACjH3pO,KAAK8rR,cAAc,gBAAiBm6B,KAAsCxkJ,SAAS,EAAOukJ,KAAyBr8E,QACnH3pO,KAAK8rR,cAAc,cAAem6B,KAAsCxkJ,SAAS,EAAOukJ,KAAyBQ,UACjHxmT,KAAK8rR,cAAc,QAASm6B,KAAsCxlJ,QAAQ,EAAOulJ,KAAyBr8E,QAC1G3pO,KAAK8rR,cAAc,iBAAkBm6B,KAAsC1lJ,SAAS,EAAOylJ,KAAyBQ,UACpHxmT,KAAK8rR,cAAc,OAAQm6B,KAAsCxlJ,QAAQ,EAAOulJ,KAAyBQ,UACzGxmT,KAAKm1R,eAAe,MAAO8wB,KAAsC5lJ,OAAQ2lJ,KAAyBQ,UAClGxmT,KAAKm1R,eAAe,OAAQ8wB,KAAsC96C,OAAQ66C,KAAyBQ,UACnGxmT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyBQ,UAC/FxmT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyBQ,UAC/FxmT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyBQ,UAC/FxmT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MAAOxB,KAAyBQ,UAC/FxmT,KAAKksR,QAAQ,GAAGm/B,2CAA2CpF,KAAsC5lJ,OAAS4lJ,KAAsC1lJ,QAAU0lJ,KAAsCxkJ,QACpM,CAKA97B,eACI,MAAO,wBACX,CAIA,YAAIrtH,GACA,OAAOtY,KAAKksR,QAAQ,EACxB,CAIA,iBAAI2hC,GACA,OAAO7tT,KAAKksR,QAAQ,EACxB,CAIA,eAAIglC,GACA,OAAOlxT,KAAKksR,QAAQ,EACxB,CAIA,SAAIk6B,GACA,OAAOpmT,KAAKksR,QAAQ,EACxB,CAIA,kBAAIyrC,GACA,OAAO33T,KAAKksR,QAAQ,EACxB,CAIA,QAAIn9M,GACA,OAAO/uE,KAAKksR,QAAQ,EACxB,CAIA,OAAIyjC,GACA,OAAO3vT,KAAKu2R,SAAS,EACzB,CAIA,QAAI8wB,GACA,OAAOrnT,KAAKu2R,SAAS,EACzB,CAIA,KAAIn1Q,GACA,OAAOphB,KAAKu2R,SAAS,EACzB,CAIA,KAAI17Q,GACA,OAAO7a,KAAKu2R,SAAS,EACzB,CAIA,KAAIhhR,GACA,OAAOvV,KAAKu2R,SAAS,EACzB,CAIA,KAAI3nR,GACA,OAAO5O,KAAKu2R,SAAS,EACzB,CACA2C,cAAc7xJ,EAAUkhL,EAA0BA,MAAM,IAEpD,GADA1kT,MAAMq1R,cAAc7xJ,IACfrnI,KAAK23T,eAAez7B,YAAa,CAClC,IAAI+7B,EAAsB5wL,EAASohL,yBAA0BlzS,GAAMA,EAAEwzS,cAAgBC,KAAyBkP,gBAAkB3P,EAAwBhzS,IACnJ0iT,IACDA,EAAsB,IAAItP,KAAW,kBACrCsP,EAAoB/O,iBAAiBF,KAAyBkP,iBAElED,EAAoB94R,OAAOg9P,UAAUn8R,KAAK23T,eAC9C,CACJ,CACAxrC,YAAYloR,GAER,GADAJ,MAAMsoR,YAAYloR,IACbjE,KAAKumM,QACNtiM,SAAMgjT,mBAAqBjnT,KAAKyzT,aAAaxvT,EAAQ,OAAMA,EAAM8iT,eAC1D/mT,KAEX,GAAIiE,EAAMopB,SAAW24R,KAAyBQ,SAC1CviT,SAAMgjT,mBAAqBjnT,KAAK+/T,iBAAiB97T,GAC1CjE,KAEPA,KAAKu3T,2BACLtzT,EAAMgjT,mBAAqBjnT,KAAK+/T,iBAAiB97T,IAErDjE,KAAKogU,wBAAwBn8T,GAC7B,MAAM09T,EAAc19T,EAAM8jT,qBAAqB,eAC/C9jT,SAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiBoU,EAAa1b,KAAsCxkJ,wBAAwBzhK,KAAKkxT,YAAYlK,6BACjJ/iT,EAAMgjT,mBAAqBjnT,KAAK0gU,uCAAuCz8T,EAAO09T,GAC9E19T,EAAMgjT,mBAAqBjnT,KAAKihU,sCAAsCh9T,OAAOpB,EAAW,IACxFoB,EAAMgjT,mBAAqBjnT,KAAKyzT,aAAaxvT,EAAOjE,KAAKugU,sBAClDvgU,IACX,YCrJG,MAAM4hU,WAAwB7b,KAKjClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBiL,mBAIrCjxT,KAAK6hU,mBAAoB,EAIzB7hU,KAAK8hU,mBAAoB,EAIzB9hU,KAAK+hU,iBAAkB,EACvB/hU,KAAK6rR,WAAY,EACjB7rR,KAAK8rR,cAAc,KAAMm6B,KAAsCzoB,YAAY,EAAOwoB,KAAyBiL,mBAC3GjxT,KAAKm1R,eAAe,QAAS8wB,KAAsCuB,MAAOxB,KAAyB4V,SACnG57T,KAAKksR,QAAQ,GAAGm/B,2CAA2CpF,KAAsC/pI,QAAU+pI,KAAsC1lJ,QAAU0lJ,KAAsCxkJ,SACjMzhK,KAAKksR,QAAQ,GAAG2vC,mBAAoB,CACxC,CAKAl2L,eACI,MAAO,iBACX,CAIA,MAAI2lL,GACA,OAAOtrT,KAAKksR,QAAQ,EACxB,CAIA,SAAIznJ,GACA,OAAOzkI,KAAKu2R,SAAS,EACzB,CAKAmE,WAAWz2R,GACPA,EAAMsiT,qBAAqB,iBAC/B,CACA,UAAIl5R,GAIA,OAHKrtB,KAAKsrT,GAAGpvB,aAGTl8R,KAAKsrT,GAAG0Q,YAAYtiC,QACbssB,KAAyBiL,kBAE7BjL,KAAyBQ,QACpC,CACAiY,YAAYngN,GAER,OADsBA,EAAM0jN,yBAAoBn/T,EAAW7C,KAAK6hU,kBAAmB7hU,KAAK+hU,qBAAiBl/T,EAAW7C,KAAK8hU,mBACpGG,aACzB,CACAh0R,KAAKlyB,EAAQ8qS,GACT,MAAMtgH,EAAUvmM,KAAKy+T,YAAY5X,EAAaliL,YAC9C5oH,EAAO8vH,WAAW7rI,KAAKq6T,aAAc9zH,EACzC,CACA2yH,kBAAkBj1T,GACd,MAAM6nT,EAAU9rT,KAAKsrT,GAcrB,GAbIQ,EAAQz/B,eAAeiM,WAAWoB,UACRoyB,EAAQz/B,eAAeiM,WAC1BowB,aACnBzkT,EAAM0iT,uBAAuBmF,EAAQ9E,uBAAwB8E,EAAQ15S,OAAS6zS,KAAsC1lJ,QAC9G0lJ,KAAsC1lJ,QACtCurJ,EAAQ15S,OAAS6zS,KAAsCxkJ,QACnDwkJ,KAAsCxkJ,QACtCwkJ,KAAsC/pI,UAGxDl8K,KAAKi9T,YAAc,QAAUnR,EAAQ9E,uBACrC/iT,EAAMqjT,uBAAuBtnT,KAAKi9T,YAAahX,KAAsC/pI,SACrFj4K,EAAMgjT,mBAAsB,GAAEjnT,KAAKi9T,iBAAiBnR,EAAQ9E,+BACvDhnT,KAAKu2R,SAASx1Q,KAAMhB,GAAMA,EAAEs9S,2BAGjC,CAAAr9T,KAAKs9T,kBAAkBr5T,GAAO,GAC9B,UAAWk7B,KAAUn/B,KAAKu2R,SAClBp3P,EAAOsvR,cACPzuT,KAAKu9T,aAAat5T,EAAOk7B,EAAQ,KAAK,EAAI,CAGtD,CACAm+R,kBAAkBr5T,EAAO+5T,GAAa,GAClC,MAAMlS,EAAU9rT,KAAKsrT,GACrB,GAAI0S,EAAY,CACZ,GAAI/5T,EAAMopB,SAAW24R,KAAyBQ,SAC1C,OAEJ,MAAM0b,EAA2C,IAAzBj+T,EAAMuyM,eACvB,aAAYx2M,KAAKq6T,gBACjB,sBAAqBr6T,KAAKq6T,iBAAiBr6T,KAAKq6T,aAAgB,aACjE+D,EAAsC,IAAzBn6T,EAAMuyM,eAAiD,GAAK,MAE/E,YADAvyM,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiBvtT,KAAK+9T,iBAAkB9X,KAAsCxkJ,cAAcygK,KAAmBpW,EAAQ9E,4BAA4BoX,QAE3L,CACA,MAAM8D,EAA2C,IAAzBj+T,EAAMuyM,eACvB,aAAYx2M,KAAKq6T,gBACjB,iBAAgBr6T,KAAKq6T,iBAAiBr6T,KAAKq6T,aAAgB,aAKlEp2T,EAAMgjT,mBAJFjnT,KAAKsrT,GAAGhzB,WAAWjrQ,SAAW24R,KAAyBQ,SAI/B,GAAEviT,EAAMspT,iBAAiBvtT,KAAK+9T,iBAAkB9X,KAAsCxkJ,cAAcygK,KAAmBliU,KAAKi9T,kBAHxH,GAAEh5T,EAAMspT,iBAAiBvtT,KAAK+9T,iBAAkB9X,KAAsCxkJ,cAAcygK,KAAmBpW,EAAQ9E,+BAInK,CACAuW,aAAat5T,EAAOk7B,EAAQ++R,EAASF,GAAa,GAC9C,GAAIA,EAAJ,CACI,GAAI/5T,EAAMopB,SAAW24R,KAAyBQ,SAC1C,OAEJviT,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAe/nR,QAAan/B,KAAK+9T,oBAAoBG,MAE7F,MAKAj6T,EAAMgjT,mBAAsB,GAAEhjT,EAAMijT,eAAe/nR,QAAan/B,KAAK+9T,oBAAoBG,MAC7F,CACA/xC,YAAYloR,GAOR,GANAJ,MAAMsoR,YAAYloR,GAClBjE,KAAKq6T,aAAep2T,EAAM8jT,qBAAqB/nT,KAAKuG,KAAO,WAC3DvG,KAAK+9T,iBAAmB95T,EAAM8jT,qBAAqB,mBAC/C9jT,EAAM2iT,WAAWgB,eAAe9iR,QAAQ9kC,MAAQ,GAChDiE,EAAM2iT,WAAWgB,eAAe3pS,KAAKje,MAErCiE,EAAMopB,SAAW24R,KAAyBQ,SAI1C,OAFAviT,EAAM4jT,eAAe7nT,KAAKq6T,mBAC1Br6T,KAAKk5T,kBAAkBj1T,GAI3B,GAAKjE,KAAKu2R,SAASx1Q,KAAMhB,GAAMA,EAAEu+S,6BAGjCr6T,GAAM4jT,eAAe7nT,KAAKq6T,cAC1Br6T,KAAKs9T,kBAAkBr5T,GACvB,UAAWk7B,KAAUn/B,KAAKu2R,SAClBp3P,EAAOsvR,cACPzuT,KAAKu9T,aAAat5T,EAAOk7B,EAAQ,KAGzC,OAAOn/B,IAAA,CACX,CACAolI,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBw8L,kBAAoB7hU,KAAK6hU,kBAC7Cx8L,EAAoBy8L,kBAAoB9hU,KAAK8hU,kBAC7Cz8L,EAAoB08L,gBAAkB/hU,KAAK+hU,gBACpC18L,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC9+J,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC/C3iK,KAAK6hU,kBAAoBx8L,EAAoBw8L,kBAC7C7hU,KAAK8hU,oBAAsBz8L,EAAoBy8L,kBAC/C9hU,KAAK+hU,gBAAkB18L,EAAoB08L,eAC/C,GAEJl/J,SAAW,IACP00H,MAAuB,uBAAwB,EAAwC,WAAY,CAC/FQ,UAAU,EACV06B,UAAW,CACP0P,wBAAwB,EACxBp0R,SAAUA,CAACuwE,EAAO3gG,KAEd,IAAIykT,GAAS,EACb,OAFwBzkT,EAEJkkT,oBAFIlkT,EAGJmkT,mBAAoB,EACpCM,GAAS,GAET9jN,GACAA,EAAM+jN,uBAEHD,OAIpBR,GAAgBr9R,UAAW,yBAAqB,IAAM,EACzDs+H,OAAW,IACP00H,MAAuB,uBAAwB,EAAwC,WAAY,CAC/Fk7B,UAAW,CACP0P,wBAAwB,EACxBp0R,SAAUA,CAACuwE,EAAO3gG,KAEd,IAAIykT,GAAS,EACb,OAFwBzkT,EAEJmkT,oBAFInkT,EAGJkkT,mBAAoB,EACpCO,GAAS,GAET9jN,GACAA,EAAM+jN,uBAEHD,OAIpBR,GAAgBr9R,UAAW,yBAAqB,IAAM,EACzDs+H,OAAW,IACP00H,MAAuB,sBAAuB,EAAwC,WAAY,CAC9Fk7B,UAAW,CAAE0P,wBAAwB,EAAMp0R,SAAWuwE,GAAUA,GAAO+jN,2BAE5ET,GAAgBr9R,UAAW,uBAAmB,IAAM,EACvDs6H,OAAc,0BAA2B+iK,KCpGzC/iK,SAAc,0BApHP,MAAMyjK,WAAwBvc,KAKjClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyBiL,mBAAmB,GACxDjxT,KAAK8rR,cAAc,gBAAiBm6B,KAAsCxkJ,SAAS,EACvF,CAKA97B,eACI,MAAO,iBACX,CAKA+0J,WAAWz2R,GACPA,EAAMsiT,qBAAqB,cAC3BtiT,EAAMsiT,qBAAqB,iBAC3BtiT,EAAMsiT,qBAAqB,eAC3BtiT,EAAMsiT,qBAAqB,kBAC3BtiT,EAAMsiT,qBAAqB,eAC3BtiT,EAAMsiT,qBAAqB,kBAC3BtiT,EAAMsiT,qBAAqB,eAC3BtiT,EAAMsiT,qBAAqB,kBAC3BtiT,EAAMsiT,qBAAqB,eAC3BtiT,EAAMsiT,qBAAqB,kBAC3BtiT,EAAMsiT,qBAAqB,eAC3BtiT,EAAMsiT,qBAAqB,kBAC3BvmT,KAAK4sR,uBAAuB3oR,EAAMuyM,eACtC,CACMo2E,uBAAuBp2E,GAAgB,IAAAt2M,EAAAF,KAAA,SAAAG,KAAA,YACzCD,EAAK+nT,cAAe,EACG,IAAnBzxG,QACM7+L,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,eAIE1uK,QAAQyE,IAAI,CACdzE,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,QACA1uK,QAAAC,UAAAvX,KAAAgmL,EAAAp4I,KAAAo4I,EAAA,UAGRnmL,EAAK+nT,cAAe,EACpB/nT,EAAKgoT,wBAAwBlnJ,gBAAgB9gK,EAAM,EAnBV,EAoB7C,CAIA,iBAAI2tT,GACA,OAAO7tT,KAAKksR,QAAQ,EACxB,CACA,UAAI7+P,GACA,OAAO24R,KAAyBiL,iBACpC,CACA,UAAI5jS,CAAO9a,GAAS,CACpBqzH,eAAe+7B,EAAMklJ,EAAcx2H,GAC/B,MAAM/xE,EAAQqjD,EAAKh9B,WAEb49L,KAAiB1b,EAAa2b,YAAclkN,EAAMkkN,YAClDC,KAAiB5b,EAAa6b,YAAcpkN,EAAMokN,YAClDC,MAAiB9b,EAAa+b,YAActkN,EAAMskN,YAClDC,MAAiBhc,EAAaic,YAAcxkN,EAAMwkN,YAClDC,MAAiBlc,EAAamc,YAAc1kN,EAAM0kN,YACxD3yI,EAAQnkK,SAAS,eANM26R,EAAajiL,WAAatmB,EAAMsmB,YAMV,GAC7CyrD,EAAQnkK,SAAS,aAAcq2S,GAAe,GAC9ClyI,EAAQnkK,SAAS,aAAcu2S,GAAe,GAC9CpyI,EAAQnkK,SAAS,aAAcy2S,IAAe,GAC9CtyI,EAAQnkK,SAAS,aAAc22S,IAAe,GAC9CxyI,EAAQnkK,SAAS,aAAc62S,IAAe,EAClD,CACA90R,KAAKlyB,EAAQ8qS,EAAcllJ,GACvB,IAAKA,EACD,OAEJ,MAAMrjD,EAAQqjD,EAAKh9B,YACnBs+L,SAAclnT,EAAQ8qS,EAAcvoM,EACxC,CACA6tK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMwiT,EAAY,KAAIzmT,KAAKuG,OAC3B,GAAItC,EAAMopB,SAAW24R,KAAyBQ,SAAU,CAEpD,MAAM8O,EAAWt1T,KAAK6tT,cAatB,OAZA5pT,EAAMyiT,yBAAyB,6BAA8BD,EAAU,CACnE0D,eAAgB,CAAC,CAAEx/M,OAAQ,+BAAgC1lG,QAAS,OAExEhB,EAAMgjT,mBAAqBhjT,EAAMimT,qBAAqB,kBAAmBzD,EAAU,CAC/E0D,eAAgB,CAAC,CAAEx/M,OAAQ,YAAa1lG,QAASqwT,EAAStO,2BAE9D/iT,EAAM0iT,uBAAuB,aAAcV,KAAsCxkJ,SACjFx9J,EAAM0iT,uBAAuB,cAAeV,KAAsCxkJ,SAClFx9J,EAAM0iT,uBAAuB,cAAeV,KAAsCxkJ,SAClFx9J,EAAM0iT,uBAAuB,cAAeV,KAAsCxkJ,SAClFx9J,EAAM0iT,uBAAuB,cAAeV,KAAsCxkJ,cAClFx9J,EAAM0iT,uBAAuB,cAAeV,KAAsCxkJ,QAEtF,CAEAx9J,SAAM2iT,WAAWgB,eAAe3pS,KAAKje,MACrCiE,EAAM2iT,WAAWgD,kBAAkB3rS,KAAKje,MACxCiE,EAAMyiT,yBAAyB,+BAAgCD,GAC/DxiT,EAAMgjT,mBAAqBhjT,EAAMimT,qBAAqB,oBAAqBzD,GACpEzmT,IACX,kPCwFJ6+J,SAAc,8BAxMP,MAAMqkK,WAA4Bnd,KAIrC,WAAIx/G,GACA,OAAO,IACX,CACA,WAAIA,CAAQh0L,GAEZ,CAMA1S,YAAY0G,EAAM8mB,EAAS24R,KAAyBiL,mBAChDptT,MAAM0C,EAAM8mB,GAAQ,GACpBrtB,KAAKm1R,eAAe,WAAY8wB,KAAsC9xS,OAAQ6xS,KAAyBiL,kBAAmB,IAAI3L,GAAwC,WAAYtlT,KAAM,EAAqDi6T,GAAkB,qBAC/Pj6T,KAAKm1R,eAAe,gBAAiB8wB,KAAsC9xS,OAAQ6xS,KAAyBiL,kBAAmB,IAAI3L,GAAwC,gBAAiBtlT,KAAM,EAAqDi6T,GAAkB,qBACzQj6T,KAAKm1R,eAAe,QAAS8wB,KAAsC9xS,OAAQ6xS,KAAyBiL,kBAAmB,IAAI3L,GAAwC,QAAStlT,KAAM,EAAqDi6T,GAAkB,qBACzPj6T,KAAKm1R,eAAe,cAAe8wB,KAAsC9xS,OAAQ6xS,KAAyBiL,kBAAmB,IAAI3L,GAAwC,cAAetlT,KAAM,EAAqDi6T,GAAkB,qBACrQj6T,KAAKm1R,eAAe,SAAU8wB,KAAsC9xS,OAAQ6xS,KAAyBiL,kBAAmB,IAAI3L,GAAwC,SAAUtlT,KAAM,EAAqDi6T,GAAkB,qBAC3Pj6T,KAAKm1R,eAAe,cAAe8wB,KAAsC9xS,OAAQ6xS,KAAyBiL,kBAAmB,IAAI3L,GAAwC,cAAetlT,KAAM,EAAqDi6T,GAAkB,oBACzQ,CAMAkB,eAAeh8R,GACX,OAAIA,IAAWn/B,KAAKu2R,SAAS,GAClBv2R,KAAKmjU,qBAEZhkS,IAAWn/B,KAAKu2R,SAAS,GAClBv2R,KAAKojU,0BAEZjkS,IAAWn/B,KAAKu2R,SAAS,GAClBv2R,KAAKqjU,kBAEZlkS,IAAWn/B,KAAKu2R,SAAS,GAClBv2R,KAAKsjU,6BAEZnkS,IAAWn/B,KAAKu2R,SAAS,GAClBv2R,KAAKujU,mBAEZpkS,IAAWn/B,KAAKu2R,SAAS,GAClBv2R,KAAKwjU,wBAET,EACX,CAIA,YAAIlrT,GACA,OAAOtY,KAAKu2R,SAAS,EACzB,CAIA,iBAAIs/B,GACA,OAAO71T,KAAKu2R,SAAS,EACzB,CAIA,SAAI9xJ,GACA,OAAOzkI,KAAKu2R,SAAS,EACzB,CAIA,eAAIq/B,GACA,OAAO51T,KAAKu2R,SAAS,EACzB,CAIA,UAAIppG,GACA,OAAOntL,KAAKu2R,SAAS,EACzB,CAIA,eAAI26B,GACA,OAAOlxT,KAAKu2R,SAAS,EACzB,CAIA,uBAAIktC,GACA,OAAOzjU,KAAKmjU,oBAChB,CAIA,4BAAIO,GACA,OAAO1jU,KAAKojU,yBAChB,CAIA,qBAAIrR,GACA,OAAO/xT,KAAKujU,kBAChB,CAIA,0BAAII,GACA,OAAO3jU,KAAKwjU,uBAChB,CAIA,oBAAII,GACA,OAAO5jU,KAAKqjU,iBAChB,CAIA,0BAAIQ,GACA,OAAO7jU,KAAKsjU,4BAChB,CAKA39L,eACI,MAAO,qBACX,CACAwmJ,YAAYloR,GAER,GADAJ,MAAMsoR,YAAYloR,GACdA,EAAMopB,SAAW24R,KAAyBr8E,OAG9C,OAAA3pO,KAAKmjU,qBAAuB,yBAC5BnjU,KAAKqjU,kBAAoB,sBACzBrjU,KAAKujU,mBAAqB,uBAC1BvjU,KAAKwjU,wBAA0B,4BAC/BxjU,KAAKojU,0BAA4B,8BACjCpjU,KAAKsjU,6BAA+B,iCAEpCr/T,EAAM2iT,WAAWkd,cAAcC,uBAAyB,EACxD9/T,EAAM2iT,WAAWkd,cAAcE,oBAAsB,EACrD//T,EAAM2iT,WAAWkd,cAAcG,qBAAuB,EACtDhgU,EAAM2iT,WAAWkd,cAAcI,0BAA4B,EAC3DjgU,EAAM2iT,WAAWkd,cAAcK,4BAA8B,EAC7DlgU,EAAM2iT,WAAWkd,cAAcM,+BAAiC,EAEhEngU,EAAM2iT,WAAW4T,cAAcv8S,KAAKje,MACpCiE,EAAM2iT,WAAWgB,eAAe3pS,KAAKje,MACjCA,KAAKsY,SAAS4jR,aACdj4R,EAAM4jT,eAAe7nT,KAAKmjU,sBAE1BnjU,KAAKykI,MAAMy3J,aACXj4R,EAAM4jT,eAAe7nT,KAAKqjU,mBAE1BrjU,KAAKmtL,OAAO+uG,aACZj4R,EAAM4jT,eAAe7nT,KAAKujU,oBAE1BvjU,KAAKkxT,YAAYh1B,aACjBj4R,EAAM4jT,eAAe7nT,KAAKwjU,yBAE1BxjU,KAAK61T,cAAc35B,aACnBj4R,EAAM4jT,eAAe7nT,KAAKojU,2BAE1BpjU,KAAK41T,YAAY15B,aACjBj4R,EAAM4jT,eAAe7nT,KAAKsjU,8BAEvBtjU,IACX,CACAiuC,KAAKlyB,EAAQ8qS,GAET,MAAMwd,EADQxd,EAAaliL,WACG2/L,wBAC9B,IAAKD,EACD,OAEJ,MAAME,EAAUF,EAAgBG,UAC3BD,EAAQ3yL,WAGT5xI,KAAKsY,SAAS4jR,aACdngR,EAAO8vH,WAAW7rI,KAAKmjU,qBAAsBoB,EAAQ3yL,SAASyyL,EAAgBI,SAAS,KAEvFzkU,KAAK61T,cAAc35B,aACnBngR,EAAO8vH,WAAW7rI,KAAKojU,0BAA2BmB,EAAQ3yL,SAASyyL,EAAgBI,SAAS,KAE5FzkU,KAAKykI,MAAMy3J,aACXngR,EAAO8vH,WAAW7rI,KAAKqjU,kBAAmBkB,EAAQ3yL,SAASyyL,EAAgBI,SAAS,KAEpFzkU,KAAK41T,YAAY15B,aACjBngR,EAAO8vH,WAAW7rI,KAAKsjU,6BAA8BiB,EAAQ3yL,SAASyyL,EAAgBI,SAAS,MAE/FzkU,KAAKmtL,OAAO+uG,aACZngR,EAAO8vH,WAAW7rI,KAAKujU,mBAAoBgB,EAAQ3yL,SAASyyL,EAAgBI,SAAS,KAErFzkU,KAAKkxT,YAAYh1B,aACjBngR,EAAO8vH,WAAW7rI,KAAKwjU,wBAAyBe,EAAQ3yL,SAASyyL,EAAgBI,SAAS,KAElG,KCpFJ5lK,SAAc,sCArHP,MAAM6lK,WAAoC3e,KAE7C,aAAIpa,GACA,OAAO3rS,KAAK4rS,UAChB,CAIA,UAAIv+Q,GACA,MAAM87B,EAAQnpD,KAAKksR,QAAQ,GAC3B,GAAI/iO,EAAM+yO,YAAa,CACnB,MAAMv+Q,EAAQwrC,EAAMkjO,eAAeiM,WACnC,GAAI36Q,EAAM0P,SAAW24R,KAAyBiL,kBAC1C,OAAOtzS,EAAM0P,OAEjB,GAAI87B,EAAMkjO,eAAeh/P,SAAW24R,KAAyBiL,kBACzD,OAAO9nQ,EAAMkjO,eAAeh/P,MAEpC,CACA,OAAOrtB,KAAK6/J,OAChB,CACA,UAAIxyI,CAAO9a,GACFvS,KAAK6/J,QAAUttJ,IAGpBvS,KAAK6/J,QAAUttJ,EACnB,CAKA1S,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK4rS,WAAa,GAClB5rS,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,WACtE,CAKA73J,eACI,MAAO,6BACX,CAIA,SAAIx8E,GACA,OAAOnpD,KAAKksR,QAAQ,EACxB,CAIAoyC,8BACI,OAAOt+T,KAAK2rS,UAAU5qR,KAAMhD,GAAMA,EAAEohB,OAAOm/R,4BAC/C,CACA7hC,UAAUH,EAAaD,GACnB,IAAIG,EAAa34R,MAAM44R,UAAUH,EAAaD,GAC9C,UAAWyP,KAAY9rS,KAAK2rS,WACgB,IAApCtP,EAAcv3P,QAAQgnQ,KACtBtP,GAAcsP,EAASrP,UAAUH,EAAaD,IAGtD,OAAOG,CACX,CAMAuP,eAAepuR,GACX,UAAWmuR,KAAY9rS,KAAK2rS,UAIxB,GAHIG,IAAanuR,GAGbmuR,EAASC,eAAepuR,GACxB,OAAO,EAGf,OAAO,CACX,CAKA09Q,iBAAiByQ,GACbA,EAASx5P,SACTtyC,KAAK4rS,WAAW3tR,KAAK6tR,GACrBA,EAASz6G,YAAcrxL,KACvB8rS,EAASvV,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GAC1D4f,EAAS1Q,wBAA0B,KACnC0Q,EAASvlS,KAAO,KAAOvG,KAAKuG,KAC5BvG,KAAKu2R,SAAWv2R,KAAK4rS,WAAWvlS,IAAK0X,GAAMA,EAAEohB,OACjD,CAKA+sQ,mBAAmBJ,GACf,MAAMnxR,EAAQ3a,KAAK4rS,WAAW9mQ,QAAQgnQ,IACxB,IAAVnxR,IACA3a,KAAK4rS,WAAWrwR,OAAOZ,EAAO,GAC9BmxR,EAASvV,SAAS,GAAGqB,sBAAwB,KAC7CkU,EAASz6G,YAAc,KACvBrxL,KAAKu2R,SAAWv2R,KAAK4rS,WAAWvlS,IAAK0X,GAAMA,EAAEohB,QAErD,CAIAsiB,UACI59C,MAAM49C,UACN,UAAWqqP,KAAY9rS,KAAK4rS,WACxB5rS,KAAKksS,mBAAmBJ,GAE5B9rS,KAAK4rS,WAAa,EACtB,KCHJ/sI,SAAc,uCAhHP,MAAM8lK,WAAqC5e,KAK9ClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SAErC57T,KAAKqxL,YAAc,KAEnBrxL,KAAKo7R,wBAA0B,KAC/Bp7R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,aACxE,CAIA,cAAIrmG,GACA,OAAOtxL,KAAKqxL,WAChB,CAKA1rD,eACI,MAAO,8BACX,CAIA,UAAIxmG,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CAIA,UAAIlpQ,GACA,OAAOrtB,KAAKqxL,YAAcrxL,KAAKqxL,YAAYhkK,OAASrtB,KAAK6/J,OAC7D,CACA,UAAIxyI,CAAO9a,GACFvS,KAAK6/J,QAAUttJ,IAGpBvS,KAAK6/J,QAAUttJ,EACnB,CAEA+/B,SACStyC,KAAKqxL,aAGVrxL,KAAKqxL,YAAY66G,mBAAmBlsS,KACxC,CACAmsR,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GACdjE,KAAKsxL,aACLrtL,EAAMgjT,mBAAqBhjT,EAAMijT,eAAelnT,KAAKm/B,QAAW,MAAKn/B,KAAKsxL,WAAWnoI,MAAM69P,4BAEnG,CAOA5jT,MAAMk7G,EAAOqkD,EAAU,IACnB,MAAMv/J,EAAQS,MAAMT,MAAMk7G,EAAOqkD,GACjC,OAAI3iK,KAAKsxL,YACLtxL,KAAKsxL,WAAW+pG,iBAAiBj4R,GAE9BA,CACX,CACAipS,iBAAiBpoS,EAAO2gU,GAChB5kU,KAAKsxL,YACLtxL,KAAKsxL,WAAWt5K,MAAM/T,EAAO2gU,EAErC,CACAnoC,UAAUH,EAAaD,GACnB,IAAIG,EAAa,GACjB,OAAIx8R,KAAKsxL,aAC0C,IAA3C+qG,EAAcv3P,QAAQ9kC,KAAKsxL,cAC3BkrG,GAAcx8R,KAAKsxL,WAAWmrG,UAAUH,EAAaD,IAGtDG,EAAa34R,MAAM44R,UAAUH,EAAaD,EACrD,CACAK,8BAA8BL,GAC1B,IAAIG,EAAa34R,MAAM64R,8BAA8BL,GACrD,OAAIr8R,KAAKsxL,aACLkrG,GAAcx8R,KAAKsxL,WAAWorG,8BAA8BL,IAEzDG,CACX,CACArF,sBACI,IAAIqF,EAAa34R,MAAMszR,sBACvB,OAAIn3R,KAAKsxL,aACLkrG,GAAe,GAAEx8R,KAAKsxL,WAAW+lG,sCAAsCr3R,KAAKq3R,yBAEzEmF,CACX,CAKAp3J,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBisD,WAAatxL,KAAKsxL,YAAYzO,UAAY,GACvDx9C,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC9+J,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC/C3iK,KAAKo7R,wBAA0B/1J,EAAoBisD,UACvD,2BC1FJzyB,SAAc,mBAtBP,MAAMgmK,WAAiBC,KAK1BjlU,YAAY0G,GACR1C,MAAM0C,EACV,CAKAo/H,eACI,MAAO,UACX,CACAwmJ,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,MAAKv2R,KAAKk2I,KAAK8wK,4BAA4BhnT,KAAKizN,MAAM+zF,4BAC1GhnT,IACX,KC0BJ6+J,SAAc,qBA5CP,MAAMkmK,WAAmBhf,KAK5BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAK8rR,cAAc,SAAUm6B,KAAsCuB,OACnExnT,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,EAC1D,CAKAvmJ,eACI,MAAO,YACX,CAIA,SAAIx8E,GACA,OAAOnpD,KAAKksR,QAAQ,EACxB,CAIA,UAAI/2B,GACA,OAAOn1P,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,MAAKv2R,KAAKmpD,MAAM69P,4BAA4BhnT,KAAKm1P,OAAO6xD,4BAC5GhnT,IACX,ICxCG,MAAMglU,WAAmBjf,KAK5BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SAErC57T,KAAKwpD,QAAU,EAEfxpD,KAAKypD,QAAU,EACfzpD,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,EAC1D,CAKAvmJ,eACI,MAAO,YACX,CAIA,SAAIpzH,GACA,OAAOvS,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMk7B,EAASn/B,KAAKu2R,SAAS,GACvB0uC,EAAgC,IAAzBhhU,EAAMuyM,eAAiDvyM,EAAMgyT,eAAej2T,KAAKuS,MAAMH,MAAQ,GAC5GnO,SAAMgjT,mBACFhjT,EAAMijT,eAAe/nR,GAChB,YAAWn/B,KAAKuS,MAAMy0S,2BAA2Bie,KAAQjlU,KAAKklU,YAAYllU,KAAKwpD,cAAcy7Q,KAAQjlU,KAAKklU,YAAYllU,KAAKypD,gBAC7HzpD,IACX,CACAm3R,sBACI,IAAIqF,EAAa34R,MAAMszR,sBAAyB,GAAEn3R,KAAKq3R,+BAA+Br3R,KAAKwpD,aAC3FgzO,UAAe,GAAEx8R,KAAKq3R,+BAA+Br3R,KAAKypD,aACnD+yO,CACX,CACAp3J,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoB77E,QAAUxpD,KAAKwpD,QACnC67E,EAAoB57E,QAAUzpD,KAAKypD,QAC5B47E,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC9+J,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC/C3iK,KAAKwpD,QAAU67E,EAAoB77E,QACnCxpD,KAAKypD,QAAU47E,EAAoB57E,OACvC,GAEJo5G,SAAW,IACP00H,MAAuB,UAAW,OAAsC10R,EAAW,CAAEk1R,UAAU,KAChGitC,GAAWzgS,UAAW,eAAW,IAAM,EAC1Cs+H,OAAW,IACP00H,MAAuB,UAAW,OAAsC10R,EAAW,CAAEk1R,UAAU,KAChGitC,GAAWzgS,UAAW,eAAW,IAAM,EAC1Cs6H,OAAc,qBAAsBmmK,KClBpCnmK,SAAc,qBAlDP,MAAMsmK,WAAmBpf,KAK5BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,OAAQm6B,KAAsCzoB,YACjEx9R,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsC1lJ,SACpEvgK,KAAKolU,qBAAqB,EAAG,GAC7BplU,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCuB,OACxFxnT,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,QACxFzgK,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsC/pI,SACxFl8K,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCuB,OACxFxnT,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,QACxFzgK,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsC/pI,QAC5F,CAKAv2C,eACI,MAAO,YACX,CAIA,QAAIuQ,GACA,OAAOl2I,KAAKksR,QAAQ,EACxB,CAIA,SAAIj5D,GACA,OAAOjzN,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,YAAWv2R,KAAKk2I,KAAK8wK,+BAA+BhnT,KAAKizN,MAAM+zF,iCACnHhnT,IACX,KC0FJ6+J,SAAc,sBAxIP,MAAMymK,WAAoBvf,KAI7B,WAAIx5R,GACA,OAAOvsB,KAAKmiD,QAChB,CACA,WAAI51B,CAAQA,GACRvsB,KAAKulU,oBAAoBh5S,EAC7B,CAKA1sB,YAAY0G,GACR1C,MAAM0C,EACV,CAKAo/H,eACI,MAAO,aACX,CACAwmJ,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,IAAI04D,EAAO38D,KAAKwlU,MACZC,EAAezlU,KAAKmiD,SAASsjR,aAEjCzlU,KAAKksR,QAAQjsQ,QAASkpC,IAClB,MAAMu8Q,EAAO,IAAI/jI,OAAO,WAAax4I,EAAM5iD,KAAO,MAAO,MACnD6L,EAAOnO,EAAM0hU,WAAWx8Q,EAAM/2C,MACpCuqD,EAAOA,EAAK13D,QAAQygU,EAAMtzT,GAC1BqzT,EAAeA,EAAaxgU,QAAQygU,EAAMtzT,EAAI,GAElDpS,KAAKu2R,SAASt2Q,QAASkf,IACnB,MAAMumS,EAAO,IAAI/jI,OAAO,WAAaxiK,EAAO54B,KAAO,MAAO,MACpD6L,EAAOnO,EAAM0hU,WAAWxmS,EAAO/sB,MACrCuqD,EAAOA,EAAK13D,QAAQygU,EAAMtzT,GAC1BqzT,EAAeA,EAAaxgU,QAAQygU,EAAMtzT,EAAI,GAElDnO,EAAMmxT,cAAcqQ,EAAc9oQ,EAAM,IAExC38D,KAAKu2R,SAASt2Q,QAASkf,IACnBl7B,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe/nR,GAAU,QAG9Dl7B,EAAMgjT,mBAAqBwe,EAAe,IAC1C,IAAIG,GAAW,EACf,OAAA5lU,KAAKksR,QAAQjsQ,QAAQ,CAACkpC,EAAOxuC,KACrBA,EAAQ,IACR1W,EAAMgjT,mBAAqB,MAE3BjnT,KAAK6lU,iBAA8D,IAA5C7lU,KAAK6lU,eAAe/gS,QAAQqkB,EAAM5iD,MACzDtC,EAAMgjT,mBAAqB99P,EAAMkjO,gBAAgBiM,YAAY7gD,aAAetuL,EAAM69P,uBAGlF/iT,EAAMgjT,mBAAqB99P,EAAM69P,uBAErC4e,GAAW,IAEf5lU,KAAKu2R,SAASt2Q,QAAQ,CAACkf,EAAQxkB,MACvBA,EAAQ,GAAKirT,KACb3hU,EAAMgjT,mBAAqB,MAE/BhjT,EAAMgjT,mBAAqB9nR,EAAO6nR,yBAEtC/iT,EAAMgjT,mBAAqB,OACpBjnT,IACX,CACAm3R,sBACI,IAAIqF,EAAa34R,MAAMszR,sBACvBqF,UAAe,GAAEx8R,KAAKq3R,+BAA+BjnQ,KAAKC,UAAUrwB,KAAKmiD,eAClEq6O,CACX,CACAp3J,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoB94G,QAAUvsB,KAAKmiD,SAC5BkjF,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC3iK,KAAKulU,oBAAoBlgM,EAAoB94G,SAC7C1oB,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,EACnD,CACA4iK,oBAAoBh5S,GAChBvsB,KAAKmiD,SAAW51B,EAChBvsB,KAAKwlU,MAAQj5S,EAAQowC,KAAKzyD,KAAK,MAAQ,KACvClK,KAAKuG,KAAOvG,KAAKuG,MAAQgmB,EAAQhmB,KACjCvG,KAAKqtB,OAAS24R,KAAyBz5R,EAAQc,QAC/Cd,EAAQu5S,cAAc7lT,QAAQ,CAACkpC,EAAOxuC,KAClC,MAAMvI,EAAO6zS,KAAsC98P,EAAM/2C,MACtC,cAAf+2C,EAAM/2C,MAAuC,gBAAf+2C,EAAM/2C,MACpCpS,KAAK6lU,eAAiB7lU,KAAK6lU,gBAAkB,GAC7C7lU,KAAK6lU,eAAe5nT,KAAKkrC,EAAM5iD,MAC/BvG,KAAK8rR,cAAc3iO,EAAM5iD,KAAM0/S,KAAsC9xS,QAAQ,EAAM6xS,KAAyBiL,kBAAmB,IAAI3L,GAAwCn8P,EAAM5iD,KAAMvG,KAAM,EAAoDi6T,GAAkB,sBAGnQj6T,KAAK8rR,cAAc3iO,EAAM5iD,KAAM6L,GAEnC+B,OAAOwzB,eAAe3nC,KAAMmpD,EAAM5iD,KAAM,CACpCzD,IAAK,WACD,OAAO9C,KAAKksR,QAAQvxQ,EACxB,EACAktB,YAAY,EACZE,cAAc,GACjB,GAELxb,EAAQw5S,eAAe9lT,QAAQ,CAACkf,EAAQxkB,KACpC3a,KAAKm1R,eAAeh2P,EAAO54B,KAAM0/S,KAAsC9mR,EAAO/sB,OAC9E+B,OAAOwzB,eAAe3nC,KAAMm/B,EAAO54B,KAAM,CACrCzD,IAAK,WACD,OAAO9C,KAAKu2R,SAAS57Q,EACzB,EACAktB,YAAY,EACZE,cAAc,IAEE,iBAAhB5I,EAAO/sB,OACPpS,KAAKu2R,SAAS57Q,GAAOi9Q,sBAAwB53R,KAAKgmU,iBAAiB7mS,EAAO8mS,eAAe,GAAC,GAGlG15S,EAAQ25S,yBAAyBjmT,QAASkmT,IACtCnmU,KAAKolU,qBAAqBplU,KAAKgmU,iBAAiBG,EAAWC,QAAQ,GAAIpmU,KAAKgmU,iBAAiBG,EAAWE,QAAQ,GAAE,EAE1H,CACAL,iBAAiBz/T,GACb,IAAKA,EACD,OAAO,KAEX,QAASkX,EAAI,EAAGA,EAAIzd,KAAKksR,QAAQx2Q,OAAQ+H,IACrC,GAAIzd,KAAKksR,QAAQzuQ,GAAGlX,OAASA,EACzB,MAAO,CAACvG,KAAKksR,QAAQzuQ,GAAIA,GAGjC,OAAO,IACX,KCxFJohJ,SAAc,mBAhDP,MAAMynK,WAAiBvgB,KAK1BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,OAAQm6B,KAAsCzoB,YACjEx9R,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCuB,OACpExnT,KAAKolU,qBAAqB,EAAG,GAC7BplU,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCuB,OACxFxnT,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,QACxFzgK,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCuB,OACxFxnT,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,OAC5F,CAKA96B,eACI,MAAO,UACX,CAIA,QAAIuQ,GACA,OAAOl2I,KAAKksR,QAAQ,EACxB,CAIA,SAAIj5D,GACA,OAAOjzN,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,UAASv2R,KAAKk2I,KAAK8wK,2BAA2BhnT,KAAKizN,MAAM+zF,6BAC7GhnT,IACX,cCNJ6+J,SAAc,yBAxCP,MAAM0nK,WAAuBxgB,KAKhClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GACtDlsR,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCuB,OACxFxnT,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,OAC5F,CAKA96B,eACI,MAAO,gBACX,CAIA,SAAIx8E,GACA,OAAOnpD,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MACMklD,EAAQnpD,KAAKksR,QAAQ,GAC3BjoR,SAAMgjT,mBAAqBhjT,EAAMijT,eAFlBlnT,KAAKu2R,SAAS,IAE8B,gBAAeptO,EAAM69P,6BACzEhnT,IACX,cCsHJ6+J,SAAc,2BA5JP,MAAM2nK,WAAyBzgB,KAKlClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SAIrC57T,KAAKymU,SAAW,IAIhBzmU,KAAK0mU,SAAW,IAIhB1mU,KAAK2mU,SAAW,IAIhB3mU,KAAK4mU,SAAW,IAChB5mU,KAAK8rR,cAAc,OAAQm6B,KAAsC5lJ,QAAQ,GACzErgK,KAAK8rR,cAAc,IAAKm6B,KAAsCuB,OAAO,GACrExnT,KAAK8rR,cAAc,IAAKm6B,KAAsCuB,OAAO,GACrExnT,KAAK8rR,cAAc,IAAKm6B,KAAsCuB,OAAO,GACrExnT,KAAK8rR,cAAc,IAAKm6B,KAAsCuB,OAAO,GACrExnT,KAAKm1R,eAAe,OAAQ8wB,KAAsC96C,QAClEnrQ,KAAKm1R,eAAe,MAAO8wB,KAAsC5lJ,OACrE,CAKA16B,eACI,MAAO,kBACX,CAIA,SAAIkhM,GACA,OAAO7mU,KAAKksR,QAAQ,EACxB,CAIA,KAAI9qQ,GACA,OAAOphB,KAAKksR,QAAQ,EACxB,CAIA,KAAIrxQ,GACA,OAAO7a,KAAKksR,QAAQ,EACxB,CAIA,KAAI32Q,GACA,OAAOvV,KAAKksR,QAAQ,EACxB,CAIA,KAAIt9Q,GACA,OAAO5O,KAAKksR,QAAQ,EACxB,CAIA,QAAIm7B,GACA,OAAOrnT,KAAKu2R,SAAS,EACzB,CAIA,UAAIuwC,GACA,OAAO9mU,KAAKu2R,SAAS,EACzB,CAKA,OAAIo5B,GACA,OAAO3vT,KAAK8mU,MAChB,CACAC,aAAaxgU,GACT,MAAa,SAATA,EACO,QAEJA,CACX,CACAygU,cAAcn+R,GAEV,MAAO,KADS7oC,KAAKymU,SAAWzmU,KAAK0mU,SAAW1mU,KAAK2mU,SAAW3mU,KAAK4mU,UAChDnlP,UAAU,EAAG54C,EACtC,CACAsjP,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMgjU,EAASjnU,KAAKohB,EACd8lT,EAASlnU,KAAK6a,EACdssT,EAASnnU,KAAKuV,EACd6xT,EAASpnU,KAAK4O,EACdy4T,EAAWrnU,KAAK6mU,MAChBS,EAAetnU,KAAKu2R,SAAS,GAC7BgxC,GAAevnU,KAAKu2R,SAAS,GAC7BhpD,GAAOtpO,EAAMgyT,eAAehQ,KAAsCxkJ,SAClE2rE,GAAOnpO,EAAMgyT,eAAehQ,KAAsC1lJ,SACxE,OAAI8mK,EAASnrC,aACLorC,EAAa7Y,eACbxqT,EAAMgjT,mBACFhjT,EAAMijT,eAAeogB,GAChB,MAAK/5F,MAAQ85F,EAASrgB,2BAA2BogB,EAAOlrC,YAAcl8R,KAAKwnU,eAAeJ,GAAU,SAASpnU,KAAKgnU,cAAc,SAEzIO,GAAa9Y,eACbxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAeqgB,IAAiB,MAAKF,EAASrgB,yBAAyBhnT,KAAKgnU,cAAc,WAI3HM,EAAa7Y,eACbxqT,EAAMgjT,mBACFhjT,EAAMijT,eAAeogB,GAChB,MAAK/5F,MAAQ05F,EAAO/qC,YAAcl8R,KAAKwnU,eAAeP,GAAU,UAAUC,EAAOhrC,YAAcl8R,KAAKwnU,eAAeN,GAAU,UAAUC,EAAOjrC,YAAcl8R,KAAKwnU,eAAeL,GAAU,UAAUC,EAAOlrC,YAAcl8R,KAAKwnU,eAAeJ,GAAU,SAASpnU,KAAKgnU,cAAc,SAE5RO,GAAa9Y,eACbxqT,EAAMgjT,mBACFhjT,EAAMijT,eAAeqgB,IAChB,MAAKn6F,MAAQ65F,EAAO/qC,YAAcl8R,KAAKwnU,eAAeP,GAAU,UAAUC,EAAOhrC,YAAcl8R,KAAKwnU,eAAeN,GAAU,UAAUC,EAAOjrC,YAAcl8R,KAAKwnU,eAAeL,GAAU,SAASnnU,KAAKgnU,cAAc,UAGhOhnU,IACX,CACAolI,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBohM,SAAWzmU,KAAKymU,SACpCphM,EAAoBqhM,SAAW1mU,KAAK0mU,SACpCrhM,EAAoBshM,SAAW3mU,KAAK2mU,SACpCthM,EAAoBuhM,SAAW5mU,KAAK4mU,SAC7BvhM,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC9+J,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC/C3iK,KAAKymU,SAAWphM,EAAoBohM,UAAY,IAChDzmU,KAAK0mU,SAAWrhM,EAAoBqhM,UAAY,IAChD1mU,KAAK2mU,SAAWthM,EAAoBshM,UAAY,IAChD3mU,KAAK4mU,SAAWvhM,EAAoBuhM,UAAY,GACpD,CACAzvC,sBACI,IAAIqF,EAAa34R,MAAMszR,sBACvBqF,UAAe,GAAEx8R,KAAKq3R,iCAAiCr3R,KAAKymU,eAC5DjqC,GAAe,GAAEx8R,KAAKq3R,iCAAiCr3R,KAAK0mU,eAC5DlqC,GAAe,GAAEx8R,KAAKq3R,iCAAiCr3R,KAAK2mU,eAC5DnqC,GAAe,GAAEx8R,KAAKq3R,iCAAiCr3R,KAAK4mU,eACrDpqC,CACX,uBCRJ39H,SAAc,8BAlJP,MAAM4oK,WAA4B1hB,KAKrClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,OAAQm6B,KAAsCxkJ,SAAS,GAC1EzhK,KAAK8rR,cAAc,OAAQm6B,KAAsC1lJ,SAAS,GAC1EvgK,KAAK8rR,cAAc,MAAOm6B,KAAsC/pI,SAAS,GACzEl8K,KAAKm1R,eAAe,MAAO8wB,KAAsC1lJ,SACjEvgK,KAAKm1R,eAAe,KAAM8wB,KAAsC/pI,SAChEl8K,KAAKm1R,eAAe,KAAM8wB,KAAsC/pI,SAChEl8K,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,OAC/DxnT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,OAC/DxnT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,OAC/DxnT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,OAC/DxnT,KAAK0nU,oBAAqB,CAC9B,CAKA/hM,eACI,MAAO,qBACX,CAIA,QAAI6tL,GACA,OAAOxzT,KAAKksR,QAAQ,EACxB,CAIA,SAAIy7C,GACA,OAAO3nU,KAAKksR,QAAQ,EACxB,CAIA,QAAI07C,GACA,OAAO5nU,KAAKksR,QAAQ,EACxB,CAIA,UAAI27C,GACA,OAAO7nU,KAAKu2R,SAAS,EACzB,CAIA,SAAIuxC,GACA,OAAO9nU,KAAKu2R,SAAS,EACzB,CAIA,MAAIwxC,GACA,OAAO/nU,KAAKu2R,SAAS,EACzB,CAIA,KAAI3jR,GACA,OAAO5S,KAAKu2R,SAAS,EACzB,CAIA,KAAI/zQ,GACA,OAAOxiB,KAAKu2R,SAAS,EACzB,CAIA,KAAIrsN,GACA,OAAOlqE,KAAKu2R,SAAS,EACzB,CAIA,KAAI3tN,GACA,OAAO5oE,KAAKu2R,SAAS,EACzB,CACAwwC,aAAaxgU,GACT,OAAQA,GACJ,IAAK,MACD,MAAO,OACX,IAAK,OACD,MAAO,QACX,QACI,OAAOA,EAEnB,CACAyhU,cAAczhU,GACV,OAAQA,GACJ,IAAK,KACD,MAAO,QACX,IAAK,MACD,MAAO,SACX,QACI,OAAOA,EAEnB,CACA4lR,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMklD,EAAQnpD,KAAKwzT,KAAKt3B,YAAcl8R,KAAKwzT,KAAOxzT,KAAK2nU,MAAMzrC,YAAcl8R,KAAK2nU,MAAQ3nU,KAAK4nU,KACvFK,EAAYjoU,KAAKu2R,SAAS,GAC1B2xC,EAAWloU,KAAKu2R,SAAS,GACzB4xC,EAAWnoU,KAAKu2R,SAAS,GACzB6xC,EAAUpoU,KAAKu2R,SAAS,GACxB8xC,EAAUroU,KAAKu2R,SAAS,GACxB+xC,GAAUtoU,KAAKu2R,SAAS,GACxBgyC,GAAUvoU,KAAKu2R,SAAS,GACxBnpD,GAAOnpO,EAAMgyT,eAAehQ,KAAsC1lJ,SACxE,OAAI0nK,EAAUxZ,eAENxqT,EAAMgjT,mBADN99P,IAAUnpD,KAAK4nU,KACY3jU,EAAMijT,eAAe+gB,GAAc,MAAK76F,MAAQjkL,EAAM69P,kCAGtD/iT,EAAMijT,eAAe+gB,GAAc,MAAK9+Q,EAAM69P,iCAG7EmhB,EAAS1Z,cAAgBzuT,KAAKwzT,KAAKt3B,cACnCj4R,EAAMgjT,mBAAqBhjT,EAAMijT,eAAeihB,GAAa,MAAKnoU,KAAKwzT,KAAKxM,gCAE5EkhB,EAASzZ,eACTxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAeghB,GAAa,MAAK/+Q,EAAM69P,gCAExEohB,EAAQ3Z,eACRxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAekhB,GAAY,MAAKj/Q,EAAM69P,+BAEvEqhB,EAAQ5Z,eACRxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAemhB,GAAY,MAAKl/Q,EAAM69P,+BAEvEshB,GAAQ7Z,eACRxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAeohB,IAAY,MAAKn/Q,EAAM69P,+BAEvEuhB,GAAQ9Z,eACRxqT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAeqhB,IAAY,MAAKp/Q,EAAM69P,+BAEpEhnT,IACX,KCzFJ6+J,SAAc,oBAvDP,MAAM2pK,WAAkBziB,KAK3BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,OAAQm6B,KAAsCzoB,YACjEx9R,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAK8rR,cAAc,WAAYm6B,KAAsCzoB,YACrEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GACtDlsR,KAAKolU,qBAAqB,EAAG,GAC7BplU,KAAKolU,qBAAqB,EAAG,GAAG,GAChCplU,KAAKksR,QAAQ,GAAGu8C,6BAA6BxqT,KAAKgoS,KAAsCuB,MAC5F,CAKA7hL,eACI,MAAO,WACX,CAIA,QAAIuQ,GACA,OAAOl2I,KAAKksR,QAAQ,EACxB,CAIA,SAAIj5D,GACA,OAAOjzN,KAAKksR,QAAQ,EACxB,CAIA,YAAIw8C,GACA,OAAO1oU,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBACFhjT,EAAMijT,eAFKlnT,KAAKu2R,SAAS,IAEO,UAASv2R,KAAKk2I,KAAK8wK,4BAA4BhnT,KAAKizN,MAAM+zF,2BAA2BhnT,KAAK0oU,SAAS1hB,6BAChIhnT,IACX,KCjCJ6+J,SAAc,sBAtBP,MAAM8pK,WAAoB7D,KAK7BjlU,YAAY0G,GACR1C,MAAM0C,EACV,CAKAo/H,eACI,MAAO,aACX,CACAwmJ,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,MAAKv2R,KAAKk2I,KAAK8wK,4BAA4BhnT,KAAKizN,MAAM+zF,4BAC1GhnT,IACX,KCEJ6+J,SAAc,wBAtBP,MAAM+pK,WAAsB9D,KAK/BjlU,YAAY0G,GACR1C,MAAM0C,EACV,CAKAo/H,eACI,MAAO,eACX,CACAwmJ,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,MAAKv2R,KAAKk2I,KAAK8wK,4BAA4BhnT,KAAKizN,MAAM+zF,4BAC1GhnT,IACX,KCyBJ6+J,SAAc,oBA3CP,MAAMgqK,WAAkB9iB,KAK3BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,QAASm6B,KAAsCuB,OAClExnT,KAAK8rR,cAAc,OAAQm6B,KAAsCuB,OACjExnT,KAAKm1R,eAAe,SAAU8wB,KAAsCuB,MACxE,CAKA7hL,eACI,MAAO,WACX,CAIA,SAAIpzH,GACA,OAAOvS,KAAKksR,QAAQ,EACxB,CAIA,QAAI48C,GACA,OAAO9oU,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,WAAUv2R,KAAK8oU,KAAK9hB,2BAA2BhnT,KAAKuS,MAAMy0S,6BAC9GhnT,IACX,ICzCG,MAAM+oU,WAAsBhjB,KAK/BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GACtDlsR,KAAKu2R,SAAS,GAAG8uC,6BAA6BpnT,KAAKgoS,KAAsCxlJ,OAC7F,CAKA96B,eACI,MAAO,eACX,CAIA,SAAIx8E,GACA,OAAOnpD,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,WAAUv2R,KAAKmpD,MAAM69P,4BACzEhnT,IACX,GAEJ6+J,SAAc,wBAAyBkqK,KAAa,EACpDlqK,OAAc,wBAAyBkqK,ICrChC,MAAMC,WAA2BjjB,KAKpClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,gBAAiBm6B,KAAsCxkJ,SAC1EzhK,KAAK8rR,cAAc,iBAAkBm6B,KAAsC1lJ,SAC3EvgK,KAAKm1R,eAAe,SAAU8wB,KAAsC1lJ,QACxE,CAKA56B,eACI,MAAO,oBACX,CAIA,iBAAIkoL,GACA,OAAO7tT,KAAKksR,QAAQ,EACxB,CAIA,kBAAIyrC,GACA,OAAO33T,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACA2C,cAAc7xJ,EAAUkhL,EAA0BA,MAAM,IACpD,IAAKvoT,KAAK23T,eAAez7B,YAAa,CAClC,IAAI+7B,EAAsB5wL,EAASohL,yBAA0BlzS,GAAMA,EAAEwzS,cAAgBC,KAAyBkP,gBAAkB3P,EAAwBhzS,IACnJ0iT,IACDA,EAAsB,IAAItP,KAAW,kBACrCsP,EAAoB/O,iBAAiBF,KAAyBkP,iBAElED,EAAoB94R,OAAOg9P,UAAUn8R,KAAK23T,eAC9C,CACJ,CACAxrC,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBACFhjT,EAAMijT,eAFKlnT,KAAKu2R,SAAS,IAEO,gBAAev2R,KAAK23T,eAAe3Q,4BAA4BhnT,KAAK6tT,cAAc7G,iCAC/GhnT,IACX,GAEJ6+J,SAAc,6BAA8BmqK,cCwB5CnqK,SAAc,uBA7EP,MAAMoqK,WAAqBljB,KAK9BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,cAAem6B,KAAsCxkJ,SACxEzhK,KAAK8rR,cAAc,gBAAiBm6B,KAAsC1lJ,SAC1EvgK,KAAK8rR,cAAc,OAAQm6B,KAAsCuB,OACjExnT,KAAK8rR,cAAc,QAASm6B,KAAsCuB,OAClExnT,KAAKm1R,eAAe,UAAW8wB,KAAsCuB,MACzE,CAKA7hL,eACI,MAAO,cACX,CAIA,eAAIurL,GACA,OAAOlxT,KAAKksR,QAAQ,EACxB,CAIA,iBAAIolC,GACA,OAAOtxT,KAAKksR,QAAQ,EACxB,CAIA,QAAIyiC,GACA,OAAO3uT,KAAKksR,QAAQ,EACxB,CAIA,SAAIg9C,GACA,OAAOlpU,KAAKksR,QAAQ,EACxB,CAIA,WAAIi9C,GACA,OAAOnpU,KAAKu2R,SAAS,EACzB,CACA2C,cAAc7xJ,GACV,IAAKrnI,KAAKsxT,cAAcp1B,YAAa,CACjC,MAAMktC,EAAqB,IAAIJ,GAAmB,kBAClDI,EAAmBjqS,OAAOg9P,UAAUn8R,KAAKsxT,eACzC8X,EAAmBlwC,cAAc7xJ,EACrC,CACA,IAAKrnI,KAAK2uT,KAAKzyB,YAAa,CACxB,MAAMmtC,EAAY,IAAI1gB,KAAW,QACjC0gB,EAAU92T,MAAQ,EAClB82T,EAAUlqS,OAAOg9P,UAAUn8R,KAAK2uT,KACpC,CACA,IAAK3uT,KAAKkpU,MAAMhtC,YAAa,CACzB,MAAMotC,EAAa,IAAI3gB,KAAW,SAClC2gB,EAAW/2T,MAAQ,EACnB+2T,EAAWnqS,OAAOg9P,UAAUn8R,KAAKkpU,MACrC,CACJ,CACA/8C,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMyiT,yBAAyB,kBADb,KAAI1mT,KAAKuG,OACiC,CAAEyjT,aAAa,IAC3E/lT,EAAMgjT,mBACFhjT,EAAMijT,eAAelnT,KAAKmpU,SACrB,yBAAwBnpU,KAAKsxT,cAActK,+BAA+BhnT,KAAKkxT,YAAYlK,+BAA+BhnT,KAAK2uT,KAAK3H,2BAA2BhnT,KAAKkpU,MAAMliB,6BAC5KhnT,IACX,KCjCJ6+J,SAAc,mBA7CP,MAAM0qK,WAAiBxjB,KAK1BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,OAAQm6B,KAAsCzoB,YACjEx9R,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GACtDlsR,KAAKolU,qBAAqB,EAAG,EACjC,CAKAz/L,eACI,MAAO,UACX,CAIA,QAAIuQ,GACA,OAAOl2I,KAAKksR,QAAQ,EACxB,CAIA,SAAIj5D,GACA,OAAOjzN,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,UAASv2R,KAAKk2I,KAAK8wK,2BAA2BhnT,KAAKizN,MAAM+zF,6BAC7GhnT,IACX,KCEJ6+J,SAAc,mBA7CP,MAAM2qK,WAAiBzjB,KAK1BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,OAAQm6B,KAAsCzoB,YACjEx9R,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GACtDlsR,KAAKolU,qBAAqB,EAAG,EACjC,CAKAz/L,eACI,MAAO,UACX,CAIA,QAAIuQ,GACA,OAAOl2I,KAAKksR,QAAQ,EACxB,CAIA,SAAIj5D,GACA,OAAOjzN,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,UAASv2R,KAAKk2I,KAAK8wK,2BAA2BhnT,KAAKizN,MAAM+zF,6BAC7GhnT,IACX,KCKJ6+J,SAAc,wBAhDP,MAAM4qK,WAAsB1jB,KAK/BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,OAAQm6B,KAAsCzoB,YACjEx9R,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCuB,OACpExnT,KAAKolU,qBAAqB,EAAG,GAC7BplU,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCuB,OACxFxnT,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,QACxFzgK,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCuB,OACxFxnT,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,OAC5F,CAKA96B,eACI,MAAO,eACX,CAIA,QAAIuQ,GACA,OAAOl2I,KAAKksR,QAAQ,EACxB,CAIA,SAAIj5D,GACA,OAAOjzN,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,aAAYv2R,KAAKk2I,KAAK8wK,4BAA4BhnT,KAAKizN,MAAM+zF,6BACjHhnT,IACX,KCRJ6+J,SAAc,sBAtCP,MAAM6qK,WAAoB3jB,KAK7BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCuB,OACpExnT,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCuB,OACxFxnT,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,OAC5F,CAKA96B,eACI,MAAO,aACX,CAIA,SAAIpzH,GACA,OAAOvS,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,aAAYv2R,KAAKuS,MAAMy0S,6BAC3EhnT,IACX,KCCJ6+J,SAAc,sBArCP,MAAM8qK,WAAoB5jB,KAK7BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,EAC1D,CAKAvmJ,eACI,MAAO,aACX,CAIA,SAAIpzH,GACA,OAAOvS,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,aAAYv2R,KAAKuS,MAAMy0S,4BAC3EhnT,IACX,KCUJ6+J,SAAc,mBA7CP,MAAM+qK,WAAiB7jB,KAK1BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GACtDlsR,KAAKolU,qBAAqB,EAAG,EACjC,CAKAz/L,eACI,MAAO,UACX,CAIA,SAAIpzH,GACA,OAAOvS,KAAKksR,QAAQ,EACxB,CAIA,SAAIg9C,GACA,OAAOlpU,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBAAqBhjT,EAAMijT,eADlBlnT,KAAKu2R,SAAS,IAC8B,cAAav2R,KAAKuS,MAAMy0S,gCAAgChnT,KAAKkpU,MAAMliB,6BACvHhnT,IACX,KCCJ6+J,SAAc,4BA3CP,MAAMgrK,WAA0B9jB,KAKnClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,OAAQm6B,KAAsCzoB,YACjEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCuB,OACpExnT,KAAKksR,QAAQ,GAAGm/B,2CAA2CpF,KAAsC/pI,QAC7F+pI,KAAsC1lJ,QACtC0lJ,KAAsCxkJ,QACtCwkJ,KAAsC5lJ,OACtC4lJ,KAAsC96C,OAC9C,CAKAxlI,eACI,MAAO,mBACX,CAIA,QAAImkM,GACA,OAAO9pU,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMk7B,EAASn/B,KAAKu2R,SAAS,GAE7BtyR,SAAMyiT,yBAAyB,kBADb,KAAI1mT,KAAKuG,QAE3BtC,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe/nR,GAAW,cAAan/B,KAAK8pU,KAAK9iB,gCAC3EhnT,IACX,KCEJ6+J,SAAc,uBA5CP,MAAMkrK,WAAqBhkB,KAK9BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,IAAKm6B,KAAsCuB,OAC9DxnT,KAAK8rR,cAAc,IAAKm6B,KAAsCuB,OAC9DxnT,KAAKm1R,eAAe,SAAU8wB,KAAsCuB,MACxE,CAKA7hL,eACI,MAAO,cACX,CAIA,KAAI/yH,GACA,OAAO5S,KAAKksR,QAAQ,EACxB,CAIA,KAAI1pQ,GACA,OAAOxiB,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MACMmwL,EAAgC,IAAzBnwL,EAAMuyM,eAAiD,QAAU,OAC9EvyM,SAAMgjT,mBAAqBhjT,EAAMijT,eAFlBlnT,KAAKu2R,SAAS,IAE8B,MAAKniG,KAAQp0L,KAAK4S,EAAEo0S,2BAA2BhnT,KAAKwiB,EAAEwkS,6BAC1GhnT,IACX,KCYJ6+J,SAAc,0BAtDP,MAAMmrK,WAAwBjkB,KAKjClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAK8rR,cAAc,QAASm6B,KAAsCuB,OAClExnT,KAAK8rR,cAAc,QAASm6B,KAAsCuB,OAClExnT,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,EAC1D,CAKAvmJ,eACI,MAAO,iBACX,CAIA,SAAIpzH,GACA,OAAOvS,KAAKksR,QAAQ,EACxB,CAIA,SAAI+9C,GACA,OAAOjqU,KAAKksR,QAAQ,EACxB,CAIA,SAAIg+C,GACA,OAAOlqU,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMk7B,EAASn/B,KAAKu2R,SAAS,GACvB0uC,EAAOhhU,EAAMgyT,eAAej2T,KAAKuS,MAAMH,MAC7CnO,SAAMgjT,mBACFhjT,EAAMijT,eAAe/nR,GAChB,iBAAgB8lS,KAAQjlU,KAAKiqU,MAAMjjB,4BAA4Bie,KAAQjlU,KAAKkqU,MAAMljB,4BAA4BhnT,KAAKuS,MAAMy0S,6BAC3HhnT,IACX,KCVJ6+J,SAAc,0BA1CP,MAAMsrK,WAAwBpkB,KAKjClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,EAC1D,CAKAvmJ,eACI,MAAO,iBACX,CAIA,SAAIx8E,GACA,OAAOnpD,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMk7B,EAASn/B,KAAKu2R,SAAS,GAC7B,OACItyR,EAAMgjT,mBADNjnT,KAAKmpD,MAAM/2C,OAAS6zS,KAAsCxlJ,OAC/Bx8J,EAAMijT,eAAe/nR,GAAW,cAAan/B,KAAKmpD,MAAM69P,6BAGxD/iT,EAAMijT,eAAe/nR,GAAW,WAAUn/B,KAAKmpD,MAAM69P,4BAE7EhnT,IACX,KC+BJ6+J,SAAc,4BAvEP,MAAMurK,WAA0BrkB,KAKnClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAK8rR,cAAc,YAAam6B,KAAsCzoB,YACtEx9R,KAAK8rR,cAAc,WAAYm6B,KAAsCuB,OACrExnT,KAAK8rR,cAAc,cAAem6B,KAAsCzoB,YACxEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GACtDlsR,KAAKolU,qBAAqB,EAAG,GAC7BplU,KAAKolU,qBAAqB,EAAG,GAC7BplU,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCuB,OACxFxnT,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,QACxFzgK,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCuB,OACxFxnT,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,QACxFzgK,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCuB,OACxFxnT,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,OAC5F,CAKA96B,eACI,MAAO,mBACX,CAIA,SAAIpzH,GACA,OAAOvS,KAAKksR,QAAQ,EACxB,CAIA,aAAIj9Q,GACA,OAAOjP,KAAKksR,QAAQ,EACxB,CAIA,YAAItqJ,GACA,OAAO5hI,KAAKksR,QAAQ,EACxB,CAIA,eAAIm+C,GACA,OAAOrqU,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMk7B,EAASn/B,KAAKu2R,SAAS,GAC7BtyR,SAAMgjT,mBAAqBhjT,EAAMijT,eAAe/nR,GAAW,MAC3Dl7B,EAAMgjT,mBAAsB,cAAajnT,KAAKuS,MAAMy0S,4BAA4BhnT,KAAKiP,UAAU+3S,6BAA6BhnT,KAAK4hI,SAASolL,8BAC1I/iT,EAAMgjT,mBAAsB,GAAE9nR,EAAO6nR,4BAA4BhnT,KAAKqqU,YAAYrjB,4BAClF/iT,EAAMgjT,mBAAsB,aAC5BhjT,EAAMgjT,mBAAsB,GAAE9nR,EAAO6nR,4BAA4BhnT,KAAKuS,MAAMy0S,4BAC5E/iT,EAAMgjT,mBAAsB,MACrBjnT,IACX,KClBJ6+J,SAAc,yBAlDP,MAAMyrK,WAAuBvkB,KAKhClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GACtDlsR,KAAKolU,qBAAqB,EAAG,GAC7BplU,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,QACxFzgK,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,QACxFzgK,KAAKksR,QAAQ,GAAGu8C,6BAA6BxqT,KAAKgoS,KAAsCuB,MAC5F,CAKA7hL,eACI,MAAO,gBACX,CAIA,SAAIpzH,GACA,OAAOvS,KAAKksR,QAAQ,EACxB,CAIA,SAAIq+C,GACA,OAAOvqU,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBACFhjT,EAAMijT,eAFKlnT,KAAKu2R,SAAS,IAGpB,YAAWv2R,KAAKuS,MAAMy0S,mCAAmChnT,KAAKuqU,MAAMvjB,qCAAqChnT,KAAKuqU,MAAMvjB,6BACtHhnT,IACX,ICnCG,MAAMwqU,WAAkBzkB,KAK3BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SAIrC57T,KAAKqzF,KAAO,EACZrzF,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GACtDlsR,KAAKksR,QAAQ,GAAGm5C,6BAA6BpnT,KAAKgoS,KAAsCxlJ,OAC5F,CAKA96B,eACI,MAAO,WACX,CAIA,SAAIx8E,GACA,OAAOnpD,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMk7B,EAASn/B,KAAKu2R,SAAS,GAC7B,OAAQv2R,KAAKqzF,MACT,KAAK,EACDpvF,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe/nR,GAAW,MAAKn/B,KAAKmpD,MAAM69P,wCAAwChnT,KAAKmpD,MAAM69P,6BAC9H,MAEJ,KAAK,EACD/iT,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe/nR,GAAW,8BAA6Bn/B,KAAKmpD,MAAM69P,8BACnG,MAEJ,KAAK,EACD/iT,EAAMgjT,mBACFhjT,EAAMijT,eAAe/nR,GAAW,uBAAsBn/B,KAAKmpD,MAAM69P,wCAAwChnT,KAAKmpD,MAAM69P,qCAIhI,OAAOhnT,IACX,CACAolI,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,SAAoBhyC,KAAOrzF,KAAKqzF,KACzBgyC,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC9+J,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC/C3iK,KAAKqzF,KAAOgyC,EAAoBhyC,IACpC,GAEJwvE,SAAW,IACP00H,MAAuB,OAAQ,EAAqC,WAAY,CAC5Ek7B,UAAW,CAAE13H,SAAS,GACtBg9F,UAAU,EACVxrQ,QAAS,CACL,CAAEhc,MAAO,WAAYgC,MAAO,GAC5B,CAAEhC,MAAO,SAAUgC,MAAO,GAC1B,CAAEhC,MAAO,WAAYgC,MAAO,OAGrCi4T,GAAUjmS,UAAW,YAAQ,IAAM,EACtCs6H,OAAc,oBAAqB2rK,ICxF5B,MAAMC,GAIT,QAAI7gR,GACA,OAAO5pD,KAAK0qU,KAChB,CAIA,QAAI9gR,CAAKhwB,GACL55B,KAAK0qU,MAAQ9wS,CACjB,CAIA,SAAIigC,GACA,OAAO75D,KAAK2qU,MAChB,CAIA,SAAI9wQ,CAAMjgC,GACN55B,KAAK2qU,OAAS/wS,CAClB,CAMA/5B,YAAY+pD,EAAMiQ,GACd75D,KAAK4pD,KAAOA,EACZ5pD,KAAK65D,MAAQA,CACjB,GA8GJglG,SAAc,wBAzGP,MAAM+rK,WAAsB7kB,KAE/B8kB,oBACI7qU,KAAKg1R,yBAAyBh0H,gBAAgBhhK,KAClD,CAKAH,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SAIrC57T,KAAK8qU,WAAa,CAAC,IAAIL,GAAuB,EAAGpqK,KAAOhpB,SAAU,IAAIozL,GAAuB,EAAKpqK,KAAOz4B,UAEzG5nI,KAAKg1R,yBAA2B,IAAIr2P,MACpC3+B,KAAK8rR,cAAc,WAAYm6B,KAAsCzoB,YACrEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsC5lJ,QACpErgK,KAAKksR,QAAQ,GAAGm/B,2CAA2CpF,KAAsCuB,MAC7FvB,KAAsC/pI,QACtC+pI,KAAsC1lJ,QACtC0lJ,KAAsCxkJ,QACtCwkJ,KAAsC5lJ,OACtC4lJ,KAAsC96C,OAC9C,CAKAxlI,eACI,MAAO,eACX,CAIA,YAAI+iM,GACA,OAAO1oU,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACAw0C,oBAAoBpwT,EAAOyyN,GACvB,MAAMxjL,EAAO5pD,KAAK8qU,WAAWnwT,GAC7B,MAAQ,GAAEyyN,KAAQxjL,EAAKiQ,MAAMz4C,MAAMwoC,EAAKiQ,MAAMh/C,MAAM+uC,EAAKiQ,MAAMtkD,IACnE,CACA42Q,YAAYloR,GACRJ,MAAMsoR,YAAYloR,GAClB,MAAMk7B,EAASn/B,KAAKu2R,SAAS,GACvBnpD,EAAOnpO,EAAMgyT,eAAehQ,KAAsC1lJ,SACxE,IAAKvgK,KAAK8qU,WAAWp1T,SAAW1V,KAAK0oU,SAASr8C,eAE1C,YADApoR,EAAMgjT,mBAAqBhjT,EAAMijT,eAAe/nR,GAAW,MAAKiuM,oBAGpE,MAAM49F,EAAY/mU,EAAM8jT,qBAAqB,qBACvCkjB,EAAehnU,EAAM8jT,qBAAqB,wBAChD9jT,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiByd,EAAW/kB,KAAsC1lJ,cAAcvgK,KAAK+qU,oBAAoB,EAAG39F,QAChJnpO,EAAMgjT,mBAAsB,GAAEhjT,EAAMspT,iBAAiB0d,EAAchlB,KAAsCuB,YACzG,IAAI0jB,EAAiBlrU,KAAK0oU,SAAS1hB,uBAC/BhnT,KAAK0oU,SAASr8C,eAAej6Q,OAAS6zS,KAAsCuB,QAC5E0jB,GAAkB,MAEtB,QAASvwT,EAAQ,EAAGA,EAAQ3a,KAAK8qU,WAAWp1T,OAAQiF,IAAS,CACzD,MAAMivC,GAAO5pD,KAAK8qU,WAAWnwT,GACvBwwT,GAAenrU,KAAK8qU,WAAWnwT,EAAQ,GAC7C1W,EAAMgjT,mBAAsB,GAAEgkB,cAAyBC,OAAoBjnU,EAAMkuT,WAAWgZ,GAAavhR,aAAa3lD,EAAMkuT,WAAWvoQ,GAAKA,YAAY3lD,EAAMkuT,WAAWgZ,GAAavhR,4BAA4B3lD,EAAMkuT,WAAWx3S,OAAW1W,EAAMkuT,WAAWnyT,KAAK8qU,WAAWp1T,OAAS,SACxRzR,EAAMgjT,mBAAsB,GAAE+jB,WAAmBA,MAAchrU,KAAK+qU,oBAAoBpwT,EAAOyyN,OAAU69F,OAC7G,CACAhnU,SAAMgjT,mBAAqBhjT,EAAMijT,eAAe/nR,GAAW,MAAK6rS,OACzDhrU,IACX,CACAolI,YACI,MAAMC,EAAsBxhI,MAAMuhI,YAClCC,EAAoBylM,WAAa,GACjC,UAAWlhR,KAAQ5pD,KAAK8qU,WACpBzlM,EAAoBylM,WAAW7sT,KAAK,CAChC2rC,KAAMA,EAAKA,KACXiQ,MAAO,CACHz4C,EAAGwoC,EAAKiQ,MAAMz4C,EACdvG,EAAG+uC,EAAKiQ,MAAMh/C,EACdtF,EAAGq0C,EAAKiQ,MAAMtkD,KAI1B,OAAO8vH,CACX,CACAiyJ,aAAajyJ,EAAqB/mB,EAAOqkD,GACrC9+J,MAAMyzR,aAAajyJ,EAAqB/mB,EAAOqkD,GAC/C3iK,KAAK8qU,WAAWp1T,OAAS,EACzB,UAAWk0C,KAAQy7E,EAAoBylM,WACnC9qU,KAAK8qU,WAAW7sT,KAAK,IAAIwsT,GAAuB7gR,EAAKA,KAAM,IAAIy2G,KAAOz2G,EAAKiQ,MAAMz4C,EAAGwoC,EAAKiQ,MAAMh/C,EAAG+uC,EAAKiQ,MAAMtkD,IAErH,CACA4hR,sBACI,IAAIqF,EAAa34R,MAAMszR,sBACvBqF,GAAe,GAAEx8R,KAAKq3R,uCACtB,UAAW+zC,KAAaprU,KAAK8qU,WACzBtuC,GAAe,GAAEx8R,KAAKq3R,wEAAwE+zC,EAAUxhR,4BAA4BwhR,EAAUvxQ,MAAMz4C,MAAMgqT,EAAUvxQ,MAAMh/C,MAAMuwT,EAAUvxQ,MAAMtkD,UAEpM,OAAOinR,CACX,KCvFJ39H,SAAc,qBAxDP,MAAMwsK,WAAmBtlB,KAK5BlmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SACrC57T,KAAK8rR,cAAc,OAAQm6B,KAAsCzoB,YACjEx9R,KAAK8rR,cAAc,QAASm6B,KAAsCzoB,YAClEx9R,KAAK8rR,cAAc,WAAYm6B,KAAsCzoB,YACrEx9R,KAAKm1R,eAAe,SAAU8wB,KAAsCtuB,cACpE33R,KAAKu2R,SAAS,GAAGqB,sBAAwB53R,KAAKksR,QAAQ,GACtDlsR,KAAKolU,qBAAqB,EAAG,GAC7BplU,KAAKolU,qBAAqB,EAAG,GAAG,GAChCplU,KAAKksR,QAAQ,GAAGu8C,6BAA6BxqT,KAAKgoS,KAAsCuB,MAC5F,CAKA7hL,eACI,MAAO,YACX,CAIA,QAAIuQ,GACA,OAAOl2I,KAAKksR,QAAQ,EACxB,CAIA,SAAIj5D,GACA,OAAOjzN,KAAKksR,QAAQ,EACxB,CAIA,YAAIw8C,GACA,OAAO1oU,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAGRA,OAFAJ,MAAMsoR,YAAYloR,GAElBA,EAAMgjT,mBACFhjT,EAAMijT,eAFKlnT,KAAKu2R,SAAS,IAGpB,oBAAmBv2R,KAAKk2I,KAAK8wK,4BAA4BhnT,KAAKizN,MAAM+zF,2BAA2BhnT,KAAK0oU,SAAS1hB,8BAC/GhnT,IACX,IC/CG,MAAMsrU,WAA2BvlB,KAKpClmT,YAAY0G,GACR1C,MAAM0C,EAAMy/S,KAAyB4V,SAErC57T,KAAKurU,mBAAoB,EACzBvrU,KAAK8rR,cAAc,OAAQm6B,KAAsC1lJ,SACjEvgK,KAAK8rR,cAAc,SAAUm6B,KAAsCuB,OACnExnT,KAAKm1R,eAAe,SAAU8wB,KAAsC/pI,SACpEl8K,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,OAC/DxnT,KAAKm1R,eAAe,IAAK8wB,KAAsCuB,MACnE,CAKA7hL,eACI,MAAO,oBACX,CAIA,QAAImkM,GACA,OAAO9pU,KAAKksR,QAAQ,EACxB,CAIA,UAAIs/C,GACA,OAAOxrU,KAAKksR,QAAQ,EACxB,CAIA,UAAI/sP,GACA,OAAOn/B,KAAKu2R,SAAS,EACzB,CAIA,KAAI3jR,GACA,OAAO5S,KAAKu2R,SAAS,EACzB,CAIA,KAAI/zQ,GACA,OAAOxiB,KAAKu2R,SAAS,EACzB,CACApK,YAAYloR,GAKR,GAJAJ,MAAMsoR,YAAYloR,IACbjE,KAAK8pU,KAAK5tC,cAGVl8R,KAAKm/B,OAAOsvR,eAAiBzuT,KAAK4S,EAAE67S,eAAiBzuT,KAAKwiB,EAAEisS,aAC7D,OAEJ,IAAIgd,EAAkB,0BACtBA,GAAmB,iDACnBA,GAAmB,QACnBA,GAAmB,gEACnBA,GAAmB,2FACnBA,GAAmB,QACnBA,GAAmB,+DACnBA,GAAmB,yCACnBA,GAAmB,8CACnBA,GAAmB,kDACnBA,GAAmB,0CACnBA,GAAmB,iDACnBA,GAAmB,KACnBA,GAAmB,wCACnBA,GAAmB,kCACnBA,GAAmB,KACnBA,GAAmB,gDACnBA,GAAmB,gDACnBA,GAAmB,gDACnBA,GAAmB,KACnBA,GAAmB,uDACnBA,GAAmB,2CACnBA,GAAmB,qCACnBA,GAAmB,2CACnBA,GAAmB,KACnBA,GAAmB,6CACnBA,GAAmB,uCACnBA,GAAmB,6CACnBA,GAAmB,KACnBA,GAAmB,6CACnBA,GAAmB,uCACnBA,GAAmB,6CACnBA,GAAmB,KACnBA,GAAmB,6CACnBA,GAAmB,uCACnBA,GAAmB,6CACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,mDACnBA,GAAmB,oEACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,mDACnBA,GAAmB,4CACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,mDACnBA,GAAmB,4CACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,mDACnBA,GAAmB,4CACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,mDACnBA,GAAmB,4CACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,mDACnBA,GAAmB,4CACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,mDACnBA,GAAmB,4CACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,mDACnBA,GAAmB,4CACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,mDACnBA,GAAmB,4CACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,yCACnBA,GAAmB,yCACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,yCACnBA,GAAmB,yCACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,yCACnBA,GAAmB,yCACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,yCACnBA,GAAmB,yCACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,yCACnBA,GAAmB,yCACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,yCACnBA,GAAmB,yCACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,yCACnBA,GAAmB,yCACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,yCACnBA,GAAmB,yCACnBA,GAAmB,KACnBA,GAAmB,uCACnBA,GAAmB,yCACnBA,GAAmB,yCACnBA,GAAmB,KACnBA,GAAmB,8DACnBA,GAAmB,8DACnBA,GAAmB,8DACnBA,GAAmB,8DACnBA,GAAmB,8DACn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E,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAA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AAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,I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,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,eACA,kBACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,YACA,eACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,YACA,eACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,sBACA,mBACA,sBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,iBACA,oBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,WACA,cACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,iBACA,oBACA,gBACA,mBACA,YACA,eACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,aACA,g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65B,gBAAiB,EAE9B,OAEI,CAEJ,IACQS,GAAeA,EAAUE,aAAeF,EAAUE,YAAY,8BAA8Bv25B,QAAQ,OAAQ,MAC5GjF,KAAK865B,gBAAiB,EAE9B,OAEI,CAER,CAKAl5wB,OACI5hJ,KAAKy75B,wBACT,CAKAr/R,SACI,GAAkC,YAA9Bp8nB,KAAKw65B,eAAev25B,MAOpB,OANAjE,KAAK075B,uBACA175B,KAAK+65B,WAEN/65B,KAAK+65B,UAAW,EAChB/65B,KAAKi75B,0BAA0Bj6vB,gBAAgBhhK,QAOnDA,KAAKm75B,UACLn75B,KAAKw65B,eAAemB,UAAUt75B,KAAK,KAC/BL,KAAKm75B,WAAY,EACjBn75B,KAAK475B,sBAAqB,GAI9B575B,KAAK475B,sBAEb,CAEAC,mCACI775B,KAAKw65B,eAAe3h1B,iBAAiB,cAAe,KAC5C74E,KAAK+65B,UAA0C,YAA9B/65B,KAAKw65B,eAAev25B,OACrCjE,KAAK875B,qBAAoB,EAE9B,CACCpuR,MAAM,EACNjwJ,SAAS,EACTntd,OAAQyr4B,YAAYv0wB,QAAQ,MAEpC,CACAs0wB,sBACI,OAAI975B,KAAKw65B,eAAexiN,OACbh4sB,KAAKw65B,cAAcxiN,SAEvBrgsB,QAAQC,SACnB,CACA2i5B,0BACI,IACQv65B,KAAK265B,iBACA365B,KAAKw65B,gBACNx65B,KAAKw65B,cAAgB,IAAIa,cAG7Br75B,KAAKg85B,WAAah85B,KAAKw65B,cAAcyB,aACrCj85B,KAAKg85B,WAAWE,KAAK3p5B,MAAQ,EACxBvS,KAAK065B,oBACN165B,KAAK065B,kBAAoB165B,KAAKw65B,cAAcnktB,aAEhDr2M,KAAKg85B,WAAW73X,QAAQnkiB,KAAK065B,mBAC7B165B,KAAKs65B,0BAA2B,EACC,YAA7Bt65B,KAAKw65B,cAAcv25B,OAEnBjE,KAAK475B,uBAGjB,OACO794B,GACH/d,KAAK265B,gBAAiB,EACtB/5vB,IAAOt7I,MAAM,cAAgBvH,EAAE4tB,QACnC,CACJ,CACAiw3B,uBACQ575B,KAAKm75B,YAGTn75B,KAAKm75B,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wF,KAAKkkH,IAAI8+B,KAAQr+B,IAAIliI,KAAK636B,WAAY736B,KAAK436B,UAAY,KAGnDr65B,KAAKkkH,IAAI8+B,KAAQr+B,IAAIq+B,KAAQgsM,WAAYvsW,KAAK436B,UAAY,KAC1D536B,KAAK836B,QAAQnywB,SAASpF,KAAQhhC,SAG9Bv/H,KAAK836B,QAAQnywB,SAASpF,KAAQgsM,aAIlChsM,KAAQuG,WAAW9mK,KAAK636B,WAAY736B,KAAK436B,QAAS536B,KAAK836B,SAEvDv3wB,KAAQuG,WAAW9mK,KAAK636B,WAAY736B,KAAK836B,QAAS936B,KAAK836B,SACvD936B,KAAK836B,QAAQpq0B,aAEjB1tG,KAAKo46B,WAAW9/5B,SAASqtJ,SAAS3lK,KAAK236B,SACvC336B,KAAK236B,QAAQlqvB,SAASztL,KAAK836B,QAAS936B,KAAK836B,SACzC936B,KAAKo46B,WAAW5H,OAAOxw6B,KAAK836B,UAEvB936B,KAAKmiD,SAAS813B,iBACnBj46B,KAAKm36B,gCACC52wB,KAAQ6F,0BAA0BpmK,KAAKmiD,SAAS813B,gBAAiBj46B,KAAK+8I,aAAapG,iBAAiB6iyB,oBAAqBx56B,KAAK636B,YAC9H736B,KAAK636B,WAAWlywB,SAAS3lK,KAAKmiD,SAAS813B,iBAC7Cj46B,KAAKo46B,WAAW9/5B,SAASqtJ,SAAS3lK,KAAK236B,SACvC336B,KAAK236B,QAAQlqvB,SAASztL,KAAK636B,WAAY736B,KAAK836B,SAC5C936B,KAAKo46B,WAAW5H,OAAOxw6B,KAAK836B,WAG5B936B,KAAKo46B,WAAW9/5B,SAASqtJ,SAAS3lK,KAAK236B,SACvC336B,KAAKo46B,WAAW5H,OAAOt9xB,EAAI7qI,SAG/BrI,KAAKo46B,WAAW9/5B,SAASqtJ,SAAS3lK,KAAK+8I,aAAaooB,uBACpDnlK,KAAKo46B,WAAWrxyB,oBAAmB,EACvC,CAIAz0F,SACItyC,KAAKy36B,gBAAkB,CAAC,EACpBz36B,KAAK+8I,eACL/8I,KAAK+8I,aAAam7xB,iBAAkB,GAEpCl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9B,CAAQo1yB,GACR586B,KAAKksK,SAAS0wwB,EAClB,CAIA,+BAAI1jB,GACA,OAAOl55B,KAAKy66B,UAAUvhB,2BAC1B,CAEAmjB,aACSr86B,KAAKu66B,mBAGVv66B,KAAKu66B,kBAAmB,EACnBv66B,KAAK686B,gBACN786B,KAAK686B,cAAgBt8wB,KAAQh/B,OAC7BvhI,KAAK286B,eAAiBh8wB,KAAWp/B,OACjCvhI,KAAKs86B,eAAiB/7wB,KAAQh/B,QAElCvhI,KAAK+56B,aAAa3yf,UAAUpnb,KAAK686B,cAAe786B,KAAK286B,eAAgB386B,KAAKs86B,gBAC9E,CACAxC,WACI,GAAK956B,KAAKg66B,eAGV,KAAKh66B,KAAK686B,cAEN,YADA786B,KAAKg66B,gBAAiB,GAG1Bh66B,KAAKg66B,gBAAiB,EACtBv5wB,KAAOgrN,aAAazrX,KAAK686B,cAAe786B,KAAK286B,eAAgB386B,KAAKs86B,eAAgBt86B,KAAK+56B,aAAY,CACvG,CAOA/nsB,aAAaoosB,EAAYc,GAA6B,EAAM4B,GAAoB,GAC5E986B,KAAK266B,YAAYh1wB,SAASy0wB,GACtBc,GACAl76B,KAAKg76B,8BAEL8B,EACA986B,KAAK656B,QAAUO,EAGfp66B,KAAKk3C,aAEb,CAIA8j4B,4BAA4BZ,EAAY2C,GAAiB,GAWrD,GAVK3C,IACDA,EAAap66B,KAAK266B,aAElB366B,KAAKqlC,OACL+04B,EAAW7ywB,cAAcvnK,KAAKqlC,OAAOw14B,oBAAqB766B,KAAK666B,qBAG/D766B,KAAK666B,oBAAoBl1wB,SAASy0wB,GAEtCp66B,KAAK666B,oBAAoB3vwB,YAAYlrK,KAAK866B,4BACtCiC,EACA,QAASpi6B,EAAQ,EAAGA,EAAQ3a,KAAKskK,SAAS5uJ,OAAQiF,IAC9C3a,KAAKskK,SAAS3pJ,GAAOqg6B,8BAG7Bh76B,KAAKs66B,oBAAsBt66B,KAAK666B,oBAAoBj2wB,cAAgB,GAAI,EAAK,CACjF,CAKA1tH,cACI,OAAAl3C,KAAK8rY,mBACL9rY,KAAKg96B,iBACLh96B,KAAKy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ACA,EACA,EACAA,EACA,GACA,GACCA,EACD,EACA,GACCA,EACD,EACA,GACA,GACCA,EACD,EACA,GACCA,EACD,GACA,EACAA,EACA,EACA,EACAA,EACAA,EACA,EACA,EACAA,EACA,GACA,GACCA,EACD,EACA,GACCA,EACD,GACA,GAGE4imC,EAAc,CAChB,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GACxK,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAG9BC,EAAsB,CACxB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GAEA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,IAGEC,EAAe,CACjB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAEA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAgDEC,EAAS,CACX,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEn97B,EAAU,GACVj8F,EAAY,GACZ6+P,EAAU,GACVC,EAAM,GACZ,IAAIu6xB,EAAiB,EAErB,MAAMC,GAAkB,IAAIhumC,MAAM,GAC5BiumC,EAAiB,IAAIjumC,MAAM,GACjC,IAAIkumC,GACJ,IAAKA,GAAO,EAAGA,GAAO,EAAGA,KACrBF,GAAgBE,IAAQjr9B,KA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,gBAAgBzyvC,OAAS49vC,EAAcr4xC,KAAK8yxC,aAAa1lwC,SAASptB,KAAK835B,QAG5E935B,KAAKktxC,gBAAgBzyvC,OADrBz6B,KAAK+yxC,cAAc9E,QACWjuxC,KAAK+yxC,cAAc3lwC,SAASptB,KAAK835B,OAGjCugY,EAAcr4xC,KAAK+yxC,cAAc3lwC,SAASptB,KAAK835B,OAE7E935B,KAAKizxC,YAAYhF,SACjBjuxC,KAAKktxC,gBAAgBrlwC,KAAO7nB,KAAKizxC,YAAY7lwC,SAASptB,KAAK835B,OAC3D935B,KAAKktxC,gBAAgBxyvC,QAAU16B,KAAKizxC,YAAY7lwC,SAASptB,KAAK835B,SAG9D935B,KAAKktxC,gBAAgBrlwC,KAAOywwC,EAAet4xC,KAAKizxC,YAAY7lwC,SAASptB,KAAK835B,OAC1E935B,KAAKktxC,gBAAgBxyvC,QAAU49vC,EAAet4xC,KAAKizxC,YAAY7lwC,SAASptB,KAAK835B,QAG7E935B,KAAKktxC,gBAAgBxyvC,QADrB16B,KAAKkzxC,eAAejF,QACWjuxC,KAAKkzxC,eAAe9lwC,SAASptB,KAAK835B,OAGlCwgY,EAAet4xC,KAAKkzxC,eAAe9lwC,SAASptB,KAAK835B,QAIpF935B,KAAKktxC,gBAAgBh3oC,MADrBl2I,KAAKmzxC,MAAMlF,QACkBjuxC,KAAKmzxC,MAAM/lwC,SAASptB,KAAK835B,OAGzBugY,EAAcr4xC,KAAKmzxC,MAAM/lwC,SAASptB,KAAK835B,OAGpE935B,KAAKktxC,gBAAgBrlwC,KADrB7nB,KAAKqzxC,KAAKpF,QACkBjuxC,KAAKqzxC,KAAKjmwC,SAASptB,KAAK835B,OAGxBwgY,EAAet4xC,KAAKqzxC,KAAKjmwC,SAASptB,KAAK835B,OAEvE935B,KAAKktxC,gBAAgBh3oC,MAAQtjI,EAC7B5S,KAAKktxC,gBAAgBrlwC,KAAOrF,CAChC,CAIA01wC,YAAY7K,EAAe7xmC,GACvB,CAKJmzmC,aAAatB,EAAe7xmC,GACxB,CAKJ6zmC,sBAAsBhC,EAAe7xmC,GACjC,CAKJwzmC,iBAA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","names":["IAuthService","SigninRedirectCallbackComponent","constructor","_authService","_router","this","ngOnInit","_this","_asyncToGenerator","signinRedirectCallback","then","navigate","replaceUrl","i0","i1","i2","selectors","decls","vars","template","rf","ctx","SignoutRedirectCallbackComponent","finishLogout","_r1","ctx_r1","login","_r3","clickBack","UnauthorizedComponent","route","location","fragment","subscribe","errorCode","back","i3","consts","UnauthorizedComponent_div_6_Template","UnauthorizedComponent_div_7_Template","UnauthorizedComponent_div_8_Template","UnauthorizedComponent_div_9_Template","UnauthorizedComponent_div_10_Template","AuthInterceptor","_logger","_injector","intercept","req","next","requestToForward","undefined","get","token","getToken","tokenValue","url","includes","clone","setHeaders","Authorization","debug","handle","factory","ɵfac","AuthState","ComponentStore","super","cfg","setFeatures","updater","state","features","access_token","currentUser","access_token$","select","s","user","user$","setUser","u","config","Configuration","basePath","apiConfiguration","baseApiUrl","replace","appConfiguration","apiVersion","apiKey","UsersApi","vversionUsersMeGet","resp","canApprove","data","featureFlags","canReject","isCustomer","isEmployee","isCollectionCreator","setDiscoveryConfiguration","AuthService","_discovery","info","loggedUser$","pipe","map","profile","name","_logOutClicked$","Subject","logOutClicked$","asObservable","loginChanged$","isUserValid","initAuthentication","canApprove$","filter","canReject$","isCustomer$","isEmployee$","isCollectionCreator$","getToken$","logOutClicked","isAuthenticated","_userManager","error","fetchUser","_","setCurrentUser","_this2","signinRedirect","_this3","window","history","replaceState","document","title","origin","pathname","catch","err","logout","_this4","take","signoutRedirect","href","URL","id_token","signOutCallback","baseAuthServiceUrl","toString","_this5","signoutRedirectCallback","getUser","signinSilent","_this6","expired","_this7","_authSettings","authority","client_id","clientId","redirect_uri","signInCallback","scope","authRequestScopes","join","response_type","responseType","post_logout_redirect_uri","loadUserInfo","userStore","Oidc","store","localStorage","monitorSession","extraQueryParams","audience","authRequestAudience","UserManager","events","addAccessTokenExpiring","warn","addAccessTokenExpired","providedIn","AuthGuard","_userService","_storageService","router","logger","_userdata","userAuthenticated","userGrantedPermission","granted$","granted","canActivate","checkIsUserAuthenticated","res","me","current","setItem","id","redirectToUnauthorized","firstValueFrom","i4","i5","i6","AuthRoutes","path","component","breadcrumb","AuthProviders","provide","useExisting","HTTP_INTERCEPTORS","useClass","multi","NoPermissionPageComponent","PatientPageComponent","_pageContextService","setPageParent","setPageTitle","ngOnDestroy","CollectionListRowComponent","notImplemnted","$event","stopPropagation","_alertService","showErrorAlert","editCollection","collection","currentCustomer","_customerService","currentCustomer$","collectionData","_capService","getAllCollections","c","externalReferences","references","a","avatars","ids","getId","organizationId","reference","scenes","garments","_store","setCollection","_collectionScreenStore","setMode","ScreenMode","EDIT","onPreviewCollection","_previewService","show","_requestService","inputs","record","loaded","standalone","attrs","_c0","imageUrl","CollectionFilterService","AbstractFilterService","label","searchable","buildInputElement","TextInputElementComponent","CollectionListActionBarComponent","filterChange","EventEmitter","collectionFilterService","filterValues","filters","dispatch","filtersChange","clearFilterValues","clearFilters","viewQuery","routes","CollectionListPageComponent","_createCollectionModalStore","spinnerStatus","text","displayedCollections","BehaviorSubject","collectionTableConfiguration","rowComponent","columns","hideSort","collectionDatasource","fetch","mapCollectionToRecord","type","onCollectionsChanged","collections","value","setPageActionBar","_onDestroy$","selectCollectionsOverview","takeUntil","x","console","customer","onReadCollections","selectCollectionsFilter","onFiltersChanged","complete","unsubscribe","onCreateNewClicked","reset","NEW","loadCollections","pagination","pageSize","currentPage","pageCount","recordCount","recordCountHidden","sort","fieldName","onCloseClicked","onSortByChange","uiSort","Object","assign","sortChange","onSortColumn","col","getSortObject","desc","breadcrumbParentPath","CollectionOverviewRoutingModule","RouterModule","forChild","CollectionsOverviewEffects","actions$","_cAPService","customerService","loadCollections$","createEffect","ofType","switchMap","from","b","toLowerCase","loadCollectionsSuccess","length","catchError","of","loadCollectionsError","collectionOverviewReducer","createReducer","showLoader","tags","initialState","on","collectionsChangedReducer","filtersChangedReducer","sortChangedReducer","CollectionOverviewModule","PreviewService","imports","CommonModule","RRTableModule","RRFilteredTableModule","RRFilterModule","RRLayoutModule","RRSpinnerModule","EffectsModule","forFeature","StoreModule","_api","_builder","org","ref","onPictofitReady","builder","mappedCollection","mapCollection","Promise","resolve","virtualStylingBuilder","forOrganisation","asVirtualStyling","build","api","outfits","outfit","accessories","accessory","position","settings","prefix","createAction","props","selectCollectionOverview","collectionOverview","createSelector","selectCollectionById","find","selectSort","selectCollectionsError","initState","filteredRequests","groupedAvatars","searchProductType","PRODUCT_TYPE","UNDEFINED","searchPattern","mode","loading","garmentsLoading","avatarsLoading","scenesLoading","outfitsLoading","avatarActiveGroup","CollectionScreenStore","setLoading","setTags","setGarmentsLoading","setAvatarsLoading","setScenesLoading","setOutfitsLoading","setId","setAvatarActiveGroup","activeGroup","moveAvatar","index","groupAvatars","g","idx","displayName","group","direction","moveUp","moveDown","moveAvatarGroup","findIndex","element","splice","moveScene","moveGarment","moveOutfit","list","identifier","temp","loadAvatars","effect","_ref","allRequests","getAdditionalData","resultsWithIds","all","result","addAvatar","_x","apply","arguments","loadScenes","_ref2","addOrUpdateScene","_x2","_ref3","elements","elementsByOrg","reduce","set","Map","elementsInOrg","splitElements","Array","Math","ceil","i","slice","block","refs","additionalData","requests$","e","thumbnail","push","_x3","loadGarments","_ref4","addOrUpdateGarment","_x4","loadOutfits","_ref5","getRequestByID","request","customerId","sku","previewUrl","resultUrl","productTypeId","OUTFIT_2D_PARALLAX","getOutfitParallaxInfoUrl","addOrUpdateOutfit","_x5","setFilters","_ref6","setInfoName","setInfoImageUrl","setSettings","_x6","_x7","setFilteredCollections","shoeOptions","newShoeOptions","deletedShoeOptions","o","n","forEach","avatarGroup","avatar","variant","shoe","updateShoeOptionsName","setting","oldName","updateShoeOptionsTranslation","translationKey","updateShoeOptionsImage","image","addGroupAvatars","isValidGroup","some","belongsTo","additionalInformation","heightInCm","gender","r","newGroup","updateAvatarData","avatarIndex","setAvatars","updateThumbnail","removeAvatar","removeAvatarGroup","filtered","removeScene","removeGarment","removeOutfit","setSearchProductType","info$","settings$","infoImage$","infoName$","filteredRequests$","avatars$","avatarById$","y","scenes$","garments$","outfits$","searchProductType$","avatarsVisible$","AVATAR_2D","scenesVisible$","SCENE","garmentsVisible$","GARMENT_2D","outfitsVisible$","searchPattern$","filters$","screenMode$","id$","loading$","garmentsLoading$","scenesLoading$","avatarsLoading$","outfitsLoading$","avatarActiveGroup$","groupEntries$","groups","shoeVariants$","ngrxOnStateInit","ngrxOnStoreInit","WINDOW","InjectionToken","ClipboardService","ngZone","copySubject","copyResponse$","configure","copy","content","isSupported","pushCopyResponse","isSuccess","copyResult","copyFromContent","queryCommandSupported","isTargetValid","HTMLInputElement","HTMLTextAreaElement","hasAttribute","Error","copyFromInputElement","targetElm","isFocus","selectTarget","re","copyText","clearSelection","isCopySuccessInIE11","clipboardData","getData","container","body","tempTextArea","contains","destroy","parentElement","createTempTextArea","appendChild","toReturn","cleanUpAfterCopy","removeChild","inputElement","setSelectionRange","execCommand","focus","getSelection","removeAllRanges","doc","isRTL","documentElement","getAttribute","ta","createElement","style","fontSize","border","padding","margin","top","pageYOffset","scrollTop","setAttribute","response","observers","run","pushCopyReponse","t","DOCUMENT","ɵprov","ClipboardDirective","host","renderer","clipboardSrv","cbOnSuccess","cbOnError","onClick","event","handleResult","cbContent","runOutsideAngular","clickListener","listen","nativeElement","succeeded","copiedContent","successMessage","cbSuccessMsg","observed","emit","ɵdir","None","outputs","ClipboardModule","ɵmod","ɵinj","CopyToClipboardComponent","showInfo","success","showSuccessAlert","styles","TagListComponent","modalService","openTagsModal","addGarments","TagListComponent_ng_template_2_Template","ReferenceEntryComponent","_createCollectionStore","onSelect","synced","additionalDataUrl","ReferenceEntryComponent_div_0_Template","ReferenceEntryComponent_div_1_Template","collectionEnabled","RRCopyToClipboardModule","item_r3","_r2","$implicit","ctx_r3","toggleResultCheck","detectChanges","selected","SelectTagInputElementComponent","valueChanged","searchInputValue","items","tagValue","filteredItems","setValue","updateSelectedItems","log","item","v","options","compareItem","sortItems","updateBadge","ngAfterViewInit","filterValueSub","updateTagFilter","inputText","badge","init","selector","newSelectableOptions","formatItem","getValue","target","SelectTagInputElementComponent_span_4_Template","SelectTagInputElementComponent_li_6_Template","CollectionSearchFilterBarComponent","_tagService","_customerStorageService","requestFilterService","RequestFilterService","getAllTagsByCustomerId","getSelectedCustomer","uuid","createdAt","icon","DateInputElementComponent","r_r1","ReferenceSelectionComponent_div_0_div_2_Template","requestList","ReferenceSelectionComponent","createCollectionStore","_cap","_currentPage","combineLatest","currentPage$","debounceTime","_selectedType","updateCurrentPage","getRequests","formatFilters","formatTags","mapped","configurations","results","mappedPromise","webResults","format","files","file","updatePageCount","paging","getTime","to","tag","requestFilter","stateId","_abortController","AbortController","getAllCustomerRequests","JSON","stringify","signal","getLazyRequests","SelectionModalStore","IPaginationDataProviderInterface","ComponentPaginationDataProvider","ReferenceSelectionComponent_div_0_Template","PaginationModule","RequestListPaginationComponent","webResult","toLocaleLowerCase","json","SimpleFileService","_http","readJsonFile","AccessorySelectionEntryComponent","deleteClicked","useClicked","deleteEntry","slot","ConfigurationDisplayComponent","TooltipModule","setGarmentForCurrentSlot","createRequestModalStore","productType$","currentSlot","_c1","accessorySelectionService","currentSelectedGarments","_c2","addAccessoriesClicked","_r4","deleteAccessoryEntry","selectedGarments$","TOP","_r5","_r6","MIDDLE","_r7","_r8","BOTTOM","_r9","deleteAllAccessories","ACCESSORY_SLOT","AccessorySelectionComponent","_localStorageService","_elementRef","selectedAccessories","onAccessorySelected","updateGarmentForSlot","setAccessories","toUpperCase","setSelectedGarments","showRecentlyUsed","updateSelectedAccessories","AccessorySelectionComponent_ng_template_0_Template","AccessorySelectionComponent_app_add_item_6_Template","AccessorySelectionComponent_ng_container_8_Template","AccessorySelectionComponent_app_add_item_10_Template","AccessorySelectionComponent_ng_container_12_Template","AccessorySelectionComponent_app_add_item_14_Template","AccessorySelectionComponent_ng_container_16_Template","AccessorySelectionComponent_div_18_Template","i7","AddGarmentModalComponent","AddItemComponent","IAccessorySelectionService","addItemClicked","ctx_r2","cb_selected_r5","click","AddAvatarModalComponent_div_11_ng_container_1_span_2_Template","AddAvatarModalComponent_div_11_ng_container_1_span_3_Template","avatar_r6","onCheckboxChanged","enabled","archived","selAvatar","AddAvatarModalComponent_div_11_ng_container_1_Template","allAvatars","AddAvatarModalComponent","_avatarService","_modalService","_appStore","selectedAvatar","_allTags$","_avatarLookup$","_filter","filterConfiguration","placeholder","SelectInputElementComponent","abort","getAvatars","requestOverview","productType","parse","convertToTagFormat","getAvatarsForCustomer","cbs","getElementsByName","selElement","checked","closeModal","close","selectAvatarClicked","searchPatternChanged","updateSearchPattern","clearSearchInput","tagId","pe","input_r2","AddAvatarModalComponent_ngx_skeleton_loader_10_Template","AddAvatarModalComponent_div_11_Template","AvatarThumbnailPipe","PrettyProductDatePipe","NgxSkeletonLoaderModule","FilterSelectionComponent","onAvatarSelected","avatarType","avatarSelectionService","selectAvatar","selectAvatar_r5","LOCAL_STORAGE_KEY","LAST_USED_AVATAR","AvatarSelectionEntryComponent","ngUnsubscribe","changeClicked","_currentCustomer","OUTFIT_2D","AVATAR_3D","lastUsedAvatarId","getItem","setAvatar","AvatarSelectionEntryComponent_ng_template_0_Template","AvatarSelectionEntryComponent_app_add_item_2_Template","AvatarSelectionEntryComponent_div_3_Template","ProductTypePipe","AvatarSelectionService","ctx_r0","imageDataUrl","fileinformation","fileName","mimeType","calculateFileSize","size","FileUploadEntryComponent","FILE_UPLOAD_STATE","SELECTED","generateUploadThumbnail","uploadState","sizeInBytes","val","unit","toFixed","blobToBase64","blob","reader","FileReader","onloadend","readAsDataURL","img","src","canvas","onload","width","height","getContext","drawImage","toDataURL","FileUploadEntryComponent_div_1_Template","FileUploadEntryComponent_div_2_Template","FileUploadEntryComponent_div_3_Template","onFilesSelected","multipleFiles","singleFileDeleteClicked","f_r5","fileinput_r7","removeAllClicked","FileUploadFullComponent","_fileService","alertService","filesSelected","selectedFiles","_validFiletypes","initialFiles","f","getMimeTypes","mimeTypes","Event","prepareForUpload","failedFiles","fileInfo","typeId","RequestFilesHelper","MannequinShotFileType","configurationId","requestId","FileUploadFullComponent_app_file_upload_3_Template","FileUploadFullComponent_div_7_Template","FileUploadFullComponent_div_8_Template","FileUploadComponent","DragAndDropDirective","filesDropped","background","dragOver","preventDefault","drop","dataTransfer","dragLeave","hostVars","hostBindings","onFilesDropped","fileinput_r2","showFilterList","filterCount","updateVisibleFilter","filter_r6","clearFilter","FilterSelectionComponent_div_4_li_4_span_3_Template","clearAllFilters","FilterSelectionComponent_div_4_li_4_Template","FilterSelectionComponent_div_4_li_5_Template","_clearFilterObservable","filterConfig","onChange","onFilterChanged","onBackClicked","createComponent","instance","inputData$","Observable","sub","visibleFilter$","visibleFilter","hidden","reset$","countFilters$","count","output","updateFilters","ViewContainerRef","FilterSelectionComponent_span_1_Template","FilterSelectionComponent_div_3_Template","FilterSelectionComponent_div_4_Template","FilterSelectionComponent_ng_template_6_Template","RRSelectFilterModule","cb_selected_r4","AddGarmentModalComponent_div_11_ng_container_1_span_2_Template","AddGarmentModalComponent_div_11_ng_container_1_span_3_Template","garment_r5","ctx_r5","tryonable","AddGarmentModalComponent_div_11_ng_container_1_Template","allGarments","singleSelect","setSelectedGarment","_selGarments","_garmentLookup$","getGarments","mapRequestsToGarments","garment","onSelectedGarments","getSelected","getMetadata","metadataFile","metadataResponse","ok","OUTFIT_3D","GARMENT_3D","GARMENT_3D_CAD","requests","storageInTransit","storageLocation","isPublic","groupId","tuckedIn","dressed","webresults","metadata","garmentGroup","mobileResult","te","AddGarmentModalComponent_ngx_skeleton_loader_10_Template","AddGarmentModalComponent_div_11_Template","i8","GarmentThumbnailPipe","_garments","addGarment","addGarmentSync","garmentGroupId","UNDERWEAR","onUnderwearAdded","PANTS","onPantsAdded","SKIRTS","onSkirtAdded","SHIRTS","onShirtAdded","DRESSES","onDressAdded","SWEATERS","onSweaterAdded","JACKETS","onJacketAdded","SUITS","onSuitAdded","ACCESSORIES","onAccessoryAdded","LEFT_SHOE","onLeftShoeAdded","RIGHT_SHOE","onRightShoeAdded","removeGarmentSync","orderGarmentsByGroupId","d","getOrderedGarments","FormlyField_ng_template_0_Template","FormlyGroup_formly_field_0_Template","getFieldId","formId","field","Type","prototype","key","hasKey","isNil","isArray","getKeyPath","_keyPath","indexOf","split","defineHiddenProp","FORMLY_VALIDATORS","assignFieldValue","paths","root","parent","resetOnHide","k","pop","model","assignModelValue","isObject","test","getFieldValue","reverseDeepMerge","dest","args","srcArg","isBlankString","objAndSameType","isUndefined","isFunction","obj1","obj2","getPrototypeOf","isObservable","TemplateRef","changingThisBreaksApplicationSecurity","Set","Uint8Array","Uint16Array","Uint32Array","_isAMomentObject","AbstractControl","Date","proto","create","setPrototypeOf","keys","newVal","prop","propDesc","getOwnPropertyDescriptor","defineProperty","defaultValue","enumerable","writable","configurable","observeDeep","source","setFn","observer","observe","firstChange","currentValue","_observers","previousValue","changeFn","emitEvent","getField","fieldGroup","len","markFieldForCheck","_componentRefs","ComponentRef","injector","ChangeDetectorRef","markForCheck","isHiddenField","isHidden","hide","expressions","hideExpression","setDefaultValue","isSignalRequired","VERSION","major","minor","FORMLY_CONFIG","FormlyConfig","types","validators","wrappers","messages","extras","checkExpressionOn","lazyRender","resetFieldOnHide","renderFormlyFieldElement","showError","formControl","invalid","touched","parentForm","submitted","validation","extensions","presets","extensionsByPriority","addConfig","setType","validator","setValidator","wrapper","setWrapper","validationMessages","addValidatorMessage","message","setSortedExtensions","acc","curr","option","hasOwnProperty","getType","throwIfNotFound","mergeExtendedType","getMergedField","defaultOptions","extendDefaults","extends","optionsTypes","componentRef","resolveFieldTypeRef","_componentRef","_viewContainerRef","setTypeWrapper","getWrapper","getValidator","getValidatorMessage","extensionOptions","extensionOption","priority","extension","Number","prio","extendedType","FormlyFormBuilder","viewContainerRef","buildForm","form","core","_setOptions","disableTreeValidityCall","callback","_updateTreeValidity","bind","_build","fieldArray","_hiddenFieldsForCheck","default","checkExpressions","_detectChanges","values","prePopulate","onPopulate","postPopulate","FormGroup","_buildForm","unregisterControl","control","fieldIndex","_fields","opts","FormArray","controls","removeAt","removeControl","setParent","findControl","shareFormControl","registerControl","setValidators","setAsyncValidators","disabled","disabledObserver","disable","enable","FormControl","registerOnDisabledChange","patchValue","setControl","_hide","updateValidity","onlySelf","status","updateValueAndValidity","statusChanges","valueChanges","clearControl","FormlyTemplate","ngOnChanges","FormlyFieldTemplates","FormlyField","hostContainerRef","hostObservers","componentRefs","hooksObservers","detectFieldBuild","valueChangesUnsubscribe","containerRef","elementRef","ngAfterContentInit","triggerHook","ngDoCheck","render","changes","resetRefs","hostObserver","renderField","clear","wps","attachComponentRef","_lContainer","viewRef","detach","destroyed","insert","changeDetectorRef","inlineType","templates","createEmbeddedView","fieldChanges","hooks","setStyle","className","removeAttribute","_localFields","propsObserver","subscribes","_expressions","expressionObserver","subscription","value$","fieldObserver","parsers","parserFn","is","distinctUntilChanged","startWith","updateOn","debounce","modelOptions","templateFieldsSubs","ɵcmp","_t","first","FormlyForm","fieldTemplates","modelChange","_modelChangeValue","immutable","setField","fields","checkExpressionChange","formEvents","fieldChangesDetection","isNoopNgZone","ɵNoopNgZone","onStable","runGuarded","fnc","p","contentQueries","dirIndex","dependencies","encapsulation","changeDetection","FormlyAttributes","_document","uiAttributesCache","uiEvents","listeners","eventName","onFocus","onBlur","fieldAttrElements","_elementRefs","listener","attributes","attr","detachElementRef","attachElementRef","focusObserver","toggleFocus","uiAttributes","isFocused","activeElement","blur","onHostChange","change","markAsDirty","FieldType","_formlyControls","flat","formState","NgControl","FormlyGroup","ɵFormlyGroup_BaseFactory","fieldGroupClassName","ngContentSelectors","i2$1","FormlyValidationMessage","EXPR_VALIDATORS","errorMessage$","merge","property","errorMessage","fieldForm","errors","errorPath","asyncValidators","FieldArrayType","add","initialModel","remove","updateArrayElementKey","newKey","ɵFieldArrayType_BaseFactory","FieldWrapper","_staticContent","fieldComponent","ɵFieldWrapper_BaseFactory","FormlyTemplateType","sanitizer","innerHtml","safeHtml","bypassSecurityTrustHtml","FieldExpressionExtension","expr","parseExpressions","evalExpr","tap","expressionProperties","checkLocked","ignoreCache","fieldChanged","changeHideState","_checkField","parentExpression","rootValue","evalStringExpression","expression","argNames","Function","exprValue","evalExpression","thisArg","argVal","changeDisabledState","every","_evalExpressionPath","lastIndex","emitExpressionChanges","arrayPath","match","FieldValidationExtension","initFieldValidation","getPredefinedFieldValidation","validatorName","wrapNgValidatorFn","VALIDATORS","opt","Validators","compose","required","pattern","minLengthResult","minLength","minLengthKey","minlength","He","maxLengthResult","maxLength","maxLengthKey","maxlength","ht","min","max","validatorOption","isPromise","obj","kt","ctrl","_childrenErrors","childCtrl","_errorPath","setErrors","gt","_toDelete","childErrors","FieldFormExtension","addFormControl","controlOptions","initialValueIsDefault","hasValidators","mergeValidators","asyncValidator","composeAsync","CoreExtension","initRootOptions","initFieldProps","getFieldComponentInstance","initFieldOptions","templateOptions","_markForCheck","resetModel","_initialModel","updateInitialValue","componentRefInstance","fieldComponentRef","componentType","_proxyInstance","Proxy","defaultFormlyConfig","FormlyModule","configService","configs","forRoot","ngModule","providers","useFactory","deps","useValue","FormlyWrapperFormField_ng_template_0_label_0_span_2_Template","FormlyWrapperFormField_ng_template_0_label_0_Template","hideRequiredMarker","FormlyWrapperFormField_ng_template_0_Template","hideLabel","FormlyWrapperFormField_ng_container_3_Template","labelTemplate_r2","FormlyWrapperFormField_ng_template_4_Template","FormlyWrapperFormField_ng_container_6_Template","FormlyWrapperFormField_div_7_Template","FormlyWrapperFormField_small_8_Template","description","FormlyWrapperFormField","ɵFormlyWrapperFormField_BaseFactory","labelPosition","FormlyBootstrapFormFieldModule","ReactiveFormsModule","FieldType$1","templateRef","FormlyFieldInput_ng_template_0_input_0_Template","FormlyFieldInput_ng_template_0_ng_template_1_Template","FormlyFieldInput_ng_template_0_Template","numberTmp_r2","FormlyFieldInput","ɵFormlyFieldInput_BaseFactory","FormlyBootstrapInputModule","FormlyFieldTextArea_ng_template_0_Template","cols","rows","FormlyFieldTextArea","ɵFormlyFieldTextArea_BaseFactory","FormlyBootstrapTextAreaModule","FormlySelectOptionsPipe","transform","dispose","observableOf","transformOptions","transformSelectProps","transformOption","groupProp","labelProp","valueProp","disabledProp","selectPropFn","_options","_subscription","ɵpipe","pure","FormlySelectModule","FormlyFieldRadio_ng_template_0_div_0_Template","option_r1","i_r2","formCheck","disabledControl","FormlyFieldRadio_ng_template_0_Template","FormlyFieldRadio","ɵFormlyFieldRadio_BaseFactory","FormlyBootstrapRadioModule","a0","a1","FormlyFieldCheckbox_ng_template_0_label_2_span_2_Template","FormlyFieldCheckbox_ng_template_0_label_2_Template","FormlyFieldCheckbox_ng_template_0_Template","indeterminate","FormlyFieldCheckbox","ɵFormlyFieldCheckbox_BaseFactory","FormlyBootstrapCheckboxModule","FormlyFieldMultiCheckbox_ng_template_0_div_0_Template","option_r2","i_r4","isChecked","FormlyFieldMultiCheckbox_ng_template_0_Template","FormlyFieldMultiCheckbox","it","markAsTouched","ɵFormlyFieldMultiCheckbox_BaseFactory","FormlyBootstrapMultiCheckboxModule","FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_option_1_Template","opt_r1","FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_ng_template_2_option_1_Template","child_r2","FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_ng_template_2_Template","FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_Template","optgroup_r3","FormlyFieldSelect_ng_template_0_select_0_ng_container_1_Template","opts_r4","ngIf","FormlyFieldSelect_ng_template_0_select_0_Template","ctx_r4","compareWith","FormlyFieldSelect_ng_template_0_ng_template_1_option_1_Template","FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_option_1_Template","opt_r6","FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_ng_template_2_option_1_Template","child_r7","FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_ng_template_2_Template","FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_Template","optgroup_r8","FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_Template","opts_r9","FormlyFieldSelect_ng_template_0_ng_template_1_Template","FormlyFieldSelect_ng_template_0_Template","singleSelect_r10","multiple","FormlyFieldSelect","o1","o2","selectAccessor","writeValue","_getOptionId","_idCounter","selectedIndex","SelectControlValueAccessor","FormlyBootstrapSelectModule","FormlyWrapperAddons_ng_template_0_div_1_i_1_Template","addonLeft","class","FormlyWrapperAddons_ng_template_0_div_1_span_2_Template","FormlyWrapperAddons_ng_template_0_div_1_Template","addonLeftClick","FormlyWrapperAddons_ng_template_0_div_4_i_1_Template","addonRight","FormlyWrapperAddons_ng_template_0_div_4_span_2_Template","FormlyWrapperAddons_ng_template_0_div_4_Template","addonRightClick","FormlyWrapperAddons_ng_template_0_Template","FormlyWrapperAddons","addonsExtension","FormlyBootstrapAddonsModule","FormlyBootstrapModule","isEmpty","isConst","schema","enum","totalMatchedFields","ɵhasKey","ɵgetFieldValue","total","FormlyJsonschema","toFieldConfig","ɵclone","_toFieldConfig","isOptional","resolveSchema","guessSchemaType","readonly","readOnly","ignoreDefault","minItems","addValidator","schemaType","isInteger","floor","toNumber","parseFloat","isNaN","input","querySelector","validity","badInput","emitModelToViewChange","minimum","maximum","exclusiveMinimum","exclusiveMaximum","step","multipleOf","multiplier","pow","decimalPlaces","isFinite","round","propDeps","schemaDeps","resolveDependencies","properties","isRequired","getConstValue","const","oneOfSchema","oneOf","oneOfSchemaItem","xt","constSchema","resolveMultiSchema","anyOf","maxItems","uniqueItems","isEnum","isMultiSchema","itemSchema","additionalItems","removable","enumOptions","toEnumOptions","enumValues","widget","formlyConfig","mergeFields","$ref","resolveDefinition","allOf","resolveAllOf","baseSchema","base","ɵreverseDeepMerge","schemas","onInit","forceUpdate","isFieldValid","f1","f1Valid","f2","f2Valid","matchedFields1","matchedFields2","definedValue","uri","pointer","definition","def","annotation","dependency","dep","t1","toEnum","_field","valid","f1Prop","i_r3","ArrayTypeComponent_div_7_div_2_Template","field_r4","ArrayTypeComponent","ArrayTypeComponent_legend_1_Template","ArrayTypeComponent_p_2_Template","ArrayTypeComponent_div_6_Template","ArrayTypeComponent_div_7_Template","MultiSchemaTypeComponent","MultiSchemaTypeComponent_legend_2_Template","MultiSchemaTypeComponent_p_3_Template","MultiSchemaTypeComponent_div_4_Template","MultiSchemaTypeComponent_formly_field_5_Template","NullTypeComponent","ObjectTypeComponent","ObjectTypeComponent_legend_1_Template","ObjectTypeComponent_p_2_Template","ObjectTypeComponent_div_3_Template","ObjectTypeComponent_formly_field_4_Template","SliderTypeComponent","slider_r1","FormsModule","minItemsValidationMessage","maxItemsValidationMessage","minLengthValidationMessage","maxLengthValidationMessage","minValidationMessage","maxValidationMessage","multipleOfValidationMessage","exclusiveMinimumValidationMessage","exclusiveMaximumValidationMessage","constValidationMessage","typeValidationMessage","CmsFormlyModule","JointMap","rShldrBend","rShldrTwist","rForearmBend","rForearmTwist","lShldrBend","lShldrTwist","lForearmBend","lForearmTwist","rThighBend","rThighTwist","rShin","lThighBend","lThighTwist","lShin","fromOriginalJointToMapped","fromMappedJointToOriginal","call","setOptions","stylingOptions","StylingOptionsComponent","formlyJsonschema","garmentSelectionService","setGarmentStylingOptions","mapStylingObject","cinchUp","cinch","rootJointName","isGarment","updated","mapStylingObjectToUI","StylingOptionsComponent_form_1_Template","WebSDKService","authService","discovery","computeServer","ComputeServer","computeServerUrl","stylingOptionsModal_r4","tuckGarment","dressGarment","GarmentSelectionEntryComponent","httpClient","sdk","isOutfit2DMode","tuckClicked","dressClicked","assetFactory","AssetFactoryFactory","dtoToAsset","fileList","filename","Garment3DAsset","asset","createGarment","requestStylingTemplateParameterJSONSchema","sanitiseStylingOptions","removeNonRequired","getOwnPropertyNames","cleaned","$defs","action","GarmentSelectionEntryComponent_ng_template_3_Template","GarmentSelectionEntryComponent_span_5_Template","GarmentSelectionEntryComponent_span_6_Template","GarmentSelectionEntryComponent_span_7_Template","GarmentSelectionEntryComponent_span_8_Template","GarmentSelectionEntryComponent_span_9_Template","recentlyUsedGarmentClicked","GarmentSelectionComponent_ng_template_2_div_0_div_6_Template","addGarmentsClicked","recenltyUsedMaxHeight","spinnerStatusRecenltyUsed","garmentToDisplay","GarmentSelectionComponent_ng_template_2_div_0_Template","showRecenltyUsedDialog","recentlyUsedGarments_r7","garment_r10","deleteGarmentEntry","GarmentSelectionComponent_ng_container_14_div_1_Template","_r11","deleteAllGarments","RECENTLY_USED_GARMENTS_KEY","GarmentSelectionComponent","selectedGarments","recenltyUsedGarments","onGarmentTuckedIn","setDressedGarments","calculateGarments","onGarmentsSelected","recenltyUsed","itemsToStore","reverse","setTimeout","tuckedInGarment$","calcRecentlyUsedMayHeigh","getElementsByClassName","clientHeight","currentDressed","arr","uniqueEntries","setTuckedInGarment","toBeDressed","updateSelectedGarments","garmentsToBeDressed","dressingRoomLogic","DressingRoomLogicFactory","garmentId","mapGarments","orderedGarments","recentlyUsedGarments","storedGarments","garmentList","getBottomPosition","rect","getBoundingClientRect","bottom","getRightPosition","GarmentSelectionComponent_ng_template_0_Template","GarmentSelectionComponent_ng_template_2_Template","GarmentSelectionComponent_div_9_Template","GarmentSelectionComponent_ng_container_10_Template","GarmentSelectionComponent_app_add_item_12_Template","GarmentSelectionComponent_ng_container_14_Template","GarmentSelectionComponent_div_16_Template","i9","IGarmentSelectionService","onDateSelected","backdropListClicked","InputDateComponent","valueChange","showBackdrop","date","formatedDate","Intl","DateTimeFormat","dateStyle","timeStyle","dates","setDate","getDate","InputDateComponent_div_5_Template","InputDateComponent_div_6_Template","RRCalendarModule","entry_r2","itemSelect","InputDropdownComponent_div_6_div_1_Template","entries","showList","InputDropdownComponent","entry","InputDropdownComponent_div_6_Template","InputDropdownComponent_div_7_Template","InputTextComponent","isValid","validationFunction","InputTextComponent_span_4_Template","selectedItem_r5","removeItem","color","item_r7","addTagToSelected","editTag","TagSelectionComponent_div_10_div_1_Template","TagSelectionComponent_div_10_div_2_Template","TagSelectionComponent_div_10_div_3_Template","filteredTags","backdropClicked","color_r11","_r10","changeColor","editItem","updateTag","deleteTag","TagSelectionComponent_div_12_ng_container_9_Template","_c3","editLeft","editTop","spinnerTextBox","colorList","TagSelectionComponent","spinnerSelectionBox","itemList","allTags","addToSelectionEvent","addExistingTagToSelectionEvent","removeFromSelectionEvent","updateOrCreateSelectionEvent","deleteTagEvent","MutationObserver","charData","innerHTML","listOpacity","nodeValue","getElementById","childList","subtree","characterData","cutstomerId","configurationTags","tagItem","getTagOnlyForCustomer","tagKeyId","reloadTags","addToSelection","code","clearInput","random","addTagtoConfiguration","selectedItem","innerHeight","reloadSelectedItems","focusInput","TagSelectionComponent_div_2_Template","TagSelectionComponent_ng_container_5_Template","TagSelectionComponent_span_7_Template","TagSelectionComponent_div_10_Template","TagSelectionComponent_div_11_Template","TagSelectionComponent_div_12_Template","OUTFIT_2D_CONFIG","canOnlyBeDrafted","FILE_FORMAT","JPEG","PNG","XLS","CSV","ACCESSORY_3D_CONFIG","fileFormats","multiplicity","MAX_SAFE_INTEGER","GARMENT_2D_CONFIG","GARMENT_3D_CONFIG","ReferenceImageFileType","MannequinShotBackFileType","RejectedFileType","CadFileType","getRequestFilesConfig","ACCESSORY_3D","containsFileType","fileType","maxUploadsForFileType","fileConfig","minUploadsForFileType","getSupportedFileExtensionsPerFileType","UPLOADING","DONE","AlertService","subscribeAlert","showAlert","alert","RR_ALERT_TYPE","DANGER","SUCCESS","httpOptions","headers","HttpHeaders","DataService","endpointName","_apiSdkService","discoveryService","BASE_API_URL","standardUrl","getListURL","getDeleteURL","getUpdateURL","isDeleteable","isUpdateable","params","emitErrorNoEndpointURLTable","urlParams","HttpParams","append","formatSortBy","includeResult","convertToTableData","throwError","emitErrorNoEndpointURL","delete","updateEntry","httpRequestType","put","post","deleteMultipleEntries","filterBy","findFilterByFieldName","subscriber","errorOnInitService","DiscoToken","NgDiscoveryService","DiscoveryConfig","getDiscovery","time","ConsoleLoggerService","baseUrl","platformApiBaseUrl","timeEnd","notEmpty","NgStorageManagerService","currentState","storages","local","session","updateProfile","updateLocation","update","existing","M","local$","session$","skip","saveToStorage","sessionStorage","loadFromStorage","storage","getItem$","clearLocation","ProgressBarService","killHttp","isLoading","showProgressBar","maxEntities","progressBarValue","increaseProgressBarValue","destroyHttpRequest","UserDataPermissionService","_grant","permission","restore","grant","permissions","fromStorage","ICustomerService","CURRENT_CUSTOMER_ID","CustomerStorageService","storageManager","setSelectedCustomer","clearSelectedCustomer","updateCustomerListAction","setCurrentCustomerAction","setCurrentCustomerIDAction","loadCurrentCustomerAction","loadCurrentCustomerCompleteAction","IApiSdkService","IProductService","IProcessService","ITagService","IUserService","IRequestService","IFileUploadService","IPublicRequestService","IGarmentService","IFileDownloadService","IFileService","ICentralAssetPlatformService","ISimpleFileService","ApiSdkService","initApiSdkConfig","processApiSdk","ProcessApi","productApiSdk","ProductsApi","customersApiSdk","CustomersApi","usersApiSdk","configurationsApiSdk","ConfigurationsApi","filesApiSdk","FilesApi","tagsApiSdk","TagsApi","internal_SdkConfig$","configuration","errorOnInitSdk","sdkConfig$","CSApiSdk","CustomerService","initCustomersService","sdkConfig","_customerApi","errorOnInitCustomersService","errorOnRefreshMyCustomers","fetchCustomerById","vversionCustomersIdGet","reject","l","h","m","queueMicrotask","S","TypeError","_cursor","_size","_front","_elements","_next","_back","shift","peek","w","Symbol","R","T","C","P","q","_ownerReadableStream","_reader","_state","B","A","_storedError","E","Or","W","j","_readableStreamController","O","_closedPromise","_closedPromise_resolve","_closedPromise_reject","z","D","trunc","L","F","I","$","Y","Q","N","Er","H","ReadableStreamDefaultReader","V","_readRequests","U","_closeSteps","_chunkSteps","G","X","J","Wr","closed","ee","cancel","read","K","done","_errorSteps","releaseLock","Z","_disturbed","oe","ne","ae","defineProperties","toStringTag","ie","transfer","structuredClone","le","detached","byteLength","se","ArrayBuffer","ue","String","ce","de","asyncIterator","for","fe","be","iterator","nextMethod","he","_ongoingPromise","_isFinished","_preventCancel","_nextSteps","_returnSteps","_e","_asyncIteratorImpl","return","ye","Se","buffer","byteOffset","ge","_queue","_queueTotalSize","ve","RangeError","we","Re","DataView","ReadableStreamBYOBRequest","view","Ce","Je","_view","respond","_associatedReadableByteStreamController","Ue","respondWithNewView","isView","Ge","ReadableByteStreamController","byobRequest","Te","Ke","desiredSize","Ve","_closeRequested","_controlledReadableByteStream","Ye","enqueue","xe","Qe","qe","_cancelAlgorithm","Me","Ne","_autoAllocateChunkSize","bufferByteLength","bytesFilled","minimumFill","elementSize","viewConstructor","readerType","_pendingPullIntos","Pe","_started","ot","rt","_pulling","_pullAgain","_pullAlgorithm","De","Ee","We","_readIntoRequests","Oe","Be","ke","$e","je","Ae","ze","Br","_byobRequest","Le","Ie","kr","_strategyHWM","Xe","Ze","et","ReadableStreamBYOBReader","tt","nt","lt","at","Fe","BYTES_PER_ELEMENT","st","highWaterMark","ut","ct","dt","ft","bt","mt","pt","WritableStream","start","write","St","WritableStreamDefaultController","Ft","locked","Nt","vt","wt","qt","Rt","getWriter","yt","WritableStreamDefaultWriter","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","_abortReason","_promise","_resolve","_reject","_reason","_wasAlreadyErroring","Ct","or","Dt","Mt","Tt","Pt","jt","Et","Jt","Wt","Zt","_ownerWritableStream","tr","Gt","er","Kt","Xt","Ot","Vt","Ut","$t","ready","_readyPromise","Bt","At","zt","_readyPromiseState","rr","_closedPromiseState","_strategySizeAlgorithm","Yt","_controlledWritableStream","abortReason","Lt","Ht","Qt","_abortAlgorithm","It","_writeAlgorithm","_closeAlgorithm","_readyPromise_resolve","_readyPromise_reject","nr","globalThis","self","global","ar","DOMException","captureStackTrace","ir","reason","aborted","addEventListener","removeEventListener","ReadableStreamDefaultController","lr","pr","hr","mr","dr","fr","br","cr","_controlledReadableStream","sr","ur","_r","Sr","getReader","Cr","gr","vr","wr","Rr","Tr","preventAbort","preventCancel","preventClose","ponyfill_ReadableStream","autoAllocateChunkSize","pull","qr","jr","pipeThrough","readable","pipeTo","tee","yr","Pr","Ar","zr","ByteLengthQueuingStrategy","_byteLengthQueuingStrategyHighWaterMark","Lr","Dr","Fr","CountQueuingStrategy","_countQueuingStrategyHighWaterMark","$r","Ir","Mr","Yr","xr","Qr","TransformStream","flush","readableType","writableType","_writable","_transformStreamController","_backpressureChangePromise","Zr","_finishPromise","_readable","_finishPromise_resolve","_finishPromise_reject","_flushAlgorithm","Jr","ro","Gr","Ur","_backpressureChangePromise_resolve","TransformStreamDefaultController","Kr","_controlledTransformStream","_transformAlgorithm","Nr","oo","Hr","Vr","Xr","eo","terminate","Crc32","crc","table","offset","getDataHelper","uint8","array","createWriter","underlyingSource","filenames","encoder","TextEncoder","activeZipObject","activeZipIndex","processNextChunk","closeZip","zipWriter","fileLike","trim","lastModified","now","directory","endsWith","nameBuf","encode","zipObject","level","comment","compressedLength","uncompressedLength","writeHeader","header","setUint16","setUint32","getHours","getMinutes","getSeconds","getFullYear","getMonth","writeFooter","footer","indexFilename","setUint8","zipObj","chunk","outputData","pump","stream","ReadableStream","FileDownloadService","_discoveryService","_progressBarOverlayService","fixFirefoxStreamDownload","fetchFile","downloadOneFile","downloadListOfFiles","getFile","fileId","getFileExtension","substring","substr","lastIndexOf","fileDownload","entities","visibleBatchOptions","singleDownload","getFileListWithUrls","downloadFile","streamDownload","blobURL","createObjectURL","getFileName","msg","downloadResultFile","downloadZippedFiles","zip","JSZip","fetchFileByUrl","generateAsync","saveAs","downloadFiles","fileData","startProgress","progressBarService","download","fileStream","streamSaver","downloadFileName","selectedEntities","resolveStartPromise","allPromises","isThereSomethingToDownload","readableZipStream","ZIP","entity","getFiles","successStreamDownload","finishStreamDownload","filePath","generateFilePath","writer","fileRequests","selectedFile","forkJoin","configurationResultId","duplicateNumber","previousFile","otherExtension","duplicateSuffix","initService","FileUploadService","initFileUploadService","_apiVersion","_filesApi","errorOnInitFileUploadService","uploadJsonFile","jsonObject","jsonToBlob","uploadFile","uploadBase64File","base64Data","dataURIToBlob","fileBlob","formData","FormData","lastValueFrom","fileUpload","putFileUpload","patchFileUpload","resultFileUpload","patch","jsonObj","str","bytes","Blob","dataURI","splitDataURI","byteString","atob","decodeURI","mimeString","ia","charCodeAt","GarmentService","additional","isSelected","ProcessService","initProcessService","apiSdkConfig","_processApi","loadGarment2DRejectionReasons","loadGarment3DRejectionReasons","loadAccessory3DRejectionReasons","loadOutfit2DRejectionReasons","initProcessServiceHasError","mapServiceRejectionReasonDTOToIServiceRejectionReason","_rejectionReasonsGarment2D$","rejectionReasonsGarment2D$","_rejectionReasonsGarment3D$","rejectionReasonsGarment3D$","_rejectionReasonsOutfit2D$","rejectionReasonsOutfit2D$","_rejectionReasonsAccessory3D$","rejectionReasonsAccessory3D$","refreshRejectionReasonsGarment2D","refreshRejectionReasonsGarment3D","refreshRejectionReasonsOutfit2D","refreshRejectionReasonsAccessory3D","fetchServiceRejectionReasons","reasons","vversionProcessServicerejectionreasonsProductTypeIdGet","ProductService","initProductsService","_productApi","initProductsServiceHasError","mapProductDTOToIProduct","prodcut","customerName","dueAt","modifiedAt","mapProductTypeDTOToIProductType","reviewEnabled","fetchProductByID","productId","productLink","updateProduct","product","vversionProductsIdPut","fetchProductTypes","vversionProductsTypesGet","PublicRequestService","_requestApi","getPublicRequestByID","vversionConfigurationsPublicGet","getFirstApprovedAvatar2D","RequestService","mapConfigurationStateDTOToRequestHistory","stateLogDto","entryId","mapObjectToIRequestAggregate","object","statesCount","mapConfigurationEmployeeOnlyDTOToIRequest","dto","ThumbnailImageID","thumbnailImageID","tagKeyColor","tagKeyName","loadAllPriorities","allPriorities_loading$","allPriorities$","getResponseFromUrl","configurationLink","page","cancelSignal","vversionConfigurationsGet","getPublicRequests","inlcudedArchived","vversionConfigurationsAllforcustomerGet","vversionConfigurationsIdPut","vversionConfigurationsIdDelete","approveRequest","vversionConfigurationsIdApprovePost","rejectRequest","_this8","vversionConfigurationsIdRejectPost","setReady","_this9","vversionConfigurationsIdReadyPost","getHistory","_this10","vversionConfigurationsIdStatesGet","getResult","requestResultId","_this11","vversionResultsResultIdGet","getResults","_this12","vversionConfigurationsIdResultsGet","includeResults","getRequestAggregates","filtersString","tagsString","vversionConfigurationsAggregatesGet","getRequestPageCount","getPublicRequestsPageCount","vversionConfigurationsPrioritiesGet","finally","checkProductTypeFilter","productTypeFilter","RR_FILTER_TYPE","TEXT_SEARCH","TagService","_tagsApi","vversionTagsGet","vversionTagsTagKeyIdDelete","deleteTagFromConfiguration","vversionTagsTagKeyIdConfigurationsConfigurationIdDelete","addTagToConfiguration","vversionTagsTagKeyIdConfigurationsConfigurationIdPut","createOrUpdateTag","vversionTagsTagKeyIdPut","getAllTags","getTag","USER_FEATURE_FLAGS","PICTOFITCMS_APPROVE_REQUEST","PICTOFITCMS_REJECT_REQUEST","RR_EMPLOYEE","UserService","initUserService","_usersApi","loadMe","initUserServiceHasError","errorOnFetchingMeUser","mapUserDTOToIUser","firstName","lastName","email","_me","updateMe","vversionUsersIdPut","listApiKeys","vversionUsersApikeyGet","newApiKey","vversionUsersApikeyPut","revokeApiKey","vversionUsersApikeyIdDelete","canUserApproveRequest","canUserRejectRequest","refreshMeUser","defaultJsonSerializer","invariant","condition","LineRegExp","getLocation","lastLineStart","line","matchAll","column","printSourceLocation","sourceLocation","firstLineColumnOffset","locationOffset","padStart","lineIndex","lineNum","columnNum","locationStr","lines","locationLine","subLineIndex","subLineColumnNum","subLines","printPrefixedLines","subLine","existingLines","padLen","GraphQLError","rawArgs","_this$nodes","_nodeLocations$","nodes","positions","originalError","toNormalizedOptions","firstArg","undefinedIfEmpty","nodeLocations","node","loc","locations","pos","originalExtensions","isObjectLike","stack","toJSON","formattedError","syntaxError","Location","startToken","endToken","end","Token","kind","prev","QueryDocumentKeys","Name","Document","OperationDefinition","VariableDefinition","Variable","SelectionSet","Field","Argument","FragmentSpread","InlineFragment","FragmentDefinition","IntValue","FloatValue","StringValue","BooleanValue","NullValue","EnumValue","ListValue","ObjectValue","ObjectField","Directive","NamedType","ListType","NonNullType","SchemaDefinition","OperationTypeDefinition","ScalarTypeDefinition","ObjectTypeDefinition","FieldDefinition","InputValueDefinition","InterfaceTypeDefinition","UnionTypeDefinition","EnumTypeDefinition","EnumValueDefinition","InputObjectTypeDefinition","DirectiveDefinition","SchemaExtension","ScalarTypeExtension","ObjectTypeExtension","InterfaceTypeExtension","UnionTypeExtension","EnumTypeExtension","InputObjectTypeExtension","kindValues","isNode","maybeNode","maybeKind","has","OperationTypeNode","QUERY","MUTATION","SUBSCRIPTION","DirectiveLocation","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION","SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","Kind","NAME","OPERATION_DEFINITION","SELECTION_SET","ARGUMENT","VARIABLE","INT","FLOAT","STRING","BOOLEAN","NULL","LIST","OBJECT_FIELD","DIRECTIVE","NAMED_TYPE","LIST_TYPE","NON_NULL_TYPE","SCHEMA_DEFINITION","OPERATION_TYPE_DEFINITION","SCALAR_TYPE_DEFINITION","OBJECT_TYPE_DEFINITION","INPUT_VALUE_DEFINITION","INTERFACE_TYPE_DEFINITION","UNION_TYPE_DEFINITION","ENUM_TYPE_DEFINITION","ENUM_VALUE_DEFINITION","INPUT_OBJECT_TYPE_DEFINITION","DIRECTIVE_DEFINITION","SCHEMA_EXTENSION","SCALAR_TYPE_EXTENSION","OBJECT_TYPE_EXTENSION","INTERFACE_TYPE_EXTENSION","UNION_TYPE_EXTENSION","ENUM_TYPE_EXTENSION","INPUT_OBJECT_TYPE_EXTENSION","isWhiteSpace","isDigit","isLetter","isNameStart","isNameContinue","dedentBlockStringLines","_firstNonEmptyLine2","commonIndent","firstNonEmptyLine","lastNonEmptyLine","_firstNonEmptyLine","indent","leadingWhitespace","TokenKind","SOF","EOF","BANG","DOLLAR","AMP","PAREN_L","PAREN_R","SPREAD","COLON","EQUALS","AT","BRACKET_L","BRACKET_R","BRACE_L","PIPE","BRACE_R","BLOCK_STRING","COMMENT","Lexer","startOfFileToken","lastToken","lineStart","advance","lookahead","nextToken","readNextToken","isUnicodeScalarValue","isSupplementaryCodePoint","isLeadingSurrogate","isTrailingSurrogate","printCodePointAt","lexer","codePointAt","char","fromCodePoint","createToken","bodyLength","readComment","readBlockString","readString","readNumber","readName","firstCode","isFloat","readDigits","chunkStart","escape","readEscapedUnicodeVariableWidth","readEscapedUnicodeFixedWidth","readEscapedCharacter","point","readHexDigit","read16BitHexCode","trailingCode","currentLine","blockLines","devAssert","MAX_ARRAY_LENGTH","MAX_RECURSIVE_DEPTH","inspect","formatValue","seenValues","formatObjectValue","previouslySeenValues","isJSONable","jsonValue","formatArray","remaining","formatObject","getObjectTag","instanceOf","process","_value$constructor","stringifiedValue","Source","Parser","parseDocument","sourceObj","isSource","_lexer","_tokenCounter","parseName","expectToken","definitions","many","parseDefinition","parseOperationDefinition","hasDescription","peekDescription","keywordToken","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseFragmentDefinition","parseTypeSystemExtension","unexpected","operation","variableDefinitions","directives","selectionSet","parseSelectionSet","parseOperationType","parseVariableDefinitions","parseDirectives","operationToken","optionalMany","parseVariableDefinition","variable","parseVariable","parseTypeReference","expectOptionalToken","parseConstValueLiteral","parseConstDirectives","selections","parseSelection","parseFragment","parseField","nameOrAlias","alias","parseArguments","parseConstArgument","parseArgument","parseValueLiteral","hasTypeCondition","expectOptionalKeyword","parseFragmentName","typeCondition","parseNamedType","expectKeyword","allowLegacyFragmentVariables","parseList","parseObject","advanceLexer","parseStringLiteral","any","parseObjectField","parseDirective","innerType","parseDescription","operationTypes","parseOperationTypeDefinition","interfaces","parseImplementsInterfaces","parseFieldsDefinition","delimitedMany","parseFieldDefinition","parseArgumentDefs","parseInputValueDef","parseUnionMemberTypes","parseEnumValuesDefinition","parseEnumValueDefinition","parseEnumValueName","getTokenDesc","parseInputFieldsDefinition","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","repeatable","parseDirectiveLocations","parseDirectiveLocation","noLocation","getTokenKindDesc","atToken","openKind","parseFn","closeKind","delimiterKind","maxTokens","isPunctuatorTokenKind","escapedRegExp","escapedReplacer","escapeSequences","BREAK","freeze","getEnterLeaveForKind","visitor","kindVisitor","enter","leave","print","ast","visit","visitorKeys","enterLeaveMap","inArray","edits","ancestors","isLeaving","isEdited","editOffset","editKey","editValue","arrayKey","getOwnPropertyDescriptors","_enterLeaveMap$get","_enterLeaveMap$get2","visitFn","_node$kind","printDocASTReducer","varDefs","wrap","argsLine","isBlockString","printBlockString","escapedValue","isSingleLine","forceLeadingNewLine","hasTrailingTripleQuotes","hasTrailingQuote","hasTrailingSlash","forceTrailingNewline","printAsMultipleLines","minimize","skipLeadingNewLine","printString","hasMultilineItems","maybeArray","separator","_maybeArray$filter$jo","maybeString","_maybeArray$some","extractOperationName","operationName","operationDefinitions","resolveRequestDocument","parsedDocument","query","ClientError","extractMessage","resolveHeaders","oHeaders","Headers","CrossFetch","HeadersInstanceToPlainObject","cleanQuery","createHttpMethodFetcher","method","variables","fetchOptions","middleware","queryParams","createRequestBody","jsonSerializer","params_","search","encodeURIComponent","payload","currentQuery","buildRequestConfig","urlResolved","initResolved","urlNew","initNew","GraphQLClient","requestConfig","rawRequest","queryOrOptions","requestHeaders","rawRequestOptions","parseRawRequestArgs","crossFetch","requestMiddleware","responseMiddleware","makeRequest","callOrIdentity","documentOrOptions","variablesAndRequestHeaders","requestOptions","parseRequestArgs","batchRequests","documentsOrOptions","batchRequestOptions","parseBatchRequestArgs","documents","queries","setHeader","setEndpoint","fetcher","uppercase","isBatchingQuery","successfullyReceivedData","successfullyPassedErrorPolicy","errorPolicy","rest","jsonSerializer_","contentType","startsWith","docCache","fragmentSourceMap","printFragmentWarnings","experimentalFragmentVariables","normalize","string","cacheKey","parsed","stripLoc","workSet","processFragments","seenKeys","fragmentDefinition","fragmentName","sourceKey","cacheKeyFromLoc","sourceKeySet","__assign","gql","literals","_i","arg","gql_1","resetCaches","disableFragmentWarnings","enableExperimentalFragmentVariables","disableExperimentalFragmentVariables","FindSettingDocument","defaultWrapper","_operationName","_operationType","_variables","GetAllSettingsDocument","CreateSettingDocument","AddExternalReferenceToSettingDocument","UpdateCollectionDocument","GetThumbnailDocument","GetIdDocument","GetAdditionalDataDocument","getMerchantSdk","client","getSdk","withWrapper","getAllSettings","wrappedRequestHeaders","createSetting","addExternalReferenceToSetting","updateCollection","getThumbnail","merchantSdk","CentralAssetPlatformService","_publicPostfix","_merchantPostfix","getMerchantSDK","_merchant_sdk","merchantPlatformUrl","getPublicSDK","_public_sdk","getPublicSdk","findSetting","publicSdk","publicPlatformUrl","referenceExists","settingId","createCollection","promise","ProductHelper","ProductTypes_CMS","getProductStatusLabel","PRODUCT_STATE","NOT_READY_FOR_PROCESSING","READY_FOR_PROCESSING","IN_PROGRESS","COMPLETED","REJECTED","CANCELED","getProductStatusScssClass","mapProductTypeFromStringToEnum","parseInt","mapProductTypeFromEnumToStringName","getProductType","REQUEST_STATE_CMS","CREATED","FINISHED","APPROVED","REQUEST_STATE_INTERNAL_STRING","FETCHED","PROCESSED","REPORTED","FETCHED_FOR_REVIEW","REJECTED_BY_CUSTOMER","REJECTED_BY_SERVICE","LOCKED","REJECTED_BY_REVIEWER","APPROVED_BY_CUSTOMER","CANCELED_BY_CUSTOMER","RESET_EVENT","EXPORTING","REQUEST_STATE_INTERNAL_ID","RequestStateHelper","getInternalStateLabel","getInternalStateColorClass","mapInternalStateStringToEnum","stateString","mapInternatStateToCustomerState","mapCustomerStateToInternalState","getCustomerStateLabel","getCustomerStateColorClass","getCustomerStateColor","DataProviders","FilesService","GlobalVariable","CLIENT_VERSION","require","GET_CUSTOMER_IDS","FILE_TYPES","FILE_MIME_TYPES","FILTER_USER_LIST","SCREENSHOT_NAME","File","typeName","mimeTypeId","currentRevisionId","toDataFormat","_fileDownloadService","deleteFile","vversionFilesIdDelete","toPromise","setFileConfiguration","fileConfiguration","imagePage","getRequestFiles","mapRequestFiles","getFilesFromRequest","vversionConfigurationsConfigurationIdFilesGet","fileLink","getTypes","vversionFilesTypesGet","vversionFilesMIMEtypesGet","loadFile","lbActiveFile","XMLHttpRequest","open","readAsText","hideLoader","onerror","send","ILogger","LoggerProviders","warnedOfConsole","emitMessage","details","ModalStore","modals","switch","newModal","outgoing","onClose","newStack","ModalService","modal","modalStore","modalStack$","modalStackDepth$","FASHION_IMAGE_RESOLUTION","SD","HD","FOUR_K","SIX_K","FashionImageResolutionTypes","resolution","slug","onDueChanged","requestCommonData$","dueDate","onPriorityChanged","prioritiesDDValues","onSizeChanged","renderSizes","CommonInputsComponent","_allPriorities","allProductTypes","onPrioritiesChanged","onPrioritiesChangedHasError","nameValidation","inputValid","createRequestAction$","createRequestActionAndAnotherOne$","createAndAnotherOne","tags$","tagKeyDescription","tagKeyDisplayTemplate","displayTemplate","tagKeyJsonSchema","jsonSchema","requestCommonDataSize$","requestCommonDataPriority$","onNameChanged","changeCreateRequestCommonData","onSkuChanged","addTagEntry","removeTagEntry","CommonInputsComponent_app_input_date_4_Template","CommonInputsComponent_app_input_dropdown_6_Template","CommonInputsComponent_app_input_dropdown_8_Template","supportDueDate$","supportPriority$","supportSize$","CreateRequestGarmentSelectionService","dressed$","dressingRoom","setGarments","clickOutside","saveDraftRequestClicked","createRequestClicked","saveRequestAndAnotherOneClicked","ActionButtonsComponent_div_13_div_8_Template","supportDraft$","ActionButtonsComponent","eRef","cancelClicked","cancelAction","createRequestAction","showDropDown","saveDraftAction","onDropDownClicked","createRequestActionAnAnotherOne","mouseOver","ActionButtonsComponent_div_12_Template","ActionButtonsComponent_div_13_Template","requestCommonDataValid$","CreateGarment2DComponent","createGarment2DService","initialFrontFiles","initialBackFiles","initialReferenceFiles","requestCommonDataName$","isInputValid","createRequest","front","_frontFile","_backFile","_referencefiles","createNewRequestAction","onSelectedFilesChanged","currentCommonData","dataValid","switchSkipManualStep","existingRequest$","skipManualStep$","VirtualDressingRoomModule","CreateGarment3DCADComponent","createGarment3DCADService","initialCadFiles","cad","_cadFile","applyChangedState","addAvatarClicked","CreateOutfit3DComponent","_outfit3DService","updateViewer","currentAvatar","viewerMode","ViewerMode","MODE_3D","sceneAsset","StaticAsset","avatarWebResult","Avatar3DAsset","mimetype","currentGarments","vdrUpdate$","scene","focusedGarment","sizeRecomendation","viewerReloadRequired","vdrStatus$","vdrReset$","dressingRoomSettings","disableAvatarSelection","disableFullscreenMode","takeScreenshot","vdr","refreshRoom$","refresh","refreshRoomNow","avatar$","saveDraftAction$","requestCommonData","i10","CreateOutfit3DComponent_div_4_Template","CreateOutfit3DComponent_div_6_Template","i11","i12","AddSceneModalComponent_div_11_ng_container_1_span_2_Template","AddSceneModalComponent_div_11_ng_container_1_span_3_Template","scene_r6","selScene","AddSceneModalComponent_div_11_ng_container_1_Template","allScenes","AddSceneModalComponent","_sceneService","selectedScene","_sceneLookup$","getScenes","getScenesForCustomer","selectSceneClicked","Ps","AddSceneModalComponent_ngx_skeleton_loader_10_Template","AddSceneModalComponent_div_11_Template","SceneThumbnailPipe","SceneSelectionService","selectScene","onSceneSelected","sceneSelectionService","selectScene_r5","LAST_USED_SCENE","SceneSelectionEntryComponent","lastUsedSceneId","setScene","SceneSelectionEntryComponent_ng_template_0_Template","SceneSelectionEntryComponent_app_add_item_2_Template","SceneSelectionEntryComponent_div_3_Template","CreateOutfit2dParallaxComponent_div_7_app_accessory_selection_1_Template","isCollectionOutfit$","CreateOutfit2dParallaxComponent","avatarService","sceneService","_outfitService","currentScene","MODE_2D_PARALLAX","Avatar2DAsset","sceneWebResult","SceneAsset","Garment2DAsset","currentAccessoires","inputData","changeIsCollectionOutfit","additionalInfo","isCollectionOutfit","scene$","accessories$","CreateOutfit2dParallaxComponent_div_7_Template","i13","CreateRequestModalComponent_ng_template_0_app_create_garment_2d_3_Template","CreateRequestModalComponent_ng_template_0_app_create_garment_3d_cad_5_Template","CreateRequestModalComponent_ng_template_0_app_create_outfit2d_parallax_7_Template","CreateRequestModalComponent_ng_template_0_app_create_outfit_3d_9_Template","loadingState$","CreateRequestModalComponent","createRequestService","prepare","selectRequestsModalFilter","createRequestModalBody","confirmDiscard","reloadRequestsAction","setInputData","cancelAction$","CreateRequestModalStore","CreateRequestModalComponent_ng_template_0_Template","existingRequest","loadingState","skipManualStep","supportDraft","supportDueDate","supportPriority","supportSize","refreshDressingRoom","tuckedInGarment","actions","cancelAndRedirect","saveDraft","createRequestAndAnotherOne","startRequest","currentAccessories","currentExistingRequest","currentSkipManualStep","selectLoadingState","selectCommonData","selectCommonDataName","selectCommonDataSize","selectCommonDataPriority","selectCommonDataIsValid","selectSkipManualStep","selectIsCollectionOutfit","showLoading","hideLoading","clearCreateRequestCommonData","changeSkipManualStep","switchIsCollectionOutfit","setProductType","clearExistingRequest","setExistingRequest","clearTagEntry","cancelAndRedirectAction$","startRequestAction$","cancelAndRedirectAction","redirectTo","startRequestAction","resetStartRequestAction","selectLoadingStateShow","selectLoadingStateText","CreateGarment2DService","CreateRequestBaseService","_productService","_fileUploadService","tagService","prepareCreateNew","uploadFiles","filesToUpload","promises","createProduct","frontRequest","getRequestUpdate","skip_manual_step","annotations","updateRequest","updateTags","backRequest","CreateGarment3DCADService","CreateOutfit2DParallaxService","requestService","garmentService","productService","appState","OUTFIT_2D_PARALLAX_FILENAME","OUTFIT_2D_PARALLAX_PREVIEW_FILENAME","DEFAULT_RESOLUTIONS","readConfigFile","inputFile","prepareDraftEdit","priorities","outfitConfiguration","avatarID","avatarRequest","sceneID","sceneRequest","resolved","tuckedInItem","accs","build2DParallaxConfig","mapAccessories","render_resolutions","_x8","_ref7","previewImage","asDraft","outfitFile","previewFile","_x9","_x10","_x11","CreateOutfit3DService","OUTFIT_3D_FILENAME","OUTFIT_3D_PREVIEW_FILENAME","readOutfitManifest","buildOutfitManifest","mustBeValid","order","garmentInputs","stylingTemplates","resultId","avatarMobileResult","manifest","CreateRequestService","createGarment2D","createOutfit2DParallax","createGarment3DCAD","createOutfit3D","supportsDraft","isCreateRequestInputData","service","isUpdateRequestInputData","isCloneRequestInputData","cloneRequestId","prepareClone","defaultState","updatePageSize","visibleFilterId","requestOption_r2","goToCreateRequestPage","imageIconUrl","CreateRequestSelectTypeModalComponent","REQUESTS_OPTIONS","MODAL_ID","selectedModalGroup$","CreateRequestSelectTypeModalComponent_div_3_Template","currentItems$","paginationDataProvider","totalRecords$","page_r3","showPage","pageSize$","toCollection","generate","WindowSize","AdvancedControls","_pagination$","pageCount$","totalRecords","showNextPage","jumpPage","showPrevPage","getStartOfBlock","blockSize","nextPageBlockAt","thisPage","prevPageBlockAt","newPage","setCurrentPage","RequestListPaginationComponent_span_0_Template","RequestListPaginationComponent_button_7_Template","RequestListPaginationComponent_span_14_Template","toggleExpanded","expanded","linked_r5","openRequest","RequestListRowComponent_tr_17_rr_tag_13_Template","locale","navigator","languages","language","toLocaleTimeString","day","month","year","hour","minute","RequestListRowComponent","tableImages","updateDraftRequestAction","classList","toggle","RequestListRowComponent_span_2_Template","RequestListRowComponent_rr_tag_16_Template","RequestListRowComponent_tr_17_Template","linked","searchInput","SelectInputElementComponent_span_4_Template","SelectInputElementComponent_li_6_Template","mapFilterValue","toRRIFilterArray","selectedFilters","newFilters","DATE_RANGE","DROPDOWN_SELECT","enumKeys","RequestListActionBarComponent","selectRequestsFilter","GlobalStatePaginationDataProvider","changePageAction","setPageSize","RequestOverviewService","buildRequestsOverviewChartData","chartData","accum","customerStateId","stateName","percentage","setFiltersFromStorage","loadFilters","storeFilters","RequestStateIdHelper","item_r2","moment","RequestListPageComponent","fileService","_requestOverviewService","createInput$","spinnerStatusChart","displayedRequests","currentFilters","requestTableConfiguration","requestDatasource","mapRequestToRecord","colour","RR_THUMBNAIL","onRequestsChanged","manageShowSpinner","onRequestsAggregateChanged","aggregates","statesDataset","manageShowBarChartSpinner","_spinnerCounter","_spinnerCounterBarChart","showRejectedModal","loadFiltersAction","updated_text","selectLastUpdated","interval","fromNow","updated_date","selectRequestsOverviewSort","setSortColumn","selectRequestsOverview","requestsAggregate$","selectRequestsOverviewAggregate","isLoading$","selectRequestsOverviewShowLoader","showSkeletonLoader","requestsError$","selectRequestsErrorOverview","requestsAggregateError$","selectRequestsOverviewAggregateError","onShowRejectModalChanged","showModal","onCreateRequestTypeSelected","onPaginationChange","uiPagination","paginationChange","onCreateRequestSelected","reloadData","loadRequests","loadRequestsAggregate","RequestListPageComponent_ng_template_30_Template","RequestOverviewRoutingModule","requestAggregates","requestsError","requestAggregatesError","currentCustomerID","requests_loaded","createRequestModal","changeRequestModalStateReducer","requestOverviewReducer","retrievedRequests","requestsChangedReducer","paginationChangedReducer","changePageReducer","changePageSizeAction","changePageSizeReducer","retrievedRequestsWithError","retrievedRequestsAggregate","requestsAggregateChangedReducer","retrievedRequestsAggregateWithError","loadFiltersCompleteAction","loadFiltersReducer","loadTagsCompleteAction","loadTagsReducer","changeCustomerAction","changeCustomerReducer","showLoaderAction","hideLoaderAction","cloneRequestAction","clearRequestModalAction","RequestsOverviewEffects","_newRequestService","_tagsService","loadRequests$","loadRequestsAggregate$","filtersChanged$","storeFiltersAction","loadOnChange$","selectRequestsOverviewFilters","selectRequestsOverviewPagination","concatMap","loadTagsAction","storeFilters$","storeFiltersCompleteAction","loadFilters$","loadTags$","changeCustomerAction$","reloadRequests$","PrettyProductStatePipe","StateComponent","labelProductState","circleProductState","classForState","TagComponent","RequestListAssetComponent","PrettyProductTypePipe","ProductTypeComponent","labelProductType","classForType","entry_r1","StackedBarChartComponent","dataset","barMinWidth","barWidthMultiplier","StackedBarChartComponent_ng_container_0_Template","StackedBarChartComponent_ng_container_1_Template","RequestOverviewModule","RRBootstrapModule","RRModalModule","RRChartsModule","filtersLoad","selectRequestOverview","selectRequestsOverviewCurrentCustomerId","IConfigurationService","MODE_2D","IAvatarService","ISceneService","fileInQuestion","findFile","getComponent","responseText","getComponentLocation","getKeys","AssetType","preloadComponents","preloadComponent","GarmentAsset","BaseAsset","assetType","createSceneAsset","createBaseAsset","toAssetFiles","AvatarService","allAvatars_query_counter","allPublicAvatars3d$","allPublicAvatars2d$","allUserAvatars2d$","allUserAvatars3d$","userAvatars_query_counter","toBlob","toSdkAsset","deleteAvatar","avatarId","getAvatarRequestFilename","getAvatarThumbnailFilename","getAvatarCreationRequest","requestFile","requestData","internal_userAvatars$","userAvatars_loading$","userAvatars$","internal_allAvatars$","allAvatars_loading$","allAvatars$","distinct","keySelector","flushes","operate","distinctKeys","createOperatorSubscriber","innerFrom","noop","defaultAvatarId$","loadUserAvatars2d","loadPublicAvatars2d","loadUserAvatars3d","loadPublicAvatars3d","configsWithWebResult","resultHasWebResult","upsertUserAvatar","loadCustomerAvatars2D","loadCustomerAvatars3D","loadPublicAvatars2D","loadPublicAvatars3D","inlcudeArchived","customerRequests","mapRequestsToAssets","_mapRequestsToAssets","assets","SceneService","allScenes_query_counter","supports_2d","supports_3d","internal_allScenes$","allScenes_loading$","allScenes$","sleep","ms","dataURItoBlob","ab","AsyncSubject","_value","_hasValue","_isComplete","_checkFinalizedStatuses","hasError","thrownError","isStopped","ConfigurationService","loadApiConfiguration","loadConfiguration","counter","getConfiguration","getObservableConfiguration","DataModule","runPhysicsSimulation","doSkinning","fitCategory","measurementName","measurementCategory","idealMeasurement","avatarMeasurement","generateLabelText","charAt","_textComposer","textComposer","createLabel","textContent","borderRadius","fontFamily","fontStyle","fontWeight","lineHeight","letterSpacing","borderStyle","borderColor","borderWidth","Right","Left","Top","Bottom","Center","_labelFactory","_measurementPathRenderer","_measurementLabelPositioningData","_measurementLabels","labelFactory","measurementPathRenderer","_calculateBoundingBox","_calculateFreeAnchorSearchStartPosition","_checkCollision","_boundingBoxSurroundingIsFree","_checkAndAddFreeAnchorPosition","_calculateFreeAnchorPositions","_invertAnchorPositionSide","_isVerticallyAligned","_isHorizontallyAligned","_getSortAnchorPositionsIndex","_pickFirstAnchorPosition","_sortPositionAnchorPositionsForAlternating","_fixOverlaps","webViewer","pictofitWebHtmlElement","divContainer","parentNode","childNodes","offsetWidth","offsetHeight","insertBefore","Zero","sign","abs","sqrt","anchorPosition","distance","_pickFreeAnchorPositions","numCollisions","_closestPositionOnSegment","subtract","lengthSquared","Dot","multiply","_calculateMeasurementPositionIndex","_calculatePositioningData","measurementPositionIndex","updateLabelPlacement","getLabelAnchorPoint","addInPlace","getLabelMeasurementPositionIndex","shouldRecreateLabels","renderMeasurementPaths","_measurementPathFrontSideAlpha","_measurementPathBackSideAlpha","measurementPathFrontSideAlpha","measurementPathBackSideAlpha","_calculateCircumferenceNormal","cross","_splitMeasurementPath","_drawLine","beginPath","moveTo","lineTo","stroke","closePath","lineWidth","strokeStyle","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","setLineDash","UNKNOWN","LENGTH","CIRCUMFERENCE","RefractionTexture","RenderTargetTexture","generateMipMaps","refractionPlane","Plane","depth","onBeforeRenderObservable","getScene","clipPlane","onAfterRenderObservable","textureSize","getSize","newTexture","_generateMipMaps","hasAlpha","renderList","serialize","serializationObject","mirrorPlane","asArray","textureHasPremultipliedAlpha","_textureHasPremultipliedAlpha","PARALLAX_2D_PLUGIN_TEXTURE_HAS_PREMULTIPLIED_ALPHA","getClassName","prepareDefines","getCustomCode","CUSTOM_FRAGMENT_UPDATE_ALPHA","_offsetFactor","_camera","_screenSpaceXOffset","offsetFactor","updateProjectionMatrixFromXOffset","Translation","projectionTransformationMatrix","_rootNode","_accessorySlotMesh","_accessorySlotMeshBorder","_imagePlaneMesh","_imagePlaneMaterial","_imagePlanePluginMaterial","_garment","rootNode","computeInfoDotLocation3D","computeWorldMatrix","TransformCoordinates","getBoundingInfo","multiplyByFloats","_webViewer","_createImagePlaneMaterial","material","highlight","setEnabled","scaling","isColliderMesh","disableLighting","emissiveColor","White","createVisualization","createGeometry","isPickable","setRenderingGroup","billboardMode","BILLBOARDMODE_Y","setRenderingGroupId","SCENE_RENDERING_GROUP_ID","setRenderingIndex","CreatePlane","PI","cos","sin","shape","holes","CreatePolygon","rotation","ToRadians","diffuseTexture","opacityTexture","getComponentForPrioritizedKeyList","TEXTURE_DIFFUSE_OPACITY_KTX","TEXTURE_DIFFUSE","TEXTURE_DIFFUSE_LEGACY","TEXTURE_OPACITY","TEXTURE_OPACITY_LEGACY","createTexture","TEXTUREFORMAT_RGB","TEXTUREFORMAT_RGBA","MIRROR_ADDRESSMODE","isKTXAssetComponent","TEXTUREFORMAT_LUMINANCE","useAlphaFromDiffuseTexture","_slots","_accessories","_avatar","_screenSpaceOffsetHandler","_resizeObserver","screenSpaceOffsetHandler","activeCamera","_cameraViewOriginal","getViewMatrix","alpha","registerResizeObserver","createRefractionMaterial","engine","albedoColor","subSurface","isRefractionEnabled","refractionIntensity","indexOfRefraction","useAlbedoToTintRefraction","metallic","roughness","renderListPredicate","refractionTexture","customRenderTargets","textureType","ignoreCameraViewport","BILINEAR_SAMPLINGMODE","autoClear","getRenderWidth","getRenderHeight","onApplyObservable","setTexture","onClearObservable","onAfterUnbindObservable","renderTarget","isEnabled","postProcessManager","directRender","unBindFramebuffer","attachToNode","computeAccessoryInfoDotLocations3D","highlightAccessorySlot","showAccessoryStack","updatePlacement","getHierarchyBoundingVectors","cameraROI","originalFOV","fov","viewport","updateCameraViewport","getProjectionMatrix","Project","Identity","startScreenSpaceAnimation","getAccessoryPositionForColliderMesh","ANIMATIONTYPE_FLOAT","ANIMATIONLOOPMODE_CONSTANT","setKeys","frame","setEasingFunction","dirtyMonitor","continuousRendering","beginDirectAnimation","waitAsync","unregisterOnNextCall","onResizeObservable","onDisposeObservable","addOnce","TopCenter","TopLeft","LeftCenter","BottomLeft","BottomCenter","BottomRight","RightCenter","TopRight","_interpolationFactor","_cameraROITarget","_cameraROISrc","_cameraROIDst","_callback","interpolationFactor","aspectRatio","bottomMargin","topMargin","animate","_tryOnDeformedAvatar","_avatarPlaceholderNode","_sceneLoadedInScene","_avatarLoadedInScene","_fittedGarmentsLoadedInScene","_sizeVisualizationParentNode","_sizeVisualizationRender2DObserver","_sizeVisualizationMeasurementLabelDivs","_sizeVisualizationShouldRecreateLabels","_garmentInfoDotsUpdatedCallback","_tryOnFinishedPromises","_shouldOptimizeMeasurementPositions","_accessoryStack","_focusGarmentCameraROICurrent","_focusGarmentCameraROIOriginal","_focusGarmentCameraROIAnimationHandler","_focusGarmentAccessoryStackWasVisible","_pointerValid","_pointerDownPos","registerLowPerformanceObserver","registerWebGLContextLostObserver","updateGarmentInfoDots","performanceMonitor","onLowPerformanceObservable","animation","pause","smartRenderModeEnabled","resetHardwareScalingLevel","transformNodes","removeTransformNode","meshes","removeMesh","materials","removeMaterial","lights","removeLight","skeletons","removeSkeleton","animationGroups","removeAnimationGroup","textures","removeTexture","onContextLostObservable","cleanup","doRender","onContextRestoredObservable","_sceneNeedsVisualUpdate","_avatarNeedsVisualUpdate","_animationNeedsVisualUpdate","_garmentsNeedVisualUpdate","_accessoriesNeedVisualUpdate","computeGarmentInfoDotLocations","createAnimation","createAccessory","garmentInfoDotsUpdatedCallback","clickCallback","onPointerDown","onPointerMove","onPointerPick","clientX","clientY","pickedMesh","ray","multiPickWithRay","hit","renderingGroupId","AVATAR_RENDERING_GROUP_ID","garmentIndex","garmentOriginal","verifyNoAsyncOperationInProgress","_asyncFunctionMutex","dirty","resetDirtyFlag","registerLayout","_layoutID","_focusGarmentNeedsVisualUpdate","updateScene","updateAvatar","updateGarments","updateFocusGarment","updateAnimation","updateAccessories","setAccessoryStackVisible","_setAccessoryStackVisibleInternal","getAccessoryStackVisible","highlightAccessorySlotForPosition","enableSizeVisualisation","enableSizeVisualisationImpl","isVisualisationCreated","fittedGarment","metricLabels","requestSizeVisualisation","_disableSizeVisualisation","_animation","createSizeVisualisationNew","getSizeVisualizationFacetSortingEnabled","sizeVisualization","fitInformation","measurementPaths","labelInfo","measurementPositionsBackup","measurementPositions","labelDiv","canvas2D","HTMLCanvasElement","clientWidth","_calculate2DMeasurementPaths","CanvasRenderingContext2D","clearRect","_clampLabelPositionToFitInsideCanvas","left","canvasOverlayMargins","rightMargin","leftMargin","_calculateEllipseNormal","Cross","_calculateEllipseCenter","divideInPlace","_optimizeMeasurementPositions","getWorldMatrix","TransformNormal","atan2","invert","RotationAxis","toGlobal","_calculateMeasurementScreenPosition","getTransformMatrix","createSizeVisualizationMaterial","diffuseColor","Black","specularColor","forceDepthWrite","backFaceCulling","disableSizeVisualisation","doAssetsHaveSkinningInfo","play","cleanupStandaloneGarments","cleanupLoadedFittedGarments","cleanupLoadedAvatars","cleanupLoadedScene","destroyVisualisation","unregisterLayout","attachAvatarToPlaceholder","avatarHeight","createAccessoryStack","_scene","tmpRenameLoadedSceneElements","createScene","setupSceneMeshRenderingSequence","updateFromMetadata","getNodeById","_getCameraROI","updateShadowCasters","sceneUpdated","getAnimation","setAnimation","animationGroup","isPlaying","skeleton","returnToRest","performTryOn","createVisualisation","resetAvatarOverlapCorrectionData","showAllMeshes","_focusGarment","_calculateNormalizedCanvasPosition","_computeNormalizedFittedGarment2DVertices","updateTransformMatrix","getChildMeshes","getVerticesData","PositionKind","_computeNormalized2DGarmentBoundingBoxes","minX","maxX","minY","maxY","_computeBoundingBoxOutlineLocation","_computeGarmentInfoDotBoundingBoxLocation","getGarmentGroup","_computeGarmentInfoDotBoundingBoxOutlineLocations","_calculateBoundingBoxCenter","_findClosestVertexPositions","_computeNormalizedAccessoryPositions","focusDataWillUpdate","accessoryStackVisible","_focusArea","NONE","CreateBox","locallyTranslate","FULL","_computeFocusGarmentCameraROI","_updateCameraROI","updateActiveCameraViewport","MIN_SAFE_INTEGER","boundingBox","vectorsWorld","getTransformationMatrix","visible","getShadowGenerator","getShadowMap","addToShadowGenerator","refreshRate","shadowRefreshRate","isDescendantOf","getBindedMeshes","destroyScene","rotate","CAMERA","HORIZONTAL","AUTO","getSceneGizmos","GIZMO","rotateCamera","rotateGizmo","lowerAlphaLimit","upperAlphaLimit","beta","lowerBetaLimit","upperBetaLimit","attachedNode","getResources","gizmos","gizmosHidden","_rootMesh","animationWillUpdate","meshFormat","GLB","updateSizeVisualizationMeshRenderIndex","enablePhysicsSimulation","emitTryOnDebugEvents","postProcessingHandler","focusMeshIDs","preloadAvatarComponents","checkAvatarType","MESH","MESH_LEGACY","MATERIAL","preloadGarmentComponents","checkGarmentType","preloadSceneComponents","createAvatar","_computeServer","requestFittedGarments","deformedBodyModel","fittedGarments","debugInformation","groundOffsetNode","_tryOnFinishedCallback","requestSizeVisualisation3D","MESH_GLB","computeShadows","returnGarmentMeshVertexBufferOnly","webkitURL","Worker","revokeObjectURL","SetWasmPath","SetPbmBlobs","DoTryOn","RecommendSize","GetGarment2DSizes","GetAvatarCreationInputMeasurements","CreateMannequin","EditAvatar","ConvertAvatar","ComputeFit","TryOnFittedGarments","ComputeRigidFittedGarments","InitInteractiveAvatarEditing","InteractiveAvatarEditing","ApplyInteractiveAvatarEditing","_dataLength","_bufferLength","Int32Array","_buffer","_buffer8","_buffer32","hashStr","onePassHasher","appendStr","hashAsciiStr","appendAsciiStr","_hex","hexChars","hexOut","_md5cycle","stateIdentity","appendByteArray","getState","fromCharCode","buflen","setState","buffer32Identity","subarray","xd","_mutex","_isLocked","lock","isLocked","Fd","_worker","_tryOnPool","_tryOnPoolInUse","_wasmPath","_poolAbortController","callSpecificWorker","onmessage","onmessageerror","onunhandledrejection","command","postMessage","callWorker","recommendSize","param","setPbmBlobs","femaleBlob","maleBlob","terminateTryOnWorkers","doTryOn","avatarBlob","garmentBlobs","computeFit","tryOnFittedGarments","arrayBuffer","ei","ii","ai","garmentBlob","fittedGarmentData","computeRigidFittedGarments","getGarment2DSizes","sizeTableCreationConfig","fitModels","getAvatarCreationInputMeasurements","bodymodel","visualRepresentation","createMannequin","editAvatar","initInteractiveAvatarEditing","_this13","convertAvatar","_this14","setWasmPath","_this15","convertWasmPath","Reflect","ownKeys","extend","setImmediate","isFrozen","concat","WeakMap","VersionChanged","DatabaseClosed","Abort","TransactionInactive","MissingAPI","failures","failedKeys","successCount","failuresByPos","_stack","inner","Syntax","SyntaxError","Range","onsuccess","ModifyError","DexieError","BulkError","crypto","subtle","digest","unhandleds","onunhandled","pgp","env","finalize","_listeners","onuncatched","_lib","_PSD","_stackHolder","_prev","_numPrev","onFulfilled","onRejected","psd","_then","timeout","Timeout","clearTimeout","race","PSD","totalEchoes","newPSD","usePSD","scheduler","rejectionMapper","follow","allSettled","AggregateError","awaits","echoes","PromiseProp","nthen","gthen","createEvent","initEvent","CustomEvent","detail","dispatchEvent","PromiseRejectionEvent","defaultPrevented","idbdb","openComplete","letThrough","_vip","_createTransaction","_dbSchema","PR1398_maxLoop","InvalidState","isOpen","_close","trans","_completion","dbOpenError","isBeingOpened","autoOpen","dbReadyPromise","userAgent","lower","lowerOpen","upper","upperOpen","_trans","_tx","NotFound","idbtrans","db","transless","where","hook","reading","fire","WhereClause","equals","indexes","primKey","compound","keyPath","_maxKey","idxByName","_deps","indexedDB","cmp","and","limit","each","toArray","Collection","orderBy","mapToClass","mappedClass","readHook","defineClass","auto","mutate","numFailures","lastResult","modify","InvalidArgument","range","bulkGet","getMany","bulkAdd","allKeys","wantResults","bulkPut","bulkDelete","addEventType","subscribers","algorithm","justLimit","replayFilter","isPrimKey","primaryKey","getIndexByKeyPath","Schema","openCursor","keysOnly","dir","unique","stop","fail","_iterate","valueMapper","continue","NaN","_read","_ctx","_write","_addAlgorithm","raw","sortBy","until","last","isMatch","_ondirectionchange","eachKey","eachUniqueKey","eachPrimaryKey","primaryKeys","uniqueKeys","firstKey","lastKey","outbound","extractKey","modifyChunkSize","cache","criteria","changeSpec","en","between","_cmp","above","aboveOrEqual","below","belowOrEqual","startsWithIgnoreCase","equalsIgnoreCase","anyOfIgnoreCase","startsWithAnyOfIgnoreCase","_ascending","_descending","notEqual","inAnyRange","includeLowers","includeUppers","noneOf","_min","_max","startsWithAnyOf","tn","nn","rn","sn","an","_lock","_reculock","lockOwnerFor","_unlock","_blockedFuncs","_locked","OpenFailed","active","transaction","storeNames","durability","chromeTransactionDurability","onabort","oncomplete","storagemutated","mutatedParts","ReadOnly","_root","waitFor","_waitingFor","_waitingQueue","objectStore","_spinCount","_memoizedTables","Table","un","ln","cn","hn","only","dn","fn","pn","yn","mn","upperBound","lowerBound","bound","hasGetAll","objectStoreNames","tables","autoIncrement","isPrimaryKey","indexNames","multiEntry","_pos","getAll","getAllKeys","openKeyCursor","___id","continuePrimaryKey","MIN_KEY","MAX_KEY","vn","_novip","IDBKeyRange","dbcore","_middlewares","gn","Transaction","bn","_n","_cfg","version","xn","del","recreate","kn","createObjectStore","En","createIndex","Pn","Kn","_hasGetAll","WorkerGlobalScope","On","_parseStoresSpec","stores","storesSource","_versions","dbschema","_allTables","_storeNames","upgrade","contentUpgrade","Sn","_dbNamesDB","Xn","addons","dbnames","An","databases","Cn","jn","userAgentData","setInterval","clearInterval","In","throw","Bn","Tn","PrematureCommit","Rn","Fn","isVirtual","keyTail","keyLength","Mn","Nn","deleting","creating","updating","qn","$n","_cache","Un","Ln","Vn","Gn","Wn","zn","up","Hn","addKey","addKeys","Qn","subscr","verno","onReadyBeingFired","dbReadyResolve","cancelOpen","openCanceller","autoSchema","vip","Version","_IDBKeyRange","newVersion","oldVersion","_fireOnBlocked","vcFired","use","_whenReady","unuse","Dn","onblocked","onupgradeneeded","allowEmptyDB","deleteDatabase","NoSuchDatabase","wn","populate","Upgrade","deleteIndex","deleteObjectStore","onversionchange","onclose","backendDB","hasBeenClosed","hasFailed","dynamicallyOpened","_transaction","SubTransaction","InvalidTable","Jn","observable","Zn","_subscribe","mozIndexedDB","webkitIndexedDB","msIndexedDB","webkitIDBKeyRange","exists","getDatabaseNames","ignoreTransaction","async","spawn","currentTransaction","derive","override","Events","liveQuery","Yn","hasValue","extendObservabilitySet","getByKeyPath","setByKeyPath","delByKeyPath","shallowClone","deepClone","getObjectDiff","asap","minKey","connections","errnames","semVer","maxKey","initCustomEvent","BroadcastChannel","unref","trig","changedParts","clients","includeUncontrolled","newValue","serviceWorker","screenspaceZOffset","_screenspaceZOffset","HEAD_AVATAR_3D_PLUGIN","getUniforms","ubo","vertex","bindForSubMesh","updateFloat","CUSTOM_VERTEX_MAIN_END","RegisterClass","PlaySoundAction","Action","triggerOptions","sound","_sound","_prepare","execute","_serialize","StopSoundAction","InterpolateValueAction","propertyPath","duration","stopOtherAnimations","onInterpolationDone","onInterpolationDoneObservable","_target","_effectiveTarget","_getEffectiveTarget","_property","_getProperty","_actionManager","dataType","Animation","Color3","ANIMATIONTYPE_COLOR3","Vector3","ANIMATIONTYPE_VECTOR3","Matrix","ANIMATIONTYPE_MATRIX","Quaternion","Logger","Warn","ANIMATIONTYPE_QUATERNION","stopAnimation","notifyObservers","_GetTargetProperty","_SerializeValueAsString","BakedVertexAnimationManager","_texture","_isEnabled","EngineStore","LastCreatedScene","animationParameters","Vector4","_markSubMeshesAsAttributesDirty","mesh","bakedVertexAnimationManager","useInstances","setFloat2","setFloat","setVector4","copyTo","setAnimationParameters","startFrame","endFrame","speedFramesPerSecond","forceDisposeTextures","vatMap","SerializationHelper","Clone","Serialize","rootUrl","Parse","__decorate","serializeAsTexture","expandToProperty","BoneIKController","maxAngle","_maxAngle","_setMaxAngle","bone","targetPosition","poleTargetPosition","poleTargetLocalOffset","poleAngle","slerpAmount","_bone1Quat","_bone1Mat","_bone2Ang","_rightHandedSystem","_bendAxis","_slerping","_adjustRoll","_notEnoughInformation","_bone2","bone1","getParent","_bone1","children","getSkeleton","computeAbsoluteMatrices","bonePos","getPosition","getAbsoluteMatrix","determinant","boneScale1","getScale","boneScale2","_bone1Length","_bone2Length","pos1","getAbsolutePosition","pos2","pos3","Distance","getRotationMatrixToRef","targetMesh","poleTargetMesh","poleTargetBone","copyFrom","bendAxis","ang","_maxReach","poleTarget","mat1","_TmpMats","mat2","getAbsolutePositionFromLocalToRef","TransformCoordinatesToRef","_TmpVecs","zaxis","xaxis","yaxis","upAxis","tmpQuat","_TmpQuat","getAbsolutePositionToRef","subtractToRef","CrossToRef","FromXYZAxesToRef","acosa","acosb","angA","acos","angB","angC","RotationYawPitchRollToRef","multiplyToRef","RotationAxisToRef","_tmpVec","FromRotationMatrixToRef","SlerpToRef","setRotationQuaternion","setRotationMatrix","_updateLinkedTransformRotation","setAxisAngle","_linkedTransformNode","rotationQuaternion","getRotationQuaternionToRef","BoneLookController","minYaw","_minYaw","_minYawSin","_minYawCos","_maxYaw","_midYawConstraint","_getAngleDiff","_yawRange","maxYaw","_maxYawSin","_maxYawCos","minPitch","_minPitch","_minPitchTan","tan","maxPitch","_maxPitch","_maxPitchTan","Up","upAxisSpace","adjustYaw","adjustPitch","adjustRoll","_boneQuat","_firstFrameSkipped","_fowardAxis","Forward","useAbsoluteValueForYaw","yawAxis","pitchAxis","newYawAxis","Axis","newPitchAxis","newRollAxis","_transformYawPitch","_transformYawPitchInv","_tmpMat1","_tmpMat2","parentBone","getDirectionToRef","checkYaw","checkPitch","spaceMat","spaceMatInv","forwardAxis","rightAxis","invertToRef","xzlen","localTarget","pitch","newPitch","yaw","yawCheck","newYaw","_isAngleBetween","boneFwd","boneRotMat","toRotationMatrix","boneYaw","_getAngleBetween","angBtwMax","boneScaling","setScale","ang1","ang2","angDiff","BuildArray","isLittleEndian","VertexBuffer","_alignedBuffer","byteStride","getBuffer","_rebuild","_ownsBuffer","_isDisposed","getWrapperBuffer","_alignBuffer","_features","forceVertexBufferStrideAndOffsetMultiple4Bytes","typeByteLength","GetTypeByteLength","alignedByteStride","alignedSize","totalVertices","_maxVerticesCount","totalLength","sourceData","alignedData","sourceDataAsFloat","Float32Array","BYTE","Int8Array","UNSIGNED_BYTE","SHORT","Int16Array","UNSIGNED_SHORT","UNSIGNED_INT","numComponents","sourceOffset","getInt8","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","Buffer","getIsInstanced","instanceDivisor","_label","ArcRotateCameraInputsManager","addVRDeviceOrientation","ArcRotateCameraVRDeviceOrientationInput","alphaCorrection","gammaCorrection","_alpha","_gamma","_dirty","_deviceOrientationHandler","evt","_onOrientationEvent","attachControl","noPreventDefault","Tools","BackCompatCameraNoPreventDefault","camera","hostWindow","getEngine","getHostWindow","DeviceOrientationEvent","requestPermission","gamma","checkInputs","detachControl","getSimpleName","CameraInputTypes","FlyCameraKeyboardInput","keysForward","keysBackward","keysUp","keysDown","keysRight","keysLeft","_keys","_onCanvasBlurObserver","_engine","onCanvasBlurObservable","_onKeyboardObserver","onKeyboardObservable","KeyboardEventTypes","KEYDOWN","keyCode","_onLostFocus","speed","_computeLocalCameraSpeed","_localDirection","copyFromFloats","useRightHandedSystem","_cameraTransformMatrix","TransformNormalToRef","_transformedDirection","cameraDirection","FlyCameraMouseInput","buttons","buttonsYaw","buttonsPitch","buttonsRoll","activeButton","angularSensibility","_previousPosition","_noPreventDefault","_observer","_inputManager","_addCameraPointerObserver","_pointerInput","PointerEventTypes","POINTERDOWN","POINTERUP","POINTERMOVE","_rollObserver","rollCorrect","restoreRoll","_removeCameraPointerObserver","touchEnabled","pointerType","button","srcElement","setPointerCapture","pointerId","isPointerLock","_onMouseMove","releasePointerCapture","_rotateCamera","movementX","movementY","offsetX","offsetY","_calculateHandednessMultiplier","currentRotation","RotationYawPitchRoll","rotationChange","multiplyInPlace","bankedTurnLimit","_trackRoll","bankedTurn","bankedTurnMultiplier","toEulerAnglesToRef","FollowCameraKeyboardMoveInput","keysHeightOffsetIncr","keysHeightOffsetDecr","keysHeightOffsetModifierAlt","keysHeightOffsetModifierCtrl","keysHeightOffsetModifierShift","keysRotationOffsetIncr","keysRotationOffsetDecr","keysRotationOffsetModifierAlt","keysRotationOffsetModifierCtrl","keysRotationOffsetModifierShift","keysRadiusIncr","keysRadiusDecr","keysRadiusModifierAlt","keysRadiusModifierCtrl","keysRadiusModifierShift","heightSensibility","rotationSensibility","radiusSensibility","metaKey","_ctrlPressed","ctrlKey","_altPressed","altKey","_shiftPressed","shiftKey","_modifierHeightOffset","heightOffset","_modifierRotationOffset","rotationOffset","_modifierRadius","radius","FollowCameraMouseWheelInput","axisControlRadius","axisControlHeight","axisControlRotation","wheelPrecision","wheelDeltaPercentage","_wheel","POINTERWHEEL","delta","wheelDelta","deltaY","FollowCameraPointersInput","BaseCameraPointersInput","angularSensibilityX","angularSensibilityY","pinchPrecision","pinchDeltaPercentage","axisXControlRadius","axisXControlHeight","axisXControlRotation","axisYControlRadius","axisYControlHeight","axisYControlRotation","axisPinchControlRadius","axisPinchControlHeight","axisPinchControlRotation","warningEnable","_warningCounter","onTouch","pointA","_warning","onMultiTouch","pointB","previousPinchSquaredDistance","pinchSquaredDistance","previousMultiTouchPanPosition","multiTouchPanPosition","pinchDelta","VirtualJoystick","_GetDefaultOptions","puckSize","containerSize","puckImage","containerImage","alwaysVisible","limitToContainer","leftJoystick","customizations","_released","_leftJoystick","_GlobalJoystickIndex","_axisTargetedByLeftAndRight","_axisTargetedByUpAndDown","reverseLeftRight","reverseUpDown","_touches","StringDictionary","deltaPosition","_joystickSensibility","_inversedSensibility","_onResize","_VJCanvasWidth","innerWidth","_VJCanvasHeight","Canvas","_HalfWidth","backgroundColor","zIndex","touchAction","context","_VJCanvasContext","pressed","_joystickColor","setPosition","setPuckImage","setContainerImage","_AlwaysVisibleSticks","_joystickPointerId","_joystickPointerPos","Vector2","_joystickPreviousPointerPos","_joystickPointerStartPos","_deltaJoystickVector","_onPointerDownHandlerRef","_onPointerDown","_onPointerMoveHandlerRef","_onPointerMove","_onPointerUpHandlerRef","_onPointerUp","requestAnimationFrame","_drawVirtualJoystick","setJoystickSensibility","newJoystickSensibility","positionOnScreenCondition","_joystickPosition","_action","prevX","prevY","vector","scaleInPlace","deltaJoystickX","deltaJoystickY","_clearPreviousDraw","touch","setJoystickColor","newColor","newSize","_joystickContainerSize","_clearContainerSize","_clearContainerSizeOffset","_joystickPuckSize","_clearPuckSize","_clearPuckSizeOffset","clearPosition","_alwaysVisible","setActionOnTouch","setAxisForLeftRight","axis","setAxisForUpDown","jp","urlPath","Image","_containerImage","_puckImage","_drawContainer","arc","_drawPuck","fillStyle","releaseCanvas","FreeCameraInputsManager","addVirtualJoystick","FreeCameraVirtualJoystickInput","getLeftJoystick","_leftjoystick","getRightJoystick","_rightjoystick","cameraTransform","deltaTransform","cameraRotation","addVector3","scale","FlyCameraInputsManager","CameraInputsManager","addKeyboard","addMouse","FlyCamera","TargetCamera","mouse","attached","keyboard","setActiveOnSceneIfNoneActive","ellipsoid","ellipsoidOffset","checkCollisions","applyGravity","_needMoveForGravity","_oldPosition","_diffPosition","_newPosition","_collisionMask","_onCollisionPositionChange","collisionId","newPosition","collidedMesh","updatePosition","newPos","AbstractEngine","CollisionsEpsilon","onCollide","ignored","attachElement","detachElement","collisionMask","mask","_collideWithWorld","displacement","globalPosition","subtractFromFloatsToRef","coordinator","collisionCoordinator","_collider","createCollider","_radius","actualDisplacement","gravity","getNewPosition","uniqueId","_checkInputs","needMoveForGravity","_decideIfNeedsToMove","_updatePosition","collisionsEnabled","rate","serializeAsVector3","FollowCameraInputsManager","addMouseWheel","addPointers","Node","AddNodeConstructor","FollowCamera","ArcFollowCamera","lockedTarget","lowerRadiusLimit","upperRadiusLimit","lowerRotationOffsetLimit","upperRotationOffsetLimit","lowerHeightOffsetLimit","upperHeightOffsetLimit","cameraAcceleration","maxCameraSpeed","_follow","cameraTarget","rotMatrix","TmpVectors","absoluteRotationQuaternion","yRotation","radians","targetX","targetZ","vx","vy","vz","setTarget","_reset","_checkLimits","serializeAsMeshReference","_cartesianCoordinates","setMeshTarget","_meshTarget","GamepadCamera","UniversalCamera","AnaglyphPostProcess","PostProcess","rigCameras","samplingMode","reusable","_passedProcess","_rigPostProcess","setTextureFromPostProcess","_gatherImports","useWebGPU","_webGPUReady","__webpack_require__","setStereoscopicAnaglyphRigMode","_rigCameras","PassPostProcess","AnaglyphArcRotateCamera","interaxial_distance","ArcRotateCamera","interaxialDistance","_setRigMode","setCameraRigMode","Camera","RIG_MODE_STEREOSCOPIC_ANAGLYPH","AnaglyphFreeCamera","FreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","ShaderStore","ShadersStore","StereoscopicInterlacePostProcessI","isStereoscopicHoriz","isStereoscopicInterlaced","_stepSize","onSizeChangedObservable","setStereoscopicRigMode","cameraRigMode","RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL","RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED","isCrossEye","RIG_MODE_STEREOSCOPIC_INTERLACED","Viewport","StereoscopicArcRotateCamera","isStereoscopicSideBySide","RIG_MODE_STEREOSCOPIC_OVERUNDER","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","VirtualJoysticksCamera","VRDeviceOrientationArcRotateCamera","compensateDistortion","vrCameraMetrics","VRCameraMetrics","GetDefault","rigParams","setVRRigMode","RIG_MODE_VR","VRDeviceOrientationGamepadCamera","VRDeviceOrientationFreeCamera","addGamepad","getLowestRoot","found","maxR","sqrtD","r1","r2","Collider","_collisionPoint","_planeIntersectionPoint","_tempVector","_tempVector2","_tempVector3","_tempVector4","_edge","_baseToVertex","_destinationPoint","_slidePlaneNormal","_displacementVector","One","_retry","_basePointWorld","_velocityWorld","_normalizedVelocity","slidePlaneNormal","_initialize","_velocity","_velocitySquaredLength","_y","_z","scaleToRef","_basePoint","_velocityWorldLength","_epsilon","collisionFound","_checkPointInTriangle","pa","pb","pc","_canDoCollision","sphereCenter","sphereRadius","vecMin","vecMax","intersectBoxAASphere","boxMin","boxMax","_testTriangle","faceIndex","trianglePlaneArray","p1","p2","p3","hasMaterial","hostMesh","t0","embeddedInPlane","copyFromPoints","trianglePlane","isFrontFacingTo","signedDistToTrianglePlane","signedDistanceTo","normalDotVelocity","normal","DoubleSidedCheck","lowestRoot","edgeSquaredLength","edgeDotVelocity","edgeDotBaseToVertex","addToRef","distToCollisionSquared","_nearestDistanceSquared","collisionResponse","intersectionPoint","_nearestDistance","_collide","pts","indices","indexStart","indexEnd","decal","invertTriangles","triangleStrip","indexA","indexB","indexC","_getResponse","vel","SignedDistanceToPlaneFromPositionAndNormal","subtractInPlace","DefaultCollisionCoordinator","_scaledPosition","_scaledVelocity","_finalPosition","collider","maximumRetry","excludedMesh","onNewPosition","collisionIndex","divideToRef","_initialVelocity","_initialPosition","velocity","finalPosition","closeDistance","surroundingMeshes","subMeshes","collisionGroup","Scene","CollisionCoordinatorFactory","ComputeEffect","baseName","computeSource","defines","onCompiled","onError","onCompileObservable","onErrorObservable","onBindObservable","_wasPreviouslyReady","_isReady","_compilationError","_key","_computeSourceCodeOverride","_pipelineContext","_computeSourceCode","_rawComputeSourceCode","_shaderLanguage","_UniqueIdSeed","_entryPoint","entryPoint","_shaderStore","GetShadersStore","_shaderRepository","GetShadersRepository","_includeShaderStore","GetIncludesShadersStore","hostDocument","IsWindowObjectExist","getHostDocument","computeElement","compute","processorOptions","indexParameters","isFragment","shouldUseHighPrecisionShader","processor","supportsUniformBuffers","shadersRepository","includesShadersStore","platformName","shaderPlatformName","processingContext","isNDCHalfZRange","useReverseDepthBuffer","processCodeAfterIncludes","shaderType","define","_loadShader","computeCode","Initialize","PreProcess","migratedComputeCode","processFinalCode","finalShaders","Finalize","_useFinalCode","vertexCode","migratedCommputeCode","spectorName","_prepareEffect","isReady","_isReadyInternal","getPipelineContext","getCompilationError","executeWhenCompiled","func","isAsync","_checkIsReady","previousPipelineContext","_processCompilationErrors","shader","optionalKey","HTMLElement","shaderCode","GetDOMTextContent","shaderUrl","_loadFile","computeSourceCode","_getComputeShaderCode","rawComputeSourceCode","createComputePipelineContext","_name","_prepareComputePipelineContext","_executeWhenComputeStateIsCompiled","numErrors","_deleteComputePipelineContext","LogShaderCodeOnCompilationError","_releaseComputeEffect","RegisterShader","computeShader","OctreeBlock","minPoint","maxPoint","capacity","maxDepth","creationFunc","_boundingVectors","_capacity","_depth","_maxDepth","_creationFunc","_minPoint","_maxPoint","addEntry","blocks","createInnerBlocks","removeEntry","entryIndex","addEntries","frustumPlanes","selection","allowDuplicate","BoundingBox","IsInFrustum","concatWithNoDuplicate","intersects","IntersectsSphere","intersectsRay","intersectsBoxMinMax","_CreateBlocks","worldMin","worldMax","maxBlockCapacity","currentDepth","localMin","localMax","Octree","dynamicContent","_maxBlockCapacity","_selectionContent","SmartArrayNoDuplicate","addMesh","CreationFuncForMeshes","boundingInfo","isBlocked","intersectsMinMax","CreationFuncForSubMeshes","createOrUpdateSelectionOctree","maxCapacity","_getComponent","SceneComponentConstants","NAME_OCTREE","OctreeSceneComponent","_addComponent","_selectionOctree","worldExtends","getWorldExtends","AbstractMesh","createOrUpdateSubmeshesOctree","_submeshesOctree","bbox","minimumWorld","maximumWorld","checksIsEnabled","_tempRay","Ray","getActiveMeshCandidates","getActiveSubMeshCandidates","getCollidingSubMeshCandidates","getIntersectingSubMeshCandidates","localRay","register","onMeshRemovedObservable","sceneOctree","selectionOctree","onMeshImportedObservable","_getDefaultMeshCandidates","useOctreeForRenderingSelection","_getDefaultSubMeshCandidates","useOctreeForPicking","TransformToRef","useOctreeForCollisions","rebuild","_debugLayer","DebugLayer","onPropertyChangedObservable","BJSINSPECTOR","Inspector","OnPropertyChangedObservable","_onPropertyChangedObservable","onSelectionChangedObservable","OnSelectionChangeObservable","_onSelectionChangedObservable","_getGlobalInspector","_createInspector","isVisible","OnSelectionChangedObservable","userOptions","Config","Show","lineContainerTitles","MarkLineContainerTitleForHighlighting","MarkMultipleLineContainerTitlesForHighlighting","INSPECTOR","BABYLON","IsVisible","Hide","setAsActiveScene","_SetNewScene","popupSceneExplorer","PopupSceneExplorer","popupInspector","PopupInspector","popupEmbed","PopupEmbed","LoadBabylonScript","inspectorURL","InspectorURL","_DefaultCdnUrl","overlay","showExplorer","showInspector","embedMode","handleResize","enablePopup","_OcclusionDataStorage","occlusionInternalRetryCounter","isOcclusionQueryInProgress","isOccluded","occlusionRetryCount","occlusionType","OCCLUSION_TYPE_NONE","occlusionQueryAlgorithmType","OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE","forceRenderingWhenOccluded","getGPUFrameTimeCounter","captureGPUFrameTime","createQuery","deleteQuery","isQueryResultAvailable","getQueryResult","beginOcclusionQuery","algorithmType","endOcclusionQuery","_occlusionDataStorage","__occlusionDataStorage","_checkOcclusionQuery","dataStorage","getCaps","supportOcclusionQuery","_occlusionQuery","occlusionQueryResult","OCCLUSION_TYPE_OPTIMISTIC","getBoundingBoxRenderer","occlusionBoundingBoxRenderer","renderOcclusionBoundingBox","_onBeforeViewRenderObservable","_onAfterViewRenderObservable","_inputElement","_onEngineViewChanged","getInputElement","getRenderingCanvas","registerView","clearBeforeCopy","views","masterCanvas","newView","unRegisterView","_renderViewStep","previewCamera","previewCameras","activeCameras","activeView","customResize","_hardwareScalingLevel","setSize","_renderFrame","flushFramebuffer","_renderViews","inputElementView","_debugPushGroup","groupName","targetObject","_debugPopGroup","_debugInsertMarker","_debugFlushPendingCommands","_TimeToken","_timeElapsedQueryEnded","transformTextureUrl","_excludedCompressedTextures","RegExp","lastDot","lastQuestionMark","querystring","_textureFormatInUse","Engine","_gl","getQueryParameter","QUERY_RESULT_AVAILABLE","QUERY_RESULT","glAlgorithm","_getGlAlgorithmType","beginQuery","endQuery","_createTimeQuery","timerQuery","createQueryEXT","_deleteTimeQuery","deleteQueryEXT","_getTimeQueryResult","getQueryObjectEXT","QUERY_RESULT_EXT","_getTimeQueryAvailability","QUERY_RESULT_AVAILABLE_EXT","startTimeQuery","caps","getParameter","GPU_DISJOINT_EXT","canUseTimestampForTimerQuery","_startTimeQuery","queryCounterEXT","TIMESTAMP_EXT","_currentNonTimestampToken","_timeElapsedQuery","beginQueryEXT","TIME_ELAPSED_EXT","endTimeQuery","_endTimeQuery","endQueryEXT","disjoint","available","timeStart","_captureGPUFrameTime","_gpuFrameTime","PerfCounter","_onBeginFrameObserver","onBeginFrameObservable","_gpuFrameTimeToken","_onEndFrameObserver","onEndFrameObservable","fetchNewFrame","addCount","ANY_SAMPLES_PASSED_CONSERVATIVE","ANY_SAMPLES_PASSED","createTransformFeedback","transformFeedback","deleteTransformFeedback","bindTransformFeedback","TRANSFORM_FEEDBACK","beginTransformFeedback","usePoints","POINTS","TRIANGLES","endTransformFeedback","setTranformFeedbackVaryings","program","transformFeedbackVaryings","INTERLEAVED_ATTRIBS","bindTransformFeedbackBuffer","bindBufferBase","TRANSFORM_FEEDBACK_BUFFER","underlyingResource","readTransformFeedbackBuffer","getBufferSubData","ThinEngine","updateVideoTexture","texture","video","invertY","_isDisabled","glformat","_getInternalFormat","internalFormat","_getRGBABufferInternalSizedFormat","wasPreviouslyBound","_bindTextureDirectly","TEXTURE_2D","_unpackFlipY","_videoTextureSupported","getError","texImage2D","_workingCanvas","createCanvas","_workingContext","videoWidth","videoHeight","generateMipmap","restoreSingleAttachment","bindAttachments","BACK","restoreSingleAttachmentForRenderTarget","COLOR_ATTACHMENT0","buildTextureLayout","textureStatus","gl","attachments","drawBuffers","unBindMultiColorAttachmentFramebuffer","rtWrapper","disableGenerateMipMaps","onBeforeUnbind","_currentRenderTarget","_attachments","_MSAAFramebuffer","bindFramebuffer","READ_FRAMEBUFFER","DRAW_FRAMEBUFFER","_framebuffer","webGLVersion","readBuffer","blitFramebuffer","COLOR_BUFFER_BIT","NEAREST","isCube","is3D","_bindUnboundFramebuffer","createMultipleRenderTarget","initializeBuffers","generateDepthBuffer","generateStencilBuffer","generateDepthTexture","depthTextureFormat","textureCount","samples","samplingModes","useSRGBBuffers","formats","targets","layerIndex","layers","labels","_createHardwareRenderTargetWrapper","targetTypes","layerCounts","framebuffer","createFramebuffer","useStencilTexture","_generateDepthBuffer","_generateStencilBuffer","_depthStencilBuffer","_setupFramebufferDepthAttachments","useSRGBBuffer","layerCount","_caps","textureFloatLinearFiltering","textureHalfFloatLinearFiltering","_getSamplingParameters","textureFloat","supportSRGBBuffers","isWebGPU","isWebGL2","InternalTexture","activeTexture","bindTexture","_hardwareTexture","texParameteri","TEXTURE_MAG_FILTER","mag","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","internalSizedFormat","webGLTextureType","_getWebGLTextureType","TEXTURE_CUBE_MAP_POSITIVE_X","is2DArray","baseDepth","texImage3D","baseWidth","baseHeight","_useSRGBBuffer","_internalTexturesCache","depthTextureExtension","depthTexture","depthTextureType","glDepthTextureInternalFormat","DEPTH_COMPONENT16","glDepthTextureFormat","DEPTH_COMPONENT","glDepthTextureType","glDepthTextureAttachment","DEPTH_ATTACHMENT","DEPTH_COMPONENT32F","FLOAT_32_UNSIGNED_INT_24_8_REV","DEPTH32F_STENCIL8","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH_COMPONENT24","UNSIGNED_INT_24_8","DEPTH24_STENCIL8","framebufferTexture2D","FRAMEBUFFER","_depthStencilTexture","_depthStencilTextureWithStencil","setTextures","setLayerAndFaceIndices","resetTextureCache","updateMultipleRenderTargetTextureSampleCount","maxMSAASamples","deleteRenderbuffer","deleteFramebuffer","releaseMSAARenderBuffers","renderbufferStorageMultisample","hardwareTexture","attachment","colorRenderbuffer","_createRenderBuffer","addMSAARenderBuffer","_samples","createComputeEffect","createComputeContext","computeDispatch","bindings","bindingsMapping","computeDispatchIndirect","areAllComputeEffectsReady","releaseComputeEffects","pipelineContext","_rebuildComputeEffects","texturesSupported","astc","s3tc","pvrtc","etc2","etc1","setCompressedTextureExclusions","skippedFiles","setTextureFormatToUse","formatsAvailable","len1","len2","_transformTextureUrl","NativeDataStream","DEFAULT_BUFFER_SIZE","_uint32s","_int32s","_float32s","_length","_position","_nativeDataStream","_native","_flush","writeUint32","_flushIfNecessary","writeInt32","writeFloat32","writeUint32Array","writeInt32Array","writeFloat32Array","writeNativeData","writeBoolean","writeBuffer","ExtractBetweenMarkers","markerOpen","markerClose","startIndex","currPos","openMarkers","waitForChar","currChar","nextChar","SkipWhitespaces","IsIdentifierChar","RemoveComments","inComments","FindBackward","c2","EscapeRegExp","InjectStartingAndEndingCode","mainFuncDecl","startingCode","endingCode","part1","part2","lastClosingCurly","ShaderCodeInliner","_sourceCode","sourceCode","numMaxIterations","_numMaxIterations","_functionDescr","inlineToken","processCode","Log","_collectFunctions","_processInlining","inlineTokenIndex","funcParamsStartIndex","funcNameMatch","_RegexpFindFunctionNameAndType","exec","funcType","funcName","funcParamsEndIndex","funcParams","funcBodyStartIndex","funcBodyEndIndex","funcBody","paramNames","parameters","callIndex","partBefore","partAfter","_replaceFunctionCallsByCode","doAgain","functionCallIndex","callParamsStartIndex","callParamsEndIndex","callParams","curIdx","startParamIdx","idx2","retParamName","_replaceNames","injectDeclarationIndex","partBetween","sources","destinations","sourceLen","destination","varyingRegex","NativeShaderProcessor","shaderLanguage","initializeShaders","_nativeProcessingContext","remappedAttributeNames","injectInVertexMain","attributeProcessor","attribute","attributeType","vertexBufferKindToNumberOfComponents","newName","varyingCheck","varying","_isFragment","varyingProcessor","postProcessor","hasDrawBuffersExtension","hasOutput","NativePipelineContext","compilationError","isCompiled","_getVertexShaderCode","_getFragmentShaderCode","shaderProcessingContext","vertexBufferKindToType","_valueCache","_fillEffectInformation","uniformBuffersNames","uniformsNames","uniforms","samplerList","samplers","attributesNames","bindUniformBlock","uniform","_uniforms","getUniform","getAttributes","setEngine","_cacheMatrix","uniformName","matrix","flag","updateFlag","_cacheFloat2","changed","_cacheFloat3","_cacheFloat4","setInt","setInt2","setInt3","setInt4","setIntArray","setIntArray2","setIntArray3","setIntArray4","setUInt","setUInt2","setUInt3","setUInt4","setUIntArray","setUIntArray2","setUIntArray3","setUIntArray4","setFloatArray","setFloatArray2","setFloatArray3","setFloatArray4","setArray","setArray2","setArray3","setArray4","setMatrices","matrices","setMatrix","setMatrix3x3","setMatrix2x2","setBool","bool","setVector2","vector2","setVector3","vector3","setFloat3","vector4","setFloat4","setQuaternion","quaternion","setColor3","color3","setColor4","setDirectColor4","color4","NativeRenderTargetWrapper","RenderTargetWrapper","__framebuffer","_releaseFramebufferObjects","_framebufferDepthStencil","__framebufferDepthStencil","framebufferDepthStencil","isMulti","disposeOnlyFramebuffers","NativeHardwareTexture","_nativeTexture","existingTexture","setUsage","release","deleteTexture","getNativeTextureFormat","TEXTURE_FORMAT_D16","TEXTURE_FORMAT_D24","TEXTURE_FORMAT_D24S8","TEXTURE_FORMAT_D32F","TEXTURE_FORMAT_BC7","TEXTURE_FORMAT_BC6H","TEXTURE_FORMAT_BC3","TEXTURE_FORMAT_BC2","TEXTURE_FORMAT_BC1","TEXTURE_FORMAT_ASTC4x4","TEXTURE_FORMAT_ETC1","TEXTURE_FORMAT_ETC2","TEXTURE_FORMAT_ETC2A","TEXTURE_FORMAT_RGB8","TEXTURE_FORMAT_RGB8S","TEXTURE_FORMAT_RGB8I","TEXTURE_FORMAT_RGB8U","TEXTURE_FORMAT_RGBA8","TEXTURE_FORMAT_RGBA32F","TEXTURE_FORMAT_RGBA16F","TEXTURE_FORMAT_RGBA8S","TEXTURE_FORMAT_RGBA16I","TEXTURE_FORMAT_RGBA16U","TEXTURE_FORMAT_RGBA32I","TEXTURE_FORMAT_RGBA32U","TEXTURE_FORMAT_R8","TEXTURE_FORMAT_R32F","TEXTURE_FORMAT_R16F","TEXTURE_FORMAT_R8S","TEXTURE_FORMAT_R16S","TEXTURE_FORMAT_R16U","TEXTURE_FORMAT_R32I","TEXTURE_FORMAT_R32U","TEXTURE_FORMAT_RG8","TEXTURE_FORMAT_RG32F","TEXTURE_FORMAT_RG16F","TEXTURE_FORMAT_RG8S","TEXTURE_FORMAT_RG16S","TEXTURE_FORMAT_RG16U","TEXTURE_FORMAT_RG32I","TEXTURE_FORMAT_RG32U","TEXTURE_FORMAT_BGRA8","RuntimeError","ErrorCodes","UnsupportedTextureError","getNativeSamplingMode","TEXTURE_NEAREST_NEAREST","TEXTURE_LINEAR_LINEAR","TEXTURE_LINEAR_LINEAR_MIPLINEAR","TEXTURE_NEAREST_NEAREST_MIPNEAREST","TEXTURE_NEAREST_LINEAR_MIPNEAREST","TEXTURE_NEAREST_LINEAR_MIPLINEAR","TEXTURE_NEAREST_LINEAR","TEXTURE_NEAREST_NEAREST_MIPLINEAR","TEXTURE_LINEAR_NEAREST_MIPNEAREST","TEXTURE_LINEAR_NEAREST_MIPLINEAR","TEXTURE_LINEAR_LINEAR_MIPNEAREST","TEXTURE_LINEAR_NEAREST","getNativeAddressMode","wrapMode","ADDRESS_MODE_WRAP","ADDRESS_MODE_CLAMP","ADDRESS_MODE_MIRROR","getNativeAttribType","ATTRIB_TYPE_INT8","ATTRIB_TYPE_UINT8","ATTRIB_TYPE_INT16","ATTRIB_TYPE_UINT16","ATTRIB_TYPE_FLOAT","vertexBufferKindForNonFloatProcessing","NormalKind","TangentKind","UVKind","UV2Kind","UV3Kind","UV4Kind","UV5Kind","UV6Kind","ColorKind","ColorInstanceKind","MatricesIndicesKind","MatricesWeightsKind","MatricesIndicesExtraKind","MatricesWeightsExtraKind","isSignedType","checkNonFloatVertexBuffers","vertexBuffers","currentVertexBuffer","currentVertexBufferType","normalized","vertexBufferType","_getShaderProcessingContext","DeduceStride","parallelShaderCompile","_processShaderCodeAsync","_checkNonFloatVertexBuffersDontRecreatePipelineContext","NativeShaderProcessingContext","onNativeObjectInitialized","__native","_RegisterNativeTypeAsync","AcquireNativeObjectAsync","nativeObject","NativeDataBuffer","DataBuffer","CommandBufferEncoder","_pending","_isCommandBufferScopeActive","_commandStream","NativeEngine","_createNativeDataStream","setCommandDataStream","beginCommandScope","endCommandScope","_submit","startEncodingCommand","encodeCommandArgAsUInt32","commandArg","encodeCommandArgAsUInt32s","encodeCommandArgAsInt32","encodeCommandArgAsInt32s","encodeCommandArgAsFloat32","encodeCommandArgAsFloat32s","encodeCommandArgAsNativeData","finishEncodingCommand","submitCommands","remappedAttributesNames","setHardwareScalingLevel","adaptToDeviceRatio","nonFloatVertexBuffers","_commandBufferEncoder","_boundBuffersVertexArray","_currentDepthTest","DEPTH_TEST_LEQUAL","_stencilTest","_stencilMask","_stencilFunc","_stencilFuncRef","_stencilFuncMask","_stencilOpStencilFail","_stencilOpDepthFail","_stencilOpStencilDepthPass","_zOffset","_zOffsetUnits","_depthWrite","_fillModeWarningDisplayed","PROTOCOL_VERSION","setDeviceLostCallback","_contextWasLost","_restoreEngineAfterContextLost","_webGLVersion","disableUniformBuffers","_shaderPlatformName","maxTexturesImageUnits","maxVertexTextureImageUnits","maxCombinedTexturesImageUnits","maxTextureSize","CAPS_LIMITS_MAX_TEXTURE_SIZE","maxCubemapTextureSize","maxRenderTextureSize","maxVertexAttribs","maxVaryingVectors","maxDrawBuffers","maxFragmentUniformVectors","maxVertexUniformVectors","standardDerivatives","bptc","maxAnisotropy","uintIndices","fragmentDepthSupported","highPrecisionShaderSupported","colorBufferFloat","supportFloatTexturesResolve","rg11b10ufColorRenderable","textureFloatRender","textureHalfFloat","textureHalfFloatRender","textureLOD","texelFetch","drawBuffersExtension","vertexArrayObject","instancedArrays","blendMinMax","canUseGLInstanceID","canUseGLVertexID","supportComputeShaders","supportTransformFeedbacks","textureMaxLevel","texture2DArrayMaxLayerCount","CAPS_LIMITS_MAX_TEXTURE_LAYERS","disableMorphTargetTexture","COMPLETION_STATUS_KHR","forceBitmapOverHTMLImageElement","supportRenderAndCopyToLodForFloatTextures","supportDepthStencilTexture","supportShadowSamplers","uniformBufferHardCheckMatrix","allowTexturePrefiltering","trackUbosInFrame","checkUbosContentBeforeUpload","supportCSM","basisNeedsPOT","support3DTextures","needTypeSuffixInShaderConstants","supportMSAA","supportSSAO2","supportIBLShadows","supportExtendedTextureFormats","supportSwitchCaseInShader","supportSyncTextureRead","needsInvertingBitmap","useUBOBindingCache","needShaderCodeInlining","needToAlwaysBindUniformBuffers","supportRenderPasses","supportSpriteInstancing","_collectUbosUpdatedInFrame","LoadScript","scriptUrl","onSuccess","scriptId","LoadFile","exception","cur","devicePixelRatio","_lastDevicePixelRatio","resize","currentDepthFunction","getDepthFunction","setDepthFunction","_shaderProcessor","onNewSceneAddedObservable","originalRender","_deleteVertexArray","_queueNewFrame","bindedRenderFunction","requester","_clearEmptyResources","depthTest","_depthCullingState","depthFunc","depthMask","stencilTest","_stencilState","_rebuildGraphicsResources","_flagContextRestored","_currentFramebuffer","COMMAND_UNBINDFRAMEBUFFER","COMMAND_BINDFRAMEBUFFER","backBuffer","stencil","COMMAND_CLEAR","createIndexBuffer","updateable","_normalizeIndexData","is32Bits","nativeIndexBuffer","createVertexBuffer","vertices","nativeVertexBuffer","_recordVertexArrayObject","vertexArray","indexBuffer","overrideVertexBuffers","_checkedNonFloatVertexBuffers","recordIndexBuffer","getAttributesNames","getAttributeLocation","vertexBuffer","effectiveBuffer","recordVertexBuffer","effectiveByteOffset","effectiveByteStride","getInstanceDivisor","bindBuffers","createVertexArray","bindVertexArrayObject","recordVertexArrayObject","COMMAND_DELETEVERTEXARRAY","COMMAND_BINDVERTEXARRAY","releaseVertexArrayObject","nativePipelineContext","nativeShaderProcessingContext","origAttributeName","_checkSupportedFillMode","fillMode","drawElementsType","indexCount","instancesCount","_drawCalls","COMMAND_DRAWINDEXEDINSTANCED","COMMAND_DRAWINDEXED","drawArraysType","verticesStart","verticesCount","COMMAND_DRAWINSTANCED","COMMAND_DRAW","createPipelineContext","createProgramAsync","createMaterialContext","createDrawContext","_preparePipelineContext","vertexSourceCode","fragmentSourceCode","createAsRaw","_rawVertexSourceCode","_rawFragmentSourceCode","_rebuildRebind","_transformFeedbackVaryings","onReady","createRawShaderProgram","createShaderProgram","_executeWhenRenderingStateIsCompiled","oldHandler","fragmentCode","onBeforeShaderCompilationObservable","vertexInliner","fragmentInliner","_ConcatenateShader","onAfterShaderCompilationObservable","createProgram","inlineShaderCode","sci","_setProgram","_currentProgram","COMMAND_SETPROGRAM","_deletePipelineContext","COMMAND_DELETEPROGRAM","blockName","bindSamplers","getSamplers","_boundUniforms","_currentEffect","useScreen","setViewport","requiredWidth","requiredHeight","_cachedViewport","COMMAND_SETVIEWPORT","enableScissor","COMMAND_SETSCISSOR","disableScissor","culling","zOffset","force","reverseSide","cullBackFaces","zOffsetUnits","COMMAND_SETSTATE","getInputElementClientRect","right","setZOffset","COMMAND_SETZOFFSET","getZOffset","setZOffsetUnits","COMMAND_SETZOFFSETUNITS","getZOffsetUnits","setDepthBuffer","COMMAND_SETDEPTHTEST","DEPTH_TEST_ALWAYS","getDepthWrite","DEPTH_TEST_NEVER","DEPTH_TEST_GREATER","DEPTH_TEST_GEQUAL","DEPTH_TEST_NOTEQUAL","DEPTH_TEST_EQUAL","DEPTH_TEST_LESS","nativeDepthFunc","setDepthWrite","COMMAND_SETDEPTHWRITE","setColorWrite","_colorWrite","COMMAND_SETCOLORWRITE","getColorWrite","applyStencil","_setStencil","getNativeStencilOpFail","opFail","STENCIL_OP_FAIL_S_KEEP","STENCIL_OP_FAIL_S_ZERO","STENCIL_OP_FAIL_S_REPLACE","STENCIL_OP_FAIL_S_INCR","STENCIL_OP_FAIL_S_DECR","STENCIL_OP_FAIL_S_INVERT","STENCIL_OP_FAIL_S_INCRSAT","STENCIL_OP_FAIL_S_DECRSAT","getNativeStencilDepthFail","depthFail","STENCIL_OP_FAIL_Z_KEEP","STENCIL_OP_FAIL_Z_ZERO","STENCIL_OP_FAIL_Z_REPLACE","STENCIL_OP_FAIL_Z_INCR","STENCIL_OP_FAIL_Z_DECR","STENCIL_OP_FAIL_Z_INVERT","STENCIL_OP_FAIL_Z_INCRSAT","STENCIL_OP_FAIL_Z_DECRSAT","getNativeStencilDepthPass","opPass","STENCIL_OP_PASS_Z_KEEP","STENCIL_OP_PASS_Z_ZERO","STENCIL_OP_PASS_Z_REPLACE","STENCIL_OP_PASS_Z_INCR","STENCIL_OP_PASS_Z_DECR","STENCIL_OP_PASS_Z_INVERT","STENCIL_OP_PASS_Z_INCRSAT","STENCIL_OP_PASS_Z_DECRSAT","getNativeStencilFunc","STENCIL_TEST_LESS","STENCIL_TEST_LEQUAL","STENCIL_TEST_EQUAL","STENCIL_TEST_GEQUAL","STENCIL_TEST_GREATER","STENCIL_TEST_NOTEQUAL","STENCIL_TEST_NEVER","STENCIL_TEST_ALWAYS","stencilOpFail","depthOpFail","depthOpPass","COMMAND_SETSTENCIL","setStencilBuffer","getStencilBuffer","getStencilOperationPass","setStencilOperationPass","setStencilMask","setStencilFunction","stencilFunc","setStencilFunctionReference","setStencilFunctionMask","setStencilOperationFail","setStencilOperationDepthFail","getStencilMask","getStencilFunction","getStencilFunctionReference","getStencilFunctionMask","getStencilOperationFail","getStencilOperationDepthFail","setAlphaConstants","setAlphaMode","noDepthWriteChange","_alphaMode","nativeMode","getNativeAlphaMode","ALPHA_DISABLE","ALPHA_ADD","ALPHA_COMBINE","ALPHA_SUBTRACT","ALPHA_MULTIPLY","ALPHA_MAXIMIZED","ALPHA_ONEONE","ALPHA_PREMULTIPLIED","ALPHA_PREMULTIPLIED_PORTERDUFF","ALPHA_INTERPOLATE","ALPHA_SCREENMODE","COMMAND_SETBLENDMODE","int","COMMAND_SETINT","COMMAND_SETINTARRAY","COMMAND_SETINTARRAY2","COMMAND_SETINTARRAY3","COMMAND_SETINTARRAY4","COMMAND_SETFLOATARRAY","COMMAND_SETFLOATARRAY2","COMMAND_SETFLOATARRAY3","COMMAND_SETFLOATARRAY4","COMMAND_SETMATRICES","COMMAND_SETMATRIX3X3","COMMAND_SETMATRIX2X2","COMMAND_SETFLOAT","COMMAND_SETFLOAT2","COMMAND_SETFLOAT3","COMMAND_SETFLOAT4","wipeCaches","bruteForce","preventCacheWipeBetweenFrames","_stencilStateComposer","_alphaState","_cachedVertexBuffers","_cachedIndexBuffer","_cachedEffectForVertexBuffers","_createTexture","_deleteTexture","updateDynamicTexture","premulAlpha","getCanvasTexture","copyTexture","createDynamicTexture","createRawTexture","createVideoElement","constraints","createVideo","compression","creationFlags","_compression","_getUseSRGBBuffer","updateRawTexture","webGLTexture","_setTextureSampling","createRawTexture2DArray","nativeTexture","loadRawTexture2DArray","bufferView","loadRawTexture","noMipmap","onLoad","fallback","forcedExtension","loaderOptions","fromData","isBase64","originalUrl","loaderPromise","_GetCompatibleTextureLoader","addPendingData","doNotHandleContextLost","onLoadObserver","onLoadedObservable","onInternalError","removePendingData","UseFallbackTexture","FallbackTexture","loadTexture","getTextureWidth","getTextureHeight","DecodeBase64","wrapNativeTexture","hasMipMaps","internalTexture","useMipMaps","updateTextureSamplingMode","wrapWebGLTexture","_createDepthStencilTexture","generateStencil","nativeRTWrapper","createFrameBuffer","COMMAND_DELETEFRAMEBUFFER","_createImageBitmapFromSource","imageSource","createCanvasImage","imageBitmap","createImageBitmap","resizeImageBitmap","bufferWidth","bufferHeight","createCubeTexture","createPolynomials","lodScale","lodOffset","_lodGenerationScale","_lodGenerationOffset","_doNotHandleContextLost","_extension","_files","onloaddata","GetEnvInfo","UploadEnvSpherical","specularInfo","specular","lodGenerationScale","imageData","CreateImageDataArrayBufferViews","Texture","TRILINEAR_SAMPLINGMODE","_isRGBD","loadCubeTextureWithMips","statusText","_loadFileAsync","loadCubeTexture","_createHardwareTexture","_renderTargetWrapperCache","_createInternalTexture","_delayGPUTextureCreation","nativeTextureFormat","initializeTexture","createRenderTargetTexture","colorAttachment","noColorAttachment","updateRenderTargetTextureSampleCount","forceFullscreenViewport","createDynamicVertexBuffer","updateDynamicIndexBuffer","updateDynamicVertexBuffer","dataView","byteView","_setTexture","channel","isPartOfTextureArray","depthStencilTexture","_boundTexturesCache","_activeChannel","_unsetNativeTexture","delayLoadState","delayLoad","getInternalTexture","emptyCubeTexture","emptyTexture3D","emptyTexture2DArray","emptyTexture","_setTextureWrapMode","wrapU","wrapV","wrapR","_updateAnisotropicLevel","_setNativeTexture","COMMAND_SETTEXTURESAMPLING","addressModeU","addressModeV","addressModeW","COMMAND_SETTEXTUREWRAPMODE","COMMAND_SETTEXTURE","COMMAND_UNSETTEXTURE","anisotropicFilteringLevel","_cachedAnisotropicFilteringLevel","COMMAND_SETTEXTUREANISOTROPICLEVEL","_bindTexture","unbindAllTextures","COMMAND_DISCARDALLTEXTURES","_deleteBuffer","COMMAND_DELETEINDEXBUFFER","COMMAND_DELETEVERTEXBUFFER","updateTextureData","xOffset","yOffset","lod","_uploadCompressedDataToTextureDirectly","_uploadDataToTextureDirectly","_uploadArrayBufferViewToTexture","_uploadImageToTexture","getFontOffset","font","ascent","descent","_readTexturePixels","_flushRenderer","_noDataConversion","readTexture","rawBuffer","VALIDATION_ENABLED","ValidatedNativeDataStream","VALIDATION_UINT_32","VALIDATION_INT_32","VALIDATION_FLOAT_32","VALIDATION_UINT_32_ARRAY","VALIDATION_INT_32_ARRAY","VALIDATION_FLOAT_32_ARRAY","VALIDATION_NATIVE_DATA","VALIDATION_BOOLEAN","WebGPUTextureHelper","ComputeNumMipmapLevels","ILog2","GetTextureTypeFromFormat","GetBlockInformationFromFormat","IsHardwareTexture","IsInternalTexture","IsImageBitmap","IsImageBitmapArray","IsCompressedFormat","GetWebGPUTextureFormat","GetNumChannelsFromWebGPUTextureFormat","HasStencilAspect","HasDepthAndStencilAspects","GetDepthFormatOnly","GetSample","sampleCount","ThinWebGPUEngine","dbgShowShaderCode","dbgSanityChecks","dbgVerboseLogsNumFrames","dbgLogIfNotDrawWrapper","dbgShowEmptyEnableEffectCalls","dbgVerboseLogsForFirstFrames","_currentRenderPass","_snapshotRenderingMode","_timestampIndex","enableGPUTimingMeasurements","_timestampQuery","gpuTimeInFrameForMainPass","WebGPUPerfCounter","_currentPassIsMainPass","_endCurrentRenderPass","currentPassIndex","_snapshotRendering","endRenderPass","compatibilityMode","_bundleList","endPass","gpuTimeInFrame","_count","_generateMipmaps","commandEncoder","gpuHardwareTexture","_renderEncoder","mipmapCount","_textureHelper","generateCubeMipmaps","generateMipmaps","alphaBlend","depthCullingState","_cacheRenderPipeline","setDepthWriteEnabled","setAlphaBlendFunctionParameters","setAlphaBlendEnabled","setAlphaBlendFactors","_blendFunctionParameters","_blendEquationParameters","setAlphaEquation","equation","BufferUsage","MapRead","MapWrite","CopySrc","CopyDst","Index","Vertex","Uniform","Storage","Indirect","QueryResolve","WebGPUShaderProcessor","_addUniformToLeftOverUBO","uniformType","preProcessors","_getArraySize","_webgpuProcessingContext","leftOverUniforms","_buildLeftOverUBO","LeftOvertUBOName","availableUBO","availableBuffers","binding","getNextFreeUBOBinding","_addBufferBindingDescription","_generateLeftOverUBOCode","_collectBindingNames","bindGroupLayoutEntries","setDefinition","bindGroupLayoutEntryInfo","externalTexture","storageTexture","textureNames","nameInArrayOfTexture","sampler","samplerNames","bufferNames","_preCreateBindGroupEntries","bindGroupEntries","resource","_addTextureBindingDescription","textureInfo","textureIndex","dimension","isVertex","groupIndex","bindingIndex","visibility","access","viewDimension","sampleType","multisampled","isTextureArray","_addSamplerBindingDescription","samplerInfo","uniformBufferInfo","bufferType","InternalsUBOName","UniformSizes","float","vec2","ivec2","uvec2","vec3","ivec3","uvec3","vec4","ivec4","uvec4","mat3","mat4","i32","u32","f32","mat2x2","mat3x3","mat4x4","mat2x2f","mat3x3f","mat4x4f","vec2i","vec3i","vec4i","vec2u","vec3u","vec4u","vec2f","vec3f","vec4f","vec2h","vec3h","vec4h","_SamplerFunctionByWebGLSamplerType","sampler2D","sampler2DArray","sampler2DShadow","sampler2DArrayShadow","samplerCube","sampler3D","_TextureTypeByWebGLSamplerType","samplerCubeArray","_GpuTextureViewDimensionByWebGPUTextureType","textureCube","textureCubeArray","texture2D","texture2DArray","texture3D","_SamplerTypeByWebGLSamplerType","_IsComparisonSamplerByWebGPUSamplerType","samplerShadow","samplerArrayShadow","WebGPUPipelineContext","stages","bindGroupLayouts","_leftOverUniformsByName","_handlesSpectorRebuildCallback","_fragmentSourceCode","_vertexSourceCode","foundSamplers","availableTextures","buildUniformLayout","attributeNamesFromEffect","attributeLocationsFromEffect","uniformBuffer","UniformBuffer","leftOverUniform","addUniform","updateInt","updateInt2","updateInt3","updateInt4","updateIntArray","updateUInt","updateUInt2","updateUInt3","updateUInt4","updateUIntArray","updateArray","updateMatrices","updateMatrix","updateMatrix3x3","updateMatrix2x2","updateFloat2","updateFloat3","updateFloat4","_typeToLocationSize","WebGPUShaderProcessingContext","KnownUBOs","_SimplifiedKnownBindings","_SimplifiedKnownUBOs","_KnownUBOs","pureMode","_attributeNextLocation","_varyingNextLocation","freeGroupIndex","freeBindingIndex","availableVaryings","availableAttributes","availableSamplers","orderedAttributes","_findStartingGroupBinding","knownUBOs","getAttributeNextLocation","arrayLength","getVaryingNextLocation","_getNextFreeBinding","bindingCount","returnValue","Light0","Light1","Light2","Light3","Light4","Light5","Light6","Light7","Light8","Light9","Light10","Light11","Light12","Light13","Light14","Light15","Light16","Light17","Light18","Light19","Light20","Light21","Light22","Light23","Light24","Light25","Light26","Light27","Light28","Light29","Light30","Light31","Material","Mesh","Internals","WebGPUShaderProcessorGLSL","_missingVaryings","_textureArrayProcessing","_vertexIsGLES3","_fragmentIsGLES3","parseGLES3","startArray","endArray","lengthInString","attributeKeywordName","varyingVertexKeywordName","varyingFragmentKeywordName","preProcessShaderCode","ubDeclaration","alreadyInjected","_preProcessors","interpolationQualifier","varyingType","uniformProcessor","arraySize","autoBindSampler","isStorageTexture","samplerType","isComparisonSampler","samplerBindingType","samplerName","samplerGroupIndex","samplerBindingIndex","samplerFunction","textureDimension","layouts","uniformBufferProcessor","knownUBO","_processingContext","_parameters","hasFragCoord","fragCoordCode","injectCode","_applyTextureArrayProcessing","regex","iindex","uniformBufferDescription","finalizeShaders","decl","leftOverUBO","gpuTextureViewDimensionByWebGPUTextureFunction","texture_1d","texture_2d","texture_2d_array","texture_3d","texture_cube","texture_cube_array","texture_multisampled_2d","texture_depth_2d","texture_depth_2d_array","texture_depth_cube","texture_depth_cube_array","texture_depth_multisampled_2d","texture_storage_1d","texture_storage_2d","texture_storage_2d_array","texture_storage_3d","texture_external","WebGPUShaderProcessorWGSL","uniformRegexp","textureRegexp","noPrecision","preProcessor","_attributesInputWGSL","_attributesWGSL","_attributesConversionCodeWGSL","_hasNonFloatAttribute","_varyingsWGSL","_varyingNamesWGSL","_stridedUniformArrays","interpolationType","interpolation","textureProcessor","isArrayOfTexture","textureFunc","storageTextureFormat","isDepthTexture","definePattern","_processSamplers","_processCustomBuffers","_processStridedUniformArrays","vertexInputs","vertexOutputs","vertexMainStartingCode","vertexMainEndingCode","needDiagnosticOff","fragmentInputs","fragmentOutputs","regexRoot","indexLocation","hasFragDepth","saveIndex","builtInName_frag_depth","fragmentStartingCode","stridedArrays","stridedArrayType","samplerRegexp","suffixLessLength","textureName","insertPart","instantiateBufferRegexp","decoration","structName","bufferInfo","uniformArrayName","WebGPUHardwareTexture","_webgpuTexture","getMSAATexture","_webgpuMSAATexture","setMSAATexture","releaseMSAATexture","_originalFormatIsRGB","textureUsages","textureAdditionalUsages","viewForWriting","_textureSource","arrayLayerCount","aspect","createView","mipLevelCount","baseArrayLayer","baseMipLevel","descriptor","createViewForWriting","saveNumMipMaps","_copyInvertYTempTexture","invertYPreMultiplyAlphaVertexSource","invertYPreMultiplyAlphaWithOfstVertexSource","PipelineType","MipMap","InvertYPremultiplyAlpha","Clear","InvertYPremultiplyAlphaWithOfst","VideoPipelineType","DontInvertY","InvertY","shadersForPipelineType","renderableTextureFormatToIndex","r8unorm","r8uint","r8sint","r16uint","r16sint","r16float","rg8unorm","rg8uint","rg8sint","r32uint","r32sint","r32float","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8uint","rgba8sint","bgra8unorm","rgb10a2uint","rgb10a2unorm","rg32uint","rg32sint","rg32float","rgba16uint","rgba16sint","rgba16float","rgba32uint","rgba32sint","rgba32float","stencil8","depth16unorm","depth24plus","depth32float","WebGPUTextureManager","device","bufferManager","enabledExtensions","_pipelines","_compiledShaders","_videoPipelines","_videoCompiledShaders","_deferredReleaseTextures","_device","_bufferManager","rg11b10ufloat","_mipmapSampler","createSampler","minFilter","_videoSampler","_ubCopyWithOfst","createBuffer","WebGPUConstants","_getPipeline","_getVideoPipeline","premultiplyAlpha","pipelineAndBGL","modules","_getShaderProcessor","Process","migratedVertexCode","migratedFragmentCode","final","vertexModule","createShaderModule","fragmentModule","pipeline","createRenderPipeline","layout","module","primitive","topology","stripIndexFormat","getBindGroupLayout","setCommandEncoder","_commandEncoderForCreation","copyVideoToTexture","useOwnCommandEncoder","bindGroupLayout","createCommandEncoder","pushDebugGroup","renderPassDescriptor","colorAttachments","loadOp","storeOp","passEncoder","beginRenderPass","importExternalTexture","bindGroup","createBindGroup","setPipeline","setBindGroup","draw","popDebugGroup","queue","submit","finish","invertYPreMultiplyAlpha","gpuOrHdwTexture","mipLevel","ofstX","ofstY","rectWidth","rectHeight","allowGPUOptimization","useRect","gpuTexture","setRawData","webgpuHardwareTexture","outputTexture","_copyInvertYRenderPassDescr","_copyInvertYBindGroupWithOfst","_copyInvertYBindGroup","copyTextureToTexture","depthOrArrayLayers","copyWithInvertY","srcTextureView","hasMipmaps","usage","additionalUsages","renderAttachmentFlag","isCompressedFormat","updateTexture","imageBitmaps","updateCubeTextures","_mipmapGenRenderPassDescr","_mipmapGenBindGroup","createGPUTextureForInternalTexture","dontCreateMSAATexture","gpuTextureWrapper","_source","_maxLodLevel","createMSAATexture","releaseExisting","gpuMSAATexture","faces","blockInformation","textureCopyView","premultipliedAlpha","textureExtent","bytesPerRow","createRawBuffer","getMappedRange","unmap","copyBufferToTexture","rowsPerImage","releaseBuffer","writeTexture","dontUseRect","copyExternalImageToTexture","srcTexture","readPixels","noDataConversion","bytesPerRowAligned","gpuBuffer","copyTextureToBuffer","readDataFromBuffer","releaseTexture","_irradianceTexture","destroyDeferredTextures","irradianceTexture","WebGPUDataBuffer","engineId","WebGPUBufferManager","_IsGPUBuffer","_FlagsToString","flags","suffix","_deferredReleaseBuffers","viewOrSize","mappedAtCreation","alignedLength","verticesBufferDescriptor","dataBuffer","labelId","setSubData","dstByteOffset","srcByteOffset","chunkEnd","tempView","maxChunk","_getHalfFloatAsFloatRGBAArrayBuffer","dataLength","destArray","srcData","FromHalfFloat","destroyBuffer","floatFormat","mapAsync","copyArrayBuffer","allocateAndCopyTypedBuffer","data2","offset2","isDisposed","destroyDeferredBuffers","filterToBits","comparisonFunctionToBits","filterNoMipToBits","WebGPUCacheSampler","_samplers","GetSamplerHashCode","_comparisonFunction","_cachedWrapU","_cachedWrapV","_cachedWrapR","_GetSamplerFilterDescriptor","anisotropy","magFilter","mipmapFilter","lodMinClamp","lodMaxClamp","anisotropyEnabled","_GetWrappingMode","_GetSamplerWrappingDescriptor","_GetSamplerDescriptor","filterDescriptor","compare","GetCompareFunction","compareFunction","getSampler","bypassCache","hash","gpuSampler","StatePosition","StencilReadMask","StencilWriteMask","DepthBias","DepthBiasSlopeScale","DepthStencilState","MRTAttachments1","MRTAttachments2","RasterizationState","ColorStates","ShaderStage","TextureStage","VertexState","NumStates","alphaBlendFactorToIndex","stencilOpToIndex","WebGPUCacheRenderPipeline","emptyVertexBuffer","mrtTextureCount","_useTextureStage","_states","_statesLength","_stateDirtyLowestIndex","_emptyVertexBuffer","_mrtFormats","_parameter","_kMaxVertexBufferStride","limits","maxVertexBufferArrayStride","_isDirty","setAlphaToCoverage","resetDepthCullingState","setClampDepth","setDepthBias","_webgpuColorFormat","setColorFormat","setMRT","setWriteMask","setDepthStencilFormat","setStencilEnabled","resetStencilState","setBuffers","_setTextureState","colorFormats","_mrtAttachments1","getRenderPipeline","textureState","_GetTopology","_setVertexState","_createRenderPipeline","NumCacheMiss","_NumPipelineCreationCurrentFrame","_setShaderStage","_setRasterizationState","_setColorStates","_setDepthStencilState","lastStateDirtyLowestIndex","NumCacheHitWithoutHash","_getRenderPipeline","NumCacheHitWithHash","_setRenderPipeline","NumPipelineCreationLastFrame","_alphaToCoverageEnabled","setFrontFace","frontFace","_frontFace","setCullEnabled","_cullEnabled","setCullFace","cullFace","_cullFace","clampDepth","_clampDepth","setDepthCullingState","cullEnabled","depthTestEnabled","depthWriteEnabled","depthCompare","_depthWriteEnabled","_depthTestEnabled","_depthCompare","setDepthBiasSlopeScale","depthBias","_depthBias","depthBiasSlopeScale","_depthBiasSlopeScale","_colorFormat","setMRTAttachments","mrtAttachments","_mrtEnabledMask","textureArray","mrtTextureArray","bits","indexBits","numRT","gpuWrapper","_mrtAttachments2","_alphaBlendEnabled","factors","operations","_alphaBlendFuncParams","_alphaBlendEqParams","_writeMask","_webgpuDepthStencilFormat","_depthStencilFormat","setDepthTestEnabled","setDepthCompare","_stencilEnabled","setStencilCompare","_stencilFrontCompare","setStencilDepthFailOp","op","_stencilFrontDepthFailOp","setStencilPassOp","_stencilFrontPassOp","setStencilFailOp","_stencilFrontFailOp","setStencilReadMask","_stencilReadMask","setStencilWriteMask","_stencilWriteMask","setStencilState","stencilEnabled","depthFailOp","passOp","failOp","readMask","writeMask","_vertexBuffers","_overrideVertexBuffers","_indexBuffer","_GetAphaBlendOperation","_GetAphaBlendFactor","factor","_GetCompareFunction","_GetStencilOpFunction","_GetVertexInputDescriptorFormat","getKind","_getAphaBlendState","srcFactor","dstFactor","_getColorBlendState","_shaderId","rasterizationState","_rasterizationState","colorStates","_colorStates","depthStencilState","_depthStencilState","currStateLen","newNumStates","webgpuPipelineContext","currentGPUBuffer","numVertexBuffers","_validOffsetRange","formatSize","vid","hashCode","_textureState","_createPipelineLayout","_createPipelineLayoutWithTextureStage","createBindGroupLayout","createPipelineLayout","bitVal","_getVertexInputDescriptor","descriptors","currentGPUAttributes","invalidOffsetRange","vertexBufferDescriptor","arrayStride","stepMode","shaderLocation","inputStateDescriptor","pipelineLayout","colorBlend","descr","blend","stencilFrontBack","depthStencilFormatHasStencil","vertexStage","buffers","cullMode","fragmentStage","multisample","depthStencil","stencilFront","stencilBack","stencilReadMask","stencilWriteMask","depthBiasClamp","_depthBiasClamp","NodeState","countNode","countPipeline","childCountNodes","childCoundPipeline","WebGPUCacheRenderPipelineTree","GetNodeCounts","counts","_Cache","nodeCount","pipelineCount","_GetPipelines","pipelines","curPath","curPathLen","nnode","GetPipelines","ResetCache","_nodeStack","WebGPUStencilStateComposer","StencilStateComposer","_func","funcMask","_funcMask","opStencilFail","_opStencilFail","opDepthFail","_opDepthFail","opStencilDepthPass","_opStencilDepthPass","_mask","_enabled","stencilMaterialEnabled","stencilMaterial","stencilGlobal","funcRef","WebGPUDepthCullingState","DepthCullingState","_isZOffsetDirty","_isCullFaceDirty","cull","_cull","_isCullDirty","_depthFunc","_isDepthFuncDirty","_depthMask","_isDepthMaskDirty","_depthTest","_isDepthTestDirty","_isFrontFaceDirty","ExternalTexture","IsExternalTexture","_video","_Counter","readyState","HAVE_CURRENT_DATA","WebGPUMaterialContext","forceBindGroupCreation","_numExternalTextures","hasFloatOrDepthTextures","_numFloatOrDepthTextures","updateId","isDirty","setSampler","samplerCache","currentHashCode","textureCache","currentTextureId","isFloatOrDepthTexture","isExternalTexture","WebGPUDrawContext","materialContextUpdateId","_materialContextUpdateId","resetIsDirty","useInstancing","_useInstancing","indirectDrawBuffer","_indirectDrawData","_currentInstanceCount","fastBundle","bindGroups","setBuffer","setIndirectData","indexOrVertexCount","instanceCount","firstIndexOrVertex","WebGPUBindGroupCacheNode","WebGPUCacheBindGroups","Statistics","totalCreated","NumBindGroupsCreatedTotal","lastFrameCreated","NumBindGroupsCreatedLastFrame","lookupLastFrame","NumBindGroupsLookupLastFrame","noLookupLastFrame","NumBindGroupsNoLookupLastFrame","_NumBindGroupsCreatedCurrentFrame","_NumBindGroupsLookupCurrentFrame","_NumBindGroupsNoLookupCurrentFrame","cacheSampler","_cacheSampler","getBindGroups","drawContext","materialContext","cacheIsDisabled","bufferName","uboId","nextNode","samplerHashCode","textureId","entryInfo","bindingInfo","ShadersStoreWGSL","WebGPUClearQuad","_depthTextureFormat","_bindGroups","_bundleCache","_keyTemp","_effect","renderPass","clearColor","clearDepth","clearStencil","renderPass2","bundleKey","bundle","isRTTPass","createRenderBundleEncoder","depthStencilFormat","_clearReverseDepthValue","_clearDepthValue","bufferInternals","_ubInvertY","_ubDontInvertY","bufferLeftOver","WebGPURenderItemViewport","WebGPURenderItemScissor","setScissorRect","WebGPURenderItemStencilRef","setStencilReference","WebGPURenderItemBlendColor","setBlendConstant","WebGPURenderItemBeginOcclusionQuery","WebGPURenderItemEndOcclusionQuery","WebGPURenderItemBundles","bundles","executeBundles","cloned","WebGPUBundleList","numDrawCalls","_list","_listLength","addBundle","_currentItemIsBundle","_currentBundleList","_finishBundle","_bundleEncoder","addItem","getBundleEncoder","WebGPUQuerySet","querySet","_querySet","canUseMultipleBuffers","_dstBuffers","_canUseMultipleBuffers","createQuerySet","_queryBuffer","_getBuffer","firstQuery","queryCount","encoderResult","resolveQuerySet","copyBufferToBuffer","readValues","arrayBuf","BigUint64Array","readValue","readTwoValuesAndSubtract","WebGPUTimestampQuery","gpuFrameTimeCounter","_gpuFrameTimeCounter","_measureDurationState","_measureDuration","WebGPUDurationMeasure","startPass","timestampWrites","gpuPerfCounter","currentFrameId","frameId","stopPass","duration_","_addDuration","querySetLabel","writeTimestamp","beginningOfPassWriteIndex","endOfPassWriteIndex","WebGPUOcclusionQuery","hasQueries","_currentTotalIndices","_availableIndices","canBeginQuery","_frameQuerySetIsDirty","_queryFrameId","canBegin","_getCurrentRenderPassWrapper","occlusionQuerySet","startCount","incrementCount","_frameLastBuffer","_countIncrement","_allocateNewIndices","_retrieveQueryBuffer","_lastBuffer","numIndices","_delayQuerySetDispose","WebGPUTintWASM","initTwgsl","twgslOptions","_Twgsl","_TWgslDefaultOptions","twgsl","jsPath","wasmPath","LoadBabylonScriptAsync","GetBabylonScriptURL","convertSpirV2WGSL","disableUniformityAnalysis","ccode","DisableUniformityAnalysis","ShowWGSLShaderCode","WebGPUSnapshotRendering","renderingMode","bundleList","_record","_play","_playBundleListIndex","_allBundleLists","_mode","activate","_modeSaved","currentRenderPass","_reportDrawCall","WebGPUExternalTexture","_convertRGBtoRGBATextureData","rgbData","rgbaData","val1","newIndex","_creationFlags","_bufferView","_uploadEncoder","createRawCubeTexture","_originalFormat","_bufferViewArray","updateRawCubeTexture","_format","needConversion","faceData","createRawCubeTextureFromUrl","mipmapGenerator","internalCallback","faceDataArrays","mipData","mipSize","allFaces","mipFaceData","offlineProvider","createRawTexture3D","updateRawTexture3D","updateRawTexture2DArray","flushRenderer","_readTexturePixelsSync","_createDepthStencilCubeTexture","internalOptions","bilinearFiltering","comparisonFunction","_setupDepthStencilTexture","createCubeTextureBase","imgs","_setCubeMapTextureParams","loadMipmap","maxLevel","generateMipMapsForCubemap","WebGPURenderTargetWrapper","fullOptions","createDepthStencilTexture","createMipMaps","hasStencil","setDepthStencilTexture","createRenderTargetCubeTexture","viewDescriptorSwapChainAntialiasing","viewDescriptorSwapChain","tempColor4","Color4","WebGPUEngine","snapshotRenderingMode","snapshotRenderingReset","snapshotRendering","disableCacheSamplers","disableCacheRenderPipelines","disableCacheBindGroups","_cacheBindGroups","areAllEffectsReady","GetFontOffset","IsSupportedAsync","gpu","requestAdapter","adapter","IsSupported","supportedExtensions","_adapterSupportedExtensions","_deviceEnabledExtensions","supportedLimits","_adapterSupportedLimits","currentLimits","_deviceLimits","getInfo","vendor","_adapterInfo","architecture","_compatibilityMode","currentSampleCount","_mainPassSampleCount","CreateAsync","initAsync","glslangOptions","antialias","_uploadEncoderDescriptor","_renderEncoderDescriptor","_clearStencilValue","_defaultSampleCount","_glslang","_tintWASM","_glslangAndTintAreFullyLoaded","_compiledComputeEffects","_counters","numEnableEffects","numEnableDrawWrapper","numBundleCreationNonCompatMode","numBundleReuseNonCompatMode","countersLastFrame","numMaxUncapturedErrors","_virtualScenes","_commandBuffers","_mainRenderPassWrapper","colorAttachmentViewDescriptor","depthAttachmentViewDescriptor","colorAttachmentGPUTextures","_rttRenderPassWrapper","_pendingDebugCommands","_debugStackRenderPass","_currentOverrideVertexBuffers","_currentIndexBuffer","_colorWriteLocal","_forceEnableEffect","hasOriginBottomLeft","_workingGlslangAndTintPromise","_viewportsCurrent","_scissorsCurrent","_scissorCached","_stencilRefsCurrent","_blendColorsCurrent","_performanceMonitor","PerformanceMonitor","deviceDescriptor","enableGPUDebugMarkers","swapChainFormat","getPreferredCanvasFormat","_isWebGPU","_renderingCanvas","_setupMobileChecks","_sharedInit","_shaderProcessorWGSL","prepareGlslangAndTintAsync","_initGlslang","_glslangOptions","glslang","_twgslOptions","_InstanceId","_adapter","feature","requiredFeatures","enableAllFeatures","requestedExtensions","validExtensions","setMaximumLimits","requiredLimits","requestDevice","numUncapturedErrors","lost","_initializeLimits","stride","_clearQuad","_defaultDrawContext","_currentDrawContext","_defaultMaterialContext","_currentMaterialContext","_initializeContextAndSwapChain","_initializeMainAttachments","_GlslangDefaultOptions","maxSampledTexturesPerShaderStage","maxTextureDimension2D","maxVertexAttributes","maxInterStageShaderVariables","maxUniformBufferBindingSize","multiview","oculusMultiview","maxTextureArrayLayers","_context","_configureContext","_setColorFormat","_mainTextureExtends","bufferDataUpdate","mainColorAttachments","mainTextureDescriptor","_mainTexture","clearValue","isStencilEnable","_setDepthTextureFormat","depthTextureDescriptor","_depthTexture","mainDepthAttachment","depthClearValue","depthLoadOp","depthStoreOp","stencilClearValue","stencilLoadOp","stencilStoreOp","depthStencilAttachment","_CommonInit","_creationOptions","alphaMode","ResizeImageBitmap","CreateImageBitmapFromSource","switchFullscreen","requestPointerLock","isFullscreen","exitFullscreen","enterFullscreen","_pointerLockRequested","RequestFullscreen","ExitFullscreen","enterPointerlock","RequestPointerlock","exitPointerlock","ExitPointerlock","_rebuildBuffers","storageBuffer","_storageBuffers","initEngine","cleanScenes","subMesh","_drawWrappers","_materialContext","uboList","_uniformBuffers","forceSetSize","_getCurrentRenderPass","_startRenderTargetRenderPass","_startMainRenderPass","applyStates","_alphaEquation","_mustUpdateViewport","_viewportCached","_applyViewport","_viewport","_mustUpdateScissor","_applyScissor","_scissorIsActive","_mustUpdateStencilRef","_applyStencilRef","_mustUpdateBlendColor","_blendConstants","_applyBlendColor","_resetRenderPassStates","hasScissor","_clearFullQuad","_updatable","_createBuffer","bindBuffersDirectly","updateAndBindInstancesBuffer","unbindInstanceAttributes","_releaseBuffer","createUniformBuffer","createDynamicUniformBuffer","updateUniformBuffer","bindUniformBufferBase","_location","attributesNamesOrOptions","uniformsNamesOrEngine","fallbacks","extraInitializationsAsync","vertexToken","vertexSource","vertexElement","fragmentToken","fragmentSource","fragmentElement","globalDefines","_getGlobalDefines","fullDefines","_compiledEffects","compiledEffect","_refCount","Effect","_compileRawShaderToSpirV","compileGLSL","_compileShaderToSpirV","shaderVersion","_getWGSLShader","_createPipelineStageDescriptor","vertexShader","fragmentShader","disableUniformityAnalysisInVertex","disableUniformityAnalysisInFragment","_compileRawPipelineStageDescriptor","_compilePipelineStageDescriptor","rawVertexSourceCode","rawFragmentSourceCode","webGpuContext","rawVertex","rawFragment","gpuPipelineContext","attributeLocation","enableEffect","IsWrapper","onBind","_onBindObservable","_releaseEffect","releaseEffects","webGPUPipelineContext","resetCachedPipeline","needPOTTextures","_releaseTexture","updateTextureComparisonFunction","delayGPUTextureCreation","_createTextureBase","isCompressed","processFunction","wrapWebGPUTexture","updateTextureWrappingMode","updateTextureDimensions","_setInternalTexture","availableTexture","createPrefilteredCubeTexture","loadData","sphericalPolynomial","_sphericalPolynomial","SphericalPolynomial","unused","setTextureArray","isMultiview","_cachedCoordinatesMode","coordinatesMode","textureWrapMode","_setAnisotropicLevel","babylonInternalFormat","useTextureWidthAndHeight","lodMaxWidth","LOG2E","lodMaxHeight","HTMLImageElement","bitmap","gpuTextureFormat","_measureFps","sampleFrame","_fps","averageFPS","_deltaTime","instantaneousFrameTime","beginFrame","_UpdatedUbosInFrame","extractDriverInfo","_currentFrameBufferIsDefaultFrameBuffer","renderTargetWrapper","setClearStates","gpuDepthStencilWrapper","gpuDepthStencilTexture","gpuDepthStencilMSAATexture","depthTextureView","depthMSAATextureView","depthTextureHasStencil","setDepthFunctionToGreaterOrEqual","clearColorForIntegerRT","mustClearColor","mustClearDepth","mustClearStencil","_mrtAttachments","_defaultAttachments","mrtTexture","gpuMRTWrapper","gpuMRTTexture","getBaseArrayLayer","viewDescriptor","msaaViewDescriptor","isRTInteger","colorTextureView","colorMSAATextureView","resolveTarget","depthSlice","layerIndices","swapChainTexture","getCurrentTexture","_isStencilEnable","lodLevel","layer","saveCRT","restoreDefaultFramebuffer","setDitheringState","setRasterizerState","_getUnpackAlignement","_applyRenderPassChanges","mustUpdateStencilRef","mustUpdateBlendColor","_draw","drawType","textureIsDepth","setIndexBuffer","setVertexBuffer","nonCompatMode","drawIndexedIndirect","drawIndirect","drawIndexed","hideLoadingUI","_CommonDispose","createExternalTexture","setExternalTexture","setTextureSampler","createStorageBuffer","updateStorageBuffer","_readFromGPUBuffer","noDelay","readFromBuffer","ctor","readFromStorageBuffer","readFromMultipleStorageBuffers","storageBuffers","setStorageBuffer","WebGPUComputeContext","computePipeline","bindGroupEntriesExist","_bindGroupEntries","indexInGroupEntries","webgpuBuffer","WebGPUComputePipelineContext","computePassDescriptor","computeToken","_computeDispatch","contextPipeline","computeContext","createComputePipeline","stage","computePass","beginComputePass","dispatchWorkgroupsIndirect","dispatchWorkgroups","webGPUPipelineContextCompute","rawCompute","_createComputePipelineStageDescriptor","getCompilationInfo","compilationMessages","linePos","insertDebugMarker","currentDebugStack","GetExponentOfTwo","forceBindTexture","_dynamicTextureSource","_premulAlpha","defaultAttachments","mipmapsCreationOnly","creationFlag","incrementReferences","lastTextureIsDepthTexture","FlowGraphBranchBlock","FlowGraphExecutionBlock","registerDataInput","RichTypeBoolean","onTrue","_registerSignalOutput","onFalse","_execute","_activateSignal","FlowGraphForLoopBlock","FlowGraphExecutionBlockWithOutSignal","RichTypeNumber","endIndex","registerDataOutput","onLoop","_executeLoop","_getExecutionVariable","_setExecutionVariable","out","FlowGraphThrottleBlock","_registerSignalInput","timeRemaining","callingSignal","lastExecutedTime","durationValue","currentTime","FlowGraphMultiGateBlock","_cachedUnusedIndexes","currentIndex","numberOutputFlows","outFlows","_getUnusedIndexes","_hasExecutionVariable","contextUnusedIndexes","_getNextOutput","unusedIndexes","isRandom","_deleteExecutionVariable","nextIndex","loop","FlowGraphSwitchBlock","RichTypeAny","outputFlows","cases","_callingSignal","selectionValue","FlowGraphWaitAllBlock","inFlows","_cachedActivationState","numberInputFlows","_getCurrentActivationState","activationState","contextActivationState","in","FlowGraphCounterBlock","countValue","FlowGraphDebounceBlock","currentCount","newCount","FlowGraphFlipFlopBlock","onOn","onOff","isOn","FlowGraphPlayAnimationBlock","FlowGraphAsyncExecutionBlock","templateTargetComponent","FlowGraphPathConverterComponent","targetPath","templateAnimationComponent","animationPath","runningAnimatable","_preparePendingTasks","targetAccessor","getAccessor","pathConverter","targetValue","getObject","animationAccessor","animationValue","contextAnimatables","existingAnimatable","paused","restart","animatable","_onAnimationEnd","_startPendingTasks","contextAnims","_removePendingBlock","_cancelPendingTasks","anim","ClassName","FlowGraphStopAnimationBlock","animationToStop","FlowGraphPauseAnimationBlock","animationToPause","FlowGraphConditionalDataBlock","FlowGraphBlock","trueValue","falseValue","_updateOutputs","FlowGraphCoordinateTransformBlock","sourceSystem","destinationSystem","inputCoordinates","RichTypeVector3","outputCoordinates","sourceSystemValue","destinationSystemValue","inputCoordinatesValue","sourceWorld","destinationWorld","destinationWorldInverse","sourceToDestination","outputCoordinatesValue","FlowGraphConstantBlock","getRichTypeFromValue","valueSerializeFunction","defaultValueSerializationFunction","PREFIX","AND","OR","NOT","FlowGraphLogicAndBlock","FlowGraphBinaryOperationBlock","FlowGraphLogicOrBlock","FlowGraphLogicNotBlock","FlowGraphUnaryOperationBlock","FrameGraphCopyToBackbufferColorTask","FrameGraphTask","sourceTexture","pass","_frameGraph","addRenderPass","setRenderTarget","setExecuteFunc","isBackbuffer","passDisabled","NodeRenderGraphOutputBlock","NodeRenderGraphBlock","task","_frameGraphTask","frameGraph","_isUnique","registerInput","NodeRenderGraphBlockConnectionPointTypes","addAcceptedConnectionPointTypes","TextureAll","_inputs","_buildBlock","textureConnectedPoint","connectedPoint","CopyTextureToTexture","_textureIsInternal","_shadersLoaded","_isDepthTexture","_renderer","EffectRenderer","_initShaderSourceAsync","_effectWrapper","EffectWrapper","useShaderStore","uniformNames","_conversion","conversion","engineDepthFunc","engineDepthMask","FrameGraphContext","FrameGraphRenderContext","_IsObjectRenderer","initRender","_textureManager","_debugMessageHasBeenPushed","_renderTargetIsBound","_effectRenderer","_copyTexture","_currentRenderTargetHandle","isBackbufferColor","isBackbufferDepthStencil","_applyRenderTarget","clearColorAttachments","getTextureFromHandle","_flushDebugMessages","setTextureSamplingMode","bindTextureHandle","setDepthStates","depthWrite","applyFullScreenEffect","drawWrapper","customBindings","saveStates","restoreStates","forceCopyToBackbuffer","bindRenderTarget","viewportWidth","viewportHeight","shouldRender","incrementRenderId","resetCachedMaterial","prepareRenderList","finishRender","renderTargetHandle","debugMessage","_debugMessageWhenTargetBound","_shareDepth","srcRenderTargetHandle","dstRenderTargetHandle","dstTexture","shareDepth","textureSlot","_textures","creationOptions","isHistoryTexture","historyEntry","_historyTextures","refHandle","_dispose","textureSizeIsObject","getDimensionsFromTextureSize","FrameGraphTextureNamespace","Task","Graph","External","FrameGraphTextureManager","_debugTextures","_addSystemTextures","textureEntry","getTextureCreationOptions","importTexture","_freeEntry","_createHandleForTexture","sizeIsPercentage","taskNamespace","multiTargetMode","getAbsoluteDimensions","screenWidth","screenHeight","updateHistoryTextures","refHandles","releaseTextures","allocateTextures","refEntry","namespace","parentHandle","parentInternalTexture","parentTextureIndex","_createDebugTexture","handles","createDanglingHandle","resolveDanglingHandle","danglingHandle","releaseAll","textureDebug","pongCreationOptions","pongTexture","creationOptionsForTexture","FrameGraphPassType","Render","Cull","Compute","FrameGraph","debugTextures","_tasks","_currentProcessedTask","onBuildObservable","_passContext","_renderContext","getTaskByName","addTask","whenTaskDisabled","_addPass","addCullPass","passType","FrameGraphRenderPass","FrameGraphCullPass","FrameGraphPass","_checkTask","whenReadyAsync","checkReady","passes","_getPasses","cloneOptions","getTextureDescription","getTextureHandleOrCreateTexture","newTextureName","getTexture","NodeRenderGraphInputBlock","_type","Undefined","_storedValue","onValueChangedObservable","isExternal","_isInput","registerOutput","TextureViewDepth","TextureScreenDepth","TextureViewNormal","TextureWorldNormal","TextureAlbedo","TextureReflectivity","TextureLocalPosition","TextureWorldPosition","TextureVelocity","TextureLinearVelocity","TextureIrradiance","TextureAlbedoSqrt","TextureDepthStencilAttachment","ObjectList","particleSystems","cameras","getTypedValue","getValueAsRenderTargetWrapper","getInternalTextureFromValue","_outputs","isAnyTexture","isBackBuffer","TextureBackBuffer","isBackBufferDepthStencilAttachment","TextureBackBufferDepthStencilAttachment","isCamera","isObjectList","backbufferColorTextureHandle","backbufferDepthStencilTextureHandle","TextureAllButBackBuffer","textureCreateOptions","_dumpPropertiesCode","codes","_codeVariableName","_deserialize","editableInPropertyPage","FrameGraphClearTextureTask","destinationTexture","NodeRenderGraphClearBlock","BasedOnInput","_typeConnectionSource","_propagateInputValueToOutput","FromArray","embedded","NodeRenderGraphBuildState","verbose","_notConnectedNonOptionalInputs","emitErrors","errorObservable","notConnectedInput","ownerBlock","NodeRenderGraph","_getGlobalNodeRenderGraphEditor","NODERENDERGRAPHEDITOR","NodeRenderGraphEditor","_buildId","_BuildIdGenerator","BJSNODERENDERGRAPHEDITOR","editorData","attachedBlocks","onBuildErrorObservable","outputBlock","autoConfigure","rebuildGraphOnEngineResize","autoFillExternalInputs","getBlockByName","getBlockByPredicate","predicate","getBlocksByPredicate","getInputBlocks","isInput","edit","editorURL","EditorURL","_createNodeEditor","nodeRenderGraphEditorConfig","additionalConfig","nodeEditorConfig","nodeRenderGraph","_initializeBlock","buildId","_autoFillExternalInputs","allInputs","cameraIndex","isAnAncestorOfType","cameraToUseForPointers","initialize","removeBlock","attachedBlockIndex","parseSerializedObject","parsedBlock","blockType","GetClass","customType","additionalConstructionParameters","isTeleportOut","_tempEntryPointUniqueId","attachToEndpoint","blockIndex","targetConnectionName","_restoreConnections","outputNodeId","blockId","blockMap","outputPoint","candidate","targetBlockId","inputPoint","getInputByName","inputName","isConnected","connectTo","generateCode","alreadyDumped","uniqueNames","_gatherBlocks","codeString","_dumpCode","_dumpCodeForOutputConnections","setToDefault","selectedBlocks","CreateDefault","nodeRenderGraphOptions","renderGraph","skipBuild","ParseFromSnippetAsync","snippetId","WebRequest","snippet","jsonPayload","SnippetUrl","NodeRenderGraphElbowBlock","AutoDetect","ThinBlackAndWhitePostProcess","LastCreatedEngine","useAsPostProcess","FragmentUrl","Uniforms","degree","_drawWrapper","FrameGraphPostProcessTask","postProcess","sourceSamplingMode","_postProcessDrawWrapper","skipCreationOfDisabledPasses","additionalExecute","additionalBindings","sourceTextureCreationOptions","outputTextureDescription","_outputWidth","_outputHeight","useTexture","FrameGraphBlackAndWhiteTask","thinPostProcess","NodeRenderGraphBlackAndWhitePostProcessBlock","sourceConnectedPoint","destinationConnectedPoint","FrameGraphBloomMergeTask","ThinBloomMergePostProcess","blurTexture","FrameGraphExtractHighlightsTask","ThinExtractHighlightsPostProcess","FrameGraphBlurTask","ThinBlurPostProcess","textureWidth","textureHeight","FrameGraphBloomTask","weight","kernel","threshold","hdr","bloomScale","_defaultPipelineTextureType","bloom","ThinBloomEffect","_downscale","_blurX","_blurY","_merge","sourceTextureDescription","textureCreationOptions","downscaleTextureHandle","blurXTextureHandle","blurYTextureHandle","NodeRenderGraphBloomPostProcessBlock","_additionalConstructionParameters","_createTask","NodeRenderGraphBlurPostProcessBlock","fromArray","FrameGraphCircleOfConfusionTask","ThinCircleOfConfusionPostProcess","depthSamplingMode","NodeRenderGraphCircleOfConfusionPostProcessBlock","depthNotNormalized","lensSize","fStop","focusDistance","focalLength","geomViewDepth","geomViewDepthConnectedPoint","cameraConnectedPoint","FrameGraphDepthOfFieldMergeTask","ThinDepthOfFieldMergePostProcess","blurSteps","circleOfConfusionTexture","updateEffect","ThinDepthOfFieldBlurPostProcess","FrameGraphDepthOfFieldBlurTask","circleOfConfusionSamplingMode","FrameGraphDepthOfFieldTask","blurLevel","depthOfField","ThinDepthOfFieldEffect","_circleOfConfusion","blurCount","_depthOfFieldBlurX","_depthOfFieldBlurY","_dofMerge","circleOfConfusionTextureHandle","ratio","NodeRenderGraphDepthOfFieldPostProcessBlock","NodeRenderGraphExtractHighlightsPostProcessBlock","FrameGraphCullObjectsTask","outputObjectList","objectList","setObjectList","_updateFrustumPlanes","_frustumPlanes","hasAZeroComponent","layerMask","skipFrustumClipping","alwaysSelectAsActiveMesh","isInFrustum","NodeRenderGraphCullObjectsBlock","objects","objectsConnectedPoint","clearColors","FrameGraphGeometryRendererTask","objectRenderer","textureDescriptions","ObjectRenderer","renderSprites","renderParticles","onBeforeRenderingManagerRenderObservable","doNotChangeAspectRatio","_clearAttachmentsLayout","_allAttachmentsLayout","outputDepthTexture","geometryViewDepthTexture","geometryScreenDepthTexture","geometryViewNormalTexture","geometryWorldNormalTexture","geometryLocalPositionTexture","geometryWorldPositionTexture","geometryAlbedoTexture","geometryReflectivityTexture","geometryVelocityTexture","geometryLinearVelocityTexture","excludedSkinnedMeshFromVelocityTexture","MaterialHelperGeometryRendering","GetConfiguration","renderPassId","excludedSkinnedMesh","isReadyForRendering","_textureWidth","_textureHeight","outputTextureHandle","_createMultiRenderTargetTexture","depthEnabled","_checkDepthTextureCompatibility","_buildClearAttachmentsLayout","_registerForRenderPassId","MarkAsDirty","GeometryTextureDescriptions","setRenderTargetDepth","particleSystemList","clearType","DeleteConfiguration","textureFormat","clearAttachmentsLayout","allAttachmentsLayout","geometryDescription","CreateConfiguration","defineIndex","NodeRenderGraphGeometryRendererBlock","viewDepthFormat","viewDepthType","screenDepthFormat","screenDepthType","viewNormalFormat","viewNormalType","worldNormalFormat","worldNormalType","localPositionFormat","localPositionType","worldPositionFormat","worldPositionType","albedoFormat","albedoType","reflectivityFormat","reflectivityType","velocityFormat","velocityType","linearVelocityFormat","linearVelocityType","outputDepth","sizeInPercentage","geomScreenDepth","geomViewNormal","geomWorldNormal","geomLocalPosition","geomWorldPosition","geomAlbedo","geomReflectivity","geomVelocity","geomLinearVelocity","textureActivation","depthConnectedPoint","textureFormats","textureTypes","bufferTypes","FrameGraphObjectRendererTask","NodeRenderGraphBaseObjectRendererBlock","TextureAllButBackBufferDepthStencil","dependenciesConnectedPoint","NodeRenderGraphObjectRendererBlock","Halton2DSequence","numSamples","baseX","baseY","_curIndex","_sequence","_numSamples","_width","_height","_baseX","_baseY","_generateSequence","regenerate","setDimensions","_halton","fraction","ThinTAAPostProcess","_hs","_disabled","Samplers","disableOnCameraMove","_firstUpdate","updateProjectionMatrix","hasMoved","PERSPECTIVE_CAMERA","projMat","setRowFromFloats","FrameGraphTAAObjectRendererTask","pingPongHandle","setTransformMatrix","NodeRenderGraphTAAObjectRendererBlock","disableTAA","NodeRenderGraphTeleportInBlock","endpoints","_endpoints","_isTeleportIn","endpoint","isAnAncestorOf","getDescendantOfPredicate","descendant","detachFromEndpoint","NodeRenderGraphTeleportOutBlock","_isTeleportOut","_customBuildStep","FrameGraphCopyToTextureTask","NodeRenderGraphCopyTextureBlock","FrameGraphGenerateMipMapsTask","NodeRenderGraphGenerateMipmapsBlock","CreateHemisphere","segments","diameter","halfSphere","CreateSphere","disc","CreateDisc","tessellation","merged","MergeMeshes","TextureDome","TransformNode","_useDirectMapping","CLAMP_ADDRESSMODE","_material","FIXED_EQUIRECTANGULAR_MIRRORED_MODE","reflectionTexture","_changeTextureMode","_textureMode","_mesh","fovMultiplier","textureMode","halfDome","_halfDome","_halfDomeMask","crossEye","_crossEye","textureUrlOrElement","MODE_MONOSCOPIC","_onBeforeCameraRenderObserver","onLoadErrorObservable","onLoadObservable","clickToPlay","autoPlay","maxZ","useDirectMapping","faceForward","_setReady","updatable","sideOrientation","BACKSIDE","BackgroundMaterial","useEquirectangularFOV","opacityFresnel","_initTexture","halfDomeMode","crossEyeMode","forward","onBeforeCameraRenderObservable","uScale","vScale","uOffset","vOffset","vAng","MODE_SIDEBYSIDE","rightOffset","leftOffset","isRightCamera","MODE_TOPBOTTOM","doNotRecurse","disposeMaterialAndTextures","PhotoDome","photoTexture","imageMode","urlsOrElement","removeSource","firstChild","srcObject","VideoTexture","onUserActionRequestedObservable","_onUserActionRequestedObservable","_processError","_errorFound","_onError","_handlePlay","hasObservers","muted","otherReason","_externalTexture","_stillImageCaptured","_displayingPosterTexture","_frameId","_currentSrc","isVideo","_resizeInternalTexture","_getEngine","IsExponentOfTwo","WRAP_ADDRESSMODE","_updateInternalTexture","autoplay","_settings","poster","independentVideoSource","onplaying","oldMuted","getFrameId","_invertY","autoUpdateTexture","_initialSamplingMode","_getName","_getVideo","engineWebGPU","_createInternalTextureOnEvent","videoHasEnoughData","HTMLVideoElement","currentSrc","isNative","SetCorsBehavior","updateURL","CreateFromStreamAsync","_badOS","opacity","onPlaying","videoTexture","CreateFromWebCamAsync","audioConstaints","mediaDevices","getUserMedia","audio","getTracks","track","CreateFromWebCam","_CreateVideoTexture","VideoDome","videoMode","_pointerObserver","onPointerObservable","pickInfo","_textureObserver","getHighlightLayerByName","effectLayers","getEffectName","HighlightLayer","EffectName","GlowBlurPostProcess","EffectLayer","blurHorizontalSize","_horizontalBlurPostprocess","blurVerticalSize","_verticalBlurPostprocess","forceGLSL","innerGlow","outerGlow","onBeforeBlurObservable","onAfterBlurObservable","_instanceGlowingMeshStencilReference","GlowingMeshStencilReference","_meshes","_excludedMeshes","neutralColor","NeutralColor","mainTextureRatio","blurTextureSizeRatio","alphaBlendingMode","mainTextureType","_init","mainTextureFixedSize","_shouldRender","_importShadersAsync","_superprop_get_importShadersAsync","_numInternalDraws","_createMergeEffect","isStroke","_createTextureAndPostProcesses","blurTextureWidth","_mainTextureDesiredSize","blurTextureHeight","_maxSize","_blurTexture","updateSamplingMode","_downSamplePostprocess","externalTextureSamplerBinding","_postProcesses","BlurPostProcess","horizontalBlurPostprocess","pp","needStencil","getMaterial","getRenderingMesh","emissiveTexture","highlightLayerMesh","glowEmissiveOnly","_internalRender","renderIndex","cacheStencilState","TriangleFillMode","restoreStencilState","_shouldRenderMesh","hasMesh","_canRenderMesh","_addCustomEffectDefines","_setEmissiveTextureAndColor","_emissiveTextureAndColor","addExcludedMesh","beforeBind","afterRender","stencilState","onBeforeBindObservable","removeExcludedMesh","meshExcluded","meshHighlight","observerHighlight","_defaultStencilReference","observerDefault","_disposeMesh","meshHighlightToCheck","removeAllMeshes","NormalMeshStencilReference","meshId","excludedMeshes","parsedHightlightLayer","hl","getMeshById","highlightedMesh","LensFlare","AddFlare","imgUrl","system","_system","_onShadersLoaded","DrawWrapper","lensFlares","LensFlareSystem","emitter","borderLimit","viewportBorder","_SceneComponentInitialization","_emitter","lensFlareSystems","meshesSelectionPredicate","isBlocker","_createIndexBuffer","ForceGLSL","getEmitter","setEmitter","newEmitter","getEmitterPosition","computeEffectivePosition","globalViewport","_positionX","_positionY","rhs","_isVisible","pickWithRay","awayX","awayY","away","intensity","Clamp","centerX","centerY","distX","distY","flare","cw","ch","getAspectRatio","viewportMatrix","FromValues","parsedLensFlareSystem","getLastEntryById","emitterId","lensFlareSystem","flares","parsedFlare","GetFilename","_WarnImport","AddParser","NAME_LENSFLARESYSTEM","parsedData","lf","getLensFlareSystemByName","getLensFlareSystemById","getLensFlareSystemByID","removeLensFlareSystem","toRemove","addLensFlareSystem","newLensFlareSystem","LensFlareSystemSceneComponent","_afterCameraDrawStage","registerStep","STEP_AFTERCAMERADRAW_LENSFLARESYSTEM","addFromContainer","removeFromContainer","lensFlaresEnabled","StartPerformanceCounter","EndPerformanceCounter","DefaultLoadingScreen","_loadingText","_loadingDivBackgroundColor","_resizeLoadingUI","canvasRect","canvasPositioning","getComputedStyle","_loadingDiv","displayLoadingUI","transition","pointerEvents","display","gridTemplateRows","gridTemplateColumns","justifyItems","alignItems","_loadingTextDiv","marginTop","textAlign","_style","getElementsByTagName","svgSupport","SVGSVGElement","imgBack","DefaultLogoUrl","gridColumn","gridRow","imageSpinnerContainer","imgSpinner","DefaultSpinnerUrl","transformOrigin","logoSize","loadingSize","onTransitionEnd","loadingUIText","loadingUIBackgroundColor","DefaultLoadingScreenFactory","PBRSpecularGlossinessMaterial","PBRBaseSimpleMaterial","useMicroSurfaceFromReflectivityMapAlpha","_useMicroSurfaceFromReflectivityMapAlpha","clearCoat","brdf","sheen","iridescence","serializeAsColor3","ColorGradingTexture","BaseTexture","sceneOrEngine","_textureMatrix","_onLoad","_getFromCache","_triggerOnLoad","useDelayedTextureLoading","_loadTexture","getTextureMatrix","_load3dlTexture","tempData","pixelIndexW","pixelIndexH","pixelIndexSlice","maxColor","_NoneEmptyLineRegex","words","pixelStorageIndex","updateSize","parsedTexture","isRenderTarget","MultiRenderTarget","drawOnlyOnFirstAttachmentByDefault","_textureNames","_initTypes","_multiRenderTargetOptions","_drawOnlyOnFirstAttachmentByDefault","_createInternalTextures","_createTextures","defaultType","_createInternaTextureIndexMapping","mapMainInternalTexture2Index","mapInternalTexture2MainIndex","_renderTarget","internalTextures","mainIndex","fromContextLost","forceFullRebuild","releaseInternalTextures","_releaseTextures","_noMipmap","setSamples","setInternalTexture","disposePrevious","setLayerAndFaceIndex","faceIndices","_processSizeParameter","updateCount","_unbindFrameBuffer","doNotDisposeInternalTextures","NoiseProceduralTexture","ProceduralTexture","fallbackTexture","brightness","octaves","persistence","animationSpeedFactor","_updateShaderUniforms","getAnimationRatio","_getDefines","useCameraPostProcess","_fallbackTexture","NodeMaterialConnectionPointCustomObject","NodeMaterialConnectionPoint","_blockType","_blockName","needDualDirectionValidation","checkCompatibilityState","connectionPoint","createCustomInputBlock","GaussianSplattingBlock","NodeMaterialBlock","NodeMaterialBlockTargets","NodeMaterialBlockConnectionPointTypes","splatPosition","splatScale","world","projection","splatVertex","_excludeVariableName","Fragment","comments","_emitFunctionFromInclude","_emitUniformFromString","sharedData","nodeMaterial","splatScaleParameter","fSuffix","associatedVariableName","compilationString","_declareOutput","GaussianBlock","splatColor","rgba","_emitVaryingFromString","SplatReaderBlock","Float","splatIndex","GaussianSplattingMaterial","BindEffect","bindableBlocks","_emit2DSampler","splatVariablename","_getFreeVariableName","BonesBlock","_codeIsReady","onCodeIsReadyObservable","matricesIndices","matricesWeights","matricesIndicesExtra","matricesWeightsExtra","additionalFilteringInfo","matricesIndicesInput","getInputBlockByPredicate","isAttribute","InputBlock","setAsAttribute","matricesWeightsInput","worldInput","systemValue","NodeMaterialSystemValues","World","setAsSystemValue","provideFallbacks","useBones","computeBonesUsingShaders","addCPUSkinningFallback","BindBonesParameters","_areAttributesDirty","PrepareDefinesForBones","blocksWithFallbacks","forcedBindableBlocks","blocksWithDefines","removeAttributes","removeUniforms","removeVaryings","removeIfDef","influenceVariablename","_emitCodeFromInclude","replaceStrings","InstancesBlock","world0","world1","world2","world3","instanceID","world0Input","world1Input","world2Input","world3Input","INSTANCES","THIN_INSTANCES","hasThinInstances","markAsUnprocessed","floatCast","MorphTargetsBlock","tangent","addExcludedConnectionPointFromAllowedTypes","uv","positionOutput","normalOutput","tangentOutput","uvOutput","positionInput","normalInput","tangentInput","uvInput","morphTargetManager","isUsingTextureForTargets","numMaxInfluencers","numInfluencers","NUM_MORPH_INFLUENCERS","markAsAttributesDirty","PrepareDefinesForMorphTargets","BindMorphTargetParameters","_bind","replaceRepeatableContent","vertexShaderState","fragmentShaderState","repeatCount","manager","hasNormals","supportsNormals","NORMAL","hasTangents","supportsTangents","TANGENT","hasUVs","supportsUVs","UV1","injectionCode","_declareLocalVar","uniformsPrefix","_repeatableContentAnchor","repeatableContentBlocks","repeatKey","LightInformationBlock","worldPosition","shadowBias","shadowNormalBias","shadowDepthScale","shadowDepthRange","light","_forcePrepareDefines","_lightDataUniformName","_lightColorUniformName","transferToNodeMaterialEffect","diffuse","generator","hasEndpoints","_lightShadowUniformName","bias","normalBias","depthScale","shadowLight","_lightShadowExtraUniformName","getDepthMinZ","getDepthMaxZ","_areLightsDirty","_lightTypeDefineName","PointLight","_getFreeDefineName","uniformAdd","lightId","getLightById","ImageProcessingBlock","convertInputToLinearSpace","rgb","_areImageProcessingDirty","imageProcessingConfiguration","blockingBlocks","overrideText","TBNBlock","TBN","row0","row1","row2","isSystemValue","normalAvailable","connectInputBlock","isVerticesDataPresent","tangentAvailable","PerturbNormalBlock","_tangentSpaceParameterName","_tangentCorrectionFactorName","_worldMatrixName","invertX","useParallaxOcclusion","useObjectSpaceNormalMap","VertexAndFragment","worldNormal","worldTangent","normalMapColor","strength","viewDirection","parallaxScale","parallaxHeight","uvOffset","useParallax","_ownerBlock","_mirroredCameraPosition","strengthInput","uniformPrefix","normalSamplerName","replaceForParallaxInfos","isConnectedToInputBlock","isConstant","_emitFloat","replaceForBumpInfos","_emitExtension","tangentReplaceString","uvForPerturbNormal","tempOutput","notifiers","DiscardBlock","cutoff","hints","needAlphaTesting","FrontFacingBlock","_generateTernary","DerivativeBlock","dx","dy","dpdx","dpdy","FragCoordBlock","xy","xyz","xyzw","writeOutputs","coord","ScreenSizeBlock","_varName","varName","ScreenSpaceBlock","worldViewProjection","worldViewProjectionInput","WorldViewProjection","worldViewProjectionName","tempVariableName","TwirlBlock","center","centerInput","offsetInput","tempDelta","tempAngle","tempX","tempY","tempResult","HeightToNormalBlock","generateInWorldSpace","automaticNormalizationNormal","automaticNormalizationTangent","fPrefix","heightToNormal","_babylonSLtoWGSL","_emitFunction","FragDepthBlock","worldPos","viewProjection","fragDepth","ShadowMapBlock","PrePassOutputBlock","viewDepth","screenDepth","localPosition","viewNormal","reflectivity","_getFragData","_getShaderType","FogBlock","fogColor","viewInput","View","fogColorInput","FogColor","fogEnabled","GetFogState","_fogParameters","fogMode","fogStart","fogEnd","fogDensity","prefix1","prefix2","tempFogVariablename","_fogDistanceName","LightBlock","_OnGenerateOnlyFragmentCodeChanged","_propertyName","that","generateOnlyFragmentCode","_setTarget","_setInitialTarget","_lightId","cameraPosition","glossiness","glossPower","diffuseOutput","specularOutput","shadow","cameraPositionInput","CameraPosition","needNormals","needRebuild","lightmapMode","shadowEnabled","specularEnabled","PrepareDefinesForLight","PrepareDefinesForLights","maxSimultaneousLights","updateUniformsAndSamples","uniformBuffers","lightIndex","onlyUpdateBuffersList","PrepareUniformsAndSamplersForLight","BindLight","BindLights","_injectVertexCode","counters","lightCounter","supportUniformBuffers","dynamicUniformBlocks","worldPosVaryingName","_injectUBODeclaration","substitutionVars","isWGSL","addF","accessor","worldPosVariableName","replaceString","_registerTempVariable","onValidation","ImageSourceBlock","markAllMaterialsAsDirty","mat","hasTexture","_samplerName","isReadyOrNotBlocking","dimensions","textureBlocks","affect","uAng","wAng","urlRewriter","NodeMaterial","IgnoreTexturesAtLoadTime","TextureBlock","_IsPrePassTextureBlock","_isSourcePrePass","_imageSource","getSamplerName","hasImageSource","convertToGammaSpace","_convertToGammaSpace","convertToLinearSpace","_convertToLinearSpace","fragmentOnly","disableLevelMultiplication","_fragmentOnly","Neutral","_prioritizeVertex","_isTiedToFragment","parentBlock","sourceBlock","NodeMaterialModes","attributeName","Particle","initializeDefines","_areTexturesDirty","_mainUVDefineName","_isMixed","_defineName","toLinear","gammaSpace","_linearDefineName","_gammaDefineName","isIdentityAs3x2","_textureInfoName","_textureTransformName","declarationVariableName","_mainUVName","_transformedUVName","_getVaryingName","automaticPrefix","isConnectedInVertexShader","_writeTextureRead","_writeOutput","_getUVW","uvName","coords","_samplerFunc","_samplerLodSuffix","_generateTextureSample","_generateTextureLookup","_tempTextureRead","vertexMode","_generateConversionCode","swizzle","_toLinearSpace","complement","_emit2DArraySampler","isConnectedInFragmentShader","ReflectionTextureBaseBlock","_onGenerateOnlyFragmentCodeChanged","_getTexture","_define3DName","_defineLocalCubicName","boundingBoxSize","_defineExplicitName","_defineSkyboxName","_defineCubicName","_defineSphericalName","_definePlanarName","_defineProjectionName","_defineEquirectangularName","_defineEquirectangularFixedName","_defineMirroredEquirectangularFixedName","_subMesh","_reflectionMatrixName","getReflectionTextureMatrix","_cubeSamplerName","_2DSamplerName","cubeTexture","_reflectionPositionName","boundingBoxPosition","_reflectionSizeName","handleVertexSide","_defineOppositeZ","_worldPositionNameInFragmentOnlyMode","_positionUVWName","_directionWName","handleFragmentSideInits","_samplerDeclaration","_emitCubeSampler","_reflectionColorName","_reflectionVectorName","_reflectionCoordsName","handleFragmentSideCodeReflectionCoords","worldNormalVarName","onlyReflectionVector","doNotEmitInvertZ","reflectionMatrix","positionUVW","vEyePosition","handleFragmentSideCodeReflectionColor","lodVarName","swizzleLookupTexture","colorType","_generateTextureSampleCubeLOD","_generateTextureSampleCube","_generateTextureSampleLOD","_prefiltered","CubeTexture","ReflectionTextureBlock","normalWUnit","SceneDepthBlock","useNonLinearDepth","storeCameraSpaceZ","force32itsFloat","enableDepthRenderer","getDepthMap","textureReadFunc","activatePreviewCommand","retVal","disableDepthRenderer","ClipPlanesBlock","useClipPlane2","clipPlane2","useClipPlane3","clipPlane3","useClipPlane4","clipPlane4","useClipPlane5","clipPlane5","useClipPlane6","clipPlane6","bindClipPlane","PrePassTextureBlock","_positionSamplerName","_localPositionSamplerName","_depthSamplerName","_screenSpaceDepthSamplerName","_normalSamplerName","_worldNormalSamplerName","positionSamplerName","localPositionSamplerName","worldNormalSamplerName","depthSamplerName","linearDepthSamplerName","variableNames","prepassPositionSampler","prepassDepthSampler","prepassNormalSampler","prepassWorldNormalSampler","prepassLocalPositionSampler","prepassScreenSpaceDepthSampler","prePassRenderer","enablePrePassRenderer","sceneRT","defaultRT","getIndex","NodeMaterialTeleportInBlock","NodeMaterialTeleportOutBlock","activeBlocks","AddBlock","BaseMathBlock","ScaleBlock","ClampBlock","cast","_writeFloat","CrossBlock","_linkConnectionTypes","excludedConnectionPointTypes","CustomBlock","_deserializeOptions","_code","functionName","rexp","_getGLType","hasInput","_inputSamplers","inParameters","outParameters","_findInputByName","typeFromInput","inLinkedConnectionTypes","connection","input1","input2","DotBlock","NormalizeBlock","ColorMergerBlock","rSwizzle","gSwizzle","bSwizzle","aSwizzle","rgbIn","rgbOut","_inputRename","_buildSwizzle","rInput","gInput","bInput","aInput","rgbInput","color4Output","color3Output","_writeVariable","VectorSplitterBlock","inputsAreExclusive","xyzIn","xyIn","xyzOut","xyOut","zw","_outputRename","xyzOutput","xyOutput","zwOutput","xOutput","yOutput","zOutput","wOutput","LerpBlock","acceptedConnectionPointTypes","gradient","DivideBlock","SubtractBlock","StepBlock","edge","OneMinusBlock","ViewDirectionBlock","FresnelBlock","power","fresnel","viewDirectionInput","biasInput","powerInput","MaxBlock","MinBlock","DistanceBlock","LengthBlock","NegateBlock","PowBlock","RandomNumberBlock","seed","ArcTan2Block","SmoothStepBlock","edge0","edge1","ReciprocalBlock","ReplaceColorBlock","replacement","PosterizeBlock","steps","WaveBlock","GradientBlockColorStep","_step","_color","GradientBlock","colorStepsUpdated","colorSteps","_writeColorConstant","tempColor","tempPosition","gradientSource","previousStep","colorStep","NLerpBlock","WorleyNoise3DBlock","manhattanDistance","jitter","functionString","_babylonSLtoGLSL","tempVariable","SimplexPerlin3DBlock","NormalBlendBlock","normalMap0","normalMap1","input0","stepR","stepG","Rotate2dBlock","angle","angleInput","ReflectBlock","incident","RefractBlock","ior","DesaturateBlock","colorName","tempMin","tempMax","tempMerge","SheenBlock","albedoScaling","linkSheenWithAlbedo","getCode","reflectionBlock","_vReflectionMicrosurfaceInfosName","_vReflectionInfosName","reflectionColor","AnisotropyBlock","_generateTBNSpace","worldPositionConnectionPoint","worldNormalConnectionPoint","generateTBNSpace","ReflectionBlock","forceIrradianceInFragment","useSphericalHarmonics","cameraPositionConnectionPoint","viewConnectionPoint","reflection","environmentTexture","_defineLODReflectionAlpha","lodLevelInAlpha","_defineLinearSpecularReflection","linearSpecularLOD","invertZ","isRGBD","SKYBOX_MODE","lodGenerationOffset","_vReflectionFilteringInfoName","log2","materialDefines","polynomials","USESPHERICALFROMREFLECTIONMAP","SPHERICAL_HARMONICS","preScaledHarmonics","l00","l1_1","l10","l11","l2_2","l2_1","l20","l21","l22","xx","zz","yy","yz","zx","reflectionVectorName","_vEnvironmentIrradianceName","normalVarName","computeReflectionCoordsFunc","ClearCoatBlock","remapF0OnInterfaceChange","tintColor","tintAtDistance","tintThickness","clearcoat","intensityInput","PBRClearCoatConfiguration","_DefaultIndexOfRefraction","f0","mainPBRBlock","perturbedNormalBlock","perturbedNormal","worldPositionVarName","GetCode","ccBlock","worldPosVarName","vTBNAvailable","tintTexture","normalShading","IridescenceBlock","thickness","indexOfRefractionInput","thicknessInput","iridescenceBlock","PBRIridescenceConfiguration","_DefaultMaximumThickness","RefractionBlock","linkRefractionWithTransparency","invertRefractionY","useThicknessAsDepth","volumeIndexOfRefraction","refraction","_defineLODRefractionAlpha","_defineLinearSpecularRefraction","_refractionMatrixName","getRefractionTextureMatrix","indexOfRefractionConnectionPoint","_vRefractionInfosName","_vRefractionMicrosurfaceInfosName","_vRefractionFilteringInfoName","SubSurfaceBlock","translucencyIntensity","translucencyDiffusionDist","dispersion","subsurface","translucencyEnabled","ssBlock","translucencyDiffusionDistance","refractionBlock","refractionTintAtDistance","refractionView","mapOutputToVariable","ambientClr","diffuseDir","specularDir","clearcoatDir","sheenDir","diffuseInd","specularInd","clearcoatInd","sheenInd","lighting","PBRMetallicRoughnessBlock","_environmentBRDFTexture","_metallicReflectanceColor","_metallicF0Factor","directIntensity","environmentIntensity","specularIntensity","lightFalloff","useAlphaTest","alphaTestCutoff","useAlphaBlending","useRadianceOverAlpha","useSpecularOverAlpha","enableSpecularAntiAliasing","realTimeFiltering","realTimeFilteringQuality","useEnergyConservation","useRadianceOcclusion","useHorizonOcclusion","unlit","forceNormalForward","debugMode","debugLimit","debugFactor","baseColor","ambientOcc","ambientColor","PBRBaseMaterial","LIGHTFALLOFF_STANDARD","LIGHTFALLOFF_GLTF","alphaTestCutOffString","MaterialFlags","ReflectionTextureEnabled","_needNormals","PrepareDefinesForMultiview","_environmentBrdfSamplerName","ambientScene","_invertNormalName","TmpColors","_vMetallicReflectanceFactorsName","worldNormalVaryingName","_injectAtEnd","_getAlbedoOpacityCode","_getAmbientOcclusionCode","_getReflectivityCode","GetEnvironmentBRDFTexture","needAlphaBlending","_vNormalWName","anisotropyBlock","sheenBlock","clearcoatBlock","subsurfaceBlock","aoColor","aoDirectLightIntensity","DEFAULT_AO_ON_ANALYTICAL_LIGHTS","colorOutput","remap","conditions","LIGHTFALLOFF_PHYSICAL","ModBlock","MatrixBuilderBlock","row3","row0Input","row1Input","row2Input","row3Input","ConditionalBlockConditions","Equal","NotEqual","LessThan","GreaterThan","LessOrEqual","GreaterOrEqual","Xor","And","ConditionalBlock","_defaultConnectionPointType","true","false","trueStatement","falseStatement","CloudBlock","chaos","offsetZ","fractalBrownianString","fbmNewName","localVariable","seedType","chaosValue","VoronoiNoiseBlock","density","cells","tempCells","ElbowBlock","TriPlanarBlock","textureY","sourceY","textureZ","sourceZ","_getImageSourceBlock","imageSourceBlock","samplerYName","samplerZName","hideSourceZ","projectAsCube","sharpness","uvx","uvy","uvz","vecSpecifier","BiPlanarBlock","_declareLocalVarAsVec3I","_getTextureGrad","ma","mi","dpdxFunc","dpdyFunc","MatrixDeterminantBlock","MatrixTransposeBlock","MeshAttributeExistsBlock","onConnectionObservable","other","attributeDefine","CurveBlockTypes","EaseInSine","EaseOutSine","EaseInOutSine","EaseInQuad","EaseOutQuad","EaseInOutQuad","EaseInCubic","EaseOutCubic","EaseInOutCubic","EaseInQuart","EaseOutQuart","EaseInOutQuart","EaseInQuint","EaseOutQuint","EaseInOutQuint","EaseInExpo","EaseOutExpo","EaseInOutExpo","EaseInCirc","EaseOutCirc","EaseInOutCirc","EaseInBack","EaseOutBack","EaseInOutBack","EaseInElastic","EaseOutElastic","EaseInOutElastic","CurveBlock","Int","_duplicateEntry","_duplicateEntryDirect","_duplicateVector","inputType","registeredFunction","registeredFunctionName","curveType","ColorConverterBlock","hslIn","hslOut","hslInput","rbgOutput","hslOutput","rgb2hsl","hue2rgb","hsl2rgb","LoopBlock","iterations","_forPostBuild","_redirectedSource","_preventBubbleUp","iterationsInput","loopID","indexName","castFloat","castInt","_postBuildBlock","StorageReadBlock","_linkedConnectionSource","loopBlock","StorageWriteBlock","IncludesShadersStoreWGSL","DecalMapDefines","MaterialDefines","DECAL","DECALDIRECTUV","DECAL_SMOOTHALPHA","GAMMADECAL","DecalMapConfiguration","MaterialPluginBase","_markAllSubMeshesAsTexturesDirty","_enable","_internalMarkAllSubMeshesAsTexturesDirty","isCompatible","addToPluginList","_smoothAlpha","smoothAlpha","registerForExtraEvents","_dirtyCallbacks","isReadyForSubMesh","decalMap","getMesh","DecalMapEnabled","texturesEnabled","prepareDefinesBeforeAttributes","markAsTexturesDirty","PrepareDefinesForMergedUV","hardBindForSubMesh","useUbo","isSync","coordinatesIndex","BindTextureMatrix","GreasedLineMaterialDefaults","DEFAULT_COLOR","DEFAULT_WIDTH_ATTENUATED","DEFAULT_WIDTH","GreasedLineTools","ConvertPoints","points","vectorPoints","flatMap","floatArrayStride","linePoints","OmitZeroLengthPredicate","fileredPoints","OmitDuplicatesPredicate","_SearchInPoints","ps","MeshesToLines","meshIndex","getIndices","vi1","vi2","vi3","pointsFromPredicate","ToVector3Array","inputArray","subInputArray","subArray","ToNumberArray","GetPointsCountInfo","GetLineLength","tmp","GetLineLengthArray","pointsLength","SegmentizeSegmentByCount","point1","point2","segmentCount","dividedLinePoints","diff","divisor","setAll","segmentVector","nextPoint","SegmentizeLineBySegmentLength","what","segmentLength","GetLineSegments","seg","SegmentizeLineBySegmentCount","GetMinMaxSegmentLength","sorted","GetPositionOnLineByVisibility","lineSegments","lineLength","visbility","localSpace","lengthVisibilityRatio","sumSegmentLengths","segmentIndex","lineSegmentsLength","GetCircleLinePoints","radiusX","radiusY","segmentAngle","GetBezierLinePoints","p0","Curve3","CreateQuadraticBezier","getPoints","GetArrowCap","widthUp","widthDown","widthStartUp","widthStartDown","widths","GetPointsFromText","fontData","includeInner","allPoints","shapePaths","CreateTextShapePaths","sp","points2d","p2d","Color3toRGBAUint8","colors","colorTable","CreateColorsTexture","colorsSampling","fill","colorsArray","colorsTexture","RawTexture","PrepareEmptyColorsTexture","EmptyColorsTexture","NEAREST_NEAREST","DisposeEmptyColorsTexture","BooleanToNumber","MaterialGreasedLineDefines","GREASED_LINE_HAS_COLOR","GREASED_LINE_SIZE_ATTENUATION","GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE","GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM","GREASED_LINE_CAMERA_FACING","GreasedLinePluginMaterial","useColors","sizeAttenuation","colorDistributionType","cameraFacing","GREASED_LINE_MATERIAL_NAME","_cameraFacing","useDash","dashRatio","dashOffset","_sizeAttenuation","colorMode","_colorsDistributionType","_colors","dashCount","getActiveTextures","activeTextures","resolutionLineWidth","_aspect","_resolution","updateVector4","dashOptions","_dashArray","colorModeVisibilityColorsWidthUseColors","updateColor3","CUSTOM_VERTEX_DEFINITIONS","CUSTOM_VERTEX_UPDATE_POSITION","CUSTOM_FRAGMENT_DEFINITIONS","CUSTOM_FRAGMENT_MAIN_END","setColors","lazy","forceNewTexture","origColorsCount","colorArray","updateLazy","_dashCount","markAllDefinesAsDirty","setColor","doNotMarkDirty","colorsDistributionType","greasedLineMaterialOptions","plugin","GreasedLineSimpleMaterial","ShaderMaterial","_colorsTexture","_setColorModeAndColorDistributionType","_colorMode","_useColors","_colorsSampling","_visibility","_useDash","_dashOffset","_dashRatio","_rootUrl","setDefine","defaultMaterialColors","MeshDebugDefines","DBG_MODE","DBG_MULTIPLY","DBG_ENABLED","MeshDebugPluginMaterial","_markAllDefinesAsDirty","_multiply","shadedDiffuseColor","shadedSpecularColor","shadedSpecularPower","wireframeThickness","wireframeTrianglesColor","wireframeVerticesColor","vertexColor","vertexRadius","uvScale","uvPrimaryColor","uvSecondaryColor","_materialColor","MaterialColors","_PluginCount","Reset","PrepareMeshForTrianglesAndVerticesMode","returnRollback","rollback","getTotalIndices","kinds","getVerticesDataKinds","setIndices","getVertexBuffer","getStrideSize","setVerticesData","removeVerticesData","newIndices1","convertToUnIndexedMesh","isUnIndexed","newIndices2","num","getTotalVertices","mid","StandardMaterial","_decalMap","_uniformBufferLayoutBuilt","Vector2ToFixed","decimalCount","Vector3ToFixed","Vector4ToFixed","currentCSGMeshId","vertColor","flip","interpolate","Lerp","CSGPlane","FromPoints","v0","v1","Normalize","splitPolygon","polygon","coplanarFront","coplanarBack","polygonType","EPSILON","FRONT","COPLANAR","plane","SPANNING","ti","tj","vi","vj","poly","CSGPolygon","shared","polygons","_plane","_polygons","clipPolygons","clipTo","bsp","allPolygons","CSG","FromVertexData","normals","uvs","vertColors","subMeshId","materialIndex","csg","_FromPolygons","FromMesh","absolute","meshPosition","meshRotation","meshScaling","meshRotationQuaternion","invertWinding","sm","sml","il","indexIndices","sourceNormal","sourcePosition","copyTransformAttributes","union","unionInPlace","intersect","intersectInPlace","inverse","inverseInPlace","toVertexData","onBeforePolygonProcessing","onAfterPolygonProcessing","polygonIndices","vertice_dict","vertex_idx","jl","localVertex","localNormal","areUvsDifferent","areColorsDifferent","VertexData","buildMeshGeometry","keepSubMeshes","subMeshDict","subMeshObj","applyToMesh","materialMaxIndex","materialIndexOffset","SubMesh","CreateFromIndices","toMesh","_TrailMeshParser","parsedMesh","TrailMesh","diameterOrOptions","autoStart","_sectionPolygonPointsCount","_running","_generator","_segments","sections","_doNotTaper","doNotTaper","_autoStart","_sectionVectors","_sectionNormalVectors","_createMesh","meshCenter","hasBoundingInfo","centerWorld","absolutePosition","ComputeNormals","_updateSectionVectors","wm","_beforeRenderObserver","updateVerticesData","newGenerator","generatorId","getLastMeshById","getLastTransformNodeById","_diameter","SimplificationQueue","running","_simplificationArray","executeNext","runSimplification","parallelProcessing","_getSimplifier","simplify","newMesh","addLODLevel","quality","successCallback","simplifier","runDecimation","AsyncLoop","Run","QuadraticErrorSimplification","DecimationTriangle","_vertices","deleted","deletePending","borderFactor","DecimationVertex","isBorder","QuadraticMatrix","triangleCount","triangleStart","originalOffsets","det","a11","a12","a13","a21","a22","a23","a31","a32","a33","addArrayInPlace","FromData","DataFromNumbers","Reference","vertexId","triangleId","syncIterations","aggressiveness","decimationIterations","boundingBoxEpsilon","Epsilon","_initDecimatedMesh","_initWithMesh","_runDecimation","optimizeMesh","_reconstructedMesh","submeshIndex","targetCount","_triangles","deletedTriangles","iterationFunction","iteration","_updateMesh","SyncAsyncForLoop","deleted0","deleted1","_calculateError","delTr","_isFlipped","uniqueArray","deletedT","tStart","_references","_updateTriangles","tCount","breakLoop","_reconstructMesh","positionData","submesh","findInVertices","positionToSearch","equalsWithEpsilon","vertexReferences","triangle","originalOffset","newTriangles","newPositionData","newNormalData","newUVsData","newColorsData","normalData","colorsData","vertexCount","startingIndex","startingVertex","submeshesArray","newIndicesArray","originalIndices","originalSubmesh","AddToMesh","vertex1","vertex2","deletedArray","v2","d1","d2","origVertex","newDeleted","_identifyBorder","vCount","vId","ofs","vv","identifyBorders","newTrianglesVector","newReferences","_vertexError","pointResult","qDet","divide","error1","error2","error3","_simplificationQueue","NAME_SIMPLIFICATIONQUEUE","SimplicationQueueSceneComponent","simplificationType","simplificationQueue","_beforeCameraUpdateStage","STEP_BEFORECAMERAUPDATE_SIMPLIFICATIONQUEUE","_beforeCameraUpdate","Lattice","resolutionX","_resolutionX","resolutionY","_resolutionY","resolutionZ","_resolutionZ","_data","cellSize","_cellSize","_localPos","_tmpVector","_lerpVector0","_lerpVector1","_lerpVector2","_lerpVector3","_lerpVector4","_lerpVector5","localOptions","autoAdaptToMesh","extendSize","_allocateData","deformMesh","deform","updateInternals","nx","ny","nz","localPos","j0","k0","j1","k1","tx","ty","tz","ii0","jj0","kk0","ii1","jj1","kk1","p010","p110","p001","p101","p011","p111","p00","LerpToRef","p01","p10","p11","deformedPos","GreasedLineBaseMesh","_lazy","_vertexPositions","_indices","_uvs","_points","_colorPointers","colorPointers","_widths","_updateWidthsWithValue","defaulValue","pointCount","countDiff","_setPoints","_updateColorPointers","_createVertexBuffers","ribbonOptions","smoothShading","doNotSyncBoundingInfo","refreshBoundingInfo","greasedLineMaterial","addPoints","setPoints","isLazy","offsets","_offsets","_offsetsBuffer","_createOffsetsBuffer","_widthsBuffer","_colorPointersBuffer","materialPlugin","pluginManager","getPlugin","pointsCopy","DeepCopier","DeepCopy","pointsOptions","_updateWidths","_initGreasedLine","_createLineOptions","lineOptions","computeNormals","vertexData","offsetBuffer","setVerticesBuffer","_GreasedLineMeshParser","GreasedLineMesh","intersectionThreshold","_previousAndSide","_nextAndCounters","colorPointer","jj","indiceOffset","vertexPositionsLen","indicesLength","uvLength","previousAndSideLength","vertexPositionsArr","indicesArr","uvArr","previousAndSide","nextAndCounters","vertexPositionsOffset","indicesOffset","previousAndSideOffset","nextAndCountersOffset","lengthArray","baseOffset","baseIndicesOffset","currVertexPositionsOffsetLength","previous","_CompareV3","sidesLength","lengthRatio","uvOffsetBase","newParent","deepCopiedLineOptions","fastCheck","trianglePredicate","onlyBoundingInfo","worldToUse","skipBoundingInfo","pickingInfo","PickingInfo","intersections","findAllIntersections","intersection","pickedPoint","_fastCheck","_trianglePredicate","_worldToUse","firstOnly","intersectsSphere","_boundingSphere","_V_START","_V_END","_V_OFFSET_START","_V_OFFSET_END","iFloored","intersectionSegment","boundingSphere","positionIdx1","positionIdx2","arrayIdx1","arrayIdx2","previousAndSideBuffer","nextAndCountersBuffer","widthBuffer","colorPointersBuffer","_GreasedLineRibbonMeshParser","GreasedLineRibbonMesh","_pathOptions","_paths","_slopes","_ribbonWidths","_pathsOptions","hasPathOptions","pathCount","isFlatLine","slopes","pathOptions","pointsMode","directionPlanes","subPoints","_preprocess","directionsAutoMode","directions","_GetDirectionPlanesFromDirectionsOption","pathArray","_ConvertToRibbonPath","_CreateRibbonVertexData","numOfPaths","pi","doubleSided","facesMode","lastIndice","ribbonVertexData","vertexPositions","pathArrayCopy","pathCopy","_calculateSegmentLengths","pathArrayLength","previousCounters","_vSegmentLengths","_vTotalLengths","_uSegmentLengths","_uTotalLengths","widthUpper","_CalculateSlopes","ribbonInfo","rightHandedSystem","directionPlane","path1","path2","pointVectors","fatDirection","_GetDirectionFromPoints","DIRECTION_XZ","directionTemp","applyRotationQuaternionInPlace","_RightHandedForwardReadOnlyQuaternion","_LeftHandedForwardReadOnlyQuaternion","_LeftReadOnlyQuaternion","previousDirection","DIRECTION_XY","DIRECTION_YZ","pathOptionsCloned","pathsOptions","positionsLength","uLength","points1","points2","slope","normalizeToRef","countersBuffer","slopesBuffer","widthsBuffer","RightHandedForwardReadOnly","LeftHandedForwardReadOnly","LeftReadOnly","UpReadOnly","Manifold","ManifoldMesh","FirstID","_UniqueResolveID","CSG2","numProp","_numProp","manifold","vertexStructure","_manifold","_vertexStructure","_process","printDebug","genus","getProperties","volume","surfaceArea","rebuildNormals","normalComponent","manifoldMesh","triVerts","vertProperties","componentIndex","strideIndex","centerMesh","extents","bakeCurrentTransformIntoVertices","runOriginalID","runIndex","numRun","nextID","getMaterialByUniqueID","defaultMaterial","materialToUse","multiMaterial","MultiMaterial","subMaterials","_ProcessData","structure","_Construct","worldMatrix","tempVector3","TransformCoordinatesFromFloatsToRef","sourceNormals","TransformNormalFromFloatsToRef","sourceUV","sourceColors","ignoreWorldMatrix","sourceVertices","sourceIndices","starts","sourceMaterial","isMultiMaterial","originalIDs","uvs2","uvs3","uvs4","uvs5","uvs6","_InitializeCSG2Async","manifoldUrl","manifoldInstance","manifoldMeshInstance","_LoadScriptModuleAsync","windowAsAny","windowString","_LoadScriptModuleResolve","reserveIDs","NodeGeometryBlockConnectionPointTypes","Geometry","All","NodeGeometryConnectionPoint","_direction","_connectedPoint","connectedBlocks","_resetCounters","_callCount","_executionCount","callCount","executionCount","getConnectedValue","_storedFunction","_acceptedConnectionPointType","onDisconnectionObservable","isExposedOnFrame","exposedPortPosition","valueMin","valueMax","canConnectTo","otherBlock","targetBlock","ignoreConstraints","disconnectFrom","bitmask","valueType","NodeGeometryBlock","buildExecutionTime","_buildExecutionTime","isTeleportIn","isDebug","_isDebug","isUnique","_isReadyState","visibleOnFrame","UniqueIdGenerator","UniqueId","notConnectedNonOptionalInputs","PrecisionDate","Now","inputIndex0","inputIndex1","looseCoupling","getOutputByName","_deserializePortDisplayNamesAndExposedOnFrame","serializedInputs","serializedOutputs","port","connectedOutput","connectedBlock","nameAsVariableName","GeometryOutputBlock","currentVertexData","_vertexData","geometry","NodeGeometryContextualSources","Positions","Normals","Tangents","UV","UV2","UV3","UV4","UV5","UV6","Colors","VertexID","FaceID","GeometryID","CollectionID","LoopID","InstanceID","LatticeID","LatticeControl","NodeGeometryBuildState","_rotationMatrix","_scalingMatrix","_positionMatrix","_scalingRotationMatrix","_transformMatrix","noContextualData","_geometryContext","_executionContext","_instancingContext","_geometryContextStack","_executionContextStack","_instancingContextStack","geometryContext","executionContext","instancingContext","pushGeometryContext","pushExecutionContext","pushInstancingContext","restoreGeometryContext","restoreExecutionContext","restoreInstancingContext","getContextualValue","skipWarning","getExecutionIndex","getOverridePositionsContextualValue","getOverrideNormalsContextualValue","tangents","getOverrideUVs1ContextualValue","getExecutionFaceIndex","getExecutionLoopIndex","getInstanceIndex","collectionId","adapt","targetType","adaptInput","_instantiate","currentPosition","additionalVertexData","ScalingToRef","TranslationToRef","clonePositionIndex","_instantiateWithMatrix","_instantiateWithPositionAndMatrix","GeometryInputBlock","isContextual","_contextualSource","contextualValue","groupInInspector","valueCallback","_valueCallback","variableName","valueString","BoxBlock","evaluateContext","subdivisions","subdivisionsX","subdivisionsY","subdivisionsZ","sizeInput","widthInput","heightInput","depthInput","widthSegments","heightSegments","depthSegments","CreateSegmentedBoxVertexData","NodeGeometry","_getGlobalNodeGeometryEditor","NODEGEOMETRYEDITOR","NodeGeometryEditor","_buildWasSuccessful","BJSNODEGEOMETRYEDITOR","nodeGeometryEditorConfig","nodeGeometry","updateBuildId","createMesh","_internalMetadata","updateMesh","_preparationId","dataBlock","GeometryOptimizeBlock","_currentIndex","epsilon","optimizeFaces","newPositions","newIndicesMap","checkIndex","WithinEpsilon","newVertexData","newIndices","PlaneBlock","CreateGroundVertexData","MeshBlock","_cachedVertexData","reverseWindingOrder","serializedCachedData","isUsingCachedData","cleanData","ExtractFromMesh","cachedVertexData","IcoSphereBlock","radiusZ","radiusInput","CreateIcoSphereVertexData","SphereBlock","diameterX","diameterY","diameterZ","diameterInput","CreateSphereVertexData","GridBlock","TorusBlock","CreateTorusVertexData","CylinderBlock","diameterTop","diameterBottom","CreateCylinderVertexData","CapsuleBlock","CreateCapsuleVertexData","DiscBlock","CreateDiscVertexData","NullBlock","SetPositionsBlock","_remapVector3Data","newData","_remapVector4Data","_remapVector2Data","activeIndex","remappedA","remappedB","remappedC","SetNormalsBlock","SetUVsBlock","textureCoordinateIndex","tempVector2","SetColorsBlock","hasVertexAlpha","tempVector4","SetTangentsBlock","MathBlockOperations","Add","Subtract","Multiply","Divide","Max","Min","MathBlock","_connectionObservers","_updateInputOutputTypes","leftIsScalar","isScalar","scalar","Minimize","Maximize","second","MapRangeBlock","fromMin","fromMax","toMin","toMax","ConditionBlockTests","ConditionBlock","ifTrue","ifFalse","RandomBlockLocks","Once","RandomBlock","_currentLockId","lockMode","minInput","maxInput","lockId","NoiseBlock","_negateIf","_noiseGrad","_fade","_hashBitRotate","_hash","kx","ky","kz","_mix","v3","v4","v5","v6","v7","x1","y1","_perlinNoise","fx","fy","fz","_perlinSigned","_perlin","noise","fscale","amp","maxamp","sum","rmd","sum2","MergeGeometryBlock","geometry0","geometry1","geometry2","geometry3","geometry4","vertexDataSource","GeometryCollectionBlock","geometry5","geometry6","geometry7","geometry8","geometry9","_storeGeometry","availables","CleanGeometryBlock","FixFlippedFaces","GeometryElbowBlock","ComputeNormalsBlock","VectorConverterBlock","xyzwIn","zwIn","xIn","yIn","zIn","wIn","xyzwOut","zwOut","xOut","yOut","zOut","wOut","xInput","yInput","zInput","wInput","xyInput","zwInput","xyzInput","xyzwInput","NormalizeVectorBlock","SetMaterialIDBlock","materialInfo","VertexDataMaterialInfo","materialInfos","LatticeBlock","_indexVector3","_currentControl","_currentIndexX","_currentIndexY","_currentIndexZ","extractMinAndMax","_lattice","latticeControl","GeometryTrigonometryBlockOperations","Cos","Sin","Abs","Exp","Round","Floor","Ceiling","Sqrt","Tan","ArcTan","ArcCos","ArcSin","Sign","Negate","OneMinus","Reciprocal","ToDegrees","Fract","Exp2","GeometryTrigonometryBlock","exp","atan","asin","GeometryTransformBlock","_translationMatrix","_pivotMatrix","_backPivotMatrix","translation","pivot","OneReadOnly","ZeroReadOnly","Transform","RotationXBlock","RotationX","RotationYBlock","RotationY","RotationZBlock","RotationZ","ScalingBlock","scaleInput","Scaling","AlignBlock","RotationAlignToRef","TranslationBlock","translationInput","InstantiateOnVerticesBlock","_indexTranslation","removeDuplicatedPositions","_currentLoopIndex","alreadyDone","instanceGeometry","main","InstantiateOnFacesBlock","_currentPosition","_currentUV","_vertex0","_vertex1","_vertex2","_tempVector0","_tempVector1","_uv0","_uv1","_uv2","_currentFaceIndex","faceCount","instancePerFace","accumulatedCount","totalDone","countPerFace","faceID0","faceID1","faceID2","faceDispatchCount","InstantiateOnVolumeBlock","gridMode","gridSize","_getValueOnGrid","_getIndexinGrid","candidatesCells","cellX","cellY","cellZ","cellIndex","candidateIndex","intersectionCount","currentFaceIndex","currentIntersectInfo","intersectsTriangle","InstantiateBaseBlock","InstantiateBlock","iterationCount","InstantiateLinearBlock","transformMatrix","transformOffset","scaleOffset","addInPlaceFromFloats","ComposeToRef","FromEulerAngles","InstantiateRadialBlock","angleStart","angleEnd","radiusMatrix","angleQuat","setTranslationFromFloats","IntFloatConverterBlock","floatIn","intIn","floatOut","intOut","DebugBlock","GeometryInfoBlock","facesCount","_currentVertexData","MappingTypes","Spherical","Cylindrical","Cubic","MappingBlock","mapping","tempDirection","absX","absY","absZ","maxDim","MatrixComposeBlock","matrix0","matrix1","TeleportInBlock","TeleportOutBlock","GeometryTextureBlock","textureData","_prepareImgToLoadAsync","pixels","getImageData","floatArray","loadTextureFromFileAsync","imageFile","loadTextureFromUrlAsync","extractFromTextureAsync","TextureTools","GetTextureDataAsync","GeometryTextureFetchBlock","clampCoordinates","coordinates","_repeatClamp","toVector3","BoundingBlock","BooleanGeometryOperations","Intersect","Union","BooleanGeometryBlock","IsCSG2Ready","_csg2LoadingPromise","InitializeCSG2Async","useOldCSGEngine","vertexData0","vertexData1","boolCSG","CSG0","CSG1","GeometryArcTan2Block","GeometryLerpBlock","GeometryNLerpBlock","GeometryStepBlock","GeometrySmoothStepBlock","GeometryModBlock","GeometryPowBlock","GeometryClampBlock","GeometryCrossBlock","GeometryCurveBlockTypes","GeometryCurveBlock","GeometryDesaturateBlock","GeometryPosterizeBlock","stepVector","GeometryReplaceColorBlock","GeometryDistanceBlock","GeometryDotBlock","dot","GeometryLengthBlock","GeometryRotate2dBlock","GeometryInterceptorBlock","onInterceptionObservable","customFunction","Aggregations","Sum","AggregatorBlock","aggregation","notifyObserversWithPromise","eventData","currentTarget","userInfo","_eventState","skipNextObservers","obs","_willBeUnregistered","lastReturnedValue","lastReturnValue","_deferUnregister","DataStorage","_GetStorage","inMemoryStorage","ReadString","_Storage","WriteString","ReadBoolean","WriteBoolean","ReadNumber","WriteNumber","Levenshtein","Alphabet","characters","_characterToIdx","insertionCosts","_insertionCosts","deletionCosts","_deletionCosts","substitutionCosts","_substitutionCosts","Deserialize","alphabet","charToInsertionCost","charToDeletionCost","charsToSubstitutionCost","outerIdx","innerIdx","getCharacterIdx","getInsertionCost","getDeletionCost","getSubstitutionCost","idx1","Sequence","_characters","sequence","_MAX_SEQUENCE_LENGTH","_alphabet","_Distance","aChars","bChars","aLength","bLength","costMatrix","_CostMatrix","aIdx","bIdx","_InsertionCost","_DeletionCost","_SubstitutionCost","Trajectory","trajectory","_segmentLength","getLength","numPoints","getT","newPoint","scaleAndAddToRef","resampleAtTargetResolution","targetResolution","resampled","tokenize","tokens","tokenization","segmentDir","_TransformSegmentDirToRef","_TokenizeSegment","priorVec","fromVec","toVec","_ForwardDir","_InverseFromVec","DOT_PRODUCT_SAMPLE_REJECTION_THRESHOLD","_UpDir","LookAtLHToRef","_LookMatrix","_FromToVec","segment","_BestMatch","_Score","_BestScore","DynamicFloat32Array","itemCapacity","_itemLength","itemLength","_growArray","newCapacity","InitialArraySize","TimestampColHeader","NumPointsColHeader","CarriageReturnRegex","PerformanceViewerCollector","SliceDataOffset","NumberOfPointsOffset","_enabledStrategyCallbacks","_collectDataAtFrame","timestamp","_startingTimestamp","datasets","numberOfIndices","startingIndices","previousStartingIndex","strategy","_strategies","datasetObservable","_datasetMeta","_eventRestoreSet","_customEventObservable","metadataObservable","EventState","addCollectionStrategies","registerEvent","category","strategyCallback","afterRenderObserver","stringObserver","eventVal","sendEvent","_restoreStringEvents","strategyCallbacks","_getHexColorFromId","hex","toStr","getCurrentSlice","updateMetadata","meta","preserveStringEventsRestore","_hasLoadedData","hasLoadedData","loadFromFileData","keepDatasetMeta","numPointsIndex","parsedDatasets","firstLine","dataLines","idCategoryMap","exportDataToCsv","csvContent","toISOString","Download","shouldPreserve","_isStarted","removeCallback","isStarted","getPerfCollector","_perfCollector","runCoroutineAsync","coroutine","_coroutineScheduler","schedulerAndDispose","CreateObservableScheduler","coroutines","onSteps","onErrors","inlineScheduler","onStep","_coroutineSchedulerDispose","cancelAllCoroutines","OfflineProviderFactory","urlToScene","callbackManifestChecked","disableManifestCheck","Database","enableSceneOffline","_enableSceneOffline","enableTexturesOffline","_enableTexturesOffline","_idbFactory","_currentSceneUrl","_ReturnFullUrlLocation","_db","_manifestVersionFound","_mustUpdateRessources","_hasReachedQuota","IDBStorageEnabled","SetImmediate","_checkManifestFile","noManifestFile","createManifestURL","timeStampUsed","manifestURL","xhr","onLine","_ValidateXHRData","manifestFile","_IsUASupportingBlobStorage","retryManifestURL","errorCallback","handleError","_isSupported","ex","loadImage","completeURL","saveAndLoadImage","_saveImageIntoDBAsync","_loadImageFromDBAsync","notInDBCallback","blobTextureURL","getRequest","generateBlobUrl","textureUrl","addRequest","_checkVersionFromDB","versionLoaded","_loadVersionFromDBAsync","updateVersion","_saveVersionIntoDBAsync","updateInDBCallback","sceneUrl","sceneLoaded","progressCallBack","useArrayBuffer","completeUrl","saveAndLoadFile","_saveFileAsync","targetStore","numberToLoad","lengthComputable","progressCallback","onprogress","newFile","tgaHeader","GetTGAHeader","ddsHeader","_ParseURL","urlWithoutHash","UniformBufferEffectCommonAccessor","_isUbo","uboOrEffect","updateFloatArray","updateVector3","updateColor4","updateDirectColor4","WebGL2ParticleSystem","_renderVAO","_updateVAO","alignDataInBuffer","_parent","_updateEffectOptions","contextLost","_updateEffect","isUpdateBufferCreated","isUpdateBufferReady","createUpdateBuffer","particleEmitterType","CustomParticleEmitter","_colorGradientsTexture","_isBillboardBased","noiseTexture","isAnimationSheetEnabled","spriteRandomStartCell","createVertexBuffers","updateBuffer","renderVertexBuffers","_createUpdateVAO","_getWrapper","blendMode","bindArrayBuffer","_renderVertexBuffers","createParticleBuffer","bindDrawBuffers","preUpdateParticleBuffer","updateParticleBuffer","targetBuffer","currentActiveCount","_randomTexture","_randomTexture2","_sizeGradientsTexture","_angularSpeedGradientsTexture","_velocityGradientsTexture","_limitVelocityGradientsTexture","_dragGradientsTexture","releaseBuffers","releaseVertexBuffers","updateVertexBuffers","age","life","initialPosition","initialDirection","noiseCoordinates1","noiseCoordinates2","_isAnimationSheetEnabled","cellStartOffset","vao","ComputeShaderParticleSystem","_bufferComputeShader","_updateComputeShader","particlesIn","particlesOut","randomTexture","randomTexture2","sizeGradientTexture","angularSpeedGradientTexture","velocityGradientTexture","limitVelocityGradientTexture","dragGradientTexture","ComputeShader","_simParamsComputeShader","isLocal","setUniformBuffer","StorageBuffer","IncludesShadersStore","GPUParticleSystem","BaseParticleSystem","_linesIndexBufferUseInstancing","getCapacity","maxActiveParticleCount","_maxActiveParticleCount","activeParticleCount","createPointEmitter","direction1","direction2","particleEmitter","CreatePointEmitter","createHemisphericEmitter","radiusRange","CreateHemisphericEmitter","createSphereEmitter","CreateSphereEmitter","createDirectedSphereEmitter","CreateDirectedSphereEmitter","createCylinderEmitter","directionRandomizer","CreateCylinderEmitter","createDirectedCylinderEmitter","CreateDirectedCylinderEmitter","createConeEmitter","CreateConeEmitter","createDirectedConeEmitter","CreateDirectedConeEmitter","createBoxEmitter","minEmitBox","maxEmitBox","BoxParticleEmitter","_imageProcessingConfiguration","particleTexture","_rebuildingAfterContextLost","ParticleSystem","BLENDMODE_MULTIPLYADD","BLENDMODE_MULTIPLY","BLENDMODE_ADD","_platform","_recreateUpdateEffect","_stopped","isStopping","getActiveCount","_currentActiveCount","delay","startDelay","targetStopDuration","_hasTargetStopDurationDependantGradient","_preWarmDone","beginAnimationOnStart","animations","beginAnimation","beginAnimationFrom","beginAnimationTo","beginAnimationLoop","onStoppedObservable","_releaseBuffers","_targetIndex","getCustomEffect","_customWrappers","_getCustomDrawWrapper","setCustomEffect","onBeforeDrawParticlesObservable","_onBeforeDrawParticlesObservable","vertexShaderName","_removeGradientAndTexture","gradients","addColorGradient","color1","_colorGradients","colorGradient","ColorGradient","_refreshColorGradient","reorder","forceRefreshGradients","_refreshFactorGradient","_sizeGradients","_angularSpeedGradients","_velocityGradients","_limitVelocityGradients","_dragGradients","removeColorGradient","resetDrawCache","_addFactorGradient","factorGradients","valueGradient","FactorGradient","addSizeGradient","removeSizeGradient","addAngularSpeedGradient","removeAngularSpeedGradient","addVelocityGradient","removeVelocityGradient","addLimitVelocityGradient","removeLimitVelocityGradient","addDragGradient","removeDragGradient","addEmitRateGradient","removeEmitRateGradient","addStartSizeGradient","removeStartSizeGradient","addColorRemapGradient","removeColorRemapGradient","addAlphaRemapGradient","removeAlphaRemapGradient","addRampGradient","removeRampGradient","getRampGradients","useRampGradients","addLifeTimeGradient","removeLifeTimeGradient","customEffect","_accumulatedCount","_currentRenderId","_currentRenderingCameraUniqueId","_timeDelta","updateInAnimate","_actualFrame","_rawTextureWidth","isGPU","defaultProjectionMatrix","PerspectiveFovLH","getUniqueId","_attachImageProcessingConfiguration","randomTextureSize","optionsAsNumber","_randomTextureSize","renderBuffer","spriteSource","_attributesStrideSize","BILLBOARDMODE_STRETCHED","_buffer0","isBillboardBased","usingCustomEmitter","tmpVector","particleIndex","particleDestinationGenerator","particlePositionGenerator","numDummies","spriteData","bufferData1","bufferData2","_buffer1","_spriteBuffer","_sourceBuffer","_targetBuffer","_createColorGradientTexture","_createSizeGradientTexture","_createAngularSpeedGradientTexture","_createVelocityGradientTexture","_createLimitVelocityGradientTexture","_createDragGradientTexture","getEffectDefines","_cachedUpdateDefines","_updateBuffer","customWrapper","fillDefines","fillUniformsAttributesAndSamplerNames","setEffect","_GetAttributeNamesOrOptions","hasColorGradients","isBillboardStretched","attributeNamesOrOptions","_GetEffectCreationOptions","useLogarithmicDepth","applyFog","effectCreationOption","addClipPlaneUniforms","fillImageProcessing","prepareStringDefinesForClipPlanes","FOGMODE_NONE","BILLBOARDMODE_ALL","_imageProcessingConfigurationDefines","ImageProcessingConfiguration","PrepareUniforms","PrepareSamplers","preWarm","updateSpeed","preWarmStepOffset","_update","_createFactorGradientTexture","GradientHelper","GetCurrentGradient","currentGradient","nextGradient","factor1","CreateRTexture","tmpColor","CreateRGBATexture","_render","emitterWM","viewMatrix","IdentityReadOnly","translationPivot","worldOffset","colorDead","baseSize","getBaseSize","spriteCellWidth","spriteCellHeight","BindFogParameters","invView","BindLogDepth","applyByPostProcess","BLENDMODE_ONEONE","BLENDMODE_STANDARD","forceWireframe","emitterPosition","minLifeTime","maxLifeTime","minEmitPower","maxEmitPower","color2","minSize","maxSize","minScaleX","maxScaleX","minScaleY","maxScaleY","minAngularSpeed","maxAngularSpeed","minInitialRotation","maxInitialRotation","limitVelocityDamping","applyToShader","startSpriteCellID","endSpriteCellID","spriteCellChangeSpeed","spriteCellLoop","noiseStrength","tmpBuffer","forceUpdateOnly","preWarmCycles","getRenderId","emitRate","intPart","outparticles","checkUpdateEffect","disposeTexture","rvb","cloneTexture","custom","createEffectForParticles","customShader","shaderOptions","shaderPath","serialization","serializeTexture","_Serialize","parsedParticleSystem","doNotStart","particleSystem","_Parse","preventAutoStart","ParticleSystemSet","_emitterNodeIsOwned","systems","emitterNode","_emitterNode","setEmitterAsSphere","_emitterCreationOptions","emitterMesh","BaseAssetsUrl","ParticleHelper","useGPU","ExportSet","ParseFromFileAsync","CreateFromSnippetAsync","NAME_PARTICLESYSTEM","individualParser","GetIndividualParser","AddIndividualParser","allSamplers","getEmittedParticleSystems","getHierarchyEmittedParticleSystems","descendants","getDescendants","_physicsImpostor","_disposePhysicsObserver","physicsImpostor","getPhysicsImpostor","applyImpulse","contactPoint","setPhysicsLinkWith","otherMesh","pivot1","pivot2","createJoint","PhysicsJoint","HingeJoint","mainPivot","connectedPivot","nativeParams","PhysicsEngine","getPluginVersion","_physicsPlugin","DefaultPluginFactory","_physicsBodies","_subTimeStep","setGravity","setTimeStep","newTimeStep","getTimeStep","setSubTimeStep","subTimeStep","getSubTimeStep","getPhysicsPluginName","setVelocityLimits","maxLinearVelocity","maxAngularVelocity","getMaxLinearVelocity","getMaxAngularVelocity","executeStep","addBody","physicsBody","removeBody","getBodies","getPhysicsPlugin","raycastToRef","raycast","PhysicsRaycastResult","getPhysicsEngine","_physicsEngine","enablePhysics","NAME_PHYSICSENGINE","PhysicsEngineSceneComponent","PhysicsEngineV2","PhysicsEngineV1","_physicsTimeAccumulator","disablePhysicsEngine","isPhysicsEnabled","deleteCompoundImpostor","parts","_advancePhysicsEngineStep","subTime","onBeforePhysicsObservable","onAfterPhysicsObservable","getDeterministicFrameTime","_physicsBody","getPhysicsBody","applyAngularImpulse","angularImpulse","HelperTools","GetContactPointToRef","instanceIndex","pluginVersion","intersectsMesh","getObjectCenterWorldToRef","HasAppliedForces","getMotionType","getMassProperties","mass","transformNode","IsInsideCylinder","PhysicsUpdraftEvent","_origin","_originTop","_originDirection","_cylinderPosition","_dataFetched","PhysicsUpdraftEventOptions","updraftMode","_tickCallback","_tick","_prepareCylinder","cylinder","_cylinder","registerBeforeRender","unregisterBeforeRender","_getHitData","distanceFromOrigin","_getBodyHitData","getObjectCenterWorld","_getImpostorHitData","impostor","_intersectsWithCylinder","getObjectCenter","hitData","_HitData","getImpostors","applyForce","iterateOverAllInstances","CreateCylinder","PhysicsVortexEvent","PhysicsVortexEventOptions","originOnPlane","_OriginOnPlane","originToImpostorDirection","absoluteDistanceFromOrigin","directionToOrigin","forceX","forceY","forceZ","centripetalForceThreshold","negateInPlace","centripetalForceMultiplier","updraftForceMultiplier","perpendicularDirection","centrifugalForceMultiplier","bodyObject","bodyCenter","impostorObject","impostorObjectCenter","BlackAndWhitePostProcess","effectWrapper","parsedPostProcess","targetCamera","renderTargetSamplingMode","ColorCorrectionPostProcess","colorTableUrl","_colorTableTexture","onApply","ConvolutionPostProcess","EdgeDetect0Kernel","EdgeDetect1Kernel","EdgeDetect2Kernel","SharpenKernel","EmbossKernel","GaussianKernel","DisplayPassPostProcess","FilterPostProcess","kernelMatrix","serializeAsMatrix","GeometryBufferRenderer","normalsAreUnsigned","_normalsAreUnsigned","_linkPrePassRenderer","_linkedWithPrePass","_prePassRenderer","_multiRenderTarget","_unlinkPrePassRenderer","_createRenderTargets","_resetLayout","_enableDepth","_enableNormal","_enablePosition","_enableReflectivity","_enableVelocity","_enableVelocityLinear","_enableScreenspaceDepth","_attachmentsFromPrePass","_forceTextureType","geometryBufferType","POSITION_TEXTURE_TYPE","_positionIndex","VELOCITY_TEXTURE_TYPE","_velocityIndex","VELOCITY_LINEAR_TEXTURE_TYPE","_velocityLinearIndex","REFLECTIVITY_TEXTURE_TYPE","_reflectivityIndex","DEPTH_TEXTURE_TYPE","_depthIndex","NORMAL_TEXTURE_TYPE","_normalIndex","SCREENSPACE_DEPTH_TEXTURE_TYPE","_screenspaceDepthIndex","_setAttachments","_linkInternalTexture","getTextureIndex","enableDepth","enableNormal","enablePosition","enableVelocity","_previousTransformationMatrices","needsPreviousWorldMatrices","enableVelocityLinear","enableReflectivity","enableScreenspaceDepth","_ratioOrDimensions","ratioOrDimensions","depthFormat","textureTypesAndFormats","_previousBonesTransformationMatrices","excludedSkinnedMeshesFromVelocity","renderTransparentMeshes","generateNormalsInWorldSpace","_clearColor","_clearDepthColor","useSpecificClearForDepthTexture","_useUbo","_depthFormat","_textureTypesAndFormats","disableDepthWrite","attribs","needUv","getAlphaTestTexture","bumpTexture","normalTexture","BumpTextureEnabled","metallicWorkflow","metallicRoughnessTexture","baseTexture","specularGlossinessTexture","metallicTexture","albedoTexture","reflectivityTexture","reflectivityColor","microSurface","specularTexture","numBoneInfluencers","isUsingTextureForMatrices","bones","numMorphInfluencers","PrepareAttributesForMorphTargetsInfluencers","PushAttributesForInstances","_getDrawWrapper","cachedDefines","buffersCount","maxSimultaneousMorphTargets","getGBuffer","_assignRenderTargetIndices","textureTypesAndFormat","typeAndFormat","layoutAttachmentsAll","layoutAttachmentsAllButDepth","layoutAttachmentsDepthOnly","attachmentsAll","attachmentsAllButDepth","attachmentsDepthOnly","renderSubMesh","renderingMesh","effectiveMesh","getEffectiveMesh","_internalAbstractMeshDataInfo","_isActiveIntermediate","bonesTransformations","getTransformMatrices","_copyBonesTransformationMatrices","batch","_getInstancesRenderList","_id","getReplacementMesh","mustReturn","hardwareInstancedRendering","visibleInstances","BindSceneUniformBuffer","getSceneUniformBuffer","finalizeSceneUbo","instanceDataStorage","_instanceDataStorage","mainDeterminant","_getWorldMatrixDeterminant","_getEffectiveOrientation","ClockWiseSideOrientation","CounterClockWiseSideOrientation","_preBind","alphaTexture","parallaxScaleBias","invertNormalMapX","invertNormalMapY","getUniformIndex","boneTexture","getTransformMatrixTexture","_processRendering","isInstance","customIsReadyFunction","customRenderFunction","opaqueSubMeshes","alphaTestSubMeshes","transparentSubMeshes","depthOnlySubMeshes","MotionBlurConfiguration","texturesRequired","_geometryBufferRenderer","enableGeometryBufferRenderer","disableGeometryBufferRenderer","GeometryBufferRendererSceneComponent","NAME_GEOMETRYBUFFERRENDERER","_gatherRenderTargetsStage","STEP_GATHERRENDERTARGETS_GEOMETRYBUFFERRENDERER","_gatherRenderTargets","renderTargets","MotionBlurPostProcess","motionBlurSamples","_motionBlurSamples","isObjectBased","_isObjectBased","_applyMode","_forceGeometryBuffer","geometryBufferRenderer","blockCompilation","forceGeometryBuffer","motionStrength","_invViewProjection","_previousViewProjection","_prePassEffectConfiguration","excludeSkinnedMesh","skinnedMesh","removeExcludedSkinnedMesh","_onApplyObjectBased","_onApplyScreenBased","velocityIndex","getRenderTarget","depthIndex","RefractionPostProcess","_refTexture","_ownRefractionTexture","refractionTextureUrl","colorLevel","onActivateObservable","cam","SSAO2Configuration","SSAO2RenderingPipeline","PostProcessRenderPipeline","_ssaoPostProcess","_getDefinesForSSAO","_sampleSphere","_generateHemisphere","textureSamples","_textureSamples","_originalColorPostProcess","bypassBlur","_getDefinesForBlur","expensiveBlur","_getSamplersForBlur","_blurHPostProcess","_blurVPostProcess","_bypassBlur","_expensiveBlur","SSAOOriginalSceneColorEffect","SSAORenderEffect","SSAOBlurHRenderEffect","SSAOBlurVRenderEffect","SSAOCombineRenderEffect","totalStrength","minZAspect","bilateralSamples","bilateralSoften","bilateralTolerance","_bits","_ratio","_textureType","ssaoRatio","blurRatio","_createRandomTexture","_createSSAOPostProcess","_createBlurPostProcess","_createSSAOCombinePostProcess","addEffect","PostProcessRenderEffect","_ssaoCombinePostProcess","postProcessRenderPipelineManager","addPipeline","attachCamerasToRenderPipeline","detachCamerasFromRenderPipeline","bilateral","_createBlurFilter","horizontal","blurFilter","ssaoCombineSize","_radicalInverse_VdC","_hammersley","_hemisphereSample_uniform","phi","cosTheta","sinTheta","rand","minZ","PERSPECTIVE_DEPTH_PROJECTION","halfWidth","halfHeight","orthoLeft","orthoRight","orthoBottom","orthoTop","ORTHO_DEPTH_PROJECTION","setTextureFromPostProcessOutput","randVector","RandomRange","SSAORenderingPipeline","area","fallOff","combineRatio","_attachCameras","_cameras","disableDepthRender","dw","sampleSphere","ScreenSpaceReflectionsConfiguration","ScreenSpaceReflectionPostProcess","reflectionSpecularFalloffExponent","roughnessFactor","_enableSmoothReflections","_reflectionSamples","_smoothSteps","_updateEffectDefines","positionIndex","roughnessIndex","normalIndex","projectionMatrix","_isSceneRightHanded","enableSmoothReflections","reflectionSamples","smoothSteps","StandardRenderingPipeline","exposure","_fixedExposure","_currentExposure","hdrAutoExposure","_hdrAutoExposure","hdrPostProcess","_motionStrength","_isObjectBasedMotionBlur","motionBlurPostProcess","objectBasedMotionBlur","shouldRebuild","_buildPipeline","BloomEnabled","_bloomEnabled","DepthOfFieldEnabled","_depthOfFieldEnabled","LensFlareEnabled","_lensFlareEnabled","HDREnabled","_hdrEnabled","VLSEnabled","_vlsEnabled","MotionBlurEnabled","_motionBlurEnabled","fxaaEnabled","_fxaaEnabled","screenSpaceReflectionsEnabled","_screenSpaceReflectionsEnabled","volumetricLightStepsCount","_volumetricLightStepsCount","volumetricLightPostProcess","originalPostProcess","downSampleX4PostProcess","brightPassPostProcess","blurHPostProcesses","blurVPostProcesses","textureAdderPostProcess","volumetricLightSmoothXPostProcess","volumetricLightSmoothYPostProcess","volumetricLightMergePostProces","volumetricLightFinalPostProcess","luminancePostProcess","luminanceDownSamplePostProcesses","textureAdderFinalPostProcess","lensFlareFinalPostProcess","hdrFinalPostProcess","lensFlarePostProcess","lensFlareComposePostProcess","depthOfFieldPostProcess","fxaaPostProcess","screenSpaceReflectionPostProcess","brightThreshold","blurWidth","horizontalBlur","lensTexture","volumetricLightCoefficient","volumetricLightPower","volumetricLightBlurScale","sourceLight","hdrMinimumLuminance","hdrDecreaseRate","hdrIncreaseRate","lensColorTexture","lensFlareStrength","lensFlareGhostDispersal","lensFlareHaloWidth","lensFlareDistortionStrength","lensFlareBlurWidth","lensStarTexture","lensFlareDirtTexture","depthOfFieldDistance","depthOfFieldBlurWidth","_currentDepthOfFieldSource","_hdrCurrentLuminance","_camerasToBeAttached","_basePostProcess","_floatTextureType","_disposePostProcesses","_createDownSampleX4PostProcess","_createBrightPassPostProcess","_createBlurPostProcesses","_createTextureAdderPostProcess","_createVolumetricLightPostProcess","_createLensFlarePostProcess","_createLuminancePostProcesses","_createHdrPostProcess","_createDepthOfFieldPostProcess","_createMotionBlurPostProcess","FxaaPostProcess","_enableMSAAOnFirstPostProcess","downSampleX4Offsets","brightOffsets","sU","sV","indice","blurWidthKey","blurX","blurY","geometryRenderer","depthValues","getShadowDirection","LuminanceSteps","lastLuminance","downSampleOffsets","onAfterRender","pixel","bit_shift","outputLiminance","lastTime","getDeltaTime","scaleBias1","scaleBias2","camerax","getRow","cameraz","camRot","starRotation","lensStarMatrix","_getDepthTexture","mb","motionScale","prevViewProjection","invViewProjection","screenSize","getFps","sourceLightId","ScreenSpaceReflections2Configuration","useScreenspaceDepth","trs","Compose","trsWebGPU","SSRRenderingPipeline","reflectivityThreshold","_reflectivityThreshold","ssrDownsample","_ssrDownsample","downsample","blurDispersionStrength","_blurDispersionStrength","_useBlur","blurDownsample","_blurDownsample","_environmentTexture","environmentTextureIsProbe","_environmentTextureIsProbe","isProbe","attenuateScreenBorders","_attenuateScreenBorders","attenuate","attenuateIntersectionDistance","_attenuateIntersectionDistance","attenuateIntersectionIterations","_attenuateIntersectionIterations","attenuateFacingCamera","_attenuateFacingCamera","attenuateBackfaceReflection","_attenuateBackfaceReflection","clipToFrustum","_clipToFrustum","clip","useFresnel","_useFresnel","enableAutomaticThicknessComputation","_enableAutomaticThicknessComputation","automatic","backfaceDepthRenderer","_depthRenderer","backfaceDepthTextureDownsample","_backfaceDepthTextureDownsample","_resizeDepthRenderer","backfaceForceDepthWriteTransparentMeshes","_backfaceForceDepthWriteTransparentMeshes","forceDepthWriteTransparentMeshes","inputTextureColorIsInGammaSpace","_inputTextureColorIsInGammaSpace","generateOutputInGammaSpace","_generateOutputInGammaSpace","_debug","SSRRenderEffect","SSRBlurRenderEffect","SSRCombineRenderEffect","maxDistance","maxSteps","selfCollisionNumSkip","_useScreenspaceDepth","addCamera","removeCamera","_disposeDepthRenderer","_getTextureSize","_getFirstPostProcess","_ssrPostProcess","inputTexture","_depthRendererCamera","DepthRenderer","reverseCulling","_createSSRPostProcess","_createBlurAndCombinerPostProcesses","_blurPostProcessX","_blurPostProcessY","_blurCombinerPostProcess","depthRendererSize","TAARenderingPipeline","_taaThinPostProcess","msaaSamples","_msaaSamples","_taaPostProcess","TAARenderEffect","TAAPassEffect","_pingpong","_createPingPongTextures","_ping","_pong","_createTAAPostProcess","_createPassPostProcess","_passPostProcess","VolumetricLightScatteringPostProcess","useDiffuseColor","postProcessRatio","_screenCoordinates","customMeshPosition","useCustomMeshPosition","includedMeshes","decay","_viewPort","CreateDefaultMesh","_createPass","passRatio","onActivate","_updateMeshScreenCoordinates","_volumetricLightScatteringRTT","renderingMaterial","_materialForRenderPass","currentRenderPassId","EffectFallbacks","bvaManager","setCustomMeshPosition","getCustomMeshPosition","rttIndex","getPass","_meshExcluded","getCamera","savedSceneClearColor","sceneClearColor","_alphaIndex","alphaIndex","_distanceToCamera","sortedArray","ScreenSpaceCurvaturePostProcess","ridge","valley","DepthPeelingEffectConfiguration","DepthPeelingRenderer","passCount","_passCount","_createRenderPassIds","useRenderPasses","_useRenderPasses","usePasses","_thinTextures","_currentPingPongState","_layoutCacheFormat","_layoutCache","_candidateSubMeshes","SmartArray","_excludedSubMeshes","_colorCache","_DEPTH_CLEAR_VALUE","_MIN_DEPTH","_MAX_DEPTH","_renderPassIds","_createEffects","_releaseRenderPassIds","createRenderPassId","releaseRenderPassId","_depthMrts","_colorMrts","_blendBackMrt","_outputRT","optionsArray","frontColorTexture","backColorTexture","ThinTexture","_disposeTextures","_updateTextures","_updateTextureReferences","prePassTexture","_blendBackTexture","_blendBackEffectWrapper","_blendBackEffectWrapperPingPong","_finalEffectWrapper","setPrePassRenderer","addEffectConfiguration","_renderSubMeshes","mapMaterialContext","previousShaderHotSwapping","previousBFC","firstDraw","allowShaderHotSwapping","newMaterialContext","_finalCompose","writeId","setCustomOutput","_getRenderingFillMode","TriangleFanDrawMode","TriangleStripDrawMode","readId","blendBackEffectWrapper","_depthPeelingRenderer","NAME_DEPTHPEELINGRENDERER","DepthPeelingSceneComponent","_useOrderIndependentTransparency","depthPeelingRenderer","disableEdgesRendering","_edgesRenderer","enableEdgesRendering","checkVerticesInsteadOfIndices","EdgesRenderer","LinesMesh","LineEdgesRenderer","InstancedLinesMesh","FaceAdjacencies","edges","edgesConnectedCount","linesPositions","_linesPositions","linesNormals","_linesNormals","linesIndices","_linesIndices","lineShader","_lineShader","_GetShader","_edgeRenderLineShader","checkReadyOnEveryCall","generateEdgesLines","edgesWidthScalerForOrthographic","edgesWidthScalerForPerspective","_buffers","_buffersForInstances","_checkVerticesInsteadOfIndices","customInstances","_prepareRessources","useAlternateEdgeFinder","_generateEdgesLinesAlternate","_generateEdgesLines","_meshRebuildObserver","onRebuildObservable","_meshDisposeObserver","_ib","_processEdgeForAdjacencies","_processEdgeForAdjacenciesWithVertices","eps","_checkEdge","faceNormals","needToCreateLine","createLine","_tessellateTriangle","edgePoints","indexTriangle","remapVertexIndices","makePointList","pointIndices","firstIndex","startEdge","mainPointIndices","otherPointIndices","numMainPoints","numOtherPoints","bucketIsMain","bucketStep","bucketLimit","bucketIdxLimit","winding","numTris","bucketIdx","nbucketIdx","bucketPoints","nbucketPoints","bucket","lastIdx","useFastVertexMerger","epsVertexMerge","epsilonVertexMerge","uniquePositions","mapVertices","z1","y2","z2","applyTessellation","epsVertexAligned","epsilonVertexAligned","mustTesselate","triangleToTessellate","p0Index","p1Index","p2Index","p0x","p0y","p0z","p1x","p1y","p1z","p0p1","vIndex","p0p","pp1","edgesPoints","faceNormal","removeDegeneratedTriangles","_indicesCount","adjacencies","faceAdjacencies","otherIndex","otherFaceAdjacencies","otherP0","otherP1","otherP2","edgeIndex","otherEdgeIndex","hasInstances","currentDrawWrapper","_setDrawWrapper","useBuffersWithInstances","instanceStorage","instancesData","_activeMeshesFrozen","copyToArray","instancesBuffer","updateDirectly","thinInstanceCount","edgesColor","getEffect","ORTHOGRAPHIC_CAMERA","edgesWidth","unbind","FromArrayToRef","MaterialIBLShadowsRenderDefines","RENDER_WITH_IBL_SHADOWS","IBLShadowsPluginMaterial","shadowOpacity","iblShadowsTexture","frag","CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION","CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR","PrePassRenderTarget","renderTargetTexture","_beforeCompositionPostProcesses","_internalTextureDirty","_createCompositionEffect","imageProcessingPostProcess","ImageProcessingPostProcess","_updateParameters","_checkSize","_resetPostProcessChain","_prePassRenderTarget","_outputPostProcess","restoreDefaultInputTexture","PrePassRenderer","_generateNormalsInWorldSpace","_markAllMaterialsAsPrePassDirty","_textureIndices","_useSpecificClearForDepthTexture","_currentTarget","_setRenderTarget","prePassRenderTarget","currentRTisSceneRT","_refreshGeometryBufferRendererLink","doNotUseGeometryRendererFallback","_geometryBuffer","excludedMaterials","mrtCount","_mrtTypes","_mrtLayout","_mrtNames","_effectConfigurations","_needsCompositionForThisPass","disableGammaTransform","TextureFormats","_createRenderTarget","bindAttachmentsForEffect","isPrePassCapable","excluded","_multiTarget","_multiRenderAttachments","_reinitializeAttachments","multiRenderLayout","clearLayout","clearDepthLayout","defaultLayout","_clearAttachments","_clearDepthAttachments","purpose","_updateGeometryBufferLayout","texturesActivated","matches","prePassConstant","geometryBufferConstant","restoreAttachments","_beforeDraw","_setupOutputForThisPass","_prepareFrame","useCameraPostProcesses","_postProcessesSourceForThisPass","firstPP","_renderPostProcesses","postProcessChain","_afterDraw","_clear","_bindFrameBuffer","_setEnabled","_setRenderTargetEnabled","_unlinkInternalTexture","getEffectConfiguration","previousMrtCount","_enableTextures","createPostProcess","_disable","_getPostProcessesSource","postProcesses","secondaryCamera","cameraHasImageProcessing","_hasImageProcessing","_needsImageProcessing","firstCameraPP","firstPrePassPP","needsImageProcessing","isIPPAlreadyPresent","ppIndex","enablePrePass","useOrderIndependentTransparency","PrePassDirtyFlag","disablePrePassRenderer","PrePassRendererSceneComponent","NAME_PREPASSRENDERER","_beforeCameraDrawStage","STEP_BEFORECAMERADRAW_PREPASS","_beforeCameraDraw","STEP_AFTERCAMERADRAW_PREPASS","_afterCameraDraw","_beforeRenderTargetDrawStage","STEP_BEFORERENDERTARGETDRAW_PREPASS","_beforeRenderTargetDraw","_afterRenderTargetDrawStage","_afterRenderTargetDraw","_beforeClearStage","STEP_BEFORECLEAR_PREPASS","_beforeRenderTargetClearStage","STEP_BEFORERENDERTARGETCLEAR_PREPASS","_beforeRenderingMeshStage","STEP_BEFORERENDERINGMESH_PREPASS","_afterRenderingMeshStage","STEP_AFTERRENDERINGMESH_PREPASS","noPrePassRenderer","SubSurfaceScatteringPostProcess","subSurfaceConfiguration","texelSize","metersPerUnit","ssDiffusionS","ssDiffusionD","ssFilterRadii","SubSurfaceConfiguration","_ssDiffusionS","_ssDiffusionD","_ssFilterRadii","NAME_SUBSURFACE","ssDiffusionProfileColors","addDiffusionProfile","getDiffusionProfileParameters","clearAllDiffusionProfiles","maxScatteringDistance","_sampleBurleyDiffusionProfile","cdf","rcpS","enableSubSurfaceForPrePass","_subSurfaceConfiguration","disableSubSurfaceForPrePass","SubSurfaceSceneComponent","FluidRenderingObject","particleSize","_particleSize","onParticleSizeChanged","useVelocity","_useVelocity","_hasVelocity","_effectsAreDirty","particleThicknessAlpha","_depthEffectWrapper","_thicknessEffectWrapper","attributeNames","thicknessEffect","renderDepthTexture","numParticles","depthDrawWrapper","depthEffect","renderThicknessTexture","thicknessDrawWrapper","renderDiffuseTexture","FluidRenderingObjectParticleSystem","_particleSystem","useTrueRenderingForDiffuseTexture","_useTrueRenderingForDiffuseTexture","_blendMode","_onBeforeDrawParticleObserver","_originalRender","_updateInAnimate","FluidRenderingTextures","blurNumIterations","_blurNumIterations","numIterations","_blurPostProcesses","_rt","renderTargetBlur","_rtBlur","textureBlur","_textureBlurred","blurTextureSizeX","blurTextureSizeY","blurTextureType","blurTextureFormat","useStandardBlur","enableBlur","blurSizeDivisor","blurFilterSize","blurMaxFilterSize","blurDepthScale","_blurTextureSizeX","_blurTextureSizeY","_textureFormat","_blurTextureType","_blurTextureFormat","_useStandardBlur","_postProcessRunningIndex","rtBlur","textureBlurred","blurPostProcesses","applyBlurPostProcesses","renderTexture","textureBlurSource","debugName","targetSize","useBilinearFiltering","kernelBlurXPostprocess","_fixReusablePostProcess","kernelBlurYPostprocess","blurList","_getProjectedParticleConstant","_getDepthThreshold","isReusable","_currentRenderTextureInd","FluidRenderingTargetRenderer","needInitialization","_needInitialization","generateDiffuseTexture","_generateDiffuseTexture","debugFeature","_debugFeature","environmentMap","_environmentMap","enableBlurDepth","_enableBlurDepth","blurDepthSizeDivisor","_blurDepthSizeDivisor","blurDepthFilterSize","_blurDepthFilterSize","filterSize","_setBlurParameters","blurDepthNumIterations","_blurDepthNumIterations","blurDepthMaxFilterSize","_blurDepthMaxFilterSize","maxFilterSize","blurDepthDepthScale","_blurDepthDepthScale","enableBlurThickness","_enableBlurThickness","blurThicknessSizeDivisor","_blurThicknessSizeDivisor","blurThicknessFilterSize","_blurThicknessFilterSize","blurThicknessNumIterations","_blurThicknessNumIterations","useFixedThickness","_useFixedThickness","_onUseVelocityChanged","depthMapSize","_depthMapSize","thicknessMapSize","_thicknessMapSize","diffuseMapSize","_diffuseMapSize","compositeMode","_compositeMode","fluidColor","refractionStrength","fresnelClamp","specularPower","minimumThickness","dirLight","_bgDepthTexture","_invProjectionMatrix","_depthClearColor","_thicknessClearColor","_depthRenderTarget","_diffuseRenderTarget","_thicknessRenderTarget","_renderPostProcess","depthWidth","depthHeight","_initializeRenderTarget","diffuseWidth","diffuseHeight","thicknessWidth","thicknessHeight","_createLiquidRenderingPostProcess","_setBlurDepthParameters","_setBlurThicknessParameters","envMap","_clearTargets","fluidObject","currentRenderTarget","onlyPostProcesses","detachPostProcess","FluidRenderingObjectCustomParticles","_numParticles","_diffuseEffectWrapper","addBuffers","instanced","setNumParticles","diffuseDrawWrapper","diffuseEffect","FluidRenderingDepthTextureCopy","depthRTWrapper","_depthRTWrapper","_copyTextureToTexture","IsParticleSystemObject","IsCustomParticlesObject","_fluidRenderer","enableFluidRenderer","FluidRenderer","disableFluidRenderer","FluidRendererSceneComponent","NAME_FLUIDRENDERER","_gatherActiveCameraRenderTargetsStage","STEP_GATHERACTIVECAMERARENDERTARGETS_FLUIDRENDERER","_gatherActiveCameraRenderTargets","STEP_AFTERCAMERADRAW_FLUIDRENDERER","_renderTargets","fluidRenderer","_prepareRendering","renderObjects","vbuffers","_onEngineResizeObserver","targetRenderers","_sortRenderingObjects","getRenderObjectFromParticleSystem","_getParticleSystemIndex","addParticleSystem","targetRenderer","_setParticleSizeForRenderTargets","_setUseVelocityForRenderObject","renderObject","addCustomParticles","removeRenderObject","removeUnusedTargetRenderer","_removeUnusedTargetRenderers","removed","newList","attachPostProcess","firstPostProcess","copyDepthTextures","thicknessRT","thicknessTexture","copyDepthTexture","list2","particleSizes","renderingObject","curSize","forCamera","sourceCopyDepth","MaterialRSMCreateDefines","RSMCREATE","RSMCREATE_PROJTEXTURE","RSMCREATE_LIGHT_IS_SPOT","RSMCreatePluginMaterial","_lightColor","_hasProjectionTexture","_varAlbedoName","isSpot","getTypeID","Light","LIGHTTYPEID_SPOTLIGHT","spot","projectionTexture","SCENE_MRT_COUNT","getScaledIntensity","projectionTextureMatrix","normalizeDirection","computeTransformedInformation","transformedPosition","transformedDirection","CUSTOM_FRAGMENT_BEGIN","MaterialGIRSMRenderDefines","RENDER_WITH_GIRSM","GIRSMRenderPluginMaterial","_isPBR","textureGIContrib","outputTextureWidth","outputTextureHeight","WebXRHitTestLegacy","WebXRAbstractFeature","_xrSessionManager","_mat","_onSelectEnabled","lastNativeXRHitResults","onHitTestResultObservable","_onHitTestResults","xrResults","mats","hitMatrix","toggleModelMatrixHandInPlace","worldParentNode","xrHitResult","transformationMatrix","_onSelect","XRHitTestWithSelectEvent","referenceSpace","xrNativeFeatureName","XRHitTestWithRay","xrSession","xrRay","requestHitTest","targetRayPose","getPose","inputSource","targetRaySpace","targetRay","XRRay","attach","testOnPointerDownOnly","_onXRFrame","pose","getViewerPose","WebXRFeatureName","HIT_TEST","WebXRFeaturesManager","AddWebXRFeature","xrSessionManager","anchorIdProvider","WebXRAnchorSystem","referenceSpaceForFrameAnchors","_referenceSpaceForFrameAnchors","_lastFrameDetected","_trackedAnchors","_futureAnchors","onAnchorAddedObservable","onAnchorRemovedObservable","onAnchorUpdatedObservable","_tmpQuaternion","clearAnchorsOnSessionInit","onXRSessionInit","_populateTmpTransformation","addAnchorPointUsingHitTestResultAsync","hitTestResult","XRRigidTransform","createAnchor","nativeAnchor","xrTransformation","addAnchorAtPositionAndRotationAsync","forceCreateInCurrentFrame","xrAnchor","currentFrame","_createAnchorAtTransformation","anchors","doNotRemoveAnchorsOnSessionEnded","trackedAnchors","anchor","idxTracker","_findIndexInAnchorArray","_updateAnchorWithXRFrame","decompose","newAnchor","futureAnchor","xrFrame","anchorSpace","ANCHOR_SYSTEM","planeIdProvider","WebXRPlaneDetector","_detectedPlanes","onPlaneAddedObservable","onPlaneRemovedObservable","onPlaneUpdatedObservable","doNotRemovePlanesOnSessionEnded","XRPlane","initiateRoomCapture","detectedPlanes","worldInformation","planeIdx","xrPlane","lastChangedTime","currentTimestamp","_findIndexInPlaneArray","_updatePlaneWithXRPlane","newPlane","polygonDefinition","internalInit","preferredDetectorOptions","trySetPreferredPlaneDetectorOptions","updateWorldTrackingState","planeDetectionState","xrPoint","planeSpace","PLANE_DETECTION","WebXRBackgroundRemover","onBackgroundStateChangedObservable","_setBackgroundState","_xrFrame","newState","ignoreEnvironmentHelper","environmentHelperRemovalFlags","skyBox","backgroundSkybox","getMeshByName","ground","backgroundPlane","backgroundHelper","backgroundMeshes","BACKGROUND_REMOVER","WebXRControllerPhysics","_createPhysicsImpostor","xrController","impostorType","physicsProperties","PhysicsImpostor","SphereImpostor","impostorSize","impostorMesh","_debugMode","controllerMesh","grip","_controllers","_attachController","useControllerMesh","gamepad","onMotionControllerInitObservable","motionController","_doNotLoadControllerMesh","onModelLoadedObservable","rootMesh","MeshImpostor","oldPos","oldRotation","_delta","_lastTimestamp","_enablePhysicsDebug","controllerId","controllerData","addController","xrInput","controllers","_addNewAttachObserver","onControllerAddedObservable","onControllerRemovedObservable","controller","_detachController","enableHeadsetImpostor","headsetImpostorParams","restitution","_headsetMesh","_headsetImpostor","getHeadsetImpostor","getImpostorForController","setPhysicsProperties","newProperties","xrCamera","absoluteRotation","_lastXRViewerPose","linearVelocity","lv","setLinearVelocity","angularVelocity","av","setAngularVelocity","comparedPosition","_lastXRPose","comparedQuaternion","conjugateInPlace","xrControllerUniqueId","PHYSICS_CONTROLLERS","WebXRHitTest","_tmpMat","_tmpPos","_tmpQuat","_initHitTestSource","offsetRay","hitTestOptions","space","useReferenceSpace","viewerReferenceSpace","entityTypes","requestHitTestSource","hitTestSource","_xrHitTestSource","autoCloneTransformation","disablePermanentHitTest","onXRReferenceSpaceChanged","enableTransientHitTest","transientOffsetRay","requestHitTestSourceForTransientInput","transientHitTestProfile","hitSource","_transientXrHitTestSource","getHitTestResults","_processWebXRHitTestResult","getHitTestResultsForTransientInput","resultsPerInputSource","hitTestResults","quat","orientation","worldScalingFactor","FromFloat32ArrayToRefScaled","isTransient","WebXRFeaturePointSystem","featurePointCloud","_featurePointCloud","onFeaturePointsAddedObservable","onFeaturePointsUpdatedObservable","featurePointRawData","numberOfFeaturePoints","updatedFeaturePoints","addedFeaturePoints","rawIndex","confidenceValue","trySetFeaturePointCloudEnabled","FEATURE_POINTS","meshIdProvider","WebXRMeshDetector","_detectedMeshes","onMeshAddedObservable","onMeshUpdatedObservable","generateMeshes","convertCoordinateSystems","trySetMeshDetectorEnabled","doNotRemoveMeshesOnSessionEnded","detectedMeshes","xrMesh","_updateVertexDataWithXRMesh","partialVertexData","trySetPreferredMeshDetectorOptions","meshSpace","generatedMesh","createNormals","updateIndices","MESH_DETECTION","ImageTrackingScoreStatus","NotReceived","Waiting","Received","WebXRImageTracking","onUntrackableImageFoundObservable","onTrackableImageFoundObservable","onTrackedImageUpdatedObservable","_trackableScoreStatus","_trackedImages","getTrackedImageById","trackedImage","originalBitmap","getXRSessionInitExtension","images","_originalTrackingRequest","widthInMeters","estimatedRealWorldWidth","trackedImages","getImageTrackingResults","_checkScoresAsync","imageTrackedResults","imageObject","xrTrackingResult","realWorldWidth","measuredWidthInMeters","imageSpace","emulated","trackingState","getTrackedImageScores","imageScores","IMAGE_TRACKING","WebXRDomOverlay","_domOverlayType","_beforeXRSelectListener","_element","domOverlayState","supressXRSelectEvents","ev","domOverlayType","selectedElement","domOverlay","DOM_OVERLAY","WebXRControllerMovement","movementDirection","_movementDirection","movementEnabled","_featureContext","movementOrientationFollowsViewerPose","followsPose","movementSpeed","movementThreshold","rotationEnabled","rotationSpeed","rotationThreshold","_currentRegistrationConfigurations","_tmpRotationMatrix","_tmpTranslationDirection","_tmpMovementTranslation","_tempCacheQuaternion","registeredComponents","targetRayMode","initController","registration","allowedComponentTypes","componentOfType","getComponentOfType","mainComponentOnly","mainComponent","getMainComponent","componentSelectionPredicate","forceHandedness","handedness","registeredComponent","registrationConfiguration","onAxisChangedObserver","onAxisValueChangedObservable","axesData","axisChangedHandler","_movementState","_xrInput","onButtonChangedObserver","onButtonStateChangedObservable","buttonChangedHandler","customRegistrationConfigurations","REGISTRATIONS","movementOrientationFollowsController","orientationPreferredHandedness","moveX","moveY","rotateX","rotateY","rotationY","FromQuaternionToRef","MOVEMENT","WebXRControllerComponent","THUMBSTICK_TYPE","TOUCHPAD_TYPE","axes","movementState","featureContext","WebXRLightEstimation","_canvasContext","_reflectionCubeMap","_xrLightEstimate","_xrLightProbe","_xrWebGLBinding","_lightDirection","_intensity","_sphericalHarmonics","SphericalHarmonics","_cubeMapPollTime","_lightEstimationPollTime","_reflectionCubeMapTextureSize","directionalLight","onReflectionCubeMapUpdatedObservable","_updateReflectionCubeMap","cubeMapPollInterval","lp","_getXRGLBinding","getReflectionCubeMap","reflectionFormat","WebGLHardwareTexture","_getCanvasContext","disablePreFiltering","_hdrFilter","prefilter","createDirectionalLightSource","DirectionalLight","falloffType","LightConstants","FALLOFF_GLTF","HDRFiltering","reflectionCubeMapTexture","xrLightingEstimate","lightColor","lightDirection","lightIntensity","sphericalHarmonics","XRWebGLBinding","preferredReflectionFormat","requestLightProbe","xrLightProbe","disableCubeMapReflection","_isCube","setSceneEnvironmentTexture","lightEstimationPollInterval","getLightEstimate","primaryLightIntensity","rhsFactor","disableVectorReuse","primaryLightDirection","updateFromFloatsArray","sphericalHarmonicsCoefficients","disableSphericalPolynomial","updateFromHarmonics","LIGHT_ESTIMATION","WebXREyeTracking","onEyeTrackingStartedObservable","onEyeTrackingEndedObservable","onEyeTrackingFrameUpdateObservable","_eyeTrackingStartListener","_latestEyeSpace","gazeSpace","_gazeRay","_eyeTrackingEndListener","isEyeGazeValid","getEyeGaze","rotateByQuaternionToRef","EYE_TRACKING","CircleBuffer","initializer","_idx","FirstStepDetector","_entropy","onFirstStepDetected","posX","posY","forwardX","forwardY","_entropyDecayFactor","_entropyThreshold","samePointIdx","_samePointCheckStartIdx","DistanceSquared","_samePointSquaredDistanceThreshold","apexDistSquared","apexIdx","distSquared","_apexSquaredDistanceThreshold","apex","vec","sample","sumSquaredProjectionDistances","_squaredProjectionDistanceThreshold","forwardVec","axisVec","isApexLeft","leftApex","rightApex","_axisToApexShrinkFactor","_axisToApexExtendFactor","currentStepDirection","WalkingTracker","_leftApex","_rightApex","_axis","_axisLength","_forward","_steppingLeft","_maxT","_maxTPosition","_vitality","onMovement","onFootfall","steppingLeft","_updateTAndVitality","priorT","projDistSquared","_vitalityThreshold","deltaT","foot","Walker","_MillisecondsPerUpdate","_detector","_walker","_movement","_millisecondsSinceLastUpdate","movementThisFrame","WebXRWalkingLocomotion","WALKING_LOCOMOTION","locomotionTarget","_locomotionTarget","_isLocomotionTargetWebXRCamera","sessionManager","_up","_sessionManager","sessionMode","baseReferenceSpace","handednessScalar","WebXRCompositionLayerWrapper","WebXRLayerWrapper","getWidth","getHeight","layerType","createRTTProvider","_originalInternalTexture","WebXRCompositionLayerRenderTargetTextureProvider","WebXRLayerRenderTargetTextureProvider","layerWrapper","_lastSubImages","onRenderTargetTextureCreatedObservable","_compositionLayer","_getRenderTargetForSubImage","subImage","eye","lastSubImage","eyeIndex","colorTextureWidth","colorTextureHeight","_renderTargetTextures","depthStencilTextureWidth","depthStencilTextureHeight","_createRenderTargetTexture","colorTexture","_framebufferDimensions","framebufferWidth","framebufferHeight","_getSubImageForEye","getSubImage","getRenderTargetTextureForEye","getRenderTargetTextureForView","_setViewportForSubImage","xrViewport","trySetViewportForView","WebXRProjectionLayerWrapper","xrGLBinding","WebXRProjectionLayerRenderTargetTextureProvider","_projectionLayer","_getSubImageForView","getViewSubImage","defaultXRProjectionLayerInit","colorFormat","scaleFactor","clearOnAccess","defaultXRWebGLLayerInit","WebXRLayers","_existingLayers","_isMultiviewEnabled","_projectionLayerInitialized","_compositionLayerTextureMapping","_layerToRTTProviderMapping","_glContext","projectionLayerInit","preferMultiviewOnInit","createProjectionLayer","createXRWebGLLayer","XRWebGLLayer","WebXRWebGLLayerWrapper","_validateLayerInit","inXRSession","_extendXRLayerInit","projLayer","addXRSessionLayer","_createQuadLayer","babylonTexture","populatedParams","viewPixelWidth","viewPixelHeight","quadLayer","createQuadLayer","rtt","createRenderTargetTextureProvider","addFullscreenAdvancedDynamicTexture","distanceFromHeadset","rttProvider","babylonLayer","renderTargetTextures","renderOnlyInRenderTargetTextures","onXRSessionEnded","_addLensFlareSystem","flareSystem","wrappedLayer","setXRSessionLayers","wrappedLayers","renderStateInit","renderState","baseLayer","updateRenderState","_setBaseLayerWrapper","LAYERS","WebXRDepthSensing","rawValueToMeters","_rawValueToMeters","normDepthBufferFromNormView","_normDepthBufferFromNormView","depthUsage","depthDataFormat","latestInternalTexture","_cachedWebGLTexture","latestDepthBuffer","_cachedDepthBuffer","latestDepthImageTexture","_cachedDepthImageTexture","onGetDepthInMetersAvailable","_glBinding","_updateDepthInformationAndTextureCPUDepthUsage","_updateDepthInformationAndTextureWebGLDepthUsage","dataFormat","depthInfo","getDepthInformation","getDepthInMeters","NEAREST_SAMPLINGMODE","webglBinding","isDepthUsageDeclared","usagePreference","isDataFormatDeclared","dataFormatPreference","depthSensing","DEPTH_SENSING","XRSpaceWarpRenderTarget","motionVectorTexture","_originalPairing","_previousWorldMatrices","_previousTransforms","createMultiviewRenderTargetTexture","_disposeOnlyFramebuffers","_velocityMaterial","_materialHelperNeedsPreviousMatrices","_transformMatrixR","dumpForDebug","getActiveMeshes","tuple","bindSpaceWarpFramebuffer","getViewCount","WebXRSpaceWarpRenderTargetTextureProvider","_getBaseLayerWrapper","motionVectorTextureWidth","motionVectorTextureHeight","_colorTextureArray","_depthStencilTextureArray","disableRescaling","accessMotionVector","_eye","WebXRSpaceWarp","_onAfterRenderObserver","dependsOn","spaceWarpRTTProvider","_onAfterRender","_renderTargetTexture","colorBufferHalfFloat","SPACE_WARP","WebXRRawCameraAccess","_cachedInternalTextures","texturesData","viewIndex","cameraIntrinsics","onTexturesUpdatedObservable","doNotDisposeOnDetach","_updateCameraIntrinsics","cameraViewport","u0","ax","ay","viewportX","viewportY","_updateInternalTextures","getCameraImage","RAW_CAMERA_ACCESS","WebXRGenericHandController","WebXRAbstractMotionController","gamepadObject","GenericHandSelectGraspProfile","profileId","_getFilenameAndPath","_getModelLoadingConstraints","_processLoadedModel","_setRootMesh","_updateModel","WebXRMotionControllerManager","RegisterController","selectComponentId","components","gamepadIndices","rootNodeName","visualResponses","grasp","gamepadMapping","assetPath","none","WebXRMicrosoftMixedRealityController","MixedRealityProfile","_mapping","defaultButton","valueNodeName","unpressedNodeName","pressedNodeName","defaultAxis","minNodeName","maxNodeName","componentProperty","states","labelAnchorNodeName","touchPointNodeName","MODEL_LEFT_FILENAME","MODEL_RIGHT_FILENAME","MODEL_BASE_URL","glbLoaded","SceneLoader","IsPluginForExtensionAvailable","getComponentIds","disableAnimation","buttonMap","buttonMeshName","buttonMesh","_getChildByName","valueMesh","_getImmediateChildByName","pressedMesh","unpressedMesh","comp","_lerpTransform","isAxes","axisMap","axisMesh","minMesh","maxMesh","axisValues","xr_standard_trigger_pressed","valueNodeProperty","xr_standard_squeeze_pressed","xAxis","yAxis","xr_standard_touchpad_pressed","xr_standard_touchpad_xaxis_pressed","xr_standard_touchpad_yaxis_pressed","xr_standard_touchpad_xaxis_touched","xr_standard_touchpad_yaxis_touched","xr_standard_touchpad_axes_touched","xr_standard_thumbstick_pressed","xr_standard_thumbstick_xaxis_pressed","xr_standard_thumbstick_yaxis_pressed","WebXROculusTouchMotionController","_legacyMapping","_forceLegacyControllers","OculusTouchLayouts","_isQuest","QUEST_MODEL_BASE_URL","isQuest","triggerDirection","_modelRootNode","getChildren","thumbrest","WebXRHTCViveMotionController","HTCViveLayout","MODEL_FILENAME","menu","RegisterNativeTypeAsync","NativeXRFrame","_nativeImpl","_xrTransform","_xrPose","emulatedPosition","_xrPoseVectorData","fillPoses","getJointPose","fillJointRadii","_imageTrackingResults","baseSpace","getPoseData","MESH_BODY","MESH_HEAD","MESH_FACE","MATERIAL_BODY","MATERIAL_HEAD","MATERIAL_FACE","HEAD_TRANSFORM","_meshBody","_meshHead","_meshFace","_materialBody","_materialHead","_materialFace","_materialPluginBody","_materialPluginHead","_materialPluginFace","_headTransformation","HEAD_AVATAR_3D","updateBodyMeshPositionsFromBuffer","_updateMeshPositionsFromBuffer","loadHeadTransformationMatrix","headTransform","updateHeadTransformation","transpose","setPreTransformMatrix","getHeadTransformation","createHeadAvatarMaterial","customise","_customise","createHeadAvatarMesh","_meshFormat","meshID","pluginExtension","_updateMeshFromGLB","receiveShadows","_groundOffsetNode","_uuid","createMaterial","_morphIndexMap","numTargets","getTarget","updateGroundOffset","onMeshReadyObservable","_updateAnimationForAvatar","cleanupNode","destroyMaterial","getWasmLabels","wasmSupported","_wasmSupported","wasmEnabled","_wasmEnabled","wasmComputationFailed","bodyModelsLoaded","addWasmLabels","getWorkerWithoutPbmInit","_pathPromise","_coreWorkerProxy","getWorker","_coreWorkerProxyPbmInitialized","femaleCallback","maleCallback","checkIfBrowserSupportsWasmComputeServer","_blobCache","_terminateWorkers","_useMainWorker","_maxNumWorkers","terminateWorkers","useMainWorker","maxNumWorkers","useCache","printWasmNotSupportedWarning","requestVirtualTryOn2DRigid","requestVirtualTryOn2D","GARMENT_MINIFIED","AVATAR_MINIFIED","alphaMultiplicationMask","garmentMask","frontsideShadowTextureImage","garmentFrontsideShadowTextureImage","backsideShadowTextureImage","garmentBacksideShadowTextureImage","_matrixFromValuesVector","garmentFrontsideShadowTextureMeshToUVTransformation","frontsideShadowTextureMeshToUVTransformation","garmentBacksideShadowTextureMeshToUVTransformation","backsideShadowTextureMeshToUVTransformation","garmentMesh","garmentBacksideMesh","MESH_BACKSIDE_GLB","metrics","tryOn2DProcessingTimeMs","report","numGarments","MESH_POSITIONS","MESH_POSITIONS_BACKSIDE","avatarOverlapCorrectionMask","avatarShadowTextureUVTransformation","avatarShadowTextureImage","requestGarmentSizes","requestGarmentSizesWithMetricLabels","SizeTableCreationData","garmentSizesProcessingTimeMs","computeSR","requestSizeVisualisation2D","requestSizeRecommendation2D","visualizationRequested","sizeTable","measurementsConfig","sizeTableCreationData","availableSizes","computeVisualization","sizeRecommendationProcessingTimeMs","requestPersonalisedMannequin","inputMeasurementsConfig","appearanceModel","customBaseShape","baseShapeType","bodyModelID","customShape","measurementTargets","measurements","poseType","responseMeshFormat","learningRate","maxIterations","factorThreshold","resultState","BODYMODELSTATE","resultModel","DRACO","OBJ","resultVR","VISUAL_REPRESENTATION","personalizedMannequinCreationTimeMs","requestInteractiveAvatarEditingInit","EDITING_INFO","editingInfo","morphFactorOverrides","morphFactorsJson","alignmentOffsetMatrix","alignmentOffsetMatrixPositive","alignmentOffsetMatrixNegative","morphFactors","requestInteractiveAvatarEditingApply","resultEditingInfo","requestInputMeasurements","inputMeasurementRequestTimeMs","requestBodyModelState3DToAvatar2DConversion","cameraProperties","returnTryOn2DFiles","returnNonMinifiedAvatar","conversionConfig","bodyModelStateBlob","visualRepresentationBlob","headMeshBlob","faceMeshBlob","mannequinRendering","virtualMorphFactors","AVATAR","TEXTURE_BACKSIDE","avatar2DCreationProcessingTimeMs","setProviderCreationCallbacks","METADATA","preloadComponentForPrioritizedKeyList","TEXTURE_BACKSIDE_KTX","TEXTURE_BACKSIDE_LEGACY","TEXTURE_ALWAYS_IN_FRONT","TEXTURE_ALWAYS_IN_FRONT_UV_TRANSFORMATION","TEXTURE_DIFFUSE_LOW_RES","TEXTURE_OPACITY_LOW_RES","TEXTURE_BACKSIDE_LOW_RES","useRigidTryon","performTryonNonLinear","materialData","createRigidAnimation","setOverlapCorrectionMask","createWhite1x1Texture","setShadowTexture","tryonAnimationProgress","updateAvatarFromTryonResponse","dressingRoomTryOnProcessingTimeMs","avatarCreated","updateVisualisation","createTryonAnimation","createOverlapCorrectionMaskTexture","dressingRoomEnableSizeVisualisationProcessingTimeMs","needDepthPrePass","getTextureBacksideArea","SCREEN_SPACE_DEPTH_OFFSET_GARMENTS_SELF_OVERLAP","onBeforeDrawObservable","getHighestRenderingIndex","updateUnlitMaterials","transparencyShadow","pointers","pinchZoom","multiTouchPanAndZoom","multiTouchPanning","hasSkinningInformation","useUnlitTextures","updateMaterialUnlit","Mutex","aquire","OverlaySpinnerComponent_div_0_div_6_Template","OverlaySpinnerComponent","OverlaySpinnerComponent_div_0_Template","warningMessage","customElements","PictofitWebHTMLElement","VirtualDressingRoomComponent","onResize","viewer","virtualDressingRoom","changeSubscription","resetSubscription","currentTargetState","reconcileInProgress","showSizeRecommendation","reconcileMutex","spinner","reconcile","applyState","targetRequest","currentMode","VirtualDressingRoom3D","VirtualDressingRoom2DParallax","VirtualDressingRoom2D","VirtualDressingRoomFactory","backgroundHidden","manageSpinner","setupAvatar","setupScene","setupGarments","setupAccessories","setupPhysics","postProcessingEnabled","origWidth","origHeigth","useConstantAnimationDeltaTime","canvasType","saveBlob","cssText","WebViewer","pictofitWeb","stopMonitoring","ComputeServerWasm","vdrChange$","bufferTime","bufferTimeSpan","otherArgs","_a","_b","popScheduler","asyncScheduler","bufferCreationInterval","maxBufferSize","Infinity","bufferRecords","restartOnEmit","subs","arrRemove","startBuffer","Subscription","executeSchedule","bufferTimeSubscriber","recordsCopy","AccessoryPositionInfo","AccessoryMetadata","accessoryInput","garmentInput","stylingTemplateParametersJSON","focusGarment","sceneDescription","VirtualDressingRoomComponent_div_7_Template","invalidTimingValue","ɵRuntimeError","ngDevMode","optimizeGroupPlayer","players","NoopAnimationPlayer","ɵAnimationGroupPlayer","normalizeKeyframes$1","normalizer","keyframes","preStyles","postStyles","normalizedKeyframes","previousOffset","previousKeyframe","kf","isSameOffset","normalizedKeyframe","normalizedProp","normalizedValue","normalizePropertyName","ɵPRE_STYLE","AUTO_STYLE","normalizeStyleValue","animationFailed","listenOnPlayer","player","onStart","copyAnimationEvent","onDone","onDestroy","phaseName","makeAnimationEvent","triggerName","fromState","toState","totalTime","getOrSetDefaultValue","parseTimelineCommand","separatorPos","getParentElement","_CACHED_BODY","_IS_WEBKIT","containsElement","elm1","elm2","invokeQuery","querySelectorAll","elem","NoopAnimationDriver","validateStyleProperty","getBodyNode","containsVendorPrefix","matchesElement","_selector","computeStyle","easing","previousPlayers","scrubberAccessRequested","AnimationDriver","NOOP","AnimationStyleNormalizer","ONE_SECOND","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","_convertTimeValueToMS","resolveTiming","timings","allowNegativeValues","parseTimeExpression","delayMatch","easingVal","containsErrors","negativeStepValue","negativeDelayValue","setStyles","formerStyles","camelProp","dashCaseToCamelCase","eraseStyles","normalizeAnimationEntry","PARAM_REGEX","extractStyleParams","interpolateParams","original","localVal","invalidParamValue","DASH_CASE_REGEXP","visitDslNode","AnimationMetadataType","Trigger","visitTrigger","State","visitState","Transition","visitTransition","visitSequence","Group","visitGroup","Animate","visitAnimate","Keyframes","visitKeyframes","Style","visitStyle","visitReference","AnimateChild","visitAnimateChild","AnimateRef","visitAnimateRef","Query","visitQuery","Stagger","visitStagger","invalidNodeType","nodeType","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","strVal","valAndSuffixMatch","invalidCssUnitValue","ANY_STATE","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","makeLambdaFromStates","lhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","driver","warnings","AnimationAstBuilderVisitor","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","depCount","transitions","invalidTrigger","stateDef","invalidDefinition","styleAst","astParams","containsDynamicStyles","missingSubs","invalidState","metadataName","matchers","parseTransitionExpr","transitionValue","parseInnerTransitionStr","eventStr","parseAnimationAlias","invalidTransitionAlias","invalidExpression","normalizeAnimationOptions","furthestTime","innerAst","timingAst","constructTimingAst","makeTimingAst","strValue","dynamic","currentAnimateTimings","styleMetadata","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","metadataStyles","styleTuple","collectedEasing","styleData","endTime","startTime","collectedEntry","updateCollectedStyle","invalidParallelAnimation","firstStart","firstEnd","secondStart","secondEnd","validateStyleParams","invalidStyleParams","invalidKeyframes","totalKeyframesWithOffsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","invalidOffset","keyframeOffsetsOutOfOrder","generatedOffset","keyframesMissingOffsets","animateDuration","durationUpToThisFrame","parentSelector","includeSelf","normalizeSelector","hasAmpersand","optional","originalSelector","invalidStagger","currentTransition","unsupportedCSSPropertiesFound","normalizeParams","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","instructions","existingInstructions","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","currentTimeline","delayNextStep","timelines","timeline","containsAnimation","lastRootTimeline","allowOnlyTimelineStyles","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","previousNode","_applyAnimationRefDelays","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","incrementTime","hasCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","currentQueryIndex","parentContext","tl","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","_copyOptions","oldParams","newTime","fork","updatedTimings","SubTimelineBuilder","stretchStartingKeyframe","invalidQuery","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_localTimelineStyles","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","flattenStyles","allStyles","allProperties","getFinalKeyframe","details1","details0","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","decimalPoints","mult","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","nextState","oneOrMoreTransitionsMatch","matchFns","buildStyles","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","elm","userParams","defaults","AnimationStateStyles","defaultParams","combinedParams","AnimationTrigger","_normalizer","transitionFactories","balanceProperties","fallbackTransition","createFallbackTransition","containsQueries","matchTransition","matchStyles","stateMap","key1","key2","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","bodyNode","_animations","_playersById","registerFailed","_buildPlayer","autoStylesMap","inst","missingOrDestroyedAnimation","createAnimationFailed","_getPlayer","missingPlayer","baseEvent","QUEUED_CLASSNAME","DISABLED_CLASSNAME","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","isObj","normalizeTriggerValue","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","hostElement","_triggers","_elementListeners","_hostClassName","addClass","phase","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","triggersWithStates","statesByElement","afterFlush","_getTrigger","trigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","k2","reportError","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","removeClass","deregister","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","previousTriggersValues","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","removeNode","childElementCount","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","removalFlag","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","markedForDestroy","d0","TransitionAnimationEngine","onRemovalComplete","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","queuedPlayers","createNamespace","_balanceNamespaceList","collectEnterElement","namespaceList","ancestor","ancestorNs","unshift","registerTrigger","_fetchNamespace","stateValue","isElementNode","markElementAsDisabled","notify","hostNS","_buildInstruction","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","whenRenderingDone","cleanupFns","_flushAnimations","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","nodeIsOrphaned","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","parentPlayer","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","beforeDestroy","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","flattenGroupPlayers","finalPlayers","_flattenGroupPlayersRecur","wrappedPlayer","deleteOrUnsetInMap","currentValues","_player","_containsRealPlayer","_queuedCallbacks","callbacks","triggerCallback","_queueEvent","hasStarted","cloakElement","oldValue","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","roots","rootMap","nodeSet","localRootMap","getRoot","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","componentId","triggerBuildFailed","buildTrigger","onInsert","onRemove","disableAnimations","eventPhase","cb","SpecialCasedStyles","initialStylesByElement","_startStyles","_endStyles","initialStyles","_initialStyles","filterNonAnimatableStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","_onDoneFns","_onStartFns","_onDestroyFns","_initialized","_finished","_destroyed","_originalOnDoneFns","_originalOnStartFns","currentSnapshot","_duration","_delay","_onFinish","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","onFinish","_resetDomPlayerState","_convertKeyframesToObject","kfs","fromEntries","methods","WebAnimationsDriver","validateAnimatableStyleProperty","playerOptions","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","normalizeKeyframes","balancePreviousStylesIntoKeyframes","startingKeyframe","missingStyleProps","specialStyles","packageNonAnimatableStyles","startStyles","endStyles","DISABLE_ANIMATIONS_FLAG","BaseAnimationRenderer","delegate","_onDestroy","ɵtype","destroyNode","createComment","createText","newChild","refChild","isMove","oldChild","isHostElement","selectRootElement","selectorOrNode","preserveContent","nextSibling","el","removeStyle","setProperty","AnimationRenderer","resolveElementFromTarget","parseTriggerCallbackName","dotIndex","scheduleListenerCallback","AnimationRendererFactory","_zone","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","createRenderer","onRendererDestroy","animationTriggers","begin","_scheduleCountTask","animationCallbacksBuffer","SHARED_ANIMATION_PROVIDERS","ɵAnimationStyleNormalizer","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","ɵAnimationEngine","InjectableAnimationEngine","inject","ɵChangeDetectionScheduler","RendererFactory2","instantiateRendererFactory","zone","ɵAnimationRendererFactory","ɵDomRendererFactory2","NgZone","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","ANIMATION_MODULE_TYPE","BROWSER_NOOP_ANIMATIONS_PROVIDERS","BrowserAnimationsModule","withConfig","BrowserModule","ProfileStore","showTemplate","currentPage_r1","ProfilePageComponent","auth","userService","profileStore","givenName","familyName","apiKeysView","securityView","userInfoView","ProfilePageComponent_ng_container_2_Template","ProfilePageComponent_ng_template_4_Template","ProfilePageComponent_ng_template_6_Template","ProfilePageComponent_ng_template_8_Template","CollectionInfoComponent","onFileSelected","fileReader","fileContent","BaseListRowComponent","extended","updateReference","removeReference","moveReferenceUp","moveReferenceDown","disableMoveButtons","RowButtonsComponent","moveRowUp","moveRowDown","removeRow","disableMove","AssetListRowComponent","coerceNumberProperty","fallbackValue","_isNumberValue","coerceElement","elementOrRef","ElementRef","auditTime","audit","durationSelector","lastValue","durationSubscriber","isComplete","endDuration","cleanupDuration","timer","hasV8BreakIterator","v8BreakIterator","supportsPassiveEvents","Platform","_platformId","isBrowser","isPlatformBrowser","EDGE","TRIDENT","BLINK","chrome","CSS","WEBKIT","IOS","FIREFOX","ANDROID","SAFARI","PLATFORM_ID","normalizePassiveListenerOptions","supportsPassiveEventListeners","capture","RtlScrollAxisType","NEGATED","INVERTED","rtlScrollAxisType","scrollBehaviorSupported","shadowDomIsSupported","getRtlScrollAxisType","scrollContainer","containerStyle","overflow","contentStyle","scrollLeft","_getShadowRoot","_supportsShadowDom","head","createShadowRoot","attachShadow","getRootNode","ShadowRoot","_getEventTarget","composedPath","DIR_DOCUMENT","DIR_DOCUMENT_FACTORY","RTL_LOCALE_PATTERN","Directionality","_resolveDirectionality","rawValue","ScrollDispatcher","_ngZone","_scrolled","_globalSubscription","_scrolledCount","scrollContainers","scrollable","elementScrolled","scrollableReference","scrolled","auditTimeInMs","_addGlobalListener","_removeGlobalListener","ancestorScrolled","elementOrElementRef","getAncestorScrollContainers","scrollingContainers","_scrollableContainsElement","_getWindow","defaultView","scrollableElement","getElementRef","fromEvent","CdkScrollable","scrollDispatcher","_elementScrolled","scrollTo","isRtl","scrollHeight","scrollWidth","_applyScrollToOptions","supportsScrollBehavior","Element","scrollToFunction","measureScrollOffset","LEFT","ViewportRuler","_change","_changeListener","_viewportSize","getViewportSize","_updateViewportSize","getViewportRect","scrollPosition","getViewportScrollPosition","documentRect","scrollY","scrollX","throttleTime","CdkScrollableModule","extendStyles","importantProperties","removeProperty","toggleNativeDragInteractions","userSelect","toggleVisibility","combineTransforms","initialTransform","matchElementSize","sourceRect","getTransform","getMutableClientRect","isInsideClientRect","clientRect","adjustDomRect","domRect","isPointerNearDomRect","pointerX","pointerY","xThreshold","yThreshold","ParentPositionTracker","handleScroll","cachedPosition","newTop","newLeft","viewportScrollPosition","topDifference","leftDifference","deepCloneNode","cloneNode","descendantsWithId","nodeName","transferCanvasData","transferInputData","transferData","descendantElements","cloneElements","cloneUniqueId","rootNodes","ELEMENT_NODE","parseCssTimeUnitsToMs","parseCssPropertyValue","computedStyle","getPropertyValue","part","PreviewRef","_rootElement","_initialDomRect","_previewTemplate","_previewClass","_pickupPositionOnPage","_initialTransform","_zIndex","_preview","_createPreview","showPopover","_previewEmbeddedView","setTransform","getTransitionDuration","getTransformTransitionDurationInMs","transitionedProperties","propertyIndex","rawDurations","rawDelays","handler","previewConfig","previewClass","previewTemplate","preview","rootRect","matchSize","viewContainer","passiveEventListenerOptions","passive","activeEventListenerOptions","activeCapturingEventOptions$1","dragImportantProperties","DragRef","_dropContainer","_toggleNativeDragInteractions","_handles","_config","_viewportRuler","_dragDropRegistry","_passiveTransform","_activeTransform","_hasStartedDragging","_moveEvents","_pointerMoveSubscription","EMPTY","_pointerUpSubscription","_scrollSubscription","_resizeSubscription","_boundaryElement","_nativeInteractionsEnabled","_disabledHandles","dragStartDelay","beforeStarted","started","released","ended","entered","exited","dropped","moved","_pointerDown","targetHandle","_getTargetHandle","_initializeDragSequence","_pointerMove","pointerPosition","_getPointerPositionOnPage","dragStartThreshold","isDelayElapsed","_dragStartTime","_getDragStartDelay","_endDragSequence","isDragging","isReceiving","cancelable","_startDragSequence","constrainedPointerPosition","_getConstrainedPointerPosition","_hasMoved","_lastKnownPointerPosition","_updatePointerDirectionDelta","_updateActiveDropContainer","constrainPosition","activeTransform","_applyRootElementTransform","_getDragDistance","_pointerDirectionDelta","_pointerUp","_nativeDragStart","withRootElement","withParent","parentDragRef","_parentPositions","registerDragItem","getPlaceholderElement","_placeholder","getRootElement","getVisibleElement","withHandles","disabledHandles","withPreviewTemplate","withPlaceholderTemplate","_placeholderTemplate","_removeRootElementListeners","SVGElement","_ownerSVGElement","ownerSVGElement","withBoundaryElement","boundaryElement","_containInsideBoundaryOnResize","_parentDragRef","_anchor","_destroyPreview","_destroyPlaceholder","removeDragItem","_removeListeners","disableHandle","enableHandle","withDirection","_withDropContainer","getFreeDragPosition","setFreeDragPosition","withPreviewContainer","_previewContainer","_sortFromLastPointerPosition","shadowDomSelectStart","_placeholderRef","stopDragging","webkitTapHighlightColor","_rootElementTapHighlight","_stopScrolling","_animatePreviewToPlaceholder","_cleanupDragArtifacts","_cleanupCachedDimensions","dropPoint","isTouchEvent","_lastTouchEventTime","shadowRoot","dropContainer","_createPlaceholderElement","_getPreviewInsertionPoint","replaceChild","_initialContainer","_initialIndex","getItemIndex","getScrollableParents","referenceElement","isTouchSequence","isAuxiliaryMouseButton","isSyntheticEvent","isFakeEvent","isFakeTouchstartFromScreenReader","touches","changedTouches","isFakeMousedownFromScreenReader","draggable","rootStyles","pointerMove","pointerUp","scrollEvent","_updateOnScroll","_boundaryRect","_pickupPositionInElement","_getPointerPositionInElement","_pointerPositionAtLastDirectionChange","startDragging","_previewRect","isPointerOverContainer","_isOverContainer","previousIndex","previousContainer","rawX","rawY","newContainer","_getSiblingContainerFromPosition","exit","sortingDisabled","_startScrollingIfNecessary","_sortItem","_applyPreviewTransform","placeholderRect","placeholderConfig","placeholderTemplate","elementRect","handleElement","referenceRect","targetTouches","_getViewportScrollPosition","pageX","pageY","svgMatrix","getScreenCTM","svgPoint","createSVGPoint","matrixTransform","dropContainerLock","lockAxis","pickupX","pickupY","boundaryRect","previewWidth","previewHeight","_getPreviewRect","clamp$1","pointerPositionOnPage","positionSinceLastChange","changeX","changeY","pointerDirectionChangeThreshold","shouldEnable","pickupPosition","leftOverflow","rightOverflow","topOverflow","bottomOverflow","scrollDifference","_cachedShadowRoot","initialParent","previewContainer","documentRef","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","clamp","SingleAxisSortStrategy","_itemPositions","_previousSwap","drag","overlaps","withItems","pointerDelta","siblings","_getItemIndexFromPointerPosition","isHorizontal","currentItem","siblingAtNewPosition","itemOffset","_getItemOffsetPx","siblingOffset","_getSiblingOffsetPx","oldOrder","moveItemInArray","fromIndex","toIndex","sibling","isDraggedItem","elementToOffset","activeDraggables","_activeDraggables","newPositionReference","_shouldEnterAsFirstChild","_cacheItemPositions","withSortPredicate","_sortPredicate","getActiveItemsSnapshot","updateOnScroll","elementToMeasure","immediateSibling","itemPositions","lastItemRect","firstItemRect","AutoScrollVerticalDirection","UP","DOWN","AutoScrollHorizontalDirection","RIGHT","DropListRef","autoScrollDisabled","autoScrollStep","enterPredicate","sortPredicate","receivingStarted","receivingStopped","_isDragging","_draggables","_siblings","_activeSiblings","_viewportScrollSubscription","_verticalScrollDirection","_horizontalScrollDirection","_stopScrollTimers","_startScrollInterval","animationFrameScheduler","_scrollNode","scrollStep","scrollBy","withScrollableParents","registerDropContainer","_sortStrategy","removeDropContainer","_draggingStarted","_notifyReceivingSiblings","_cacheParentPositions","previousItems","connectedTo","withOrientation","_scrollableElements","_domRect","scrollNode","verticalScrollDirection","horizontalScrollDirection","getElementScrollDirections","computedVertical","getVerticalScrollDirection","computedHorizontal","getHorizontalScrollDirection","_initialScrollSnap","msScrollSnapType","scrollSnapType","_listenToScrollEvents","_stopReceiving","_canReceive","elementFromPoint","_startReceiving","activeSiblings","initiator","receiver","draggedItems","activeCapturingEventOptions","activeApps","_ResetsLoader","hostAttrs","DragDropRegistry","_appRef","ApplicationRef","_environmentInjector","EnvironmentInjector","_dropInstances","_dragInstances","_activeDragInstances","_globalListeners","_draggingPredicate","scroll","_preventDefaultWhileDragging","_persistentTouchmoveListener","_loadResets","_clearGlobalListeners","streams","eventOptions","environmentInjector","DEFAULT_CONFIG","DragDrop","createDrag","createDropList","CDK_DRAG_PARENT","CDK_DRAG_HANDLE","CdkDragHandle","_stateChanges","_parentDrag","_addHandle","_removeHandle","HasDecoratorInputTransform","booleanAttribute","CDK_DRAG_CONFIG","CDK_DROP_LIST","CdkDrag","_dragRef","_dir","dragDrop","_changeDetectorRef","_selfHandle","movedEvent","_assignDefaults","_dropListRef","_syncInputs","_handleEvents","_updateRootElement","_setupHandlesListener","freeDragPosition","rootSelectorChange","rootElementSelector","positionChange","_setPreviewTemplate","_resetPreviewTemplate","_setPlaceholderTemplate","_resetPlaceholderTemplate","closest","_getBoundaryElement","boundary","startEvent","releaseEvent","endEvent","enterEvent","exitEvent","dropEvent","draggingDisabled","handleElements","handleInstance","dragRef","i1$1","exportAs","CDK_DROP_LIST_GROUP","_uniqueIdCounter","CdkDropList","_dropLists","_group","_scrollDispatcher","_unsortedItems","_setupInputSyncSubscription","_items","_syncItemsWithRef","getSortedItems","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","coerceArray","_scrollableParentsResolved","scrollableParents","listAutoScrollDisabled","listOrientation","DragDropModule","BaseListComponent","addOrUpdateReference","removeRef","updateVisibility","moveRefUp","moveRefDown","identify","data$","openClicked","amount","reference_r3","AssetListComponent","AssetListComponent_span_11_Template","AssetListComponent_div_13_Template","OutfitListRowComponent","_simpleFileService","btoa","OutfitListComponent","OutfitListComponent_span_11_Template","OutfitListComponent_div_12_Template","GarmentListRowComponent","onGarmentLinkChanged","garmentLink","onCurrencyChanged","price","currency","onPriceChanged","GarmentListComponent","GarmentListComponent_span_11_Template","GarmentListComponent_div_12_Template","AvatarListRowComponent","groupChanged","moveUpGroup","moveDownGroup","dropdownValueGroup","onShoeVariantChanged","shoeName","onGroupChanged","toBeMoved","g_r4","onGroupHeightChanged","onGroupGenderChanged","moveGroupUp","moveGroupDown","onDelete","heightValidation","i_r7","AvatarGroupListComponent_div_12_div_2_Template","AvatarGroupListComponent_div_12_div_3_Template","AvatarGroupListComponent","storeSubscription","dataSusbcription","avatarCount","confirm","currentGroup","updateStoreAvatars","identifyGroup","deleteGroup","processData","AvatarGroupListComponent_span_11_Template","AvatarGroupListComponent_div_12_Template","shoeOption_r2","onChanged","validate","CollectionSettingsComponent","addNewShoeType","shoeOption","optionName","CollectionSettingsComponent_h3_8_Template","CollectionSettingsComponent_div_9_Template","tmp_6_0","CollectionMainComponent","downloadCollection","previewCollection","replaceAll","_screenMode","_alerrtService","_fs","_inputDataValid","outfitsPromise","resultOutfits","outfitData","CollectionScreenComponent","collectionScreenStore","_collectionId","clearPageActionBar","canMatchCollectionCreator","pathMatch","loadChildren","RequestDetailModule","canMatch","AppRoutingModule","PRODUCT_TYPE_GROUP","PRODUCTS","OUTFITS","BreadcrumbService","breadcrumbs","resetBreadcrumbs","getBreadcrumb","currentId","routeType","snapshot","pathParameters","addBreadcrumb","dropdown","parentId","tooltip","getBreadcrumbTooltip","parentRouteIndex","toLocaleString","alert_r2","onDismissAlert","dismissible","SimpleAlertComponent_div_0_div_1_Template","simpleAlerts","SimpleAlertComponent","alerts","dismissedAlert","SimpleAlertComponent_div_0_Template","modal_r1","stack_r3","index_r4","headerTemplate","closeAfterConfirm","ModalContainerComponent_ng_template_3_div_0_ng_container_3_Template","ModalContainerComponent_ng_template_3_div_0_span_7_Template","ModalContainerComponent_ng_template_3_div_0_ng_container_9_Template","tmp_9_0","showClose","ModalContainerComponent_ng_template_3_div_0_Template","ModalContainerComponent","dismissable","ModalContainerComponent_ng_container_0_Template","ModalContainerComponent_ng_template_3_Template","ModalContainerComponent_ng_template_5_Template","createFeatureSelector","selectCurrentCustomer","selectMyCustomers","myCustomerList","customer_r2","switchCustomer","CustomerSelectorComponent_div_10_div_1_span_4_Template","CustomerSelectorComponent_div_10_div_1_span_6_Template","CustomerSelectorComponent_div_10_div_1_Template","customersToDisplay$","showSelection","CustomerSelectorComponent","myCustomers$","myCustomers","CustomerSelectorComponent_div_10_Template","CustomerSelectorComponent_div_11_Template","tmp_0_0","showMenu","createNewRequest","user_r7","navigateToProfile","MenuComponent_div_3_div_19_div_1_Template","currentUser$","MenuComponent_div_3_div_5_Template","MenuComponent_div_3_div_7_Template","MenuComponent_div_3_div_10_Template","MenuComponent_div_3_div_14_Template","MenuComponent_div_3_div_17_Template","MenuComponent_div_3_div_19_Template","MenuComponent_div_3_div_21_Template","loggedIn$","MenuComponent","profileModal","MenuComponent_div_3_Template","MenuComponent_div_4_Template","MenuComponent_ng_template_5_Template","parentLink","RRTopAppBarComponent","cdr","pageContext","titleText","actionBarComponent","actionBar","onCreate","showActionBar","doLogout","RRTopAppBarComponent_span_3_Template","RRTopAppBarComponent_rr_card_17_Template","acceptAll","acceptCore","UserDataPermissionComponent","userDataPermission","acceptUserData","reload","UserDataPermissionComponent_ng_template_0_Template","_c4","logoutClicked","AppComponent","_activatedRoute","_breadcrumbService","createNewRequestHeader","NavigationEnd","outlet","PRIMARY_OUTLET","thisPath","routeConfig","activeRouteIndex","getBreadcrumbs","logoutPrompt","showHelpModal","goToDocumentation","AppComponent_ng_template_5_Template","AppComponent_ng_template_7_Template","AppComponent_ng_template_10_Template","NgJsonEditorModule","static","CoreModule","SDK_VERSION","GLOBAL_OBJ","getGlobalSingleton","creator","gbl","__SENTRY__","versionedCarrier","DEFAULT_ENVIRONMENT","getMainCarrier","getSentryCarrier","carrier","objectToString","isError","wat","isInstanceOf","isBuiltin","isErrorEvent","isDOMError","isString","isParameterizedString","isPrimitive","isPlainObject","isEvent","isThenable","isVueViewModel","__isVue","_isVue","DEFAULT_MAX_STRING_LENGTH","htmlTreeAsString","currentElem","MAX_TRAVERSE_HEIGHT","sepLength","nextStr","keyAttrs","maxStringLength","_htmlElementAsString","tagName","sentryComponent","sentryElement","keyAttrPairs","keyAttr","keyAttrPair","classes","allowedAttrs","DEBUG_BUILD","__SENTRY_DEBUG__","CONSOLE_LEVELS","originalConsoleMethods","consoleSandbox","worldwide_GLOBAL_OBJ","wrappedFuncs","wrappedLevels","originalConsoleMethod","makeLogger","truncate","safeJoin","delimiter","stringMatchesSomePattern","testString","patterns","requireExactStringMatch","isMatchingPattern","isRegExp","replacementFactory","wrapped","markFunctionWrapped","addNonEnumerableProperty","getOriginalFunction","__sentry_original__","convertToPlainObject","getOwnProperties","newObj","serializeEventTarget","isElement","extractedProps","dropUndefinedKeys","inputValue","_dropUndefinedKeys","memoizationMap","isPojo","memoVal","uuid4","msCrypto","getRandomByte","randomUUID","getRandomValues","typedArray","getFirstException","getEventDescription","event_id","eventId","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","mechanism","handled","mergedData","checkOrSetAlreadyCaught","__sentry_captured__","arrayify","generatePropagationContext","traceId","spanId","ONE_SECOND_IN_MS","dateTimestampInSeconds","timestampInSeconds","createUnixTimestampInSecondsFunc","performance","approxStartingTimeOrigin","timeOrigin","_browserPerformanceTimeOriginMode","updateSession","ipAddress","ip_address","did","username","abnormal_mechanism","ignoreDuration","sid","environment","browserPerformanceTimeOrigin","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","SCOPE_SPAN_FIELD","_setSpanForScope","span","_getSpanForScope","ScopeClass","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","_propagationContext","newScope","_level","_session","_transactionName","_fingerprint","_requestSession","_client","_lastEventId","setClient","setLastEventId","lastEventId","getClient","addScopeListener","addEventProcessor","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setTag","setExtras","setExtra","extra","setFingerprint","fingerprint","setLevel","setTransactionName","setContext","setSession","getSession","captureContext","scopeToMerge","scopeInstance","Scope","getScopeData","contexts","propagationContext","maxBreadcrumbs","maxCrumbs","mergedBreadcrumb","getLastBreadcrumb","clearBreadcrumbs","addAttachment","clearAttachments","eventProcessors","sdkProcessingMetadata","transactionName","setSDKProcessingMetadata","setPropagationContext","getPropagationContext","captureException","hint","syntheticException","originalException","captureMessage","captureEvent","AsyncContextStack","isolationScope","assignedScope","assignedIsolationScope","_isolationScope","withScope","_pushScope","maybePromiseResult","_popScope","getStackTop","getScope","getIsolationScope","getAsyncContextStack","sentry","getDefaultCurrentScope","getDefaultIsolationScope","withSetScope","withIsolationScope","getAsyncContextStrategy","acs","getStackAsyncContextStrategy","stackStrategy_withIsolationScope","withSetIsolationScope","getCurrentScope","debugIdStackParserCache","STACKTRACE_FRAME_LIMIT","UNKNOWN_FUNCTION","WEBPACK_ERROR_REGEXP","STRIP_FRAME_REGEXP","createStackParser","sortedParsers","skipFirstLines","framesToPop","frames","cleanedLine","parser","stripSentryFramesAndReverse","localStack","getLastStackFrame","function","stackParserFromStackParserOptions","stackParser","defaultFunctionName","getFunctionName","getFramesFromEvent","stacktrace","maxProperties","ERROR","normalizeToSize","jsonSize","utf8Length","encodeURI","memo","memoBuilder","hasWeakSet","WeakSet","memoize","unmemoize","stringified","stringifyValue","_events","objName","getConstructorName","__sentry_skip_normalization__","remainingDepth","__sentry_override_normalization_depth__","valueWithToJSON","numAdded","visitable","visitKey","States","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","PENDING","RESOLVED","executor","__init","__init2","__init3","__init4","_handlers","onfulfilled","onrejected","_executeHandlers","onfinally","isRejected","_setResult","cachedHandlers","notifyEventProcessors","processors","SENTRY_BAGGAGE_KEY_PREFIX","SENTRY_BAGGAGE_KEY_PREFIX_REGEX","baggageHeaderToObject","baggageHeader","baggageEntry","keyOrValue","decodeURIComponent","SEMANTIC_ATTRIBUTE_SENTRY_SOURCE","SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","METRICS_SPAN_FIELD","getMetricSummaryJsonForSpan","exportKey","summary","SPAN_STATUS_UNSET","SPAN_STATUS_OK","TRACE_FLAG_SAMPLED","spanToTraceContext","span_id","trace_id","spanContext","parent_span_id","spanToJSON","spanTimeInputToSeconds","ensureTimestampInSeconds","spanIsSentrySpan","getSpanJSON","spanIsOpenTelemetrySdkTraceBaseSpan","parentSpanId","start_timestamp","getStatusMessage","_metrics_summary","ROOT_SPAN_FIELD","getRootSpan","FROZEN_DSC_FIELD","getDynamicSamplingContextFromClient","getOptions","publicKey","public_key","getDsn","dsc","getDynamicSamplingContextFromSpan","rootSpan","frozenDsc","traceState","traceStateDsc","dscOnTraceState","baggageHeaderToDynamicSamplingContext","baggageObject","parseBaggageHeader","currBaggageObject","dynamicSamplingContext","jsonSpan","maybeSampleRate","sample_rate","hasTracingEnabled","maybeOptions","__SENTRY_TRACING__","enableTracing","sampled","spanIsSampled","traceFlags","mergeScopeData","mergeData","mergeAndOverwriteScopeData","mergeVal","prepareEvent","normalizeDepth","normalizeMaxBreadth","prepared","integrations","applyClientOptions","dist","maxValueLength","applyIntegrationsMetadata","integrationNames","applyDebugIds","filenameDebugIdMap","getFilenameToDebugIdMap","debugIdMap","_sentryDebugIds","debugIdStackFramesCache","cachedDebugIdStackFrameCache","debugIdStackTrace","parsedStack","cachedParsedStack","stackFrame","debug_id","finalScope","getFinalScope","clientEventProcessors","getEventProcessors","getGlobalScope","applyScopeDataToEvent","applyDataToEvent","cleanedExtra","cleanedTags","cleanedUser","cleanedContexts","applySpanToEvent","trace","applyFingerprintToEvent","applyBreadcrumbsToEvent","mergedBreadcrumbs","applySdkMetadataToEvent","applyDebugMeta","abs_path","debug_meta","code_file","normalizeEvent","maxBreadth","spans","captureContextKeys","parseEventHintOrCaptureContext","hintIsScopeOrFunction","hintIsScopeContext","startSession","currentScope","makeSession","sessionToJSON","user_agent","currentSession","endSession","closeSession","_sendSessionUpdate","captureSession","installedIntegrations","getIntegrationsToSetup","defaultIntegrations","userIntegrations","integration","isDefaultInstance","finalIntegrations","filterDuplicates","integrationsByName","currentInstance","existingInstance","debugIndex","debugInstance","afterSetupIntegrations","afterAllSetup","setupIntegration","integrationIndex","setupOnce","setup","preprocessEvent","processEvent","DEFAULT_IGNORE_ERRORS","inboundFiltersIntegration","_inboundFiltersIntegration","_hint","clientOptions","mergedOptions","_mergeOptions","allowUrls","denyUrls","ignoreErrors","disableErrorDefaults","ignoreTransactions","ignoreInternal","_shouldDropEvent","_isSentryError","_isIgnoredError","_getPossibleEventMessages","possibleMessages","lastException","_isUselessError","_isIgnoredTransaction","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","_getLastValidUrl","originalFunctionToString","SETUP_CLIENTS","functionToStringIntegration","_functionToStringIntegration","originalFunction","dedupeIntegration","_dedupeIntegration","previousEvent","currentEvent","_isSameMessageEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_isSameExceptionEvent","previousException","_getExceptionFromEvent","currentException","currentFrames","previousFrames","frameA","frameB","lineno","colno","currentFingerprint","previousFingerprint","DSN_REGEX","dsnToString","dsn","withPassword","projectId","protocol","dsnFromComponents","makeDsn","dsnFromString","lastPath","projectMatch","validateDsn","isValidProtocol","SENTRY_API_VERSION","getBaseApiEndpoint","getEnvelopeEndpointWithUrlEncodedAuth","tunnel","sdkInfo","_getIngestEndpoint","_encodedAuth","urlEncode","sentry_key","sentry_version","sentry_client","supportsFetch","Request","Response","isNativeFunction","handlers","instrumented","addHandler","maybeInstrument","instrumentFn","triggerHandlers","typeHandlers","lastHref","addHistoryInstrumentationHandler","instrumentHistory","supportsHistory","chromeVar","app","runtime","pushState","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","createEnvelope","addItemToEnvelope","envelope","newItem","forEachEnvelopeItem","envelopeItems","envelopeItem","encodeUTF8","encodePolyfill","serializeEnvelope","envHeaders","itemHeaders","stringifiedPayload","concatBuffers","buf","createAttachmentEnvelopeItem","content_type","attachment_type","attachmentType","ITEM_TYPE_TO_DATA_CATEGORY_MAP","sessions","client_report","user_report","profile_chunk","replay_event","replay_recording","check_in","feedback","statsd","envelopeItemTypeToDataCategory","getSdkMetadataForEnvelopeHeader","metadataOrEvent","SentryError","logLevel","ALREADY_SEEN_ERROR","BaseClient","_integrations","_numProcessing","_outcomes","_hooks","_dsn","_metadata","_transport","transport","recordDroppedEvent","transportOptions","hintWithEventId","eventFromException","_captureEvent","eventMessage","promisedEvent","eventFromMessage","capturedSpanScope","sendSession","getSdkMetadata","getTransport","_isClientDoneProcessing","clientFinished","transportFlushed","eventProcessor","_setupIntegrations","getIntegrationByName","integrationName","addIntegration","isAlreadyInstalled","createEventEnvelope","eventType","enhanceEventWithSdkInfo","packages","envelopeHeaders","createEventEnvelopeHeaders","sent_at","sendEnvelope","sendResponse","createSessionEnvelope","eventOrCount","sendClientReports","cbIndex","setupIntegrations","_updateSessionFromEvent","crashed","errored","exceptions","sessionNonTerminal","ticked","_prepareEvent","_processEvent","finalEvent","sentryError","sampleRate","isTransaction","isTransactionEvent","beforeSendLabel","parsedSampleRate","parseSampleRate","dataCategory","capturedSpanIsolationScope","__sentry__","processBeforeSend","beforeSend","beforeSendTransaction","beforeSendSpan","processedSpans","processedSpan","spanCountBeforeProcessing","_validateBeforeSendResult","beforeSendResult","invalidValueError","processedEvent","droppedSpanCount","transactionInfo","transaction_info","_clearOutcomes","outcomes","quantity","_flushOutcomes","createClientReportEnvelope","discarded_events","applySdkMetadata","names","exceptionFromError","parseStackFrames","extractType","eventFromError","skipLines","getSkipFirstStackStringLines","reactMinifiedRegexp","getPopFirstTopFrames","isWebAssemblyException","WebAssembly","Exception","eventFromUnknownInput","attachStacktrace","isUnhandledRejection","isDOMException","domException","eventFromString","eventFromPlainObject","errorFromProp","getErrorPropertyFromObject","__serialized__","getNonErrorObjectExceptionValue","synthetic","__sentry_template_string__","__sentry_template_values__","logentry","extractExceptionKeysForMessage","includedKeys","serialized","captureType","getObjectClassName","ignoreOnError","shouldIgnoreOnError","before","__sentry_wrapped__","sentryWrapped","wrappedArguments","ignoreNextOnError","BrowserClient","parentSpanIsAlwaysRootSpan","SENTRY_SDK_SOURCE","visibilityState","captureUserFeedback","createUserFeedbackEnvelope","createUserFeedbackEnvelopeItem","platform","DEBOUNCE_DURATION","debounceTimerID","lastCapturedEventType","lastCapturedEventTargetId","instrumentDOM","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","__sentry_instrumentation_handlers__","handlerForType","refCount","originalRemoveEventListener","globalListener","_sentryCaptured","getEventTarget","shouldSkipDOMEvent","isContentEditable","_sentryId","isSimilarToLastCapturedEvent","SENTRY_XHR_DATA_KEY","instrumentXHR","xhrproto","originalOpen","xhrOpenThisArg","xhrOpenArgArray","startTimestamp","parseUrl","request_headers","__sentry_own_request__","onreadystatechangeHandler","xhrInfo","status_code","endTimestamp","onreadystatechange","originalOnreadystatechange","onreadystatechangeThisArg","onreadystatechangeArgArray","setRequestHeader","originalSetRequestHeader","setRequestHeaderThisArg","setRequestHeaderArgArray","originalSend","sendThisArg","sendArgArray","sentryXhrData","DEFAULT_BREADCRUMBS","beforeBreadcrumb","finalBreadcrumb","instrumentConsole","hasProp","getUrlFromResource","validSeverityLevels","severityLevelFromString","getBreadcrumbLogLevelFromHttpStatusCode","statusCode","relative","breadcrumbsIntegration","_breadcrumbsIntegration","dom","addConsoleInstrumentationHandler","_getConsoleBreadcrumbHandler","handlerData","addClickKeypressInstrumentationHandler","_getDomBreadcrumbHandler","componentName","serializeAttribute","_isEvent","getComponentName","addXhrInstrumentationHandler","_getXhrBreadcrumbHandler","addFetchInstrumentationHandler","skipNativeFetchCheck","instrumentFetch","onFetchResolved","supportsNativeFetch","EdgeRuntime","sandbox","contentWindow","originalFetch","parseFetchArgs","fetchArgs","fetchData","virtualStackTrace","_getFetchBreadcrumbHandler","_getHistoryBreadcrumbHandler","parsedLoc","parsedFrom","parsedTo","_getSentryBreadcrumbHandler","DEFAULT_EVENT_TARGET","browserApiErrorsIntegration","_browserApiErrorsIntegration","eventTarget","_wrapTimeFunction","_wrapRAF","helpers_WINDOW","_wrapXHR","eventTargetOption","_wrapEventTarget","xmlHttpRequestProps","wrapOptions","handleEvent","wrappedEventHandler","originalEventHandler","_oldOnErrorHandler","instrumentError","__SENTRY_LOADER__","__SENTRY_INSTRUMENTED__","_oldOnUnhandledRejectionHandler","instrumentUnhandledRejection","globalHandlersIntegration","_globalHandlersIntegration","stackTraceLimit","_installGlobalOnErrorHandler","addGlobalErrorInstrumentationHandler","_enhanceEventWithInitialFrame","ev0","ev0s","ev0sf","getLocationHref","in_app","globalHandlerLog","_installGlobalOnUnhandledRejectionHandler","addGlobalUnhandledRejectionInstrumentationHandler","_getUnhandledRejectionError","_eventFromRejectionWithPrimitive","httpContextIntegration","referrer","Referer","applyAggregateErrorsToEvent","exceptionFromErrorImplementation","maxValueLimit","truncateAggregateExceptions","aggregateExceptionsFromError","prevExceptions","exceptionId","newExceptions","applyExceptionGroupFieldsForParentException","newException","newExceptionId","applyExceptionGroupFieldsForChildException","childError","is_exception_group","exception_id","parent_id","linkedErrorsIntegration","_linkedErrorsIntegration","createFrame","chromeRegexNoFnName","chromeRegex","chromeEvalRegex","geckoREgex","geckoEvalRegex","defaultStackParser","noFnParts","subMatch","extractSafariExtensionDetails","isSafariExtension","isSafariWebExtension","cachedImplementations","clearCachedImplementation","DEFAULT_RETRY_AFTER","DEFAULT_TRANSPORT_BUFFER_SIZE","createTransport","makePromiseBuffer","taskProducer","drain","capturedSetTimeout","bufferSize","rateLimits","filteredEnvelopeItems","isRateLimited","disabledUntil","getEventForEnvelopeItem","filteredEnvelope","recordEnvelopeLoss","requestTask","updateRateLimits","updatedRateLimits","rateLimitHeader","retryAfterHeader","retryAfter","categories","headerDelay","parseRetryAfterHeader","headerDate","makeFetchTransport","nativeFetch","getNativeImplementation","cached","impl","pendingBodySize","pendingCount","requestSize","referrerPolicy","keepalive","browserOptions","applyDefaultOptions","optionsArg","__SENTRY_RELEASE__","SENTRY_RELEASE","autoSessionTracking","skipBrowserExtensionCheck","shouldShowBrowserExtensionError","windowWithMaybeExtension","extensionObject","runtimeId","isDedicatedExtensionPage","nw","initAndBind","clientClass","initialScope","setCurrentClient","startSessionTracking","showReportDialog","script","crossOrigin","getReportDialogEndpoint","dsnLike","dialogOptions","encodedOptions","reportDialogClosedMessageHandler","injectionPoint","IS_DEBUG_BUILD","checkAndSetAngularVersion","angularVersion","ANGULAR_MINIMUM_VERSION","init$1","isNgZoneEnabled","Zone","isErrorOrErrorLikeObject","SentryErrorHandler","logErrors","_removeAfterSendEventListener","extractedError","_extractError","Sentry","showDialog","extractor","defaultExtractor","_defaultExtractor","errorCandidate","tryToUnwrapZonejsError","ngOriginalError","HttpErrorResponse","extractHttpModuleError","ErrorEvent","createErrorHandler","startupFactory","discoveryConfig","userData","canCollectData","sentryCfg","tracesSampleRate","TimeoutError","createErrorClass","_super","timeoutErrorFactory","PERFORM_ACTION","ROLLBACK","TOGGLE_ACTION","JUMP_TO_STATE","JUMP_TO_ACTION","IMPORT_STATE","LOCK_CHANGES","PAUSE_RECORDING","PerformAction","Refresh","Rollback","Commit","Sweep","ToggleAction","JumpToState","JumpToAction","actionId","ImportState","nextLiftedState","LockChanges","PauseRecording","STORE_DEVTOOLS_CONFIG","INITIAL_OPTIONS","noMonitor","DEFAULT_NAME","createConfig","optionsInput","DEFAULT_OPTIONS","maxAge","monitor","actionSanitizer","stateSanitizer","logOnly","autoPause","traceLimit","persist","export","import","jump","connectInZone","difference","unliftState","liftedState","computedStates","currentStateIndex","liftAction","sanitizeActions","sanitizedActions","actionIdx","sanitizeAction","sanitizeStates","computedState","sanitizeState","stateIdx","shouldFilterActions","actionsSafelist","actionsBlocklist","isActionFiltered","safelist","blockedlist","predicateMatch","safelistMatch","escapeRegExp","blocklistMatch","injectZoneConfig","DevtoolsDispatcher","ActionsSubject","ɵDevtoolsDispatcher_BaseFactory","REDUX_DEVTOOLS_EXTENSION","DevtoolsExtension","devtoolsExtension","dispatcher","zoneConfig","createActionStreams","isPaused","sanitizedState","sanitizedAction","nextActionId","sendToReduxDevtools","extensionConnection","sanitizedLiftedState","stagedActionIds","actionsById","getExtensionConfig","createChangesObservable","connect","changes$","share","start$","stop$","liftedActions$","unwrapAction","UPDATE","schedulerArg","with","_with","isValidDate","originalSourceSubscription","timerSubscription","seen","startTimer","actionsUntilStop$","liftedUntilStop$","eval","INIT_ACTION","INIT","RECOMPUTE_ACTION","computeNextEntry","reducer","errorHandler","nextError","recomputeStates","minInvalidatedStateIndex","committedState","skippedActionIds","nextComputedStates","lastIncludedActionId","previousEntry","previousState","previousError","StoreDevtools","reducers$","scannedActions","liftedInitialState","liftInitialState","initialCommittedState","monitorReducer","monitorState","liftReducer","liftReducerWith","initialLiftedState","liftedAction","commitExcessActions","excess","idsToDelete","commitChanges","actionIds","lastState","liftedAction$","observeOn","queueScheduler","liftedReducer$","liftedStateSubject","ReplaySubject","liftedStateSubscription","withLatestFrom","emitInZone","scan","reducedLiftedState","filterLiftedState","blocklist","filteredStagedActionIds","filteredActionsById","filteredComputedStates","extensionStartSubscription","liftedState$","state$","toSignal","manualCleanup","requireSync","performAction","commit","sweep","toggleAction","jumpToAction","jumpToState","importState","lockChanges","pauseRecording","INITIAL_STATE","IS_EXTENSION_OR_MONITOR_PRESENT","createIsExtensionOrMonitorPresent","createReduxDevtoolsExtension","extensionKey","provideStoreDevtools","makeEnvironmentProviders","StateObservable","createStateObservable","ReducerManagerDispatcher","devtools","StoreDevtoolsModule","instrument","CustomerReducerService","customerStorageService","getReducers","updateMyCustomerListReducer","setCurrentCustomerReducer","setCurrentCustomerIDReducer","customerID","newCustomer","loadCurrentCustomerCompleteReducer","REDUCER_TOKEN","sdkService","setCurrentCustomer","vversionCustomersMyGet","CustomerEffects","customerStore","customerStorage","loadCurrentCustomer$","initialiseCurrentCustomer$","updateCustomerList$","CustomerModule","GeneralProviders","GarmentSelectionService","_selectedGarments$","_dressed$","AccessorySelectionService","_selectedAccessories$","AccessoryDTO","ModalModule","navigateToAction","navigateToCompleteAction","navigationReducer","navigateToReducer","NavigationEffects","onNavigateTo$","NavigationModule","currentPage_r3","ProfileMenuComponent","ProfileMenuComponent_ul_0_Template","AsyncButtonComponent","busy","AsyncButtonComponent_div_2_Template","updateUser","handleDone","user_r3","updateUserInfo","ProfileUserInformationComponent","updatedUser","ProfileUserInformationComponent_div_0_Template","ApiKeyStore","lastUpdate","keys$","lastUpdate$","token$","patchState","refreshKeys","deleteKey","ApiKeyRowComponent","ProfileApiKeysComponent","keyName","updateKeyName","ProfileApiKeysComponent_alert_2_Template","ProfileSecurityComponent","disco","triggerReset","auth_connection","authorization","ProfileModule","AppModule","bootstrap","HttpClient","APP_INITIALIZER","ErrorHandler","PageContextService","HttpClientModule","RRHeaderModule","RRBreadcrumbModule","RRFooterModule","RRPipesModule","RRAlertsModule","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","skipMonth","displayed","day_r3","day_r5","onSelectDate","onHoverDate","hovered","CalendarComponent_div_3_div_1_Template","days","CalendarComponent","isSelecting","firstDay","selectedChanged","updateDisplayed","getUTCMonth","getDays","displayMonth","setMonth","getDaysOfMonth","daysInMonth","dayMonthStarts","getDay","lastMonth","lastMonthDays","thisMonthDays","nextMonth","nextMonthDays","CalendarComponent_div_0_Template","CalendarComponent_span_2_Template","CalendarComponent_div_3_Template","preset_r3","selectPreset","onDataChanged","today","getMondayForDate","setSeconds","filterId","clearRange","monday","preset","calendar","updateFilter","DateInputElementComponent_div_5_Template","RRSharedModule","input_r3","item_r5","uniqBy","SelectInputElementComponent_span_1_Template","SelectInputElementComponent_span_3_Template","SelectInputElementComponent_li_5_Template","fixDates","DateInputElementComponent_div_3_Template","filterValue","RRDefaultValuePipe","RRTakePipe","toggleInputState","FilterBarElementComponent_span_0_span_7_Template","FilterBarElementComponent","changeValue","inputComponent","filterInputCard","inputOptions","filterService","onSelfClick","onDocumentClick","isChildOf","child","FilterBarElementComponent_span_0_Template","config_r1","RRFilterBarComponent","filterChanged","populateFilters","RRFilterBarComponent_rr_filter_bar_element_2_Template","RRCardComponent","col_r2","RRTableComponent_thead_3_th_2_img_2_Template","RRTableComponent_thead_3_th_2_img_3_Template","RRTableComponent_thead_3_th_2_img_4_Template","RRTableComponent_thead_3_th_2_Template","loadingDone","record_r5","RRTableComponent","sortColumnClicked","displayedRecords","datasource","tableContainer","RRTableComponent_ng_content_0_Template","RRTableComponent_thead_3_Template","RRTableComponent_ng_container_5_Template","RRTableComponent_ngx_skeleton_loader_6_Template","COLLAPSE_ANIMATION_TIMING","CollapseModule","BsDropdownState","autoClose","insideClick","isAnimated","stopOnClickPropagation","isOpenChange","isDisabledChange","toggleClick","dropdownMenu","resolveDropdownMenu","BsDropdownModule","ComponentLoaderFactory","PositioningService","AccordionModule","TabsModule","FocusTrapManager","_focusTrapStack","focusTrap","InteractivityChecker","isDisabled","hasGeometry","getClientRects","isTabbable","frameElement","getFrameElement","getWindow","ownerDocument","getTabIndexValue","tabIndexValue","isPotentiallyTabbableIOS","tabIndex","isFocusable","isPotentiallyFocusable","isHiddenInput","isInputElement","isNativeFormElement","isAnchorWithHref","isAnchorElement","hasValidTabIndex","ignoreVisibility","coerceBooleanProperty","FocusTrap","_startAnchor","_endAnchor","_toggleAnchorTabIndex","_checker","deferAnchors","_hasAttached","startAnchorListener","focusLastTabbableElement","endAnchorListener","focusFirstTabbableElement","attachAnchors","startAnchor","endAnchor","_createAnchor","focusInitialElementWhenReady","_executeOnStable","focusInitialElement","focusFirstTabbableElementWhenReady","focusLastTabbableElementWhenReady","_getRegionBoundary","markers","_getFirstTabbableElement","_getLastTabbableElement","redirectToElement","focusableChild","hasAttached","tabbableChild","toggleAnchors","isStable","FocusTrapFactory","deferCaptureElements","FocusTrapDirective","autoCapture","_autoCapture","_focusTrapFactory","_previouslyFocusedElement","_captureFocus","autoCaptureChange","FocusTrapModule","BsModalRef","setClass","ModalOptions","modalConfigDefaults","backdrop","ignoreBackdropClick","animated","closeInterceptor","MODAL_CONFIG_DEFAULT_OVERRIDE","isShown","_focusEl","isModalHiding","clickStartedInContent","bsModalService","getModalsCount","checkScrollbar","setScrollbar","onClickStarted","onClickStop","setDismissReason","onPopState","onEsc","ariaLabelledBy","ariaDescribedby","ModalBackdropComponent","_isAnimated","_isShown","Utils","reflow","BsModalService","rendererFactory","clf","modalDefaultOption","onShow","onShown","onHide","onHidden","isBodyOverflowing","originalBodyPadding","scrollbarWidth","modalsCount","loaders","_backdropLoader","createLoader","_createLoaders","_showBackdrop","lastDismissReason","_showModal","_hideBackdrop","resetScrollbar","_hideModal","removeLoaders","isBackdropEnabled","isBackdropInDOM","backdropRef","removeBackdrop","modalLoader","provider","bsModalRef","modalContainerRef","newClass","copyEvent","onBeforeHide","getInnerComponent","indexToRemove","loader","getScrollbarWidth","paddingRight","scrollDiv","onBeforeShow","absFloor","isDate","isDateValid","isNumber","hasOwnProp","toInt","argumentForCoercion","coercedNumber","aliases","_mapUnits","millisecond","addUnitAlias","shorthand","lowerCase","_unit","normalizeUnits","units","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","zeroFill","targetLength","forceSign","absNumber","formatFunctions","formatTokenFunctions","formattingTokens","addFormatToken","padded","ordinal","removeFormattingTokens","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","createDate","setFullYear","isUTC","getUTCHours","getUTCMinutes","getUTCSeconds","getMilliseconds","getUTCMilliseconds","getUTCDay","getUTCDate","isSameMonth","date1","date2","isSameYear","isSameDay$1","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","strictRegex","isStrict","getParseRegexForToken","_strict","unescapeFormat","regexEscape","matched","p4","addParseToken","_token","addWeekParseToken","_w","addTimeToArrayFromToken","addUnitPriority","getParsingFlags","_pf","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","getYear","parseTwoDigitYear","daysInYear","isLeapYear","modMonth","mod","defaultTimeUnit","seconds","shiftDate","getNum","dayOfMonth","setUTCMonth","setUTCDate","cloneDate","startOf","_date","setHours","setUTCHours","setMinutes","setUTCMinutes","setUTCSeconds","setMilliseconds","setUTCMilliseconds","setLocaleDayOfWeek","getLocaleDayOfWeek","setISODayOfWeek","weekday","parseIsoWeekday","getLocale","weekdaysParse","setDayOfWeek","getDayOfWeek","endOf","period","addSubtract","createDuration","getDayOfYear","firstWeekOffset","dow","doy","fwd","weekOfYear","weekOffset","week","resWeek","resYear","weeksInYear","weekOffsetNext","MONTHS_IN_FORMAT","defaultLocaleMonths","defaultLocaleMonthsShort","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultLongDateFormat","LTS","LT","LL","LLL","LLLL","defaultMonthsShortRegex","defaultMonthsRegex","Locale","confKey","_calendar","sameElse","longDateFormat","_longDateFormat","formatUpper","invalidDate","_invalidDate","_ordinal","preparse","postformat","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","months","_months","isFormat","monthsShort","_monthsShort","monthsParse","monthName","strict","_monthsParseExact","handleMonthStrictParse","_monthsParse","_longMonthsParse","_shortMonthsParse","_shortMonths","monthsRegex","computeMonthsParse","_monthsStrictRegex","_monthsRegex","monthsShortRegex","_monthsShortStrictRegex","_monthsShortRegex","_week","firstDayOfWeek","firstDayOfYear","weekdays","_weekdays","weekdaysMin","_weekdaysMin","weekdaysShort","_weekdaysShort","weekdayName","_weekdaysParseExact","handleWeekStrictParse","_weekdaysParse","_minWeekdaysParse","_shortWeekdaysParse","_fullWeekdaysParse","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","isPM","hours","minutes","isLower","formatLongDate","llc","mom","shortPieces","longPieces","mixedPieces","cmpLenRev","minPieces","minp","shortp","longp","baseConfig","sameDay","nextDay","nextWeek","lastDay","lastWeek","dayOfMonthOrdinalParse","future","past","ss","mm","hh","dd","MM","meridiemParse","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","addWeekYearFormatToken","getter","_getWeekYearFormatCb","getWeekYear","_getISOWeekYearFormatCb","getISOWeekYear","addOffsetFormatToken","getUTCOffset","_isUTC","_offset","getDateOffset","getTimezoneOffset","chunkOffset","locales","localeFamilies","globalLocale","normalizeLocale","loadLocale","getSetGlobalLocale","defineLocale","_abbr","parentConfig","abbr","parentLocale","mergeConfigs","childConfig","childProp","parentProp","setDefaultLocale","initWeek","getWeek","getISOWeek","initWeekYear","initYear","initTimezone","initTimestamp","unix","valueOf","_d","initSecond","initQuarter","getQuarter","initOffset","_useUTC","_tzm","offsetFromString","matcher","initMonth","_locale","initMinute","initMillisecond","parseMs","initHour","hFormat","lowercase","matchMeridiem","_meridiemParse","kFormat","kInput","_isPm","_meridiem","bigHour","initDayOfYear","_dayOfYear","initDayOfWeek","getISODayOfWeek","invalidWeekday","initDayOfMonth","_dayOfMonthOrdinalParse","_ordinalParse","chooseLocale","ordering","orderingHash","mem","absCeil","number","daysToMonths","monthsToDays","thresholds","substituteTimeAgo","Duration","years","quarters","quarter","weeks","milliseconds","_isValid","isDurationValid","unitHasDecimal","_milliseconds","_days","bubble","dur","monthsFromDays","humanize","withSuffix","localeData","posNegDuration","as","localeKey","mathAbs","_units","parsedParts","isNowValid","createInvalid","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","_f","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","preprocessRFC2822","markInvalid","parsedArray","extractFromRFC2822Strings","monthStr","dayStr","hourStr","minuteStr","secondStr","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","formatDate","formatMoment","expandFormat","makeFormatFunction","formatArr","localFormattingTokens","replaceLongDateFormatTokens","configFromArray","yearToUse","currentDate","currentDateArray","nowValue","dayOfYearFromWeekInfo","weekYear","weekdayOverflow","GG","curWeek","gg","_overflowWeeks","_overflowWeekday","dayOfYearFromWeeks","dayOfYear","resDayOfYear","_overflowDayOfYear","_nextDay","expectedWeekday","checkOverflow","ISO_8601","RFC_2822","totalParsedInputLength","inputLength","skipped","meridiemFixWrap","_hour","meridiemHour","isPm","createFromConfig","prepareConfig","_l","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromInput","configFromString","_arr","configFromObject","normalizeObjectUnits","inputObject","normalizedInput","parseDate","createLocalOrUTC","_input","isObjectEmpty","utcAsLocal","absRound","isAfter","isBefore","isSame","inputMs","aspNetRegex","isoRegex","convertDuration","isDuration","parseIso","diffRes","momentsDifference","_other","cloneWithOffset","offsetDiff","setTime","positiveMomentsDifference","inp","isAdding","parseWeekday","_num","_weekDay","pluralForm","plurals","pluralize","months$1","monthsShort$6","thBeLocale","monthsParseExact","weekdaysParseExact","processHoursFunction","MiniState","_initialState","actionsDispatcher$","MiniStore","_dispatcher","_reducer","pathOrMapFn","lift","operator","TimepickerComponent_td_6_Template","TimepickerComponent_td_7_Template","changeMinutes","minuteStep","canIncrementMinutes","isEditable","TimepickerComponent_td_8_Template","TimepickerComponent_td_9_Template","changeSeconds","secondsStep","canIncrementSeconds","TimepickerComponent_td_10_Template","TimepickerComponent_td_11_Template","TimepickerComponent_td_15_Template","TimepickerComponent_td_16_Template","prevDef","wheelSign","updateMinutes","invalidMinutes","minutesPlaceholder","readonlyInput","labelMinutes","TimepickerComponent_td_17_Template","TimepickerComponent_td_18_Template","updateSeconds","invalidSeconds","secondsPlaceholder","labelSeconds","TimepickerComponent_td_19_Template","TimepickerComponent_td_20_Template","toggleMeridian","canToggleMeridian","meridian","TimepickerComponent_td_25_Template","TimepickerComponent_td_26_Template","canDecrementMinutes","TimepickerComponent_td_27_Template","TimepickerComponent_td_28_Template","canDecrementSeconds","TimepickerComponent_td_29_Template","TimepickerComponent_td_30_Template","TimepickerActions","WRITE_VALUE","CHANGE_HOURS","CHANGE_MINUTES","CHANGE_SECONDS","SET_TIME_UNIT","UPDATE_CONTROLS","changeHours","updateControls","dex","hoursPerDay","hoursPerDayHalf","minutesPerHour","secondsPerMinute","isValidLimit","newDate","parseHours","parseMinutes","parseSeconds","parseTime","changeTime","padNumber","isHourInputValid","isMinuteInputValid","isSecondInputValid","canChangeValue","mousewheel","arrowkeys","getControlsValue","hourStep","showSpinners","showMeridian","showSeconds","meridians","TimepickerConfig","allowEmptyTime","showMinutes","hoursPlaceholder","ariaLabelHours","ariaLabelMinutes","ariaLabelSeconds","canIncrementHours","canDecrementHours","timepickerReducer","canChangeHours","_newTime","canChangeMinutes","canChangeSeconds","_newControlsState","timepickerControls","_newHour","_newMinutes","_newSeconds","_newState","TimepickerStore","TIMEPICKER_CONTROL_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","TimepickerComponent","_cd","_timepickerActions","meridianChange","invalidHours","labelHours","onTouched","timepickerSub","_renderTime","controlsState","isTimepickerInputValid","isOneOfDatesIsEmpty","isSpinnersVisible","resetValidation","updateHours","_updateTime","isInputLimitValid","isOneOfDatesEmpty","registerOnChange","registerOnTouched","setDisabledState","_hours","TimepickerModule","BsCustomDatesViewComponent_button_1_Template","range_r2","selectFromRanges","selectedRange","BsCalendarLayoutComponent_bs_current_date_0_Template","BsCalendarLayoutComponent_bs_timepicker_5_Template","BsDatepickerNavigationViewComponent_ng_container_3_Template","monthTitle","BsDaysCalendarViewComponent_th_5_Template","BsDaysCalendarViewComponent_th_6_Template","i_r1","BsDaysCalendarViewComponent_tr_8_td_1_span_1_Template","week_r4","selectWeek","i_r5","weekNumbers","BsDaysCalendarViewComponent_tr_8_td_1_span_2_Template","weekHoverHandler","BsDaysCalendarViewComponent_tr_8_td_1_Template","isWeekHovered","isiOS","BsDaysCalendarViewComponent_tr_8_td_2_span_1_Template","day_r8","selectDay","hoverDay","tooltipText","BsDaysCalendarViewComponent_tr_8_td_2_span_2_Template","BsDaysCalendarViewComponent_tr_8_td_2_span_3_Template","BsDaysCalendarViewComponent_tr_8_td_2_Template","isShowTooltip","BsDaysCalendarViewComponent_tr_8_Template","showWeekNumbers","BsMonthCalendarViewComponent_tr_4_td_1_Template","month_r2","viewMonth","hoverMonth","isHovered","BsMonthCalendarViewComponent_tr_4_Template","row_r4","BsYearsCalendarViewComponent_tr_4_td_1_Template","year_r2","viewYear","hoverYear","BsYearsCalendarViewComponent_tr_4_Template","BsDatepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template","navigateTo","setViewMode","dayHoverHandler","daySelectHandler","calendar_r4","multipleCalendars","isDatePickerDisabled","options$","BsDatepickerContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template","BsDatepickerContainerComponent_div_0_ng_container_4_div_4_Template","isRangePicker","BsDatepickerContainerComponent_div_0_ng_container_4_Template","daysCalendar$","withTimepicker","BsDatepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template","monthHoverHandler","monthSelectHandler","calendar_r6","BsDatepickerContainerComponent_div_0_div_5_Template","monthsCalendar","BsDatepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template","yearHoverHandler","yearSelectHandler","calendar_r8","BsDatepickerContainerComponent_div_0_div_6_Template","yearsCalendar","BsDatepickerContainerComponent_div_0_div_7_Template","BsDatepickerContainerComponent_div_0_div_8_div_1_Template","setToday","todayPos","todayBtnLbl","BsDatepickerContainerComponent_div_0_div_8_div_2_Template","clearDate","clearPos","clearBtnLbl","BsDatepickerContainerComponent_div_0_div_8_Template","showTodayBtn","showClearBtn","BsDatepickerContainerComponent_div_0_div_9_Template","setRangeOnCalendar","chosenRange","customRanges","customRangeBtnLbl","BsDatepickerContainerComponent_div_0_Template","positionServiceEnable","containerClass","animationState","viewMode","BsDaterangepickerContainerComponent_div_0_ng_container_4_bs_days_calendar_view_2_Template","BsDaterangepickerContainerComponent_div_0_ng_container_4_div_4_timepicker_3_Template","BsDaterangepickerContainerComponent_div_0_ng_container_4_div_4_Template","BsDaterangepickerContainerComponent_div_0_ng_container_4_Template","BsDaterangepickerContainerComponent_div_0_div_5_bs_month_calendar_view_1_Template","BsDaterangepickerContainerComponent_div_0_div_5_Template","BsDaterangepickerContainerComponent_div_0_div_6_bs_years_calendar_view_1_Template","BsDaterangepickerContainerComponent_div_0_div_6_Template","BsDaterangepickerContainerComponent_div_0_div_7_Template","BsDaterangepickerContainerComponent_div_0_div_8_div_1_Template","BsDaterangepickerContainerComponent_div_0_div_8_div_2_Template","BsDaterangepickerContainerComponent_div_0_div_8_Template","BsDaterangepickerContainerComponent_div_0_div_9_Template","BsDaterangepickerContainerComponent_div_0_Template","BsDatepickerConfig","adaptivePosition","useUtc","startView","returnFocusToInput","displayMonths","dateInputFormat","rangeSeparator","rangeInputFormat","yearTitle","dayLabel","monthLabel","yearLabel","showTodayButton","showClearButton","todayPosition","todayButtonLabel","clearButtonLabel","customRangeButtonLabel","allowedPositions","keepDatepickerOpened","keepDatesOutOfRules","DATEPICKER_ANIMATION_TIMING","datepickerAnimation","BsDatepickerAbstractComponent","_daysCalendarSub","selectedTimeSub","minDate","_effects","setMinDate","maxDate","setMaxDate","daysDisabled","setDaysDisabled","datesDisabled","setDatesDisabled","datesEnabled","setDatesEnabled","setDisabled","dateCustomClasses","setDateCustomClasses","dateTooltipTexts","setDateTooltipTexts","_daysCalendar$","timeSelectHandler","_stopPropagation","BsDatepickerActions","CALCULATE","FORMAT","FLAG","SELECT","NAVIGATE_OFFSET","NAVIGATE_TO","SET_OPTIONS","HOVER","CHANGE_VIEWMODE","SET_MIN_DATE","SET_MAX_DATE","SET_DAYSDISABLED","SET_DATESDISABLED","SET_DATESENABLED","SET_IS_DISABLED","SET_DATE_CUSTOM_CLASSES","SET_DATE_TOOLTIP_TEXTS","SET_LOCALE","SELECT_TIME","SELECT_RANGE","calculate","selectTime","changeViewMode","navigateStep","selectRange","cell","setLocale","BsLocaleService","_defaultLocale","_localeChange","localeChange","currentLocale","BsDatepickerEffects","_actions","_localeService","_subs","_bsDatepickerStore","setRangeValue","setBindings","selectedTime","times","flaggedMonths","flaggedMonthsCalendar","yearsCalendarFlagged","latest","setEventHandlers","_cell","isOtherMonth","registerDatepickerSideEffects","monthsModel","monthModel","formattedMonths","selectedDate","yearsCalendarModel","hoveredDate","_initialView","initialDatepickerState","monthViewOptions","isMonthDisabled","minBound","maxBound","isYearDisabled","isDisabledDate","dateDisabled","isEnabledDate","enabledDate","getYearsCalendarInitialDate","calendarIndex","checkRangesWithMaxDate","ranges","compareDateWithMaxDateHelper","checkBsValue","setCurrentTimeOnDateSelect","setCurrentTimeHelper","setDateRangesCurrentTimeOnDateSelect","createMatrix","prevValue","initialDate","calcDaysCalendar","startingDate","getFirstDayOfMonth","getStartingDayOfCalendar","isFirstDayOfWeek","calculateDateOffset","startingDayOffset","_startingDayOffset","daysMatrix","getWeekNumbers","getShiftedWeekdays","canSwitchMode","minMode","height$1","width$1","shift$1","formatMonthsCalendar","viewDate","formatOptions","hideRightArrow","hideLeftArrow","disableRightArrow","disableLeftArrow","yearsPerCalendar","initialYearShift","formatYearsCalendar","previousInitialDate","calculateInitialDate","yearsMatrix","formatYearRangeTitle","copyTime","sourceDate","bsDatepickerReducer","calculateReducer","displayOneMonthRange","isDisplayOneMonth","showPreviousMonth","monthIndex","preventChangeToNextMonth","getFormatOptions","formatReducer","formatDaysCalendar","daysCalendar","weekIndex","dayIndex","flagReducer","formattedMonth","flagDaysCalendar","isSameDay","isSelectionStart","isSelectionEnd","isInRange","isDateInRange","isDisabledDay","isToday","customClasses","dcc","newDay","flagMonthsCalendar","monthCalendar","rowIndex","hoveredMonth","newMonth","yearIndex","flagYearsCalendar","hoveredYear","navigateOffsetReducer","shiftViewDate","middleDate","setFullDate","_time","getViewDate","dte","BsDatepickerStore","BsCustomDatesViewComponent","customRangeLabel","BsNavigationDirection","previousDate$1","BsCurrentDateViewComponent","BsTimepickerViewComponent","ampm","BsCalendarLayoutComponent","BsDatepickerDayDecoratorComponent","_elRef","customTodayClass","isOtherMonthHovered","BsDatepickerNavigationViewComponent","onNavigate","onViewMode","navTo","down","BsDaysCalendarViewComponent","onHover","onHoverWeek","maxTouchPoints","selectWeekDateRange","selectFromOtherMonth","selectedDay","lastDayOfRange","dateData","BsMonthCalendarViewComponent","BsYearsCalendarViewComponent","BsDatepickerContainerComponent","isDatepickerDisabled","isDatepickerReadonly","_positionService","modifiers","preventOverflow","event$","isTopPosition","isOtherMonthsActive","startTimepicker","BsDatepickerDirective","readonlyValue","cis","placement","triggers","outsideClick","outsideEsc","isDestroy$","bsValueChange","_dateInputFormat$","_datepicker","isOpen$","bsValue","_bsValue","bsConfig","initCurrentTime","initPreviousValue","dateInputFormat$","setConfig","_datepickerRef","initSubscribes","keepDatepickerModalOpened","isDateSame","unsubscribeSubscriptions","BsDaterangepickerContainerComponent","_rangeStack","dateRange","endTimepicker","rangesProcessing","maxDateRange","setMaxDateRangeOnCalendar","currentSelection","maxDateValueInMilliseconds","maxDateRangeInMilliseconds","BS_DATEPICKER_VALUE_ACCESSOR","BsDatepickerInputDirective","BS_DATEPICKER_VALIDATOR","NG_VALIDATORS","previousDate","_picker","_onChange","_onTouched","_validatorChange","setBsValue","_setInputValue","bsDate","registerOnValidatorChange","_localeKey","utcValue","BsDaterangepickerConfig","ɵBsDaterangepickerConfig_BaseFactory","BsDaterangepickerDirective","rangeInputFormat$","_rangeInputFormat$","BS_DATERANGEPICKER_VALUE_ACCESSOR","BsDaterangepickerInputDirective","BS_DATERANGEPICKER_VALIDATOR","onKeydownEvent","_isFirstDateValid","_isSecondDateValid","trimmedSeparator","_val","BsDatepickerModule","TYPEAHEAD_ANIMATION_TIMING","typeaheadAnimation","TypeaheadModule","ProgressbarModule","duration$","throttle","leading","trailing","sendValue","throttled","endThrottling","cleanupThrottling","startThrottle","screen","matchMedia","passiveOptionAccessed","onTouchStartInWindow","a2","TooltipWrapperComponent_ng_container_0_1_ng_template_0_Template","TooltipWrapperComponent_ng_container_0_1_Template","TooltipWrapperComponent_ng_container_0_Template","TooltipWrapperComponent_ng_container_1_Template","_c5","_c6","_c7","_c8","_c9","_c10","_c11","_c12","_c13","_c14","SliderComponent_span_28_ngx_slider_tooltip_wrapper_2_Template","t_r1","tooltipTemplate","valueTooltip","valueTooltipPlacement","SliderComponent_span_28_span_3_Template","legend","SliderComponent_span_28_span_4_Template","SliderComponent_span_28_Template","tooltipPlacement","allowUnsafeHtmlInSlider","LabelType","Low","High","Ceil","TickValue","Options","minRange","maxRange","pushRange","minLimit","maxLimit","translate","combineLabels","getLegend","getStepLegend","stepsArray","bindIndexForStepsArray","draggableRange","draggableRangeOnly","showSelectionBar","showSelectionBarEnd","showSelectionBarFromValue","showOuterSelectionBars","hidePointerLabels","hideLimitLabels","autoHideLimitLabels","showTicks","showTicksValues","tickStep","tickValueStep","ticksArray","ticksTooltip","ticksValuesTooltip","vertical","getSelectionBarColor","getTickColor","getPointerColor","keyboardSupport","enforceStep","enforceRange","enforceStepsArray","noSwitching","onlyBindHandles","rightToLeft","reversedControls","boundPointerLabels","logScale","customValueToPosition","customPositionToValue","precisionLimit","selectionBarGradient","ariaLabel","ariaLabelHigh","ariaLabelledByHigh","handleDimension","barDimension","animateOnMove","AllowUnsafeHtmlInSlider","PointerType","ChangeContext","highValue","ValueHelper","isNullOrUndefined","areArraysEqual","linearValueToPosition","minVal","maxVal","logValueToPosition","linearPositionToValue","percent","logPositionToValue","findStepIndex","modelValue","differences","minDifferenceIndex","CompatibilityHelper","TouchEvent","isResizeObserverAvailable","ResizeObserver","MathHelper","roundToPrecisionLimit","toPrecision","isModuloWithinPrecisionLimit","modulo","clampToRange","EventListener","eventsSubscription","teardownCallback","EventListenerHelper","attachPassiveEventListener","throttleInterval","attachEventListener","observerCallback","detachEventListener","eventListener","SliderElementDirective","elemRef","changeDetectionRef","_dimension","_alwaysHide","alwaysHide","_vertical","_scale","_rotate","eventListenerHelper","eventListeners","setAlwaysHide","setVertical","setRotate","getRotate","isRefDestroyed","calculateDimension","setDimension","dim","debounceInterval","onPassive","off","listenersToKeep","listenersToRemove","SliderHandleDirective","role","tabindex","ariaOrientation","ariaValueNow","ariaValueText","ariaValueMin","ariaValueMax","focusIfNeeded","SliderLabelDirective","recalculateDimension","innerText","TooltipWrapperComponent","Tick","Dragging","lowLimit","highLimit","ModelValues","ModelChange","forceChange","NGX_SLIDER_CONTROL_VALUE_ACCESSOR","SliderComponent","sliderElementNgxSliderClass","highValueChange","userChangeStart","userChange","userChangeEnd","manualRefreshSubscription","manualRefresh","unsubscribeManualRefresh","calculateViewDimensionsAndDetectChanges","triggerFocusSubscription","triggerFocus","unsubscribeTriggerFocus","focusPointer","initHasRun","inputModelChangeSubject","inputModelChangeSubscription","outputModelChangeSubject","outputModelChangeSubscription","viewLowValue","viewHighValue","viewOptions","handleHalfDimension","maxHandlePosition","currentTrackingPointer","currentFocusPointer","firstKeyDown","touchId","dragging","leftOuterSelectionBarElement","rightOuterSelectionBarElement","fullBarElement","selectionBarElement","minHandleElement","maxHandleElement","floorLabelElement","ceilLabelElement","minHandleLabelElement","maxHandleLabelElement","combinedLabelElement","ticksElement","sliderElementVerticalClass","sliderElementAnimateClass","sliderElementWithLegendClass","sliderElementDisabledAttr","sliderElementAriaLabel","barStyle","minPointerStyle","maxPointerStyle","fullBarTransparentClass","selectionBarDraggableClass","ticksUnderValuesClass","intermediateTicks","ticks","onMoveEventListener","onEndEventListener","moving","resizeObserver","onTouchedCallback","onChangeCallback","updateDisabledState","updateVerticalState","updateAriaLabel","applyOptions","subscribeInputModelChangeSubject","subscribeOutputModelChangeSubject","renormaliseModelValues","modelValueToViewValue","manageElementsStyle","calculateViewDimensions","addAccessibility","updateCeilLabel","updateFloorLabel","initHandles","manageEventsBindings","subscribeResizeObserver","onChangeOptions","internalChange","unbindEvents","unsubscribeResizeObserver","unsubscribeInputModelChangeSubject","unsubscribeOutputModelChangeSubject","setAriaLabel","applyInputModelChange","publishOutputModelChange","disconnect","unsubscribeOnMove","unsubscribeOnEnd","getPointerElement","getCurrentTrackingValue","viewValueToModelValue","viewValue","getStepValue","sliderValue","applyViewChange","userEventInitiated","normalisedModelChange","normaliseModelValues","normalisationChange","updateLowHandle","valueToPosition","updateHighHandle","updateSelectionBar","updateTicksScale","updateAriaAttributes","updateCombinedLabel","emitOutputs","getChangeContext","normalisedInput","valueIndex","highValueIndex","roundStep","tempValue","previousModelValues","normalisedModelValues","previousOptionsInfluencingEventBindings","getOptionsInfluencingEventBindings","newOptionsInfluencingEventBindings","rebindEvents","resetSlider","applyFloorCeilOptions","applyStepsArrayOptions","minValue","maxValue","refocusPointerIfNeeded","updateScale","hideLabelsForTicks","updateRotate","bindEvents","getAllSliderElements","handleWidth","getTicksArray","hasAtLeastOneLegend","newTicks","tick","isTickSelected","getDisplayValue","numberOfValues","updateHandles","which","getHandleLabelPos","labelType","labelDimension","nearHandlePos","endOfBarPos","updateFloorAndCeilLabelsVisibility","floorLabelHidden","ceilLabelHidden","isMinLabelAtFloor","isLabelBelowFloorLabel","isMinLabelAtCeil","isLabelAboveCeilLabel","isMaxLabelAtCeil","isCombinedLabelAtFloor","isCombinedLabelAtCeil","hideCeil","hideFloor","floorPos","ceilPos","isSelectionBarFromRight","positionForRange","centerPosition","reversed","backgroundImage","backgroundPosition","backgroundSize","isLabelOverlap","lowDisplayValue","highDisplayValue","combinedLabelValue","customStep","steppedDifference","positionToValue","getEventXY","targetTouchId","MouseEvent","touchIndex","getEventPosition","sliderElementBoundingRect","sliderPos","eventPos","getNearestHandle","distanceMin","distanceMax","onBarStart","onPointerFocus","bindMove","bindEnd","simulateImmediateMove","simulateImmediateEnd","onDragStart","pointerElement","onMoveCallback","onDragMove","onMove","onEndCallback","onEnd","fromTick","touchForThisSlider","positionTrackingHandle","onPointerBlur","onKeyboardEvent","onKeyUp","getKeyActions","valueRange","increaseStep","decreaseStep","increasePage","decreasePage","PAGEUP","PAGEDOWN","HOME","END","actionValue","newMinValue","newMaxValue","positionTrackingBar","getMinValue","outOfBounds","isAbove","getMaxValue","ceilLimit","floorLimit","floorHandleElement","ceilHandleElement","isOverCeilLimit","applyMinMaxLimit","applyPushRange","applyMinMaxRange","changeContext","NgxSliderModule","AlertModule","INFO","WARNING","RRProgressbarModule","RR_PROGRESSBAR_TYPE","CHECKBOX_SELECT","RADIO_SELECT","MULTI_SELECT","TAGS","RRClientSideDataModel","RRClientSideDataService","getEmtpyClientSideData","getCachedData","setCachedData","onPageChange","getTableRows","onPageSizeChange","newPageSize","onSortChange","returnModel","filterTableContainer","filterData","newClienSideDataModel","newResults","sortTableViewContainer","firstItemIndex","fieldToSort","sortList","descOrder","sortOrder","localeCompare","RRClickEventsModule","RRTagsModule","RRTableContainerModule","RRIconsModule","RRLayoutBuilderModule","RRModalService","_modalIds","idIsShown","closeAllModals","SELECTION_MODEL_FACTORY","DefaultSelectionModelFactory","DefaultSelectionModel","_selected","groupAsModel","childrenCount","selectedCount","_setChildrenSelectedState","_removeChildren","_activeChildren","unselect","_removeParent","keepDisabled","NgSelectModule","RRFormInputsModule","RRTableFiltersModule","RRFileContainerModel","toInputFormat","RRStatusBarModule","pageContextSubject","RRTableRowDirective","hostContainer","_loadingDone$","BASE_PATH","BaseAPI","axios","globalAxios","RequiredError","DUMMY_BASE_URL","assertParamExists","paramName","paramValue","setApiKeyToObject","keyParamName","_arguments","fulfilled","rejected","adopt","__awaiter","localVarApiKeyValue","setFlattenedQueryParams","urlSearchParams","parameter","currentKey","setSearchParams","searchParams","URLSearchParams","serializeDataIfNeeded","nonString","isJsonMime","toPathString","createRequestFunction","axiosArgs","axiosRequestArgs","ConfigurationsApiFp","localVarAxiosParamCreator","localVarPath","localVarUrlObj","baseOptions","localVarRequestOptions","localVarHeaderParameter","headersFromBaseOptions","localVarQueryParameter","includeArchived","vversionConfigurationsConfigurationIdResultsResultIdDelete","vversionConfigurationsConfigurationIdResultsResultIdFileFileIdDelete","vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut","storageId","localVarFormParams","formDataCtor","vversionConfigurationsConfigurationIdResultsResultIdGet","vversionConfigurationsIdAnnotationsPatch","vversionConfigurationsIdArchivePost","vversionConfigurationsIdArchivedPost","vversionConfigurationsIdCancelPost","vversionConfigurationsIdEnsurePreviewImagePost","vversionConfigurationsIdRejectAttachmentPost","ContentType","ContentDisposition","Length","FileName","vversionConfigurationsIdRestorePost","vversionConfigurationsIdRestoredPost","vversionConfigurationsStatesGet","vversionProductsProductIdConfigurationsGet","ConfigurationsApiAxiosParamCreator","localVarAxiosArgs","CustomersApiFp","vversionCustomersCallbacksTypesGet","vversionCustomersCustomerIdCallbacksCallbackTypeIdPut","callbackTypeId","vversionCustomersCustomerIdCallbacksCallbackTypeTriggerIdPost","callbackType","vversionCustomersCustomerIdCallbacksGet","vversionCustomersCustomerIdNotificationsGet","vversionCustomersCustomerIdNotificationsProductIdDelete","vversionCustomersCustomerIdNotificationsProductIdPut","vversionCustomersCustomerIdUsersUserIdDelete","userId","vversionCustomersCustomerIdUsersUserIdPut","vversionCustomersGet","vversionCustomersIdDelete","vversionCustomersIdPut","vversionUsersUserIdCustomersGet","CustomersApiAxiosParamCreator","FilesApiFp","skipDownloadUrls","vversionFilesBase64IdPut","vversionFilesBase64Post","ensureUniqueness","vversionFilesIdPut","vversionFilesIdRevisionsGet","vversionFilesIdStorageIdPut","revision","vversionFilesIdThumbnailPost","vversionFilesPost","FilesApiAxiosParamCreator","ProcessApiFp","vversionProcessApproveConfigurationIdPost","vversionProcessFeedbackConfigurationIdPost","vversionProcessFetchConfigurationIdPost","vversionProcessFetchPost","vversionProcessProcessedConfigurationIdPost","vversionProcessReadableRandomValueGet","vversionProcessRejectConfigurationIdPost","vversionProcessReportConfigurationIdPost","vversionProcessResetConfigurationIdPost","vversionProcessResetFetchedPost","vversionProcessResultIdPut","vversionProcessReviewConfigurationIdPost","vversionProcessReviewPost","vversionProcessScheduleConfigurationIdPost","vversionProcessUploadPost","ProcessApiAxiosParamCreator","ProductsApiFp","vversionProductsGet","vversionProductsIdCopyCustomerCustomerIdPost","vversionProductsIdDelete","vversionProductsStatesGet","ProductsApiAxiosParamCreator","TagsApiFp","tagLink","vversionTagsAvailableConfigurationsConfigurationIdGet","vversionTagsAvailableProductsProductIdGet","vversionTagsConfigurationsConfigurationIdGet","vversionTagsProductsProductIdGet","vversionTagsTagKeyIdConfigurationsConfigurationIdGet","vversionTagsTagKeyIdProductsProductIdDelete","vversionTagsTagKeyIdProductsProductIdGet","vversionTagsTagKeyIdProductsProductIdPut","vversionTagsTagKeyIdProductsValuesGet","vversionTagsTagKeyIdProductsValuesPut","vversionTagsTagKeyIdUserFeaturesGet","vversionTagsTagKeyIdUserFeaturesUserFeatureNameDelete","userFeatureName","vversionTagsTagKeyIdUserFeaturesUserFeatureNamePut","vversionTagsTagKeyIdValuesGet","vversionTagsTagKeyIdValuesPut","TagsApiAxiosParamCreator","UsersApiFp","vversionCustomersCustomerIdUsersGet","vversionSuppliersSupplierIdUsersGet","supplierId","vversionUsersGet","vversionUsersIdDelete","vversionUsersIdGet","vversionUsersStatsGet","UsersApiAxiosParamCreator","password","accessToken","mime","jsonMime","rnds8","rng","byteToHex","esm_browser_stringify","REGEX","esm_browser_v4","rnds","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","transitionalDefaults","AxiosError","CanceledError","parseProtocol","exports","onCanceled","cancelToken","isFormData","isStandardBrowserEnv","unescape","fullPath","baseURL","responseHeaders","getAllResponseHeaders","paramsSerializer","responseURL","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","ETIMEDOUT","xsrfValue","withCredentials","xsrfCookieName","xsrfHeaderName","onDownloadProgress","onUploadProgress","upload","ERR_BAD_REQUEST","Axios","mergeConfig","createInstance","defaultConfig","instanceConfig","CancelToken","isCancel","toFormData","Cancel","spread","isAxiosError","resolvePromise","throwIfRequested","ERR_CANCELED","inherits","__CANCEL__","InterceptorManager","dispatchRequest","interceptors","configOrUrl","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","responseInterceptorChain","chain","newConfig","getUri","generateHTTPMethod","isForm","lineNumber","columnNumber","customProps","axiosError","toFlatObject","eject","isAbsoluteURL","combineURLs","requestedURL","transformData","throwIfCancellationRequested","transformRequest","common","transformResponse","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","maxContentLength","maxBodyLength","beforeRedirect","httpAgent","httpsAgent","socketPath","responseEncoding","validateStatus","configValue","ERR_BAD_RESPONSE","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","isFileList","isObjectPayload","_FormData","stringifySafely","strictJSONParsing","Accept","serializedParams","hashmarkIndex","relativeURL","expires","domain","secure","cookie","toGMTString","originURL","msie","urlParsingNode","resolveURL","hostname","requestURL","normalizedName","ignoreDuplicateOf","convertValue","isTypedArray","parentKey","fullKey","thing","deprecatedWarnings","formatMessage","ERR_DEPRECATED","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","kindOf","kindOfTest","TypedArray","assignValue","stripBOM","superConstructor","destObj","searchString","__self__","support","viewClasses","normalizeName","normalizeValue","iteratorFor","consumed","bodyUsed","fileReaderReady","readBlobAsArrayBuffer","readAsArrayBuffer","bufferClone","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","_bodyFormData","isDataView","_bodyArrayBuffer","readBlobAsText","readArrayBufferAsText","chars","decode","credentials","normalizeMethod","upcased","rawHeaders","preProcessedHeaders","bodyInit","redirectStatuses","redirect","abortXhr","polyfill","ponyfill","earcut","holeIndices","invSize","hasHoles","outerLen","outerNode","linkedList","triangles","eliminateHoles","steiner","getLeftmost","compareX","eliminateHole","earcutLinked","clockwise","signedArea","filterPoints","again","ear","indexCurve","zOrder","prevZ","nextZ","sortLinked","tail","numMerges","pSize","qSize","inSize","isEarHashed","isEar","cureLocalIntersections","splitEarcut","bx","cx","by","cy","x0","y0","pointInTriangle","locallyInside","isValidDiagonal","hole","bridge","findHoleBridge","hx","hy","qx","mx","my","tanMin","sectorContainsSector","bridgeReverse","leftmost","px","py","intersectsPolygon","middleInside","inside","q1","q2","o3","o4","onSegment","b2","bp","deviation","polygonArea","trianglesArea","flatten","holeIndex","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","initMouseEvent","HTMLAnchorElement","rel","msSaveOrOpenBlob","autoBom","safari","toPrimitive","limitHeight","focusButton","onclick","submenu","createTextNode","buttonExpand","submenuTitle","_onExpandItem","subItems","ul","Iu","maxHeight","expandedItem","absoluteAnchor","overflowY","visibleMenu","removeClassName","addClassName","setSelection","_getVisibleButtons","errorTableVisible","onToggleVisibility","onFocusLine","onChangeHeight","validationErrorsContainer","additionalErrorsIndication","validationErrorIcon","validationErrorCount","parseErrorIndication","validationErrors","dataPath","colSpan","onscroll","statusBar","toggleTableVisibility","_onClick","_onEvent","_onKeyUp","_onBlur","focusFlag","firstEventFlag","treeModeMixins","textModeMixins","previewModeMixins","getInnerText","getInternetExplorerVersion","tryRequireAjv","showTransformModal","showSortModal","editable","onEditable","onChangeJSON","modes","VALID_OPTIONS","_create","DEBOUNCE_INTERVAL","setText","getText","setName","getName","mixin","load","onModeChange","getMode","setSchema","ajv","allErrors","schemaId","$data","addMetaSchema","removeSchema","addSchema","schemaRefs","validateSchema","compile","_onSchemaChange","registerMode","ace","Ajv","VanillaPicker","tree","box","setModuleUrl","isDark","cssClass","importCssString","symbols_","JSONString","JSONNumber","NUMBER","JSONNullLiteral","JSONBooleanLiteral","TRUE","FALSE","JSONText","JSONValue","JSONObject","JSONArray","JSONMemberList","JSONMember","JSONElementList","$accept","$end","terminals_","productions_","defaultActions","parseError","setInput","yylloc","lex","showPosition","yylineno","expected","yyleng","yytext","_$","first_line","last_line","first_column","last_column","_more","_less","conditionStack","unput","more","less","pastInput","upcomingInput","_currentRules","rules","flex","popState","topState","INITIAL","inclusive","hasClass","isInt","pageXOffset","createDocumentFragment","pages","pageIndex","customOption","navIndex","html","renderOption","defaultSelected","taggable","searching","inputContainer","rendered","selectr","disabledMobile","clearable","sortSelected","allowDeselect","closeOnScroll","nativeDropdown","nativeKeyboard","tagPlaceholder","noResults","noOptions","maxSelections","tagDuplicate","searchPlaceholder","originalType","originalIndex","originalOptionCount","opened","navigating","mobileDevice","customSelected","renderSelection","supportsEventPassiveOption","detectEventPassiveOption","requiresPagination","customClass","notice","selectedValues","getSelectedProperties","selectedIndexes","selectedValue","selectClear","tagIndex","autocomplete","autocorrect","autocapitalize","spellcheck","tagSeperators","tagSeperatorsRegex","inputClear","Option","setSelected","paginate","placeEl","setPlaceholder","optsRect","dismiss","lastElementChild","firstElementChild","__selfTriggered","deselect","setMessage","paginateItems","fireEvent","getOptionByIndex","getOptionByValue","removeAll","removeMessage","serialise","isInverted","EX","WF","oW","qD","boxSizing","mousedown","onmouseover","onmouseout","cC","m0","appendText","appendTitle","appendSubmenuTitle","appendTitleAuto","ascending","ascendingTitle","actionsMenu","cannotParseFieldError","cannotParseValueError","collapseAll","compactTitle","descending","descendingTitle","duplicateKey","duplicateText","duplicateTitle","duplicateField","duplicateFieldError","expandAll","expandTitle","formatTitle","insertTitle","insertSub","redo","removeText","removeTitle","removeField","repairTitle","searchTitle","searchNextResultTitle","searchPreviousResultTitle","selectNode","showAll","showMore","showMoreStatus","sortTitle","sortTitleShort","sortFieldLabel","sortDirectionLabel","sortFieldTitle","sortAscending","sortAscendingTitle","sortDescending","sortDescendingTitle","transformTitle","transformTitleShort","extract","extractTitle","transformQueryTitle","transformWizardLabel","transformWizardFilter","transformWizardSortBy","transformWizardSelectFields","transformQueryLabel","transformPreviewLabel","typeTitle","openUrl","undo","validationCannotMove","autoType","objectType","arrayType","stringType","modeEditorTitle","modeCodeText","modeCodeTitle","modeFormText","modeFormTitle","modeTextText","modeTextTitle","modeTreeText","modeTreeTitle","modeViewText","modeViewTitle","modePreviewText","modePreviewTitle","examples","containsInvalidProperties","containsInvalidItems","es","ja","ru","ko","userLanguage","parsePath","parseString","relation","CharacterData","DocumentType","calculateItemSize","_calculateHistorySize","canUndo","canRedo","mainMenuBar","enableSort","enableTransform","executeQuery","indentation","_debouncedValidate","frameFocusTracker","busyContent","previewContent","previewText","executeWithBusyMessage","compact","_showSortModal","_showTransformModal","repair","_applyHistory","modeSwitcher","showErrorTable","errorTable","marginBottom","paddingBottom","getErrorTable","fileSizeInfo","arrayInfo","getErrorCounter","getWarningIcon","getErrorIcon","_renderPreview","limitCharacters","onChangeText","modalAnchor","sortedBy","_setAndFireOnChange","sortObjectKeys","queryDescription","onTransform","_setTextAndFireOnChange","_set","_pushHistory","escapeUnicode","escapeUnicodeChars","_setText","updateText","_renderErrors","getChildPaths","overlayClass","overlayStyles","modalClass","afterCreate","modalElem","onsubmit","afterClose","Boolean","oninput","selectionStart","selectionEnd","suggestions","suggestionsRefs","_buildSuggestions","_handleSchemaEntry","uniqueMergeArrays","_handleRef","_checkOfConditon","_handleOfCondition","_handleObject","_handlePrimitive","_handleBoolean","_handleArray","asyncExec","row","keyEnd","valueEnd","caption","theme","onTextSelectionChange","aceEditor","textarea","lastSchemaErrors","_validateAndCatch","onkeydown","_onKeyDown","getUndoManager","editorDom","$blockScrolling","setTheme","setShowPrintMargin","setFontSize","setTabSize","setUseSoftTabs","setUseWrapMode","setAnnotations","commands","bindKey","onchange","onselect","onmousedown","_onMouseDown","onblur","_updateHistoryButtons","setTextSelection","curserInfoElements","colVal","lnVal","countLabel","countVal","allowSchemaSuggestions","setOption","onChangeDisabled","hasUndo","hasRedo","_updateCursorInfo","_emitSelectionChange","getInputSelection","cursorInfo","getCursorPosition","getSelectedText","_selectionChangedHandler","getTextSelection","_refreshAnnotations","getAnnotations","improveSchemaError","validationSequence","isValidValidationError","stringifyPath","onValidate","onValidationError","isValidationErrorChanged","getPositionForPath","getRange","getSelectionLead","getIndexForPosition","createTextRange","collapse","moveEnd","moveStart","setRange","scrollToLine","contain","setHighlight","_cancelUnhighlight","unhighlightTimer","editor","fieldEditable","setInternalValue","internalValue","_debouncedOnChangeValue","_onChangeValue","_debouncedOnChangeField","_onChangeField","visibleChilds","getMaxVisibleChilds","maxVisibleChilds","getPath","childs","findNodeByPath","errorChild","updateError","fieldError","valueError","tdError","tdValue","popupAnchor","getPopupAnchor","onfocus","findParents","expand","previousField","_getDomField","_getType","findChildByProperty","hideChilds","recreateDom","updateDom","updateIndexes","_detachFromDom","clearDom","_attachToDom","_getDomValue","getInternalValue","getLevel","getNodePath","fieldInnerText","valueInnerText","showChilds","recurse","getAppendDom","_getNextTr","getDom","getShowMoreDom","resetVisibleChilds","onClassName","removeAllClassNames","_updateCssClassName","recursivelyUpdateCssClassesOnNodes","_hasChilds","searchField","searchValue","MAX_SEARCH_RESULTS","_updateDomField","_updateDomValue","expandPathToNode","offsetTop","focusElement","selectContentEditable","containsNode","deepEqual","_clearValueError","_unescapeHTML","_setValueError","getDomSelection","textDiff","startOffset","endOffset","_onAction","getInternalPath","oldSelection","newSelection","parentPath","isUrl","searchValueActive","checkbox","tdCheckbox","_updateEnumOptions","tdSelect","valueFieldHTML","colorPicker","isValidColor","tdColor","_deleteDomColor","_showTimestampTag","timestampFormat","stripFormatting","_updateDomDefault","makeFieldTooltip","searchFieldActive","_clearFieldError","getFieldNames","findUniqueName","_setFieldError","timestampTag","isTimestamp","_updateEditability","_createDomTree","marginLeft","contentEditable","_findSchema","_escapeHTML","_updateSchema","updateNodeName","_updateDomIndexes","_findEnum","borderCollapse","_createDomExpandButton","tdExpand","_createDomField","tdField","tdSeparator","_createDomValue","highlighter","unhighlight","showContextMenu","unlock","_onExpand","_showColorPicker","getAbsoluteLeft","setEndOfContentEditable","onKeyDown","onEvent","multiselection","onDuplicate","_onInsertBefore","_onInsertAfter","_lastNode","_getElementName","_firstNode","_previousElement","getNodeFromTarget","moveBefore","fieldNames","oldParentPath","newParentPath","oldIndex","oldIndexRedo","newIndexRedo","oldParentPathRedo","newParentPathRedo","_previousNode","_findTopLevelNodes","_nextElement","previousSibling","_nextNode","onExpand","isExpand","recursive","onColorPicker","beforePath","insertAfter","afterPath","changeType","oldType","newType","getNestedChild","oldChilds","newChilds","nextTr","_setRoot","lastChild","_onAppend","_onChangeType","addTemplates","onCreateMenu","_escapeJSON","onNodeName","recursivelyUpdateNodeName","getAbsoluteTop","mousemove","onDrag","mouseup","onDragEnd","oldCursor","cursor","oldPaths","oldParent","oldNextNode","mouseX","limitDragging","startAutoScroll","stopAutoScroll","patternProperties","additionalProperties","blurNodes","_remove","clonePaths","targetIsColorPicker","tdDrag","tdMenu","td","paddingLeft","_getShowMoreText","moreContents","moreText","totalChilds","findNodeByInternalPath","editField","updateField","updateValue","appendNodes","insertBeforeNodes","insertAfterNodes","removeNodes","duplicateNodes","moveNodes","setDomSelection","lastText","_onDelayedSearch","_onSearch","onkeyup","resultIndex","_setActiveResult","activeResult","_clearDelay","contentMenuClicked","selectionCallback","contextMenuCallback","setPath","createRange","selectNodeContents","addRange","moveToElementText","outline","whiteSpace","onmouseselection","__hint","rs","errorNodes","focusTarget","confirmKeys","caseSensitive","onArrowDown","onArrowUp","onEnter","onTab","startFrom","elementHint","elementStyle","repaint","hideDropDown","realInnerText","move","_createFrame","_createTable","searchBox","navigationBar","onSelectionChange","popup","forceSearch","tryJsonRepair","scrollableContent","treePath","tbody","_updateTreePath","findNode","_validateCustom","_renderValidationErrors","setError","autoScrollTimer","domName","setSelectionOffset","getSelectionOffset","animateTimeout","animateCallback","contentOuter","oncut","onpaste","onmouseup","onfocusin","onfocusout","_onUndo","_onRedo","navBar","onSectionSelected","_onTreePathSectionSelected","onContextMenuItemSelected","_onTreePathMenuItemSelected","_showAutoComplete","_startDragDistance","_updateDragDistance","hasParentNode","_onMultiSelectStart","expandTo","dragDistanceEvent","initialTarget","initialPageX","initialPageY","dragDistance","_onMultiSelect","_onMultiSelectEnd","colgroupContent","_getNodeInstancesByRange","getNodesByRange","compileJSONPointer","getColorCSS","insideRect","isFirefox","removeReturnsAndSurroundingWhitespace","specified","getRangeAt","rangeCount","startContainer","endContainer","setStart","setEnd","_text","hasChildNodes","appName","$1","attachEvent","detachEvent","keyword","additionalProperty","moveToBookmark","getBookmark","compareEndPoints","schemaPath","Picker","payloads","packaged","nmd","repeat","deepCopy","stringReverse","stringRepeat","stringTrimLeft","stringTrimRight","copyObject","copyArray","arrayToMap","createMap","arrayRemove","escapeHTML","getMatchOffsets","deferredCall","schedule","isPending","delayedCall","supportsLookbehind","supportsUnicodeFlag","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","isWin","isIE","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isEdge","isAIR","isAndroid","isChromeOS","isIOS","MSStream","isMobile","buildDom","getDocumentHead","createElementNS","removeChildren","createFragment","hasCssClass","addCssClass","removeCssClass","toggleCssClass","setCssClass","hasCssString","removeElementById","useStrictCSP","importCssStylsheet","minWidth","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","animationName","loadScript","qualifyURL","super_","implement","propagationStopped","_emit","_dispatchEvent","_eventRegistry","_defaultHandlers","_signal","once","setDefaultHandler","_disabled_","removeDefaultHandler","removeListener","removeAllListeners","$options","getOption","forwardTo","handlesSet","defineOptions","$defaultOptions","initialValue","resetOptions","setDefaultValues","setMessages","nls","AppConfig","$id","workerPath","modePath","themePath","$moduleUrls","loadWorkerFromBlob","sharedPopups","$modes","moduleUrl","setLoader","dynamicModules","$loading","$loaded","loadModule","$require","setModuleLoader","amdD","currentScript","_currentScript","isEqual","compareRange","comparePoint","containsRange","isEnd","isStart","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","fromPoints","collapseRows","toScreenRange","documentToScreenPosition","moveBy","comparePoints","MODIFIER_KEYS","KEY_MODS","alt","cmd","FUNCTION_KEYS","PRINTABLE_KEYS","esc","keyCodeToString","addListener","$toDestroy","getModifierState","altGr","keyLocation","timeStamp","stopEvent","getButton","addMouseWheelListener","deltaX","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","_clicks","getModifierString","addCommandKeyListener","isOldGecko","nextTick","$idleBlocked","onIdle","$idleBlockId","blockIdle","nextFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","lineMode","pasteCancelled","TextInput","getLine","onPaste","setNumberOfExtraLines","setAriaOptions","activeDescendant","inline","setLabel","hasFocus","$focusScroll","enableKeyboardAccessibility","preventScroll","curOp","docChanged","selectionChanged","resetSelection","setInputHandler","getInputHandler","onTextInput","extendLeft","extendRight","restoreStart","restoreEnd","setData","getCopyText","onCut","onCopy","onCommandKey","selectAll","onCompositionUpdate","$readOnly","useTextareaForIME","markerRange","compositionStartOffset","onCompositionEnd","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","textInput","onContextMenu","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","setReadOnly","setCopyWithEmptySelection","domEvent","moveToMouse","characterWidth","borderTopWidth","borderLeftWidth","onContextMenuClose","scroller","$mouseHandler","isMousePressed","home","findKeyCommand","$setUserAgentForTests","$clickSelection","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","inSelection","getDocumentPosition","mousedownEvent","moveToPosition","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","screenToTextCoordinates","getShiftKey","selectToPosition","setSelectionAnchor","scrollCursorIntoView","selectByLinesEnd","unsetStyle","focusWait","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","allowed","isScrollableBy","selectEnd","selectAllEnd","selectByWordsEnd","DefaultHandlers","__extends","__proto__","__values","$element","$parentNode","popups","$init","setHtml","setClassName","addPopup","updatePopups","removePopup","doPopupsOverlap","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","popupManager","Tooltip","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","pixelToScreenCoordinates","setDataProvider","showForRange","$registerCloseEvents","addMarker","textToScreenCoordinates","maxWidth","marker","$markerSession","removeMarker","$removeCloseEvents","relatedTarget","HoverTooltip","GutterHandler","$gutterLayer","hideTooltip","getRegion","selectTo","$tooltipFollowsMouse","$pos","documentToScreenRow","showTooltip","getGutterRow","$lines","$gutter","singular","plural","warning","$annotations","getFoldLine","$showFoldedAnnotations","annotationsToSummaryString","$useSvgGutterIcons","annotationLabels","GutterTooltip","$inSelection","moveCursorToPosition","layerConfig","toOrientedRange","getSelectionStyle","$cursorLayer","setBlinking","fromOrientedRange","$resetCursorStyle","cancelDrag","effectAllowed","getReadOnly","setDragImage","clearData","getTextRange","dropEffect","setCursorStyle","onDragEnter","onDragOver","onDragLeave","onDrop","moveText","dragWait","getDragDelay","startDrag","dragWaitEnd","dragReadyEnd","onMouseDrag","$dragEnabled","unselectable","DragdropHandler","addTouchListeners","readText","writeText","clipboard","ontouchstart","ontouchend","selectWord","getPixelPosition","getScrollTop","onMouseEvent","$scrollSpeed","releaseMouse","mouseEvent","$mouseMoved","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollBarV","scrollBarH","$dragDelay","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","MouseHandler","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","$editor","$handlers","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","getKeyboardHandler","getStatusText","$callKeyboardHandlers","passEvent","KeyBinding","EN","ON_R","AN","R_H","RLE","DOT","doBidiReorder","logicalFromVisual","bidiLevels","hasBidiCharacters","getVisualFromLogicalIdx","bidiMap","currentRow","bidiUtil","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","isBidiRow","updateRowLine","updateBidiMap","getDocumentRow","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","$useWrapMode","$wrapData","isFullWidth","getScreenTabSize","$main","updateCharacterWidths","$characterSize","$measureCharWidth","setShowInvisibles","setEolChar","setContentWidth","isRtlLine","setRtlDirection","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","getOverwrite","getSelections","offsetToCol","BidiHandler","getDocument","lead","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","old","$desiredColumn","$anchorChanged","getCursor","setAnchor","getAnchor","isBackwards","$setSelection","MAX_VALUE","$moveSelection","moveCursorTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","selectLine","moveCursorBy","wouldMoveIntoSoftTab","isTabStop","getTabSize","getNavigateWithinSoftTabs","screenToDocumentPosition","getDisplayLine","$useEmacsStyleLineStart","getDocumentLastRowColumnPosition","moveCursorLongWordRight","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","$shortWordEndIndex","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","lineWidgets","rowsAbove","rowCount","moveCursorToScreen","desiredColumn","getRangeOfMovements","fromJSON","rangeList","toSingleRange","Selection","$setMaxTokenCount","$applyToken","splitRegex","$arrayTokens","tokenArray","removeCapturingGroups","createSplitterRegexp","getLineTokens","matchMappings","regExps","defaultToken","onMatch","consumeLineEnd","startState","caseInsensitive","unicode","rule","groupCount","Tokenizer","$rules","addRules","getRules","embedRules","$embeds","getEmbeds","normalizeRules","processed","include","noEscape","keywordMap","createKeywordMapper","$keywordList","getKeywords","$keywords","TextHighlightRules","$behaviours","addBehaviours","inherit","getBehaviours","Behaviour","$session","$row","$rowTokens","getTokens","getTokenAt","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","getCurrentTokenPosition","getCurrentTokenRange","TokenIterator","multiSelect","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","findMatchingBracket","$getIndent","getTabString","$mode","$quotes","lineCommentStart","$pairQuotesAfter","closeDocComment","$matchTokenType","CstyleBehaviour","wordChars","HighlightRules","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","getUseSoftTabs","insertInLine","toggleBlockComment","getNextLineIndent","checkOutdent","autoOutdent","createWorker","createModeDelegates","$delegator","transformAction","$behaviour","completionKeywords","$createKeywordList","getCompletions","Mode","applyDelta","$clipPositionToDocument","$insertRight","$onChange","Anchor","insertMergedLines","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clippedPos","clonePos","$clipPosition","removeNewLine","applyDeltas","revertDeltas","revertDelta","$splitAndapplyLargeDelta","$safeApplyDelta","indexToPosition","positionToIndex","setTokenizer","tokenizer","setDocument","fireUpdateEvent","$worker","scheduleStart","$updateOnChange","$tokenizeRow","BackgroundTokenizer","setRegexp","clazz","regExp","lastRow","firstRow","MAX_RANGES","drawSingleLineMarker","SearchHighlight","addSession","$fromUndo","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","$undoStack","$undoDepth","$rev","$maxRev","addSelection","rev","startNewGroup","markIgnored","ignore","getRevision","getDeltas","getChangedRanges","getChangedLines","selectionBefore","selectionAfter","$redoStackBaseRev","undoChanges","$syncRev","redoChanges","mark","bookmark","isAtBookmark","$prettyPrint","isClean","markClean","UndoManager","foldData","folds","setFoldLine","shiftRow","sameRow","startRow","endRow","foldLine","containsRow","walk","getNextFoldTo","fold","addRemoveChars","idxToPosition","FoldLine","$bias","pointIndex","addList","substractPoint","containsPoint","rangeAtPoint","RangeList","subFolds","collapseChildren","addSubFold","restoreRange","Fold","Folding","getFoldsInRange","$foldData","getFoldsInRangeList","getAllFolds","getNextFoldLine","getFoldedRowCount","$addFoldLine","$clipRangeToDocument","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","foldAll","expandFolds","unfold","isRowFolded","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","$cloneFoldData","toggleFold","getCommentFoldRange","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","manual","markbegin","markbeginend","$foldStyle","setFoldStyle","$foldMode","$setFolding","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","$toggleFoldWidget","toggleFoldWidget","BracketMatch","$findClosingBracket","getMatchingBracketRanges","$brackets","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","openTag","closeTag","openTagName","closeTagName","bgTokenizer","$resetRowCache","$rowLengthCache","onChangeFold","$updateInternalDataOnChange","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","setBreakpoints","breakpoints","setScrollLeft","setScrollTop","$breakpoints","$scrollLeft","$scrollTop","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","$useSoftTabs","$indentWithTabs","$tabSize","setNavigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","$overwrite","toggleOverwrite","addGutterDecoration","$decorations","removeGutterDecoration","getBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","$markerId","inFront","$frontMarkers","$backMarkers","addDynamicMarker","getMarkers","$searchHighlight","highlightLines","clearAnnotations","setUseWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","oldMode","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","lineWidgetsWidth","lineWidgetWidth","$wrapLimit","$getStringScreenWidth","$undoSelect","$getUndoSelection","setUndoSelect","indentRows","outdentRows","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","getWrapLimitRange","$getDisplayTokens","$computeWrapSplits","$wrapAsCode","$indentedSoftWrap","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","getScreenLength","$getWidgetScreenLength","$setFontMetrics","$enableVarChar","getCharacterWidth","$uid","$wrap","indentedSoftWrap","firstLineNumber","useWorker","useSoftTabs","tabSize","navigateWithinSoftTabs","foldStyle","overwrite","newLineMode","EditSession","$matchIterator","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","preserveCase","$supportsUnicodeFlag","wholeWord","$assembleMultilineRegExp","backwards","Search","commandKeyBinding","addCommands","$singleCommand","addCommand","removeCommand","_buildKeyHash","parseKeys","_addCommandToBinding","hashId","removeCommands","bindKeys","$keyChain","isDefault","HashHandler","MultiHashHandler","byName","$checkCommandState","isAvailable","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","CommandManager","win","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","gotoLine","prompt","$type","multiSelectAction","getAllRanges","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","exitMultiSelectMode","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","$oldWidget","$registerLineWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","getWidgetsAtRow","updateFull","fixedWidth","coverLine","gutterWidth","fullWidth","scrollBar","LineWidgets","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","$rowToRowIndex","$cursorCell","$findNearestFoldWidget","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","tab","lane","$moveFoldWidgetUp","$moveAnnotationUp","$moveFoldWidgetDown","$moveAnnotationDown","$switchLane","$rowIndexToRow","$blurFoldWidget","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","keyboardFocusClassName","GutterKeyboardHandler","getKey","gutterKeyboardHandler","isInAnnotationLane","isInFoldLane","GutterKeyboardEvent","getContainerElement","getTextAreaContainer","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","$opResetTimer","$lastSel","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","$mergeUndoDeltas","$mergeableCommands","mergeNextCommand","sequenceStartTime","$keybindingId","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","oldSession","oldEditor","getTheme","getFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","getMatching","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","updateFrontMarkers","updateBackMarkers","updateBreakpoints","inVirtualSelectionMode","getBehavioursEnabled","$enableAutoIndent","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","getFadeFoldWidgets","setGhostText","removeGhostText","$getSelectedRows","getNumberAt","toggleWord","$toggleWordPairs","findLinkAt","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","alignCursor","getCursorPositionScreen","$tryReplace","getLastSearchOptions","revealRange","setAutoScrollEditorIntoView","$scrollAnchor","$pixelPos","$cursorStyle","setSmoothBlinking","isBlinking","selectionStyle","highlightActiveLine","highlightSelectedWord","copyWithEmptySelection","cursorStyle","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","keyboardHandler","showLineNumbers","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","$composition","placeholderNode","$placeholder","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","showPrintMargin","printMarginColumn","printMargin","fadeFoldWidgets","showFoldWidgets","displayIndentGuides","highlightIndentGuides","showGutter","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","$renderer","Editor","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","computeLineTop","computeLineHeight","$cacheCell","insertAdjacentElement","createCell","Lines","$showFoldWidgets","$updateAnnotations","gutterOffset","oldLastRow","$updateCursorRow","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","getShowLineNumbers","borderRightWidth","Gutter","setPadding","setMarkers","elt","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","drawBidiSingleLineMarker","Marker","isTextToken","$updateEolChar","EOL_CHAR_LF","EOL_CHAR_CRLF","EOL_CHAR","getLineHeight","$fontMetrics","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","$tabStrings","TAB_CHAR","$indentGuideRe","SPACE_CHAR","$renderLine","$renderLinesFragment","$useLineGroups","$renderToken","renderIndentGuide","$highlightIndentGuideMarker","indentLevel","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","MAX_LINE_LENGTH","$renderOverflowMessage","$renderSimpleLine","$getFoldLineTokens","EOF_CHAR","Text","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","isCursorInView","$selectionMarkers","drawCursor","$setOverwrite","Cursor","setVisible","coeff","skipEvent","onScroll","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollBar","HScrollBar","VScrollWidth","HScrollHeight","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","pageWidth","viewWidth","slideWidth","onRender","pending","$recursionLimit","RenderLoop","$setMeasureNodeStyles","$measureSizes","$measureNode","charSizes","allowBoldFonts","$addObserver","$observer","setPolling","$getZoom","zoom","$initTransformMeasureNodes","els","transformCoordinates","FontMetrics","$updateDecorators","dark","heightRatio","compensateFoldRows","minDecorationHeight","halfMinDecorationHeight","fillRect","canvasWidth","pixelRatio","Decorator","onGutterResize","$markerBack","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","cursorPos","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","minHeight","$renderChanges","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","setScrollMargin","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","$frozen","unfreeze","CHANGE_H_SCROLL","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","$maxPixelHeight","desiredHeight","$gutterWidth","$getLongestLine","$stopAnimation","$calcSteps","STEPS","$timer","$hasCssTransforms","$blockCursor","side","$useTextareaForIME","markerId","addToken","removeExtraToken","$ghostText","$ghostTextWidget","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","VirtualRenderer","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","nameToUrl","toUrl","$normalizePath","tlns","classname","deltaQueue","$doc","attachToDocument","UIWorkerClient","messageBuffer","setEmitSync","WorkerClient","mainClass","others","$others","showOtherMarkers","othersActive","othersClass","hideOtherMarkers","onUpdate","updateAnchors","updateMarkers","$onUpdate","$undoStackDepth","$undostack","PlaceHolder","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","removeSelectionMarker","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","defaultCommands","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","$multiselectOnSessionChange","$onAddRange","$onRemoveRange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","getSelectionMarkers","mergeOverlappingRanges","$initRangeList","toggleBlockSelection","selectionMarkerCount","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","$reAlignText","MultiSelect","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","openingBracketBlock","closingBracketBlock","sc","createEditSession","CURRENT_WORD","SELECTION","CURRENT_LINE","PREV_LINE","LINE_INDEX","LINE_NUMBER","SOFT_TABS","TAB_SIZE","CLIPBOARD","FILENAME","FILEPATH","FILENAME_BASE","DIRECTORY","WORKSPACE_NAME","FULLNAME","BLOCK_COMMENT_START","BLOCK_COMMENT_END","LINE_COMMENT","CURRENT_YEAR","CURRENT_YEAR_SHORT","CURRENT_MONTH","CURRENT_MONTH_NAME","CURRENT_MONTH_NAME_SHORT","CURRENT_DATE","CURRENT_DAY_NAME","CURRENT_DAY_NAME_SHORT","CURRENT_HOUR","hour12","CURRENT_MINUTE","CURRENT_SECOND","SELECTED_TEXT","createTokenizer","tabstopId","fmtString","guard","snippetVar","choices","formatString","expectElse","ifEnd","elseEnd","changeCase","formatStringVar","formatFunction","tokenizeTmSnippet","getVariableValue","__","tmStrFormat","fmt","resolveVariables","tmFormatFunction","getDisplayTextForSnippet","insertSnippetForSelection","addTabstops","tabstops","insertSnippet","tabstopManager","tabNext","$getScope","inlinePhp","getActiveScopes","snippetMap","includeScopes","expandWithTab","expandSnippetForSelection","findMatchingSnippet","dryRun","replaceBefore","replaceAfter","M__","matchBefore","T__","matchAfter","startRe","endRe","triggerRe","endTriggerRe","snippetNameMap","unregister","tabTrigger","endTrigger","endGuard","parseSnippetFile","getSnippetByName","excludeExtraIndent","parents","$openTabstops","selectedTabstop","$onChangeSelection","$onChangeSession","$onAfterExec","removeTabstopMarkers","removeRange","$inChange","updateLinkedFields","hasLinkedRanges","firstNonLinked","snippetManager","onAfterExec","onChangeSelection","onChangeSession","selectTabstop","addTabstopMarkers","useLink","tabstop","Tab","Esc","expandSnippet","$highlightTagPending","AcePopup","setSelectOnHover","isMouseOver","setRow","selectedNode","getHoveredRow","filterText","matchMask","isTopdown","autoSelect","anchorPos","tryShow","$borderSize","goTo","getTextLeftOffset","$imageSize","$singleLineEditor","getAriaId","screenReaderDiv","setScreenReaderContent","completer","_lines","createCodeBlock","AceInlineScreenReader","inlineScreenReader","hideInlinePreview","AceInline","parForEach","retrievePrecedingIdentifier","retrieveFollowingIdentifier","getCompletionPrefix","completers","identifierRegexps","triggerAutocomplete","triggerCharacters","insertMatch","$onPopupShow","$onHidePopup","$onPopupChange","mouseOutListener","tooltipTimer","$initInline","inlineEnabled","inlineRenderer","getPopup","hideDocTooltip","stickySelectionTimer","stickySelection","$updatePopupPosition","stickySelectionDelay","observeLayoutChanges","$elements","onLayoutChange","mousewheelListener","unObserveLayoutChanges","updateDocTooltip","openPopup","$firstOpenTimer","completions","tooltipNode","changeTimer","blurListener","mousedownListener","completionProvider","activated","getCompletionProvider","showPopup","updateCompletions","gatherCompletions","setFilter","exactMatch","ignoreCaption","provideCompletions","autoShown","emptyMessage","autoInsert","getDocTooltip","completerId","docText","docHTML","showDocTooltip","onTooltipClick","Down","Return","deleteSuffix","PageUp","PageDown","$sharedInstance","startCommand","insertByIndex","$insertString","finished","filterCompletions","$score","Autocomplete","CompletionProvider","FilteredList","$liveAutocompletionDelay","setCompleters","addCompleter","textCompleter","keyWordCompleter","snippetCompleter","snippetFileId","snippets","snippetText","$liveAutocompletionThreshold","enableBasicAutocompletion","enableLiveAutocompletion","liveAutocompletionDelay","liveAutocompletionThreshold","enableSnippets","setEditor","searchRange","$syncOptions","$initElements","replaceBox","searchOption","replaceOption","regExpOption","caseSensitiveOption","wholeWordOption","replaceInput","searchCounter","activeInput","$searchBarKb","setSearchRange","searchRangeMarker","updateCounter","findPrev","replaceAndFindNext","$closeSearchBarKb","isReplace","SearchBox","JsonHighlightRules","MatchingBraceOutdent","singleLineBlockCommentRe","tripleStarBlockCommentRe","startRegionRe","_getFoldWidgetBase","getCommentRegionBlock","getSectionRange","$outdent","getSchema","_addSchema","_compile","$async","_getId","normalizeId","_schemas","$schema","_opts","defaultMeta","errorsText","baseId","_fragments","_refs","addFormat","_formats","dataVar","addUsedSchema","localRefs","compiling","_metaOpts","refVal","compileAsync","addKeyword","getKeyword","removeKeyword","validateKeyword","ValidationError","Validation","MissingRefError","MissingRef","$dataMetaSchema","_loadingSchemas","_compilations","RULES","loopRequired","errorDataPath","_errorDataPathProperty","keywords","nullable","metaSchema","loadSchema","missingSchema","missingRef","fast","ipv4","ipv6","full","ucs2length","toQuotedString","callValidate","isTop","isRoot","errSchemaPath","util","resolveRef","usePattern","useDefault","useCustomRule","inlineRef","inlineRefs","escapeFragment","toHash","unescapeFragment","implements","$comment","checkDataType","checkDataTypes","null","integer","coerceToTypes","getProperty","escapeQuotes","equal","varOccurences","varReplace","schemaHasRules","schemaHasRulesExcept","schemaUnknownRules","getPathExpr","unescapeJsonPointer","escapeJsonPointer","simpleTypes","statements","not","modifying","dataLevel","dataPathArr","createErrors","compositeRule","strictKeywords","jsonPointers","passContext","ownProperties","unknownFormats","else","if","minProperties","propertyNames","multipleOfPrecision","removeAdditional","useDefaults","missingRefs","strictNumbers","rootId","strictDefaults","extendRefs","coerceTypes","_validateKeyword","cycles","insensitive","trimLeft","_current","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","_consumeLiteral","_consumeOperator","_looksLikeJSON","_interpreter","functionTable","_functionAbs","_signature","avg","_functionAvg","_functionCeil","_functionContains","ends_with","_functionEndsWith","_functionFloor","_functionLength","_functionMap","_functionMax","_functionMerge","variadic","max_by","_functionMaxBy","_functionSum","starts_with","_functionStartsWith","_functionMin","min_by","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","sort_by","_functionSortBy","_functionJoin","_functionReverse","to_array","_functionToArray","to_string","_functionToString","to_number","_functionToNumber","not_null","_functionNotNull","Pipe","EQ","GT","GTE","LTE","NE","Star","Not","_loadTokens","_lookahead","_lookaheadToken","_advance","nud","led","_parseProjectionRHS","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","_parseDotRHS","Filter","_parseComparator","_parseSliceExpression","computeSliceParams","callFunction","jmespathType","capSliceRange","_validateArgs","_getTypeName","_typeMatches","createKeyFunction","strictDeepEqual","arrayKeywords","propsKeywords","skipKeywords","bigint","BigInt","es6","watch","make","stylize","anyAncestor","msMatchesSelector","webkitMatchesSelector","beforeShow","afterShow","closeElem","overlayElem","forceClose","beforeClose","NOT_SCHEME","NOT_USERINFO","NOT_HOST","NOT_PATH","NOT_PATH_NOSCHEME","NOT_QUERY","NOT_FRAGMENT","ESCAPE","UNRESERVED","OTHER_CHARS","PCT_ENCODED","IPV4ADDRESS","IPV6ADDRESS","ucs2","toASCII","toUnicode","scheme","userinfo","iri","unicodeSupport","domainHost","absolutePath","tolerant","resourceName","subject","nid","nss","SCHEMES","pctEncChar","pctDecChars","removeDotSegments","resolveComponents","escapeComponent","unescapeComponent","tqw","qmrn","bg","bsq","bck","nch","bvt","brwn","brw","ctb","hrt","chcT","rnw","crns","crms","Db","Dcn","Dgnr","Dgr","Dgrn","Dkhk","Dmgn","Dvgr","Drng","Drch","Dsmn","Dsgr","DsTb","DsTg","Dtrq","Dvt","ppnk","pskb","mgr","grb","rbrc","rwht","stg","chs","gnsb","gnr","grn","grnw","hnw","htpn","nnr","ng","khk","vnr","nrb","wngr","mnch","Lb","Lcr","Lcn","Lgnr","Lgr","Lgrn","Lpnk","Lsmn","Lsgr","Lskb","LsTg","Lstb","Lw","mgrn","mgnt","mrn","mqm","mmb","mmrc","mmpr","mmsT","mtr","mmvt","mnLb","ntc","mstr","mccs","vjw","nv","vrb","rngr","rch","pgnr","pgrn","ptrq","pvtr","ppwh","pchp","pnk","pm","pwrb","prp","cc","sbr","rb","sbrw","smn","nbr","sgrn","ssh","snn","svr","skb","sTb","sTgr","snw","stb","thst","tmT","trqs","whT","wht","hts","wgrn","hsla","hexToRgb","nameToRgb","_rgba","_hsla","hslToRgb","printRGB","rgbToHsl","printHSL","_doRemove","editorFormat","cancelButton","defaultColor","onOpen","_popupInited","_setColor","openHandler","_domEdit","domElement","__containedEvent","closeHandler","silent","failSilently","_setHSLA","_toggleDOM","_setPosition","_domH","_domSL","_domA","_domSample","_domOkay","_domCancel","_ifPopup","_updateUI","_bindEvents","fromEditor","hslString","hslaString","printHex","StyleElement","construct","sham","ReferenceError","__esModule","getTypeOf","uint8array","compressedSize","uncompressedSize","crc32","compressedContent","getContentWorker","uncompressWorker","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","STORE","magic","DEFLATE","base64","binary","createFolders","compressionOptions","unixPermissions","dosPermissions","lie","_pako","_pakoAction","_pakoOptions","processChunk","_createPako","transformTo","cleanUp","onData","pako","utf8encode","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","accumulate","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","openedSource","closedSource","DATA_DESCRIPTOR","CENTRAL_DIRECTORY_END","prepareNextSource","resume","registerPrevious","generatedError","generateWorker","_compressWorker","loadAsync","external","decompressed","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","prepareContent","fileNameStr","fileCommentStr","unsafeOriginalName","_upstreamEnded","_bindStream","_stream","Readable","_helper","newBufferFrom","allocBuffer","alloc","folder","generateInternalStream","checkSupport","generateNodeStream","toNodejsStream","byteAt","zero","lastIndexOfSignature","readAndCheckSignature","readData","checkOffset","setIndex","readInt","readDate","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","destType","propName","dataIsReady","_tickScheduled","_tickAndRepeat","isFinished","extraStreamInfo","mergeStreamInfo","nodestream","_internalType","_outputType","_mimeType","newBlob","objectMode","arraybuffer","nodebuffer","MSBlobBuilder","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","stringifyByChunk","stringifyByChar","applyCanBeUsed","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","setimmediate","loadOptions","checkSignature","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","isEncrypted","bitFlag","useUTF8","fileNameLength","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","_dataBinary","internalStream","_decompressWorker","nodeStream","WebKitMutationObserver","MessageChannel","port1","port2","outcome","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","immediate","chunkSize","windowBits","memLevel","gzip","chunks","strm","avail_out","deflateInit2","deflateSetHeader","dictionary","string2buf","deflateSetDictionary","_dict_set","next_in","avail_in","Buf8","next_out","deflate","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","inflateInit2","Z_OK","inflateGetHeader","Z_FINISH","Z_NO_FLUSH","binstring2buf","inflate","Z_NEED_DICT","inflateSetDictionary","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","setTyped","Buf16","Buf32","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","pending_buf","pending_out","total_out","_tr_flush_block","block_start","strstart","max_chain_length","prev_length","nice_match","w_size","w_mask","good_match","match_start","window_size","hash_size","adler","total_in","ins_h","hash_shift","hash_mask","match_length","_tr_tally","max_lazy_match","last_lit","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","data_type","_tr_init","deflateInit","deflateReset","deflateResetKeep","hcrc","os","_tr_align","_tr_stored_block","deflateInfo","xflags","extra_len","dmax","wsize","whave","wnext","hold","lencode","distcode","lenbits","distbits","sane","havedict","check","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","was","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","max_code","stat_desc","importScripts","clearImmediate","FUNC_ERROR_TEXT","HASH_UNDEFINED","PLACEHOLDER","WRAP_PARTIAL_FLAG","WRAP_ARY_FLAG","INFINITY","wrapFlags","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboRange","rsComboMarksRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsVarRange","rsBreakRange","rsMathOpRange","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsModifier","rsOptVar","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","stringEscapes","freeParseFloat","freeParseInt","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","isMap","nodeIsRegExp","nodeIsSet","isSet","nodeIsTypedArray","arrayAggregator","setter","iteratee","accumulator","arrayEach","arrayEachRight","arrayEvery","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","baseFindKey","eachFunc","baseFindIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseTimes","baseTrim","trimmedEndIndex","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","deburrLetter","escapeHtmlChar","escapeStringChar","chr","hasUnicode","mapToArray","overArg","replaceHolders","setToArray","stringSize","unicodeSize","stringToArray","unicodeToArray","asciiToArray","unescapeHtmlChar","runInContext","uid","pick","arrayProto","objectProto","coreJsData","funcToString","idCounter","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","oldDash","reIsNative","allocUnsafe","getPrototype","objectCreate","propertyIsEnumerable","spreadableSymbol","isConcatSpreadable","symIterator","symToStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","Hash","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","assignMergeValue","eq","baseAssignValue","objValue","assocIndexOf","baseAggregator","baseEach","baseAssign","baseAt","baseClone","customizer","isDeep","isFlat","isFull","initCloneArray","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","getSymbolsIn","baseAssignIn","keysIn","copySymbols","getSymbols","initCloneByTag","Ctor","cloneArrayBuffer","cloneDataView","cloneTypedArray","cloneRegExp","regexp","cloneSymbol","symbol","stacked","subValue","getAllKeysIn","baseConformsTo","baseDelay","wait","baseDifference","isCommon","valuesLength","outer","computed","valuesIndex","templateSettings","evaluate","hashClear","hashDelete","hashGet","hashHas","hashSet","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","setCacheAdd","setCacheHas","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFilter","baseFlatten","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","baseGet","castPath","toKey","baseGetAllKeys","keysFunc","symbolsFunc","baseGetTag","getRawTag","isOwn","unmasked","baseGt","baseHas","baseHasIn","baseIntersection","arrays","othLength","othIndex","caches","baseInvoke","baseIsArguments","baseIsEqual","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","convert","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","isPartial","objProps","objLength","objStacked","othStacked","skipCtor","othValue","compared","objCtor","othCtor","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","baseIsNative","isMasked","baseIteratee","identity","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","baseMergeDeep","mergeFunc","safeGet","isTyped","isArrayLikeObject","toPlainObject","baseNth","baseOrderBy","iteratees","orders","getIteratee","baseSortBy","comparer","compareMultiple","objCriteria","othCriteria","ordersLength","compareAscending","basePickBy","baseSet","basePullAll","basePullAt","baseUnset","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","constant","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","low","high","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","baseWhile","isDrop","baseWrapperValue","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","createAggregator","createAssigner","assigner","isIterateeCall","iterable","createCaseFirst","methodName","createCompounder","deburr","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","getFuncName","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","arity","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","countHolders","newHolders","createRecurry","arrLength","oldArray","createInverter","toIteratee","baseInverter","createMathOperation","createOver","arrayFunc","createPadding","charsLength","toFinite","baseRange","createRelationalOperation","wrapFunc","isCurry","setWrapToString","createRound","precision","toInteger","pair","createToPairs","setToPairs","baseToPairs","createWrap","srcBitmask","newBitmask","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","arrStacked","arrValue","otherFunc","isKeyable","stubArray","hasPath","hasFunc","isLength","ctorString","isMaskable","stubFalse","shortOut","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","stamp","memoizeCapped","quote","subString","differenceBy","differenceWith","findLastIndex","intersectionBy","intersectionWith","pullAll","pullAt","unionBy","unionWith","unzip","unzipWith","without","xor","xorBy","xorWith","zipWith","wrapperAt","countBy","findLast","forEachRight","groupBy","invokeMap","keyBy","partition","WRAP_BIND_FLAG","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","timeWaiting","debounced","isInvoking","leadingEdge","defer","resolver","memoized","Cache","negate","overArgs","transforms","funcsLength","partial","partialRight","rearg","gte","baseIsArrayBuffer","baseIsDate","baseIsMap","baseIsRegExp","baseIsSet","baseIsTypedArray","lte","iteratorToArray","remainder","toLength","isBinary","assignIn","assignInWith","assignWith","propsIndex","propsLength","defaultsDeep","mergeWith","invertBy","invoke","baseKeysIn","nativeKeysIn","isProto","omit","CLONE_DEEP_FLAG","basePick","pickBy","toPairs","toPairsIn","camelCase","word","capitalize","upperFirst","kebabCase","lowerFirst","snakeCase","startCase","upperCase","hasUnicodeWord","unicodeWords","asciiWords","attempt","bindAll","methodNames","flow","flowRight","methodOf","over","overEvery","overSome","basePropertyDeep","rangeRight","augend","addend","dividend","multiplicand","minuend","subtrahend","after","castArray","cond","conforms","baseConforms","curry","curryRight","dropRight","dropRightWhile","dropWhile","baseFill","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","fromPairs","functions","functionsIn","initial","mapKeys","mapValues","matchesProperty","nthArg","omitBy","propertyOf","pullAllBy","pullAllWith","sampleSize","setWith","shuffle","sortedUniq","sortedUniqBy","takeRight","takeRightWhile","takeWhile","toPath","isArrLike","unary","uniq","uniqWith","unset","updateWith","valuesIn","zipObjectDeep","entriesIn","extendWith","cloneDeep","cloneDeepWith","cloneWith","conformsTo","defaultTo","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","inRange","baseInRange","isBoolean","isEqualWith","isMatchWith","isNull","isSafeInteger","isWeakMap","isWeakSet","strictLastIndexOf","maxBy","mean","meanBy","minBy","stubObject","stubString","stubTrue","nth","noConflict","pad","strLength","padEnd","radix","floating","reduceRight","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sumBy","isEscaping","isEvaluating","importsKeys","importsValues","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","toLower","toSafeInteger","toUpper","trimEnd","trimStart","omission","newEnd","eachRight","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","useLazy","isUnwrapped","onlyLazy","chainName","lazyClone","lazyReverse","lazyValue","isRight","getView","iterLength","takeCount","iterIndex","wrapperChain","wrapperCommit","wrapperNext","wrapperPlant","wrapperReverse","wrapperValue","wrapperToIterator","symbolMap","numberMap","suffixes","relativeTimeWithPlural","forms","ww","lastDigit","last2Digits","relativeTimeWithMutation","mutation","softMutation","mutationTable","lastNumber","minWeekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","specialMutationForYears","processRelativeTime","ll","lll","llll","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eras","since","narrow","eraYearOrdinalRegex","eraYearOrdinalParse","$0","$2","isUpper","ezafeNumSuffix","eifelerRegelAppliesToNumber","processFutureTime","processPastTime","translateSingular","special","translateSeconds","relativeTimeWithSingular","relativeSeconds","translator","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","numbersNouns","numberNoun","numberAsNoun","hundred","ten","one","translateFuture","translatePast","weekdaysCaseReplace","nominative","accusative","genitive","hookCallback","arrLen","createUTC","utc","invalidEra","era","fun","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","Moment","updateOffset","isMoment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","weekyears","weekyear","isoweekyears","isoweekyear","isoweeks","isoweek","isoWeekday","isoWeekYear","isoWeek","matchOffset","match1to2NoLeadingZero","match1to2HasZero","tokenLen","getSetYear","makeGetSet","keepTime","set$1","handleStrictParse","getSetMonth","shortP","longP","shiftWeekdays","ws","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","getSetHour","commonPrefix","arr1","arr2","minl","oldLocale","isLocaleNameSane","aliasedRequire","isoDatesLen","isoTimesLen","createLocal","stringLength","erasConvertYear","validFormatFound","bestFormatIsValid","configfLen","createFromInputFallback","prototypeMin","prototypeMax","moments","orderLen","_bubble","utcOffset","isUtc","ret","createAdder","createInvalid$1","isMomentInput","isNumberOrStringArray","arrayTest","dataTypeTest","isMomentInputObject","objectTest","propertyTest","propertyLen","monthDiff","wholeMonthDiff","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","matchEraName","erasNameRegex","matchEraNarrow","erasNarrowRegex","erasParse","matchEraYearOrdinal","_eraYearOrdinalRegex","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","preParsePostFormat","calendar$1","isCalendarSpec","sod","calendarFormat","asFloat","zoneDelta","startOfDate","inputString","toNow","stringGet","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSameOrAfter","isSameOrBefore","isValid$2","parsingFlags","stringSet","prioritized","getPrioritizedUnits","unitsObj","prioritizedLen","toObject","toDate","keepOffset","creationData","eraName","getEraName","eraNarrow","getEraNarrow","eraAbbr","getEraAbbr","eraYear","getEraYear","getIsLeapYear","getSetWeekYear","getSetISOWeekYear","getSetQuarter","getDaysInMonth","getSetWeek","isoWeeks","getSetISOWeek","getWeeksInYear","weekInfo","weeksInWeekYear","getWeeksInWeekYear","isoWeeksInYear","getISOWeeksInYear","isoWeeksInISOWeekYear","getISOWeeksInISOWeekYear","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","getSetDayOfYear","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","setOffsetToUTC","setOffsetToLocal","parseZone","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDST","isDaylightSavingTime","isUtcOffset","zoneAbbr","getZoneAbbr","zoneName","getZoneName","getSetZone","isDSTShifted","isDaylightSavingTimeShifted","_isDSTShifted","proto$1","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","tok","localeEras","_eras","localeErasParse","localeErasConvertYear","localeMonths","localeMonthsShort","localeMonthsParse","localeWeek","localeFirstDayOfYear","localeFirstDayOfWeek","localeWeekdays","localeWeekdaysMin","localeWeekdaysShort","localeWeekdaysParse","localeIsPM","localeMeridiem","langData","addSubtract$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","makeGetter","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","isValid$1","add$1","subtract$1","clone$1","get$2","argWithSuffix","argThresholds","th","relativeTime$1","toIsoString","setHookCallback","createUnix","listMonths","listWeekdays","createInZone","listMonthsShort","listWeekdaysMin","updateLocale","tmpLocale","listLocales","listWeekdaysShort","relativeTimeRounding","getSetRelativeTimeRounding","roundingFunction","relativeTimeThreshold","getSetRelativeTimeThreshold","getCalendarFormat","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","Global","_testing","setXMLHttpRequest","MetadataService","JsonService","_jsonService","resetSigningKeys","signingKeys","metadataUrl","getJson","metadataSeed","getIssuer","_getMetadataProperty","getAuthorizationEndpoint","getUserInfoEndpoint","getTokenEndpoint","getCheckSessionIframe","getEndSessionEndpoint","getRevocationEndpoint","getKeysEndpoint","getSigningKeys","_metadataUrl","UrlUtility","addQueryParam","parseUrlFragment","JoseUtil","jws","KeyUtil","X509","hextob64u","b64tohex","AllowedSigningAlgs","OidcClientSettings","client_secret","client_authentication","max_age","ui_locales","acr_values","response_mode","filterProtocolClaims","staleStateAge","clockSkew","clockService","ClockService","userInfoJwtIssuer","mergeClaims","stateStore","WebStorageStateStore","ResponseValidatorCtor","ResponseValidator","MetadataServiceCtor","extraTokenParams","_authority","_metadataSeed","_signingKeys","_client_id","_client_secret","_response_type","_scope","_redirect_uri","_post_logout_redirect_uri","_client_authentication","_prompt","_display","_max_age","_ui_locales","_acr_values","_resource","_response_mode","_filterProtocolClaims","_loadUserInfo","_staleStateAge","_clockSkew","_clockService","_userInfoJwtIssuer","_mergeClaims","_stateStore","_validator","_metadataService","_extraQueryParams","_extraTokenParams","getEpochTime","_prefix","_contentTypes","_XMLHttpRequest","_jwtHandler","getResponseHeader","postForm","SigninRequest","id_token_hint","login_hint","request_uri","request_type","skipUserInfo","isOidc","isCode","SigninState","nonce","code_verifier","code_challenge","isOAuth","created","_created","_request_type","toStorageString","fromStorageString","clearStaleState","OidcClient","createSigninRequest","readSigninResponseState","SigninResponse","processSigninResponse","validateSigninResponse","createSignoutRequest","SignoutRequest","readSignoutResponseState","SignoutResponse","ErrorResponse","processSignoutResponse","validateSignoutResponse","metadataService","TokenClient","exchangeCode","grant_type","exchangeRefreshToken","refresh_token","error_description","error_uri","session_state","_nonce","_code_verifier","hashString","_code_challenge","hexToBase64Url","_skipUserInfo","User","token_type","expires_at","expires_in","AccessTokenEvents","accessTokenExpiringNotificationTime","accessTokenExpiringTimer","Timer","accessTokenExpiredTimer","_accessTokenExpiringNotificationTime","_accessTokenExpiring","_accessTokenExpired","unload","removeAccessTokenExpiring","removeHandler","removeAccessTokenExpired","_callbacks","raise","SessionMonitor","CheckSessionIFrame","_CheckSessionIFrameCtor","_timer","addUserLoaded","_start","addUserUnloaded","_stop","monitorAnonymousSession","querySessionStatus","_sub","_sid","_checkSessionIFrame","_checkSessionInterval","_stopCheckSessionOnError","_raiseUserSessionChanged","_raiseUserSignedOut","_raiseUserSignedIn","checkSessionInterval","stopCheckSessionOnError","_url","_interval","_stopOnError","_frame_origin","_frame","_boundMessageEvent","_message","_session_state","TokenRevocationClient","_XMLHttpRequestCtor","revoke","_revoke","CordovaPopupWindow","popupWindowFeatures","popupWindowTarget","startUrl","_isInAppBrowserInstalled","cordova","_error","_popup","InAppBrowser","_exitCallbackEvent","_exitCallback","_loadStartCallbackEvent","_loadStartCallback","_success","_cleanup","InMemoryWebStorage","CordovaPopupNavigator","CordovaIFrameNavigator","UserInfoService","_userInfoService","_joseUtil","_tokenClient","_processSigninParams","_validateTokens","_processClaims","isOpenIdConnect","getClaims","_processCode","_validateIdTokenAndAccessToken","_validateIdToken","_validateIdTokenAttributes","validateJwtAttributes","_validateAccessToken","_getSigningKeyForJwt","kid","_filterByAlg","alg","_getSigningKeyForJwtWithSingleRetry","parseJwt","validateJwt","kty","at_hash","_getClaimsFromJwt","iss","KEYUTIL","superclass","lib","Base","mixIn","$super","WordArray","sigBytes","enc","Hex","Latin1","Utf8","BufferedBlockAlgorithm","_nDataBytes","_append","_minBufferSize","_doProcessBlock","Hasher","_doReset","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","x64","Word","toX32","Base64","SHA256","HmacSHA256","SHA512","HmacSHA512","SHA384","HmacSHA384","fromNumber","fromString","am","DB","DM","DV","FV","F1","F2","fromInt","mp","invDigit","mpl","mph","um","mt2","q3","ONE","dlShiftTo","mu","compareTo","revert","divRemTo","mulTo","multiplyTo","sqrTo","squareTo","ZERO","subTo","drShiftTo","fromRadix","lShiftTo","rShiftTo","isEven","toRadix","bitLength","modPowInt","multiplyUpperTo","multiplyLowerTo","dAddOffset","LN2","signum","intValue","dMultiply","testBit","bitwiseTo","shiftLeft","isProbablePrime","nextBytes","changeBit","addTo","modInt","millerRabin","getLowestSetBit","shiftRight","modPow","byteValue","shortValue","toByteArray","andNot","bitCount","setBit","clearBit","flipBit","divideAndRemainder","modInverse","gcd","square","appVersion","dmp1","dmq1","curve","zinv","fromBigInteger","infinity","doPublic","setPublic","isPrivate","encrypt","encryptOAEP","MessageDigest","Util","getCanonicalAlgName","getHashLength","hashHex","toBigInteger","getX","getY","isInfinity","twice","getInfinity","multiplyTwo","getQ","getA","getB","decodePointHex","getByteLength","getEncoded","toByteArrayUnsigned","decodeFrom","decodeFromHex","add2D","twice2D","multiply2D","isOnCurve","KJUR","asn1","ASN1Util","integerToByteHex","bigIntToMinTwosComplementsHex","getPEMStringFromHex","newObject","ASN1Object","DERBoolean","DERInteger","DERBitString","DEROctetString","DERNull","DERObjectIdentifier","DEREnumerated","DERUTF8String","DERNumericString","DERPrintableString","DERTeletexString","DERIA5String","DERUTCTime","DERGeneralizedTime","DERVisibleString","DERBMPString","DERSequence","DERSet","DERTaggedObject","explicit","jsonToASN1HEX","getEncodedHex","oidHexToInt","oidIntToHex","getLengthHexFromValue","hV","hTLV","isModified","getFreshValueHex","hL","hT","getValueHex","setByParam","tlv","DERAbstractString","getString","setString","setStringHex","DERAbstractTime","localDateToUTC","zeroPadding","setByDateValue","setByDate","DERAbstractStructured","setByASN1ObjectArray","asn1Array","appendASN1Object","setByBigInteger","setByInteger","setValueHex","setHexValueIncludingUnusedBits","setUnusedBitsAndHexValue","setByBinaryString","setByBooleanArray","newFalseArray","bin","setValueOidString","setValueName","x509","OID","name2oid","setValueNameOrOid","oid","withMillis","millis","sortFlag","sortflag","isExplicit","asn1Object","setASN1Object","tage","tagi","getLblen","getL","getVblen","getVidx","getV","getTLV","getTLVblen","getNextSiblingIdx","getChildIdx","getNthChildIdx","getIdxbyList","getIdxbyListEx","isContextTag","getTLVbyList","getTLVbyListEx","getVbyList","getVbyListEx","getInt","getOID","getOIDName","oid2name","hextooidstr","dump","ommit_long_octet","isASN1HEX","oidname","x509ExtName","checkStrictDER","isHex","utf8tob64u","b64utoutf8","isBase64URL","isIntegerArray","isPrintable","isIA5","isMail","DIGESTINFOHEAD","sha1","sha224","sha256","sha384","sha512","md2","md5","ripemd160","DEFAULTPROVIDER","hmacmd5","hmacsha1","hmacsha224","hmacsha256","hmacsha384","hmacsha512","hmacripemd160","MD5withRSA","SHA1withRSA","SHA224withRSA","SHA256withRSA","SHA384withRSA","SHA512withRSA","RIPEMD160withRSA","MD5withECDSA","SHA1withECDSA","SHA224withECDSA","SHA256withECDSA","SHA384withECDSA","SHA512withECDSA","RIPEMD160withECDSA","SHA1withDSA","SHA224withDSA","SHA256withDSA","MD5withRSAandMGF1","SHAwithRSAandMGF1","SHA1withRSAandMGF1","SHA224withRSAandMGF1","SHA256withRSAandMGF1","SHA384withRSAandMGF1","SHA512withRSAandMGF1","RIPEMD160withRSAandMGF1","CRYPTOJSMESSAGEDIGESTNAME","MD5","SHA1","SHA224","RIPEMD160","getDigestInfoHex","getPaddedDigestInfoHex","digestString","digestHex","sha256Hex","sha512Hex","DSA","ECDSA","prov","SECURERANDOMGEN","getRandomHexOfNbytes","getRandomBigIntegerOfNbytes","getRandomHexOfNbits","getRandomBigIntegerOfNbits","getRandomBigIntegerZeroToMax","getRandomBigIntegerMinToMax","setAlgAndProvider","md","updateString","updateHex","sjcl","codec","toBits","fromBits","algName","provName","HASHLENGTH","Mac","algProv","doFinal","doFinalString","doFinalHex","setPassword","utf8","rstr","b64","b64u","Signature","_setAlgNames","mdAlgName","pubkeyAlgName","_zeroPaddingOfSignature","prvKey","pubKey","sHashHex","ecprvhex","eccurvename","prv","hSign","signWithMessageHashPSS","pssSaltLen","signWithMessageHash","signString","signHex","verify","ecpubhex","pub","verifyWithMessageHashPSS","verifyWithMessageHash","algProvName","initParams","psssaltlen","prvkeypem","prvkeypas","Cipher","getAlgByKeyAndName","decrypt","decryptOAEP","oidhex2name","ECParameterDB","getBigRandom","setNamedCurve","ecparams","getByName","prvKeyHex","pubKeyHex","curveName","setPrivateKeyHex","setPublicKeyHex","getPublicKeyXYHex","keylen","getShortNISTPCurveName","generateKeyPairHex","biRSSigToASN1Sig","fromByteArrayUnsigned","serializeSig","verifyHex","parseSigHex","verifyRaw","Bitcoin","parseSig","toByteArraySigned","parseSigCompact","readPKCS5PrvKeyHex","readPKCS8PrvKeyHex","readPKCS8PubKeyHex","readCertPubKeyHex","parseSigHexInHexRS","asn1SigToConcatSig","concatSigToASN1Sig","hexRSSigToASN1Sig","regist","AES","iv","ciphertext","proc","eproc","ivlen","TripleDES","DES","cipher","ivsalt","keyhex","ivhex","parsePKCS5PEM","getKeyAndUnusedIvByPasscodeAndIvsalt","decryptKeyB64","getDecryptedKeyHex","getEncryptedPKCS5PEMFromPrvKeyHex","parseHexOfEncryptedPKCS8","encryptionSchemeAlg","encryptionSchemeIV","pbkdf2Salt","pbkdf2Iter","getPBKDF2KeyHexFromParam","PBKDF2","keySize","_getPlainPKCS8HexFromEncryptedPKCS8PEM","getKeyFromEncryptedPKCS8PEM","getKeyFromPlainPrivatePKCS8Hex","parsePlainPrivatePKCS8Hex","algparam","algoid","keyidx","getKeyFromPlainPrivatePKCS8PEM","_getKeyFromPublicPKCS8Hex","parsePublicRawRSAKeyHex","parsePublicPKCS8Hex","dp","dq","co","qi","setPrivateEx","setPrivate","crv","getPublicKeyFromCertHex","getPublicKeyFromCertPEM","generateKeypair","prvKeyObj","pubKeyObj","getPEM","seq","octstr","bitstr","SubjectPublicKeyInfo","getKeyFromCSRPEM","getKeyFromCSRHex","parseCSRHex","p8pubkeyhex","getKeyID","getJWKFromKey","getPosArrayOfChildrenFromHex","getHexValueArrayOfChildrenFromHex","readPrivateKeyFromPEMString","readPKCS5PubKeyHex","readCertHex","getPublicKeyHex","AlgorithmIdentifier","PSSNAME2ASN1TLV","HEX2STAG","foffset","aExtInfo","getVersion","getSerialNumberHex","getSignatureAlgorithmField","getAlgorithmIdentifierName","getX500Name","getIssuerHex","getIssuerString","hex2dn","getSubject","getSubjectHex","getSubjectString","getNotBefore","getNotAfter","getPublicKeyIdx","getPublicKeyContentIdx","getPublicKey","getSignatureAlgorithmName","getSignatureValueHex","verifySignature","parseExt","critical","vidx","getExtInfo","getExtBasicConstraints","extname","cA","pathLen","getExtKeyUsage","getExtKeyUsageString","getExtKeyUsageBin","KEYUSAGE_NAME","getExtSubjectKeyIdentifier","getExtAuthorityKeyIdentifier","getGeneralNames","issuer","getExtExtKeyUsage","getExtExtKeyUsageName","getExtSubjectAltName","getExtIssuerAltName","getGeneralName","rfc822","dns","ip","getExtSubjectAltName2","getExtCRLDistributionPoints","getDistributionPoint","dpname","getDistributionPointName","getExtCRLDistributionPointsURI","getExtAIAInfo","ocsp","caissuer","getExtAuthorityInfoAccess","getExtCertificatePolicies","getPolicyInformation","policyoid","getPolicyQualifierInfo","cps","unotice","getUserNotice","exptext","getDisplayText","getExtCRLNumber","getExtCRLReason","getExtOcspNonce","getExtOcspNoCheck","getExtAdobeTimeStamp","reqauth","getX500NameRule","ds","getX500NameArray","dnarraytostr","getRDN","getAttrTypeAndValue","oid2atype","readCertPEM","getParam","serial","sigalg","notbefore","notafter","sbjpubkey","ext","getExtParamArray","sighex","getExtParam","extn","findExt","updateExtCDPFullURI","updateExtAIAOCSP","updateExtAIACAIssuer","dname","doPrivate","signPSS","verifyPSS","SALT_LEN_HLEN","SALT_LEN_MAX","SALT_LEN_RECOVER","hex2rdn","hex2attrTypeValue","getPublicKeyInfoPropOfCertPEM","JWS","isSafeJSONString","parseJWS","parsedJWS","sigvalH","headB64U","payloadB64U","sigvalB64U","si","sigvalBI","headS","payloadS","readSafeJSONString","jwsalg2sigalg","headerObj","payloadObj","headerPP","payloadPP","sigHex","verifyJWT","includedArray","aud","IntDate","getNow","verifyAt","gracePeriod","nbf","iat","jti","HS256","HS384","HS512","RS256","RS384","RS512","ES256","ES384","PS256","PS384","PS512","getEncodedSignatureValueFromJWS","getJWKthumbprint","getZulu","intDate2UTCString","toUTCString","intDate2Zulu","SecureRandom","rng_seed_time","BigInteger","RSAKey","EDSA","ASN1HEX","CryptoJS","b64toBA","stoBA","BAtos","BAtohex","stohex","stob64","stob64u","b64utos","b64tob64u","b64utob64","hex2b64","b64utohex","utf8tob64","b64toutf8","utf8tohex","hextoutf8","hextorstr","rstrtohex","hextob64","hextob64nl","b64nltohex","hextopem","pemtohex","hextoArrayBuffer","ArrayBuffertohex","zulutomsec","zulutosec","zulutodate","datetozulu","uricmptohex","hextouricmp","ipv6tohex","hextoipv6","hextoip","iptohex","encodeURIComponentAll","newline_toUnix","newline_toDos","hextoposhex","intarystrtohex","strdiffidx","TYPED_ARRAY_SUPPORT","isEncoding","readUInt16BE","fromByteArray","SlowBuffer","INSPECT_MAX_BYTES","foo","kMaxLength","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","x5c","_validateJwt","azp","scopes","SilentRenewService","UserManagerSettings","UserManagerEvents","_silentRenewService","automaticSilentRenew","startSilentRenew","_sessionMonitor","_tokenRevocationClient","_loadUser","removeUser","storeUser","_signinStart","_redirectNavigator","useReplaceToNavigate","_signinEnd","signinPopup","popup_redirect_uri","_signin","_popupNavigator","signinPopupCallback","_signinCallback","_useRefreshToken","includeIdTokenInSilentRenew","validateSubOnSilentRenew","current_sub","_signinSilentIframe","_validateIdTokenFromTokenRefreshToken","auth_time","silent_redirect_uri","_iframeNavigator","silentRequestTimeout","signinSilentCallback","signinCallback","signoutCallback","signoutPopupCallback","query_status_response_type","_signoutStart","_signoutEnd","signoutPopup","popup_post_logout_redirect_uri","_signout","revokeAccessTokenOnSignout","_revokeInternal","revokeAccessToken","_revokeAccessTokenInternal","_revokeRefreshTokenInternal","stopSilentRenew","_userStore","_userStoreKey","redirectNavigator","popupNavigator","iframeNavigator","RedirectNavigator","PopupNavigator","IFrameNavigator","_popup_redirect_uri","_popup_post_logout_redirect_uri","_popupWindowFeatures","_popupWindowTarget","_silent_redirect_uri","_silentRequestTimeout","_automaticSilentRenew","_validateSubOnSilentRenew","_includeIdTokenInSilentRenew","_monitorSession","_monitorAnonymousSession","_query_status_response_type","_revokeAccessTokenOnSignout","PopupWindow","notifyOpener","_checkForPopupClosedTimer","_checkForPopupClosed","opener","IFrameWindow","notifyParent","_timeout","_userLoaded","_userUnloaded","_silentRenewError","_userSignedIn","_userSignedOut","_userSessionChanged","removeUserLoaded","removeUserUnloaded","addSilentRenewError","removeSilentRenewError","_raiseSilentRenewError","addUserSignedIn","removeUserSignedIn","addUserSignedOut","removeUserSignedOut","addUserSessionChanged","removeUserSessionChanged","_nowFunc","expiration","_timerHandle","_expiration","_tokenExpiring","_throwIfClosed","observerOrNext","isSubscriber","Subscriber","isObserver","isSubscription","SafeSubscriber","errorContext","_trySubscribe","sink","promiseCtor","getPromiseCtor","Symbol_observable","pipeFromArray","_bufferSize","_windowTime","_timestampProvider","dateTimestampProvider","_infiniteTimeWindow","_trimBuffer","_innerSubscribe","adjustedBufferSize","ObjectUnsubscribedError","currentObservers","AnonymousSubject","EMPTY_SUBSCRIPTION","COMPLETE_NOTIFICATION","createNotification","EMPTY_OBSERVER","handleStoppedNotification","nextNotification","errorNotification","_complete","ConsumerObserver","partialObserver","handleUnhandledError","useDeprecatedNextContext","useDeprecatedSynchronousErrorHandling","captureError","reportUnhandledError","notification","onStoppedNotification","timeoutProvider","defaultErrorHandler","UnsubscriptionError","initialTeardown","_parentage","_finalizers","initialFinalizer","finalizer","execFinalizer","teardown","_hasParent","_addParent","onUnhandledError","hasConfig","EmptyError","resultSelector","popResultSelector","observables","argsArgArrayOrObject","combineLatestInit","valueTransform","maybeSchedule","remainingFirstValues","hasFirstValue","createObject","mapOneOrManyArgs","concatAll","mergeAll","remainingCompletions","remainingEmissions","sourceIndex","scheduled","nodeEventEmitterMethods","eventTargetMethods","jqueryMethods","isEventTarget","isNodeStyleEventEmitter","toCommonHandlerRegistry","isJQueryStyleEventEmitter","subTarget","isInteropObservable","fromInteropObservable","fromArrayLike","fromPromise","isAsyncIterable","fromAsyncIterable","isIterable","fromIterable","isReadableStreamLike","fromReadableStreamLike","readableStream","readableStreamLikeToAsyncGenerator","createInvalidObservableTypeError","asyncIterable","asyncIterable_1","asyncIterable_1_1","e_1","__asyncValues","e_1_1","concurrent","popNumber","errorOrErrorFactory","errorFactory","dueTime","intervalOrScheduler","intervalDuration","isScheduler","due","onNext","onComplete","onFinalize","OperatorSubscriber","shouldUnsubscribe","handledResult","innerSub","syncUnsub","project","activeTask","emitWhenIdle","targetTime","defaultIfEmpty","defaultCompare","previousKey","hasDefaultValue","throwIfEmpty","mergeInternals","onBeforeNext","innerSubScheduler","additionalFinalizer","checkComplete","outerNext","doInnerSub","innerComplete","innerValue","bufferedValue","scanInternals","hasSeed","emitOnNext","emitBeforeComplete","hasState","connector","resetOnError","resetOnComplete","resetOnRefCountZero","wrapperSource","resetConnection","hasCompleted","hasErrored","cancelReset","resetAndUnsubscribe","conn","handleReset","onSubscriber","innerSubscriber","innerIndex","outerIndex","notifier","tapObserver","isUnsub","defaultErrorFactory","otherValues","subscribeOn","scheduleAsyncIterable","scheduleObservable","scheduleArray","schedulePromise","scheduleIterable","Symbol_iterator","scheduleReadableStreamLike","intervalProvider","AsyncAction","recycleAsyncId","requestAsyncId","_scheduler","errorValue","Scheduler","schedulerActionCtor","AsyncScheduler","SchedulerAction","_active","animationFrameProvider","cancelAnimationFrame","AnimationFrameScheduler","flushId","_scheduled","AnimationFrameAction","nextHandle","activeHandles","findAndClearHandle","Immediate","immediateProvider","asapScheduler","AsapScheduler","AsapAction","QueueScheduler","QueueAction","getSymbolIterator","isPOJO","createImpl","ctorFunc","errorThrown","parentSubscription","scheduleSubscription","__asyncGenerator","__await","hasLift","liftedSource","callOrApply","mitmTransporter","supportsTransferable","WebStreamsPolyfill","isSecureContext","useBlobFallback","WebKitPoint","downloadStrategy","createWriteStream","writableStrategy","readableStrategy","downloadUrl","ts","loadTransporter","makeIframe","mitm","makePopup","isIframe","isPopup","transferringReadable","link","supported","iframe","mc","Md5","hc","ho","buf8","buf32","bufLen","dataBitsLen","lo","hi","esm_browser_native","native","unsafeStringify","webpackContext","webpackContextResolve","stateChangeExpr","_onStart","triggerMicrotask","AnimationGroupPlayer","_players","doneCount","destroyCount","timeAtPosition","longestPlayer","longestSoFar","_DOM","getDOM","setRootDomAdapter","DomAdapter","PlatformLocation","historyGo","relativePosition","BrowserPlatformLocation","LOCATION_INITIALIZED","_doc","_history","getBaseHrefFromDOM","getBaseHref","getGlobalEventTarget","onHashChange","newPath","go","joinWithSlash","slashes","stripTrailingSlash","pathEndIdx","normalizeQueryParams","LocationStrategy","PathLocationStrategy","APP_BASE_HREF","_platformLocation","_removeListenerFns","_baseHref","prepareExternalUrl","internal","includeHash","externalUrl","HashLocationStrategy","locationStrategy","_subject","_urlChangeListeners","_urlChangeSubscription","_locationStrategy","baseHref","_basePath","_stripOrigin","_stripIndexHtml","isCurrentPathEqualTo","_stripBasePath","strippedUrl","_notifyUrlChangeListeners","onUrlChange","fnIndex","onThrow","onReturn","createLocation","ɵɵinject","parseCookieValue","cookieStr","eqIndex","cookieName","cookieValue","WS_REGEXP","EMPTY_ARRAY","NgClass","_ngEl","initialClasses","klass","ngClass","rawClass","_updateState","_applyStateDiff","nextEnabled","stateEntry","_toggleClass","NgForOfContext","ngForOf","even","odd","NgForOf","_ngForOf","_ngForOfDirty","ngForTrackBy","_trackByFn","_viewContainer","_template","_differs","_differ","ngForTemplate","_applyChanges","forEachOperation","adjustedPreviousIndex","ilen","forEachIdentityChange","ngTemplateContextGuard","NgIf","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","_updateView","ngIfThen","assertTemplate","ngIfElse","ɵstringify","SwitchView","_templateRef","enforceState","NgSwitch","_defaultViews","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","ngSwitch","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_matchCase","NgSwitchCase","ngSwitchCase","NgStyle","_ngStyle","ngStyle","_setStyle","nameAndUnit","RendererStyleFlags2","DashCase","forEachRemovedItem","forEachAddedItem","forEachChangedItem","NgTemplateOutlet","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","ngTemplateOutletInjector","_shouldRecreateView","viewContext","_createContextForwardProxy","SubscribableStrategy","createSubscription","updateLatestValue","untracked","PromiseStrategy","_promiseStrategy","_subscribableStrategy","AsyncPipe","_latestValue","markForCheckOnValueUpdate","_obj","_strategy","_selectStrategy","_updateLatestValue","ɵisPromise","ɵisSubscribable","invalidPipeArgumentError","PLATFORM_BROWSER_ID","PLATFORM_SERVER_ID","platformId","isPlatformServer","ViewportScroller","ɵɵdefineInjectable","BrowserViewportScroller","NullViewportScroller","setOffset","getScrollPosition","scrollToPosition","scrollToAnchor","elSelected","findAnchorFromDocument","documentResult","createTreeWalker","treeWalker","NodeFilter","SHOW_ELEMENT","currentNode","scrollToElement","setHistoryScrollRestoration","scrollRestoration","XhrFactory","HttpHandler","HttpBackend","normalizedNames","lazyUpdate","lazyInit","maybeSetNormalizedName","setHeaderEntries","lcName","applyUpdate","toDelete","headerValues","HttpUrlEncodingCodec","encodeKey","standardEncoding","encodeValue","decodeKey","decodeValue","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","valueToString","updates","cloneFrom","fromObject","paramParser","rawParams","eqIdx","appendAll","eKey","HttpContext","HttpRequest","third","fourth","reportProgress","mightHaveBody","transferCache","urlWithParams","qIdx","serializeBody","isUrlSearchParams","detectContentTypeHeader","setParams","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","HttpResponseBase","defaultStatus","HttpStatusCode","Ok","defaultStatusText","HttpHeaderResponse","HttpResponse","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","events$","res$","jsonp","callbackParam","interceptorChainEndFn","finalHandlerFn","adaptLegacyInterceptorToChain","chainTailFn","initialRequest","downstreamRequest","HTTP_INTERCEPTOR_FNS","HTTP_ROOT_INTERCEPTOR_FNS","PRIMARY_HTTP_BACKEND","legacyInterceptorFnFactory","pendingTasks","ɵPendingTasks","taskId","HttpInterceptorHandler","backend","primaryHttpBackend","dedupedInterceptorFns","nextSequencedFn","interceptorFn","chainedInterceptorFn","runInInjectionContext","XSSI_PREFIX","HttpXhrBackend","xhrFactory","ɵloadImpl","detectedType","reqBody","headerResponse","partialFromXhr","getResponseUrl","originalBody","sentHeaders","onDownProgress","progressEvent","partialText","onUpProgress","progress","XSRF_ENABLED","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","lastCookieString","parseCount","cookieString","ɵparseCookieValue","xsrfInterceptorFn","lcUrl","headerName","HttpFeatureKind","Interceptors","LegacyInterceptors","CustomXsrfConfiguration","NoXsrfProtection","JsonpSupport","RequestsMadeViaParent","Fetch","makeHttpFeature","ɵkind","ɵproviders","provideHttpClient","LEGACY_INTERCEPTOR_FN","defaultEquals","activeConsumer","inNotificationPhase","epoch","SIGNAL","setActiveConsumer","consumer","REACTIVE_NODE","lastCleanEpoch","producerNode","producerLastReadVersion","producerIndexOfThis","nextProducerIndex","liveConsumerNode","liveConsumerIndexOfThis","consumerAllowSignalWrites","consumerIsAlwaysLive","producerMustRecompute","producerRecomputeValue","consumerMarkedDirty","consumerOnSignalRead","producerAccessed","assertConsumerNode","consumerIsLive","producerRemoveLiveConsumerAtIndex","producerAddLiveConsumer","producerUpdateValueVersion","consumerPollProducersForChange","producerNotifyConsumers","consumerMarkDirty","producerUpdatesAllowed","consumerBeforeComputation","consumerAfterComputation","prevConsumer","producer","seenVersion","consumerDestroy","indexOfThis","assertProducerNode","idxProducer","UNSET","COMPUTING","ERRORED","COMPUTED_NODE","computation","throwInvalidWriteToSignalErrorFn","defaultThrowError","throwInvalidWriteToSignalError","postSignalSetFn","signalSetFn","signalValueChanged","producerIncrementEpoch","SIGNAL_NODE","NOOP_CLEANUP_FN","WATCH_NODE","hasRun","cleanupFn","XSS_SECURITY_URL","formatRuntimeError","noSideEffects","PARAMETERS","makeParamDecorator","parentClass","metaCtor","makeMetadataCtor","ParamDecoratorFactory","annotationInstance","ParamDecorator","cls","unusedKey","ngMetadataName","annotationCls","_global","getClosureSafeProperty","objWithPropertyToExtract","fillProperties","overriddenName","newLineIndex","concatStringsWithSpace","__forward_ref__","forwardRefFn","resolveForwardRef","isForwardRef","ɵɵdefineInjector","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","isInjectable","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ngInjectableDef","ngInjectorDef","_desc","__NG_ELEMENT_ID__","isEnvironmentProviders","NG_COMP_DEF","NG_DIR_DEF","NG_PIPE_DEF","NG_MOD_DEF","NG_FACTORY_DEF","NG_ELEMENT_ID","NG_ENV_ID","__NG_ENV_ID__","renderStringify","throwProviderNotFoundError","injectorName","InjectFlags","Default","Host","Self","SkipSelf","Optional","_injectImplementation","getInjectImplementation","setInjectImplementation","injectRootLimpMode","notFoundValue","injectableDef","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","SOURCE","_currentInjector","setCurrentInjector","former","injectInjectorOnly","convertToBitFlags","skipSelf","injectArgs","getInjectFlag","attachInjectFlag","decorator","Inject","getFactoryDef","throwNotFound","deepForEach","addToArray","removeFromArray","keyValueArraySet","keyValueArray","keyValueArrayIndexOf","arrayInsert2","value1","value2","keyValueArrayGet","_arrayIndexOfSorted","middle","EMPTY_OBJ","ENVIRONMENT_INITIALIZER","INJECTOR$1","INJECTOR_DEF_TYPES","NullInjector","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","ViewEncapsulation","Emulated","ShadowDom","InputFlags","SignalBased","classIndexOf","classToSearch","foundIndex","setUpAttributes","namespaceURI","attrName","attrVal","isAnimationProp","isNameOnlyAttributeMarker","mergeHostAttrs","dst","srcMarker","mergeHostAttribute","markerInsertPosition","dstValue","NG_TEMPLATE_SELECTOR","isCssClassMatching","tNode","cssClassToMatch","isProjectionMode","isInlineTemplate","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","isPositive","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","bindingsMode","maybeAttrName","matchTemplateAttribute","isNodeMatchingSelectorList","isSelectorInSelectorList","selectorListLoop","currentSelectorInList","maybeWrapInNotSelector","isNegativeMode","stringifyCSSSelector","currentChunk","valueOrMarker","attrValue","ɵɵdefineComponent","componentDefinition","baseDef","getNgDirectiveDef","onPush","directiveDefs","pipeDefs","getStandaloneInjector","signals","tView","initFeatures","extractDefListOrFactory","getComponentId","componentDef","hashSelectors","imul","extractDirectiveDef","getComponentDef","getDirectiveDef","nonNull","ɵɵdefineNgModule","declarations","transitiveCompileScopes","parseAndConvertBindingsForDefinition","declaredInputs","newLookup","minifiedKey","publicName","declaredName","inputFlags","ɵɵdefineDirective","directiveDefinition","ɵɵdefinePipe","pipeDef","getPipeDef$1","isStandalone","getNgModuleDef","ngModuleDef","providersResolver","inputTransforms","inputConfig","findHostDirectiveDefs","hostDirectives","debugInfo","defExtractor","importProvidersFrom","internalImportProvidersFrom","ɵfromNgModule","checkForStandaloneCmp","providersOut","dedup","injectorTypesWithProviders","collectProviders","internalSource","walkProviderTree","processInjectorTypesWithProviders","typesWithProviders","deepForEachProvider","defType","injDef","cmpDef","isDuplicate","importTypesWithProviders","imported","defProviders","injectorType","USE_VALUE$1","isValueProvider","isTypeProvider","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR","getNullInjector","R3Injector","records","_ngOnDestroyHooks","_onDestroyHooks","forEachSingleProvider","processProvider","makeRecord","injectorDefTypes","assertNotDestroyed","setActiveConsumer$1","onDestroyHooks","removeOnDestroy","previousInjector","previousInjectImplementation","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","catchInjectorError","injectorErrorName","tokenPath","formatError","resolveInjectorInitializers","initializers","providerToRecord","providerToFactory","multiRecord","hasOnDestroy","destroyCBIdx","getUndecoratedInjectableFactory","inheritedInjectableDef","getInheritedInjectableDef","ngModuleType","unwrappedProvider","isFactoryProvider","isExistingProvider","classRef","hasDeps","prevInjector","isInInjectionContext","getCurrentInjector","assertInInjectionContext","debugFn","HOST","TVIEW","FLAGS","PARENT","NEXT","T_HOST","HYDRATION","CLEANUP","CONTEXT","INJECTOR","ENVIRONMENT","RENDERER","CHILD_HEAD","CHILD_TAIL","DECLARATION_VIEW","DECLARATION_COMPONENT_VIEW","DECLARATION_LCONTAINER","PREORDER_HOOK_FLAGS","QUERIES","ID","EMBEDDED_VIEW_INJECTOR","ON_DESTROY_HOOKS","EFFECTS_TO_SCHEDULE","REACTIVE_TEMPLATE_CONSUMER","HEADER_OFFSET","TYPE","NATIVE","MOVED_VIEWS","CONTAINER_HEADER_OFFSET","LContainerFlags","HasTransplantedViews","isLView","isLContainer","isContentQueryHost","isComponentHost","componentOffset","isDirectiveHost","isComponentDef","isRootView","SimpleChange","isFirstChange","applyValueToInputField","inputSignalNode","privateName","applyValueToInputSignal","ɵɵNgOnChangesFeature","NgOnChangesFeatureImpl","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","setSimpleChangesStore","SIMPLE_CHANGES_STORE","previousChange","ngInherit","profiler","hookOrListener","SVG_NAMESPACE","_ensureDirtyViewsAreAlwaysReachable","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","getComponentLViewByIndex","nodeIndex","hostView","slotValue","viewAttachedToChangeDetector","getConstant","resetPreOrderHookFlags","markViewForRefresh","markAncestorsForTraversal","requiresRefreshOrTraversal","updateAncestorTraversalFlagsOnAttach","changeDetectionScheduler","getEnsureDirtyViewsAreAlwaysReachable","getLViewParent","storeLViewOnDestroy","onDestroyCallback","instructionState","lFrame","createLFrame","bindingsEnabled","skipHydrationRootTNode","getBindingsEnabled","isInSkipHydrationBlock$1","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","ɵɵresetView","getCurrentTNode","currentTNode","getCurrentTNodePlaceholderOk","setCurrentTNode","isParent","isCurrentTNodeParent","setCurrentTNodeAsNotParent","getBindingRoot","bindingRootIndex","bindingStartIndex","getBindingIndex","nextBindingIndex","incrementBindingIndex","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentQueryIndex","setCurrentQueryIndex","getDeclarationTNode","declTNode","enterDI","parentTNode","parentLView","allocLFrame","enterView","newLFrame","inI18n","currentLFrame","childLFrame","elementDepthCount","currentNamespace","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","ɵɵnamespaceSVG","ɵɵnamespaceHTML","namespaceHTMLInternal","_wasLastNodeCreated","wasLastNodeCreated","lastNodeWasCreated","registerPostOrderHooks","directiveStart","directiveEnd","lifecycleHooks","ngAfterContentChecked","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentView","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","callHookInternal","directive","isInitHook","NO_PARENT_INJECTOR","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorView","viewOffset","getParentInjectorViewOffset","parentView","includeViewProviders","setIncludeViewProviders","BLOOM_MASK","BLOOM_BUCKET_BITS","nextNgElementId","NOT_FOUND","getOrCreateNodeInjectorForNode","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","parentIndex","parentData","declarationViewOffset","lViewCursor","getTNodeFromLView","diPublicInInjector","bloomAdd","bloomHash","notFoundValueOrThrow","lookupTokenUsingModuleInjector","moduleInjector","getOrCreateInjectable","embeddedInjectorValue","lookupTokenUsingEmbeddedInjector","currentLView","nodeInjectorValue","lookupTokenUsingNodeInjector","embeddedViewInjector","embeddedViewInjectorValue","bloomHashBitOrFactory","tokenId","createNodeInjector","previousTView","hostTElementNode","shouldSearchParent","bloomHasToken","searchTokensOnInjector","currentTView","injectableIdx","locateDirectiveOrProvider","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","providerTokenOrDef","dirDef","tData","isFactory","throwCyclicDependencyError","stringifyForError","previousIncludeViewProviders","registerPreOrderHooks","directiveIndex","directiveDef","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","injectorView","isFirstHostTNode","NodeInjector","_tNode","_lView","ɵɵgetInheritedFactory","ownConstructor","ownFactory","getFactoryOf","objectPrototype","tViewType","ɵɵinjectAttribute","attrNameToInject","injectAttributeImpl","attrsLength","createInjector","additionalProviders","createInjectorWithoutInjectorInstances","Injector","getOriginalError","_console","_findOriginalError","INTERNAL_APPLICATION_ERROR_HANDLER","DestroyRef","injectDestroyRef","NodeInjectorDestroyRef","removeLViewOnDestroy","injectElementRef","createElementRef","unwrapElementRef","_wrapInTimeout","EventEmitter_","destroyRef","__isAsync","nextFn","errorFn","completeFn","symbolIterator","_results","QueryList","_changes","_emitDistinctChangesOnly","_onDirty","_changesDetected","resultsTree","identityAccessor","newResultFlat","POSITIVE_INFINITY","arrayEquals","valueA","valueB","notifyOnChanges","onDirty","setDirty","hasInSkipHydrationBlockFlag","TRACKED_LVIEWS","uniqueIdCounter","MONKEY_PATCH_KEY_NAME","attachPatchData","registerLView","getFirstLContainer","getNearestLContainer","getNextLContainer","viewOrContainer","APP_ID","DEFAULT_APP_ID","PLATFORM_INITIALIZER","CSP_NONCE","_retrieveHydrationInfoImpl","retrieveHydrationInfo","rNode","PRESERVE_HOST_CONTENT","policy$1","policy","trustedHTMLFromString","getPolicy$1","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","getPolicy","trustedHTMLFromStringBypass","trustedScriptURLFromStringBypass","SafeValueImpl","SafeHtmlImpl","getTypeName","SafeStyleImpl","SafeScriptImpl","SafeUrlImpl","SafeResourceUrlImpl","unwrapSafeValue","allowSanitizationBypassAndThrow","actualType","getSanitizationBypassType","bypassSanitizationTrustHtml","trustedHtml","bypassSanitizationTrustStyle","trustedStyle","bypassSanitizationTrustScript","trustedScript","bypassSanitizationTrustUrl","trustedUrl","bypassSanitizationTrustResourceUrl","trustedResourceUrl","DOMParserHelper","inertDocumentHelper","getInertBodyElement","DOMParser","parseFromString","InertDocumentHelper","defaultDoc","inertDocument","implementation","createHTMLDocument","templateEl","SAFE_URL_PATTERN","_sanitizeUrl","tagSet","sets","VOID_ELEMENTS","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","VALID_ELEMENTS","URI_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","SanitizingHtmlSerializer","sanitizedSomething","sanitizeChildren","traverseContent","parentNodes","startElement","TEXT_NODE","getFirstChild","endElement","getNextSibling","getNodeName","elAttrs","elAttr","encodeEntities","clobberedElementError","isClobberedElement","childNode","DOCUMENT_POSITION_CONTAINED_BY","outerHTML","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","_sanitizeHtml","unsafeHtmlInput","inertBodyElement","getInertBodyHelper","isDOMParserAvailable","unsafeHtml","mXSSAttempts","parsedHtml","getTemplateContent","isTemplateElement","SecurityContext","HTML","STYLE","SCRIPT","RESOURCE_URL","ɵɵsanitizeHtml","getSanitizer","sanitize","ɵɵsanitizeUrl","unsafeUrl","ɵɵsanitizeResourceUrl","unsafeResourceUrl","ɵɵsanitizeUrlOrResourceUrl","getUrlSanitizer","COMMENT_DISALLOWED","COMMENT_DELIMITER","COMMENT_DELIMITER_ESCAPED","ɵɵresolveWindow","ɵɵresolveDocument","maybeUnwrapFn","Important","_icuContainerIterate","icuContainerIterate","tIcuContainerNode","applyToElementOrContainer","lNodeToHandle","beforeNode","lContainer","isComponent","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","nativeParent","nativeParentNode","nativeRemoveChild","applyContainer","parentRElement","applyView","createCommentNode","escapeCommentText","createElementNode","detachViewFromDOM","detachMovedView","declarationContainer","movedViews","declarationViewIndex","detachView","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","removeViewFromDOM","lQueries","destroyLView","destroyViewTree","rootView","lViewOrLContainer","cleanUpView","firstView","consumerDestroy$1","executeOnDestroys","toCall","callContext","processCleanups","tCleanup","lCleanup","targetIdx","destroyHooksFn","unregisterLView","getParentRElement","getClosestRElement","nativeAppendOrInsertBefore","getInsertInFrontOfRNode","_getInsertInFrontOfRNodeWithI18n","_processI18nInsertBefore","getInsertInFrontOfRNodeWithNoI18n","childRNode","childTNode","parentRNode","anchorNode","getFirstNativeNode","tNodeType","getBeforeNodeForView","elIcuContainerChild","rNodeOrLContainer","projectionNodes","getProjectionNodes","viewIndexInContainer","nextViewIndex","firstTNodeOfView","applyNodes","isProjection","rawSlotValue","nextRNode","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","nodeToProject","projectedComponentLView","writeDirectClass","setupStaticAttributes","mergedAttrs","writeDirectStyle","NO_CHANGE","ɵɵadvance","selectIndexInternal","checkNoChangesMode","ɵɵdirectiveInject","ɵɵinvalidFactory","writeToDirectiveInput","SIGNAL$1","transformFn","createLView","tHostNode","hydrationInfo","getUniqueLViewId","getOrCreateTNode","createTNodeAtIndex","createTNode","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","localNames","initialInputs","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","isInI18nBlock","getCurrentParentTNode","allocExpando","numSlotsToAlloc","allocIdx","executeTemplate","templateFn","prevSelectedIndex","isUpdatePhase","executeContentQueries","createDirectivesInstances","instantiateAllDirectives","addComponentLogic","hostTNode","getOrCreateComponentTView","lViewFlags","componentView","addToViewTree","setInputsFromAttrs","invokeDirectivesHostBindings","saveResolvedLocalsInData","viewData","localRefExtractor","localIndex","incompleteFirstPass","createTView","pipes","constsOrFactory","ssrId","initialViewLength","createViewBlueprint","expandoStartIndex","hostBindingOpCodes","firstUpdatePass","staticViewQueries","staticContentQueries","directiveRegistry","pipeRegistry","_applyRootElementTransformImpl","captureNodeBindings","aliasMap","bindingsResult","hostDirectiveAliasMap","internalName","finalPublicName","addPropertyBinding","elementPropertyInternal","nativeOnly","dataValue","setInputsForProperty","markDirtyIfOnPush","childComponentLView","mapPropName","resolveDirectives","exportsMap","matchResult","findDirectiveDefMatches","registry","hostDirectiveDefs","hostDirectiveMatches","markAsComponentHost","initializeDirectives","cacheMatchingLocalNames","initTNodeFlags","numberOfDirectives","preOrderHooksFound","preOrderCheckHooksFound","directiveIdx","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","initializeInputAndOutputAliases","hostDirectiveDefinitionMap","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","aliasData","aliasedOutputs","generateInitialInputs","elementIndex","getCurrentDirectiveIndex","invokeHostBindingsInCreationMode","directiveFactory","nodeInjectorFactory","registerHostBindingOpCodes","directiveVarsIdx","elementIndx","lastSelectedElementIdx","elementAttributeInternal","setElementAttribute","initialInputData","inputsToStore","createLContainer","hostNative","refreshContentQueries","directiveDefIdx","executeViewQueryFn","viewQueryFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","textBindingInternal","updateTextNode","renderComponent","hostLView","componentHostIdx","componentTView","syncViewWithBlueprint","hostRNode","renderView","finishViewCreation","renderChildComponents","createAndRenderEmbeddedLView","declarationLView","templateTNode","embeddedTView","embeddedLView","dehydratedView","declarationViewLQueries","getLViewFromLContainer","adjustedIndex","shouldAddViewToDom","addLViewToLContainer","addToDOM","insertView","containerLength","trackMovedView","addViewToDOM","parentNativeNode","removeLViewFromLContainer","collectNativeNodes","lNode","collectNativeNodesInLContainer","nodesInSlot","lViewInAContainer","lViewFirstChildTNode","freeConsumers","REACTIVE_LVIEW_CONSUMER_NODE","REACTIVE_NODE$1","MAXIMUM_REFRESH_RERUNS","detectChangesInternal","notifyErrorHandler","detectChangesInViewWhileDirty","detectChangesInView$1","retries","inlineEffectRunner","refreshView","currentConsumer","viewShouldHaveReactiveConsumer","getOrBorrowReactiveLViewConsumer","borrowReactiveLViewConsumer","consumerBeforeComputation$1","setBindingIndex","hooksInitPhaseCompleted","markTransplantedViewsForRefresh","detectChangesInEmbeddedViews","processHostBindingOpCodes","opCode","bindingRootIndx","hostBindingFn","detectChangesInChildComponents","notifyEffect","consumerAfterComputation$1","maybeReturnReactiveLViewConsumer","detectChangesInViewIfAttached","detectChangesInComponent","shouldRefreshView","consumerPollProducersForChange$1","markViewDirty","ViewRef$1","_cdRefInjectingView","_attachedToViewContainer","viewRefs","reattach","checkNoChanges","attachToViewContainerRef","detachFromAppRef","attachToAppRef","appRef","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","createEmbeddedViewImpl","createTemplateRef","_findMatchingDehydratedViewImpl","findMatchingDehydratedView","ChangeDetectionScheduler","ComponentRef$1","ComponentFactory$1","_NullComponentFactoryResolver","resolveComponentFactory","noComponentFactoryError","ComponentFactoryResolver$1","Renderer2","injectRenderer2","nodeAtIndex","Sanitizer","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","assertNotInReactiveContext","extraContext","getActiveConsumer","getActiveConsumer$1","markedFeatures","performanceMarkFeature","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","onUnstable","onMicrotaskEmpty","assertZonePatched","_nesting","_outer","_inner","TaskTrackingZoneSpec","longStackTraceZoneSpec","lastRequestAnimationFrameId","nativeRequestAnimationFrame","getNativeRequestAnimationFrame","nativeCancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","forkInnerZoneWithAngularBehavior","delayChangeDetectionForEventsDelegate","delayChangeDetectionForEvents","isCheckStableRunning","fakeTopEventTask","scheduleEventTask","updateMicroTaskStatus","checkStable","isAngularZone","onInvokeTask","applyThis","applyArgs","shouldBeIgnoredByZone","__ignore_ng_zone__","invokeTask","onLeave","onInvoke","onHasTask","hasTaskState","hasTask","_hasPendingMicrotasks","microTask","macroTask","onHandleError","isInAngularZone","assertInAngularZone","assertNotInAngularZone","runTask","EMPTY_PAYLOAD","cancelTask","NoopNgZone","AfterRenderPhase","EarlyRead","Write","MixedReadWrite","Read","NOOP_AFTER_RENDER_REF","afterNextRender","afterRenderEventManager","AfterRenderEventManager","callbackHandler","AfterRenderCallbackHandlerImpl","unregisterFn","AfterRenderCallback","callbackFn","executingCallbacks","buckets","deferredCallbacks","internalCallbacks","executeInternalCallbacks","isNgModule","computeStaticStyling","writeToHost","ComponentFactoryResolver","ComponentFactory","toRefArray","templateName","ChainedInjector","parentInjector","refArray","stringifyCSSSelectorList","selectorList","isBoundToModule","projectableNodes","rootSelectorOrNode","realEnvironmentInjector","rootViewInjector","hostRenderer","elementName","locateHostElement","elementOrSelector","applyRootElementTransform","getNamespace","rootFlags","rootTView","rootLView","tElementNode","rootComponentDef","rootDirectives","createRootComponentTNode","createRootComponentView","applyRootComponentStyling","viewRenderer","setRootNodeAttributes","extractAttrsAndClassesFromSelector","projectNodes","nodesforSlot","createRootComponent","hostFeatures","rootTNode","LifecycleHooksFeature","_rootLView","previousInputValues","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_hostTNode","_hostLView","getViewRefs","indexOrOptions","insertImpl","componentFactoryOrType","isComponentFactory","ngModuleRef","componentFactory","contextInjector","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","getOrCreateViewRefs","viewRefsArr","detachedView","_locateOrCreateAnchorNode","createAnchorNode","commentNode","insertAnchorNode","nativeNextSibling","_populateDehydratedViewsInLContainer","LQuery_","queryList","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","splitQueryMultiSelectors","locator","TQueries_","elementStart","elementEnd","queriesForTemplateRef","childQueryIndex","tqueryClone","tquery","TQuery_","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","tNodeIdx","matchIdx","createResultForNode","matchingIdx","createResultByTNodeType","createSpecialToken","materializeViewResults","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","collectQueryResults","lViewResults","embeddedLViews","createLQuery","storeCleanupWithContext","createTQuery","getQueryResults","isSignal","signalFn","createSignal","createSignal$1","signalSetFn$1","updateFn","signalUpdateFn","signalUpdateFn$1","asReadonly","signalAsReadonlyFn","readonlyFn","isWritableSignal","ɵɵInheritDefinitionFeature","superType","getSuperType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","mergeInputsWithTransforms","defData","mergeHostAttrsAcrossInheritance","minifiedName","prevViewQuery","prevContentQueries","prevHostBindings","ɵɵInputTransformsFeature","NgModuleRef$1","NgModuleFactory$1","createNgModule","NgModuleRef","_bootstrapComponents","destroyCbs","componentFactoryResolver","_r3Injector","NgModuleFactory","moduleType","EnvironmentNgModuleRefAdapter","runEnvironmentInitializers","createEnvironmentInjector","PendingTasks","hasPendingTasks","_hasPendingTasks","isListLikeIterable","isJsObject","updateBinding","getBinding","bindingUpdated","bindingUpdated2","exp1","exp2","different","bindingUpdated3","exp3","bindingUpdated4","exp4","ɵɵtemplate","attrsIndex","localRefsIndex","templateFirstCreatePass","tViewConsts","_locateOrCreateContainerAnchor","populateDehydratedViewsInLContainer","createContainerAnchorImpl","ɵɵattribute","interpolation1","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","markDuplicates","tStylingKey","isPrevDir","tStylingAtIndex","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","getLastParsedKey","getLastParsedValue","parseClassNameNext","consumeClassToken","consumeWhitespace","parseStyleNext","consumeStyleKey","consumeSeparator","consumeStyleValue","ch1","ch2","ch3","lastChIndex","consumeQuotedText","resetParserState","quoteCharCode","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","ɵɵstyleProp","checkStylingProperty","ɵɵclassProp","ɵɵstyleMap","checkStylingMap","styleKeyValueArraySet","styleStringParser","parseStyle","ɵɵclassMap","classKeyValueArraySet","classStringParser","parseClassName","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","updateStylingMap","oldKeyValueArray","newKeyValueArray","oldKey","setKey","toStylingKeyValueArray","styleKeyValueArray","unwrappedValue","isHostBindings","wrapInStaticStylingKey","stylingKey","hostDirectiveDef","getCurrentDirectiveDef","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","insertTStylingBinding","tStylingKeyWithStatic","isHostBinding","isClassBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","setTStylingRangePrev","markDuplicateOfResidualStyling","currentDirective","desiredMarker","currentMarker","stringKey","tRange","higherPriorityValue","getTStylingRangeNextDuplicate","findStylingValue","isStylingValuePresent","getTStylingRangePrevDuplicate","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","ɵɵclassMapInterpolate1","ɵɵclassMapInterpolate4","interpolation4","LiveCollection","swap","index1","index2","startIdx","endIdx","endItem","startItem","prevIndex","newIdx","valuesMatching","liveIdx","liveValue","trackBy","attachPreviouslyDetached","prevCollection","detachedItems","createOrAttach","liveCollection","trackByFn","initLiveItemsInTheFuture","UniqueValueMultiKeyMap","kvMap","_vMap","vMap","ɵɵconditional","containerIndex","matchingTemplateIndex","getLContainer","getExistingTNode","RepeaterContext","$index","$count","ɵɵrepeaterTrackByIdentity","RepeaterMetadata","hasEmptyBlock","ɵɵrepeaterCreate","trackByUsesComponentInstance","emptyTemplateFn","emptyDecls","emptyVars","emptyTagName","emptyAttrsIndex","boundTrackBy","LiveCollectionLContainerImpl","needsIndexUpdate","detachExistingView","getExistingLViewFromLContainer","ɵɵrepeater","metadataSlotIdx","hostTView","itemTemplateTNode","newCollection","liveKeysInTheFuture","liveStartIdx","liveEndIdx","newEndIdx","liveStartValue","newStartValue","isStartMatching","liveEndValue","newEndValue","isEndMatching","liveStartKey","liveEndKey","newStartKey","newEndKey","newCollectionIterator","newIterationResult","liveKey","isCollectionEmpty","emptyTemplateIndex","lContainerForEmpty","emptyTemplateTNode","ɵɵelementStart","elementStartFirstCreatePass","_locateOrCreateElementNode","hasDirectives","isDetachedByI18n","getElementDepthCount","increaseElementDepthCount","ɵɵelementEnd","isSkipHydrationRootTNode","leaveSkipHydrationBlock","decreaseElementDepthCount","hasClassInput","hasStyleInput","ɵɵelement","getNamespace$1","ɵɵelementContainerStart","elementContainerStartFirstCreatePass","_locateOrCreateElementContainerNode","ɵɵelementContainerEnd","ɵɵelementContainer","ɵɵgetCurrentView","ɵɵhostProperty","localeEn","LOCALE_DATA","findLocaleData","normalizedLocale","getLocaleData","getLocalePluralCase","LocaleDataIndex","PluralCase","LocaleId","DayPeriodsFormat","DayPeriodsStandalone","DaysFormat","DaysStandalone","MonthsFormat","MonthsStandalone","Eras","FirstDayOfWeek","WeekendRange","DateFormat","TimeFormat","NumberSymbols","NumberFormats","CurrencyCode","CurrencySymbol","CurrencyName","Currencies","ExtraData","DEFAULT_LOCALE_ID","LOCALE_ID$1","ɵɵlistener","listenerFn","useCapture","eventTargetResolver","listenerInternal","isTNodeDirectiveHost","processOutputs","lCleanupIndex","idxOrTargetGetter","existingListener","findExistingListener","cleanupEventName","listenerIdxInLCleanup","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","executeListenerWithErrorHandling","wrapWithPreventDefault","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","ɵɵnextContext","nextContextImpl","walkUpViews","nestingLevel","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","getProjectAsAttrValue","ngProjectAsAttrIdx","ɵɵprojectionDef","componentNode","projectionHeads","newArray","tails","componentChild","slotIndex","ɵɵprojection","selectorIndex","applyProjection","ɵɵpropertyInterpolate","ɵɵpropertyInterpolate1","interpolatedValue","ɵɵcontentQuery","createContentQuery","saveContentQueryAndDirectiveIndex","tViewContentQueries","ɵɵviewQuery","createViewQuery","ɵɵqueryRefresh","isCreationMode","ɵɵloadQuery","loadQueryInternal","ɵɵreference","getContextLView","ɵɵtext","textNative","_locateOrCreateTextNode","ɵɵtextInterpolate","ɵɵtextInterpolate1","interpolated","ɵɵtextInterpolate2","interpolation2","ɵɵtextInterpolate3","interpolation3","ɵɵtwoWayProperty","ɵɵtwoWayBindingSet","canWrite","ɵɵtwoWayListener","resolveProvider","lInjectablesBlueprint","providerFactory","beginIndex","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesViewProvidersFactoryExist","multiFactory","factoryFn","componentProviders","multiFactoryAdd","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","providerIsClassProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","ɵɵProvidersFeature","viewProviders","processProvidersFn","StandaloneService","cachedInjectors","getOrCreateStandaloneInjector","standaloneInjector","ɵɵStandaloneFeature","ɵɵsetComponentScope","ɵɵpureFunction0","slotOffset","pureFn","ɵɵpureFunction1","pureFunction1Internal","ɵɵpureFunction2","pureFunction2Internal","ɵɵpureFunction3","pureFunction3Internal","bindingRoot","getPureFunctionReturnValue","ɵɵpureFunction5","exp5","returnValueIndex","ɵɵpipe","pipeName","getPipeDef","pipeFactory","pipeInstance","ɵɵpipeBind1","isPure","ɵɵpipeBind2","ɵɵtemplateRefExtractor","Console","TESTABILITY","TESTABILITY_GETTER","_testabilityGetter","Testability","testabilityGetter","_pendingCount","_isZoneStable","taskTrackingZone","setTestabilityGetter","addToWindow","_watchAngularEvents","_runCallbacksIfReady","increasePendingRequestCount","decreasePendingRequestCount","doneCb","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","whenStable","getPendingRequestCount","registerApplication","unregisterApplication","findProviders","using","TestabilityRegistry","_applications","testability","unregisterAllApplications","getTestability","getAllTestabilities","getAllRootElements","findTestabilityInTree","findInAncestors","isSubscribable","ApplicationInitStatus","initialized","donePromise","rej","appInits","runInitializers","asyncInitPromises","initResult","observableAsPromise","APP_BOOTSTRAP_LISTENER","optionsReducer","objs","_bootstrapListeners","_runningTick","_destroyListeners","_views","internalErrorHandler","afterRenderEffectManager","externalTestViews","beforeRender","afterTick","componentTypes","componentOrFactory","cf","compRef","_loadComponent","refreshViews","detectChangesInAttachedViews","runs","isFirstPass","detectChangesInViewIfRequired","shouldRecheckView","attachView","viewCount","warnIfDestroyed","detectChangesInView","ModuleWithComponentFactories","ngModuleFactory","componentFactories","Compiler","compileModuleSync","compileModuleAsync","compileModuleAndAllComponentsSync","declaration","compileModuleAndAllComponentsAsync","clearCache","clearCacheFor","getModuleId","NgZoneChangeDetectionScheduler","applicationRef","_onMicrotaskEmptySubscription","ngZoneApplicationErrorHandlerFactory","userErrorHandler","ZoneStablePendingTask","LOCALE_ID","getGlobalLocale","$localize","DEFAULT_CURRENCY_CODE","PLATFORM_DESTROY_LISTENERS","PlatformRef","_modules","bootstrapModuleFactory","moduleFactory","getNgZone","ngZoneToUse","getNgZoneOptions","eventCoalescing","runCoalescing","ngZoneEventCoalescing","ngZoneRunCoalescing","moduleRef","createNgModuleRefWithProviders","internalProvideZoneChangeDetection","ngZoneFactory","ngZoneChangeDetectionScheduler","exceptionHandler","_callAndReportToErrorHandler","initStatus","setLocaleId","localeId","_moduleDoBootstrap","compilerOptions","compileNgModuleFactory","ngDoBootstrap","destroyListeners","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","createPlatformFactory","parentPlatformFactory","extraProviders","getPlatform","platformProviders","createPlatform","publishSignalConfiguration","setThrowInvalidWriteToSignalError","setThrowInvalidWriteToSignalError$1","runPlatformInitializers","createPlatformInjector","assertPlatform","requiredToken","isDevMode","injectChangeDetectorRef","createViewRef","isPipe","DefaultIterableDifferFactory","supports","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","forEachItem","nextIt","nextRemove","addRemoveOffset","moveOffsets","getPreviousIndex","adjPreviousIndex","_nextRemoved","localMovePreviousIndex","localCurrentIndex","forEachPreviousItem","_nextPrevious","_nextAdded","forEachMovedItem","_nextMoved","_nextIdentityChange","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","previousRecord","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","_prevDup","_nextDup","_DuplicateItemRecordList","_head","_tail","atOrAfterIndex","duplicates","recordList","moveOffset","DefaultKeyValueDifferFactory","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","defaultIterableDiffersFactory","IterableDiffers","copied","defaultKeyValueDiffersFactory","KeyValueDiffers","kv","platformCore","ApplicationModule","createComputed","createComputed$1","nonReactiveReadsFn","APP_EFFECT_SCHEDULER","EffectScheduler","ZoneAwareEffectScheduler","queuedEffectCount","queues","scheduleEffect","creationZone","flushQueue","EffectHandle","effectFn","allowSignalWrites","watcher","createWatch","registerOnCleanup","isInNotificationPhase","destroyWatchNode","isWatchNodeDestroyed","createWatch$1","onCleanup","runEffect","unregisterOnDestroy","elementInjector","reflectComponentType","requiresCleanup","cleanupRef","rejectErrors","BaseControlValueAccessor","BuiltInControlValueAccessor","ɵBuiltInControlValueAccessor_BaseFactory","CHECKBOX_VALUE_ACCESSOR","CheckboxControlValueAccessor","ɵCheckboxControlValueAccessor_BaseFactory","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","_isAndroid","ɵgetDOM","getUserAgent","_handleInput","_compositionStart","_compositionEnd","isEmptyInputValue","hasValidLength","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","minValidator","actual","maxValidator","requiredValidator","requiredTrue","requiredTrueValidator","emailValidator","minLengthValidator","requiredLength","actualLength","maxLengthValidator","patternValidator","nullValidator","regexStr","requiredPattern","actualValue","isPresent","toObservable","mergeErrors","arrayOfErrors","executeValidators","normalizeValidators","isValidatorFn","presentValidators","composeValidators","composeAsyncValidators","controlValidators","dirValidator","getControlValidators","_rawValidators","getControlAsyncValidators","_rawAsyncValidators","makeValidatorsArray","hasValidator","addValidators","currentValidators","validatorsToAdd","removeValidators","AbstractControlDirective","_onDestroyCallbacks","pristine","untouched","_setValidators","_composedValidatorFn","_setAsyncValidators","_composedAsyncValidatorFn","_registerOnDestroy","_invokeOnDestroyCallbacks","ControlContainer","formDirective","valueAccessor","AbstractControlStatus","cd","isTouched","isUntouched","isPristine","isInvalid","isSubmitted","NgControlStatus","NgControlStatusGroup","VALID","INVALID","DISABLED","pickValidators","validatorOrOpts","isOptionsObj","pickAsyncValidators","assertControlPresent","isGroup","assertAllValuesPresent","_forEachChild","_pendingDirty","_hasOwnPendingAsyncValidator","_pendingTouched","_onCollectionChange","_onDisabledChange","_assignValidators","_assignAsyncValidators","validatorFn","asyncValidatorFn","_updateOn","addAsyncValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","markAllAsTouched","markAsUntouched","_updateTouched","markAsPristine","_updatePristine","markAsPending","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","getRawValue","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_allControlsDisabled","_asyncValidationSubscription","_updateControlsErrors","currPath","_find","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","_registerOnCollectionChange","_setUpdateStrategy","coerceToValidator","coerceToAsyncValidator","_setUpControls","addControl","controlName","_reduceChildren","_syncPendingControls","subtreeUpdated","_reduceValue","initValue","FormRecord","CALL_SET_DISABLED_STATE","setDisabledStateDefault","setUpControl","callSetDisabledState","setUpValidators","setUpViewChangePipeline","_pendingValue","_pendingChange","updateControl","setUpModelChangePipeline","emitModelEvent","viewToModelUpdate","_unregisterOnChange","setUpBlurPipeline","setUpDisabledChangeHandler","onDisabledChange","_unregisterOnDisabledChange","cleanUpControl","validateControlPresenceOnChange","cleanUpValidators","onValidatorChange","isControlUpdated","updatedValidators","updatedAsyncValidators","setUpFormContainer","isPropertyUpdated","viewModel","syncPendingControls","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","isBuiltInAccessor","formDirectiveProvider$1","NgForm","resolvedPromise$1","_directives","ngSubmit","_findContainer","getControl","addFormGroup","removeFormGroup","getFormGroup","updateModel","onSubmit","onReset","resetForm","removeListItem","isFormControlState","_applyFormState","nonNullable","emitViewToModelChange","formControlBinding$1","NgModel","resolvedPromise","_registered","_checkForErrors","_checkName","_getPath","_setUpControl","_updateDisabled","_isStandalone","_setUpStandalone","_checkParentType","disabledValue","controlPath","ɵNgNoValidate","NUMBER_VALUE_ACCESSOR","NumberValueAccessor","ɵNumberValueAccessor_BaseFactory","RADIO_VALUE_ACCESSOR","RadioControlValueAccessor","RadioControlRegistry","_accessors","_isSameGroup","fireUncheck","controlPair","_control","_registry","setDisabledStateFired","_fn","formControlName","RANGE_VALUE_ACCESSOR","RangeValueAccessor","ɵRangeValueAccessor_BaseFactory","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding","FormControlDirective","_ngModelWarningSentOnce","_ngModelWarningConfig","_ngModelWarningSent","_isControlChanged","previousForm","formDirectiveProvider","FormGroupDirective","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","removeListItem$1","_setUpFormContainer","_cleanUpFormContainer","addFormArray","removeFormArray","getFormArray","oldCtrl","newCtrl","isFormControl","cleanUpFormContainer","SELECT_VALUE_ACCESSOR","_buildValueString$1","_optionMap","_compareWith","_getOptionValue","_registerOption","_extractId$1","ɵSelectControlValueAccessor_BaseFactory","NgSelectOption","_select","ngValue","_setElementValue","SELECT_MULTIPLE_VALUE_ACCESSOR","SelectMultipleControlValueAccessor","_buildValueString","optionSelectedStateSetter","_setSelected","selectedOptions","_extractId","ɵSelectMultipleControlValueAccessor_BaseFactory","ɵNgSelectMultipleOption","ɵInternalFormsSharedModule","_registerControl","isAbstractControlOptions","FormBuilder","useNonNullable","nnfb","reducedControls","_reduceControls","createdControls","_createControl","UntypedFormBuilder","controlsConfig","ɵUntypedFormBuilder_BaseFactory","warnOnNgModelWithFormControl","GenericBrowserDomAdapter","ɵDomAdapter","supportsDOMEvents","BrowserDomAdapter","makeCurrent","ɵsetRootDomAdapter","onAndCancel","getDefaultDocument","createHtmlDocument","isShadowRoot","DocumentFragment","getBaseElementHref","baseElement","relativePath","baseURI","resetBaseElement","getCookie","BrowserXhr","EVENT_MANAGER_PLUGINS","EventManager","plugins","_eventNameToPlugin","_plugins","_findPluginFor","getZone","EventManagerPlugin","APP_ID_ATTRIBUTE_NAME","SharedStylesHost","appId","styleRef","hostNodes","styleNodesInDOM","collectServerRenderedStyles","platformIsServer","resetHostNodes","addStyles","changeUsageCount","onStyleAdded","removeStyles","onStyleRemoved","getAllStyles","addHost","hostNode","addStyleToHost","removeHost","styleMap","styleRefValue","getStyleElement","styleEl","styleElRef","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","math","COMPONENT_REGEX","COMPONENT_VARIABLE","HOST_ATTR","CONTENT_ATTR","REMOVE_STYLES_ON_COMPONENT_DESTROY","shimStylesContent","compId","DomRendererFactory2","eventManager","sharedStylesHost","removeStylesOnCompDestroy","rendererByCompId","defaultRenderer","DefaultDomRenderer2","getOrCreateRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","NoneEncapsulationDomRenderer","applyStyles","ShadowDomRenderer","throwOnSyntheticProps","isTemplateNode","namespaceUri","setAttributeNS","removeAttributeNS","decoratePreventDefault","eventHandler","hostEl","nodeOrShadowRoot","contentAttr","shimContentAttribute","componentShortId","hostAttr","shimHostAttribute","DomEventsPlugin","_keyMap","Del","Menu","Scroll","Win","MODIFIER_KEY_GETTERS","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","domEventName","_normalizeKey","codeIX","modifierName","matchEventFullKeyCode","fullKeyCode","keycode","modifierGetter","platformBrowser","ɵPLATFORM_BROWSER_ID","initDomAdapter","ɵsetDocument","BROWSER_MODULE_PROVIDERS_MARKER","TESTABILITY_PROVIDERS","ɵTESTABILITY_GETTER","BrowserGetTestability","ɵglobal","getAngularTestability","getAllAngularTestabilities","getAllAngularRootElements","frameworkStabilizers","testabilities","decrement","ɵTESTABILITY","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","providersAlreadyPresent","withServerTransition","Title","getTitle","setTitle","newTitle","DomSanitizer","DomSanitizerImpl","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","ɵ_sanitizeUrl","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","ɵbypassSanitizationTrustScript","bypassSecurityTrustUrl","ɵbypassSanitizationTrustUrl","bypassSecurityTrustResourceUrl","ɵbypassSanitizationTrustResourceUrl","observableFactory","refCounter","sharedConnection","_connection","ConnectableObservable","subjectFactory","_teardown","higherOrderRefCount","takeLast","RouteTitleKey","ParamsAsMap","convertToParamMap","defaultUrlMatcher","segmentGroup","hasChildren","posParams","shallowEqual","getDataKeys","equalArraysOrString","aSorted","bSorted","wrapIntoObservable","pathCompareMap","exact","equalSegmentGroups","containee","matrixParams","equalPath","matrixParamsMatch","numberOfChildren","subset","containsSegmentGroup","paramCompareMap","equalParams","containsParams","containsTree","containsSegmentGroupHelper","containeePaths","containerPaths","containeeSegment","UrlTree","UrlSegmentGroup","queryParamMap","_queryParamMap","DEFAULT_SERIALIZER","serializePaths","UrlSegment","parameterMap","_parameterMap","serializePath","bs","UrlSerializer","DefaultUrlSerializer","UrlParser","parseRootSegment","parseQueryParams","serializeSegment","serializeQueryParams","strParams","encodeUriQuery","encodeUriFragment","primary","mapChildrenIntoArray","childOutlet","encodeUriString","encodeUriSegment","decodeQuery","serializeMatrixParams","SEGMENT_RE","matchSegments","MATRIX_PARAM_SEGMENT_RE","QUERY_PARAM_RE","QUERY_PARAM_VALUE_RE","consumeOptional","peekStartsWith","parseChildren","parseQueryParam","parseSegment","parseParens","parseMatrixParams","parseParam","matchMatrixKeySegments","valueMatch","matchQueryParams","matchUrlQueryParamValue","decodedKey","decodedVal","currentVal","allowPrimary","outletName","createRoot","rootCandidate","squashSegmentGroup","newChildren","childCandidate","grandChildOutlet","grandChild","mergeTrivialChildren","isUrlTree","createSegmentGroupFromRoute","targetGroup","rootSegmentGroup","createSegmentGroupFromRouteRecursive","currentRoute","childOutlets","childSnapshot","createUrlTreeFromSegmentGroup","relativeTo","nav","computeNavigation","Navigation","numberOfDoubleDots","isAbsolute","cmdIdx","outlets","segmentPath","urlPart","partIndex","toRoot","findStartingPositionForTargetGroup","Position","modifier","isMatrixParams","createPositionApplyingDoubleDots","ci","newSegmentGroup","processChildren","updateSegmentGroupChildren","updateSegmentGroup","isCommandWithOutlets","oldRoot","oldSegmentGroup","qp","replaceSegment","newRoot","oldSegment","newSegment","cmdWithOutlet","prefixedWith","currentCommandIndex","currentPathIndex","noMatch","pathIndex","commandIndex","slicedCommands","createNewSegmentGroup","getOutlets","childrenOfEmptyChild","createNewSegmentChildren","IMPERATIVE_NAVIGATION","EventType","NavigationStart","NavigationCancel","NavigationError","RoutesRecognized","ResolveStart","ResolveEnd","GuardsCheckStart","GuardsCheckEnd","RouteConfigLoadStart","RouteConfigLoadEnd","ChildActivationStart","ChildActivationEnd","ActivationStart","ActivationEnd","NavigationSkipped","RouterEvent","navigationTrigger","restoredState","urlAfterRedirects","NavigationCancellationCode","Redirect","SupersededByNewNavigation","NoDataFromResolver","GuardRejected","NavigationSkippedCode","IgnoredSameUrlNavigation","IgnoredByUrlHandlingStrategy","shouldActivate","routerEvent","BeforeActivateRoutes","RedirectRequest","OutletContext","ChildrenOutletContexts","attachRef","onChildOutletCreated","childName","getOrCreateContext","onChildOutletDestroyed","onOutletDeactivated","onOutletReAttached","Tree","pathFromRoot","findPath","TreeNode","nodeChildrenAsMap","RouterState","setRouterState","createEmptyState","rootComponent","createEmptyStateSnapshot","ActivatedRouteSnapshot","RouterStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","ActivatedRoute","urlSubject","paramsSubject","queryParamsSubject","fragmentSubject","dataSubject","futureSnapshot","_futureSnapshot","_routerState","paramMap","_paramMap","getInherited","paramsInheritanceStrategy","loadComponent","_resolvedData","hasStaticTitle","serializeNode","advanceActivatedRoute","nextSnapshot","shallowEqualArrays","equalParamsAndUrlSegments","equalUrlParams","equalSegments","RouterOutlet","activateEvents","deactivateEvents","attachEvents","detachEvents","parentContexts","changeDetector","inputBinder","INPUT_BINDER","supportsBindingToComponentInputs","activatedComponentRef","isTrackedInParentContexts","deactivate","initializeOutletWithName","unsubscribeFromRouteData","activateWith","isActivated","activatedRoute","activatedRouteData","bindActivatedRouteToOutletComponent","childContexts","OutletInjector","__ngOutletInjector","RoutedComponentInputBinder","outletDataSubscriptions","subscribeToRouteData","dataSubscription","mirror","createNode","routeReuseStrategy","prevState","shouldReuseRoute","createOrReuseChildren","shouldAttach","detachedRouteHandle","retrieve","createActivatedRoute","NAVIGATION_CANCELING_ERROR","redirectingNavigationError","urlSerializer","navigationBehaviorOptions","navigationCancelingError","cancellationCode","isNavigationCancelingError","ɵEmptyOutletComponent","standardizeConfig","getOutlet","getClosestRouteInjector","_loadedInjector","ActivateRoutes","futureState","currState","forwardEvent","inputBindingEnabled","futureRoot","currRoot","deactivateChildRoutes","activateChildRoutes","futureNode","currNode","futureChild","childOutletName","deactivateRoutes","deactivateRouteAndItsChildren","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","treeNode","activateRoutes","stored","CanActivate","CanDeactivate","getAllRouteGuards","getChildRouteGuards","getTokenOrFunctionIdentity","tokenOrFunction","ɵisInjectable","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","getRouteGuards","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","isEmptyError","INITIAL_VALUE","prioritizedGuardValue","redirectIfUrlTree","NoMatch","AbsoluteRedirect","urlTree","noMatch$1","ApplyRedirects","lineralizeSegments","applyRedirectCommands","newTree","applyRedirectCreateUrlTree","createSegmentGroup","createQueryParams","redirectToParams","actualParams","sourceName","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","consumedSegments","remainingSegments","positionalParamSegments","matchWithChecks","getOrCreateRouteInjectorIfNeeded","currentInjector","runCanMatchGuards","canMatchObservables","injectionToken","isCanMatch","createWildcardMatchResult","slicedSegments","containsEmptyPathMatchesWithNamedOutlets","emptyPathMatch","createChildrenForEmptyPaths","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","primarySegment","NoLeftoversInUrl","Recognizer","configLoader","rootComponentType","applyRedirects","absoluteRedirectCount","allowRedirects","noMatchError","recognize","routeState","createUrlTreeFromSnapshot","inheritParamsAndData","processSegmentGroup","routeNode","processSegment","sortedConfig","sortByMatchingOutlets","outletChildren","last$1","mergedChildren","mergeEmptyPathMatches","sortActivatedRouteSnapshots","processSegmentAgainstRoute","noLeftoversInUrl","rawSegment","isImmediateMatch","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","newSegments","getChildConfig","childInjector","_loadedComponent","getResolve","matchedOnOutlet","_loadedRoutes","runCanLoadGuards","canLoad","canLoadObservables","isCanLoad","shouldLoadResult","canLoadFails","hasEmptyPathConfig","mergedNodes","duplicateEmptyPathNode","resultNode","mergedNode","flattenRouteTree","switchTap","nextResult","TitleStrategy","buildTitle","pageTitle","getResolvedTitleForRoute","DefaultTitleStrategy","updateTitle","ROUTER_CONFIGURATION","ROUTES","RouterConfigLoader","componentLoaders","childrenLoaders","compiler","onLoadStartListener","loadRunner","maybeUnwrapDefaultExport","onLoadEndListener","factoryOrRoutes","rawRoutes","requireStandaloneComponents","isWrappedDefaultExport","UrlHandlingStrategy","DefaultUrlHandlingStrategy","shouldProcessUrl","newUrlPart","wholeUrl","CREATE_VIEW_TRANSITION","VIEW_TRANSITION_OPTIONS","createViewTransition","transitionOptions","startViewTransition","skipNextTransition","resolveViewTransitionStarted","viewTransitionStarted","createRenderPromise","onViewTransitionCreated","NavigationTransitions","hasRequestedNavigation","navigationId","currentNavigation","lastSuccessfulNavigation","transitionAbortSubject","rootContexts","titleStrategy","urlHandlingStrategy","afterPreactivation","handleNavigationRequest","setupNavigations","initialUrlTree","initialRouterState","currentUrlTree","currentRawUrl","extractedUrl","rawUrl","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","overallTransitionState","completed","cancelNavigationTransition","initialUrl","previousNavigation","urlTransition","navigated","isUpdatingInternalState","isUpdatedBrowserUrl","onSameUrlNavigation","serializer","recognize$1","finalUrl","routesRecognized","navStart","skipLocationChange","guardsStart","checkGuards","runCanDeactivateChecks","futureRSS","currRSS","runCanDeactivate","currARS","canDeactivate","canDeactivateObservables","closestInjector","isCanDeactivate","runCanActivateChecks","fireChildActivationStart","fireActivationStart","runCanActivateChild","futureARS","canActivateChildGuardsMapped","getCanActivateChild","canActivateChild","guardsMapped","isCanActivateChild","runCanActivate","canActivateObservables","isCanActivate","guardsEnd","resolveStart","dataResolved","resolveData","routesWithResolversToRun","routesNeedingDataUpdates","newRoute","routesProcessed","runResolve","resolveNode","getResolver","mapTo","resolvedData","resolveEnd","loadComponents","loadedComponent","createRouterState","isRedirectingNavigationCancelingError","resolveNavigationPromiseOnError","navCancel","isBrowserTriggeredNavigation","RouteReuseStrategy","DefaultRouteReuseStrategy","BaseRouteReuseStrategy","detachedTree","ɵDefaultRouteReuseStrategy_BaseFactory","StateManager","HistoryStateManager","canceledNavigationResolution","urlUpdateStrategy","rawUrlTree","currentPageId","lastSuccessfulId","routerState","stateMemento","createStateMemento","getCurrentUrlTree","getRawUrlTree","browserPageId","ɵrouterPageId","getRouterState","registerNonRouterCurrentEntryChangeListener","handleRouterEvent","setBrowserUrl","restoreHistory","generateNgRouterState","navigation","restoringFromCaughtError","targetPagePosition","resetState","resetUrlToCurrentUrlTree","routerPageId","ɵHistoryStateManager_BaseFactory","NavigationResult","COMPLETE","FAILED","REDIRECTING","afterNextNavigation","exactMatchOptions","subsetMatchOptions","Router","stateManager","disposed","ɵConsole","navigationTransitions","componentInputBindingEnabled","resetConfig","subscribeToNavigationEvents","mergedTree","scheduleNavigation","isPublicRouterEvent","resetRootComponentType","initialNavigation","setUpLocationChangeListener","navigateToSyncWithBrowser","nonRouterCurrentEntryChangeSubscription","stateCopy","serializeUrl","getCurrentNavigation","createUrlTree","navigationExtras","queryParamsHandling","preserveFragment","relativeToUrlSegmentGroup","removeEmptyProps","navigateByUrl","validateCommands","isActive","matchOptions","priorPromise","RouterLink","tabIndexAttribute","onChanges","updateHref","setTabIndexIfNotOnNativeEl","newTabIndex","applyAttributeValue","routerLink","sanitizedValue","PreloadingStrategy","RouterPreloader","preloadingStrategy","setUpPreloading","preload","processRoutes","injectorForCurrentRoute","injectorForChildren","preloadConfig","loadedChildren$","recursiveLoadChildren$","loadComponent$","ROUTER_SCROLLER","RouterScroller","viewportScroller","lastId","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","routerEventsSubscription","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","scheduleScrollEvent","routerFeature","getBootstrapListener","bootstrappedComponentRef","bootstrapDone","BOOTSTRAP_DONE","INITIAL_NAVIGATION","ROUTER_PRELOADER","withPreloading","withViewTransitions","skipInitialTransition","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","rootRoute","provideForRootGuard","useHash","scrollOffset","provideInitialNavigation","bindToComponentInputs","enableViewTransitions","ROUTER_INITIALIZER","locationInitialized","AbstractActionManager","hoverCursor","isRecursive","disposeWhenUnowned","HasTriggers","Triggers","HasPickTriggers","tAsInt","HasSpecificTrigger","onBeforeExecuteObservable","_triggerParameter","_nextActiveAction","_condition","getTriggerParameter","setTriggerParameter","_evaluateConditionForCurrentFrame","currentRenderId","_evaluationId","_currentResult","_executeCurrent","skipToNextActiveAction","_child","serializedAction","serializedCondition","_isMesh","_isLight","_isCamera","_isMaterial","_isScene","ActionEvent","meshUnderPointer","sourceEvent","CreateNew","CreateNewFromSprite","CreateNewFromScene","CreateNewFromPrimitive","prim","pointerPos","ActionManager","actionManagers","sceneIndex","ownerMeshes","actionManager","ownerMesh","hasSpecificTriggers","hasSpecificTriggers2","triggerA","triggerB","hasSpecificTrigger","parameterPredicate","hasPointerTriggers","OnPickTrigger","OnPointerOutTrigger","hasPickTriggers","OnPickUpTrigger","registerAction","OnEveryFrameTrigger","_registeredActions","unregisterAction","processTrigger","OnKeyUpTrigger","OnKeyDownTrigger","charCode","triggerObject","GetTriggerName","_meshId","parsedActions","parseParameter","floatValue","effectiveTarget","traverse","parsedAction","combineArray","combine","NothingTrigger","getMaterialByName","getNodeByName","getSoundByName","ValueCondition","newAction","instantiate","internalClassType","Condition","nothing","DoNothingAction","triggerParams","OnLeftPickTrigger","OnRightPickTrigger","OnCenterPickTrigger","OnPickDownTrigger","OnDoublePickTrigger","OnPickOutTrigger","OnLongPressTrigger","OnPointerOverTrigger","OnIntersectionEnterTrigger","OnIntersectionExitTrigger","IsEqual","_IsEqual","IsDifferent","_IsDifferent","IsGreater","_IsGreater","IsLesser","_IsLesser","GetOperatorName","PredicateCondition","StateCondition","SetParentAction","invertParentWorldMatrix","ExecuteCodeAction","StopAnimationAction","PlayAnimationAction","IncrementValueAction","SetValueAction","SetStateAction","SwitchBooleanAction","CombineAction","enableChildrenConditions","Animatable","syncRoot","_syncRoot","masterFrame","_runtimeAnimations","_weight","speedRatio","_speedRatio","_prepareForSpeedRatioChange","_goToFrame","goToFrame","elapsedTime","_localDelayOffset","_animationTime","fromFrame","toFrame","loopAnimation","onAnimationEnd","onAnimationLoop","isAdditive","playOrder","_pausedDelay","_manualJumpDelay","_paused","_frameToSyncFromJump","disposeOnEnd","animationStarted","onAnimationEndObservable","onAnimationLoopObservable","appendAnimations","_activeAnimatables","syncWith","getAnimations","newRuntimeAnimation","RuntimeAnimation","_onLoop","getAnimationByTargetProperty","runtimeAnimations","targetProperty","getRuntimeAnimationByTargetProperty","enableBlending","blendingSpeed","disableBlending","useWeight","fps","framePerSecond","_raiseOnAnimationEnd","targetMask","useGlobalSplice","skipOnAnimationEnd","runtimeAnimation","_animate","isRunning","ProcessLateAnimationBindingsForMatrices","holder","totalWeight","totalAdditiveWeight","originalValue","finalScaling","finalQuaternion","originalAnimation","skipOverride","animIndex","currentScaling","currentQuaternion","additiveAnimations","workValue","_animationState","ProcessLateAnimationBindingsForQuaternions","refQuaternion","cumulativeQuaternion","quaternions","weights","cumulativeAmount","AddAnimationExtensions","sceneClass","boneClass","copyAnimationRange","rangeName","frameOffset","rescaleAsRequired","skelDimensionsRatio","sourceRange","sourceKeys","sourceBoneLength","sourceParent","parentScalingReqd","parentRatio","dimensionsScalingReqd","destKeys","orig","origTranslation","nKeys","getTranslation","setTranslation","customDeltaTime","animationsEnabled","_animationTimeLast","_pendingData","deltaTime","animationTimeScale","animatables","animationTime","ProcessLateAnimationBindings","_registeredForLateAnimationBindings","_lateAnimationHolders","finalValue","AllowMatrixDecomposeForInterpolation","originalAnimationIsLoopRelativeFromCurrent","loopMode","ANIMATIONLOOPMODE_RELATIVE_FROM_CURRENT","sortActiveAnimatables","beginWeightedAnimation","returnedAnimatable","stopCurrent","shouldRunTargetAnimations","getAnimatables","beginHierarchyAnimation","directDescendantsOnly","beginDirectHierarchyAnimation","getAnimatableByTarget","getAllAnimatablesByTarget","stopAllAnimations","Bone","_staticOffsetValueQuaternion","_staticOffsetValueVector3","_staticOffsetValueVector2","_staticOffsetValueSize","Size","_staticOffsetValueColor3","_staticOffsetValueColor4","evaluateAnimationState","_PrepareAnimation","totalFrame","easingFunction","ANIMATIONTYPE_VECTOR2","ANIMATIONTYPE_COLOR4","ANIMATIONTYPE_SIZE","CreateAnimation","animationType","CreateAndStartAnimation","CreateAndStartHierarchyAnimation","CreateMergeAndStartAnimation","MakeAnimationAdditive","sourceAnimation","referenceFrameOrOptions","cloneOriginal","clonedName","referenceFrame","cloneOriginalAnimation","clonedAnimationName","valueStore","referenceValue","referencePosition","referenceQuaternion","referenceScaling","keyPosition","keyQuaternion","keyScaling","rangeValue","createKeyForFrame","_getKeyValue","_interpolate","clippedKeys","clipKeys","inTangent","outTangent","lockedTangent","TransitionTo","frameRate","hasRunningRuntimeAnimations","_easingFunction","_ranges","targetPropertyPath","ANIMATIONLOOPMODE_CYCLE","_UniqueIdGenerator","fullDetails","addEvent","removeEvents","getEvents","AnimationRange","deleteRange","deleteFrames","getHighestFrame","getEasingFunction","floatInterpolateFunction","startValue","endValue","floatInterpolateFunctionWithTangents","Hermite","quaternionInterpolateFunction","Slerp","quaternionInterpolateFunctionWithTangents","vector3InterpolateFunction","vector3InterpolateFunctionWithTangents","vector2InterpolateFunction","vector2InterpolateFunctionWithTangents","sizeInterpolateFunction","color3InterpolateFunction","color3InterpolateFunctionWithTangents","color4InterpolateFunction","color4InterpolateFunctionWithTangents","searchClosestKeyOnly","highLimitValue","keysLength","startKey","endKey","useTangent","frameDelta","ease","ANIMATIONLOOPMODE_YOYO","ANIMATIONLOOPMODE_RELATIVE","offsetValue","quatValue","vec3Value","vec2Value","color3Value","color4Value","AllowMatricesInterpolation","matrixInterpolateFunction","DecomposeLerpToRef","DecomposeLerp","dontClone","loopBehavior","animationKey","_UniversalLerp","parsedAnimation","_inTangent","_outTangent","keyData","AppendSerializedAnimations","serializedAnimation","_AnimationRangeFactory","AnimationEvent","onlyOnce","isDone","_clone","TargetedAnimation","targetId","AnimationGroup","syncWithMask","_numActiveAnimatables","_animatables","retainsTarget","_targetedAnimations","removeUnmaskedAnimations","_from","_to","_isPaused","_loopAnimation","_isAdditive","setWeightForAllAnimatables","targetedAnimations","_playOrder","_enableBlending","_blendingSpeed","MergeAnimationGroups","disposeSource","mergedAnimationGroup","targetedAnimation","addTargetedAnimation","_shouldStart","_parentContainer","onAnimationGroupLoopObservable","onAnimationGroupEndObservable","onAnimationGroupPauseObservable","onAnimationGroupPlayObservable","_animationLoopFlags","addAnimationGroup","removeTargetedAnimation","_processLoop","_animationLoopCount","_checkAnimationGroupEnded","curIndex","syncAllAnimationsWith","getCurrentFrame","targetConverter","cloneAnimations","targetAnimation","targetedAnimationIndex","Tags","HasTags","GetTags","parsedAnimationGroup","morphTarget","getMorphTargetById","targetNode","AddTagsTo","sourceAnimationGroup","cloneOriginalAnimationGroup","clonedAnimationGroupName","ClipKeys","fromKey","dontCloneAnimations","ClipKeysInPlace","ClipInPlace","ClipFrames","ClipFramesInPlace","useFrame","newKeys","EasingFunction","_easingMode","EASINGMODE_EASEIN","setEasingMode","easingMode","getEasingMode","easeInCore","EASINGMODE_EASEOUT","EASINGMODE_EASEINOUT","CircleEase","BackEase","amplitude","ExponentialEase","exponent","QuadraticEase","SineEase","BezierCurveEase","x2","BezierCurve","Interpolate","_currentFrame","_currentValue","_targetPath","_currentActiveTarget","_host","_originalValue","_originalBlendValue","_offsetsCache","_highLimitsCache","_blendingFactor","_directTarget","_absoluteFrameOffset","_previousElapsedTime","_yoyoDirection","_previousAbsoluteFrame","_targetIsArray","_activeTargets","_getCorrectLoopMode","_minFrame","_maxFrame","_minValue","_maxValue","_preparePath","_getOriginalValues","animationPropertiesOverride","targetIndex","restoreOriginal","_setValue","getLocalMatrix","_registerTargetForLateAnimationBinding","pushNoDuplicate","newSpeedRatio","elapsedTimeSinceAnimationStart","frameRange","absoluteFrame","yoyoLoop","yoyoMode","keyOffset","fromValue","toValue","AudioEngineFactory","audioContext","audioDestination","AudioEngine","_audioContextInitialized","_initializeAudioContext","_audioContext","_muteButton","_audioDestination","canUseWebAudio","WarnedWebAudioUnsupported","isMP3supported","isOGGsupported","unlocked","useCustomUnlockedButton","onAudioUnlockedObservable","onAudioLockedObservable","_tryToRun","_moveButtonToTopLeft","AudioContext","audioElem","_hostElement","canPlayType","_triggerSuspendedState","_hideMuteButton","suspend","_triggerRunningState","_resumeAudioContextOnStateChange","_resumeAudioContext","AbortSignal","masterGain","createGain","gain","_displayMuteButton","css","offsetLeft","_connectedAnalyser","stopDebugCanvas","getGlobalVolume","setGlobalVolume","newVolume","connectToAnalyser","analyser","connectAudioNodes","NAME_AUDIO","loadedSound","loadedSounds","sounds","parsedSound","audioEngine","Sound","compo","AudioSceneComponent","_mainSoundTrack","SoundTrack","mainTrack","mainSoundTrack","soundCollection","soundTracks","sdIndex","audioEnabled","enableAudio","disableAudio","headphone","switchAudioModeForHeadphones","switchAudioModeForNormalSpeakers","audioListenerPositionProvider","audioListenerRotationProvider","audioPositioningRefreshRate","_audioEnabled","_headphone","_cachedCameraDirection","_cachedCameraPosition","_lastCheck","_invertMatrixTemp","_cameraDirectionTemp","_afterRenderStage","STEP_AFTERRENDER_AUDIO","_afterRender","soundtrack","soundId","addSound","removeSound","scIndex","switchPanningModelToHRTF","switchPanningModelToEqualPower","listeningCamera","setOrientation","_CameraDirection","useCustomAttenuation","updateDistanceFromListener","_loop","_htmlAudioElement","_currentTime","_startTime","spatialSound","_spatialSound","wasPlaying","_updateSpatialParameters","_disableSpatialSound","urlOrArrayBuffer","readyToPlayCallback","refDistance","rolloffFactor","distanceModel","onEndedObservable","_panningModel","_playbackRate","_streaming","_volume","_isReadyToPlay","_isDirectional","_coneInnerAngle","_coneOuterAngle","_coneOuterGain","_isOutputConnected","_urlType","_readyToPlayCallback","_customAttenuationFunction","currentVolume","currentDistance","playbackRate","streaming","_soundGain","_inputAudioNode","_outputAudioNode","_createSpatialParameters","validParameter","HTMLMediaElement","MediaStream","AudioBuffer","urls","codecSupportedFound","_streamingSource","createMediaElementSource","createMediaStreamSource","_soundLoaded","_audioBufferLoaded","skipCodecCheck","Audio","soundTrackId","_soundPanner","_soundSource","_audioBuffer","_connectedTransformNode","_registerFunc","unregisterAfterWorldMatrixUpdate","_clearTimeoutsAndObservers","audioData","decodeAudioData","setAudioBuffer","audioBuffer","_setOffset","setVolume","loopStart","loopEnd","createPanner","panningModel","_switchPanningModel","connectToSoundTrackAudioNode","soundTrackAudioNode","setDirectionalCone","coneInnerAngle","coneOuterAngle","coneOuterGain","directionalConeInnerAngle","directionalConeOuterAngle","positionX","positionY","positionZ","setLocalDirectionToMesh","newLocalDirection","_updateDirection","orientationX","orientationY","orientationZ","getDistanceToCamera","setAttenuationFunction","onended","_onended","tryToPlay","playPromise","_audioUnlockedObserver","oldSource","createBufferSource","_tryToPlayTimeout","stopTime","cancelScheduledValues","setValueAtTime","linearRampToValueAtTime","setPlaybackRate","newPlaybackRate","getPlaybackRate","getVolume","attachToMesh","_onRegisterAfterWorldMatrixUpdate","registerAfterWorldMatrixUpdate","detachFromMesh","setBufferAndRun","clonedSound","getAudioBuffer","getSoundSource","getSoundGain","connectedMeshId","isDirectional","localDirectionToMesh","sourceSound","soundName","soundUrl","newSound","soundPosition","connectedMesh","_isInitialized","_initializeSoundTrackAudioGraph","WeightedSound","_sounds","_weights","weightSum","invWeightSum","randomValue","AutoRotationBehavior","_zoomStopsAnimation","_idleRotationSpeed","_idleRotationWaitTime","_idleRotationSpinupTime","targetAlpha","_isPointerDown","_lastFrameTime","_lastInteractionTime","_cameraRotationSpeed","_lastFrameRadius","zoomStopsAnimation","idleRotationSpeed","idleRotationWaitTime","idleRotationSpinupTime","rotationInProgress","_attachedCamera","_onPrePointerObservableObserver","onPrePointerObservable","pointerInfoPre","_onAfterCheckInputsObserver","onAfterCheckInputsObservable","_reachTargetAlpha","_applyUserInteraction","resetLastInteractionTime","customTime","_userIsZooming","inertialRadiusOffset","_shouldAnimationStopForInteraction","zoomHasHitLimit","_userIsMoving","inertialAlphaOffset","inertialBetaOffset","inertialPanningX","inertialPanningY","BouncingBehavior","transitionDuration","lowerRadiusTransitionRange","upperRadiusTransitionRange","_autoTransitionRange","_radiusIsAnimating","_radiusBounceTransition","autoTransitionRange","_onMeshTargetChangedObserver","onMeshTargetChangedObservable","diagonal","diagonalLength","_isRadiusAtLimit","_applyBoundRadiusAnimation","radiusLimit","radiusDelta","EasingMode","_cachedWheelPrecision","_clearAnimationLocks","FramingBehavior","onTargetFramingAnimationEndObservable","FitFrustumSidesMode","_radiusScale","_positionScale","_defaultElevation","_elevationReturnTime","_elevationReturnWaitTime","_framingTime","autoCorrectCameraLimitsAndSensibility","_betaIsAnimating","radiusScale","positionScale","defaultElevation","elevation","elevationReturnTime","elevationReturnWaitTime","framingTime","zoomOnMesh","_maintainCameraAboveGround","focusOnOriginXZ","zoomOnBoundingInfo","zoomOnMeshHierarchy","zoomOnMeshesHierarchy","CheckExtends","zoomTarget","zoomTargetY","radiusWorld","_vectorTransition","_calculateLowerRadiusFromModelBoundingSphere","IgnoreBoundsSizeMode","panningSensibility","_radiusTransition","useInputToRestoreState","storeState","defaultBeta","limitBeta","_betaTransition","animatabe","isUserIsMoving","BaseSixDofDragBehavior","_attachedToElement","_virtualMeshesInfo","_dragType","DRAG","DRAG_WITH_CONTROLLER","NEAR_DRAG","_moving","_dragging","draggableMeshes","zDragFactor","currentDraggingPointerIds","detachCameraControls","onDragStartObservable","onDragObservable","onDragEndObservable","allowMultiPointer","currentDraggingPointerId","currentDraggingPointerID","isMoving","_pointerCamera","_createVirtualMeshInfo","dragMesh","_virtualScene","originMesh","pivotMesh","startingPivotPosition","startingPivotOrientation","startingPosition","startingOrientation","lastOriginPosition","lastDragPosition","_resetVirtualMeshesPosition","_ownerNode","getAbsolutePivotPoint","_pointerUpdate2D","RIG_MODE_NONE","_isLeftCamera","_isRightCamera","virtualMeshesInfo","originDragDifference","localOriginDragDifference","addChild","_applyZOffset","lookAt","_pointerUpdateXR","controllerAimTransform","controllerGripTransform","cameraForwardVec","originDragDirection","getForwardRay","controllerDragDistance","cameraToDrag","controllerToDrag","controllerToDragDistance","zOffsetScaling","minDistanceFromControllerToDragMesh","setAbsolutePosition","ownerNode","virtual","pickPredicate","pointerInfo","isXRPointer","aimTransform","gripTransform","leftCamera","attachedToElement","_targetDragStart","POINTERDOUBLETAP","registeredPointerIndex","_reattachCameraControls","_targetDragEnd","_targetDrag","worldRotation","worldDeltaPosition","worldDeltaRotation","arcRotateCamera","_useCtrlForPanning","_panningMouseButton","FadeInOutBehavior","fadeInDelay","fadeOutDelay","fadeInTime","fadeOutTime","_millisecondsPerFrame","_hovered","_hoverValue","_setAllVisibility","_detachObserver","_attachObserver","fadeIn","fadeOut","_onBeforeRenderObserver","HandConstraintBehavior","_sceneRenderObserver","_zoneAxis","handConstraintVisibility","palmUpStrictness","gazeProximityRadius","targetOffset","targetZone","zoneOrientationMode","nodeOrientationMode","lerpTime","_node","_getHandPose","_handTracking","hand","getHandByHandedness","pinkyMetacarpal","getJointMesh","middleMetacarpal","wrist","handPose","FromLookDirectionLHToRef","lastTick","reservedDataStore","nearInteraction","excludedControllerId","zoneOffset","cameraLookAtQuaternion","toCamera","FromLookDirectionRHToRef","targetRotation","elapsed","SmoothToRef","_setVisibility","palmVisible","gazeVisible","cameraForward","gaze","_eyeTracking","gazeToBehavior","projectedDistance","projectedSquared","palmDirection","linkToXRExperience","featuresManager","getEnabledFeature","HAND_TRACKING","PointerDragBehavior","onEnabledObservable","_useAlternatePickedPointAboveMaxDragAngleDragSpeed","_activeDragButton","maxDragAngle","dragButtons","_useAlternatePickedPointAboveMaxDragAngle","dragDeltaRatio","updateDragPlane","moveAttached","startAndReleaseDragOnPointerEvents","useObjectOrientationForDragging","validateDrag","_alternatePickedPoint","_worldDragAxis","_targetPosition","_startDragRay","_lastPointerRay","_dragDelta","_pointA","_pointC","_localAxis","_lookAt","optionCount","dragAxis","dragPlaneNormal","isNearGrabbable","_PlaneScene","_dragPlane","DOUBLESIDE","_activePointerInfo","_startDrag","releaseDrag","_AnyMouseId","hostInformation","_moveDrag","needMatrixUpdate","PivotTools","_RemoveAndStorePivotPoint","_RestorePivotPoint","dragPlanePoint","fromRay","startPickedPoint","lastRay","getTranslationToRef","_updateDragPlanePosition","_pickWithRayOnDragPlane","dragLength","getRotationMatrix","planeNormal","planePosition","dotProduct","dragPlanePosition","_matrix","_compose","_localMatrix","_needToCompose","_markAsDirtyAndDecompose","localMatrix","restMatrix","bindMatrix","_index","_scalingDeterminant","_needToDecompose","_waitingTransformNodeId","_skeleton","_restMatrix","_bindMatrix","_absoluteMatrix","_absoluteBindMatrix","_absoluteInverseBindMatrix","_finalMatrix","_updateAbsoluteBindMatrices","_parentNode","updateAbsoluteBindMatrices","getBindMatrix","getBaseMatrix","getRestMatrix","getRestPose","setRestMatrix","setRestPose","getBindPose","setBindMatrix","setBindPose","getFinalMatrix","localScaling","localRotation","getAbsoluteInverseBindMatrix","getInvertedAbsoluteTransform","getAbsoluteTransform","linkTransformNode","_numBonesWithLinkedTransformNode","getTransformNode","_decompose","_localPosition","_markAsDirtyAndCompose","getRotation","newRotation","setRotation","_localRotation","newScaling","_localScaling","updateLocalMatrix","updateChildren","_childUpdateId","_markAsDirty","translationMode","lm","addAtIndex","tmat","tvec","IdentityToRef","scaleChildren","locMat","scaleMat","cm","multiplyAtIndex","getScaleToRef","setYawPitchRoll","roll","rotMatInv","_getAbsoluteInverseMatrixUnscaledToRef","rotMat","_rotateWithMatrix","rmat","rotMat2","lmat","lx","ly","lz","parentScale","parentScaleInv","scaleMatrix","getPositionToRef","poseMatrix","getPoseMatrix","computeAbsoluteTransforms","getDirection","localAxis","getRotationToRef","getRotationQuaternion","amat","getAbsolutePositionFromLocal","getLocalPositionFromAbsolute","getLocalPositionFromAbsoluteToRef","setCurrentPoseAsRest","Skeleton","useTextureToStoreBoneMatrices","_useTextureToStoreBoneMatrices","_animationPropertiesOverride","_canUseTextureForBones","_uniqueId","needInitialSkinMatrix","_meshesWithPoseMatrix","_identity","_absoluteTransformIsDirty","_hasWaitingData","doNotSerialize","onBeforeComputeObservable","addSkeleton","engineCaps","_bonesTransformMatrices","_transformMatrices","_transformMatrixTexture","getBoneIndexByName","boneIndex","createAnimationRange","nBones","deleteAnimationRange","getAnimationRange","getAnimationRanges","animationRanges","_getHighestAnimationFrame","boneDict","sourceBones","dimensionsAtRest","boneName","sourceBone","highest","sceneAnimatables","rangeAnimatable","sceneAnimatable","_registerMeshWithPoseMatrix","_unregisterMeshWithPoseMatrix","_computeTransformMatrices","targetMatrix","initialSkinMatrix","mappedIndex","multiplyToArray","dontCheckFrameId","needsUpdate","_synchronizedWithMesh","serializedBone","parentBoneIndex","linkedTransformNodeId","parsedSkeleton","parsedBone","parsedBoneIndex","sortBones","visited","_sortBones","postponeInternalCreation","useBytes","_isAlreadyOwned","_instanced","_divisor","isUpdatable","_increaseReferences","_instanceDivisor","isInstanced","_computeHashCode","updatableOrOptions","takeBufferOwnership","_kind","GetDataType","getFloatData","forceCopy","GetFloatData","getOffset","ForEach","componentByteLength","componentByteOffset","_GetFloatValue","tightlyPackedByteStride","CopyFloatData","floatData","BaseCameraMouseWheelInput","wheelPrecisionX","wheelPrecisionY","wheelPrecisionZ","onChangedObservable","_wheelDeltaX","_wheelDeltaY","_wheelDeltaZ","_ffMultiplier","_normalize","platformScale","EventConstants","deltaZ","wheelDeltaX","wheelDeltaY","wheelDeltaZ","_currentActiveButton","_pointB","_altKey","_ctrlKey","_metaKey","_shiftKey","_buttonsPressed","isTouch","onDoubleTap","ed","onButtonUp","onButtonDown","onLostFocus","_contextMenuBind","RegisterTopRootEvents","UnregisterTopRootEvents","_evt","ArcRotateCameraGamepadInput","gamepadRotationSensibility","gamepadMoveSensibility","_yAxisScale","invertYAxis","gamepadManager","_onGamepadConnectedObserver","onGamepadConnectedObservable","Gamepad","POSE_ENABLED","XBOX","_onGamepadDisconnectedObserver","onGamepadDisconnectedObservable","getGamepadByType","gamepads","rsValues","rightStick","normalizedRX","normalizedRY","lsValues","leftStick","normalizedLY","ArcRotateCameraKeyboardMoveInput","keysReset","zoomingSensibility","useAltToZoom","angularSpeed","restoreState","ArcRotateCameraMouseWheelInput","zoomToMouseLocation","customComputeDeltaFromMouseWheel","_viewOffset","_globalOffset","_inertialPanning","_computeDeltaFromMouseWheelLegacyEvent","mouseWheelDelta","estimatedTargetRadius","targetInertia","inertia","_hitPlane","_updateHitPlane","_zoomToMouse","_zeroIfClose","FromPositionAndNormal","_getPosition","createPickingRay","targetScreenOffset","intersectsPlane","inertiaComp","lowerLimit","upperLimit","directionToZoomLocation","ArcRotateCameraPointersInput","useNaturalPinchZoom","pinchInwards","_isPanClick","_twoFingerActivityCount","_isPinching","_computeMultiTouchPanning","moveDeltaY","_computePinchZoom","MinimumRadiusForPinch","pinchToPanMaxDistance","addDeviceOrientation","smoothFactor","_deviceOrientationInput","FreeCameraDeviceOrientationInput","WaitForOrientationChangeAsync","gotValue","_screenOrientationAngle","_screenQuaternion","_beta","_onDeviceOrientationChangedObservable","_orientationChanged","_deviceOrientation","SmoothAngleChange","_constantTransform","FreeCameraGamepadInput","gamepadAngularSensibility","deadzoneDelta","_cameraTransform","_deltaTransform","_vector3","_vector2","FreeCameraKeyboardMoveInput","keysUpward","keysDownward","keysRotateLeft","keysRotateRight","keysRotateUp","keysRotateDown","_getLocalRotation","handednessMultiplier","FreeCameraMouseInput","onPointerMovedObservable","_allowCameraRotation","_activePointerId","_CameraProperty","MoveRelative","RotateRelative","MoveScene","FreeCameraMouseWheelInput","_moveRelative","_rotateRelative","_moveScene","_wheelXAction","_wheelXActionCoordinate","_wheelYAction","_wheelYActionCoordinate","_wheelZAction","_wheelZActionCoordinate","wheelXMoveRelative","wheelYMoveRelative","wheelZMoveRelative","wheelXRotateRelative","wheelYRotateRelative","wheelZRotateRelative","wheelXMoveScene","wheelYMoveScene","wheelZMoveScene","_updateCamera","cameraTransformMatrix","_updateCameraProperty","cameraProperty","coordinate","FreeCameraTouchInput","allowMouse","touchAngularSensibility","touchMoveSensibility","singleFingerRotate","_offsetX","_offsetY","_pointerPressed","_isSafari","IsSafari","previousPosition","_cameraRotationMatrix","_cameraRigParams","vrMetrics","vrWorkMatrix","vrHMatrix","leftHMatrix","vrPreViewMatrix","leftPreViewMatrix","_getVRProjectionMatrix","rightHMatrix","rightPreViewMatrix","multiviewEnabled","_useMultiviewToSingleView","VRMultiviewToSingleviewPostProcess","postProcessScaleFactor","VRDistortionCorrectionPostProcess","hResolution","vResolution","aspectRatioFov","vScreenSize","eyeToScreenDistance","hScreenSize","lensSeparationDistance","interpupillaryDistance","vScreenCenter","distortionK","chromaAbCorrection","lensCenterOffset","DeviceOrientationCamera","VRExperienceHelperGazer","gazeTrackerToClone","_pointerDownOnMeshAsked","_isActionableMesh","_teleportationRequestInitiated","_teleportationBackRequestInitiated","_rotationRightAsked","_rotationLeftAsked","_dpadPressed","_activePointer","_IdCounter","_gazeTracker","CreateTorus","targetMat","_getForwardRay","_selectionPointerDown","_currentHit","simulatePointerDown","_selectionPointerUp","simulatePointerUp","_activatePointer","_deactivatePointer","_updatePointerDistance","_interactionsEnabled","_teleportationEnabled","VRExperienceHelperCameraGazer","_getCamera","VRExperienceHelper","onEnteringVR","onEnteringVRObservable","onExitingVR","onExitingVRObservable","teleportationTarget","_teleportationTarget","_isDefaultTeleportationTarget","gazeTrackerMesh","_cameraGazer","displayGaze","_displayGaze","displayLaserPointer","_displayLaserPointer","deviceOrientationCamera","_deviceOrientationCamera","currentVRCamera","vrDeviceOrientationCamera","_vrDeviceOrientationCamera","vrButton","_btnVR","webVROptions","_fullscreenVRpresenting","enableGazeEvenWhenNoPointerLock","exitVROnDoubleTap","onAfterEnteringVRObservable","_useCustomVRButton","_teleportActive","_floorMeshesCollection","_teleportationMode","TELEPORTATIONMODE_CONSTANTTIME","_teleportationTime","_teleportationSpeed","_rotationAllowed","_teleportBackwardsVector","_teleportationFillColor","_teleportationBorderColor","_rotationAngle","_haloCenter","_padSensibilityUp","_padSensibilityDown","_pickedLaserColor","_pickedGazeColor","onNewMeshSelected","onNewMeshPicked","onBeforeCameraTeleport","onAfterCameraTeleport","onSelectedMeshUnselected","teleportationEnabled","_teleportationInitialized","updateGazeTrackerScale","updateGazeTrackerColor","updateControllerLaserColor","requestPointerLockOnFullScreen","xrTestDone","_moveButtonToBottomRight","_onFullscreenChange","exitVR","_updateButtonVisibility","_cachedAngularSensibility","_beforeRender","_onNewGamepadConnected","onleftstickchanged","stickValues","_checkTeleportWithRay","_checkTeleportBackwards","onrightstickchanged","_checkRotate","onbuttondown","buttonPressed","onbuttonup","_workingVector","_workingQuaternion","_workingMatrix","useXR","createFallbackVRDeviceOrientationFreeCamera","createDeviceOrientationCamera","laserToggle","_hasEnteredVR","_defaultHeight","_existingCamera","WebXRSessionManager","IsSessionSupportedAsync","createDefaultXRExperienceAsync","floorMeshes","baseExperience","onStateChangedObservable","pointerSelection","_completeVRInit","vrDeviceOrientationCameraMetrics","isInVRMode","enterVR","_displayVRButton","_circleEase","_teleportationEasing","enableTeleportation","_btnVRDisplayed","enterXRAsync","FromRotationMatrix","toEulerAngles","onViewMatrixChangedObservable","exitXRAsync","enableInteractions","raySelectionPredicate","_floorMeshName","meshSelectionPredicate","_raySelectionPredicate","_isTeleportationFloor","addFloorMesh","floorMesh","removeFloorMesh","vrTeleportationOptions","floorMeshName","teleportation","waitForXr","teleportationMode","teleportationTime","teleportationSpeed","vignetteColor","vignetteEnabled","_createTeleportationCircles","stateObject","gazer","teleportCamera","CreateGround","dynamicTexture","DynamicTexture","teleportationCircleMaterial","torus","animationInnerCircle","_hideTeleportationTarget","animationRotation","animationRotationKeys","_postProcessMove","animationPP","vignetteWeightKeys","animationPP2","vignetteStretchKeys","vignetteWeight","vignetteStretch","lastFrame","TELEPORTATIONMODE_CONSTANTSPEED","animationCameraTeleportation","midFrame","setLaserColor","pickedColor","setLaserLightingState","setGazeColor","changeLaserColor","changeGazeColor","_onVrDisplayPresentChangeBind","targetHost","_targetHost","upVector","_upToYMatrix","_yToUpMatrix","_upVector","setMatUp","bouncingBehavior","_bouncingBehavior","useBouncingBehavior","addBehavior","removeBehavior","framingBehavior","_framingBehavior","useFramingBehavior","autoRotationBehavior","_autoRotationBehavior","useAutoRotationBehavior","panningDistanceLimit","panningOriginTarget","panningInertia","zoomOnFactor","allowUpsideDown","restoreStateInterpolationFactor","_viewMatrix","panningAxis","mapPanning","_progressiveRestore","collisionRadius","_collisionVelocity","_computationVector","cosa","sina","cosb","sinb","_getTargetPosition","_computeViewMatrix","_collisionTriggered","_initCache","_updateCache","ignoreParentClass","_targetBoundingCenter","_getLockedTargetPosition","_storedAlpha","_goalAlpha","_storedBeta","_goalBeta","_storedRadius","_goalRadius","_storedTarget","_goalTarget","_storedTargetScreenOffset","_goalTargetScreenOffset","_restoreStateValues","hasStateStored","interpolateTo","_isSynchronizedViewMatrix","useCtrlForPanning","panningMouseButton","RotationAlphaBetaGammaToRef","toAlphaBetaGammaToRef","directionModifier","invertRotation","localDirection","transposeToRef","rebuildAnglesAndRadius","previousAlpha","alphaCorrectionTurns","toBoundingCenter","allowSamePosition","cloneAlphaBetaRadius","overrideCloneAlphaBetaRadius","newTarget","_getViewMatrix","zoomOn","doNotUpdateMaxZ","minMaxVector","MinMax","focusOn","meshesOrMinMaxVectorAndDistance","meshesOrMinMaxVector","createRigCamera","alphaShift","stereoHalfAngle","rigCam","isRigCamera","rigParent","_updateRigCameras","camLeft","camRight","boxVectorGlobalDiagonal","frustumSlopeY","frustumSlopeX","distanceForHorizontalFrustum","distanceForVerticalFrustum","serializeAsVector2","screenArea","fovMode","FOVMODE_VERTICAL_FIXED","_orthoLeft","rigCamera","_orthoRight","_orthoBottom","_orthoTop","oblique","projectionPlaneTilt","isIntermediate","outputRenderTarget","onProjectionMatrixChangedObservable","onRestoreStateObservable","_skipRendering","_projectionMatrix","_activeMeshes","_globalPosition","_computedViewMatrix","_doNotComputeProjectionMatrix","_refreshFrustumPlanes","_absoluteRotation","_stateStored","_storedFov","applyVerticalCorrection","rot","isActiveMesh","completeCheck","obliqueAngle","obliqueLength","obliqueOffset","renderWidth","renderHeight","_isSynchronized","_isSynchronizedProjectionMatrix","isSynchronizedWithParent","isSynchronized","_ignored","rigPostProcess","_cascadePostProcessesToRigCams","markTextureDirty","insertAt","_worldMatrix","updateCache","freezeProjectionMatrix","unfreezeProjectionMatrix","reverseDepth","PerspectiveFovRHToRef","PerspectiveFovLHToRef","ObliqueOffCenterRHToRef","_computeObliqueDistance","OrthoOffCenterRHToRef","ObliqueOffCenterLHToRef","OrthoOffCenterLHToRef","Frustum","GetPlanesToRef","GetPlanes","checkRigCameras","isCompletelyInFrustum","getForwardRayToRef","refRay","isLeftCamera","rightCamera","getLeftTarget","getRightTarget","setCameraRigParameter","_setupInputs","_serializeAsParent","serializeAnimationRanges","GetConstructorFromName","onClonedObservable","Construct","constructorFunc","_CreateDefaultParsedCamera","parsedCamera","_waitingParentId","parentInstanceIndex","_waitingParentInstanceIndex","animationIndex","internalClass","ParseAnimationRanges","autoAnimate","autoAnimateFrom","autoAnimateTo","autoAnimateLoop","autoAnimateSpeed","FOVMODE_HORIZONTAL_FIXED","RIG_MODE_CUSTOM","ForceAttachControlToAlwaysPreventDefault","_addCheckInputs","inputToRemove","rebuildInputCheck","removeByType","attachInput","serializedCamera","inputsmgr","parsedInputs","_tmpDragQuaternion","_disablePointerInputWhenUsingDeviceOrientation","_dragFactor","_quaternionCache","_mouseInput","_initialQuaternion","FromEulerAnglesToRef","disablePointerInputWhenUsingDeviceOrientation","enableHorizontalDragging","dragFactor","resetToCurrentRotation","axisName","_deferredPositionUpdate","_deferOnly","_deferredUpdated","_mouseWheelInput","removeMouse","removeMouseWheel","addTouch","_tmpUpVector","_tmpTargetVector","ignoreParentScaling","updateUpVectorFromRotation","noRotationConstraint","inverseRotationSpeed","_initialFocalDistance","_camMatrix","_referencePoint","_transformedReferencePoint","_deferredRotationQuaternionUpdate","_deferredRotationUpdate","_defaultUp","_cachedRotationZ","_cachedQuaternionRotationZ","getFrontPosition","_storedPosition","_storedRotation","_storedRotationQuaternion","lockedTargetPosition","vDir","directionMultiplier","needToMove","needToRotate","_updateCameraRotationMatrix","_rotateUpVectorWithCameraRotationMatrix","FromEulerVectorToRef","parentWorldMatrix","_markSyncedWithParent","LookAtRHToRef","rightSign","_getRigCamPositionAndTarget","halfSpace","_TargetFocalPoint","newFocalTarget","_TargetTransformMatrix","_RigCamTransformMatrix","TouchCamera","IntersectionInfo","bu","bv","faceId","_MeshCollisionData","_checkCollisions","_collisionGroup","_surroundingMeshes","_oldPositionForCollisions","_diffPositionForCollisions","_collisionResponse","subMeshFaceId","pickedSprite","thinInstanceIndex","getNormal","useWorldCoordinates","useVerticesNormals","tmp0","tmp1","tmp2","normal0","normal1","normal2","vertex3","p1p2","p3p2","transformNormalToWorld","nonUniformScaling","normalForDirectionChecking","getTextureCoordinates","uvSet","uv0","uv1","uv2","useOpenGLOrientationForUV","_shaderPath","_bindings","_contextIsDirty","fastMode","bindSampler","setStorageTexture","setVideoTexture","_BufferIsDataBuffer","compareSampler","shaderName","_cachedDefines","_checkContext","dispatchIndirect","TextureSampler","setParameters","dispatchWhenReady","serializedData","ComputeShaderBoundingHelper","_computeShadersCache","_positionBuffers","_indexBuffers","_weightBuffers","_indexExtraBuffers","_weightExtraBuffers","_morphTargetInfluenceBuffers","_morphTargetTextureIndexBuffers","_ubos","_uboIndex","_processedMeshes","_computeShaders","_uniqueComputeShaders","_resultBuffers","_getComputeShader","hasBones","hasMorphs","positionBuffer","resultBuffer","boneSampler","weightBuffer","indexExtraBuffer","weightExtraBuffer","morphTargets","morphTargetInfluences","morphTargetTextureIndices","_getUBO","addFloat3","_extractDataAndLink","storageUnit","dataArray","_prepareStorage","processAsync","registerMeshListAsync","processMeshList","fetchResultsForMeshListAsync","_disposeForMeshList","maxNumInfluencers","computeShaderWithoutMorph","computeShaderWithMorph","resultDataSize","resultData","NEGATIVE_INFINITY","_targetStoreTexture","influences","_morphTargetTextureIndices","_textureVertexStride","minmax","resultDataOffset","minimizeInPlace","maximizeInPlace","_refreshBoundingInfoDirect","_disposeCache","TransformFeedbackBoundingHelper","_meshListCounter","_processMeshList","computeEffect","PrepareAttributesForBakedVertexAnimation","_compute","targetData","_bindDirect","_refreshBoundingInfo","bb","_Min","_Max","_meshList","vectors","extendSizeWorld","_drawWrapperFront","_drawWrapperBack","reConstruct","tmpVectors","_TmpVector3","normalizeFromLength","newRadius","minWorld","maxWorld","isIdentity","IsCompletelyInFrustum","intersectsPoint","pointX","pointY","pointZ","sphere","myMin","myMax","Intersects","box0","box1","ClampToRef","boundingVectors","frustumPlane","dotCoordinate","canReturnFalse","_result0","_result1","computeBoxExtents","axisOverlap","BoundingInfo","BoundingSphere","centerOn","encapsulate","encapsulateBoundingInfo","toEncapsulate","invw","isCenterInFrustum","precise","tempRadiusVector","tempVector","squareDistance","sphere0","sphere1","radiusSum","CreateFromCenterAndRadius","PickingCustomization","internalPickerForMesh","intersectionTreshold","newMinimum","newMaximum","inv","intersectsBox","pyth","vertex0","edge2","pvec","qvec","invdet","bw","result1","result2","intersectsAxis","tm","_tmpRay","intersectsMeshes","_comparePickingInfo","pickingInfoA","pickingInfoB","sega","segb","rsegb","_Rayl","sN","tN","sD","tD","_Smallnum","tc","qtc","qsc","dP","enableDistantPicking","_RayDistant","unprojectRayToRef","CreateNewFromTo","CreateFromToToRef","sourceX","nearScreenSource","farScreenSource","nearVec3","farVec3","_UnprojectFromInvertedMatrixToRef","CreatePickingRay","cameraViewSpace","CreatePickingRayToRef","levelInv","getHardwareScalingLevel","CreatePickingRayInCameraSpace","CreatePickingRayInCameraSpaceToRef","InternalPickForMesh","rayFunction","InternalPick","computeWorldMatrixForCamera","currentCamera","picker","forceCompute","isWorldMatrixCameraDependent","thinInstanceEnablePicking","tmpMatrix","thinMatrices","thinInstanceGetWorldMatrices","InternalMultiPick","pickingInfos","PickWithBoundingInfo","_tempPickingRay","Pick","_enableDistantPicking","PickWithRay","_pickWithRayInverseMatrix","_cachedRayForTransform","MultiPick","MultiPickWithRay","GetForwardRayToRef","worldForward","NormalizeToRef","AddRayExtensions","cameraClass","_ImportHelper","_IsPickingAvailable","createPickingRayToRef","createPickingRayInCameraSpace","createPickingRayInCameraSpaceToRef","pickWithBoundingInfo","multiPick","propertyType","propertyKey","propStore","_propStore","DeviceType","Generic","Keyboard","Mouse","Touch","DualShock","Xbox","Switch","DualSense","PointerInput","Horizontal","Vertical","LeftClick","MiddleClick","RightClick","BrowserBack","BrowserForward","MouseWheelX","MouseWheelY","MouseWheelZ","Move","DeviceSource","deviceInputSystem","deviceType","deviceSlot","onInputChangedObservable","_deviceInputSystem","getInput","inputIndex","pollInput","DeviceEventFactory","CreateDeviceEvent","elementToAttachTo","_CreateKeyboardEvent","_CreateWheelEvent","_CreatePointerEvent","_CreateMouseEvent","_CreateEvent","_CheckNonCharacterKeys","isKeyboardActive","isDeviceAvailable","NativeDeviceInputSystem","onDeviceConnected","onDeviceDisconnected","onInputChanged","_nativeInput","DeviceInputSystem","_createDummyNativeInput","MAX_POINTER_INPUTS","WebDeviceInputSystem","_keyboardActive","_pointerActive","_usingSafari","_usingMacOS","IsNavigatorAvailable","_keyboardDownEvent","_keyboardUpEvent","_keyboardBlurEvent","_pointerMoveEvent","_pointerDownEvent","_pointerUpEvent","_pointerCancelEvent","_pointerWheelEvent","_pointerBlurEvent","_pointerMacOSChromeOutEvent","_eventsAttached","_mouseId","_isUsingFirefox","_isUsingChromium","_maxTouchPoints","_pointerInputClearObserver","_gamepadConnectedEvent","_gamepadDisconnectedEvent","_eventPrefix","GetPointerPrefix","_onDeviceConnected","_onDeviceDisconnected","_onInputChanged","_enableEvents","_metaKeys","_updateDevice","_elementToAttachTo","_disableEvents","deviceSlotKey","canvasTabIndex","_handleKeyActions","_handlePointerActions","_handleGamepadActions","_checkForConnectedDevices","_wheelEventName","getGamepads","_addGamePad","_addPointerDevice","_getGamepadDeviceType","_gamepads","_registerDevice","currentX","currentY","numberOfInputs","_unregisterDevice","kbKey","deviceEvent","_activeTouchIds","_getPointerType","previousHorizontal","previousVertical","pointerLockElement","hasPointerCapture","onmousewheel","passiveSupported","gp","deviceName","InternalDeviceSourceManager","_registeredManagers","registerManager","_devices","_addDevice","unregisterManager","numberOfDeviceTypes","deviceSource","_removeDevice","DeviceSourceManager","getDeviceSource","_firstDevice","getDeviceSources","_deviceSourceManager","onDeviceConnectedObservable","devices","notifyObserver","onDeviceDisconnectedObservable","_onDisposeObserver","_updateFirstDevices","setAlphaEquationParameters","_partialLoadFile","loadedFiles","onfinish","onErrorCallBack","_internalCount","_cascadeLoadFiles","_cascadeLoadImgs","loadedImages","_partialLoadImg","tokenPendingData","RandomGUID","LoadImage","beforeLoadCubeDataCallback","imageHandler","originalRootUrl","rootUrlWithoutUriParams","loadCubeData","supportCascades","getRenderingCanvasClientRect","viewportOwner","getScreenAspectRatio","_verifyPointerLock","_onPointerLockChange","loadingScreen","_loadingScreen","getRenderPassNames","_renderPassNames","getCurrentRenderPassName","_RenderPassIdCounter","_removeDrawWrapper","setDepthFunctionToGreater","setDepthFunctionToLess","setDepthFunctionToLessOrEqual","stencilMask","stencilFuncRef","stencilFuncMask","stencilOpStencilFail","stencilOpDepthFail","stencilOpStencilDepthPass","_cachedStencilBuffer","_cachedStencilFunction","_cachedStencilMask","_cachedStencilOperationPass","_cachedStencilOperationFail","_cachedStencilOperationDepthFail","_cachedStencilReference","setAlphaBlendConstants","getAlphaMode","getAlphaEquation","ONE_MINUS_SRC_ALPHA","SRC_ALPHA","ONE_MINUS_SRC_COLOR","DST_COLOR","CONSTANT_COLOR","ONE_MINUS_CONSTANT_COLOR","CONSTANT_ALPHA","ONE_MINUS_CONSTANT_ALPHA","DST_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_DST_ALPHA","TEXTURE_CUBE_MAP","face","LINEAR","LINEAR_MIPMAP_LINEAR","TEXTURE_MAX_LEVEL","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Z","_glSRGBExtensionValues","SRGB8_ALPHA8","RGBA","texelFormat","_prepareWorkingCanvas","_currentBoundBuffer","ELEMENT_ARRAY_BUFFER","bindIndexBuffer","bufferData","DYNAMIC_DRAW","_resetIndexBufferBinding","bufferSubData","ARRAY_BUFFER","_resetVertexBufferBinding","pixelStorei","UNPACK_PREMULTIPLY_ALPHA_WEBGL","createMultiviewUbo","TEXTURE_2D_ARRAY","texStorage3D","RGBA8","bindMultiviewFramebuffer","_multiviewTexture","multiviewTexture","framebufferTextureMultisampleMultiviewOVR","framebufferTextureMultiviewOVR","_spaceWarpTexture","spaceWarpTexture","_resizeOrCreateMultiviewTexture","MultiviewRenderTarget","currentCreateSceneUniformBuffer","createSceneUniformBuffer","_multiviewSceneUbo","_createMultiviewUbo","_updateMultiviewUbo","viewR","projectionR","GetRightPlaneToRef","_renderMultiviewToSingleView","_renderForCamera","_activeCamera","_finalizeFrame","minLODIndex","maxLODIndex","mipmapIndex","glTextureFromLod","isDDS","DDSTools","UploadDDSLevels","lodTexture","_lodTextureHigh","_lodTextureMid","_lodTextureLow","_makeCreateRawTextureFunction","TEXTURE_3D","_makeUpdateRawTextureFunction","internalType","internalSizedFomat","UNPACK_ALIGNMENT","compressedTexImage3D","compressedTexImage2D","RGB","HALF_FLOAT_OES","HALF_FLOAT","_dummyFramebuffer","dummy","readType","WebGLRenderTargetWrapper","_currentLOD","_cloneRenderTargetWrapper","rtw","_swapRenderTargetWrapper","currentFrameBuffer","framebufferRenderbuffer","RENDERBUFFER","STENCIL_ATTACHMENT","depthbuffer","_bindTextureRenderTarget","attachmentIndex","faceIndexOrLayer","currentFB","framebufferTextureLayer","msaaRenderBuffer","getMSAARenderBuffer","_getInternalFormatFromDepthTextureFormat","_getTextureTarget","samplingParameters","TEXTURE_COMPARE_FUNC","TEXTURE_COMPARE_MODE","COMPARE_REF_TO_TEXTURE","WebGLDataBuffer","bindUniformBuffer","UNIFORM_BUFFER","STATIC_DRAW","bindBuffer","uniformLocation","getUniformBlockIndex","uniformBlockBinding","ShaderCodeNode","preprocessors","lineProcessor","attributeKeyword","varyingKeyword","lookForClosingBracketForUniformBuffer","uniformBufferRegexp","endOfUniformBufferProcessor","additionalDefineKey","additionalDefineValue","ShaderCodeCursor","canRead","trimmedLine","semicolonIndex","ShaderCodeConditionNode","ShaderCodeTestNode","testExpression","isTrue","ShaderDefineExpression","postfixToInfix","postfix","_OperatorPriority","infixToPostfix","infix","cacheItem","_InfixToPostfixCache","accessTime","stackIdx","pushOperand","operand","_Stack","InfixToPostfixCacheLimitSize","ClearCache","sortedCache","InfixToPostfixCacheCleanupSize","ShaderDefineIsDefinedOperator","ShaderDefineOrOperator","leftOperand","rightOperand","ShaderDefineAndOperator","ShaderDefineArithmeticOperator","testValue","regexSE","regexSERevert","regexShaderInclude","regexShaderDecl","regexLightX","regexX","reusableMatches","_MoveCursorRegex","_ProcessIncludes","codeWithIncludes","migratedCode","_ProcessShaderConversion","preparedSourceCode","_ProcessPrecision","_PreparePreProcessors","_EvaluatePreProcessors","drawBuffersExtensionDisabled","_ApplyPreProcessing","_ExtractOperation","operators","indexOperator","_BuildExpression","_BuildSubExpression","_MoveCursorWithinIf","ifNode","_MoveCursor","first5","elseNode","elifNode","newRootNode","newNode","GL_ES","__VERSION__","useExactSrgbConversions","keepProcessing","includeFile","_functionContainer","includeContent","splits","indexString","indexSplits","minIndex","maxIndex","sourceIncludeContent","newParts","splitPart","onProgress","WebGL2ShaderProcessor","_webGLTexture","_MSAARenderBuffers","WebGLPipelineContext","vertexCompilationError","fragmentCompilationError","programLinkError","programValidationError","isParallelCompiled","_isRenderingStateCompiled","_getShaderSource","_gpuTimeInFrameId","_fetchResult","EngineFunctionContext","injectedLoadFile","IS_NDC_HALF_ZRANGE","USE_REVERSE_DEPTHBUFFER","USE_EXACT_SRGB_CONVERSIONS","sizeOrDstBuffer","copyBuffer","QueueNewFrame","_emptyTexture","_emptyCubeTexture","_emptyTexture3D","_emptyTexture2DArray","_useReverseDepthBuffer","useReverse","_colorWriteChanged","alphaState","stencilStateComposer","_rebuildInternalTextures","_rebuildRenderTargetWrappers","_rebuildEffects","_rebuildTextures","activeRenderLoops","_activeRenderLoops","stopRenderLoop","renderFunction","_cancelFrame","_frameHandler","handlerToCancel","_renderLoop","renderEvenInBackground","_windowIsBackground","_boundRenderFunction","runRenderLoop","getDepthBuffer","_releaseRenderTargetWrapper","currentViewport","prepareTexture","prepareTextureProcess","fromBlob","_originalUrl","loadFailed","decoding","_FileToolsLoadImage","imageOrientation","_rebuildAfterContextLost","_shouldUseHighPrecisionShader","_highPrecisionShadersAllowed","IsDocumentAvailable","getLoadedTexturesCache","clearInternalTexturesCache","_currentTextureChannel","NpmPackage","getAudioContext","getAudioDestination","getCreationOptions","StencilState","AlphaState","_activeRequests","_badDesktopOS","onCanvasFocusObservable","onCanvasPointerOutObservable","disablePerformanceMonitorInBackground","disableVertexArrayObjects","enableOfflineSupport","disableContextMenu","onBeforeTextureInitObservable","_deterministicLockstep","_lockstepMaxSteps","_timeStep","Instances","PerformanceConfigurator","SetMatrixPrecision","useHighPrecisionMatrix","deterministicLockstep","lockstepMaxSteps","timeStep","audioEngineOptions","limitDeviceRatio","changeRatio","boundingRect","camIndex","_checkForMobile","currentUA","isDeterministicLockStep","getLockstepMaxSteps","_CreateCanvas","OffscreenCanvas","imageBitmapOptions","onCompleteObservable","_FileToolsLoadFile","OnEnginesDisposedObservable","MarkAllMaterialsAsDirty","engineIndex","_RescalePostProcessFactory","Constants","AUTOSAMPLERSUFFIX","DISABLEUA","ALPHA_ONEONE_ONEONE","ALPHA_ALPHATOCOLOR","ALPHA_REVERSEONEMINUS","ALPHA_SRC_DSTONEMINUSSRCALPHA","ALPHA_ONEONE_ONEZERO","ALPHA_EXCLUSION","ALPHA_LAYER_ACCUMULATE","ALPHA_EQUATION_ADD","ALPHA_EQUATION_SUBSTRACT","ALPHA_EQUATION_REVERSE_SUBTRACT","ALPHA_EQUATION_MAX","ALPHA_EQUATION_MIN","ALPHA_EQUATION_DARKEN","DELAYLOADSTATE_NONE","DELAYLOADSTATE_LOADED","DELAYLOADSTATE_LOADING","DELAYLOADSTATE_NOTLOADED","NEVER","ALWAYS","LESS","EQUAL","LEQUAL","GREATER","GEQUAL","NOTEQUAL","KEEP","REPLACE","INCR","DECR","INVERT","INCR_WRAP","DECR_WRAP","TEXTURE_CLAMP_ADDRESSMODE","TEXTURE_WRAP_ADDRESSMODE","TEXTURE_MIRROR_ADDRESSMODE","TEXTURE_CREATIONFLAG_STORAGE","TEXTUREFORMAT_ALPHA","TEXTUREFORMAT_LUMINANCE_ALPHA","TEXTUREFORMAT_RED","TEXTUREFORMAT_R","TEXTUREFORMAT_RG","TEXTUREFORMAT_RED_INTEGER","TEXTUREFORMAT_R_INTEGER","TEXTUREFORMAT_RG_INTEGER","TEXTUREFORMAT_RGB_INTEGER","TEXTUREFORMAT_RGBA_INTEGER","TEXTUREFORMAT_BGRA","TEXTUREFORMAT_DEPTH24_STENCIL8","TEXTUREFORMAT_DEPTH32_FLOAT","TEXTUREFORMAT_DEPTH16","TEXTUREFORMAT_DEPTH24","TEXTUREFORMAT_DEPTH24UNORM_STENCIL8","TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8","TEXTUREFORMAT_STENCIL8","TEXTUREFORMAT_UNDEFINED","TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM","TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM","TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT","TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT","TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5","TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3","TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1","TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1","TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT","TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT","TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4","TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL","TEXTUREFORMAT_COMPRESSED_RGB8_ETC2","TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2","TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2","TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC","TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","TEXTURETYPE_UNSIGNED_BYTE","TEXTURETYPE_UNSIGNED_INT","TEXTURETYPE_FLOAT","TEXTURETYPE_HALF_FLOAT","TEXTURETYPE_BYTE","TEXTURETYPE_SHORT","TEXTURETYPE_UNSIGNED_SHORT","TEXTURETYPE_INT","TEXTURETYPE_UNSIGNED_INTEGER","TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4","TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1","TEXTURETYPE_UNSIGNED_SHORT_5_6_5","TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV","TEXTURETYPE_UNSIGNED_INT_24_8","TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV","TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV","TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV","TEXTURETYPE_UNDEFINED","TEXTURE_CUBE_MAP_ARRAY","TEXTURE_NEAREST_SAMPLINGMODE","TEXTURE_BILINEAR_SAMPLINGMODE","TEXTURE_TRILINEAR_SAMPLINGMODE","TEXTURE_EXPLICIT_MODE","TEXTURE_SPHERICAL_MODE","TEXTURE_PLANAR_MODE","TEXTURE_CUBIC_MODE","TEXTURE_PROJECTION_MODE","TEXTURE_SKYBOX_MODE","TEXTURE_INVCUBIC_MODE","TEXTURE_EQUIRECTANGULAR_MODE","TEXTURE_FIXED_EQUIRECTANGULAR_MODE","TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE","TEXTURE_FILTERING_QUALITY_OFFLINE","TEXTURE_FILTERING_QUALITY_HIGH","TEXTURE_FILTERING_QUALITY_MEDIUM","TEXTURE_FILTERING_QUALITY_LOW","SCALEMODE_FLOOR","SCALEMODE_NEAREST","SCALEMODE_CEILING","MATERIAL_TextureDirtyFlag","MATERIAL_LightDirtyFlag","MATERIAL_FresnelDirtyFlag","MATERIAL_AttributesDirtyFlag","MATERIAL_MiscDirtyFlag","MATERIAL_PrePassDirtyFlag","MATERIAL_AllDirtyFlag","MATERIAL_TriangleFillMode","MATERIAL_WireFrameFillMode","MATERIAL_PointFillMode","MATERIAL_PointListDrawMode","MATERIAL_LineListDrawMode","MATERIAL_LineLoopDrawMode","MATERIAL_LineStripDrawMode","MATERIAL_TriangleStripDrawMode","MATERIAL_TriangleFanDrawMode","MATERIAL_ClockWiseSideOrientation","MATERIAL_CounterClockWiseSideOrientation","ACTION_NothingTrigger","ACTION_OnPickTrigger","ACTION_OnLeftPickTrigger","ACTION_OnRightPickTrigger","ACTION_OnCenterPickTrigger","ACTION_OnPickDownTrigger","ACTION_OnDoublePickTrigger","ACTION_OnPickUpTrigger","ACTION_OnPickOutTrigger","ACTION_OnLongPressTrigger","ACTION_OnPointerOverTrigger","ACTION_OnPointerOutTrigger","ACTION_OnEveryFrameTrigger","ACTION_OnIntersectionEnterTrigger","ACTION_OnIntersectionExitTrigger","ACTION_OnKeyDownTrigger","ACTION_OnKeyUpTrigger","PARTICLES_BILLBOARDMODE_Y","PARTICLES_BILLBOARDMODE_ALL","PARTICLES_BILLBOARDMODE_STRETCHED","PARTICLES_BILLBOARDMODE_STRETCHED_LOCAL","MESHES_CULLINGSTRATEGY_STANDARD","MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY","MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION","MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY","SCENELOADER_NO_LOGGING","SCENELOADER_MINIMAL_LOGGING","SCENELOADER_SUMMARY_LOGGING","SCENELOADER_DETAILED_LOGGING","PREPASS_IRRADIANCE_TEXTURE_TYPE","PREPASS_POSITION_TEXTURE_TYPE","PREPASS_VELOCITY_TEXTURE_TYPE","PREPASS_REFLECTIVITY_TEXTURE_TYPE","PREPASS_COLOR_TEXTURE_TYPE","PREPASS_DEPTH_TEXTURE_TYPE","PREPASS_NORMAL_TEXTURE_TYPE","PREPASS_ALBEDO_SQRT_TEXTURE_TYPE","PREPASS_WORLD_NORMAL_TEXTURE_TYPE","PREPASS_LOCAL_POSITION_TEXTURE_TYPE","PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE","PREPASS_VELOCITY_LINEAR_TEXTURE_TYPE","PREPASS_ALBEDO_TEXTURE_TYPE","BUFFER_CREATIONFLAG_READ","BUFFER_CREATIONFLAG_WRITE","BUFFER_CREATIONFLAG_READWRITE","BUFFER_CREATIONFLAG_UNIFORM","BUFFER_CREATIONFLAG_VERTEX","BUFFER_CREATIONFLAG_INDEX","BUFFER_CREATIONFLAG_STORAGE","BUFFER_CREATIONFLAG_INDIRECT","RENDERPASS_MAIN","INPUT_ALT_KEY","INPUT_CTRL_KEY","INPUT_META_KEY1","INPUT_META_KEY2","INPUT_META_KEY3","INPUT_SHIFT_KEY","SNAPSHOTRENDERING_STANDARD","SNAPSHOTRENDERING_FAST","MAX_SUPPORTED_UV_SETS","GL_ALPHA_EQUATION_ADD","GL_ALPHA_EQUATION_MIN","GL_ALPHA_EQUATION_MAX","GL_ALPHA_EQUATION_SUBTRACT","GL_ALPHA_EQUATION_REVERSE_SUBTRACT","GL_ALPHA_FUNCTION_SRC","GL_ALPHA_FUNCTION_ONE_MINUS_SRC_COLOR","GL_ALPHA_FUNCTION_SRC_ALPHA","GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA","GL_ALPHA_FUNCTION_DST_ALPHA","GL_ALPHA_FUNCTION_ONE_MINUS_DST_ALPHA","GL_ALPHA_FUNCTION_DST_COLOR","GL_ALPHA_FUNCTION_ONE_MINUS_DST_COLOR","GL_ALPHA_FUNCTION_SRC_ALPHA_SATURATED","GL_ALPHA_FUNCTION_CONSTANT_COLOR","GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_COLOR","GL_ALPHA_FUNCTION_CONSTANT_ALPHA","GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_ALPHA","GL_ALPHA_FUNCTION_SRC1_COLOR","GL_ALPHA_FUNCTION_ONE_MINUS_SRC1_COLOR","GL_ALPHA_FUNCTION_SRC1_ALPHA","GL_ALPHA_FUNCTION_ONE_MINUS_SRC1_ALPHA","FOGMODE_EXP","FOGMODE_EXP2","FOGMODE_LINEAR","commonEngine","_onCanvasFocus","_onCanvasBlur","_onCanvasContextMenu","_onFocus","_onCanvasPointerOut","doNotHandleTouchAction","_DisableTouchAction","verticalAlign","div","fontAscent","fontHeight","requestFunction","requestFullscreen","webkitRequestFullscreen","anyDoc","webkitCancelFullScreen","exitPointerLock","_supportsHardwareTextureRescaling","canvasOrContext","customAnimationFrameRequester","_initGLContext","_rescalePostProcess","DITHER","RASTERIZER_DISCARD","setDirectViewport","scissorClear","SCISSOR_TEST","scissor","getVertexShaderSource","shaders","getAttachedShaders","getShaderSource","getFragmentShaderSource","framebufferDimensionsObject","_framebufferDimensionsObject","_rebuildGeometries","requestID","webGLPipelineContext","_createShaderProgram","shaderProgram","attachShader","linkProgram","_finalizePipelineContext","_outputTexture","_rescaleTexture","hostingScene","copyTexImage2D","onEffectCreatedObservable","bindTarget","createInstancesBuffer","deleteInstancesBuffer","deleteBuffer","_clientWaitAsync","sync","intervalms","clientWaitSync","WAIT_FAILED","TIMEOUT_EXPIRED","_readPixelsAsync","outputBuffer","PIXEL_PACK_BUFFER","STREAM_READ","fenceSync","SYNC_GPU_COMMANDS_COMPLETE","deleteSync","_LastCreatedScene","use64bits","MatrixTrackPrecisionChange","MatrixUse64Bits","MatrixTrackedMatrices","_m","MatrixCurrentType","depthStencilTextureWithStencil","_isMulti","_faceIndices","_layerIndices","_depthStencilTextureLabel","_swapAndDie","lastTextureSource","internalTexture2Index","ShadersRepository","ShadersRepositoryWGSL","_stateObject","singleStateObject","cachedPipelines","getStateObject","TEXTURE_BINDING_3D","deleteStateObject","_createShaderProgramInjection","_compileRawShader","validateShaderPrograms","_compileShader","_shaderProcessingContext","getProgramParameter","LINK_STATUS","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","getProgramInfoLog","validateProgram","VALIDATE_STATUS","deleteShader","rebuildRebind","createRawShaderProgramInjection","createShaderProgramInjection","webGLRenderingState","__SPECTOR_rebuildProgram","createShader","VERTEX_SHADER","FRAGMENT_SHADER","NO_ERROR","tempError","isContextLost","shaderSource","compileShader","useProgram","WebGLShaderProcessor","BufferPointer","forcePOTTextures","_vertexAttribArraysEnabled","_uintIndicesCurrentlySet","_currentBufferPointers","_currentInstanceLocations","_currentInstanceBuffers","_vaoRecordInProgress","_mustWipeVertexAttributes","_nextFreeTextureSlots","_maxSimultaneousTextures","_maxMSAASamplesOverride","_unpackFlipYCached","enableUnpackFlipYCached","preserveDrawingBuffer","xrCompatible","ua","ExceptionList","captureConstraint","constraint","_onContextLost","_onContextRestored","powerPreference","disableWebGL2Support","getContextAttributes","UNPACK_COLORSPACE_CONVERSION_WEBGL","useHighPrecisionFloats","_initFeatures","versionToLog","MAX_TEXTURE_IMAGE_UNITS","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_SIZE","maxSamples","MAX_SAMPLES","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_RENDERBUFFER_SIZE","MAX_VERTEX_ATTRIBS","MAX_VARYING_VECTORS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_VERTEX_UNIFORM_VECTORS","getExtension","s3tc_srgb","textureAnisotropicFilterExtension","MAX_ARRAY_TEXTURE_LAYERS","_glVersion","rendererInfo","_glRenderer","UNMASKED_RENDERER_WEBGL","_glVendor","UNMASKED_VENDOR_WEBGL","VENDOR","RGBA16F","RGBA32F","getQuery","getQueryEXT","QUERY_COUNTER_BITS_EXT","MAX_TEXTURE_MAX_ANISOTROPY_EXT","_canRenderToFloatFramebuffer","COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT","COMPRESSED_SRGB_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","COMPRESSED_SRGB8_ETC2","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","_canRenderToHalfFloatFramebuffer","MAX_DRAW_BUFFERS","drawBuffersWEBGL","MAX_DRAW_BUFFERS_WEBGL","UNSIGNED_INT_24_8_WEBGL","vertexArrayObjectExtension","createVertexArrayOES","bindVertexArray","bindVertexArrayOES","deleteVertexArray","deleteVertexArrayOES","instanceExtension","drawArraysInstanced","drawArraysInstancedANGLE","drawElementsInstanced","drawElementsInstancedANGLE","vertexAttribDivisor","vertexAttribDivisorANGLE","getShaderPrecisionFormat","vertexhighp","HIGH_FLOAT","fragmenthighp","blendMinMaxExtension","MAX","MAX_EXT","MIN","MIN_EXT","SRGB","WebGL2RenderingContext","SRGB8","sRGBExtension","SRGB_EXT","SRGB_ALPHA_EXT","forceSRGBBufferSupportState","getGlInfo","glInfo","drawingBufferWidth","drawingBufferHeight","useStencilGlobalOnly","setBackBufferColor","_TempClearColorUint32","clearBufferuiv","COLOR","_TempClearColorInt32","clearBufferiv","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","webglRTWrapper","CW","CCW","_createVertexBuffer","vbo","_unbindVertexArrayObject","_bindBuffer","updateArrayBuffer","_vertexAttribPointer","indx","vertexAttribIPointer","vertexAttribPointer","_bindIndexBufferWithCache","_bindVertexBuffersAttributes","unbindAllAttributes","enableVertexAttribArray","_cachedVertexArrayObject","vertexDeclaration","vertexStrideSize","attributesCount","getAttributesCount","boundBuffer","offsetLocations","bindInstancesBuffer","offsetLocation","attributesInfo","computeStride","attributeSize","getAttributeLocationByName","disableInstanceAttributeByName","disableInstanceAttribute","shouldClean","disableAttributeByIndex","disableVertexAttribArray","useTriangles","drawPointClouds","drawUnIndexed","drawMode","_drawMode","indexFormat","drawElements","drawArrays","LINES","LINE_LOOP","LINE_STRIP","TRIANGLE_STRIP","TRIANGLE_FAN","deleteProgram","loadFileInjection","getUniformLocation","getAttribLocation","uniform1i","uniform2i","uniform3i","uniform4i","uniform1iv","uniform2iv","uniform3iv","uniform4iv","uniform1ui","uniform2ui","uniform3ui","uniform4ui","uniform1uiv","uniform2uiv","uniform3uiv","uniform4uiv","uniform1fv","uniform2fv","uniform3fv","uniform4fv","uniformMatrix4fv","uniformMatrix3fv","uniformMatrix2fv","uniform1f","uniform2f","uniform3f","uniform4f","colorMask","LINEAR_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","sizedFormat","_prepareWebGLTexture","potWidth","potHeight","continuationCallback","isPot","tip","_getTexImageParametersForCreateTexture","babylonFormat","UNPACK_FLIP_Y_WEBGL","_setTextureParameterInteger","_getTextureWrapMode","TEXTURE_WRAP_R","targetForBinding","texSubImage2D","_prepareWebGLTextureContinuation","hasDepth","STENCIL_INDEX8","msInternalFormat","unbindBuffer","createRenderbuffer","_updateRenderBuffer","bindRenderbuffer","renderbufferStorage","_activateCurrentTexture","TEXTURE0","forTextureDataUpdate","isTextureForRendering","_associatedChannel","_bindSamplerUniformToChannel","sourceSlot","_currentState","REPEAT","MIRRORED_REPEAT","videoInternalTexture","needToBind","_textureUnits","anisotropicFilterExtension","_setTextureParameterFloat","TEXTURE_MAX_ANISOTROPY_EXT","texParameterf","loseContextOnDispose","loseContext","attachContextLostEvent","attachContextRestoredEvent","_canRenderToFramebuffer","successful","fb","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","readFormat","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","UNSIGNED_INT_2_10_10_10_REV","UNSIGNED_INT_10F_11F_11F_REV","UNSIGNED_INT_5_9_9_9_REV","ALPHA","LUMINANCE","LUMINANCE_ALPHA","RED","RG","RED_INTEGER","RG_INTEGER","RGB_INTEGER","RGBA_INTEGER","R8_SNORM","RG8_SNORM","RGB8_SNORM","R8I","RG8I","RGB8I","RGBA8I","RGBA8_SNORM","R8","RG8","RGB8","R8UI","RG8UI","RGB8UI","RGBA8UI","R16I","RG16I","RGB16I","RGBA16I","R16UI","RG16UI","RGB16UI","RGBA16UI","R32I","RG32I","RGB32I","RGBA32I","R32UI","RG32UI","RGB32UI","RGBA32UI","R32F","RG32F","RGB32F","R16F","RG16F","RGB16F","RGB565","R11F_G11F_B10F","RGB9_E5","RGBA4","RGB5_A1","RGB10_A2","RGB10_A2UI","_HasMajorPerformanceCaveat","_IsSupported","tempcanvas","WebGLRenderingContext","HasMajorPerformanceCaveat","failIfMajorPerformanceCaveat","ClipboardEventTypes","COPY","CUT","PASTE","ClipboardInfo","GetTypeFromCharacter","KEYUP","KeyboardInfo","KeyboardInfoPre","skipOnPointerObservable","skipOnKeyboardObservable","POINTERPICK","POINTERTAP","PointerInfoBase","PointerInfoPre","localX","localY","originalPickingInfo","PointerInfo","_pickInfo","_generatePickInfo","inputManager","_pickMove","_setRayOnPointerInfo","FlowGraphConstantOperationBlock","FlowGraphCachedOperationBlock","richType","_operation","_className","_doOperation","FlowGraphTernaryOperationBlock","t1Type","t2Type","t3Type","resultRichType","_getClassNameOf","_areSameVectorClass","className2","_areSameMatrixClass","_areSameIntegerClass","FlowGraphAddBlock","_polymorphicAdd","aClassName","bClassName","FlowGraphSubtractBlock","FlowGraphMultiplyBlock","_polymorphicMultiply","FlowGraphDivideBlock","_polymorphicDivide","FlowGraphRandomBlock","FlowGraphDotBlock","_polymorphicDot","FlowGraphEBlock","FlowGraphPiBlock","FlowGraphInfBlock","FlowGraphNaNBlock","_componentWiseUnaryOperation","FlowGraphInteger","FlowGraphAbsBlock","_polymorphicAbs","FlowGraphSignBlock","_polymorphicSign","FlowGraphTruncBlock","_polymorphicTrunc","FlowGraphFloorBlock","_polymorphicFloor","FlowGraphCeilBlock","_polymorphicCeiling","FlowGraphFractBlock","_polymorphicFract","FlowGraphNegBlock","_polymorphicNeg","_componentWiseBinaryOperation","FlowGraphRemainderBlock","_polymorphicRemainder","FlowGraphMinBlock","_polymorphicMin","FlowGraphMaxBlock","_polymorphicMax","_clamp","_componentWiseTernaryOperation","FlowGraphClampBlock","_polymorphicClamp","_saturate","FlowGraphSaturateBlock","_polymorphicSaturate","FlowGraphInterpolateBlock","_polymorphicInterpolate","FlowGraphEqBlock","_polymorphicEq","_comparisonOperators","FlowGraphLessThanBlock","_polymorphicLessThan","FlowGraphLessThanOrEqualBlock","_polymorphicLessThanOrEqual","FlowGraphGreaterThanBlock","_polymorphicGreaterThan","FlowGraphGreaterThanOrEqualBlock","_polymorphicGreaterThanOrEqual","FlowGraphIsNanBlock","_polymorphicIsNan","FlowGraphIsInfBlock","_polymorphicIsInf","FlowGraphDegToRadBlock","_polymorphicDegToRad","_degToRad","FlowGraphRadToDegBlock","_polymorphicRadToDeg","_radToDeg","FlowGraphSinBlock","_polymorphicSin","FlowGraphCosBlock","_polymorphicCos","FlowGraphTanBlock","_polymorphicTan","FlowGraphAsinBlock","_polymorphicAsin","FlowGraphAcosBlock","_polymorphicAcos","FlowGraphAtanBlock","_polymorphicAtan","FlowGraphAtan2Block","_polymorphicAtan2","FlowGraphSinhBlock","_polymorphicSinh","sinh","FlowGraphCoshBlock","_polymorphicCosh","cosh","FlowGraphTanhBlock","_polymorphicTanh","tanh","FlowGraphAsinhBlock","_polymorphicAsinh","asinh","FlowGraphAcoshBlock","_polymorphicAcosh","acosh","FlowGraphAtanhBlock","_polymorphicAtanh","atanh","FlowGraphExpBlock","_polymorphicExp","FlowGraphLogBlock","_polymorphicLog","FlowGraphLog2Block","_polymorphicLog2","FlowGraphLog10Block","_polymorphicLog10","log10","FlowGraphSqrtBlock","_polymorphicSqrt","FlowGraphCubeRootBlock","_polymorphicCubeRoot","cbrt","FlowGraphPowBlock","_polymorphicPow","FlowGraphLengthBlock","_polymorphicLength","FlowGraphNormalizeBlock","_polymorphicNormalize","FlowGraphCrossBlock","FlowGraphRotate2DBlock","RichTypeVector2","FlowGraphRotate3DBlock","FlowGraphTransposeBlock","RichTypeMatrix","Transpose","FlowGraphDeterminantBlock","FlowGraphInvertMatrixBlock","Invert","FlowGraphMatMulBlock","FlowGraphBitwiseNotBlock","RichTypeFlowGraphInteger","FlowGraphBitwiseAndBlock","FlowGraphBitwiseOrBlock","FlowGraphBitwiseXorBlock","FlowGraphBitwiseLeftShiftBlock","FlowGraphBitwiseRightShiftBlock","FlowGraphCountLeadingZerosBlock","clz32","FlowGraphCountTrailingZerosBlock","FlowGraphCountOneBitsBlock","_countOnes","leftRichType","rightRichType","cacheName","cacheExecIdName","outputRichType","cachedExecutionId","cachedValue","executionId","calculatedValue","FlowGraphGetPropertyBlock","templateComponent","accessorContainer","FlowGraphGetVariableBlock","variableNameValue","hasVariable","getVariable","inputRichType","FlowGraphMeshPickEventBlock","FlowGraphEventBlock","_getReferencedMesh","iAccessor","pickObserver","_isADescendantOf","disposeObserver","_onDispose","FlowGraphReceiveCustomEventBlock","getCustomEventObservable","_eventObserver","eventDatas","dataOutputs","FlowGraphSceneReadyEventBlock","contextObserver","onReadyObservable","FlowGraphSceneTickEventBlock","FlowGraphDoNBlock","currentCountValue","FlowGraphSequenceBlock","FlowGraphTimerBlock","currentTimeout","timers","AdvancedTimer","contextObservable","onEnded","_onEnded","FlowGraphWhileLoopBlock","loopBody","conditionValue","isDo","FlowGraphConsoleLogBlock","messageValue","FlowGraphSendCustomEventBlock","dataInputs","notifyCustomEvent","FlowGraphSetPropertyBlock","FlowGraphSetVariableBlock","setVariable","FlowGraph","_eventBlocks","_executionContexts","_coordinator","_sceneDisposeObserver","createContext","FlowGraphContext","addEventBlock","contextualOrder","_getContextualOrder","block1","mesh1","mesh2","_clearPendingBlocks","visitAllBlocks","visitList","idsAddedToVisitList","dataIn","signalOut","signalOutputs","allBlocks","serializedBlock","executionContexts","serializedContext","GetDataOutConnectionByUniqueId","dataOut","GetSignalInConnectionByUniqueId","signalIn","signalInputs","graph","createGraph","valueParseFunction","defaultValueParseFunction","serializedConnection","connectedPointIds","_addPendingBlock","FlowGraphDataConnection","getDataInput","getDataOutput","_valueSerializeFunction","serializedInput","serializedOutput","parseOptions","classType","Instantiate","parsedConfig","needsPathConverter","dataInput","deserialize","dataOutput","FlowGraphConnection","_connectionType","connectionType","_isSingularConnection","_userVariables","_executionVariables","_connectionValues","_pendingBlocks","_executionId","onNodeExecutedObservable","_configuration","userVariables","_getUniqueIdPrefixedName","_hasConnectionValue","_setConnectionValue","_getConnectionValue","_notifyExecuteNode","_increaseExecutionId","valueSerializationFunction","FlowGraphCoordinator","_flowGraphs","_customEventsMap","SceneCoordinators","removeGraph","coordinators","serializedGraph","serializedObject","flowGraphs","_getValueOrDefault","RichType","FlowGraphSignalConnection","getSignalInput","getSignalOutput","signalInput","signalOutput","_toInt","pathHasTemplatesRegex","templatedInputs","matchGroup","finalPath","templatedInput","valueToReplace","RichTypeString","RichTypeVector4","RichTypeColor3","RichTypeColor4","RichTypeQuaternion","isMeshClassName","isVectorClassName","intermediateValue","parseVector","NodeRenderGraphConnectionPoint","inputConnectionPoint","outputConnectionPoint","typeConnectionSource","IsCullPass","_objectList","parentTask","_parentTask","_executeFunc","IsRenderPass","renderTargetDepth","_renderTargetDepth","_usedTextures","_depthShared","_passes","_passesDisabled","errMsg","disabledOutputObjectList","disabledOutputTexture","disabledOutputTextureHandle","disabledOutputDepthTexture","DualShockPad","_leftTrigger","_rightTrigger","onButtonDownObservable","onButtonUpObservable","onPadDownObservable","onPadUpObservable","_buttonCross","_buttonCircle","_buttonSquare","_buttonTriangle","_buttonShare","_buttonOptions","_buttonL1","_buttonR1","_buttonLeftStick","_buttonRightStick","_dPadUp","_dPadDown","_dPadLeft","_dPadRight","DUALSHOCK","onlefttriggerchanged","_onlefttriggerchanged","onrighttriggerchanged","_onrighttriggerchanged","leftTrigger","rightTrigger","_onbuttondown","_onbuttonup","ondpaddown","_ondpaddown","ondpadup","_ondpadup","_setButtonValue","buttonType","_setDPadValue","buttonCross","buttonCircle","buttonSquare","buttonTriangle","buttonOptions","buttonShare","buttonL1","buttonR1","buttonLeftStick","buttonRightStick","dPadUp","dPadDown","dPadLeft","dPadRight","browserGamepad","_isConnected","leftStickX","leftStickY","rightStickX","rightStickY","_leftStick","_rightStick","_invertLeftStickY","GAMEPAD","_leftStickAxisX","_leftStickAxisY","_rightStickAxisX","_rightStickAxisY","_onleftstickchanged","_onrightstickchanged","newValues","GENERIC","GenericPad","_buttons","buttonIndex","GamepadManager","_babylonGamepads","_oneGamepadConnected","_isMonitoring","_gamepadEventSupported","_gamepadSupport","_onGamepadConnectedEvent","newGamepad","_addNewGamepad","_startMonitoringGamepads","_onGamepadDisconnectedEvent","disconnectedGamepad","_updateGamepadObjects","_stopMonitoringGamepads","dualShock","xboxOne","Xbox360Pad","_checkGamepadsStatus","_loggedErrors","_gamepadManager","NAME_GAMEPAD","GamepadSystemSceneComponent","_buttonA","_buttonB","_buttonX","_buttonY","_buttonBack","_buttonStart","_buttonLB","_buttonRB","_isXboxOnePad","buttonA","buttonB","buttonX","buttonY","buttonStart","buttonBack","buttonLB","buttonRB","Gizmo","scaleRatio","_scaleRatio","_isHovered","attachedMesh","_attachedMesh","_attachedNode","_attachedNodeChanged","setCustomMesh","gizmoLayer","utilityLayerScene","_customMeshSet","additionalTransformNode","_additionalTransformNode","updateGizmoRotationToMatchAttachedMesh","_updateGizmoRotationToMatchAttachedMesh","updateGizmoPositionToMatchAttachedMesh","_updateGizmoPositionToMatchAttachedMesh","anchorPoint","_anchorPoint","_coordinatesMode","_updateScale","UtilityLayerRenderer","DefaultUtilityLayer","_customRotationQuaternion","_rightHandtoLeftHandMatrix","customRotationQuaternion","effectiveNode","PreserveScaling","camForward","_handlePivotMatrixInverse","isUsingPivotMatrix","isUsingPostMultiplyPivotMatrix","getPivotMatrix","_matrixChanged","worldMatrixUC","parentInv","localMat","matrixToDecompose","UseAbsoluteScaling","rotationMatrix","pivotMatrix","invPivotMatrix","scalingDeterminant","invParent","boneLocalMatrix","LIGHTTYPEID_DIRECTIONALLIGHT","LIGHTTYPEID_POINTLIGHT","nodeLocalMatrix","_setGizmoMeshMaterial","gizmoMeshes","GizmoAxisPointerObserver","gizmoAxisCache","colliderMeshes","dragBehavior","hoverMaterial","disableMaterial","PlaneRotationGizmo","coloredMaterial","_coloredMaterial","_hoverMaterial","rotationColor","_rotationShaderMaterial","_disableMaterial","Gray","useEulerRotation","hoverColor","Yellow","disableColor","snapDistance","onSnapObservable","sensitivity","_angles","_gizmoMesh","rotationMesh","_createGizmoMesh","_rotationDisplayPlane","rotationGizmoVertexShader","_RotationGizmoVertexShader","rotationGizmoFragmentShader","_RotationGizmoFragmentShader","MaxDragAngle","planeNormalTowardsCamera","localPlaneNormalTowardsCamera","tmpSnapEvent","currentSnapDragDistance","amountToRotate","nodeScale","nodeQuaternion","nodeTranslation","nodeTranslationForOperation","newVector","originalVector","cameraFlipped","camVec","snapped","dragSteps","quaternionCoefficient","_getSharedGizmoLight","includedOnlyMeshes","addToAxisCache","parentMesh","matl","EnvironmentHelper","createGround","groundSize","groundTexture","_GroundTextureCDNUrl","groundColor","toLinearSpace","groundOpacity","enableGroundShadow","groundShadowLevel","enableGroundMirror","groundMirrorSizeRatio","groundMirrorBlurKernel","groundMirrorAmount","groundMirrorFresnelWeight","groundMirrorFallOffDistance","groundMirrorTextureType","groundYBias","createSkybox","skyboxSize","skyboxTexture","_SkyboxTextureCDNUrl","skyboxColor","backgroundYRotation","sizeAuto","rootPosition","setupImageProcessing","_EnvironmentTextureCDNUrl","cameraExposure","cameraContrast","toneMappingEnabled","skybox","_skybox","_skyboxTexture","skyboxMaterial","_skyboxMaterial","_ground","_groundTexture","groundMirror","_groundMirror","groundMirrorRenderList","groundMaterial","_groundMaterial","_errorHandler","_setupBackground","_setupImageProcessing","setMainColor","primaryColor","contrast","_setupEnvironmentTexture","CreateFromPrefilteredData","sceneSize","_getSceneSize","_setupGround","_setupGroundMaterial","_setupGroundDiffuseTexture","_setupGroundMirrorTexture","_setupMirrorInGroundMaterial","_setupSkybox","_setupSkyboxMaterial","_setupSkyboxReflectionTexture","sceneExtends","sceneDiagonal","sceneDiagonalLenght","shadowLevel","useRGBColor","enableNoise","wrapping","MirrorTexture","gammaGround","toGammaSpace","adaptiveBlurKernel","reflectionFresnel","reflectionAmount","reflectionStandardFresnelWeight","reflectionFalloffDistance","createDefaultLight","HemisphericLight","createDefaultCamera","createArcRotateCamera","attachCameraControls","worldSize","worldCenter","freeCamera","createDefaultCameraOrLight","createDefaultSkybox","pbr","setGlobalEnvTexture","hdrSkybox","hdrSkyboxMaterial","PBRMaterial","twoSidedLighting","infiniteDistance","ignoreCameraMaxZ","createDefaultEnvironment","createDefaultVRExperience","WebXRDefaultExperience","helper","_effectLayerOptions","mainTexture","setMaterialForRendering","currentMesh","_materialForRendering","getEffectIntensity","_effectIntensity","setEffectIntensity","disableBoundingBoxesFromEffectLayer","onBeforeRenderMainTextureObservable","onBeforeComposeObservable","onBeforeRenderMeshToEffect","onAfterRenderMeshToEffect","onAfterComposeObservable","_mergeDrawWrapper","_generateIndexBuffer","_generateVertexBuffer","_setMainTextureSize","_createMainTexture","_renderSubMesh","previousAlphaMode","boundingBoxRendererEnabled","_useMeshMaterial","needAlphaTest","_useAlphaFromAlbedoTexture","useVertexColors","transparencyMode","MATERIAL_OPAQUE","morphInfluencers","effectIsReady","_arePostProcessAndMergeReady","numDraws","currentEffect","_disposeTextureAndPostProcesses","needAlphaBlendingForMesh","_shouldRenderEmissiveTextureForMesh","enableAlphaMode","replacementMesh","textureMatrix","resetRefreshCounter","vb","parsedEffectLayer","serializeAsColor4","serializeAsCameraReference","NAME_EFFECTLAYER","effectLayer","removeEffectLayer","addEffectLayer","newEffectLayer","EffectLayerSceneComponent","_renderEffects","_needStencil","_previousStencilState","_isReadyForMeshStage","STEP_ISREADYFORMESH_EFFECTLAYER","_isReadyForMesh","_cameraDrawRenderTargetStage","STEP_CAMERADRAWRENDERTARGET_EFFECTLAYER","_renderMainTexture","STEP_BEFORECAMERADRAW_EFFECTLAYER","_afterRenderingGroupDrawStage","STEP_AFTERRENDERINGGROUPDRAW_EFFECTLAYER_DRAW","_drawRenderingGroup","STEP_AFTERCAMERADRAW_EFFECTLAYER","_setStencilBack","STEP_AFTERCAMERADRAW_EFFECTLAYER_DRAW","_drawCamera","needRebind","_isInIntermediateRendering","getGlowLayerByName","GlowLayer","blurKernelSize","effectiveKernel","_getEffectiveBlurKernelSize","_horizontalBlurPostprocess1","_verticalBlurPostprocess1","_horizontalBlurPostprocess2","_verticalBlurPostprocess2","_includedOnlyMeshes","_meshesUsingTheirOwnMaterials","DefaultTextureRatio","mainTextureSamples","ldrMerge","_blurTexture1","blurTextureWidth2","blurTextureHeight2","_blurTexture2","_postProcesses1","_postProcesses2","internalTexture2","previousStencilBuffer","textureLevel","customEmissiveTextureSelector","customEmissiveColorSelector","emissiveIntensity","addIncludedOnlyMesh","removeIncludedOnlyMesh","referenceMeshToUseItsOwnMaterial","unReferenceMeshFromUsingItsOwnMaterial","getMeshByUniqueId","parsedGlowLayer","DefaultBlurKernelSize","Layer","applyPostProcess","_applyPostProcess","isBackground","onDispose","onBeforeRender","layerComponent","NAME_LAYER","LayerSceneComponent","alphaTest","_previousDefines","STEP_BEFORECAMERADRAW_LAYER","_drawCameraBackground","STEP_AFTERCAMERADRAW_LAYER","_drawCameraForegroundWithPostProcessing","_afterCameraPostProcessStage","STEP_AFTERCAMERAPOSTPROCESS_LAYER","_drawCameraForegroundWithoutPostProcessing","STEP_BEFORERENDERTARGETDRAW_LAYER","_drawRenderTargetBackground","STEP_AFTERRENDERTARGETDRAW_LAYER","_drawRenderTargetForegroundWithPostProcessing","_afterRenderTargetPostProcessStage","STEP_AFTERRENDERTARGETPOSTPROCESS_LAYER","_drawRenderTargetForegroundWithoutPostProcessing","_drawCameraPredicate","cameraLayerMask","_drawRenderTargetPredicate","UpDir","ZeroVec","tmpv1","tmpv2","CascadedShadowGenerator","ShadowGenerator","_validateFilter","FILTER_NONE","FILTER_PCF","FILTER_PCSS","numCascades","_numCascades","MIN_CASCADES_COUNT","MAX_CASCADES_COUNT","recreateShadowMap","_recreateSceneUBOs","freezeShadowCastersBoundingInfo","_freezeShadowCastersBoundingInfo","_freezeShadowCastersBoundingInfoObservable","_computeShadowCastersBoundingInfo","_scbiMin","_scbiMax","_shadowMap","_shadowCastersBoundingInfo","shadowCastersBoundingInfo","setMinMaxDistance","_minDistance","_maxDistance","_breaksAreDirty","minDistance","CLASSNAME","getCascadeMinExtents","cascadeIndex","_cascadeMinExtents","getCascadeMaxExtents","_cascadeMaxExtents","shadowMaxZ","_shadowMaxZ","_light","_markMeshesAsLightDirty","dbg","depthClamp","_depthClamp","cascadeBlendPercentage","_cascadeBlendPercentage","lambda","_lambda","getCascadeViewMatrix","cascadeNum","_viewMatrices","getCascadeProjectionMatrix","_projectionMatrices","getCascadeTransformMatrix","setDepthRenderer","depthRenderer","_depthReducer","autoCalcDepthBounds","_autoCalcDepthBounds","DepthReducer","onAfterReductionPerformed","autoCalcDepthBoundsRefreshRate","splitFrustum","_splitFrustum","near","far","cameraRange","_cascades","prevBreakDistance","breakDistance","_viewSpaceFrustumsZ","_frustumLengths","_computeMatrices","_cachedDirection","_computeFrustumInWorldSpace","_computeCascadeFrustum","_frustumCenter","_shadowCameraPos","_mapSize","_transformMatricesAsArray","prevSplitDist","splitDist","cameraInfiniteFarPlane","saveCameraMaxZ","invViewProj","cornerIndexOffset","cornerIndex","_FrustumCornersNDCSpace","_frustumCornersWorldSpace","stabilizeCascades","lightCameraPos","_disposeSceneUBOs","_sceneUBOs","mapSize","usefulFloatFirst","useRedTextureType","usePercentageCloserFiltering","_initializeGenerator","penumbraDarkness","DEFAULT_CASCADES_COUNT","_currentLayer","_createTargetRenderTexture","_useRedTextureType","_initializeShadowMap","_lightSizeUVCorrection","_depthCorrection","setSceneUniformBuffer","_useUBO","unbindEffect","_currentSceneUBO","_bindCustomEffectForRenderSubMeshForShadowMap","_isReadyCustomDefines","shadowsEnabled","bindShadowLight","shadowMap","_uniformBuffer","getDarkness","frustumEdgeFalloff","_contactHardeningLightSizeUVRatio","getLight","parsedShadowGenerator","shadowGenerator","_bias","_normalBias","blurBoxOffset","_blurBoxOffset","_disposeBlurPostProcesses","blurScale","_blurScale","blurKernel","_blurKernel","useKernelBlur","_useKernelBlur","_depthScale","getDepthScale","needCube","FILTER_BLUREXPONENTIALSHADOWMAP","useExponentialShadowMap","FILTER_BLURCLOSEEXPONENTIALSHADOWMAP","useCloseExponentialShadowMap","usePoissonSampling","_applyFilterValues","FILTER_POISSONSAMPLING","FILTER_EXPONENTIALSHADOWMAP","useBlurExponentialShadowMap","FILTER_CLOSEEXPONENTIALSHADOWMAP","useBlurCloseExponentialShadowMap","filteringQuality","_filteringQuality","useContactHardeningShadow","contactHardeningLightSizeUVRatio","darkness","_darkness","setDarkness","_transparencyShadow","setTransparencyShadow","transparent","getShadowMapForRendering","_shadowMap2","addShadowCaster","includeDescendants","childMesh","removeShadowCaster","usefullFloatFirst","onBeforeShadowMapRenderObservable","onAfterShadowMapRenderObservable","onBeforeShadowMapRenderMeshObservable","onAfterShadowMapRenderMeshObservable","QUALITY_HIGH","enableSoftTransparentShadow","useOpacityTextureForTransparentShadow","forceBackFacesOnly","_cachedPosition","_currentFaceIndexCache","_defaultTextureMatrix","shadowGenerators","_shadowGenerators","_storedUniqueId","_renderForShadowMap","clearZero","clearOne","getRenderSize","RenderingManager","MIN_RENDERINGGROUPS","MAX_RENDERINGGROUPS","setRenderingAutoClearDepthStencil","_initializeBlurRTTAndPostProcesses","_kernelBlurXPostprocess","_kernelBlurYPostprocess","packedFloat","_boxBlurPostprocess","_renderSubMeshForShadowMap","isTransparent","_renderId","useRHS","detNeg","customAllowRendering","shadowDepthWrapper","GetEffect","_opacityTexture","getAlphaFromRGB","_setMainDrawWrapperOverride","baseMaterial","getMeshUniformBuffer","bindToEffect","transferToEffect","worldOverride","forceCompilation","forceCompilationAsync","_prepareShadowDefines","subMeshEffect","alphaCutOff","DEFAULT_ALPHA_CUTOFF","customShaderOptions","attrib","QUALITY_LOW","QUALITY_MEDIUM","shadowMapForRendering","lightPosition","needProjectionMatrixCompute","setShadowProjectionMatrix","_disposeRTTandPostProcesses","cameraId","constr","getCameraById","getMeshesById","useVarianceShadowMap","useBlurVarianceShadowMap","NAME_SHADOWGENERATOR","ShadowGeneratorSceneComponent","STEP_GATHERRENDERTARGETS_SHADOWGENERATOR","getShadowGenerators","ShadowLight","shadowFrustumSize","_shadowFrustumSize","forceProjectionMatrixCompute","shadowOrthoScale","_shadowOrthoScale","autoUpdateExtends","autoCalcShadowZBounds","MIN_VALUE","_setDefaultShadowProjectionMatrix","_setDefaultFixedFrustumShadowProjectionMatrix","_setDefaultAutoExtendShadowProjectionMatrix","OrthoLHToRef","shadowMinZ","_shadowMinZ","_buildUniformLayout","lightDataUniformName","prepareLightSpecificDefines","setDirectionToTarget","LIGHTTYPEID_HEMISPHERICLIGHT","_range","_inverseSquaredRange","intensityMode","_intensityMode","_computePhotometricScale","_shadowEnabled","_hookArrayForIncludedOnly","_hookArrayForExcluded","excludeWithLayerMask","_excludeWithLayerMask","_resyncMeshes","includeOnlyWithLayerMask","_includeOnlyWithLayerMask","_lightmapMode","_faceIndex","_renderList","FALLOFF_DEFAULT","_photometricScale","INTENSITYMODE_AUTOMATIC","renderPriority","_excludedMeshesIds","_includedOnlyMeshesIds","addLight","transferTexturesToEffect","_bindLight","useSpecular","iAsString","needUpdate","_lastUseSpecular","scaledIntensity","_syncParentEnabledState","canAffectMesh","_removeLightSource","clonedLight","excludedMeshesIds","includedOnlyMeshesIds","parsedLight","oldPush","_resyncLightSource","oldSplice","deleteCount","lightSources","_markSubMeshesAsLightDirty","_getPhotometricScale","photometricScale","lightTypeID","photometricMode","INTENSITYMODE_ILLUMINANCE","INTENSITYMODE_LUMINOUSINTENSITY","INTENSITYMODE_LUMINOUSPOWER","INTENSITYMODE_LUMINANCE","apexAngleRadians","_reorderLightsInScene","_renderPriority","requireLightSorting","sortLightsByPriority","FALLOFF_PHYSICAL","FALLOFF_STANDARD","LIGHTMAP_DEFAULT","LIGHTMAP_SPECULAR","LIGHTMAP_SHADOWSONLY","CompareLightsPriority","shadowAngle","_shadowAngle","previousNeedCube","_needProjectionMatrixCompute","_setDirection","RotationFromAxis","_worldMatrixDeterminantIsDirty","customProjectionMatrixBuilder","lightTarget","SpotLight","_angle","_cosHalfAngle","_projectionTextureProjectionLightDirty","_computeAngleValues","innerAngle","_innerAngle","shadowAngleScale","_shadowAngleScale","_projectionTextureMatrix","projectionTextureLightNear","_projectionTextureLightNear","projectionTextureLightFar","_projectionTextureLightFar","projectionTextureUpDirection","_projectionTextureUpDirection","_projectionTexture","_projectionTextureDirty","_IsProceduralTexture","_IsTexture","onGeneratedObservable","projectionTextureProjectionLightMatrix","_projectionTextureProjectionLightMatrix","_projectionTextureViewLightDirty","_projectionTextureViewTargetVector","_projectionTextureViewLightMatrix","_projectionTextureScalingMatrix","_computeProjectionTextureViewLightMatrix","_computeProjectionTextureProjectionLightMatrix","lightFar","lightNear","FromValuesToRef","_computeProjectionTextureMatrix","_lightAngleScale","_lightAngleOffset","BabylonFileLoaderConfiguration","LoaderInjectedPhysicsEngine","tempIndexContainer","tempMaterialIndexContainer","tempMorphTargetManagerIndexContainer","parseMaterialByPredicate","parsedMaterial","hierarchyIds","logOperation","exporter_version","loadDetailLevels","mastermesh","_waitingData","lods","lodmeshes","wasenabled","distances","lodmesh","findParent","parentEntry","instances","findMaterial","materialId","getLastMaterialById","loadAssetContainer","addToScene","AssetContainer","loggingLevel","DETAILED_LOGGING","isPBR","environmentTextureType","hdrSize","environmentTextureSize","hdrTexture","HDRCubeTexture","environmentTexturePrefilterOnLoad","environmentTextureRotationY","compressedTexture","environmentTextureForcedExtension","skyboxBlurLevel","reflectionProbes","reflectionProbe","ReflectionProbe","multiMaterials","parsedMultiMaterial","mmat","ParseMultiMaterial","morphTargetManagers","parsedManager","MorphTargetManager","geometries","addedGeometry","parsedTransformNode","spriteManagers","SpriteManager","multimat","_waitingSubMaterialsUniqueIds","subMaterial","_waitingMaterialId","_waitingMorphTargetManagerId","freezeWorldMatrix","excludedIndex","includedOnlyIndex","includedOnlyMesh","_loadedUniqueId","removeAllFromScene","NO_LOGGING","MINIMAL_LOGGING","RegisterPlugin","canDirectLoad","importMesh","meshesNames","parsedIdToNodeMap","loadedTransformNodes","_waitingParsedUniqueId","loadedSkeletonsIds","loadedMaterialsIds","loadedMaterialsUniqueIds","loadedMorphTargetManagerIds","geometryId","geometryType","parsedGeometryData","materialUniqueId","materialArray","materialFound","loadSubMaterial","subMatId","multimatIndex","multimatCache","materialsUniqueIds","skeletonId","skeletonIndex","skeletonCache","morphTargetManagerId","morphTargetManagerIndex","ForceFullSceneLoadingForIncremental","physicsEnabled","physicsPlugin","physicsEngine","CannonJSPlugin","OimoJSPlugin","AmmoJSPlugin","physicsGravity","activeCameraID","setActiveCameraById","_BabylonFileParsers","_IndividualBabylonFileParsers","jsonData","parserName","onPluginActivatedObservable","registeredPlugins","showingLoadingScreen","getDefaultPlugin","getPluginForExtension","returnDefault","formatErrorMessage","rawData","loadDataAsync","_loadDataAsync","pluginOptions","directLoad","getDirectLoad","sceneFilename","fileExtension","getFilenameExtension","queryStringPosition","dotPosition","registeredPlugin","getPluginForDirectLoad","_FetchAsync","getPluginForMimeType","registeredPluginKey","pluginOrFactory","createPlugin","partialPlugin","IsBase64DataUrl","dataCallback","pluginDisposed","manifestChecked","canUseOfflineSupport","exceptionFound","disableOfflineSupportExceptionRules","_getFileInfo","sceneSource","GetFolderPath","registerSceneLoaderPlugin","importMeshAsync","_importMeshAsync","meshNames","loadingToken","disposeHandler","SceneLoaderError","progressHandler","successHandler","importedMeshesFiles","rewriteRootURL","loadingPluginName","loadScene","appendAsync","_x12","_appendAsync","SceneLoaderFlags","ShowLoadingScreen","executeWhenReady","loadAssetContainerCoreAsync","_x16","_loadAssetContainerCoreAsync","assetContainer","populateRootNodes","loadAssetContainerAsync","importAnimations","overwriteAnimations","animationGroupLoadingMode","getNodes","startingIndexForNewAnimatables","mergeAnimationsTo","onAnimationFileImportedObservable","CleanBoneMatrixWeights","GetDefaultPlugin","GetPluginForExtension","isPluginForExtensionAvailable","ImportMesh","ImportMeshAsync","importMeshAsyncCore","Load","LoadAsync","loadSceneAsyncCore","Append","AppendAsync","appendSceneAsyncCore","LoadAssetContainer","LoadAssetContainerAsync","internalLoadAssetContainerAsync","ImportAnimations","ImportAnimationsAsync","importAnimationsAsyncCore","SUMMARY_LOGGING","OnPluginActivatedObservable","_ForceFullSceneLoadingForIncremental","_ShowLoadingScreen","_LoggingLevel","_CleanBoneMatrixWeights","BackgroundMaterialDefines","DIFFUSE","DIFFUSEDIRECTUV","GAMMADIFFUSE","DIFFUSEHASALPHA","OPACITYFRESNEL","REFLECTIONBLUR","REFLECTIONFRESNEL","REFLECTIONFALLOFF","TEXTURELODSUPPORT","PREMULTIPLYALPHA","USERGBCOLOR","USEHIGHLIGHTANDSHADOWCOLORS","BACKMAT_SHADOWONLY","NOISE","REFLECTIONBGR","PROJECTED_GROUND","IMAGEPROCESSING","VIGNETTE","VIGNETTEBLENDMODEMULTIPLY","VIGNETTEBLENDMODEOPAQUE","TONEMAPPING","CONTRAST","COLORCURVES","COLORGRADING","COLORGRADING3D","SAMPLER3DGREENDEPTH","SAMPLER3DBGRMAP","IMAGEPROCESSINGPOSTPROCESS","SKIPFINALCOLORCLAMP","EXPOSURE","MULTIVIEW","REFLECTION","REFLECTIONMAP_3D","REFLECTIONMAP_SPHERICAL","REFLECTIONMAP_PLANAR","REFLECTIONMAP_CUBIC","REFLECTIONMAP_PROJECTION","REFLECTIONMAP_SKYBOX","REFLECTIONMAP_EXPLICIT","REFLECTIONMAP_EQUIRECTANGULAR","REFLECTIONMAP_EQUIRECTANGULAR_FIXED","REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED","INVERTCUBICMAP","REFLECTIONMAP_OPPOSITEZ","LODINREFLECTIONALPHA","GAMMAREFLECTION","RGBDREFLECTION","EQUIRECTANGULAR_RELFECTION_FOV","MAINUV1","MAINUV2","CLIPPLANE","CLIPPLANE2","CLIPPLANE3","CLIPPLANE4","CLIPPLANE5","CLIPPLANE6","POINTSIZE","FOG","NUM_BONE_INFLUENCERS","BonesPerMesh","SHADOWFLOAT","LOGARITHMICDEPTH","NONUNIFORMSCALING","ALPHATEST","PushMaterial","_perceptualColor","__perceptualColor","_computePrimaryColorFromPerceptualColor","_markAllSubMeshesAsLightsDirty","primaryColorShadowLevel","_primaryColorShadowLevel","_computePrimaryColors","primaryColorHighlightLevel","_primaryColorHighlightLevel","reflectionWeight","reflectionReflectance0","StandardReflectance0","reflectionReflectance90","StandardReflectance90","_fovMultiplier","_imageProcessingObserver","onUpdateParameters","_markAllSubMeshesAsImageProcessingDirty","cameraColorCurvesEnabled","colorCurvesEnabled","cameraColorGradingEnabled","colorGradingEnabled","cameraToneMappingEnabled","cameraColorGradingTexture","colorGradingTexture","cameraColorCurves","colorCurves","reflectionBlur","_shadowLights","shadowLights","sceneCenter","_maxSimultaneousLights","_shadowOnly","shadowOnly","switchToBGR","_enableGroundProjection","enableGroundProjection","projectedGroundRadius","projectedGroundHeight","_reflectionControls","_white","_primaryShadowColor","_primaryHighlightColor","getRenderTargetTextures","_diffuseTexture","_reflectionTexture","hasRenderTargetTextures","_wasPreviouslyUsingInstances","_isReadyForSubMesh","_needUVs","DiffuseTextureEnabled","_opacityFresnel","_reflectionBlur","INVCUBIC_MODE","EXPLICIT_MODE","PLANAR_MODE","PROJECTION_MODE","SPHERICAL_MODE","EQUIRECTANGULAR_MODE","FIXED_EQUIRECTANGULAR_MODE","_useRGBColor","_enableNoise","_areMiscDirty","PrepareDefinesForMisc","_useLogarithmicDepth","pointsCloud","_shouldTurnAlphaTestOn","PrepareDefinesForFrameBoundValues","PrepareDefinesForAttributes","markAsProcessed","addFallback","HandleFallbacksForShadows","PrepareAttributesForBones","PrepareAttributesForInstances","PrepareUniformsAndSamplersList","_checkScenePerformancePriority","_primaryColor","toLinearSpaceToRef","bindOnlyWorldMatrix","_activeEffect","mustRebind","_mustRebind","bindViewProjection","_forceRebindOnNextCall","pointSize","bindEyePosition","_needToBindSceneUbo","lightsEnabled","bindView","_afterBind","forceDisposeEffect","serializeAsImageProcessingConfiguration","GaussianSplattingMaterialDefines","focal","gsMesh","covariancesATexture","covariancesBTexture","centersTexture","CurrentScreenBlock","FragmentOutputBlockColorSpace","NoColorSpace","Gamma","Linear","FragmentOutputBlock","colorSpace","outputString","aValue","AnimatedInputBlockTypes","Time","RealTime","MouseInfo","remapAttributeName","position2d","particle_uv","particle_color","particle_texturemask","particle_positionw","attributeInFragmentOnly","attributeAsUniform","isUniform","_systemValue","WorldView","ViewProjection","Projection","DeltaTime","MaterialAlpha","CameraParameters","_animationType","matrixMode","validateBlockName","_associatedVariableName","isVarying","_originMouseEvent","_emitDefine","_emitConstant","toGammaSpaceToRef","_noContextSwitch","constants","_constantDeclaration","_uniformDeclaration","needWorldViewMatrix","needWorldViewProjectionMatrix","animatedInputs","_vertexState","alreadyDeclared","_attributeDeclaration","_transmitWorld","worldView","_transmit","inputBlocks","wellKnownValue","ParticleBlendMultiplyBlock","alphaColor","blendColor","ParticleRampGradientBlock","rampColor","ParticleTextureBlock","VertexOutputBlock","_isLogarithmicDepthEnabled","nodeList","fragmentOutputNodes","uniformP","onTypeChangedObservable","ColorSplitterBlock","rgbOutput","rOutput","gOutput","bOutput","aOutput","MultiplyBlock","RemapBlock","targetRange","sourceMin","sourceMax","targetMin","targetMax","TransformBlock","transformAsDirection","complementW","complementZ","otherAsInput","transformName","TrigonometryBlockOperations","Radians","Degrees","TrigonometryBlock","VectorMergerBlock","xSwizzle","ySwizzle","zSwizzle","wSwizzle","v4Output","v3Output","v2Output","v2CompOutput","GaussianSplatting","NodeMaterialBuildState","prePassOutput","_terminalBlocks","_varyingTransfer","_repeatableContentAnchorIndex","_builtCompilationString","emitComments","isFragmentMode","functionCode","varyingDeclaration","extensionName","defineNames","includeName","EngineShaderStore","storeKey","temps","notDefine","varyings","_samplerCubeFunc","_samplerLODFunc","_convertVariableDeclarationToWGSL","_convertVariableConstructorsToWGSL","_convertOutParametersToWGSL","_convertTernaryOperandsToWGSL","trueCase","falseCase","_convertModOperatorsToWGSL","_convertConstToWGSL","_convertInnerFunctionsToWGSL","_convertFunctionsToWGSL","formattedParams","_convertTernaryOperandsToGLSL","NodeMaterialBuildStateSharedData","emitVertex","emitFragment","allowEmptyVertexProgram","uv3","uv4","uv5","uv6","diffuseBase","specularBase","vTBN","MAINUV0","MAINUV3","MAINUV4","MAINUV5","MAINUV6","MAINUV7","onCreatedEffectParameters","NodeMaterialDefines","VERTEXCOLOR_NME","PREPASS","PREPASS_NORMAL","PREPASS_NORMAL_INDEX","PREPASS_WORLD_NORMAL","PREPASS_WORLD_NORMAL_INDEX","PREPASS_POSITION","PREPASS_POSITION_INDEX","PREPASS_LOCAL_POSITION","PREPASS_LOCAL_POSITION_INDEX","PREPASS_DEPTH","PREPASS_DEPTH_INDEX","PREPASS_SCREENSPACE_DEPTH","PREPASS_SCREENSPACE_DEPTH_INDEX","BONETEXTURE","MORPHTARGETS","MORPHTARGETS_NORMAL","MORPHTARGETS_TANGENT","MORPHTARGETS_UV","MORPHTARGETS_TEXTURE","BUMPDIRECTUV","CAMERA_ORTHOGRAPHIC","CAMERA_PERSPECTIVE","markAsUnprocessedIfDirty","_BlockIsTextureBlock","_getGlobalNodeMaterialEditor","NODEEDITOR","NodeEditor","_cachedWorldViewMatrix","_cachedWorldViewProjectionMatrix","_optimizers","_animationFrame","_buildIsInProgress","BJSNODEMATERIALEDITOR","ignoreAlpha","_vertexOutputNodes","_fragmentOutputNodes","forceAlphaBlending","DefaultShaderLanguage","registerOptimizer","optimizer","unregisterOptimizer","addOutputNode","_addVertexOutputNode","_addFragmentOutputNode","removeOutputNode","_removeVertexOutputNode","_removeFragmentOutputNode","_sharedData","_processInitializeOnLink","nodesToProcessForOtherBuildState","_attachBlock","isLoop","_resetDualBlocks","isFinalMerger","_vertexCompilationState","_fragmentCompilationState","vertexNodes","fragmentNodes","vertexOutputNode","fragmentOutputNode","waitingNodeCount","codeIsReady","_finishBuildProcess","optimize","noError","markAllAsDirty","prePassTextureInputs","_prepareDefinesForAttributes","oldNormal","oldTangent","oldColor","hasVertexColors","uvChanged","oldUV","oit","PrepareDefinesForPrePass","prePassTextureOutputs","prePassOutputBlock","prePassTextureBlocks","getAllTextureBlocks","prePassTexturesRequired","_createEffectForPostProcess","createEffectForPostProcess","tempName","dummyMesh","_processDefines","nodeMaterialSource","TimingTools","_checkInternals","createProceduralTexture","proceduralTexture","_setEffect","refreshEffect","onBeforeGenerationObservable","_createEffectForParticles","particleSystemDefinesJoined","particleSystemDefines","particleSystemDefinesJoinedCurrent","inputBlock","createAsShadowDepthWrapper","targetMaterial","ShadowDepthWrapper","PrepareDefinesForCamera","markAsMiscDirty","lightDisposed","_areLightsDisposed","mergedUniforms","mergedSamplers","previousEffect","multiTarget","_onEffectCreatedObservable","compiledShaders","tb","getTextureBlocks","notBoundToMesh","viewProjectionInput","worldPosdMultipliedByViewProjection","vertexOutput","pixelColor","fragmentOutput","setToDefaultPostProcess","const1","vmerger","visibleInInspector","currentScreen","setToDefaultProceduralTexture","vectorMerger","setToDefaultParticle","rampGradient","cSplitter","blendMultiply","vertexBlocks","outputNode","fragmentBlocks","outputNodes","loadFromSerialization","shareEffect","whenTexturesReadyAsync","textureReadyPromises","textureResolve","textureReject","waitForTextureReadyness","newMaterial","_isFinalMerger","_isLoop","_originalTargetIsNeutral","currentPoint","stringVersion","getFirstAvailableInput","forOutput","getFirstAvailableOutput","forBlock","getSiblingOutput","notFound","willBeGeneratedIntoVertexShaderFromFragmentShader","isDirectlyConnectedToVertexOutput","_processBuild","_buildTarget","_enforceAssociatedVariableName","reservedNames","reservedName","AreEquivalentTypes","type1","type2","_connectedPointBackingField","_connectedPointTypeChangedObserver","_updateTypeDependentState","_notifyTypeChanged","_typeConnectionSourceBackingField","_typeConnectionSourceTypeChangedObserver","_defaultConnectionPointTypeBackingField","_linkedConnectionSourceBackingField","_linkedConnectionSourceTypeChangedObserver","_isTypeChangeObservableNotifying","previousType","MaterialAnisotropicDefines","ANISOTROPIC","ANISOTROPIC_TEXTURE","ANISOTROPIC_TEXTUREDIRECTUV","ANISOTROPIC_LEGACY","PBRAnisotropicConfiguration","_markAllSubMeshesAsMiscDirty","_internalMarkAllSubMeshesAsMiscDirty","_legacy","legacy","AnisotropicTextureEnabled","addFallbacks","currentRank","MaterialBRDFDefines","BRDF_V_HEIGHT_CORRELATED","MS_BRDF_ENERGY_CONSERVATION","SPECULAR_GLOSSINESS_ENERGY_CONSERVATION","PBRBRDFConfiguration","_useEnergyConservation","DEFAULT_USE_ENERGY_CONSERVATION","_useSmithVisibilityHeightCorrelated","DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED","useSmithVisibilityHeightCorrelated","_useSphericalHarmonics","DEFAULT_USE_SPHERICAL_HARMONICS","_useSpecularGlossinessInputEnergyConservation","DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION","useSpecularGlossinessInputEnergyConservation","PBRMaterialDefines","externalProperties","PBR","NUM_SAMPLES","REALTIME_FILTERING","ALBEDO","GAMMAALBEDO","ALBEDODIRECTUV","VERTEXCOLOR","BAKED_VERTEX_ANIMATION_TEXTURE","AMBIENT","AMBIENTDIRECTUV","AMBIENTINGRAYSCALE","OPACITY","VERTEXALPHA","OPACITYDIRECTUV","OPACITYRGB","DEPTHPREPASS","ALPHABLEND","ALPHAFROMALBEDO","ALPHATESTVALUE","SPECULAROVERALPHA","RADIANCEOVERALPHA","ALPHAFRESNEL","LINEARALPHAFRESNEL","EMISSIVE","EMISSIVEDIRECTUV","GAMMAEMISSIVE","REFLECTIVITY","REFLECTIVITY_GAMMA","REFLECTIVITYDIRECTUV","SPECULARTERM","MICROSURFACEFROMREFLECTIVITYMAP","MICROSURFACEAUTOMATIC","LODBASEDMICROSFURACE","MICROSURFACEMAP","MICROSURFACEMAPDIRECTUV","METALLICWORKFLOW","ROUGHNESSSTOREINMETALMAPALPHA","ROUGHNESSSTOREINMETALMAPGREEN","METALLNESSSTOREINMETALMAPBLUE","AOSTOREINMETALMAPRED","METALLIC_REFLECTANCE","METALLIC_REFLECTANCE_GAMMA","METALLIC_REFLECTANCEDIRECTUV","METALLIC_REFLECTANCE_USE_ALPHA_ONLY","REFLECTANCE","REFLECTANCE_GAMMA","REFLECTANCEDIRECTUV","ENVIRONMENTBRDF","ENVIRONMENTBRDF_RGBD","BUMP","OBJECTSPACE_NORMALMAP","PARALLAX","PARALLAX_RHS","PARALLAXOCCLUSION","NORMALXYSCALE","LIGHTMAP","LIGHTMAPDIRECTUV","USELIGHTMAPASSHADOWMAP","GAMMALIGHTMAP","RGBDLIGHTMAP","USE_LOCAL_REFLECTIONMAP_CUBIC","USEIRRADIANCEMAP","USESPHERICALINVERTEX","LINEARSPECULARREFLECTION","RADIANCEOCCLUSION","HORIZONOCCLUSION","INSTANCESCOLOR","PREPASS_COLOR","PREPASS_COLOR_INDEX","PREPASS_IRRADIANCE","PREPASS_IRRADIANCE_INDEX","PREPASS_ALBEDO","PREPASS_ALBEDO_INDEX","PREPASS_ALBEDO_SQRT","PREPASS_ALBEDO_SQRT_INDEX","PREPASS_NORMAL_WORLDSPACE","PREPASS_VELOCITY","PREPASS_VELOCITY_INDEX","PREPASS_VELOCITY_LINEAR","PREPASS_VELOCITY_LINEAR_INDEX","PREPASS_REFLECTIVITY","PREPASS_REFLECTIVITY_INDEX","BONES_VELOCITY_ENABLED","ORDER_INDEPENDENT_TRANSPARENCY","ORDER_INDEPENDENT_TRANSPARENCY_16BITS","USEPHYSICALLIGHTFALLOFF","USEGLTFLIGHTFALLOFF","TWOSIDEDLIGHTING","FORCENORMALFORWARD","SPECULARAA","UNLIT","DECAL_AFTER_DETAIL","DEBUGMODE","_realTimeFiltering","_realTimeFilteringQuality","canRenderToMRT","_directIntensity","_emissiveIntensity","_environmentIntensity","_specularIntensity","_lightingInfos","_disableBumpMap","_albedoTexture","_ambientTexture","_ambientTextureStrength","_ambientTextureImpactOnAnalyticalLights","_emissiveTexture","_reflectivityTexture","_metallicTexture","_metallic","_roughness","_useOnlyMetallicFromMetallicReflectanceTexture","_metallicReflectanceTexture","_reflectanceTexture","_microSurfaceTexture","_bumpTexture","_lightmapTexture","_ambientColor","_albedoColor","_reflectivityColor","_reflectionColor","_emissiveColor","_microSurface","_useLightmapAsShadowmap","_useHorizonOcclusion","_useRadianceOcclusion","_useSpecularOverAlpha","_useRoughnessFromMetallicTextureAlpha","_useRoughnessFromMetallicTextureGreen","_useMetallnessFromMetallicTextureBlue","_useAmbientOcclusionFromMetallicTextureRed","_useAmbientInGrayScale","_useAutoMicroSurfaceFromReflectivityMap","_lightFalloff","_useRadianceOverAlpha","_useObjectSpaceNormalMap","_useParallax","_useParallaxOcclusion","_parallaxScaleBias","_disableLighting","_invertNormalMapX","_invertNormalMapY","_twoSidedLighting","_alphaCutOff","_forceAlphaTest","_useAlphaFresnel","_useLinearAlphaFresnel","_forceIrradianceInFragment","_forceNormalForward","_enableSpecularAntiAliasing","_globalAmbientColor","_unlit","_applyDecalMapAfterDetailMap","_breakShaderLoadedCheck","_cacheHasRenderTargetTextures","PBRSheenConfiguration","PBRSubSurfaceConfiguration","detailMap","DetailMapConfiguration","_eventInfo","_callbackPluginEventFillRenderTargetTextures","prePassConfiguration","PrePassConfiguration","_disableAlphaBlending","_transparencyMode","PBRMATERIAL_OPAQUE","PBRMATERIAL_ALPHATEST","disableAlphaBlending","_shouldUseAlphaFromAlbedoTexture","_hasAlphaChannel","_callbackPluginEventGeneric","_callbackPluginEventHasRenderTargetTextures","AmbientTextureEnabled","OpacityTextureEnabled","_getReflectionTexture","_sphericalPolynomialPromise","LightmapTextureEnabled","EmissiveTextureEnabled","SpecularTextureEnabled","_callbackPluginEventIsReadyForSubMesh","forceWasNotReadyPreviously","isMetallicWorkflow","useClipPlane","useThinInstances","_prepareDefines","fallbackRank","PrepareAttributesForMorphTargets","customCode","AddUniformsAndSamplers","AddUniforms","AddSamplers","csnrOptions","customShaderNameResolve","PrepareDefinesForOIT","PrepareDefines","wireframe","_callbackPluginEventPrepareDefinesBeforeAttributes","_callbackPluginEventPrepareDefines","Bind","_callbackPluginEventHardBindForSubMesh","toNormalMatrix","_normalMatrix","bindOnlyNormalMatrix","_indexOfRefraction","outsideIOR","BlackReadOnly","SS_REFRACTION","_linkRefractionWithTransparency","_callbackPluginEventBindForSubMesh","isScatteringEnabled","environmentBRDFTexture","MATERIAL_ALPHATEST","PBRMATERIAL_ALPHABLEND","MATERIAL_ALPHABLEND","PBRMATERIAL_ALPHATESTANDBLEND","MATERIAL_ALPHATESTANDBLEND","occlusionStrength","useLightmapAsShadowmap","MaterialClearCoatDefines","CLEARCOAT","CLEARCOAT_DEFAULTIOR","CLEARCOAT_TEXTURE","CLEARCOAT_TEXTURE_ROUGHNESS","CLEARCOAT_TEXTUREDIRECTUV","CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV","CLEARCOAT_BUMP","CLEARCOAT_BUMPDIRECTUV","CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE","CLEARCOAT_REMAP_F0","CLEARCOAT_TINT","CLEARCOAT_TINT_TEXTURE","CLEARCOAT_TINT_TEXTUREDIRECTUV","CLEARCOAT_TINT_GAMMATEXTURE","_useRoughnessFromMainTexture","useRoughnessFromMainTexture","_textureRoughness","textureRoughness","_remapF0OnInterfaceChange","_isTintEnabled","isTintEnabled","tintColorAtDistance","_tintTexture","disableBumpMap","ClearCoatTextureEnabled","ClearCoatBumpTextureEnabled","ClearCoatTintTextureEnabled","MaterialIridescenceDefines","IRIDESCENCE","IRIDESCENCE_TEXTURE","IRIDESCENCE_TEXTUREDIRECTUV","IRIDESCENCE_THICKNESS_TEXTURE","IRIDESCENCE_THICKNESS_TEXTUREDIRECTUV","_DefaultMinimumThickness","maximumThickness","_thicknessTexture","IridescenceTextureEnabled","usePhysicalLightFalloff","useGLTFLightFalloff","ambientTextureStrength","ambientTextureImpactOnAnalyticalLights","metallicF0Factor","metallicReflectanceColor","useOnlyMetallicFromMetallicReflectanceTexture","useAlphaFromAlbedoTexture","forceAlphaTest","useRoughnessFromMetallicTextureAlpha","useRoughnessFromMetallicTextureGreen","useMetallnessFromMetallicTextureBlue","useAmbientOcclusionFromMetallicTextureRed","useAmbientInGrayScale","useAutoMicroSurfaceFromReflectivityMap","useAlphaFresnel","useLinearAlphaFresnel","applyDecalMapAfterDetailMap","cloneTexturesOnlyOnce","_clonePlugins","_ParsePlugins","PBRMetallicRoughnessMaterial","MaterialSheenDefines","SHEEN","SHEEN_TEXTURE","SHEEN_GAMMATEXTURE","SHEEN_TEXTURE_ROUGHNESS","SHEEN_TEXTUREDIRECTUV","SHEEN_TEXTURE_ROUGHNESSDIRECTUV","SHEEN_LINKWITHALBEDO","SHEEN_ROUGHNESS","SHEEN_ALBEDOSCALING","SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE","_linkSheenWithAlbedo","_albedoScaling","SheenTextureEnabled","MaterialSubSurfaceDefines","SUBSURFACE","SS_REFRACTION_USE_INTENSITY_FROM_THICKNESS","SS_TRANSLUCENCY","SS_TRANSLUCENCY_USE_INTENSITY_FROM_THICKNESS","SS_SCATTERING","SS_DISPERSION","SS_THICKNESSANDMASK_TEXTURE","SS_THICKNESSANDMASK_TEXTUREDIRECTUV","SS_HAS_THICKNESS","SS_REFRACTIONINTENSITY_TEXTURE","SS_REFRACTIONINTENSITY_TEXTUREDIRECTUV","SS_TRANSLUCENCYINTENSITY_TEXTURE","SS_TRANSLUCENCYINTENSITY_TEXTUREDIRECTUV","SS_TRANSLUCENCYCOLOR_TEXTURE","SS_TRANSLUCENCYCOLOR_TEXTUREDIRECTUV","SS_REFRACTIONMAP_3D","SS_REFRACTIONMAP_OPPOSITEZ","SS_LODINREFRACTIONALPHA","SS_GAMMAREFRACTION","SS_RGBDREFRACTION","SS_LINEARSPECULARREFRACTION","SS_LINKREFRACTIONTOTRANSPARENCY","SS_ALBEDOFORREFRACTIONTINT","SS_ALBEDOFORTRANSLUCENCYTINT","SS_USE_LOCAL_REFRACTIONMAP_CUBIC","SS_USE_THICKNESS_AS_DEPTH","SS_USE_GLTF_TEXTURES","scatteringDiffusionProfile","_scatteringDiffusionProfileIndex","_volumeIndexOfRefraction","_isRefractionEnabled","_isTranslucencyEnabled","_isScatteringEnabled","_markScenePrePassDirty","_internalMarkScenePrePassDirty","isTranslucencyEnabled","_isDispersionEnabled","isDispersionEnabled","useAlbedoToTintTranslucency","_refractionTexture","_invertRefractionY","diffusionDistance","_useMaskFromThicknessTexture","useMaskFromThicknessTexture","_refractionIntensityTexture","refractionIntensityTexture","_translucencyIntensityTexture","translucencyIntensityTexture","translucencyColor","_translucencyColorTexture","translucencyColorTexture","_useGltfStyleTextures","useGltfStyleTextures","ThicknessTextureEnabled","TranslucencyColorTextureEnabled","TranslucencyIntensityTextureEnabled","_getRefractionTexture","RefractionTextureEnabled","RefractionIntensityTextureEnabled","thicknessScale","lodBasedMicrosurface","fillRenderTargetTextures","hdrScale","_prefilterInternal","mipmapsCount","intTexture","applyEffectWrapper","_createEffect","onFinished","A_OFFSET","MOD_MASK","ReverseLutFromBitmap","lut","USHORT_RANGE","GetBits","nBits","lc","ParseUint8Array","GetChar","po","rlc","outBuffer","outBufferOffset","outBufferEndOffset","gc","cs","HufTableBuffer","HufLength","HufCode","HufUncompress","nCompressed","nRaw","initialInOffset","im","ParseUint32","iM","HUF_ENCSIZE","freq","hdec","HUF_DECSIZE","HufClearDecTable","lit","HufUnpackEncTable","ni","hcode","gb","LONG_ZEROCODE_RUN","zerun","SHORTEST_LONG_RUN","SHORT_ZEROCODE_RUN","HufCanonicalCodeTable","nc","HufBuildDecTable","hdecod","HUF_DECBITS","pl","plOffset","HufDecode","encodingTable","decodingTable","no","outOffset","inOffsetEnd","HUF_DECMASK","gCode","UInt16","Int16","Wdec14","ls","Wdec16","Wav2Decode","ox","oy","w14","ey","oy1","oy2","ox1","ox2","i00","i01","ApplyLut","nData","UncompressRAW","decoder","UncompressRLE","compressed","DecodeRunLength","Predictor","InterleaveScalar","UncompressZIP","fflate","unzlibSync","UncompressPXR","sz","channels","tmpBufferEnd","writePtr","ptr","UncompressPIZ","inDataView","inOffset","scanlineBlockSize","BITMAP_SIZE","outBufferEnd","pizChannelData","minNonZero","ParseUint16","maxNonZero","ParseUint8","tmpOffset","cp","INT16_SIZE","EXROutputType","HalfFloat","ExrLoaderGlobalConfiguration","DefaultOutputType","FFLATEUrl","CompressionCodes","NO_COMPRESSION","RLE_COMPRESSION","ZIPS_COMPRESSION","ZIP_COMPRESSION","PIZ_COMPRESSION","PXR24_COMPRESSION","LineOrders","INCREASING_Y","DECREASING_Y","_tables","_GenerateTables","floatView","uint32View","baseTable","shiftTable","mantissaTable","exponentTable","offsetTable","ParseNullTerminatedString","uintBuffer","stringValue","TextDecoder","ParseInt32","INT32_SIZE","INT8_SIZE","ParseInt64","getBigInt64","ULONG_SIZE","ParseFloat32","FLOAT32_SIZE","ParseFloat16","DecodeFloat16","DecodeFloat32","ToHalfFloat","ParseValue","ParseFixedLengthString","ParseChlist","pixelType","pLinear","xSampling","ySampling","ParseChromaticities","redX","redY","greenX","greenY","blueX","blueY","whiteX","whiteY","ParseCompression","ParseBox2i","xMin","yMin","xMax","yMax","ParseLineOrder","lineOrder","ParseV2f","ParseV3f","ParseRational","ParseTimecode","t2","CreateDecoderAsync","_CreateDecoderAsync","outputType","dataWindow","channelLineOffsets","scanOrder","bytesPerLine","outLineWidth","inputSize","uncompress","outputChannels","decodeChannels","blockCount","byteArray","linearSpace","LoadScriptAsync","fillAlpha","ScanData","scanlineBlockIdx","line_y","true_y","lineOffset","outLineOffset","channelID","cOff","EXR_MAGIC","GetExrHeader","specData","spec","singleTile","longName","deepFormat","multiPart","headerData","keepReading","attributeValue","_BasisTextureLoader","TranscodeAsync","supportedCompressionFormats","bc7","hasMipmap","levels","LoadTextureFromTranscodeResult","rootImage","_DDSTextureLoader","GetDDSInfo","isRGB","isLuminance","isFourCC","_ENVTextureLoader","UploadEnvLevelsAsync","_ExrTextureLoader","_createPolynomials","_gammaSpace","_HDRTextureLoader","hdrInfo","RGBE_ReadHeader","pixelsDataRGB32","RGBE_ReadPixels","pixelsDataRGBA32","_KTXTextureLoader","_invertVScale","ktx","KhronosTextureContainer","numberOfMipmapLevels","uploadLevels","pixelWidth","IsValid","mappedFormat","mapSRGBToLinear","glInternalFormat","KhronosTextureContainer2","_uploadAsync","_registeredTextureLoaders","registerTextureLoader","loaderFactory","unregisterTextureLoader","_TGATextureLoader","registered","UploadContent","_currentRefreshId","_refreshRate","_floats","_ints","_floatsArrays","_colors3","_colors4","_vectors2","_vectors3","_vectors4","_matrices","_fallbackTextureUsed","_contentUpdateId","_rtWrapper","NAME_PROCEDURALTEXTURE","ProceduralTextureSceneComponent","proceduralTextures","_fullEngine","setFragment","_createRtWrapper","getContent","_contentData","REFRESHRATE_RENDER_ONCE","_fragment","_checkUniform","setFloats","viewPort","numLayers","onGenerated","STEP_BEFORECLEAR_PROCEDURALTEXTURE","_beforeClear","proceduralTexturesEnabled","proceduralIndex","_hasAlpha","_getAlphaFromRGB","_coordinatesIndex","_wrapU","_wrapV","_linearSpecularLOD","_uid","isBlocking","loadingError","_loadingError","errorObject","_errorObject","optimizeUVAllocation","DEFAULT_ANISOTROPIC_FILTERING_LEVEL","_forceSerialize","_IsScene","addTexture","canRescale","sampling","correctedUseSRGBBuffer","texturesCache","texturesCacheEntry","_fromContextLost","_readPixelsSync","onTextureRemovedObservable","allowEmptyName","WhenAllReady","numRemaining","forceSphericalPolynomialsRecompute","_sphericalPolynomialComputed","CubeMapToSphericalPolynomialTools","ConvertCubeMapTextureToSphericalPolynomial","_boundingBoxSize","_rotationY","setReflectionTextureMatrix","_forcedExtension","CreateFromImages","rootUrlKey","extensionsOrOptions","prefiltered","_extensions","_textureMatrixRefraction","CUBIC_MODE","_loaderOptions","_lodScale","_lodOffset","isEnv","isBasis","_delayedOnLoad","_delayedOnError","oldTexture","onLoadProcessing","OnTextureLoadErrorObservable","newCubeTexture","_CubeTextureParser","canvasOrSize","sceneOrOptions","isScene","_canvas","_ownCanvas","_recreate","releaseInternalTexture","scaleTo","drawText","fillColor","textSize","measureText","fillText","_IsCanvasElement","base64String","_isBlocking","generateHarmonics","prefilterOnLoad","supersample","_generateHarmonics","_prefilterOnLoad","_supersample","previousOnLoad","hdrFiltering","GetCubeMapTextureData","ConvertCubeMapToSphericalPolynomial","shortArray","dataFace","_FacesMapping","ToGammaSpace","useInGammaSpace","_setUniqueId","delayAllocation","onRebuildCallback","_bufferViewArrayArray","swapAndSetIsReady","proxyInternalTexture","proxy","swapAll","TranscodeTarget","ASTC_4X4_RGBA","BC7_RGBA","BC3_RGBA","BC1_RGB","PVRTC1_4_RGBA","PVRTC1_4_RGB","ETC2_RGBA","ETC1_RGB","RGBA32","_blurRatio","_preparePostProcesses","_adaptiveBlurKernel","_autoComputeBlurKernel","blurKernelX","blurKernelY","_blurKernelX","_blurKernelY","dh","_onRatioRescale","_sizeRatio","_initialSizeParameter","_updateGammaSpace","_mirrorMatrix","saveClipPlane","_imageProcessingConfigChangeObserver","_sceneUBO","ReflectionToRef","clearPostProcesses","alwaysForcePOT","addPostProcess","removePostProcess","_renderTargetOptions","_CreateMirror","renderTargetSize","RawCubeTexture","updateRGBDAsync","UpdateRGBDAsyncEnvTools","rawTexture","CreateLuminanceTexture","CreateLuminanceAlphaTexture","CreateAlphaTexture","CreateRGBTexture","CreateRGBAStorageTexture","CreateRStorageTexture","RawTexture2DArray","_objectRenderer","getCustomRenderList","forceLayerMaskCheck","_prePassEnabled","onAfterUnbind","_onAfterUnbindObserver","onClear","_onClearObserver","_waitingRenderList","renderPassIds","currentRefreshId","renderTargetOptions","_cleared","skipInitialClear","_canRescale","_dumpToolsLoading","numPasses","getRenderLayers","_doNotChangeAspectRatio","onAfterRenderingManagerRenderObservable","saveGenerateMipMaps","_postProcessManager","_currentUseCameraPostProcess","_currentDumpForDebug","_dumpTools","DumpFramebuffer","onFastPathRenderObservable","_bestReflectionRenderTargetDimension","PostProcessManager","wasCube","_checkReadiness","_renderToTarget","renderDimension","curved","NearestPOT","FloorPOT","setRenderingOrder","opaqueSortCompareFn","alphaTestSortCompareFn","transparentSortCompareFn","autoClearDepthStencil","disposeFramebufferObjects","freeRenderingGroups","REFRESHRATE_RENDER_ONEVERYFRAME","REFRESHRATE_RENDER_ONEVERYTWOFRAMES","_CreateRenderTargetTexture","noMipmapOrOptions","uRotationCenter","vRotationCenter","wRotationCenter","homogeneousRotationInUVTransform","inspectableCustomProperties","_rowGenerationMatrix","_cachedTextureMatrix","_projectionModeMatrix","_t0","_t1","_t2","_cachedUOffset","_cachedVOffset","_cachedUScale","_cachedVScale","_cachedUAng","_cachedVAng","_cachedWAng","_cachedReflectionProjectionMatrixId","_cachedURotationCenter","_cachedVRotationCenter","_cachedWRotationCenter","_cachedHomogeneousRotationInUVTransform","_cachedIdentity3x2","_cachedReflectionTextureMatrix","_cachedReflectionUOffset","_cachedReflectionVOffset","_cachedReflectionUScale","_cachedReflectionVScale","_cachedReflectionCoordinatesMode","loadObserver","_prepareRowForTextureGeneration","uBase","previousIdentity3x2","flagMaterialsAsTextureDirty","savedName","SerializeBuffers","_SerializeInternalTextureUniqueId","ForceSerializeBuffers","EncodeArrayBufferToBase64","GenerateBase64StringFromTexture","GenerateBase64StringFromTextureAsync","internalTextureUniqueId","internalTextureLabel","parsedCustomTexture","InstantiationTools","_samplingMode","hasInternalTextureUniqueId","onLoaded","mirrorTexture","probe","CreateFromBase64String","UseSerializedUrlIfAny","LoadFromDataString","jsonTexture","NEAREST_NEAREST_MIPLINEAR","LINEAR_LINEAR_MIPNEAREST","LINEAR_LINEAR_MIPLINEAR","NEAREST_NEAREST_MIPNEAREST","NEAREST_LINEAR_MIPNEAREST","NEAREST_LINEAR_MIPLINEAR","NEAREST_LINEAR","LINEAR_NEAREST_MIPNEAREST","LINEAR_NEAREST_MIPLINEAR","LINEAR_LINEAR","LINEAR_NEAREST","_TextureParser","_useMipMaps","_IsRenderTargetWrapper","_cachedSize","_cachedBaseSize","primaryHolder","secondaryHolder","prepareDefinesForClipPlanes","setClipPlane","PrepareUniformsForColorCurves","uniformsList","ColorCurves","_tempColor","_globalCurve","_highlightsCurve","_midtonesCurve","_shadowsCurve","_positiveCurve","_negativeCurve","_globalHue","_globalDensity","_globalSaturation","_globalExposure","_highlightsHue","_highlightsDensity","_highlightsSaturation","_highlightsExposure","_midtonesHue","_midtonesDensity","_midtonesSaturation","_midtonesExposure","_shadowsHue","_shadowsDensity","_shadowsSaturation","_shadowsExposure","globalHue","globalDensity","globalSaturation","globalExposure","highlightsHue","highlightsDensity","highlightsSaturation","highlightsExposure","midtonesHue","midtonesDensity","midtonesSaturation","midtonesExposure","shadowsHue","shadowsDensity","shadowsSaturation","shadowsExposure","positiveUniform","neutralUniform","negativeUniform","_getColorGradingDataToRef","hue","saturation","_Clamp","_ApplyColorGradingSliderNonlinear","_FromHSBToRef","_ColorCurvesParser","resetContext","getCachedPipeline","_processShaderCode","onFinalCodeReady","effectContext","shaderCodes","shadersLoaded","codeBeforeMigration","_fragmentSourceCodeBeforeMigration","finalCode","_vertexSourceCodeBeforeMigration","_loadFileInjection","shaderStore","createAndPreparePipelineContext","existingPipelineContext","onRenderingStateCompiled","repo","_bonesComputationForcedToCPU","_uniformBuffersNames","_allFallbacksProcessed","_fallbacks","_vertexSourceCodeOverride","_fragmentSourceCodeOverride","_processCodeAfterIncludes","_processFinalCode","pipelineName","cachedPipeline","_attributesNames","_uniformsNames","_samplerList","_indexParameters","_uniformBuffersNamesList","_attributeLocationByName","_onRenderingStateCompiled","_rebuildProgram","shaderProcessor","keepExistingPipelineContext","_attributes","getUniformNames","getUniformBuffersNames","getIndexParameters","allFallbacksProcessed","vertexSourceCodeBeforeMigration","fragmentSourceCodeBeforeMigration","getPipelineGenerationOptions","shaderNameOrContent","addGlobalDefines","extendedProcessingOptions","extendedCreatePipelineOptions","unBindMesh","AutomaticallyClearCodeCache","clearCodeCache","overrides","_getShaderCodeAndErrorLine","errorLine","lineErrorVertex","lineErrorFragment","notifyErrors","hasMoreFallbacks","exName","initialPos","currentExName","channelIndex","_BaseCache","pixelShader","_defines","_currentRank","_maxRank","rank","currentDefines","currentFallbacks","_fullscreenViewport","_onContextRestoredObserver","_savedStateDepthTest","_savedStateStencilTest","_isRenderTargetTexture","RegisterShaderCodeProcessing","effectWrapperName","customShaderCodeProcessing","_CustomShaderCodeProcessing","_GetShaderCodeProcessing","_importPromises","vertexUrl","extraInitializations","_postConstructor","importPromises","fragmentUrl","defineCustomBindings","newUniforms","newSamplers","waitImportsLoaded","bindCustomBindings","FresnelParameters","leftColor","rightColor","newFresnelParameters","otherFresnelParameters","parsedFresnelParameters","_FresnelParametersParser","PrepareUniformsForImageProcessing","PrepareSamplersForImageProcessing","samplersList","_colorCurvesEnabled","_colorGradingEnabled","_colorGradingWithGreenDepth","_colorGradingBGR","_exposure","_toneMappingEnabled","_toneMappingType","TONEMAPPING_STANDARD","_contrast","vignetteCenterX","vignetteCenterY","vignetteCameraFov","_vignetteBlendMode","VIGNETTEMODE_MULTIPLY","_vignetteEnabled","_ditheringEnabled","_ditheringIntensity","_skipFinalColorClamp","_applyByPostProcess","_colorGradingTexture","colorGradingWithGreenDepth","colorGradingBGR","toneMappingType","vignetteCentreY","vignetteCentreX","vignetteBlendMode","ditheringEnabled","ditheringIntensity","skipFinalColorClamp","forPostProcess","_VIGNETTEMODE_MULTIPLY","TONEMAPPING_KHR_PBR_NEUTRAL","TONEMAPPING_ACES","overrideAspectRatio","inverseWidth","inverseHeight","vignetteScaleY","vignetteScaleX","vignetteScaleGeometricMean","Mix","VIGNETTEMODE_OPAQUE","_VIGNETTEMODE_OPAQUE","serializeAsColorCurves","_ImageProcessingConfigurationParser","MaterialDetailMapDefines","DETAIL","DETAILDIRECTUV","DETAIL_NORMALBLENDMETHOD","diffuseBlendLevel","roughnessBlendLevel","bumpLevel","_normalBlendMethod","MATERIAL_NORMALBLENDMETHOD_WHITEOUT","DetailTextureEnabled","MaterialStencilState","_funcRef","MiscDirtyFlag","_backFaceCulling","TextureDirtyFlag","_cullBackFaces","blockDirtyMechanism","_blockDirtyMechanism","markDirty","atomicMaterialsUpdate","_onBindObserver","onUnBindObservable","_onUnBindObservable","_needDepthPrePass","_fogEnabled","_fillMode","WireFrameFillMode","LineListDrawMode","LineLoopDrawMode","LineStripDrawMode","PointFillMode","PointListDrawMode","forcePointsCloud","doNotAdd","_forceGLSL","checkReadyOnlyOnce","_storeEffectOnSubMeshes","disableColorWrite","depthFunction","separateCullingPass","_cachedDepthWriteState","_cachedColorWriteState","_cachedDepthFunctionState","_indexInSceneMaterialArray","meshMap","_markAllSubMeshesAsFresnelDirty","_markAllSubMeshesAsAttributesDirty","_markAllSubMeshesAsPrePassDirty","_markAllSubMeshesAsAllDirty","RandomId","_createUniformBuffer","addMaterial","useMaterialMeshMap","OnEventObservable","_markAllSubMeshesAsTexturesAndMiscDirty","forceMaterialDirty","AllDirtyFlag","overrideOrientation","_cachedMaterial","_cachedVisibility","_serializePlugins","targetPlugin","currentHotSwapingState","clipPlaneState","allDone","lastError","tempSubMesh","blockMaterialDirtyMechanism","_DirtyCallbackArray","_TextureDirtyCallBack","LightDirtyFlag","_LightsDirtyCallBack","FresnelDirtyFlag","_FresnelDirtyCallBack","AttributesDirtyFlag","_AttributeDirtyCallBack","_MiscDirtyCallBack","_PrePassDirtyCallBack","_markAllSubMeshesAsDirty","_RunDirtyCallBacks","_AllDirtyCallBack","_ImageProcessingDirtyCallBack","_markAllSubMeshesAsFresnelAndMiscDirty","_FresnelAndMiscDirtyCallBack","_TextureAndMiscDirtyCallBack","performancePriority","onScenePerformancePriorityChangedObservable","freeProcessedMaterials","sourceMesh","_releaseVertexArrayObject","overloadedAlbedo","LegacyPBRMaterial","pluginClassName","pluginData","pluginClassType","MATERIAL_NORMALBLENDMETHOD_RNM","markAsImageProcessingDirty","markAsFresnelDirty","markAsPrePassDirty","markAsLightDirty","_areFresnelDirty","_arePrePassDirty","_normals","_externalProperties","_setDefaultValue","cloneTo","defValue","_DiffuseTextureEnabled","_DetailTextureEnabled","_DecalMapEnabled","_AmbientTextureEnabled","_OpacityTextureEnabled","_ReflectionTextureEnabled","_EmissiveTextureEnabled","_SpecularTextureEnabled","_BumpTextureEnabled","_LightmapTextureEnabled","_RefractionTextureEnabled","ColorGradingTextureEnabled","_ColorGradingTextureEnabled","FresnelEnabled","_FresnelEnabled","_ClearCoatTextureEnabled","_ClearCoatBumpTextureEnabled","_ClearCoatTintTextureEnabled","_SheenTextureEnabled","_AnisotropicTextureEnabled","_ThicknessTextureEnabled","_RefractionIntensityTextureEnabled","_TranslucencyIntensityTextureEnabled","_TranslucencyColorTextureEnabled","_IridescenceTextureEnabled","_TempFogColor","_TmpMorphInfluencers","influencers","maxAttributesCount","needsPreviousMatrices","abstractMesh","sceneUbo","previousBones","_CopyBonesTransformationMatrices","lightFallbackRank","SHADOWS","applyDecalAfterDetail","specularSupported","LIGHTMAPEXCLUDED","equalsFloats","materialSupportsBoneTexture","nonExcluded","useVertexColor","useMorphTargets","useVertexAlpha","useBakedVertexAnimation","PrepareDefinesForBakedVertexAnimation","previousMultiview","previousDefine","previousDefine16Bits","previousPrePass","texturesList","isOrtho","isPersp","projectedLightTexture","uniformBuffersList","updateOnlyBuffersList","uniformsListOrOptions","_Configurations","previousWorldMatrices","previousViewProjection","currentViewProjection","lastUpdateFrameId","numMRT","geometryTextureDescription","defineName","_pluginManager","_activatePlugin","resolveIncludes","MaterialPluginManager","_pluginDefineNames","_addPlugin","_forceDisposeTextures","_shaderType","collectDefines","_activeTextures","rxOption","_activePlugins","_activePluginsForExtraEvents","_MaterialPluginClassToMainDefine","_MaterialPluginCounter","_handlePluginEvent","_codeInjectionPoints","defineNamesFromPlugins","_collectPointNames","_defineNamesFromPlugins","_handlePluginEventIsReadyForSubMesh","_handlePluginEventPrepareDefinesBeforeAttributes","_handlePluginEventPrepareDefines","_handlePluginEventBindForSubMesh","_handlePluginEventHasRenderTargetTextures","_handlePluginEventFillRenderTargetTextures","_handlePluginEventHardBindForSubMesh","_uniformList","_uboList","_injectCustomCode","_uboDeclaration","_vertexDeclaration","_fragmentDeclaration","pointName","existingCallback","injectedCode","regexFlags","matchOption","rx","newCode","fullPointName","UnregisterAllMaterialPlugins","inited","_subMaterials","_hookArray","addMultiMaterial","getSubMaterial","cloneChildren","newMultiMaterial","matIndex","subMat","forceDisposeChildren","_lastUpdateFrameId","storeEffectOnSubMeshes","normalMatrix","_cachedEffect","isCachedMaterialInvalid","_textureArrays","_externalTextures","_uints","_colors3Arrays","_colors4Arrays","_quaternions","_quaternionsArrays","_matrixArrays","_matrices3x3","_matrices2x2","_vectors2Arrays","_vectors3Arrays","_vectors4Arrays","_textureSamplers","_multiview","externalTextures","samplerObjects","setColor3Array","setColor4Array","setQuaternionArray","float32Array","existingDefineIdx","defineToAdd","previousDefines","effectOverride","_drawWrapperOverride","useSceneUBO","getCachedMaterial","propValue","textureArrays","ints","uints","floats","floatsArrays","colors3","colors3Arrays","colors4","colors4Arrays","vectors2","vectors3","vectors4","matrixArray","matrices3x3","matrices2x2","vectors2Arrays","vectors3Arrays","vectors4Arrays","quaternionsArrays","shaderMaterial","StandardMaterialDefines","SPECULAR","SPECULARDIRECTUV","ALPHAFROMDIFFUSE","DIFFUSEFRESNEL","REFRACTIONFRESNEL","EMISSIVEFRESNEL","FRESNEL","GLOSSINESS","ROUGHNESS","EMISSIVEASILLUMINATION","LINKEMISSIVEWITHDIFFUSE","REFLECTIONFRESNELFROMSPECULAR","USE_LOCAL_REFRACTIONMAP_CUBIC","REFRACTION","REFRACTIONMAP_3D","REFLECTIONOVERALPHA","ALPHATEST_AFTERALLALPHACOMPUTATIONS","RGBDREFRACTION","IS_REFLECTION_LINEAR","IS_REFRACTION_LINEAR","setReflectionMode","modeToEnable","_specularTexture","_useAlphaFromDiffuseTexture","_useEmissiveAsIllumination","_linkEmissiveWithDiffuse","_useReflectionOverAlpha","_useReflectionFresnelFromSpecular","_useGlossinessFromSpecularMapAlpha","_worldViewProjectionMatrix","_shouldUseAlphaFromDiffuseTexture","_opacityFresnelParameters","_diffuseFresnelParameters","_emissiveFresnelParameters","_refractionFresnelParameters","_reflectionFresnelParameters","diffuseFresnelParameters","opacityFresnelParameters","toLuminance","reflectionFresnelParameters","refractionFresnelParameters","emissiveFresnelParameters","serializeAsFresnelParameters","DefaultMaterialFactory","forceNoUniformBuffer","_noUBO","_dynamic","_uniformLocations","_uniformSizes","_uniformArraySizes","_uniformLocationPointer","_needSync","_bufferIndex","_createBufferOnWrite","_currentFrameId","_updateMatrix3x3ForEffect","_updateMatrix2x2ForEffect","_updateFloatForEffect","_updateFloat2ForEffect","_updateFloat3ForEffect","_updateFloat4ForEffect","_updateFloatArrayForEffect","_updateArrayForEffect","_updateIntArrayForEffect","_updateUIntArrayForEffect","_updateMatrixForEffect","_updateMatricesForEffect","_updateVector3ForEffect","_updateVector4ForEffect","_updateColor3ForEffect","_updateColor4ForEffect","_updateDirectColor4ForEffect","_updateIntForEffect","_updateInt2ForEffect","_updateInt3ForEffect","_updateInt4ForEffect","_updateUIntForEffect","_updateUInt2ForEffect","_updateUInt3ForEffect","_updateUInt4ForEffect","_updateMatrix3x3ForUniform","_updateMatrix2x2ForUniform","_updateFloatForUniform","_updateFloat2ForUniform","_updateFloat3ForUniform","_updateFloat4ForUniform","_updateFloatArrayForUniform","_updateArrayForUniform","_updateIntArrayForUniform","_updateUIntArrayForUniform","_updateMatrixForUniform","_updateMatricesForUniform","_updateVector3ForUniform","_updateVector4ForUniform","_updateColor3ForUniform","_updateColor4ForUniform","_updateDirectColor4ForUniform","_updateIntForUniform","_updateInt2ForUniform","_updateInt3ForUniform","_updateInt4ForUniform","_updateUIntForUniform","_updateUInt2ForUniform","_updateUInt3ForUniform","_updateUInt4ForUniform","isDynamic","_bufferData","_fillAlignment","alignment","oldPointer","strideSize","addMatrix","addFloat2","addColor3","addColor4","addMatrix3x3","addMatrix2x2","_getNames","_numBuffers","_buffersEqual","buf1","buf2","_copyBuffer","_createNewBuffer","_checkNewFrame","updateUniform","fround","updateUniformArray","arraySizes","countToFour","baseStride","FloatRound","_TempBuffer","_TempBufferInt32View","_TempBufferUInt32View","updateUniformDirectly","_currentEffectName","setDataBuffer","_MAX_UNIFORM_SIZE","Space","LOCAL","WORLD","BONE","colorChannelToLinearSpace","ToLinearSpace","colorChannelToLinearSpaceExact","colorChannelToGammaSpace","colorChannelToGammaSpaceExact","getHashCode","toColor4","otherColor","_result","minimizeInPlaceFromFloats","maximizeInPlaceFromFloats","floorToRef","fractToRef","fract","equalsToFloats","negateToRef","clampToRef","subtractFromFloats","toHexString","intR","intG","intB","ToHex","fromHexString","toHSV","toHSVToRef","dm","convertedColor","HSVtoRGBToRef","chroma","FromHSV","FromHexString","FromInts","tangent1","tangent2","squared","cubed","part3","part4","Hermite1stDerivative","Hermite1stDerivativeToRef","Red","Green","Blue","_BlackReadOnly","Purple","Magenta","Teal","Random","returnAsColor3","intA","FromColor3","CheckColors4","PHI","GetNearPlaneToRef","GetFarPlaneToRef","GetLeftPlaneToRef","GetTopPlaneToRef","GetBottomPlaneToRef","IsPointInFrustum","MathHelpers","extractMinAndMaxIndexed","tmpVectorA","tmpVectorB","tmpVectorC","tmpVectorAB","tmpVectorAC","tmpVectorNormal","tmpVectorAvgNormal","nativeOverride","refinedT","refinedT2","Angle","_radians","degrees","BetweenTwoPoints","theta","BetweenTwoVectors","cosVal","FromRadians","FromDegrees","Arc2","startPoint","midPoint","endPoint","startToMid","midToEnd","centerPoint","startAngle","a3","Path2","addLineTo","previousPoint","addArcTo","midX","midY","endX","endY","numberOfSegments","increment","currentAngle","addQuadraticCurveTo","controlX","controlY","val0","val2","addBezierCurveTo","originTangentX","originTangentY","destinationTangentX","destinationTangentY","val3","isPointInside","isInside","edgeLow","edgeHigh","edgeDx","edgeDy","perpEdge","getPointAtLengthPosition","normalizedLengthPosition","lengthPosition","bToA","nextOffset","localOffset","StartingAt","Path3D","firstNormal","alignTangentsWithPath","_curve","_distances","_tangents","_binormals","_pointAtData","previousPointArrayIndex","subPosition","interpolateReady","interpolationMatrix","_raw","_alignTangentsWithPath","getCurve","getTangents","getNormals","getBinormals","getDistances","getPointAt","_updatePointAtData","getTangentAt","getNormalAt","getBinormalAt","getDistanceAt","getPreviousPointIndexAt","getSubPositionAt","getClosestPositionTo","smallestDistance","closestPosition","subLength","curvePoints","slicePoints","_getFirstNonNullVector","tg0","pp0","_normalVector","curTang","prevNor","prevBinor","_getLastNonNullVector","nNVector","nLVector","va","tgl","interpolateTNB","_updateInterpolationMatrix","_setPointAtData","currentLength","tangentFrom","normalFrom","binormalFrom","tangentTo","normalTo","binormalTo","quatFrom","RotationQuaternionFromAxis","quatTo","nbPoints","bez","CreateCubicBezier","CreateHermiteSpline","nSeg","hermite","CreateCatmullRomSpline","catmullRom","pointsCount","CatmullRom","totalPoints","ArcThru3Points","fullCircle","vec1","zAxis","len4","len1_sq","len2_sq","len3_sq","len4_sq","dot1","dStep","_computeLength","lastPoint","continuedPoints","norm","magnitude","transformation","invertedMatrix","_TmpMatrix","point3","xz","invPyth","FromPositionAndNormalToRef","ExtractAsInt","LerpAngle","Repeat","InverseLerp","NormalizeRadians","Denormalize","DeltaAngle","PingPong","SmoothStep","MoveTowards","maxDelta","MoveTowardsAngle","RangeToPercent","PercentToRange","HighestCommonFactor","HCF","Scalar","TwoPi","Log2","surface","otherSize","_ExtractAsInt","otherVector","rotateToRef","normalizeToNew","RandomToRef","_ZeroReadOnly","FromFloatsToRef","value3","value4","PointInTriangle","CenterToRef","DistanceOfPointFromSegment","segA","segB","l2","proj","toQuaternion","getNormalToRef","applyRotationQuaternionToRef","qy","qz","qw","applyRotationQuaternion","projectOnPlane","projectOnPlaneToRef","MathTmp","denom","scaledV","isNonUniformWithinEpsilon","isNonUniform","reorderInPlace","tem","rotateByQuaternionAroundPointToRef","GetClipFactor","vector0","vector1","GetAngleBetweenVectors","GetAngleBetweenVectorsOnPlane","vNormal","PitchYawRollToMoveBetweenPointsToRef","PitchYawRollToMoveBetweenPoints","slerp","vector0Dir","vector1Dir","vector0Length","vector1Length","scale0","scale1","omega","invSin","goal","FromFloatArray","FromFloatArrayToRef","_UpReadOnly","DownReadOnly","_DownReadOnly","RightReadOnly","_RightReadOnly","_LeftReadOnly","_LeftHandedForwardReadOnly","_RightHandedForwardReadOnly","LeftHandedBackwardReadOnly","_LeftHandedBackwardReadOnly","RightHandedBackwardReadOnly","_RightHandedBackwardReadOnly","_OneReadOnly","Backward","ry","rz","rw","ProjectToRef","inDirection","ReflectToRef","UnprojectFromTransform","Unproject","UnprojectToRef","UnprojectFloatsToRef","screenSource","ProjectOnTriangleToRef","p1p0","p2p0","p2p1","vectorp0","p1p0L","p2p0L","p2p1L","nl","cosA","projVector","projP","s0","s1","s2","e0","e1","tmp3","e0proj","e0projL","cosG","triProj","axis1","axis2","axis3","RotationFromAxisToRef","RotationQuaternionFromAxisToRef","FromVector3","otherQuaternion","conjugateToRef","conjugate","invertInPlace","zAxisY","sqw","sqz","sqx","sqy","sinHalfBeta","cosHalfBeta","gammaPlusAlpha","gammaMinusAlpha","fromRotationMatrix","m11","m12","m13","m21","m22","m23","m31","m32","m33","AreClose","quat0","quat1","Inverse","InverseToRef","IsIdentity","sinByLength","FromEulerVector","FromUnitVectorsToRef","vecFrom","vecTo","halfRoll","halfPitch","halfYaw","sinRoll","cosRoll","sinPitch","cosPitch","sinYaw","cosYaw","RotationAlphaBetaGamma","halfGammaPlusAlpha","halfGammaMinusAlpha","halfBeta","FromLookDirectionLH","LookDirectionLHToRef","FromLookDirectionRH","LookDirectionRHToRef","num2","num3","num4","num5","num6","Use64Bits","markAsUpdated","_UpdateFlagSeed","_isIdentity","_isIdentity3x2","_isIdentityDirty","_isIdentity3x2Dirty","_updateIdentityStatus","isIdentityDirty","isIdentity3x2","isIdentity3x2Dirty","m10","m20","m30","det_22_33","det_21_33","det_21_32","det_20_33","det_20_32","det_20_31","resultM","otherM","addToSelf","m00","m01","m02","m03","cofact_00","cofact_01","cofact_02","cofact_03","detInv","det_12_33","det_11_33","det_11_32","det_10_33","det_10_32","det_10_31","det_12_23","det_11_23","det_11_22","det_10_23","det_10_22","det_10_21","addTranslationFromFloats","removeRotationAndScaling","multiplyByFloatsToRef","tm0","tm1","tm2","tm3","tm4","tm5","tm6","tm7","tm8","tm9","tm10","tm11","tm12","tm13","tm14","tm15","om0","om1","om2","om3","om4","om5","om6","om7","om8","om9","om10","om11","om12","om13","om14","om15","om","decomposeToTransformNode","preserveScalingNode","useAbsoluteScaling","signY","absoluteScaling","signZ","sx","sy","getRowToRef","rowVector","TransposeToRef","toggleProjectionMatrixHandInPlace","_IdentityReadOnly","initialM11","initialM12","initialM13","initialM14","initialM21","initialM22","initialM23","initialM24","initialM31","initialM32","initialM33","initialM34","initialM41","initialM42","initialM43","initialM44","wx","wy","wz","RotationXToRef","RotationYToRef","RotationZToRef","c1","useYAxisForCoplanar","startM","endM","startScale","startRotation","startTranslation","endScale","endRotation","endTranslation","resultScale","resultRotation","resultTranslation","LookAtLH","xSquareLength","ez","LookAtRH","LookDirectionLH","LookDirectionRH","OrthoLH","znear","zfar","halfZRange","mtxConvertNDCToHalfZRange","OrthoOffCenterLH","OrthoOffCenterRH","PerspectiveLH","reverseDepthBufferMode","isVerticalFovFixed","PerspectiveFovReverseLHToRef","PerspectiveFovRH","PerspectiveFovReverseRHToRef","GetFinalMatrix","zmin","zmax","GetAsMatrix2x2","GetAsMatrix3x3","rm1","rm2","rm3","rm4","rm5","rm6","rm7","rm8","rm9","rm10","rm11","rm12","rm13","rm14","rm15","rm","Reflection","temp2","temp3","yw","xw","BuildTuple","toGlobalToRef","SH3ylmBasisConstants","SH3ylmBasisTrigonometricTerms","applySH3","SHCosKernelConvolution","preScaled","deltaSolidAngle","convertIncidentRadianceToIrradiance","convertIrradianceToLambertianRadiance","preScaleForRendering","updateFromArray","FromPolynomial","polynomial","_harmonics","addAmbient","colorVector","harmonics","FromHarmonics","CreateBoxVertexData","topBaseAt","bottomBaseAt","topIndex","bottomIndex","basePositions","topFaceBase","bottomFaceBase","topFaceOrder","bottomFaceOrder","scaleArray","DEFAULTSIDE","faceUV","faceColors","nbFaces","_ComputeSides","frontUVs","backUVs","totalColors","translationMatrix","bottomPlane","topPlane","negXPlane","posXPlane","negZPlane","posZPlane","_GetDefaultSideOrientation","_originalBuilderSideOrientation","capSubdivisions","capDetail","radialSegments","radiusTop","radiusBottom","heightMinusCaps","thetaLength","capsTopSegments","topCapSubdivisions","capsBottomSegments","bottomCapSubdivisions","indexArray","pi2","cosAlpha","sinAlpha","coneLength","vl","indexRow","sinA","coneHeight","vDat","CreateCapsule","capsule","hasRings","enclose","cap","CAP_ALL","surfaceNb","angleStep","ringVertex","ringNormal","ringFirstVertex","ringFirstNormal","quadNormal","ringIdx","createCylinderCap","circleVector","vbase","textureScale","textureCoordinate","CAP_START","CAP_END","xpAxis","xnAxis","ypAxis","ynAxis","zpAxis","znAxis","DecalVertex","vertexIdx","vertexIdxForBones","localPositionOverride","localNormalOverride","matrixIndicesOverride","matrixWeightsOverride","CreateDecal","hasSkeleton","useLocalComputation","localMode","getPositionData","getNormalsData","localPositions","localNormals","matIndices","matWeights","matIndicesExtra","matWeightsExtra","cameraWorldTarget","currentVertexDataIndex","extractDecalVector3","indexId","captureUVS","emptyArray","clipSize","clipVertices","clipFactor","mat0Index","v0Indices","v0Weights","mat1Index","v1Indices","v1Weights","ind","sumw","v0LocalPositionX","v0LocalPositionY","v0LocalPositionZ","v1LocalPositionX","v1LocalPositionY","v1LocalPositionZ","v0LocalNormalX","v0LocalNormalY","v0LocalNormalZ","interpNormalX","interpNormalY","interpNormalZ","clipResult","nV1","nV2","nV3","nV4","v1Out","v2Out","v3Out","sourceMeshAsMesh","matrixData","_thinInstanceDataStorage","numMatrices","thinInstanceMatrix","ofst","decalWorldMatrix","inverseDecalWorldMatrix","meshWorldMatrix","oneFaceVertices","faceVertices","vertexNb","CreateGeodesic","primTri","_PrimaryIsoTriangle","geoOptions","GeodesicData","BuildGeodesicData","sizeX","sizeY","sizeZ","CreatePolyhedron","CreateGoldberg","geodesicData","goldbergData","toGoldbergPolyhedronData","goldberg","GoldbergMesh","CreateGoldbergVertexData","verts","ba","ca","pdata","vCoord","nbSharedFaces","sharedNodes","nbUnsharedFaces","poleNodes","adjacentFaces","nbFacesAtPole","faceCenters","faceXaxis","faceYaxis","faceZaxis","CreateTiledGroundVertexData","xmin","xmax","tileRow","tileCol","tileSize","applyTile","xTileMin","zTileMin","xTileMax","zTileMax","rowLength","CreateGroundFromHeightMapVertexData","colorFilter","alphaFilter","heightBuffer","idx3","idx4","isVisibleIdx1","isVisibleIdx3","GroundMesh","_subdivisionsX","_subdivisionsY","_maxX","_maxZ","_minX","_minZ","CreateTiledGround","tiledGround","CreateGroundFromHeightMap","passHeightBufferInCallback","onBufferLoaded","icoVertices","ico_indices","vertices_unalias_id","ico_vertexuv","island","current_indice","face_vertex_pos","face_vertex_uv","v012","v_id","interp_vertex","pos_x0","pos_x1","pos_interp","vertex_normal","centroid_x0","centroid_x1","uv_x0","uv_x1","uv_interp","CreateIcoSphere","CreateLathe","NO_CAP","invertUV","rotated","CreateRibbon","closeArray","CreateLineSystemVertexData","vertexColors","CreateDashedLinesVertexData","dashSize","gapSize","dashNb","curvect","lg","nb","shft","dashshft","curshft","CreateLineSystem","lineColors","lineSystem","CreateLines","CreateDashedLines","positionFunction","nbSeg","_creationDataStorage","updateMeshPositions","dashedLines","_CreationDataStorage","CreatePlaneVertexData","sourcePlane","setDirection","CreatePolygonVertexData","fUV","fColors","wrp","disp","distZ","totalLen","cumulate","earcutInjection","smoothingThreshold","contours","polygonTriangulation","PolygonMeshBuilder","hNb","hPoint","addHole","ExtrudePolygon","CreatePolyhedronVertexData","polyhedra","nbfaces","faceIdx","fl","polyhedron","CreateRibbonVertexData","defaultOffset","customUV","customColors","us","vs","uTotalDistance","vTotalDistance","minlg","ar1","ar2","idc","closePathCorr","closeArrayCorr","vectlg","l1","path1nb","indexFirst","indexLast","positions32","normals32","uvs32","pathPoint","buildBoundingInfo","colorIndex","areNormalsFrozen","isFacetDataEnabled","getFacetDataParameters","ribbon","ExtrudeShape","_ExtrudeShapeGeneric","closeShape","adjustFrame","ExtrudeShapeCustom","scaleFunction","rotationFunction","ribbonCloseArray","ribbonClosePath","rotateFunction","rbCA","rbCP","updtbl","extrusionPathArray","path3D","binormals","returnRotation","scl","returnScale","shapePath","planed","capPath","pointCap","barycenter","extrudedGeneric","dedupTopBottomIndices","totalZRotationSteps","totalYRotationSteps","zRotationStep","normalizedZ","angleZ","yRotationStep","normalizedY","angleY","rotationZ","afterRotZ","ShapePath","_tempPaths","_holes","_currentPath","quadraticCurveTo","cpx","cpy","bezierCurveTo","cpx1","cpy1","cpx2","cpy2","extractHoles","CreateShapePath","glyph","glyphs","ha","line_height","underlineThickness","CreateText","letterIndex","holeVectors","shapeVectors","localHolesCopy","holePoints","perLetterFaceUV","perLetterFaceColors","CreateTiledBoxVertexData","flipTile","NO_FLIP","tileWidth","tileHeight","alignH","alignHorizontal","alignV","alignVertical","halfDepth","faceVertexData","CreateTiledPlaneVertexData","baseAlignV","facePositions","newFaceUV","lu","li","vec0","mtrx0","mtrx2","mtrx3","mtrx4","mtrx5","CreateTiledBox","tilesX","tilesY","adjustX","adjustY","startX","startY","CENTER","uvBase","ROTATE_TILE","ROTATE_ROW","FLIP_TILE","FLIP_ROW","FLIP_N_ROTATE_TILE","FLIP_N_ROTATE_ROW","partialBottomRow","partialTopRow","partialLeftCol","partialRightCol","uvPart","uvBaseBR","uvBaseTR","uvBaseLC","uvBaseRC","CreateTiledPlane","outerAngle","nextI","nextJ","CreateTorusKnotVertexData","tube","tubularSegments","getPos","cu","su","quOverP","tang","bitan","jNext","CreateTorusKnot","torusKnot","CreateTube","radiusFunction","tubePathArray","circlePaths","radiusFunctionFinal","circlePath","rad","decodeMesh","decoderModule","onIndicesData","onAttributeData","Decoder","DecoderBuffer","Init","GetEncodedGeometryType","TRIANGULAR_MESH","DecodeBufferToMesh","error_msg","num_faces","_malloc","GetTrianglesUInt32Array","HEAPF32","_free","POINT_CLOUD","pointCloud","PointCloud","DecodeBufferToPointCloud","num_points","processAttribute","num_components","byte_stride","byte_offset","DT_FLOAT32","typedArrayConstructor","DT_INT8","HEAP8","DT_INT16","HEAP16","DT_INT32","HEAP32","DT_UINT8","HEAPU8","DT_UINT16","HEAPU16","DT_UINT32","HEAPU32","numValues","GetAttributeDataArrayForAllPoints","GetAttributeByUniqueId","dracoAttributeTypes","POSITION","TEX_COORD","GetAttributeId","GetAttribute","workerFunction","decoderPromise","DracoDecoderModule","wasmBinary","DracoCompression","DecoderAvailable","wasmUrl","wasmBinaryUrl","fallbackUrl","GetDefaultNumWorkers","hardwareConcurrency","_Default","ResetDefault","skipDispose","numWorkers","DefaultNumWorkers","workerPool","_workerPoolPromise","wasmBinaryProvided","numberOfWorkers","useWorkers","urlNeeded","jsModule","decoderInfo","wasmBinaryPromise","LoadFileAsync","decoderWasmBinary","workerBlobUrl","AutoReleaseWorkerPool","initializeWebWorker","worker","_decoderModulePromise","createDecoderAsync","decodeMeshToMeshDataAsync","gltfNormalizedOverride","applyGltfNormalizedOverride","resultIndices","resultAttributes","dataViewCopy","decodeMeshToGeometryAsync","meshData","_decodeMeshToGeometryForGltfAsync","decodeMeshAsync","MeshoptCompression","MeshoptDecoder","decodeGltfBufferAsync","unpackUnorm","unpack111011","unpack8888","unpackRot","GaussianSplattingMesh","_covariancesATexture","_covariancesBTexture","_centersTexture","keepInRam","_vertexCount","_frameIdLastUpdate","_modelViewMatrix","_canPostToWorker","_readyToDisplay","_splatPositions","_splatIndex","_covariancesA","_covariancesB","_keepInRam","_delayedTextureUpdate","_oldDirection","_useRGBACovariants","_tmpCovariances","_sortIsDirty","loadFileAsync","_postToWorker","forced","cameraMatrix","depthMix","_depthMix","effectiveMeshReplacement","_TypeNameToEnum","_ValueNameToEnum","ParseHeader","ubuf","headerEndIndex","chunkElement","chunkCount","rowVertexOffset","rowChunkOffset","double","uint","short","ushort","uchar","ElementMode","Chunk","chunkMode","vertexProperties","chunkProperties","rowVertexLength","rowChunkLength","headerEnd","_RowOutputLength","_GetCompressedChunks","compressedChunks","minScale","maxScale","_GetSplat","rowOutputLength","Uint8ClampedArray","chunkIndex","r0","r3","getFloat64","compressedChunk","_SH_C0","ConvertPLYToSplat","useCoroutine","_PlyConversionBatchSize","ConvertPLYToSplatAsync","createYieldingScheduler","updateDataAsync","plyBuffer","splatsData","_copyTextures","newGS","_copySource","makeGeometryUnique","_instanciateWorker","binfo","forcedInstanceCount","_makeSplat","destinationIndex","fBuffer","uBuffer","covA","covB","matrixRotation","matrixScale","covBSItemSize","covariances","covIndex","createTextureFromDataF16","centers","createTextureFromData","createTextureFromDataU8","_updateData","_updateSplatIndexBuffer","textureLength","lineCountUpdate","ProgressiveUpdateAmount","textureLengthPerUpdate","partCount","updateLine","splatIndexBase","_updateSubTextures","_SplatBatchSize","updateData","runCoroutineSync","thinInstanceSetBuffer","lineCount","updateTextureFromDataF16","texelStart","texelCount","covAView","covBView","colorsView","centersView","updateTextureFromData","updateTextureFromDataU8","_CreateWorker","BigInt64Array","indexMix","thinInstanceBufferUpdated","floatMix","viewProj","depthFactor","_FacetDataStorage","facetNb","partitioningSubdivisions","partitioningBBoxRatio","facetDataEnabled","facetParameters","bbSize","subDiv","facetDepthSort","facetDepthSortEnabled","_InternalAbstractMeshDataInfo","_hasVertexAlpha","_useVertexColors","_numBoneInfluencers","_applyFog","_receiveShadows","_facetData","_layerMask","_computeBonesUsingShaders","_isActive","_onlyForInstances","_onlyForInstancesIntermediate","_actAsRegularMesh","_currentLODIsUpToDate","_collisionRetryCount","_morphTargetManager","_renderingGroupId","_bakedVertexAnimationManager","_positions","_pointerOverDisableMeshTesting","_meshCollisionData","_rawBoundingInfo","_sideOrientationHint","_inheritVisibility","BILLBOARDMODE_NONE","BILLBOARDMODE_X","BILLBOARDMODE_Z","BILLBOARDMODE_USE_POSITION","mustDepthSortFacets","facetDepthSortFrom","collisionRetryCount","retryCount","_syncGeometryWithMorphTargetManager","_updateNonUniformScalingState","_markSubMeshesAsMiscDirty","rawBoundingInfo","_onCollideObserver","onCollideObservable","onCollisionPositionChange","_onCollisionPositionChangeObserver","onCollisionPositionChangeObservable","_markSubMeshesAsDirty","inheritVisibility","parentVisible","pointerOverDisableMeshTesting","_setMaterial","onMaterialChangedObservable","_unBindEffect","getMaterialForRenderPass","setMaterialForRenderPass","_resyncLightSources","_lightSources","cullingStrategy","CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY","definedFacingForward","_renderingGroup","isNearPickable","showSubMeshesBoundingBox","enablePointerMoveEvents","outlineColor","outlineWidth","overlayColor","overlayAlpha","_masterMesh","_boundingInfo","_boundingInfoIsDirty","_intersectionsInProgress","_unIndexed","_isWorldMatrixFrozen","_getEffectiveParent","_getActionManagerForTrigger","initialCall","isIn","passId","getLOD","updateExtends","makeItUnique","_updateBoundingInfo","getRawBoundingInfo","setBoundingInfo","normalizeToUnitCube","ignoreRotation","skeletonsEnabled","_preActivate","_preActivateForIntermediateRendering","renderId","_activate","intermediateRendering","_postActivate","_freeze","_unFreeze","isAnInstance","movePOV","amountRight","amountUp","amountForward","calcMovePOV","translationDelta","defForwardMult","rotatePOV","flipBack","twirlClockwise","tiltRight","calcRotatePOV","_ApplySkeleton","skeletonMatrices","matricesIndicesData","matricesWeightsData","matricesIndicesExtraData","matricesWeightsExtraData","applySkeleton","finalMatrix","tempMatrix","transformFromFloatsToRef","matWeightIdx","inf","_getData","getVertexData","copyVerticesData","_outputData","applyMorph","getTargetData","getPositions","getUVs","influence","needExtras","updatePositionsArray","previousLength","dataIndex","worldMatrixFromCache","_updateSubMeshesBoundingInfo","subIndex","IsGlobal","updateBoundingInfo","_afterComputeWorldMatrix","otherBoundingInfo","collisionEnabled","moveWithCollisions","_collideForSubMesh","_generatePointsArray","_lastColliderWorldVertices","_lastColliderTransformMatrix","_trianglePlanes","_shouldConvertRHS","_processCollisionsForSubMeshes","collisionsScalingMatrix","collisionsTransformMatrix","intersectInfo","anySubmeshSupportIntersect","canIntersects","worldOrigin","doNotCloneChildren","releaseSubMeshes","freeActiveMeshes","renderingManager","maintainStateBetweenFrames","restoreDispachedFlags","generators","disableFacetData","onAfterWorldMatrixUpdateObservable","_initFacetData","facetNormals","facetPositions","facetPartitioning","updateFacetData","bInfo","depthSortedIndices","needs32bits","facetDepthSortFunction","sqDistance","depthSortedFacets","facetDepthSortOrigin","bbSizeMax","getFacetLocalNormals","getFacetLocalPositions","getFacetLocalPartitioning","depthSort","distanceTo","sind","facetData","getFacetPosition","getFacetPositionToRef","getFacetNormal","getFacetNormalToRef","localNorm","getFacetsAtLocalCoordinates","oz","getClosestFacetAtCoordinates","projected","checkFace","facing","invMat","invVect","getClosestFacetAtLocalCoordinates","tmpx","tmpy","tmpz","projx","projy","projz","facetsInBlock","fib","shortest","tmpDistance","gpuMemoryOnly","alignWithNormal","upDirection","axisX","axisZ","getConnectedParticleSystems","OCCLUSION_TYPE_STRICT","OCCLUSION_ALGORITHM_TYPE_ACCURATE","CULLINGSTRATEGY_STANDARD","CULLINGSTRATEGY_OPTIMISTIC_INCLUSION","CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY","_IsoVector","rotate60About","rotateNeg60About","rotate120","rotateNeg120","toCartesianOrigin","isoGridSize","cartesian","closestTo","innerFacets","isoVecsABOB","isoVecsOBOA","isoVecsBAOA","vertexTypes","IDATA","PolyhedronData","vecToidx","m1","n1","oVec","aVec","bVec","oaVec","abVec","obVec","idxR","isoId","isoIdR","vDist","vertByDist","edgematch","calcCoeffs","thirdR3","LSQD","coau","cobu","coav","cobv","createInnerFacets","edgeVecsABOB","pointR","prevR","nextR","maxPrev","maxLeftPrev","mapABOBtoOBOA","mapABOBtoBAOA","MapToFace","faceNb","aidx","bidx","OA","OB","tempVec","distFrom","vert","primVert","distFromO","distFromA","distFromB","vertData","innerToData","mapABOBtoDATA","mapOBOAtoDATA","mapBAOAtoDATA","orderData","nearTo","nearIndex","setOrder","adjVerts","dualFaces","goldbergPolyhedronData","verticesNb","cz","boundingBias","_boundingBias","CreateGeometryForMesh","_totalVertices","_indexBufferIsUpdatable","_positionsCache","useBoundingInfoFromGeometry","setAllVerticesData","_vertexArrayObjects","_extend","applyToGeometry","_notifyUpdate","_disposeVertexArrayObjects","disposeExistingBuffer","numOfMeshes","_updateExtend","_resetPointsArrayCache","_createGlobalSubMesh","synchronizeInstances","updateVerticesDataDirectly","indexToBind","overrideVertexArrayObjects","vbs","getVertexBuffers","vaos","copyWhenShared","isVertexBufferUpdatable","_delayInfo","needToUpdateSubMeshes","totalIndices","_totalIndices","dontForceSubMeshRecreation","getIndexBuffer","releaseForMesh","shouldDispose","_invalidateInstanceVertexArrayObject","_geometry","previousGeometry","pushGeometry","_applyToMesh","onGeometryUpdated","_queueLoad","delayLoadingFile","_delayLoadingFunction","toLeftHanded","tIndices","tTemp","tPositions","tNormals","arrayIdx","removeGeometry","stopChecking","_toNumberArray","clearCachedData","vbName","serializeVerticeData","_isExpanded","_GetGeometryByLoadedUniqueId","_ImportGeometry","parsedGeometry","geometryUniqueId","getGeometryById","binaryInfo","_binaryInfo","positionsAttrDesc","positionsData","normalsAttrDesc","normalsData","tangetsAttrDesc","tangentsData","uvsAttrDesc","uvsData","uvs2AttrDesc","uvs2Data","uvs3AttrDesc","uvs3Data","uvs4AttrDesc","uvs4Data","uvs5AttrDesc","uvs5Data","uvs6AttrDesc","uvs6Data","colorsAttrDesc","matricesIndicesAttrDesc","floatIndices","matricesIndicesExtraAttrDesc","matricesWeightsAttrDesc","indicesAttrDesc","indicesData","subMeshesAttrDesc","subMeshesData","matricesIndex","_CleanMatricesWeights","parsedSubMesh","_shouldGenerateFlatShading","convertToFlatShadedMesh","noInfluenceBoneIndex","getLastSkeletonById","numBoneInfluencer","firstZeroWeight","mweight","parsedVertexData","boundingBoxMinimum","boundingBoxMaximum","hasUVs2","hasUVs3","hasUVs4","hasUVs5","hasUVs6","hasColors","hasMatricesIndices","hasMatricesWeights","ImportVertexData","_GoldbergMeshParser","relatedGoldbergFace","poleOrShared","fromPole","_changeGoldbergFaceColors","colorRange","newCols","setGoldbergFaceColors","updateGoldbergFaceColors","_changeGoldbergFaceUVs","uvRange","points5","points6","setGoldbergFaceUVs","newUVs","updateGoldbergFaceUVs","placeOnGoldbergFaceAt","_GroundMeshParser","generateOctree","chunksCount","octreeBlocksSize","subdivide","getHeightAtCoordinates","tmpVect","_heightQuads","_initHeightQuads","_computeHeightQuads","facet","_getFacetAt","getNormalAtCoordinates","getNormalAtCoordinatesToRef","tmpMat","updateCoordinateHeights","quad","facet1","facet2","v1v2","v1v3","v1v4","norm1","norm2","_instancedMeshFactory","InstancedMesh","instancedBuffers","_indexInSourceMeshInstanceArray","addInstance","_sourceMesh","setPivotMatrix","_syncSubMeshes","applySkeletonOrOptions","_registerInstanceForRenderId","edgesShareWithInstances","_edgesRenderers","_billboardWorldMatrix","tempMaster","sourceMeshLODLevels","getLODLevels","newSourceMesh","removeInstance","instantiateHierarchy","onNewNodeCreated","newSourcedMesh","getChildTransformNodes","registerInstancedBuffer","_userInstancedBuffersStorage","strides","sizes","vertexArrayObjects","_processInstancedBuffers","renderSelf","expectedSize","_disposeInstanceSpecificData","_LinesMeshParser","_isShaderMaterial","_color4","_lineMaterial","colorEffect","doNotDisposeMaterial","_InstanceDataStorage","batchCache","_InstancesBatch","batchCacheReplacementModeInFrozenMode","instancesBufferSize","_ThinInstanceDataStorage","matrixBuffer","previousMatrixBuffer","matrixBufferSize","worldMatrices","_InternalMeshDataInfo","_areNormalsFrozen","_preActivateId","_LODLevels","_useLODScreenCoverage","_effectiveMaterial","_forcedInstanceCount","_overrideRenderingFillMode","FRONTSIDE","useLODScreenCoverage","_internalMeshDataInfo","_sortLODLevels","_sourcePositions","_sourceNormals","_onBeforeRenderObservable","_onBeforeBindObservable","_onAfterRenderObservable","onBetweenPassObservable","_onBetweenPassObservable","_onBeforeDrawObservable","onBeforeDraw","_onBeforeDrawObserver","_sideOrientation","overrideMaterialSideOrientation","overrideRenderingFillMode","cloneMeshMap","worldMatrixInstancedBuffer","previousWorldMatrixInstancedBuffer","instancesPreviousData","manualUpdateOfWorldMatrixInstancedBuffer","manualUpdate","manualUpdateOfPreviousWorldMatrixInstancedBuffer","previousManualUpdate","forceWorldMatrixInstancedBufferUpdate","forceMatrixUpdates","clonePhysicsImpostor","useClonedMeshMap","_postMultiplyPivotMatrix","directDescendants","getImpostorForPhysicsObject","_onBeforeDraw","effectiveMaterial","_onMeshReadyObserverAdded","_checkReadinessObserver","doNotInstantiate","ib","hasLODLevels","sortingOrderFactor","distanceOrScreenCoverage","MeshLODLevel","getLODLevelAtDistance","internalDataInfo","removeLODLevel","bSphere","distanceToCamera","compareValue","compareSign","meshArea","onLODLevelSelection","_checkDelayState","bypassInstanceData","forceInstanceSupport","freezeNormals","unfreezeNormals","overridenInstanceCount","sceneRenderId","intermediateDefaultRenderId","defaultRenderId","selfDefaultRenderId","previousRenderId","thinInstanceRefreshBoundingInfo","edgesRenderer","needToRecreate","subdivisionSize","markVerticesDataAsUpdatable","oldGeometry","allowInstancedRendering","_getLinesIndexBuffer","_linesIndexCount","registerAfterRender","unregisterAfterRender","isReplacementMode","previousBatch","isInIntermediateRendering","onlyForInstances","_renderWithInstances","visibleInstanceCount","currentInstancesBufferSize","instancesPreviousBuffer","needUpdateBuffer","masterMeshPreviousWorldMatrix","INSTANCEDMESH_SORT_TRANSPARENT","instanceMesh","m2","_previousWorldMatrix","previousWorld0","previousWorld1","previousWorld2","previousWorld3","_activeIndices","_renderWithThinInstances","previousMatrixData","_thinInstanceCreateMatrixBuffer","visibleInstancesForSubMesh","renderWithRenderPassId","checkFrustumCulling","numActiveCameras","oldCameraMaxZ","oldCamera","cleanMatrixWeights","_normalizeSkinWeightsAndExtra","_normalizeSkinFourWeights","numWeights","recip","validateSkinning","skinned","numberNotSorted","missingWeights","maxUsedWeights","numberNotNormalized","numInfluences","usedWeightCounts","lastWeight","usedWeights","tolerance","numBones","numBadBoneIndices","getBinaryData","setMaterialById","bakeTransformIntoVertices","submeshes","flipFaces","bakeIndependentlyOfChildren","resetLocalMatrix","_disposeThinInstanceSpecificData","applyDisplacementMap","heightMapWidth","heightMapHeight","applyDisplacementMapFromBuffer","_getFlattenedNormals","normalsCount","flipNormalGeneration","_convertToUnIndexedMesh","flattenNormals","separateVertices","meshBoundingInfo","previousSubmeshes","setPositions","setNormals","setTangents","setUVs","synchronize","previousOne","flipNormals","vertex_data","increaseVertices","numberPerEdge","currentIndices","tempIndices","deltaNormal","deltaUV","vertexIndex","uvPtr","normalsPtr","positionPtr","forceSharedVertices","currentUVs","currentPositions","currentColors","currentMatrixIndices","currentMatrixWeights","currentMatrixIndicesExtra","currentMatrixWeightsExtra","matrixIndices","matrixWeights","matrixIndicesExtra","matrixWeightsExtra","pstring","indexPtr","_PhysicsImpostorParser","physicObject","optimizeIndices","vectorPositions","dupes","realPos","testedPosition","originalSubMeshes","pickable","physicsMass","physicsFriction","physicsRestitution","serializationInstance","thinInstances","enablePicking","_userThinInstanceBuffersStorage","userThinInstance","renderOverlay","getActiveTarget","showBoundingBox","useFlatShading","lodMeshIds","lodDistances","coverages","lodCoverages","parsedInstance","setPositionsForCPUSkinning","setNormalsForCPUSkinning","_softwareSkinningFrameId","minVector","maxVector","allow32BitsIndices","meshSubclass","subdivideWithSubMeshes","multiMultiMaterials","_MergeMeshesCoroutine","MergeMeshesAsync","materialIndexArray","indiceArray","currentsideOrientation","getVertexDataFromMesh","sourceVertexData","sourceTransform","meshVertexDatas","mergeCoroutine","_mergeCoroutine","mergeCoroutineStep","applyToCoroutine","_applyToCoroutine","applyToCoroutineStep","setMaterialByID","ExtendToGoldberg","_applyTo","makeSyncFunction","_UniqueIDGenerator","updateGeometry","meshOrGeometry","matInfo","_TransformVector3Coordinates","transformedCoordinate","_TransformVector3Normals","transformedNormal","_TransformVector4Normals","_FlipFaces","splitBasedOnMaterialID","newMaterialInfo","use32BitsIndices","forceCloneIndices","mergeMaterialIds","enableCompletion","vertexDatas","_validate","indexOffset","vertexOffset","currentMaterialInfo","vertexDataList","matInfoA","matInfoB","indexSum","positionsOffset","_MergeElement","nonNullOthers","sumLen","transformRange","ret32","MeshInvalidPositionsError","getElementCount","positionsElementCount","validateElementCount","elementCount","_ExtractFrom","ExtractFromGeometry","newColors","p1p2x","p1p2y","p1p2z","p3p2x","p3p2y","p3p2z","faceNormalx","faceNormaly","faceNormalz","v1x","v1y","v1z","v2x","v2y","v2z","v3x","v3y","v3z","computeFacetNormals","computeFacetPositions","computeFacetPartitioning","computeDepthSort","faceNormalSign","xSubRatio","ySubRatio","zSubRatio","subSq","b1x","b1y","b1z","b2x","b2y","b2z","b3x","b3y","b3z","block_idx_v1","block_idx_v2","block_idx_v3","block_idx_o","dsf","materialInfoFromJSON","MeshBuilder","_Builders_boxBuilder_js__WEBPACK_IMPORTED_MODULE_2__","_Builders_tiledBoxBuilder_js__WEBPACK_IMPORTED_MODULE_3__","uk","_Builders_sphereBuilder_js__WEBPACK_IMPORTED_MODULE_4__","_6","_Builders_discBuilder_js__WEBPACK_IMPORTED_MODULE_1__","WA","_Builders_icoSphereBuilder_js__WEBPACK_IMPORTED_MODULE_17__","Ds","_Builders_ribbonBuilder_js__WEBPACK_IMPORTED_MODULE_0__","fv","_Builders_cylinderBuilder_js__WEBPACK_IMPORTED_MODULE_5__","zk","_Builders_torusBuilder_js__WEBPACK_IMPORTED_MODULE_6__","YA","_Builders_torusKnotBuilder_js__WEBPACK_IMPORTED_MODULE_7__","sF","_Builders_linesBuilder_js__WEBPACK_IMPORTED_MODULE_8__","uz","sh","NX","_Builders_shapeBuilder_js__WEBPACK_IMPORTED_MODULE_10__","tF","_Builders_latheBuilder_js__WEBPACK_IMPORTED_MODULE_11__","_Builders_tiledPlaneBuilder_js__WEBPACK_IMPORTED_MODULE_13__","HU","_Builders_planeBuilder_js__WEBPACK_IMPORTED_MODULE_12__","_Builders_groundBuilder_js__WEBPACK_IMPORTED_MODULE_14__","km","ol","RI","_Builders_polygonBuilder_js__WEBPACK_IMPORTED_MODULE_9__","_Builders_tubeBuilder_js__WEBPACK_IMPORTED_MODULE_15__","_Builders_polyhedronBuilder_js__WEBPACK_IMPORTED_MODULE_16__","D6","_Builders_geodesicBuilder_js__WEBPACK_IMPORTED_MODULE_20__","_Builders_goldbergBuilder_js__WEBPACK_IMPORTED_MODULE_21__","_Builders_decalBuilder_js__WEBPACK_IMPORTED_MODULE_18__","_Builders_capsuleBuilder_js__WEBPACK_IMPORTED_MODULE_19__","_S","IndexedVector2","PolygonPoints","originalPoints","computeBounds","lmin","lmax","_addToepoint","_epoints","_outlinepoints","_eholes","bjsEarcut","holepoints","buildVertexData","bounds","positionscount","totalCount","_addSide","ulength","vc","vp","vc_norm","vp_norm","vn_norm","dotp","dotn","_mainDrawWrapperOverride","createIfNotExisting","disposeWrapper","createBoundingBox","addToMesh","_linesIndexBuffer","_wasDispatched","_currentMaterial","_renderingMesh","getDefaultMaterial","rootMaterial","_isMultiMaterial","checkStopper","_intersectLines","_intersectUnIndexedLines","_intersectUnIndexedTriangles","_intersectTriangles","newRenderingMesh","minVertexIndex","maxVertexIndex","_projectOnTrianglesToRef","tmpDist","_projectOnUnIndexedTrianglesToRef","projectToRef","thinInstanceAdd","_thinInstanceUpdateBufferSize","thinInstanceSetMatrixAt","thinInstanceAddSelf","thinInstanceRegisterAttribute","_thinInstanceInitializeUserStorage","thinInstanceSetAttributeAt","staticBuffer","thinInstanceAllowAutomaticStaticBufferRecreation","_thinInstanceRecreateBuffer","thinInstancePartialBufferUpdate","forceRefreshParentInfo","numInstances","kindIsMatrix","currentSize","convertRHSToLHS","_billboardMode","useBillboardPosition","_computeUseBillboardPath","preserveParentRotationForBillboard","_preserveParentRotationForBillboard","useBillboardPath","_infiniteDistance","_right","_rotation","_rotationQuaternion","_scaling","_transformToBoneReferal","_isAbsoluteSynced","ignoreNonUniformScaling","reIntegrateRotationIntoRotationQuaternion","_poseMatrix","_usePivotMatrix","_absolutePosition","_absoluteScaling","_absoluteRotationQuaternion","_indexInSceneTransformNodesArray","_nonUniformScaling","addTransformNode","_markAsDirtyInternal","customMarkAsDirty","updatePoseMatrix","pivotMatrixUpdated","localMatrixUpdated","_syncAbsoluteScalingAndRotation","postMultiplyPivotMatrix","_pivotMatrixInverse","newWorldMatrix","unfreezeWorldMatrix","isWorldMatrixFrozen","absolutePositionX","absolutePositionY","absolutePositionZ","setPositionWithLocalVector","getPositionExpressedInLocalSpace","invLocalWorldMatrix","targetPoint","yawCor","pitchCor","rollCor","dv","_LookAtVectorCache","parentRotationMatrix","quaternionRotation","setPivotPoint","getPivotPoint","getPivotPointToRef","getAbsolutePivotPointToRef","_children","preserveScalingSign","updatePivot","quatRotation","invParentMatrix","composedMatrix","_TmpRotation","attachToBone","affectedTransformNode","_currentParentWhenAttachingToBone","detachFromBone","resetToPreviousParent","_RotationAxisCache","rotateAround","finalScale","finalTranslation","finalRotation","translationMatrixInv","displacementVector","tempV3","addRotation","accumulation","_TmpScaling","cameraWorldMatrix","cameraGlobalPosition","_TmpTranslation","BillboardUseParentOrientation","eulerAngles","camInObjSpace","independentOfChildren","bakedMatrix","tmpRotationQuaternion","getPositionInCameraSpace","currentSerializationObject","_getDescendants","storedRotation","storedRotationQuaternion","sizeVec","maxDimension","serializeAsQuaternion","FileFaceOrientation","worldAxisForNormal","worldAxisForFileX","worldAxisForFileY","rightPromise","leftPromise","upPromise","downPromise","frontPromise","backPromise","_AreaElement","cubeInfo","totalSolidAngle","du","halfTexel","minUV","fileFace","_FileFaces","worldDirection","MAX_HDRI_VALUE","PRESERVE_CLAMPED_COLORS","currentMax","correctionFactor","rgbe2float","float32array","red","green","blue","ldexp","mantissa","readStringLine","character","endOfHeader","findFormat","dataPosition","PanoramaToCubeMapTools","ConvertPanoramaToCubemap","readRGBEPixelsRLE","num_scanlines","scanline_width","scanLineArrayBuffer","scanLineArray","resultArray","readRGBEPixelsNotRLE","inputWidth","inputHeight","CreateCubemapTexture","FACE_FRONT","FACE_BACK","FACE_LEFT","FACE_RIGHT","FACE_UP","FACE_DOWN","texSize","sampleFactor","sampleFactorSqr","rotDX1","rotDX2","xv1","xv2","CalcProjectionSpherical","inputY","AndOrNotEvaluator","Eval","evaluateCallback","_HandleParenthesisContent","parenthesisContent","ori","_SimplifyNegation","andj","booleanString","itemBuilder","observedArrayFunctions","_ObserveArray","unObserveFunctions","_observeArrayfunction","oldFunction","newFunction","unObserveFunction","transcoderModulePromise","TranscodeLevel","loadedFile","imageIndex","levelIndex","convertToRgb565","dstSize","getImageTranscodedSizeInBytes","transcodeImage","ConvertDxtToRgb565","blockWidth","blockHeight","blockY","blockX","dstI","getImageWidth","getImageHeight","BASIS","initializeBasis","BasisFile","GetFileInfo","basisFile","getHasAlpha","imageCount","getNumImages","imageInfo","levelCount","getNumLevels","levelInfo","ignoreSupportedFormats","GetSupportedTranscodeFormat","needsConversion","startTranscoding","loadSingleImage","mipCount","loadMipmapLevels","transcodedPixels","BASIS_FORMATS","cTFETC1","cTFETC2","cTFBC1","cTFBC3","cTFBC4","cTFBC5","cTFBC7","cTFPVRTC1_4_RGB","cTFPVRTC1_4_RGBA","cTFASTC_4x4","cTFATC_RGB","cTFATC_RGBA_INTERPOLATED_ALPHA","cTFRGBA32","cTFRGB565","cTFBGR565","cTFRGBA4444","cTFFXT1_RGB","cTFPVRTC2_4_RGB","cTFPVRTC2_4_RGBA","cTFETC2_EAC_R11","cTFETC2_EAC_RG11","BasisToolsOptions","JSModuleURL","WasmModuleURL","_WorkerPromise","_Worker","_actionId","initHandler","messageHandler","BindTexture","transcodeResult","BasisTools","GetInternalFormatFromBasisFormat","basisFormat","_instanceNumber","_blockEntityCollection","RGBDTextureTools","ExpandRGBDTexture","GenerateBase64StringFromPixelData","npixels","createImageData","putImageData","canvas2","ctx2","_GenerateBase64StringFromTextureAsync","yieldAfterMS","runCoroutine","abortSignal","reschedule","stepResult","coroutineFactory","DataReader","readAsync","_dataView","_dataByteOffset","readUint32","readUint8Array","Decode","skipBytes","DDSD_MIPMAPCOUNT","DDPF_LUMINANCE","FourCCToInt32","Int32ToFourCC","FOURCC_DXT1","FOURCC_DXT3","FOURCC_DXT5","FOURCC_DX10","extendedHeader","headerLengthInt","fourCC","dxgiFormat","_GetHalfFloatAsFloatRGBAArrayBuffer","dataOffset","srcPos","StoreLODInAlphaChannel","_GetHalfFloatRGBAArrayBuffer","_GetFloatRGBAArrayBuffer","_GetFloatAsHalfFloatRGBAArrayBuffer","_GetFloatAsUIntRGBAArrayBuffer","_GetHalfFloatAsUIntRGBAArrayBuffer","_GetRGBAArrayBuffer","rOffset","gOffset","bOffset","aOffset","_ExtractLongWordOrder","_GetRGBArrayBuffer","_GetLuminanceArrayBuffer","loadMipmaps","lodIndex","currentFace","destTypeMustBeFilterable","sphericalPolynomialFaces","mip","internalCompressedFormat","blockBytes","bpp","computeFormats","startFace","floatAvailable","halfFloatAvailable","dataGetter","dataGetterPolynomial","unpackAlignment","unpaddedRowSize","__mergedStore","__decoratorInitialStore","GetDirectStore","classKey","GetMergedStore","initialStore","generateSerializableMember","classStore","targetKey","generateExpandMember","setCallback","jsFunc","nativeFunc","creationFunction","instanciate","textureMap","sourceProperty","AllowLoadingUniqueId","serializedProperties","propertyDescriptor","targetPropertyName","ParseProperties","Instanciate","CloneValue","destinationObject","shallowCopyValues","doNotCopyList","mustCopyList","GetAllPropertyNames","sourceValue","typeOfSourceValue","clonedValue","Deferred","MinMaxReducer","_depthRendererId","setSourceTexture","depthRedux","disposeAll","warnedMap","warnOnce","_dumpToolsEngine","_enginePromise","_CreateDumpRenderer2","thinEngineClass","Dispose","passPixelShader","_DumpFramebuffer","DumpData","DumpDataAsync","toArrayBuffer","_CreateDumpRenderer","ToBlob","EncodeScreenshotCanvasData","dumpToolsEngine","DumpTools","DefaultEnvironmentTextureImageType","CurrentVersion","MagicBytes","manifestString","normalizeEnvInfo","specularDataPosition","imageType","mipmaps","UploadLevelsAsync","_OnImageReadyAsync","expandTexture","rgbdPostProcess","generateNonLODTextures","lodTextures","cubeRtt","tempTexture","ImageBitmap","_UploadLevelsAsync","mipSlices","irradianceInfo","irradiance","_UpdateRGBDAsync","proxyPromise","_internalTexture","BaseError","_setPrototypeOf","GLTFLoaderUnexpectedMagicError","LoadFileError","RequestFileError","ReadFileError","innerError","Base64DataUrlRegEx","FileToolsOptions","DefaultRetryStrategy","RetryStrategy","ExponentialBackoff","BaseUrl","CorsBehavior","PreprocessUrl","ScriptBaseUrl","ScriptPreprocessUrl","CleanUrl","LoadImageConfiguration","getRequiredSize","usingObjectURL","onErrorHandler","imgBmp","handlersList","unloadHandlersList","loadHandler","blockedURI","disposition","cspException","effectiveDirective","originalPolicy","noOfflineSupport","IsCustomRequestAvailable","_request","loadFromOfflineSupport","FilesInputStore","FilesToLoad","ReadFile","fileRequest","fileOrUrl","onOpened","TestBase64DataUrl","DecodeBase64UrlToBinary","DecodeBase64UrlToString","RequestFile","loadUrl","onReadyStateChange","retryHandle","onLoadEnd","retryLoop","retryIndex","IsFileURL","retryStrategy","waitTime","DecodeBase64ToBinary","DecodeBase64ToString","FileTools","_injectLTSFileTools","getColorToRef","Color3Gradient","factor2","getFactor","updateFunc","gradientIndex","RegisteredExternalClasses","facesExpected","dataSize","headerDataView","littleEndian","glType","glTypeSize","glFormat","glBaseInternalFormat","pixelDepth","numberOfArrayElements","numberOfFaces","bytesOfKeyValueData","loadType","COMPRESSED_2D","_upload2DCompressedLevels","HEADER_LEN","imageSize","COMPRESSED_3D","TEX_2D","TEX_3D","applyConfig","binariesAndModulesContainer","KTX2DecoderModule","jsDecoderModule","KTX2DECODER","wasmUASTCToASTC","LiteTranscoder_UASTC_ASTC","wasmUASTCToBC7","LiteTranscoder_UASTC_BC7","wasmUASTCToRGBA_UNORM","LiteTranscoder_UASTC_RGBA_UNORM","wasmUASTCToRGBA_SRGB","LiteTranscoder_UASTC_RGBA_SRGB","wasmUASTCToR8_UNORM","LiteTranscoder_UASTC_R8_UNORM","wasmUASTCToRG8_UNORM","LiteTranscoder_UASTC_RG8_UNORM","jsMSCTranscoder","MSCTranscoder","wasmMSCTranscoder","wasmZSTDDecoder","ZSTDDecoder","WasmBinary","JSModule","ktx2Decoder","wasmBinaries","KTX2Decoder","DefaultDecoderOptions","mipmap","decodedData","_Initialize","_WorkerPoolPromise","_DecoderModulePromise","URLConfig","_KTX2DecoderModule","UseFromWorkerThread","WASMMemoryManager","LoadBinariesFromCurrentThread","numWorkersOrOptions","workerPoolOption","WorkerPool","compressedTexturesCaps","_getKTX2DecoderOptions","dataCopy","oglTexture2D","transcodedFormat","isInGammaSpace","transcoderName","isUncompressedFormat","DefaultKTX2DecoderOptions","_useRGBAIfOnlyBC1BC3AvailableWhenUASTC","_ktx2DecoderOptions","useRGBAIfASTCBC7NotAvailableWhenUASTC","_useRGBAIfASTCBC7NotAvailableWhenUASTC","useRGBAIfOnlyBC1BC3AvailableWhenUASTC","forceRGBA","_forceRGBA","forceR8","_forceR8","forceRG8","_forceRG8","bypassTranscoders","_bypassTranscoders","transcodeFormatDecisionTree","UASTC","transcodeFormat","yes","engineFormat","roundToMultiple4","_CheckLimit","_LogLimitOutputs","_GenerateLimitMessage","MessageLimitReached","_Levels","_AddLogEntry","_LogCache","OnNewCacheEntry","_FormatMessage","padStr","_LogDisabled","_LogEnabled","formattedMessage","optionals","logFunc","LogCache","ClearLogCache","errorsCount","LogLevels","MessageLogLevel","WarningLogLevel","ErrorLogLevel","NoneLogLevel","AllLogLevel","_forceFullscreenViewport","_activated","_sourceTexture","_reductionSteps","reductionInitial","reduction","Observer","FromPromise","onObserverAdded","notifyIfTriggered","_numObserversMarkedAsDeleted","_hasNotified","_onObserverAdded","insertFirst","unregisterOnFirstCall","_lastNotifiedValue","makeObserverTopPriority","makeObserverBottomPriority","cleanLastNotifiedState","hasSpecificMask","average","_average","lastSecAverage","_lastSecAverage","_totalAccumulated","_totalValueCount","_startMonitoringTime","_lastSecAccumulated","_lastSecTime","_lastSecValueCount","fetchResult","Enabled","beginMonitoring","endMonitoring","newFrame","frameSampleSize","_rollingFrameTime","RollingAverage","timeMs","_lastFrameTimeMs","averageFrameTime","averageFrameTimeVariance","variance","instantaneousFPS","isSaturated","bottomValue","_sampleCount","_m2","_wrapPosition","_PivotCached","_OldPivotPoint","_PivotPostMultiplyPivotMatrix","_PivotTranslation","_PivotTmpVector","maxRetries","baseInterval","expandRGBDTexture","expandedTexture","EncodeTextureToRGBD","outputTextureType","ApplyPostProcess","screenshotCanvas","CreateScreenshot","forceDownload","_GetScreenshotSize","renderContext","newWidth","newHeight","CreateScreenshotUsingRenderTarget","DownloadBlob","renderingCanvas","antialiasing","enableStencilBuffer","useLayerMask","customizeTexture","finalWidth","finalHeight","targetTextureSize","originalSize","renderWhenReady","renderToTexture","CreateScreenshotAsync","CreateScreenshotUsingRenderTargetAsync","_GlobalId","compareFn","_duplicateId","__smartArrayFlags","getOrAddWithFactory","getOrAdd","curVal","getAndRemove","keyStr","chr1","chr2","chr3","enc1","enc2","enc3","enc4","decodedString","bufferLength","EnableFor","hasTags","addTags","removeTags","RemoveTagsFrom","matchesTagsQuery","tagsQuery","MatchesQuery","DisableFor","asString","tagsArray","_AddTagTo","_RemoveTagFrom","postProcessName","encodedTexture","int32View","ProcessAsync","lodPostProcess","_GetTextureDataAsync","CreateResizedCopy","useBilinearMode","passPostProcess","_TYPE_INDEXED","_TYPE_RGB","_TYPE_GREY","_TYPE_RLE_INDEXED","_TYPE_RLE_RGB","_TYPE_RLE_GREY","_ORIGIN_MASK","_ORIGIN_SHIFT","_ORIGIN_BL","_ORIGIN_BR","_ORIGIN_UL","_ORIGIN_UR","id_length","colormap_type","image_type","colormap_index","colormap_length","colormap_size","pixel_size","pixel_data","use_rle","use_pal","use_grey","pixel_total","palettes","x_start","y_start","x_step","y_step","y_end","x_end","TGATools","_getImageData8bits","colormap","_getImageData16bits","_getImageData24bits","_getImageData32bits","_getImageDataGrey8bits","_getImageDataGrey16bits","setAndStartTimer","observableParameters","completeRate","onTick","breakCondition","onAborted","onEachCountObservable","onTimerAbortedObservable","onTimerEndedObservable","_breakOnNextTick","_timeToEnd","shouldBreak","_breakCondition","_setState","_contextObservable","_observableParameters","clearObservables","timeToEnd","CeilingPOT","pot","IsAbsoluteUrl","FetchToRef","returnUnchangedIfNoSlash","previousAngle","newAngle","previousAngleRad","newAngleRad","MakeArray","allowsNullUndefined","PointerEvent","SetReferrerPolicyBehavior","FileToolLoadImage","FileToolsLoadFile","forceAbsoluteUrl","GetAbsoluteUrl","useModule","ReadFileAsDataURL","fileToLoad","FileToolsReadFile","FileAsURL","Format","decimals","IsEmpty","windowElement","_IsOffScreenCanvas","convertToBlob","binStr","newWindow","base64Image","IsBase64","PerformanceLogLevel","PerformanceUserMarkLogLevel","_StartUserMark","_EndUserMark","PerformanceConsoleLogLevel","_StartPerformanceConsole","_EndPerformanceConsole","_StartPerformanceCounterDisabled","_EndPerformanceCounterDisabled","counterName","_Performance","measure","GetClassName","__bjsclassName__","First","getFullClassName","moduleName","classObj","__bjsmoduleName__","DelayAsync","UseCustomRequestHeaders","CustomRequestHeaders","PerformanceNoneLogLevel","_done","_successCallback","syncedIterations","breakFunction","_RegisteredTypes","fqdn","_UniqueIdCounter","_xhr","createXMLHttpRequest","_requestURL","CustomRequestModifiers","_injectCustomRequestHeaders","_shouldSkipRequestModifications","SkipRequestModificationForBabylonCDN","workers","_pendingActions","_workerInfos","workerPromise","idle","workerInfo","_executeOnIdleWorker","nextAction","maxWorkers","createWorkerAsync","DefaultOptions","_maxWorkers","_createWorkerAsync","idleTimeElapsedBeforeRelease","MorphTarget","_influence","onInfluenceChanged","_onDataLayoutChanged","hasPositions","hadPositions","hadNormals","hadTangents","hadUVs","newOne","areUpdatesFrozen","_blockCounter","_syncActiveTargets","_targets","_targetInfluenceChangedObservers","_targetDataLayoutChangedObservers","_supportsNormals","_supportsTangents","_supportsUVs","_tempInfluences","_canUseTextureForTargets","optimizeInfluencers","enableNormalMorphing","enableTangentMorphing","enableUVMorphing","_numMaxInfluencers","_useTextureToStoreTargets","addMorphTargetManager","_influences","useTextureToStoreTargets","EnableTextureStorage","getTargetByName","addTarget","removeTarget","influenceCount","MaxActiveMorphTargetsInVertexAttributeMode","mustUpdateTexture","removeMorphTargetManager","morph","startDirectionFunction","directionToUpdate","particle","randX","randY","randZ","startPositionFunction","positionToUpdate","ConeParticleEmitter","_buildHeight","heightRange","emitFromSpawnPointOnly","ConeDirectedParticleEmitter","diffVector","lifeTime","CylinderParticleEmitter","inverseWorldMatrix","yPos","radiusDistribution","positionRadius","xPos","zPos","CylinderDirectedParticleEmitter","_particle","HemisphericParticleEmitter","randRadius","MeshParticleEmitter","_storedNormal","useMeshNormalsForDirection","randomFaceIndex","faceIndexA","faceIndexB","faceIndexC","vertexA","vertexB","vertexC","randomVertex","PointParticleEmitter","SphereParticleEmitter","SphereDirectedParticleEmitter","ImageProcessingConfigurationDefines","_noiseTexture","_startSizeGradients","_emitRateGradients","_lifeTimeGradients","getDragGradients","getLimitVelocityGradients","getColorGradients","getSizeGradients","getColorRemapGradients","_colorRemapGradients","getAlphaRemapGradients","_alphaRemapGradients","getLifeTimeGradients","getAngularSpeedGradients","getVelocityGradients","getStartSizeGradients","getEmitRateGradients","manualEmitCount","disposeOnStop","_rampGradients","textureMask","_isSubEmitter","CloudPoint","idxInGroup","pcs","translateFromPivot","_ind","_stillInvisible","_pcs","isSphere","PointsGroup","groupID","posFunction","_positionFunction","_attachedSubEmitters","_currentColor1","_currentColor2","_currentSize1","_currentSize2","_currentAngularSpeed1","_currentAngularSpeed2","_currentVelocity1","_currentVelocity2","_currentLimitVelocity1","_currentLimitVelocity2","_currentDrag1","_currentDrag2","_Count","_updateCellInfoFromSystem","updateCellIndex","offsetAge","changeSpeed","_randomCellOffset","_initialEndSpriteCellID","_initialStartSpriteCellID","_initialSpriteCellLoop","_inheritParticleInfoToSubEmitter","subEmitter","inheritDirection","inheritedVelocityAmount","_inheritedVelocityOffset","_inheritParticleInfoToSubEmitters","_currentColorGradient","_currentSizeGradient","_currentAngularSpeedGradient","_currentVelocityGradient","_currentLimitVelocityGradient","_currentDragGradient","_initialDirection","remapData","_randomNoiseCoordinates1","_randomNoiseCoordinates2","ThinParticleSystem","_useRampGradients","_resetEffect","particles","_particles","isAlive","_emitterInverseWorldMatrix","_stockParticles","_newPartsExcess","_scaledColorStep","_colorDiff","_scaledDirection","_scaledGravity","_currentEmitRate1","_currentEmitRate2","_currentStartSize1","_currentStartSize2","_emitFromParticle","recycleParticle","lastParticle","_createParticle","_prepareParticle","_vertexArrayObject","noiseTextureData","updateFunction","noiseTextureSize","sameParticleArray","scaledUpdateSpeed","_scaledUpdateSpeed","previousAge","directionScale","limitVelocity","_emitterWorldMatrix","fetchedColorR","_fetchR","fetchedColorG","fetchedColorB","scaledForce","newGradient","_removeFactorGradient","factorGradient","_createRampGradientTexture","_rampGradientsTexture","_syncRampGradientTexture","drawWrappers","_vertexBuffer","_vertexBufferSize","vertexSize","cellIndexBuffer","directionBuffer","rampDataBuffer","indicesWireframe","_alive","_preStart","_currentEmitRateGradient","_currentStartSizeGradient","noiseTextureAsProcedural","stopSubEmitters","_postStop","_appendParticleVertex","newParticles","factorGradient1","factorGradient2","lifeTime1","lifeTime2","emitPower","preWarmOnly","_toBeDisposed","_appendParticleVertices","defaultViewMatrix","disposeAttachedSubEmitters","disposeEndSubEmitters","_activeParticleSystems","_disposeEmitterOnDispose","_subEmitters","templateIndex","subSystem","_rootParticleSystem","activeSubSystems","_prepareSubEmitterInternalArray","subEmitters","SubEmitter","_stopSubEmitters","_removeFromRoot","colorGradients","rampGradients","colorRemapGradients","colorRemapGradient","alphaRemapGradients","alphaRemapGradient","sizeGradients","sizeGradient","angularSpeedGradients","angularSpeedGradient","velocityGradients","velocityGradient","dragGradients","dragGradient","emitRateGradients","emitRateGradient","startSizeGradients","startSizeGradient","lifeTimeGradients","lifeTimeGradient","limitVelocityGradients","limitVelocityGradient","emitterType","cellArray","serializedGradient","BILLBOARDMODE_STRETCHED_LOCAL","_ParseParticleSystem","PointsCloudSystem","_positions32","_colors32","_uvs32","nbParticles","_promises","_isVisibilityBoxLocked","_groups","_groupCounter","_computeParticleColor","_computeParticleTexture","_computeParticleRotation","_computeBoundingBox","buildMeshAsync","_buildMesh","ec","_addParticle","_randomUnitVector","_getColorIndicesForCoord","pointsGroup","_groupImageData","colorIndices","_setPointsColorOrUV","isVolume","colorFromTexture","uvSetIndex","meshPos","meshInd","meshUV","meshCol","place","meshMatrix","idxPoints","id0","id1","id2","v0X","v0Y","v0Z","v1X","v1Y","v1Z","v2X","v2Y","v2Z","uv0X","uv0Y","uv1X","uv1Y","uv2X","uv2Y","uvec0","uvec1","col0X","col0Y","col0Z","col0A","col1X","col1Y","col1Z","col1A","col2X","col2Y","col2Z","col2A","col0","col1","col2","colvec0","colvec1","lamda","facetPoint","uvPoint","colPoint","biNorm","facetPlaneVec","gap","deltaS","deltaV","hsvCol","statedColor","colPoint3","pointColors","_groupDensity","_groupImgWidth","_groupImgHeight","_colorFromTexture","textureList","_textureNb","dataPromise","_calculateDensity","cumulativeAreas","nbFacets","remainingPoints","cumulativeArea","facetPointsWithFraction","floored","facetPoints","pointFunction","addSurfacePoints","colorWith","colored","addVolumePoints","setParticles","beforeUpdateParticles","colors32","tempVectors","camAxisX","camAxisY","camAxisZ","pindex","cindex","uindex","updateParticle","particleRotationMatrix","particlePosition","particleGlobalPosition","parentGlobalPosition","rotatedY","rotatedZ","rotMatrixValues","pivotBackTranslation","tmpVertex","vertexX","vertexY","vertexZ","rotatedX","pz","afterUpdateParticles","_indices32","refreshVisibleSize","setVisibilityBox","vis","isAlwaysVisible","computeParticleRotation","computeParticleColor","computeParticleTexture","computeBoundingBox","initParticles","CastingResult","_hasHit","_hitNormal","_hitPoint","_triangleIndex","hitPoint","hitNormal","hasHit","triangleIndex","setHitData","bodyIndex","_hitDistance","_rayFromWorld","_rayToWorld","hitDistance","hitNormalWorld","hitPointWorld","rayFromWorld","rayToWorld","setHitDistance","calculateHitDistance","_useDeltaForWorldStep","ammoInjection","Ammo","overlappingPairCache","bjsAMMO","_fixedTimeStep","_maxSteps","_tmpContactCallbackResult","_tmpContactPoint","_tmpContactNormal","_tmpVec3","_tmpMatrix","_collisionConfiguration","btSoftBodyRigidBodyCollisionConfiguration","btCollisionDispatcher","_overlappingPairCache","btDbvtBroadphase","_solver","btSequentialImpulseConstraintSolver","_softBodySolver","btDefaultSoftBodySolver","btSoftRigidDynamicsWorld","_tmpAmmoConcreteContactResultCallback","ConcreteContactResultCallback","addSingleResult","worldPoint","wrapPointer","btManifoldPoint","getPositionWorldOnA","m_normalWorldOnB","_tmpContactImpulse","getAppliedImpulse","_tmpContactDistance","getDistance","_raycastResult","_tmpAmmoTransform","btTransform","setIdentity","_tmpAmmoQuaternion","btQuaternion","_tmpAmmoVectorA","btVector3","_tmpAmmoVectorB","_tmpAmmoVectorC","_tmpAmmoVectorD","getWorldInfo","set_m_gravity","setFixedTimeStep","fixedTimeStep","setMaxSteps","_isImpostorInContact","contactTest","_isImpostorPairInContact","impostorA","impostorB","contactPairTest","_stepSimulation","stepSimulation","impostors","soft","beforeStep","mainImpostor","_afterSoftStep","afterStep","_onPhysicsCollideCallbacks","collideCallback","otherImpostor","otherImpostors","impulse","RopeImpostor","_ropeStep","_softbodyOrClothStep","bodyVertices","get_m_nodes","nbVertices","nodePositions","get_m_x","_isFromLine","normalDirection","ClothImpostor","vertexNormals","nodeNormals","get_m_n","localTranslation","generatePhysicsBody","_pluginData","toDispose","removePhysicsBody","isBodyInitRequired","colShape","_createShape","get_m_cfg","set_collisions","set_kDP","castObject","btCollisionObject","getCollisionShape","setActivationState","_DISABLE_DEACTIVATION_FLAG","addSoftBody","setBodyPressure","SoftbodyImpostor","setBodyStiffness","setBodyVelocityIterations","setBodyPositionIterations","localInertia","startTransform","calculateLocalInertia","setOrigin","myMotionState","btDefaultMotionState","rbInfo","btRigidBodyConstructionInfo","btRigidBody","setCollisionFlags","getCollisionFlags","_KINEMATIC_FLAG","NoImpostor","getChildShape","_DISABLE_COLLISION_FLAG","setDeltaPosition","addRigidBody","setBodyRestitution","setBodyFriction","removeSoftBody","removeRigidBody","generateJoint","impostorJoint","mainBody","connectedBody","connectedImpostor","joint","physicsJoint","jointData","DistanceJoint","btPoint2PointConstraint","mainAxis","connectedAxis","btHingeConstraint","BallAndSocketJoint","addConstraint","collision","removeJoint","removeConstraint","_addMeshVerts","btTriangleMesh","topLevelObject","topLevelQuaternion","triPoints","addTriangle","_softVertexData","newPoints","newNorms","_createSoftbody","btCompoundShape","triNorms","softBody","btSoftBodyHelpers","CreateFromTriMesh","setX","setY","setZ","_createCloth","segs","CreatePatch","_createRope","pathVectors","fixedPoints","ropeBody","CreateRope","_createCustom","onCreateCustomShape","_addHullVerts","btConvexHullShape","addPoint","ignoreChildren","impostorExtents","getObjectExtents","meshChildren","childrenAdded","childImpostor","parentMat","getOrigin","addChildShape","btSphereShape","btMultiSphereShape","setLocalScaling","CapsuleImpostor","capRadius","btCapsuleShape","CylinderImpostor","btCylinderShape","PlaneImpostor","BoxImpostor","btBoxShape","onCreateCustomMeshImpostor","triMesh","btBvhTriangleMeshShape","ConvexHullImpostor","onCreateCustomConvexHullImpostor","convexHull","CustomImpostor","setTransformationFromPhysicsBody","getMotionState","getWorldTransform","setPhysicsBodyTransformation","setWorldTransform","motionState","getLinearVelocity","getAngularVelocity","setBodyMass","setTotalMass","setMassProps","getBodyMass","getBodyFriction","friction","set_kDF","setFriction","getBodyRestitution","setRestitution","getBodyPressure","pressure","set_kPR","getBodyStiffness","stiffness","get_m_materials","set_m_kLST","getBodyVelocityIterations","velocityIterations","set_viterations","getBodyPositionIterations","positionIterations","set_piterations","appendAnchor","noCollisionBetweenLinkedBodies","nbAcross","nbUp","appendHook","sleepBody","forceActivationState","wakeUpBody","updateDistanceJoint","setMotor","maxForce","enableAngularMotor","setLimit","syncMeshWithImpostor","getRadius","getBoxSizeToRef","_tmpAmmoVectorRCA","_tmpAmmoVectorRCB","rayCallback","ClosestRayResultCallback","rayTest","get_m_hitNormalWorld","get_m_hitPointWorld","cannonInjection","CANNON","_physicsMaterials","_physicsBodiesToRemoveAfterStep","_firstFrame","_minus90X","_plus90X","_tmpPosition","_tmpDeltaPosition","_tmpUnityRotation","BJSCANNON","_extendNamespace","broadphase","NaiveBroadphase","solver","_cannonRaycastResult","RaycastResult","HeightmapImpostor","_removeMarkedPhysicsBodiesFromWorld","Vec3","oldBody","_addMaterial","bodyCreationObject","nativeOptions","addShape","_processChildMeshes","_updatePhysicsBodyTransformation","mainRotation","processMesh","pPosition","resetUpdateFlags","constraintData","pivotA","pivotB","axisA","axisB","collideConnected","Hinge2Joint","HingeConstraint","DistanceConstraint","SpringJoint","Spring","restLength","damping","localAnchorA","localAnchorB","LockJoint","LockConstraint","PointToPointConstraint","forceApplicationCallback","registerAfterPhysicsStep","unregisterAfterPhysicsStep","currentMat","_checkWithEpsilon","Sphere","Cylinder","numSegments","setFromAxisAngle","transformAllPoints","Box","rawVerts","rawFaces","oldPosition","oldQuaternion","getParentsRotation","transformedVertices","Trimesh","oldPosition2","oldRotation2","oldQuaternion2","_createHeightmap","ParticleImpostor","pointDepth","Heightfield","setDeltaRotation","oldPivot","updateMassProperties","wakeUp","motorIndex","enableMotor","setMotorSpeed","minForce","motorEquation","shapes","boundingSphereRadius","halfExtents","step_tmp1","timeSinceLastCalled","maxSubSteps","internalStep","internalSteps","h_div_dt","interpvelo","bodies","STATIC","sleepState","SLEEPING","vsub","vadd","interpolatedPosition","interpolatedQuaternion","raycastClosest","oimoInjection","OIMO","_tmpImpostorsArray","_tmpPositionVector","BJSOIMO","contact","contacts","touching","body1","sleeping","body2","collidingImpostor","invScale","bodyConfig","posShape","rotShape","checkWithEpsilon","globalQuaternion","radToDeg","resetQuaternion","nativeJointData","axe1","axe2","spring","PrismaticJoint","SliderJoint","WheelJoint","getQuaternion","syncShapes","awake","staticBody","setupMass","limitMotor","motor","rotationalLimitMotor2","rotationalLimitMotor1","rotationalLimitMotor","_impostors","_joints","addImpostor","removeImpostor","addJoint","matchingJoints","getImpostorWithPhysicsBody","setMass","_bodyUpdateRequired","_onBeforePhysicsStepCallbacks","_onAfterPhysicsStepCallbacks","_deltaPosition","_tmpQuat2","_deltaRotationConjugated","disableBidirectionalTransformation","_deltaRotation","onCollideEvent","ignoreParent","_getPhysicsParent","setScalingUpdated","IDENTITY_QUATERNION","DEFAULT_OBJECT_SIZE","setParam","executeNativeFunction","registerBeforePhysicsStep","unregisterBeforePhysicsStep","registerOnPhysicsCollide","collideAgainst","unregisterOnPhysicsCollide","collidedAgainstList","cbDef","sameList","jointType","addAnchor","addHook","syncBoneWithImpostor","boneMesh","jointPivot","distToJoint","adjustRotation","tempQuat","syncImpostorWithBone","boneAxis","boneDir","_physicsJoint","newJoint","UniversalJoint","PointToPointJoint","DefaultRenderingPipeline","automaticBuild","_buildAllowed","sharpenEnabled","_sharpenEnabled","bloomKernel","_bloomKernel","_hardwareScaleLevel","bloomWeight","_bloomWeight","bloomThreshold","_bloomThreshold","_bloomScale","_rebuildBloom","bloomEnabled","oldBloom","BloomEffect","disposeEffects","depthOfFieldEnabled","depthOfFieldBlurLevel","_depthOfFieldBlurLevel","oldDof","DepthOfFieldEffect","imageProcessingEnabled","_imageProcessingEnabled","glowLayerEnabled","_glowLayer","glowLayer","chromaticAberrationEnabled","_chromaticAberrationEnabled","grainEnabled","_grainEnabled","SharpenPostProcessId","ImageProcessingPostProcessId","FxaaPostProcessId","ChromaticAberrationPostProcessId","GrainPostProcessId","_imageProcessingConfigurationObserver","_hasCleared","_prevPostProcess","_prevPrevPostProcess","_depthOfFieldSceneObserver","_activeCameraChangedObserver","_activeCamerasChangedObserver","_hdr","sharpen","SharpenPostProcess","_sharpenEffect","chromaticAberration","ChromaticAberrationPostProcess","_chromaticAberrationEffect","grain","GrainPostProcess","_grainEffect","avoidReentrancyAtConstructionTime","_setAutoClearAndTextureSharing","skipTextureSharing","shareOutputWith","useOwnOutput","useOnlyInActiveCamera","onAfterRenderTargetsRenderObservable","_updateEffects","imageProcessing","fxaa","onActiveCameraChanged","onActiveCamerasChanged","_adaptPostProcessesToViewPort","disposeNonRecreated","_postProcessRenderPipelineManager","removePipeline","getPostProcesses","singleInstance","_singleInstance","_getPostProcesses","_indicesForCamera","pps","cameraKey","cams","cameraName","_detachCameras","_renderEffectsForIsolatedPass","renderEffectName","renderEffect","_enableEffect","renderEffects","_disableEffect","indicesToDelete","effectKeys","effectKey","adaptScaleToCurrentViewport","PostProcessRenderPipelineManager","_renderPipelines","supportedPipelines","renderPipelineName","renderPipeline","enableEffectInPipeline","disableEffectInPipeline","NAME_POSTPROCESSRENDERPIPELINEMANAGER","PostProcessRenderPipelineManagerSceneComponent","STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER","_thinBloomEffect","pipelineTextureType","ExtractHighlightsPostProcess","BloomMergePostProcess","effectIndex","originalFromInput","blurred","blockCompilationFinal","VertexUrl","varyingCount","aberrationAmount","radialIntensity","CircleOfConfusionPostProcess","DefinesDepthNotNormalized","DepthOfFieldBlurPostProcess","circleOfConfusion","imageToBlur","DepthOfFieldEffectBlurLevel","Medium","_thinDepthOfFieldEffect","circleOfConfusionTextureFormat","thinBlurY","ratioY","thinBlurX","ratioX","DepthOfFieldMergePostProcess","_blurSteps","_inputPostProcess","doNotBuild","fromLinearSpace","_fromLinearSpace","FROMLINEARSPACE","postProcessInput","_forcedOutputTexture","_fragmentUrl","_onActivateObserver","_onSizeChangedObserver","_onApplyObserver","_shareOutputWithPostProcess","_texelSize","forceAutoClearInAlphaMode","enablePixelPerfectMode","scaleMode","_reusable","_textureCache","useExistingThinPostProcess","_vertexUrl","_postProcessDefines","textureOptions","postProcessChannel","tex","lastUsedRenderId","_flushTextureCache","currentlyUsed","needMipMaps","forceDepthStencil","_getTarget","desiredWidth","_allowPostProcessClearColor","alphaConstants","_disposeTextureCache","postProcessType","_prepareBuffers","_buildIndexBuffer","postProcessesEnabled","targetTexture","doNotBindFrambuffer","doNotPresent","colorAmount","edgeAmount","_packedFloat","_staticDefines","_idealKernel","_kernel","_nearestBestKernel","centerIndex","_gaussianWeight","linearSamplingWeights","linearSamplingOffsets","linearSamplingMap","weightLinear","offsetLinear","maxVaryingRows","freeVaryingVec2","_glslFloat","idealKernel","sigma","decimalFigures","cocPrecalculation","kernelSize","adjustedKernelSize","isRightEye","_isRightEye","_distortionFactors","_postProcessScaleFactor","_lensCenterOffset","_scaleIn","_scaleFactor","_lensCenter","removeReflectionProbe","addReflectionProbe","newReflectionProbe","useFloat","_add","_invertYAxis","currentApplyByPostProcess","perspectiveFunction","_forcedViewPosition","isReflectionProbe","parsedReflectionProbe","rp","_forceShowBoundingBoxes","_boundingBoxRenderer","BoundingBoxRenderer","_showBoundingBox","NAME_BOUNDINGBOXRENDERER","frontColor","backColor","showBackLines","onBeforeBoxRenderingObservable","onAfterBoxRenderingObservable","onResourcesReadyObservable","_fillIndexBuffer","_fillIndexData","_uniformBufferFront","_uniformBufferBack","_beforeEvaluateActiveMeshStage","STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER","_preActiveMeshStage","STEP_PREACTIVEMESH_BOUNDINGBOXRENDERER","_preActiveMesh","_evaluateSubMeshStage","STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER","_evaluateSubMesh","STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER","_tag","forceShowBoundingBoxes","_prepareResources","_colorShader","_colorShaderForOcclusionQuery","boxdata","boundingBoxIndex","_createWrappersForBoundingBox","median","drawWrapperBack","drawWrapperFront","_renderPassIdForOcclusionQuery","_depthMap","storeNonLinearDepth","_storeNonLinearDepth","_storeCameraSpaceZ","isPacked","cameraIsOrtho","keysToDelete","force32bitsFloat","supportFullfloat","DepthRendererSceneComponent","NAME_DEPTHRENDERER","STEP_GATHERRENDERTARGETS_DEPTHRENDERER","STEP_GATHERACTIVECAMERARENDERTARGETS_DEPTHRENDERER","_unObserveRenderList","_renderListHasChanged","_functionName","newLength","_currentSceneCamera","_createRenderPassId","_renderingManager","_useSceneAutoClearSetup","_releaseRenderPassId","sceneMeshes","_defaultRenderListPrepared","passIndex","skipOnAfterRenderObservable","currentRenderList","defaultRenderList","defaultRenderListLength","_prepareRenderingManager","currentRenderListLength","checkLayerMask","customLODSelector","meshToRender","_prepareSkeleton","dispatchParticles","newRenderer","getOutlineRenderer","_outlineRenderer","OutlineRenderer","_renderOutline","_renderOverlay","NAME_OUTLINERENDERER","_passIdForDrawWrapper","STEP_BEFORERENDERINGMESH_OUTLINE","_beforeRenderingMesh","STEP_AFTERRENDERINGMESH_OUTLINE","_afterRenderingMesh","useOverlay","_savedDepthWrite","renderOutline","_StencilReference","alphaBlendState","RenderingGroup","_opaqueSortCompareFn","PainterSortCompare","_renderOpaque","_renderOpaqueSorted","_alphaTestSortCompareFn","_renderAlphaTest","_renderAlphaTestSorted","_transparentSortCompareFn","defaultTransparentSortCompare","_renderTransparent","_renderTransparentSorted","_opaqueSubMeshes","_transparentSubMeshes","_alphaTestSubMeshes","_depthOnlySubMeshes","_particleSystems","_spriteManagers","_empty","activeMeshes","_renderSprites","_renderParticles","onBeforeTransparentRendering","edgesRendererIndex","_RenderSorted","sortCompareFn","_ZeroVector","_activeMeshesFrozenButKeepClipping","backToFrontSortCompare","frontToBackSortCompare","meshA","meshB","prepareSprites","dispatchSprites","spriteManager","onBeforeParticlesRenderingObservable","_activeParticles","onAfterParticlesRenderingObservable","spritesEnabled","onBeforeSpritesRenderingObservable","onAfterSpritesRenderingObservable","RenderingGroupInfo","_maintainStateBetweenFrames","_renderingGroups","_autoClearDepthStencil","_customOpaqueSortCompareFn","_customAlphaTestSortCompareFn","_customTransparentSortCompareFn","_renderingGroupInfo","getRenderingGroup","_prepareRenderingGroup","_clearDepthStencilBuffer","_depthStencilBufferAlreadyCleaned","renderingGroup","renderingGroupMask","onBeforeRenderingGroupObservable","AUTOCLEAR","getAutoClearDepthStencilSetup","_beforeRenderingGroupDrawStage","onAfterRenderingGroupObservable","resetSprites","getRenderCamera","getRigParentIfPossible","_renderCamera","activeCam","originalScene","setRenderCamera","_sharedGizmoLight","_DefaultUtilityLayer","_CreateDefaultUtilityLayerFromScene","DefaultKeepDepthUtilityLayer","_DefaultKeepDepthUtilityLayer","autoClearDepthAndStencil","handleEvents","_pointerCaptures","_lastPointerEvents","pickUtilitySceneFirst","onlyCheckPointerDownEvents","processAllEvents","pickingEnabled","onPointerOutObservable","_originalPointerObserver","prePointerInfo","pointerEvent","isPointerCaptured","getNearPickDataForScene","scenePick","nearInteractionPickingInfo","previousActiveCamera","utilityScenePick","originalScenePick","mainSceneTrackerPredicate","_notifyObservers","_afterRenderObserver","onAfterRenderCameraObservable","oldScene","onAfterCameraRenderObservable","bonesDeclaration","bonesVertex","bumpFragment","bumpFragmentFunctions","bumpFragmentMainFunctions","clipPlaneFragment","clipPlaneFragmentDeclaration","clipPlaneVertex","clipPlaneVertexDeclaration","fogFragmentDeclaration","helperFunctions","imageProcessingDeclaration","imageProcessingFunctions","lightFragment","lightFragmentDeclaration","lightUboDeclaration","lightVxFragmentDeclaration","lightVxUboDeclaration","lightsFragmentFunctions","morphTargetsVertex","morphTargetsVertexDeclaration","morphTargetsVertexGlobal","morphTargetsVertexGlobalDeclaration","packingFunctions","reflectionFunction","shadowMapFragment","shadowMapFragmentSoftTransparentShadow","shadowMapVertexMetric","shadowsFragmentFunctions","shadowsVertex","anaglyphPixelShader","backgroundPixelShader","background_fragment_name","backgroundVertexShader","background_vertex_name","bilateralBlurPixelShader","bilateralBlurQualityPixelShader","blackAndWhitePixelShader","bloomMergePixelShader","boundingBoxRendererPixelShader","boundingBoxRenderer_fragment_name","boundingBoxRendererVertexShader","boundingBoxRenderer_vertex_name","chromaticAberrationPixelShader","circleOfConfusionPixelShader","colorPixelShader","colorVertexShader","colorCorrectionPixelShader","convolutionPixelShader","copyTexture3DLayerToTexturePixelShader","copyTextureToTexturePixelShader","defaultPixelShader","default_fragment_name","defaultVertexShader","default_vertex_name","depthPixelShader","depthVertexShader","depth_vertex_name","depthBoxBlurPixelShader","depthOfFieldMergePixelShader","displayPassPixelShader","extractHighlightsPixelShader","filterPixelShader","fluidRenderingBilateralBlurPixelShader","fluidRenderingParticleDepthPixelShader","fluidRenderingParticleDepthVertexShader","fluidRenderingParticleDiffusePixelShader","fluidRenderingParticleThicknessPixelShader","fluidRenderingParticleThicknessVertexShader","fluidRenderingRenderPixelShader","fluidRenderingStandardBlurPixelShader","fxaaPixelShader","fxaaVertexShader","gaussianSplattingPixelShader","gaussianSplatting_fragment_name","gaussianSplattingVertexShader","gaussianSplatting_vertex_name","geometryPixelShader","geometry_fragment_name","geometryVertexShader","geometry_vertex_name","glowBlurPostProcessPixelShader","glowMapGenerationPixelShader","glowMapGenerationVertexShader","glowMapMergePixelShader","glowMapMergeVertexShader","grainPixelShader","hdrFilteringPixelShader","hdrFilteringVertexShader","highlightsPixelShader","iblCombineVoxelGridsPixelShader","iblGenerateVoxelMipPixelShader","iblShadowAccumulationPixelShader","iblShadowDebugPixelShader","iblShadowGBufferDebugPixelShader","iblShadowSpatialBlurPixelShader","iblShadowVoxelTracingPixelShader","iblShadowsCdfxPixelShader","iblShadowsCdfyPixelShader","iblShadowsIcdfxPixelShader","iblShadowsIcdfyPixelShader","iblShadowsImportanceSamplingDebugPixelShader","iblVoxelGridPixelShader","iblVoxelGridVertexShader","iblVoxelGrid2dArrayDebugPixelShader","iblVoxelGrid3dDebugPixelShader","iblVoxelSlabDebugPixelShader","iblVoxelSlabDebugVertexShader","imageProcessingPixelShader","kernelBlurPixelShader","kernelBlur_fragment_name","kernelBlurVertexShader","kernelBlur_vertex_name","layerPixelShader","layerVertexShader","lensFlarePixelShader","lensFlareVertexShader","linePixelShader","lineVertexShader","line_vertex_name","lodPixelShader","lodCubePixelShader","meshUVSpaceRendererPixelShader","meshUVSpaceRendererVertexShader","meshUVSpaceRendererFinaliserPixelShader","meshUVSpaceRendererFinaliserVertexShader","meshUVSpaceRendererMaskerPixelShader","meshUVSpaceRendererMaskerVertexShader","motionBlurPixelShader","oitBackBlendPixelShader","oitFinalPixelShader","outlinePixelShader","outlineVertexShader","particlesPixelShader","particlesVertexShader","passCubePixelShader","pbrPixelShader","pbr_fragment_name","pbrVertexShader","pbr_vertex_name","pickingPixelShader","pickingVertexShader","postprocessVertexShader","proceduralVertexShader","rgbdDecodePixelShader","rgbdEncodePixelShader","rsmFullGlobalIlluminationPixelShader","rsmGlobalIlluminationPixelShader","screenSpaceReflection2PixelShader","screenSpaceReflection2BlurPixelShader","screenSpaceReflection2BlurCombinerPixelShader","shadowMapPixelShader","shadowMap_fragment_name","shadowMapVertexShader","shadowMap_vertex_name","sharpenPixelShader","spritesPixelShader","sprites_fragment_name","spritesVertexShader","ssao2PixelShader","ssaoCombinePixelShader","taaPixelShader","tonemapPixelShader","vrDistortionCorrectionPixelShader","bonesDeclarationWGSL","bonesVertexWGSL","bumpFragmentWGSL","bumpFragmentFunctionsWGSL","bumpFragmentMainFunctionsWGSL","clipPlaneFragmentWGSL","clipPlaneFragmentDeclarationWGSL","clipPlaneVertexWGSL","clipPlaneVertexDeclarationWGSL","fogFragmentDeclarationWGSL","helperFunctionsWGSL","imageProcessingDeclarationWGSL","imageProcessingFunctionsWGSL","lightFragmentWGSL","lightUboDeclarationWGSL","lightVxUboDeclarationWGSL","lightsFragmentFunctionsWGSL","morphTargetsVertexWGSL","morphTargetsVertexDeclarationWGSL","morphTargetsVertexGlobalWGSL","morphTargetsVertexGlobalDeclarationWGSL","packingFunctionsWGSL","reflectionFunctionWGSL","shadowMapFragmentWGSL","shadowMapFragmentSoftTransparentShadowWGSL","shadowMapVertexMetricWGSL","shadowsFragmentFunctionsWGSL","shadowsVertexWGSL","anaglyphPixelShaderWGSL","backgroundPixelShaderWGSL","backgroundVertexShaderWGSL","bilateralBlurPixelShaderWGSL","bilateralBlurQualityPixelShaderWGSL","blackAndWhitePixelShaderWGSL","bloomMergePixelShaderWGSL","boundingBoxRendererPixelShaderWGSL","boundingBoxRendererVertexShaderWGSL","chromaticAberrationPixelShaderWGSL","circleOfConfusionPixelShaderWGSL","colorPixelShaderWGSL","colorVertexShaderWGSL","colorCorrectionPixelShaderWGSL","convolutionPixelShaderWGSL","copyTexture3DLayerToTexturePixelShaderWGSL","copyTextureToTexturePixelShaderWGSL","defaultPixelShaderWGSL","defaultVertexShaderWGSL","depthPixelShaderWGSL","depthVertexShaderWGSL","depthBoxBlurPixelShaderWGSL","depthOfFieldMergePixelShaderWGSL","displayPassPixelShaderWGSL","extractHighlightsPixelShaderWGSL","filterPixelShaderWGSL","fluidRenderingBilateralBlurPixelShaderWGSL","fluidRenderingParticleDepthPixelShaderWGSL","fluidRenderingParticleDepthVertexShaderWGSL","fluidRenderingParticleDiffusePixelShaderWGSL","fluidRenderingParticleThicknessPixelShaderWGSL","fluidRenderingParticleThicknessVertexShaderWGSL","fluidRenderingRenderPixelShaderWGSL","fluidRenderingStandardBlurPixelShaderWGSL","fxaaPixelShaderWGSL","fxaaVertexShaderWGSL","gaussianSplattingPixelShaderWGSL","gaussianSplattingVertexShaderWGSL","geometryPixelShaderWGSL","geometryVertexShaderWGSL","glowBlurPostProcessPixelShaderWGSL","glowMapGenerationPixelShaderWGSL","glowMapGenerationVertexShaderWGSL","glowMapMergePixelShaderWGSL","glowMapMergeVertexShaderWGSL","grainPixelShaderWGSL","hdrFilteringPixelShaderWGSL","hdrFilteringVertexShaderWGSL","highlightsPixelShaderWGSL","iblCombineVoxelGridsPixelShaderWGSL","iblGenerateVoxelMipPixelShaderWGSL","iblShadowAccumulationPixelShaderWGSL","iblShadowDebugPixelShaderWGSL","iblShadowGBufferDebugPixelShaderWGSL","iblShadowSpatialBlurPixelShaderWGSL","iblShadowVoxelTracingPixelShaderWGSL","iblShadowsCdfxPixelShaderWGSL","iblShadowsCdfyPixelShaderWGSL","iblShadowsIcdfxPixelShaderWGSL","iblShadowsIcdfyPixelShaderWGSL","iblShadowsImportanceSamplingDebugPixelShaderWGSL","iblVoxelGridPixelShaderWGSL","iblVoxelGridVertexShaderWGSL","iblVoxelGrid2dArrayDebugPixelShaderWGSL","iblVoxelGrid3dDebugPixelShaderWGSL","iblVoxelSlabDebugPixelShaderWGSL","iblVoxelSlabDebugVertexShaderWGSL","imageProcessingPixelShaderWGSL","kernelBlurPixelShaderWGSL","kernelBlurVertexShaderWGSL","layerPixelShaderWGSL","layerVertexShaderWGSL","lensFlarePixelShaderWGSL","lensFlareVertexShaderWGSL","linePixelShaderWGSL","lineVertexShaderWGSL","lodPixelShaderWGSL","lodCubePixelShaderWGSL","meshUVSpaceRendererPixelShaderWGSL","meshUVSpaceRendererVertexShaderWGSL","meshUVSpaceRendererFinaliserPixelShaderWGSL","meshUVSpaceRendererFinaliserVertexShaderWGSL","meshUVSpaceRendererMaskerPixelShaderWGSL","meshUVSpaceRendererMaskerVertexShaderWGSL","motionBlurPixelShaderWGSL","oitBackBlendPixelShaderWGSL","oitFinalPixelShaderWGSL","outlinePixelShaderWGSL","outlineVertexShaderWGSL","particlesPixelShaderWGSL","particlesVertexShaderWGSL","passPixelShaderWGSL","passCubePixelShaderWGSL","pbrPixelShaderWGSL","pbrVertexShaderWGSL","pickingPixelShaderWGSL","pickingVertexShaderWGSL","postprocessVertexShaderWGSL","proceduralVertexShaderWGSL","rgbdDecodePixelShaderWGSL","rgbdEncodePixelShaderWGSL","rsmFullGlobalIlluminationPixelShaderWGSL","rsmGlobalIlluminationPixelShaderWGSL","screenSpaceReflection2PixelShaderWGSL","screenSpaceReflection2BlurPixelShaderWGSL","screenSpaceReflection2BlurCombinerPixelShaderWGSL","shadowMapPixelShaderWGSL","shadowMapVertexShaderWGSL","sharpenPixelShaderWGSL","spritesPixelShaderWGSL","spritesVertexShaderWGSL","ssao2PixelShaderWGSL","ssaoCombinePixelShaderWGSL","taaPixelShaderWGSL","tonemapPixelShaderWGSL","vrDistortionCorrectionPixelShaderWGSL","ThinSprite","_animationStarted","_fromIndex","_toIndex","invertU","invertV","_onBaseAnimationEnd","playAnimation","Sprite","_manager","useAlphaForPicking","_endAnimation","disposeWhenFinishedAnimating","sprites","cellRef","parsedSprite","sprite","SpriteRenderer","pixelPerfect","_pixelPerfect","rendererOptions","autoResetAlpha","_useVAO","inverts","cellInfo","_drawWrapperBase","_drawWrapperDepth","customSpriteUpdate","drawWrapperDepth","shouldRenderFog","noSprite","_appendSpriteVertex","arrayOffset","rowSize","cellWidth","_xOffset","_yOffset","cellHeight","_xSize","_ySize","_spriteRenderer","_textureContent","_disableDepthWrite","fromPacked","spriteJSON","_packedAndReady","_customUpdate","_spriteMap","_cellData","NAME_SPRITE","SpriteSceneComponent","_fromPacked","spriteRendererOptions","_makePacked","celldata","frametemp","spritemap","jsonUrl","_checkTextureAlpha","currentSprite","cameraSpacePosition","cameraView","activeRay","pickedRay","multiIntersects","_internalPickSprites","spriteIndex","_internalMultiPickSprites","pickSprite","_tempSpritePickingRay","pickSpriteWithRay","multiPickSprite","multiPickSpriteWithRay","setPointerOverSprite","_pointerOverSprite","getPointerOverSprite","_spritePredicate","_pointerMoveStage","STEP_POINTERMOVE_SPRITE","_pointerDownStage","STEP_POINTERDOWN_SPRITE","_pointerUpStage","STEP_POINTERUP_SPRITE","_pickSpriteButKeepRay","originalPointerInfo","unTranslatedPointerX","unTranslatedPointerY","pickResult","isMeshPicked","doNotHandleCursors","_pickedDownSprite","doubleClick","spritePickResult","_isPointerSwiping","_isBlendConstantsDirty","_alphaBlend","_isAlphaBlendDirty","_isBlendFunctionParametersDirty","_isBlendEquationParametersDirty","value0","BLEND","blendFuncSeparate","blendEquationSeparate","CULL_FACE","DEPTH_TEST","POLYGON_OFFSET_FILL","polygonOffset","_isStencilTestDirty","_isStencilMaskDirty","_isStencilFuncDirty","_isStencilOpDirty","STENCIL_TEST","stencilOp","_xrNativeFeatureName","enabledFeatures","_attached","_removeOnDetach","disableAutoAttach","onFeatureAttachObservable","onFeatureDetachObservable","onXRFrameObservable","WebXRControllerPointerSelection","laserPointer","selectionMesh","_generateNewMeshPair","forceGripIfAvailable","tmpRay","disabledByNearInteraction","_attachedController","enablePointerSelectionOnAllControllers","preferredHandedness","_attachTrackedPointerRayMode","_attachGazeMode","_attachScreenRayMode","_tmpVectorForPickCompare","disablePointerLighting","disableSelectionMeshLighting","displaySelectionMesh","laserPointerPickedColor","laserPointerDefaultColor","selectionMeshDefaultColor","selectionMeshPickedColor","_identityMatrix","_screenCoordinatesRef","_viewportRef","lookAndPickMode","constantlyUpdateMeshUnderPointer","gazeCamera","webXRCamera","getMeshUnderPointer","getXRControllerByPointerId","_getPointerSelectionDisabledByPointerId","_setPointerSelectionDisabledByPointerId","controllerGlobalPosition","getWorldPointerRayToRef","maxPointerDistance","disableScenePointerVectorUpdate","screenCoordinates","_utilityLayerScene","pointerMovePredicate","pickNormal","_convertNormalToDirectionOfRay","deltaFighting","customUtilityLayerScene","timeToSelect","sceneToRenderTo","useUtilityLayer","oldPick","discMesh","downTriggered","pointerEventInit","onFrameObserver","_augmentPointerInit","_pickingMoved","disablePointerUpOnTouchOut","simulatePointerMove","finalPointerUpTriggered","pointerDownTriggered","runInXRFrame","forceGazeMode","overrideButtonId","selectionComponent","disableSwitchOnClick","prevController","selectStartListener","selectEndListener","selectend","selectstart","meshParent","customLasterPointerMeshGenerator","laserPointerMaterial","customSelectionMeshGenerator","newPick","gazeModePointerMovedFactor","_laserPointer","screenX","screenY","lasterPointerDefaultColor","POINTER_SELECTION","WebXRMotionControllerTeleportation","_rotationEnabled","teleportationTargetMesh","_snappedToPoint","_cachedColor4White","_worldScaleObserver","skipNextTeleportation","backwardsMovementEnabled","backwardsTeleportationDistance","parabolicCheckRadius","parabolicRayEnabled","straightRayEnabled","rotationAngle","onTargetMeshPositionUpdatedObservable","onBeforeCameraTeleportRotation","onAfterCameraTeleportRotation","teleportationState","rotating","baseRotation","blocked","initialHit","mainComponentUsed","initMotionController","movementController","useMainComponentOnly","teleportationComponent","teleportLocal","_currentTeleportationControllerId","timeToTeleport","_teleportForward","timeToTeleportStart","snapPointsOnly","realWorldHeight","_floorMeshes","_setTargetMeshVisibility","breakObserver","_colorArray","_createDefaultTargetMesh","_snapToPositions","snapPositions","_blockedRayColor","blockedRayColor","onWorldScaleFactorChangedObservable","previousScaleFactor","newScaleFactor","snapToPoints","addBlockerMesh","pickBlockerMeshes","addSnapPoint","newSnapPoint","removeBlockerMesh","removeFloorMeshByName","removeSnapPoint","snapPointToRemove","setSelectionFeature","selectionFeature","_selectionFeature","hitPossible","controlSelectionFeature","blockerMeshesPredicate","blockAllPickableMeshes","floorMeshPicked","_showParabolicPath","_setTargetMeshPosition","xRotation","compensation","_disposeBezierCurve","defaultTargetMeshOptions","teleportationFillColor","teleportationBorderColor","cone","torusArrowMaterial","torusConeMaterial","_teleportationRingMaterial","_findClosestSnapPointWithRadius","realPosition","snapToPositionRadius","closestPoint","closestDistance","radiusSquared","snapPosition","_quadraticBezierCurve","quadraticBezierVectors","generateRayPathMesh","TELEPORTATION","handJointReferenceArray","handPartsDefinition","thumb","ring","little","WebXRHand","handMesh","_handMesh","getHandPartMeshes","_jointMeshes","jointName","rigMapping","_leftHandedMeshes","_jointsInvisible","_jointScaleFactor","onHandMeshSetObservable","_jointTransforms","_jointTransformMatrices","_tempJointMatrix","_jointRadii","jointIdx","setHandMesh","handMeshSkeleton","jointBoneIdx","updateFromXRFrame","anyHand","jointSpaces","trackingSuccessful","jointPose","_jointName","jointTransform","scaledJointRadius","jointMesh","disposeMeshes","WebXRHandTracking","_GenerateTrackedJointMeshes","featureOptions","originalMesh","_ICOSPHERE_PARAMS","trackedMeshes","jointMeshes","keepOriginalVisible","newInstance","onHandJointMeshGenerated","returnedMesh","physicsProps","_GenerateDefaultHandMeshesAsync","riggedMeshes","_RightHandGLB","_LeftHandGLB","handsDefined","handGLBs","DEFAULT_HAND_MODEL_BASE_URL","DEFAULT_HAND_MODEL_RIGHT_FILENAME","DEFAULT_HAND_MODEL_LEFT_FILENAME","handShader","DEFAULT_HAND_MODEL_SHADER_URL","handColors","fingerColor","tipFresnel","handMeshes","handNodes","handGLB","disableHandShader","_GenerateDefaultHandMeshRigMapping","XRHand","getHandByControllerId","_attachedHands","_trackingHands","_handResources","rigMappings","onHandAddedObservable","onHandRemovedObservable","_attachHand","webxrHand","meshesUseLeftHandedCoordinates","invisible","_detachHand","_detachHandById","anyJointMeshOptions","disableDefaultHandMesh","disableDefaultMeshes","customMeshes","leftHandedSystemMeshes","leftRigMapping","rightRigMapping","rigMappingTuple","modelJointName","customRigMappings","_originalMesh","defaultHandMeshes","scalingFactors","disposeMesh","disposeOnSessionEnd","trackedMesh","ControllerOrbAnimationState","DEHYDRATED","TOUCH","WebXRNearInteraction","touchCollisionMesh","touchCollisionMeshFunction","hydrateCollisionMeshFunction","_generateNewTouchPointMesh","_generateVisualCue","nearInteractionTargetMesh","stalePick","currentAnimationState","grabRay","hoverInteraction","grabInteraction","pickedPointVisualCue","enableNearInteractionOnAllControllers","_attachNearInteractionMode","_farInteractionFeature","_hoverRadius","_pickRadius","_controllerPickRadius","_nearGrabLengthScale","nearInteractionControllerMode","farInteractionFeature","setFarInteractionFeature","_nearPickPredicate","_nearGrabPredicate","_nearInteractionPredicate","_controllerAvailablePredicate","_handleTransitionAnimation","_processTouchPoint","handData","xrIndexTip","indexTipPose","axisRHSMultiplier","controllerPose","accuratePickInfo","populateNearInteractionInfo","nearInteractionInfo","nearInteractionAtOrigin","utilitySceneHoverPick","_pickWithSphere","hoverPickInfo","utilitySceneNearPick","nearPick","_isControllerReadyForNearInteraction","grabCheck","squeezeComponent","onSqueezeButtonChangedObserver","worldScale","meshCreationScene","motionControllerOrbMaterial","parsePromise","motionControllerTouchMaterialSnippetUrl","hoverSizeVec","touchSize","touchSizeVec","hydrateTransitionSize","hydrateTransitionSizeVec","touchHoverTransitionSize","touchHoverTransitionSizeVec","hoverTouchTransitionSize","touchKeys","releaseKeys","hydrateKeys","dehydrateKeys","releaseAction","hydrateAction","dehydrateAction","isHydration","sceneToUse","PickMeshWithSphere","tmpVec","tmpDistanceSphereToCenter","tmpDistanceSurfaceToCenter","intersectionInfo","worldToMesh","NEAR_INTERACTION","_controllerCache","_initComponent","_modelReady","getAllComponentsOfType","loadModel","useGeneric","loadingParams","_getGenericFilenameAndPath","meshesLoaded","_getGenericParentMesh","handness","pulse","hapticActuatorIndex","hapticActuators","axisValue","fixValueCoordinates","lerpValue","_buttonIndex","_axesIndices","_axes","_hasChanges","_pressed","_touched","hasChanges","isButton","nativeController","buttonUpdated","axesUpdate","BUTTON_TYPE","SQUEEZE_TYPE","TRIGGER_TYPE","WebXRGenericTriggerMotionController","GenericTriggerLayout","ProfileId","controllerCache","ClearProfilesCache","_ProfilesList","_ProfileLoadingPromises","DefaultFallbacks","RegisterFallbacksForProfileId","FindFallbackWithProfileId","returnArray","_Fallbacks","GetMotionControllerWithXRInput","forceProfile","profileArray","profiles","windowsMRIdx","UseOnlineRepository","secondFunction","PrioritizeOnlineRepository","_LoadProfilesFromAvailableControllers","_LoadProfileFromRepository","constructFunction","_AvailableControllers","UpdateProfilesList","BaseRepositoryUrl","ClearControllerCache","profilesList","profileToLoad","WebXRProfiledMotionController","DisableControllerCache","constructionFunction","_profile","_repositoryUrl","_buttonMeshMapping","_touchDots","visResKey","componentInLayout","mainMesh","visualResponseKey","visResponse","NativeXRLayerWrapper","NativeXRLayerRenderTargetTextureProvider","_nativeRTTProvider","getNativeRenderTargetProvider","_destroyRenderTargetTexture","_nativeLayer","getRenderTargetForEye","getFramebufferDimensions","NativeXRRenderTarget","_nativeRenderTarget","getWebXRRenderTarget","initializeXRLayerAsync","xrLayer","WebXRCamera","_referenceQuaternion","_referencedPosition","_trackingState","onXRCameraInitializedObservable","onTrackingStateChanged","compensateOnFirstFrame","_rotate180","_updateNumberOfRigCameras","_updateDepthNearFar","_updateFromXRSession","_updateReferenceSpace","_setTrackingState","basePose","_updateForDualEyeDebugging","setTransformationFromNonVRCamera","otherCamera","resetToBaseReferenceSpace","resetReferenceSpace","depthFar","depthNear","currentRig","_renderingMultiview","newCamera","removedCamera","referencedMat","poseMat","transformMat","_ScaleReadOnly","getOffsetReferenceSpace","disableDefaultUI","uiOptions","optionalFeatures","enterExitUI","WebXREnterExitUI","WebXRExperienceHelper","xrHelper","ignoreNativeCameraTransformation","WebXRInput","controllerOptions","disablePointerSelection","pointerSelectionOptions","enableFeature","useStablePlugins","disableTeleportation","teleportationOptions","disableNearInteraction","nearInteractionOptions","disableHandTracking","handSupportOptions","outputCanvasOptions","setHelperAsync","WebXREnterExitUIButton","referenceSpaceType","_activeButton","activeButtonChangedObservable","_onSessionGranted","_enterXRWithButtonIndex","ignoreSessionGrantedEvent","customButtons","hmdBtn","_updateButtons","renderCanvas","supportedPromises","btn","isSessionSupportedAsync","ui","_nonVRCamera","_spectatorCamera","_originalSceneAutoClear","_supported","_spectatorMode","onInitialXRPoseSetObservable","initializeAsync","sessionCreationOptions","_extendXRSessionInitObject","initializeSessionAsync","setReferenceSpaceTypeAsync","xrRenderState","runXRRenderLoop","_nonXRToXRCamera","enableSpectatorMode","_switchSpectatorMode","disableSpecatatorMode","preferredCameraIndex","updateSpectatorCamera","onStateChanged","getEnabledFeatures","featureName","featureImplementation","attachFeature","detachFeature","constructorFunction","stable","_AvailableFeatures","ConstructFeature","GetAvailableFeatures","GetAvailableVersions","GetLatestVersionOfFeature","GetStableVersionOfFeature","disableFeature","moduleOptions","attachIfPossible","versionToLoad","conflictingFeature","_ConflictingFeatures","constructed","xrSessionInit","nativeName","_onInputSourcesChange","_addAndRemoveControllers","added","_sessionEndedObserver","_sessionInitObserver","_frameObserver","customControllersRepositoryURL","disableOnlineControllerRepository","addInputs","removeInputs","WebXRInputSource","forceControllerProfile","forceInputProfile","doNotLoadControllerMesh","doNotLoadControllerMeshes","disableMotionControllerAnimation","disableControllerAnimation","keepControllers","removedControllers","idCount","_disposed","onMeshLoadedObservable","gripSpace","gripIfAvailable","isFixedFoveationSupported","fixedFoveation","_rttWrapper","_createRenderTargetTextureProvider","WebXRManagedOutputCanvasOptions","GetDefaults","canvasOptions","framebufferScaleFactor","newCanvasCssStyle","WebXRManagedOutputCanvas","_xrLayerWrapper","onXRLayerInitObservable","canvasElement","_setManagedOutputCanvas","_addCanvas","_removeCanvas","_makeCanvasCompatibleAsync","_canvasCompatiblePromise","canvasContext","makeXRCompatible","_setCanvasSize","_originalCanvasSize","_worldScalingFactor","defaultHeightCompensation","onXRReferenceSpaceInitialized","onXRReady","inXRFrameLoop","_onEngineDisposedObserver","_referenceSpace","newReferenceSpace","_sessionMode","_baseLayerRTTProvider","_xrNavigator","xrSessionMode","_baseLayerWrapper","requestReferenceSpace","rejectionReason","heightCompensation","updateRenderStateAsync","baseLayerWrapper","functionToUse","isSessionSupported","supportsSession","currentFrameRate","supportedFrameRates","updateTargetFrameRate","ignoreIfNotInSession","WebXRWebGLLayerRenderTargetTextureProvider","_layer","getViewport","layerWidth","layerHeight","_rtt","AbstractAssetContainer","KeepAssets","InstantiatedEntries","_wasAddedToScene","_topologicalSort","nodesUidMap","dependencyGraph","dependedBy","nodeId","masterMesh","childId","sortedNodes","leaves","nodeToVisit","dependedByVisitedNode","dependedByVisitedNodeId","dependsOnDependedByVisitedNode","_addNodeAndDescendantsToList","addedIds","_isNodeInContainer","_isValidHierarchy","instantiateModelsToScene","nameFunction","cloneMaterials","conversionMap","storeMap","alreadySwappedSkeletons","alreadySwappedMaterials","nodesToSort","idsOnSortList","onNewCreated","onClone","clonedMesh","oldMorphTargetManager","oldTarget","instancedNode","replicatedSourceId","replicatedInstancedNode","canInstance","replicatedNode","addAllToScene","_serializableComponents","addedNodes","addAnimation","addGeometry","addActionManager","addedNode","removeFromScene","removeAnimation","removeMultiMaterial","removeActionManager","_moveAssets","sourceAssets","targetAssets","keepAssets","keepAsset","moveAllFromScene","createRootMesh","_targetConverter","getTransformNodeByName","getMorphTargetByName","nodeInAC","nodeInScene","animationInAC","animationsWithSameProperty","animationInScene","animationWithSameProperty","newAnimationGroups","animationGroupInAC","addAllAssetsToContainer","nodesToVisit","visitedNodes","_InternalNodeDataInfo","_doNotSerialize","_sceneRootNodesIndex","_isParentEnabled","_onEnabledStateChangedObservable","_onClonedObservable","_NodeConstructors","accessibilityTag","_accessibilityTag","onAccessibilityTagChangedObservable","_nodeDataStorage","previousParentNode","_addToSceneRootNodes","_removeFromSceneRootNodes","onEnabledStateChangedObservable","_parentUpdateId","_worldMatrixDeterminant","_isNode","_behaviors","behavior","attachImmediately","onDataLoadedObservable","behaviors","getBehaviorByName","_initialCall","_ignoreParentClass","_completeCheck","checkAncestors","getAnimationByName","nAnimations","serializationRanges","localRange","_force","parsedNode","thisAbstractMesh","maxBox","_ClickInfo","_singleClick","_doubleClick","_hasSwiped","_ignore","singleClick","hasSwiped","InputManager","_alreadyAttached","_meshPickProceed","_currentPickResult","_previousPickResult","_activePointerIds","_activePointerIdsCount","_doubleClickOccured","_isSwiping","_swipeButtonPressed","_skipPointerTap","_isMultiTouchGesture","_pointerX","_pointerY","_startingPointerPosition","_previousStartingPointerPosition","_startingPointerTime","_previousStartingPointerTime","_meshUnderPointerId","_movePointerInfo","_cameraObserverCount","_delayedClicks","_pointerOverMesh","getMeshUnderPointerByPointerId","unTranslatedPointer","_unTranslatedPointerX","_unTranslatedPointerY","_updatePointerPosition","_processPointerMove","defaultCursor","_setCursorAndPointerOverMesh","_checkForPicking","_checkPrePointerObservable","pointerMoveFastCheck","pointerMoveTrianglePredicate","setPointerOverMesh","_processPointerDown","_pickedDownMesh","LongPressDelay","doubleTap","clickInfo","_processPointerUp","_pickedUpMesh","doubleClickActionManager","pickedDownActionManager","onPointerUp","attachUp","attachDown","attachMove","_alreadyAttachedTo","_initActionManager","act","skipPointerUpPicking","pointerUpPredicate","pointerUpFastCheck","pointerUpTrianglePredicate","_delayedSimpleClick","DoubleClickDelay","_previousButtonPressed","_initClickEvent","obs1","obs2","checkPicking","needToIgnoreNext","checkSingleClickImmediately","ExclusiveDoubleClickMode","delayedClick","checkDoubleClick","DragMovementThreshold","skipPointerMovePicking","freeIndex","preventDefaultOnPointerDown","pointerDownPredicate","skipPointerDownPicking","pointerDownFastCheck","pointerDownTrianglePredicate","pointerIdIndex","preventDefaultOnPointerUp","onPreKeyboardObservable","underPointerMesh","getPointerOverMesh","_invalidateMesh","PointerPickingConfiguration","onClearColorChangedObservable","_performancePriority","_forceWireframe","_skipFrustumClipping","_forcePointsCloud","beforeCameraRender","afterCameraRender","_onAfterCameraRenderObserver","_pointerPickingConfiguration","isVector3","eyePosition","_useRightHandedSystem","setStepId","newStepId","_currentStepId","getStepId","getInternalStep","_currentInternalStep","_fogMode","prePass","_shadowsEnabled","_lightsEnabled","_activeCameras","_unObserveActiveCameras","_defaultMaterial","_texturesEnabled","_currentCustomRenderFunction","_renderWithFrameGraph","_skeletonsEnabled","_collisionCoordinator","_registerTransientComponents","_transientComponents","_components","onBeforeAnimationsObservable","onAfterAnimationsObservable","onBeforeDrawPhaseObservable","onAfterDrawPhaseObservable","onBeforeActiveMeshesEvaluationObservable","onAfterActiveMeshesEvaluationObservable","onNewCameraAddedObservable","onCameraRemovedObservable","onNewLightAddedObservable","onLightRemovedObservable","onNewGeometryAddedObservable","onGeometryRemovedObservable","onNewTransformNodeAddedObservable","onTransformNodeRemovedObservable","onNewMeshAddedObservable","onNewSkeletonAddedObservable","onSkeletonRemovedObservable","onNewMaterialAddedObservable","onNewMultiMaterialAddedObservable","onMaterialRemovedObservable","onMultiMaterialRemovedObservable","onNewTextureAddedObservable","onBeforeRenderTargetsRenderObservable","onBeforeStepObservable","onAfterStepObservable","_timeAccumulator","particlesEnabled","renderTargetsEnabled","dumpNextRenderTargets","probesEnabled","_meshesForIntersections","_activeBones","_executeWhenReadyTimeoutId","_intermediateRendering","_defaultFrameBufferCleared","_viewUpdateFlag","_projectionUpdateFlag","dispatchAllSubMeshesOfActiveMeshes","_processedMaterials","_materialsRenderTargets","_activeSkeletons","_softwareSkinnedMeshes","Stage","Create","_geometriesByUniqueId","_defaultMeshCandidates","_defaultSubMeshCandidates","_preventFreeActiveMeshesAndRenderingGroups","_skipEvaluateActiveMeshesCompletely","_blockMaterialDirtyMechanism","useGeometryUniqueIdsMap","_createUbo","setDefaultCandidateProviders","getCachedEffect","getCachedVisibility","totalVerticesPerfCounter","getActiveIndices","totalActiveIndicesPerfCounter","getActiveParticles","activeParticlesPerfCounter","getActiveBones","activeBonesPerfCounter","_animationRatio","checkRenderTargets","_executeOnceBeforeRender","execFunc","executeOnceBeforeRender","wasLoading","getWaitingItemsCount","resetLastAnimationTimeFrame","viewL","projectionL","_sceneUbo","newTransformNode","lastNode","_executeActiveContainerCleanup","removeParticleSystem","lastMaterial","newLight","newSkeleton","newParticleSystem","newAnimation","newAnimationGroup","newMorphTargetManager","newGeometry","newActionManager","switchActiveCamera","setActiveCameraByName","getCameraByName","getAnimationGroupByName","_getMaterial","allowMultiMaterials","getMaterialById","getTextureByUniqueId","getTextureByName","getCameraByUniqueId","getBoneById","getBoneByName","getLightByName","getLightByUniqueId","getParticleSystemById","_getGeometryByUniqueId","lastGeometry","getGeometries","getTransformNodeById","getTransformNodeByUniqueId","getTransformNodesById","getSkeletonByUniqueId","getSkeletonById","getSkeletonByName","getMorphTargetManagerById","managerIndex","getPostProcessByName","postProcessIndex","addExternalData","_externalData","getExternalData","getOrAddExternalDataWithFactory","removeExternalData","initialMesh","forcePush","blockfreeActiveMeshesAndRenderingGroups","freezeActiveMeshes","skipEvaluateActiveMeshes","freezeMeshes","keepFrustumCulling","_evaluateActiveMeshes","unfreezeActiveMeshes","psLength","_activeMesh","_clearFrameBuffer","bindFrameBuffer","softwareSkinnedMeshIndex","_processSubCameras","_checkIntersections","actionIndex","areIntersecting","usePreciseIntersection","currentIntersectionInProgress","MinDeltaTime","MaxDeltaTime","defaultFrameTime","defaultFPS","stepsTaken","_checkCameraRenderTarget","updateCameras","ignoreAnimations","currentActiveCamera","customIndex","freezeMaterials","unfreezeMaterials","activeRequests","_disposeList","itemsCopy","clearCachedVertexData","cleanCachedTextureBuffer","filterPredicate","spriteMgr","_getByTags","listByTags","getMeshesByTags","getCamerasByTags","getLightsByTags","getMaterialByTags","getTransformNodesByTags","_forceBlockMaterialDirtyMechanism","useOfflineSupport","_requestFile","_requestFileAsync","_readFile","_readFileAsync","setActiveCameraByID","getMaterialByID","getLastMaterialByID","getTextureByUniqueID","getCameraByID","getCameraByUniqueID","getBoneByID","getLightByID","getLightByUniqueID","getParticleSystemByID","getGeometryByID","getMeshByID","getMeshByUniqueID","getLastMeshByID","getMeshesByID","getTransformNodeByID","getTransformNodeByUniqueID","getTransformNodesByID","getNodeByID","getLastEntryByID","getLastSkeletonByID","NAME_IBLSHADOWSRENDERER","STEP_AFTERRENDERTARGETDRAW_PREPASS","decorators","decorate","AdvancedDynamicTexture","numLayoutCalls","_numLayoutCalls","numRenderCalls","_numRenderCalls","renderScale","_renderScale","_background","idealWidth","_idealWidth","_rootContainer","_markAllAsDirty","idealHeight","_idealHeight","useSmallestIdeal","_useSmallestIdeal","renderAtIdealSize","_renderAtIdealSize","idealRatio","rwidth","rheight","_layerToDispose","rootContainer","getControlsByType","getControlByName","_getControlByKey","focusedControl","_focusedControl","isForeground","_clipboardData","widthOrOptions","useStandalone","onGuiReadyObservable","Container","_lastControlOver","_lastControlDown","_capturingControl","_linkedControls","_isFullscreen","_blockNextFocusCheck","_cursorChanged","_defaultMousePointerId","_rootChildrenHaveChanged","_capturedPointerIds","onClipboardObservable","onControlPickedObservable","onBeginLayoutObservable","onEndLayoutObservable","onBeginRenderObservable","onEndRenderObservable","applyYInversionOnUpdate","disableTabNavigation","disablePicking","usePointerTapForClickEvent","skipBlockEvents","checkPointerEveryFrame","_useInvalidateRectOptimization","_invalidatedRectangle","_clearMeasure","Measure","_focusProperties","_onClipboardCopy","rawEvt","_onClipboardCut","_onClipboardPaste","parseContent","adtOptions","_renderObserver","_checkUpdate","_controlAddedObserver","onControlAddedObservable","_controlRemovedObserver","onControlRemovedObservable","_preKeyboardObserver","_focusNextElement","processKeyboard","_link","executeOnAllControls","useInvalidateRectOptimization","invalidateRect","invalidMinX","invalidMinY","invalidMaxX","invalidMaxY","createStyle","moveToNonOverlappedPosition","overlapGroup","deltaStep","repelFactor","controlsForGroup","control1","control2","_Overlaps","diffLength","overlapDeltaMultiplier","linkOffsetXInPixels","linkOffsetYInPixels","_prePointerObserver","_canvasPointerOutObserver","_canvasBlurObserver","_getGlobalViewport","globalViewPort","scaleX","targetY","scaleY","getProjectedPosition","getProjectedPositionWithZ","projectedPosition","skipUpdate","_linkedMesh","linkWithMesh","notRenderable","_moveToProjectedPosition","AllowGPUOptimizations","skipRender","_checkGuiIsReady","_layout","save","_changeCursor","_registerLastControlDown","_doPicking","isPointerBlocker","_shouldBlockPointer","_processObservables","_processPicking","_onPointerOut","_manageFocus","_cleanControlAfterRemovalFromList","_cleanControlAfterRemoval","_translateToPicking","tempViewport","originalCameraToUseForPointers","rigViewport","transformedX","transformedY","_attachPickingToSceneRender","_attachToOnPointerOut","_attachToOnBlur","sortedTabbableControls","isFocusInvisible","registerClipboardEvents","unRegisterClipboardEvents","_transformUvs","homogeneousTextureMatrix","fX","fY","supportPointerMove","_forcePointerUp","friendlyControls","keepsFocusWith","canMoveFocus","otherHost","isAscendant","moveFocusToControl","_lastPickedControl","pickFunction","forcePicking","serializeContent","scaleToSize","Control","CreateFullscreenUI","CreateForMesh","appendToAdt","adt","_LoadURLContentAsync","parseFromSnippetAsync","parseFromURLAsync","gui","encodedGui","widthInPixels","heightInPixels","onlyAlphaTesting","materialSetupCallback","_CreateMaterial","CreateForMeshTexture","foreground","adaptiveScaling","resultScene","newScale","guiIsReady","renderToIntermediateTexture","_renderToIntermediateTexture","adaptHeightToChildren","_adaptHeightToChildren","adaptWidthToChildren","_adaptWidthToChildren","backgroundGradient","_backgroundGradient","isReadOnly","_isReadOnly","_measureForChildren","Empty","_intermediateTexture","delegatePickingToChildren","logLayoutCycleErrors","maxLayoutCycle","_inverseTransformMatrix","Matrix2D","_inverseMeasure","_flagDescendantsAsMatrixDirty","_isClipped","_markMatrixAsDirty","getChildByName","getChildByType","containsControl","_reOrderControl","clearControls","linkedMesh","wasAdded","_offsetLeft","_offsetTop","_getBackgroundColor","getCanvasGradient","_localDraw","_currentMeasure","_beforeLayout","_processMeasures","parentMeasure","_cachedParentMeasure","isEqualsTo","_evaluateClippingState","transformToRef","_prevCurrentMeasureTransformedIntoGlobalSpace","rebuildCount","_applyStates","computedWidth","computedHeight","_rebuildLayout","_tempParentMeasure","isPixel","_paddingLeftInPixels","_paddingRightInPixels","_paddingTopInPixels","_paddingBottomInPixels","paddingLeftInPixels","paddingRightInPixels","ignoreAdaptiveScaling","paddingTopInPixels","paddingBottomInPixels","_postMeasure","invalidatedRectangle","renderToIntermediateTextureThisDraw","contextToDrawTo","clipChildren","_clipForChildren","_intersectsRect","globalAlpha","getDescendantsToRef","isHitTestVisible","_additionalProcessing","_getAdaptDimTo","isDimensionFullyDefined","allowCanvas","isSerializable","childSerializationObject","_parseFromContent","childData","transformedMeasure","_evaluatedMeasure","_clipChildren","clipContent","_clipContent","_shadowOffsetX","_shadowOffsetY","_shadowBlur","_previousShadowBlur","_shadowColor","fontOffset","_fontOffset","_alphaSet","highlightLineWidth","_highlightLineWidth","isHighlighted","_isHighlighted","highlightColor","_highlightColor","_scaleX","_scaleY","transformCenterY","_transformCenterY","transformCenterX","_transformCenterX","horizontalAlignment","_horizontalAlignment","verticalAlignment","_verticalAlignment","fixedRatio","_fixedRatio","fixedRatioMasterIsWidth","_fixedRatioMasterIsWidth","getValueInPixel","_fontFamily","_resetFontCache","_fontStyle","_fontWeight","_styleObserver","_isFontSizeInPercentage","_fontSize","isPercentage","fontSizeInPixels","fontSizeToUse","_gradient","_doNotRender","onIsVisibleChangedObservable","descendantsOnlyPadding","_descendantsOnlyPadding","_paddingLeft","_paddingRight","paddingTop","_paddingTop","_paddingBottom","_left","leftInPixels","_top","topInPixels","linkOffsetX","_linkOffsetX","linkOffsetY","_linkOffsetY","recursivelyFirePointerOut","disabledColor","_disabledColor","disabledColorItem","_disabledColorItem","focusedColor","_focusedColor","_isFocused","_unfocusedColor","onBlurObservable","onFocusObservable","onEnterPressedObservable","onKeyboardEventProcessedObservable","_tempPaddingMeasure","ValueAndUnit","UNITMODE_PIXEL","UNITMODE_PERCENTAGE","HORIZONTAL_ALIGNMENT_CENTER","VERTICAL_ALIGNMENT_CENTER","_wasDirty","_invertTransformMatrix","_transformedPosition","_isMatrixDirty","_fontSet","_dummyVector2","_downCount","_enterCount","_downPointerIds","_evaluatedParentMeasure","_customData","_automaticSize","useBitmapCache","onWheelObservable","onPointerMoveObservable","onPointerDownObservable","onPointerUpObservable","onPointerClickObservable","onPointerEnterObservable","onDirtyObservable","onAfterDrawObservable","_tmpMeasureA","getAscendantOfClass","getLocalCoordinates","globalCoordinates","getLocalCoordinatesToRef","getParentLocalCoordinates","moveToVector3","HORIZONTAL_ALIGNMENT_LEFT","VERTICAL_ALIGNMENT_TOP","setPaddingInPixels","oldLeft","oldTop","leftAndTopIgnoreAdaptiveScaling","_transform","_computeAdditionalOffsetX","_computeAdditionalOffsetY","CombineToRef","leftShadowOffset","rightShadowOffset","topShadowOffset","bottomShadowOffset","_font","_prepareFont","_cachedOffsetX","_cachedOffsetY","_renderHighlight","_renderHighlightSpecific","strokeRect","_getColor","AllowAlphaInheritance","addAndTransformToRef","_preMeasure","_measure","_computeAlignment","parentWidth","parentHeight","HORIZONTAL_ALIGNMENT_RIGHT","VERTICAL_ALIGNMENT_BOTTOM","_clip","_ClipMeasure","_cacheData","_onPointerEnter","canNotify","Vector2WithInfo","notifyClick","canNotifyClick","_onPointerPick","_onWheelScroll","previousControlOver","_getStyleProperty","_GetFontOffset","getDimension","_urlRewriter","_HORIZONTAL_ALIGNMENT_LEFT","_HORIZONTAL_ALIGNMENT_RIGHT","_HORIZONTAL_ALIGNMENT_CENTER","_VERTICAL_ALIGNMENT_TOP","_VERTICAL_ALIGNMENT_BOTTOM","_VERTICAL_ALIGNMENT_CENTER","engineToUse","_FontHeightSizes","controlType","newControl","drawEllipse","AddHeader","Grid","_cells","columnCount","_columnDefinitions","_rowDefinitions","_childControls","getRowDefinition","getColumnDefinition","addRowDefinition","_rowDefinitionObservers","addColumnDefinition","_columnDefinitionObservers","setRowDefinition","setColumnDefinition","getChildrenAt","getChildCellInfo","_removeCell","childIndex","_offsetCell","removeColumnDefinition","removeRowDefinition","goodContainer","_getGridDefinitions","definitionCallback","heights","lefts","tops","availableWidth","globalWidthPercentage","availableHeight","globalHeightPercentage","rowDefinition","columnDefinition","rd","rowNumber","isLoaded","_loaded","detectPointerOnOpaqueOnly","_detectPointerOnOpaqueOnly","sliceLeft","_sliceLeft","sliceRight","_sliceRight","sliceTop","_sliceTop","sliceBottom","_sliceBottom","sourceLeft","_sourceLeft","sourceTop","_sourceTop","sourceWidth","_sourceWidth","sourceHeight","_sourceHeight","imageWidth","_imageWidth","imageHeight","_imageHeight","populateNinePatchSlicesFromImage","_populateNinePatchSlicesFromImage","_extractNinePatchSliceDataFromImage","isSVG","_isSVG","svgAttributesComputationCompleted","_svgAttributesComputationCompleted","autoScale","_autoScale","synchronizeSizeWithContent","stretch","_stretch","_rotate90","preserveProperties","_domImage","dataUrl","rotatedImage","_cellId","_cellWidth","_cellHeight","_handleRotationForSVGImage","_imageDataCache","srcImage","dstImage","_rotate90SourceProperties","onSVGAttributesComputedObservable","srcLeft","srcTop","srcWidth","domImage","srcHeight","dstLeft","dstTop","dstWidth","dstHeight","_onImageLoaded","onImageLoadedObservable","ResetImageCache","SourceImgCache","_removeCacheUsage","timesUsed","htmlElement","_svgCheck","cachedData","waitingForLoadCallback","imgElement","addedToDom","waitingCallback","svgsrc","elemid","svgExist","svgDoc","contentDocument","docwidth","docheight","_getSVGAttribs","svgImage","svgobj","vb_width","vb_height","elem_bbox","getBBox","elem_matrix_a","elem_matrix_d","elem_matrix_e","elem_matrix_f","mainMatrix","baseVal","consolidate","cellId","STRETCH_FILL","STRETCH_NONE","STRETCH_UNIFORM","STRETCH_NINE_PATCH","STRETCH_EXTEND","_prepareWorkingCanvasForOpaqueDetection","_drawImage","sw","tw","workingCanvasContext","ttx","tty","naturalWidth","_renderNinePatch","leftWidth","topHeight","bottomHeight","rightWidth","centerWidth","centerHeight","leftWidthAdjusted","topHeightAdjusted","bottomHeightAdjusted","rightWidthAdjusted","targetCenterWidth","targetCenterHeight","centerLeftOffset","centerTopOffset","bottomOffset","Button","Rectangle","_image","textBlock","_textBlock","alphaStore","pointerEnterAnimation","pointerOutAnimation","pointerDownAnimation","pointerUpAnimation","_getRectangleFill","textBlockName","imageName","CreateImageButton","TextBlock","textWrapping","textHorizontalAlignment","iconImage","CreateImageOnlyButton","CreateSimpleButton","CreateImageWithCenterTextButton","Checkbox","_thickness","checkSizeRatio","_checkSizeRatio","_isChecked","onIsCheckedChangedObservable","actualWidth","actualHeight","AddCheckBoxWithHeader","onValueChanged","panel","StackPanel","isVertical","TextWrapper","txt","removePart","idxStart","idxEnd","insertTxt","newCharacters","isWord","rWord","InputText","_outlineWidth","_outlineColor","_maxWidth","maxWidthInPixels","highligherOpacity","_highligherOpacity","onFocusSelectAll","_onFocusSelectAll","textHighlightColor","_textHighlightColor","_margin","marginInPixels","autoStretchWidth","_autoStretchWidth","focusedBackground","_focusedBackground","placeholderColor","_placeholderColor","placeholderText","_placeholderText","deadKey","_deadKey","highlightedText","_highlightedText","_addKey","_currentKey","_textWrapper","valueAsString","_textHasChanged","onTextChangedObservable","_blinkIsEven","_cursorOffset","_isTextHighlightOn","_startHighlightIndex","_endHighlightIndex","_cursorIndex","promptMessage","disableMobilePrompt","onBeforeKeyAddObservable","onTextHighlightObservable","onTextCopyObservable","onTextCutObservable","onTextPasteObservable","_scrollLeft","_blinkTimeout","_onClipboardObserver","_onPointerDblTapObserver","_focusedBy","clipboardInfo","_onCopyText","_onCutText","_onPasteText","_processDblClick","selectAllText","_connectedVirtualKeyboard","processKey","isTextHighlightOn","deletePosition","insertPosition","_updateValueFromCursorIndex","moveLeft","moveRight","_clickedCoordinate","clipTextLeft","_beforeRenderText","_textWidth","marginWidth","rootY","strokeText","absoluteCursorPosition","previousDist","cursorOffsetText","cursorOffsetWidth","cursorLeft","highlightCursorOffsetWidth","highlightCursorLeft","textWrapper","ColorPicker","_tmpColor","_h","_s","_v","_Epsilon","_pointerStartedOnSquare","_pointerStartedOnWheel","_squareLeft","_squareTop","_squareSize","_lastPointerDownId","_pointerIsDown","_updateSquareProps","squareSize","_drawGradientSquare","hueValue","lgh","createLinearGradient","addColorStop","lgv","_drawCircle","_createColorWheelCanvas","maxDistSq","innerRadius","minDistSq","distSq","alphaRatio","alphaAmount","maxAlpha","minAlpha","lowerRadius","upperRadius","wheelThickness","_colorWheelCanvas","_updateValueFromPointer","_isPointOnSquare","_isPointOnWheel","ShowPickerDialogAsync","advancedTexture","pickerWidth","pickerHeight","headerHeight","lastColor","swatchLimit","numSwatchesPerLine","drawerMaxRows","rawSwatchSize","gutterSize","colGutters","swatchSize","drawerMaxSize","buttonColor","buttonBackgroundColor","buttonBackgroundHoverColor","buttonBackgroundClickColor","buttonDisabledColor","buttonDisabledBackgroundColor","luminanceLimitColor","luminanceLimit","iconColorDark","iconColorLight","buttonFontSize","butEdit","inputFieldLabels","inputTextBackgroundColor","inputTextColor","swatchNumber","swatchDrawer","butSave","lastVal","activeField","editSwatchMode","dialogContainer","savedColors","topRow","initialRows","gutterCount","pickerPanel","panelHead","pickerPanelRows","closeButton","headerColor3","closeIconColor","textVerticalAlignment","closePicker","currentSwatch","dialogBody","dialogBodyCols","pickerGrid","editSwatches","updateValues","pickerBodyRight","pickerBodyRightRows","pickerSwatchesButtons","pickerButtonsCol","pickerSwatches","pickeSwatchesRows","activeSwatches","labelWidth","labelHeight","labelTextSize","newText","newSwatch","swatchOutline","currentText","buttonGrid","buttonGridRows","buttonWidth","buttonHeight","butOK","butCancel","disableButton","setEditButtonVisibility","updateSwatches","pickerColorValues","currentColor","rgbValuesQuadrant","labelText","rValInt","gValInt","bValInt","rValDec","gValDec","bValDec","hexValueQuadrant","hexVal","minusPound","inputField","newSwatchRGB","createSwatch","swatch","swatchColor","deleteSwatch","thisButton","currentRows","thisRow","totalButtonsThisRow","buttonIterations","enableButton","newHexValue","checkHex","leadingZero","Ellipse","_arc","FocusableButton","InputTextArea","autoStretchHeight","_autoStretchHeight","_maxHeight","maxHeightInPixels","_textHorizontalAlignment","_textVerticalAlignment","_prevText","_lineSpacing","onLinesReadyObservable","_updateCursorPosition","_highlightCursorInfo","initialStartIndex","initialRelativeStartIndex","initialLineIndex","_cursorInfo","globalStartIndex","globalEndIndex","relativeEndIndex","relativeStartIndex","currentLineIndex","alternativeProcessKey","upperLine","tmpIndex","relativeIndex","currentWidth","_contextForBreakLines","upperWidth","previousWidth","lineEnding","upperLineRelativeIndex","underLine","underWidth","underLineRelativeIndex","_parseLineWordWrap","testLine","testWidth","flushedLine","_breakLines","refWidth","_line","_parseLine","longerString","longerStringWidth","_availableWidth","totalHeight","_availableHeight","tmpLength","_computeScroll","_clipTextLeft","_clipTextTop","_scrollTop","_drawText","textWidth","_clickedCoordinateX","_clickedCoordinateY","cursorTop","_resetBlinking","startLineIndex","endLineIndex","highlightRootY","highlightRootX","leftOffsetWidth","selectedText","hightlightWidth","globalIndex","relativeCoordinateY","relativeXPosition","InputPassword","pwdTextWrapper","Line","dash","_dash","connectedControl","_connectedControl","_connectedControlDirtyObserver","_x1","_y1","_y2","_lineWidth","_effectiveX2","_effectiveY2","MultiLine","onPointUpdate","getAt","MultiLinePoint","resetLinks","_point","_minY","_maxY","RadioButton","AddRadioButtonWithHeader","radio","BaseSlider","displayThumb","_displayThumb","barOffset","_barOffset","barOffsetInPixels","_thumbWidth","thumbWidthInPixels","_minimum","_maximum","_isVertical","isThumbClamped","_isThumbClamped","_effectiveBarOffset","_getThumbPosition","_backgroundBoxLength","_getThumbThickness","thumbThickness","_backgroundBoxThickness","_prepareRenderingData","_renderLeft","_renderTop","_renderWidth","_renderHeight","_effectiveThumbThickness","Slider","displayValueBar","_displayValueBar","_borderColor","thumbColor","_thumbColor","isThumbCircle","_isThumbCircle","thumbPosition","_ScrollViewerWindow","freezeControls","_freezeControls","_restoreMeasures","_updateMeasures","_useBuckets","_makeBuckets","bucketWidth","_bucketWidth","bucketHeight","_bucketHeight","setBucketSizes","_buckets","_bucketLen","_dispatchInBuckets","_oldLeft","_oldTop","bStartX","_origLeft","origLeft","bEndX","bEndY","_origTop","origTop","bStartY","lstc","origLeftForChildren","origTopForChildren","_updateChildrenMeasures","_parentMeasure","_scrollChildren","_scrollChildrenWithBuckets","parentClientWidth","parentClientHeight","updateInPlace","invertScrollDirection","_invertScrollDirection","_tempMeasure","_first","_originX","_originY","ImageScrollBar","_backgroundBaseImage","num90RotationInVerticalMode","_backgroundImage","rotatedValue","thumbImage","_thumbBaseImage","_thumbImage","thumbLength","_thumbLength","_thumbHeight","barImageHeight","_barImageHeight","ScrollViewer","horizontalBar","_horizontalBar","verticalBar","_verticalBar","_window","forceHorizontalBar","_forceHorizontalBar","_grid","_barSize","forceVerticalBar","_forceVerticalBar","isImageBased","_pointerIsOver","_wheelPrecision","_horizontalBarImageHeight","_verticalBarImageHeight","_oldWindowContentsWidth","_oldWindowContentsHeight","_useImageBar","_horizontalBarSpace","_verticalBarSpace","_dragSpace","_addBar","barColor","barBackground","resetWindow","_buildClientSizes","_clientWidth","_clientHeight","_updateScroller","_setWindowPosition","scrollBackground","_barColor","_barImage","horizontalThumbImage","_horizontalBarImage","verticalThumbImage","_verticalBarImage","barSize","horizontalBarImageHeight","verticalBarImageHeight","_barBackground","barImage","_barBackgroundImage","horizontalBarImage","_horizontalBarBackgroundImage","verticalBarImage","_verticalBarBackgroundImage","windowContentsWidth","windowContentsHeight","_attachWheel","barControl","barContainer","_onWheelObserver","ToggleButton","toActiveAnimation","toInactiveAnimation","onIsActiveChangedObservable","pointerEnterActiveAnimation","pointerOutActiveAnimation","pointerDownActiveAnimation","pointerUpActiveAnimation","pointerEnterInactiveAnimation","pointerOutInactiveAnimation","pointerDownInactiveAnimation","pointerUpInactiveAnimation","VirtualKeyboard","onKeyPressObservable","defaultButtonWidth","defaultButtonHeight","defaultButtonPaddingLeft","defaultButtonPaddingRight","defaultButtonPaddingTop","defaultButtonPaddingBottom","defaultButtonColor","defaultButtonBackground","shiftButtonColor","selectedShiftThickness","shiftState","_currentlyConnectedInputText","_connectedInputTexts","_onKeyPressObserver","_createKey","propertySet","addKeysRow","propertySets","applyShiftState","rowContainer","button_tblock","connectedInputText","onFocusObserver","onBlurObserver","_removeConnectedInputObservables","CreateDefaultLayout","stackPanel","DisplayGrid","displayMinorLines","_displayMinorLines","displayMajorLines","_displayMajorLines","minorLineTickness","_minorLineTickness","minorLineColor","_minorLineColor","majorLineTickness","_majorLineTickness","majorLineColor","_majorLineColor","majorLineFrequency","_majorLineFrequency","cellCountX","cellCountY","ImageBasedSlider","valueBarImage","_valueBarImage","controlFirst","BaseGradient","_colorStops","_gradientDirty","_addColorStopsToCanvasGradient","_canvasGradient","_createCanvasGradient","removeColorStop","colorStop","clearColorStops","colorStops","LinearGradient","_x0","_y0","RadialGradient","_r0","createRadialGradient","cornerRadius","_cornerRadius","cornerRadiusX","cornerRadiusY","cornerRadiusZ","cornerRadiusW","_cachedRadius","additionalWidth","additionalHeight","_drawRoundedRect","spacing","_spacing","_doNotTrackManualChanges","_manualWidth","_manualHeight","ignoreLayoutWarnings","stackWidth","stackHeight","panelWidthChanged","panelHeightChanged","previousHeight","_getManualDim","manualWidth","manualHeight","resizeToFit","_resizeToFit","_textWrapping","lineSpacing","underline","_underline","lineThrough","_lineThrough","applyOutlineToUnderline","_applyOutlineToUnderline","wordDivider","_wordDivider","forceResizeWidth","_forceResizeWidth","reuseHTMLForWordWrapping","_linesTemp","_htmlElement","maxLineWidth","xFrom","yFrom","xTo","yTo","currentStroke","_renderLines","lineJoin","miterLimit","refHeight","_parseHTMLText","_parseLineEllipsis","_parseLineWordWrapEllipsis","adjustWordWrappingHTMLElement","textNode","_getTextMetricsWidth","_getCharsToRemove","removeChars","textMetrics","actualBoundingBoxLeft","actualBoundingBoxRight","wordSplittingFunction","_computeHeightForLinesOf","linesToRemove","computeExpectedHeight","fromValues","l0","l3","l4","l5","detDiv","det4","det5","r4","r5","RotationToRef","parentMatrix","_TempPreTranslationMatrix","_TempScalingMatrix","_TempRotationMatrix","_TempPostTranslationMatrix","_TempCompose0","_TempCompose1","_TempCompose2","tmpRect","tmpRect2","tmpV1","tmpV2","addX","addY","addWidth","addHeight","multiLine","_multiLine","_controlObserver","_meshObserver","_translatePoint","xValue","yValue","negativeValueAllowed","_originalUnit","refValue","_Regex","sourceUnit","_UNITMODE_PERCENTAGE","_UNITMODE_PIXEL","validateAsync","getExternalResource","externalResourceFunction","GLTFValidator","validateBytes","validateString","workerFunc","pendingExternalResources","GLTFValidation","ValidateAsync","slicedData","_LoadScriptPromise","GLTFMagicBase64Encoded","GLTFFileLoaderMetadata","GLTFLoaderCoordinateSystemMode","FORCE_RIGHT_HANDED","GLTFLoaderAnimationStartMode","FIRST","ALL","GLTFLoaderState","LOADING","READY","GLTFLoaderOptions","coordinateSystemMode","animationStartMode","loadNodeAnimations","loadSkins","loadMorphTargets","compileMaterials","compileShadowGenerators","transparencyAsCoverage","useRangeRequests","createInstances","alwaysComputeBoundingBox","loadAllMaterials","loadOnlyMaterials","skipMaterials","targetFps","alwaysComputeSkeletonRootNode","useGltfTextureNames","preprocessUrlAsync","onParsed","customRootNode","onMeshLoaded","onSkinLoaded","onTextureLoaded","onMaterialLoaded","onCameraLoaded","GLTFFileLoader","onParsedObservable","onSkinLoadedObservable","onTextureLoadedObservable","onMaterialLoadedObservable","onCameraLoadedObservable","onExtensionLoadedObservable","onValidatedObservable","_loader","_requests","onLoaderStateChangedObservable","_logIndentLevel","_loggingEnabled","_log","_logDisabled","_capturePerformanceCounters","_startPerformanceCounter","_startPerformanceCounterDisabled","_endPerformanceCounter","_endPerformanceCounterDisabled","_onParsedObserver","_onMeshLoadedObserver","_onSkinLoadedObserver","skinnedNode","_onTextureLoadedObserver","_onMaterialLoadedObserver","_onCameraLoadedObserver","_onCompleteObserver","_onErrorObserver","onExtensionLoaded","_onExtensionLoadedObserver","loggingEnabled","_logEnabled","capturePerformanceCounters","_startPerformanceCounterEnabled","_endPerformanceCounterEnabled","onValidated","_onValidatedObserver","_progressCallback","_loadBinary","_unpackBinaryAsync","webRequest","loaderData","_parseJson","readViewAsync","arrayBufferView","_getLoader","loaderState","whenCompleteAsync","_onProgress","_lengthComputable","_total","minVersion","_parseVersion","_compareVersion","_CreateGLTF1Loader","_CreateGLTF2Loader","dataReader","unpacked","_unpackBinaryV1Async","_unpackBinaryV2Async","contentLength","contentFormat","startByteOffset","chunkLength","_logOpen","_logClose","spaces","_logSpaces","IncrementalLoading","HomogeneousCoordinates","EComponentType","EShaderType","FRAGMENT","VERTEX","EParameterType","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT_VEC2","INT_VEC3","INT_VEC4","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","SAMPLER_2D","ETextureWrapMode","ETextureFilterType","ECullingType","FRONT_AND_BACK","EBlendingFunction","SRC_COLOR","SRC_ALPHA_SATURATE","GLTFUtils","SetMatrix","semantic","SetUniform","GetWrapMode","GetByteStrideFromType","GetTextureFilterMode","GetBufferFromBufferView","gltfRuntime","loadedBufferView","loadedBufferViews","GetBufferFromAccessor","bufferViews","DecodeBufferToText","GetDefaultMaterial","_DefaultMaterial","GLTFDefaultMaterialVertexShader","GLTFDefaultMaterialPixelShader","ETokenType","IDENTIFIER","END_OF_INPUT","toParse","currentToken","currentIdentifier","currentString","isLetterOrDigitPattern","_toParse","_maxPos","getNextToken","glTFTransforms","babylonTransforms","glTFAnimationPaths","babylonAnimationPaths","parsedObjects","runtimeProperty","normalizeUVs","attributeParameter","configureBoneTransformation","getParentBone","skins","nde","getNodeToRoot","nodesToRoot","nodeToRoot","getJointNode","nodeIsInJoints","jointNames","babylonNode","verticesStarts","verticesCounts","indexStarts","indexCounts","primitives","tempVertexData","accessors","uvKind","configureNode","importNode","importOnlyMeshes","skin","importMeshesNames","importSkeleton","babylonSkeleton","nodesToRootToAdd","getNodesToRoot","jointNode","existingBone","foundBone","orthoCamera","perspectiveCamera","persCamera","ambienLight","hemiLight","pointLight","ptLight","spotLight","spLight","fallOfAngle","fallOffExponent","configureNodeFromMatrix","traverseNodes","meshIncluded","postLoad","lastAnimation","bufferInput","bufferOutput","isBone","targetPathIndex","babylonAnimation","modifyKey","loadAnimations","parseShaderUniforms","technique","unTreatedUniforms","unif","uniformParameter","transformIndex","importMaterials","GLTFLoaderExtension","LoadMaterialAsync","GLTFLoaderBase","CreateRuntime","programs","techniques","extensionsUsed","shaderscount","loadedBufferCount","loadedShaderCount","dummyNodes","parseBuffers","parsedBuffers","parseShaders","parsedShaders","sha","LoadBufferAsync","LoadTextureBufferAsync","CreateTextureAsync","revokeBlobURL","wrapS","wrapT","LoadShaderStringAsync","shaderString","newVertexShader","newPixelShader","vertexTokenizer","pixelTokenizer","foundAttribute","onShaderCompileError","onShaderCompileSuccess","prepareShaderMaterialUniforms","materialValues","techniqueUniforms","onLoadTexture","LoadTextureAsync","onBindShaderMaterial","blendFunc","GLTFLoader","RegisterExtension","Extensions","LoadRuntimeAsync","_createNodes","skl","_loadBuffersAsync","_loadShadersAsync","_loadAsync","LoadRuntimeExtensionsAsync","hasShaders","processShader","hasBuffers","processBuffer","loadRuntimeAsync","loadRuntimeExtensionsAsync","loadBufferAsync","loadTextureBufferAsync","createTextureAsync","loadShaderStringAsync","loadMaterialAsync","_ApplyExtensions","loaderExtension","_LoadTextureBufferAsync","_CreateTextureAsync","defaultFunc","GLTFBinaryExtension","_bin","shaderBytes","GLTFMaterialsCommonExtension","ambientLight","ambient","directional","fallOffAngle","standardMaterial","transparency","shininess","emission","getVector3","AnimationPropertyInfo","getStride","TransformNodeAnimationPropertyInfo","buildAnimations","_babylonTransformNode","nodeAnimationData","WeightAnimationPropertyInfo","_numMorphTargets","_primitiveBabylonMeshes","babylonMesh","babylonAnimationClone","getWeights","_registeredGLTFExtensions","registeredGLTFExtensions","registerGLTFExtension","isGLTFExtension","unregisterGLTFExtension","mergeDeep","pVal","oVal","ArrayItem","Get","TryGet","Assign","UnregisterExtension","gltf","_gltf","babylonScene","_babylonScene","rootBabylonMesh","_rootBabylonMesh","_completePromises","_assetContainer","_babylonLights","_disableInstancedMesh","_allMaterialsDirtyRequired","_fileName","_uniqueRootUrl","_defaultBabylonMaterialData","_postSceneLoadActions","_loadData","nodeMap","_getMeshes","_getSkeletons","_getAnimationGroups","_getTransformNodes","_getGeometries","resultFunc","_loadExtensionsAsync","loadingToReadyCounterName","loadingToCompleteCounterName","_extensionsOnLoading","oldBlockMaterialDirtyMechanism","loadSceneAsync","_loadMaterialAsync","_compileMaterialsAsync","_compileShadowGeneratorsAsync","_extensionsOnReady","_startAnimations","_setupData","binaryBuffer","nodeParents","_createRootNode","extensionPromises","registeredExtension","isExtensionUsed","extensionsRequired","_LoadTransform","extensionPromise","_extensionsLoadSceneAsync","logOpen","loadNodeAsync","_loadAnimationsAsync","logClose","_forEachPrimitive","_babylonTransformNodeForSkin","_babylonAnimationGroup","babylonAnimationGroups","babylonAnimationGroup","_extensionsLoadNodeAsync","loadNode","babylonTransformNode","AddPointerMetadata","loadCameraAsync","babylonCamera","childBabylonMesh","hasSkin","_loadMeshAsync","babylonTransformNodeForSkin","_loadSkinAsync","_loadMeshPrimitiveAsync","_extensionsLoadMeshPrimitiveAsync","shouldInstance","babylonAbstractMesh","_instanceData","babylonSourceMesh","_createMorphTargets","_loadVertexDataAsync","babylonGeometry","_loadMorphTargetsAsync","babylonDrawMode","_GetDrawMode","babylonMaterial","_createDefaultMaterial","_extensionsLoadVertexDataAsync","_loadIndicesAccessorAsync","loadAttribute","_loadVertexAccessorAsync","babylonVertexBuffer","divider","oneOverDivider","targetNames","babylonMorphTarget","_loadMorphTargetVertexDataAsync","_loadFloatAccessorAsync","_extensionsLoadSkinAsync","_loadBones","_loadSkinInverseBindMatricesDataAsync","inverseBindMatricesData","_updateBoneMatrices","_findSkeletonRootNode","joints","skeletonNode","babylonBones","_loadBone","_isJoint","babylonBone","parentBabylonBone","_getNodeMatrix","inverseBindMatrices","baseMatrix","babylonParentBone","_extensionsLoadCameraAsync","_babylonCamera","perspective","yfov","orthographic","xmag","ymag","loadAnimationAsync","_extensionsLoadAnimationAsync","_loadAnimationChannelAsync","babylonTarget","animationContext","_extensionsLoadAnimationChannelAsync","channelTargetPath","pathIsWeights","_loadAnimationChannelFromTargetInfoAsync","targetInfo","invfps","_loadAnimationSamplerAsync","numAnimations","propertyInfos","propertyInfo","outputOffset","babylonAnimatable","inputAccessor","outputAccessor","_extensionsLoadBufferAsync","loadUriAsync","loadBufferViewAsync","_extensionsLoadBufferViewAsync","_loadAccessorAsync","_GetNumComponents","_GetTypedArray","sparse","indicesBufferView","valuesBufferView","valuesData","sparseLength","sparseData","indicesIndex","_GetTypedArrayConstructor","_loadVertexBufferViewAsync","_babylonBuffer","_babylonVertexBuffer","babylonBuffer","_loadMaterialMetallicRoughnessPropertiesAsync","baseColorFactor","metallicFactor","baseColorTexture","loadTextureInfoAsync","nonColorData","_extensionsLoadMaterialAsync","babylonData","babylonMeshes","loadMaterialPropertiesAsync","_extensionsCreateMaterial","_extensionsLoadMaterialPropertiesAsync","loadMaterialBasePropertiesAsync","pbrMetallicRoughness","loadMaterialAlphaProperties","emissiveFactor","occlusionTexture","ambientTexture","alphaCutoff","_extensionsLoadTextureInfoAsync","texCoord","_textureInfo","_loadTextureAsync","_extensionsLoadTextureAsync","DefaultSampler","_createTextureAsync","textureLoaderOptions","samplerData","_loadSampler","deferred","noMipMaps","loadImageAsync","_GetTextureSamplingMode","_GetTextureWrapMode","_extensionsLoadUriAsync","_ValidateUri","babylonObject","componentTypeLength","_forEachExtensions","_applyExtensions","actionAsync","loaderProperty","_activeLoaderExtensionFunctions","activeLoaderExtensionFunctions","onLoading","_loadUriAsync","LoadExtensionAsync","LoadExtraAsync","startPerformanceCounter","endPerformanceCounter","EXT_lights_image_based","_lights","extensionContext","_loadLightAsync","specularImages","specularImageContext","specularImageSize","_babylonTexture","irradianceCoefficients","EXT_mesh_gpu_instancing","translationBuffer","rotationBuffer","scaleBuffer","EXT_meshopt_compression","bufferViewMeshopt","_meshOptData","EXT_texture_webp","EXT_texture_avif","KHR_draco_mesh_compression","useNormalizedFlagFromAccessor","dracoCompression","_dracoBabylonGeometry","KHR_lights","babylonLight","babylonDirectionalLight","babylonSpotLight","outerConeAngle","innerConeAngle","_babylonLight","KHR_materials_pbrSpecularGlossiness","_loadSpecularGlossinessPropertiesAsync","diffuseFactor","specularFactor","glossinessFactor","KHR_materials_unlit","_loadUnlitPropertiesAsync","KHR_materials_clearcoat","_loadClearCoatPropertiesAsync","clearcoatFactor","clearcoatTexture","clearcoatRoughnessFactor","clearcoatRoughnessTexture","clearcoatNormalTexture","KHR_materials_iridescence","_loadIridescencePropertiesAsync","iridescenceFactor","iridescenceIor","iridescenceIOR","iridescenceThicknessMinimum","iridescenceThicknessMaximum","iridescenceTexture","iridescenceThicknessTexture","KHR_materials_anisotropy","anisotropyStrength","anisotropyRotation","anisotropyTexture","KHR_materials_emissive_strength","_loadEmissiveProperties","emissiveStrength","KHR_materials_sheen","_loadSheenPropertiesAsync","sheenColorFactor","sheenColorTexture","sheenRoughnessFactor","sheenRoughnessTexture","KHR_materials_specular","_loadSpecularPropertiesAsync","specularColorFactor","metallicReflectanceTexture","specularColorTexture","reflectanceTexture","KHR_materials_ior","_loadIorPropertiesAsync","_DEFAULT_IOR","KHR_materials_variants","GetAvailableVariants","extensionMetadata","_GetExtensionMetadata","variants","getAvailableVariants","SelectVariant","variantName","lastSelected","selectVariant","GetLastSelectedVariant","getLastSelectedVariant","_variants","mappingIndex","mappings","mappingVariantIndex","variantIndex","variantEntry","TransmissionHelper","renderSize","renderTargetTextureType","_opaqueRenderTarget","_opaqueMeshesCache","_transparentMeshesCache","_materialObservers","_transmissionHelper","_parseScene","_setupRenderTargets","oldOptions","getOpaqueTarget","_shouldRenderAsTransmission","_addMesh","_onMeshMaterialChanged","_removeMesh","transparentIdx","opaqueIdx","_isRenderTargetValid","sceneImageProcessingapplyByPostProcess","saveSceneEnvIntensity","opaqueRenderTarget","KHR_materials_transmission","_loadTransparentPropertiesAsync","pbrMaterial","transmissionFactor","transmissionTexture","KHR_materials_diffuse_transmission","_loadTranslucentPropertiesAsync","diffuseTransmissionFactor","diffuseTransmissionTexture","diffuseTransmissionColorFactor","diffuseTransmissionColorTexture","KHR_materials_volume","_loadVolumePropertiesAsync","thicknessFactor","attenuationDistance","attenuationColor","KHR_materials_dispersion","_loadDispersionPropertiesAsync","KHR_mesh_quantization","KHR_texture_basisu","KHR_texture_transform","KHR_xmp_json_ld","xmp_gltf","xmp_node","packet","packets","xmp","getColor3","getFloat","getMinusFloat","getNextFloat","getFloatBy2","getTextureTransformTree","MaterialAnimationPropertyInfo","CameraAnimationPropertyInfo","LightAnimationPropertyInfo","nodesTree","__array__","__target__","camerasTree","animationPointerTree","getAlpha","KHR_lights_punctual","GLTFPathToObjectConverter","_infoTree","objectTree","infoTree","AnimationPointerPathToObjectConverter","KHR_animation_pointer","_pathToObjectConverter","MSFT_audio_emitter","_clips","_emitters","clips","emitters","emitterIndex","_loadEmitterAsync","_babylonSounds","_loadAnimationEventAsync","_loadClipAsync","_objectURL","_babylonData","clipPromises","clipContext","objectURL","weightedSound","_getEventAction","babylonAnimationEvent","MSFT_lod","maxLODsToLoad","onNodeLODsLoadedObservable","onMaterialLODsLoadedObservable","_bufferLODs","_nodeIndexLOD","_nodeSignalLODs","_nodePromiseLODs","_nodeBufferLODs","_materialIndexLOD","_materialSignalLODs","_materialPromiseLODs","_materialBufferLODs","indexLOD","_loadBufferLOD","firstPromise","nodeLODs","_getLODs","nodeLOD","previousNodeLOD","_disposeTransformNode","materialLODs","materialLOD","previousDataLOD","_disposeMaterials","previousIndexLOD","bufferLODs","bufferLOD","babylonMaterials","babylonMaterialsToDispose","babylonTextures","MSFT_minecraftMesh","MSFT_sRGBFactors","gltfToFlowGraphTypeMap","gltfTypeToBabylonType","float2","float3","float4","float4x4","convertValueWithType","configObject","signature","convertBlock","gltfBlock","convertConfiguration","converted","configurationList","customEvent","customEvents","InteractivityPathToObjectConverter","gltfTree","KHR_interactivity","_pathConverter","interactivityDefinition","convertGLTFToSerializedFlowGraph","flowGraphJsonBlocks","flowGraphJsonBlock","fgBlock","gltfFlows","flows","socketOutName","socketOut","nodeInId","nodeInSocketName","socket","nodeIn","socketIn","gltfValues","socketInName","convertedValue","nodeOutId","nodeOutSocketName","nodeOut","KHR_node_visibility","ExtrasAsMetadata","_assignExtras","gltfProp","MTLFileLoader","parseMTL","delimiter_pattern","_GetTexture","bumpMultiplierIndex","bumpMultiplier","lastDelimiter","INVERT_TEXTURE_Y","SolidParser","babylonMeshesArray","loadingOptions","_extColors","_meshesFromObj","_indicesForBabylon","_wrappedPositionForBabylon","_wrappedUvsForBabylon","_wrappedColorsForBabylon","_wrappedNormalsForBabylon","_tuplePosNorm","_curPositionInIndices","_hasMeshes","_unwrappedPositionsForBabylon","_unwrappedColorsForBabylon","_unwrappedNormalsForBabylon","_unwrappedUVForBabylon","_materialNameFromObj","_objMeshName","_increment","_isFirstMaterial","_grayColor","_hasLineData","_materialToUse","_babylonMeshesArray","_loadingOptions","_isInArray","_isInArrayUV","_setData","indicePositionFromObj","indiceUvsFromObj","indiceNormalFromObj","positionVectorFromOBJ","textureVectorFromOBJ","normalsVectorFromOBJ","positionColorsFromOBJ","optimizeWithUV","_unwrapData","_handednessSign","importVertexColors","_getTriangles","_pushTriangle","_setDataForCurrentFaceWithPattern1","_setDataForCurrentFaceWithPattern2","_setDataForCurrentFaceWithPattern3","_setDataForCurrentFaceWithPattern4","_setDataForCurrentFaceWithPattern5","_addPreviousObjMesh","_handledMesh","useLegacyBehavior","hasLines","_optimizeNormals","lst","v0Idx","vIdx","_IsLineElement","_IsObjectElement","_IsGroupElement","_GetZbrushMRGB","notParse","regArray","regIndex","onFileToLoadFound","linesOBJ","lineLines","lineValues","VertexPattern","NormalPattern","UVPattern","UVScaling","FacePattern3","FacePattern4","FacePattern5","FacePattern2","FacePattern1","LinePattern1","LinePattern2","LinePattern3","GroupDescriptor","ObjectDescriptor","objMesh","materialName","UseMtlDescriptor","MtlLibGroupDescriptor","SmoothDescriptor","directMaterial","_babylonMesh","_isLine","optimizeNormals","OBJFileLoader","_DefaultLoadingOptions","COMPUTE_NORMALS","OPTIMIZE_NORMALS","IMPORT_VERTEX_COLORS","INVERT_Y","invertTextureY","UV_SCALING","materialLoadingFailsSilently","MATERIAL_LOADING_FAILS_SILENTLY","OPTIMIZE_WITH_UV","SKIP_MATERIALS","USE_LEGACY_BEHAVIOR","_loadMTL","onFailure","pathOfFile","_parseSolid","materialsFromMTLFile","mtlPromises","dataLoaded","isLine","STLFileLoaderMetadata","STLFileLoader","solidPattern","facetsPattern","normalPattern","vertexPattern","_isBinary","_parseBinary","meshName","meshNameFromEnd","_parseASCII","ascii","indicesCount","normalX","normalY","normalZ","vertexstart","DO_NOT_ALTER_FILE_COORDINATES","solidData","normalMatches","vertexMatch","SPLATFileLoaderMetadata","SPLATFileLoader","_parse","_BuildPointCloud","pointcloud","_BuildMesh","parsedPLY","_ConvertPLYToSplat","gaussianSplatting","faceElement","faceVertexCount","propertyCount","propertyColorCount","splatProperties","splatColorProperties","isOnStoreInitDefined","isOnStateInitDefined","INITIAL_STATE_TOKEN","destroySubject$","destroy$","stateSubject$","isInitialized","ɵhasProvider","checkProviderForHooks","updaterFn","observableOrValue","syncError","isSyncUpdate","assertStateIsInitialized","stateOrUpdaterFn","partialStateOrUpdaterFn","patchedState","partialState","projector","observablesOrSelectorsObject","processSelectorArgs","selectorArgs","defaultEqualityFn","isSelectConfig","hasProjectFnOnly","debounceSync","actionSubscription","rootSubscription","source$","projectorArgs","shareReplay","configOrBufferSize","windowTime","selectSignal","selectSignalArgs","origin$","defined","Notification","observeNotification","do","nextHandler","completeHandler","accept","nextOrObserver","createNext","createError","createComplete","completeNotification","_c","elementOrOptions","activeGroups","teardownAttempted","groupBySourceSubscriber","grouped","createGroupedObservable","groupSubject","groupSubscriber","exhaustMap","outerValue","DEFAULT_EFFECT_CONFIG","functional","useEffectsErrorHandler","CREATE_EFFECT_METADATA_KEY","getSourceForInstance","isClass","classOrRecord","getClasses","classesAndRecords","mergeEffects","sourceInstance","globalErrorHandler","effectsErrorHandler","observables$","getSourceMetadata","getCreateEffectMetadata","observable$","effectAction$","ignoreElements","materialize","defaultEffectsErrorHandler","retryAttemptLeft","Actions","ScannedActionsSubject","allowedTypes","typeOrActionCreator","_ROOT_EFFECTS_GUARD","USER_PROVIDED_EFFECTS","_ROOT_EFFECTS","_ROOT_EFFECTS_INSTANCES","_FEATURE_EFFECTS","_FEATURE_EFFECTS_INSTANCE_GROUPS","EFFECTS_ERROR_HANDLER","ROOT_EFFECTS_INIT","rootEffectsInit","isOnInitEffects","EffectSources","addEffects","effectSourceInstance","toActions","effectsInstance","isClassInstance","effect$","resolveEffectSource","mergedEffects$","isOnRunEffects","ngrxOnRunEffects","reportInvalidActions","reporter","isAction","isMethod","dematerialize","init$","ngrxOnInitEffects","isOnIdentifyEffects","ngrxOnIdentifyEffects","EffectsRunner","effectsSubscription","effectSources","EffectsRootModule","runner","rootEffectsInstances","storeRootModule","storeFeatureModule","EffectsFeatureModule","effectsRootModule","effectsInstanceGroups","effectsInstances","featureEffects","effects","effectsClasses","createEffectsInstances","rootEffects","_provideForRootGuard","effectsGroups","userProvidedEffectsGroups","effectsGroup","userProvidedEffectsGroup","effectsTokenOrRecord","isToken","tokenOrRecord","concatLatestFrom","observablesFactory","observablesAsArray","tapResponse","REGISTERED_ACTION_TYPES","defineType","_as","_p","ACTIONS_SUBJECT_PROVIDERS","_ROOT_STORE_GUARD","_INITIAL_STATE","REDUCER_FACTORY","_REDUCER_FACTORY","INITIAL_REDUCERS","_INITIAL_REDUCERS","STORE_FEATURES","_STORE_REDUCERS","_FEATURE_REDUCERS","_FEATURE_CONFIGS","_STORE_FEATURES","_FEATURE_REDUCERS_TOKEN","FEATURE_REDUCERS","USER_PROVIDED_META_REDUCERS","META_REDUCERS","_RESOLVED_META_REDUCERS","USER_RUNTIME_CHECKS","_USER_RUNTIME_CHECKS","ACTIVE_RUNTIME_CHECKS","_ACTION_TYPE_UNIQUENESS_CHECK","combineReducers","reducers","reducerKeys","finalReducers","finalReducerKeys","hasChanged","previousStateForKey","nextStateForKey","composed","createReducerFactory","reducerFactory","metaReducers","ReducerObservable","ReducerManager","currentReducers","addFeature","addFeatures","reducerDict","createFeatureReducerFactory","addReducers","removeFeature","removeFeatures","removeReducers","addReducer","updateReducers","removeReducer","featureKey","featureKeys","keyToRemove","REDUCER_MANAGER_PROVIDERS","ɵScannedActionsSubject_BaseFactory","SCANNED_ACTIONS_SUBJECT_PROVIDERS","reducer$","stateAndAction$","reduceState","stateSubscription","stateActionPair","STATE_PROVIDERS","Store","actionsObserver","reducerManager","STORE_PROVIDERS","propsOrPath","mapped$","pathSlices","pluck","currentProp","RUNTIME_CHECK_URL","_ngrxMockEnvironment","isEqualCheck","defaultMemoize","projectionFn","isArgumentsEqual","isResultEqual","overrideResult","lastArguments","isArgumentsChanged","newResult","setResult","clearResult","createSelectorFactory","stateFn","defaultStateFn","isSelectorsDictionary","extractArgsFromSelectorsDictionary","selectorsDictionary","resultKeys","selectorResults","Us","memoizedSelectors","memoizedProjector","memoizedState","featureState","isNgrxMockEnvironment","_createStoreReducers","_createFeatureStore","featureStores","feat","conf","_createFeatureReducers","reducerCollection","_initialStateFactory","_concatMetaReducers","userProvidedMetaReducers","targetIsFunction","getUnserializable","targetPrototype","throwIfUnserializable","unserializable","unserializablePath","createActiveRuntimeChecks","runtimeChecks","strictStateSerializability","strictActionSerializability","strictStateImmutability","strictActionImmutability","strictActionWithinNgZone","strictActionTypeUniqueness","createSerializationCheckMetaReducer","serializationCheckMetaReducer","ignoreNgrxAction","createImmutabilityCheckMetaReducer","immutabilityCheckMetaReducer","createInNgZoneCheckMetaReducer","inNgZoneAssertMetaReducer","provideRuntimeChecks","_runtimeChecksFactory","checkForActionTypeUniqueness","_actionTypeUniquenessCheck","registrations","_provideStore","_provideState","featureNameOrSlice","StoreRootModule","scannedActions$","actionCheck","StoreFeatureModule","featureReducers","feats","ons","existingReducer","newReducer","addParam","setBody","addField","tries","backoffMultiplierMs","retryOnStatusCodes","MODEL","BODY_MODEL_STATE","createRequestBuilder","FETCH_TRY_COUNT","FETCH_RETRY_BACKOFF_MULTIPLIER_MS","FETCH_RETRY_STATUS_CODES","getComponentButPreferLocation","requestGarmentSizesImpl","GARMENT","addCommonSizeRecommendationRequestParameters","addSizeRecommendationRequest2DParameters","addSizeRecommendationRequest3DParameters","parseSizeVisualisationResponse","requestSizeRecommendation3D","returnFiles","requestSlotLayoutRendering","slots","garmentUrl","QUAD","quadUrl","TRY_ON","garmentUrls","avatarUrl","requestBodyModelIDs","bodyModelIDs","requestBaseShapeTypes","shapeTypes","isGarment3D","VERTEX_POSITIONS","shadowTextureMeshToUVTransformation","diffuseImage","opacityImage","backsideImage","overlapCorrectionMask","shadowTextureUVTransformation","shadowTextureImage","overlayType","colorTight","colorLoose","colorSmall","colorLarge","colorGoodFit","colorSlightlySmall","colorSlightlyLarge","ANIMATION","_animationGroup","_asset","isCreated","parseAll","findSubAssetIfTypeNotMatching","_subAssetPrefix","_baseAsset","getSubAssetPrefixes","subAssetPrefixes","getSubAssetMetadata","assetComponentKeys","convertAnyAssetToLocalAsset","AVATAR_HEAD_3D","_entries","_checkPreamble","_getUInt32","_getString","_getBlob","getEntries","_containerLoadingPromises","_loadedContainerKeys","_containerContentInfos","_findParentContainerAsset","_loadContainerData","_componentReplacements","createMetadataJSONIfNeeded","addComponents","_preloadingAllComponentsInProgressPromise","preloadComponentsAsync","_preloadingPromises","_baseUrl","_resourceProvider","_preloadComponent","textureBacksideArea","_textureBacksideArea","_overlapCorrectionMask","shadowTexture","_shadowTexture","_shadowTextureUVTransformation","ignoreBacksideArea","_ignoreBacksideArea","simulateBorderConstantZero","_simulateBorderConstantZero","modelInv","_modelInv","viewPos","_viewPos","animationProgress","_animationProgress","PARALLAX_2D_PLUGIN_VERTEX","PARALLAX_2D_PLUGIN_FRAGMENT","PARALLAX_2D_PLUGIN_FRAGMENT_UV_CHECK","CUSTOM_FRAGMENT_UPDATE_ALBEDO","MESH_ALWAYS_IN_FRONT_GLB","TEXTURE_ALWAYS_IN_FRONT_KTX","ASSETS_CONTAINER","_alwaysInFrontMaterial","_alwaysInFrontMaterialPlugin","_alwaysInFrontTextureHasPremultipliedAlpha","_frontsideMaterialPlugin","_tryonAnimationProgress","_backsideMaterialPlugin","alwaysInFrontTextureHasPremultipliedAlpha","_frontsideMaterial","_createMaterial","_backsideMaterial","createBaseMaterial","always_in_front_uv_transformation","_materialData","_frontsideMesh","_backsideMesh","_alwaysInFrontMesh","_feetElongationPlane","_tryonAnimatable","_rigidAnimatable","_hasCustomBacksideMesh","_hasCustomAlwaysInFrontMesh","rigidAnimationProgress","initCustomMeshKeys","createFeetElongationPlane","addRenderObserver","setupMeshPicking","resetRigidAnimation","resetTryonAnimation","removeRenderObserver","SCREEN_SPACE_DEPTH_OFFSET_TRYON_GARMENTS","NO_MIP_MAPPING","setRenderingIndexBackside","setRenderingIndexFrontside","getRenderingIndexFrontside","getUpdatableMeshesForAnimation","_materialChanged","createFromJSON","_alphaMultiplicationMask","_shadowTextureMeshToUVTransformation","geometryCenterLocal","_geometryCenterLocal","_rigidAnimationProgress","PARALLAX_2D_PLUGIN","RIGID_FITTING_ASSETS_CONTAINER","HIGH_RES_ASSETS_CONTAINER","_diffuseTextureHasPremultipliedAlpha","diffuseTextureHasPremultipliedAlpha","updateAlphaMultiplicationMask","updateFrontsideShadowTextureImage","updateBacksideShadowTextureImage","_updateDiffuseTextureWithHighRes","_updateBacksideTextureWithHighRes","_updateLowResTextures","_hasCustomBacksideMeshPositions","getSizes","getSizeRecommendation","getStylingTemplateParameterJSONSchema","computeMeshCenter","_updateAlphaMultiplicationMaskAndShadowData","_getVertexPositions","disposeMaterial","getRenderingIndex","_updateMeshSkeletonFromAvatar","_renderGrayScale","_garmentOriginal","getAvatarSkeleton","getOriginalAvatarSkeleton","renderGrayscale","GRAYSCALE","_stylingTemplateParameters","_materialPlugin","createMaterialPlugin","meshMustDepthSortFacets","disableBackfaceCullingAfterOneFrame","grayScale","_accessory","updateMeshBoneWeights","_doSkeletonsHaveSameBoneSequence","_fixBoneName","ROOT_BONE_NAME","_groundOffsetY","_originalAvatarSkeleton","_animationCreationCallback","groundOffsetY","_destroyAnimation","_getMeshesWithSkeleton","isTryonAble","_updateMeshSkeletonFromAvatarInternal","_sceneResources","_assetKey","loadJSON","_json","_viewer","updateGizmos","activateCamera","userInteractionEnabled","loadMeshObject","translateMesh","updateTransparentMaterials","VERTICAL","_useRigidTryon","_highlightedAccessorySlot","focusArea","tryOnFinishedCallback","ASPECT_FIT","ASPECT_FILL","SCALE_TO_HEIGHT","SCALE_TO_WIDTH","zoomToAvatar","_tryOnSlot","_watermarkSlot","_originalSceneClearColor","_renderedImage","_imageContainer","_isSceneSetupDone","DEFAULT_BACKGROUND_COLOR","scalingMode","setWatermark","watermark","setupBabylonScene","updateRenderedImage","UI_TEX_NAME","makeDirty","recommendedSize","LOG_PREFIX","_firstRun","connectedCallback","_divContainer","_canvas3D","_defineCommonCanvasStyle","_canvas2D","canvas3D","versionFull","_projectionTransformationMatrix","_projectionMatrixAltered","SCREEN_SPACE_DEPTH_OFFSET_AVATAR_BACKGROUND","PARTICLE_RENDERING_GROUP_ID","setupRenderTargetTexture","renderSortFunc","createCustomRenderingGroup","getRenderingGroupId","onBeforeRenderWithScreenspaceOffsetObserver","onAfterRenderWithScreenspaceOffsetObserver","setupDepthRendering","depthbufferPixelShader","showNormals","moveLight","addParticles","_materials","environmentHelper","_environmentHelper","_gizmos","parseChildArray","canHandle","parseValue","parseChild","parseChildRequired","isObjectOfType","colorTemperature","parseProperties","supportedChildNodes","_supportedChildNodes","keepObjectURLs","_disableMesh","pluginExtensionOptions","registerFacetSortingOnRender","lastDepthDirectionRR","matchRule","microSurfaceTexture","parseSubSurface","parseClearCoat","sceneLoadingID","_idleRotationTime","_idleRotationLoopWaitTime","_idleRotationDegrees","_lastLoopTime","BEHAVIOR_NAME","idleRotationDegrees","idleRotationTime","idleRotationLoopWaitTime","_animatable","_userIsInteracting","startAnimation","limitToVerticalPanning","lowerYLimit","upperYLimit","interactionLimits","setupInteractiveCameraRestrictions","hideMeshes","resetSceneMetadataToDefaults","waitForMeshesToBeReady","alwaysResetToDefaults","canvasOverlayMarginsOverride","resetCameraToDefaults","registerExtension","setPropertyNameMapping","propertyNameMapping","headerLength","countType","itemType","faceVertexUvs","vertex_indices","vertex_index","texcoord","_textureMap","acceptsInput","resources","parseResources","parseScene","parseLayout","loadPLY","getValueRequired","parseMeshRenderable","parsePointCloudRenderable","parseCameraRenderable","_sceneParserNode","preloadRecursive","isDictionary","loadBlob","_parsers","LOG_ON_END","series","newSeries","getInstance","DEBUG","startEntry","endEntry","printAverage","_errorMessage","copyWithin","_compareMatrixArrays","_register","_previousCameraViewMatrix","MAX_RENDER_DIFF_IN_MS","ADDITIONAL_RENDER_TIME_IN_MS","_continuousRendering","_cameraViewMatrixChangedObserver","_lastDirtyTS","_additionalDirtyTS","setupDirtyCallbacks","getDirtyAndReset","continueRenderingBasedOnCurrentTS","addDirtyInputCallback","addDirtyCameraCallbacks","maxTimeDiffExceeded","_dofFocusPickMeshIDs","_postProcessingEnabled","_postProcessingPipeline","_postProcessingCameraViewMatrixChangedObserver","_postProcessingObserverPointer","_postProcessingClearColor","_postProcessingClearColorChangedPointer","_postProcessingPipelineName","isMobileClient","setupPostProcessingPipeline","disablePostProcessingPipeline","unregisterActiveCameraChangedEventListener","unregisterCameraViewMatrixChangedObserver","unregisterPointerObserver","unregisterClearColorChangedObserver","_postProcessingDOFFocusSphere","registerActiveCameraChangedEventListener","registerCameraViewMatrixChangedObserver","registerPointerObserver","registerClearColorChangedObserver","handlePicking","FrameGraphGUITask","_adt","NodeRenderGraphGUIBlock","_gui","FluentMaterialDefines","INNERGLOW","BORDER","HOVERLIGHT","TEXTURE","FluentMaterial","innerGlowColorIntensity","innerGlowColor","renderBorders","edgeSmoothingValue","borderMinValue","renderHoverLight","hoverRadius","hoverPosition","FluentBackplateMaterialDefines","BLOB_ENABLE","BLOB_ENABLE_2","SMOOTH_EDGES","IRIDESCENT_MAP_ENABLE","FluentBackplateMaterial","absoluteSizes","_filterWidth","lineColor","blobIntensity","blobFarSize","blobNearDistance","blobFarDistance","blobFadeLength","blobNearSize","blobPulse","blobFade","blobNearSize2","blobPulse2","blobFade2","_rate","highlightWidth","_highlightTransform","_highlight","iridescenceIntensity","iridescenceEdgeIntensity","_reflected","_frequency","_verticalOffset","globalLeftIndexTipPosition","_globalLeftIndexTipPosition4","globalRightIndexTipPosition","_globalRightIndexTipPosition4","_blobTexture","BLOB_TEXTURE_URL","_iridescentMap","IM_TEXTURE_URL","FluentButtonMaterialDefines","RELATIVE_WIDTH","ENABLE_FADE","FluentButtonMaterial","edgeWidth","edgeColor","proximityMaxIntensity","proximityFarDistance","proximityNearRadius","proximityAnisotropy","selectionFuzz","selectionFade","selectionFadeSize","selectedDistance","selectedFadeLength","leftBlobEnable","leftBlobNearSize","leftBlobPulse","leftBlobFade","leftBlobInnerFade","rightBlobEnable","rightBlobNearSize","rightBlobPulse","rightBlobFade","rightBlobInnerFade","activeFaceDir","activeFaceUp","enableFade","fadeWidth","smoothActiveFace","showFrame","useBlobTexture","MRDLSliderBarMaterialDefines","SKY_ENABLED","IRIDESCENCE_ENABLED","MRDLSliderBarMaterial","bevelFront","bevelFrontStretch","bevelBack","bevelBackStretch","radiusTopLeft","radiusTopRight","radiusBottomLeft","radiusBottomRight","bulgeEnabled","bulgeHeight","bulgeRadius","sunIntensity","sunTheta","sunPhi","indirectDiffuse","albedo","leftGradientColor","rightGradientColor","frontReflect","edgeReflect","skyColor","horizonColor","horizonPower","fuzz","minFuzz","clipFade","hueShift","saturationShift","valueShift","blobPosition","blobPosition2","blobTexture","leftIndexPosition","rightIndexPosition","leftIndexMiddlePosition","rightIndexMiddlePosition","decalScaleXY","decalFrontOnly","rimIntensity","rimHueShift","rimSaturationShift","rimValueShift","useGlobalLeftIndex","useGlobalRightIndex","globalLeftIndexTipProximity","globalRightIndexTipProximity","globaRightIndexTipPosition","globalLeftThumbTipPosition","globalRightThumbTipPosition","globalLeftIndexMiddlePosition","globalRightIndexMiddlePosition","_blueGradientTexture","BLUE_GRADIENT_TEXTURE_URL","_decalTexture","_reflectionMapTexture","_indirectEnvTexture","MRDLSliderThumbMaterialDefines","MRDLSliderThumbMaterial","MRDLBackplateMaterialDefines","IRIDESCENCE_ENABLE","MRDLBackplateMaterial","iridescenceTint","gradientColor","topLeftGradientColor","topRightGradientColor","bottomLeftGradientColor","bottomRightGradientColor","edgePower","edgeLineGradientBlend","_iridescentMapTexture","IRIDESCENT_MAP_TEXTURE_URL","MRDLBackglowMaterialDefines","MRDLBackglowMaterial","bevelRadius","tuningMotion","motion","maxIntensity","intensityFadeInExponent","outerFuzzStart","outerFuzzEnd","innerColor","blendExponent","falloff","MRDLFrontplateMaterialDefines","MRDLFrontplateMaterial","relativeToHeight","blobEnable","blobInnerFade","blobPulseMaxSize","blobEnable2","blobInnerFade2","gazeIntensity","gazeFocus","MRDLInnerquadMaterialDefines","MRDLInnerquadMaterial","fixedRadius","glowFraction","glowMax","glowFalloff","fpsBucketDurationInMS","_fpsBucketDurationInMS","fpsBucketSize","_fpsBucketSize","fpsThresholdLower","_fpsThresholdLower","fpsThresholdUpper","_fpsThresholdUpper","_fpsBuckets","_fpsLastTS","_fpsCounter","_fpsSum","_hardwareScalingLevelNew","_hardwareScalingLevelNeedsUpdate","monitorRenderLoopCallbackArrow","_monitorRenderLoopCallback","startMonitoring","_startAsyncHWScalingUpdater","_asyncHWScalingUpdater","ensureMaxCanvasSize","_adjustCanvasScalingFactor","_getMaxCanvasSizeHardwareScalingLevel","_setHardwareScalingLevel","_setHardwareScalingLevelOnEngine","_shadowRefreshRate","_postProcessingHandler","_dirtyMonitor","_canvasOverlayMargins","_updateActiveCameraViewport","_registeredLayoutID","_userInteractionEnabled","_updateUserInteractionControl","registerUniquenessCheckCallbacks","uniquenessCallbacks","registerDirtyMonitor","_pictofitWebHtmlElement","_unregisterActiveCameraChangedEventListener","_registerActiveCameraChangedEventListener","_resizeEventListener","_resizeThrottled","_resize","_setupKTX2WASMUrls","registerResizeEventListener","PictofitWebSDK","renderVideo","_takeScreenshot","unregisterResizeEventListener","unobserve","takeScreenshotFast","_getGUITextureContent","_takeScreenshotRTT","AlertComponent_ng_template_0_ng_template_1_Template","AlertComponent_ng_template_0_Template","AlertConfig","dismissOnTimeout","AlertComponent","onClosed","dismissibleChange","OnChange","__metadata","ContentRef","ComponentLoader","_componentFactoryResolver","_applicationRef","_posService","_providers","_isHiding","containerDefaultSelector","_listenOpts","_globalListener","compType","_componentFactory","_subscribePositioning","_innerComponent","_contentRef","_getContentRef","_registerOutsideClick","deletePositionElement","componentEl","_unsubscribePositioning","_unregisterListenersFn","listenOpts","registerHide","listenToTriggersV2","attachInline","vRef","_inlineViewRef","registerOutsideClick","registerEscClick","_zoneSubscription","appendToBody","calcPosition","contentCmptFactory","modalContentInjector","PaginationComponent_li_1_Template","selectPage","defaultFirstTemplate_r3","noPrevious","customFirstTemplate","PaginationComponent_li_2_Template","defaultPreviousTemplate_r5","customPreviousTemplate","PaginationComponent_li_3_Template","pg_r7","defaultPageTemplate_r8","customPageTemplate","PaginationComponent_li_4_Template","defaultNextTemplate_r10","noNext","customNextTemplate","PaginationComponent_li_5_Template","totalPages","defaultLastTemplate_r12","customLastTemplate","PaginationComponent_ng_template_6_Template","PaginationComponent_ng_template_8_Template","PaginationComponent_ng_template_10_Template","PaginationComponent_ng_template_12_Template","PaginationComponent_ng_template_14_Template","PaginationConfig","itemsPerPage","boundaryLinks","directionLinks","firstText","previousText","nextText","pageBtnClass","pager","align","PAGER_CONTROL_VALUE_ACCESSOR","PagerComponent","paginationConfig","numPages","classMap","_itemsPerPage","_totalItems","_totalPages","_page","configureOptions","calculateTotalPages","totalItems","_previous","getPages","makePage","startPage","endPage","isMaxSized","previousPageSet","nextPageSet","PAGINATION_CONTROL_VALUE_ACCESSOR","PaginationComponent","MapPlacementInToRL","PlacementForBs5","getStyleComputedProperty","getOffsetParent","offsetParent","nextElementSibling","findCommonOffsetParent","element1","element2","commonAncestorContainer","isOffsetContainer","element1root","getFixedPositionOffsetParent","getBordersSize","sideA","sideB","getWindowSizes","getClientRect","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","getParentNode","getScrollParent","overflowX","getScroll","upperSide","scrollingElement","isFixed","getBoundaries","boundariesElement","boundaries","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","boundariesNode","getArea","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","allowedPosition","computedPlacement","variation","getBsVer","isBs5","getOuterSizes","marginRight","getReferenceOffsets","getTargetOffsets","hostOffsets","targetRect","targetOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","getOppositePlacement","isModifierEnabled","availablePositions","checkPopoverMargin","checkPosition","isNumeric","arrow","arrowElement","sideCapitalized","altSide","opSide","arrowElementSize","placementVariation","targetMarginSide","targetBorderSide","targetBorderRadius","targetSideArrowOffset","sideValue","ri","Bi","flipOrder","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","getOppositeVariation","transformProp","targetStyles","secondary","isPlacementHorizontal","basePlacement","shiftVariation","shiftOffsets","positionService","Positioning","targetElement","positionElements","chainOfModifiers","initData","hostElPosition","placementAuto","positionFixed","modifiedData","getOffsets","updateContainerClass","dataPlacement","checkMargins","update$$","triggerEvent$","positionElement","_getHtmlElement","addPositionElement","elRef","TooltipConfig","TooltipContainerComponent","_bsVersions","fade","TooltipDirective","_tooltip","htmlContent","_placement","_isOpen","_appendToBody","_popupClass","_tooltipContext","_tooltipPopupDelay","_tooltipTrigger","tooltipId","tooltipChange","tooltipAnimation","tooltipFadeDuration","tooltipStateChanged","setAriaDescribedBy","_ariaDescribedby","_delayTimeoutId","cancelDelayedTooltipShowing","_tooltipCancelShowFn","_delaySubscription","parseTriggers","isManual","DEFAULT_ALIASES","hover","trimmedTriggers","parsedTriggers","triggerPair","manualTriggers","_registerHide","useToggle","showFn","triggerClose","optionsHide","unsubscribeFn","BsVerions","isBs4","guessedVersion","_guessBsVersion","spanEl","checkPadding","getStyles","stackOverflowConfig","bsVer","currentBsVersion","resVersion","crossorigin","integrity","cdnLink","_messagesHash","_hideMsg","a4","circle","NgxSkeletonLoaderComponent_For_1_Conditional_1_Template","NgxSkeletonLoaderComponent_For_1_Template","appearance","loadingText","NGX_SKELETON_LOADER_CONFIG","NgxSkeletonLoaderComponent","validateInputValues","allowedAnimations","extendsFromRoot","asyncGeneratorStep","gen","_throw","metadataKey","metadataValue","AsyncIterator","verb","awaitReturn","fulfill","SuppressedError"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./projects/content-service-cms/src/app/auth/api.ts","./projects/content-service-cms/src/app/auth/components/signin-redirect-callback/signin-redirect-callback.component.ts","./projects/content-service-cms/src/app/auth/components/signout-redirect-callback/signout-redirect-callback.component.ts","./projects/content-service-cms/src/app/auth/components/unauthorized/unauthorized.component.html","./projects/content-service-cms/src/app/auth/components/unauthorized/unauthorized.component.ts","./projects/content-service-cms/src/app/auth/interceptors/auth.interceptor.ts","./projects/content-service-cms/src/app/auth/services/auth-state.ts","./projects/content-service-cms/src/app/auth/services/auth.service.ts","./projects/content-service-cms/src/app/auth/guards/auth.guard.ts","./projects/content-service-cms/src/app/auth/index.ts","./projects/content-service-cms/src/app/auth/pages/no-permission-page/no-permission-page.component.ts","./projects/content-service-cms/src/app/auth/pages/no-permission-page/no-permission-page.component.html","./projects/content-service-cms/src/app/auth/pages/patient/patient.page.component.ts","./projects/content-service-cms/src/app/auth/pages/patient/patient.page.component.html","./projects/content-service-cms/src/app/collection-overview/components/collection-list.page/collection-list-row/collection-list-row.component.ts","./projects/content-service-cms/src/app/collection-overview/components/collection-list.page/collection-list-row/collection-list-row.component.html","./projects/content-service-cms/src/app/collection-overview/components/collection-list-action-bar/collection-list-action-bar.component.ts","./projects/content-service-cms/src/app/collection-overview/components/collection-list-action-bar/collection-list-action-bar.component.html","./projects/content-service-cms/src/app/collection-overview/collection-overview-routing.module.ts","./projects/content-service-cms/src/app/collection-overview/components/collection-list.page/collection-list.page.component.ts","./projects/content-service-cms/src/app/collection-overview/components/collection-list.page/collection-list.page.component.html","./projects/content-service-cms/src/app/collection-overview/store/collections-overview.effects.ts","./projects/content-service-cms/src/app/collection-overview/store/collections.overview.reducer.ts","./projects/content-service-cms/src/app/collection-overview/collection-overview.module.ts","./projects/content-service-cms/src/app/collection-overview/services/collection-preview.service.ts","./projects/content-service-cms/src/app/collection-overview/store/collections-overview.actions.ts","./projects/content-service-cms/src/app/collection-overview/store/collections-overview.selector.ts","./projects/content-service-cms/src/app/collection-screen/collection-screen.state.ts","./node_modules/ngx-window-token/fesm2020/ngx-window-token.mjs","./node_modules/ngx-clipboard/fesm2020/ngx-clipboard.mjs","./projects/content-service-cms/src/app/collection-screen/components/copy-to-clipboard/copy-to-clipboard.component.ts","./projects/content-service-cms/src/app/collection-screen/components/copy-to-clipboard/copy-to-clipboard.component.html","./projects/content-service-cms/src/app/collection-screen/components/tag-list/tag-list.component.html","./projects/content-service-cms/src/app/collection-screen/components/tag-list/tag-list.component.ts","./projects/content-service-cms/src/app/collection-screen/components/reference-search/components/reference-entry/reference-entry.component.html","./projects/content-service-cms/src/app/collection-screen/components/reference-search/components/reference-entry/reference-entry.component.ts","./projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/select-tag-input-element/select-tag-input-element.component.html","./projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/select-tag-input-element/select-tag-input-element.component.ts","./projects/content-service-cms/src/app/collection-screen/components/reference-search/components/collection-search-filter-bar/collection-search-filter-bar.component.ts","./projects/content-service-cms/src/app/collection-screen/components/reference-search/components/collection-search-filter-bar/collection-search-filter-bar.component.html","./projects/content-service-cms/src/app/collection-screen/components/reference-search/reference-selection.component.html","./projects/content-service-cms/src/app/collection-screen/components/reference-search/reference-selection.component.ts","./projects/content-service-cms/src/app/collection-screen/services/file.service.ts","./projects/content-service-cms/src/app/components/accessory-selection/accessory-selection-entry/accessory-selection-entry.component.ts","./projects/content-service-cms/src/app/components/accessory-selection/accessory-selection-entry/accessory-selection-entry.component.html","./projects/content-service-cms/src/app/components/accessory-selection/accessory-selection.component.html","./projects/content-service-cms/src/app/components/accessory-selection/accessory-selection.component.ts","./projects/content-service-cms/src/app/components/accessory-selection/service/iaccessory-selection.service.ts","./projects/content-service-cms/src/app/components/add-item/add-item.component.ts","./projects/content-service-cms/src/app/components/add-item/add-item.component.html","./projects/content-service-cms/src/app/components/avatar-selection-entry/add-avatar-modal/add-avatar-modal.component.html","./projects/content-service-cms/src/app/components/avatar-selection-entry/add-avatar-modal/add-avatar-modal.component.ts","./projects/content-service-cms/src/app/components/avatar-selection-entry/avatar-selection-entry.component.html","./projects/content-service-cms/src/app/components/avatar-selection-entry/avatar-selection-entry.component.ts","./projects/content-service-cms/src/app/components/avatar-selection-entry/avatar-selection.service.ts","./projects/content-service-cms/src/app/components/file-upload-entry/file-upload-entry.component.html","./projects/content-service-cms/src/app/components/file-upload-entry/file-upload-entry.component.ts","./projects/content-service-cms/src/app/components/file-upload-full/file-upload-full.component.html","./projects/content-service-cms/src/app/components/file-upload-full/file-upload-full.component.ts","./projects/content-service-cms/src/app/directives/drag-and-drop.directive.ts","./projects/content-service-cms/src/app/components/file-upload/file-upload.component.ts","./projects/content-service-cms/src/app/components/file-upload/file-upload.component.html","./projects/content-service-cms/src/app/components/filter-selection/filter-selection.component.html","./projects/content-service-cms/src/app/components/filter-selection/filter-selection.component.ts","./projects/content-service-cms/src/app/components/garment-selection/add-garment-modal/add-garment-modal.component.html","./projects/content-service-cms/src/app/components/garment-selection/add-garment-modal/add-garment-modal.component.ts","./projects/content-service-cms/src/app/components/garment-selection/configuration-display/configuration-display.component.ts","./projects/content-service-cms/src/app/components/garment-selection/configuration-display/configuration-display.component.html","./node_modules/@reactivereality/pictofit-web-sdk/dist/Features/VirtualDressingRoom/DressingRoomLogic/IGarmentDressedLogic.js","./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-input.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-textarea.mjs","./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core-select.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-radio.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-checkbox.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-multicheckbox.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-select.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-addons.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap.mjs","./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core-json-schema.mjs","./projects/content-service-cms/src/app/components/formly/array.type.ts","./projects/content-service-cms/src/app/components/formly/multischema.type.ts","./projects/content-service-cms/src/app/components/formly/null.type.ts","./projects/content-service-cms/src/app/components/formly/object.type.ts","./projects/content-service-cms/src/app/components/formly/slider.type.ts","./projects/content-service-cms/src/app/components/formly/formly.module.ts","./projects/content-service-cms/src/app/components/garment-selection/garment-selection-entry/jointMap.ts","./projects/content-service-cms/src/app/components/garment-selection/garment-selection-entry/styling-options/styling-options.component.html","./projects/content-service-cms/src/app/components/garment-selection/garment-selection-entry/styling-options/styling-options.component.ts","./projects/content-service-cms/src/app/data/services/web-sdk.service.ts","./projects/content-service-cms/src/app/components/garment-selection/garment-selection-entry/garment-selection-entry.component.html","./projects/content-service-cms/src/app/components/garment-selection/garment-selection-entry/garment-selection-entry.component.ts","./projects/content-service-cms/src/app/components/garment-selection/garment-selection.component.html","./projects/content-service-cms/src/app/components/garment-selection/garment-selection.component.ts","./node_modules/@reactivereality/pictofit-web-sdk/dist/Features/VirtualDressingRoom/DressingRoomLogic/DressingRoomLogicFactory.js","./projects/content-service-cms/src/app/components/garment-selection/services/i-garment-selection.service.ts","./projects/content-service-cms/src/app/components/inputs/input-date/input-date.component.html","./projects/content-service-cms/src/app/components/inputs/input-date/input-date.component.ts","./projects/content-service-cms/src/app/components/inputs/input-dropdown/input-dropdown.component.html","./projects/content-service-cms/src/app/components/inputs/input-dropdown/input-dropdown.component.ts","./projects/content-service-cms/src/app/components/inputs/input-text/input-text.component.html","./projects/content-service-cms/src/app/components/inputs/input-text/input-text.component.ts","./projects/content-service-cms/src/app/components/tag-selection/tag-selection.component.html","./projects/content-service-cms/src/app/components/tag-selection/tag-selection.component.ts","./projects/content-service-cms/src/app/core/configs/outfit-2d.config.ts","./projects/content-service-cms/src/app/core/enums/file/file-format.enum.ts","./projects/content-service-cms/src/app/core/configs/accessory-3d.config.ts","./projects/content-service-cms/src/app/core/configs/garment-2d.config.ts","./projects/content-service-cms/src/app/core/configs/garment-3d.config.ts","./projects/content-service-cms/src/app/core/helpers/request/request-files.helper.ts","./projects/content-service-cms/src/app/core/interfaces/upload-data.interface.ts","./projects/content-service-cms/src/app/core/services/alert.service.ts","./projects/content-service-cms/src/app/core/services/data.service.ts","./projects/content-service-cms/src/app/core/services/ng-discovery.service.ts","./projects/content-service-cms/src/app/core/services/ng-storage-manager.service.ts","./projects/content-service-cms/src/app/core/services/progress-bar.service.ts","./projects/content-service-cms/src/app/core/services/userdata-permission.service.ts","./projects/content-service-cms/src/app/customer/index.ts","./projects/content-service-cms/src/app/customer/service/customer-storage.service.ts","./projects/content-service-cms/src/app/customer/store/customer.actions.ts","./projects/content-service-cms/src/app/data/api.ts","./projects/content-service-cms/src/app/data/services/api-sdk.service.ts","./projects/content-service-cms/src/app/data/services/customer.service.ts","./node_modules/web-streams-polyfill/dist/ponyfill.mjs","./projects/content-service-cms/src/assets/lib/zip-stream/zip-stream.js","./projects/content-service-cms/src/app/data/services/file-download.service.ts","./projects/content-service-cms/src/app/data/services/file-upload.service.ts","./projects/content-service-cms/src/app/data/services/garment.service.ts","./projects/content-service-cms/src/app/data/enums/product-type.enum.ts","./projects/content-service-cms/src/app/data/services/process.service.ts","./projects/content-service-cms/src/app/data/services/product.service.ts","./projects/content-service-cms/src/app/data/services/public-request.service.ts","./projects/content-service-cms/src/app/data/services/request.service.ts","./projects/content-service-cms/src/app/data/services/tag.service.ts","./projects/content-service-cms/src/app/data/enums/user-feature-flags.enum.ts","./projects/content-service-cms/src/app/data/services/user.service.ts","./node_modules/graphql-request/build/esm/defaultJsonSerializer.js","./node_modules/graphql/jsutils/invariant.mjs","./node_modules/graphql/language/location.mjs","./node_modules/graphql/language/printLocation.mjs","./node_modules/graphql/error/GraphQLError.mjs","./node_modules/graphql/jsutils/isObjectLike.mjs","./node_modules/graphql/error/syntaxError.mjs","./node_modules/graphql/language/ast.mjs","./node_modules/graphql/language/directiveLocation.mjs","./node_modules/graphql/language/kinds.mjs","./node_modules/graphql/language/characterClasses.mjs","./node_modules/graphql/language/blockString.mjs","./node_modules/graphql/language/tokenKind.mjs","./node_modules/graphql/language/lexer.mjs","./node_modules/graphql/jsutils/devAssert.mjs","./node_modules/graphql/jsutils/inspect.mjs","./node_modules/graphql/jsutils/instanceOf.mjs","./node_modules/graphql/language/source.mjs","./node_modules/graphql/language/parser.mjs","./node_modules/graphql/language/printString.mjs","./node_modules/graphql/language/visitor.mjs","./node_modules/graphql/language/printer.mjs","./node_modules/graphql-request/build/esm/resolveRequestDocument.js","./node_modules/graphql-request/build/esm/types.js","./node_modules/graphql-request/build/esm/index.js","./node_modules/graphql-request/build/esm/helpers.js","./node_modules/graphql-request/build/esm/parseArgs.js","./node_modules/graphql-tag/lib/index.js","./projects/content-service-cms/src/app/data/central-asset-platform-sdk/src/public-sdk.ts","./projects/content-service-cms/src/app/data/central-asset-platform-sdk/src/merchant-sdk.ts","./projects/content-service-cms/src/app/data/central-asset-platform-sdk/src/index.ts","./projects/content-service-cms/src/app/data/services/central-asset-platform.service.ts","./projects/content-service-cms/src/app/data/helpers/product.helper.ts","./projects/content-service-cms/src/app/data/enums/request-state-cms.enum.ts","./projects/content-service-cms/src/app/data/enums/request-state-internal-string.enum.ts","./projects/content-service-cms/src/app/data/enums/request-state-internal.enum.ts","./projects/content-service-cms/src/app/data/helpers/request-state.helper.ts","./projects/content-service-cms/src/app/data/enums/product-state.enum.ts","./projects/content-service-cms/src/app/data/index.ts","./projects/content-service-cms/src/app/core/globals.ts","./projects/content-service-cms/src/app/core/models/files/file.model.ts","./projects/content-service-cms/src/app/data/services/files.service.ts","./projects/content-service-cms/src/app/logging/api.ts","./projects/content-service-cms/src/app/logging/index.ts","./projects/content-service-cms/src/app/logging/services/console-logger.service.ts","./projects/content-service-cms/src/app/modal/modal.service.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/data/fashion-image-size.types.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/common-inputs/common-inputs.component.html","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/common-inputs/common-inputs.component.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/services/create-garment-selection.service.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/action-buttons/action-buttons.component.html","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/action-buttons/action-buttons.component.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/create-garment-2d/create-garment-2d.component.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/create-garment-2d/create-garment-2d.component.html","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/create-garment-3d-cad/create-garment-3d-cad.component.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/create-garment-3d-cad/create-garment-3d-cad.component.html","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/create-outfit-3d/create-outfit-3d.component.html","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/create-outfit-3d/create-outfit-3d.component.ts","./projects/content-service-cms/src/app/components/scene-selection-entry/add-scene-modal/add-scene-modal.component.html","./projects/content-service-cms/src/app/components/scene-selection-entry/add-scene-modal/add-scene-modal.component.ts","./projects/content-service-cms/src/app/components/scene-selection-entry/scene-selection.service.ts","./projects/content-service-cms/src/app/components/scene-selection-entry/scene-selection-entry.component.html","./projects/content-service-cms/src/app/components/scene-selection-entry/scene-selection-entry.component.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/create-outfit2d-parallax/create-outfit2d-parallax.component.html","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/create-outfit2d-parallax/create-outfit2d-parallax.component.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/create-request-modal.component.html","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/create-request-modal.component.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/create-request-modal.state.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/services/create-garment-2d.service.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/services/create-garment-3d-cad.service.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/services/create-outfit-2d-parallax.service.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/services/create-outfit-3d.service.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/services/create-request-base.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/services/create-request.service.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/create-request-input.interface.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-modal/store/selection-modal-store.ts","./projects/content-service-cms/src/app/request-overview/components/create-request-select-type-modal/create-request-select-type-modal.component.html","./projects/content-service-cms/src/app/request-overview/components/create-request-select-type-modal/create-request-select-type-modal.component.ts","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list-pagination/request-list-pagination.component.html","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list-pagination/request-list-pagination.component.ts","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list-row/request-list-row.component.html","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list-row/request-list-row.component.ts","./projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/select-input-element/select-input-element.component.html","./projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/select-input-element/select-input-element.component.ts","./projects/content-service-cms/src/app/request-overview/components/request-list-action-bar/request-list-action-bar.component.ts","./projects/content-service-cms/src/app/request-overview/components/request-list-action-bar/request-list-action-bar.component.html","./projects/content-service-cms/src/app/request-overview/services/global-state-pagination-data-provider.ts","./projects/content-service-cms/src/app/request-overview/services/request-overview.service.ts","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list.page.component.html","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list.page.component.ts","./projects/content-service-cms/src/app/request-overview/request-overview.router.module.ts","./projects/content-service-cms/src/app/request-overview/store/requests-overview.reducer.ts","./projects/content-service-cms/src/app/request-overview/store/requests-overview.effects.ts","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list-row/state/state.component.ts","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list-row/state/state.component.html","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list-row/tags/tag.component.ts","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list-row/tags/tag.component.html","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list-row/asset/asset.component.ts","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list-row/asset/asset.component.html","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list-row/product-type/product-type.component.ts","./projects/content-service-cms/src/app/request-overview/components/request-list-page/request-list-row/product-type/product-type.component.html","./projects/web-ui-component-library/src/lib/charts/components/stacked-bar-chart/stacked-bar-chart.component.html","./projects/web-ui-component-library/src/lib/charts/components/stacked-bar-chart/stacked-bar-chart.component.ts","./projects/content-service-cms/src/app/request-overview/request-overview.module.ts","./projects/content-service-cms/src/app/request-overview/services/component-pagination-data-provider.ts","./projects/content-service-cms/src/app/request-overview/services/pagination-data-provider.interface.ts","./projects/content-service-cms/src/app/request-overview/store/requests-overview.actions.ts","./projects/content-service-cms/src/app/request-overview/store/requests-overview.selectors.ts","./projects/content-service-cms/src/app/utils/CommonPipes.ts","./projects/content-service-cms/src/app/virtual-dressing-room/data/api.ts","./projects/content-service-cms/src/app/virtual-dressing-room/data/model/Avatar2DAsset.ts","./projects/content-service-cms/src/app/virtual-dressing-room/data/model/AvatarAssets.ts","./projects/content-service-cms/src/app/virtual-dressing-room/data/model/GarmentAssets.ts","./projects/content-service-cms/src/app/virtual-dressing-room/data/model/SceneAsset.ts","./projects/content-service-cms/src/app/virtual-dressing-room/data/model/common.ts","./projects/content-service-cms/src/app/virtual-dressing-room/data/model/WebshopAssets.ts","./projects/content-service-cms/src/app/virtual-dressing-room/data/services/avatar.service.ts","./node_modules/rxjs/dist/esm/internal/operators/distinct.js","./projects/content-service-cms/src/app/virtual-dressing-room/data/services/common.ts","./projects/content-service-cms/src/app/virtual-dressing-room/data/services/scene.service.ts","./projects/content-service-cms/src/app/virtual-dressing-room/utils/utilities.ts","./node_modules/rxjs/dist/esm/internal/AsyncSubject.js","./projects/content-service-cms/src/app/virtual-dressing-room/data/services/configuration.service.ts","./projects/content-service-cms/src/app/virtual-dressing-room/data/index.ts","./projects/content-service-cms/src/app/virtual-dressing-room/virtual-dressing-room.module.ts","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/VirtualTryOn3D/VirtualTryOn3DRequest.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Rendering/UI/SizeVisualizationConfig.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/SizeRecommendation/MeasurementCategory.js","./node_modules/@babylonjs/core/Materials/Textures/refractionTexture.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Features/VirtualDressingRoom/VirtualDressingRoomInteractive.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Rendering/MaterialPlugins/Accessory2DPluginMaterial.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Features/VirtualDressingRoom/AccessoryStack.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Features/VirtualDressingRoom/VirtualDressingRoom3D.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/VirtualTryOn2D/VirtualTryOn2DRequest.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Scene2DParallax.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Metrics/index.js","./node_modules/@reactivereality-public/pictofit-core-wasm/dist/pictofit-core-wasm.js","./node_modules/dexie/dist/modern/dexie.min.mjs","./node_modules/@reactivereality/pictofit-web-sdk/dist/Rendering/MaterialPlugins/HeadAvatar3DMaterialPlugin.js","./node_modules/@babylonjs/core/Actions/directAudioActions.js","./node_modules/@babylonjs/core/Actions/interpolateValueAction.js","./node_modules/@babylonjs/core/BakedVertexAnimation/bakedVertexAnimationManager.js","./node_modules/@babylonjs/core/Bones/boneIKController.js","./node_modules/@babylonjs/core/Bones/boneLookController.js","./node_modules/@babylonjs/core/Buffers/buffer.align.js","./node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/flyCameraKeyboardInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/flyCameraMouseInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/followCameraKeyboardMoveInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/followCameraMouseWheelInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/followCameraPointersInput.js","./node_modules/@babylonjs/core/Misc/virtualJoystick.js","./node_modules/@babylonjs/core/Cameras/Inputs/freeCameraVirtualJoystickInput.js","./node_modules/@babylonjs/core/Cameras/flyCameraInputsManager.js","./node_modules/@babylonjs/core/Cameras/flyCamera.js","./node_modules/@babylonjs/core/Cameras/followCameraInputsManager.js","./node_modules/@babylonjs/core/Cameras/followCamera.js","./node_modules/@babylonjs/core/Cameras/gamepadCamera.js","./node_modules/@babylonjs/core/PostProcesses/anaglyphPostProcess.js","./node_modules/@babylonjs/core/Cameras/RigModes/stereoscopicAnaglyphRigMode.js","./node_modules/@babylonjs/core/Cameras/Stereoscopic/anaglyphArcRotateCamera.js","./node_modules/@babylonjs/core/Cameras/Stereoscopic/anaglyphFreeCamera.js","./node_modules/@babylonjs/core/Cameras/Stereoscopic/anaglyphGamepadCamera.js","./node_modules/@babylonjs/core/Cameras/Stereoscopic/anaglyphUniversalCamera.js","./node_modules/@babylonjs/core/Shaders/stereoscopicInterlace.fragment.js","./node_modules/@babylonjs/core/PostProcesses/stereoscopicInterlacePostProcess.js","./node_modules/@babylonjs/core/Cameras/RigModes/stereoscopicRigMode.js","./node_modules/@babylonjs/core/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js","./node_modules/@babylonjs/core/Cameras/Stereoscopic/stereoscopicFreeCamera.js","./node_modules/@babylonjs/core/Cameras/Stereoscopic/stereoscopicGamepadCamera.js","./node_modules/@babylonjs/core/Cameras/Stereoscopic/stereoscopicUniversalCamera.js","./node_modules/@babylonjs/core/Cameras/virtualJoysticksCamera.js","./node_modules/@babylonjs/core/Cameras/VR/vrDeviceOrientationArcRotateCamera.js","./node_modules/@babylonjs/core/Cameras/VR/vrDeviceOrientationGamepadCamera.js","./node_modules/@babylonjs/core/Collisions/collider.js","./node_modules/@babylonjs/core/Collisions/collisionCoordinator.js","./node_modules/@babylonjs/core/Compute/computeEffect.js","./node_modules/@babylonjs/core/Culling/Octrees/octreeBlock.js","./node_modules/@babylonjs/core/Culling/Octrees/octree.js","./node_modules/@babylonjs/core/Culling/Octrees/octreeSceneComponent.js","./node_modules/@babylonjs/core/Debug/debugLayer.js","./node_modules/@babylonjs/core/Engines/AbstractEngine/abstractEngine.query.js","./node_modules/@babylonjs/core/Engines/AbstractEngine/abstractEngine.views.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.debugging.js","./node_modules/@babylonjs/core/Instrumentation/timeToken.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.textureSelector.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.query.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.transformFeedback.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.videoTexture.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.multiRender.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.computeShader.js","./node_modules/@babylonjs/core/Engines/Native/nativeDataStream.js","./node_modules/@babylonjs/core/Misc/codeStringParsingTools.js","./node_modules/@babylonjs/core/Engines/Processors/shaderCodeInliner.js","./node_modules/@babylonjs/core/Engines/Native/nativeShaderProcessors.js","./node_modules/@babylonjs/core/Engines/Native/nativePipelineContext.js","./node_modules/@babylonjs/core/Engines/Native/nativeRenderTargetWrapper.js","./node_modules/@babylonjs/core/Engines/Native/nativeHardwareTexture.js","./node_modules/@babylonjs/core/Engines/Native/nativeHelpers.js","./node_modules/@babylonjs/core/Buffers/buffer.nonFloatVertexBuffers.js","./node_modules/@babylonjs/core/Engines/Native/nativeShaderProcessingContext.js","./node_modules/@babylonjs/core/Engines/nativeEngine.js","./node_modules/@babylonjs/core/Engines/Native/validatedNativeDataStream.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuTextureHelper.js","./node_modules/@babylonjs/core/Engines/thinWebGPUEngine.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.alpha.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuConstants.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuShaderProcessor.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuPipelineContext.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuShaderProcessingContext.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuShaderProcessorsGLSL.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuShaderProcessorsWGSL.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuHardwareTexture.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuTextureManager.js","./node_modules/@babylonjs/core/Meshes/WebGPU/webgpuDataBuffer.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuBufferManager.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuCacheSampler.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuCacheRenderPipeline.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuCacheRenderPipelineTree.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuStencilStateComposer.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuDepthCullingState.js","./node_modules/@babylonjs/core/Materials/Textures/externalTexture.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuMaterialContext.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuDrawContext.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuCacheBindGroups.js","./node_modules/@babylonjs/core/ShadersWGSL/clearQuad.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/clearQuad.fragment.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuClearQuad.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuBundleList.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuQuerySet.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuTimestampQuery.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuOcclusionQuery.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuTintWASM.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuSnapshotRendering.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuExternalTexture.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.rawTexture.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.readTexture.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.cubeTexture.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuRenderTargetWrapper.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.renderTarget.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.renderTargetTexture.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.renderTargetCube.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.query.js","./node_modules/@babylonjs/core/Engines/webgpuEngine.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuComputeContext.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuComputePipelineContext.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.computeShader.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.debugging.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.dynamicTexture.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.multiRender.js","./node_modules/@babylonjs/core/Engines/WebGPU/Extensions/engine.videoTexture.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Data/flowGraphCoordinateTransformBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Data/flowGraphConstantBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Data/Logic/flowGraphLogicBlocks.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/Texture/copyToBackbufferColorTask.js","./node_modules/@babylonjs/core/FrameGraph/frameGraphTypes.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/outputBlock.js","./node_modules/@babylonjs/core/Misc/copyTextureToTexture.js","./node_modules/@babylonjs/core/FrameGraph/frameGraphContext.js","./node_modules/@babylonjs/core/FrameGraph/frameGraphRenderContext.js","./node_modules/@babylonjs/core/Materials/Textures/textureCreationOptions.js","./node_modules/@babylonjs/core/FrameGraph/frameGraphTextureManager.js","./node_modules/@babylonjs/core/FrameGraph/frameGraph.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/inputBlock.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/Texture/clearTextureTask.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/Textures/clearBlock.js","./node_modules/@babylonjs/core/FrameGraph/Node/nodeRenderGraphBuildState.js","./node_modules/@babylonjs/core/FrameGraph/Node/nodeRenderGraph.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/elbowBlock.js","./node_modules/@babylonjs/core/PostProcesses/thinBlackAndWhitePostProcess.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/PostProcesses/postProcessTask.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/PostProcesses/blackAndWhiteTask.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/PostProcesses/bloomMergeTask.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/PostProcesses/extractHighlightsTask.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/PostProcesses/blurTask.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/PostProcesses/bloomTask.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/PostProcesses/depthOfFieldMergeTask.js","./node_modules/@babylonjs/core/PostProcesses/thinDepthOfFieldBlurPostProcess.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/Rendering/cullObjectsTask.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/Rendering/cullObjectsBlock.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/Rendering/geometryRendererTask.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/Rendering/objectRendererTask.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.js","./node_modules/@babylonjs/core/Maths/halton2DSequence.js","./node_modules/@babylonjs/core/PostProcesses/thinTAAPostProcess.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/Rendering/taaObjectRendererTask.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/Teleport/teleportInBlock.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/Teleport/teleportOutBlock.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/Texture/copyToTextureTask.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/Textures/copyTextureBlock.js","./node_modules/@babylonjs/core/FrameGraph/Tasks/Texture/generateMipMapsTask.js","./node_modules/@babylonjs/core/FrameGraph/Node/Blocks/Textures/generateMipmapsBlock.js","./node_modules/@babylonjs/core/Meshes/Builders/hemisphereBuilder.js","./node_modules/@babylonjs/core/Helpers/textureDome.js","./node_modules/@babylonjs/core/Helpers/photoDome.js","./node_modules/@babylonjs/core/Materials/Textures/videoTexture.js","./node_modules/@babylonjs/core/Helpers/videoDome.js","./node_modules/@babylonjs/core/Layers/highlightLayer.js","./node_modules/@babylonjs/core/LensFlares/lensFlare.js","./node_modules/@babylonjs/core/LensFlares/lensFlareSystem.js","./node_modules/@babylonjs/core/LensFlares/lensFlareSystemSceneComponent.js","./node_modules/@babylonjs/core/Loading/loadingScreen.js","./node_modules/@babylonjs/core/Materials/PBR/pbrSpecularGlossinessMaterial.js","./node_modules/@babylonjs/core/Materials/Textures/colorGradingTexture.js","./node_modules/@babylonjs/core/Materials/Textures/multiRenderTarget.js","./node_modules/@babylonjs/core/Shaders/noise.fragment.js","./node_modules/@babylonjs/core/Materials/Textures/Procedurals/noiseProceduralTexture.js","./node_modules/@babylonjs/core/Materials/Node/nodeMaterialConnectionPointCustomObject.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/GaussianSplatting/gaussianBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/GaussianSplatting/splatReaderBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Vertex/bonesBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Vertex/instancesBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Vertex/morphTargetsBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Vertex/lightInformationBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/imageProcessingBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/TBNBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/perturbNormalBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/discardBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/frontFacingBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/derivativeBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/fragCoordBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/screenSizeBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/screenSpaceBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/twirlBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/heightToNormalBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/fragDepthBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/shadowMapBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/prePassOutputBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Dual/fogBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Dual/lightBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Dual/imageSourceBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Dual/textureBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Dual/reflectionTextureBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Dual/sceneDepthBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Dual/clipPlanesBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Input/prePassTextureBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Teleport/teleportInBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Teleport/teleportOutBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/addBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/scaleBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/clampBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/crossBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/customBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/dotBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/normalizeBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/colorMergerBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/vectorSplitterBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/lerpBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/divideBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/subtractBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/stepBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/oneMinusBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/viewDirectionBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/fresnelBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/maxBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/minBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/distanceBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/lengthBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/negateBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/powBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/randomNumberBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/arcTan2Block.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/smoothStepBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/reciprocalBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/replaceColorBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/posterizeBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/waveBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/gradientBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/nLerpBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/worleyNoise3DBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/simplexPerlin3DBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/normalBlendBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/rotate2dBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/reflectBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/refractBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/desaturateBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/PBR/sheenBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/PBR/anisotropyBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/PBR/reflectionBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/PBR/clearCoatBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/PBR/iridescenceBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/PBR/refractionBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/PBR/subSurfaceBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/modBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/matrixBuilderBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/conditionalBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/cloudBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/voronoiNoiseBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/elbowBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/triPlanarBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/biPlanarBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/matrixDeterminantBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/matrixTransposeBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/meshAttributeExistsBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/curveBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/colorConverterBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/loopBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/storageReadBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/storageWriteBlock.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/gaussianSplattingVertexDeclaration.js","./node_modules/@babylonjs/core/Materials/material.decalMapConfiguration.js","./node_modules/@babylonjs/core/Materials/GreasedLine/greasedLineMaterialDefaults.js","./node_modules/@babylonjs/core/Misc/greasedLineTools.js","./node_modules/@babylonjs/core/Materials/GreasedLine/greasedLinePluginMaterial.js","./node_modules/@babylonjs/core/Shaders/greasedLine.fragment.js","./node_modules/@babylonjs/core/Shaders/greasedLine.vertex.js","./node_modules/@babylonjs/core/Materials/GreasedLine/greasedLineSimpleMaterial.js","./node_modules/@babylonjs/core/Materials/meshDebugPluginMaterial.js","./node_modules/@babylonjs/core/Materials/standardMaterial.decalMap.js","./node_modules/@babylonjs/core/Materials/PBR/pbrMaterial.decalMap.js","./node_modules/@babylonjs/core/Meshes/abstractMesh.decalMap.js","./node_modules/@babylonjs/core/Maths/math.vector.functions.js","./node_modules/@babylonjs/core/Meshes/csg.js","./node_modules/@babylonjs/core/Meshes/trailMesh.js","./node_modules/@babylonjs/core/Meshes/meshSimplification.js","./node_modules/@babylonjs/core/Meshes/meshSimplificationSceneComponent.js","./node_modules/@babylonjs/core/Meshes/lattice.js","./node_modules/@babylonjs/core/Meshes/GreasedLine/greasedLineBaseMesh.js","./node_modules/@babylonjs/core/Meshes/GreasedLine/greasedLineMesh.js","./node_modules/@babylonjs/core/Meshes/GreasedLine/greasedLineRibbonMesh.js","./node_modules/@babylonjs/core/Misc/tools.internals.js","./node_modules/@babylonjs/core/Meshes/csg2.js","./node_modules/@babylonjs/core/Meshes/Node/Enums/nodeGeometryConnectionPointTypes.js","./node_modules/@babylonjs/core/Meshes/Node/nodeGeometryBlockConnectionPoint.js","./node_modules/@babylonjs/core/Meshes/Node/nodeGeometryBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryOutputBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Enums/nodeGeometryContextualSources.js","./node_modules/@babylonjs/core/Meshes/Node/nodeGeometryBuildState.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryInputBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Sources/boxBlock.js","./node_modules/@babylonjs/core/Meshes/Node/nodeGeometry.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryOptimizeBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Sources/planeBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Sources/meshBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Sources/icoSphereBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Sources/sphereBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Sources/gridBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Sources/torusBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Sources/cylinderBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Sources/capsuleBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Sources/discBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Sources/nullBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Set/setPositionsBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Set/setNormalsBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Set/setUVsBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Set/setColorsBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Set/setTangentsBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/mathBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/mapRangeBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/conditionBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/randomBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/noiseBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/mergeGeometryBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryCollectionBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/cleanGeometryBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryElbowBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/computeNormalsBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/vectorConverterBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/normalizeVectorBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Set/setMaterialIDBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Set/latticeBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryTrigonometryBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryTransformBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Matrices/rotationXBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Matrices/rotationYBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Matrices/rotationZBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Matrices/scalingBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Matrices/alignBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Matrices/translationBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Instances/instantiateBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Instances/instantiateLinearBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Instances/instantiateRadialBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/intFloatConverterBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/debugBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryInfoBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/mappingBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/matrixComposeBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Teleport/teleportInBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Teleport/teleportOutBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Textures/geometryTextureBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/boundingBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/booleanGeometryBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryArcTan2Block.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryLerpBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryNLerpBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryStepBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometrySmoothStepBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryModBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryPowBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryClampBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryCrossBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryCurveBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryDesaturateBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryPosterizeBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryReplaceColorBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryDistanceBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryDotBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryLengthBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryRotate2dBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/geometryInterceptorBlock.js","./node_modules/@babylonjs/core/Meshes/Node/Blocks/Set/aggregatorBlock.js","./node_modules/@babylonjs/core/Misc/observable.extensions.js","./node_modules/@babylonjs/core/Misc/dataStorage.js","./node_modules/@babylonjs/core/Misc/trajectoryClassifier.js","./node_modules/@babylonjs/core/Misc/PerformanceViewer/dynamicFloat32Array.js","./node_modules/@babylonjs/core/Misc/PerformanceViewer/performanceViewerCollector.js","./node_modules/@babylonjs/core/Misc/PerformanceViewer/performanceViewerSceneExtension.js","./node_modules/@babylonjs/core/Misc/observableCoroutine.js","./node_modules/@babylonjs/core/Shaders/equirectangularPanorama.fragment.js","./node_modules/@babylonjs/core/Offline/database.js","./node_modules/@babylonjs/core/Materials/uniformBufferEffectCommonAccessor.js","./node_modules/@babylonjs/core/Shaders/gpuUpdateParticles.fragment.js","./node_modules/@babylonjs/core/Shaders/gpuUpdateParticles.vertex.js","./node_modules/@babylonjs/core/Particles/webgl2ParticleSystem.js","./node_modules/@babylonjs/core/ShadersWGSL/gpuUpdateParticles.compute.js","./node_modules/@babylonjs/core/Particles/computeShaderParticleSystem.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js","./node_modules/@babylonjs/core/Shaders/gpuRenderParticles.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js","./node_modules/@babylonjs/core/Shaders/gpuRenderParticles.vertex.js","./node_modules/@babylonjs/core/Particles/gpuParticleSystem.js","./node_modules/@babylonjs/core/Particles/particleSystemSet.js","./node_modules/@babylonjs/core/Particles/particleHelper.js","./node_modules/@babylonjs/core/Particles/particleSystemComponent.js","./node_modules/@babylonjs/core/Physics/v1/physicsEngineComponent.js","./node_modules/@babylonjs/core/Physics/v2/physicsEngine.js","./node_modules/@babylonjs/core/Physics/joinedPhysicsEngineComponent.js","./node_modules/@babylonjs/core/Physics/v2/physicsEngineComponent.js","./node_modules/@babylonjs/core/Physics/physicsHelper.js","./node_modules/@babylonjs/core/PostProcesses/blackAndWhitePostProcess.js","./node_modules/@babylonjs/core/PostProcesses/colorCorrectionPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/convolutionPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/displayPassPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/filterPostProcess.js","./node_modules/@babylonjs/core/Rendering/geometryBufferRenderer.js","./node_modules/@babylonjs/core/Rendering/motionBlurConfiguration.js","./node_modules/@babylonjs/core/Rendering/geometryBufferRendererSceneComponent.js","./node_modules/@babylonjs/core/PostProcesses/motionBlurPostProcess.js","./node_modules/@babylonjs/core/Shaders/refraction.fragment.js","./node_modules/@babylonjs/core/PostProcesses/refractionPostProcess.js","./node_modules/@babylonjs/core/Shaders/lensHighlights.fragment.js","./node_modules/@babylonjs/core/Shaders/depthOfField.fragment.js","./node_modules/@babylonjs/core/Rendering/ssao2Configuration.js","./node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js","./node_modules/@babylonjs/core/Shaders/ssao.fragment.js","./node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js","./node_modules/@babylonjs/core/Rendering/screenSpaceReflectionsConfiguration.js","./node_modules/@babylonjs/core/Shaders/screenSpaceReflection.fragment.js","./node_modules/@babylonjs/core/PostProcesses/screenSpaceReflectionPostProcess.js","./node_modules/@babylonjs/core/Shaders/standard.fragment.js","./node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js","./node_modules/@babylonjs/core/Rendering/screenSpaceReflections2Configuration.js","./node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js","./node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.js","./node_modules/@babylonjs/core/Shaders/volumetricLightScattering.fragment.js","./node_modules/@babylonjs/core/Shaders/volumetricLightScatteringPass.vertex.js","./node_modules/@babylonjs/core/Shaders/volumetricLightScatteringPass.fragment.js","./node_modules/@babylonjs/core/PostProcesses/volumetricLightScatteringPostProcess.js","./node_modules/@babylonjs/core/Shaders/screenSpaceCurvature.fragment.js","./node_modules/@babylonjs/core/PostProcesses/screenSpaceCurvaturePostProcess.js","./node_modules/@babylonjs/core/Rendering/depthPeelingRenderer.js","./node_modules/@babylonjs/core/Rendering/depthPeelingSceneComponent.js","./node_modules/@babylonjs/core/Rendering/edgesRenderer.js","./node_modules/@babylonjs/core/Rendering/IBLShadows/iblShadowsPluginMaterial.js","./node_modules/@babylonjs/core/Materials/Textures/prePassRenderTarget.js","./node_modules/@babylonjs/core/Rendering/prePassRenderer.js","./node_modules/@babylonjs/core/Rendering/prePassRendererSceneComponent.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/fibonacci.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/diffusionProfile.js","./node_modules/@babylonjs/core/Shaders/subSurfaceScattering.fragment.js","./node_modules/@babylonjs/core/PostProcesses/subSurfaceScatteringPostProcess.js","./node_modules/@babylonjs/core/Rendering/subSurfaceConfiguration.js","./node_modules/@babylonjs/core/Rendering/subSurfaceSceneComponent.js","./node_modules/@babylonjs/core/Rendering/fluidRenderer/fluidRenderingObject.js","./node_modules/@babylonjs/core/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js","./node_modules/@babylonjs/core/Rendering/fluidRenderer/fluidRenderingTextures.js","./node_modules/@babylonjs/core/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js","./node_modules/@babylonjs/core/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js","./node_modules/@babylonjs/core/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js","./node_modules/@babylonjs/core/Rendering/fluidRenderer/fluidRenderer.js","./node_modules/@babylonjs/core/Shaders/fluidRenderingParticleDiffuse.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/fluidRenderingParticleDiffuse.vertex.js","./node_modules/@babylonjs/core/Rendering/reflectiveShadowMap.js","./node_modules/@babylonjs/core/Rendering/GlobalIllumination/giRSMManager.js","./node_modules/@babylonjs/core/Shaders/iblShadowsCombine.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblShadowsCombine.fragment.js","./node_modules/@babylonjs/core/Shaders/spriteMap.fragment.js","./node_modules/@babylonjs/core/Shaders/spriteMap.vertex.js","./node_modules/@babylonjs/core/XR/features/WebXRHitTestLegacy.js","./node_modules/@babylonjs/core/XR/features/WebXRAnchorSystem.js","./node_modules/@babylonjs/core/XR/features/WebXRPlaneDetector.js","./node_modules/@babylonjs/core/XR/features/WebXRBackgroundRemover.js","./node_modules/@babylonjs/core/XR/features/WebXRControllerPhysics.js","./node_modules/@babylonjs/core/XR/features/WebXRHitTest.js","./node_modules/@babylonjs/core/XR/features/WebXRFeaturePointSystem.js","./node_modules/@babylonjs/core/XR/features/WebXRMeshDetector.js","./node_modules/@babylonjs/core/XR/features/WebXRImageTracking.js","./node_modules/@babylonjs/core/XR/features/WebXRDOMOverlay.js","./node_modules/@babylonjs/core/XR/features/WebXRControllerMovement.js","./node_modules/@babylonjs/core/XR/features/WebXRLightEstimation.js","./node_modules/@babylonjs/core/XR/features/WebXREyeTracking.js","./node_modules/@babylonjs/core/XR/features/WebXRWalkingLocomotion.js","./node_modules/@babylonjs/core/XR/features/Layers/WebXRCompositionLayer.js","./node_modules/@babylonjs/core/XR/features/Layers/WebXRProjectionLayer.js","./node_modules/@babylonjs/core/XR/features/WebXRLayers.js","./node_modules/@babylonjs/core/XR/features/WebXRDepthSensing.js","./node_modules/@babylonjs/core/Shaders/velocity.fragment.js","./node_modules/@babylonjs/core/Shaders/velocity.vertex.js","./node_modules/@babylonjs/core/XR/features/WebXRSpaceWarp.js","./node_modules/@babylonjs/core/XR/features/WebXRRawCameraAccess.js","./node_modules/@babylonjs/core/XR/motionController/webXRGenericHandController.js","./node_modules/@babylonjs/core/XR/motionController/webXRMicrosoftMixedRealityController.js","./node_modules/@babylonjs/core/XR/motionController/webXROculusTouchMotionController.js","./node_modules/@babylonjs/core/XR/motionController/webXRHTCViveMotionController.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/HeadAvatar3D.js","./node_modules/@babylonjs/core/XR/native/nativeXRFrame.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/ComputeServerWasm.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Features/VirtualDressingRoom/VirtualDressingRoom2DParallax.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Rendering/Shaders/SizeVisualization2D.vs.glsl.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Rendering/Shaders/SizeVisualization2D.fs.glsl.js","./projects/content-service-cms/src/app/virtual-dressing-room/utils/mutex.ts","./projects/content-service-cms/src/app/virtual-dressing-room/components/overlay-spinner/overlay-spinner.component.html","./projects/content-service-cms/src/app/virtual-dressing-room/components/overlay-spinner/overlay-spinner.component.ts","./projects/content-service-cms/src/app/virtual-dressing-room/virtual-dressing-room/virtual-dressing-room.component.html","./projects/content-service-cms/src/app/virtual-dressing-room/virtual-dressing-room/virtual-dressing-room.component.ts","./node_modules/@reactivereality/pictofit-web-sdk/dist/Features/VirtualDressingRoom/VirtualDressingRoomFactory.js","./node_modules/rxjs/dist/esm/internal/operators/bufferTime.js","./node_modules/@angular/animations/fesm2022/browser.mjs","./node_modules/@angular/platform-browser/fesm2022/animations.mjs","./projects/content-service-cms/src/app/profile/profile-state.ts","./projects/content-service-cms/src/app/profile/components/profile-page/profile-page.component.html","./projects/content-service-cms/src/app/profile/components/profile-page/profile-page.component.ts","./projects/content-service-cms/src/app/collection-screen/components/collection-info/collection-info.component.ts","./projects/content-service-cms/src/app/collection-screen/components/collection-info/collection-info.component.html","./projects/content-service-cms/src/app/collection-screen/components/base-list-row/base-list-row.component.ts","./projects/content-service-cms/src/app/collection-screen/components/row-buttons/row-buttons.component.ts","./projects/content-service-cms/src/app/collection-screen/components/row-buttons/row-buttons.component.html","./projects/content-service-cms/src/app/collection-screen/components/asset-list-row/asset-list-row.component.ts","./projects/content-service-cms/src/app/collection-screen/components/asset-list-row/asset-list-row.component.html","./node_modules/@angular/cdk/fesm2022/coercion.mjs","./node_modules/rxjs/dist/esm/internal/operators/auditTime.js","./node_modules/rxjs/dist/esm/internal/operators/audit.js","./node_modules/@angular/cdk/fesm2022/platform.mjs","./node_modules/@angular/cdk/fesm2022/bidi.mjs","./node_modules/@angular/cdk/fesm2022/scrolling.mjs","./node_modules/@angular/cdk/fesm2022/drag-drop.mjs","./node_modules/@angular/cdk/fesm2022/a11y.mjs","./projects/content-service-cms/src/app/collection-screen/components/base-list/base-list.component.ts","./projects/content-service-cms/src/app/collection-screen/components/asset-list/asset-list.component.html","./projects/content-service-cms/src/app/collection-screen/components/asset-list/asset-list.component.ts","./projects/content-service-cms/src/app/collection-screen/components/outfit-list-row/outfit-list-row.component.ts","./projects/content-service-cms/src/app/collection-screen/components/outfit-list-row/outfit-list-row.component.html","./projects/content-service-cms/src/app/collection-screen/components/outfit-list/outfit-list.component.html","./projects/content-service-cms/src/app/collection-screen/components/outfit-list/outfit-list.component.ts","./projects/content-service-cms/src/app/collection-screen/components/garment-list-row/garment-list-row.component.ts","./projects/content-service-cms/src/app/collection-screen/components/garment-list-row/garment-list-row.component.html","./projects/content-service-cms/src/app/collection-screen/components/garment-list/garment-list.component.html","./projects/content-service-cms/src/app/collection-screen/components/garment-list/garment-list.component.ts","./projects/content-service-cms/src/app/collection-screen/components/avatar-list-row/avatar-list-row.component.ts","./projects/content-service-cms/src/app/collection-screen/components/avatar-list-row/avatar-list-row.component.html","./projects/content-service-cms/src/app/collection-screen/components/avatar-group-list/avatar-group-list.component.html","./projects/content-service-cms/src/app/collection-screen/components/avatar-group-list/avatar-group-list.component.ts","./projects/content-service-cms/src/app/collection-screen/components/collection-settings/collection-settings.component.html","./projects/content-service-cms/src/app/collection-screen/components/collection-settings/collection-settings.component.ts","./projects/content-service-cms/src/app/collection-screen/components/collection-main/collection-main.component.ts","./projects/content-service-cms/src/app/collection-screen/components/collection-main/collection-main.component.html","./projects/content-service-cms/src/app/collection-screen/collection-screen.component.ts","./projects/content-service-cms/src/app/collection-screen/collection-screen.component.html","./projects/content-service-cms/src/app/app-routing.module.ts","./projects/content-service-cms/src/app/data/enums/product-type-group.enum.ts","./projects/content-service-cms/src/app/core/services/breadcrumb.service.ts","./projects/web-ui-component-library/src/lib/alerts/components/simple-alert/simple-alert.component.html","./projects/web-ui-component-library/src/lib/alerts/components/simple-alert/simple-alert.component.ts","./projects/content-service-cms/src/app/modal/modal-container.component.html","./projects/content-service-cms/src/app/modal/modal-container.component.ts","./projects/content-service-cms/src/app/customer/store/customer.selectors.ts","./projects/content-service-cms/src/app/customer/customer-selector/customer-selector.component.html","./projects/content-service-cms/src/app/customer/customer-selector/customer-selector.component.ts","./projects/content-service-cms/src/app/components/menu/menu.component.html","./projects/content-service-cms/src/app/components/menu/menu.component.ts","./projects/content-service-cms/src/app/components/top-app-bar/top-app-bar.component.html","./projects/content-service-cms/src/app/components/top-app-bar/top-app-bar.component.ts","./projects/content-service-cms/src/app/components/user-data-permission/user-data-permission/user-data-permission.component.html","./projects/content-service-cms/src/app/components/user-data-permission/user-data-permission/user-data-permission.component.ts","./projects/content-service-cms/src/app/app.component.html","./projects/content-service-cms/src/app/app.component.ts","./node_modules/ang-jsoneditor/fesm2022/ang-jsoneditor.mjs","./projects/content-service-cms/src/app/core/core.module.ts","./node_modules/@sentry/utils/build/esm/version.js","./node_modules/@sentry/utils/build/esm/worldwide.js","./node_modules/@sentry/core/build/esm/constants.js","./node_modules/@sentry/core/build/esm/carrier.js","./node_modules/@sentry/utils/build/esm/is.js","./node_modules/@sentry/utils/build/esm/browser.js","./node_modules/@sentry/utils/build/esm/debug-build.js","./node_modules/@sentry/utils/build/esm/logger.js","./node_modules/@sentry/utils/build/esm/string.js","./node_modules/@sentry/utils/build/esm/object.js","./node_modules/@sentry/utils/build/esm/misc.js","./node_modules/@sentry/utils/build/esm/propagationContext.js","./node_modules/@sentry/utils/build/esm/time.js","./node_modules/@sentry/core/build/esm/session.js","./node_modules/@sentry/core/build/esm/utils/spanOnScope.js","./node_modules/@sentry/core/build/esm/scope.js","./node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js","./node_modules/@sentry/core/build/esm/defaultScopes.js","./node_modules/@sentry/core/build/esm/asyncContext/index.js","./node_modules/@sentry/core/build/esm/currentScopes.js","./node_modules/@sentry/utils/build/esm/debug-ids.js","./node_modules/@sentry/utils/build/esm/stacktrace.js","./node_modules/@sentry/utils/build/esm/normalize.js","./node_modules/@sentry/utils/build/esm/memo.js","./node_modules/@sentry/utils/build/esm/syncpromise.js","./node_modules/@sentry/core/build/esm/debug-build.js","./node_modules/@sentry/core/build/esm/eventProcessors.js","./node_modules/@sentry/utils/build/esm/baggage.js","./node_modules/@sentry/core/build/esm/semanticAttributes.js","./node_modules/@sentry/core/build/esm/metrics/metric-summary.js","./node_modules/@sentry/core/build/esm/tracing/spanstatus.js","./node_modules/@sentry/core/build/esm/utils/spanUtils.js","./node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js","./node_modules/@sentry/core/build/esm/utils/hasTracingEnabled.js","./node_modules/@sentry/core/build/esm/utils/applyScopeDataToEvent.js","./node_modules/@sentry/core/build/esm/utils/prepareEvent.js","./node_modules/@sentry/core/build/esm/exports.js","./node_modules/@sentry/core/build/esm/integration.js","./node_modules/@sentry/core/build/esm/integrations/inboundfilters.js","./node_modules/@sentry/core/build/esm/integrations/functiontostring.js","./node_modules/@sentry/core/build/esm/integrations/dedupe.js","./node_modules/@sentry/utils/build/esm/dsn.js","./node_modules/@sentry/core/build/esm/api.js","./node_modules/@sentry/utils/build/esm/supports.js","./node_modules/@sentry/utils/build/esm/instrument/handlers.js","./node_modules/@sentry/utils/build/esm/vendor/supportsHistory.js","./node_modules/@sentry-internal/browser-utils/build/esm/types.js","./node_modules/@sentry-internal/browser-utils/build/esm/instrument/history.js","./node_modules/@sentry/utils/build/esm/envelope.js","./node_modules/@sentry/utils/build/esm/error.js","./node_modules/@sentry/core/build/esm/baseclient.js","./node_modules/@sentry/core/build/esm/envelope.js","./node_modules/@sentry/core/build/esm/utils/parseSampleRate.js","./node_modules/@sentry/utils/build/esm/clientreport.js","./node_modules/@sentry/core/build/esm/utils/sdkMetadata.js","./node_modules/@sentry/browser/build/npm/esm/debug-build.js","./node_modules/@sentry/browser/build/npm/esm/eventbuilder.js","./node_modules/@sentry/browser/build/npm/esm/helpers.js","./node_modules/@sentry/browser/build/npm/esm/client.js","./node_modules/@sentry/utils/build/esm/env.js","./node_modules/@sentry/browser/build/npm/esm/userfeedback.js","./node_modules/@sentry-internal/browser-utils/build/esm/instrument/dom.js","./node_modules/@sentry-internal/browser-utils/build/esm/instrument/xhr.js","./node_modules/@sentry/core/build/esm/breadcrumbs.js","./node_modules/@sentry/utils/build/esm/instrument/console.js","./node_modules/@sentry/utils/build/esm/instrument/fetch.js","./node_modules/@sentry/utils/build/esm/severity.js","./node_modules/@sentry/utils/build/esm/breadcrumb-log-level.js","./node_modules/@sentry/utils/build/esm/url.js","./node_modules/@sentry/browser/build/npm/esm/integrations/breadcrumbs.js","./node_modules/@sentry/browser/build/npm/esm/integrations/browserapierrors.js","./node_modules/@sentry/utils/build/esm/instrument/globalError.js","./node_modules/@sentry/utils/build/esm/instrument/globalUnhandledRejection.js","./node_modules/@sentry/browser/build/npm/esm/integrations/globalhandlers.js","./node_modules/@sentry/browser/build/npm/esm/integrations/httpcontext.js","./node_modules/@sentry/utils/build/esm/aggregate-errors.js","./node_modules/@sentry/browser/build/npm/esm/integrations/linkederrors.js","./node_modules/@sentry/browser/build/npm/esm/stack-parsers.js","./node_modules/@sentry-internal/browser-utils/build/esm/debug-build.js","./node_modules/@sentry-internal/browser-utils/build/esm/getNativeImplementation.js","./node_modules/@sentry/utils/build/esm/ratelimit.js","./node_modules/@sentry/core/build/esm/transports/base.js","./node_modules/@sentry/utils/build/esm/promisebuffer.js","./node_modules/@sentry/browser/build/npm/esm/transports/fetch.js","./node_modules/@sentry/browser/build/npm/esm/sdk.js","./node_modules/@sentry/core/build/esm/sdk.js","./node_modules/@sentry/angular/fesm2020/sentry-angular.mjs","./projects/content-service-cms/src/app/core/factories/start-up.factory.ts","./projects/content-service-cms/src/info.ts","./node_modules/rxjs/dist/esm/internal/operators/timeout.js","./node_modules/@ngrx/store-devtools/fesm2022/ngrx-store-devtools.mjs","./projects/content-service-cms/src/app/customer/service/customer-reducer.service.ts","./projects/content-service-cms/src/app/customer/store/customer.reducer.ts","./projects/content-service-cms/src/app/customer/service/customer.service.ts","./projects/content-service-cms/src/app/customer/store/customer.effects.ts","./projects/content-service-cms/src/app/customer/customer.module.ts","./projects/content-service-cms/src/app/components/index.ts","./projects/content-service-cms/src/app/components/garment-selection/services/garment-selection.service.ts","./projects/content-service-cms/src/app/components/accessory-selection/service/accessory-selection.service.ts","./projects/content-service-cms/src/app/modal/modal.module.ts","./projects/content-service-cms/src/app/navigation/navigation.actions.ts","./projects/content-service-cms/src/app/navigation/navigation.reducer.ts","./projects/content-service-cms/src/app/navigation/navigation.effects.ts","./projects/content-service-cms/src/app/navigation/navigation.module.ts","./projects/content-service-cms/src/app/profile/components/profile-menu/profile-menu.component.html","./projects/content-service-cms/src/app/profile/components/profile-menu/profile-menu.component.ts","./projects/content-service-cms/src/app/components/async-button/async-button.component.html","./projects/content-service-cms/src/app/components/async-button/async-button.component.ts","./projects/content-service-cms/src/app/profile/components/profile-user-information/profile-user-information.component.html","./projects/content-service-cms/src/app/profile/components/profile-user-information/profile-user-information.component.ts","./projects/content-service-cms/src/app/profile/components/profile-api-keys/state/api-list.store.ts","./projects/content-service-cms/src/app/profile/components/profile-api-keys/components/api-key-row.component.ts","./projects/content-service-cms/src/app/profile/components/profile-api-keys/components/api-key-row.component.html","./projects/content-service-cms/src/app/profile/components/profile-api-keys/profile-api-keys.component.html","./projects/content-service-cms/src/app/profile/components/profile-api-keys/profile-api-keys.component.ts","./projects/content-service-cms/src/app/profile/components/profile-security/profile-security.component.ts","./projects/content-service-cms/src/app/profile/components/profile-security/profile-security.component.html","./projects/content-service-cms/src/app/profile/profile.module.ts","./projects/content-service-cms/src/app/app.module.ts","./projects/web-ui-component-tester/src/environments/environment.ts","./projects/content-service-cms/src/main.ts","./projects/web-ui-component-library/src/lib/calendar/calendar.module.ts","./projects/web-ui-component-library/src/lib/calendar/components/calendar/calendar.component.html","./projects/web-ui-component-library/src/lib/calendar/components/calendar/calendar.component.ts","./projects/web-ui-component-library/src/lib/filter-elements/date-input-element/date-input-element.component.html","./projects/web-ui-component-library/src/lib/filter-elements/date-input-element/date-input-element.component.ts","./projects/web-ui-component-library/src/lib/filter-elements/select-filter.module.ts","./projects/web-ui-component-library/src/lib/filter-elements/select-input-element/select-input-element.component.html","./projects/web-ui-component-library/src/lib/filter-elements/select-input-element/select-input-element.component.ts","./projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/date-input-element/date-input-element.component.html","./projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/date-input-element/date-input-element.component.ts","./projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/text-input-element/text-input-element.component.ts","./projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/text-input-element/text-input-element.component.html","./projects/web-ui-component-library/src/lib/pipes/pipes/default-value.pipe.ts","./projects/web-ui-component-library/src/lib/pipes/pipes/take.pipe.ts","./projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/filter-bar-element.component.html","./projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/filter-bar-element.component.ts","./projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar.component.html","./projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar.component.ts","./projects/web-ui-component-library/src/lib/filter/index.ts","./projects/web-ui-component-library/src/lib/layout/card/card.component.ts","./projects/web-ui-component-library/src/lib/layout/card/card.component.html","./projects/web-ui-component-library/src/lib/layout/layout.module.ts","./projects/web-ui-component-library/src/lib/pipes/pipes.module.ts","./projects/web-ui-component-library/src/lib/shared-module/shared.module.ts","./projects/web-ui-component-library/src/lib/spinner/components/overlay-spinner/overlay-spinner.component.html","./projects/web-ui-component-library/src/lib/spinner/components/overlay-spinner/overlay-spinner.component.ts","./projects/web-ui-component-library/src/lib/spinner/spinner.module.ts","./projects/web-ui-component-library/src/lib/table/components/table/table.component.html","./projects/web-ui-component-library/src/lib/table/components/table/table.component.ts","./node_modules/ngx-bootstrap/collapse/fesm2022/ngx-bootstrap-collapse.mjs","./node_modules/ngx-bootstrap/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs","./node_modules/ngx-bootstrap/accordion/fesm2022/ngx-bootstrap-accordion.mjs","./node_modules/ngx-bootstrap/tabs/fesm2022/ngx-bootstrap-tabs.mjs","./node_modules/ngx-bootstrap/focus-trap/fesm2022/ngx-bootstrap-focus-trap.mjs","./node_modules/ngx-bootstrap/modal/fesm2022/ngx-bootstrap-modal.mjs","./node_modules/ngx-bootstrap/chronos/fesm2022/ngx-bootstrap-chronos.mjs","./node_modules/ngx-bootstrap/mini-ngrx/fesm2022/ngx-bootstrap-mini-ngrx.mjs","./node_modules/ngx-bootstrap/timepicker/fesm2022/ngx-bootstrap-timepicker.mjs","./node_modules/ngx-bootstrap/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs","./node_modules/ngx-bootstrap/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs","./node_modules/ngx-bootstrap/progressbar/fesm2022/ngx-bootstrap-progressbar.mjs","./node_modules/rxjs/dist/esm/internal/operators/throttleTime.js","./node_modules/rxjs/dist/esm/internal/operators/throttle.js","./node_modules/detect-it/dist/detect-it.esm.js","./node_modules/@angular-slider/ngx-slider/fesm2022/angular-slider-ngx-slider.mjs","./projects/web-ui-component-library/src/lib/bootstrap/bootstrap.module.ts","./projects/web-ui-component-library/src/lib/alerts/alerts.module.ts","./projects/web-ui-component-library/src/lib/alerts/models/alert-type.enum.ts","./projects/web-ui-component-library/src/lib/modal/modal.module.ts","./projects/web-ui-component-library/src/lib/progressbar/progressbar.module.ts","./projects/web-ui-component-library/src/lib/progressbar/models/progressbar-type.enum.ts","./projects/web-ui-component-library/src/lib/copy-to-clipboard/copy-to-clipboard.module.ts","./projects/web-ui-component-library/src/lib/common/enum/filters/filter-type.enum.ts","./projects/web-ui-component-library/src/lib/table-container/models/client-side-data.model.ts","./projects/web-ui-component-library/src/lib/table-container/services/client-side-data.service.ts","./projects/web-ui-component-library/src/lib/click-events/click-events.module.ts","./projects/web-ui-component-library/src/lib/tags/tags.module.ts","./projects/web-ui-component-library/src/lib/table-container/table-container.module.ts","./projects/web-ui-component-library/src/lib/icons/icons.module.ts","./projects/web-ui-component-library/src/lib/layout-builder/layout-builder.module.ts","./projects/web-ui-component-library/src/lib/header/header.module.ts","./projects/web-ui-component-library/src/lib/footer/footer.module.ts","./projects/web-ui-component-library/src/lib/breadcrumb/breadcrumb.module.ts","./projects/web-ui-component-library/src/lib/common/constants/rr_thumbnail.ts","./projects/web-ui-component-library/src/lib/common/services/modal.service.ts","./node_modules/@ng-select/ng-select/fesm2022/ng-select-ng-select.mjs","./projects/web-ui-component-library/src/lib/form-inputs/form-inputs.module.ts","./projects/web-ui-component-library/src/lib/table-filters/table-filters.module.ts","./projects/web-ui-component-library/src/lib/filtered-table/filtered-table.module.ts","./projects/web-ui-component-library/src/lib/file-upload/models/file-container-model.model.ts","./projects/web-ui-component-library/src/lib/status-bar/status-bar.module.ts","./projects/web-ui-component-library/src/lib/charts/charts.module.ts","./projects/web-ui-component-library/src/lib/filter/filter.module.ts","./projects/web-ui-component-library/src/lib/services/page-context.service.ts","./projects/web-ui-component-library/src/lib/table/directives/table-row.ts","./projects/web-ui-component-library/src/lib/table/table.module.ts","./node_modules/@reactivereality/cs-api-sdk/dist/esm/base.js","./node_modules/@reactivereality/cs-api-sdk/dist/esm/common.js","./node_modules/@reactivereality/cs-api-sdk/dist/esm/api.js","./node_modules/@reactivereality/cs-api-sdk/dist/esm/configuration.js","./node_modules/@reactivereality/pictofit-web-sdk/node_modules/uuid/dist/esm-browser/rng.js","./node_modules/@reactivereality/pictofit-web-sdk/node_modules/uuid/dist/esm-browser/regex.js","./node_modules/@reactivereality/pictofit-web-sdk/node_modules/uuid/dist/esm-browser/stringify.js","./node_modules/@reactivereality/pictofit-web-sdk/node_modules/uuid/dist/esm-browser/validate.js","./node_modules/@reactivereality/pictofit-web-sdk/node_modules/uuid/dist/esm-browser/v4.js","./node_modules/axios/index.js","./node_modules/axios/lib/adapters/xhr.js","./node_modules/axios/lib/axios.js","./node_modules/axios/lib/cancel/CancelToken.js","./node_modules/axios/lib/cancel/CanceledError.js","./node_modules/axios/lib/cancel/isCancel.js","./node_modules/axios/lib/core/Axios.js","./node_modules/axios/lib/core/AxiosError.js","./node_modules/axios/lib/core/InterceptorManager.js","./node_modules/axios/lib/core/buildFullPath.js","./node_modules/axios/lib/core/dispatchRequest.js","./node_modules/axios/lib/core/mergeConfig.js","./node_modules/axios/lib/core/settle.js","./node_modules/axios/lib/core/transformData.js","./node_modules/axios/lib/defaults/index.js","./node_modules/axios/lib/defaults/transitional.js","./node_modules/axios/lib/env/data.js","./node_modules/axios/lib/helpers/bind.js","./node_modules/axios/lib/helpers/buildURL.js","./node_modules/axios/lib/helpers/combineURLs.js","./node_modules/axios/lib/helpers/cookies.js","./node_modules/axios/lib/helpers/isAbsoluteURL.js","./node_modules/axios/lib/helpers/isAxiosError.js","./node_modules/axios/lib/helpers/isURLSameOrigin.js","./node_modules/axios/lib/helpers/normalizeHeaderName.js","./node_modules/axios/lib/helpers/null.js","./node_modules/axios/lib/helpers/parseHeaders.js","./node_modules/axios/lib/helpers/parseProtocol.js","./node_modules/axios/lib/helpers/spread.js","./node_modules/axios/lib/helpers/toFormData.js","./node_modules/axios/lib/helpers/validator.js","./node_modules/axios/lib/utils.js","./node_modules/cross-fetch/dist/browser-ponyfill.js","./node_modules/earcut/src/earcut.js","./node_modules/file-saver/dist/FileSaver.min.js","./node_modules/jsoneditor/dist/jsoneditor.min.js","./node_modules/jszip/dist/jszip.min.js","./node_modules/lodash/lodash.js","./node_modules/moment/locale/af.js","./node_modules/moment/locale/ar-dz.js","./node_modules/moment/locale/ar-kw.js","./node_modules/moment/locale/ar-ly.js","./node_modules/moment/locale/ar-ma.js","./node_modules/moment/locale/ar-ps.js","./node_modules/moment/locale/ar-sa.js","./node_modules/moment/locale/ar-tn.js","./node_modules/moment/locale/ar.js","./node_modules/moment/locale/az.js","./node_modules/moment/locale/be.js","./node_modules/moment/locale/bg.js","./node_modules/moment/locale/bm.js","./node_modules/moment/locale/bn-bd.js","./node_modules/moment/locale/bn.js","./node_modules/moment/locale/bo.js","./node_modules/moment/locale/br.js","./node_modules/moment/locale/bs.js","./node_modules/moment/locale/ca.js","./node_modules/moment/locale/cs.js","./node_modules/moment/locale/cv.js","./node_modules/moment/locale/cy.js","./node_modules/moment/locale/da.js","./node_modules/moment/locale/de-at.js","./node_modules/moment/locale/de-ch.js","./node_modules/moment/locale/de.js","./node_modules/moment/locale/dv.js","./node_modules/moment/locale/el.js","./node_modules/moment/locale/en-au.js","./node_modules/moment/locale/en-ca.js","./node_modules/moment/locale/en-gb.js","./node_modules/moment/locale/en-ie.js","./node_modules/moment/locale/en-il.js","./node_modules/moment/locale/en-in.js","./node_modules/moment/locale/en-nz.js","./node_modules/moment/locale/en-sg.js","./node_modules/moment/locale/eo.js","./node_modules/moment/locale/es-do.js","./node_modules/moment/locale/es-mx.js","./node_modules/moment/locale/es-us.js","./node_modules/moment/locale/es.js","./node_modules/moment/locale/et.js","./node_modules/moment/locale/eu.js","./node_modules/moment/locale/fa.js","./node_modules/moment/locale/fi.js","./node_modules/moment/locale/fil.js","./node_modules/moment/locale/fo.js","./node_modules/moment/locale/fr-ca.js","./node_modules/moment/locale/fr-ch.js","./node_modules/moment/locale/fr.js","./node_modules/moment/locale/fy.js","./node_modules/moment/locale/ga.js","./node_modules/moment/locale/gd.js","./node_modules/moment/locale/gl.js","./node_modules/moment/locale/gom-deva.js","./node_modules/moment/locale/gom-latn.js","./node_modules/moment/locale/gu.js","./node_modules/moment/locale/he.js","./node_modules/moment/locale/hi.js","./node_modules/moment/locale/hr.js","./node_modules/moment/locale/hu.js","./node_modules/moment/locale/hy-am.js","./node_modules/moment/locale/id.js","./node_modules/moment/locale/is.js","./node_modules/moment/locale/it-ch.js","./node_modules/moment/locale/it.js","./node_modules/moment/locale/ja.js","./node_modules/moment/locale/jv.js","./node_modules/moment/locale/ka.js","./node_modules/moment/locale/kk.js","./node_modules/moment/locale/km.js","./node_modules/moment/locale/kn.js","./node_modules/moment/locale/ko.js","./node_modules/moment/locale/ku-kmr.js","./node_modules/moment/locale/ku.js","./node_modules/moment/locale/ky.js","./node_modules/moment/locale/lb.js","./node_modules/moment/locale/lo.js","./node_modules/moment/locale/lt.js","./node_modules/moment/locale/lv.js","./node_modules/moment/locale/me.js","./node_modules/moment/locale/mi.js","./node_modules/moment/locale/mk.js","./node_modules/moment/locale/ml.js","./node_modules/moment/locale/mn.js","./node_modules/moment/locale/mr.js","./node_modules/moment/locale/ms-my.js","./node_modules/moment/locale/ms.js","./node_modules/moment/locale/mt.js","./node_modules/moment/locale/my.js","./node_modules/moment/locale/nb.js","./node_modules/moment/locale/ne.js","./node_modules/moment/locale/nl-be.js","./node_modules/moment/locale/nl.js","./node_modules/moment/locale/nn.js","./node_modules/moment/locale/oc-lnc.js","./node_modules/moment/locale/pa-in.js","./node_modules/moment/locale/pl.js","./node_modules/moment/locale/pt-br.js","./node_modules/moment/locale/pt.js","./node_modules/moment/locale/ro.js","./node_modules/moment/locale/ru.js","./node_modules/moment/locale/sd.js","./node_modules/moment/locale/se.js","./node_modules/moment/locale/si.js","./node_modules/moment/locale/sk.js","./node_modules/moment/locale/sl.js","./node_modules/moment/locale/sq.js","./node_modules/moment/locale/sr-cyrl.js","./node_modules/moment/locale/sr.js","./node_modules/moment/locale/ss.js","./node_modules/moment/locale/sv.js","./node_modules/moment/locale/sw.js","./node_modules/moment/locale/ta.js","./node_modules/moment/locale/te.js","./node_modules/moment/locale/tet.js","./node_modules/moment/locale/tg.js","./node_modules/moment/locale/th.js","./node_modules/moment/locale/tk.js","./node_modules/moment/locale/tl-ph.js","./node_modules/moment/locale/tlh.js","./node_modules/moment/locale/tr.js","./node_modules/moment/locale/tzl.js","./node_modules/moment/locale/tzm-latn.js","./node_modules/moment/locale/tzm.js","./node_modules/moment/locale/ug-cn.js","./node_modules/moment/locale/uk.js","./node_modules/moment/locale/ur.js","./node_modules/moment/locale/uz-latn.js","./node_modules/moment/locale/uz.js","./node_modules/moment/locale/vi.js","./node_modules/moment/locale/x-pseudo.js","./node_modules/moment/locale/yo.js","./node_modules/moment/locale/zh-cn.js","./node_modules/moment/locale/zh-hk.js","./node_modules/moment/locale/zh-mo.js","./node_modules/moment/locale/zh-tw.js","./node_modules/moment/moment.js","./node_modules/oidc-client/lib/oidc-client.min.js","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/firstValueFrom.js","./node_modules/rxjs/dist/esm/internal/lastValueFrom.js","./node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","./node_modules/rxjs/dist/esm/internal/observable/concat.js","./node_modules/rxjs/dist/esm/internal/operators/concatAll.js","./node_modules/rxjs/dist/esm/internal/observable/empty.js","./node_modules/rxjs/dist/esm/internal/observable/forkJoin.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","./node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","./node_modules/rxjs/dist/esm/internal/observable/interval.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/observable/of.js","./node_modules/rxjs/dist/esm/internal/observable/throwError.js","./node_modules/rxjs/dist/esm/internal/observable/timer.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/operators/catchError.js","./node_modules/rxjs/dist/esm/internal/operators/concatMap.js","./node_modules/rxjs/dist/esm/internal/operators/debounceTime.js","./node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/finalize.js","./node_modules/rxjs/dist/esm/internal/operators/first.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.js","./node_modules/rxjs/dist/esm/internal/operators/skip.js","./node_modules/rxjs/dist/esm/internal/operators/startWith.js","./node_modules/rxjs/dist/esm/internal/operators/switchMap.js","./node_modules/rxjs/dist/esm/internal/operators/take.js","./node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","./node_modules/rxjs/dist/esm/internal/operators/tap.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/withLatestFrom.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/scheduler/Action.js","./node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","./node_modules/rxjs/dist/esm/internal/Scheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrame.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/dist/esm/internal/util/Immediate.js","./node_modules/rxjs/dist/esm/internal/scheduler/immediateProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/asap.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/async.js","./node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/queue.js","./node_modules/rxjs/dist/esm/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/QueueAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/util/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/createObject.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/isDate.js","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isObservable.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/streamsaver/StreamSaver.js","./node_modules/ts-md5/dist/esm/md5.js","./node_modules/uuid/dist/esm-browser/native.js","./node_modules/uuid/dist/esm-browser/rng.js","./node_modules/uuid/dist/esm-browser/stringify.js","./node_modules/uuid/dist/esm-browser/v4.js","./node_modules/moment/locale/ sync ^\\.\\/.*$","./node_modules/@angular/animations/fesm2022/animations.mjs","./node_modules/@angular/common/fesm2022/common.mjs","./node_modules/@angular/common/fesm2022/http.mjs","./node_modules/@angular/core/fesm2022/primitives/signals.mjs","./node_modules/@angular/core/fesm2022/core.mjs","./node_modules/@angular/core/fesm2022/rxjs-interop.mjs","./node_modules/@angular/forms/fesm2022/forms.mjs","./node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs","./node_modules/rxjs/dist/esm/internal/observable/defer.js","./node_modules/rxjs/dist/esm/internal/operators/refCount.js","./node_modules/rxjs/dist/esm/internal/observable/ConnectableObservable.js","./node_modules/rxjs/dist/esm/internal/operators/takeLast.js","./node_modules/@angular/router/fesm2022/router.mjs","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/rxjs/dist/esm/internal/operators/mapTo.js","./node_modules/@babylonjs/core/Actions/abstractActionManager.js","./node_modules/@babylonjs/core/Actions/action.js","./node_modules/@babylonjs/core/Actions/actionEvent.js","./node_modules/@babylonjs/core/Actions/actionManager.js","./node_modules/@babylonjs/core/Actions/condition.js","./node_modules/@babylonjs/core/Actions/directActions.js","./node_modules/@babylonjs/core/Animations/animatable.core.js","./node_modules/@babylonjs/core/Animations/animatable.js","./node_modules/@babylonjs/core/Animations/animation.js","./node_modules/@babylonjs/core/Animations/animationEvent.js","./node_modules/@babylonjs/core/Animations/animationGroup.js","./node_modules/@babylonjs/core/Animations/animationRange.js","./node_modules/@babylonjs/core/Animations/easing.js","./node_modules/@babylonjs/core/Animations/runtimeAnimation.js","./node_modules/@babylonjs/core/Audio/audioEngine.js","./node_modules/@babylonjs/core/Audio/audioSceneComponent.js","./node_modules/@babylonjs/core/Audio/sound.js","./node_modules/@babylonjs/core/Audio/soundTrack.js","./node_modules/@babylonjs/core/Audio/weightedsound.js","./node_modules/@babylonjs/core/Behaviors/Cameras/autoRotationBehavior.js","./node_modules/@babylonjs/core/Behaviors/Cameras/bouncingBehavior.js","./node_modules/@babylonjs/core/Behaviors/Cameras/framingBehavior.js","./node_modules/@babylonjs/core/Behaviors/Meshes/baseSixDofDragBehavior.js","./node_modules/@babylonjs/core/Behaviors/Meshes/fadeInOutBehavior.js","./node_modules/@babylonjs/core/Behaviors/Meshes/handConstraintBehavior.js","./node_modules/@babylonjs/core/Behaviors/Meshes/pointerDragBehavior.js","./node_modules/@babylonjs/core/Bones/bone.js","./node_modules/@babylonjs/core/Bones/skeleton.js","./node_modules/@babylonjs/core/Buffers/buffer.js","./node_modules/@babylonjs/core/Buffers/bufferUtils.js","./node_modules/@babylonjs/core/Buffers/dataBuffer.js","./node_modules/@babylonjs/core/Buffers/storageBuffer.js","./node_modules/@babylonjs/core/Cameras/Inputs/BaseCameraMouseWheelInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/BaseCameraPointersInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraGamepadInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraMouseWheelInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraPointersInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/freeCameraDeviceOrientationInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/freeCameraGamepadInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/freeCameraKeyboardMoveInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/freeCameraMouseInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/freeCameraMouseWheelInput.js","./node_modules/@babylonjs/core/Cameras/Inputs/freeCameraTouchInput.js","./node_modules/@babylonjs/core/Cameras/RigModes/vrRigMode.js","./node_modules/@babylonjs/core/Cameras/VR/vrCameraMetrics.js","./node_modules/@babylonjs/core/Cameras/VR/vrDeviceOrientationFreeCamera.js","./node_modules/@babylonjs/core/Cameras/VR/vrExperienceHelper.js","./node_modules/@babylonjs/core/Cameras/arcRotateCamera.js","./node_modules/@babylonjs/core/Cameras/arcRotateCameraInputsManager.js","./node_modules/@babylonjs/core/Cameras/camera.js","./node_modules/@babylonjs/core/Cameras/cameraInputsManager.js","./node_modules/@babylonjs/core/Cameras/deviceOrientationCamera.js","./node_modules/@babylonjs/core/Cameras/freeCamera.js","./node_modules/@babylonjs/core/Cameras/freeCameraInputsManager.js","./node_modules/@babylonjs/core/Cameras/targetCamera.js","./node_modules/@babylonjs/core/Cameras/touchCamera.js","./node_modules/@babylonjs/core/Cameras/universalCamera.js","./node_modules/@babylonjs/core/Collisions/intersectionInfo.js","./node_modules/@babylonjs/core/Collisions/meshCollisionData.js","./node_modules/@babylonjs/core/Collisions/pickingInfo.js","./node_modules/@babylonjs/core/Compat/compatibilityOptions.js","./node_modules/@babylonjs/core/Compute/computeShader.js","./node_modules/@babylonjs/core/ShadersWGSL/boundingInfo.compute.js","./node_modules/@babylonjs/core/Culling/Helper/computeShaderBoundingHelper.js","./node_modules/@babylonjs/core/Shaders/gpuTransform.vertex.js","./node_modules/@babylonjs/core/Shaders/gpuTransform.fragment.js","./node_modules/@babylonjs/core/Culling/Helper/transformFeedbackBoundingHelper.js","./node_modules/@babylonjs/core/Culling/boundingBox.js","./node_modules/@babylonjs/core/Culling/boundingInfo.js","./node_modules/@babylonjs/core/Culling/boundingSphere.js","./node_modules/@babylonjs/core/Culling/ray.core.js","./node_modules/@babylonjs/core/Culling/ray.js","./node_modules/@babylonjs/core/Decorators/nodeDecorator.js","./node_modules/@babylonjs/core/DeviceInput/InputDevices/deviceEnums.js","./node_modules/@babylonjs/core/DeviceInput/InputDevices/deviceSource.js","./node_modules/@babylonjs/core/DeviceInput/eventFactory.js","./node_modules/@babylonjs/core/DeviceInput/nativeDeviceInputSystem.js","./node_modules/@babylonjs/core/DeviceInput/webDeviceInputSystem.js","./node_modules/@babylonjs/core/DeviceInput/internalDeviceSourceManager.js","./node_modules/@babylonjs/core/DeviceInput/InputDevices/deviceSourceManager.js","./node_modules/@babylonjs/core/Engines/AbstractEngine/abstractEngine.alpha.js","./node_modules/@babylonjs/core/Engines/AbstractEngine/abstractEngine.cubeTexture.js","./node_modules/@babylonjs/core/Engines/AbstractEngine/abstractEngine.dom.js","./node_modules/@babylonjs/core/Engines/AbstractEngine/abstractEngine.loadingScreen.js","./node_modules/@babylonjs/core/Engines/AbstractEngine/abstractEngine.renderPass.js","./node_modules/@babylonjs/core/Engines/AbstractEngine/abstractEngine.states.js","./node_modules/@babylonjs/core/Engines/AbstractEngine/abstractEngine.texture.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.alpha.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.cubeTexture.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.dynamicBuffer.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.dynamicTexture.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.multiview.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.prefilteredCubeTexture.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.rawTexture.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.readTexture.js","./node_modules/@babylonjs/core/Engines/WebGL/webGLRenderTargetWrapper.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.renderTarget.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.renderTargetCube.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.renderTargetTexture.js","./node_modules/@babylonjs/core/Engines/Extensions/engine.uniformBuffer.js","./node_modules/@babylonjs/core/Engines/Processors/shaderCodeNode.js","./node_modules/@babylonjs/core/Engines/Processors/shaderCodeCursor.js","./node_modules/@babylonjs/core/Engines/Processors/shaderCodeConditionNode.js","./node_modules/@babylonjs/core/Engines/Processors/shaderCodeTestNode.js","./node_modules/@babylonjs/core/Engines/Processors/Expressions/shaderDefineExpression.js","./node_modules/@babylonjs/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js","./node_modules/@babylonjs/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js","./node_modules/@babylonjs/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js","./node_modules/@babylonjs/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js","./node_modules/@babylonjs/core/Engines/Processors/shaderProcessor.js","./node_modules/@babylonjs/core/Engines/WebGL/webGL2ShaderProcessors.js","./node_modules/@babylonjs/core/Engines/WebGL/webGLHardwareTexture.js","./node_modules/@babylonjs/core/Engines/WebGL/webGLPipelineContext.js","./node_modules/@babylonjs/core/Engines/WebGPU/webgpuPerfCounter.js","./node_modules/@babylonjs/core/Engines/abstractEngine.functions.js","./node_modules/@babylonjs/core/Engines/abstractEngine.js","./node_modules/@babylonjs/core/Engines/constants.js","./node_modules/@babylonjs/core/Engines/engine.common.js","./node_modules/@babylonjs/core/Engines/engine.js","./node_modules/@babylonjs/core/Engines/engineStore.js","./node_modules/@babylonjs/core/Engines/performanceConfigurator.js","./node_modules/@babylonjs/core/Engines/renderTargetWrapper.js","./node_modules/@babylonjs/core/Engines/shaderStore.js","./node_modules/@babylonjs/core/Engines/thinEngine.functions.js","./node_modules/@babylonjs/core/Engines/WebGL/webGLShaderProcessors.js","./node_modules/@babylonjs/core/Engines/thinEngine.js","./node_modules/@babylonjs/core/Events/clipboardEvents.js","./node_modules/@babylonjs/core/Events/deviceInputEvents.js","./node_modules/@babylonjs/core/Events/keyboardEvents.js","./node_modules/@babylonjs/core/Events/pointerEvents.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js","./node_modules/@babylonjs/core/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js","./node_modules/@babylonjs/core/FlowGraph/flowGraph.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphAsyncExecutionBlock.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphBlock.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphConnection.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphContext.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphCoordinator.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphDataConnection.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphEventBlock.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphExecutionBlock.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphExecutionBlockWithOutSignal.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphInteger.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphPathConverterComponent.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphRichTypes.js","./node_modules/@babylonjs/core/FlowGraph/flowGraphSignalConnection.js","./node_modules/@babylonjs/core/FlowGraph/serialization.js","./node_modules/@babylonjs/core/FlowGraph/utils.js","./node_modules/@babylonjs/core/FrameGraph/Node/Types/nodeRenderGraphTypes.js","./node_modules/@babylonjs/core/FrameGraph/Node/nodeRenderGraphBlock.js","./node_modules/@babylonjs/core/FrameGraph/Node/nodeRenderGraphBlockConnectionPoint.js","./node_modules/@babylonjs/core/FrameGraph/Passes/cullPass.js","./node_modules/@babylonjs/core/FrameGraph/Passes/pass.js","./node_modules/@babylonjs/core/FrameGraph/Passes/renderPass.js","./node_modules/@babylonjs/core/FrameGraph/frameGraphTask.js","./node_modules/@babylonjs/core/Gamepads/dualShockGamepad.js","./node_modules/@babylonjs/core/Gamepads/gamepad.js","./node_modules/@babylonjs/core/Gamepads/gamepadManager.js","./node_modules/@babylonjs/core/Gamepads/gamepadSceneComponent.js","./node_modules/@babylonjs/core/Gamepads/xboxGamepad.js","./node_modules/@babylonjs/core/Gizmos/gizmo.js","./node_modules/@babylonjs/core/Gizmos/planeRotationGizmo.js","./node_modules/@babylonjs/core/Helpers/environmentHelper.js","./node_modules/@babylonjs/core/Helpers/sceneHelpers.js","./node_modules/@babylonjs/core/Layers/effectLayer.js","./node_modules/@babylonjs/core/Layers/effectLayerSceneComponent.js","./node_modules/@babylonjs/core/Layers/glowLayer.js","./node_modules/@babylonjs/core/Layers/layer.js","./node_modules/@babylonjs/core/Layers/layerSceneComponent.js","./node_modules/@babylonjs/core/Lights/Shadows/cascadedShadowGenerator.js","./node_modules/@babylonjs/core/Lights/Shadows/shadowGenerator.js","./node_modules/@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent.js","./node_modules/@babylonjs/core/Lights/directionalLight.js","./node_modules/@babylonjs/core/Lights/hemisphericLight.js","./node_modules/@babylonjs/core/Lights/light.js","./node_modules/@babylonjs/core/Lights/lightConstants.js","./node_modules/@babylonjs/core/Lights/pointLight.js","./node_modules/@babylonjs/core/Lights/shadowLight.js","./node_modules/@babylonjs/core/Lights/spotLight.js","./node_modules/@babylonjs/core/Loading/Plugins/babylonFileLoader.js","./node_modules/@babylonjs/core/Loading/Plugins/babylonFileParser.function.js","./node_modules/@babylonjs/core/Loading/sceneLoader.js","./node_modules/@babylonjs/core/Misc/webRequest.fetch.js","./node_modules/@babylonjs/core/Loading/sceneLoaderFlags.js","./node_modules/@babylonjs/core/Materials/Background/backgroundMaterial.js","./node_modules/@babylonjs/core/Materials/GaussianSplatting/gaussianSplattingMaterial.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Dual/currentScreenBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Input/animatedInputBlockTypes.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Input/inputBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Particle/particleRampGradientBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Particle/particleTextureBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/Vertex/vertexOutputBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/baseMathBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/colorSplitterBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/multiplyBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/remapBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/transformBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/trigonometryBlock.js","./node_modules/@babylonjs/core/Materials/Node/Blocks/vectorMergerBlock.js","./node_modules/@babylonjs/core/Materials/Node/Enums/nodeMaterialBlockConnectionPointTypes.js","./node_modules/@babylonjs/core/Materials/Node/Enums/nodeMaterialBlockTargets.js","./node_modules/@babylonjs/core/Materials/Node/Enums/nodeMaterialModes.js","./node_modules/@babylonjs/core/Materials/Node/Enums/nodeMaterialSystemValues.js","./node_modules/@babylonjs/core/Materials/Node/nodeMaterialBuildState.js","./node_modules/@babylonjs/core/Materials/Node/nodeMaterialBuildStateSharedData.js","./node_modules/@babylonjs/core/Materials/Node/nodeMaterial.js","./node_modules/@babylonjs/core/Materials/Node/nodeMaterialBlock.js","./node_modules/@babylonjs/core/Materials/Node/nodeMaterialBlockConnectionPoint.js","./node_modules/@babylonjs/core/Materials/PBR/pbrAnisotropicConfiguration.js","./node_modules/@babylonjs/core/Materials/PBR/pbrBRDFConfiguration.js","./node_modules/@babylonjs/core/Materials/PBR/pbrBaseMaterial.js","./node_modules/@babylonjs/core/Materials/PBR/pbrBaseSimpleMaterial.js","./node_modules/@babylonjs/core/Materials/PBR/pbrClearCoatConfiguration.js","./node_modules/@babylonjs/core/Materials/PBR/pbrIridescenceConfiguration.js","./node_modules/@babylonjs/core/Materials/PBR/pbrMaterial.js","./node_modules/@babylonjs/core/Materials/PBR/pbrMetallicRoughnessMaterial.js","./node_modules/@babylonjs/core/Materials/PBR/pbrSheenConfiguration.js","./node_modules/@babylonjs/core/Materials/PBR/pbrSubSurfaceConfiguration.js","./node_modules/@babylonjs/core/Materials/Textures/Filtering/hdrFiltering.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/EXR/exrLoader.compression.huf.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/EXR/exrLoader.compression.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/EXR/exrLoader.compression.rle.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/EXR/exrLoader.configuration.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/EXR/exrLoader.core.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/EXR/exrLoader.decoder.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/EXR/exrLoader.header.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/EXR/exrLoader.interfaces.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/basisTextureLoader.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/ddsTextureLoader.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/envTextureLoader.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/exrTextureLoader.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/hdrTextureLoader.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/ktxTextureLoader.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/textureLoaderManager.js","./node_modules/@babylonjs/core/Materials/Textures/Loaders/tgaTextureLoader.js","./node_modules/@babylonjs/core/Materials/Textures/MultiviewRenderTarget.js","./node_modules/@babylonjs/core/Materials/Textures/Procedurals/proceduralTexture.js","./node_modules/@babylonjs/core/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js","./node_modules/@babylonjs/core/Materials/Textures/baseTexture.js","./node_modules/@babylonjs/core/Materials/Textures/baseTexture.polynomial.js","./node_modules/@babylonjs/core/Materials/Textures/cubeTexture.js","./node_modules/@babylonjs/core/Materials/Textures/dynamicTexture.js","./node_modules/@babylonjs/core/Materials/Textures/hdrCubeTexture.js","./node_modules/@babylonjs/core/Materials/Textures/internalTexture.js","./node_modules/@babylonjs/core/Materials/Textures/ktx2decoderTypes.js","./node_modules/@babylonjs/core/Materials/Textures/mirrorTexture.js","./node_modules/@babylonjs/core/Materials/Textures/rawCubeTexture.js","./node_modules/@babylonjs/core/Materials/Textures/rawTexture.js","./node_modules/@babylonjs/core/Materials/Textures/rawTexture2DArray.js","./node_modules/@babylonjs/core/Materials/Textures/renderTargetTexture.js","./node_modules/@babylonjs/core/Materials/Textures/texture.js","./node_modules/@babylonjs/core/Materials/Textures/textureSampler.js","./node_modules/@babylonjs/core/Materials/Textures/thinTexture.js","./node_modules/@babylonjs/core/Materials/clipPlaneMaterialHelper.js","./node_modules/@babylonjs/core/Materials/colorCurves.functions.js","./node_modules/@babylonjs/core/Materials/colorCurves.js","./node_modules/@babylonjs/core/Materials/drawWrapper.functions.js","./node_modules/@babylonjs/core/Materials/drawWrapper.js","./node_modules/@babylonjs/core/Materials/effect.functions.js","./node_modules/@babylonjs/core/Materials/effect.js","./node_modules/@babylonjs/core/Materials/effectFallbacks.js","./node_modules/@babylonjs/core/Materials/effectRenderer.js","./node_modules/@babylonjs/core/Materials/fresnelParameters.js","./node_modules/@babylonjs/core/Materials/imageProcessingConfiguration.functions.js","./node_modules/@babylonjs/core/Materials/imageProcessingConfiguration.js","./node_modules/@babylonjs/core/Materials/material.detailMapConfiguration.js","./node_modules/@babylonjs/core/Materials/materialStencilState.js","./node_modules/@babylonjs/core/Materials/material.js","./node_modules/@babylonjs/core/Materials/materialDefines.js","./node_modules/@babylonjs/core/Materials/materialFlags.js","./node_modules/@babylonjs/core/Materials/materialHelper.functions.js","./node_modules/@babylonjs/core/Materials/materialHelper.geometryrendering.js","./node_modules/@babylonjs/core/Materials/materialPluginBase.js","./node_modules/@babylonjs/core/Materials/materialPluginManager.js","./node_modules/@babylonjs/core/Materials/multiMaterial.js","./node_modules/@babylonjs/core/Materials/prePassConfiguration.js","./node_modules/@babylonjs/core/Materials/pushMaterial.js","./node_modules/@babylonjs/core/Materials/shaderMaterial.js","./node_modules/@babylonjs/core/Materials/standardMaterial.js","./node_modules/@babylonjs/core/Materials/uniformBuffer.js","./node_modules/@babylonjs/core/Maths/math.axis.js","./node_modules/@babylonjs/core/Maths/math.color.js","./node_modules/@babylonjs/core/Maths/math.constants.js","./node_modules/@babylonjs/core/Maths/math.frustum.js","./node_modules/@babylonjs/core/Maths/math.functions.js","./node_modules/@babylonjs/core/Maths/math.path.js","./node_modules/@babylonjs/core/Maths/math.plane.js","./node_modules/@babylonjs/core/Maths/math.scalar.functions.js","./node_modules/@babylonjs/core/Maths/math.scalar.js","./node_modules/@babylonjs/core/Maths/math.size.js","./node_modules/@babylonjs/core/Maths/math.vector.js","./node_modules/@babylonjs/core/Maths/math.viewport.js","./node_modules/@babylonjs/core/Maths/sphericalPolynomial.js","./node_modules/@babylonjs/core/Meshes/Builders/boxBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/capsuleBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/cylinderBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/decalBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/discBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/geodesicBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/goldbergBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/groundBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/icoSphereBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/latheBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/linesBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/planeBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/polygonBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/polyhedronBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/ribbonBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/shapeBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/sphereBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/textBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/tiledBoxBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/tiledPlaneBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/torusBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/torusKnotBuilder.js","./node_modules/@babylonjs/core/Meshes/Builders/tubeBuilder.js","./node_modules/@babylonjs/core/Meshes/Compression/dracoCompressionWorker.js","./node_modules/@babylonjs/core/Meshes/Compression/dracoCompression.js","./node_modules/@babylonjs/core/Meshes/Compression/meshoptCompression.js","./node_modules/@babylonjs/core/Meshes/GaussianSplatting/gaussianSplattingMesh.js","./node_modules/@babylonjs/core/Meshes/WebGL/webGLDataBuffer.js","./node_modules/@babylonjs/core/Meshes/abstractMesh.js","./node_modules/@babylonjs/core/Maths/math.isovector.js","./node_modules/@babylonjs/core/Meshes/geodesicMesh.js","./node_modules/@babylonjs/core/Meshes/geometry.js","./node_modules/@babylonjs/core/Meshes/goldbergMesh.js","./node_modules/@babylonjs/core/Meshes/groundMesh.js","./node_modules/@babylonjs/core/Meshes/instancedMesh.js","./node_modules/@babylonjs/core/Meshes/linesMesh.js","./node_modules/@babylonjs/core/Meshes/mesh.js","./node_modules/@babylonjs/core/Meshes/mesh.vertexData.js","./node_modules/@babylonjs/core/Meshes/meshBuilder.js","./node_modules/@babylonjs/core/Meshes/meshLODLevel.js","./node_modules/@babylonjs/core/Meshes/polygonMesh.js","./node_modules/@babylonjs/core/Meshes/subMesh.js","./node_modules/@babylonjs/core/Meshes/subMesh.project.js","./node_modules/@babylonjs/core/Meshes/thinInstanceMesh.js","./node_modules/@babylonjs/core/Meshes/transformNode.js","./node_modules/@babylonjs/core/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js","./node_modules/@babylonjs/core/Misc/HighDynamicRange/hdr.js","./node_modules/@babylonjs/core/Misc/HighDynamicRange/panoramaToCubemap.js","./node_modules/@babylonjs/core/Misc/andOrNotEvaluator.js","./node_modules/@babylonjs/core/Misc/arrayTools.js","./node_modules/@babylonjs/core/Misc/basisWorker.js","./node_modules/@babylonjs/core/Misc/basis.js","./node_modules/@babylonjs/core/Misc/brdfTextureTools.js","./node_modules/@babylonjs/core/Misc/copyTools.js","./node_modules/@babylonjs/core/Misc/coroutine.js","./node_modules/@babylonjs/core/Misc/dataReader.js","./node_modules/@babylonjs/core/Misc/dds.js","./node_modules/@babylonjs/core/Misc/decorators.functions.js","./node_modules/@babylonjs/core/Misc/decorators.js","./node_modules/@babylonjs/core/Misc/decorators.serialization.js","./node_modules/@babylonjs/core/Misc/deepCopier.js","./node_modules/@babylonjs/core/Misc/deferred.js","./node_modules/@babylonjs/core/Misc/depthReducer.js","./node_modules/@babylonjs/core/Misc/devTools.js","./node_modules/@babylonjs/core/Misc/domManagement.js","./node_modules/@babylonjs/core/Misc/dumpTools.js","./node_modules/@babylonjs/core/Misc/environmentTextureTools.js","./node_modules/@babylonjs/core/Misc/error.js","./node_modules/@babylonjs/core/Misc/fileTools.js","./node_modules/@babylonjs/core/Misc/filesInputStore.js","./node_modules/@babylonjs/core/Misc/gradients.js","./node_modules/@babylonjs/core/Misc/guid.js","./node_modules/@babylonjs/core/Misc/instantiationTools.js","./node_modules/@babylonjs/core/Misc/khronosTextureContainer.js","./node_modules/@babylonjs/core/Misc/khronosTextureContainer2Worker.js","./node_modules/@babylonjs/core/Misc/khronosTextureContainer2.js","./node_modules/@babylonjs/core/Misc/logger.js","./node_modules/@babylonjs/core/Shaders/minmaxRedux.fragment.js","./node_modules/@babylonjs/core/Misc/minMaxReducer.js","./node_modules/@babylonjs/core/Misc/observable.js","./node_modules/@babylonjs/core/Misc/perfCounter.js","./node_modules/@babylonjs/core/Misc/performanceMonitor.js","./node_modules/@babylonjs/core/Misc/pivotTools.js","./node_modules/@babylonjs/core/Misc/precisionDate.js","./node_modules/@babylonjs/core/Misc/retryStrategy.js","./node_modules/@babylonjs/core/Misc/rgbdTextureTools.js","./node_modules/@babylonjs/core/Misc/screenshotTools.js","./node_modules/@babylonjs/core/Misc/smartArray.js","./node_modules/@babylonjs/core/Misc/stringDictionary.js","./node_modules/@babylonjs/core/Misc/stringTools.js","./node_modules/@babylonjs/core/Misc/tags.js","./node_modules/@babylonjs/core/Misc/textureTools.js","./node_modules/@babylonjs/core/Misc/tga.js","./node_modules/@babylonjs/core/Misc/timer.js","./node_modules/@babylonjs/core/Misc/timingTools.js","./node_modules/@babylonjs/core/Misc/tools.functions.js","./node_modules/@babylonjs/core/Misc/tools.js","./node_modules/@babylonjs/core/Misc/typeStore.js","./node_modules/@babylonjs/core/Misc/uniqueIdGenerator.js","./node_modules/@babylonjs/core/Misc/webRequest.js","./node_modules/@babylonjs/core/Misc/workerPool.js","./node_modules/@babylonjs/core/Morph/morphTarget.js","./node_modules/@babylonjs/core/Morph/morphTargetManager.js","./node_modules/@babylonjs/core/Particles/EmitterTypes/boxParticleEmitter.js","./node_modules/@babylonjs/core/Particles/EmitterTypes/coneParticleEmitter.js","./node_modules/@babylonjs/core/Particles/EmitterTypes/customParticleEmitter.js","./node_modules/@babylonjs/core/Particles/EmitterTypes/cylinderParticleEmitter.js","./node_modules/@babylonjs/core/Particles/EmitterTypes/hemisphericParticleEmitter.js","./node_modules/@babylonjs/core/Particles/EmitterTypes/meshParticleEmitter.js","./node_modules/@babylonjs/core/Particles/EmitterTypes/pointParticleEmitter.js","./node_modules/@babylonjs/core/Particles/EmitterTypes/sphereParticleEmitter.js","./node_modules/@babylonjs/core/Materials/imageProcessingConfiguration.defines.js","./node_modules/@babylonjs/core/Particles/baseParticleSystem.js","./node_modules/@babylonjs/core/Particles/cloudPoint.js","./node_modules/@babylonjs/core/Particles/particle.js","./node_modules/@babylonjs/core/Particles/particleSystem.functions.js","./node_modules/@babylonjs/core/Particles/thinParticleSystem.js","./node_modules/@babylonjs/core/Particles/particleSystem.js","./node_modules/@babylonjs/core/Particles/pointsCloudSystem.js","./node_modules/@babylonjs/core/Particles/subEmitter.js","./node_modules/@babylonjs/core/Physics/castingResult.js","./node_modules/@babylonjs/core/Physics/physicsRaycastResult.js","./node_modules/@babylonjs/core/Physics/v1/Plugins/ammoJSPlugin.js","./node_modules/@babylonjs/core/Physics/v1/Plugins/cannonJSPlugin.js","./node_modules/@babylonjs/core/Physics/v1/Plugins/oimoJSPlugin.js","./node_modules/@babylonjs/core/Physics/v1/physicsEngine.js","./node_modules/@babylonjs/core/Physics/v1/physicsImpostor.js","./node_modules/@babylonjs/core/Physics/v1/physicsJoint.js","./node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js","./node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderEffect.js","./node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipeline.js","./node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js","./node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js","./node_modules/@babylonjs/core/PostProcesses/bloomEffect.js","./node_modules/@babylonjs/core/PostProcesses/bloomMergePostProcess.js","./node_modules/@babylonjs/core/PostProcesses/blurPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/chromaticAberrationPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/circleOfConfusionPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/depthOfFieldBlurPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/depthOfFieldEffect.js","./node_modules/@babylonjs/core/PostProcesses/depthOfFieldMergePostProcess.js","./node_modules/@babylonjs/core/PostProcesses/extractHighlightsPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/fxaaPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/grainPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/imageProcessingPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/passPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/postProcess.js","./node_modules/@babylonjs/core/PostProcesses/postProcessManager.js","./node_modules/@babylonjs/core/PostProcesses/sharpenPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/thinBloomEffect.js","./node_modules/@babylonjs/core/PostProcesses/thinBloomMergePostProcess.js","./node_modules/@babylonjs/core/PostProcesses/thinBlurPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/thinCircleOfConfusionPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/thinDepthOfFieldEffect.js","./node_modules/@babylonjs/core/PostProcesses/thinDepthOfFieldMergePostProcess.js","./node_modules/@babylonjs/core/PostProcesses/thinExtractHighlightsPostProcess.js","./node_modules/@babylonjs/core/PostProcesses/vrDistortionCorrectionPostProcess.js","./node_modules/@babylonjs/core/Shaders/vrMultiviewToSingleview.fragment.js","./node_modules/@babylonjs/core/PostProcesses/vrMultiviewToSingleviewPostProcess.js","./node_modules/@babylonjs/core/Probes/reflectionProbe.js","./node_modules/@babylonjs/core/Rendering/boundingBoxRenderer.js","./node_modules/@babylonjs/core/Rendering/depthRenderer.js","./node_modules/@babylonjs/core/Rendering/depthRendererSceneComponent.js","./node_modules/@babylonjs/core/Rendering/objectRenderer.js","./node_modules/@babylonjs/core/Rendering/outlineRenderer.js","./node_modules/@babylonjs/core/Rendering/renderingGroup.js","./node_modules/@babylonjs/core/Rendering/renderingManager.js","./node_modules/@babylonjs/core/Rendering/utilityLayerRenderer.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/backgroundUboDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/bonesVertex.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpFragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpFragmentFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpFragmentMainFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpVertex.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/decalFragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/decalFragmentDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/decalVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/defaultUboDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/depthPrePass.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/fogFragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/fogVertex.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/fresnelFunction.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/harmonicsFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/hdrFilteringFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/helperFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/imageProcessingDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/imageProcessingFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/importanceSampling.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/instancesVertex.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/lightFragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/lightVxFragmentDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/lightVxUboDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/lightsFragmentFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/logDepthFragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/logDepthVertex.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/mainUVVaryingDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/meshUboDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/morphTargetsVertex.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/morphTargetsVertexGlobal.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/oitDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/oitFragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/packingFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBRDFFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrUboDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pointCloudVertex.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/prePassDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/prePassVertex.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/prePassVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/reflectionFunction.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/samplerFragmentDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/samplerVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/samplerVertexImplementation.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/sceneUboDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/screenSpaceRayTrace.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowMapFragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowMapVertexMetric.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowsFragmentFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/uvAttributeDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/uvVariableDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/vertexColorMixing.js","./node_modules/@babylonjs/core/Shaders/anaglyph.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/backgroundFragmentDeclaration.js","./node_modules/@babylonjs/core/Shaders/background.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/backgroundVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/background.vertex.js","./node_modules/@babylonjs/core/Shaders/bilateralBlur.fragment.js","./node_modules/@babylonjs/core/Shaders/bilateralBlurQuality.fragment.js","./node_modules/@babylonjs/core/Shaders/blackAndWhite.fragment.js","./node_modules/@babylonjs/core/Shaders/bloomMerge.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js","./node_modules/@babylonjs/core/Shaders/boundingBoxRenderer.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/boundingBoxRenderer.vertex.js","./node_modules/@babylonjs/core/Shaders/chromaticAberration.fragment.js","./node_modules/@babylonjs/core/Shaders/circleOfConfusion.fragment.js","./node_modules/@babylonjs/core/Shaders/color.fragment.js","./node_modules/@babylonjs/core/Shaders/color.vertex.js","./node_modules/@babylonjs/core/Shaders/colorCorrection.fragment.js","./node_modules/@babylonjs/core/Shaders/convolution.fragment.js","./node_modules/@babylonjs/core/Shaders/copyTexture3DLayerToTexture.fragment.js","./node_modules/@babylonjs/core/Shaders/copyTextureToTexture.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/defaultFragmentDeclaration.js","./node_modules/@babylonjs/core/Shaders/default.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/defaultVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/default.vertex.js","./node_modules/@babylonjs/core/Shaders/depth.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pointCloudVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/depth.vertex.js","./node_modules/@babylonjs/core/Shaders/depthBoxBlur.fragment.js","./node_modules/@babylonjs/core/Shaders/depthOfFieldMerge.fragment.js","./node_modules/@babylonjs/core/Shaders/displayPass.fragment.js","./node_modules/@babylonjs/core/Shaders/extractHighlights.fragment.js","./node_modules/@babylonjs/core/Shaders/filter.fragment.js","./node_modules/@babylonjs/core/Shaders/fluidRenderingBilateralBlur.fragment.js","./node_modules/@babylonjs/core/Shaders/fluidRenderingParticleDepth.fragment.js","./node_modules/@babylonjs/core/Shaders/fluidRenderingParticleDepth.vertex.js","./node_modules/@babylonjs/core/Shaders/fluidRenderingParticleDiffuse.fragment.js","./node_modules/@babylonjs/core/Shaders/fluidRenderingParticleThickness.fragment.js","./node_modules/@babylonjs/core/Shaders/fluidRenderingParticleThickness.vertex.js","./node_modules/@babylonjs/core/Shaders/fluidRenderingRender.fragment.js","./node_modules/@babylonjs/core/Shaders/fluidRenderingStandardBlur.fragment.js","./node_modules/@babylonjs/core/Shaders/fxaa.fragment.js","./node_modules/@babylonjs/core/Shaders/fxaa.vertex.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/gaussianSplattingFragmentDeclaration.js","./node_modules/@babylonjs/core/Shaders/gaussianSplatting.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/gaussianSplatting.js","./node_modules/@babylonjs/core/Shaders/gaussianSplatting.vertex.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/mrtFragmentDeclaration.js","./node_modules/@babylonjs/core/Shaders/geometry.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/geometryVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/geometryUboDeclaration.js","./node_modules/@babylonjs/core/Shaders/geometry.vertex.js","./node_modules/@babylonjs/core/Shaders/glowBlurPostProcess.fragment.js","./node_modules/@babylonjs/core/Shaders/glowMapGeneration.fragment.js","./node_modules/@babylonjs/core/Shaders/glowMapGeneration.vertex.js","./node_modules/@babylonjs/core/Shaders/glowMapMerge.fragment.js","./node_modules/@babylonjs/core/Shaders/glowMapMerge.vertex.js","./node_modules/@babylonjs/core/Shaders/grain.fragment.js","./node_modules/@babylonjs/core/Shaders/hdrFiltering.fragment.js","./node_modules/@babylonjs/core/Shaders/hdrFiltering.vertex.js","./node_modules/@babylonjs/core/Shaders/highlights.fragment.js","./node_modules/@babylonjs/core/Shaders/iblCombineVoxelGrids.fragment.js","./node_modules/@babylonjs/core/Shaders/iblGenerateVoxelMip.fragment.js","./node_modules/@babylonjs/core/Shaders/iblShadowAccumulation.fragment.js","./node_modules/@babylonjs/core/Shaders/iblShadowDebug.fragment.js","./node_modules/@babylonjs/core/Shaders/iblShadowGBufferDebug.fragment.js","./node_modules/@babylonjs/core/Shaders/iblShadowSpatialBlur.fragment.js","./node_modules/@babylonjs/core/Shaders/iblShadowVoxelTracing.fragment.js","./node_modules/@babylonjs/core/Shaders/iblShadowsCdfx.fragment.js","./node_modules/@babylonjs/core/Shaders/iblShadowsCdfy.fragment.js","./node_modules/@babylonjs/core/Shaders/iblShadowsIcdfx.fragment.js","./node_modules/@babylonjs/core/Shaders/iblShadowsIcdfy.fragment.js","./node_modules/@babylonjs/core/Shaders/iblShadowsImportanceSamplingDebug.fragment.js","./node_modules/@babylonjs/core/Shaders/iblVoxelGrid.fragment.js","./node_modules/@babylonjs/core/Shaders/iblVoxelGrid.vertex.js","./node_modules/@babylonjs/core/Shaders/iblVoxelGrid2dArrayDebug.fragment.js","./node_modules/@babylonjs/core/Shaders/iblVoxelGrid3dDebug.fragment.js","./node_modules/@babylonjs/core/Shaders/iblVoxelSlabDebug.fragment.js","./node_modules/@babylonjs/core/Shaders/iblVoxelSlabDebug.vertex.js","./node_modules/@babylonjs/core/Shaders/imageProcessing.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/kernelBlurFragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/kernelBlurFragment2.js","./node_modules/@babylonjs/core/Shaders/kernelBlur.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/kernelBlurVertex.js","./node_modules/@babylonjs/core/Shaders/kernelBlur.vertex.js","./node_modules/@babylonjs/core/Shaders/layer.fragment.js","./node_modules/@babylonjs/core/Shaders/layer.vertex.js","./node_modules/@babylonjs/core/Shaders/lensFlare.fragment.js","./node_modules/@babylonjs/core/Shaders/lensFlare.vertex.js","./node_modules/@babylonjs/core/Shaders/line.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/lineVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/lineUboDeclaration.js","./node_modules/@babylonjs/core/Shaders/line.vertex.js","./node_modules/@babylonjs/core/Shaders/lod.fragment.js","./node_modules/@babylonjs/core/Shaders/lodCube.fragment.js","./node_modules/@babylonjs/core/Shaders/meshUVSpaceRenderer.fragment.js","./node_modules/@babylonjs/core/Shaders/meshUVSpaceRenderer.vertex.js","./node_modules/@babylonjs/core/Shaders/meshUVSpaceRendererFinaliser.fragment.js","./node_modules/@babylonjs/core/Shaders/meshUVSpaceRendererFinaliser.vertex.js","./node_modules/@babylonjs/core/Shaders/meshUVSpaceRendererMasker.fragment.js","./node_modules/@babylonjs/core/Shaders/meshUVSpaceRendererMasker.vertex.js","./node_modules/@babylonjs/core/Shaders/motionBlur.fragment.js","./node_modules/@babylonjs/core/Shaders/oitBackBlend.fragment.js","./node_modules/@babylonjs/core/Shaders/oitFinal.fragment.js","./node_modules/@babylonjs/core/Shaders/outline.fragment.js","./node_modules/@babylonjs/core/Shaders/outline.vertex.js","./node_modules/@babylonjs/core/Shaders/particles.fragment.js","./node_modules/@babylonjs/core/Shaders/particles.vertex.js","./node_modules/@babylonjs/core/Shaders/pass.fragment.js","./node_modules/@babylonjs/core/Shaders/passCube.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrFragmentDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrHelperFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrDirectLightingFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrIBLFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockReflectivity.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockAnisotropic.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockReflection.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockSheen.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockClearcoat.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockIridescence.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockSubSurface.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockNormalGeometric.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockNormalFinal.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockLightmapInit.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockGeometryInfo.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockReflectance0.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockReflectance.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockDirectLighting.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockImageProcessing.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockPrePass.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrDebug.js","./node_modules/@babylonjs/core/Shaders/pbr.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/pbr.vertex.js","./node_modules/@babylonjs/core/Shaders/picking.fragment.js","./node_modules/@babylonjs/core/Shaders/picking.vertex.js","./node_modules/@babylonjs/core/Shaders/postprocess.vertex.js","./node_modules/@babylonjs/core/Shaders/procedural.vertex.js","./node_modules/@babylonjs/core/Shaders/rgbdDecode.fragment.js","./node_modules/@babylonjs/core/Shaders/rgbdEncode.fragment.js","./node_modules/@babylonjs/core/Shaders/rsmFullGlobalIllumination.fragment.js","./node_modules/@babylonjs/core/Shaders/rsmGlobalIllumination.fragment.js","./node_modules/@babylonjs/core/Shaders/screenSpaceReflection2.fragment.js","./node_modules/@babylonjs/core/Shaders/screenSpaceReflection2Blur.fragment.js","./node_modules/@babylonjs/core/Shaders/screenSpaceReflection2BlurCombiner.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/bayerDitherFunctions.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js","./node_modules/@babylonjs/core/Shaders/shadowMap.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/sceneVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/meshVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowMapVertexDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowMapUboDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowMapVertexNormalBias.js","./node_modules/@babylonjs/core/Shaders/shadowMap.vertex.js","./node_modules/@babylonjs/core/Shaders/sharpen.fragment.js","./node_modules/@babylonjs/core/Shaders/ShadersInclude/imageProcessingCompatibility.js","./node_modules/@babylonjs/core/Shaders/sprites.fragment.js","./node_modules/@babylonjs/core/Shaders/sprites.vertex.js","./node_modules/@babylonjs/core/Shaders/ssao2.fragment.js","./node_modules/@babylonjs/core/Shaders/ssaoCombine.fragment.js","./node_modules/@babylonjs/core/Shaders/taa.fragment.js","./node_modules/@babylonjs/core/Shaders/tonemap.fragment.js","./node_modules/@babylonjs/core/Shaders/vrDistortionCorrection.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/bonesDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/bonesVertex.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/bumpFragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/bumpFragmentFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/bumpVertex.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/bumpVertexDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/clipPlaneFragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/clipPlaneVertex.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/decalFragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/depthPrePass.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/fogFragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/fogFragmentDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/fogVertex.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/fogVertexDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/fresnelFunction.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/harmonicsFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/helperFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/importanceSampling.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/instancesDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/instancesVertex.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/lightFragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/lightUboDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/logDepthDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/logDepthFragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/logDepthVertex.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/mainUVVaryingDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/meshUboDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/morphTargetsVertex.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/oitDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/oitFragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/packingFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/prePassDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/prePassVertex.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/reflectionFunction.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/samplerFragmentDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/samplerVertexDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/samplerVertexImplementation.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/screenSpaceRayTrace.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/shadowMapFragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/shadowsFragmentFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/shadowsVertex.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/uvAttributeDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/uvVariableDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/vertexColorMixing.js","./node_modules/@babylonjs/core/ShadersWGSL/anaglyph.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/background.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/background.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/bilateralBlur.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/bilateralBlurQuality.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/blackAndWhite.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/bloomMerge.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/boundingBoxRenderer.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/boundingBoxRenderer.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/chromaticAberration.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/circleOfConfusion.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/color.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/color.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/colorCorrection.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/convolution.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/copyTexture3DLayerToTexture.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/copyTextureToTexture.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/default.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/lightVxFragmentDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/default.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/depth.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/depth.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/depthBoxBlur.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/depthOfFieldMerge.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/displayPass.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/extractHighlights.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/filter.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/fluidRenderingBilateralBlur.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/fluidRenderingParticleDepth.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/fluidRenderingParticleDepth.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/fluidRenderingParticleDiffuse.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/fluidRenderingParticleThickness.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/fluidRenderingParticleThickness.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/fluidRenderingRender.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/fluidRenderingStandardBlur.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/fxaa.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/fxaa.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/gaussianSplattingFragmentDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/gaussianSplatting.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/gaussianSplatting.js","./node_modules/@babylonjs/core/ShadersWGSL/gaussianSplatting.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/geometry.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/geometry.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/glowBlurPostProcess.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/glowMapGeneration.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/glowMapGeneration.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/glowMapMerge.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/glowMapMerge.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/grain.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/hdrFiltering.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/hdrFiltering.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/highlights.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblCombineVoxelGrids.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblGenerateVoxelMip.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblShadowAccumulation.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblShadowDebug.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblShadowGBufferDebug.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblShadowSpatialBlur.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblShadowVoxelTracing.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblShadowsCdfx.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblShadowsCdfy.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblShadowsIcdfx.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblShadowsIcdfy.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblShadowsImportanceSamplingDebug.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblVoxelGrid.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblVoxelGrid.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/iblVoxelGrid2dArrayDebug.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblVoxelGrid3dDebug.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblVoxelSlabDebug.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/iblVoxelSlabDebug.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/imageProcessing.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/kernelBlurFragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/kernelBlurFragment2.js","./node_modules/@babylonjs/core/ShadersWGSL/kernelBlur.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/kernelBlurVertex.js","./node_modules/@babylonjs/core/ShadersWGSL/kernelBlur.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/layer.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/layer.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/lensFlare.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/lensFlare.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/line.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/line.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/lod.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/lodCube.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/meshUVSpaceRenderer.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/meshUVSpaceRenderer.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/meshUVSpaceRendererFinaliser.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/meshUVSpaceRendererFinaliser.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/meshUVSpaceRendererMasker.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/meshUVSpaceRendererMasker.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/motionBlur.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/oitBackBlend.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/oitFinal.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/outline.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/outline.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/particles.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/particles.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/pass.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/passCube.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrFragmentExtraDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/samplerFragmentAlternateDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/subSurfaceScatteringFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockReflection.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockSheen.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockNormalGeometric.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/pbrDebug.js","./node_modules/@babylonjs/core/ShadersWGSL/pbr.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/pbr.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/picking.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/picking.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/postprocess.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/procedural.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/rgbdDecode.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/rgbdEncode.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/rsmFullGlobalIllumination.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/rsmGlobalIllumination.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/screenSpaceReflection2.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/screenSpaceReflection2Blur.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/screenSpaceReflection2BlurCombiner.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/bayerDitherFunctions.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/shadowMap.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.js","./node_modules/@babylonjs/core/ShadersWGSL/shadowMap.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/sharpen.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ShadersInclude/imageProcessingCompatibility.js","./node_modules/@babylonjs/core/ShadersWGSL/sprites.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/sprites.vertex.js","./node_modules/@babylonjs/core/ShadersWGSL/ssao2.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/ssaoCombine.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/taa.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/tonemap.fragment.js","./node_modules/@babylonjs/core/ShadersWGSL/vrDistortionCorrection.fragment.js","./node_modules/@babylonjs/core/Sprites/thinSprite.js","./node_modules/@babylonjs/core/Sprites/sprite.js","./node_modules/@babylonjs/core/Sprites/spriteRenderer.js","./node_modules/@babylonjs/core/Sprites/spriteManager.js","./node_modules/@babylonjs/core/Sprites/spriteSceneComponent.js","./node_modules/@babylonjs/core/States/alphaCullingState.js","./node_modules/@babylonjs/core/States/depthCullingState.js","./node_modules/@babylonjs/core/States/stencilState.js","./node_modules/@babylonjs/core/States/stencilStateComposer.js","./node_modules/@babylonjs/core/XR/features/WebXRAbstractFeature.js","./node_modules/@babylonjs/core/XR/features/WebXRControllerPointerSelection.js","./node_modules/@babylonjs/core/XR/features/WebXRControllerTeleportation.js","./node_modules/@babylonjs/core/XR/features/WebXRHandTracking.js","./node_modules/@babylonjs/core/XR/features/WebXRNearInteraction.js","./node_modules/@babylonjs/core/XR/motionController/webXRAbstractMotionController.js","./node_modules/@babylonjs/core/XR/motionController/webXRControllerComponent.js","./node_modules/@babylonjs/core/XR/motionController/webXRGenericMotionController.js","./node_modules/@babylonjs/core/XR/motionController/webXRMotionControllerManager.js","./node_modules/@babylonjs/core/XR/motionController/webXRProfiledMotionController.js","./node_modules/@babylonjs/core/XR/native/nativeXRRenderTarget.js","./node_modules/@babylonjs/core/XR/webXRCamera.js","./node_modules/@babylonjs/core/XR/webXRDefaultExperience.js","./node_modules/@babylonjs/core/XR/webXREnterExitUI.js","./node_modules/@babylonjs/core/XR/webXRExperienceHelper.js","./node_modules/@babylonjs/core/XR/webXRFeaturesManager.js","./node_modules/@babylonjs/core/XR/webXRInput.js","./node_modules/@babylonjs/core/XR/webXRInputSource.js","./node_modules/@babylonjs/core/XR/webXRLayerWrapper.js","./node_modules/@babylonjs/core/XR/webXRManagedOutputCanvas.js","./node_modules/@babylonjs/core/XR/webXRRenderTargetTextureProvider.js","./node_modules/@babylonjs/core/XR/webXRSessionManager.js","./node_modules/@babylonjs/core/XR/webXRWebGLLayer.js","./node_modules/@babylonjs/core/assetContainer.js","./node_modules/@babylonjs/core/import.helper.js","./node_modules/@babylonjs/core/node.js","./node_modules/@babylonjs/core/Inputs/scene.inputManager.js","./node_modules/@babylonjs/core/Inputs/pointerPickingConfiguration.js","./node_modules/@babylonjs/core/scene.js","./node_modules/@babylonjs/core/sceneComponent.js","./node_modules/@babylonjs/core/tslib.es6.js","./node_modules/@babylonjs/gui/2D/advancedDynamicTexture.js","./node_modules/@babylonjs/gui/2D/controls/container.js","./node_modules/@babylonjs/gui/2D/controls/control.js","./node_modules/@babylonjs/gui/2D/controls/grid.js","./node_modules/@babylonjs/gui/2D/controls/image.js","./node_modules/@babylonjs/gui/2D/controls/button.js","./node_modules/@babylonjs/gui/2D/controls/checkbox.js","./node_modules/@babylonjs/gui/2D/controls/textWrapper.js","./node_modules/@babylonjs/gui/2D/controls/inputText.js","./node_modules/@babylonjs/gui/2D/controls/colorpicker.js","./node_modules/@babylonjs/gui/2D/controls/ellipse.js","./node_modules/@babylonjs/gui/2D/controls/focusableButton.js","./node_modules/@babylonjs/gui/2D/controls/inputTextArea.js","./node_modules/@babylonjs/gui/2D/controls/inputPassword.js","./node_modules/@babylonjs/gui/2D/controls/line.js","./node_modules/@babylonjs/gui/2D/controls/multiLine.js","./node_modules/@babylonjs/gui/2D/controls/radioButton.js","./node_modules/@babylonjs/gui/2D/controls/sliders/baseSlider.js","./node_modules/@babylonjs/gui/2D/controls/sliders/slider.js","./node_modules/@babylonjs/gui/2D/controls/scrollViewers/scrollViewerWindow.js","./node_modules/@babylonjs/gui/2D/controls/sliders/scrollBar.js","./node_modules/@babylonjs/gui/2D/controls/sliders/imageScrollBar.js","./node_modules/@babylonjs/gui/2D/controls/scrollViewers/scrollViewer.js","./node_modules/@babylonjs/gui/2D/controls/toggleButton.js","./node_modules/@babylonjs/gui/2D/controls/virtualKeyboard.js","./node_modules/@babylonjs/gui/2D/controls/displayGrid.js","./node_modules/@babylonjs/gui/2D/controls/sliders/imageBasedSlider.js","./node_modules/@babylonjs/gui/2D/controls/statics.js","./node_modules/@babylonjs/gui/2D/controls/gradient/BaseGradient.js","./node_modules/@babylonjs/gui/2D/controls/gradient/LinearGradient.js","./node_modules/@babylonjs/gui/2D/controls/gradient/RadialGradient.js","./node_modules/@babylonjs/gui/2D/controls/rectangle.js","./node_modules/@babylonjs/gui/2D/controls/stackPanel.js","./node_modules/@babylonjs/gui/2D/controls/textBlock.js","./node_modules/@babylonjs/gui/2D/math2D.js","./node_modules/@babylonjs/gui/2D/measure.js","./node_modules/@babylonjs/gui/2D/multiLinePoint.js","./node_modules/@babylonjs/gui/2D/style.js","./node_modules/@babylonjs/gui/2D/valueAndUnit.js","./node_modules/@babylonjs/loaders/glTF/glTFValidation.js","./node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.js","./node_modules/@babylonjs/loaders/glTF/glTFFileLoader.js","./node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.js","./node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.js","./node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.js","./node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.js","./node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.js","./node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.js","./node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.js","./node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/interactivityUtils.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/interactivityFunctions.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/interactivityPathToObjectConverter.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.js","./node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.js","./node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.js","./node_modules/@babylonjs/loaders/OBJ/solidParser.js","./node_modules/@babylonjs/loaders/OBJ/objFileLoader.js","./node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.js","./node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.js","./node_modules/@babylonjs/loaders/STL/stlFileLoader.js","./node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.js","./node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.js","./node_modules/@ngrx/component-store/fesm2022/ngrx-component-store.mjs","./node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","./node_modules/rxjs/dist/esm/internal/Notification.js","./node_modules/rxjs/dist/esm/internal/operators/groupBy.js","./node_modules/rxjs/dist/esm/internal/operators/exhaustMap.js","./node_modules/@ngrx/effects/fesm2022/ngrx-effects.mjs","./node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","./node_modules/rxjs/dist/esm/internal/operators/materialize.js","./node_modules/rxjs/dist/esm/internal/operators/dematerialize.js","./node_modules/@ngrx/operators/fesm2022/ngrx-operators.mjs","./node_modules/@ngrx/store/fesm2022/ngrx-store.mjs","./node_modules/rxjs/dist/esm/internal/operators/pluck.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/CanvasOverlayMargins.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Util/FetchWithRetry.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/RequestBuilder.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/PersonalisedMannequin/Measurement.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/VirtualTryOn3D/VirtualTryOn3DResponse.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/PersonalisedMannequin/MannequinRequestReturnFile.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/ComputeServer.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/Conversion2D/PersonalisedMannequinConversionResponse.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/Layouts/SlotLayout/SlotType.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/MeshData.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/SizeRecommendation/GarmentSizesRequest.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/SizeRecommendation/SizeRecommendationRequest.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/VirtualTryOn2D/VirtualTryOn2DResponse.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Animation.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/AssetFactory2D.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/AssetFactory3D.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/AssetFactoryFactory.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/SubAsset.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/AssetHelper.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/AssetType.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/CommonAssetKey.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/MultiFileContainer.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/ContainerAwareAsset.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/Exceptions/AssetComponentDownloadException.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/LocalAsset.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/PartlyReplacedAsset.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Asset/StaticAsset.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Rendering/MaterialPlugins/Avatar2DPluginMaterial.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Avatar2D.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Avatar3D.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Rendering/MaterialPlugins/Garment2DPluginMaterial.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Garment2D.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Rendering/MaterialPlugins/GrayScalePluginMaterial.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Garment3D.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/GarmentGroup.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Generic2DMaterialData.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/IAccessory.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/IAnimation.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/IAvatar.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/IGarment.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/JSONMaterial.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/JSONScene.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Data/Scene3D.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Events/index.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Features/VirtualDressingRoom/IVirtualDressingRoom.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/Layouts/SlotLayout/ScalingMode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/Layouts/Size.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/Layouts/AbstractLayout.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/Layouts/SlotLayout/SlotLayout.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/Layouts/SlotLayout/slots/Slot.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/Layouts/SlotLayout/slots/QuadSlot.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/Layouts/SlotLayout/slots/TryOnSlot.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/SizeRecommendation/SizeVisualisationRequestSlot.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/ComputeServer/Data/Layouts/SlotLayout/Rectangle.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Features/VirtualDressingRoom/VirtualDressingRoom2D.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/PictofitWebHTMLElement.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/PictofitWebSDK.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Rendering/Camera/RRArcRotateCamera.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Rendering/RenderHelper.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/IConfigParser.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/AbstractParserNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/AvatarPlaceholderNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/BaseNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/BlobNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/BooleanNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/Color3Node.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/CubeTextureNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/MaterialNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/MaterialRefNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/BackgroundMaterialNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/MeshNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/MeshRefNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/NumberNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/PBRMaterialNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/PBRMetallicRoughnessMaterialNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/SceneMetadata.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/Color4Node.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/BoxPrefabNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/SpherePrefabNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/CylinderPrefabNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/AutoRotationBehaviourNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Rendering/Camera/RRAutoRotationBehavior.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/RRAutoRotationBehaviorNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/ArcRotateCameraNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/ShadowGeneratorNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/LightNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/DirectionalLightNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/PointLightNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/SpotLightNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/EnvironmentHelperNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/PlanePrefabNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/FreeCameraNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/InstancedMeshNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/HemisphericLightNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/TransformRefNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/PlaneRotationGizmoNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/HDRCubeTextureNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/ImageProcessingConfigurationNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/SceneNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/StringArrayNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/ShaderMaterialNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/StandardMaterialNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/StringNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/TargetCameraNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/TextureNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/TransformationNode.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/Vector3Node.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Loaders/PLYLoader.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V1/V1Parser.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/Parser/V2/V2Parser.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/SceneConfiguration/SceneLoader.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Util/AverageTimer.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Util/ClientSystemInfo.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Util/Util.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Util/CameraViewMatrixChangedObserver.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/WebViewerDirtyMonitor.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/Rendering/PostProcessingHandler.js","./node_modules/@babylonjs/gui/2D/FrameGraph/guiTask.js","./node_modules/@babylonjs/gui/2D/FrameGraph/renderGraphGUIBlock.js","./node_modules/@babylonjs/gui/3D/materials/fluent/shaders/fluent.vertex.js","./node_modules/@babylonjs/gui/3D/materials/fluent/shaders/fluent.fragment.js","./node_modules/@babylonjs/gui/3D/materials/fluent/fluentMaterial.js","./node_modules/@babylonjs/gui/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js","./node_modules/@babylonjs/gui/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js","./node_modules/@babylonjs/gui/3D/materials/fluentBackplate/fluentBackplateMaterial.js","./node_modules/@babylonjs/gui/3D/materials/fluentButton/shaders/fluentButton.fragment.js","./node_modules/@babylonjs/gui/3D/materials/fluentButton/shaders/fluentButton.vertex.js","./node_modules/@babylonjs/gui/3D/materials/fluentButton/fluentButtonMaterial.js","./node_modules/@babylonjs/gui/3D/materials/handle/shaders/handle.vertex.js","./node_modules/@babylonjs/gui/3D/materials/handle/shaders/handle.fragment.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/mrdlSliderBarMaterial.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/mrdlSliderThumbMaterial.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/mrdlBackplateMaterial.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/shaders/mrdlBackglow.fragment.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/shaders/mrdlBackglow.vertex.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/mrdlBackglowMaterial.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/shaders/mrdlFrontplate.fragment.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/shaders/mrdlFrontplate.vertex.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/mrdlFrontplateMaterial.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/shaders/mrdlInnerquad.fragment.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/shaders/mrdlInnerquad.vertex.js","./node_modules/@babylonjs/gui/3D/materials/mrdl/mrdlInnerquadMaterial.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/WebViewerPerformanceMonitor.js","./node_modules/@reactivereality/pictofit-web-sdk/dist/WebViewer.js","./node_modules/ngx-bootstrap/alert/fesm2022/ngx-bootstrap-alert.mjs","./node_modules/ngx-bootstrap/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs","./node_modules/ngx-bootstrap/pagination/fesm2022/ngx-bootstrap-pagination.mjs","./node_modules/ngx-bootstrap/positioning/fesm2022/ngx-bootstrap-positioning.mjs","./node_modules/ngx-bootstrap/tooltip/fesm2022/ngx-bootstrap-tooltip.mjs","./node_modules/ngx-bootstrap/utils/fesm2022/ngx-bootstrap-utils.mjs","./node_modules/ngx-skeleton-loader/fesm2022/ngx-skeleton-loader.mjs","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","./node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["import { User } from 'oidc-client';\nimport { Observable } from 'rxjs';\n\nexport abstract class IAuthService {\n abstract loginChanged$: Observable;\n abstract loggedUser$: Observable;\n abstract logOutClicked$: Observable;\n\n abstract getToken(): string | undefined;\n abstract getToken$(): Observable;\n abstract isAuthenticated(): Promise;\n abstract login(): Promise;\n abstract logout(): Promise;\n abstract logOutClicked(): void;\n abstract signinRedirectCallback(): Promise;\n abstract finishLogout(): Promise;\n\n // User Features\n abstract canApprove$: Observable;\n abstract canReject$: Observable;\n abstract isCustomer$: Observable;\n abstract isEmployee$: Observable;\n abstract isCollectionCreator$: Observable;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { IAuthService } from '../../api';\n\n@Component({\n selector: 'rr-signin-redirect-callback',\n template: '
',\n})\nexport class SigninRedirectCallbackComponent implements OnInit {\n constructor(private _authService: IAuthService, private _router: Router) {}\n\n async ngOnInit(): Promise {\n this._authService.signinRedirectCallback().then(() => {\n this._router.navigate(['/'], { replaceUrl: true });\n });\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { IAuthService } from '../../api';\n\n@Component({\n selector: 'rr-signout-redirect-callback',\n template: '
',\n})\nexport class SignoutRedirectCallbackComponent implements OnInit {\n constructor(private _authService: IAuthService, private _router: Router) {}\n ngOnInit(): void {\n this._authService.finishLogout().then(() => {\n this._router.navigate(['/'], { replaceUrl: true });\n });\n }\n}\n","
\n
\n
\n
\n
\n
\n
\n

(400)

\n

Bad Request

\n

\n The server cannot or will not process the request due to an\n apparent client error\n

\n
\n \n
\n

(401)

\n

Unauthorized

\n \n \n \n
\n Login\n \n
\n
\n
\n

You must be logged in to continue.

\n
\n
\n
\n

(403)

\n

Forbidden

\n

Your are not allowed to access this information.

\n \n
\n
\n

(404)

\n

Not Found

\n

The requested resource could not be found.

\n
\n
\n

(500)

\n

Internal Server Error

\n

Server Error: Please contact the administrator

\n
\n
\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { IAuthService } from '../../api';\n\n@Component({\n selector: 'rr-unauthorized',\n templateUrl: './unauthorized.component.html',\n styleUrls: ['./unauthorized.component.scss'],\n})\nexport class UnauthorizedComponent implements OnInit {\n public errorCode: string;\n\n constructor(\n private _authService: IAuthService,\n private route: ActivatedRoute,\n private location: Location,\n ) {}\n\n ngOnInit() {\n this.route.fragment.subscribe((fragment: string) => {\n this.errorCode = fragment;\n });\n }\n\n public login(): void {\n this._authService.login();\n }\n\n public clickBack(): void {\n this.location.back();\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IAuthService } from '../api';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n constructor(\n private _authService: IAuthService,\n private _logger: ILogger,\n private _injector: Injector,\n ) {}\n\n intercept(\n req: HttpRequest,\n next: HttpHandler,\n ): Observable> {\n let requestToForward = req;\n\n if (this._authService === undefined) {\n this._authService = this._injector.get(IAuthService);\n }\n if (this._authService !== undefined) {\n const token = this._authService.getToken();\n if (token) {\n const tokenValue = 'Bearer ' + token;\n if (req.url.includes('pictofit.com')) {\n //TODO: Temporary solution to not set auth header for calling the MS blob storage, auth interceptor will not be required later on\n requestToForward = req.clone({\n setHeaders: { Authorization: tokenValue },\n });\n }\n }\n } else {\n this._logger.debug('AuthService undefined: NO auth header!');\n }\n\n return next.handle(requestToForward);\n }\n}\n","import { ComponentStore } from '@ngrx/component-store';\nimport { Configuration, UsersApi } from '@reactivereality/cs-api-sdk';\nimport { User } from 'oidc-client';\nimport { IDiscoveryConfiguration } from '../../data';\n\ninterface IAuthState {\n currentUser?: User;\n features?: {\n canApprove: boolean;\n canReject: boolean;\n isCustomer: boolean;\n isEmployee: boolean;\n isCollectionCreator: boolean;\n };\n}\n\nconst mapFeatures = (features: string[]): IAuthState['features'] => {\n return {\n canApprove: features.includes('PICTOFITCMS_APPROVE_REQUEST'),\n canReject: features.includes('PICTOFITCMS_REJECT_REQUEST'),\n isCustomer: features.includes('RR_CUSTOMER'),\n isEmployee: features.includes('RR_EMPLOYEE'),\n isCollectionCreator: features.includes('RR_COLLECTION_CREATOR'),\n };\n};\n\nexport class AuthState extends ComponentStore {\n private cfg: IDiscoveryConfiguration = undefined;\n\n constructor() {\n super({});\n\n this.select((s) => s.currentUser).subscribe((u) => {\n if (!u) {\n // in case we remove the current user, we remove all features\n this.setFeatures(undefined);\n } else {\n // we need to get the user\n const config = new Configuration({\n basePath: this.cfg.apiConfiguration.baseApiUrl.replace(\n `/${this.cfg.appConfiguration.apiVersion}`,\n '',\n ),\n apiKey: `Bearer ${u.access_token}`,\n });\n\n const usersApiSdk = new UsersApi(config);\n\n usersApiSdk.vversionUsersMeGet('1.5').then((resp) => {\n this.setFeatures(mapFeatures(resp.data.featureFlags));\n });\n }\n });\n }\n\n public setDiscoveryConfiguration(cfg: IDiscoveryConfiguration) {\n this.cfg = cfg;\n }\n\n private readonly setFeatures = this.updater(\n (state, features: IAuthState['features'] | undefined) => {\n return {\n ...state,\n features,\n };\n },\n );\n\n public readonly access_token = (): string | undefined => {\n return this.get().currentUser?.access_token ?? undefined;\n };\n\n public readonly access_token$ = this.select(\n (s) => s.currentUser?.access_token,\n );\n\n public readonly user = (): User | undefined => {\n return this.get().currentUser ?? undefined;\n };\n\n public readonly user$ = this.select((s) => s.currentUser);\n\n public readonly setUser = this.updater(\n (state, currentUser: User | undefined) => {\n return {\n ...state,\n currentUser,\n };\n },\n );\n}\n","import { Injectable } from '@angular/core';\nimport * as Oidc from 'oidc-client';\nimport { User, UserManager, UserManagerSettings } from 'oidc-client';\nimport { Observable, Subject, filter, map, take } from 'rxjs';\nimport { IDiscoveryConfiguration } from 'projects/content-service-cms/src/app/data';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { IAuthService } from '../api';\nimport * as _ from 'lodash';\nimport { AuthState } from './auth-state';\nimport { NgDiscoveryService } from '../../core/services/ng-discovery.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService implements IAuthService {\n public loginChanged$: Observable;\n public loggedUser$: Observable;\n private _logOutClicked$: Subject;\n public logOutClicked$: Observable;\n private state: AuthState;\n\n private _userManager: UserManager;\n private _authSettings: UserManagerSettings;\n\n constructor(\n private _discovery: NgDiscoveryService,\n private _logger: ILogger,\n ) {\n this._logger.info('Creating auth service ...');\n\n this.state = new AuthState();\n this.loggedUser$ = this.state.user$.pipe(\n map((u) => {\n if (u && !u.profile.name) {\n u.profile.name = 'New User';\n }\n\n return u;\n }),\n );\n this._logOutClicked$ = new Subject();\n this.logOutClicked$ = this._logOutClicked$.asObservable();\n this.loginChanged$ = this.state.user$.pipe(map((u) => this.isUserValid(u)));\n\n this.state.setDiscoveryConfiguration(this._discovery.config);\n this.initAuthentication(this._discovery.config);\n\n this.canApprove$ = this.state\n .select((s) => s.features?.canApprove)\n .pipe(filter((s) => s !== undefined));\n this.canReject$ = this.state\n .select((s) => s.features?.canReject)\n .pipe(filter((s) => s !== undefined));\n this.isCustomer$ = this.state\n .select((s) => s.features?.isCustomer)\n .pipe(filter((s) => s !== undefined));\n this.isEmployee$ = this.state\n .select((s) => s.features?.isEmployee)\n .pipe(filter((s) => s !== undefined));\n this.isCollectionCreator$ = this.state.select(\n (s) => s.features?.isCollectionCreator,\n );\n }\n\n public canApprove$: Observable;\n public canReject$: Observable;\n public isCustomer$: Observable;\n public isEmployee$: Observable;\n public isCollectionCreator$: Observable;\n\n public getToken(): string | undefined {\n return this.state.access_token();\n }\n\n public getToken$(): Observable {\n return this.state.access_token$;\n }\n public logOutClicked() {\n this._logOutClicked$.next();\n }\n public async isAuthenticated(): Promise {\n if (!this._userManager) {\n this._logger.error('The user is not authenticated.');\n }\n return this.fetchUser().then((user) => {\n if (!_.isEqual(this.state.user, user)) {\n this.setCurrentUser(user);\n }\n return this.isUserValid(user);\n });\n }\n\n public async login(): Promise {\n if (!this._userManager) {\n this._logger.error('The user is not authenticated.');\n }\n this._userManager.signinRedirect();\n }\n\n public async signinRedirectCallback(): Promise {\n if (!this._userManager) {\n this._logger.error('The user is not authenticated.');\n }\n\n return this._userManager\n .signinRedirectCallback()\n .then((user) => {\n this._logger.info('signinRedirectCallback done');\n window.history.replaceState(\n {},\n window.document.title,\n window.location.origin + window.location.pathname,\n );\n this.setCurrentUser(user);\n return user;\n })\n .catch((err) => {\n this._logger.error('ERROR Signin Redirect Callback: ', err);\n return null;\n });\n }\n\n public async logout(): Promise {\n if (!this._userManager) {\n this._logger.error(\n 'No discovery document. Need to retrieve discovery document.',\n );\n }\n\n this.state.user$.pipe(take(1)).subscribe((user) => {\n this._userManager.signoutRedirect();\n\n window.location.href = new URL(\n `/oidc/logout?id_token_hint=${user.id_token}&post_logout_redirect_uri=${this._discovery.config.apiConfiguration.signOutCallback}`,\n this._discovery.config.apiConfiguration.baseAuthServiceUrl,\n ).toString();\n });\n }\n\n public async finishLogout(): Promise {\n if (!this._userManager) {\n this._logger.error(\n 'No discovery document. Need to retrieve discovery document.',\n );\n }\n\n this.setCurrentUser(undefined);\n await this._userManager.signoutRedirectCallback();\n }\n\n public fetchUser(): Promise {\n return this._userManager.getUser();\n }\n\n private async signinSilent(): Promise {\n if (!this._userManager) {\n this._logger.error(\n 'No discovery document. Need to retrieve discovery document.',\n );\n }\n return await this._userManager\n .signinSilent()\n .then((user: User) => {\n this.setCurrentUser(user);\n })\n .catch((error) => {\n this._logger.error('Silent signin error: ', error);\n });\n }\n\n private isUserValid(user: User): boolean {\n return !!user && !user.expired;\n }\n\n private setCurrentUser(user: User | undefined | null): void {\n if (user) {\n this.state.setUser(user);\n } else {\n this.state.setUser(undefined);\n }\n }\n\n private async initAuthentication(\n cfg: IDiscoveryConfiguration,\n ): Promise {\n this._authSettings = {\n authority: cfg.apiConfiguration.baseAuthServiceUrl,\n client_id: cfg.appConfiguration.clientId,\n redirect_uri: cfg.apiConfiguration.signInCallback,\n scope: [cfg.apiConfiguration.authRequestScopes, 'email'].join(' '),\n response_type: cfg.appConfiguration.responseType,\n post_logout_redirect_uri: cfg.apiConfiguration.signOutCallback,\n loadUserInfo: true,\n userStore: new Oidc.WebStorageStateStore({ store: window.localStorage }),\n monitorSession: false,\n extraQueryParams: {\n audience: cfg.apiConfiguration.authRequestAudience,\n },\n };\n\n this._userManager = new UserManager(this._authSettings);\n\n this.setCurrentUser(await this._userManager.getUser());\n\n this._userManager.events.addAccessTokenExpiring(() => {\n this._logger.warn('Access Token is about to expire');\n this.signinSilent();\n });\n\n this._userManager.events.addAccessTokenExpired(() => {\n this._logger.warn('Access Token has expired');\n this.signinSilent().catch(() => {\n this.logout();\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate, Router } from '@angular/router';\nimport { IUserService } from 'projects/content-service-cms/src/app/data';\nimport { firstValueFrom } from 'rxjs';\nimport { NgStorageManagerService } from '../../core/services/ng-storage-manager.service';\nimport { UserDataPermissionService } from '../../core/services/userdata-permission.service';\nimport { ILogger } from '../../logging';\nimport { IAuthService } from '../api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n public userAuthenticated: boolean = false;\n\n private userGrantedPermission: boolean = false;\n\n constructor(\n private _userService: IUserService,\n private _authService: IAuthService,\n private _storageService: NgStorageManagerService,\n private router: Router,\n private logger: ILogger,\n private _userdata: UserDataPermissionService,\n ) {\n this._userdata.granted$.subscribe((granted) => {\n this.userGrantedPermission = granted.includes('Core');\n });\n }\n\n canActivate(): Promise {\n return this.checkIsUserAuthenticated();\n }\n\n private async checkIsUserAuthenticated(): Promise {\n if (!this.userGrantedPermission) return false;\n\n const res = await this._authService.isAuthenticated();\n this._userService.me.subscribe((current) => {\n if (current != undefined)\n // this._storageService.setCurrentUserID(current.id.toString());\n this._storageService.setItem(\n 'currentUserId',\n current.id ?? '',\n 'local',\n );\n });\n\n if (!res) {\n return this.redirectToUnauthorized();\n }\n\n const isCustomer = await firstValueFrom(this._authService.isCustomer$);\n const isEmployee = await firstValueFrom(this._authService.isEmployee$);\n\n this.logger.info(`Features`, {\n isCustomer,\n isEmployee,\n });\n\n if (isCustomer || isEmployee) {\n return true;\n }\n this.router.navigate(['/patient']);\n return false;\n }\n\n private redirectToUnauthorized(): boolean {\n this._authService.login();\n return false;\n }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { Provider } from '@angular/core';\nimport { IAuthService } from './api';\nimport { SigninRedirectCallbackComponent } from './components/signin-redirect-callback/signin-redirect-callback.component';\nimport { SignoutRedirectCallbackComponent } from './components/signout-redirect-callback/signout-redirect-callback.component';\nimport { UnauthorizedComponent } from './components/unauthorized/unauthorized.component';\nimport { AuthInterceptor } from './interceptors/auth.interceptor';\nimport { NoPermissionPageComponent } from './pages/no-permission-page/no-permission-page.component';\nimport { PatientPageComponent } from './pages/patient/patient.page.component';\nimport { AuthService } from './services/auth.service';\n\nexport const AuthComponents = [\n SigninRedirectCallbackComponent,\n SignoutRedirectCallbackComponent,\n UnauthorizedComponent,\n PatientPageComponent,\n NoPermissionPageComponent,\n];\n\nexport const AuthRoutes = [\n { path: 'signin-callback', component: SigninRedirectCallbackComponent },\n { path: 'signout-callback', component: SignoutRedirectCallbackComponent },\n {\n path: 'unauthorized',\n component: UnauthorizedComponent,\n data: { breadcrumb: 'Unauthorized' },\n },\n { path: '**', component: UnauthorizedComponent, data: { errorCode: '404' } },\n];\n\nexport const AuthProviders: Provider[] = [\n {\n provide: IAuthService,\n useExisting: AuthService,\n },\n AuthService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true,\n },\n];\n\nexport { IAuthService } from './api';\nexport { AuthGuard } from './guards/auth.guard';\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-no-permission-page',\n templateUrl: './no-permission-page.component.html',\n styleUrls: ['./no-permission-page.component.scss'],\n})\nexport class NoPermissionPageComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n \n

No permission

\n You have no permission for this request.\n Here navigate to to overview page.\n
\n If you have any questions, please feel free to reach out to\n support@reactivereality.com\n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { PageContextService } from 'projects/web-ui-component-library/src';\nimport {\n PRODUCT_TYPE,\n REQUEST_STATE_CMS,\n} from 'projects/content-service-cms/src/app/data';\n\nexport interface RequestRecord {\n id: string;\n name: string;\n sku: string;\n createdAt: number;\n state: REQUEST_STATE_CMS;\n productType: PRODUCT_TYPE;\n tags: { colour: string; name: string; value: string | null }[];\n thumbnail?: string;\n linked?: RequestRecord[];\n}\nimport { ILogger } from '../../../logging';\n\n@Component({\n selector: 'rr-patient',\n templateUrl: './patient.page.component.html',\n styleUrls: ['./patient.page.component.scss'],\n})\nexport class PatientPageComponent implements OnInit, OnDestroy {\n constructor(\n private _pageContextService: PageContextService,\n private logger: ILogger,\n ) {\n this.logger.info(`Loading patients page`);\n this._pageContextService.setPageParent().setPageTitle('');\n }\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {}\n}\n","\n","import { Component, Input } from '@angular/core';\nimport { TableRowComponent } from 'projects/web-ui-component-library/src';\nimport { CollectionRecord } from '../collection-list.page.component';\nimport { Subject, firstValueFrom } from 'rxjs';\nimport {\n CollectionScreenStore,\n ScreenMode,\n} from 'projects/content-service-cms/src/app/collection-screen/collection-screen.state';\nimport {\n ICentralAssetPlatformService,\n IRequestService,\n} from 'projects/content-service-cms/src/app/data/api';\nimport { ICustomerService } from 'projects/content-service-cms/src/app/customer';\nimport { Router } from '@angular/router';\nimport { PreviewService } from '../../../services/collection-preview.service';\nimport { AlertService } from 'projects/content-service-cms/src/app/core/services/alert.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'tbody.app-collection-list-row',\n standalone: true,\n imports: [],\n templateUrl: './collection-list-row.component.html',\n styleUrl: './collection-list-row.component.scss',\n})\nexport class CollectionListRowComponent\n implements TableRowComponent\n{\n notImplemnted($event) {\n $event.stopPropagation();\n this._alertService.showErrorAlert('Not Implemented yet');\n }\n\n @Input() record: CollectionRecord;\n @Input() loaded: Subject;\n\n async editCollection(collection: CollectionRecord) {\n const currentCustomer = (\n await firstValueFrom(this._customerService.currentCustomer$)\n ).id;\n //this._collectionScreenStore.setLoading(true);\n const collectionData = (\n await this._capService.getAllCollections(currentCustomer)\n ).filter((c) => c.externalReferences.includes(collection.references[0]))[0];\n\n if (collectionData) {\n for (const a of collectionData.collection.avatars) {\n if (a.id === undefined) {\n const ids = await this._capService.getId(\n a.organizationId,\n a.reference,\n );\n a.id = ids[0];\n }\n }\n for (const a of collectionData.collection.scenes) {\n if (a.id === undefined) {\n const ids = await this._capService.getId(\n a.organizationId,\n a.reference,\n );\n a.id = ids[0];\n }\n }\n for (const a of collectionData.collection.garments) {\n if (a.id === undefined) {\n const ids = await this._capService.getId(\n a.organizationId,\n a.reference,\n );\n a.id = ids[0];\n }\n }\n await this._store.setCollection(\n collectionData.id,\n collectionData.collection,\n );\n this._collectionScreenStore.setMode(ScreenMode.EDIT);\n this._router.navigate(['collections', collection.id]);\n }\n }\n\n async onPreviewCollection($event: Event, collection: CollectionRecord) {\n $event.stopPropagation();\n const currentCustomer = (\n await firstValueFrom(this._customerService.currentCustomer$)\n ).id;\n // const collectionData = await this._capService.getCollection(\n // currentCustomer,\n // collection.references[0],\n // );\n const collectionData = (\n await this._capService.getAllCollections(currentCustomer)\n ).filter((c) => c.externalReferences.includes(collection.references[0]))[0];\n\n this._previewService.show(\n currentCustomer,\n collection.references[0],\n collectionData,\n );\n }\n\n constructor(\n private _store: CollectionScreenStore,\n private _capService: ICentralAssetPlatformService,\n private _customerService: ICustomerService,\n private _router: Router,\n private _collectionScreenStore: CollectionScreenStore,\n private _previewService: PreviewService,\n private _alertService: AlertService,\n private _requestService: IRequestService,\n ) {}\n}\n","\n \n {{ record.name }}\n {{ record.id }}\n {{ record.references }}\n \n \n \n \n \n \n\n","/* eslint-disable max-lines-per-function */\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n RRFilterBarComponent,\n RRIFilterOutput,\n RR_FILTER_TYPE,\n} from 'projects/web-ui-component-library/src';\nimport {\n AbstractFilterService,\n SelectedFilters,\n buildInputElement,\n} from 'projects/web-ui-component-library/src/lib/filter';\nimport { TextInputElementComponent } from 'projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/text-input-element/text-input-element.component';\nimport { IAppState } from '../../../app.state';\n\nimport { ILogger } from '../../../logging';\n\nimport {\n clearFilters,\n filtersChange,\n} from '../../store/collections-overview.actions';\n\nexport type CollectionsFilters = {\n //createdAt: { from: Date; to: Date };\n name: string;\n //tags: { name: string; uuid: string }[];\n //customerId: string;\n};\n\n// Change the value output of the filter components to match the filter store...\nfunction mapFilterValue<\n K extends keyof CollectionsFilters = keyof CollectionsFilters,\n>(fieldName: K, value: CollectionsFilters[K]) {\n // switch (fieldName) {\n // // the date formats need changing to a numeric tuple...\n // case 'createdAt':\n // if (\n // value &&\n // typeof value === 'object' &&\n // 'from' in value &&\n // 'to' in value\n // ) {\n // return [\n // new Date(value.from).getTime() / 1000,\n // new Date(value.to).getTime() / 1000,\n // ];\n // }\n // return null;\n // }\n\n // no change required\n return value;\n}\n/*\n This function will convert the RequestFilters into an array of\n objects compatible with the API service.\n*/\nexport function toRRIFilterArray(\n selectedFilters: SelectedFilters,\n): RRIFilterOutput[] {\n const newFilters: RRIFilterOutput[] = [];\n for (const fieldName in selectedFilters) {\n const value = mapFilterValue(\n fieldName as keyof CollectionsFilters,\n selectedFilters[fieldName],\n );\n if (!value) continue;\n\n switch (fieldName) {\n case 'name':\n newFilters.push({\n type: RR_FILTER_TYPE.TEXT_SEARCH,\n filterBy: {\n fieldName,\n value,\n defaultValue: null,\n },\n });\n break;\n }\n }\n\n return newFilters;\n}\n\nclass CollectionFilterService extends AbstractFilterService {\n constructor(private store: Store) {\n super({\n name: {\n id: 'name',\n label: 'Name',\n searchable: true,\n ...buildInputElement(TextInputElementComponent),\n },\n });\n }\n}\n\n// function enumKeys(obj: O): K[] {\n// return Object.keys(obj).filter((k) => Number.isNaN(+k)) as K[];\n// }\n\n@Component({\n selector: 'app-collection-list-action-bar',\n templateUrl: './collection-list-action-bar.component.html',\n styleUrls: ['./collection-list-action-bar.component.scss'],\n})\nexport class CollectionListActionBarComponent {\n @Input() filterText: string;\n @Output() filterChange: EventEmitter> =\n new EventEmitter();\n @ViewChild('filterBar') filterBar: RRFilterBarComponent;\n\n collectionFilterService: CollectionFilterService;\n\n constructor(public store: Store, private logger: ILogger) {\n this.collectionFilterService = new CollectionFilterService(store);\n\n this.collectionFilterService.filterValues.subscribe((filters) => {\n this.logger.debug('CollectionListActionBar', 'filterValues:', filters);\n this.store.dispatch(filtersChange({ filters }));\n });\n }\n clearFilterValues() {\n this.store.dispatch(clearFilters());\n this.collectionFilterService.filterValues.next({});\n }\n}\n","\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { CollectionListPageComponent } from './components/collection-list.page/collection-list.page.component';\nimport { AuthGuard } from '../auth';\n\nconst routes: Routes = [\n {\n path: '',\n component: CollectionListPageComponent,\n canActivate: [AuthGuard],\n data: {\n type: 'collections',\n breadcrumb: 'Collections',\n breadcrumbParentPath: 'collections',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class CollectionOverviewRoutingModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n CollectionScreenStore,\n ScreenMode,\n} from '../../../collection-screen/collection-screen.state';\nimport {\n loadCollections,\n sortChange,\n} from '../../store/collections-overview.actions';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from '../../../app.state';\nimport {\n selectCollectionsFilter,\n selectCollectionsOverview,\n} from '../../store/collections-overview.selector';\nimport { BehaviorSubject, Subject, map, takeUntil } from 'rxjs';\nimport {\n DataSource,\n PageContextService,\n RRISort,\n SelectedFilters,\n TableConfiguration,\n} from 'projects/web-ui-component-library/src';\nimport { ExtendedCollection } from '../../collection.interface';\nimport * as _ from 'lodash';\nimport { CollectionListRowComponent } from './collection-list-row/collection-list-row.component';\nimport { CollectionListActionBarComponent } from '../collection-list-action-bar/collection-list-action-bar.component';\nimport { ICustomerService } from '../../../customer';\nimport { CollectionFilters } from '../../../collection-screen/components/reference-search/components/collection-search-filter-bar/collection-search-filter-bar.component';\n\nexport interface CollectionRecord {\n id: string;\n name: string;\n imageUrl: string;\n references: string[];\n type: string;\n}\n@Component({\n selector: 'app-collection-list.page',\n standalone: false,\n templateUrl: './collection-list.page.component.html',\n styleUrl: './collection-list.page.component.scss',\n providers: [],\n})\nexport class CollectionListPageComponent implements OnInit, OnDestroy {\n public spinnerStatus = {\n show: false,\n text: 'Loading...',\n };\n\n public displayedCollections: BehaviorSubject =\n new BehaviorSubject([]);\n constructor(\n public store: Store,\n\n private _createCollectionModalStore: CollectionScreenStore,\n private _pageContextService: PageContextService,\n private _customerService: ICustomerService,\n ) {}\n\n ngOnInit() {\n this._pageContextService\n .setPageParent()\n .setPageActionBar(CollectionListActionBarComponent, (_) => {})\n .setPageTitle('Collections');\n\n this._onDestroy$ = new Subject();\n\n const collections$ = this.store.select(selectCollectionsOverview);\n\n collections$.pipe(takeUntil(this._onDestroy$)).subscribe({\n next: (x) => {\n this.onCollectionsChanged(x);\n },\n error: (a) => {\n console.warn('collections$ error: ', a);\n },\n });\n //reload collections when customer changes\n this._customerService.currentCustomer$.subscribe((customer) => {\n if (customer) this.onReadCollections();\n });\n\n this.store.select(selectCollectionsFilter).subscribe((filters) => {\n this.onFiltersChanged(filters);\n });\n }\n\n public collectionTableConfiguration: TableConfiguration = {\n rowComponent: CollectionListRowComponent,\n columns: [\n {\n title: '',\n hideSort: true,\n },\n {\n title: 'Name',\n hideSort: true,\n },\n {\n title: 'Id',\n hideSort: true,\n },\n {\n title: 'Reference',\n hideSort: true,\n },\n ],\n };\n\n public collectionDatasource: DataSource = {\n fetch: (_) => {\n const mapCollectionToRecord = (\n c: ExtendedCollection,\n ): CollectionRecord => ({\n id: c.id,\n name: c.collection?.info?.name,\n imageUrl: c.collection?.info?.imageUrl,\n references: c.externalReferences,\n type: c.type,\n });\n\n return this.displayedCollections.pipe(\n map((c) => ({ data: c.map(mapCollectionToRecord) })),\n );\n },\n };\n\n private _onDestroy$: Subject;\n\n private onFiltersChanged(filters: SelectedFilters) {\n if (filters.name) {\n this.displayedCollections.next(\n this.displayedCollections.value.filter((c) =>\n c.collection?.info?.name.includes(filters.name),\n ),\n );\n }\n }\n\n private onCollectionsChanged = ({\n collections: collections,\n recordCount,\n }: {\n collections: ExtendedCollection[];\n recordCount: number;\n }) => {\n if (_.isEqual(this.displayedCollections.value, collections)) return;\n this.displayedCollections.next(collections);\n\n //this.manageShowSpinner(false);\n };\n\n ngOnDestroy(): void {\n if (this._onDestroy$) {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n }\n\n async onCreateNewClicked() {\n this._createCollectionModalStore.reset();\n this._createCollectionModalStore.setMode(ScreenMode.NEW);\n }\n\n async onReadCollections() {\n this.store.dispatch(\n loadCollections({\n pagination: {\n pageSize: 10,\n currentPage: 1,\n pageCount: 1,\n recordCount: 0,\n recordCountHidden: 1,\n },\n sort: { fieldName: 'test' },\n }),\n );\n }\n\n onCloseClicked() {}\n\n public onSortByChange(uiSort: RRISort): void {\n const sort = Object.assign({}, uiSort);\n this.store.dispatch(sortChange({ sort }));\n }\n\n onSortColumn(col: {\n title: string;\n hideSort?: boolean;\n sort?: 'ASC' | 'DESC' | '';\n sortable?: (a: CollectionRecord, b: CollectionRecord) => number;\n }) {\n this.onSortByChange(this.getSortObject(col));\n }\n\n getSortObject(col: {\n title: string;\n hideSort?: boolean;\n sort?: 'ASC' | 'DESC' | '';\n sortable?: (a: CollectionRecord, b: CollectionRecord) => number;\n }): RRISort {\n switch (col.title) {\n case 'Name':\n return {\n fieldName: 'name',\n desc: col.sort === 'DESC' ? true : false,\n };\n case 'Id':\n return {\n fieldName: 'id',\n desc: col.sort === 'DESC' ? true : false,\n };\n }\n }\n}\n","
\n
\n \n \n
\n

Collections

\n \n \n New Collection \n \n \n \n \n We couldn’t find any collections.\n Try adjusting your filters.\n \n
\n \n
\n \n
\n\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport {\n loadCollections,\n loadCollectionsError,\n loadCollectionsSuccess,\n} from './collections-overview.actions';\nimport { catchError, from, map, of, switchMap } from 'rxjs';\nimport { ICentralAssetPlatformService } from '../../data/api';\nimport { ICustomerService } from '../../customer';\n\n@Injectable()\nexport class CollectionsOverviewEffects {\n constructor(\n private actions$: Actions,\n private _cAPService: ICentralAssetPlatformService,\n private customerService: ICustomerService,\n ) {}\n\n loadCollections$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(loadCollections),\n switchMap(() => {\n return from(this.customerService.currentCustomer()).pipe(\n switchMap((customer) => {\n return from(this._cAPService.getAllCollections(customer?.id))\n .pipe(\n map((collections) => {\n //const sort = await this.sortService.sort()\n const sortedCollections = collections.sort((a, b) => {\n if (\n a.collection.info?.name.toLowerCase() <\n b.collection.info?.name.toLowerCase()\n ) {\n return -1;\n }\n if (\n a.collection.info?.name.toLowerCase() >\n b.collection.info?.name\n ) {\n return 1;\n }\n return 0;\n });\n return sortedCollections;\n }),\n )\n .pipe(\n map((collections) =>\n loadCollectionsSuccess({\n collections: collections,\n recordCount: collections.length,\n }),\n ),\n catchError((error) =>\n of(loadCollectionsError({ error: error })),\n ),\n );\n }),\n );\n }),\n );\n });\n}\n","import { createReducer, on } from '@ngrx/store';\nimport {\n clearFilters,\n filtersChange,\n loadCollectionsError,\n loadCollectionsSuccess,\n sortChange,\n} from './collections-overview.actions';\nimport { ICollectionsOverviewState } from './collections-overview.state';\n\nconst initialState: ICollectionsOverviewState = {\n collections: [],\n recordCount: 0,\n showLoader: true,\n filters: {},\n pagination: undefined,\n tags: [],\n sort: undefined,\n error: '',\n};\n\nconst collectionsChangedReducer = (\n state: ICollectionsOverviewState,\n { collections, recordCount },\n): ICollectionsOverviewState => ({\n ...state,\n collections,\n recordCount,\n});\n\nconst filtersClearedReducer = (\n state: ICollectionsOverviewState,\n): ICollectionsOverviewState => ({\n ...state,\n filters: {},\n});\n\nconst filtersChangedReducer = (\n state: ICollectionsOverviewState,\n { filters },\n): ICollectionsOverviewState => ({\n ...state,\n filters,\n});\n\nconst sortChangedReducer = (\n state: ICollectionsOverviewState,\n { sort },\n): ICollectionsOverviewState => ({ ...state, sort, showLoader: true });\n\nconst collectionLoadErrorReducer = (\n state: ICollectionsOverviewState,\n): ICollectionsOverviewState => ({\n ...state,\n error: 'Error while fetching collections.',\n showLoader: false,\n});\n\nexport const collectionOverviewReducer =\n createReducer(\n initialState,\n on(loadCollectionsSuccess, collectionsChangedReducer),\n on(clearFilters, filtersClearedReducer),\n on(filtersChange, filtersChangedReducer),\n on(sortChange, sortChangedReducer),\n on(loadCollectionsError, collectionLoadErrorReducer),\n );\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CollectionOverviewRoutingModule } from './collection-overview-routing.module';\nimport { CollectionListPageComponent } from './components/collection-list.page/collection-list.page.component';\nimport {\n RRFilterModule,\n RRFilteredTableModule,\n RRLayoutModule,\n RRSpinnerModule,\n RRTableModule,\n} from 'projects/web-ui-component-library/src';\nimport { EffectsModule } from '@ngrx/effects';\nimport { CollectionsOverviewEffects } from './store/collections-overview.effects';\nimport { StoreModule } from '@ngrx/store';\nimport { collectionOverviewReducer } from './store/collections.overview.reducer';\nimport { CollectionListRowComponent } from './components/collection-list.page/collection-list-row/collection-list-row.component';\nimport { CollectionListActionBarComponent } from './components/collection-list-action-bar/collection-list-action-bar.component';\nimport { PreviewService } from './services/collection-preview.service';\n\n@NgModule({\n declarations: [CollectionListPageComponent, CollectionListActionBarComponent],\n imports: [\n CommonModule,\n RRTableModule,\n CollectionOverviewRoutingModule,\n RRFilteredTableModule,\n RRFilterModule,\n RRLayoutModule,\n RRSpinnerModule,\n EffectsModule.forFeature([CollectionsOverviewEffects]),\n StoreModule.forFeature('collectionOverview', collectionOverviewReducer),\n CollectionListRowComponent,\n ],\n exports: [CollectionListPageComponent, CollectionListActionBarComponent],\n providers: [PreviewService],\n})\nexport class CollectionOverviewModule {}\n","import { Injectable } from '@angular/core';\nimport {\n AccessoryReference,\n Collection,\n PictofitBuilder,\n VirtualStylingApi,\n VirtualStylingBuilder,\n} from '@pictofit/public-types';\nimport { ICollection } from '../collection.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PreviewService {\n constructor() {}\n private _api: VirtualStylingApi = undefined;\n private _builder: VirtualStylingBuilder = undefined;\n\n public show(\n org: string,\n ref: string,\n collection: { id: string; collection: ICollection },\n ) {\n window.onPictofitReady = (builder: PictofitBuilder) => {\n if (!this._api) {\n console.warn('Pictofit ready');\n const pictofitApi = builder\n // We do setup a default organization id, which is an alias for the customer id\n .forOrganisation(org);\n\n const virtualStylingBuilder = pictofitApi\n // We want to use the virtual styling component\n .asVirtualStyling();\n this._builder = virtualStylingBuilder;\n\n //const collection = virtualStylingBuilder.getCollection(ref, org);\n\n const mappedCollection = this.mapCollection(collection);\n\n if (collection !== null) {\n if (!this._api) {\n virtualStylingBuilder.build().then(({ api }) => {\n this._api = api;\n this._api.show(Promise.resolve(mappedCollection), {\n reference: ref,\n organizationId: org,\n });\n });\n }\n }\n } else {\n const mappedCollection = this.mapCollection(collection);\n this._api.show(Promise.resolve(mappedCollection), {\n reference: ref,\n organizationId: org,\n });\n }\n };\n }\n\n private mapCollection(collection: {\n id: string;\n collection: ICollection;\n }): Collection {\n const outfits = collection.collection.outfits;\n const mappedOutfits = outfits.map((outfit) => {\n return {\n ...outfit,\n accessories: outfit.accessories?.map((accessory) => {\n return {\n position: accessory.position,\n organizationId: accessory.organizationId,\n reference: accessory.reference,\n } as AccessoryReference;\n }),\n };\n });\n\n return {\n outfits: mappedOutfits,\n avatars: collection.collection.avatars,\n garments: collection.collection.garments,\n info: collection.collection.info,\n scenes: collection.collection.scenes,\n settings: collection.collection.settings,\n };\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport {\n RRIPagination,\n RRISort,\n SelectedFilters,\n} from 'projects/web-ui-component-library/src';\nimport { ExtendedCollection } from '../collection.interface';\nimport { CollectionFilters } from '../../collection-screen/components/reference-search/components/collection-search-filter-bar/collection-search-filter-bar.component';\nimport { CollectionRecord } from '../components/collection-list.page/collection-list.page.component';\n\nconst prefix = '[Collection Overview Page]';\n\nexport const loadCollections = createAction(\n `${prefix} Load Collections`,\n props<{\n sort: RRISort;\n pagination: RRIPagination;\n }>(),\n);\n\nexport const loadCollectionsSuccess = createAction(\n `${prefix} Load Collections Success`,\n props<{\n collections: ExtendedCollection[];\n recordCount: number;\n }>(),\n);\n\nexport const loadCollectionsError = createAction(\n `${prefix} Load Collections Error`,\n props<{\n error: string;\n }>(),\n);\n\n// export const createOrUpdateCollectionAction = createAction(\n// `${prefix} Create new collection`,\n// );\n\nexport const clearFilters = createAction(\n '[Collection Overview Filters] Clear Filters',\n);\n\nexport const filtersChange = createAction(\n '[Collection Overview Filters] Change Filters',\n props<{ filters: SelectedFilters }>(),\n);\n\nexport const sortChange = createAction(\n '[Collection Overview Table] Change Sort',\n props<{ sort: RRISort }>(),\n);\n","import { createSelector } from '@ngrx/store';\nimport { IAppState } from '../../app.state';\nimport { ICollectionsOverviewState } from './collections-overview.state';\n\nexport const selectCollectionOverview = (state: IAppState) =>\n state.collectionOverview;\n\nexport const selectCollectionsOverview = createSelector(\n selectCollectionOverview,\n (state: ICollectionsOverviewState) => ({\n collections: state.collections,\n recordCount: state.recordCount,\n }),\n);\n\nexport const selectCollectionById = (id: string) =>\n createSelector(selectCollectionOverview, (state: ICollectionsOverviewState) =>\n state.collections.find((c) => c.id === id),\n );\n\nexport const selectCollectionsFilter = createSelector(\n selectCollectionOverview,\n (state: ICollectionsOverviewState) => state.filters,\n);\n\nexport const selectSort = createSelector(\n selectCollectionOverview,\n (state: ICollectionsOverviewState) => state.sort,\n);\n\nexport const selectCollectionsError = createSelector(\n selectCollectionOverview,\n (state: ICollectionsOverviewState) => state.error,\n);\n","/* eslint-disable max-lines */\nimport { Injectable } from '@angular/core';\nimport {\n ComponentStore,\n OnStateInit,\n OnStoreInit,\n} from '@ngrx/component-store';\nimport {\n IReferenceSelectionData,\n getOutfitParallaxInfoUrl,\n} from './components/reference-search/reference-selection.component';\nimport { IRequestService, PRODUCT_TYPE } from '../data';\nimport {\n CollectionAccessoryReference,\n CollectionAvatarReference,\n CollectionBaseReference,\n CollectionBaseReferencesWithName,\n CollectionGarmentReference,\n CollectionInfo,\n CollectionSceneReference,\n CollectionSettings,\n ICollection,\n} from '../collection-overview/collection.interface';\n\nimport { v4 as uuid } from 'uuid';\nimport { Observable, switchMap } from 'rxjs';\nimport { SelectedFilters } from 'projects/web-ui-component-library/src';\nimport { CollectionFilters } from './components/reference-search/components/collection-search-filter-bar/collection-search-filter-bar.component';\nimport { ICentralAssetPlatformService } from '../data/api';\nimport { AvatarGroup } from './components/avatar-group-list/avatar-group-list.component';\nimport { DropDownEntry } from '../components/inputs/input-dropdown/input-dropdown.component';\n\nexport interface AssetReference extends CollectionBaseReferencesWithName {\n id: string;\n thumbnail?: string;\n}\n\nexport type AvatarInformation = {\n heightInCm: number;\n displayName: string;\n gender: 'male' | 'female';\n};\n\nexport type AvatarVariantInformation = {\n shoe: string;\n shoe_color?: string;\n};\n\nexport type AvatarAssetReference = AssetReference & {\n belongsTo?: string;\n additionalInformation?: AvatarInformation;\n variant?: AvatarVariantInformation;\n};\n\nexport type ShoeOption = {\n name: string;\n translationKey?: string;\n image?: string;\n};\n\nexport interface GarmentReference extends CollectionGarmentReference {\n id: string;\n thumbnail?: string;\n}\n\nexport enum ScreenMode {\n NEW = 'new',\n EDIT = 'edit',\n}\n\nexport interface OutfitReferenceJson extends CollectionBaseReferencesWithName {\n id: string;\n resultUrl: string;\n thumbnail?: string;\n}\n\nexport interface OutfitReference {\n id: string;\n scene: CollectionBaseReference;\n avatar: CollectionBaseReference;\n preview: CollectionBaseReference;\n garments: CollectionBaseReference[];\n accessories: CollectionAccessoryReference[];\n}\n\nexport type CollectionTag = {\n name: string;\n uuid: string;\n value: string;\n};\n\nexport interface CollectionScreen {\n filteredRequests: IReferenceSelectionData[];\n //data\n id: string;\n info: CollectionInfo;\n settings: CollectionSettings;\n groupedAvatars: AvatarGroup[];\n scenes: AssetReference[];\n garments: GarmentReference[];\n outfits: OutfitReferenceJson[];\n\n searchProductType: PRODUCT_TYPE;\n searchPattern: string;\n filters: SelectedFilters;\n tags: CollectionTag[];\n mode: ScreenMode;\n loading: boolean;\n garmentsLoading: boolean;\n avatarsLoading: boolean;\n scenesLoading: boolean;\n outfitsLoading: boolean;\n avatarActiveGroup: string | undefined;\n}\n\nconst initState: CollectionScreen = {\n info: {\n name: '',\n imageUrl: '',\n },\n id: '',\n filteredRequests: [],\n groupedAvatars: [],\n scenes: [],\n garments: [],\n outfits: [],\n searchProductType: PRODUCT_TYPE.UNDEFINED,\n searchPattern: '',\n filters: {},\n tags: [],\n mode: ScreenMode.EDIT,\n loading: false,\n garmentsLoading: false,\n avatarsLoading: false,\n scenesLoading: false,\n outfitsLoading: false,\n avatarActiveGroup: undefined,\n settings: undefined,\n};\n\n@Injectable()\nexport class CollectionScreenStore\n extends ComponentStore\n implements OnStoreInit, OnStateInit\n{\n constructor(\n private _requestService: IRequestService,\n private _capService: ICentralAssetPlatformService,\n ) {\n super(initState);\n }\n ngrxOnStateInit() {}\n ngrxOnStoreInit() {}\n\n readonly reset = this.updater((_) => {\n return initState;\n });\n\n readonly setLoading = this.updater((state, loading: boolean) => {\n return {\n ...state,\n loading,\n };\n });\n\n readonly setTags = this.updater((state, tags: CollectionTag[]) => {\n return {\n ...state,\n tags,\n };\n });\n\n readonly setGarmentsLoading = this.updater((state, loading: boolean) => {\n return {\n ...state,\n garmentsLoading: loading,\n };\n });\n\n readonly setAvatarsLoading = this.updater((state, loading: boolean) => {\n return {\n ...state,\n avatarsLoading: loading,\n };\n });\n\n readonly setScenesLoading = this.updater((state, loading: boolean) => {\n return {\n ...state,\n scenesLoading: loading,\n };\n });\n\n readonly setOutfitsLoading = this.updater((state, loading: boolean) => {\n return {\n ...state,\n outfitsLoading: loading,\n };\n });\n\n readonly setMode = this.updater((state, mode: ScreenMode) => {\n return {\n ...state,\n mode,\n };\n });\n\n readonly setId = this.updater((state, id: string) => {\n return {\n ...state,\n id,\n };\n });\n\n readonly setAvatarActiveGroup = this.updater(\n (state, activeGroup: string | undefined) => {\n return {\n ...state,\n avatarActiveGroup: activeGroup,\n };\n },\n );\n\n readonly moveAvatar = this.updater(\n (state, data: { id: string; group: string; direction: 'up' | 'down' }) => {\n let index = undefined;\n const groupAvatars = state.groupedAvatars.find((g, idx) => {\n if (g.displayName === data.group) {\n index = idx;\n return true;\n }\n });\n const avatars =\n data.direction === 'up'\n ? this.moveUp(groupAvatars.references, data.id)\n : this.moveDown(groupAvatars.references, data.id);\n groupAvatars.references = [...avatars];\n if (index !== undefined) {\n state.groupedAvatars[index] = groupAvatars;\n return state;\n }\n },\n );\n readonly moveAvatarGroup = this.updater(\n (state, data: { id: string; direction: 'up' | 'down' }) => {\n const idx = state.groupedAvatars.findIndex(\n (g) => g.displayName === data.id,\n );\n if (idx === -1) {\n return state;\n }\n const element = state.groupedAvatars.splice(idx, 1)[0];\n const newIdx = data.direction === 'up' ? idx - 1 : idx + 1;\n state.groupedAvatars.splice(newIdx, 0, element);\n return state;\n },\n );\n readonly moveScene = this.updater(\n (state, data: { id: string; direction: 'up' | 'down' }) => {\n const scenes =\n data.direction === 'up'\n ? this.moveUp(state.scenes, data.id)\n : this.moveDown(state.scenes, data.id);\n return {\n ...state,\n scenes,\n };\n },\n );\n readonly moveGarment = this.updater(\n (state, data: { id: string; direction: 'up' | 'down' }) => {\n const garments =\n data.direction === 'up'\n ? this.moveUp(state.garments, data.id)\n : this.moveDown(state.garments, data.id);\n return {\n ...state,\n garments,\n };\n },\n );\n readonly moveOutfit = this.updater(\n (state, data: { id: string; direction: 'up' | 'down' }) => {\n const outfits =\n data.direction === 'up'\n ? this.moveUp(state.outfits, data.id)\n : this.moveDown(state.outfits, data.id);\n return {\n ...state,\n outfits: outfits,\n };\n },\n );\n\n moveUp = (list: any[], id: string, identifier: string = 'id') => {\n const index = list.findIndex((a) => a[identifier] === id);\n if (index > 0) {\n const temp = list[index - 1];\n list[index - 1] = list[index];\n list[index] = temp;\n }\n\n return list;\n };\n\n moveDown = (list: any[], id: string, identifier: string = 'id') => {\n const index = list.findIndex((a) => a[identifier] === id);\n if (index < list.length - 1) {\n const temp = list[index + 1];\n list[index + 1] = list[index];\n list[index] = temp;\n }\n return list;\n };\n\n readonly loadAvatars = this.effect(\n (avatars: Observable) => {\n return avatars.pipe(\n switchMap(async (avatars) => {\n this.setAvatarsLoading(true);\n const allRequests = await this.getAdditionalData(avatars);\n\n const resultsWithIds = await Promise.all(allRequests);\n for (const result of resultsWithIds) {\n this.addAvatar(result);\n }\n this.setAvatarsLoading(false);\n }),\n );\n },\n );\n\n readonly loadScenes = this.effect(\n (scenes: Observable) => {\n return scenes.pipe(\n switchMap(async (scenes) => {\n this.setScenesLoading(true);\n const allRequests = await this.getAdditionalData(scenes);\n\n const resultsWithIds = await Promise.all(allRequests);\n\n for (const result of resultsWithIds) {\n this.addOrUpdateScene(result);\n }\n this.setScenesLoading(false);\n }),\n );\n },\n );\n\n getAdditionalData = async (\n elements:\n | CollectionAvatarReference[]\n | CollectionSceneReference[]\n | CollectionGarmentReference[],\n ) => {\n const elementsByOrg = elements.reduce((map, element) => {\n const { organizationId } = element;\n map.set(organizationId, [...(map.get(organizationId) || []), element]);\n return map;\n }, new Map());\n const allRequests = [];\n for (const [organizationId, elementsInOrg] of elementsByOrg) {\n const splitElements = Array.from(\n { length: Math.ceil(elementsInOrg.length / 90) },\n (_, i) => elementsInOrg.slice(i * 90, (i + 1) * 90),\n );\n for (const block of splitElements) {\n const refs = block.map((g) => g.reference);\n const additionalData = await this._capService.getAdditionalData(\n organizationId,\n refs,\n );\n const requests$ = block.map((element) => {\n const index = additionalData.findIndex((data) =>\n data.externalReferences\n .map((e) => e.reference)\n .includes(element.reference),\n );\n if (index === -1) {\n console.warn('element', element, additionalData);\n return element;\n }\n return {\n ...element,\n id: additionalData[index].id,\n thumbnail: additionalData[index].thumbnail,\n };\n });\n allRequests.push(...requests$);\n }\n }\n return allRequests;\n // const splitElements = Array.from({ length: Math.ceil(elements.length / 90) }, (_, i) =>\n // elements.slice(i * 90, (i + 1) * 90)\n // );\n // const allRequests = [];\n // for(const block of splitElements){\n // const refs = block.map(g => g.reference);\n // const additionalData = await this._capService.getAdditionalData(block[0].organizationId, refs)\n // const requests$ = block.map((element) => {\n // const index = additionalData.findIndex(data=>data.externalReferences.map(e=>e.reference).includes(element.reference));\n // if(index === -1){\n // console.warn(\"element\", element, additionalData)\n // return element\n // }\n // return {\n // ...element,\n // id: additionalData[index].id,\n // thumbnail: additionalData[index].thumbnail,\n // };\n // })\n // allRequests.push(...requests$);\n // }\n // return allRequests;\n };\n\n readonly loadGarments = this.effect(\n (garments: Observable): Observable => {\n return garments.pipe(\n switchMap(async (garments) => {\n this.setGarmentsLoading(true);\n const allRequests = await this.getAdditionalData(garments);\n\n const resultsWithIds = await Promise.all(allRequests);\n\n for (const result of resultsWithIds) {\n this.addOrUpdateGarment(result);\n }\n this.setGarmentsLoading(false);\n }),\n );\n },\n );\n\n readonly loadOutfits = this.effect(\n (outfits: Observable) => {\n return outfits.pipe(\n switchMap(async (outfits) => {\n this.setOutfitsLoading(true);\n for (const outfit of outfits) {\n await this._requestService\n .getRequestByID(outfit.id)\n .then((request) => {\n const result: OutfitReferenceJson = {\n id: request.id,\n name: request.name,\n organizationId: request.customerId,\n reference: `gid://pictofit/sku/${request.sku}`,\n thumbnail: request.previewUrl,\n resultUrl:\n request.productTypeId === PRODUCT_TYPE.OUTFIT_2D_PARALLAX\n ? getOutfitParallaxInfoUrl(request)\n : undefined,\n };\n this.addOrUpdateOutfit(result);\n });\n }\n this.setOutfitsLoading(false);\n }),\n );\n },\n );\n\n readonly setFilters = this.updater(\n (state, filters: SelectedFilters) => ({\n ...state,\n filters: filters,\n }),\n );\n\n readonly setCollection = async (id: string, collection: ICollection) => {\n this.reset();\n await Promise.all([\n this.setId(id),\n this.setInfoName(collection.info.name),\n this.setInfoImageUrl(collection.info.imageUrl),\n this.setSettings(collection.settings),\n this.loadGarments(collection.garments),\n this.loadAvatars(collection.avatars),\n this.loadScenes(collection.scenes),\n this.loadOutfits(collection.outfits),\n ]);\n };\n //updaters\n readonly setFilteredCollections = this.updater(\n (state, data: IReferenceSelectionData[]) => ({\n ...state,\n filteredRequests: data,\n }),\n );\n readonly setInfoName = this.updater((state, data: string) => ({\n ...state,\n info: { ...state.info, name: data },\n }));\n readonly setInfoImageUrl = this.updater((state, data: string) => ({\n ...state,\n info: { ...state.info, imageUrl: data },\n }));\n\n readonly setSettings = this.updater((state, data: CollectionSettings) => {\n const shoeOptions = state.settings?.shoeOptions || [];\n const newShoeOptions = data?.shoeOptions || [];\n const deletedShoeOptions = shoeOptions.filter(\n (o) => !newShoeOptions.find((n) => n.name === o.name),\n );\n deletedShoeOptions.forEach((o) => {\n state.groupedAvatars.forEach((avatarGroup) => {\n avatarGroup.references.forEach((avatar, index) => {\n if (avatar.variant?.shoe === o.name) {\n delete avatar.variant.shoe;\n avatarGroup.references[index] = { ...avatar };\n }\n });\n });\n });\n return {\n ...state,\n settings: data,\n };\n });\n\n readonly updateShoeOptionsName = this.updater(\n (state, data: { name: string; value: string }) => {\n const setting = state.settings?.shoeOptions?.find(\n (o) => o.name === data.name,\n );\n if (setting) {\n //find avatars and update the shoe name\n const oldName = setting.name;\n setting.name = data.value;\n if (data.value !== oldName) {\n state.groupedAvatars.forEach((avatarGroup) => {\n avatarGroup.references.forEach((avatar, index) => {\n if (avatar.variant?.shoe === oldName) {\n avatar.variant.shoe = data.value;\n avatarGroup.references[index] = { ...avatar };\n }\n });\n });\n }\n }\n return { ...state };\n },\n );\n\n readonly updateShoeOptionsTranslation = this.updater(\n (state, data: { name: string; value: string }) => {\n const setting = state.settings?.shoeOptions?.find(\n (o) => o.name === data.name,\n );\n if (setting) {\n setting.translationKey = data.value;\n }\n return { ...state };\n },\n );\n\n readonly updateShoeOptionsImage = this.updater(\n (state, data: { name: string; value: string }) => {\n const setting = state.settings?.shoeOptions?.find(\n (o) => o.name === data.name,\n );\n if (setting) {\n setting.image = data.value;\n }\n return { ...state };\n },\n );\n\n readonly addGroupAvatars = this.updater((state, data: AvatarGroup) => {\n if (data.isValidGroup) {\n const group = state.groupedAvatars.find(\n (group) => group.displayName === data.displayName,\n );\n if (group) {\n if (\n group.references.some((avatar) => avatar.id === data.references[0].id)\n )\n return state;\n group.references.push(data.references[0]);\n return {\n ...state,\n };\n }\n }\n });\n //add avatar initially\n readonly addAvatar = this.updater((state, data: AvatarAssetReference) => {\n //add it to the current opened group\n if (state.avatarActiveGroup !== undefined) {\n data.belongsTo = state.avatarActiveGroup;\n //take additonal information from first group avatar reference\n data.additionalInformation = state.groupedAvatars.find(\n (g) => g.displayName === state.avatarActiveGroup,\n )?.references[0]?.additionalInformation;\n } else {\n if (!data.additionalInformation) {\n data.additionalInformation = {\n heightInCm: 160,\n displayName: 'init',\n gender: 'female',\n };\n }\n }\n //only add avatar if not added anywhere else\n if (\n state.groupedAvatars.some((g) =>\n g.references.some((r) => r.id === data.id),\n )\n ) {\n return state;\n }\n if (data.belongsTo === undefined) {\n //no group assigned, so we add it as standalone avatar if not already in list\n return {\n ...state,\n groupedAvatars: [\n ...state.groupedAvatars,\n { isValidGroup: false, displayName: data.name, references: [data] },\n ],\n };\n } else {\n //was already in a group, so we have to reasign it.\n const targetGroup = state.groupedAvatars.find(\n (group) => group.displayName === data.belongsTo,\n );\n const groupAvatars = targetGroup?.references;\n if (groupAvatars) {\n groupAvatars.push(data);\n return {\n ...state,\n groupedAvatars: [...state.groupedAvatars],\n };\n } else {\n //new group\n const newGroup: AvatarGroup = {\n displayName: data.belongsTo,\n references: [data],\n isValidGroup: true,\n };\n return {\n ...state,\n groupedAvatars: [...state.groupedAvatars, newGroup],\n };\n }\n }\n });\n\n readonly updateAvatarData = this.updater(\n (state, data: { ref: AvatarAssetReference; group: string }) => {\n let index = -1;\n const groupAvatars = state.groupedAvatars.find((g, idx) => {\n index = idx;\n return g.displayName === data.group;\n }).references;\n const avatarIndex = groupAvatars.findIndex(\n (avatar) => avatar.id === data.ref.id,\n );\n groupAvatars[avatarIndex] = data.ref;\n\n state.groupedAvatars[index].references = groupAvatars;\n\n return { ...state };\n },\n );\n\n readonly setAvatars = this.updater((state, data: AvatarGroup[]) => {\n return {\n ...state,\n groupedAvatars: data,\n };\n });\n\n readonly updateThumbnail = this.updater(\n (state, data: { id: uuid; thumbnail: string }) => {\n return {\n ...state,\n groupedAvatars: state.groupedAvatars.map((x) => {\n for (let i = 0; i < x.references.length; i++) {\n if (x.references[i].id === data.id) {\n x.references[i].thumbnail = data.thumbnail;\n }\n }\n return x;\n }),\n };\n },\n );\n\n readonly removeAvatar = this.updater((state, data: AvatarAssetReference) => {\n let avatars = state.groupedAvatars.map((g) => {\n g.references = g.references.filter((x) => x.id !== data.id);\n return g;\n });\n avatars = avatars.filter((a) => a.references.length > 0);\n return {\n ...state,\n groupedAvatars: avatars,\n };\n });\n\n readonly removeAvatarGroup = this.updater((state, group: string) => {\n const filtered = state.groupedAvatars.filter(\n (x) => x.displayName !== group,\n );\n if (state.avatarActiveGroup === group) {\n this.setAvatarActiveGroup(undefined);\n }\n return {\n ...state,\n groupedAvatars: filtered,\n };\n });\n\n readonly addOrUpdateScene = this.updater((state, data: AssetReference) => {\n const index = state.scenes.findIndex((x) => x.id === data.id);\n //add new, if not found\n if (index === -1) {\n return {\n ...state,\n scenes: [...state.scenes, data],\n };\n }\n //update existing\n state.scenes[index] = data;\n return {\n ...state,\n scenes: [...state.scenes],\n };\n });\n readonly removeScene = this.updater((state, data: AssetReference) => {\n const scenes = state.scenes.filter((x) => x.id !== data.id);\n return {\n ...state,\n scenes: scenes,\n };\n });\n\n readonly addOrUpdateGarment = this.updater((state, data: AssetReference) => {\n const index = state.garments.findIndex((x) => x.id === data.id);\n //add new, if not found\n if (index === -1) {\n return {\n ...state,\n garments: [...state.garments, data],\n };\n }\n //update existing\n state.garments[index] = data;\n return {\n ...state,\n garments: [...state.garments],\n };\n });\n readonly removeGarment = this.updater((state, data: AssetReference) => {\n const garments = state.garments.filter((x) => x.id !== data.id);\n return {\n ...state,\n garments: garments,\n };\n });\n\n readonly addOrUpdateOutfit = this.updater(\n (state, data: OutfitReferenceJson) => {\n const index = state.outfits.findIndex((x) => x.id === data.id);\n //add new, if not found\n if (index === -1) {\n return {\n ...state,\n outfits: [...state.outfits, data],\n };\n }\n //update existing\n state.outfits[index] = data;\n return {\n ...state,\n outfits: [...state.outfits],\n };\n },\n );\n\n readonly removeOutfit = this.updater((state, data: OutfitReferenceJson) => {\n const outfits = state.outfits.filter((x) => x.id !== data.id);\n return {\n ...state,\n outfits: outfits,\n };\n });\n\n readonly setSearchProductType = this.updater((state, data: PRODUCT_TYPE) => ({\n ...state,\n searchProductType: data,\n searchPattern: '',\n }));\n\n //selects\n readonly info$ = this.select((state) => state.info);\n readonly settings$ = this.select((state) => state.settings);\n readonly infoImage$ = this.select((state) => state.info.imageUrl);\n readonly infoName$ = this.select((state) => state.info.name);\n readonly filteredRequests$ = this.select((state) => state.filteredRequests);\n readonly avatars$ = this.select((state) => state.groupedAvatars);\n readonly avatarById$ = this.select(\n (state) => (id: string) =>\n state.groupedAvatars.map((x) => x.references.find((y) => y.id === id)),\n );\n readonly scenes$ = this.select((state) => state.scenes);\n readonly garments$ = this.select((state) => state.garments);\n readonly outfits$ = this.select((state) => state.outfits);\n readonly searchProductType$ = this.select((state) => state.searchProductType);\n\n readonly avatarsVisible$ = this.select(\n (state) => state.searchProductType === PRODUCT_TYPE.AVATAR_2D,\n );\n readonly scenesVisible$ = this.select(\n (state) => state.searchProductType === PRODUCT_TYPE.SCENE,\n );\n readonly garmentsVisible$ = this.select(\n (state) => state.searchProductType === PRODUCT_TYPE.GARMENT_2D,\n );\n readonly outfitsVisible$ = this.select(\n (state) => state.searchProductType === PRODUCT_TYPE.OUTFIT_2D_PARALLAX,\n );\n readonly searchPattern$ = this.select((state) => state.searchPattern);\n readonly filters$ = this.select((state) => state.filters);\n readonly screenMode$ = this.select((state) => state.mode);\n readonly id$ = this.select((state) => state.id);\n readonly loading$ = this.select((state) => {\n return (\n state.garmentsLoading ||\n state.scenesLoading ||\n state.avatarsLoading ||\n state.outfitsLoading\n );\n });\n readonly garmentsLoading$ = this.select((state) => state.garmentsLoading);\n readonly scenesLoading$ = this.select((state) => state.scenesLoading);\n readonly avatarsLoading$ = this.select((state) => state.avatarsLoading);\n readonly outfitsLoading$ = this.select((state) => state.outfitsLoading);\n readonly avatarActiveGroup$ = this.select((state) => state.avatarActiveGroup);\n readonly groupEntries$ = this.select((state) => {\n const groups: DropDownEntry[] = [];\n state.groupedAvatars.forEach((g) => {\n if (g.isValidGroup && !groups.find((x) => x.id === g.displayName)) {\n groups.push({\n id: g.displayName,\n data: g.displayName,\n });\n }\n });\n groups.push({ id: '+', data: '!new group!' });\n return groups;\n });\n readonly shoeVariants$ = this.select((state) =>\n state.settings?.shoeOptions.map((o) => ({ id: o.name, data: o.name })),\n );\n}\n","import { InjectionToken } from '@angular/core';\n\nconst WINDOW = new InjectionToken('WindowToken', typeof window !== 'undefined' && window.document\n ? { providedIn: 'root', factory: () => window }\n : { providedIn: 'root', factory: () => undefined });\n\n/*\n * Public API Surface of ngx-window-token\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { WINDOW };\n","import { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, Optional, EventEmitter, Directive, Input, Output, NgModule } from '@angular/core';\nimport { WINDOW } from 'ngx-window-token';\nimport { Subject } from 'rxjs';\n\n/**\n * The following code is heavily copied from https://github.com/zenorocha/clipboard.js\n */\nclass ClipboardService {\n constructor(ngZone, document, window) {\n this.ngZone = ngZone;\n this.document = document;\n this.window = window;\n this.copySubject = new Subject();\n this.copyResponse$ = this.copySubject.asObservable();\n this.config = {};\n }\n configure(config) {\n this.config = config;\n }\n copy(content) {\n if (!this.isSupported || !content) {\n return this.pushCopyResponse({ isSuccess: false, content });\n }\n const copyResult = this.copyFromContent(content);\n if (copyResult) {\n return this.pushCopyResponse({ content, isSuccess: copyResult });\n }\n return this.pushCopyResponse({ isSuccess: false, content });\n }\n get isSupported() {\n return !!this.document.queryCommandSupported && !!this.document.queryCommandSupported('copy') && !!this.window;\n }\n isTargetValid(element) {\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n if (element.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n return true;\n }\n throw new Error('Target should be input or textarea');\n }\n /**\n * Attempts to copy from an input `targetElm`\n */\n copyFromInputElement(targetElm, isFocus = true) {\n try {\n this.selectTarget(targetElm);\n const re = this.copyText();\n this.clearSelection(isFocus ? targetElm : undefined, this.window);\n return re && this.isCopySuccessInIE11();\n }\n catch (error) {\n return false;\n }\n }\n /**\n * This is a hack for IE11 to return `true` even if copy fails.\n */\n isCopySuccessInIE11() {\n const clipboardData = this.window['clipboardData'];\n if (clipboardData && clipboardData.getData) {\n if (!clipboardData.getData('Text')) {\n return false;\n }\n }\n return true;\n }\n /**\n * Creates a fake textarea element, sets its value from `text` property,\n * and makes a selection on it.\n */\n copyFromContent(content, container = this.document.body) {\n // check if the temp textarea still belongs to the current container.\n // In case we have multiple places using ngx-clipboard, one is in a modal using container but the other one is not.\n if (this.tempTextArea && !container.contains(this.tempTextArea)) {\n this.destroy(this.tempTextArea.parentElement || undefined);\n }\n if (!this.tempTextArea) {\n this.tempTextArea = this.createTempTextArea(this.document, this.window);\n try {\n container.appendChild(this.tempTextArea);\n }\n catch (error) {\n throw new Error('Container should be a Dom element');\n }\n }\n this.tempTextArea.value = content;\n const toReturn = this.copyFromInputElement(this.tempTextArea, false);\n if (this.config.cleanUpAfterCopy) {\n this.destroy(this.tempTextArea.parentElement || undefined);\n }\n return toReturn;\n }\n /**\n * Remove temporary textarea if any exists.\n */\n destroy(container = this.document.body) {\n if (this.tempTextArea) {\n container.removeChild(this.tempTextArea);\n // removeChild doesn't remove the reference from memory\n this.tempTextArea = undefined;\n }\n }\n /**\n * Select the target html input element.\n */\n selectTarget(inputElement) {\n inputElement.select();\n inputElement.setSelectionRange(0, inputElement.value.length);\n return inputElement.value.length;\n }\n copyText() {\n return this.document.execCommand('copy');\n }\n /**\n * Moves focus away from `target` and back to the trigger, removes current selection.\n */\n clearSelection(inputElement, window) {\n inputElement && inputElement.focus();\n window.getSelection()?.removeAllRanges();\n }\n /**\n * Creates a fake textarea for copy command.\n */\n createTempTextArea(doc, window) {\n const isRTL = doc.documentElement.getAttribute('dir') === 'rtl';\n let ta;\n ta = doc.createElement('textarea');\n // Prevent zooming on iOS\n ta.style.fontSize = '12pt';\n // Reset box model\n ta.style.border = '0';\n ta.style.padding = '0';\n ta.style.margin = '0';\n // Move element out of screen horizontally\n ta.style.position = 'absolute';\n ta.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n const yPosition = window.pageYOffset || doc.documentElement.scrollTop;\n ta.style.top = yPosition + 'px';\n ta.setAttribute('readonly', '');\n return ta;\n }\n /**\n * Pushes copy operation response to copySubject, to provide global access\n * to the response.\n */\n pushCopyResponse(response) {\n if (this.copySubject.observers.length > 0) {\n this.ngZone.run(() => {\n this.copySubject.next(response);\n });\n }\n }\n /**\n * @deprecated use pushCopyResponse instead.\n */\n pushCopyReponse(response) {\n this.pushCopyResponse(response);\n }\n}\nClipboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.4\", ngImport: i0, type: ClipboardService, deps: [{ token: i0.NgZone }, { token: DOCUMENT }, { token: WINDOW, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nClipboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.1.4\", ngImport: i0, type: ClipboardService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.4\", ngImport: i0, type: ClipboardService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [WINDOW]\n }] }]; } });\n\nclass ClipboardDirective {\n constructor(ngZone, host, renderer, clipboardSrv) {\n this.ngZone = ngZone;\n this.host = host;\n this.renderer = renderer;\n this.clipboardSrv = clipboardSrv;\n this.cbOnSuccess = new EventEmitter();\n this.cbOnError = new EventEmitter();\n this.onClick = (event) => {\n if (!this.clipboardSrv.isSupported) {\n this.handleResult(false, undefined, event);\n }\n else if (this.targetElm && this.clipboardSrv.isTargetValid(this.targetElm)) {\n this.handleResult(this.clipboardSrv.copyFromInputElement(this.targetElm), this.targetElm.value, event);\n }\n else if (this.cbContent) {\n this.handleResult(this.clipboardSrv.copyFromContent(this.cbContent, this.container), this.cbContent, event);\n }\n };\n }\n // eslint-disable-next-line no-empty, @typescript-eslint/no-empty-function\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n // By default each host listener schedules change detection and also wrapped\n // into additional function that calls `markForCheck()`. We're listening the `click`\n // event in the context of the root zone to avoid running unnecessary change detections,\n // since this directive doesn't do anything template-related (e.g. updates template variables).\n this.clickListener = this.renderer.listen(this.host.nativeElement, 'click', this.onClick);\n });\n }\n ngOnDestroy() {\n if (this.clickListener) {\n this.clickListener();\n }\n this.clipboardSrv.destroy(this.container);\n }\n /**\n * Fires an event based on the copy operation result.\n * @param succeeded\n */\n handleResult(succeeded, copiedContent, event) {\n let response = {\n isSuccess: succeeded,\n content: copiedContent,\n successMessage: this.cbSuccessMsg,\n event\n };\n if (succeeded) {\n if (this.cbOnSuccess.observed) {\n this.ngZone.run(() => {\n this.cbOnSuccess.emit(response);\n });\n }\n }\n else {\n if (this.cbOnError.observed) {\n this.ngZone.run(() => {\n this.cbOnError.emit(response);\n });\n }\n }\n this.clipboardSrv.pushCopyResponse(response);\n }\n}\nClipboardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.4\", ngImport: i0, type: ClipboardDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: ClipboardService }], target: i0.ɵɵFactoryTarget.Directive });\nClipboardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.4\", type: ClipboardDirective, selector: \"[ngxClipboard]\", inputs: { targetElm: [\"ngxClipboard\", \"targetElm\"], container: \"container\", cbContent: \"cbContent\", cbSuccessMsg: \"cbSuccessMsg\" }, outputs: { cbOnSuccess: \"cbOnSuccess\", cbOnError: \"cbOnError\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.4\", ngImport: i0, type: ClipboardDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ngxClipboard]' }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: ClipboardService }]; }, propDecorators: { targetElm: [{\n type: Input,\n args: ['ngxClipboard']\n }], container: [{\n type: Input\n }], cbContent: [{\n type: Input\n }], cbSuccessMsg: [{\n type: Input\n }], cbOnSuccess: [{\n type: Output\n }], cbOnError: [{\n type: Output\n }] } });\n\nclass ClipboardIfSupportedDirective {\n constructor(_clipboardService, _viewContainerRef, _templateRef) {\n this._clipboardService = _clipboardService;\n this._viewContainerRef = _viewContainerRef;\n this._templateRef = _templateRef;\n }\n ngOnInit() {\n if (this._clipboardService.isSupported) {\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n }\n}\nClipboardIfSupportedDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.4\", ngImport: i0, type: ClipboardIfSupportedDirective, deps: [{ token: ClipboardService }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nClipboardIfSupportedDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.4\", type: ClipboardIfSupportedDirective, selector: \"[ngxClipboardIfSupported]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.4\", ngImport: i0, type: ClipboardIfSupportedDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngxClipboardIfSupported]'\n }]\n }], ctorParameters: function () { return [{ type: ClipboardService }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; } });\n\nclass ClipboardModule {\n}\nClipboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.4\", ngImport: i0, type: ClipboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nClipboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.1.4\", ngImport: i0, type: ClipboardModule, declarations: [ClipboardDirective, ClipboardIfSupportedDirective], imports: [CommonModule], exports: [ClipboardDirective, ClipboardIfSupportedDirective] });\nClipboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.1.4\", ngImport: i0, type: ClipboardModule, imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.4\", ngImport: i0, type: ClipboardModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [ClipboardDirective, ClipboardIfSupportedDirective],\n exports: [ClipboardDirective, ClipboardIfSupportedDirective]\n }]\n }] });\n\n/*\n * Public API Surface of ngx-clipboard\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ClipboardDirective, ClipboardIfSupportedDirective, ClipboardModule, ClipboardService };\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { AlertService } from '../../../core/services/alert.service';\nimport { ClipboardModule } from 'ngx-clipboard';\n\n@Component({\n selector: 'app-copy-to-clipboard',\n standalone: true,\n imports: [CommonModule, ClipboardModule],\n templateUrl: './copy-to-clipboard.component.html',\n styleUrl: './copy-to-clipboard.component.scss',\n})\nexport class CopyToClipboardComponent {\n @Input() data: string;\n\n constructor(private _alertService: AlertService) {}\n\n public showInfo(success: boolean) {\n if (success) {\n this._alertService.showSuccessAlert(`Copied to clipboard!`);\n } else {\n this._alertService.showErrorAlert(`Failed to copy to clipboard!`);\n }\n }\n}\n","\n","
Show tags
\n\n\n
TODO: here the list of all tags will be shown.
\n
\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\nimport { ModalService } from '../../../modal/modal.service';\n\n@Component({\n selector: 'app-tag-list',\n standalone: true,\n imports: [],\n templateUrl: './tag-list.component.html',\n styleUrls: ['./tag-list.component.scss'],\n})\nexport class TagListComponent {\n @ViewChild('tagsmodal') addGarments: TemplateRef;\n constructor(private modalService: ModalService) {}\n\n public openTagsModal(): void {\n this.modalService.show({\n title: 'Tags',\n template: this.addGarments,\n });\n }\n}\n","
not synced
\n\n not a collection outfit\n\n\n
\n \n
\n
\n {{ reference.name }}\n
\n Reference: \n {{ reference.reference }}\n \n
\n
\n CS-Id: \n {{ reference.id }}\n \n
\n \n
\n\n","import { Component, Input } from '@angular/core';\nimport { IReferenceSelectionData } from '../../reference-selection.component';\nimport { CollectionScreenStore } from '../../../../collection-screen.state';\nimport { PRODUCT_TYPE } from 'projects/content-service-cms/src/app/data';\nimport { CommonModule } from '@angular/common';\nimport { RRCopyToClipboardModule } from 'projects/web-ui-component-library/src';\nimport { CopyToClipboardComponent } from '../../../copy-to-clipboard/copy-to-clipboard.component';\nimport { TagListComponent } from '../../../tag-list/tag-list.component';\n\n@Component({\n selector: 'app-reference-entry',\n standalone: true,\n imports: [\n CommonModule,\n RRCopyToClipboardModule,\n CopyToClipboardComponent,\n TagListComponent,\n ],\n templateUrl: './reference-entry.component.html',\n styleUrl: './reference-entry.component.scss',\n})\nexport class ReferenceEntryComponent {\n constructor(private _createCollectionStore: CollectionScreenStore) {}\n @Input()\n public reference: IReferenceSelectionData;\n\n onSelect() {\n if (!this.reference.synced) {\n return;\n }\n switch (this.reference.type) {\n case PRODUCT_TYPE.AVATAR_2D:\n this._createCollectionStore.addAvatar({\n id: this.reference.id,\n thumbnail: this.reference.thumbnail,\n name: this.reference.name,\n reference: this.reference.reference,\n organizationId: this.reference.organizationId,\n });\n break;\n case PRODUCT_TYPE.SCENE:\n this._createCollectionStore.addOrUpdateScene({\n id: this.reference.id,\n name: this.reference.name,\n thumbnail: this.reference.thumbnail,\n reference: this.reference.reference,\n organizationId: this.reference.organizationId,\n });\n break;\n case PRODUCT_TYPE.GARMENT_2D:\n this._createCollectionStore.addOrUpdateGarment({\n id: this.reference.id,\n thumbnail: this.reference.thumbnail,\n name: this.reference.name,\n reference: this.reference.reference,\n organizationId: this.reference.organizationId,\n });\n break;\n case PRODUCT_TYPE.OUTFIT_2D_PARALLAX:\n this._createCollectionStore.addOrUpdateOutfit({\n id: this.reference.id,\n thumbnail: this.reference.thumbnail,\n resultUrl: this.reference.additionalDataUrl,\n reference: this.reference.reference,\n organizationId: this.reference.organizationId,\n name: this.reference.name,\n });\n break;\n }\n }\n}\n","\n \n\n \n\n\nNo options available.\n
    \n
  • \n
    \n
    \n \n {{ item.text }}\n
    \n \n
    \n
  • \n
\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { BehaviorSubject, Observable, take } from 'rxjs';\nimport { Filters } from '../../../..';\nimport {\n FilterBarElement,\n FilterBarInputElement,\n} from '../filter-bar-element.component';\n\ntype Arrayable = R extends Array ? Array : Array;\ntype Item = R extends Array ? U : never;\ntype SelectableItem = { text: string; value: Item; selected?: boolean };\n\nexport abstract class SelectTagInputElementOptions {\n public abstract formatItem: (item: R) => {\n text: string;\n item;\n };\n}\n\nexport interface ElementOptions {\n formatItem: (item: Item) => { text: string };\n compareItem?: (a: Item, b: Item) => boolean;\n selector?: Observable>;\n}\n\n@Component({\n selector: 'rr-select-tag-input-element',\n templateUrl: './select-tag-input-element.component.html',\n styleUrls: ['./select-tag-input-element.component.scss'],\n standalone: true,\n imports: [CommonModule],\n})\nexport class SelectTagInputElementComponent<\n F extends Filters,\n K extends keyof F = keyof F,\n R extends Arrayable = Arrayable,\n> implements FilterBarInputElement, AfterViewInit\n{\n @Input() element: FilterBarElement;\n @Input() filterValueSub: BehaviorSubject;\n @Output() valueChanged: EventEmitter = new EventEmitter();\n @Input() options: ElementOptions;\n\n @ViewChild('inputText') inputText: ElementRef;\n @ViewChild('tagText') tagText: ElementRef;\n searchInputValue: string = '';\n\n items: SelectableItem[] = [];\n filtered: Item[] = [];\n\n tagValue: string = '';\n\n constructor() {}\n\n get filteredItems() {\n return this.searchInputValue.length\n ? this.items.filter((i) =>\n i.text.toLowerCase().includes(this.searchInputValue.toLowerCase()),\n )\n : this.items;\n }\n\n setValue(value) {\n this.filtered = value;\n\n if (!this.items || !this.filtered) return;\n this.updateSelectedItems();\n }\n\n updateSelectedItems() {\n console.log(\n 'SelectInputElement',\n 'updateSelectedItems:',\n this.filtered,\n this.items,\n );\n\n if (!this.filtered) return;\n\n this.items = this.items.map((item) => {\n console.log('SelectInputElement', 'updateSelectedItem:', this.items);\n return {\n ...item,\n selected: this.filtered.some(\n (v) => this.options.compareItem?.(v, item.value) ?? v === item.value,\n ),\n value: item.value,\n };\n });\n\n console.log(\n 'SelectInputElement',\n 'selectedItems:',\n this.items.filter((i) => i.selected),\n );\n\n this.sortItems();\n this.updateBadge();\n }\n\n ngAfterViewInit(): void {\n // get our currently selected options from the filter...\n this.filterValueSub.subscribe((selected) => {\n if (!selected) {\n this.setValue([]);\n } else {\n this.setValue(selected);\n }\n });\n }\n\n updateTagFilter() {\n this.searchInputValue = this.inputText.nativeElement.value;\n }\n\n updateBadge() {\n this.element.badge = this.items\n .map((r) => r.selected)\n .filter((r) => r).length;\n }\n\n public label: string;\n\n init(element: FilterBarElement) {\n // console.log('SelectInputElementComponent', 'init', element);\n this.element = element as any;\n\n if ('label' in this.element.config) {\n this.label = this.element.config.label;\n }\n\n // get all our options that can be selected...\n if (this.options.selector) {\n this.options.selector?.pipe(take(2)).subscribe((newSelectableOptions) => {\n this.items = [];\n newSelectableOptions.forEach((value) =>\n this.items.push({\n ...this.options.formatItem(value),\n value,\n }),\n );\n\n this.updateSelectedItems();\n });\n }\n }\n\n sortItems() {\n // if (!this.items) return;\n // this.items = this.items.sort((a, b) => {\n // if (a.selected && !b.selected) return -1;\n // if (!a.selected && b.selected) return 1;\n // if (a.text < b.text) return -1;\n // if (a.text > b.text) return 1;\n // return 0;\n // });\n }\n\n getValue() {\n return (this.items ?? [])\n .filter((item) => item.selected)\n .map((item) => item.value) as R; // shouldn't need this hack\n }\n\n toggleResultCheck(item: SelectableItem>, event: Event | MouseEvent) {\n event.stopPropagation();\n\n this.items = this.items.map((i) => {\n if (\n this.options.compareItem &&\n !this.options.compareItem(i.value, item.value)\n )\n return i;\n if (i.value !== item.value) return i;\n\n return {\n ...i,\n selected: i.selected !== undefined ? !i.selected : true,\n };\n });\n\n // this.sortItems();\n this.valueChanged.emit(this.getValue());\n }\n\n detectChanges(item: SelectableItem>, event: Event | KeyboardEvent) {\n event.stopPropagation();\n this.items = this.items.map((i) => {\n if (\n this.options.compareItem &&\n !this.options.compareItem(i.value, item.value)\n )\n return i;\n if (i.value !== item.value) return i;\n\n return {\n ...i,\n selected: true,\n value: { ...i.value, value: event.target['value'] },\n };\n });\n\n // this.sortItems();\n this.valueChanged.emit(this.getValue());\n }\n}\n","import { Component, ViewChild } from '@angular/core';\n\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport {\n AbstractFilterService,\n RRFilterBarComponent,\n RRFilterModule,\n buildInputElement,\n} from 'projects/web-ui-component-library/src';\nimport { DateInputElementComponent } from 'projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/date-input-element/date-input-element.component';\nimport { TextInputElementComponent } from 'projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/text-input-element/text-input-element.component';\nimport {\n CollectionScreenStore,\n CollectionTag,\n} from '../../../../collection-screen.state';\nimport { ITagService } from 'projects/content-service-cms/src/app/data/api';\nimport { CustomerStorageService } from 'projects/content-service-cms/src/app/customer/service/customer-storage.service';\nimport { SelectTagInputElementComponent } from 'projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/select-tag-input-element/select-tag-input-element.component';\n\n@Component({\n selector: 'app-collection-search-filter-bar',\n standalone: true,\n imports: [RRFilterModule],\n templateUrl: './collection-search-filter-bar.component.html',\n styleUrls: ['./collection-search-filter-bar.component.scss'],\n})\nexport class CollectionSearchFilterBarComponent {\n clearFilterValues() {\n this.store.setFilters({});\n }\n @ViewChild('filterBar') filterBar: RRFilterBarComponent;\n\n requestFilterService: RequestFilterService;\n\n constructor(\n private logger: ILogger,\n public store: CollectionScreenStore,\n private _tagService: ITagService,\n private _customerStorageService: CustomerStorageService,\n ) {\n this.requestFilterService = new RequestFilterService(store);\n\n this.store.filters$.subscribe((filters) => {\n this.requestFilterService.filterValues.next(filters);\n });\n this._tagService\n .getAllTagsByCustomerId(\n this._customerStorageService.getSelectedCustomer(),\n )\n .then((tags) => {\n store.setTags(\n tags.map((t) => ({ name: t.name, uuid: t.id, value: '' })),\n );\n });\n this.requestFilterService.filterValues.subscribe((filters) => {\n this.logger.debug('RequestListActionBar', 'filterValues:', filters);\n this.store.setFilters(filters);\n });\n }\n}\n\nexport type CollectionFilters = {\n createdAt: { from: Date; to: Date };\n name: string;\n sku: string;\n tags: CollectionTag[];\n};\n\nclass RequestFilterService extends AbstractFilterService {\n constructor(store: CollectionScreenStore) {\n super({\n createdAt: {\n id: 'createdAt',\n label: 'Created',\n icon: 'calendar',\n ...buildInputElement(DateInputElementComponent),\n },\n sku: {\n id: 'sku',\n label: 'Reference',\n searchable: true,\n ...buildInputElement(TextInputElementComponent),\n },\n name: {\n id: 'name',\n label: 'Name',\n searchable: true,\n ...buildInputElement(TextInputElementComponent),\n },\n tags: {\n id: 'tags',\n icon: 'tags',\n label: 'Tags',\n searchable: true,\n ...buildInputElement<\n SelectTagInputElementComponent\n >(SelectTagInputElementComponent, {\n formatItem: (item) => ({\n text: item.name,\n }),\n compareItem: (a, b) => a && b && a.uuid === b.uuid,\n selector: store.select((state) =>\n state.tags.map((t) => ({ name: t.name, uuid: t.uuid, value: '' })),\n ),\n }),\n },\n });\n }\n}\n","\n","
\n \n
\n \n
\n \n
\n","/* eslint-disable max-lines-per-function */\nimport { AfterViewInit, Component, OnDestroy } from '@angular/core';\nimport { CustomerStorageService } from 'projects/content-service-cms/src/app/customer/service/customer-storage.service';\nimport { PRODUCT_TYPE } from 'projects/content-service-cms/src/app/data';\nimport {\n ICentralAssetPlatformService,\n IRequestService,\n PagingRequestDTO,\n} from 'projects/content-service-cms/src/app/data/api';\nimport {\n Observable,\n Subject,\n combineLatest,\n debounceTime,\n from,\n takeUntil,\n} from 'rxjs';\nimport { CollectionScreenStore } from '../../collection-screen.state';\nimport { CommonModule } from '@angular/common';\nimport { ReferenceEntryComponent } from './components/reference-entry/reference-entry.component';\nimport {\n ConfigurationDTO,\n ConfigurationResultDTO,\n} from '@reactivereality/cs-api-sdk';\n\nimport { InputTextComponent } from '../../../components/inputs/input-text/input-text.component';\nimport {\n CollectionFilters,\n CollectionSearchFilterBarComponent,\n} from './components/collection-search-filter-bar/collection-search-filter-bar.component';\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\nimport { IPaginationDataProviderInterface } from '../../../request-overview/services/pagination-data-provider.interface';\nimport { ComponentPaginationDataProvider } from '../../../request-overview/services/component-pagination-data-provider';\nimport { RequestListPaginationComponent } from '../../../request-overview/components/request-list-page/request-list-pagination/request-list-pagination.component';\nimport { SelectionModalStore } from '../../../request-overview/components/create-request-modal/store/selection-modal-store';\nimport { SelectedFilters } from 'projects/web-ui-component-library/src';\n\nexport interface IReferenceSelectionData {\n id: string;\n type: PRODUCT_TYPE;\n name: string;\n reference: string;\n organizationId: string;\n thumbnail?: string;\n additionalDataUrl?: string;\n results: ConfigurationResultDTO[];\n synced: boolean;\n collectionEnabled?: boolean;\n}\n\n@Component({\n selector: 'app-reference-selection',\n standalone: true,\n imports: [\n CommonModule,\n ReferenceEntryComponent,\n InputTextComponent,\n CollectionSearchFilterBarComponent,\n PaginationModule,\n RequestListPaginationComponent,\n ],\n templateUrl: './reference-selection.component.html',\n styleUrl: './reference-selection.component.scss',\n providers: [\n SelectionModalStore,\n {\n provide: IPaginationDataProviderInterface,\n useClass: ComponentPaginationDataProvider,\n },\n ],\n})\nexport class ReferenceSelectionComponent implements AfterViewInit, OnDestroy {\n public requestList: IReferenceSelectionData[] = [];\n private _abortController: AbortController;\n private _currentPage = 1;\n private _onDestroy$: Subject;\n private _selectedType: any;\n public garments: IReferenceSelectionData[] | undefined = undefined;\n\n constructor(\n public createCollectionStore: CollectionScreenStore,\n private _customerStorageService: CustomerStorageService,\n private _requestService: IRequestService,\n private _store: SelectionModalStore,\n private _cap: ICentralAssetPlatformService,\n ) {}\n async ngAfterViewInit(): Promise {\n this._onDestroy$ = new Subject();\n\n combineLatest([\n this.createCollectionStore.searchProductType$,\n this.createCollectionStore.filters$,\n this._store.currentPage$,\n ])\n .pipe(debounceTime(500))\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(async ([type, filters, currentPage]) => {\n if (this._selectedType !== type) {\n this._selectedType = type;\n this._currentPage = 1;\n this._store.updateCurrentPage(1);\n } else {\n this._currentPage = currentPage;\n }\n // if (type === PRODUCT_TYPE.GARMENT_2D) {\n // this._currentPage = 1;\n // do {\n // const configurations = await this.getLazyRequests(\n // [type],\n // this.formatFilters(filters),\n // this.formatTags(filters),\n // );\n // let mapped = configurations.map((c) => {\n // return {\n // id: c.id,\n // name: c.name,\n // reference: `gid://pictofit/sku/${c.sku}`,\n // type: c.productTypeId,\n // thumbnail: c.previewUrl,\n // organizationId: c.customerId,\n // additionalDataUrl: undefined,\n // results: c.results,\n // } as IReferenceSelectionData;\n // });\n // //check if synced to CAP\n // const references = mapped.map((r) => r.reference);\n // this._cap\n // .getId(mapped[0].organizationId, references)\n // .then((ids) => {\n // mapped = mapped.map((r, index) => {\n // const syncedResultId = ids[index];\n // return {\n // ...r,\n // synced: syncedResultId !== undefined,\n // };\n // });\n // if (this.garments === undefined) {\n // this.garments = mapped;\n // } else {\n // this.garments = [...this.garments, ...mapped];\n // }\n // this.createCollectionStore.setFilteredCollections(\n // this.garments,\n // );\n // this._store.updatePageCount(\n // Math.ceil(this.garments.length / 10),\n // );\n // });\n // } while (this._currentPage++ <= 10);\n // } else if (type !== PRODUCT_TYPE.UNDEFINED) {\n if (type !== PRODUCT_TYPE.UNDEFINED) {\n this.getRequests(\n [type],\n this.formatFilters(filters),\n this.formatTags(filters),\n ).subscribe((response) => {\n let mapped = response.configurations.map((c) => {\n return {\n id: c.id,\n name: c.name,\n reference: `gid://pictofit/sku/${c.sku}`,\n type: c.productTypeId,\n thumbnail: c.previewUrl,\n organizationId: c.customerId,\n additionalDataUrl:\n type === PRODUCT_TYPE.OUTFIT_2D_PARALLAX\n ? getOutfitParallaxInfoUrl(c)\n : undefined,\n results: c.results,\n } as IReferenceSelectionData;\n });\n //check if synced to CAP\n const mappedPromise = mapped.map(async (r) => {\n const id = await this._cap.getId(r.organizationId, r.reference);\n return {\n ...r,\n synced: id?.length > 0,\n };\n });\n Promise.all(mappedPromise).then((res) => {\n mapped = res;\n //filter out not-collection-enabled outfits\n if (type === PRODUCT_TYPE.OUTFIT_2D_PARALLAX) {\n mapped = mapped.filter((request) => {\n const webResults = request.results.filter(\n (res) => res.format === 'web',\n );\n if (webResults.length > 0) {\n request.collectionEnabled = webResults[0].files.some(\n (file) => {\n //if we find this file, it should be an outfit made to be added to collections\n return file.name.includes('large_0.65.webp');\n },\n );\n }\n return webResults.length > 0;\n });\n }\n this.createCollectionStore.setFilteredCollections(mapped);\n this._store.updatePageCount(response.paging.pageCount);\n });\n });\n }\n });\n\n this.createCollectionStore.filteredRequests$.subscribe((data) => {\n this.requestList = data;\n });\n }\n formatFilters(filters: SelectedFilters): any {\n const result = {};\n if (filters.name) {\n result['name'] = filters.name;\n }\n if (filters.sku) {\n result['sku'] = filters.sku;\n }\n if (filters.createdAt) {\n const res = [\n filters.createdAt.from.getTime() / 1000,\n filters.createdAt.to.getTime() / 1000,\n ];\n result['createdAt'] = res;\n }\n return result;\n }\n\n formatTags(filters: SelectedFilters): any {\n let result = '{';\n if (filters.tags) {\n filters.tags.forEach((tag) => {\n if (tag.uuid) {\n result += `\"${tag.uuid}\":[\"${tag.value}\"],`;\n }\n });\n }\n result += '}';\n return result;\n }\n ngOnDestroy(): void {\n if (this._onDestroy$) {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n }\n\n private getRequests(\n type: PRODUCT_TYPE[],\n filters,\n tags: { name: string; value: string }[],\n ): Observable {\n let requestFilter = {\n productTypeId: type,\n stateId: [4, 13],\n };\n\n requestFilter = { ...requestFilter, ...filters };\n\n this._abortController = new AbortController();\n return from(\n this._requestService.getAllCustomerRequests(\n this._customerStorageService.getSelectedCustomer(),\n JSON.stringify(requestFilter),\n this._currentPage,\n 10,\n tags.length > 0 ? tags.toString() : undefined,\n false,\n this._abortController.signal,\n ),\n );\n }\n\n private async getLazyRequests(\n type: PRODUCT_TYPE[],\n filters,\n tags: { name: string; value: string }[],\n ) {\n let requestFilter = {\n productTypeId: type,\n stateId: [4, 13],\n };\n\n requestFilter = { ...requestFilter, ...filters };\n\n this._abortController = new AbortController();\n\n const response = await this._requestService.getAllCustomerRequests(\n this._customerStorageService.getSelectedCustomer(),\n JSON.stringify(requestFilter),\n this._currentPage,\n 2,\n tags.length > 0 ? tags.toString() : undefined,\n false,\n this._abortController.signal,\n );\n\n if (response && response.configurations?.length > 0) {\n return response.configurations;\n } else {\n return undefined;\n }\n }\n}\nexport function getOutfitParallaxInfoUrl(c: ConfigurationDTO): string {\n //extract the json file from the config.\n const webResult = c.results.filter(\n (o) => o.format.toLocaleLowerCase() === 'web',\n );\n if (webResult.length > 0) {\n const result = webResult[0];\n const json = result.files.find((o) => o.name === 'resolved.json');\n if (json) {\n return json.url;\n } else return undefined;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ISimpleFileService } from '../../data/api';\nimport { Injectable } from '@angular/core';\nimport { OutfitReference } from '../collection-screen.state';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SimpleFileService implements ISimpleFileService {\n constructor(private _http: HttpClient) {}\n public readJsonFile = (url: string): Observable => {\n return this._http.get(url, { responseType: 'json' });\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n GarmentThumbnailPipe,\n ProductTypePipe,\n} from '../../../utils/CommonPipes';\nimport { StylingOptionsComponent } from '../../garment-selection/garment-selection-entry/styling-options/styling-options.component';\nimport { ConfigurationDisplayComponent } from '../../garment-selection/configuration-display/configuration-display.component';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { AccessoryDTO } from '../../../data/api';\nimport { ACCESSORY_SLOT } from '../accessory-selection.component';\n\n@Component({\n selector: 'app-accessory-selection-entry',\n standalone: true,\n imports: [\n CommonModule,\n ProductTypePipe,\n GarmentThumbnailPipe,\n StylingOptionsComponent,\n ConfigurationDisplayComponent,\n TooltipModule,\n ],\n templateUrl: './accessory-selection-entry.component.html',\n styleUrl: './accessory-selection-entry.component.scss',\n})\nexport class AccessorySelectionEntryComponent {\n @Input() public accessory: AccessoryDTO;\n @Input() public slot: ACCESSORY_SLOT;\n @Output() public deleteClicked = new EventEmitter();\n @Output() public useClicked = new EventEmitter();\n\n public deleteEntry(_: MouseEvent) {\n this.deleteClicked.emit(this.accessory);\n }\n}\n","\n \n
\n \n
\n\n","\n \n\n\n
\n

Accessories

\n
\n \n \n\n \n
\n \n \n
\n \n \n \n\n \n
\n \n \n
\n \n \n \n\n \n
\n \n \n
\n \n
\n \n \n
\n
Remove all
\n
\n \n\n","import {\n Component,\n ElementRef,\n OnDestroy,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { ILogger } from '../../logging';\nimport { ICustomerService, IRequestService } from '../../data';\nimport { NgStorageManagerService } from '../../core/services/ng-storage-manager.service';\nimport { CreateRequestModalStore } from '../../request-overview/components/create-request-modal/create-request-modal.state';\nimport { ModalService } from '../../modal/modal.service';\nimport { CommonModule } from '@angular/common';\nimport { AddGarmentModalComponent } from '../garment-selection/add-garment-modal/add-garment-modal.component';\nimport { AddItemComponent } from '../add-item/add-item.component';\nimport { ConfigurationDisplayComponent } from '../garment-selection/configuration-display/configuration-display.component';\nimport { RRSpinnerModule } from 'projects/web-ui-component-library/src';\nimport { IAccessorySelectionService } from './service/iaccessory-selection.service';\nimport { AccessorySelectionEntryComponent } from './accessory-selection-entry/accessory-selection-entry.component';\nimport { AccessoryDTO } from '../../data/api';\nimport { Subject, takeUntil } from 'rxjs';\n\nexport enum ACCESSORY_SLOT {\n TOP = 'TOP',\n MIDDLE = 'MIDDLE',\n BOTTOM = 'BOTTOM',\n}\n\nexport type SelectedAccessories = {\n TOP: AccessoryDTO | undefined;\n MIDDLE: AccessoryDTO | undefined;\n BOTTOM: AccessoryDTO | undefined;\n};\n\n@Component({\n selector: 'app-accessory-selection',\n standalone: true,\n imports: [\n CommonModule,\n AddGarmentModalComponent,\n AddItemComponent,\n AccessorySelectionEntryComponent,\n ConfigurationDisplayComponent,\n RRSpinnerModule,\n ],\n templateUrl: './accessory-selection.component.html',\n styleUrl: './accessory-selection.component.scss',\n})\nexport class AccessorySelectionComponent implements OnDestroy {\n @ViewChild('addGarments') addGarments: TemplateRef;\n\n private _onDestroy$: Subject;\n public selectedAccessories: SelectedAccessories = {\n TOP: undefined,\n MIDDLE: undefined,\n BOTTOM: undefined,\n };\n public currentSlot: ACCESSORY_SLOT | undefined = undefined;\n\n constructor(\n public accessorySelectionService: IAccessorySelectionService,\n private logger: ILogger,\n private _requestService: IRequestService,\n private _customerService: ICustomerService,\n private _localStorageService: NgStorageManagerService,\n private _elementRef: ElementRef,\n public createRequestModalStore: CreateRequestModalStore,\n public modalService: ModalService,\n ) {\n this._onDestroy$ = new Subject();\n\n this.accessorySelectionService.selectedGarments$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe({\n next: this.onAccessorySelected,\n error: console.error,\n });\n }\n\n ngOnDestroy(): void {\n this.accessorySelectionService.updateGarmentForSlot(\n ACCESSORY_SLOT.TOP,\n undefined,\n );\n this.accessorySelectionService.updateGarmentForSlot(\n ACCESSORY_SLOT.MIDDLE,\n undefined,\n );\n this.accessorySelectionService.updateGarmentForSlot(\n ACCESSORY_SLOT.BOTTOM,\n undefined,\n );\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n\n private onAccessorySelected = (accessories: SelectedAccessories) => {\n this.logger.debug('onAccessorySelected', accessories);\n if (this.currentSlot !== undefined) {\n this.selectedAccessories[this.currentSlot] = accessories[0];\n }\n };\n\n setGarmentForCurrentSlot($event: AccessoryDTO[]) {\n this.accessorySelectionService.updateGarmentForSlot(\n this.currentSlot,\n $event[0],\n );\n this.createRequestModalStore.setAccessories(\n this.accessorySelectionService.currentSelectedGarments(),\n );\n }\n\n addAccessoriesClicked(slot: string) {\n this.currentSlot = ACCESSORY_SLOT[slot.toUpperCase()];\n this.modalService.show({\n title: 'Select Garments',\n template: this.addGarments,\n });\n }\n deleteAllAccessories() {\n this.accessorySelectionService.setSelectedGarments({\n TOP: undefined,\n MIDDLE: undefined,\n BOTTOM: undefined,\n });\n }\n // dressAccessory(accessory: AccessoryDTO) {\n // let toBeDressed: AccessoryDTO[] = [];\n // const currentDressed = this.accessorySelectionService.currentDressed();\n // if (currentDressed.find((g) => g.id === accessory.id)) {\n // toBeDressed = currentDressed.filter((g) => g.id !== accessory.id);\n // } else {\n // toBeDressed = [...currentDressed, accessory];\n // }\n // this.accessorySelectionService.setDressedGarments(toBeDressed);\n // this.updateSelectedAccessories();\n // }\n deleteAccessoryEntry(slot: string) {\n this.accessorySelectionService.updateGarmentForSlot(slot, undefined);\n this.createRequestModalStore.setAccessories(\n this.accessorySelectionService.currentSelectedGarments(),\n );\n }\n productType: any;\n showRecentlyUsed() {\n throw new Error('Method not implemented.');\n }\n\n private updateSelectedAccessories() {\n // this.selectedAccessories.forEach((g) => (g.dressed = false));\n // this.selectedAccessories.forEach((selected) => {\n // if (\n // this.accessorySelectionService\n // .currentDressed()\n // .find((dressed) => dressed.id === selected.id)\n // ) {\n // selected.dressed = true;\n // }\n // });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SelectedAccessories } from '../accessory-selection.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class IAccessorySelectionService {\n public abstract selectedGarments$: Observable;\n public abstract currentSelectedGarments: () => SelectedAccessories;\n public abstract setSelectedGarments: (\n accessories: SelectedAccessories,\n ) => void;\n public abstract updateGarmentForSlot: (ACCESSORY_SLOT, AccessoryDTO) => void;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'app-add-item',\n templateUrl: './add-item.component.html',\n styleUrls: ['./add-item.component.scss'],\n standalone: true,\n imports: [CommonModule],\n})\nexport class AddItemComponent {\n @Input() info: string;\n @Output() addItemClicked: EventEmitter;\n\n constructor() {\n this.addItemClicked = new EventEmitter();\n }\n}\n","
\n
{{ info }}
\n
\n
\n","
\n
\n

Avatars

\n\n \n\n \n \n \n \n \n
\n \n \n \n \n This avatar is not valid.\n This avatar has been archived.\n \n\n
\n \n \n \n \n
\n\n
\n {{ avatar?.name }}\n {{ avatar?.sku }}\n
\n {{\n avatar?.createdAt ? (avatar.createdAt | prettyProductDate) : ''\n }}\n \n
\n \n \n
\n
\n \n Cancel\n \n \n Select\n \n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n DateInputElementComponent,\n RRSpinnerModel,\n RRSpinnerModule,\n SelectInputElementComponent,\n} from 'projects/web-ui-component-library/src';\nimport {\n AvatarThumbnailPipe,\n GarmentThumbnailPipe,\n ProductTypePipe,\n} from '../../../utils/CommonPipes';\nimport { AddItemComponent } from '../../add-item/add-item.component';\n\nimport { PRODUCT_TYPE } from '../../../data';\nimport { AvatarDTO, PagingData } from '../../../data/api';\nimport { PrettyProductDatePipe } from '../../../request-overview/components/request-list-page/request-list-row/request-list-row.component';\n\nimport { CustomerStorageService } from '../../../customer/service/customer-storage.service';\nimport { AvatarService } from '../../../virtual-dressing-room/data/services/avatar.service';\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\n\nimport { IPaginationDataProviderInterface } from '../../../request-overview/services/pagination-data-provider.interface';\nimport { ComponentPaginationDataProvider } from '../../../request-overview/services/component-pagination-data-provider';\nimport { RequestListPaginationComponent } from '../../../request-overview/components/request-list-page/request-list-pagination/request-list-pagination.component';\nimport { SelectionModalStore } from '../../../request-overview/components/create-request-modal/store/selection-modal-store';\nimport { ModalService } from '../../../modal/modal.service';\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n debounceTime,\n from,\n switchMap,\n} from 'rxjs';\nimport { FilterSelectionComponent } from '../../filter-selection/filter-selection.component';\nimport { IFilterConfiguration } from '../../filter-selection/types/filter-selection.types';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from '../../../app.state';\n\n@Component({\n selector: 'app-add-avatar-modal',\n templateUrl: './add-avatar-modal.component.html',\n styleUrls: ['./add-avatar-modal.component.scss'],\n imports: [\n CommonModule,\n RRSpinnerModule,\n AddItemComponent,\n GarmentThumbnailPipe,\n AvatarThumbnailPipe,\n ProductTypePipe,\n PrettyProductDatePipe,\n PaginationModule,\n RequestListPaginationComponent,\n NgxSkeletonLoaderModule,\n FilterSelectionComponent,\n ],\n standalone: true,\n providers: [\n [\n SelectionModalStore,\n {\n provide: IPaginationDataProviderInterface,\n useClass: ComponentPaginationDataProvider,\n },\n ],\n ],\n})\nexport class AddAvatarModalComponent implements OnInit, AfterViewInit {\n @Input() public productType: PRODUCT_TYPE.AVATAR_2D | PRODUCT_TYPE.AVATAR_3D;\n @Output() public selectedAvatar: EventEmitter =\n new EventEmitter();\n\n @ViewChild('selectAvatar') modal;\n\n public allAvatars: AvatarDTO[];\n public spinnerStatus: RRSpinnerModel;\n public selAvatar: AvatarDTO;\n public currentPage: number;\n public searchPattern: string;\n public readonly pageSize = 10;\n\n public filterConfiguration: IFilterConfiguration[];\n private _allTags$ = new BehaviorSubject<{ value: string; text: string }[]>(\n undefined,\n );\n private _avatarLookup$: Subject = new Subject();\n private _abortController: AbortController;\n private _filter = {};\n constructor(\n private _customerStorageService: CustomerStorageService,\n private _avatarService: AvatarService,\n private _store: SelectionModalStore,\n private _modalService: ModalService,\n\n private _appStore: Store,\n ) {\n this.spinnerStatus = {\n show: false,\n text: 'Loading...',\n };\n\n this.filterConfiguration = [\n {\n id: 'tags',\n text: 'Tags',\n placeholder: 'Find Tags...',\n type: SelectInputElementComponent,\n data: this._allTags$,\n },\n {\n id: 'createdAt',\n text: 'Created at',\n placeholder: 'Select date',\n type: DateInputElementComponent,\n },\n ];\n }\n async ngAfterViewInit(): Promise {\n combineLatest([\n this._store.currentPage$,\n this._store.searchPattern$,\n this._store.filters$,\n ])\n .pipe(debounceTime(100))\n .subscribe(([currentPage, searchPattern, filter]) => {\n if (currentPage && searchPattern != undefined && filter != undefined) {\n this.currentPage = currentPage;\n this.searchPattern = searchPattern;\n this._filter = filter;\n this._avatarLookup$.next();\n }\n });\n\n //request the garments and enable aborting the request with a new request\n this._avatarLookup$\n .pipe(\n debounceTime(100),\n switchMap(() => {\n this.spinnerStatus.show = true;\n if (this._abortController !== undefined) {\n this._abortController.abort();\n }\n return this.getAvatars();\n }),\n )\n .subscribe(async (result) => {\n (this.allAvatars = result.avatars),\n this._store.updateCurrentPage(this.currentPage);\n this._store.updatePageCount(result.paging.pageCount);\n this.spinnerStatus.show = false;\n });\n\n this.currentPage = 1;\n this.searchPattern = '';\n\n // this._paginationProvider.currentPage$.subscribe((currentPage) => {\n // if (this.currentPage != currentPage) {\n // this.currentPage = currentPage;\n // this.getAvatars();\n // }\n // });\n\n //read all tags from app store\n this._appStore\n .select((state) => state.requestOverview.tags)\n .subscribe((value) => {\n const data = value.map((v) => {\n return { value: v.uuid, text: v.name };\n });\n this._allTags$.next(data);\n });\n }\n\n private getAvatars(): Observable<{\n avatars: AvatarDTO[];\n paging: PagingData;\n }> {\n this.spinnerStatus.show = true;\n let requestFilter = {\n productTypeId: this.productType,\n stateId: [4, 13],\n };\n\n //extract the tags from the filters\n let tags = this._filter['tags'];\n const filters = JSON.parse(JSON.stringify(this._filter));\n if (tags !== undefined) {\n tags = this.convertToTagFormat(tags);\n delete filters['tags'];\n }\n\n requestFilter = { ...requestFilter, ...filters };\n\n if (this.searchPattern !== undefined && this.searchPattern !== '') {\n requestFilter = {\n ...requestFilter,\n ...{ 'name,sku': this.searchPattern },\n };\n }\n\n this._abortController = new AbortController();\n return from(\n this._avatarService.getAvatarsForCustomer(\n JSON.stringify(requestFilter),\n this.productType,\n this._customerStorageService.getSelectedCustomer(),\n this.currentPage,\n this.pageSize,\n tags,\n this._abortController.signal,\n ),\n );\n }\n\n ngOnInit(): void {}\n\n onCheckboxChanged($event: any, avatar: AvatarDTO) {\n const cbs = document.getElementsByName('cb');\n const selElement = $event.target.checked;\n cbs.forEach((data: HTMLInputElement) => {\n data.checked = false;\n });\n if (selElement) {\n if (avatar) {\n this.selAvatar = avatar;\n $event.target.checked = true;\n }\n } else {\n if (avatar) {\n $event.target.checked = false;\n this.selAvatar = undefined;\n }\n }\n $event.stopPropagation();\n }\n\n public closeModal() {\n this._modalService.close();\n }\n\n public selectAvatarClicked() {\n if (this.selAvatar != undefined) {\n this.selectedAvatar.emit(this.selAvatar);\n }\n this.closeModal();\n }\n\n public async searchPatternChanged(event: any) {\n if (event.target?.value === '' || event.target?.value?.length > 0) {\n this.allAvatars = [];\n this._store.updateSearchPattern(event.target.value);\n }\n }\n\n public clearSearchInput() {\n this.allAvatars = [];\n this._store.updateSearchPattern('');\n }\n\n private convertToTagFormat(tags: string): string {\n const values = JSON.parse(tags) as {\n value: string;\n id: string;\n }[];\n const tagId = values.map((v) => {\n return v.id;\n });\n let v = {};\n for (const id of tagId) {\n v = { ...v, [id]: ['*'] };\n }\n return JSON.stringify(v);\n }\n}\n","\n \n\n\n\n\n\n
\n \n
\n
\n {{ selectedAvatar?.name }}\n {{\n selectedAvatar?.productTypeId | productType\n }}\n
\n
\n \n
\n\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { ConfigurationDTO, CustomerDTO } from '@reactivereality/cs-api-sdk';\nimport { Subject, takeUntil } from 'rxjs';\nimport { PRODUCT_TYPE } from '../../data';\nimport { AvatarDTO, IRequestService } from '../../data/api';\nimport { ModalService } from '../../modal/modal.service';\nimport { CreateRequestModalStore } from '../../request-overview/components/create-request-modal/create-request-modal.state';\nimport {\n AvatarThumbnailPipe,\n GarmentThumbnailPipe,\n ProductTypePipe,\n} from '../../utils/CommonPipes';\nimport { AddItemComponent } from '../add-item/add-item.component';\nimport { AddAvatarModalComponent } from './add-avatar-modal/add-avatar-modal.component';\nimport { AvatarSelectionService } from './avatar-selection.service';\nimport { NgStorageManagerService } from '../../core/services/ng-storage-manager.service';\nimport { ICustomerService } from '../../customer';\n\nconst LOCAL_STORAGE_KEY = 'avatarSelection';\nconst LAST_USED_AVATAR = 'lastUsedAvatar';\n\n@Component({\n selector: 'app-avatar-selection-entry',\n templateUrl: './avatar-selection-entry.component.html',\n styleUrls: ['./avatar-selection-entry.component.scss'],\n imports: [\n CommonModule,\n AddItemComponent,\n GarmentThumbnailPipe,\n AvatarThumbnailPipe,\n ProductTypePipe,\n AddAvatarModalComponent,\n ],\n standalone: true,\n})\nexport class AvatarSelectionEntryComponent implements OnInit, OnDestroy {\n protected ngUnsubscribe: Subject = new Subject();\n public avatarType: PRODUCT_TYPE.AVATAR_2D | PRODUCT_TYPE.AVATAR_3D;\n @Input() public selectedAvatar: AvatarDTO;\n @Output() public changeClicked = new EventEmitter();\n @ViewChild('selectAvatar') selectAvatar: TemplateRef;\n\n private _currentCustomer: CustomerDTO;\n\n constructor(\n @Optional() public createRequestModalStore: CreateRequestModalStore,\n public modalService: ModalService,\n public avatarSelectionService: AvatarSelectionService,\n private _localStorageService: NgStorageManagerService,\n private _customerService: ICustomerService,\n private _requestService: IRequestService,\n ) {\n this.avatarSelectionService.onSelect\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.modalService.show({\n title: 'Select Avatar',\n template: this.selectAvatar,\n });\n });\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n async ngOnInit(): Promise {\n this._customerService.currentCustomer$.subscribe((customer) => {\n this._currentCustomer = customer;\n });\n this.createRequestModalStore?.productType$\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((productType) => {\n this.avatarType =\n productType === PRODUCT_TYPE.OUTFIT_2D ||\n productType === PRODUCT_TYPE.GARMENT_2D ||\n productType === PRODUCT_TYPE.OUTFIT_2D_PARALLAX\n ? PRODUCT_TYPE.AVATAR_2D\n : PRODUCT_TYPE.AVATAR_3D;\n });\n if (!this.selectedAvatar) {\n const lastUsedAvatarId = this._localStorageService.getItem(\n [\n LOCAL_STORAGE_KEY,\n LAST_USED_AVATAR,\n PRODUCT_TYPE.AVATAR_2D,\n this._currentCustomer.id,\n ].join('.'),\n 'local',\n );\n if (lastUsedAvatarId === undefined) {\n return;\n }\n const avatar = await this._requestService.getRequestByID(\n lastUsedAvatarId,\n );\n this.selectedAvatar = avatar as AvatarDTO;\n this.createRequestModalStore.setAvatar(this.selectedAvatar);\n }\n }\n\n public onAvatarSelected($event: AvatarDTO) {\n this._localStorageService.setItem(\n [\n LOCAL_STORAGE_KEY,\n LAST_USED_AVATAR,\n PRODUCT_TYPE.AVATAR_2D,\n this._currentCustomer.id,\n ].join('.'),\n $event?.id,\n 'local',\n );\n this.createRequestModalStore.setAvatar($event);\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class AvatarSelectionService {\n public onSelect: EventEmitter = new EventEmitter();\n\n constructor() {}\n\n public selectAvatar(): void {\n this.onSelect.emit();\n }\n}\n","
\n
\n \n
\n
\n
{{ file.fileinformation.fileName }}
\n
\n {{ file.fileinformation.mimeType }} ({{\n calculateFileSize(file.file.size)\n }})\n
\n
\n
\n
Uploading...
\n
\n
\n \n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n FILE_UPLOAD_STATE,\n UploadData,\n} from '../../core/interfaces/upload-data.interface';\n\n@Component({\n selector: 'app-file-upload-entry',\n templateUrl: './file-upload-entry.component.html',\n styleUrls: ['./file-upload-entry.component.scss'],\n standalone: true,\n imports: [CommonModule],\n})\nexport class FileUploadEntryComponent implements OnInit {\n @Input() public file: UploadData;\n @Input() public uploadState: Subject;\n @Output() public deleteClicked = new EventEmitter();\n\n public imageDataUrl;\n public state: FILE_UPLOAD_STATE = FILE_UPLOAD_STATE.SELECTED;\n\n constructor() {}\n\n async ngOnInit(): Promise {\n this.generateUploadThumbnail();\n this.uploadState.subscribe((state) => {\n this.state = state;\n });\n }\n\n public calculateFileSize(sizeInBytes: number): string {\n if (sizeInBytes === 0) {\n return '';\n }\n let val = sizeInBytes / 1000;\n let unit = ' kB';\n if (val >= 1000) {\n val = val / 1000;\n unit = ' MB';\n }\n return `${val.toFixed(1)} ${unit}`;\n }\n\n private blobToBase64(blob) {\n return new Promise((resolve, _) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result);\n reader.readAsDataURL(blob);\n });\n }\n public deleteEntry($event: MouseEvent) {\n this.deleteClicked.emit(this.file);\n }\n\n public async generateUploadThumbnail() {\n const img: HTMLImageElement = document.createElement('img');\n const temp: any = await this.blobToBase64(this.file.file);\n img.src = temp;\n const canvas = document.createElement('canvas');\n img.onload = () => {\n if (img.width > img.height) {\n canvas.height = 64;\n canvas.width = img.width / (img.height / 64);\n } else {\n canvas.width = 64;\n canvas.height = img.height / (img.width / 64);\n }\n const ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n this.imageDataUrl = canvas.toDataURL();\n };\n }\n}\n","
\n \n
\n\n\n\n\n
\n
\n \n
\n
\n\n\n \n
\n
Add Images
\n \n \n
\n
Remove all
\n \n\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MIMETypeDTO } from '@reactivereality/cs-api-sdk';\nimport {\n FILE_UPLOAD_STATE,\n UploadData,\n} from '../../core/interfaces/upload-data.interface';\nimport { IFileInformation, IFileService } from '../../data';\nimport { FileUploadEntryComponent } from '../file-upload-entry/file-upload-entry.component';\nimport { FileUploadComponent } from '../file-upload/file-upload.component';\nimport { v4 as uuid } from 'uuid';\nimport { RequestFilesHelper } from '../../core/helpers/request/request-files.helper';\nimport { Observable, Subject } from 'rxjs';\nimport { ILogger } from '../../logging';\nimport { AlertService } from '../../core/services/alert.service';\n\n@Component({\n selector: 'app-file-upload-full',\n templateUrl: './file-upload-full.component.html',\n styleUrls: ['./file-upload-full.component.scss'],\n standalone: true,\n imports: [CommonModule, FileUploadComponent, FileUploadEntryComponent],\n})\nexport class FileUploadFullComponent implements OnInit {\n @Input() requestId: uuid;\n @Input() title: string;\n @Input() multipleFiles: boolean = true;\n @Input() initialFiles: Observable;\n @Output() filesSelected: EventEmitter = new EventEmitter();\n\n private _validFiletypes: any[];\n public selectedFiles: UploadData[] = [];\n\n constructor(\n private _fileService: IFileService,\n private _logger: ILogger,\n private alertService: AlertService,\n ) {}\n\n ngOnInit(): void {\n this._validFiletypes = [];\n if (this.initialFiles) {\n this.initialFiles.subscribe((f) => {\n this.selectedFiles = f;\n });\n }\n this._fileService.getMimeTypes().then((mimeTypes: MIMETypeDTO[]) => {\n mimeTypes?.forEach((type) => {\n if (type.name !== undefined && type.name !== null && type.name !== '') {\n this._validFiletypes.push(type.name);\n }\n });\n });\n }\n\n onFilesSelected(files: File[] | Event) {\n if (files instanceof Event) {\n const target = files.target;\n this.prepareForUpload(Array.from(target.files));\n this.filesSelected.emit(this.selectedFiles);\n } else {\n if (files && files.length > 0) {\n this.prepareForUpload(Array.from(files));\n this.filesSelected.emit(this.selectedFiles);\n }\n }\n }\n\n singleFileDeleteClicked($event: UploadData) {\n this.selectedFiles = this.selectedFiles.filter((value) => {\n return value.fileinformation.id !== $event.fileinformation.id;\n });\n this.filesSelected.emit(this.selectedFiles);\n }\n\n removeAllClicked() {\n this.selectedFiles = [];\n this.filesSelected.emit(this.selectedFiles);\n }\n\n public prepareForUpload(files: File[]) {\n files.forEach((file) => {\n this._logger.debug('File:', file);\n });\n const failedFiles: Array = [];\n files.forEach((file) => {\n if (file.type === '' || this._validFiletypes.includes(file.type)) {\n const fileInfo: IFileInformation = {\n id: uuid(),\n typeId: RequestFilesHelper.MannequinShotFileType.id,\n configurationId: undefined,\n fileName: file.name,\n mimeType: file.type === '' ? 'application/octet-stream' : file.type,\n };\n this.selectedFiles.push({\n fileinformation: fileInfo,\n file: file,\n uploadState: new Subject(),\n });\n } else {\n failedFiles.push(file);\n }\n });\n\n this._logger.debug('Failed files', failedFiles);\n if (failedFiles.length > 0) {\n this.alertService.showErrorAlert(\n `Failed to add the following files, because they are of the wrong type: ${failedFiles\n .map((f) => f.name)\n .join(', ')}`,\n );\n }\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n HostListener,\n Output,\n} from '@angular/core';\n\n@Directive({\n selector: '[rrDragAndDrop]',\n standalone: true,\n})\nexport class DragAndDropDirective {\n @Output() filesDropped = new EventEmitter();\n @HostBinding('style.background') private background = '#ffffff';\n @HostListener('dragover', ['$event']) dragOver($event: any) {\n $event.preventDefault();\n $event.stopPropagation();\n this.background = 'beige';\n }\n\n @HostListener('drop', ['$event']) drop($event: any) {\n $event.preventDefault();\n $event.stopPropagation();\n this.filesDropped.emit($event.dataTransfer.files);\n this.background = '#ffffff';\n }\n\n @HostListener('dragleave', ['$event']) dragLeave($event: any) {\n $event.preventDefault();\n $event.stopPropagation();\n this.background = '#ffffff';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DragAndDropDirective } from '../../directives/drag-and-drop.directive';\n\n@Component({\n selector: 'app-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n standalone: true,\n imports: [CommonModule, DragAndDropDirective],\n})\nexport class FileUploadComponent implements OnInit {\n @Input() multipleFiles: boolean = true;\n @Output() filesSelected: EventEmitter = new EventEmitter();\n\n constructor() {}\n\n ngOnInit(): void {}\n\n onFilesSelected(event: Event) {\n const target = event.target;\n this.filesSelected.emit(Array.from(target.files));\n }\n\n onFilesDropped(event: any) {\n const files = event;\n this.filesSelected.emit(Array.from(files));\n }\n}\n","\n\n\n
\n
Drop or upload files
\n
\n\n","
\n 0\"\n (click)=\"showFilterList = !showFilterList\"\n >{{ filterCount }}\n \n
\n\n\n\n
\n \n
  • Filter by
  • \n \n {{ filter.text }}\n \n \n
  • 0\" (click)=\"clearAllFilters()\">\n Clear all filters\n
  • \n
    \n
    \n\n
    \n \n
    \n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { FilterOutput } from 'projects/web-ui-component-library/src/lib/filter-elements/interfaces/filter.interface';\n\nimport { RRSelectFilterModule } from 'projects/web-ui-component-library/src/lib/filter-elements/select-filter.module';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n map,\n takeUntil,\n} from 'rxjs';\nimport { ILogger } from '../../logging';\nimport { SelectionModalStore } from '../../request-overview/components/create-request-modal/store/selection-modal-store';\nimport { IFilterConfiguration } from './types/filter-selection.types';\n\nimport { ViewContainerRef } from '@angular/core';\nimport {\n DateInputElementComponent,\n RRLayoutModule,\n SelectInputElementComponent,\n TextInputElementComponent,\n} from 'projects/web-ui-component-library/src';\n\n@Component({\n selector: 'app-filter-selection',\n templateUrl: './filter-selection.component.html',\n styleUrls: ['./filter-selection.component.scss'],\n standalone: true,\n imports: [CommonModule, RRSelectFilterModule, RRLayoutModule],\n})\nexport class FilterSelectionComponent\n implements OnInit, AfterViewInit, OnDestroy\n{\n showFilterList: boolean = false;\n\n @Input()\n public filters: IFilterConfiguration<\n | TextInputElementComponent\n | SelectInputElementComponent\n | DateInputElementComponent\n >[];\n\n @ViewChild('filterContainer', { read: ViewContainerRef })\n container: ViewContainerRef;\n\n public filterCount = 0;\n\n private _clearFilterObservable: BehaviorSubject = new BehaviorSubject(\n '',\n );\n private _onDestroy$: Subject;\n\n constructor(private _logger: ILogger, public store: SelectionModalStore) {\n this._onDestroy$ = new Subject();\n }\n ngAfterViewInit(): void {\n this.filters.forEach((filterConfig) => {\n const { id, type, data, placeholder } = filterConfig;\n\n // handle filter changes happening in the filter component.\n const onChange = (value) => {\n this._logger.debug('Changed value:', id, value);\n this.onFilterChanged({\n id,\n value,\n });\n };\n\n // hide the current open filter when teh back button in the component is clicked.\n const onBackClicked = () => {\n this.store.updateVisibleFilter('');\n };\n\n // build the component...\n const component = this.container.createComponent(type);\n\n // configure it...\n component.instance.inputData$ = combineLatest([\n data ?? new Observable((sub) => sub.next({})),\n this.store.visibleFilter$,\n ]).pipe(\n map(([data, visibleFilter]) => ({\n id,\n placeholder,\n data,\n onChange,\n onBackClicked,\n hidden: visibleFilter !== filterConfig.id,\n })),\n );\n\n component.instance.reset$ = this._clearFilterObservable;\n });\n this.store.countFilters$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((count) => (this.filterCount = count));\n }\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n\n onFilterChanged(output: FilterOutput) {\n this.store.updateFilters(output);\n }\n\n clearAllFilters() {\n this.store.clearFilters();\n this._clearFilterObservable.next('');\n }\n\n clearFilter($event, id: string) {\n this.store.clearFilter(id);\n this._clearFilterObservable.next(id);\n $event.stopPropagation();\n }\n}\n","
    \n
    \n

    Garments

    \n\n \n\n \n \n \n \n \n
    \n \n
    \n \n \n This garment cannot be dressed.\n This garment has been archived.\n \n \n
    \n \n \n \n
    \n
    \n \n Cancel\n \n \n Select\n \n
    \n
    \n
    \n","import { CommonModule, DatePipe } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ConfigurationPublicOnlyDTO } from '@reactivereality/cs-api-sdk';\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\nimport {\n RRSpinnerModel,\n RRSpinnerModule,\n} from 'projects/web-ui-component-library/src';\nimport { CustomerStorageService } from '../../../customer/service/customer-storage.service';\nimport { PRODUCT_TYPE } from '../../../data';\nimport {\n GarmentDTO,\n IRequestResult,\n IRequestService,\n PagingRequestDTO,\n} from '../../../data/api';\nimport { ILogger } from '../../../logging';\nimport { RequestListPaginationComponent } from '../../../request-overview/components/request-list-page/request-list-pagination/request-list-pagination.component';\nimport { ComponentPaginationDataProvider } from '../../../request-overview/services/component-pagination-data-provider';\nimport { IPaginationDataProviderInterface } from '../../../request-overview/services/pagination-data-provider.interface';\nimport {\n GarmentThumbnailPipe,\n ProductTypePipe,\n} from '../../../utils/CommonPipes';\nimport { SelectionModalStore } from '../../../request-overview/components/create-request-modal/store/selection-modal-store';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n debounceTime,\n from,\n switchMap,\n} from 'rxjs';\nimport { FilterSelectionComponent } from '../../filter-selection/filter-selection.component';\nimport { ModalService } from '../../../modal/modal.service';\nimport { IFilterConfiguration } from '../../filter-selection/types/filter-selection.types';\nimport { DateInputElementComponent } from 'projects/web-ui-component-library/src/lib/filter-elements/date-input-element/date-input-element.component';\nimport { SelectInputElementComponent } from 'projects/web-ui-component-library/src/lib/filter-elements/select-input-element/select-input-element.component';\nimport { IAppState } from '../../../app.state';\nimport { Store } from '@ngrx/store';\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\nimport { PrettyProductDatePipe } from '../../../request-overview/components/request-list-page/request-list-row/request-list-row.component';\nimport { ConfigurationDisplayComponent } from '../configuration-display/configuration-display.component';\n\n@Component({\n selector: 'app-add-garment-modal',\n templateUrl: './add-garment-modal.component.html',\n styleUrls: ['./add-garment-modal.component.scss'],\n standalone: true,\n providers: [\n [\n SelectionModalStore,\n {\n provide: IPaginationDataProviderInterface,\n useClass: ComponentPaginationDataProvider,\n },\n ],\n ],\n imports: [\n DatePipe,\n ProductTypePipe,\n RRSpinnerModule,\n CommonModule,\n PaginationModule,\n GarmentThumbnailPipe,\n RequestListPaginationComponent,\n NgxSkeletonLoaderModule,\n FilterSelectionComponent,\n PrettyProductDatePipe,\n ConfigurationDisplayComponent,\n ],\n})\nexport class AddGarmentModalComponent implements OnInit, AfterViewInit {\n @Input() public productType: PRODUCT_TYPE;\n @Input() public currentSelectedGarments: GarmentDTO[];\n @Input() private singleSelect: boolean = false;\n @Output() public setSelectedGarment = new EventEmitter();\n\n @ViewChild('selectGarments') modal;\n\n public allGarments: GarmentDTO[];\n public spinnerStatus: RRSpinnerModel;\n public searchPattern: string;\n public filterConfiguration: IFilterConfiguration[];\n\n private _selGarments: GarmentDTO[] = [];\n private _currentPage: number = 1;\n private _filter = {};\n private _allTags$ = new BehaviorSubject<{ value: string; text: string }[]>(\n undefined,\n );\n\n private _garmentLookup$: Subject = new Subject();\n private _abortController: AbortController;\n constructor(\n private _requestService: IRequestService,\n private _logger: ILogger,\n private _customerStorageService: CustomerStorageService,\n private _store: SelectionModalStore,\n private _modalService: ModalService,\n private _appStore: Store,\n ) {\n this.spinnerStatus = {\n show: false,\n text: 'Loading...',\n };\n\n this.filterConfiguration = [\n {\n id: 'tags',\n text: 'Tags',\n placeholder: 'Find Tags...',\n type: SelectInputElementComponent,\n data: this._allTags$,\n },\n {\n id: 'createdAt',\n text: 'Created at',\n placeholder: 'Select date',\n type: DateInputElementComponent,\n },\n ];\n }\n\n async ngAfterViewInit() {\n combineLatest([\n this._store.currentPage$,\n this._store.searchPattern$,\n this._store.filters$,\n ])\n .pipe(debounceTime(100))\n .subscribe(([currentPage, searchPattern, filter]) => {\n if (currentPage && searchPattern != undefined && filter != undefined) {\n this._currentPage = currentPage;\n this.searchPattern = searchPattern;\n this._filter = filter;\n this._garmentLookup$.next();\n }\n });\n\n //request the garments and enable aborting the request with a new request\n this._garmentLookup$\n .pipe(\n debounceTime(100),\n switchMap(() => {\n this.spinnerStatus.show = true;\n if (this._abortController !== undefined) {\n this._abortController.abort();\n }\n return this.getGarments();\n }),\n )\n .subscribe(async (result) => {\n this.allGarments = await this.mapRequestsToGarments(\n result.configurations,\n );\n this._store.updateCurrentPage(this._currentPage);\n this._store.updatePageCount(result.paging.pageCount);\n this.spinnerStatus.show = false;\n });\n\n //read all tags from app store\n this._appStore\n .select((state) => state.requestOverview.tags)\n .subscribe((value) => {\n const data = value.map((v) => {\n return { value: v.uuid, text: v.name };\n });\n this._allTags$.next(data);\n });\n\n this.reset();\n }\n\n ngOnInit() {}\n\n onCheckboxChanged($event: any, garment: GarmentDTO) {\n const selElement = $event.target.checked;\n if (this.singleSelect) {\n const cbs = document.getElementsByName('cb');\n cbs.forEach((data: HTMLInputElement) => {\n data.checked = false;\n });\n this._selGarments = [];\n }\n if (selElement) {\n if (garment) {\n if (\n this._selGarments.length === 0 ||\n this._selGarments.some((g) => g.id !== garment.id)\n ) {\n this._selGarments.push(garment);\n $event.target.checked = true;\n }\n }\n } else {\n if (garment) {\n $event.target.checked = false;\n this._selGarments = this._selGarments.filter((g) => {\n return g.id !== garment.id;\n });\n }\n }\n $event.stopPropagation();\n }\n public closeModal() {\n this._modalService.close();\n }\n\n public onSelectedGarments() {\n this.setSelectedGarment.emit(this._selGarments);\n this.closeModal();\n }\n\n public getSelected(id: string): boolean {\n if (this._selGarments.length > 0) {\n return this._selGarments.some((g) => g.id === id);\n }\n return false;\n }\n\n private async getMetadata(webResult: IRequestResult) {\n if (!webResult) {\n return;\n }\n const metadataFile = webResult.files.find(\n (o) => o.name === 'metadata.json',\n );\n if (!metadataFile) {\n return;\n }\n const metadataResponse = await fetch(metadataFile.url);\n if (!metadataResponse.ok) {\n return;\n }\n return await metadataResponse.json();\n }\n\n private reset() {\n this.allGarments = [];\n this._selGarments = [...this.currentSelectedGarments];\n this._store.updateSearchPattern('');\n }\n\n private getGarments(): Observable {\n this._logger.debug(`Loading garments for`, this.productType);\n if (\n this.productType === PRODUCT_TYPE.OUTFIT_2D ||\n this.productType === PRODUCT_TYPE.OUTFIT_2D_PARALLAX\n ) {\n return this.getRequests([PRODUCT_TYPE.GARMENT_2D]);\n }\n if (this.productType === PRODUCT_TYPE.OUTFIT_3D) {\n return this.getRequests([\n PRODUCT_TYPE.GARMENT_3D,\n PRODUCT_TYPE.GARMENT_3D_CAD,\n ]);\n }\n }\n\n private getRequests(type: PRODUCT_TYPE[]): Observable {\n let requestFilter = {\n productTypeId: type,\n stateId: [4, 13],\n };\n\n //extract the tags from the filters\n let tags = this._filter['tags'];\n const filters = JSON.parse(JSON.stringify(this._filter));\n if (tags !== undefined) {\n tags = this.convertToTagFormat(tags);\n delete filters['tags'];\n }\n\n requestFilter = { ...requestFilter, ...filters };\n\n if (this.searchPattern !== undefined && this.searchPattern !== '') {\n requestFilter = {\n ...requestFilter,\n ...{ 'name,sku': this.searchPattern },\n };\n }\n\n this._abortController = new AbortController();\n return from(\n this._requestService.getAllCustomerRequests(\n this._customerStorageService.getSelectedCustomer(),\n JSON.stringify(requestFilter),\n this._currentPage,\n 10,\n tags,\n true,\n this._abortController.signal,\n ),\n );\n }\n\n private async mapRequestsToGarments(\n requests: ConfigurationPublicOnlyDTO[],\n ): Promise {\n const garments: GarmentDTO[] = [];\n for (const request of requests) {\n if (\n request.storageInTransit != false ||\n request.storageLocation != null\n ) {\n //configuration is archived or a archiving/restoring process is ongoing\n this._logger.debug('Garment is archived - id: ', request.id);\n const garment = {\n ...request,\n isPublic: false,\n selected: false,\n groupId: 0,\n tuckedIn: false,\n dressed: false,\n tryonable: false,\n archived: true,\n };\n garments.push(garment);\n continue;\n }\n const webresults = request.results.filter((c) => {\n return c.format === 'web';\n });\n\n const metadata = await this.getMetadata(webresults[0]);\n let enabled = true;\n if (metadata === undefined || metadata.garmentGroup === undefined) {\n this._logger.debug(\n 'Garmentgroup is not defined for config id :',\n request.id,\n );\n enabled = false;\n }\n //garment 2ds are always tryonable if they have a webresult\n\n if (this.productType === PRODUCT_TYPE.OUTFIT_3D) {\n const mobileResult = request.results.filter((c) => {\n return c.format === 'mobile';\n });\n if (\n metadata?.tryonable === false ||\n mobileResult === undefined ||\n mobileResult.length === 0\n ) {\n this._logger.debug(\n 'Garment is not tryonable for requestId',\n request.id,\n );\n enabled = false;\n }\n }\n const garment = {\n ...request,\n isPublic: false,\n selected: this.getSelected(request.id),\n groupId: metadata?.garmentGroup ? metadata.garmentGroup : 0,\n tuckedIn: false,\n dressed: false,\n tryonable: enabled,\n };\n garments.push(garment);\n }\n return garments;\n }\n\n public async searchPatternChanged(event: any) {\n if (event.target?.value === '' || event.target?.value?.length > 0) {\n this.allGarments = [];\n this._store.updateSearchPattern(event.target.value);\n }\n }\n\n public clearSearchInput() {\n this.allGarments = [];\n this._store.updateSearchPattern('');\n }\n\n private convertToTagFormat(tags: string): string {\n const values = JSON.parse(tags) as {\n value: string;\n id: string;\n }[];\n const tagId = values.map((v) => {\n return v.id;\n });\n let v = {};\n for (const id of tagId) {\n v = { ...v, [id]: ['*'] };\n }\n return JSON.stringify(v);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { AccessoryDTO, GarmentDTO } from '../../../data/api';\nimport {\n GarmentThumbnailPipe,\n ProductTypePipe,\n} from '../../../utils/CommonPipes';\n\n@Component({\n selector: 'app-configuration-display',\n templateUrl: './configuration-display.component.html',\n styleUrls: ['./configuration-display.component.scss'],\n standalone: true,\n imports: [CommonModule, ProductTypePipe, GarmentThumbnailPipe],\n})\nexport class ConfigurationDisplayComponent implements OnInit {\n @Input() public garment: GarmentDTO | AccessoryDTO;\n\n public garmentToDisplay: any[];\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n {{ garment?.name }}\n {{ garment?.productTypeId | productType }}\n
    \n
    \n","import{__awaiter as e}from\"tslib\";import{GarmentGroupID as r}from\"../../../Data/GarmentGroup.js\";class t{constructor(){this._garments=[]}get garments(){return this._garments}set garments(e){this._garments=e}addGarment(r){return e(this,void 0,void 0,(function*(){return this.addGarmentSync(r)}))}addGarmentSync(e){switch(e.garmentGroupId){case r.UNDERWEAR:this.onUnderwearAdded(e);break;case r.PANTS:this.onPantsAdded(e);break;case r.SKIRTS:this.onSkirtAdded(e);break;case r.SHIRTS:this.onShirtAdded(e);break;case r.DRESSES:this.onDressAdded(e);break;case r.SWEATERS:this.onSweaterAdded(e);break;case r.JACKETS:this.onJacketAdded(e);break;case r.SUITS:this.onSuitAdded(e);break;case r.ACCESSORIES:this.onAccessoryAdded(e);break;case r.LEFT_SHOE:this.onLeftShoeAdded(e);break;case r.RIGHT_SHOE:this.onRightShoeAdded(e)}this._garments.push(e)}removeGarment(r){return e(this,void 0,void 0,(function*(){return this.removeGarmentSync(r)}))}removeGarmentSync(e){this._garments=this._garments.filter((r=>r!==e))}onUnderwearAdded(e){let r=0;this._garments=this._garments.filter((t=>t.garmentGroupId===e.garmentGroupId&&r<1?(r++,!0):t.garmentGroupId!==e.garmentGroupId))}onPantsAdded(e){this._garments=this._garments.filter((t=>t.garmentGroupId!==e.garmentGroupId&&t.garmentGroupId!==r.SKIRTS&&t.garmentGroupId!==r.DRESSES))}onSkirtAdded(e){this._garments=this._garments.filter((t=>t.garmentGroupId!==e.garmentGroupId&&t.garmentGroupId!==r.PANTS&&t.garmentGroupId!==r.DRESSES))}onShirtAdded(e){this._garments=this._garments.filter((r=>r.garmentGroupId!==e.garmentGroupId))}onSuitAdded(e){this._garments=this._garments.filter((r=>r.garmentGroupId!==e.garmentGroupId))}onDressAdded(e){this._garments=this._garments.filter((t=>t.garmentGroupId!==e.garmentGroupId&&t.garmentGroupId!==r.PANTS&&t.garmentGroupId!==r.SKIRTS))}onSweaterAdded(e){this._garments=this._garments.filter((r=>r.garmentGroupId!==e.garmentGroupId))}onJacketAdded(e){this._garments=this._garments.filter((r=>r.garmentGroupId!==e.garmentGroupId))}onAccessoryAdded(e){}onLeftShoeAdded(e){this._garments=this._garments.filter((r=>r.garmentGroupId!==e.garmentGroupId))}onRightShoeAdded(e){this._garments=this._garments.filter((r=>r.garmentGroupId!==e.garmentGroupId))}orderGarmentsByGroupId(e,t){const d=[r.UNDERWEAR,r.PANTS,r.SKIRTS,r.SHIRTS,r.DRESSES,r.SWEATERS,r.SUITS,r.JACKETS,r.ACCESSORIES,r.LEFT_SHOE,r.RIGHT_SHOE];return e.tuckedIn?-1:t.tuckedIn?1:d.findIndex((r=>r===e.garmentGroupId))e===t.garmentGroupId))?-1:d.findIndex((r=>r===e.garmentGroupId))>d.findIndex((e=>e===t.garmentGroupId))?1:0}getOrderedGarments(){return this._garments.sort(this.orderGarmentsByGroupId)}}export{t as GarmentDressedLogic};\n","import * as i0 from '@angular/core';\nimport { Type, TemplateRef, ComponentRef, ChangeDetectorRef, ɵNoopNgZone, VERSION, InjectionToken, Injectable, Optional, Directive, Input, ViewContainerRef, Component, ViewChild, EventEmitter, ChangeDetectionStrategy, Output, ContentChildren, Inject, ViewChildren, NgModule } from '@angular/core';\nimport * as i2 from '@angular/forms';\nimport { AbstractControl, FormGroup, FormArray, FormControl, NgControl, Validators } from '@angular/forms';\nimport { isObservable, of, merge, Observable, Subject } from 'rxjs';\nimport { map, distinctUntilChanged, startWith, debounceTime, filter, switchMap, take, tap } from 'rxjs/operators';\nimport * as i2$1 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i1 from '@angular/platform-browser';\n\nfunction disableTreeValidityCall(form, callback) {\n const _updateTreeValidity = form._updateTreeValidity.bind(form);\n form._updateTreeValidity = () => { };\n callback();\n form._updateTreeValidity = _updateTreeValidity;\n}\nfunction getFieldId(formId, field, index) {\n if (field.id) {\n return field.id;\n }\n let type = field.type;\n if (!type && field.template) {\n type = 'template';\n }\n if (type instanceof Type) {\n type = type.prototype.constructor.name;\n }\n return [formId, type, field.key, index].join('_');\n}\nfunction hasKey(field) {\n return !isNil(field.key) && field.key !== '' && (!Array.isArray(field.key) || field.key.length > 0);\n}\nfunction getKeyPath(field) {\n if (!hasKey(field)) {\n return [];\n }\n /* We store the keyPath in the field for performance reasons. This function will be called frequently. */\n if (field._keyPath?.key !== field.key) {\n let path = [];\n if (typeof field.key === 'string') {\n const key = field.key.indexOf('[') === -1 ? field.key : field.key.replace(/\\[(\\w+)\\]/g, '.$1');\n path = key.indexOf('.') !== -1 ? key.split('.') : [key];\n }\n else if (Array.isArray(field.key)) {\n path = field.key.slice(0);\n }\n else {\n path = [`${field.key}`];\n }\n defineHiddenProp(field, '_keyPath', { key: field.key, path });\n }\n return field._keyPath.path.slice(0);\n}\nconst FORMLY_VALIDATORS = ['required', 'pattern', 'minLength', 'maxLength', 'min', 'max'];\nfunction assignFieldValue(field, value) {\n let paths = getKeyPath(field);\n if (paths.length === 0) {\n return;\n }\n let root = field;\n while (root.parent) {\n root = root.parent;\n paths = [...getKeyPath(root), ...paths];\n }\n if (value === undefined && field.resetOnHide) {\n const k = paths.pop();\n const m = paths.reduce((model, path) => model[path] || {}, root.model);\n delete m[k];\n return;\n }\n assignModelValue(root.model, paths, value);\n}\nfunction assignModelValue(model, paths, value) {\n for (let i = 0; i < paths.length - 1; i++) {\n const path = paths[i];\n if (!model[path] || !isObject(model[path])) {\n model[path] = /^\\d+$/.test(paths[i + 1]) ? [] : {};\n }\n model = model[path];\n }\n model[paths[paths.length - 1]] = clone(value);\n}\nfunction getFieldValue(field) {\n let model = field.parent ? field.parent.model : field.model;\n for (const path of getKeyPath(field)) {\n if (!model) {\n return model;\n }\n model = model[path];\n }\n return model;\n}\nfunction reverseDeepMerge(dest, ...args) {\n args.forEach((src) => {\n for (const srcArg in src) {\n if (isNil(dest[srcArg]) || isBlankString(dest[srcArg])) {\n dest[srcArg] = clone(src[srcArg]);\n }\n else if (objAndSameType(dest[srcArg], src[srcArg])) {\n reverseDeepMerge(dest[srcArg], src[srcArg]);\n }\n }\n });\n return dest;\n}\n// check a value is null or undefined\nfunction isNil(value) {\n return value == null;\n}\nfunction isUndefined(value) {\n return value === undefined;\n}\nfunction isBlankString(value) {\n return value === '';\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction objAndSameType(obj1, obj2) {\n return (isObject(obj1) &&\n isObject(obj2) &&\n Object.getPrototypeOf(obj1) === Object.getPrototypeOf(obj2) &&\n !(Array.isArray(obj1) || Array.isArray(obj2)));\n}\nfunction isObject(x) {\n return x != null && typeof x === 'object';\n}\nfunction isPromise(obj) {\n return !!obj && typeof obj.then === 'function';\n}\nfunction clone(value) {\n if (!isObject(value) ||\n isObservable(value) ||\n value instanceof TemplateRef ||\n /* instanceof SafeHtmlImpl */ value.changingThisBreaksApplicationSecurity ||\n ['RegExp', 'FileList', 'File', 'Blob'].indexOf(value.constructor?.name) !== -1) {\n return value;\n }\n if (value instanceof Set) {\n return new Set(value);\n }\n if (value instanceof Map) {\n return new Map(value);\n }\n if (value instanceof Uint8Array) {\n return new Uint8Array(value);\n }\n if (value instanceof Uint16Array) {\n return new Uint16Array(value);\n }\n if (value instanceof Uint32Array) {\n return new Uint32Array(value);\n }\n // https://github.com/moment/moment/blob/master/moment.js#L252\n if (value._isAMomentObject && isFunction(value.clone)) {\n return value.clone();\n }\n if (value instanceof AbstractControl) {\n return null;\n }\n if (value instanceof Date) {\n return new Date(value.getTime());\n }\n if (Array.isArray(value)) {\n return value.slice(0).map((v) => clone(v));\n }\n // best way to clone a js object maybe\n // https://stackoverflow.com/questions/41474986/how-to-clone-a-javascript-es6-class-instance\n const proto = Object.getPrototypeOf(value);\n let c = Object.create(proto);\n c = Object.setPrototypeOf(c, proto);\n // need to make a deep copy so we dont use Object.assign\n // also Object.assign wont copy property descriptor exactly\n return Object.keys(value).reduce((newVal, prop) => {\n const propDesc = Object.getOwnPropertyDescriptor(value, prop);\n if (propDesc.get) {\n Object.defineProperty(newVal, prop, propDesc);\n }\n else {\n newVal[prop] = clone(value[prop]);\n }\n return newVal;\n }, c);\n}\nfunction defineHiddenProp(field, prop, defaultValue) {\n Object.defineProperty(field, prop, { enumerable: false, writable: true, configurable: true });\n field[prop] = defaultValue;\n}\nfunction observeDeep(source, paths, setFn) {\n let observers = [];\n const unsubscribe = () => {\n observers.forEach((observer) => observer());\n observers = [];\n };\n const observer = observe(source, paths, ({ firstChange, currentValue }) => {\n !firstChange && setFn();\n unsubscribe();\n if (isObject(currentValue) && currentValue.constructor.name === 'Object') {\n Object.keys(currentValue).forEach((prop) => {\n observers.push(observeDeep(source, [...paths, prop], setFn));\n });\n }\n });\n return () => {\n observer.unsubscribe();\n unsubscribe();\n };\n}\nfunction observe(o, paths, setFn) {\n if (!o._observers) {\n defineHiddenProp(o, '_observers', {});\n }\n let target = o;\n for (let i = 0; i < paths.length - 1; i++) {\n if (!target[paths[i]] || !isObject(target[paths[i]])) {\n target[paths[i]] = /^\\d+$/.test(paths[i + 1]) ? [] : {};\n }\n target = target[paths[i]];\n }\n const key = paths[paths.length - 1];\n const prop = paths.join('.');\n if (!o._observers[prop]) {\n o._observers[prop] = { value: target[key], onChange: [] };\n }\n const state = o._observers[prop];\n if (target[key] !== state.value) {\n state.value = target[key];\n }\n if (setFn && state.onChange.indexOf(setFn) === -1) {\n state.onChange.push(setFn);\n setFn({ currentValue: state.value, firstChange: true });\n if (state.onChange.length >= 1 && isObject(target)) {\n const { enumerable } = Object.getOwnPropertyDescriptor(target, key) || { enumerable: true };\n Object.defineProperty(target, key, {\n enumerable,\n configurable: true,\n get: () => state.value,\n set: (currentValue) => {\n if (currentValue !== state.value) {\n const previousValue = state.value;\n state.value = currentValue;\n state.onChange.forEach((changeFn) => changeFn({ previousValue, currentValue, firstChange: false }));\n }\n },\n });\n }\n }\n return {\n setValue(currentValue, emitEvent = true) {\n if (currentValue === state.value) {\n return;\n }\n const previousValue = state.value;\n state.value = currentValue;\n state.onChange.forEach((changeFn) => {\n if (changeFn !== setFn && emitEvent) {\n changeFn({ previousValue, currentValue, firstChange: false });\n }\n });\n },\n unsubscribe() {\n state.onChange = state.onChange.filter((changeFn) => changeFn !== setFn);\n if (state.onChange.length === 0) {\n delete o._observers[prop];\n }\n },\n };\n}\nfunction getField(f, key) {\n key = (Array.isArray(key) ? key.join('.') : key);\n if (!f.fieldGroup) {\n return undefined;\n }\n for (let i = 0, len = f.fieldGroup.length; i < len; i++) {\n const c = f.fieldGroup[i];\n const k = (Array.isArray(c.key) ? c.key.join('.') : c.key);\n if (k === key) {\n return c;\n }\n if (c.fieldGroup && (isNil(k) || key.indexOf(`${k}.`) === 0)) {\n const field = getField(c, isNil(k) ? key : key.slice(k.length + 1));\n if (field) {\n return field;\n }\n }\n }\n return undefined;\n}\nfunction markFieldForCheck(field) {\n field._componentRefs?.forEach((ref) => {\n // NOTE: we cannot use ref.changeDetectorRef, see https://github.com/ngx-formly/ngx-formly/issues/2191\n if (ref instanceof ComponentRef) {\n const changeDetectorRef = ref.injector.get(ChangeDetectorRef);\n changeDetectorRef.markForCheck();\n }\n else {\n ref.markForCheck();\n }\n });\n}\nfunction isNoopNgZone(ngZone) {\n return ngZone instanceof ɵNoopNgZone;\n}\nfunction isHiddenField(field) {\n const isHidden = (f) => f.hide || f.expressions?.hide || f.hideExpression;\n let setDefaultValue = !field.resetOnHide || !isHidden(field);\n if (!isHidden(field) && field.resetOnHide) {\n let parent = field.parent;\n while (parent && !isHidden(parent)) {\n parent = parent.parent;\n }\n setDefaultValue = !parent || !isHidden(parent);\n }\n return !setDefaultValue;\n}\nfunction isSignalRequired() {\n return +VERSION.major >= 18 && +VERSION.minor >= 1;\n}\n\n/**\n * An InjectionToken for registering additional formly config options (types, wrappers ...).\n */\nconst FORMLY_CONFIG = new InjectionToken('FORMLY_CONFIG');\n/**\n * Maintains list of formly config options. This can be used to register new field type.\n */\nclass FormlyConfig {\n constructor() {\n this.types = {};\n this.validators = {};\n this.wrappers = {};\n this.messages = {};\n this.extras = {\n checkExpressionOn: 'modelChange',\n lazyRender: true,\n resetFieldOnHide: true,\n renderFormlyFieldElement: true,\n showError(field) {\n return (field.formControl?.invalid &&\n (field.formControl?.touched || field.options.parentForm?.submitted || !!field.field.validation?.show));\n },\n };\n this.extensions = {};\n this.presets = {};\n this.extensionsByPriority = {};\n }\n addConfig(config) {\n if (config.types) {\n config.types.forEach((type) => this.setType(type));\n }\n if (config.validators) {\n config.validators.forEach((validator) => this.setValidator(validator));\n }\n if (config.wrappers) {\n config.wrappers.forEach((wrapper) => this.setWrapper(wrapper));\n }\n if (config.validationMessages) {\n config.validationMessages.forEach((validation) => this.addValidatorMessage(validation.name, validation.message));\n }\n if (config.extensions) {\n this.setSortedExtensions(config.extensions);\n }\n if (config.extras) {\n this.extras = { ...this.extras, ...config.extras };\n }\n if (config.presets) {\n this.presets = {\n ...this.presets,\n ...config.presets.reduce((acc, curr) => ({ ...acc, [curr.name]: curr.config }), {}),\n };\n }\n }\n /**\n * Allows you to specify a custom type which you can use in your field configuration.\n * You can pass an object of options, or an array of objects of options.\n */\n setType(options) {\n if (Array.isArray(options)) {\n options.forEach((option) => this.setType(option));\n }\n else {\n if (!this.types[options.name]) {\n this.types[options.name] = { name: options.name };\n }\n ['component', 'extends', 'defaultOptions', 'wrappers'].forEach((prop) => {\n if (options.hasOwnProperty(prop)) {\n this.types[options.name][prop] = options[prop];\n }\n });\n }\n }\n getType(name, throwIfNotFound = false) {\n if (name instanceof Type) {\n return { component: name, name: name.prototype.constructor.name };\n }\n if (!this.types[name]) {\n if (throwIfNotFound) {\n throw new Error(`[Formly Error] The type \"${name}\" could not be found. Please make sure that is registered through the FormlyModule declaration.`);\n }\n return null;\n }\n this.mergeExtendedType(name);\n return this.types[name];\n }\n /** @ignore */\n getMergedField(field = {}) {\n const type = this.getType(field.type);\n if (!type) {\n return;\n }\n if (type.defaultOptions) {\n reverseDeepMerge(field, type.defaultOptions);\n }\n const extendDefaults = type.extends && this.getType(type.extends).defaultOptions;\n if (extendDefaults) {\n reverseDeepMerge(field, extendDefaults);\n }\n if (field?.optionsTypes) {\n field.optionsTypes.forEach((option) => {\n const defaultOptions = this.getType(option).defaultOptions;\n if (defaultOptions) {\n reverseDeepMerge(field, defaultOptions);\n }\n });\n }\n const componentRef = this.resolveFieldTypeRef(field);\n if (componentRef?.instance?.defaultOptions) {\n reverseDeepMerge(field, componentRef.instance.defaultOptions);\n }\n if (!field.wrappers && type.wrappers) {\n field.wrappers = [...type.wrappers];\n }\n }\n /** @ignore @internal */\n resolveFieldTypeRef(field = {}) {\n const type = this.getType(field.type);\n if (!type) {\n return null;\n }\n if (!type.component || type._componentRef) {\n return type._componentRef;\n }\n const { _viewContainerRef, _injector } = field.options;\n if (!_viewContainerRef || !_injector) {\n return null;\n }\n const componentRef = _viewContainerRef.createComponent(type.component, { injector: _injector });\n defineHiddenProp(type, '_componentRef', componentRef);\n try {\n componentRef.destroy();\n }\n catch (e) {\n console.error(`An error occurred while destroying the Formly component type \"${field.type}\"`, e);\n }\n return type._componentRef;\n }\n setWrapper(options) {\n this.wrappers[options.name] = options;\n if (options.types) {\n options.types.forEach((type) => {\n this.setTypeWrapper(type, options.name);\n });\n }\n }\n getWrapper(name) {\n if (name instanceof Type) {\n return { component: name, name: name.prototype.constructor.name };\n }\n if (!this.wrappers[name]) {\n throw new Error(`[Formly Error] The wrapper \"${name}\" could not be found. Please make sure that is registered through the FormlyModule declaration.`);\n }\n return this.wrappers[name];\n }\n /** @ignore */\n setTypeWrapper(type, name) {\n if (!this.types[type]) {\n this.types[type] = {};\n }\n if (!this.types[type].wrappers) {\n this.types[type].wrappers = [];\n }\n if (this.types[type].wrappers.indexOf(name) === -1) {\n this.types[type].wrappers.push(name);\n }\n }\n setValidator(options) {\n this.validators[options.name] = options;\n }\n getValidator(name) {\n if (!this.validators[name]) {\n throw new Error(`[Formly Error] The validator \"${name}\" could not be found. Please make sure that is registered through the FormlyModule declaration.`);\n }\n return this.validators[name];\n }\n addValidatorMessage(name, message) {\n this.messages[name] = message;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const deprecated = { minlength: 'minLength', maxlength: 'maxLength' };\n if (deprecated[name]) {\n console.warn(`Formly deprecation: passing validation messages key '${name}' is deprecated since v6.0, use '${deprecated[name]}' instead.`);\n this.messages[deprecated[name]] = message;\n }\n }\n }\n getValidatorMessage(name) {\n return this.messages[name];\n }\n setSortedExtensions(extensionOptions) {\n // insert new extensions, grouped by priority\n extensionOptions.forEach((extensionOption) => {\n const priority = extensionOption.priority ?? 1;\n this.extensionsByPriority[priority] = {\n ...this.extensionsByPriority[priority],\n [extensionOption.name]: extensionOption.extension,\n };\n });\n // flatten extensions object with sorted keys\n this.extensions = Object.keys(this.extensionsByPriority)\n .map(Number)\n .sort((a, b) => a - b)\n .reduce((acc, prio) => ({\n ...acc,\n ...this.extensionsByPriority[prio],\n }), {});\n }\n mergeExtendedType(name) {\n if (!this.types[name].extends) {\n return;\n }\n const extendedType = this.getType(this.types[name].extends);\n if (!this.types[name].component) {\n this.types[name].component = extendedType.component;\n }\n if (!this.types[name].wrappers) {\n this.types[name].wrappers = extendedType.wrappers;\n }\n }\n}\nFormlyConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nFormlyConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyConfig, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass FormlyFormBuilder {\n constructor(config, injector, viewContainerRef, parentForm) {\n this.config = config;\n this.injector = injector;\n this.viewContainerRef = viewContainerRef;\n this.parentForm = parentForm;\n }\n buildForm(form, fieldGroup = [], model, options) {\n this.build({ fieldGroup, model, form, options });\n }\n build(field) {\n if (!this.config.extensions.core) {\n throw new Error('NgxFormly: missing `forRoot()` call. use `forRoot()` when registering the `FormlyModule`.');\n }\n if (!field.parent) {\n this._setOptions(field);\n }\n disableTreeValidityCall(field.form, () => {\n this._build(field);\n // TODO: add test for https://github.com/ngx-formly/ngx-formly/issues/3910\n if (!field.parent || field.fieldArray) {\n // detect changes early to avoid reset value by hidden fields\n const options = field.options;\n if (field.parent && isHiddenField(field)) {\n // when hide is used in expression set defaul value will not be set until detect hide changes\n // which causes default value not set on new item is added\n options._hiddenFieldsForCheck?.push({ field, default: false });\n }\n options.checkExpressions?.(field, true);\n options._detectChanges?.(field);\n }\n });\n }\n _build(field) {\n if (!field) {\n return;\n }\n const extensions = Object.values(this.config.extensions);\n extensions.forEach((extension) => extension.prePopulate?.(field));\n extensions.forEach((extension) => extension.onPopulate?.(field));\n field.fieldGroup?.forEach((f) => this._build(f));\n extensions.forEach((extension) => extension.postPopulate?.(field));\n }\n _setOptions(field) {\n field.form = field.form || new FormGroup({});\n field.model = field.model || {};\n field.options = field.options || {};\n const options = field.options;\n if (!options._viewContainerRef) {\n defineHiddenProp(options, '_viewContainerRef', this.viewContainerRef);\n }\n if (!options._injector) {\n defineHiddenProp(options, '_injector', this.injector);\n }\n if (!options.build) {\n options._buildForm = () => {\n console.warn(`Formly: 'options._buildForm' is deprecated since v6.0, use 'options.build' instead.`);\n this.build(field);\n };\n options.build = (f = field) => {\n this.build(f);\n return f;\n };\n }\n if (!options.parentForm && this.parentForm) {\n defineHiddenProp(options, 'parentForm', this.parentForm);\n if (!isSignalRequired()) {\n observe(options, ['parentForm', 'submitted'], ({ firstChange }) => {\n if (!firstChange) {\n options.detectChanges(field);\n }\n });\n }\n }\n }\n}\nFormlyFormBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFormBuilder, deps: [{ token: FormlyConfig }, { token: i0.Injector }, { token: i0.ViewContainerRef, optional: true }, { token: i2.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nFormlyFormBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFormBuilder, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFormBuilder, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: FormlyConfig }, { type: i0.Injector }, { type: i0.ViewContainerRef, decorators: [{\n type: Optional\n }] }, { type: i2.FormGroupDirective, decorators: [{\n type: Optional\n }] }]; } });\n\nfunction unregisterControl(field, emitEvent = false) {\n const control = field.formControl;\n const fieldIndex = control._fields ? control._fields.indexOf(field) : -1;\n if (fieldIndex !== -1) {\n control._fields.splice(fieldIndex, 1);\n }\n const form = control.parent;\n if (!form) {\n return;\n }\n const opts = { emitEvent };\n if (form instanceof FormArray) {\n const key = form.controls.findIndex((c) => c === control);\n if (key !== -1) {\n form.removeAt(key, opts);\n }\n }\n else if (form instanceof FormGroup) {\n const paths = getKeyPath(field);\n const key = paths[paths.length - 1];\n if (form.get([key]) === control) {\n form.removeControl(key, opts);\n }\n }\n control.setParent(null);\n}\nfunction findControl(field) {\n if (field.formControl) {\n return field.formControl;\n }\n if (field.shareFormControl === false) {\n return null;\n }\n return field.form?.get(getKeyPath(field));\n}\nfunction registerControl(field, control, emitEvent = false) {\n control = control || field.formControl;\n if (!control._fields) {\n defineHiddenProp(control, '_fields', []);\n }\n if (control._fields.indexOf(field) === -1) {\n control._fields.push(field);\n }\n if (!field.formControl && control) {\n defineHiddenProp(field, 'formControl', control);\n control.setValidators(null);\n control.setAsyncValidators(null);\n field.props.disabled = !!field.props.disabled;\n const disabledObserver = observe(field, ['props', 'disabled'], ({ firstChange, currentValue }) => {\n if (!firstChange) {\n currentValue ? field.formControl.disable() : field.formControl.enable();\n }\n });\n if (control instanceof FormControl) {\n control.registerOnDisabledChange(disabledObserver.setValue);\n }\n }\n if (!field.form || !hasKey(field)) {\n return;\n }\n let form = field.form;\n const paths = getKeyPath(field);\n const value = getFieldValue(field);\n if (!(isNil(control.value) && isNil(value)) && control.value !== value && control instanceof FormControl) {\n control.patchValue(value);\n }\n for (let i = 0; i < paths.length - 1; i++) {\n const path = paths[i];\n if (!form.get([path])) {\n form.setControl(path, new FormGroup({}), { emitEvent });\n }\n form = form.get([path]);\n }\n const key = paths[paths.length - 1];\n if (!field._hide && form.get([key]) !== control) {\n form.setControl(key, control, { emitEvent });\n }\n}\nfunction updateValidity(c, onlySelf = false) {\n const status = c.status;\n const value = c.value;\n c.updateValueAndValidity({ emitEvent: false, onlySelf });\n if (status !== c.status) {\n c.statusChanges.emit(c.status);\n }\n if (value !== c.value) {\n c.valueChanges.emit(c.value);\n }\n}\nfunction clearControl(form) {\n delete form?._fields;\n form.setValidators(null);\n form.setAsyncValidators(null);\n if (form instanceof FormGroup || form instanceof FormArray) {\n Object.values(form.controls).forEach((c) => clearControl(c));\n }\n}\n\nclass FormlyTemplate {\n constructor(ref) {\n this.ref = ref;\n }\n ngOnChanges() {\n this.name = this.name || 'formly-group';\n }\n}\nFormlyTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nFormlyTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyTemplate, selector: \"[formlyTemplate]\", inputs: { name: [\"formlyTemplate\", \"name\"] }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyTemplate, decorators: [{\n type: Directive,\n args: [{ selector: '[formlyTemplate]' }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { name: [{\n type: Input,\n args: ['formlyTemplate']\n }] } });\n// workarround for https://github.com/angular/angular/issues/43227#issuecomment-904173738\nclass FormlyFieldTemplates {\n}\nFormlyFieldTemplates.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldTemplates, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nFormlyFieldTemplates.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldTemplates });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldTemplates, decorators: [{\n type: Injectable\n }] });\n\n/**\n * The `` component is used to render the UI widget (layout + type) of a given `field`.\n */\nclass FormlyField {\n constructor(config, renderer, _elementRef, hostContainerRef, form) {\n this.config = config;\n this.renderer = renderer;\n this._elementRef = _elementRef;\n this.hostContainerRef = hostContainerRef;\n this.form = form;\n this.hostObservers = [];\n this.componentRefs = [];\n this.hooksObservers = [];\n this.detectFieldBuild = false;\n this.valueChangesUnsubscribe = () => { };\n }\n get containerRef() {\n return this.config.extras.renderFormlyFieldElement ? this.viewContainerRef : this.hostContainerRef;\n }\n get elementRef() {\n if (this.config.extras.renderFormlyFieldElement) {\n return this._elementRef;\n }\n if (this.componentRefs?.[0] instanceof ComponentRef) {\n return this.componentRefs[0].location;\n }\n return null;\n }\n ngAfterContentInit() {\n this.triggerHook('afterContentInit');\n }\n ngAfterViewInit() {\n this.triggerHook('afterViewInit');\n }\n ngDoCheck() {\n if (this.detectFieldBuild && this.field && this.field.options) {\n this.render();\n }\n }\n ngOnInit() {\n this.triggerHook('onInit');\n }\n ngOnChanges(changes) {\n this.triggerHook('onChanges', changes);\n }\n ngOnDestroy() {\n this.resetRefs(this.field);\n this.hostObservers.forEach((hostObserver) => hostObserver.unsubscribe());\n this.hooksObservers.forEach((unsubscribe) => unsubscribe());\n this.valueChangesUnsubscribe();\n this.triggerHook('onDestroy');\n }\n renderField(containerRef, f, wrappers = []) {\n if (this.containerRef === containerRef) {\n this.resetRefs(this.field);\n this.containerRef.clear();\n wrappers = this.field?.wrappers;\n }\n if (wrappers?.length > 0) {\n const [wrapper, ...wps] = wrappers;\n const { component } = this.config.getWrapper(wrapper);\n const ref = containerRef.createComponent(component);\n this.attachComponentRef(ref, f);\n observe(ref.instance, ['fieldComponent'], ({ currentValue, previousValue, firstChange }) => {\n if (currentValue) {\n if (previousValue && previousValue._lContainer === currentValue._lContainer) {\n return;\n }\n const viewRef = previousValue ? previousValue.detach() : null;\n if (viewRef && !viewRef.destroyed) {\n currentValue.insert(viewRef);\n }\n else {\n this.renderField(currentValue, f, wps);\n }\n !firstChange && ref.changeDetectorRef.detectChanges();\n }\n });\n }\n else if (f?.type) {\n const inlineType = this.form?.templates?.find((ref) => ref.name === f.type);\n let ref;\n if (inlineType) {\n ref = containerRef.createEmbeddedView(inlineType.ref, { $implicit: f });\n }\n else {\n const { component } = this.config.getType(f.type, true);\n ref = containerRef.createComponent(component);\n }\n this.attachComponentRef(ref, f);\n }\n }\n triggerHook(name, changes) {\n if (name === 'onInit' || (name === 'onChanges' && changes.field && !changes.field.firstChange)) {\n this.valueChangesUnsubscribe();\n this.valueChangesUnsubscribe = this.fieldChanges(this.field);\n }\n if (this.field?.hooks?.[name]) {\n if (!changes || changes.field) {\n const r = this.field.hooks[name](this.field);\n if (isObservable(r) && ['onInit', 'afterContentInit', 'afterViewInit'].indexOf(name) !== -1) {\n const sub = r.subscribe();\n this.hooksObservers.push(() => sub.unsubscribe());\n }\n }\n }\n if (name === 'onChanges' && changes.field) {\n this.resetRefs(changes.field.previousValue);\n this.render();\n }\n }\n attachComponentRef(ref, field) {\n this.componentRefs.push(ref);\n field._componentRefs.push(ref);\n if (ref instanceof ComponentRef) {\n Object.assign(ref.instance, { field });\n }\n }\n render() {\n if (!this.field) {\n return;\n }\n // require Formly build\n if (!this.field.options) {\n this.detectFieldBuild = true;\n return;\n }\n this.detectFieldBuild = false;\n this.hostObservers.forEach((hostObserver) => hostObserver.unsubscribe());\n this.hostObservers = [\n observe(this.field, ['hide'], ({ firstChange, currentValue }) => {\n const containerRef = this.containerRef;\n if (this.config.extras.lazyRender === false) {\n firstChange && this.renderField(containerRef, this.field);\n if (!firstChange || (firstChange && currentValue)) {\n this.elementRef &&\n this.renderer.setStyle(this.elementRef.nativeElement, 'display', currentValue ? 'none' : '');\n }\n }\n else {\n if (currentValue) {\n containerRef.clear();\n if (this.field.className) {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'class');\n }\n }\n else {\n this.renderField(containerRef, this.field);\n if (this.field.className) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'class', this.field.className);\n }\n }\n }\n !firstChange && this.field.options.detectChanges(this.field);\n }),\n observe(this.field, ['className'], ({ firstChange, currentValue }) => {\n if ((!firstChange || (firstChange && currentValue)) &&\n (!this.config.extras.lazyRender || this.field.hide !== true)) {\n this.elementRef && this.renderer.setAttribute(this.elementRef.nativeElement, 'class', currentValue);\n }\n }),\n ];\n if (!isSignalRequired()) {\n ['touched', 'pristine', 'status'].forEach((prop) => this.hostObservers.push(observe(this.field, ['formControl', prop], ({ firstChange }) => !firstChange && markFieldForCheck(this.field))));\n }\n else if (this.field.formControl) {\n const events = this.field.formControl.events.subscribe(() => markFieldForCheck(this.field));\n this.hostObservers.push(events);\n }\n }\n resetRefs(field) {\n if (field) {\n if (field._localFields) {\n field._localFields = [];\n }\n else {\n defineHiddenProp(this.field, '_localFields', []);\n }\n if (field._componentRefs) {\n field._componentRefs = field._componentRefs.filter((ref) => this.componentRefs.indexOf(ref) === -1);\n }\n else {\n defineHiddenProp(this.field, '_componentRefs', []);\n }\n }\n this.componentRefs = [];\n }\n fieldChanges(field) {\n if (!field) {\n return () => { };\n }\n const propsObserver = observeDeep(field, ['props'], () => field.options.detectChanges(field));\n let subscribes = [\n () => {\n propsObserver();\n },\n ];\n for (const key of Object.keys(field._expressions || {})) {\n const expressionObserver = observe(field, ['_expressions', key], ({ currentValue, previousValue }) => {\n if (previousValue?.subscription) {\n previousValue.subscription.unsubscribe();\n previousValue.subscription = null;\n }\n if (isObservable(currentValue.value$)) {\n currentValue.subscription = currentValue.value$.subscribe();\n }\n });\n subscribes.push(() => {\n if (field._expressions[key]?.subscription) {\n field._expressions[key].subscription.unsubscribe();\n }\n expressionObserver.unsubscribe();\n });\n }\n for (const path of [['focus'], ['template'], ['fieldGroupClassName'], ['validation', 'show']]) {\n const fieldObserver = observe(field, path, ({ firstChange }) => !firstChange && field.options.detectChanges(field));\n subscribes.push(() => fieldObserver.unsubscribe());\n }\n if (field.formControl && !field.fieldGroup) {\n const control = field.formControl;\n let valueChanges = control.valueChanges.pipe(map((value) => {\n field.parsers?.map((parserFn) => (value = parserFn(value, field)));\n if (!Object.is(value, field.formControl.value)) {\n field.formControl.setValue(value);\n }\n return value;\n }), distinctUntilChanged((x, y) => {\n if (x !== y || Array.isArray(x) || isObject(x)) {\n return false;\n }\n return true;\n }));\n if (control.value !== getFieldValue(field)) {\n valueChanges = valueChanges.pipe(startWith(control.value));\n }\n const { updateOn, debounce } = field.modelOptions;\n if ((!updateOn || updateOn === 'change') && debounce?.default > 0) {\n valueChanges = control.valueChanges.pipe(debounceTime(debounce.default));\n }\n const sub = valueChanges.subscribe((value) => {\n // workaround for https://github.com/angular/angular/issues/13792\n if (control._fields?.length > 1 && control instanceof FormControl) {\n control.patchValue(value, { emitEvent: false, onlySelf: true });\n }\n if (hasKey(field)) {\n assignFieldValue(field, value);\n }\n field.options.fieldChanges.next({ value, field, type: 'valueChanges' });\n });\n subscribes.push(() => sub.unsubscribe());\n }\n let templateFieldsSubs = [];\n observe(field, ['_localFields'], ({ currentValue }) => {\n templateFieldsSubs.forEach((unsubscribe) => unsubscribe());\n templateFieldsSubs = (currentValue || []).map((f) => this.fieldChanges(f));\n });\n return () => {\n subscribes.forEach((unsubscribe) => unsubscribe());\n templateFieldsSubs.forEach((unsubscribe) => unsubscribe());\n };\n }\n}\nFormlyField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyField, deps: [{ token: FormlyConfig }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: FormlyFieldTemplates, optional: true }], target: i0.ɵɵFactoryTarget.Component });\nFormlyField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyField, selector: \"formly-field\", inputs: { field: \"field\" }, viewQueries: [{ propertyName: \"viewContainerRef\", first: true, predicate: [\"container\"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [\":host:empty{display:none}\\n\"] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyField, decorators: [{\n type: Component,\n args: [{ selector: 'formly-field', template: '', styles: [\":host:empty{display:none}\\n\"] }]\n }], ctorParameters: function () { return [{ type: FormlyConfig }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: FormlyFieldTemplates, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { field: [{\n type: Input\n }], viewContainerRef: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }] } });\n\n/**\n * The `` component is the main container of the form,\n * which takes care of managing the form state\n * and delegates the rendering of each field to `` component.\n */\nclass FormlyForm {\n constructor(builder, config, ngZone, fieldTemplates) {\n this.builder = builder;\n this.config = config;\n this.ngZone = ngZone;\n this.fieldTemplates = fieldTemplates;\n /** Event that is emitted when the model value is changed */\n this.modelChange = new EventEmitter();\n this.field = { type: 'formly-group' };\n this._modelChangeValue = {};\n this.valueChangesUnsubscribe = () => { };\n }\n /** The form instance which allow to track model value and validation status. */\n set form(form) {\n this.field.form = form;\n }\n get form() {\n return this.field.form;\n }\n /** The model to be represented by the form. */\n set model(model) {\n if (this.config.extras.immutable && this._modelChangeValue === model) {\n return;\n }\n this.setField({ model });\n }\n get model() {\n return this.field.model;\n }\n /** The field configurations for building the form. */\n set fields(fieldGroup) {\n this.setField({ fieldGroup });\n }\n get fields() {\n return this.field.fieldGroup;\n }\n /** Options for the form. */\n set options(options) {\n this.setField({ options });\n }\n get options() {\n return this.field.options;\n }\n set templates(templates) {\n this.fieldTemplates.templates = templates;\n }\n ngDoCheck() {\n if (this.config.extras.checkExpressionOn === 'changeDetectionCheck') {\n this.checkExpressionChange();\n }\n }\n ngOnChanges(changes) {\n if (changes.fields && this.form) {\n clearControl(this.form);\n }\n if (changes.fields || changes.form || (changes.model && this._modelChangeValue !== changes.model.currentValue)) {\n this.valueChangesUnsubscribe();\n this.builder.build(this.field);\n this.valueChangesUnsubscribe = this.valueChanges();\n }\n }\n ngOnDestroy() {\n this.valueChangesUnsubscribe();\n }\n checkExpressionChange() {\n this.field.options.checkExpressions?.(this.field);\n }\n valueChanges() {\n this.valueChangesUnsubscribe();\n let formEvents = null;\n if (isSignalRequired()) {\n let submitted = this.options?.parentForm?.submitted;\n formEvents = this.form.events.subscribe(() => {\n if (submitted !== this.options?.parentForm?.submitted) {\n this.options.detectChanges(this.field);\n submitted = this.options?.parentForm?.submitted;\n }\n });\n }\n let fieldChangesDetection = [];\n const valueChanges = this.field.options.fieldChanges\n .pipe(filter(({ field, type }) => hasKey(field) && type === 'valueChanges'), switchMap(() => (isNoopNgZone(this.ngZone) ? of(null) : this.ngZone.onStable.asObservable().pipe(take(1)))))\n .subscribe(() => this.ngZone.runGuarded(() => {\n // runGuarded is used to keep in sync the expression changes\n // https://github.com/ngx-formly/ngx-formly/issues/2095\n this.checkExpressionChange();\n if (this.field.options) {\n fieldChangesDetection.push(observeDeep(this.field.options, ['formState'], () => this.field.options.detectChanges(this.field)));\n }\n this.modelChange.emit((this._modelChangeValue = clone(this.model)));\n }));\n return () => {\n fieldChangesDetection.forEach((fnc) => fnc());\n formEvents?.unsubscribe();\n valueChanges.unsubscribe();\n };\n }\n setField(field) {\n if (this.config.extras.immutable) {\n this.field = { ...this.field, ...clone(field) };\n }\n else {\n Object.keys(field).forEach((p) => (this.field[p] = field[p]));\n }\n }\n}\nFormlyForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyForm, deps: [{ token: FormlyFormBuilder }, { token: FormlyConfig }, { token: i0.NgZone }, { token: FormlyFieldTemplates }], target: i0.ɵɵFactoryTarget.Component });\nFormlyForm.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyForm, selector: \"formly-form\", inputs: { form: \"form\", model: \"model\", fields: \"fields\", options: \"options\" }, outputs: { modelChange: \"modelChange\" }, providers: [FormlyFormBuilder, FormlyFieldTemplates], queries: [{ propertyName: \"templates\", predicate: FormlyTemplate }], usesOnChanges: true, ngImport: i0, template: '', isInline: true, components: [{ type: FormlyField, selector: \"formly-field\", inputs: [\"field\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyForm, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-form',\n template: '',\n providers: [FormlyFormBuilder, FormlyFieldTemplates],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: function () { return [{ type: FormlyFormBuilder }, { type: FormlyConfig }, { type: i0.NgZone }, { type: FormlyFieldTemplates }]; }, propDecorators: { form: [{\n type: Input\n }], model: [{\n type: Input\n }], fields: [{\n type: Input\n }], options: [{\n type: Input\n }], modelChange: [{\n type: Output\n }], templates: [{\n type: ContentChildren,\n args: [FormlyTemplate]\n }] } });\n\n/**\n * Allow to link the `field` HTML attributes (`id`, `name` ...) and Event attributes (`focus`, `blur` ...) to an element in the DOM.\n */\nclass FormlyAttributes {\n constructor(renderer, elementRef, _document) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n this.uiAttributesCache = {};\n /**\n * HostBinding doesn't register listeners conditionally which may produce some perf issues.\n *\n * Formly issue: https://github.com/ngx-formly/ngx-formly/issues/1991\n */\n this.uiEvents = {\n listeners: [],\n events: ['click', 'keyup', 'keydown', 'keypress', 'focus', 'blur', 'change'],\n callback: (eventName, $event) => {\n switch (eventName) {\n case 'focus':\n return this.onFocus($event);\n case 'blur':\n return this.onBlur($event);\n case 'change':\n return this.onChange($event);\n default:\n return this.props[eventName](this.field, $event);\n }\n },\n };\n this.document = _document;\n }\n get props() {\n return this.field.props || {};\n }\n get fieldAttrElements() {\n return this.field?.['_elementRefs'] || [];\n }\n ngOnChanges(changes) {\n if (changes.field) {\n this.field.name && this.setAttribute('name', this.field.name);\n this.uiEvents.listeners.forEach((listener) => listener());\n this.uiEvents.events.forEach((eventName) => {\n if (this.props?.[eventName] || ['focus', 'blur', 'change'].indexOf(eventName) !== -1) {\n this.uiEvents.listeners.push(this.renderer.listen(this.elementRef.nativeElement, eventName, (e) => this.uiEvents.callback(eventName, e)));\n }\n });\n if (this.props?.attributes) {\n observe(this.field, ['props', 'attributes'], ({ currentValue, previousValue }) => {\n if (previousValue) {\n Object.keys(previousValue).forEach((attr) => this.removeAttribute(attr));\n }\n if (currentValue) {\n Object.keys(currentValue).forEach((attr) => {\n if (currentValue[attr] != null) {\n this.setAttribute(attr, currentValue[attr]);\n }\n });\n }\n });\n }\n this.detachElementRef(changes.field.previousValue);\n this.attachElementRef(changes.field.currentValue);\n if (this.fieldAttrElements.length === 1) {\n !this.id && this.field.id && this.setAttribute('id', this.field.id);\n this.focusObserver = observe(this.field, ['focus'], ({ currentValue }) => {\n this.toggleFocus(currentValue);\n });\n }\n }\n if (changes.id) {\n this.setAttribute('id', this.id);\n }\n }\n /**\n * We need to re-evaluate all the attributes on every change detection cycle, because\n * by using a HostBinding we run into certain edge cases. This means that whatever logic\n * is in here has to be super lean or we risk seriously damaging or destroying the performance.\n *\n * Formly issue: https://github.com/ngx-formly/ngx-formly/issues/1317\n * Material issue: https://github.com/angular/components/issues/14024\n */\n ngDoCheck() {\n if (!this.uiAttributes) {\n const element = this.elementRef.nativeElement;\n this.uiAttributes = [...FORMLY_VALIDATORS, 'tabindex', 'placeholder', 'readonly', 'disabled', 'step'].filter((attr) => !element.hasAttribute || !element.hasAttribute(attr));\n }\n for (let i = 0; i < this.uiAttributes.length; i++) {\n const attr = this.uiAttributes[i];\n const value = this.props[attr];\n if (this.uiAttributesCache[attr] !== value &&\n (!this.props.attributes || !this.props.attributes.hasOwnProperty(attr.toLowerCase()))) {\n this.uiAttributesCache[attr] = value;\n if (value || value === 0) {\n this.setAttribute(attr, value === true ? attr : `${value}`);\n }\n else {\n this.removeAttribute(attr);\n }\n }\n }\n }\n ngOnDestroy() {\n this.uiEvents.listeners.forEach((listener) => listener());\n this.detachElementRef(this.field);\n this.focusObserver?.unsubscribe();\n }\n toggleFocus(value) {\n const element = this.fieldAttrElements ? this.fieldAttrElements[0] : null;\n if (!element || !element.nativeElement.focus) {\n return;\n }\n const isFocused = !!this.document.activeElement &&\n this.fieldAttrElements.some(({ nativeElement }) => this.document.activeElement === nativeElement || nativeElement.contains(this.document.activeElement));\n if (value && !isFocused) {\n Promise.resolve().then(() => element.nativeElement.focus());\n }\n else if (!value && isFocused) {\n Promise.resolve().then(() => element.nativeElement.blur());\n }\n }\n onFocus($event) {\n this.focusObserver?.setValue(true);\n this.props.focus?.(this.field, $event);\n }\n onBlur($event) {\n this.focusObserver?.setValue(false);\n this.props.blur?.(this.field, $event);\n }\n // handle custom `change` event, for regular ones rely on DOM listener\n onHostChange($event) {\n if ($event instanceof Event) {\n return;\n }\n this.onChange($event);\n }\n onChange($event) {\n this.props.change?.(this.field, $event);\n this.field.formControl?.markAsDirty();\n }\n attachElementRef(f) {\n if (!f) {\n return;\n }\n if (f['_elementRefs']?.indexOf(this.elementRef) === -1) {\n f['_elementRefs'].push(this.elementRef);\n }\n else {\n defineHiddenProp(f, '_elementRefs', [this.elementRef]);\n }\n }\n detachElementRef(f) {\n const index = f?.['_elementRefs'] ? this.fieldAttrElements.indexOf(this.elementRef) : -1;\n if (index !== -1) {\n f['_elementRefs'].splice(index, 1);\n }\n }\n setAttribute(attr, value) {\n this.renderer.setAttribute(this.elementRef.nativeElement, attr, value);\n }\n removeAttribute(attr) {\n this.renderer.removeAttribute(this.elementRef.nativeElement, attr);\n }\n}\nFormlyAttributes.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyAttributes, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });\nFormlyAttributes.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyAttributes, selector: \"[formlyAttributes]\", inputs: { field: [\"formlyAttributes\", \"field\"], id: \"id\" }, host: { listeners: { \"change\": \"onHostChange($event)\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyAttributes, decorators: [{\n type: Directive,\n args: [{\n selector: '[formlyAttributes]',\n host: {\n '(change)': 'onHostChange($event)',\n },\n }]\n }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, propDecorators: { field: [{\n type: Input,\n args: ['formlyAttributes']\n }], id: [{\n type: Input\n }] } });\n\nclass FieldType {\n constructor() {\n this.field = {};\n }\n set _formlyControls(controls) {\n const f = this.field;\n f._localFields = controls\n .map((c) => c.control._fields || [])\n .flat()\n .filter((f) => f.formControl !== this.field.formControl);\n }\n get model() {\n return this.field.model;\n }\n get form() {\n return this.field.form;\n }\n get options() {\n return this.field.options;\n }\n get key() {\n return this.field.key;\n }\n get formControl() {\n return this.field.formControl;\n }\n get props() {\n return (this.field.props || {});\n }\n /** @deprecated Use `props` instead. */\n get to() {\n return this.props;\n }\n get showError() {\n return this.options.showError(this);\n }\n get id() {\n return this.field.id;\n }\n get formState() {\n return this.options?.formState || {};\n }\n}\nFieldType.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FieldType, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nFieldType.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FieldType, inputs: { field: \"field\" }, viewQueries: [{ propertyName: \"_formlyControls\", predicate: NgControl, descendants: true }], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FieldType, decorators: [{\n type: Directive\n }], propDecorators: { _formlyControls: [{\n type: ViewChildren,\n args: [NgControl]\n }], field: [{\n type: Input\n }] } });\n\n/** @ignore */\nclass FormlyGroup extends FieldType {\n}\nFormlyGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyGroup, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyGroup, selector: \"formly-group\", host: { properties: { \"class\": \"field.fieldGroupClassName || \\\"\\\"\" } }, usesInheritance: true, ngImport: i0, template: `\n \n \n `, isInline: true, components: [{ type: FormlyField, selector: \"formly-field\", inputs: [\"field\"] }], directives: [{ type: i2$1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyGroup, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-group',\n template: `\n \n \n `,\n host: {\n '[class]': 'field.fieldGroupClassName || \"\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n\n/**\n * The `` component renders the error message of a given `field`.\n */\nclass FormlyValidationMessage {\n constructor(config) {\n this.config = config;\n }\n ngOnChanges() {\n const EXPR_VALIDATORS = FORMLY_VALIDATORS.map((v) => `templateOptions.${v}`);\n this.errorMessage$ = merge(this.field.formControl.statusChanges, !this.field.options\n ? of(null)\n : this.field.options.fieldChanges.pipe(filter(({ field, type, property }) => {\n return (field === this.field &&\n type === 'expressionChanges' &&\n (property.indexOf('validation') !== -1 || EXPR_VALIDATORS.indexOf(property) !== -1));\n }))).pipe(startWith(null), switchMap(() => (isObservable(this.errorMessage) ? this.errorMessage : of(this.errorMessage))));\n }\n get errorMessage() {\n const fieldForm = this.field.formControl;\n for (const error in fieldForm.errors) {\n if (fieldForm.errors.hasOwnProperty(error)) {\n let message = this.config.getValidatorMessage(error);\n if (isObject(fieldForm.errors[error])) {\n if (fieldForm.errors[error].errorPath) {\n return undefined;\n }\n if (fieldForm.errors[error].message) {\n message = fieldForm.errors[error].message;\n }\n }\n if (this.field.validation?.messages?.[error]) {\n message = this.field.validation.messages[error];\n }\n if (this.field.validators?.[error]?.message) {\n message = this.field.validators[error].message;\n }\n if (this.field.asyncValidators?.[error]?.message) {\n message = this.field.asyncValidators[error].message;\n }\n if (typeof message === 'function') {\n return message(fieldForm.errors[error], this.field);\n }\n return message;\n }\n }\n return undefined;\n }\n}\nFormlyValidationMessage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyValidationMessage, deps: [{ token: FormlyConfig }], target: i0.ɵɵFactoryTarget.Component });\nFormlyValidationMessage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyValidationMessage, selector: \"formly-validation-message\", inputs: { field: \"field\" }, usesOnChanges: true, ngImport: i0, template: '{{ errorMessage$ | async }}', isInline: true, pipes: { \"async\": i2$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyValidationMessage, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-validation-message',\n template: '{{ errorMessage$ | async }}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: function () { return [{ type: FormlyConfig }]; }, propDecorators: { field: [{\n type: Input\n }] } });\n\nclass FieldArrayType extends FieldType {\n onPopulate(field) {\n if (hasKey(field)) {\n const control = findControl(field);\n registerControl(field, control ? control : new FormArray([], { updateOn: field.modelOptions.updateOn }));\n }\n field.fieldGroup = field.fieldGroup || [];\n const length = Array.isArray(field.model) ? field.model.length : 0;\n if (field.fieldGroup.length > length) {\n for (let i = field.fieldGroup.length - 1; i >= length; --i) {\n unregisterControl(field.fieldGroup[i], true);\n field.fieldGroup.splice(i, 1);\n }\n }\n for (let i = field.fieldGroup.length; i < length; i++) {\n const f = { ...clone(typeof field.fieldArray === 'function' ? field.fieldArray(field) : field.fieldArray) };\n if (f.key !== null) {\n f.key = `${i}`;\n }\n field.fieldGroup.push(f);\n }\n }\n add(i, initialModel, { markAsDirty } = { markAsDirty: true }) {\n markAsDirty && this.formControl.markAsDirty();\n i = i == null ? this.field.fieldGroup.length : i;\n if (!this.model) {\n assignFieldValue(this.field, []);\n }\n this.model.splice(i, 0, initialModel ? clone(initialModel) : undefined);\n this.markFieldForCheck(this.field.fieldGroup[i]);\n this._build();\n }\n remove(i, { markAsDirty } = { markAsDirty: true }) {\n markAsDirty && this.formControl.markAsDirty();\n this.model.splice(i, 1);\n const field = this.field.fieldGroup[i];\n this.field.fieldGroup.splice(i, 1);\n this.field.fieldGroup.forEach((f, key) => this.updateArrayElementKey(f, `${key}`));\n unregisterControl(field, true);\n this._build();\n }\n _build() {\n const fields = this.field.formControl._fields ?? [this.field];\n fields.forEach((f) => this.options.build(f));\n this.options.fieldChanges.next({\n field: this.field,\n value: getFieldValue(this.field),\n type: 'valueChanges',\n });\n }\n updateArrayElementKey(f, newKey) {\n if (hasKey(f)) {\n f.key = newKey;\n return;\n }\n if (!f.fieldGroup?.length) {\n return;\n }\n for (let i = 0; i < f.fieldGroup.length; i++) {\n this.updateArrayElementKey(f.fieldGroup[i], newKey);\n }\n }\n markFieldForCheck(f) {\n if (!f) {\n return;\n }\n f.fieldGroup?.forEach((c) => this.markFieldForCheck(c));\n if (f.hide === false) {\n this.options._hiddenFieldsForCheck.push({ field: f });\n }\n }\n}\nFieldArrayType.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FieldArrayType, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nFieldArrayType.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FieldArrayType, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FieldArrayType, decorators: [{\n type: Directive\n }] });\n\nclass FieldWrapper extends FieldType {\n set _formlyControls(_) { }\n set _staticContent(content) {\n this.fieldComponent = content;\n }\n}\nFieldWrapper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FieldWrapper, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nFieldWrapper.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FieldWrapper, viewQueries: [{ propertyName: \"fieldComponent\", first: true, predicate: [\"fieldComponent\"], descendants: true, read: ViewContainerRef }, { propertyName: \"_staticContent\", first: true, predicate: [\"fieldComponent\"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FieldWrapper, decorators: [{\n type: Directive\n }], propDecorators: { fieldComponent: [{\n type: ViewChild,\n args: ['fieldComponent', { read: ViewContainerRef }]\n }], _staticContent: [{\n type: ViewChild,\n args: ['fieldComponent', { read: ViewContainerRef, static: true }]\n }] } });\n\n/** @ignore */\nclass FormlyTemplateType extends FieldType {\n constructor(sanitizer) {\n super();\n this.sanitizer = sanitizer;\n this.innerHtml = {};\n }\n get template() {\n if (this.field && this.field.template !== this.innerHtml.template) {\n this.innerHtml = {\n template: this.field.template,\n content: this.props.safeHtml\n ? this.sanitizer.bypassSecurityTrustHtml(this.field.template)\n : this.field.template,\n };\n }\n return this.innerHtml.content;\n }\n}\nFormlyTemplateType.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyTemplateType, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });\nFormlyTemplateType.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyTemplateType, selector: \"formly-template\", usesInheritance: true, ngImport: i0, template: `
    `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyTemplateType, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-template',\n template: `
    `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });\n\nfunction evalStringExpression(expression, argNames) {\n try {\n return Function(...argNames, `return ${expression};`);\n }\n catch (error) {\n console.error(error);\n }\n}\nfunction evalExpression(expression, thisArg, argVal) {\n if (typeof expression === 'function') {\n return expression.apply(thisArg, argVal);\n }\n else {\n return expression ? true : false;\n }\n}\n\nclass FieldExpressionExtension {\n onPopulate(field) {\n if (field._expressions) {\n return;\n }\n // cache built expression\n defineHiddenProp(field, '_expressions', {});\n observe(field, ['hide'], ({ currentValue, firstChange }) => {\n defineHiddenProp(field, '_hide', !!currentValue);\n if (!firstChange || (firstChange && currentValue === true)) {\n field.props.hidden = currentValue;\n field.options._hiddenFieldsForCheck.push({ field });\n }\n });\n if (field.hideExpression) {\n observe(field, ['hideExpression'], ({ currentValue: expr }) => {\n field._expressions.hide = this.parseExpressions(field, 'hide', typeof expr === 'boolean' ? () => expr : expr);\n });\n }\n const evalExpr = (key, expr) => {\n if (typeof expr === 'string' || isFunction(expr)) {\n field._expressions[key] = this.parseExpressions(field, key, expr);\n }\n else if (expr instanceof Observable) {\n field._expressions[key] = {\n value$: expr.pipe(tap((v) => {\n this.evalExpr(field, key, v);\n field.options._detectChanges(field);\n })),\n };\n }\n };\n field.expressions = field.expressions || {};\n for (const key of Object.keys(field.expressions)) {\n observe(field, ['expressions', key], ({ currentValue: expr }) => {\n evalExpr(key, isFunction(expr) ? (...args) => expr(field, args[3]) : expr);\n });\n }\n field.expressionProperties = field.expressionProperties || {};\n for (const key of Object.keys(field.expressionProperties)) {\n observe(field, ['expressionProperties', key], ({ currentValue }) => evalExpr(key, currentValue));\n }\n }\n postPopulate(field) {\n if (field.parent) {\n return;\n }\n if (!field.options.checkExpressions) {\n let checkLocked = false;\n field.options.checkExpressions = (f, ignoreCache) => {\n if (checkLocked) {\n return;\n }\n checkLocked = true;\n const fieldChanged = this.checkExpressions(f, ignoreCache);\n const options = field.options;\n options._hiddenFieldsForCheck\n .sort((f) => (f.field.hide ? -1 : 1))\n .forEach((f) => this.changeHideState(f.field, f.field.hide ?? f.default, !ignoreCache));\n options._hiddenFieldsForCheck = [];\n if (fieldChanged) {\n this.checkExpressions(field);\n }\n checkLocked = false;\n };\n field.options._checkField = (f, ignoreCache) => {\n console.warn(`Formly: 'options._checkField' is deprecated since v6.0, use 'options.checkExpressions' instead.`);\n field.options.checkExpressions(f, ignoreCache);\n };\n }\n }\n parseExpressions(field, path, expr) {\n let parentExpression;\n if (field.parent && ['hide', 'props.disabled'].includes(path)) {\n const rootValue = (f) => {\n return path === 'hide' ? f.hide : f.props.disabled;\n };\n parentExpression = () => {\n let root = field.parent;\n while (root.parent && !rootValue(root)) {\n root = root.parent;\n }\n return rootValue(root);\n };\n }\n expr = expr || (() => false);\n if (typeof expr === 'string') {\n expr = evalStringExpression(expr, ['model', 'formState', 'field']);\n }\n let currentValue;\n return {\n callback: (ignoreCache) => {\n try {\n const exprValue = evalExpression(parentExpression ? (...args) => parentExpression(field) || expr(...args) : expr, { field }, [field.model, field.options.formState, field, ignoreCache]);\n if (ignoreCache ||\n (currentValue !== exprValue &&\n (!isObject(exprValue) ||\n isObservable(exprValue) ||\n JSON.stringify(exprValue) !== JSON.stringify(currentValue)))) {\n currentValue = exprValue;\n this.evalExpr(field, path, exprValue);\n return true;\n }\n return false;\n }\n catch (error) {\n error.message = `[Formly Error] [Expression \"${path}\"] ${error.message}`;\n throw error;\n }\n },\n };\n }\n checkExpressions(field, ignoreCache = false) {\n if (!field) {\n return false;\n }\n let fieldChanged = false;\n if (field._expressions) {\n for (const key of Object.keys(field._expressions)) {\n field._expressions[key].callback?.(ignoreCache) && (fieldChanged = true);\n }\n }\n field.fieldGroup?.forEach((f) => this.checkExpressions(f, ignoreCache) && (fieldChanged = true));\n return fieldChanged;\n }\n changeDisabledState(field, value) {\n if (field.fieldGroup) {\n field.fieldGroup\n .filter((f) => !f._expressions.hasOwnProperty('props.disabled'))\n .forEach((f) => this.changeDisabledState(f, value));\n }\n if (hasKey(field) && field.props.disabled !== value) {\n field.props.disabled = value;\n }\n }\n changeHideState(field, hide, resetOnHide) {\n if (field.fieldGroup) {\n field.fieldGroup\n .filter((f) => f && !f._expressions.hide)\n .forEach((f) => this.changeHideState(f, hide, resetOnHide));\n }\n if (field.formControl && hasKey(field)) {\n defineHiddenProp(field, '_hide', !!(hide || field.hide));\n const c = field.formControl;\n if (c._fields?.length > 1) {\n updateValidity(c);\n }\n if (hide === true && (!c._fields || c._fields.every((f) => !!f._hide))) {\n unregisterControl(field, true);\n if (resetOnHide && field.resetOnHide) {\n assignFieldValue(field, undefined);\n field.formControl.reset({ value: undefined, disabled: field.formControl.disabled });\n field.options.fieldChanges.next({ value: undefined, field, type: 'valueChanges' });\n if (field.fieldGroup && field.formControl instanceof FormArray) {\n field.fieldGroup.length = 0;\n }\n }\n }\n else if (hide === false) {\n if (field.resetOnHide && !isUndefined(field.defaultValue) && isUndefined(getFieldValue(field))) {\n assignFieldValue(field, field.defaultValue);\n }\n registerControl(field, undefined, true);\n if (field.resetOnHide && field.fieldArray && field.fieldGroup?.length !== field.model?.length) {\n field.options.build(field);\n }\n }\n }\n if (field.options.fieldChanges) {\n field.options.fieldChanges.next({ field, type: 'hidden', value: hide });\n }\n }\n evalExpr(field, prop, value) {\n if (prop.indexOf('model.') === 0) {\n const key = prop.replace(/^model\\./, ''), parent = field.fieldGroup ? field : field.parent;\n let control = field?.key === key ? field.formControl : field.form.get(key);\n if (!control && field.get(key)) {\n control = field.get(key).formControl;\n }\n assignFieldValue({ key, parent, model: field.model }, value);\n if (control && !(isNil(control.value) && isNil(value)) && control.value !== value) {\n control.patchValue(value);\n }\n }\n else {\n try {\n let target = field;\n const paths = this._evalExpressionPath(field, prop);\n const lastIndex = paths.length - 1;\n for (let i = 0; i < lastIndex; i++) {\n target = target[paths[i]];\n }\n target[paths[lastIndex]] = value;\n }\n catch (error) {\n error.message = `[Formly Error] [Expression \"${prop}\"] ${error.message}`;\n throw error;\n }\n if (['templateOptions.disabled', 'props.disabled'].includes(prop) && hasKey(field)) {\n this.changeDisabledState(field, value);\n }\n }\n this.emitExpressionChanges(field, prop, value);\n }\n emitExpressionChanges(field, property, value) {\n if (!field.options.fieldChanges) {\n return;\n }\n field.options.fieldChanges.next({\n field,\n type: 'expressionChanges',\n property,\n value,\n });\n }\n _evalExpressionPath(field, prop) {\n if (field._expressions[prop] && field._expressions[prop].paths) {\n return field._expressions[prop].paths;\n }\n let paths = [];\n if (prop.indexOf('[') === -1) {\n paths = prop.split('.');\n }\n else {\n prop\n .split(/[[\\]]{1,2}/) // https://stackoverflow.com/a/20198206\n .filter((p) => p)\n .forEach((path) => {\n const arrayPath = path.match(/['|\"](.*?)['|\"]/);\n if (arrayPath) {\n paths.push(arrayPath[1]);\n }\n else {\n paths.push(...path.split('.').filter((p) => p));\n }\n });\n }\n if (field._expressions[prop]) {\n field._expressions[prop].paths = paths;\n }\n return paths;\n }\n}\n\nclass FieldValidationExtension {\n constructor(config) {\n this.config = config;\n }\n onPopulate(field) {\n this.initFieldValidation(field, 'validators');\n this.initFieldValidation(field, 'asyncValidators');\n }\n initFieldValidation(field, type) {\n const validators = [];\n if (type === 'validators' && !(field.hasOwnProperty('fieldGroup') && !hasKey(field))) {\n validators.push(this.getPredefinedFieldValidation(field));\n }\n if (field[type]) {\n for (const validatorName of Object.keys(field[type])) {\n validatorName === 'validation'\n ? validators.push(...field[type].validation.map((v) => this.wrapNgValidatorFn(field, v)))\n : validators.push(this.wrapNgValidatorFn(field, field[type][validatorName], validatorName));\n }\n }\n defineHiddenProp(field, '_' + type, validators);\n }\n getPredefinedFieldValidation(field) {\n let VALIDATORS = [];\n FORMLY_VALIDATORS.forEach((opt) => observe(field, ['props', opt], ({ currentValue, firstChange }) => {\n VALIDATORS = VALIDATORS.filter((o) => o !== opt);\n if (opt === 'required' && currentValue != null && typeof currentValue !== 'boolean') {\n console.warn(`Formly: Invalid prop 'required' of type '${typeof currentValue}', expected 'boolean' (Field:${field.key}).`);\n }\n if (currentValue != null && currentValue !== false) {\n VALIDATORS.push(opt);\n }\n if (!firstChange && field.formControl) {\n updateValidity(field.formControl);\n }\n }));\n return (control) => {\n if (VALIDATORS.length === 0) {\n return null;\n }\n return Validators.compose(VALIDATORS.map((opt) => () => {\n const value = field.props[opt];\n switch (opt) {\n case 'required':\n return Validators.required(control);\n case 'pattern':\n return Validators.pattern(value)(control);\n case 'minLength':\n const minLengthResult = Validators.minLength(value)(control);\n const minLengthKey = this.config.getValidatorMessage('minlength') || field.validation?.messages?.minlength\n ? 'minlength'\n : 'minLength';\n return minLengthResult ? { [minLengthKey]: minLengthResult.minlength } : null;\n case 'maxLength':\n const maxLengthResult = Validators.maxLength(value)(control);\n const maxLengthKey = this.config.getValidatorMessage('maxlength') || field.validation?.messages?.maxlength\n ? 'maxlength'\n : 'maxLength';\n return maxLengthResult ? { [maxLengthKey]: maxLengthResult.maxlength } : null;\n case 'min':\n return Validators.min(value)(control);\n case 'max':\n return Validators.max(value)(control);\n default:\n return null;\n }\n }))(control);\n };\n }\n wrapNgValidatorFn(field, validator, validatorName) {\n let validatorOption;\n if (typeof validator === 'string') {\n validatorOption = clone(this.config.getValidator(validator));\n }\n if (typeof validator === 'object' && validator.name) {\n validatorOption = clone(this.config.getValidator(validator.name));\n if (validator.options) {\n validatorOption.options = validator.options;\n }\n }\n if (typeof validator === 'object' && validator.expression) {\n const { expression, ...options } = validator;\n validatorOption = {\n name: validatorName,\n validation: expression,\n options: Object.keys(options).length > 0 ? options : null,\n };\n }\n if (typeof validator === 'function') {\n validatorOption = {\n name: validatorName,\n validation: validator,\n };\n }\n return (control) => {\n const errors = validatorOption.validation(control, field, validatorOption.options);\n if (isPromise(errors)) {\n return errors.then((v) => this.handleResult(field, validatorName ? !!v : v, validatorOption));\n }\n if (isObservable(errors)) {\n return errors.pipe(map((v) => this.handleResult(field, validatorName ? !!v : v, validatorOption)));\n }\n return this.handleResult(field, validatorName ? !!errors : errors, validatorOption);\n };\n }\n handleResult(field, errors, { name, options }) {\n if (typeof errors === 'boolean') {\n errors = errors ? null : { [name]: options ? options : true };\n }\n const ctrl = field.formControl;\n ctrl?._childrenErrors?.[name]?.();\n if (isObject(errors)) {\n Object.keys(errors).forEach((name) => {\n const errorPath = errors[name].errorPath ? errors[name].errorPath : options?.errorPath;\n const childCtrl = errorPath ? field.formControl.get(errorPath) : null;\n if (childCtrl) {\n const { errorPath: _errorPath, ...opts } = errors[name];\n childCtrl.setErrors({ ...(childCtrl.errors || {}), [name]: opts });\n !ctrl._childrenErrors && defineHiddenProp(ctrl, '_childrenErrors', {});\n ctrl._childrenErrors[name] = () => {\n const { [name]: _toDelete, ...childErrors } = childCtrl.errors || {};\n childCtrl.setErrors(Object.keys(childErrors).length === 0 ? null : childErrors);\n };\n }\n });\n }\n return errors;\n }\n}\n\nclass FieldFormExtension {\n prePopulate(field) {\n if (!this.root) {\n this.root = field;\n }\n if (field.parent) {\n Object.defineProperty(field, 'form', {\n get: () => field.parent.formControl,\n configurable: true,\n });\n }\n }\n onPopulate(field) {\n if (field.hasOwnProperty('fieldGroup') && !hasKey(field)) {\n defineHiddenProp(field, 'formControl', field.form);\n }\n else {\n this.addFormControl(field);\n }\n }\n postPopulate(field) {\n if (this.root !== field) {\n return;\n }\n this.root = null;\n const markForCheck = this.setValidators(field);\n if (markForCheck && field.parent) {\n let parent = field.parent;\n while (parent) {\n if (hasKey(parent) || !parent.parent) {\n updateValidity(parent.formControl, true);\n }\n parent = parent.parent;\n }\n }\n }\n addFormControl(field) {\n let control = findControl(field);\n if (field.fieldArray) {\n return;\n }\n if (!control) {\n const controlOptions = { updateOn: field.modelOptions.updateOn };\n if (field.fieldGroup) {\n control = new FormGroup({}, controlOptions);\n }\n else {\n const value = hasKey(field) ? getFieldValue(field) : field.defaultValue;\n control = new FormControl({ value, disabled: !!field.props.disabled }, { ...controlOptions, initialValueIsDefault: true });\n }\n }\n else {\n if (control instanceof FormControl) {\n const value = hasKey(field) ? getFieldValue(field) : field.defaultValue;\n control.defaultValue = value;\n }\n }\n registerControl(field, control);\n }\n setValidators(field, disabled = false) {\n if (disabled === false && hasKey(field) && field.props?.disabled) {\n disabled = true;\n }\n let markForCheck = false;\n field.fieldGroup?.forEach((f) => f && this.setValidators(f, disabled) && (markForCheck = true));\n if (hasKey(field) || !field.parent || (!hasKey(field) && !field.fieldGroup)) {\n const { formControl: c } = field;\n if (c) {\n if (hasKey(field) && c instanceof FormControl) {\n if (disabled && c.enabled) {\n c.disable({ emitEvent: false, onlySelf: true });\n markForCheck = true;\n }\n if (!disabled && c.disabled) {\n c.enable({ emitEvent: false, onlySelf: true });\n markForCheck = true;\n }\n }\n if (null === c.validator && this.hasValidators(field, '_validators')) {\n c.setValidators(() => {\n const v = Validators.compose(this.mergeValidators(field, '_validators'));\n return v ? v(c) : null;\n });\n markForCheck = true;\n }\n if (null === c.asyncValidator && this.hasValidators(field, '_asyncValidators')) {\n c.setAsyncValidators(() => {\n const v = Validators.composeAsync(this.mergeValidators(field, '_asyncValidators'));\n return v ? v(c) : of(null);\n });\n markForCheck = true;\n }\n if (markForCheck) {\n updateValidity(c, true);\n // update validity of `FormGroup` instance created by field with nested key.\n let parent = c.parent;\n for (let i = 1; i < getKeyPath(field).length; i++) {\n if (parent) {\n updateValidity(parent, true);\n parent = parent.parent;\n }\n }\n }\n }\n }\n return markForCheck;\n }\n hasValidators(field, type) {\n const c = field.formControl;\n if (c?._fields?.length > 1 && c._fields.some((f) => f[type].length > 0)) {\n return true;\n }\n else if (field[type].length > 0) {\n return true;\n }\n return field.fieldGroup?.some((f) => f?.fieldGroup && !hasKey(f) && this.hasValidators(f, type));\n }\n mergeValidators(field, type) {\n const validators = [];\n const c = field.formControl;\n if (c?._fields?.length > 1) {\n c._fields\n .filter((f) => !f._hide)\n .forEach((f) => validators.push(...f[type]));\n }\n else if (field[type]) {\n validators.push(...field[type]);\n }\n if (field.fieldGroup) {\n field.fieldGroup\n .filter((f) => f?.fieldGroup && !hasKey(f))\n .forEach((f) => validators.push(...this.mergeValidators(f, type)));\n }\n return validators;\n }\n}\n\nclass CoreExtension {\n constructor(config) {\n this.config = config;\n this.formId = 0;\n }\n prePopulate(field) {\n const root = field.parent;\n this.initRootOptions(field);\n this.initFieldProps(field);\n if (root) {\n Object.defineProperty(field, 'options', { get: () => root.options, configurable: true });\n Object.defineProperty(field, 'model', {\n get: () => (hasKey(field) && field.fieldGroup ? getFieldValue(field) : root.model),\n configurable: true,\n });\n }\n Object.defineProperty(field, 'get', {\n value: (key) => getField(field, key),\n configurable: true,\n });\n this.getFieldComponentInstance(field).prePopulate?.(field);\n }\n onPopulate(field) {\n this.initFieldOptions(field);\n this.getFieldComponentInstance(field).onPopulate?.(field);\n if (field.fieldGroup) {\n field.fieldGroup.forEach((f, index) => {\n if (f) {\n Object.defineProperty(f, 'parent', { get: () => field, configurable: true });\n Object.defineProperty(f, 'index', { get: () => index, configurable: true });\n }\n this.formId++;\n });\n }\n }\n postPopulate(field) {\n this.getFieldComponentInstance(field).postPopulate?.(field);\n }\n initFieldProps(field) {\n field.props ?? (field.props = field.templateOptions);\n Object.defineProperty(field, 'templateOptions', {\n get: () => field.props,\n set: (props) => (field.props = props),\n configurable: true,\n });\n }\n initRootOptions(field) {\n if (field.parent) {\n return;\n }\n const options = field.options;\n field.options.formState = field.options.formState || {};\n if (!options.showError) {\n options.showError = this.config.extras.showError;\n }\n if (!options.fieldChanges) {\n defineHiddenProp(options, 'fieldChanges', new Subject());\n }\n if (!options._hiddenFieldsForCheck) {\n options._hiddenFieldsForCheck = [];\n }\n options._markForCheck = (f) => {\n console.warn(`Formly: 'options._markForCheck' is deprecated since v6.0, use 'options.detectChanges' instead.`);\n options.detectChanges(f);\n };\n options._detectChanges = (f) => {\n if (f._componentRefs) {\n markFieldForCheck(f);\n }\n f.fieldGroup?.forEach((f) => f && options._detectChanges(f));\n };\n options.detectChanges = (f) => {\n f.options.checkExpressions?.(f);\n options._detectChanges(f);\n };\n options.resetModel = (model) => {\n model = clone(model ?? options._initialModel);\n if (field.model) {\n Object.keys(field.model).forEach((k) => delete field.model[k]);\n Object.assign(field.model, model || {});\n }\n if (!isSignalRequired()) {\n observe(options, ['parentForm', 'submitted']).setValue(false, false);\n }\n options.build(field);\n field.form.reset(field.model);\n };\n options.updateInitialValue = (model) => (options._initialModel = clone(model ?? field.model));\n field.options.updateInitialValue();\n }\n initFieldOptions(field) {\n reverseDeepMerge(field, {\n id: getFieldId(`formly_${this.formId}`, field, field.index),\n hooks: {},\n modelOptions: {},\n validation: { messages: {} },\n props: !field.type || !hasKey(field)\n ? {}\n : {\n label: '',\n placeholder: '',\n disabled: false,\n },\n });\n if (this.config.extras.resetFieldOnHide && field.resetOnHide !== false) {\n field.resetOnHide = true;\n }\n if (field.type !== 'formly-template' &&\n (field.template || field.expressions?.template || field.expressionProperties?.template)) {\n field.type = 'formly-template';\n }\n if (!field.type && field.fieldGroup) {\n field.type = 'formly-group';\n }\n if (field.type) {\n this.config.getMergedField(field);\n }\n if (hasKey(field) &&\n !isUndefined(field.defaultValue) &&\n isUndefined(getFieldValue(field)) &&\n !isHiddenField(field)) {\n assignFieldValue(field, field.defaultValue);\n }\n field.wrappers = field.wrappers || [];\n }\n getFieldComponentInstance(field) {\n const componentRefInstance = () => {\n let componentRef = this.config.resolveFieldTypeRef(field);\n const fieldComponentRef = field._componentRefs?.slice(-1)[0];\n if (fieldComponentRef instanceof ComponentRef &&\n fieldComponentRef?.componentType === componentRef?.componentType) {\n componentRef = fieldComponentRef;\n }\n return componentRef?.instance;\n };\n if (!field._proxyInstance) {\n defineHiddenProp(field, '_proxyInstance', new Proxy({}, {\n get: (_, prop) => componentRefInstance()?.[prop],\n set: (_, prop, value) => (componentRefInstance()[prop] = value),\n }));\n }\n return field._proxyInstance;\n }\n}\n\nfunction defaultFormlyConfig(config) {\n return {\n types: [\n { name: 'formly-group', component: FormlyGroup },\n { name: 'formly-template', component: FormlyTemplateType },\n ],\n extensions: [\n { name: 'core', extension: new CoreExtension(config), priority: -250 },\n { name: 'field-validation', extension: new FieldValidationExtension(config), priority: -200 },\n { name: 'field-form', extension: new FieldFormExtension(), priority: -150 },\n { name: 'field-expression', extension: new FieldExpressionExtension(), priority: -100 },\n ],\n };\n}\nclass FormlyModule {\n constructor(configService, configs = []) {\n if (!configs) {\n return;\n }\n configs.forEach((config) => configService.addConfig(config));\n }\n static forRoot(config = {}) {\n return {\n ngModule: FormlyModule,\n providers: [\n { provide: FORMLY_CONFIG, multi: true, useFactory: defaultFormlyConfig, deps: [FormlyConfig] },\n { provide: FORMLY_CONFIG, useValue: config, multi: true },\n FormlyConfig,\n FormlyFormBuilder,\n ],\n };\n }\n static forChild(config = {}) {\n return {\n ngModule: FormlyModule,\n providers: [\n { provide: FORMLY_CONFIG, multi: true, useFactory: defaultFormlyConfig, deps: [FormlyConfig] },\n { provide: FORMLY_CONFIG, useValue: config, multi: true },\n FormlyFormBuilder,\n ],\n };\n }\n}\nFormlyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyModule, deps: [{ token: FormlyConfig }, { token: FORMLY_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyModule, declarations: [FormlyTemplate,\n FormlyForm,\n FormlyField,\n FormlyAttributes,\n FormlyGroup,\n FormlyValidationMessage,\n FormlyTemplateType], imports: [CommonModule], exports: [FormlyTemplate, FormlyForm, FormlyField, FormlyAttributes, FormlyGroup, FormlyValidationMessage] });\nFormlyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyModule, imports: [[CommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n FormlyTemplate,\n FormlyForm,\n FormlyField,\n FormlyAttributes,\n FormlyGroup,\n FormlyValidationMessage,\n FormlyTemplateType,\n ],\n exports: [FormlyTemplate, FormlyForm, FormlyField, FormlyAttributes, FormlyGroup, FormlyValidationMessage],\n imports: [CommonModule],\n }]\n }], ctorParameters: function () { return [{ type: FormlyConfig }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FORMLY_CONFIG]\n }] }]; } });\n\n/*\n * Public API Surface of core\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FORMLY_CONFIG, FieldArrayType, FieldType, FieldWrapper, FormlyConfig, FormlyField, FormlyForm, FormlyFormBuilder, FormlyModule, FormlyAttributes as ɵFormlyAttributes, FormlyGroup as ɵFormlyGroup, FormlyTemplate as ɵFormlyTemplate, FormlyValidationMessage as ɵFormlyValidationMessage, clone as ɵclone, defineHiddenProp as ɵdefineHiddenProp, getFieldValue as ɵgetFieldValue, hasKey as ɵhasKey, observe as ɵobserve, reverseDeepMerge as ɵreverseDeepMerge };\n","import * as i0 from '@angular/core';\nimport { Component, NgModule, Directive, Optional, ViewChild } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i1 from '@ngx-formly/core';\nimport { FieldWrapper, FormlyModule, FieldType as FieldType$1 } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nclass FormlyWrapperFormField extends FieldWrapper {\n}\nFormlyWrapperFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyWrapperFormField, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyWrapperFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyWrapperFormField, selector: \"formly-wrapper-form-field\", usesInheritance: true, ngImport: i0, template: `\n \n \n \n\n
    \n \n \n \n\n \n\n \n \n \n\n
    \n \n
    \n\n {{ props.description }}\n
    \n `, isInline: true, components: [{ type: i1.ɵFormlyValidationMessage, selector: \"formly-validation-message\", inputs: [\"field\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyWrapperFormField, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-wrapper-form-field',\n template: `\n \n \n \n\n
    \n \n \n \n\n \n\n \n \n \n\n
    \n \n
    \n\n {{ props.description }}\n
    \n `,\n }]\n }] });\n\nclass FormlyBootstrapFormFieldModule {\n}\nFormlyBootstrapFormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapFormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapFormFieldModule, declarations: [FormlyWrapperFormField], imports: [CommonModule,\n ReactiveFormsModule, i1.FormlyModule] });\nFormlyBootstrapFormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapFormFieldModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyModule.forChild({\n wrappers: [\n {\n name: 'form-field',\n component: FormlyWrapperFormField,\n },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapFormFieldModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyWrapperFormField],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyModule.forChild({\n wrappers: [\n {\n name: 'form-field',\n component: FormlyWrapperFormField,\n },\n ],\n }),\n ],\n }]\n }] });\n\nclass FieldType extends FieldType$1 {\n constructor(hostContainerRef) {\n super();\n this.hostContainerRef = hostContainerRef;\n }\n set content(templateRef) {\n if (templateRef && this.hostContainerRef) {\n this.hostContainerRef.createEmbeddedView(templateRef);\n }\n }\n}\nFieldType.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FieldType, deps: [{ token: i0.ViewContainerRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nFieldType.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FieldType, viewQueries: [{ propertyName: \"content\", first: true, predicate: [\"fieldTypeTemplate\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FieldType, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { content: [{\n type: ViewChild,\n args: ['fieldTypeTemplate', { static: true }]\n }] } });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FieldType, FormlyBootstrapFormFieldModule };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i2 from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\n\nclass FormlyFieldInput extends FieldType {\n get type() {\n return this.props.type || 'text';\n }\n}\nFormlyFieldInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldInput, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyFieldInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyFieldInput, selector: \"formly-field-input\", usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i2.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { type: i3.ɵFormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }, { type: i2.NumberValueAccessor, selector: \"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldInput, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-input',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n\nclass FormlyBootstrapInputModule {\n}\nFormlyBootstrapInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapInputModule, declarations: [FormlyFieldInput], imports: [CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule, i3.FormlyModule] });\nFormlyBootstrapInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapInputModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'input',\n component: FormlyFieldInput,\n wrappers: ['form-field'],\n },\n { name: 'string', extends: 'input' },\n {\n name: 'number',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number',\n },\n },\n },\n {\n name: 'integer',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number',\n },\n },\n },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapInputModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldInput],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'input',\n component: FormlyFieldInput,\n wrappers: ['form-field'],\n },\n { name: 'string', extends: 'input' },\n {\n name: 'number',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number',\n },\n },\n },\n {\n name: 'integer',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number',\n },\n },\n },\n ],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapInputModule, FormlyFieldInput };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i2 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i1 from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\n\nclass FormlyFieldTextArea extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n cols: 1,\n rows: 1,\n },\n };\n }\n}\nFormlyFieldTextArea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldTextArea, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyFieldTextArea.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyFieldTextArea, selector: \"formly-field-textarea\", usesInheritance: true, ngImport: i0, template: `\n \n \n \n `, isInline: true, directives: [{ type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i1.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { type: i2.ɵFormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldTextArea, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-textarea',\n template: `\n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n\nclass FormlyBootstrapTextAreaModule {\n}\nFormlyBootstrapTextAreaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapTextAreaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapTextAreaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapTextAreaModule, declarations: [FormlyFieldTextArea], imports: [CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule, i2.FormlyModule] });\nFormlyBootstrapTextAreaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapTextAreaModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'textarea',\n component: FormlyFieldTextArea,\n wrappers: ['form-field'],\n },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapTextAreaModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldTextArea],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'textarea',\n component: FormlyFieldTextArea,\n wrappers: ['form-field'],\n },\n ],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapTextAreaModule, FormlyFieldTextArea };\n","import * as i0 from '@angular/core';\nimport { Pipe, NgModule } from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { map, filter, tap } from 'rxjs/operators';\n\nclass FormlySelectOptionsPipe {\n transform(options, field) {\n if (!(options instanceof Observable)) {\n options = this.observableOf(options, field);\n }\n else {\n this.dispose();\n }\n return options.pipe(map((value) => this.transformOptions(value, field)));\n }\n ngOnDestroy() {\n this.dispose();\n }\n transformOptions(options, field) {\n const to = this.transformSelectProps(field);\n const opts = [];\n const groups = {};\n options?.forEach((option) => {\n const o = this.transformOption(option, to);\n if (o.group) {\n const id = groups[o.label];\n if (id === undefined) {\n groups[o.label] = opts.push(o) - 1;\n }\n else {\n o.group.forEach((o) => opts[id].group.push(o));\n }\n }\n else {\n opts.push(o);\n }\n });\n return opts;\n }\n transformOption(option, props) {\n const group = props.groupProp(option);\n if (Array.isArray(group)) {\n return {\n label: props.labelProp(option),\n group: group.map((opt) => this.transformOption(opt, props)),\n };\n }\n option = {\n label: props.labelProp(option),\n value: props.valueProp(option),\n disabled: !!props.disabledProp(option),\n };\n if (group) {\n return { label: group, group: [option] };\n }\n return option;\n }\n transformSelectProps(field) {\n const props = field?.props || field?.templateOptions || {};\n const selectPropFn = (prop) => (typeof prop === 'function' ? prop : (o) => o[prop]);\n return {\n groupProp: selectPropFn(props.groupProp || 'group'),\n labelProp: selectPropFn(props.labelProp || 'label'),\n valueProp: selectPropFn(props.valueProp || 'value'),\n disabledProp: selectPropFn(props.disabledProp || 'disabled'),\n };\n }\n dispose() {\n if (this._options) {\n this._options.complete();\n this._options = null;\n }\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n }\n observableOf(options, f) {\n this.dispose();\n if (f && f.options && f.options.fieldChanges) {\n this._subscription = f.options.fieldChanges\n .pipe(filter(({ property, type, field }) => {\n return (type === 'expressionChanges' &&\n (property.indexOf('templateOptions.options') === 0 || property.indexOf('props.options') === 0) &&\n field === f &&\n Array.isArray(field.props.options) &&\n !!this._options);\n }), tap(() => this._options.next(f.props.options)))\n .subscribe();\n }\n this._options = new BehaviorSubject(options);\n return this._options.asObservable();\n }\n}\nFormlySelectOptionsPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectOptionsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nFormlySelectOptionsPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectOptionsPipe, name: \"formlySelectOptions\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectOptionsPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'formlySelectOptions' }]\n }] });\n\nclass FormlySelectModule {\n}\nFormlySelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlySelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectModule, declarations: [FormlySelectOptionsPipe], exports: [FormlySelectOptionsPipe] });\nFormlySelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlySelectOptionsPipe],\n exports: [FormlySelectOptionsPipe],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlySelectModule, FormlySelectOptionsPipe };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i2 from '@angular/forms';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport * as i4 from '@ngx-formly/core/select';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\n\nclass FormlyFieldRadio extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n formCheck: 'default',\n },\n };\n }\n get disabledControl() {\n return new FormControl({ value: this.formControl.value, disabled: true });\n }\n}\nFormlyFieldRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldRadio, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyFieldRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyFieldRadio, selector: \"formly-field-radio\", usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i2.RadioControlValueAccessor, selector: \"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]\", inputs: [\"name\", \"formControlName\", \"value\"] }, { type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i2.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { type: i3.ɵFormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }], pipes: { \"async\": i1.AsyncPipe, \"formlySelectOptions\": i4.FormlySelectOptionsPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldRadio, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-radio',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n\nclass FormlyBootstrapRadioModule {\n}\nFormlyBootstrapRadioModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapRadioModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapRadioModule, declarations: [FormlyFieldRadio], imports: [CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule, i3.FormlyModule] });\nFormlyBootstrapRadioModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapRadioModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'radio',\n component: FormlyFieldRadio,\n wrappers: ['form-field'],\n },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapRadioModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldRadio],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'radio',\n component: FormlyFieldRadio,\n wrappers: ['form-field'],\n },\n ],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapRadioModule, FormlyFieldRadio };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i2 from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\n\nclass FormlyFieldCheckbox extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n indeterminate: true,\n hideLabel: true,\n formCheck: 'default',\n },\n };\n }\n}\nFormlyFieldCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyFieldCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyFieldCheckbox, selector: \"formly-field-checkbox\", usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i2.CheckboxControlValueAccessor, selector: \"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]\" }, { type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i2.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { type: i3.ɵFormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }, { type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldCheckbox, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-checkbox',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n\nclass FormlyBootstrapCheckboxModule {\n}\nFormlyBootstrapCheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapCheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapCheckboxModule, declarations: [FormlyFieldCheckbox], imports: [CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule, i3.FormlyModule] });\nFormlyBootstrapCheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapCheckboxModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'checkbox',\n component: FormlyFieldCheckbox,\n wrappers: ['form-field'],\n },\n {\n name: 'boolean',\n extends: 'checkbox',\n },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapCheckboxModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldCheckbox],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'checkbox',\n component: FormlyFieldCheckbox,\n wrappers: ['form-field'],\n },\n {\n name: 'boolean',\n extends: 'checkbox',\n },\n ],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapCheckboxModule, FormlyFieldCheckbox };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport * as i2 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i3 from '@ngx-formly/core/select';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\n\nclass FormlyFieldMultiCheckbox extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n formCheck: 'default', // 'default' | 'inline' | 'switch' | 'inline-switch'\n },\n };\n }\n onChange(value, checked) {\n this.formControl.markAsDirty();\n if (this.props.type === 'array') {\n this.formControl.patchValue(checked\n ? [...(this.formControl.value || []), value]\n : [...(this.formControl.value || [])].filter((o) => o !== value));\n }\n else {\n this.formControl.patchValue({ ...this.formControl.value, [value]: checked });\n }\n this.formControl.markAsTouched();\n }\n isChecked(option) {\n const value = this.formControl.value;\n return value && (this.props.type === 'array' ? value.indexOf(option.value) !== -1 : value[option.value]);\n }\n}\nFormlyFieldMultiCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldMultiCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyFieldMultiCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyFieldMultiCheckbox, selector: \"formly-field-multicheckbox\", usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i2.ɵFormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }], pipes: { \"async\": i1.AsyncPipe, \"formlySelectOptions\": i3.FormlySelectOptionsPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldMultiCheckbox, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-multicheckbox',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n\nclass FormlyBootstrapMultiCheckboxModule {\n}\nFormlyBootstrapMultiCheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapMultiCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapMultiCheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapMultiCheckboxModule, declarations: [FormlyFieldMultiCheckbox], imports: [CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule, i2.FormlyModule] });\nFormlyBootstrapMultiCheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapMultiCheckboxModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'multicheckbox',\n component: FormlyFieldMultiCheckbox,\n wrappers: ['form-field'],\n },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapMultiCheckboxModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldMultiCheckbox],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'multicheckbox',\n component: FormlyFieldMultiCheckbox,\n wrappers: ['form-field'],\n },\n ],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapMultiCheckboxModule, FormlyFieldMultiCheckbox };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i2 from '@angular/forms';\nimport { SelectControlValueAccessor, ReactiveFormsModule } from '@angular/forms';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i4 from '@ngx-formly/core/select';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\nimport { take } from 'rxjs/operators';\n\nclass FormlyFieldSelect extends FieldType {\n constructor(ngZone, hostContainerRef) {\n super(hostContainerRef);\n this.ngZone = ngZone;\n this.defaultOptions = {\n props: {\n compareWith(o1, o2) {\n return o1 === o2;\n },\n },\n };\n }\n // workaround for https://github.com/angular/angular/issues/10010\n /**\n * TODO: Check if this is still needed\n */\n set selectAccessor(s) {\n if (!s) {\n return;\n }\n const writeValue = s.writeValue.bind(s);\n if (s._getOptionId(s.value) === null) {\n writeValue(s.value);\n }\n s.writeValue = (value) => {\n const id = s._idCounter;\n writeValue(value);\n if (value === null) {\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n if (id !== s._idCounter &&\n s._getOptionId(value) === null &&\n s._elementRef.nativeElement.selectedIndex !== -1) {\n writeValue(value);\n }\n });\n }\n };\n }\n}\nFormlyFieldSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldSelect, deps: [{ token: i0.NgZone }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });\nFormlyFieldSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyFieldSelect, selector: \"formly-field-select\", viewQueries: [{ propertyName: \"selectAccessor\", first: true, predicate: SelectControlValueAccessor, descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.SelectMultipleControlValueAccessor, selector: \"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]\", inputs: [\"compareWith\"] }, { type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i2.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { type: i3.ɵFormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }, { type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i2.NgSelectOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { type: i2.ɵNgSelectMultipleOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { type: i2.SelectControlValueAccessor, selector: \"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]\", inputs: [\"compareWith\"] }], pipes: { \"async\": i1.AsyncPipe, \"formlySelectOptions\": i4.FormlySelectOptionsPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldSelect, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-select',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ViewContainerRef }]; }, propDecorators: { selectAccessor: [{\n type: ViewChild,\n args: [SelectControlValueAccessor]\n }] } });\n\nclass FormlyBootstrapSelectModule {\n}\nFormlyBootstrapSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapSelectModule, declarations: [FormlyFieldSelect], imports: [CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule, i3.FormlyModule] });\nFormlyBootstrapSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapSelectModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'select',\n component: FormlyFieldSelect,\n wrappers: ['form-field'],\n },\n { name: 'enum', extends: 'select' },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapSelectModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldSelect],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'select',\n component: FormlyFieldSelect,\n wrappers: ['form-field'],\n },\n { name: 'enum', extends: 'select' },\n ],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapSelectModule, FormlyFieldSelect };\n","import * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ViewChild, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i1$1 from '@ngx-formly/core';\nimport { FieldWrapper, FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nclass FormlyWrapperAddons extends FieldWrapper {\n constructor(hostContainerRef) {\n super();\n this.hostContainerRef = hostContainerRef;\n }\n set content(templateRef) {\n if (templateRef && this.hostContainerRef) {\n this.hostContainerRef.createEmbeddedView(templateRef);\n }\n }\n addonRightClick($event) {\n this.props.addonRight.onClick?.(this.field, $event);\n }\n addonLeftClick($event) {\n this.props.addonLeft.onClick?.(this.field, $event);\n }\n}\nFormlyWrapperAddons.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyWrapperAddons, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });\nFormlyWrapperAddons.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyWrapperAddons, selector: \"formly-wrapper-addons\", viewQueries: [{ propertyName: \"content\", first: true, predicate: [\"fieldTypeTemplate\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"\\n
    \\n \\n \\n {{ props.addonLeft.text }}\\n
    \\n \\n \\n \\n {{ props.addonRight.text }}\\n \\n \\n
    \\n\", styles: [\"formly-wrapper-form-field .input-group-btn{cursor:pointer}\\n\"], directives: [{ type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyWrapperAddons, decorators: [{\n type: Component,\n args: [{ selector: 'formly-wrapper-addons', encapsulation: ViewEncapsulation.None, template: \"\\n
    \\n \\n \\n {{ props.addonLeft.text }}\\n
    \\n \\n \\n \\n {{ props.addonRight.text }}\\n \\n \\n
    \\n\", styles: [\"formly-wrapper-form-field .input-group-btn{cursor:pointer}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { content: [{\n type: ViewChild,\n args: ['fieldTypeTemplate', { static: true }]\n }] } });\n\nfunction addonsExtension(field) {\n if (!field.props || (field.wrappers && field.wrappers.indexOf('addons') !== -1)) {\n return;\n }\n if (field.props.addonLeft || field.props.addonRight) {\n field.wrappers = [...(field.wrappers || []), 'addons'];\n }\n}\n\nclass FormlyBootstrapAddonsModule {\n}\nFormlyBootstrapAddonsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapAddonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapAddonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapAddonsModule, declarations: [FormlyWrapperAddons], imports: [CommonModule,\n ReactiveFormsModule, i1$1.FormlyModule] });\nFormlyBootstrapAddonsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapAddonsModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyModule.forChild({\n wrappers: [{ name: 'addons', component: FormlyWrapperAddons }],\n extensions: [{ name: 'addons', extension: { postPopulate: addonsExtension } }],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapAddonsModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyWrapperAddons],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyModule.forChild({\n wrappers: [{ name: 'addons', component: FormlyWrapperAddons }],\n extensions: [{ name: 'addons', extension: { postPopulate: addonsExtension } }],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapAddonsModule };\n","import * as i0 from '@angular/core';\nimport { NgModule } from '@angular/core';\nimport { FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\nimport { FormlyBootstrapInputModule } from '@ngx-formly/bootstrap/input';\nimport { FormlyBootstrapTextAreaModule } from '@ngx-formly/bootstrap/textarea';\nimport { FormlyBootstrapRadioModule } from '@ngx-formly/bootstrap/radio';\nimport { FormlyBootstrapCheckboxModule } from '@ngx-formly/bootstrap/checkbox';\nimport { FormlyBootstrapMultiCheckboxModule } from '@ngx-formly/bootstrap/multicheckbox';\nimport { FormlyBootstrapSelectModule } from '@ngx-formly/bootstrap/select';\nimport { FormlyBootstrapAddonsModule } from '@ngx-formly/bootstrap/addons';\n\nclass FormlyBootstrapModule {\n}\nFormlyBootstrapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapModule, imports: [FormlyBootstrapFormFieldModule,\n FormlyBootstrapInputModule,\n FormlyBootstrapTextAreaModule,\n FormlyBootstrapRadioModule,\n FormlyBootstrapCheckboxModule,\n FormlyBootstrapMultiCheckboxModule,\n FormlyBootstrapSelectModule,\n FormlyBootstrapAddonsModule] });\nFormlyBootstrapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapModule, imports: [[\n FormlyBootstrapFormFieldModule,\n FormlyBootstrapInputModule,\n FormlyBootstrapTextAreaModule,\n FormlyBootstrapRadioModule,\n FormlyBootstrapCheckboxModule,\n FormlyBootstrapMultiCheckboxModule,\n FormlyBootstrapSelectModule,\n FormlyBootstrapAddonsModule,\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n FormlyBootstrapFormFieldModule,\n FormlyBootstrapInputModule,\n FormlyBootstrapTextAreaModule,\n FormlyBootstrapRadioModule,\n FormlyBootstrapCheckboxModule,\n FormlyBootstrapMultiCheckboxModule,\n FormlyBootstrapSelectModule,\n FormlyBootstrapAddonsModule,\n ],\n }]\n }] });\n\n/*\n * Public API Surface of bootstrap\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapModule };\n","import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport { FormArray, FormGroup } from '@angular/forms';\nimport { ɵhasKey, ɵgetFieldValue, ɵclone, ɵreverseDeepMerge } from '@ngx-formly/core';\nimport { tap } from 'rxjs/operators';\n\n// https://stackoverflow.com/a/27865285\nfunction decimalPlaces(a) {\n if (!isFinite(a)) {\n return 0;\n }\n let e = 1, p = 0;\n while (Math.round(a * e) / e !== a) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction isEmpty(v) {\n return v === '' || v == null;\n}\nfunction isObject(v) {\n return v != null && typeof v === 'object' && !Array.isArray(v);\n}\nfunction isInteger(value) {\n return Number.isInteger ? Number.isInteger(value) : typeof value === 'number' && Math.floor(value) === value;\n}\nfunction isConst(schema) {\n return typeof schema === 'object' && (schema.hasOwnProperty('const') || (schema.enum && schema.enum.length === 1));\n}\nfunction toNumber(value) {\n if (value === '' || value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n if (typeof value === 'number') {\n return value;\n }\n const val = parseFloat(value);\n return !isNaN(val) ? val : value;\n}\nfunction totalMatchedFields(field) {\n if (!field.fieldGroup) {\n return ɵhasKey(field) && ɵgetFieldValue(field) !== undefined ? 1 : 0;\n }\n const total = field.fieldGroup.reduce((s, f) => totalMatchedFields(f) + s, 0);\n if (total === 0 && ɵhasKey(field)) {\n const value = ɵgetFieldValue(field);\n if (value === null ||\n (value !== undefined && ((field.fieldArray && Array.isArray(value)) || (!field.fieldArray && isObject(value))))) {\n return 1;\n }\n }\n return total;\n}\nclass FormlyJsonschema {\n toFieldConfig(schema, options) {\n schema = ɵclone(schema);\n return this._toFieldConfig(schema, { schema, ...(options || {}) });\n }\n _toFieldConfig(schema, { key, isOptional, ...options }) {\n schema = this.resolveSchema(schema, options);\n const types = this.guessSchemaType(schema);\n let field = {\n type: types[0],\n defaultValue: schema.default,\n props: {\n label: schema.title,\n readonly: schema.readOnly,\n description: schema.description,\n },\n };\n if (key != null) {\n field.key = key;\n }\n if (!options.ignoreDefault && (schema.readOnly || options.readOnly)) {\n field.props.disabled = true;\n options = { ...options, readOnly: true };\n }\n if (options.resetOnHide) {\n field.resetOnHide = true;\n }\n if (options.shareFormControl === false) {\n field.shareFormControl = false;\n }\n if (field.defaultValue === undefined && types.length === 1 && isOptional === false) {\n switch (types[0]) {\n case 'null': {\n field.defaultValue = null;\n break;\n }\n case 'string': {\n field.defaultValue = '';\n break;\n }\n case 'object': {\n field.defaultValue = {};\n break;\n }\n case 'array': {\n field.defaultValue = schema.minItems > 0 ? Array.from(new Array(schema.minItems)) : [];\n break;\n }\n }\n }\n if (options.ignoreDefault) {\n delete field.defaultValue;\n }\n this.addValidator(field, 'type', {\n schemaType: types,\n expression: ({ value }) => {\n if (value === undefined) {\n return true;\n }\n if (value === null && types.indexOf('null') !== -1) {\n return true;\n }\n switch (types[0]) {\n case 'null': {\n return typeof value === null;\n }\n case 'string': {\n return typeof value === 'string';\n }\n case 'integer': {\n return isInteger(value);\n }\n case 'number': {\n return typeof value === 'number';\n }\n case 'object': {\n return isObject(value);\n }\n case 'array': {\n return Array.isArray(value);\n }\n }\n return true;\n },\n });\n switch (field.type) {\n case 'number':\n case 'integer': {\n field.parsers = [\n (v, f) => {\n v = toNumber(v);\n if (v === null && f) {\n const input = typeof document !== 'undefined' && f.id\n ? document.querySelector(`#${f.id}`)\n : undefined;\n if (input && !input.validity.badInput) {\n v = undefined;\n }\n if (v !== f.formControl.value) {\n f.formControl.setValue(v, { emitModelToViewChange: false });\n }\n }\n return v;\n },\n ];\n if (schema.hasOwnProperty('minimum')) {\n field.props.min = schema.minimum;\n }\n if (schema.hasOwnProperty('maximum')) {\n field.props.max = schema.maximum;\n }\n if (schema.hasOwnProperty('exclusiveMinimum')) {\n field.props.exclusiveMinimum = schema.exclusiveMinimum;\n this.addValidator(field, 'exclusiveMinimum', ({ value }) => isEmpty(value) || value > schema.exclusiveMinimum);\n }\n if (schema.hasOwnProperty('exclusiveMaximum')) {\n field.props.exclusiveMaximum = schema.exclusiveMaximum;\n this.addValidator(field, 'exclusiveMaximum', ({ value }) => isEmpty(value) || value < schema.exclusiveMaximum);\n }\n if (schema.hasOwnProperty('multipleOf')) {\n field.props.step = schema.multipleOf;\n this.addValidator(field, 'multipleOf', ({ value }) => {\n if (isEmpty(value) || typeof value !== 'number' || value === 0 || schema.multipleOf <= 0) {\n return true;\n }\n // https://github.com/ajv-validator/ajv/issues/652#issue-283610859\n const multiplier = Math.pow(10, decimalPlaces(schema.multipleOf));\n return Math.round(value * multiplier) % Math.round(schema.multipleOf * multiplier) === 0;\n });\n }\n break;\n }\n case 'string': {\n field.parsers = [\n (v, f) => {\n if (types.indexOf('null') !== -1) {\n v = isEmpty(v) ? null : v;\n }\n else if (f && !f.props.required) {\n v = v === '' ? undefined : v;\n }\n return v;\n },\n ];\n ['minLength', 'maxLength', 'pattern'].forEach((prop) => {\n if (schema.hasOwnProperty(prop)) {\n field.props[prop] = schema[prop];\n }\n });\n break;\n }\n case 'object': {\n if (!field.fieldGroup) {\n field.fieldGroup = [];\n }\n const { propDeps, schemaDeps } = this.resolveDependencies(schema);\n Object.keys(schema.properties || {}).forEach((property) => {\n const isRequired = Array.isArray(schema.required) && schema.required.indexOf(property) !== -1;\n const f = this._toFieldConfig(schema.properties[property], {\n ...options,\n key: property,\n isOptional: isOptional || !isRequired,\n });\n field.fieldGroup.push(f);\n if (isRequired || propDeps[property]) {\n f.expressions = {\n ...(f.expressions || {}),\n 'props.required': (f) => {\n let parent = f.parent;\n const model = f.fieldGroup && f.key != null ? parent.model : f.model;\n while (parent.key == null && parent.parent) {\n parent = parent.parent;\n }\n const required = parent && parent.props ? parent.props.required : false;\n if (!model && !required) {\n return false;\n }\n if (Array.isArray(schema.required) && schema.required.indexOf(property) !== -1) {\n return true;\n }\n return propDeps[property] && f.model && propDeps[property].some((k) => !isEmpty(f.model[k]));\n },\n };\n }\n if (schemaDeps[property]) {\n const getConstValue = (s) => {\n return s.hasOwnProperty('const') ? s.const : s.enum[0];\n };\n const oneOfSchema = schemaDeps[property].oneOf;\n if (oneOfSchema &&\n oneOfSchema.every((o) => o.properties && o.properties[property] && isConst(o.properties[property]))) {\n oneOfSchema.forEach((oneOfSchemaItem) => {\n const { [property]: constSchema, ...properties } = oneOfSchemaItem.properties;\n field.fieldGroup.push({\n ...this._toFieldConfig({ ...oneOfSchemaItem, properties }, { ...options, shareFormControl: false, resetOnHide: true }),\n expressions: {\n hide: (f) => !f.model || getConstValue(constSchema) !== f.model[property],\n },\n });\n });\n }\n else {\n field.fieldGroup.push({\n ...this._toFieldConfig(schemaDeps[property], options),\n expressions: {\n hide: (f) => !f.model || isEmpty(f.model[property]),\n },\n });\n }\n }\n });\n if (schema.oneOf) {\n field.fieldGroup.push(this.resolveMultiSchema('oneOf', schema.oneOf, { ...options, shareFormControl: false }));\n }\n if (schema.anyOf) {\n field.fieldGroup.push(this.resolveMultiSchema('anyOf', schema.anyOf, options));\n }\n break;\n }\n case 'array': {\n if (schema.hasOwnProperty('minItems')) {\n field.props.minItems = schema.minItems;\n this.addValidator(field, 'minItems', ({ value }) => {\n return isEmpty(value) || value.length >= schema.minItems;\n });\n if (!isOptional && schema.minItems > 0 && field.defaultValue === undefined) {\n field.defaultValue = Array.from(new Array(schema.minItems));\n }\n }\n if (schema.hasOwnProperty('maxItems')) {\n field.props.maxItems = schema.maxItems;\n this.addValidator(field, 'maxItems', ({ value }) => {\n return isEmpty(value) || value.length <= schema.maxItems;\n });\n }\n if (schema.hasOwnProperty('uniqueItems')) {\n field.props.uniqueItems = schema.uniqueItems;\n this.addValidator(field, 'uniqueItems', ({ value }) => {\n if (isEmpty(value) || !schema.uniqueItems) {\n return true;\n }\n const uniqueItems = Array.from(new Set(value.map((v) => JSON.stringify(v, (k, o) => {\n if (isObject(o)) {\n return Object.keys(o)\n .sort()\n .reduce((obj, key) => {\n obj[key] = o[key];\n return obj;\n }, {});\n }\n return o;\n }))));\n return uniqueItems.length === value.length;\n });\n }\n // resolve items schema needed for isEnum check\n if (schema.items && !Array.isArray(schema.items)) {\n schema.items = this.resolveSchema(schema.items, options);\n }\n // TODO: remove isEnum check once adding an option to skip extension\n if (!this.isEnum(schema)) {\n field.fieldArray = (root) => {\n const length = root.fieldGroup ? root.fieldGroup.length : 0;\n const items = schema.items;\n if (!Array.isArray(items)) {\n if (!items) {\n return {};\n }\n const isMultiSchema = items.oneOf || items.anyOf;\n // When items is a single schema, the additionalItems keyword is meaningless, and it should not be used.\n const f = this._toFieldConfig(items, isMultiSchema ? { ...options, key: `${length}`, isOptional: false } : { ...options, isOptional: false });\n if (isMultiSchema && !ɵhasKey(f)) {\n f.key = null;\n }\n return f;\n }\n const itemSchema = items[length] ? items[length] : schema.additionalItems;\n const f = itemSchema ? this._toFieldConfig(itemSchema, options) : {};\n if (f.props) {\n f.props.required = true;\n }\n if (items[length]) {\n f.props.removable = false;\n }\n return f;\n };\n }\n break;\n }\n }\n if (schema.hasOwnProperty('const')) {\n field.props.const = schema.const;\n this.addValidator(field, 'const', ({ value }) => value === schema.const);\n if (!field.type) {\n field.defaultValue = schema.const;\n }\n }\n if (this.isEnum(schema)) {\n const enumOptions = this.toEnumOptions(schema);\n const multiple = field.type === 'array';\n field.type = 'enum';\n field.props.multiple = multiple;\n field.props.options = enumOptions;\n const enumValues = enumOptions.map((o) => o.value);\n this.addValidator(field, 'enum', ({ value }) => {\n if (value === undefined) {\n return true;\n }\n if (multiple) {\n return Array.isArray(value) ? value.every((o) => enumValues.includes(o)) : false;\n }\n return enumValues.includes(value);\n });\n }\n if (schema.oneOf && !field.type) {\n delete field.key;\n field.fieldGroup = [\n this.resolveMultiSchema('oneOf', schema.oneOf, { ...options, key, shareFormControl: false }),\n ];\n }\n if (schema.anyOf && !field.type) {\n delete field.key;\n field.fieldGroup = [\n this.resolveMultiSchema('oneOf', schema.anyOf, { ...options, key, shareFormControl: false }),\n ];\n }\n // map in possible formlyConfig options from the widget property\n if (schema.widget?.formlyConfig) {\n field = this.mergeFields(field, schema.widget.formlyConfig);\n }\n field.templateOptions = field.props;\n // if there is a map function passed in, use it to allow the user to\n // further customize how fields are being mapped\n return options.map ? options.map(field, schema) : field;\n }\n resolveSchema(schema, options) {\n if (schema && schema.$ref) {\n schema = this.resolveDefinition(schema, options);\n }\n if (schema && schema.allOf) {\n schema = this.resolveAllOf(schema, options);\n }\n return schema;\n }\n resolveAllOf({ allOf, ...baseSchema }, options) {\n if (!allOf.length) {\n throw Error(`allOf array can not be empty ${allOf}.`);\n }\n return allOf.reduce((base, schema) => {\n schema = this.resolveSchema(schema, options);\n if (base.required && schema.required) {\n base.required = [...base.required, ...schema.required];\n }\n if (schema.uniqueItems) {\n base.uniqueItems = schema.uniqueItems;\n }\n // resolve to min value\n ['maxLength', 'maximum', 'exclusiveMaximum', 'maxItems', 'maxProperties'].forEach((prop) => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n base[prop] = base[prop] < schema[prop] ? base[prop] : schema[prop];\n }\n });\n // resolve to max value\n ['minLength', 'minimum', 'exclusiveMinimum', 'minItems', 'minProperties'].forEach((prop) => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n base[prop] = base[prop] > schema[prop] ? base[prop] : schema[prop];\n }\n });\n return ɵreverseDeepMerge(base, schema);\n }, baseSchema);\n }\n resolveMultiSchema(mode, schemas, options) {\n return {\n type: 'multischema',\n fieldGroup: [\n {\n type: 'enum',\n defaultValue: -1,\n props: {\n multiple: mode === 'anyOf',\n options: schemas.map((s, i) => ({ label: s.title, value: i, disabled: s.readOnly })),\n },\n hooks: {\n onInit: (f) => f.formControl.valueChanges.pipe(tap(() => f.options.detectChanges(f.parent))),\n },\n },\n {\n fieldGroup: schemas.map((s, i) => ({\n ...this._toFieldConfig(s, { ...options, resetOnHide: true }),\n expressions: {\n hide: (f, forceUpdate) => {\n const control = f.parent.parent.fieldGroup[0].formControl;\n if (control.value === -1 || forceUpdate) {\n let value = f.parent.fieldGroup\n .map((f, i) => [f, i, this.isFieldValid(f, i, schemas, options)])\n .sort(([f1, , f1Valid], [f2, , f2Valid]) => {\n if (f1Valid !== f2Valid) {\n return f2Valid ? 1 : -1;\n }\n const matchedFields1 = totalMatchedFields(f1);\n const matchedFields2 = totalMatchedFields(f2);\n if (matchedFields1 === matchedFields2) {\n if (f1.props.disabled === f2.props.disabled) {\n return 0;\n }\n return matchedFields2 > matchedFields1 ? 1 : -1;\n }\n return matchedFields2 > matchedFields1 ? 1 : -1;\n })\n .map(([, i]) => i);\n if (mode === 'anyOf') {\n const definedValue = value.filter((i) => totalMatchedFields(f.parent.fieldGroup[i]));\n value = definedValue.length > 0 ? definedValue : [value[0] || 0];\n }\n value = value.length > 0 ? value : [0];\n control.setValue(mode === 'anyOf' ? value : value[0]);\n }\n return Array.isArray(control.value) ? control.value.indexOf(i) === -1 : control.value !== i;\n },\n },\n })),\n },\n ],\n };\n }\n resolveDefinition(schema, options) {\n const [uri, pointer] = schema.$ref.split('#/');\n if (uri) {\n throw Error(`Remote schemas for ${schema.$ref} not supported yet.`);\n }\n const definition = !pointer\n ? null\n : pointer\n .split('/')\n .reduce((def, path) => (def?.hasOwnProperty(path) ? def[path] : null), options.schema);\n if (!definition) {\n throw Error(`Cannot find a definition for ${schema.$ref}.`);\n }\n if (definition.$ref) {\n return this.resolveDefinition(definition, options);\n }\n return {\n ...definition,\n ...['title', 'description', 'default', 'widget'].reduce((annotation, p) => {\n if (schema.hasOwnProperty(p)) {\n annotation[p] = schema[p];\n }\n return annotation;\n }, {}),\n };\n }\n resolveDependencies(schema) {\n const propDeps = {};\n const schemaDeps = {};\n Object.keys(schema.dependencies || {}).forEach((prop) => {\n const dependency = schema.dependencies[prop];\n if (Array.isArray(dependency)) {\n // Property dependencies\n dependency.forEach((dep) => {\n if (!propDeps[dep]) {\n propDeps[dep] = [prop];\n }\n else {\n propDeps[dep].push(prop);\n }\n });\n }\n else {\n // schema dependencies\n schemaDeps[prop] = dependency;\n }\n });\n return { propDeps, schemaDeps };\n }\n guessSchemaType(schema) {\n const type = schema?.type;\n if (!type && schema?.properties) {\n return ['object'];\n }\n if (Array.isArray(type)) {\n if (type.length === 1) {\n return type;\n }\n if (type.length === 2 && type.indexOf('null') !== -1) {\n return type.sort((t1) => (t1 == 'null' ? 1 : -1));\n }\n return type;\n }\n return type ? [type] : [];\n }\n addValidator(field, name, validator) {\n field.validators = field.validators || {};\n field.validators[name] = validator;\n }\n isEnum(schema) {\n return (!!schema.enum ||\n (schema.anyOf && schema.anyOf.every(isConst)) ||\n (schema.oneOf && schema.oneOf.every(isConst)) ||\n (schema.uniqueItems && schema.items && !Array.isArray(schema.items) && this.isEnum(schema.items)));\n }\n toEnumOptions(schema) {\n if (schema.enum) {\n return schema.enum.map((value) => ({ value, label: value }));\n }\n const toEnum = (s) => {\n const value = s.hasOwnProperty('const') ? s.const : s.enum[0];\n const option = { value, label: s.title || value };\n if (s.readOnly) {\n option.disabled = true;\n }\n return option;\n };\n if (schema.anyOf) {\n return schema.anyOf.map(toEnum);\n }\n if (schema.oneOf) {\n return schema.oneOf.map(toEnum);\n }\n return this.toEnumOptions(schema.items);\n }\n isFieldValid(root, i, schemas, options) {\n const schema = schemas[i];\n if (!schema._field) {\n Object.defineProperty(schema, '_field', { enumerable: false, writable: true, configurable: true });\n }\n let field = schema._field;\n let model = root.model ? root.model : root.fieldArray ? [] : {};\n if (root.model && ɵhasKey(root)) {\n model = { [Array.isArray(root.key) ? root.key.join('.') : root.key]: ɵgetFieldValue(root) };\n }\n model = ɵclone(model);\n if (!field) {\n field = schema._field = root.options.build({\n form: Array.isArray(model) ? new FormArray([]) : new FormGroup({}),\n fieldGroup: [\n this._toFieldConfig(schema, {\n ...options,\n resetOnHide: true,\n ignoreDefault: true,\n map: null,\n }),\n ],\n model,\n options: {},\n });\n }\n else {\n field.model = model;\n root.options.build(field);\n }\n return field.form.valid;\n }\n mergeFields(f1, f2) {\n for (let prop in f2) {\n const f1Prop = prop === 'templateOptions' ? 'props' : prop;\n if (isObject(f1[f1Prop]) && isObject(f2[prop])) {\n f1[f1Prop] = this.mergeFields(f1[f1Prop], f2[prop]);\n }\n else if (f2[prop] != null) {\n f1[f1Prop] = f2[prop];\n }\n }\n return f1;\n }\n}\nFormlyJsonschema.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyJsonschema, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nFormlyJsonschema.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyJsonschema, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyJsonschema, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyJsonschema };\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { FieldArrayType, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n selector: 'app-formly-array-type',\n standalone: true,\n imports: [FormlyModule, CommonModule],\n template: `\n
    \n {{ props.label }}\n

    {{ props.description }}

    \n
    \n \n
    \n\n \n \n
    \n\n \n \n
    \n \n
    \n \n \n `,\n})\nexport class ArrayTypeComponent extends FieldArrayType {}\n\n/** Copyright 2021 Formly. All Rights Reserved.\n Use of this source code is governed by an MIT-style license that\n can be found in the LICENSE file at https://github.com/ngx-formly/ngx-formly/blob/main/LICENSE */\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { FieldType, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n selector: 'app-formly-multi-schema-type',\n standalone: true,\n imports: [FormlyModule, CommonModule],\n template: `\n
    \n
    \n {{ props.label }}\n

    {{ props.description }}

    \n \n \n
    \n \n
    \n \n `,\n})\nexport class MultiSchemaTypeComponent extends FieldType {}\n\n/** Copyright 2021 Formly. All Rights Reserved.\n Use of this source code is governed by an MIT-style license that\n can be found in the LICENSE file at https://github.com/ngx-formly/ngx-formly/blob/main/LICENSE */\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { FieldType, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n selector: 'app-formly-null-type',\n standalone: true,\n imports: [FormlyModule, CommonModule],\n template: '',\n})\nexport class NullTypeComponent extends FieldType {}\n\n/** Copyright 2021 Formly. All Rights Reserved.\n Use of this source code is governed by an MIT-style license that\n can be found in the LICENSE file at https://github.com/ngx-formly/ngx-formly/blob/main/LICENSE */\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { FieldType, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n selector: 'app-formly-object-type',\n standalone: true,\n imports: [FormlyModule, CommonModule],\n template: `\n
    \n {{ props.label }}\n

    {{ props.description }}

    \n \n \n
    \n
    \n \n `,\n})\nexport class ObjectTypeComponent extends FieldType {}\n\n/** Copyright 2021 Formly. All Rights Reserved.\n Use of this source code is governed by an MIT-style license that\n can be found in the LICENSE file at https://github.com/ngx-formly/ngx-formly/blob/main/LICENSE */\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n selector: 'app-formly-slider',\n standalone: true,\n imports: [FormlyModule, FormsModule, ReactiveFormsModule, CommonModule],\n styleUrls: ['slider.type.scss'],\n template: `\n
    \n \n {{ slider.value }}\n
    \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SliderTypeComponent extends FieldType {}\n\n/** Copyright 2021 Formly. All Rights Reserved.\n Use of this source code is governed by an MIT-style license that\n can be found in the LICENSE file at https://github.com/ngx-formly/ngx-formly/blob/main/LICENSE */\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyBootstrapModule } from '@ngx-formly/bootstrap';\nimport { FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\nimport { FormlyJsonschema } from '@ngx-formly/core/json-schema';\nimport { ArrayTypeComponent } from './array.type';\nimport { MultiSchemaTypeComponent } from './multischema.type';\nimport { NullTypeComponent } from './null.type';\nimport { ObjectTypeComponent } from './object.type';\nimport { SliderTypeComponent } from './slider.type';\n\nexport function minItemsValidationMessage(\n error: any,\n field: FormlyFieldConfig,\n) {\n return `should NOT have fewer than ${field.props.minItems} items`;\n}\n\nexport function maxItemsValidationMessage(\n error: any,\n field: FormlyFieldConfig,\n) {\n return `should NOT have more than ${field.props.maxItems} items`;\n}\n\nexport function minLengthValidationMessage(\n error: any,\n field: FormlyFieldConfig,\n) {\n return `should NOT be shorter than ${field.props.minLength} characters`;\n}\n\nexport function maxLengthValidationMessage(\n error: any,\n field: FormlyFieldConfig,\n) {\n return `should NOT be longer than ${field.props.maxLength} characters`;\n}\n\nexport function minValidationMessage(error: any, field: FormlyFieldConfig) {\n return `should be >= ${field.props.min}`;\n}\n\nexport function maxValidationMessage(error: any, field: FormlyFieldConfig) {\n return `should be <= ${field.props.max}`;\n}\n\nexport function multipleOfValidationMessage(\n error: any,\n field: FormlyFieldConfig,\n) {\n return `should be multiple of ${field.props.step}`;\n}\n\nexport function exclusiveMinimumValidationMessage(\n error: any,\n field: FormlyFieldConfig,\n) {\n return `should be > ${field.props.step}`;\n}\n\nexport function exclusiveMaximumValidationMessage(\n error: any,\n field: FormlyFieldConfig,\n) {\n return `should be < ${field.props.step}`;\n}\n\nexport function constValidationMessage(error: any, field: FormlyFieldConfig) {\n return `should be equal to constant \"${field.props.const}\"`;\n}\n\nexport function typeValidationMessage({ schemaType }: any) {\n return `should be \"${schemaType[0]}\".`;\n}\n\n@NgModule({\n declarations: [],\n imports: [\n NullTypeComponent,\n ArrayTypeComponent,\n ObjectTypeComponent,\n MultiSchemaTypeComponent,\n FormlyModule.forChild({\n validationMessages: [\n { name: 'required', message: 'This field is required' },\n { name: 'type', message: typeValidationMessage },\n { name: 'minLength', message: minLengthValidationMessage },\n { name: 'maxLength', message: maxLengthValidationMessage },\n { name: 'min', message: minValidationMessage },\n { name: 'max', message: maxValidationMessage },\n { name: 'multipleOf', message: multipleOfValidationMessage },\n {\n name: 'exclusiveMinimum',\n message: exclusiveMinimumValidationMessage,\n },\n {\n name: 'exclusiveMaximum',\n message: exclusiveMaximumValidationMessage,\n },\n { name: 'minItems', message: minItemsValidationMessage },\n { name: 'maxItems', message: maxItemsValidationMessage },\n { name: 'uniqueItems', message: 'should NOT have duplicate items' },\n { name: 'const', message: constValidationMessage },\n ],\n types: [\n {\n name: 'null',\n component: NullTypeComponent,\n wrappers: ['form-field'],\n },\n { name: 'array', component: ArrayTypeComponent },\n { name: 'object', component: ObjectTypeComponent },\n { name: 'multischema', component: MultiSchemaTypeComponent },\n { name: 'number', component: SliderTypeComponent },\n ],\n }),\n ReactiveFormsModule,\n FormlyBootstrapModule,\n ],\n providers: [FormlyJsonschema],\n exports: [FormlyModule],\n})\nexport class CmsFormlyModule {}\n","const JointMap = {\n rShldrBend: 'below shoulder - right',\n rShldrTwist: 'above elbow - right',\n rForearmBend: 'below elbow - right',\n rForearmTwist: 'above wrist - right',\n lShldrBend: 'below shoulder - left',\n lShldrTwist: 'above elbow - left',\n lForearmBend: 'below elbow - left',\n lForearmTwist: 'above wrist - left',\n rThighBend: 'upper thigh - right',\n rThighTwist: 'above knee - right',\n rShin: 'shin - right',\n lThighBend: 'upper thigh - left',\n lThighTwist: 'above knee - left',\n lShin: 'shin - left',\n};\n\nexport function fromOriginalJointToMapped(v: string) {\n return JointMap[v];\n}\n\nexport function fromMappedJointToOriginal(v: string) {\n for (const key in JointMap) {\n if (Object.prototype.hasOwnProperty.call(JointMap, key)) {\n const element = JointMap[key];\n if (element === v) {\n return key;\n }\n }\n }\n}\n\nexport function mapStylingObject(obj: any) {\n if (typeof obj === 'object') {\n const result = {\n ...obj,\n };\n if (result.cinchUp && Array.isArray(result.cinchUp)) {\n for (const cinch of result.cinchUp) {\n if (typeof cinch.rootJointName === 'string') {\n cinch.rootJointName = fromMappedJointToOriginal(cinch.rootJointName);\n }\n }\n }\n return result;\n }\n\n return obj;\n}\n\nexport function mapStylingObjectToUI(obj: any) {\n if (typeof obj === 'object') {\n const result = {\n ...obj,\n };\n if (result.cinchUp && Array.isArray(result.cinchUp)) {\n for (const cinch of result.cinchUp) {\n if (typeof cinch.rootJointName === 'string') {\n cinch.rootJointName = fromOriginalJointToMapped(cinch.rootJointName);\n }\n }\n }\n return result;\n }\n\n return obj;\n}\n","
    \n \n \n \n \n
    \n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, Input } from '@angular/core';\nimport { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';\nimport { FormlyJsonschema } from '@ngx-formly/core/json-schema';\nimport { GarmentDTO } from 'projects/content-service-cms/src/app/data/api';\nimport { CmsFormlyModule } from '../../../formly/formly.module';\nimport {\n DressableGarment,\n IGarmentSelectionService,\n} from '../../services/i-garment-selection.service';\nimport { mapStylingObject, mapStylingObjectToUI } from '../jointMap';\nimport { ModalService } from 'projects/content-service-cms/src/app/modal/modal.service';\n\n@Component({\n selector: 'app-styling-options',\n templateUrl: './styling-options.component.html',\n styleUrls: ['./styling-options.component.scss'],\n standalone: true,\n imports: [CmsFormlyModule, CommonModule, FormsModule, ReactiveFormsModule],\n providers: [CmsFormlyModule],\n})\nexport class StylingOptionsComponent implements AfterViewInit {\n fields: FormlyFieldConfig[];\n form: FormGroup;\n options: FormlyFormOptions;\n stylingOptions: any = {};\n\n @Input() garment: GarmentDTO;\n @Input() schema: object = {};\n\n constructor(\n private formlyJsonschema: FormlyJsonschema,\n private garmentSelectionService: IGarmentSelectionService,\n protected modalService: ModalService,\n ) {}\n\n ngAfterViewInit(): void {\n this.show();\n }\n\n closeModal() {\n this.modalService.close();\n }\n\n setOptions() {\n // emit the options...\n // this.stylingOptionsChanged.emit(this.stylingOptions);\n this.garmentSelectionService.setGarmentStylingOptions(\n this.garment,\n mapStylingObject(this.stylingOptions),\n );\n\n // close the modal\n this.closeModal();\n }\n\n private isGarment(garment: DressableGarment): garment is DressableGarment {\n return garment !== undefined;\n }\n\n show() {\n const [updated] = this.garmentSelectionService\n .currentSelectedGarments()\n .filter((garment) => garment.id === this.garment.id)\n .filter(this.isGarment);\n\n if (!updated) return;\n\n const stylingOptions = JSON.parse(\n JSON.stringify(updated.stylingOptions ?? {}),\n );\n this.stylingOptions = mapStylingObjectToUI(\n Object.assign({}, stylingOptions),\n );\n\n this.form = new FormGroup({});\n this.options = {};\n\n // const validSchema = JSON.parse(VALID_SCHEMA)\n const config = this.formlyJsonschema.toFieldConfig(this.schema);\n this.fields = [config];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ComputeServer } from '@reactivereality/pictofit-web-sdk';\nimport { IAuthService } from '../../auth';\nimport { NgDiscoveryService } from '../../core/services/ng-discovery.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WebSDKService {\n public computeServer: ComputeServer;\n\n constructor(\n private authService: IAuthService,\n private discovery: NgDiscoveryService,\n ) {\n this.computeServer = new ComputeServer(\n this.discovery.config.apiConfiguration.computeServerUrl,\n {\n Authorization: `Bearer ${this.authService.getToken()}`,\n },\n );\n }\n}\n","\n \n
    \n \n \n \n \n \n \n \n \n \n
    \n\n","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport {\n AssetFactoryFactory,\n IAssetFactory,\n} from '@reactivereality/pictofit-web-sdk';\nimport { ConfigurationResultDTO } from '@reactivereality/cs-api-sdk';\nimport { GarmentDTO } from '../../../data/api';\nimport { WebSDKService } from '../../../data/services/web-sdk.service';\nimport { ILogger } from '../../../logging';\nimport {\n GarmentThumbnailPipe,\n ProductTypePipe,\n} from '../../../utils/CommonPipes';\nimport { GarmentAssetFiles } from '../../../virtual-dressing-room/data/api';\nimport { Garment3DAsset } from '../../../virtual-dressing-room/data/model/GarmentAssets';\nimport { StylingOptionsComponent } from './styling-options/styling-options.component';\nimport { ConfigurationDisplayComponent } from '../configuration-display/configuration-display.component';\nimport { fromOriginalJointToMapped } from './jointMap';\nimport { ModalService } from '../../../modal/modal.service';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\n\n@Component({\n selector: 'app-garment-selection-entry',\n templateUrl: './garment-selection-entry.component.html',\n styleUrls: ['./garment-selection-entry.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n ProductTypePipe,\n GarmentThumbnailPipe,\n StylingOptionsComponent,\n ConfigurationDisplayComponent,\n TooltipModule,\n ],\n})\nexport class GarmentSelectionEntryComponent implements OnInit, AfterViewInit {\n @Input() public garment: GarmentDTO;\n @Input() public isOutfit2DMode?: boolean = false;\n @Output() public deleteClicked = new EventEmitter();\n @Output() public tuckClicked = new EventEmitter<[GarmentDTO, string]>();\n @Output() public dressClicked = new EventEmitter();\n\n public imageDataUrl;\n public stylingOptions: any;\n\n assetFactory: IAssetFactory;\n\n constructor(\n private httpClient: HttpClient,\n private logger: ILogger,\n private sdk: WebSDKService,\n public modalService: ModalService,\n ) {\n this.assetFactory = AssetFactoryFactory.createAssetFactory3D();\n }\n\n async ngOnInit(): Promise {}\n\n dtoToAsset(garment: GarmentDTO) {\n const results: ConfigurationResultDTO[] = [];\n\n results.push(\n ...garment.results.filter((c) => {\n return c.format === 'web';\n }),\n );\n\n const fileList: GarmentAssetFiles = [];\n results.forEach((r) => {\n r.files.forEach((file) => {\n fileList.push({ filename: file.name, url: file.url });\n });\n });\n\n return new Garment3DAsset(fileList, this.httpClient, this.logger);\n }\n\n ngAfterViewInit(): void {\n this.imageDataUrl = this.garment.previewUrl;\n\n // get the styling options for the garment...\n const asset = this.dtoToAsset(this.garment);\n if (!this.isOutfit2DMode) {\n this.assetFactory\n .createGarment(asset)\n .then((garment) => {\n return this.sdk.computeServer.requestStylingTemplateParameterJSONSchema(\n garment as any,\n );\n })\n .then((schema) => {\n this.stylingOptions = this.sanitiseStylingOptions(JSON.parse(schema));\n })\n .catch(() => {\n this.stylingOptions = null;\n });\n }\n }\n\n private sanitiseStylingOptions(stylingOptions: any): any {\n // remove the form title\n delete stylingOptions.title;\n\n type JsonSchemaDef =\n | {\n type: 'array';\n items: JsonSchemaDef;\n }\n | {\n type: 'object';\n required: string[];\n properties: { [prop: string]: JsonSchemaDef };\n };\n\n const removeNonRequired = (obj: JsonSchemaDef) => {\n if (obj.type === 'array') {\n obj.items = removeNonRequired(obj.items);\n }\n\n if (obj.type === 'object') {\n obj.properties = Object.getOwnPropertyNames(obj.properties).reduce(\n (props, prop) => {\n if (obj.required?.includes(prop)) {\n props[prop] = obj.properties[prop];\n\n /// TODO: Very hacky and we should change the schema to provide these names somehow\n if (prop === 'rootJointName') {\n props[prop].enum = props[prop].enum.map(\n fromOriginalJointToMapped,\n );\n }\n }\n\n if (prop === 'additionalWidth') {\n props[prop] = obj.properties[prop];\n }\n\n return props;\n },\n {},\n );\n }\n\n return obj;\n };\n\n // remove all non-required elements from the $defs\n const cleaned = Object.getOwnPropertyNames(stylingOptions['$defs']).reduce(\n (acc, def) => {\n acc[def] = removeNonRequired(stylingOptions['$defs'][def]);\n\n return acc;\n },\n {},\n );\n\n return {\n ...stylingOptions,\n $defs: cleaned,\n };\n }\n\n public deleteEntry($event: MouseEvent) {\n this.deleteClicked.emit(this.garment);\n }\n public tuckGarment($event: MouseEvent, action: string) {\n this.tuckClicked.emit([this.garment, action]);\n }\n public dressGarment($event: MouseEvent) {\n this.dressClicked.emit(this.garment);\n }\n}\n","\n \n\n\n
    \n
    \n Recently used\n
    \n \n \n \n \n
    \n \n \n All Garments\n \n \n \n
    \n\n
    \n

    Garments

    \n \n
    \n\n \n \n\n \n \n \n \n \n \n \n 0\"\n class=\"row addremove\"\n >\n
    \n \n \n
    \n
    Add Garments
    \n
    \n \n \n
    \n
    Remove all
    \n \n \n\n","/* eslint-disable max-lines-per-function */\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {\n DressingRoomLogicFactory,\n IDressingRoomLogicGarmentOptions,\n} from '@reactivereality/pictofit-web-sdk';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ICustomerService } from '../../customer';\nimport { PRODUCT_TYPE } from '../../data';\nimport { GarmentDTO, IRequestResult, IRequestService } from '../../data/api';\nimport { ILogger } from '../../logging';\nimport { AddItemComponent } from '../add-item/add-item.component';\nimport { GarmentSelectionEntryComponent } from './garment-selection-entry/garment-selection-entry.component';\nimport { IGarmentSelectionService } from './services/i-garment-selection.service';\nimport { ConfigurationDisplayComponent } from './configuration-display/configuration-display.component';\nimport * as _ from 'lodash';\nimport { RRSpinnerModel } from 'projects/web-ui-component-library/src';\nimport { RRSpinnerModule } from '../../../../../web-ui-component-library/src/lib/spinner/spinner.module';\nimport { CustomerDTO } from '@reactivereality/cs-api-sdk';\nimport { NgStorageManagerService } from '../../core/services/ng-storage-manager.service';\n\nconst LOCAL_STORAGE_KEY = 'garmentSelection';\nconst RECENTLY_USED_GARMENTS_KEY = 'recentlyUsedGarments';\nimport { AddGarmentModalComponent } from './add-garment-modal/add-garment-modal.component';\nimport { CreateRequestModalStore } from '../../request-overview/components/create-request-modal/create-request-modal.state';\nimport { ModalService } from '../../modal/modal.service';\n\n@Component({\n selector: 'app-garment-selection',\n templateUrl: './garment-selection.component.html',\n styleUrls: ['./garment-selection.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n AddGarmentModalComponent,\n AddItemComponent,\n GarmentSelectionEntryComponent,\n ConfigurationDisplayComponent,\n RRSpinnerModule,\n ],\n})\nexport class GarmentSelectionComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n @Input() public productType: PRODUCT_TYPE;\n private _onDestroy$: Subject;\n public selectedGarments: GarmentDTO[] = [];\n public recenltyUsedGarments: GarmentDTO[] = [];\n public garmentToDisplay: GarmentDTO[] = [];\n public showRecenltyUsedDialog: boolean;\n public spinnerStatusRecenltyUsed: RRSpinnerModel = {\n text: 'Loading recenlty used',\n show: false,\n };\n public recenltyUsedMaxHeight: number;\n public showRecenltyUsedGarmentOverlayLeft: boolean;\n private _currentCustomer: CustomerDTO;\n\n @ViewChild('addGarments') addGarments: TemplateRef;\n\n constructor(\n public garmentSelectionService: IGarmentSelectionService,\n private logger: ILogger,\n private _requestService: IRequestService,\n private _customerService: ICustomerService,\n private _localStorageService: NgStorageManagerService,\n private _elementRef: ElementRef,\n public createRequestModalStore: CreateRequestModalStore,\n public modalService: ModalService,\n ) {\n this._onDestroy$ = new Subject();\n this.logger.debug(`Initialized store:`, this.garmentSelectionService);\n this.garmentSelectionService.tuckedInGarment$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe({\n next: this.onGarmentTuckedIn,\n error: console.error,\n });\n this.garmentSelectionService.selectedGarments$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe({\n next: this.onGarmentsSelected,\n error: console.error,\n });\n this._customerService.currentCustomer$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((customer) => {\n this._currentCustomer = customer;\n });\n }\n\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n\n async ngOnInit(): Promise {\n await this.getRequests();\n }\n ngAfterViewInit(): void {\n this.calcRecentlyUsedMayHeigh();\n }\n private calcRecentlyUsedMayHeigh() {\n const parent = document.getElementsByClassName('details-area');\n this.recenltyUsedMaxHeight = (parent[0] as HTMLElement).clientHeight - 300;\n }\n\n private onGarmentTuckedIn = (garment: GarmentDTO) => {\n if (garment) {\n const item = this.selectedGarments.find((o) => o.id === garment.id);\n item.tuckedIn = true;\n this.garmentSelectionService.setDressedGarments(\n Object.assign(\n [],\n this.calculateGarments(\n this.selectedGarments.filter((g) => g.dressed === true),\n ),\n ),\n );\n } else {\n this.selectedGarments.map((o) => (o.tuckedIn = false));\n this.garmentSelectionService.setDressedGarments(\n Object.assign(\n [],\n this.calculateGarments(\n this.selectedGarments.filter((g) => g.dressed === true),\n ),\n ),\n );\n }\n };\n\n private onGarmentsSelected = (garments: GarmentDTO[]) => {\n if (garments) {\n this.selectedGarments = garments;\n if (garments.length > 0) {\n let recenltyUsed: string[] = this._localStorageService.getItem(\n [\n LOCAL_STORAGE_KEY,\n RECENTLY_USED_GARMENTS_KEY,\n garments[0].productTypeId,\n this._currentCustomer.id,\n ].join('.'),\n 'local',\n );\n if (!recenltyUsed) {\n recenltyUsed = [];\n }\n const itemsToStore = _.uniq([\n ...garments.reverse().map((o) => o.id),\n ...recenltyUsed,\n ]);\n if (itemsToStore.length > 6) {\n itemsToStore.splice(6, itemsToStore.length - 1);\n }\n this._localStorageService.setItem(\n [\n LOCAL_STORAGE_KEY,\n RECENTLY_USED_GARMENTS_KEY,\n garments[0].productTypeId,\n this._currentCustomer.id,\n ].join('.'),\n itemsToStore,\n 'local',\n );\n // Wait till RXJS store has stored the changes in the localstorage\n setTimeout(() => {\n this.getRequests();\n });\n }\n }\n };\n\n public addGarmentsClicked() {\n this.modalService.show({\n title: 'Select Garments',\n template: this.addGarments,\n });\n this.showRecenltyUsedDialog = false;\n }\n public showRecentlyUsed() {\n this.showRecenltyUsedDialog = true;\n }\n\n deleteGarmentEntry(config: GarmentDTO) {\n this.garmentSelectionService.setSelectedGarments(\n this.selectedGarments.filter((c) => {\n return c.id !== config.id;\n }),\n );\n this.garmentSelectionService.setDressedGarments(\n this.garmentSelectionService.currentDressed().filter((c) => {\n return c.id !== config.id;\n }),\n );\n }\n\n deleteAllGarments() {\n this.garmentSelectionService.setSelectedGarments([]);\n this.garmentSelectionService.setDressedGarments([]);\n }\n recentlyUsedGarmentClicked(garment: GarmentDTO) {\n const arr = [...this.selectedGarments, garment];\n const uniqueEntries = _.unionBy(arr, 'id');\n this.garmentSelectionService.setSelectedGarments(uniqueEntries);\n this.showRecenltyUsedDialog = false;\n }\n public tuckGarment(config: GarmentDTO, action: string) {\n this.garmentSelectionService.currentDressed().map((g) => {\n if (g.id === config.id) {\n if (action === 'in') {\n this.garmentSelectionService.setTuckedInGarment({\n ...g,\n tuckedIn: true,\n });\n } else {\n this.garmentSelectionService.setTuckedInGarment(null);\n }\n }\n return g;\n });\n }\n\n public dressGarment(garment: GarmentDTO) {\n let toBeDressed: GarmentDTO[] = [];\n const currentDressed = this.garmentSelectionService.currentDressed();\n if (currentDressed.find((g) => g.id === garment.id)) {\n toBeDressed = currentDressed.filter((g) => g.id !== garment.id);\n } else {\n toBeDressed = [...currentDressed, garment];\n }\n this.garmentSelectionService.setDressedGarments(\n this.calculateGarments(toBeDressed),\n );\n this.updateSelectedGarments();\n }\n\n private calculateGarments(garmentsToBeDressed: GarmentDTO[]) {\n const dressingRoomLogic =\n DressingRoomLogicFactory.createDressingRoomLogicWithoutVirtualDressingRoom();\n garmentsToBeDressed.forEach((garment) => {\n dressingRoomLogic.addGarment({\n garment: undefined,\n garmentGroupId: garment.groupId,\n tuckedIn: garment.tuckedIn,\n garmentId: garment.id,\n });\n });\n return this.mapGarments(dressingRoomLogic.getOrderedGarments());\n }\n\n private updateSelectedGarments() {\n this.selectedGarments.forEach((g) => (g.dressed = false));\n this.selectedGarments.forEach((selected) => {\n if (\n this.garmentSelectionService\n .currentDressed()\n .find((dressed) => dressed.id === selected.id)\n ) {\n selected.dressed = true;\n }\n });\n }\n\n private mapGarments(\n garments: IDressingRoomLogicGarmentOptions[],\n ): GarmentDTO[] {\n const orderedGarments: GarmentDTO[] = [];\n garments.forEach((garment) => {\n const toBeDressed = this.selectedGarments.find((toBeDressed) => {\n return garment.garmentId === toBeDressed.id;\n });\n if (toBeDressed !== undefined) {\n toBeDressed.dressed = true;\n orderedGarments.push(toBeDressed);\n }\n });\n return orderedGarments;\n }\n\n private async getRequests(): Promise {\n let type: PRODUCT_TYPE = this.productType;\n\n this.spinnerStatusRecenltyUsed.show = true;\n if (\n this.productType === PRODUCT_TYPE.OUTFIT_2D ||\n this.productType === PRODUCT_TYPE.OUTFIT_2D_PARALLAX\n ) {\n type = PRODUCT_TYPE.GARMENT_2D;\n }\n if (this.productType === PRODUCT_TYPE.OUTFIT_3D) {\n type = PRODUCT_TYPE.GARMENT_3D;\n }\n const requestFilter = {\n productTypeId: type,\n stateId: [4, 13],\n };\n\n const recentlyUsedGarments = [];\n\n let storedGarments: string[] = this._localStorageService.getItem(\n [\n LOCAL_STORAGE_KEY,\n RECENTLY_USED_GARMENTS_KEY,\n type,\n this._currentCustomer.id,\n ].join('.'),\n 'local',\n );\n\n if (!storedGarments) {\n storedGarments = [];\n }\n for (const garment of storedGarments) {\n try {\n recentlyUsedGarments.push(\n await this._requestService.getRequestByID(garment),\n );\n } catch (error) {\n this.logger.warn('Error during fetching the garment', error);\n }\n }\n if (recentlyUsedGarments.length < 6) {\n const allGarments = await this._requestService.getAllCustomerRequests(\n this._currentCustomer.id,\n JSON.stringify(requestFilter),\n 1,\n 6,\n undefined,\n );\n recentlyUsedGarments.push(...allGarments.configurations);\n }\n\n this.garmentToDisplay = [];\n let garmentList = [];\n for (const garment of recentlyUsedGarments) {\n const webresults = garment.results?.filter((c) => {\n return c.format === 'web';\n });\n if (!webresults || webresults.length === 0) {\n continue;\n }\n const metadata = await this.getMetadata(webresults[0]);\n if (\n metadata &&\n metadata.garmentGroup &&\n (this.productType === PRODUCT_TYPE.OUTFIT_2D ||\n this.productType === PRODUCT_TYPE.OUTFIT_2D_PARALLAX)\n ) {\n garmentList.push({\n ...garment,\n isPublic: false,\n selected: false,\n groupId: metadata?.garmentGroup ? metadata.garmentGroup : 0,\n tuckedIn: false,\n dressed: false,\n tryonable: true,\n });\n }\n if (\n this.productType === PRODUCT_TYPE.OUTFIT_3D &&\n metadata.tryonable === true\n ) {\n garmentList.push({\n ...garment,\n isPublic: false,\n selected: false,\n groupId: metadata?.garmentGroup ? metadata.garmentGroup : 0,\n tuckedIn: false,\n dressed: false,\n tryonable: true,\n });\n }\n }\n garmentList = _.uniqBy(garmentList, 'id');\n if (garmentList.length > 6) {\n garmentList.splice(6, garmentList.length - 1);\n }\n this.garmentToDisplay = Object.assign([], garmentList);\n this.spinnerStatusRecenltyUsed.show = false;\n }\n private async getMetadata(webResult: IRequestResult) {\n if (!webResult) {\n return;\n }\n const metadataFile = webResult.files.find(\n (o) => o.name === 'metadata.json',\n );\n if (!metadataFile) {\n return;\n }\n const metadataResponse = await fetch(metadataFile.url);\n if (!metadataResponse.ok) {\n return;\n }\n return await metadataResponse.json();\n }\n getBottomPosition(): string {\n const item =\n this.selectedGarments.length === 0\n ? this._elementRef.nativeElement.querySelector('#addGarmentContainer')\n : this._elementRef.nativeElement.querySelector('#recentlyUsedLeft');\n if (!item) {\n return '0';\n }\n const rect = item.getBoundingClientRect();\n return document.body.clientHeight - rect.bottom + 'px';\n }\n getRightPosition(): any {\n if (this.selectedGarments.length > 0) {\n const item = this._elementRef.nativeElement.querySelector(\n '#addGarmentContainer',\n );\n const rect = item.getBoundingClientRect();\n return rect.width - rect.width * 0.1 + 'px';\n }\n }\n}\n","import{DressingRoomLogic as n}from\"./IDressingRoomLogic.js\";import{GarmentDressedLogic as r}from\"./IGarmentDressedLogic.js\";function o(r){return new n(r)}function e(r){return new n(r)}function t(){return new r}export{o as createDressingRoomLogic2D,e as createDressingRoomLogic3D,t as createDressingRoomLogicWithoutVirtualDressingRoom};\n","import { Observable } from 'rxjs';\nimport { GarmentDTO } from '../../../data/api';\n\nexport type DressableGarment = GarmentDTO & {\n stylingOptions?: any;\n};\n\nexport abstract class IGarmentSelectionService {\n public abstract tuckedInGarment$: Observable;\n public abstract selectedGarments$: Observable;\n public abstract dressed$: Observable;\n public abstract currentSelectedGarments: () => DressableGarment[];\n public abstract currentDressed: () => DressableGarment[];\n public abstract setSelectedGarments: (garments: DressableGarment[]) => void;\n public abstract setDressedGarments: (garments: DressableGarment[]) => void;\n public abstract setTuckedInGarment: (garment: DressableGarment) => void;\n public abstract setGarmentStylingOptions: (\n garment: GarmentDTO,\n stylingOptions: any,\n ) => void;\n}\n","\n \n {{ placeholder }}\n \n\n
    \n \n
    \n\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RRCalendarModule } from 'projects/web-ui-component-library/src';\n\n@Component({\n selector: 'app-input-date',\n templateUrl: './input-date.component.html',\n styleUrls: ['./input-date.component.scss'],\n imports: [CommonModule, FormsModule, RRCalendarModule],\n standalone: true,\n})\nexport class InputDateComponent implements OnInit, OnChanges {\n @Input() date: Date;\n @Input() disabled?: boolean;\n @Input() placeholder: string;\n @Output() valueChange = new EventEmitter();\n\n public show: boolean;\n public formatedDate: string;\n public showBackdrop: boolean = false;\n\n constructor() {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['date'] !== undefined) {\n this.formatedDate = changes['date'].currentValue\n ? Intl.DateTimeFormat('en', {\n dateStyle: 'short',\n timeStyle: 'short',\n }).format(changes['date'].currentValue)\n : '';\n }\n }\n ngOnInit(): void {\n this.show = false;\n }\n\n onDateSelected(dates: { from: Date; to: Date }) {\n this.show = false;\n const date: Date = new Date();\n const fromDate: Date = dates.from;\n date.setDate(fromDate.getDate());\n this.date = date;\n\n this.valueChange.emit(date);\n }\n\n backdropListClicked() {\n this.show = false;\n }\n}\n","\n \n {{ placeholder }}\n
    \n \n\n\n
    \n {{ entry.data }}\n
    \n\n\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'app-input-dropdown',\n templateUrl: './input-dropdown.component.html',\n styleUrls: ['./input-dropdown.component.scss'],\n imports: [CommonModule, FormsModule],\n standalone: true,\n})\nexport class InputDropdownComponent implements OnInit {\n @Input() value: string | number;\n @Input() entries: DropDownEntry[];\n @Input() disabled?: boolean;\n @Output() valueChange = new EventEmitter();\n\n @Input() placeholder: string;\n\n public showList: boolean;\n\n constructor() {}\n\n ngOnInit(): void {\n this.showList = false;\n }\n\n itemSelect(entry: DropDownEntry) {\n this.showList = false;\n this.value = entry.id;\n this.valueChange.emit(entry);\n }\n}\n\nexport interface DropDownEntry {\n id: string | number;\n data: string;\n}\n","
    \n \n {{ placeholder }}\n Required\n
    \n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'app-input-text',\n templateUrl: './input-text.component.html',\n styleUrls: ['./input-text.component.scss'],\n imports: [CommonModule, FormsModule],\n standalone: true,\n})\nexport class InputTextComponent implements OnInit {\n @Input() placeholder: string;\n @Input() value: string;\n @Input() required: boolean;\n @Input() validationFunction: (value: string) => boolean;\n @Input() disabled: boolean;\n\n @Output() valueChange = new EventEmitter<{ value: string; valid: boolean }>();\n @Output() public isValid: boolean;\n\n constructor() {}\n\n ngOnInit(): void {\n //don't show the error frame when opening a modal\n this.isValid = true;\n }\n\n valueChanged(value: string) {\n if (this.validationFunction) {\n this.isValid = this.validationFunction(value);\n }\n this.value = value;\n this.valueChange.emit({ value: value, valid: this.isValid });\n }\n}\n","
    \n \n
    \n \n
    \n \n \n {{ selectedItem.name }}\n \n
    \n \n \n Tags \n \n \n \n \n \n
    0\">\n Select a tag or type to create one\n
    \n
    \n Press enter to create \"{{ inputText }}\"\n
    \n\n \n {{ item.name }}\n \n \n \n
    \n \n \n
    \n \n \n Delete\n
    \n Color\n \n \n \n
    \n {{ color.name }}\n
    \n \n
    \n \n \n\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport {\n ConfigurationHasTagKeyDTO,\n TagKeyDTO,\n} from '@reactivereality/cs-api-sdk';\nimport { v4 as uuid } from 'uuid';\nimport {\n RRSpinnerModel,\n RRSpinnerModule,\n} from 'projects/web-ui-component-library/src';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ITagService } from '../../data/api';\nimport { ILogger } from '../../logging';\n\nexport interface Color {\n name: string;\n color: string;\n}\n@Component({\n selector:\n 'app-tag-selection[cutstomerId][configurationId][configurationTags]',\n templateUrl: './tag-selection.component.html',\n styleUrls: ['./tag-selection.component.scss'],\n standalone: true,\n imports: [RRSpinnerModule, CommonModule, FormsModule],\n})\nexport class TagSelectionComponent implements OnInit, AfterViewInit, OnChanges {\n @ViewChild('inputSpan') input: ElementRef;\n public inputText: string = '';\n public spinnerTextBox: RRSpinnerModel = {\n show: false,\n text: 'Create Tag',\n };\n public spinnerSelectionBox: RRSpinnerModel = {\n show: false,\n text: 'Loading',\n };\n public selected: TagKeyDTO[] = [];\n public itemList: string[] = ['Color', 'Public', 'Content', 'Size'];\n\n public colorList: Color[] = [\n {\n name: 'Grey',\n color: '#D9D9D9',\n },\n {\n name: 'Yellow',\n color: '#FDE9C1',\n },\n {\n name: 'Blue',\n color: '#CDE1ED',\n },\n {\n name: 'Red',\n color: '#FFDED8',\n },\n {\n name: 'Light gray',\n color: '#F2F2F2',\n },\n {\n name: 'Brown',\n color: '#F1DED6',\n },\n {\n name: 'Orange',\n color: '#F9E1CC',\n },\n {\n name: 'Green',\n color: '#E0F0DE',\n },\n {\n name: 'Blue',\n color: '#CCE6F5',\n },\n {\n name: 'Purple',\n color: '#E6DCEF',\n },\n {\n name: 'Pink',\n color: '#F5DFEA',\n },\n ];\n public allTags: TagKeyDTO[] = [];\n public filteredTags: TagKeyDTO[] = [];\n public editItem: TagKeyDTO;\n public editLeft: number;\n public editTop: number;\n public listOpacity: boolean;\n\n @Input() configurationTags: ConfigurationHasTagKeyDTO[];\n @Input() configurationId: uuid;\n @Input() cutstomerId: uuid;\n @Input() disabled: boolean;\n\n @Output() addToSelectionEvent: EventEmitter = new EventEmitter();\n @Output() addExistingTagToSelectionEvent: EventEmitter =\n new EventEmitter();\n @Output() removeFromSelectionEvent: EventEmitter =\n new EventEmitter();\n @Output() updateOrCreateSelectionEvent: EventEmitter =\n new EventEmitter();\n @Output() deleteTagEvent: EventEmitter = new EventEmitter();\n\n constructor(private _tagService: ITagService, private _logger: ILogger) {}\n\n ngAfterViewInit(): void {\n const observer = new MutationObserver((list) => {\n const charData = list.find((o) => o.type === 'characterData');\n if (this.disabled) {\n this.input.nativeElement.innerHTML = '';\n this.listOpacity = false;\n return;\n }\n if (charData) {\n this.inputText = charData.target?.nodeValue;\n\n if (this.inputText === '') {\n this.filteredTags = this.allTags;\n }\n this.filteredTags = this.allTags.filter((o) =>\n o.name.toLowerCase().includes(this.inputText.toLowerCase()),\n );\n }\n });\n const input = document.getElementById('select-input');\n\n observer.observe(this.input.nativeElement, {\n attributes: true,\n childList: true,\n subtree: true,\n characterData: !this.disabled,\n });\n }\n\n async ngOnInit(): Promise {\n try {\n this.spinnerSelectionBox.show = true;\n this.allTags = await this._tagService.getAllTagsByCustomerId(\n this.cutstomerId,\n );\n this.filteredTags = this.allTags;\n this._logger.debug('configurationTags:', this.configurationTags);\n\n for (const tag of this.configurationTags) {\n const tagItem = await this._tagService.getTagOnlyForCustomer(\n tag.tagKeyId,\n this.cutstomerId,\n );\n if (tagItem) {\n this.selected.push(tagItem);\n }\n }\n } catch (error) {\n this._logger.error(error.message);\n } finally {\n this.spinnerSelectionBox.show = false;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.reloadTags();\n }\n\n public async addToSelection(event: KeyboardEvent) {\n try {\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n event.preventDefault();\n if (this.inputText === '') {\n return;\n }\n this.spinnerSelectionBox.show = true;\n this.spinnerSelectionBox.text = 'Add tag';\n this.clearInput();\n\n const tag: TagKeyDTO = {\n id: uuid(),\n name: this.inputText,\n customerId: this.cutstomerId,\n color: this.colorList[Math.round(Math.random() * 10)].color,\n };\n this.addTagtoConfiguration(tag);\n this.addToSelectionEvent.emit(tag);\n\n this.filteredTags = this.allTags;\n }\n } catch (error) {\n this._logger.error(error.message);\n } finally {\n this.spinnerSelectionBox.show = false;\n this.inputText = '';\n }\n }\n\n public async removeItem(selectedItem: TagKeyDTO) {\n try {\n this.spinnerSelectionBox.show = true;\n this.spinnerSelectionBox.text = 'Remove tag';\n\n this.selected = this.selected.filter((o) => o.id !== selectedItem.id);\n this.removeFromSelectionEvent.emit(selectedItem);\n } catch (error) {\n this._logger.error(error.message);\n } finally {\n this.spinnerSelectionBox.show = false;\n }\n }\n public async addTagToSelected(tag: TagKeyDTO) {\n try {\n this.spinnerTextBox.show = true;\n this.spinnerTextBox.text = 'Add tag';\n\n if (!this.selected.find((o) => o.id === tag.id)) {\n this.addExistingTagToSelectionEvent.emit(tag);\n this.addTagtoConfiguration(tag);\n }\n\n this.filteredTags = this.allTags;\n this.clearInput();\n } catch (error) {\n this._logger.error(error.message);\n } finally {\n this.spinnerTextBox.show = false;\n }\n }\n public editTag(item: TagKeyDTO, event: MouseEvent) {\n this.listOpacity = true;\n this.editItem = item;\n if (window.innerWidth > event.x + 305) {\n this.editLeft = event.x - 140;\n } else {\n this.editLeft = event.x - 140;\n }\n if (window.innerHeight > event.y + 355) {\n this.editTop = event.y + 20;\n } else {\n this.editTop = window.innerHeight - 350;\n }\n }\n public backdropListClicked() {\n this.listOpacity = false;\n }\n public backdropClicked() {\n this.editItem = undefined;\n document.getElementById('select-input').focus();\n }\n public updateTag() {\n try {\n this.spinnerTextBox.show = true;\n this.spinnerTextBox.text = 'Update tag';\n this.updateOrCreateSelectionEvent.emit(this.editItem);\n this.reloadSelectedItems();\n } catch (error) {\n this._logger.error(error.message);\n } finally {\n this.spinnerTextBox.show = false;\n }\n }\n public changeColor(color: Color) {\n this.editItem.color = color.color;\n this.updateTag();\n }\n public async deleteTag(tag: TagKeyDTO) {\n try {\n this.spinnerTextBox.show = true;\n this.spinnerTextBox.text = 'Delete tag';\n this.deleteTagEvent.emit(tag);\n this.editItem = undefined;\n await this.reloadTags();\n } catch (error) {\n this._logger.error(error.message);\n } finally {\n this.spinnerTextBox.show = false;\n }\n }\n private async reloadTags() {\n this.allTags = await this._tagService.getAllTagsByCustomerId(\n this.cutstomerId,\n );\n this.filteredTags = this.allTags;\n this.selected = this.selected\n .map((o) => this.allTags.find((t) => t.id === o.id))\n .filter((o) => o);\n }\n private async addTagtoConfiguration(tag: TagKeyDTO) {\n this.selected.push(tag);\n }\n private reloadSelectedItems() {\n this.selected = this.selected.map((o) => {\n return this.allTags.find((t) => t.id === o.id);\n });\n }\n public focusInput() {\n this.input.nativeElement.focus();\n const input = document.getElementById('select-input');\n if (input && !this.disabled) {\n this.listOpacity = true;\n }\n }\n public clearInput() {\n this._logger.debug('clearInput:', this.input);\n this.input.nativeElement.innerHTML = '';\n }\n}\n","import { IRequestFormConfig } from '../interfaces/request/request-form-config.interface';\n\nexport const OUTFIT_2D_CONFIG: IRequestFormConfig = {\n canOnlyBeDrafted: false,\n files: [],\n};\n","export enum FILE_FORMAT {\n JPEG = 'image/jpeg',\n PNG = 'image/png',\n JSON = 'json',\n XLS = 'xls',\n CSV = 'csv',\n}\n","import { IRequestFormConfig } from '../interfaces/request/request-form-config.interface';\nimport { FILE_FORMAT } from '../enums/file/file-format.enum';\n\nexport const ACCESSORY_3D_CONFIG: IRequestFormConfig = {\n canOnlyBeDrafted: true,\n files: [\n {\n type: 'REFERENCE_ADDITIONAL',\n fileFormats: [FILE_FORMAT.JPEG, FILE_FORMAT.PNG],\n multiplicity: [0, Number.MAX_SAFE_INTEGER],\n },\n ],\n};\n","import { IRequestFormConfig } from '../interfaces/request/request-form-config.interface';\nimport { FILE_FORMAT } from '../enums/file/file-format.enum';\n\nexport const GARMENT_2D_CONFIG: IRequestFormConfig = {\n canOnlyBeDrafted: false,\n files: [\n {\n type: 'FRONTAL',\n fileFormats: [FILE_FORMAT.JPEG, FILE_FORMAT.PNG],\n multiplicity: [1, 1],\n },\n {\n type: 'REFERENCE_ADDITIONAL',\n fileFormats: [FILE_FORMAT.JPEG, FILE_FORMAT.PNG],\n multiplicity: [0, Number.MAX_SAFE_INTEGER],\n },\n ],\n};\n","import { IRequestFormConfig } from '../interfaces/request/request-form-config.interface';\nimport { FILE_FORMAT } from '../enums/file/file-format.enum';\n\nexport const GARMENT_3D_CONFIG: IRequestFormConfig = {\n canOnlyBeDrafted: true,\n files: [\n {\n type: 'SIZE_TABLE',\n fileFormats: [FILE_FORMAT.CSV, FILE_FORMAT.XLS, FILE_FORMAT.JSON],\n multiplicity: [0, 1],\n },\n {\n type: 'REFERENCE_ADDITIONAL',\n fileFormats: [FILE_FORMAT.JPEG, FILE_FORMAT.PNG],\n multiplicity: [0, Number.MAX_SAFE_INTEGER],\n },\n ],\n};\n","import { OUTFIT_2D_CONFIG } from 'projects/content-service-cms/src/app/core/configs/outfit-2d.config';\nimport { FileType } from 'projects/content-service-cms/src/app/core/models/files/file-type.model';\nimport { PRODUCT_TYPE } from 'projects/content-service-cms/src/app/data';\nimport { ACCESSORY_3D_CONFIG } from '../../configs/accessory-3d.config';\nimport { GARMENT_2D_CONFIG } from '../../configs/garment-2d.config';\nimport { GARMENT_3D_CONFIG } from '../../configs/garment-3d.config';\nimport { IRequestFormConfig } from '../../interfaces/request/request-form-config.interface';\n\nexport class RequestFilesHelper {\n static get ReferenceImageFileType(): FileType {\n return {\n id: 3,\n name: 'REFERENCE_ADDITIONAL',\n };\n }\n\n static get MannequinShotFileType(): FileType {\n return {\n id: 1,\n name: 'FRONTAL',\n };\n }\n\n static get MannequinShotBackFileType(): FileType {\n return {\n id: 4,\n name: 'BACK',\n };\n }\n\n static get RejectedFileType(): FileType {\n return {\n id: 16,\n name: 'REJECTION_ATTACHMENT',\n };\n }\n\n static get CadFileType(): FileType {\n return {\n id: 42,\n name: 'CAD_FILE',\n };\n }\n\n static getRequestFilesConfig(type: PRODUCT_TYPE): IRequestFormConfig {\n switch (type) {\n case PRODUCT_TYPE.GARMENT_2D:\n return GARMENT_2D_CONFIG;\n case PRODUCT_TYPE.GARMENT_3D:\n return GARMENT_3D_CONFIG;\n case PRODUCT_TYPE.ACCESSORY_3D:\n return ACCESSORY_3D_CONFIG;\n case PRODUCT_TYPE.OUTFIT_2D:\n return OUTFIT_2D_CONFIG;\n default:\n return null;\n }\n }\n\n static containsFileType(\n config: IRequestFormConfig,\n fileType: string,\n ): boolean {\n return config.files.find((f) => f.type === fileType) !== undefined;\n }\n\n static maxUploadsForFileType(\n config: IRequestFormConfig,\n fileType: string,\n ): number {\n const fileConfig = config.files.find((f) => f.type === fileType);\n return fileConfig !== undefined ? fileConfig.multiplicity[1] : 0;\n }\n\n static minUploadsForFileType(\n config: IRequestFormConfig,\n fileType: string,\n ): number {\n const fileConfig = config.files.find((f) => f.type === fileType);\n return fileConfig !== undefined ? fileConfig.multiplicity[0] : 0;\n }\n\n static getSupportedFileExtensionsPerFileType(\n config: IRequestFormConfig,\n fileType: string,\n ): string[] {\n const file = config.files.find((f) => f.type === fileType);\n return file ? file.fileFormats : [];\n }\n}\n","import { Subject } from 'rxjs';\nimport { IFileInformation } from '../../data';\n\nexport enum FILE_UPLOAD_STATE {\n SELECTED,\n UPLOADING,\n DONE,\n}\nexport interface UploadData {\n fileinformation: IFileInformation;\n file: Blob;\n uploadState: Subject;\n}\n","import { Injectable } from '@angular/core';\nimport {\n RRAlertModel,\n RR_ALERT_TYPE,\n} from 'projects/web-ui-component-library/src';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AlertService {\n public subscribeAlert: Subject;\n\n constructor() {\n this.subscribeAlert = new Subject();\n }\n\n public showAlert(alert: RRAlertModel): void {\n this.subscribeAlert.next(alert);\n }\n\n public showErrorAlert(message: string): void {\n this.showAlert({\n type: RR_ALERT_TYPE.DANGER,\n message,\n });\n }\n\n public showSuccessAlert(message: string): void {\n this.showAlert({\n type: RR_ALERT_TYPE.SUCCESS,\n message,\n });\n }\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport {\n RRIBaseModel,\n RRIBaseService,\n RRIFilterOutput,\n RRIQueryParams,\n RRISort,\n RRITableData,\n} from 'projects/web-ui-component-library/src';\nimport { Observable, Subscriber, throwError } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ApiTable } from 'projects/content-service-cms/src/app/core/models/api/table.model';\nimport {\n IApiSdkService,\n ICsApiSdkConfiguration,\n} from 'projects/content-service-cms/src/app/data';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { NgDiscoveryService } from './ng-discovery.service';\n\nconst httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n};\n\nexport abstract class DataService\n implements RRIBaseService\n{\n public BASE_API_URL: string | undefined;\n protected standardUrl: string | undefined;\n\n constructor(\n public endpointName: string,\n protected _http: HttpClient,\n protected _logger: ILogger,\n protected _apiSdkService: IApiSdkService,\n private discoveryService: NgDiscoveryService,\n ) {\n this._logger.info(`Creating service ${this.constructor['name']}`);\n\n this.BASE_API_URL =\n this.discoveryService.config.apiConfiguration.baseApiUrl;\n this.standardUrl = `${this.BASE_API_URL}/${endpointName ?? ''}`;\n }\n\n public getListURL(): string | undefined {\n return this.standardUrl ? `${this.standardUrl}` : undefined;\n }\n\n public getDeleteURL(entry: T): string | undefined {\n return this.standardUrl ? `${this.standardUrl}/${entry.id}` : undefined;\n }\n\n public getUpdateURL(entry: T): string | undefined {\n return this.standardUrl ? `${this.standardUrl}/${entry.id}` : undefined;\n }\n\n public isDeleteable(): boolean {\n return true;\n }\n\n public isUpdateable(): boolean {\n return true;\n }\n\n public getData(params?: RRIQueryParams): Observable> {\n const url = this.getListURL();\n if (url === undefined)\n return new Observable(this.emitErrorNoEndpointURLTable);\n\n let urlParams = new HttpParams();\n\n if (params) {\n if (params.pagination) {\n if (params.pagination.currentPage) {\n urlParams = urlParams.set(\n 'currentPage',\n params.pagination.currentPage.toString(),\n );\n }\n\n if (params.pagination.pageSize) {\n urlParams = urlParams.set(\n 'pageSize',\n params.pagination.pageSize.toString(),\n );\n }\n }\n\n if (params.sort) {\n urlParams = urlParams.append('sort', this.formatSortBy(params.sort));\n }\n\n if (params.filters) {\n urlParams = urlParams.append(\n 'filters',\n this.formatFilters(params.filters),\n );\n }\n if (params.includeResult) {\n urlParams = urlParams.append('includeResults', 'true');\n }\n }\n\n return this.convertToTableData(\n this._http.get>(url, { params: urlParams }),\n );\n }\n\n public deleteEntry(entry: T): Observable {\n if (!this.isDeleteable()) {\n const errorMessage: string = 'Delete is not available.';\n return throwError(() => errorMessage);\n }\n const url = this.getDeleteURL(entry);\n if (url === undefined) return new Observable(this.emitErrorNoEndpointURL);\n\n return this._http.delete(url, httpOptions);\n }\n\n public updateEntry(entry: T, httpRequestType: string = 'put'): Observable {\n if (!this.isUpdateable()) {\n const errorMessage: string = 'Create/Update is not available.';\n return throwError(() => errorMessage);\n }\n const url = this.getUpdateURL(entry);\n if (url === undefined) return new Observable(this.emitErrorNoEndpointURL);\n\n if (httpRequestType == 'put') {\n return this._http.put(url, entry, httpOptions);\n } else if (httpRequestType == 'post') {\n return this._http.post(url, entry, httpOptions);\n } else {\n throw new Error('No httpRequestType defined');\n }\n }\n\n public deleteMultipleEntries?(): Observable {\n return new Observable();\n }\n\n public convertToTableData(\n data: Observable | T[]>,\n ): Observable> {\n return data.pipe(\n map((res) => {\n if (!Array.isArray(res) && res.results) {\n return {\n results: res.results,\n pagination: {\n currentPage: res.currentPage,\n pageCount: res.pageSize,\n pageSize: res.pageSize,\n recordCount: res.recordCount,\n recordCountHidden: res.recordCountHidden,\n },\n };\n } else {\n return {\n results: res as T[],\n pagination: null,\n };\n }\n }),\n );\n }\n\n public formatFilters(filters: RRIFilterOutput[]): string {\n const filterBy = {};\n filters.forEach((filter: RRIFilterOutput) => {\n if (filter.filterBy.value && Array.isArray(filter.filterBy.value)) {\n const key = filter.filterBy.fieldName;\n const values = [];\n filter.filterBy.value.forEach((option: any) => {\n if (option?.value && typeof option.value === 'object') {\n values.push(option.value.value);\n } else if (option?.value) {\n values.push(option.value);\n } else if (option) {\n values.push(option);\n }\n });\n if (values && values.length) {\n filterBy[key] = values;\n }\n } else if (\n filter.filterBy.value &&\n typeof filter.filterBy.value === 'object'\n ) {\n let value = filter.filterBy.value.id;\n if (value === '') {\n return;\n }\n if (filter.filterBy.fieldName === 'stateId' && value) {\n value = JSON.parse(value);\n }\n filterBy[filter.filterBy.fieldName] = value;\n } else if (filter.filterBy.value) {\n filterBy[filter.filterBy.fieldName] = filter.filterBy.value;\n }\n });\n return JSON.stringify(filterBy);\n }\n\n public formatSortBy(sort: RRISort): string {\n return `${sort.fieldName.toString()}${sort.desc ? '_desc' : ''}`;\n }\n\n public findFilterByFieldName(\n fieldName: string,\n filters: RRIFilterOutput[],\n ): RRIFilterOutput {\n return filters\n ? filters.find((f) => f.filterBy.fieldName === fieldName)\n : undefined;\n }\n\n private emitErrorNoEndpointURL(subscriber: Subscriber): void {\n this._logger.error(\n `Failed to form URL, there is no discovery configuration document!`,\n );\n subscriber.error(\n `Failed to form URL, there is no discovery configuration document!`,\n );\n subscriber.complete();\n }\n\n private emitErrorNoEndpointURLTable(\n subscriber: Subscriber>,\n ): void {\n this._logger.error(\n `Failed to form URL, there is no discovery configuration document!`,\n );\n subscriber.error(\n `Failed to form URL, there is no discovery configuration document!`,\n );\n subscriber.complete();\n }\n\n protected errorOnInitService(error: Error) {\n this._logger.error(`Cannot initate ${this.constructor['name']}`, error);\n }\n\n protected abstract initService(sdkConfig: ICsApiSdkConfiguration);\n}\n","/* eslint-disable no-console */\nimport { InjectionToken } from '@angular/core';\nimport {\n IApiConfiguration,\n IAppConfiguration,\n IDiscoveryConfiguration,\n} from '../../data/api';\nimport { ConsoleLoggerService } from '../../logging/services/console-logger.service';\n\nexport const DiscoToken = new InjectionToken('DiscoToken');\n\nexport abstract class NgDiscoveryService {\n public readonly config: IDiscoveryConfiguration;\n}\n\nexport class DiscoveryConfig extends NgDiscoveryService {\n constructor(public readonly config: IDiscoveryConfiguration) {\n super();\n }\n}\n\nexport const getDiscovery: Promise = new Promise(\n (resolve) => {\n console.time('getDiscovery');\n const logger = new ConsoleLoggerService();\n logger.info('getDiscovery', 'starting...');\n\n fetch('/.well-known/app-configuration')\n .then((res) => res.json())\n .then((appConfiguration: IAppConfiguration) => {\n logger.info('getDiscovery', 'acquired App configuration...');\n\n return fetch(appConfiguration.config)\n .then((res) => res.json())\n .then((apiConfiguration: IApiConfiguration) => {\n logger.info('getDiscovery', 'acquired API configuration...');\n\n // TODO: 🔥🔥🔥 Burn this with nuclear fire 🔥🔥🔥\n apiConfiguration = {\n ...apiConfiguration,\n computeServerUrl: apiConfiguration.computeServerUrl,\n baseUrl: window.location.origin,\n baseApiUrl: apiConfiguration.baseApiUrl.includes(\n appConfiguration.apiVersion,\n )\n ? apiConfiguration.baseApiUrl\n : `${apiConfiguration.baseApiUrl}/${appConfiguration.apiVersion}`,\n signInCallback: `${window.location.origin}/signin-callback`,\n signOutCallback: `${window.location.origin}/signout-callback`,\n platformApiBaseUrl: (apiConfiguration.platformApiBaseUrl !== undefined && apiConfiguration.platformApiBaseUrl !== ''?\n apiConfiguration.platformApiBaseUrl: apiConfiguration.baseApiUrl.includes('cs-dev')\n ?'https://api.platform-staging.pictofit.com/'\n : 'https://api.platform.pictofit.com/'\n\n ),\n };\n\n return {\n appConfiguration,\n apiConfiguration,\n };\n });\n })\n .then((cfg) => {\n logger.info('getDiscovery', 'done!', cfg);\n\n console.timeEnd('getDiscovery');\n resolve(cfg);\n });\n },\n);\n","import { Injectable } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { Observable, filter, map, skip } from 'rxjs';\nimport { ILogger } from '../../logging';\nimport { NgDiscoveryService } from './ng-discovery.service';\n\ninterface Dictionary {\n [key: string]: any;\n}\n\ninterface StorageLayout {\n profile: string;\n storages: {\n local: Dictionary;\n session: Dictionary;\n };\n}\n\nconst notEmpty = () => filter((v) => Object.getOwnPropertyNames(v).length > 0);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgStorageManagerService {\n private currentState: StorageLayout;\n private store: ComponentStore;\n\n private readonly updateLocation: (update: {\n values: Dictionary;\n mode: 'append' | 'overwrite';\n location: keyof StorageLayout['storages'];\n }) => void;\n private readonly updateProfile: (prefix: string) => void;\n\n public readonly local$: Observable;\n public readonly session$: Observable;\n\n constructor(\n private discoveryService: NgDiscoveryService,\n private logger: ILogger,\n ) {\n // initialise the store as empty...\n this.currentState = {\n profile: '',\n storages: {\n local: {},\n session: {},\n },\n };\n this.store = new ComponentStore(this.currentState);\n\n // update the current state on each change...\n this.store\n .select((state) => state)\n .subscribe((state) => {\n this.currentState = state;\n });\n\n // updater for prefix...\n this.updateProfile = this.store.updater((state, profile: string) => ({\n ...state,\n profile,\n }));\n\n // updater for setting individual store values...\n this.updateLocation = this.store.updater(\n (\n state,\n update: {\n values: Dictionary;\n mode: 'append' | 'overwrite';\n location: keyof StorageLayout['storages'];\n },\n ) => {\n const { values, mode, location } = update;\n const existing = mode === 'append' ? state.storages[location] : {};\n return {\n ...state,\n storages: {\n ...state.storages,\n [location]: {\n ...existing,\n ...values,\n },\n },\n };\n },\n );\n\n // selector for accessing the storages...\n this.local$ = this.store.select((state) => state.storages.local);\n this.session$ = this.store.select((state) => state.storages.session);\n\n // save changes as they happen...\n this.local$\n .pipe(skip(1), notEmpty())\n .subscribe((values) =>\n this.saveToStorage(values, this.currentState.profile, localStorage),\n );\n this.session$\n .pipe(skip(1), notEmpty())\n .subscribe((values) =>\n this.saveToStorage(values, this.currentState.profile, sessionStorage),\n );\n\n // get the discovery information...\n const environmentName =\n this.discoveryService.config.apiConfiguration.baseApiUrl;\n const profile = ['CMS', environmentName].join('_');\n\n // store the prefix...\n this.updateProfile(profile);\n\n // load the stored values...\n this.loadFromStorage('local', localStorage, profile);\n this.loadFromStorage('session', sessionStorage, profile);\n }\n\n private loadFromStorage(\n location: keyof StorageLayout['storages'],\n storage: Storage,\n profile: string,\n ): void {\n // load from storage...\n let values: Dictionary = {};\n for (let i = 0; i < storage.length; i++) {\n const key = storage.key(i);\n if (key === profile) {\n values = JSON.parse(storage.getItem(key)) as Dictionary;\n }\n }\n\n // update the store...\n this.updateLocation({\n values,\n mode: 'overwrite',\n location,\n });\n }\n\n private saveToStorage(\n values: Dictionary,\n profile: string,\n storage: Storage,\n ): void {\n storage.setItem(profile, JSON.stringify(values));\n }\n\n public getItem(\n key: string,\n location: keyof StorageLayout['storages'],\n ): T {\n return this.currentState.storages[location][key];\n }\n\n public getItem$(\n key: string,\n location: keyof StorageLayout['storages'],\n ): Observable {\n return this.store\n .select((state) => state.storages[location])\n .pipe(map((p) => p[key]));\n }\n\n public setItem(\n key: string,\n value: any,\n location: keyof StorageLayout['storages'],\n ) {\n this.updateLocation({\n values: {\n [key]: value,\n },\n mode: 'append',\n location,\n });\n }\n\n public clearLocation(location: keyof StorageLayout['storages']) {\n this.updateLocation({\n values: {},\n mode: 'overwrite',\n location,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProgressBarService {\n public killHttp: Subject;\n public isLoading: Subject;\n public showProgressBar: boolean;\n\n private maxEntities: number;\n private progressBarValue: number;\n\n constructor(private _logger: ILogger) {\n this.killHttp = new Subject();\n this.isLoading = new Subject();\n this.showProgressBar = false;\n\n this.maxEntities = 0;\n this.progressBarValue = 0;\n }\n\n public show(maxEntities: number, progressBarValue: number = 0): void {\n this.maxEntities = maxEntities;\n this.progressBarValue = progressBarValue;\n this.isLoading.next({\n show: true,\n maxEntities: this.maxEntities,\n progressBarValue: this.progressBarValue,\n });\n }\n\n public increaseProgressBarValue(): void {\n this.progressBarValue++;\n this.isLoading.next({\n show: true,\n maxEntities: this.maxEntities,\n progressBarValue: this.progressBarValue,\n });\n }\n\n public error(text: string): void {\n this._logger.error(text);\n this.isLoading.next({ show: false });\n }\n\n public hide(): void {\n setTimeout(() => {\n this.isLoading.next({ show: false });\n }, 750);\n }\n\n public destroyHttpRequest(): void {\n this.killHttp.next();\n this.killHttp.complete();\n this.killHttp = new Subject();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { Observable, first } from 'rxjs';\nimport { ILogger } from '../../logging';\nimport { NgStorageManagerService } from './ng-storage-manager.service';\n\nexport type Permission = 'Core' | 'UserExperience';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserDataPermissionService {\n public readonly granted$: Observable;\n\n private readonly store: ComponentStore = new ComponentStore([]);\n private readonly _grant: (permission: Permission) => void;\n\n constructor(\n private logger: ILogger,\n private storage: NgStorageManagerService,\n ) {\n this._grant = this.store.updater((state, permission: Permission) => {\n this.logger.info(\n 'UserDataPermissionService',\n 'Granting permission:',\n permission,\n state,\n );\n if (state.includes(permission)) return;\n\n const updated = [...state, permission];\n\n // only update if we have permission to store data...\n if (updated.includes('Core')) {\n this.logger.debug('UserDataPermissionService', 'saving changes...');\n this.storage.setItem('UserDataPermissions', updated, 'local');\n }\n\n this.logger.info(\n 'UserDataPermissionService',\n 'Updated permission:',\n updated,\n );\n return updated;\n });\n\n this.granted$ = this.store.select((state) => state);\n this.restore();\n }\n\n public grant(...permissions: Permission[]): void {\n permissions.forEach((permission) => this._grant(permission));\n }\n\n private restore(): void {\n this.storage\n .getItem$('UserDataPermissions', 'local')\n .pipe(first())\n .subscribe((fromStorage) => {\n this.logger.debug(\n 'UserDataPermissionService',\n 'loading existing grants...',\n fromStorage,\n );\n fromStorage?.forEach((permission) => this._grant(permission));\n });\n }\n}\n","import { CustomerDTO } from '@reactivereality/cs-api-sdk';\nimport { Observable } from 'rxjs';\n\nexport abstract class ICustomerService {\n abstract readonly currentCustomer: () => Promise;\n abstract readonly currentCustomer$: Observable;\n abstract readonly myCustomers$: Observable>;\n}\n","import { Injectable } from '@angular/core';\nimport { NgStorageManagerService } from '../../core/services/ng-storage-manager.service';\n\nconst CURRENT_CUSTOMER_ID = 'customer.current_id';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomerStorageService {\n constructor(private storageManager: NgStorageManagerService) {}\n\n public readonly setSelectedCustomer = (customerId: string) => {\n if (customerId) {\n this.storageManager.setItem(CURRENT_CUSTOMER_ID, customerId, 'local');\n }\n };\n\n public readonly clearSelectedCustomer = () => {\n this.storageManager.setItem(CURRENT_CUSTOMER_ID, undefined, 'local');\n };\n\n public readonly getSelectedCustomer = (): string => {\n return this.storageManager.getItem(CURRENT_CUSTOMER_ID, 'local');\n };\n}\n","import { createAction, props } from '@ngrx/store';\nimport { CustomerDTO } from '@reactivereality/cs-api-sdk';\n\nexport const updateCustomerListAction = createAction(\n '[Customer] Update customer list',\n props<{ myCustomerList: Array }>(),\n);\n\nexport const setCurrentCustomerAction = createAction(\n '[Customer] Set current customer',\n props<{ currentCustomer?: CustomerDTO }>(),\n);\n\nexport const setCurrentCustomerIDAction = createAction(\n '[Customer] Set current customer ID',\n props<{ customerID?: string }>(),\n);\n\nexport const loadCurrentCustomerAction = createAction(\n '[Customer] Loading current customer...',\n);\n\nexport const loadCurrentCustomerCompleteAction = createAction(\n '[Customer] Loaded current customer',\n props<{ currentCustomer?: string }>(),\n);\n","import {\n AddApiKeyResponseDto,\n ApiKeyDto,\n Configuration,\n ConfigurationBindingModel,\n ConfigurationDTO,\n ConfigurationHasTagKeyDTO,\n ConfigurationPublicOnlyDTO,\n ConfigurationResultDTO,\n ConfigurationResultFileDTO,\n ConfigurationsApi,\n CustomersApi,\n FilesApi,\n ImageDTO,\n ImageDTOPage,\n MIMETypeDTO,\n ProcessApi,\n ProductTypeDTO,\n ProductsApi,\n TagKeyBindingModel,\n TagKeyDTO,\n TagsApi,\n UsersApi,\n} from '@reactivereality/cs-api-sdk';\nimport {\n RRIBatchOption,\n RRIDownloadBatchOptionSettings,\n RRIFilterOutput,\n RRIQueryParams,\n RRITableData,\n} from 'projects/web-ui-component-library/src';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { FileRevision } from '../core/models/files/file-revision.model';\nimport { File } from '../core/models/files/file.model';\nimport { DataService } from '../core/services/data.service';\nimport { PRODUCT_STATE } from './enums/product-state.enum';\nimport { PRODUCT_TYPE } from './enums/product-type.enum';\nimport { REQUEST_STATE_INTERNAL_ID } from './enums/request-state-internal.enum';\nimport { v4 as uuid } from 'uuid';\nimport {\n ExtendedCollection,\n ICollection,\n} from '../collection-overview/collection.interface';\nimport {\n AddExternalReferenceToSettingMutation,\n UpdateCollectionMutation,\n} from './central-asset-platform-sdk/src/merchant-sdk';\n\nexport class IAppConfiguration {\n config: string;\n clientId: string;\n apiVersion: string;\n responseType: string;\n sentry?: {\n dsn: string;\n env: string;\n sample_rate?: number;\n };\n}\n\nexport class IApiConfiguration {\n name: string;\n production: boolean;\n baseUrl: string;\n baseApiUrl: string;\n authRequestAudience: string;\n authRequestScopes: string;\n baseAuthServiceUrl: string;\n baseViewerUrl: string;\n computeServerUrl: string;\n signInCallback: string;\n signOutCallback: string;\n platformApiBaseUrl: string;\n}\n\nexport interface IDiscoveryConfiguration {\n appConfiguration: IAppConfiguration;\n apiConfiguration: IApiConfiguration;\n}\n\nexport interface ICsApiSdkConfiguration {\n apiVersion: string;\n configuration: Configuration;\n customersApiSdk: CustomersApi;\n productApiSdk: ProductsApi;\n processApiSdk: ProcessApi;\n usersApiSdk: UsersApi;\n configurationsApiSdk: ConfigurationsApi;\n filesApiSdk: FilesApi;\n tagsApiSdk: TagsApi;\n}\n\nexport abstract class IApiSdkService {\n public readonly sdkConfig$: Observable;\n}\n\nexport interface ICustomer {\n id: string;\n name: string;\n}\n\nexport abstract class ICustomerService {\n abstract fetchCustomerById(\n customerId: string,\n ): Promise;\n}\n\nexport interface IProduct {\n id: string;\n customerId: string;\n customerName: string;\n name: string;\n typeId: PRODUCT_TYPE;\n sku: string;\n metadata: { [key: string]: any };\n createdAt: number;\n dueAt: number;\n modifiedAt: number;\n stateId: PRODUCT_STATE;\n}\n\nexport interface IProductType {\n id: PRODUCT_TYPE;\n name: string;\n reviewEnabled?: boolean;\n}\n\nexport abstract class IProductService {\n abstract fetchProductByID(productId: string): Promise;\n abstract updateProduct(product: IProduct): Promise;\n abstract fetchProductTypes(): Promise | undefined>;\n}\n\nexport interface IServiceRejectionReason {\n key: string;\n description: string;\n}\n\nexport abstract class IProcessService {\n abstract readonly rejectionReasonsGarment2D$: Observable<\n Array\n >;\n abstract readonly rejectionReasonsGarment3D$: Observable<\n Array\n >;\n abstract readonly rejectionReasonsOutfit2D$: Observable<\n Array\n >;\n abstract readonly rejectionReasonsAccessory3D$: Observable<\n Array\n >;\n\n abstract refreshRejectionReasonsGarment2D: () => void;\n abstract refreshRejectionReasonsGarment3D: () => void;\n abstract refreshRejectionReasonsOutfit2D: () => void;\n abstract refreshRejectionReasonsAccessory3D: () => void;\n}\n\nexport abstract class ITagService {\n abstract createOrUpdateTag(\n id: string,\n tag: TagKeyBindingModel,\n ): Promise;\n abstract getAllTags(): Promise;\n abstract getAllTagsByCustomerId(customerId: string): Promise;\n abstract getTag(id: uuid): Promise;\n abstract getTagOnlyForCustomer(\n id: uuid,\n customerId: uuid,\n ): Promise;\n\n abstract deleteTag(id: uuid): Promise;\n abstract deleteTagFromConfiguration(\n id: uuid,\n configurationId: uuid,\n ): Promise;\n abstract addTagToConfiguration(\n id: uuid,\n configurationId: uuid,\n ): Promise;\n}\n\nexport interface IUser {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n createdAt: number;\n modifiedAt: number;\n name?: string;\n featureFlags?: string[];\n}\n\nexport abstract class IUserService {\n abstract readonly me: Observable;\n\n abstract refreshMeUser: () => void;\n abstract canUserApproveRequest: () => Promise;\n abstract canUserRejectRequest: () => Promise;\n\n abstract updateMe: (me: Partial) => Promise;\n\n abstract listApiKeys: () => Promise>;\n abstract newApiKey: (name?: string) => Promise;\n abstract revokeApiKey: (id: string) => Promise;\n}\n\nexport interface IRequestUpdate extends ConfigurationBindingModel {\n id: string;\n}\n\nexport interface IRequestDetail {\n id: string;\n name: string;\n customerId?: string;\n productId?: string;\n productTypeId?: PRODUCT_TYPE;\n createdAt?: number;\n dueAt?: number;\n modifiedAt?: number;\n currentStateLogEntryId?: number;\n reviewEnabled?: boolean;\n thumbnailImageID?: string;\n previewUrl?: string;\n metadata?: { [key: string]: any };\n priority?: string;\n results?: IRequestResult[];\n sku?: string;\n stateId?: REQUEST_STATE_INTERNAL_ID;\n stateMetadata?: { [key: string]: any };\n url?: string;\n tags?: any[];\n storageInTransit?: boolean;\n storageLocation?: string;\n}\n\nexport interface IRequestHistoryState {\n configurationId: string;\n state: REQUEST_STATE_INTERNAL_ID;\n entryId: number;\n metadata: { [key: string]: any };\n createdAt: number;\n user: IUser;\n}\n\nexport interface IRequestPrioritiy {\n id: string;\n name: string;\n}\n\nexport interface IRequestState {\n id: number;\n name: string;\n}\n\nexport interface IRequestResult {\n id: string;\n format: string;\n configurationId?: string;\n createdAt?: number;\n createdBy?: string;\n modifiedBy?: string;\n modifiedAt?: number;\n files?: IRequestResultFile[];\n}\n\nexport interface IRequestResultFile {\n id: string;\n name: string;\n configurationResultId?: string;\n url?: string;\n createdAt?: number;\n createdBy?: string;\n modifiedAt?: number;\n modifiedBy?: string;\n typeId?: number;\n mimeType?: string;\n}\n\nexport interface IRequest {\n id: string;\n name: string;\n createdAt?: number;\n currentStateLogEntryId?: number;\n customerId?: string;\n customerName?: string;\n dueAt?: number;\n metadata?: {};\n modifiedAt?: number;\n productId?: string;\n productTypeId?: string;\n results?: IRequestResult[];\n sku?: string;\n stateCreatedAt?: number;\n stateCreatedBy?: string;\n stateCreatedByFirstName?: string;\n stateCreatedByLastName?: string;\n stateMetadata?: { reason?: string; additionalInformation?: string };\n url?: string;\n priority?: string;\n reviewEnabled?: boolean;\n stateId?: REQUEST_STATE_INTERNAL_ID;\n ThumbnailImageID?: string;\n previewUrl?: string;\n tags: { tagKeyColor: string; tagKeyName: string; value: string | null }[];\n}\n\nexport interface IResquestStateCount {\n stateId: REQUEST_STATE_INTERNAL_ID;\n count: number;\n}\n\nexport interface IRequestsAggregate {\n statesCount: IResquestStateCount[];\n}\n\nexport abstract class IRequestService extends DataService {\n abstract allPriorities_loading$: BehaviorSubject;\n abstract readonly allPriorities$: BehaviorSubject;\n\n abstract getRequestByID(requestId: string): Promise;\n abstract getRequests(\n filter: string,\n page: number,\n pageSize: number,\n includeResult?: boolean,\n ): Promise;\n abstract getPublicRequests(\n filter: string,\n page: number,\n pageSize: number,\n ): Promise;\n abstract update(request: IRequestUpdate): Promise;\n abstract delete(request: IRequestDetail): Promise;\n\n abstract getResponseFromUrl(url: string): Promise;\n\n abstract approveRequest(requestId: string): Promise;\n abstract rejectRequest(\n request: IRequestDetail,\n metadata: { [key: string]: any },\n ): Promise;\n abstract setReady(id: string): Promise;\n\n abstract getHistory(requestId: string): Promise;\n\n abstract getResult(requestResultId: string): Promise;\n abstract getResults(requestId: string): Promise;\n\n abstract getData(\n params: RRIQueryParams,\n ): Observable>;\n abstract getRequestAggregates(\n filters?: RRIFilterOutput[],\n tags?: RRIQueryParams['tags'],\n ): Observable;\n abstract getAllCustomerRequests(\n customerId: string,\n filter: string,\n page: number,\n pageSize: number,\n tags: string,\n inlcudedArchived?: boolean,\n cancelSignal?: AbortSignal,\n ): Promise;\n}\n\nexport interface IFileInformation {\n id: string;\n configurationId: string;\n fileName: string;\n typeId: number;\n mimeType: string;\n}\n\nexport interface IFileUpload {\n name: string;\n configurationId: string;\n mimeType: string;\n type: string;\n ensureUniqueness?: boolean;\n}\n\nexport interface IFileUploadResponse {\n fileId: string;\n uploadUrl: string;\n acknowledgeUrl: string;\n}\n\nexport interface IResultFileUpload {\n name: string;\n mimeType: string;\n}\n\nexport abstract class IFileUploadService {\n abstract uploadJsonFile(\n fileInfo: IFileInformation,\n jsonObject: object,\n ): Promise;\n abstract uploadBase64File(\n fileInfo: IFileInformation,\n base64Data: string,\n ): Promise;\n abstract uploadFile(\n fileInfo: IFileInformation,\n fileBlob: Blob,\n ): Promise;\n}\n\nexport abstract class IPublicRequestService extends DataService {\n abstract getPublicRequestByID(requestId: string): Promise;\n abstract getFirstApprovedAvatar2D(): any;\n}\n\nexport abstract class IGarmentService extends DataService {\n abstract getMetadata(webResult: IRequestResult): Promise;\n abstract mapRequestsToGarments(\n request: IRequestDetail,\n additional?: {\n isPublic?: boolean;\n isSelected?: boolean;\n dressed?: boolean;\n tuckedIn?: boolean;\n },\n ): Promise;\n}\n\nexport abstract class IFileDownloadService extends DataService {\n abstract getFile(fileId: string): Observable;\n abstract getFileExtension(\n file: File | IRequestResultFile | FileRevision,\n ): string;\n abstract fileDownload(\n entities: any[],\n visibleBatchOptions: RRIBatchOption>,\n singleDownload: boolean,\n ): void;\n abstract downloadFile(file: File): Observable;\n abstract downloadResultFile(file: IRequestResultFile): Observable;\n abstract downloadZippedFiles(\n results: ConfigurationResultDTO[],\n name: string,\n ): Promise;\n abstract downloadFiles(results: ConfigurationResultDTO[]): Promise;\n}\n\nexport abstract class IFileService extends DataService {\n abstract isLoading: Subject;\n abstract fileDownload(\n entities: any[],\n visibleBatchOptions: RRIBatchOption>,\n singleDownload?: boolean,\n ): void;\n abstract downloadFile(file: File): any;\n abstract loadFile(lbActiveFile: File): Observable;\n abstract setFileConfiguration(file: File): void;\n abstract getRequestFiles(\n requestId: string,\n filters?: string,\n ): Promise;\n abstract getFilesFromRequest(): Promise;\n abstract deleteFile(file: ImageDTO): Promise;\n abstract getTypes(): Promise;\n abstract getFile(fileId: string): Promise;\n abstract getMimeTypes(): Promise;\n}\n\nexport interface IPriority {\n id: string;\n name: string;\n}\n\nexport interface AvatarDTO extends ConfigurationDTO {\n isPublic: boolean;\n enabled?: boolean;\n archived?: boolean;\n}\nexport interface SceneDTO extends ConfigurationDTO {\n isPublic: boolean;\n enabled?: boolean;\n archived?: boolean;\n}\nexport interface GarmentDTO extends ConfigurationDTO {\n groupId: number;\n isPublic: boolean;\n selected: boolean;\n tuckedIn: boolean;\n dressed: boolean;\n tryonable: boolean;\n archived?: boolean;\n}\n\nexport interface AccessoryDTO extends GarmentDTO {}\n\nexport interface PagingData {\n currentPage: number;\n pageCount: number;\n pageSize: number;\n recordCount: number;\n}\n\nexport interface PagingRequestDTO {\n configurations: ConfigurationDTO[];\n paging?: PagingData;\n}\n\nexport interface PagingPublicRequestDTO {\n configurations: ConfigurationPublicOnlyDTO[];\n paging?: PagingData;\n}\n\nexport interface AdditionalData {\n id: string;\n thumbnail: string;\n externalReferences: { id: string; reference: string }[];\n}\n\nexport abstract class ICentralAssetPlatformService {\n abstract getAllCollections(org: uuid): Promise;\n abstract createCollection(org: uuid, collection: ICollection): Promise;\n abstract referenceExists(org: uuid, reference: string): Promise;\n // abstract getCollection(\n // org: uuid,\n // ref: string,\n // ): Promise<{ id: string; collection: ICollection }>;\n abstract updateCollection(\n id: uuid,\n collection: ICollection,\n ): Promise;\n abstract addExternalReferenceToSetting(\n setting: string,\n eference: string,\n ): Promise;\n abstract getThumbnail(org: uuid, ref: string[]): Promise;\n abstract getId(org: uuid, ref: string | string[]): Promise;\n abstract getAdditionalData(\n org: uuid,\n ref: string | string[],\n ): Promise;\n}\n\nexport abstract class ISimpleFileService {\n abstract readJsonFile(url: string): Observable;\n}\n","import { Injectable } from '@angular/core';\nimport {\n Configuration,\n ConfigurationsApi,\n CustomersApi,\n FilesApi,\n ProcessApi,\n ProductsApi,\n TagsApi,\n UsersApi,\n} from '@reactivereality/cs-api-sdk';\nimport { BehaviorSubject, Observable, filter } from 'rxjs';\nimport { IAuthService } from 'projects/content-service-cms/src/app/auth';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { IApiSdkService, ICsApiSdkConfiguration } from '../api';\nimport { User } from 'oidc-client';\nimport { NgDiscoveryService } from '../../core/services/ng-discovery.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiSdkService implements IApiSdkService {\n public readonly sdkConfig$: Observable;\n\n private internal_SdkConfig$: BehaviorSubject<\n ICsApiSdkConfiguration | undefined\n >;\n\n constructor(\n private discovery: NgDiscoveryService,\n private _authService: IAuthService,\n private _logger: ILogger,\n ) {\n this._logger.info('Create API Sdk service ...');\n\n this.internal_SdkConfig$ = new BehaviorSubject<\n ICsApiSdkConfiguration | undefined\n >(undefined);\n this.sdkConfig$ = this.internal_SdkConfig$.asObservable();\n\n this._authService.loggedUser$.subscribe({\n next: this.initApiSdkConfig,\n error: this.errorOnInitSdk,\n });\n\n this.internal_SdkConfig$.pipe(filter((v) => v !== undefined)).subscribe({\n next: (value: ICsApiSdkConfiguration) => {\n this._logger.info(\n 'The CS API Sdk is exposed in window.CSApiSdk:',\n value,\n );\n window.CSApiSdk = value;\n },\n });\n }\n\n initApiSdkConfig = (user: User) => {\n if (user) {\n //TODO: we should not need to remove the version from the base api, the base api should not include the api version\n const config = new Configuration({\n basePath: this.discovery.config.apiConfiguration.baseApiUrl.replace(\n `/${this.discovery.config.appConfiguration.apiVersion}`,\n '',\n ),\n apiKey: `Bearer ${user.access_token}`,\n });\n\n const processApiSdk = new ProcessApi(config);\n const productApiSdk = new ProductsApi(config);\n const customersApiSdk = new CustomersApi(config);\n const usersApiSdk = new UsersApi(config);\n const configurationsApiSdk = new ConfigurationsApi(config);\n const filesApiSdk = new FilesApi(config);\n const tagsApiSdk = new TagsApi(config);\n\n //TODO: we should not need to remove the 'v' from the api version, the api version should not include the 'v'\n this.internal_SdkConfig$.next({\n configuration: config,\n apiVersion: this.discovery.config.appConfiguration.apiVersion.replace(\n 'v',\n '',\n ),\n processApiSdk,\n productApiSdk,\n customersApiSdk,\n usersApiSdk,\n configurationsApiSdk,\n filesApiSdk,\n tagsApiSdk,\n });\n } else {\n this.internal_SdkConfig$.next(undefined);\n }\n };\n\n errorOnInitSdk = (error: any) => {\n this._logger.error('Cannot init API SDK.', error);\n };\n}\n","import { Injectable } from '@angular/core';\nimport { CustomerDTO, CustomersApi } from '@reactivereality/cs-api-sdk';\nimport { AxiosResponse } from 'axios';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport {\n IApiSdkService,\n ICsApiSdkConfiguration,\n ICustomer,\n ICustomerService,\n} from '../api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomerService implements ICustomerService {\n private _customerApi: CustomersApi;\n private apiVersion: string;\n\n constructor(\n private _logger: ILogger,\n private _apiSdkService: IApiSdkService,\n ) {\n this._logger.info('Creating customer service ...');\n\n this._apiSdkService.sdkConfig$.subscribe({\n next: this.initCustomersService,\n error: this.errorOnInitCustomersService,\n });\n }\n\n public async fetchCustomerById(\n customerId: string,\n ): Promise {\n if (this._customerApi) {\n return this._customerApi\n .vversionCustomersIdGet(customerId, this.apiVersion)\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return {\n id: response.data.id,\n name: response.data.name,\n };\n }\n\n return undefined;\n });\n }\n\n return Promise.reject('There is no Customers API.');\n }\n\n private initCustomersService = (sdkConfig: ICsApiSdkConfiguration) => {\n if (sdkConfig && sdkConfig.apiVersion && sdkConfig.customersApiSdk) {\n this.apiVersion = sdkConfig.apiVersion;\n this._customerApi = sdkConfig.customersApiSdk;\n } else {\n this.errorOnInitCustomersService(\n new Error(\n 'There is no Customers API Sdk Configuration or API version.',\n ),\n );\n }\n };\n\n private errorOnInitCustomersService = (error: Error) => {\n this._logger.error('Cannot initate Customers API.', error);\n };\n\n private errorOnRefreshMyCustomers = (error: Error) => {\n this._logger.error('Error when refreshing my customers.', error);\n };\n}\n","/**\n * @license\n * web-streams-polyfill v4.0.0\n * Copyright 2024 Mattias Buelens, Diwank Singh Tomer and other contributors.\n * This code is released under the MIT license.\n * SPDX-License-Identifier: MIT\n */\nfunction e(){}function t(e){return\"object\"==typeof e&&null!==e||\"function\"==typeof e}const r=e;function o(e,t){try{Object.defineProperty(e,\"name\",{value:t,configurable:!0})}catch(e){}}const n=Promise,a=Promise.resolve.bind(n),i=Promise.prototype.then,l=Promise.reject.bind(n),s=a;function u(e){return new n(e)}function c(e){return u((t=>t(e)))}function d(e){return l(e)}function f(e,t,r){return i.call(e,t,r)}function b(e,t,o){f(f(e,t,o),void 0,r)}function h(e,t){b(e,t)}function m(e,t){b(e,void 0,t)}function _(e,t,r){return f(e,t,r)}function p(e){f(e,void 0,r)}let y=e=>{if(\"function\"==typeof queueMicrotask)y=queueMicrotask;else{const e=c(void 0);y=t=>f(e,t)}return y(e)};function S(e,t,r){if(\"function\"!=typeof e)throw new TypeError(\"Argument is not a function\");return Function.prototype.apply.call(e,t,r)}function g(e,t,r){try{return c(S(e,t,r))}catch(e){return d(e)}}class v{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(e){const t=this._back;let r=t;16383===t._elements.length&&(r={_elements:[],_next:void 0}),t._elements.push(e),r!==t&&(this._back=r,t._next=r),++this._size}shift(){const e=this._front;let t=e;const r=this._cursor;let o=r+1;const n=e._elements,a=n[r];return 16384===o&&(t=e._next,o=0),--this._size,this._cursor=o,e!==t&&(this._front=t),n[r]=void 0,a}forEach(e){let t=this._cursor,r=this._front,o=r._elements;for(;!(t===o.length&&void 0===r._next||t===o.length&&(r=r._next,o=r._elements,t=0,0===o.length));)e(o[t]),++t}peek(){const e=this._front,t=this._cursor;return e._elements[t]}}const w=Symbol(\"[[AbortSteps]]\"),R=Symbol(\"[[ErrorSteps]]\"),T=Symbol(\"[[CancelSteps]]\"),C=Symbol(\"[[PullSteps]]\"),P=Symbol(\"[[ReleaseSteps]]\");function q(e,t){e._ownerReadableStream=t,t._reader=e,\"readable\"===t._state?B(e):\"closed\"===t._state?function(e){B(e),A(e)}(e):k(e,t._storedError)}function E(e,t){return Or(e._ownerReadableStream,t)}function W(e){const t=e._ownerReadableStream;\"readable\"===t._state?j(e,new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\")):function(e,t){k(e,t)}(e,new TypeError(\"Reader was released and can no longer be used to monitor the stream's closedness\")),t._readableStreamController[P](),t._reader=void 0,e._ownerReadableStream=void 0}function O(e){return new TypeError(\"Cannot \"+e+\" a stream using a released reader\")}function B(e){e._closedPromise=u(((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r}))}function k(e,t){B(e),j(e,t)}function j(e,t){void 0!==e._closedPromise_reject&&(p(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}function A(e){void 0!==e._closedPromise_resolve&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}const z=Number.isFinite||function(e){return\"number\"==typeof e&&isFinite(e)},D=Math.trunc||function(e){return e<0?Math.ceil(e):Math.floor(e)};function L(e,t){if(void 0!==e&&(\"object\"!=typeof(r=e)&&\"function\"!=typeof r))throw new TypeError(`${t} is not an object.`);var r}function F(e,t){if(\"function\"!=typeof e)throw new TypeError(`${t} is not a function.`)}function I(e,t){if(!function(e){return\"object\"==typeof e&&null!==e||\"function\"==typeof e}(e))throw new TypeError(`${t} is not an object.`)}function $(e,t,r){if(void 0===e)throw new TypeError(`Parameter ${t} is required in '${r}'.`)}function M(e,t,r){if(void 0===e)throw new TypeError(`${t} is required in '${r}'.`)}function Y(e){return Number(e)}function x(e){return 0===e?0:e}function Q(e,t){const r=Number.MAX_SAFE_INTEGER;let o=Number(e);if(o=x(o),!z(o))throw new TypeError(`${t} is not a finite number`);if(o=function(e){return x(D(e))}(o),o<0||o>r)throw new TypeError(`${t} is outside the accepted range of 0 to ${r}, inclusive`);return z(o)&&0!==o?o:0}function N(e,t){if(!Er(e))throw new TypeError(`${t} is not a ReadableStream.`)}function H(e){return new ReadableStreamDefaultReader(e)}function V(e,t){e._reader._readRequests.push(t)}function U(e,t,r){const o=e._reader._readRequests.shift();r?o._closeSteps():o._chunkSteps(t)}function G(e){return e._reader._readRequests.length}function X(e){const t=e._reader;return void 0!==t&&!!J(t)}class ReadableStreamDefaultReader{constructor(e){if($(e,1,\"ReadableStreamDefaultReader\"),N(e,\"First parameter\"),Wr(e))throw new TypeError(\"This stream has already been locked for exclusive reading by another reader\");q(this,e),this._readRequests=new v}get closed(){return J(this)?this._closedPromise:d(ee(\"closed\"))}cancel(e=void 0){return J(this)?void 0===this._ownerReadableStream?d(O(\"cancel\")):E(this,e):d(ee(\"cancel\"))}read(){if(!J(this))return d(ee(\"read\"));if(void 0===this._ownerReadableStream)return d(O(\"read from\"));let e,t;const r=u(((r,o)=>{e=r,t=o}));return K(this,{_chunkSteps:t=>e({value:t,done:!1}),_closeSteps:()=>e({value:void 0,done:!0}),_errorSteps:e=>t(e)}),r}releaseLock(){if(!J(this))throw ee(\"releaseLock\");void 0!==this._ownerReadableStream&&function(e){W(e);const t=new TypeError(\"Reader was released\");Z(e,t)}(this)}}function J(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_readRequests\")&&e instanceof ReadableStreamDefaultReader)}function K(e,t){const r=e._ownerReadableStream;r._disturbed=!0,\"closed\"===r._state?t._closeSteps():\"errored\"===r._state?t._errorSteps(r._storedError):r._readableStreamController[C](t)}function Z(e,t){const r=e._readRequests;e._readRequests=new v,r.forEach((e=>{e._errorSteps(t)}))}function ee(e){return new TypeError(`ReadableStreamDefaultReader.prototype.${e} can only be used on a ReadableStreamDefaultReader`)}var te,re,oe;function ne(e){return e.slice()}function ae(e,t,r,o,n){new Uint8Array(e).set(new Uint8Array(r,o,n),t)}Object.defineProperties(ReadableStreamDefaultReader.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),o(ReadableStreamDefaultReader.prototype.cancel,\"cancel\"),o(ReadableStreamDefaultReader.prototype.read,\"read\"),o(ReadableStreamDefaultReader.prototype.releaseLock,\"releaseLock\"),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(ReadableStreamDefaultReader.prototype,Symbol.toStringTag,{value:\"ReadableStreamDefaultReader\",configurable:!0});let ie=e=>(ie=\"function\"==typeof e.transfer?e=>e.transfer():\"function\"==typeof structuredClone?e=>structuredClone(e,{transfer:[e]}):e=>e,ie(e)),le=e=>(le=\"boolean\"==typeof e.detached?e=>e.detached:e=>0===e.byteLength,le(e));function se(e,t,r){if(e.slice)return e.slice(t,r);const o=r-t,n=new ArrayBuffer(o);return ae(n,0,e,t,o),n}function ue(e,t){const r=e[t];if(null!=r){if(\"function\"!=typeof r)throw new TypeError(`${String(t)} is not a function`);return r}}function ce(e){try{const t=e.done,r=e.value;return f(s(r),(e=>({done:t,value:e})))}catch(e){return d(e)}}const de=null!==(oe=null!==(te=Symbol.asyncIterator)&&void 0!==te?te:null===(re=Symbol.for)||void 0===re?void 0:re.call(Symbol,\"Symbol.asyncIterator\"))&&void 0!==oe?oe:\"@@asyncIterator\";function fe(e,r=\"sync\",o){if(void 0===o)if(\"async\"===r){if(void 0===(o=ue(e,de))){return function(e){const r={next(){let t;try{t=be(e)}catch(e){return d(e)}return ce(t)},return(r){let o;try{const t=ue(e.iterator,\"return\");if(void 0===t)return c({done:!0,value:r});o=S(t,e.iterator,[r])}catch(e){return d(e)}return t(o)?ce(o):d(new TypeError(\"The iterator.return() method must return an object\"))}};return{iterator:r,nextMethod:r.next,done:!1}}(fe(e,\"sync\",ue(e,Symbol.iterator)))}}else o=ue(e,Symbol.iterator);if(void 0===o)throw new TypeError(\"The object is not iterable\");const n=S(o,e,[]);if(!t(n))throw new TypeError(\"The iterator method must return an object\");return{iterator:n,nextMethod:n.next,done:!1}}function be(e){const r=S(e.nextMethod,e.iterator,[]);if(!t(r))throw new TypeError(\"The iterator.next() method must return an object\");return r}class he{constructor(e,t){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=e,this._preventCancel=t}next(){const e=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?_(this._ongoingPromise,e,e):e(),this._ongoingPromise}return(e){const t=()=>this._returnSteps(e);return this._ongoingPromise?_(this._ongoingPromise,t,t):t()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});const e=this._reader;let t,r;const o=u(((e,o)=>{t=e,r=o}));return K(e,{_chunkSteps:e=>{this._ongoingPromise=void 0,y((()=>t({value:e,done:!1})))},_closeSteps:()=>{this._ongoingPromise=void 0,this._isFinished=!0,W(e),t({value:void 0,done:!0})},_errorSteps:t=>{this._ongoingPromise=void 0,this._isFinished=!0,W(e),r(t)}}),o}_returnSteps(e){if(this._isFinished)return Promise.resolve({value:e,done:!0});this._isFinished=!0;const t=this._reader;if(!this._preventCancel){const r=E(t,e);return W(t),_(r,(()=>({value:e,done:!0})))}return W(t),c({value:e,done:!0})}}const me={next(){return _e(this)?this._asyncIteratorImpl.next():d(pe(\"next\"))},return(e){return _e(this)?this._asyncIteratorImpl.return(e):d(pe(\"return\"))},[de](){return this}};function _e(e){if(!t(e))return!1;if(!Object.prototype.hasOwnProperty.call(e,\"_asyncIteratorImpl\"))return!1;try{return e._asyncIteratorImpl instanceof he}catch(e){return!1}}function pe(e){return new TypeError(`ReadableStreamAsyncIterator.${e} can only be used on a ReadableSteamAsyncIterator`)}Object.defineProperty(me,de,{enumerable:!1});const ye=Number.isNaN||function(e){return e!=e};function Se(e){const t=se(e.buffer,e.byteOffset,e.byteOffset+e.byteLength);return new Uint8Array(t)}function ge(e){const t=e._queue.shift();return e._queueTotalSize-=t.size,e._queueTotalSize<0&&(e._queueTotalSize=0),t.value}function ve(e,t,r){if(\"number\"!=typeof(o=r)||ye(o)||o<0||r===1/0)throw new RangeError(\"Size must be a finite, non-NaN, non-negative number.\");var o;e._queue.push({value:t,size:r}),e._queueTotalSize+=r}function we(e){e._queue=new v,e._queueTotalSize=0}function Re(e){return e===DataView}class ReadableStreamBYOBRequest{constructor(){throw new TypeError(\"Illegal constructor\")}get view(){if(!Ce(this))throw Je(\"view\");return this._view}respond(e){if(!Ce(this))throw Je(\"respond\");if($(e,1,\"respond\"),e=Q(e,\"First parameter\"),void 0===this._associatedReadableByteStreamController)throw new TypeError(\"This BYOB request has been invalidated\");if(le(this._view.buffer))throw new TypeError(\"The BYOB request's buffer has been detached and so cannot be used as a response\");Ue(this._associatedReadableByteStreamController,e)}respondWithNewView(e){if(!Ce(this))throw Je(\"respondWithNewView\");if($(e,1,\"respondWithNewView\"),!ArrayBuffer.isView(e))throw new TypeError(\"You can only respond with array buffer views\");if(void 0===this._associatedReadableByteStreamController)throw new TypeError(\"This BYOB request has been invalidated\");if(le(e.buffer))throw new TypeError(\"The given view's buffer has been detached and so cannot be used as a response\");Ge(this._associatedReadableByteStreamController,e)}}Object.defineProperties(ReadableStreamBYOBRequest.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),o(ReadableStreamBYOBRequest.prototype.respond,\"respond\"),o(ReadableStreamBYOBRequest.prototype.respondWithNewView,\"respondWithNewView\"),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(ReadableStreamBYOBRequest.prototype,Symbol.toStringTag,{value:\"ReadableStreamBYOBRequest\",configurable:!0});class ReadableByteStreamController{constructor(){throw new TypeError(\"Illegal constructor\")}get byobRequest(){if(!Te(this))throw Ke(\"byobRequest\");return He(this)}get desiredSize(){if(!Te(this))throw Ke(\"desiredSize\");return Ve(this)}close(){if(!Te(this))throw Ke(\"close\");if(this._closeRequested)throw new TypeError(\"The stream has already been closed; do not close it again!\");const e=this._controlledReadableByteStream._state;if(\"readable\"!==e)throw new TypeError(`The stream (in ${e} state) is not in the readable state and cannot be closed`);Ye(this)}enqueue(e){if(!Te(this))throw Ke(\"enqueue\");if($(e,1,\"enqueue\"),!ArrayBuffer.isView(e))throw new TypeError(\"chunk must be an array buffer view\");if(0===e.byteLength)throw new TypeError(\"chunk must have non-zero byteLength\");if(0===e.buffer.byteLength)throw new TypeError(\"chunk's buffer must have non-zero byteLength\");if(this._closeRequested)throw new TypeError(\"stream is closed or draining\");const t=this._controlledReadableByteStream._state;if(\"readable\"!==t)throw new TypeError(`The stream (in ${t} state) is not in the readable state and cannot be enqueued to`);xe(this,e)}error(e=void 0){if(!Te(this))throw Ke(\"error\");Qe(this,e)}[T](e){qe(this),we(this);const t=this._cancelAlgorithm(e);return Me(this),t}[C](e){const t=this._controlledReadableByteStream;if(this._queueTotalSize>0)return void Ne(this,e);const r=this._autoAllocateChunkSize;if(void 0!==r){let t;try{t=new ArrayBuffer(r)}catch(t){return void e._errorSteps(t)}const o={buffer:t,bufferByteLength:r,byteOffset:0,byteLength:r,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:\"default\"};this._pendingPullIntos.push(o)}V(t,e),Pe(this)}[P](){if(this._pendingPullIntos.length>0){const e=this._pendingPullIntos.peek();e.readerType=\"none\",this._pendingPullIntos=new v,this._pendingPullIntos.push(e)}}}function Te(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_controlledReadableByteStream\")&&e instanceof ReadableByteStreamController)}function Ce(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_associatedReadableByteStreamController\")&&e instanceof ReadableStreamBYOBRequest)}function Pe(e){const t=function(e){const t=e._controlledReadableByteStream;if(\"readable\"!==t._state)return!1;if(e._closeRequested)return!1;if(!e._started)return!1;if(X(t)&&G(t)>0)return!0;if(ot(t)&&rt(t)>0)return!0;const r=Ve(e);if(r>0)return!0;return!1}(e);if(!t)return;if(e._pulling)return void(e._pullAgain=!0);e._pulling=!0;b(e._pullAlgorithm(),(()=>(e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,Pe(e)),null)),(t=>(Qe(e,t),null)))}function qe(e){De(e),e._pendingPullIntos=new v}function Ee(e,t){let r=!1;\"closed\"===e._state&&(r=!0);const o=We(t);\"default\"===t.readerType?U(e,o,r):function(e,t,r){const o=e._reader,n=o._readIntoRequests.shift();r?n._closeSteps(t):n._chunkSteps(t)}(e,o,r)}function We(e){const t=e.bytesFilled,r=e.elementSize;return new e.viewConstructor(e.buffer,e.byteOffset,t/r)}function Oe(e,t,r,o){e._queue.push({buffer:t,byteOffset:r,byteLength:o}),e._queueTotalSize+=o}function Be(e,t,r,o){let n;try{n=se(t,r,r+o)}catch(t){throw Qe(e,t),t}Oe(e,n,0,o)}function ke(e,t){t.bytesFilled>0&&Be(e,t.buffer,t.byteOffset,t.bytesFilled),$e(e)}function je(e,t){const r=Math.min(e._queueTotalSize,t.byteLength-t.bytesFilled),o=t.bytesFilled+r;let n=r,a=!1;const i=o-o%t.elementSize;i>=t.minimumFill&&(n=i-t.bytesFilled,a=!0);const l=e._queue;for(;n>0;){const r=l.peek(),o=Math.min(n,r.byteLength),a=t.byteOffset+t.bytesFilled;ae(t.buffer,a,r.buffer,r.byteOffset,o),r.byteLength===o?l.shift():(r.byteOffset+=o,r.byteLength-=o),e._queueTotalSize-=o,Ae(e,o,t),n-=o}return a}function Ae(e,t,r){r.bytesFilled+=t}function ze(e){0===e._queueTotalSize&&e._closeRequested?(Me(e),Br(e._controlledReadableByteStream)):Pe(e)}function De(e){null!==e._byobRequest&&(e._byobRequest._associatedReadableByteStreamController=void 0,e._byobRequest._view=null,e._byobRequest=null)}function Le(e){for(;e._pendingPullIntos.length>0;){if(0===e._queueTotalSize)return;const t=e._pendingPullIntos.peek();je(e,t)&&($e(e),Ee(e._controlledReadableByteStream,t))}}function Fe(e,t,r,o){const n=e._controlledReadableByteStream,a=t.constructor,i=function(e){return Re(e)?1:e.BYTES_PER_ELEMENT}(a),{byteOffset:l,byteLength:s}=t,u=r*i;let c;try{c=ie(t.buffer)}catch(e){return void o._errorSteps(e)}const d={buffer:c,bufferByteLength:c.byteLength,byteOffset:l,byteLength:s,bytesFilled:0,minimumFill:u,elementSize:i,viewConstructor:a,readerType:\"byob\"};if(e._pendingPullIntos.length>0)return e._pendingPullIntos.push(d),void tt(n,o);if(\"closed\"!==n._state){if(e._queueTotalSize>0){if(je(e,d)){const t=We(d);return ze(e),void o._chunkSteps(t)}if(e._closeRequested){const t=new TypeError(\"Insufficient bytes to fill elements in the given buffer\");return Qe(e,t),void o._errorSteps(t)}}e._pendingPullIntos.push(d),tt(n,o),Pe(e)}else{const e=new a(d.buffer,d.byteOffset,0);o._closeSteps(e)}}function Ie(e,t){const r=e._pendingPullIntos.peek();De(e);\"closed\"===e._controlledReadableByteStream._state?function(e,t){\"none\"===t.readerType&&$e(e);const r=e._controlledReadableByteStream;if(ot(r))for(;rt(r)>0;)Ee(r,$e(e))}(e,r):function(e,t,r){if(Ae(0,t,r),\"none\"===r.readerType)return ke(e,r),void Le(e);if(r.bytesFilled0){const t=r.byteOffset+r.bytesFilled;Be(e,r.buffer,t-o,o)}r.bytesFilled-=o,Ee(e._controlledReadableByteStream,r),Le(e)}(e,t,r),Pe(e)}function $e(e){return e._pendingPullIntos.shift()}function Me(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0}function Ye(e){const t=e._controlledReadableByteStream;if(!e._closeRequested&&\"readable\"===t._state)if(e._queueTotalSize>0)e._closeRequested=!0;else{if(e._pendingPullIntos.length>0){const t=e._pendingPullIntos.peek();if(t.bytesFilled%t.elementSize!=0){const t=new TypeError(\"Insufficient bytes to fill elements in the given buffer\");throw Qe(e,t),t}}Me(e),Br(t)}}function xe(e,t){const r=e._controlledReadableByteStream;if(e._closeRequested||\"readable\"!==r._state)return;const{buffer:o,byteOffset:n,byteLength:a}=t;if(le(o))throw new TypeError(\"chunk's buffer is detached and so cannot be enqueued\");const i=ie(o);if(e._pendingPullIntos.length>0){const t=e._pendingPullIntos.peek();if(le(t.buffer))throw new TypeError(\"The BYOB request's buffer has been detached and so cannot be filled with an enqueued chunk\");De(e),t.buffer=ie(t.buffer),\"none\"===t.readerType&&ke(e,t)}if(X(r))if(function(e){const t=e._controlledReadableByteStream._reader;for(;t._readRequests.length>0;){if(0===e._queueTotalSize)return;Ne(e,t._readRequests.shift())}}(e),0===G(r))Oe(e,i,n,a);else{e._pendingPullIntos.length>0&&$e(e);U(r,new Uint8Array(i,n,a),!1)}else ot(r)?(Oe(e,i,n,a),Le(e)):Oe(e,i,n,a);Pe(e)}function Qe(e,t){const r=e._controlledReadableByteStream;\"readable\"===r._state&&(qe(e),we(e),Me(e),kr(r,t))}function Ne(e,t){const r=e._queue.shift();e._queueTotalSize-=r.byteLength,ze(e);const o=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);t._chunkSteps(o)}function He(e){if(null===e._byobRequest&&e._pendingPullIntos.length>0){const t=e._pendingPullIntos.peek(),r=new Uint8Array(t.buffer,t.byteOffset+t.bytesFilled,t.byteLength-t.bytesFilled),o=Object.create(ReadableStreamBYOBRequest.prototype);!function(e,t,r){e._associatedReadableByteStreamController=t,e._view=r}(o,e,r),e._byobRequest=o}return e._byobRequest}function Ve(e){const t=e._controlledReadableByteStream._state;return\"errored\"===t?null:\"closed\"===t?0:e._strategyHWM-e._queueTotalSize}function Ue(e,t){const r=e._pendingPullIntos.peek();if(\"closed\"===e._controlledReadableByteStream._state){if(0!==t)throw new TypeError(\"bytesWritten must be 0 when calling respond() on a closed stream\")}else{if(0===t)throw new TypeError(\"bytesWritten must be greater than 0 when calling respond() on a readable stream\");if(r.bytesFilled+t>r.byteLength)throw new RangeError(\"bytesWritten out of range\")}r.buffer=ie(r.buffer),Ie(e,t)}function Ge(e,t){const r=e._pendingPullIntos.peek();if(\"closed\"===e._controlledReadableByteStream._state){if(0!==t.byteLength)throw new TypeError(\"The view's length must be 0 when calling respondWithNewView() on a closed stream\")}else if(0===t.byteLength)throw new TypeError(\"The view's length must be greater than 0 when calling respondWithNewView() on a readable stream\");if(r.byteOffset+r.bytesFilled!==t.byteOffset)throw new RangeError(\"The region specified by view does not match byobRequest\");if(r.bufferByteLength!==t.buffer.byteLength)throw new RangeError(\"The buffer of view has different capacity than byobRequest\");if(r.bytesFilled+t.byteLength>r.byteLength)throw new RangeError(\"The region specified by view is larger than byobRequest\");const o=t.byteLength;r.buffer=ie(t.buffer),Ie(e,o)}function Xe(e,t,r,o,n,a,i){t._controlledReadableByteStream=e,t._pullAgain=!1,t._pulling=!1,t._byobRequest=null,t._queue=t._queueTotalSize=void 0,we(t),t._closeRequested=!1,t._started=!1,t._strategyHWM=a,t._pullAlgorithm=o,t._cancelAlgorithm=n,t._autoAllocateChunkSize=i,t._pendingPullIntos=new v,e._readableStreamController=t;b(c(r()),(()=>(t._started=!0,Pe(t),null)),(e=>(Qe(t,e),null)))}function Je(e){return new TypeError(`ReadableStreamBYOBRequest.prototype.${e} can only be used on a ReadableStreamBYOBRequest`)}function Ke(e){return new TypeError(`ReadableByteStreamController.prototype.${e} can only be used on a ReadableByteStreamController`)}function Ze(e,t){if(\"byob\"!==(e=`${e}`))throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamReaderMode`);return e}function et(e){return new ReadableStreamBYOBReader(e)}function tt(e,t){e._reader._readIntoRequests.push(t)}function rt(e){return e._reader._readIntoRequests.length}function ot(e){const t=e._reader;return void 0!==t&&!!nt(t)}Object.defineProperties(ReadableByteStreamController.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),o(ReadableByteStreamController.prototype.close,\"close\"),o(ReadableByteStreamController.prototype.enqueue,\"enqueue\"),o(ReadableByteStreamController.prototype.error,\"error\"),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(ReadableByteStreamController.prototype,Symbol.toStringTag,{value:\"ReadableByteStreamController\",configurable:!0});class ReadableStreamBYOBReader{constructor(e){if($(e,1,\"ReadableStreamBYOBReader\"),N(e,\"First parameter\"),Wr(e))throw new TypeError(\"This stream has already been locked for exclusive reading by another reader\");if(!Te(e._readableStreamController))throw new TypeError(\"Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source\");q(this,e),this._readIntoRequests=new v}get closed(){return nt(this)?this._closedPromise:d(lt(\"closed\"))}cancel(e=void 0){return nt(this)?void 0===this._ownerReadableStream?d(O(\"cancel\")):E(this,e):d(lt(\"cancel\"))}read(e,t={}){if(!nt(this))return d(lt(\"read\"));if(!ArrayBuffer.isView(e))return d(new TypeError(\"view must be an array buffer view\"));if(0===e.byteLength)return d(new TypeError(\"view must have non-zero byteLength\"));if(0===e.buffer.byteLength)return d(new TypeError(\"view's buffer must have non-zero byteLength\"));if(le(e.buffer))return d(new TypeError(\"view's buffer has been detached\"));let r;try{r=function(e,t){var r;return L(e,t),{min:Q(null!==(r=null==e?void 0:e.min)&&void 0!==r?r:1,`${t} has member 'min' that`)}}(t,\"options\")}catch(e){return d(e)}const o=r.min;if(0===o)return d(new TypeError(\"options.min must be greater than 0\"));if(function(e){return Re(e.constructor)}(e)){if(o>e.byteLength)return d(new RangeError(\"options.min must be less than or equal to view's byteLength\"))}else if(o>e.length)return d(new RangeError(\"options.min must be less than or equal to view's length\"));if(void 0===this._ownerReadableStream)return d(O(\"read from\"));let n,a;const i=u(((e,t)=>{n=e,a=t}));return at(this,e,o,{_chunkSteps:e=>n({value:e,done:!1}),_closeSteps:e=>n({value:e,done:!0}),_errorSteps:e=>a(e)}),i}releaseLock(){if(!nt(this))throw lt(\"releaseLock\");void 0!==this._ownerReadableStream&&function(e){W(e);const t=new TypeError(\"Reader was released\");it(e,t)}(this)}}function nt(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_readIntoRequests\")&&e instanceof ReadableStreamBYOBReader)}function at(e,t,r,o){const n=e._ownerReadableStream;n._disturbed=!0,\"errored\"===n._state?o._errorSteps(n._storedError):Fe(n._readableStreamController,t,r,o)}function it(e,t){const r=e._readIntoRequests;e._readIntoRequests=new v,r.forEach((e=>{e._errorSteps(t)}))}function lt(e){return new TypeError(`ReadableStreamBYOBReader.prototype.${e} can only be used on a ReadableStreamBYOBReader`)}function st(e,t){const{highWaterMark:r}=e;if(void 0===r)return t;if(ye(r)||r<0)throw new RangeError(\"Invalid highWaterMark\");return r}function ut(e){const{size:t}=e;return t||(()=>1)}function ct(e,t){L(e,t);const r=null==e?void 0:e.highWaterMark,o=null==e?void 0:e.size;return{highWaterMark:void 0===r?void 0:Y(r),size:void 0===o?void 0:dt(o,`${t} has member 'size' that`)}}function dt(e,t){return F(e,t),t=>Y(e(t))}function ft(e,t,r){return F(e,r),r=>g(e,t,[r])}function bt(e,t,r){return F(e,r),()=>g(e,t,[])}function ht(e,t,r){return F(e,r),r=>S(e,t,[r])}function mt(e,t,r){return F(e,r),(r,o)=>g(e,t,[r,o])}function _t(e,t){if(!gt(e))throw new TypeError(`${t} is not a WritableStream.`)}Object.defineProperties(ReadableStreamBYOBReader.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),o(ReadableStreamBYOBReader.prototype.cancel,\"cancel\"),o(ReadableStreamBYOBReader.prototype.read,\"read\"),o(ReadableStreamBYOBReader.prototype.releaseLock,\"releaseLock\"),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(ReadableStreamBYOBReader.prototype,Symbol.toStringTag,{value:\"ReadableStreamBYOBReader\",configurable:!0});const pt=\"function\"==typeof AbortController;class WritableStream{constructor(e={},t={}){void 0===e?e=null:I(e,\"First parameter\");const r=ct(t,\"Second parameter\"),o=function(e,t){L(e,t);const r=null==e?void 0:e.abort,o=null==e?void 0:e.close,n=null==e?void 0:e.start,a=null==e?void 0:e.type,i=null==e?void 0:e.write;return{abort:void 0===r?void 0:ft(r,e,`${t} has member 'abort' that`),close:void 0===o?void 0:bt(o,e,`${t} has member 'close' that`),start:void 0===n?void 0:ht(n,e,`${t} has member 'start' that`),write:void 0===i?void 0:mt(i,e,`${t} has member 'write' that`),type:a}}(e,\"First parameter\");St(this);if(void 0!==o.type)throw new RangeError(\"Invalid type is specified\");const n=ut(r);!function(e,t,r,o){const n=Object.create(WritableStreamDefaultController.prototype);let a,i,l,s;a=void 0!==t.start?()=>t.start(n):()=>{};i=void 0!==t.write?e=>t.write(e,n):()=>c(void 0);l=void 0!==t.close?()=>t.close():()=>c(void 0);s=void 0!==t.abort?e=>t.abort(e):()=>c(void 0);Ft(e,n,a,i,l,s,r,o)}(this,o,st(r,1),n)}get locked(){if(!gt(this))throw Nt(\"locked\");return vt(this)}abort(e=void 0){return gt(this)?vt(this)?d(new TypeError(\"Cannot abort a stream that already has a writer\")):wt(this,e):d(Nt(\"abort\"))}close(){return gt(this)?vt(this)?d(new TypeError(\"Cannot close a stream that already has a writer\")):qt(this)?d(new TypeError(\"Cannot close an already-closing stream\")):Rt(this):d(Nt(\"close\"))}getWriter(){if(!gt(this))throw Nt(\"getWriter\");return yt(this)}}function yt(e){return new WritableStreamDefaultWriter(e)}function St(e){e._state=\"writable\",e._storedError=void 0,e._writer=void 0,e._writableStreamController=void 0,e._writeRequests=new v,e._inFlightWriteRequest=void 0,e._closeRequest=void 0,e._inFlightCloseRequest=void 0,e._pendingAbortRequest=void 0,e._backpressure=!1}function gt(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_writableStreamController\")&&e instanceof WritableStream)}function vt(e){return void 0!==e._writer}function wt(e,t){var r;if(\"closed\"===e._state||\"errored\"===e._state)return c(void 0);e._writableStreamController._abortReason=t,null===(r=e._writableStreamController._abortController)||void 0===r||r.abort(t);const o=e._state;if(\"closed\"===o||\"errored\"===o)return c(void 0);if(void 0!==e._pendingAbortRequest)return e._pendingAbortRequest._promise;let n=!1;\"erroring\"===o&&(n=!0,t=void 0);const a=u(((r,o)=>{e._pendingAbortRequest={_promise:void 0,_resolve:r,_reject:o,_reason:t,_wasAlreadyErroring:n}}));return e._pendingAbortRequest._promise=a,n||Ct(e,t),a}function Rt(e){const t=e._state;if(\"closed\"===t||\"errored\"===t)return d(new TypeError(`The stream (in ${t} state) is not in the writable state and cannot be closed`));const r=u(((t,r)=>{const o={_resolve:t,_reject:r};e._closeRequest=o})),o=e._writer;var n;return void 0!==o&&e._backpressure&&\"writable\"===t&&or(o),ve(n=e._writableStreamController,Dt,0),Mt(n),r}function Tt(e,t){\"writable\"!==e._state?Pt(e):Ct(e,t)}function Ct(e,t){const r=e._writableStreamController;e._state=\"erroring\",e._storedError=t;const o=e._writer;void 0!==o&&jt(o,t),!function(e){if(void 0===e._inFlightWriteRequest&&void 0===e._inFlightCloseRequest)return!1;return!0}(e)&&r._started&&Pt(e)}function Pt(e){e._state=\"errored\",e._writableStreamController[R]();const t=e._storedError;if(e._writeRequests.forEach((e=>{e._reject(t)})),e._writeRequests=new v,void 0===e._pendingAbortRequest)return void Et(e);const r=e._pendingAbortRequest;if(e._pendingAbortRequest=void 0,r._wasAlreadyErroring)return r._reject(t),void Et(e);b(e._writableStreamController[w](r._reason),(()=>(r._resolve(),Et(e),null)),(t=>(r._reject(t),Et(e),null)))}function qt(e){return void 0!==e._closeRequest||void 0!==e._inFlightCloseRequest}function Et(e){void 0!==e._closeRequest&&(e._closeRequest._reject(e._storedError),e._closeRequest=void 0);const t=e._writer;void 0!==t&&Jt(t,e._storedError)}function Wt(e,t){const r=e._writer;void 0!==r&&t!==e._backpressure&&(t?function(e){Zt(e)}(r):or(r)),e._backpressure=t}Object.defineProperties(WritableStream.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),o(WritableStream.prototype.abort,\"abort\"),o(WritableStream.prototype.close,\"close\"),o(WritableStream.prototype.getWriter,\"getWriter\"),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(WritableStream.prototype,Symbol.toStringTag,{value:\"WritableStream\",configurable:!0});class WritableStreamDefaultWriter{constructor(e){if($(e,1,\"WritableStreamDefaultWriter\"),_t(e,\"First parameter\"),vt(e))throw new TypeError(\"This stream has already been locked for exclusive writing by another writer\");this._ownerWritableStream=e,e._writer=this;const t=e._state;if(\"writable\"===t)!qt(e)&&e._backpressure?Zt(this):tr(this),Gt(this);else if(\"erroring\"===t)er(this,e._storedError),Gt(this);else if(\"closed\"===t)tr(this),Gt(r=this),Kt(r);else{const t=e._storedError;er(this,t),Xt(this,t)}var r}get closed(){return Ot(this)?this._closedPromise:d(Vt(\"closed\"))}get desiredSize(){if(!Ot(this))throw Vt(\"desiredSize\");if(void 0===this._ownerWritableStream)throw Ut(\"desiredSize\");return function(e){const t=e._ownerWritableStream,r=t._state;if(\"errored\"===r||\"erroring\"===r)return null;if(\"closed\"===r)return 0;return $t(t._writableStreamController)}(this)}get ready(){return Ot(this)?this._readyPromise:d(Vt(\"ready\"))}abort(e=void 0){return Ot(this)?void 0===this._ownerWritableStream?d(Ut(\"abort\")):function(e,t){return wt(e._ownerWritableStream,t)}(this,e):d(Vt(\"abort\"))}close(){if(!Ot(this))return d(Vt(\"close\"));const e=this._ownerWritableStream;return void 0===e?d(Ut(\"close\")):qt(e)?d(new TypeError(\"Cannot close an already-closing stream\")):Bt(this)}releaseLock(){if(!Ot(this))throw Vt(\"releaseLock\");void 0!==this._ownerWritableStream&&At(this)}write(e=void 0){return Ot(this)?void 0===this._ownerWritableStream?d(Ut(\"write to\")):zt(this,e):d(Vt(\"write\"))}}function Ot(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_ownerWritableStream\")&&e instanceof WritableStreamDefaultWriter)}function Bt(e){return Rt(e._ownerWritableStream)}function kt(e,t){\"pending\"===e._closedPromiseState?Jt(e,t):function(e,t){Xt(e,t)}(e,t)}function jt(e,t){\"pending\"===e._readyPromiseState?rr(e,t):function(e,t){er(e,t)}(e,t)}function At(e){const t=e._ownerWritableStream,r=new TypeError(\"Writer was released and can no longer be used to monitor the stream's closedness\");jt(e,r),kt(e,r),t._writer=void 0,e._ownerWritableStream=void 0}function zt(e,t){const r=e._ownerWritableStream,o=r._writableStreamController,n=function(e,t){try{return e._strategySizeAlgorithm(t)}catch(t){return Yt(e,t),1}}(o,t);if(r!==e._ownerWritableStream)return d(Ut(\"write to\"));const a=r._state;if(\"errored\"===a)return d(r._storedError);if(qt(r)||\"closed\"===a)return d(new TypeError(\"The stream is closing or closed and cannot be written to\"));if(\"erroring\"===a)return d(r._storedError);const i=function(e){return u(((t,r)=>{const o={_resolve:t,_reject:r};e._writeRequests.push(o)}))}(r);return function(e,t,r){try{ve(e,t,r)}catch(t){return void Yt(e,t)}const o=e._controlledWritableStream;if(!qt(o)&&\"writable\"===o._state){Wt(o,xt(e))}Mt(e)}(o,t,n),i}Object.defineProperties(WritableStreamDefaultWriter.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),o(WritableStreamDefaultWriter.prototype.abort,\"abort\"),o(WritableStreamDefaultWriter.prototype.close,\"close\"),o(WritableStreamDefaultWriter.prototype.releaseLock,\"releaseLock\"),o(WritableStreamDefaultWriter.prototype.write,\"write\"),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(WritableStreamDefaultWriter.prototype,Symbol.toStringTag,{value:\"WritableStreamDefaultWriter\",configurable:!0});const Dt={};class WritableStreamDefaultController{constructor(){throw new TypeError(\"Illegal constructor\")}get abortReason(){if(!Lt(this))throw Ht(\"abortReason\");return this._abortReason}get signal(){if(!Lt(this))throw Ht(\"signal\");if(void 0===this._abortController)throw new TypeError(\"WritableStreamDefaultController.prototype.signal is not supported\");return this._abortController.signal}error(e=void 0){if(!Lt(this))throw Ht(\"error\");\"writable\"===this._controlledWritableStream._state&&Qt(this,e)}[w](e){const t=this._abortAlgorithm(e);return It(this),t}[R](){we(this)}}function Lt(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_controlledWritableStream\")&&e instanceof WritableStreamDefaultController)}function Ft(e,t,r,o,n,a,i,l){t._controlledWritableStream=e,e._writableStreamController=t,t._queue=void 0,t._queueTotalSize=void 0,we(t),t._abortReason=void 0,t._abortController=function(){if(pt)return new AbortController}(),t._started=!1,t._strategySizeAlgorithm=l,t._strategyHWM=i,t._writeAlgorithm=o,t._closeAlgorithm=n,t._abortAlgorithm=a;const s=xt(t);Wt(e,s);b(c(r()),(()=>(t._started=!0,Mt(t),null)),(r=>(t._started=!0,Tt(e,r),null)))}function It(e){e._writeAlgorithm=void 0,e._closeAlgorithm=void 0,e._abortAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function $t(e){return e._strategyHWM-e._queueTotalSize}function Mt(e){const t=e._controlledWritableStream;if(!e._started)return;if(void 0!==t._inFlightWriteRequest)return;if(\"erroring\"===t._state)return void Pt(t);if(0===e._queue.length)return;const r=e._queue.peek().value;r===Dt?function(e){const t=e._controlledWritableStream;(function(e){e._inFlightCloseRequest=e._closeRequest,e._closeRequest=void 0})(t),ge(e);const r=e._closeAlgorithm();It(e),b(r,(()=>(function(e){e._inFlightCloseRequest._resolve(void 0),e._inFlightCloseRequest=void 0,\"erroring\"===e._state&&(e._storedError=void 0,void 0!==e._pendingAbortRequest&&(e._pendingAbortRequest._resolve(),e._pendingAbortRequest=void 0)),e._state=\"closed\";const t=e._writer;void 0!==t&&Kt(t)}(t),null)),(e=>(function(e,t){e._inFlightCloseRequest._reject(t),e._inFlightCloseRequest=void 0,void 0!==e._pendingAbortRequest&&(e._pendingAbortRequest._reject(t),e._pendingAbortRequest=void 0),Tt(e,t)}(t,e),null)))}(e):function(e,t){const r=e._controlledWritableStream;!function(e){e._inFlightWriteRequest=e._writeRequests.shift()}(r);const o=e._writeAlgorithm(t);b(o,(()=>{!function(e){e._inFlightWriteRequest._resolve(void 0),e._inFlightWriteRequest=void 0}(r);const t=r._state;if(ge(e),!qt(r)&&\"writable\"===t){const t=xt(e);Wt(r,t)}return Mt(e),null}),(t=>(\"writable\"===r._state&&It(e),function(e,t){e._inFlightWriteRequest._reject(t),e._inFlightWriteRequest=void 0,Tt(e,t)}(r,t),null)))}(e,r)}function Yt(e,t){\"writable\"===e._controlledWritableStream._state&&Qt(e,t)}function xt(e){return $t(e)<=0}function Qt(e,t){const r=e._controlledWritableStream;It(e),Ct(r,t)}function Nt(e){return new TypeError(`WritableStream.prototype.${e} can only be used on a WritableStream`)}function Ht(e){return new TypeError(`WritableStreamDefaultController.prototype.${e} can only be used on a WritableStreamDefaultController`)}function Vt(e){return new TypeError(`WritableStreamDefaultWriter.prototype.${e} can only be used on a WritableStreamDefaultWriter`)}function Ut(e){return new TypeError(\"Cannot \"+e+\" a stream using a released writer\")}function Gt(e){e._closedPromise=u(((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r,e._closedPromiseState=\"pending\"}))}function Xt(e,t){Gt(e),Jt(e,t)}function Jt(e,t){void 0!==e._closedPromise_reject&&(p(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState=\"rejected\")}function Kt(e){void 0!==e._closedPromise_resolve&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState=\"resolved\")}function Zt(e){e._readyPromise=u(((t,r)=>{e._readyPromise_resolve=t,e._readyPromise_reject=r})),e._readyPromiseState=\"pending\"}function er(e,t){Zt(e),rr(e,t)}function tr(e){Zt(e),or(e)}function rr(e,t){void 0!==e._readyPromise_reject&&(p(e._readyPromise),e._readyPromise_reject(t),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState=\"rejected\")}function or(e){void 0!==e._readyPromise_resolve&&(e._readyPromise_resolve(void 0),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState=\"fulfilled\")}Object.defineProperties(WritableStreamDefaultController.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(WritableStreamDefaultController.prototype,Symbol.toStringTag,{value:\"WritableStreamDefaultController\",configurable:!0});const nr=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof global?global:void 0;const ar=function(){const e=null==nr?void 0:nr.DOMException;return function(e){if(\"function\"!=typeof e&&\"object\"!=typeof e)return!1;if(\"DOMException\"!==e.name)return!1;try{return new e,!0}catch(e){return!1}}(e)?e:void 0}()||function(){const e=function(e,t){this.message=e||\"\",this.name=t||\"Error\",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return o(e,\"DOMException\"),e.prototype=Object.create(Error.prototype),Object.defineProperty(e.prototype,\"constructor\",{value:e,writable:!0,configurable:!0}),e}();function ir(t,r,o,n,a,i){const l=H(t),s=yt(r);t._disturbed=!0;let _=!1,y=c(void 0);return u(((S,g)=>{let v;if(void 0!==i){if(v=()=>{const e=void 0!==i.reason?i.reason:new ar(\"Aborted\",\"AbortError\"),o=[];n||o.push((()=>\"writable\"===r._state?wt(r,e):c(void 0))),a||o.push((()=>\"readable\"===t._state?Or(t,e):c(void 0))),q((()=>Promise.all(o.map((e=>e())))),!0,e)},i.aborted)return void v();i.addEventListener(\"abort\",v)}var w,R,T;if(P(t,l._closedPromise,(e=>(n?E(!0,e):q((()=>wt(r,e)),!0,e),null))),P(r,s._closedPromise,(e=>(a?E(!0,e):q((()=>Or(t,e)),!0,e),null))),w=t,R=l._closedPromise,T=()=>(o?E():q((()=>function(e){const t=e._ownerWritableStream,r=t._state;return qt(t)||\"closed\"===r?c(void 0):\"errored\"===r?d(t._storedError):Bt(e)}(s))),null),\"closed\"===w._state?T():h(R,T),qt(r)||\"closed\"===r._state){const e=new TypeError(\"the destination writable stream closed before all data could be piped to it\");a?E(!0,e):q((()=>Or(t,e)),!0,e)}function C(){const e=y;return f(y,(()=>e!==y?C():void 0))}function P(e,t,r){\"errored\"===e._state?r(e._storedError):m(t,r)}function q(e,t,o){function n(){return b(e(),(()=>O(t,o)),(e=>O(!0,e))),null}_||(_=!0,\"writable\"!==r._state||qt(r)?n():h(C(),n))}function E(e,t){_||(_=!0,\"writable\"!==r._state||qt(r)?O(e,t):h(C(),(()=>O(e,t))))}function O(e,t){return At(s),W(l),void 0!==i&&i.removeEventListener(\"abort\",v),e?g(t):S(void 0),null}p(u(((t,r)=>{!function o(n){n?t():f(_?c(!0):f(s._readyPromise,(()=>u(((t,r)=>{K(l,{_chunkSteps:r=>{y=f(zt(s,r),void 0,e),t(!1)},_closeSteps:()=>t(!0),_errorSteps:r})})))),o,r)}(!1)})))}))}class ReadableStreamDefaultController{constructor(){throw new TypeError(\"Illegal constructor\")}get desiredSize(){if(!lr(this))throw pr(\"desiredSize\");return hr(this)}close(){if(!lr(this))throw pr(\"close\");if(!mr(this))throw new TypeError(\"The stream is not in a state that permits close\");dr(this)}enqueue(e=void 0){if(!lr(this))throw pr(\"enqueue\");if(!mr(this))throw new TypeError(\"The stream is not in a state that permits enqueue\");return fr(this,e)}error(e=void 0){if(!lr(this))throw pr(\"error\");br(this,e)}[T](e){we(this);const t=this._cancelAlgorithm(e);return cr(this),t}[C](e){const t=this._controlledReadableStream;if(this._queue.length>0){const r=ge(this);this._closeRequested&&0===this._queue.length?(cr(this),Br(t)):sr(this),e._chunkSteps(r)}else V(t,e),sr(this)}[P](){}}function lr(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_controlledReadableStream\")&&e instanceof ReadableStreamDefaultController)}function sr(e){if(!ur(e))return;if(e._pulling)return void(e._pullAgain=!0);e._pulling=!0;b(e._pullAlgorithm(),(()=>(e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,sr(e)),null)),(t=>(br(e,t),null)))}function ur(e){const t=e._controlledReadableStream;if(!mr(e))return!1;if(!e._started)return!1;if(Wr(t)&&G(t)>0)return!0;return hr(e)>0}function cr(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function dr(e){if(!mr(e))return;const t=e._controlledReadableStream;e._closeRequested=!0,0===e._queue.length&&(cr(e),Br(t))}function fr(e,t){if(!mr(e))return;const r=e._controlledReadableStream;if(Wr(r)&&G(r)>0)U(r,t,!1);else{let r;try{r=e._strategySizeAlgorithm(t)}catch(t){throw br(e,t),t}try{ve(e,t,r)}catch(t){throw br(e,t),t}}sr(e)}function br(e,t){const r=e._controlledReadableStream;\"readable\"===r._state&&(we(e),cr(e),kr(r,t))}function hr(e){const t=e._controlledReadableStream._state;return\"errored\"===t?null:\"closed\"===t?0:e._strategyHWM-e._queueTotalSize}function mr(e){const t=e._controlledReadableStream._state;return!e._closeRequested&&\"readable\"===t}function _r(e,t,r,o,n,a,i){t._controlledReadableStream=e,t._queue=void 0,t._queueTotalSize=void 0,we(t),t._started=!1,t._closeRequested=!1,t._pullAgain=!1,t._pulling=!1,t._strategySizeAlgorithm=i,t._strategyHWM=a,t._pullAlgorithm=o,t._cancelAlgorithm=n,e._readableStreamController=t;b(c(r()),(()=>(t._started=!0,sr(t),null)),(e=>(br(t,e),null)))}function pr(e){return new TypeError(`ReadableStreamDefaultController.prototype.${e} can only be used on a ReadableStreamDefaultController`)}function yr(e,t){return Te(e._readableStreamController)?function(e){let t,r,o,n,a,i=H(e),l=!1,s=!1,d=!1,f=!1,b=!1;const h=u((e=>{a=e}));function _(e){m(e._closedPromise,(t=>(e!==i||(Qe(o._readableStreamController,t),Qe(n._readableStreamController,t),f&&b||a(void 0)),null)))}function p(){nt(i)&&(W(i),i=H(e),_(i));K(i,{_chunkSteps:t=>{y((()=>{s=!1,d=!1;const r=t;let i=t;if(!f&&!b)try{i=Se(t)}catch(t){return Qe(o._readableStreamController,t),Qe(n._readableStreamController,t),void a(Or(e,t))}f||xe(o._readableStreamController,r),b||xe(n._readableStreamController,i),l=!1,s?g():d&&v()}))},_closeSteps:()=>{l=!1,f||Ye(o._readableStreamController),b||Ye(n._readableStreamController),o._readableStreamController._pendingPullIntos.length>0&&Ue(o._readableStreamController,0),n._readableStreamController._pendingPullIntos.length>0&&Ue(n._readableStreamController,0),f&&b||a(void 0)},_errorSteps:()=>{l=!1}})}function S(t,r){J(i)&&(W(i),i=et(e),_(i));const u=r?n:o,c=r?o:n;at(i,t,1,{_chunkSteps:t=>{y((()=>{s=!1,d=!1;const o=r?b:f;if(r?f:b)o||Ge(u._readableStreamController,t);else{let r;try{r=Se(t)}catch(t){return Qe(u._readableStreamController,t),Qe(c._readableStreamController,t),void a(Or(e,t))}o||Ge(u._readableStreamController,t),xe(c._readableStreamController,r)}l=!1,s?g():d&&v()}))},_closeSteps:e=>{l=!1;const t=r?b:f,o=r?f:b;t||Ye(u._readableStreamController),o||Ye(c._readableStreamController),void 0!==e&&(t||Ge(u._readableStreamController,e),!o&&c._readableStreamController._pendingPullIntos.length>0&&Ue(c._readableStreamController,0)),t&&o||a(void 0)},_errorSteps:()=>{l=!1}})}function g(){if(l)return s=!0,c(void 0);l=!0;const e=He(o._readableStreamController);return null===e?p():S(e._view,!1),c(void 0)}function v(){if(l)return d=!0,c(void 0);l=!0;const e=He(n._readableStreamController);return null===e?p():S(e._view,!0),c(void 0)}function w(o){if(f=!0,t=o,b){const o=ne([t,r]),n=Or(e,o);a(n)}return h}function R(o){if(b=!0,r=o,f){const o=ne([t,r]),n=Or(e,o);a(n)}return h}function T(){}return o=Pr(T,g,w),n=Pr(T,v,R),_(i),[o,n]}(e):function(e,t){const r=H(e);let o,n,a,i,l,s=!1,d=!1,f=!1,b=!1;const h=u((e=>{l=e}));function _(){if(s)return d=!0,c(void 0);s=!0;return K(r,{_chunkSteps:e=>{y((()=>{d=!1;const t=e,r=e;f||fr(a._readableStreamController,t),b||fr(i._readableStreamController,r),s=!1,d&&_()}))},_closeSteps:()=>{s=!1,f||dr(a._readableStreamController),b||dr(i._readableStreamController),f&&b||l(void 0)},_errorSteps:()=>{s=!1}}),c(void 0)}function p(t){if(f=!0,o=t,b){const t=ne([o,n]),r=Or(e,t);l(r)}return h}function S(t){if(b=!0,n=t,f){const t=ne([o,n]),r=Or(e,t);l(r)}return h}function g(){}return a=Cr(g,_,p),i=Cr(g,_,S),m(r._closedPromise,(e=>(br(a._readableStreamController,e),br(i._readableStreamController,e),f&&b||l(void 0),null))),[a,i]}(e)}function Sr(r){return t(o=r)&&void 0!==o.getReader?function(r){let o;function n(){let e;try{e=r.read()}catch(e){return d(e)}return _(e,(e=>{if(!t(e))throw new TypeError(\"The promise returned by the reader.read() method must fulfill with an object\");if(e.done)dr(o._readableStreamController);else{const t=e.value;fr(o._readableStreamController,t)}}))}function a(e){try{return c(r.cancel(e))}catch(e){return d(e)}}return o=Cr(e,n,a,0),o}(r.getReader()):function(r){let o;const n=fe(r,\"async\");function a(){let e;try{e=be(n)}catch(e){return d(e)}return _(c(e),(e=>{if(!t(e))throw new TypeError(\"The promise returned by the iterator.next() method must fulfill with an object\");if(e.done)dr(o._readableStreamController);else{const t=e.value;fr(o._readableStreamController,t)}}))}function i(e){const r=n.iterator;let o;try{o=ue(r,\"return\")}catch(e){return d(e)}if(void 0===o)return c(void 0);return _(g(o,r,[e]),(e=>{if(!t(e))throw new TypeError(\"The promise returned by the iterator.return() method must fulfill with an object\")}))}return o=Cr(e,a,i,0),o}(r);var o}function gr(e,t,r){return F(e,r),r=>g(e,t,[r])}function vr(e,t,r){return F(e,r),r=>g(e,t,[r])}function wr(e,t,r){return F(e,r),r=>S(e,t,[r])}function Rr(e,t){if(\"bytes\"!==(e=`${e}`))throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamType`);return e}function Tr(e,t){L(e,t);const r=null==e?void 0:e.preventAbort,o=null==e?void 0:e.preventCancel,n=null==e?void 0:e.preventClose,a=null==e?void 0:e.signal;return void 0!==a&&function(e,t){if(!function(e){if(\"object\"!=typeof e||null===e)return!1;try{return\"boolean\"==typeof e.aborted}catch(e){return!1}}(e))throw new TypeError(`${t} is not an AbortSignal.`)}(a,`${t} has member 'signal' that`),{preventAbort:Boolean(r),preventCancel:Boolean(o),preventClose:Boolean(n),signal:a}}Object.defineProperties(ReadableStreamDefaultController.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),o(ReadableStreamDefaultController.prototype.close,\"close\"),o(ReadableStreamDefaultController.prototype.enqueue,\"enqueue\"),o(ReadableStreamDefaultController.prototype.error,\"error\"),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(ReadableStreamDefaultController.prototype,Symbol.toStringTag,{value:\"ReadableStreamDefaultController\",configurable:!0});class ReadableStream{constructor(e={},t={}){void 0===e?e=null:I(e,\"First parameter\");const r=ct(t,\"Second parameter\"),o=function(e,t){L(e,t);const r=e,o=null==r?void 0:r.autoAllocateChunkSize,n=null==r?void 0:r.cancel,a=null==r?void 0:r.pull,i=null==r?void 0:r.start,l=null==r?void 0:r.type;return{autoAllocateChunkSize:void 0===o?void 0:Q(o,`${t} has member 'autoAllocateChunkSize' that`),cancel:void 0===n?void 0:gr(n,r,`${t} has member 'cancel' that`),pull:void 0===a?void 0:vr(a,r,`${t} has member 'pull' that`),start:void 0===i?void 0:wr(i,r,`${t} has member 'start' that`),type:void 0===l?void 0:Rr(l,`${t} has member 'type' that`)}}(e,\"First parameter\");if(qr(this),\"bytes\"===o.type){if(void 0!==r.size)throw new RangeError(\"The strategy for a byte stream cannot have a size function\");!function(e,t,r){const o=Object.create(ReadableByteStreamController.prototype);let n,a,i;n=void 0!==t.start?()=>t.start(o):()=>{},a=void 0!==t.pull?()=>t.pull(o):()=>c(void 0),i=void 0!==t.cancel?e=>t.cancel(e):()=>c(void 0);const l=t.autoAllocateChunkSize;if(0===l)throw new TypeError(\"autoAllocateChunkSize must be greater than 0\");Xe(e,o,n,a,i,r,l)}(this,o,st(r,0))}else{const e=ut(r);!function(e,t,r,o){const n=Object.create(ReadableStreamDefaultController.prototype);let a,i,l;a=void 0!==t.start?()=>t.start(n):()=>{},i=void 0!==t.pull?()=>t.pull(n):()=>c(void 0),l=void 0!==t.cancel?e=>t.cancel(e):()=>c(void 0),_r(e,n,a,i,l,r,o)}(this,o,st(r,1),e)}}get locked(){if(!Er(this))throw jr(\"locked\");return Wr(this)}cancel(e=void 0){return Er(this)?Wr(this)?d(new TypeError(\"Cannot cancel a stream that already has a reader\")):Or(this,e):d(jr(\"cancel\"))}getReader(e=void 0){if(!Er(this))throw jr(\"getReader\");return void 0===function(e,t){L(e,t);const r=null==e?void 0:e.mode;return{mode:void 0===r?void 0:Ze(r,`${t} has member 'mode' that`)}}(e,\"First parameter\").mode?H(this):et(this)}pipeThrough(e,t={}){if(!Er(this))throw jr(\"pipeThrough\");$(e,1,\"pipeThrough\");const r=function(e,t){L(e,t);const r=null==e?void 0:e.readable;M(r,\"readable\",\"ReadableWritablePair\"),N(r,`${t} has member 'readable' that`);const o=null==e?void 0:e.writable;return M(o,\"writable\",\"ReadableWritablePair\"),_t(o,`${t} has member 'writable' that`),{readable:r,writable:o}}(e,\"First parameter\"),o=Tr(t,\"Second parameter\");if(Wr(this))throw new TypeError(\"ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream\");if(vt(r.writable))throw new TypeError(\"ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream\");return p(ir(this,r.writable,o.preventClose,o.preventAbort,o.preventCancel,o.signal)),r.readable}pipeTo(e,t={}){if(!Er(this))return d(jr(\"pipeTo\"));if(void 0===e)return d(\"Parameter 1 is required in 'pipeTo'.\");if(!gt(e))return d(new TypeError(\"ReadableStream.prototype.pipeTo's first argument must be a WritableStream\"));let r;try{r=Tr(t,\"Second parameter\")}catch(e){return d(e)}return Wr(this)?d(new TypeError(\"ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream\")):vt(e)?d(new TypeError(\"ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream\")):ir(this,e,r.preventClose,r.preventAbort,r.preventCancel,r.signal)}tee(){if(!Er(this))throw jr(\"tee\");return ne(yr(this))}values(e=void 0){if(!Er(this))throw jr(\"values\");return function(e,t){const r=H(e),o=new he(r,t),n=Object.create(me);return n._asyncIteratorImpl=o,n}(this,function(e,t){L(e,t);const r=null==e?void 0:e.preventCancel;return{preventCancel:Boolean(r)}}(e,\"First parameter\").preventCancel)}[de](e){return this.values(e)}static from(e){return Sr(e)}}function Cr(e,t,r,o=1,n=(()=>1)){const a=Object.create(ReadableStream.prototype);qr(a);return _r(a,Object.create(ReadableStreamDefaultController.prototype),e,t,r,o,n),a}function Pr(e,t,r){const o=Object.create(ReadableStream.prototype);qr(o);return Xe(o,Object.create(ReadableByteStreamController.prototype),e,t,r,0,void 0),o}function qr(e){e._state=\"readable\",e._reader=void 0,e._storedError=void 0,e._disturbed=!1}function Er(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_readableStreamController\")&&e instanceof ReadableStream)}function Wr(e){return void 0!==e._reader}function Or(t,r){if(t._disturbed=!0,\"closed\"===t._state)return c(void 0);if(\"errored\"===t._state)return d(t._storedError);Br(t);const o=t._reader;if(void 0!==o&&nt(o)){const e=o._readIntoRequests;o._readIntoRequests=new v,e.forEach((e=>{e._closeSteps(void 0)}))}return _(t._readableStreamController[T](r),e)}function Br(e){e._state=\"closed\";const t=e._reader;if(void 0!==t&&(A(t),J(t))){const e=t._readRequests;t._readRequests=new v,e.forEach((e=>{e._closeSteps()}))}}function kr(e,t){e._state=\"errored\",e._storedError=t;const r=e._reader;void 0!==r&&(j(r,t),J(r)?Z(r,t):it(r,t))}function jr(e){return new TypeError(`ReadableStream.prototype.${e} can only be used on a ReadableStream`)}function Ar(e,t){L(e,t);const r=null==e?void 0:e.highWaterMark;return M(r,\"highWaterMark\",\"QueuingStrategyInit\"),{highWaterMark:Y(r)}}Object.defineProperties(ReadableStream,{from:{enumerable:!0}}),Object.defineProperties(ReadableStream.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),o(ReadableStream.from,\"from\"),o(ReadableStream.prototype.cancel,\"cancel\"),o(ReadableStream.prototype.getReader,\"getReader\"),o(ReadableStream.prototype.pipeThrough,\"pipeThrough\"),o(ReadableStream.prototype.pipeTo,\"pipeTo\"),o(ReadableStream.prototype.tee,\"tee\"),o(ReadableStream.prototype.values,\"values\"),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(ReadableStream.prototype,Symbol.toStringTag,{value:\"ReadableStream\",configurable:!0}),Object.defineProperty(ReadableStream.prototype,de,{value:ReadableStream.prototype.values,writable:!0,configurable:!0});const zr=e=>e.byteLength;o(zr,\"size\");class ByteLengthQueuingStrategy{constructor(e){$(e,1,\"ByteLengthQueuingStrategy\"),e=Ar(e,\"First parameter\"),this._byteLengthQueuingStrategyHighWaterMark=e.highWaterMark}get highWaterMark(){if(!Lr(this))throw Dr(\"highWaterMark\");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!Lr(this))throw Dr(\"size\");return zr}}function Dr(e){return new TypeError(`ByteLengthQueuingStrategy.prototype.${e} can only be used on a ByteLengthQueuingStrategy`)}function Lr(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_byteLengthQueuingStrategyHighWaterMark\")&&e instanceof ByteLengthQueuingStrategy)}Object.defineProperties(ByteLengthQueuingStrategy.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(ByteLengthQueuingStrategy.prototype,Symbol.toStringTag,{value:\"ByteLengthQueuingStrategy\",configurable:!0});const Fr=()=>1;o(Fr,\"size\");class CountQueuingStrategy{constructor(e){$(e,1,\"CountQueuingStrategy\"),e=Ar(e,\"First parameter\"),this._countQueuingStrategyHighWaterMark=e.highWaterMark}get highWaterMark(){if(!$r(this))throw Ir(\"highWaterMark\");return this._countQueuingStrategyHighWaterMark}get size(){if(!$r(this))throw Ir(\"size\");return Fr}}function Ir(e){return new TypeError(`CountQueuingStrategy.prototype.${e} can only be used on a CountQueuingStrategy`)}function $r(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_countQueuingStrategyHighWaterMark\")&&e instanceof CountQueuingStrategy)}function Mr(e,t,r){return F(e,r),r=>g(e,t,[r])}function Yr(e,t,r){return F(e,r),r=>S(e,t,[r])}function xr(e,t,r){return F(e,r),(r,o)=>g(e,t,[r,o])}function Qr(e,t,r){return F(e,r),r=>g(e,t,[r])}Object.defineProperties(CountQueuingStrategy.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(CountQueuingStrategy.prototype,Symbol.toStringTag,{value:\"CountQueuingStrategy\",configurable:!0});class TransformStream{constructor(e={},t={},r={}){void 0===e&&(e=null);const o=ct(t,\"Second parameter\"),n=ct(r,\"Third parameter\"),a=function(e,t){L(e,t);const r=null==e?void 0:e.cancel,o=null==e?void 0:e.flush,n=null==e?void 0:e.readableType,a=null==e?void 0:e.start,i=null==e?void 0:e.transform,l=null==e?void 0:e.writableType;return{cancel:void 0===r?void 0:Qr(r,e,`${t} has member 'cancel' that`),flush:void 0===o?void 0:Mr(o,e,`${t} has member 'flush' that`),readableType:n,start:void 0===a?void 0:Yr(a,e,`${t} has member 'start' that`),transform:void 0===i?void 0:xr(i,e,`${t} has member 'transform' that`),writableType:l}}(e,\"First parameter\");if(void 0!==a.readableType)throw new RangeError(\"Invalid readableType specified\");if(void 0!==a.writableType)throw new RangeError(\"Invalid writableType specified\");const i=st(n,0),l=ut(n),s=st(o,1),f=ut(o);let h;!function(e,t,r,o,n,a){function i(){return t}function l(t){return function(e,t){const r=e._transformStreamController;if(e._backpressure){return _(e._backpressureChangePromise,(()=>{const o=e._writable;if(\"erroring\"===o._state)throw o._storedError;return Zr(r,t)}))}return Zr(r,t)}(e,t)}function s(t){return function(e,t){const r=e._transformStreamController;if(void 0!==r._finishPromise)return r._finishPromise;const o=e._readable;r._finishPromise=u(((e,t)=>{r._finishPromise_resolve=e,r._finishPromise_reject=t}));const n=r._cancelAlgorithm(t);return Jr(r),b(n,(()=>(\"errored\"===o._state?ro(r,o._storedError):(br(o._readableStreamController,t),to(r)),null)),(e=>(br(o._readableStreamController,e),ro(r,e),null))),r._finishPromise}(e,t)}function c(){return function(e){const t=e._transformStreamController;if(void 0!==t._finishPromise)return t._finishPromise;const r=e._readable;t._finishPromise=u(((e,r)=>{t._finishPromise_resolve=e,t._finishPromise_reject=r}));const o=t._flushAlgorithm();return Jr(t),b(o,(()=>(\"errored\"===r._state?ro(t,r._storedError):(dr(r._readableStreamController),to(t)),null)),(e=>(br(r._readableStreamController,e),ro(t,e),null))),t._finishPromise}(e)}function d(){return function(e){return Gr(e,!1),e._backpressureChangePromise}(e)}function f(t){return function(e,t){const r=e._transformStreamController;if(void 0!==r._finishPromise)return r._finishPromise;const o=e._writable;r._finishPromise=u(((e,t)=>{r._finishPromise_resolve=e,r._finishPromise_reject=t}));const n=r._cancelAlgorithm(t);return Jr(r),b(n,(()=>(\"errored\"===o._state?ro(r,o._storedError):(Yt(o._writableStreamController,t),Ur(e),to(r)),null)),(t=>(Yt(o._writableStreamController,t),Ur(e),ro(r,t),null))),r._finishPromise}(e,t)}e._writable=function(e,t,r,o,n=1,a=(()=>1)){const i=Object.create(WritableStream.prototype);return St(i),Ft(i,Object.create(WritableStreamDefaultController.prototype),e,t,r,o,n,a),i}(i,l,c,s,r,o),e._readable=Cr(i,d,f,n,a),e._backpressure=void 0,e._backpressureChangePromise=void 0,e._backpressureChangePromise_resolve=void 0,Gr(e,!0),e._transformStreamController=void 0}(this,u((e=>{h=e})),s,f,i,l),function(e,t){const r=Object.create(TransformStreamDefaultController.prototype);let o,n,a;o=void 0!==t.transform?e=>t.transform(e,r):e=>{try{return Kr(r,e),c(void 0)}catch(e){return d(e)}};n=void 0!==t.flush?()=>t.flush(r):()=>c(void 0);a=void 0!==t.cancel?e=>t.cancel(e):()=>c(void 0);!function(e,t,r,o,n){t._controlledTransformStream=e,e._transformStreamController=t,t._transformAlgorithm=r,t._flushAlgorithm=o,t._cancelAlgorithm=n,t._finishPromise=void 0,t._finishPromise_resolve=void 0,t._finishPromise_reject=void 0}(e,r,o,n,a)}(this,a),void 0!==a.start?h(a.start(this._transformStreamController)):h(void 0)}get readable(){if(!Nr(this))throw oo(\"readable\");return this._readable}get writable(){if(!Nr(this))throw oo(\"writable\");return this._writable}}function Nr(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_transformStreamController\")&&e instanceof TransformStream)}function Hr(e,t){br(e._readable._readableStreamController,t),Vr(e,t)}function Vr(e,t){Jr(e._transformStreamController),Yt(e._writable._writableStreamController,t),Ur(e)}function Ur(e){e._backpressure&&Gr(e,!1)}function Gr(e,t){void 0!==e._backpressureChangePromise&&e._backpressureChangePromise_resolve(),e._backpressureChangePromise=u((t=>{e._backpressureChangePromise_resolve=t})),e._backpressure=t}Object.defineProperties(TransformStream.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(TransformStream.prototype,Symbol.toStringTag,{value:\"TransformStream\",configurable:!0});class TransformStreamDefaultController{constructor(){throw new TypeError(\"Illegal constructor\")}get desiredSize(){if(!Xr(this))throw eo(\"desiredSize\");return hr(this._controlledTransformStream._readable._readableStreamController)}enqueue(e=void 0){if(!Xr(this))throw eo(\"enqueue\");Kr(this,e)}error(e=void 0){if(!Xr(this))throw eo(\"error\");var t;t=e,Hr(this._controlledTransformStream,t)}terminate(){if(!Xr(this))throw eo(\"terminate\");!function(e){const t=e._controlledTransformStream;dr(t._readable._readableStreamController);const r=new TypeError(\"TransformStream terminated\");Vr(t,r)}(this)}}function Xr(e){return!!t(e)&&(!!Object.prototype.hasOwnProperty.call(e,\"_controlledTransformStream\")&&e instanceof TransformStreamDefaultController)}function Jr(e){e._transformAlgorithm=void 0,e._flushAlgorithm=void 0,e._cancelAlgorithm=void 0}function Kr(e,t){const r=e._controlledTransformStream,o=r._readable._readableStreamController;if(!mr(o))throw new TypeError(\"Readable side is not in a state that permits enqueue\");try{fr(o,t)}catch(e){throw Vr(r,e),r._readable._storedError}const n=function(e){return!ur(e)}(o);n!==r._backpressure&&Gr(r,!0)}function Zr(e,t){return _(e._transformAlgorithm(t),void 0,(t=>{throw Hr(e._controlledTransformStream,t),t}))}function eo(e){return new TypeError(`TransformStreamDefaultController.prototype.${e} can only be used on a TransformStreamDefaultController`)}function to(e){void 0!==e._finishPromise_resolve&&(e._finishPromise_resolve(),e._finishPromise_resolve=void 0,e._finishPromise_reject=void 0)}function ro(e,t){void 0!==e._finishPromise_reject&&(p(e._finishPromise),e._finishPromise_reject(t),e._finishPromise_resolve=void 0,e._finishPromise_reject=void 0)}function oo(e){return new TypeError(`TransformStream.prototype.${e} can only be used on a TransformStream`)}Object.defineProperties(TransformStreamDefaultController.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),o(TransformStreamDefaultController.prototype.enqueue,\"enqueue\"),o(TransformStreamDefaultController.prototype.error,\"error\"),o(TransformStreamDefaultController.prototype.terminate,\"terminate\"),\"symbol\"==typeof Symbol.toStringTag&&Object.defineProperty(TransformStreamDefaultController.prototype,Symbol.toStringTag,{value:\"TransformStreamDefaultController\",configurable:!0});export{ByteLengthQueuingStrategy,CountQueuingStrategy,ReadableByteStreamController,ReadableStream,ReadableStreamBYOBReader,ReadableStreamBYOBRequest,ReadableStreamDefaultController,ReadableStreamDefaultReader,TransformStream,TransformStreamDefaultController,WritableStream,WritableStreamDefaultController,WritableStreamDefaultWriter};\n","/**************************************************************************************************\n * *\n * Taken from: https://github.com/jimmywarting/StreamSaver.js/blob/master/examples/zip-stream.js *\n * *\n ***************************************************************************************************/\n\nclass Crc32 {\n constructor() {\n this.crc = -1;\n }\n\n append(data) {\n var crc = this.crc | 0;\n var table = this.table;\n for (var offset = 0, len = data.length | 0; offset < len; offset++) {\n crc = (crc >>> 8) ^ table[(crc ^ data[offset]) & 0xff];\n }\n this.crc = crc;\n }\n\n get() {\n return ~this.crc;\n }\n}\nCrc32.prototype.table = (() => {\n var i;\n var j;\n var t;\n var table = [];\n for (i = 0; i < 256; i++) {\n t = i;\n for (j = 0; j < 8; j++) {\n t = t & 1 ? (t >>> 1) ^ 0xedb88320 : t >>> 1;\n }\n table[i] = t;\n }\n return table;\n})();\n\nconst getDataHelper = (byteLength) => {\n var uint8 = new Uint8Array(byteLength);\n return {\n array: uint8,\n view: new DataView(uint8.buffer),\n };\n};\n\nconst pump = (zipObj) =>\n zipObj.reader.read().then((chunk) => {\n if (chunk.done) return zipObj.writeFooter();\n const outputData = chunk.value;\n zipObj.crc.append(outputData);\n zipObj.uncompressedLength += outputData.length;\n zipObj.compressedLength += outputData.length;\n zipObj.ctrl.enqueue(outputData);\n });\n\n/**\n * [createWriter description]\n * @param {Object} underlyingSource [description]\n * @return {Boolean} [description]\n */\nfunction createWriter(underlyingSource) {\n const files = Object.create(null);\n const filenames = [];\n const encoder = new TextEncoder();\n let offset = 0;\n let activeZipIndex = 0;\n let ctrl;\n let activeZipObject, closed;\n\n function next() {\n activeZipIndex++;\n activeZipObject = files[filenames[activeZipIndex]];\n if (activeZipObject) processNextChunk();\n else if (closed) closeZip();\n }\n\n var zipWriter = {\n enqueue(fileLike) {\n if (closed)\n throw new TypeError(\n 'Cannot enqueue a chunk into a readable stream that is closed or has been requested to be closed',\n );\n\n let name = fileLike.name.trim();\n const date = new Date(\n typeof fileLike.lastModified === 'undefined'\n ? Date.now()\n : fileLike.lastModified,\n );\n\n if (fileLike.directory && !name.endsWith('/')) name += '/';\n if (files[name]) throw new Error('File already exists.');\n\n const nameBuf = encoder.encode(name);\n filenames.push(name);\n\n const zipObject = (files[name] = {\n level: 0,\n ctrl,\n directory: !!fileLike.directory,\n nameBuf,\n comment: encoder.encode(fileLike.comment || ''),\n compressedLength: 0,\n uncompressedLength: 0,\n writeHeader() {\n var header = getDataHelper(26);\n var data = getDataHelper(30 + nameBuf.length);\n\n zipObject.offset = offset;\n zipObject.header = header;\n if (zipObject.level !== 0 && !zipObject.directory) {\n header.view.setUint16(4, 0x0800);\n }\n header.view.setUint32(0, 0x14000808);\n header.view.setUint16(\n 6,\n (((date.getHours() << 6) | date.getMinutes()) << 5) |\n (date.getSeconds() / 2),\n true,\n );\n header.view.setUint16(\n 8,\n ((((date.getFullYear() - 1980) << 4) | (date.getMonth() + 1)) <<\n 5) |\n date.getDate(),\n true,\n );\n header.view.setUint16(22, nameBuf.length, true);\n data.view.setUint32(0, 0x504b0304);\n data.array.set(header.array, 4);\n data.array.set(nameBuf, 30);\n offset += data.array.length;\n ctrl.enqueue(data.array);\n },\n writeFooter() {\n var footer = getDataHelper(16);\n footer.view.setUint32(0, 0x504b0708);\n\n if (zipObject.crc) {\n zipObject.header.view.setUint32(10, zipObject.crc.get(), true);\n zipObject.header.view.setUint32(\n 14,\n zipObject.compressedLength,\n true,\n );\n zipObject.header.view.setUint32(\n 18,\n zipObject.uncompressedLength,\n true,\n );\n footer.view.setUint32(4, zipObject.crc.get(), true);\n footer.view.setUint32(8, zipObject.compressedLength, true);\n footer.view.setUint32(12, zipObject.uncompressedLength, true);\n }\n\n ctrl.enqueue(footer.array);\n offset += zipObject.compressedLength + 16;\n next();\n },\n fileLike,\n });\n\n if (!activeZipObject) {\n activeZipObject = zipObject;\n processNextChunk();\n }\n },\n close() {\n if (closed)\n throw new TypeError(\n 'Cannot close a readable stream that has already been requested to be closed',\n );\n if (!activeZipObject) closeZip();\n closed = true;\n },\n };\n\n function closeZip() {\n var length = 0;\n var index = 0;\n var indexFilename, file;\n for (indexFilename = 0; indexFilename < filenames.length; indexFilename++) {\n file = files[filenames[indexFilename]];\n length += 46 + file.nameBuf.length + file.comment.length;\n }\n const data = getDataHelper(length + 22);\n for (indexFilename = 0; indexFilename < filenames.length; indexFilename++) {\n file = files[filenames[indexFilename]];\n data.view.setUint32(index, 0x504b0102);\n data.view.setUint16(index + 4, 0x1400);\n data.array.set(file.header.array, index + 6);\n data.view.setUint16(index + 32, file.comment.length, true);\n if (file.directory) {\n data.view.setUint8(index + 38, 0x10);\n }\n data.view.setUint32(index + 42, file.offset, true);\n data.array.set(file.nameBuf, index + 46);\n data.array.set(file.comment, index + 46 + file.nameBuf.length);\n index += 46 + file.nameBuf.length + file.comment.length;\n }\n data.view.setUint32(index, 0x504b0506);\n data.view.setUint16(index + 8, filenames.length, true);\n data.view.setUint16(index + 10, filenames.length, true);\n data.view.setUint32(index + 12, length, true);\n data.view.setUint32(index + 16, offset, true);\n ctrl.enqueue(data.array);\n ctrl.close();\n }\n\n function processNextChunk() {\n if (!activeZipObject) return;\n if (activeZipObject.directory)\n return activeZipObject.writeFooter(activeZipObject.writeHeader());\n if (activeZipObject.reader) return pump(activeZipObject);\n if (activeZipObject.fileLike.stream) {\n activeZipObject.crc = new Crc32();\n activeZipObject.reader = activeZipObject.fileLike.stream().getReader();\n activeZipObject.writeHeader();\n } else next();\n }\n return new ReadableStream({\n start: (c) => {\n ctrl = c;\n underlyingSource.start &&\n Promise.resolve(underlyingSource.start(zipWriter));\n },\n pull() {\n return (\n processNextChunk() ||\n (underlyingSource.pull &&\n Promise.resolve(underlyingSource.pull(zipWriter)))\n );\n },\n });\n}\n\nexport { createWriter as ZIP };\n","import { Injectable } from '@angular/core';\nimport {\n RRIBatchOption,\n RRIDownloadBatchOptionSettings,\n RR_ALERT_TYPE,\n} from 'projects/web-ui-component-library/src';\nimport { Observable, Subject, forkJoin } from 'rxjs';\nimport { ProgressBarService } from 'projects/content-service-cms/src/app/core/services/progress-bar.service';\nimport { AlertService } from 'projects/content-service-cms/src/app/core/services/alert.service';\nimport { map } from 'rxjs/operators';\nimport { DataService } from 'projects/content-service-cms/src/app/core/services/data.service';\nimport { HttpClient } from '@angular/common/http';\nimport * as streamSaver from 'streamsaver';\nimport { WritableStream } from 'web-streams-polyfill';\nimport { FileRevision } from 'projects/content-service-cms/src/app/core/models/files/file-revision.model';\nimport { File } from 'projects/content-service-cms/src/app/core/models/files/file.model';\nimport { ZIP } from '../../../assets/lib/zip-stream/zip-stream';\nimport {\n IApiSdkService,\n ICsApiSdkConfiguration,\n IRequestResultFile,\n} from 'projects/content-service-cms/src/app/data';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { IFileDownloadService } from '../api';\nimport { ConfigurationResultDTO } from '@reactivereality/cs-api-sdk';\nimport { saveAs } from 'file-saver';\nimport { NgDiscoveryService } from '../../core/services/ng-discovery.service';\n//@ts-ignore\nimport JSZip from 'jszip';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FileDownloadService\n extends DataService\n implements IFileDownloadService\n{\n static endpointName = 'files';\n static standardUrl: string;\n public isLoading: Subject;\n\n constructor(\n protected _http: HttpClient,\n protected _discoveryService: NgDiscoveryService,\n protected _logger: ILogger,\n protected _apiSdkService: IApiSdkService,\n protected _alertService: AlertService,\n protected _progressBarOverlayService: ProgressBarService,\n ) {\n super('files', _http, _logger, _apiSdkService, _discoveryService);\n FileDownloadService.standardUrl = `${this.BASE_API_URL}/${FileDownloadService.endpointName}`;\n this.isLoading = this._progressBarOverlayService.isLoading;\n this.fixFirefoxStreamDownload();\n\n this.fetchFile = this.fetchFile.bind(this);\n this.downloadOneFile = this.downloadOneFile.bind(this);\n this.downloadListOfFiles = this.downloadListOfFiles.bind(this);\n }\n\n public getFile(fileId: string): Observable {\n return this._http.get(`${FileDownloadService.standardUrl}/${fileId}`);\n }\n\n public getFileExtension(\n file: File | IRequestResultFile | FileRevision,\n ): string {\n let extension = file.url;\n if (extension.indexOf('?') > -1) {\n extension = extension.substring(0, extension.indexOf('?'));\n }\n extension = extension.substr(extension.lastIndexOf('.'), extension.length);\n return extension;\n }\n\n public fileDownload(\n entities: any[],\n visibleBatchOptions: RRIBatchOption>,\n singleDownload: boolean = false,\n ): void {\n this._progressBarOverlayService.show(entities.length);\n if (entities.find((x) => !x.url)) {\n this.getFileListWithUrls(entities).subscribe(\n (files) => {\n if (singleDownload) {\n files.forEach((element) => {\n this.downloadFile(element).subscribe();\n });\n } else {\n this.streamDownload(visibleBatchOptions, files);\n }\n },\n (error) => this._logger.error('error', error),\n );\n } else {\n if (singleDownload) {\n entities.forEach((element) => {\n this.downloadFile(element).subscribe();\n });\n } else {\n this.streamDownload(visibleBatchOptions, entities);\n }\n }\n }\n\n public downloadFile(file: File): Observable {\n return new Observable((subscribe) => {\n fetch(file.url)\n .then((response) => response.blob())\n .then((blob) => {\n const blobURL = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = blobURL;\n a.setAttribute(\n 'download',\n this.getFileName(file, this.getFileExtension),\n );\n\n document.body.appendChild(a);\n a.click();\n this._progressBarOverlayService.hide();\n\n subscribe.next({\n type: 'success',\n msg: 'File downloaded successfully',\n });\n subscribe.complete();\n })\n .catch(() => {\n this._alertService.showAlert({\n type: RR_ALERT_TYPE.DANGER,\n message: 'Error downloading the file',\n });\n this._progressBarOverlayService.error('error downloading file');\n\n subscribe.next({ type: 'danger', msg: 'Error downloading the file' });\n subscribe.complete();\n });\n });\n }\n public downloadResultFile(file: IRequestResultFile): Observable {\n return new Observable((subscribe) => {\n fetch(file.url)\n .then((response) => response.blob())\n .then((blob) => {\n const blobURL = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = blobURL;\n a.setAttribute(\n 'download',\n this.getFileName(file, this.getFileExtension),\n );\n\n document.body.appendChild(a);\n a.click();\n this._progressBarOverlayService.hide();\n\n subscribe.next({\n type: 'success',\n msg: 'File downloaded successfully',\n });\n subscribe.complete();\n })\n .catch(() => {\n this._alertService.showAlert({\n type: RR_ALERT_TYPE.DANGER,\n message: 'Error downloading the file',\n });\n this._progressBarOverlayService.error('error downloading file');\n\n subscribe.next({ type: 'danger', msg: 'Error downloading the file' });\n subscribe.complete();\n });\n });\n }\n\n private async fetchFile(\n url: string,\n fileName: string,\n ctrl: any,\n resolve: () => void,\n reject: () => void,\n ) {\n await fetch(url)\n .then((res) => {\n const stream = () => res.body;\n ctrl.enqueue({ name: fileName, stream });\n resolve();\n })\n .catch((reason) => {\n this._logger.error('error downloading file', reason);\n this._alertService.showErrorAlert(\n `Error downloading the file: ${reason}`,\n );\n reject();\n });\n }\n public async downloadZippedFiles(\n results: ConfigurationResultDTO[],\n name: string,\n ): Promise {\n const zip = new JSZip();\n for (const result of results) {\n for (const file of result.files) {\n if (results.length === 1) {\n zip.file(file.name, await this.fetchFileByUrl(file.url));\n } else {\n zip.file(\n result.format + '/' + file.name,\n await this.fetchFileByUrl(file.url),\n );\n }\n }\n }\n zip.generateAsync({ type: 'blob' }).then((content) => {\n saveAs(content, name + '.zip');\n });\n }\n public async downloadFiles(results: ConfigurationResultDTO[]): Promise {\n for (const result of results) {\n for (const file of result.files) {\n const fileData = await this.fetchFileByUrl(file.url);\n saveAs(fileData, file.name);\n }\n }\n }\n public async fetchFileByUrl(url): Promise {\n const response = await fetch(url);\n const blob = await response.blob();\n return blob;\n }\n private streamDownload(\n visibleBatchOptions: RRIBatchOption>,\n entities: any[],\n startProgress: boolean = false,\n ): void {\n if (startProgress) this._progressBarOverlayService.show(entities.length);\n\n const progressBarService = this._progressBarOverlayService;\n const download = visibleBatchOptions;\n const fileStream = streamSaver.createWriteStream(\n download.settings.downloadFileName,\n );\n const selectedEntities = entities;\n const getFileExtension = this.getFileExtension;\n let resolveStartPromise: () => void;\n const startPromise = new Promise((resolve) => {\n resolveStartPromise = resolve;\n });\n const allPromises = [startPromise];\n let isThereSomethingToDownload: boolean = false;\n let stream;\n const downloadListOfFiles = this.downloadListOfFiles;\n const downloadOneFile = this.downloadOneFile;\n\n const readableZipStream = new ZIP({\n async start(ctrl) {\n stream = ctrl;\n allPromises.push(\n new Promise(async (resolve, reject) => {\n for (let index = 0; index < selectedEntities.length; index++) {\n const entity = selectedEntities[index];\n const files = await download.settings.getFiles(entity);\n if (Array.isArray(files) && files.length > 0) {\n isThereSomethingToDownload = await downloadListOfFiles(\n files,\n getFileExtension,\n ctrl,\n download,\n resolve,\n reject,\n );\n } else if (!Array.isArray(files) && files) {\n isThereSomethingToDownload = await downloadOneFile(\n selectedEntities,\n index,\n files,\n getFileExtension,\n ctrl,\n download,\n resolve,\n reject,\n );\n } else {\n resolve();\n }\n progressBarService.increaseProgressBarValue();\n\n if (index + 1 === selectedEntities.length) {\n resolveStartPromise();\n }\n }\n }),\n );\n },\n });\n\n Promise.all(allPromises)\n .then(() =>\n this.successStreamDownload(\n stream,\n isThereSomethingToDownload,\n readableZipStream,\n fileStream,\n ),\n )\n .catch(() => this.finishStreamDownload(stream));\n }\n\n private async downloadOneFile(\n selectedEntities: any[],\n index: number,\n files: any,\n getFileExtension: (\n file: File | IRequestResultFile | FileRevision,\n ) => string,\n ctrl,\n download: RRIBatchOption>,\n resolve: (value: void | PromiseLike) => void,\n reject: (reason?: any) => void,\n ): Promise {\n const fileName = this.getFileName(\n files,\n getFileExtension,\n selectedEntities,\n index,\n );\n const filePath = download.settings.generateFilePath(fileName, files);\n return await this.fetchFile(\n files.url,\n filePath,\n ctrl,\n resolve,\n reject,\n ).then(() => true);\n }\n private async downloadListOfFiles(\n files: any[],\n getFileExtension: (\n file: File | IRequestResultFile | FileRevision,\n ) => string,\n ctrl,\n download: RRIBatchOption>,\n resolve: (value: void | PromiseLike) => void,\n reject: (reason?: any) => void,\n ): Promise {\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n const fileName = this.getFileName(file, getFileExtension, files, i);\n const filePath = download.settings.generateFilePath(fileName, file);\n return await this.fetchFile(file.url, filePath, ctrl, resolve, reject)\n .then(() => {\n return true;\n })\n .catch(() => {\n return false;\n });\n }\n }\n\n private successStreamDownload(\n stream,\n isThereSomethingToDownload: boolean,\n readableZipStream: ZIP,\n fileStream: WritableStream,\n ): void {\n this.finishStreamDownload(stream);\n if (isThereSomethingToDownload) {\n if (window.WritableStream && readableZipStream.pipeTo) {\n return readableZipStream.pipeTo(fileStream);\n }\n\n const writer = fileStream.getWriter();\n const reader = readableZipStream.getReader();\n const pump = () =>\n reader\n .read()\n .then((res) =>\n res.done ? writer.close() : writer.write(res.value).then(pump),\n );\n\n pump();\n } else {\n this._progressBarOverlayService.error(\n 'There were no files to download. Check if your requests have results to download.',\n );\n this._alertService.showErrorAlert(\n 'There were no files to download. Check if your requests have results to download.',\n );\n }\n }\n\n private finishStreamDownload(stream): void {\n stream.close();\n this._progressBarOverlayService.hide();\n }\n\n private getFileListWithUrls(entities: any): Observable {\n if (entities.length <= 10) {\n const fileRequests: any[] = [];\n entities.forEach((selectedFile) => {\n fileRequests.push(this.getFile(selectedFile.id));\n });\n\n return forkJoin(fileRequests);\n } else {\n return this.getData({\n pagination: {\n pageSize: -1,\n currentPage: 1,\n recordCount: 0,\n pageCount: 0,\n },\n }).pipe(\n map(({ results }) =>\n results.filter((x) => entities.find((y) => y.id == x.id)),\n ),\n );\n }\n }\n\n private getFileName(\n file: IRequestResultFile | File | FileRevision,\n getFileExtension: any,\n fileList?: IRequestResultFile[] | File[] | FileRevision[],\n index?: number,\n ): string {\n const extension = getFileExtension(file);\n\n /**\n * We had a problem that files from the endpoint configurations/ID/results had the fileextension in the filename.\n * The result was that a file gets the fileextension twice, once frome the name of the file and once from the extension.\n * The result was \"filename.garment.garment\" which is now transformed to \"filename.garment\"\n */\n if (\n typeof file['configurationResultId'] !== 'undefined' &&\n file.name.lastIndexOf(extension) + extension.length == file.name.length\n ) {\n file.name = file.name.substr(0, file.name.lastIndexOf(extension));\n }\n\n let duplicateNumber: number = 0;\n if (fileList && fileList.length) {\n fileList.some((previousFile, i) => {\n if (i < index) {\n const otherExtension = getFileExtension(previousFile);\n if (file.name === previousFile.name && otherExtension === extension) {\n duplicateNumber++;\n }\n } else {\n return true;\n }\n });\n }\n let duplicateSuffix: string = '';\n if (duplicateNumber) {\n duplicateSuffix = '(' + duplicateNumber.toString() + ')';\n }\n\n return `${file.name}${duplicateSuffix}${extension}`;\n }\n\n private fixFirefoxStreamDownload() {\n if (!window.WritableStream) {\n streamSaver.WritableStream = WritableStream;\n }\n }\n\n protected initService(sdkConfig: ICsApiSdkConfiguration) {}\n}\n","import { Injectable } from '@angular/core';\nimport {\n ConfigurationResultFileDTO,\n FilesApi,\n} from '@reactivereality/cs-api-sdk';\nimport { ILogger } from '../../logging';\nimport {\n IApiSdkService,\n ICsApiSdkConfiguration,\n IFileInformation,\n IFileUpload,\n IFileUploadService,\n IResultFileUpload,\n} from '../api';\nimport { HttpClient } from '@angular/common/http';\nimport { lastValueFrom } from 'rxjs';\nimport { NgDiscoveryService } from '../../core/services/ng-discovery.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FileUploadService implements IFileUploadService {\n private _filesApi: FilesApi;\n private _apiVersion: string;\n\n constructor(\n private _http: HttpClient,\n private _logger: ILogger,\n private _apiSdkService: IApiSdkService,\n private _discoveryService: NgDiscoveryService,\n ) {\n this._apiSdkService.sdkConfig$.subscribe({\n next: this.initFileUploadService,\n error: this.errorOnInitFileUploadService,\n });\n }\n\n public async uploadJsonFile(\n fileInfo: IFileInformation,\n jsonObject: object,\n ): Promise {\n const file = this.jsonToBlob(jsonObject);\n this.uploadFile(fileInfo, file);\n }\n\n public async uploadBase64File(\n fileInfo: IFileInformation,\n base64Data: string,\n ): Promise {\n const file = this.dataURIToBlob(base64Data);\n this.uploadFile(fileInfo, file);\n }\n\n public async uploadFile(\n fileInfo: IFileInformation,\n fileBlob: Blob,\n ): Promise {\n const formData: FormData = new FormData();\n if (fileInfo.id) {\n formData.append('id', fileInfo.id);\n }\n\n formData.append('file', fileBlob, fileInfo.fileName);\n formData.append('configurationId', fileInfo.configurationId);\n formData.append('name', fileInfo.fileName);\n formData.append('typeId', `${fileInfo.typeId}`);\n formData.append('mimeType', fileInfo.mimeType);\n\n const discoveryConfig = await this._discoveryService.config;\n const url = `${discoveryConfig.apiConfiguration.baseApiUrl}/Files`;\n\n return lastValueFrom(this._http.post(url, formData)).then(\n (response: ConfigurationResultFileDTO) => {\n return response;\n },\n );\n }\n\n public async fileUpload(fileInfo: IFileUpload, file: Blob): Promise {\n this.putFileUpload('', fileInfo.mimeType, fileInfo.name, file).then(() => {\n this.patchFileUpload('', '');\n });\n }\n\n public async resultFileUpload(\n fileInfo: IResultFileUpload,\n file: Blob,\n ): Promise {\n this.putFileUpload('', fileInfo.mimeType, fileInfo.name, file).then(() => {\n this.patchFileUpload('', '');\n });\n }\n\n private async putFileUpload(\n url: string,\n mimeType: string,\n fileName: string,\n fileBlob: Blob,\n ): Promise {\n const formData: FormData = new FormData();\n formData.append('file', fileBlob, fileName);\n\n return lastValueFrom(this._http.put(url, formData)).then(() => {\n return null;\n });\n }\n\n private async patchFileUpload(url: string, fileId: string): Promise {\n return lastValueFrom(this._http.patch(url, { fileId })).then(() => {\n return null;\n });\n }\n\n private jsonToBlob(jsonObj: object) {\n const str = JSON.stringify(jsonObj);\n const bytes = new TextEncoder().encode(str);\n const blob = new Blob([bytes], {\n type: 'application/json',\n });\n return blob;\n }\n\n private dataURIToBlob(dataURI: string) {\n const splitDataURI = dataURI.split(',');\n const byteString =\n splitDataURI[0].indexOf('base64') >= 0\n ? atob(splitDataURI[1])\n : decodeURI(splitDataURI[1]);\n const mimeString = splitDataURI[0].split(':')[1].split(';')[0];\n\n const ia = new Uint8Array(byteString.length);\n for (let i = 0; i < byteString.length; i++)\n ia[i] = byteString.charCodeAt(i);\n\n return new Blob([ia], { type: mimeString });\n }\n\n private initFileUploadService = (sdkConfig: ICsApiSdkConfiguration) => {\n if (\n sdkConfig !== undefined &&\n sdkConfig.filesApiSdk &&\n sdkConfig.apiVersion\n ) {\n this._apiVersion = sdkConfig.apiVersion;\n this._filesApi = sdkConfig.filesApiSdk;\n } else {\n this.errorOnInitFileUploadService(\n new Error('There is no Files API Sdk Configuration or API version.'),\n );\n }\n };\n\n private errorOnInitFileUploadService = (error: Error) => {\n this._logger.error('Cannot initate files API.', error);\n };\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport {\n IRequestDetail,\n PRODUCT_TYPE,\n} from 'projects/content-service-cms/src/app/data';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { DataService } from '../../core/services/data.service';\nimport { NgDiscoveryService } from '../../core/services/ng-discovery.service';\nimport {\n GarmentDTO,\n IApiSdkService,\n ICsApiSdkConfiguration,\n IGarmentService,\n IRequestResult,\n} from '../api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GarmentService\n extends DataService\n implements IGarmentService\n{\n private static endpointName = 'configurations/public';\n\n constructor(\n protected _http: HttpClient,\n protected _logger: ILogger,\n protected _apiSdkService: IApiSdkService,\n protected _discoveryService: NgDiscoveryService,\n ) {\n super(\n GarmentService.endpointName,\n _http,\n _logger,\n _apiSdkService,\n _discoveryService,\n );\n this._apiSdkService.sdkConfig$.subscribe({\n next: this.initService,\n error: this.errorOnInitService,\n });\n }\n\n protected initService = (sdkConfig: ICsApiSdkConfiguration) => {};\n\n public async getMetadata(\n webResult: IRequestResult,\n ): Promise {\n if (!webResult) {\n return;\n }\n const metadataFile = webResult.files.find(\n (o) => o.name === 'metadata.json',\n );\n if (!metadataFile) {\n return;\n }\n const metadataResponse = await fetch(metadataFile.url);\n if (!metadataResponse.ok) {\n return;\n }\n return (await metadataResponse.json()) as T;\n }\n\n public async mapRequestsToGarments(\n request: IRequestDetail,\n additional?: {\n isPublic?: boolean;\n isSelected?: boolean;\n dressed?: boolean;\n tuckedIn?: boolean;\n },\n ): Promise {\n const webresults = request.results.filter((c) => c.format === 'web');\n if (webresults?.length === 0) {\n throw new Error(`Can't map request to GarmentDTO, no web result`);\n }\n\n const metadata = await this.getMetadata<{\n garmentGroup?: number;\n tryonable?: boolean;\n }>(webresults[0]);\n if (!metadata) {\n throw new Error(\n `Can't map request to GarmentDTO, no valid metadata.json`,\n );\n }\n\n if (metadata.garmentGroup === undefined || metadata.garmentGroup === null) {\n throw new Error(\n `Can't map request to GarmentDTO, no valid metadata.json [missing garmentGroup]`,\n );\n }\n const tryonable =\n request.productTypeId === PRODUCT_TYPE.OUTFIT_2D ||\n (metadata.tryonable ?? false);\n\n return {\n ...request,\n isPublic: additional?.isPublic ?? false,\n selected: additional?.isSelected ?? false,\n groupId: metadata.garmentGroup,\n tuckedIn: additional?.tuckedIn ?? false,\n dressed: additional?.dressed ?? false,\n tryonable: tryonable,\n };\n }\n}\n","export enum PRODUCT_TYPE {\n UNDEFINED = 0,\n GARMENT_2D = 1,\n GARMENT_3D = 3,\n OUTFIT_3D = 5,\n AVATAR_2D = 6,\n ACCESSORY_3D = 9,\n OUTFIT_2D = 12,\n SCENE = 14,\n AVATAR_3D = 15,\n GARMENT_3D_CAD = 16,\n OUTFIT_2D_PARALLAX = 21,\n}\n","import { Injectable } from '@angular/core';\nimport { ProcessApi } from '@reactivereality/cs-api-sdk';\nimport { AxiosResponse } from 'axios';\nimport { BehaviorSubject, Observable, filter } from 'rxjs';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport {\n IApiSdkService,\n ICsApiSdkConfiguration,\n IProcessService,\n IServiceRejectionReason,\n} from '../api';\nimport { PRODUCT_TYPE } from '../enums/product-type.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcessService implements IProcessService {\n public readonly rejectionReasonsGarment2D$: Observable<\n Array\n >;\n public readonly rejectionReasonsGarment3D$: Observable<\n Array\n >;\n public readonly rejectionReasonsOutfit2D$: Observable<\n Array\n >;\n public readonly rejectionReasonsAccessory3D$: Observable<\n Array\n >;\n\n private _apiVersion: string;\n private _processApi: ProcessApi;\n\n private _rejectionReasonsGarment2D$: BehaviorSubject<\n Array | undefined\n >;\n private _rejectionReasonsGarment3D$: BehaviorSubject<\n Array | undefined\n >;\n private _rejectionReasonsOutfit2D$: BehaviorSubject<\n Array | undefined\n >;\n private _rejectionReasonsAccessory3D$: BehaviorSubject<\n Array | undefined\n >;\n\n constructor(\n private _apiSdkService: IApiSdkService,\n private _logger: ILogger,\n ) {\n this._logger.info('Creating process service ...');\n\n this._rejectionReasonsGarment2D$ = new BehaviorSubject<\n Array\n >(undefined);\n this.rejectionReasonsGarment2D$ = this._rejectionReasonsGarment2D$\n .asObservable()\n .pipe(filter((v) => v !== undefined));\n\n this._rejectionReasonsGarment3D$ = new BehaviorSubject<\n Array | undefined\n >(undefined);\n this.rejectionReasonsGarment3D$ = this._rejectionReasonsGarment3D$\n .asObservable()\n .pipe(filter((v) => v !== undefined));\n\n this._rejectionReasonsOutfit2D$ = new BehaviorSubject<\n Array | undefined\n >(undefined);\n this.rejectionReasonsOutfit2D$ = this._rejectionReasonsOutfit2D$\n .asObservable()\n .pipe(filter((v) => v !== undefined));\n\n this._rejectionReasonsAccessory3D$ = new BehaviorSubject<\n Array | undefined\n >(undefined);\n this.rejectionReasonsAccessory3D$ = this._rejectionReasonsAccessory3D$\n .asObservable()\n .pipe(filter((v) => v !== undefined));\n\n this._apiSdkService.sdkConfig$.subscribe({\n next: this.initProcessService,\n error: this.initProcessServiceHasError,\n });\n }\n\n public refreshRejectionReasonsGarment2D(): void {\n this.loadGarment2DRejectionReasons();\n }\n public refreshRejectionReasonsGarment3D(): void {\n this.loadGarment3DRejectionReasons();\n }\n public refreshRejectionReasonsOutfit2D(): void {\n this.loadOutfit2DRejectionReasons();\n }\n public refreshRejectionReasonsAccessory3D(): void {\n this.loadAccessory3DRejectionReasons();\n }\n\n private async loadGarment2DRejectionReasons(): Promise {\n this.fetchServiceRejectionReasons(PRODUCT_TYPE.GARMENT_2D).then(\n (reasons: Array) => {\n this._rejectionReasonsGarment2D$.next(reasons);\n },\n );\n }\n\n private async loadGarment3DRejectionReasons(): Promise {\n this.fetchServiceRejectionReasons(PRODUCT_TYPE.GARMENT_3D).then(\n (reasons: Array) => {\n this._rejectionReasonsGarment3D$.next(reasons);\n },\n );\n }\n\n private async loadAccessory3DRejectionReasons(): Promise {\n this.fetchServiceRejectionReasons(PRODUCT_TYPE.ACCESSORY_3D).then(\n (reasons: Array) => {\n this._rejectionReasonsAccessory3D$.next(reasons);\n },\n );\n }\n\n private async loadOutfit2DRejectionReasons(): Promise {\n this.fetchServiceRejectionReasons(PRODUCT_TYPE.OUTFIT_2D).then(\n (reasons: Array) => {\n this._rejectionReasonsOutfit2D$.next(reasons);\n },\n );\n }\n\n private async fetchServiceRejectionReasons(\n productType: PRODUCT_TYPE,\n ): Promise | undefined> {\n if (this._processApi) {\n return this._processApi\n .vversionProcessServicerejectionreasonsProductTypeIdGet(\n productType,\n this._apiVersion,\n )\n .then((response: AxiosResponse>) => {\n if (response && Array.isArray(response.data)) {\n return response.data.map(\n this.mapServiceRejectionReasonDTOToIServiceRejectionReason,\n );\n }\n\n return undefined;\n })\n .catch((reason: any) => {\n this._logger.error(\n `Error while fetching the service rejection reasons for ${productType}`,\n reason,\n );\n return undefined;\n });\n }\n\n return Promise.reject('Error there is no process api.');\n }\n\n private initProcessService = (apiSdkConfig: ICsApiSdkConfiguration) => {\n if (apiSdkConfig && apiSdkConfig.apiVersion && apiSdkConfig.processApiSdk) {\n this._apiVersion = apiSdkConfig.apiVersion;\n this._processApi = apiSdkConfig.processApiSdk;\n\n this.loadGarment2DRejectionReasons();\n this.loadGarment3DRejectionReasons();\n this.loadAccessory3DRejectionReasons();\n this.loadOutfit2DRejectionReasons();\n } else {\n this.initProcessServiceHasError(\n new Error('There is no Process API Sdk Configuration or API version.'),\n );\n }\n };\n\n private initProcessServiceHasError = (error: Error) => {\n this._logger.error('Cannot initate process API.', error);\n };\n\n private mapServiceRejectionReasonDTOToIServiceRejectionReason = (reason: {\n key?: string;\n description?: string;\n }): IServiceRejectionReason => {\n return {\n key: reason.key || '',\n description: reason.description || '',\n };\n };\n}\n","import { Injectable } from '@angular/core';\nimport {\n ProductDTO,\n ProductTypeDTO,\n ProductsApi,\n} from '@reactivereality/cs-api-sdk';\nimport { AxiosResponse } from 'axios';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport {\n IApiSdkService,\n ICsApiSdkConfiguration,\n IProduct,\n IProductService as IProductService,\n IProductType,\n} from '../api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductService implements IProductService {\n private _productApi: ProductsApi;\n private _apiVersion: string;\n\n constructor(\n private _apiSdkService: IApiSdkService,\n private _logger: ILogger,\n ) {\n this._logger.info('Creating product service ...');\n\n this._apiSdkService.sdkConfig$.subscribe({\n next: this.initProductsService,\n error: this.initProductsServiceHasError,\n });\n }\n\n public async fetchProductByID(\n productId: string,\n ): Promise {\n if (this._productApi) {\n return this._productApi\n .productLink(productId, this._apiVersion)\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return this.mapProductDTOToIProduct(response.data);\n }\n\n return undefined;\n })\n .catch((reason: any) => {\n this._logger.error(\n `Error while fetching the product ${productId}`,\n reason,\n );\n return null;\n });\n }\n\n return Promise.reject('There is no Products API.');\n }\n\n public async updateProduct(product: IProduct): Promise {\n if (this._productApi) {\n return this._productApi\n .vversionProductsIdPut(product.id, this._apiVersion, product)\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return this.mapProductDTOToIProduct(response.data);\n }\n\n return undefined;\n })\n .catch((reason: any) => {\n this._logger.error(\n `Error while creating/updating the product ${product.id}`,\n reason,\n );\n return null;\n });\n }\n\n return Promise.reject('There is no Products API.');\n }\n\n public async fetchProductTypes(): Promise | undefined> {\n return this._productApi\n .vversionProductsTypesGet(this._apiVersion)\n .then((response: AxiosResponse) => {\n if (response && Array.isArray(response.data)) {\n return response.data.map(this.mapProductTypeDTOToIProductType);\n }\n\n return undefined;\n })\n .catch((reason: any) => {\n this._logger.error('Error while fetching product types.', reason);\n return undefined;\n });\n }\n\n private initProductsService = (sdkConfig: ICsApiSdkConfiguration) => {\n if (sdkConfig !== undefined && sdkConfig.productApiSdk) {\n this._apiVersion = sdkConfig.apiVersion;\n this._productApi = sdkConfig.productApiSdk;\n } else {\n this.initProductsServiceHasError(\n new Error('There is no Products API Sdk Configuration or API version.'),\n );\n }\n };\n\n private initProductsServiceHasError = (error: Error) => {\n this._logger.error('Cannot initate product API.', error);\n };\n\n private mapProductDTOToIProduct = (prodcut: ProductDTO): IProduct => ({\n id: prodcut.id,\n name: prodcut.name,\n customerId: prodcut.customerId,\n customerName: prodcut.customerName,\n createdAt: prodcut.createdAt,\n typeId: prodcut.typeId,\n sku: prodcut.sku,\n metadata: prodcut.metadata,\n dueAt: prodcut.dueAt,\n modifiedAt: prodcut.modifiedAt,\n stateId: prodcut.stateId,\n });\n\n private mapProductTypeDTOToIProductType = (\n type: ProductTypeDTO,\n ): IProductType => ({\n id: type.id,\n name: type.name,\n reviewEnabled: type.reviewEnabled,\n });\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { AxiosResponse } from 'axios';\nimport { IRequestDetail } from 'projects/content-service-cms/src/app/data';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { DataService } from '../../core/services/data.service';\nimport {\n IApiSdkService,\n ICsApiSdkConfiguration,\n IPublicRequestService,\n IRequest,\n} from 'projects/content-service-cms/src/app/data/api';\nimport {\n ConfigurationPublicOnlyDTOPage,\n ConfigurationsApi,\n} from '@reactivereality/cs-api-sdk';\nimport { NgDiscoveryService } from '../../core/services/ng-discovery.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PublicRequestService\n extends DataService\n implements IPublicRequestService\n{\n private static endpointName = 'configurations/public';\n\n private _requestApi: ConfigurationsApi;\n private _apiVersion: string;\n\n constructor(\n protected _http: HttpClient,\n protected _logger: ILogger,\n protected _apiSdkService: IApiSdkService,\n protected _discoveryService: NgDiscoveryService,\n ) {\n super(\n PublicRequestService.endpointName,\n _http,\n _logger,\n _apiSdkService,\n _discoveryService,\n );\n this._apiSdkService.sdkConfig$.subscribe({\n next: this.initService,\n error: this.errorOnInitService,\n });\n }\n\n getPublicRequestByID(requestId: string): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsPublicGet(\n this._apiVersion,\n undefined,\n undefined,\n undefined,\n `{\"id\":\"${requestId}\"}`,\n true,\n )\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return response.data.results[0];\n }\n return undefined;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n\n public getFirstApprovedAvatar2D() {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsPublicGet(\n this._apiVersion,\n undefined,\n undefined,\n undefined,\n '{\"productTypeId\":6,\"stateId\":4}',\n true,\n )\n .then((response: AxiosResponse) => {\n if (\n response &&\n response.data &&\n response.data.results &&\n response.data.results.length > 0\n ) {\n return response.data.results[0];\n }\n return undefined;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n protected initService = (sdkConfig: ICsApiSdkConfiguration) => {\n if (\n sdkConfig !== undefined &&\n sdkConfig.configurationsApiSdk &&\n sdkConfig.apiVersion\n ) {\n this._apiVersion = sdkConfig.apiVersion;\n this._requestApi = sdkConfig.configurationsApiSdk;\n } else {\n this.errorOnInitService(\n new Error('There is no CS API Sdk Configuration or API version.'),\n );\n }\n };\n}\n","import { Injectable } from '@angular/core';\nimport {\n ConfigurationDTO,\n ConfigurationEmployeeOnlyDTO,\n ConfigurationEmployeeOnlyDTOPage,\n ConfigurationPriorityDTO,\n ConfigurationResultDTO,\n ConfigurationStateLogDTO,\n ConfigurationsApi,\n} from '@reactivereality/cs-api-sdk';\nimport { ILogger } from '../../logging';\nimport {\n IApiSdkService,\n ICsApiSdkConfiguration,\n IRequest,\n IRequestDetail,\n IRequestHistoryState,\n IRequestPrioritiy,\n IRequestResult,\n IRequestService,\n IRequestUpdate,\n IRequestsAggregate,\n PagingPublicRequestDTO,\n PagingRequestDTO,\n} from '../api';\nimport { AxiosResponse } from 'axios';\nimport { BehaviorSubject, Observable, from, map } from 'rxjs';\nimport {\n RRIFilterOutput,\n RRIQueryParams,\n RRITableData,\n RR_FILTER_TYPE,\n} from 'projects/web-ui-component-library/src';\nimport { PRODUCT_TYPE } from '../enums/product-type.enum';\nimport { DataService } from '../../core/services/data.service';\nimport { HttpClient } from '@angular/common/http';\nimport { NgDiscoveryService } from '../../core/services/ng-discovery.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RequestService\n extends DataService\n implements IRequestService\n{\n public allPriorities_loading$: BehaviorSubject;\n public readonly allPriorities$: BehaviorSubject;\n\n private _requestApi: ConfigurationsApi;\n private _apiVersion: string;\n\n private static endpointName = 'configurations';\n\n constructor(\n protected _http: HttpClient,\n protected _logger: ILogger,\n protected _apiSdkService: IApiSdkService,\n protected _discoveryService: NgDiscoveryService,\n ) {\n super(\n RequestService.endpointName,\n _http,\n _logger,\n _apiSdkService,\n _discoveryService,\n );\n this._apiSdkService.sdkConfig$.subscribe({\n next: this.initService,\n error: this.errorOnInitService,\n });\n this.allPriorities_loading$ = new BehaviorSubject(false);\n this.allPriorities$ = new BehaviorSubject>([]);\n }\n\n public getResponseFromUrl(url: string): Promise {\n return fetch(url);\n }\n\n public async getRequestByID(requestId: string): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .configurationLink(requestId, this._apiVersion)\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return response.data;\n }\n return undefined;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n public async getRequests(\n filter: string,\n page: number,\n pageSize: number,\n cancelSignal?: any,\n includeResult?: boolean,\n ): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsGet(\n this._apiVersion,\n page,\n pageSize,\n 'createdAt_desc',\n filter,\n '',\n includeResult !== undefined ? includeResult : true,\n { signal: cancelSignal },\n )\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return {\n configurations: response.data.results,\n paging: {\n currentPage: response.data.currentPage,\n pageCount: response.data.pageCount,\n pageSize: response.data.pageSize,\n recordCount: response.data.recordCount,\n },\n };\n }\n return undefined;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n public async getPublicRequests(\n filter: string,\n page: number,\n pageSize: number,\n ): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsPublicGet(\n this._apiVersion,\n page,\n pageSize,\n 'createdAt_desc',\n filter,\n true,\n )\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return {\n configurations: response.data.results,\n paging: {\n currentPage: response.data.currentPage,\n pageCount: response.data.pageCount,\n pageSize: response.data.pageSize,\n recordCount: response.data.recordCount,\n },\n };\n }\n return undefined;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n\n public async getAllCustomerRequests(\n customerId: string,\n filter: string,\n page: number,\n pageSize: number,\n tags: string,\n inlcudedArchived?: boolean,\n cancelSignal?: AbortSignal,\n ): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsAllforcustomerGet(\n customerId,\n this._apiVersion,\n page,\n pageSize,\n 'createdAt_desc',\n filter,\n tags,\n true,\n inlcudedArchived,\n {\n signal: cancelSignal,\n },\n )\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return {\n configurations: response.data.results,\n paging: {\n currentPage: response.data.currentPage,\n pageCount: response.data.pageCount,\n pageSize: response.data.pageSize,\n recordCount: response.data.recordCount,\n },\n };\n }\n return undefined;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n\n public async update(request: IRequestUpdate): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsIdPut(request.id, this._apiVersion, request)\n .then((response: AxiosResponse) => {\n if (response) {\n return response.data;\n }\n\n return undefined;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n\n public async delete(request: IRequestDetail): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsIdDelete(request.id, this._apiVersion)\n .then((response: AxiosResponse) => {\n if (response) {\n return response.data;\n }\n\n return undefined;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n\n public async approveRequest(requestId: string): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsIdApprovePost(requestId, this._apiVersion)\n .then((response: AxiosResponse) => {\n return response.data;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n\n public async rejectRequest(\n request: IRequestDetail,\n metadata: { [key: string]: any },\n ): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsIdRejectPost(\n request.id,\n this._apiVersion,\n metadata,\n )\n .then((response: AxiosResponse) => {\n return response.data;\n });\n }\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n\n public async setReady(id: string): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsIdReadyPost(id, this._apiVersion)\n .then((response: AxiosResponse) => {\n return response.data;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n\n public async getHistory(requestId: string): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsIdStatesGet(requestId, this._apiVersion)\n .then((response: AxiosResponse) => {\n if (response && Array.isArray(response.data)) {\n return response.data.map(\n this.mapConfigurationStateDTOToRequestHistory,\n );\n }\n\n return [];\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n\n public async getResult(requestResultId: string): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionResultsResultIdGet(requestResultId, this._apiVersion)\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return response.data;\n }\n\n return undefined;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n\n public async getResults(requestId: string): Promise {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsIdResultsGet(requestId, this._apiVersion)\n .then((response: AxiosResponse) => {\n if (response && Array.isArray(response.data)) {\n return response.data;\n }\n return undefined;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n\n public getData(\n params: RRIQueryParams,\n ): Observable> {\n let currentPage = undefined;\n let pageSize = undefined;\n let sort = undefined;\n let filters = undefined;\n let tags = undefined;\n let includeResults = undefined;\n\n if (params) {\n if (params.pagination) {\n if (params.pagination.currentPage) {\n currentPage = params.pagination.currentPage;\n }\n\n if (params.pagination.pageSize) {\n pageSize = params.pagination.pageSize;\n }\n }\n\n if (params.sort) {\n sort = this.formatSortBy(params.sort);\n }\n\n if (params.filters) {\n filters = this.formatFilters(params.filters);\n }\n\n if (params.includeResult) {\n includeResults = true;\n }\n\n // have to send as undefined if empty, or we only get results with tags\n if (params.tags && Object.keys(params.tags).length) {\n tags = JSON.stringify(params.tags);\n }\n }\n\n return from(\n this._requestApi.vversionConfigurationsGet(\n this._apiVersion,\n currentPage,\n pageSize,\n sort,\n filters,\n tags,\n includeResults,\n ),\n ).pipe(\n map((response: AxiosResponse) => {\n if (response && response.data) {\n return {\n pagination: {\n currentPage: response.data.currentPage,\n pageCount: response.data.pageCount,\n pageSize: response.data.pageSize,\n recordCount: response.data.recordCount,\n },\n results: response.data.results.map(\n this.mapConfigurationEmployeeOnlyDTOToIRequest,\n ),\n };\n }\n\n return undefined;\n }),\n );\n }\n\n public getRequestAggregates(\n filters?: RRIFilterOutput[],\n tags?: RRIQueryParams['tags'],\n ): Observable {\n // this.checkProductTypeFilter(filters);\n const filtersString = this.formatFilters(filters);\n const tagsString = tags ? JSON.stringify(tags) : undefined;\n\n return new Observable((observer) => {\n this._requestApi\n .vversionConfigurationsAggregatesGet(\n this._apiVersion,\n filtersString,\n tagsString,\n )\n .then((response: AxiosResponse<{ [key: string]: any }>) => {\n if (response) {\n observer.next(this.mapObjectToIRequestAggregate(response.data));\n observer.complete();\n }\n });\n });\n }\n\n public getRequestPageCount(filter: string) {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsGet(\n this._apiVersion,\n 1,\n -1,\n 'createdAt',\n filter,\n '',\n false,\n )\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return response.data.recordCount;\n }\n\n return undefined;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n public getPublicRequestsPageCount(filter: string) {\n if (this._requestApi && this._apiVersion) {\n return this._requestApi\n .vversionConfigurationsPublicGet(\n this._apiVersion,\n 1,\n -1,\n 'createdAt',\n filter,\n false,\n )\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return response.data.recordCount;\n }\n\n return undefined;\n });\n }\n\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n\n private loadAllPriorities(): void {\n if (this._requestApi && this._apiVersion) {\n this.allPriorities_loading$.next(true);\n\n this._requestApi\n .vversionConfigurationsPrioritiesGet(this._apiVersion)\n .then((response: AxiosResponse) => {\n if (response && Array.isArray(response.data)) {\n this.allPriorities$.next(\n response.data.map((value: ConfigurationPriorityDTO) => ({\n id: value.name,\n name: value.name,\n })),\n );\n }\n })\n .catch((reason: any) => {\n this._logger.error('Error while fetching priorities.', reason);\n })\n .finally(() => {\n this.allPriorities_loading$.next(false);\n });\n } else {\n this._logger.warn(\n 'There is no Request API Sdk Configuration or API version.',\n );\n }\n }\n\n private checkProductTypeFilter(filters?: RRIFilterOutput[]) {\n const productTypeFilter = this.findFilterByFieldName(\n 'productTypeId',\n filters,\n );\n if (!productTypeFilter) {\n filters.push({\n type: RR_FILTER_TYPE.TEXT_SEARCH,\n filterBy: {\n fieldName: 'productTypeId',\n value: [\n PRODUCT_TYPE.GARMENT_2D,\n PRODUCT_TYPE.GARMENT_3D,\n PRODUCT_TYPE.ACCESSORY_3D,\n PRODUCT_TYPE.OUTFIT_2D,\n ],\n defaultValue: '',\n },\n });\n } else if (\n !productTypeFilter.filterBy.value ||\n (productTypeFilter.filterBy.value && !productTypeFilter.filterBy.value.id)\n ) {\n productTypeFilter.filterBy.value = [\n PRODUCT_TYPE.GARMENT_2D,\n PRODUCT_TYPE.GARMENT_3D,\n PRODUCT_TYPE.ACCESSORY_3D,\n PRODUCT_TYPE.OUTFIT_2D,\n ];\n }\n }\n\n private mapConfigurationStateDTOToRequestHistory = (\n stateLogDto: ConfigurationStateLogDTO,\n ): IRequestHistoryState => ({\n configurationId: stateLogDto.configurationId,\n createdAt: stateLogDto.createdAt,\n entryId: stateLogDto.entryId,\n metadata: stateLogDto.metadata,\n state: stateLogDto.state,\n user: {\n ...stateLogDto.user,\n createdAt: stateLogDto.user?.createdAt ?? Date.now(),\n modifiedAt: stateLogDto.user?.modifiedAt ?? Date.now(),\n },\n });\n\n private mapObjectToIRequestAggregate = (object: {\n [key: string]: any;\n }): IRequestsAggregate => {\n if (object.statesCount && Array.isArray(object.statesCount)) {\n return {\n statesCount: object.statesCount,\n };\n }\n\n return { statesCount: [] };\n };\n\n private mapConfigurationEmployeeOnlyDTOToIRequest = (\n dto: ConfigurationEmployeeOnlyDTO,\n ): IRequest => ({\n ...dto,\n productTypeId: `${dto.productTypeId}`,\n ThumbnailImageID: dto.thumbnailImageID,\n tags: (dto.tags ?? []).map((t) => ({\n tagKeyColor: t.tagKeyColor ?? '#333',\n tagKeyName: t.tagKeyName,\n value: t.value ?? null,\n })),\n });\n\n protected initService = (sdkConfig: ICsApiSdkConfiguration) => {\n if (\n sdkConfig !== undefined &&\n sdkConfig.configurationsApiSdk &&\n sdkConfig.apiVersion\n ) {\n this._apiVersion = sdkConfig.apiVersion;\n this._requestApi = sdkConfig.configurationsApiSdk;\n this.loadAllPriorities();\n }\n };\n}\n","import { Injectable } from '@angular/core';\nimport {\n ConfigurationHasTagKeyDTO,\n TagKeyBindingModel,\n TagKeyDTO,\n TagsApi,\n} from '@reactivereality/cs-api-sdk';\nimport { v4 as uuid } from 'uuid';\nimport { ILogger } from '../../logging';\nimport { IApiSdkService, ICsApiSdkConfiguration, ITagService } from '../api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TagService implements ITagService {\n private _tagsApi: TagsApi;\n private _apiVersion: string;\n\n constructor(\n private _apiSdkService: IApiSdkService,\n private _logger: ILogger,\n ) {\n this._apiSdkService.sdkConfig$.subscribe({\n next: this.initService,\n error: this.initProcessServiceHasError,\n });\n }\n async getTagOnlyForCustomer(id: uuid, customerId: uuid): Promise {\n const response = await this._tagsApi.vversionTagsGet(\n this._apiVersion,\n 1,\n -1,\n 'name',\n `{\"id\": \"${id}\", \"customerId\" : \"${customerId}\"}`,\n );\n if (\n response &&\n response.data &&\n response.data.results &&\n response.data.results.length === 1\n ) {\n return response.data.results[0];\n }\n return undefined;\n }\n async deleteTag(id: uuid): Promise {\n const response = await this._tagsApi.vversionTagsTagKeyIdDelete(\n id,\n this._apiVersion,\n );\n if (response && response.data) {\n return response.data;\n }\n return undefined;\n }\n async deleteTagFromConfiguration(\n id: uuid,\n configurationId: uuid,\n ): Promise {\n const response =\n await this._tagsApi.vversionTagsTagKeyIdConfigurationsConfigurationIdDelete(\n id,\n configurationId,\n this._apiVersion,\n );\n if (response && response.data) {\n return response.data;\n }\n return undefined;\n }\n async addTagToConfiguration(\n id: uuid,\n configurationId: uuid,\n ): Promise {\n const response =\n await this._tagsApi.vversionTagsTagKeyIdConfigurationsConfigurationIdPut(\n id,\n configurationId,\n this._apiVersion,\n );\n if (response && response.data) {\n return response.data;\n }\n return undefined;\n }\n async createOrUpdateTag(id: string, tag: TagKeyBindingModel): Promise {\n await this._tagsApi.vversionTagsTagKeyIdPut(id, this._apiVersion, tag);\n }\n async getAllTags(): Promise {\n const response = await this._tagsApi.vversionTagsGet(\n this._apiVersion,\n 1,\n -1,\n 'name',\n );\n if (response && response.data) {\n return response.data.results;\n }\n return undefined;\n }\n async getAllTagsByCustomerId(customerId: string): Promise {\n const response = await this._tagsApi.vversionTagsGet(\n this._apiVersion,\n 1,\n -1,\n 'name',\n `{\"customerId\": \"${customerId}\"}`,\n );\n if (response && response.data) {\n return response.data.results;\n }\n return undefined;\n }\n async getTag(id: uuid): Promise {\n const response = await this._tagsApi.vversionTagsGet(\n this._apiVersion,\n 1,\n -1,\n 'name',\n `{\"id\": \"${id}\"}`,\n );\n if (\n response &&\n response.data &&\n response.data.results &&\n response.data.results.length === 1\n ) {\n return response.data.results[0];\n }\n return undefined;\n }\n protected initService = (sdkConfig: ICsApiSdkConfiguration) => {\n if (\n sdkConfig !== undefined &&\n sdkConfig.tagsApiSdk &&\n sdkConfig.apiVersion\n ) {\n this._apiVersion = sdkConfig.apiVersion;\n this._tagsApi = sdkConfig.tagsApiSdk;\n }\n };\n private initProcessServiceHasError = (error: Error) => {\n this._logger.error('Cannot initate process API.', error);\n };\n}\n","export enum USER_FEATURE_FLAGS {\n PICTOFITCMS_APPROVE_REQUEST = 'PICTOFITCMS_APPROVE_REQUEST',\n PICTOFITCMS_REJECT_REQUEST = 'PICTOFITCMS_REJECT_REQUEST',\n RR_EMPLOYEE = 'RR_EMPLOYEE',\n}\n","import { Injectable } from '@angular/core';\nimport {\n AddApiKeyResponseDto,\n ApiKeyDto,\n UserDTO,\n UsersApi,\n} from '@reactivereality/cs-api-sdk';\nimport { AxiosResponse } from 'axios';\nimport { BehaviorSubject, Observable, first, lastValueFrom } from 'rxjs';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport {\n IApiSdkService,\n ICsApiSdkConfiguration,\n IUser,\n IUserService,\n} from '../api';\nimport { USER_FEATURE_FLAGS } from '../enums/user-feature-flags.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserService implements IUserService {\n public readonly me: Observable;\n\n private _apiVersion: string;\n private _usersApi: UsersApi;\n\n private _me: BehaviorSubject;\n\n constructor(\n private _logger: ILogger,\n private _apiSdkService: IApiSdkService,\n ) {\n this._logger.info('Creating user service ...');\n\n this._me = new BehaviorSubject(undefined);\n\n this.me = this._me.asObservable();\n\n this._apiSdkService.sdkConfig$.subscribe({\n next: this.initUserService,\n error: this.initUserServiceHasError,\n });\n }\n\n public updateMe(me: Partial): Promise {\n if (!me.id) throw new Error('Missing ID when updating user profile.');\n\n return this._usersApi\n .vversionUsersIdPut(me.id, this._apiVersion, {\n email: me.email,\n firstName: me.firstName,\n lastName: me.lastName,\n })\n .then(() => {\n this.loadMe();\n });\n }\n\n public async listApiKeys(): Promise> {\n const response = await this._usersApi.vversionUsersApikeyGet(\n this._apiVersion,\n );\n return response.data;\n }\n public async newApiKey(name?: string): Promise {\n const response = await this._usersApi.vversionUsersApikeyPut(\n this._apiVersion,\n {\n name,\n },\n );\n return response.data;\n }\n public async revokeApiKey(id: string): Promise {\n await this._usersApi.vversionUsersApikeyIdDelete(id, this._apiVersion);\n }\n\n public async canUserApproveRequest(): Promise {\n return lastValueFrom(this.me).then((user: IUser) => {\n if (user && Array.isArray(user.featureFlags)) {\n return user.featureFlags.includes(\n USER_FEATURE_FLAGS.PICTOFITCMS_REJECT_REQUEST,\n );\n }\n\n return false;\n });\n }\n\n public async canUserRejectRequest(): Promise {\n return lastValueFrom(this.me).then((user: IUser) => {\n if (user && Array.isArray(user.featureFlags)) {\n return user.featureFlags.includes(\n USER_FEATURE_FLAGS.PICTOFITCMS_REJECT_REQUEST,\n );\n }\n\n return false;\n });\n }\n\n public refreshMeUser(): void {\n this._apiSdkService.sdkConfig$.pipe(first()).subscribe({\n next: this.loadMe,\n error: this.errorOnFetchingMeUser,\n });\n }\n\n private loadMe(): void {\n this._usersApi\n .vversionUsersMeGet(this._apiVersion)\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n this._me.next(this.mapUserDTOToIUser(response.data));\n }\n })\n .catch(this.errorOnFetchingMeUser);\n }\n\n private initUserService = (apiSdkConfig: ICsApiSdkConfiguration) => {\n if (apiSdkConfig && apiSdkConfig.usersApiSdk && apiSdkConfig.apiVersion) {\n this._apiVersion = apiSdkConfig.apiVersion;\n this._usersApi = apiSdkConfig.usersApiSdk;\n\n this.loadMe();\n }\n };\n\n private initUserServiceHasError = (error: Error) => {\n this._logger.error('Cannot initate User API.', error);\n };\n\n private errorOnFetchingMeUser = (error: Error) => {\n this._logger.error('Error when fetching me user.', error);\n };\n\n private mapUserDTOToIUser = (user: UserDTO): IUser => {\n return {\n id: user.id,\n firstName: user.firstName,\n lastName: user.lastName,\n email: user.email,\n createdAt: user.createdAt,\n modifiedAt: user.modifiedAt,\n name: `${user.firstName} ${user.lastName}`,\n featureFlags: Array.isArray(user.featureFlags) ? user.featureFlags : [],\n };\n };\n}\n","export const defaultJsonSerializer = JSON;\n","export function invariant(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(\n message != null ? message : 'Unexpected invariant triggered.',\n );\n }\n}\n","import { invariant } from '../jsutils/invariant.mjs';\nconst LineRegExp = /\\r\\n|[\\n\\r]/g;\n/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n let lastLineStart = 0;\n let line = 1;\n\n for (const match of source.body.matchAll(LineRegExp)) {\n typeof match.index === 'number' || invariant(false);\n\n if (match.index >= position) {\n break;\n }\n\n lastLineStart = match.index + match[0].length;\n line += 1;\n }\n\n return {\n line,\n column: position + 1 - lastLineStart,\n };\n}\n","import { getLocation } from './location.mjs';\n\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\nexport function printLocation(location) {\n return printSourceLocation(\n location.source,\n getLocation(location.source, location.start),\n );\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n const firstLineColumnOffset = source.locationOffset.column - 1;\n const body = ''.padStart(firstLineColumnOffset) + source.body;\n const lineIndex = sourceLocation.line - 1;\n const lineOffset = source.locationOffset.line - 1;\n const lineNum = sourceLocation.line + lineOffset;\n const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n const columnNum = sourceLocation.column + columnOffset;\n const locationStr = `${source.name}:${lineNum}:${columnNum}\\n`;\n const lines = body.split(/\\r\\n|[\\n\\r]/g);\n const locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n const subLineIndex = Math.floor(columnNum / 80);\n const subLineColumnNum = columnNum % 80;\n const subLines = [];\n\n for (let i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return (\n locationStr +\n printPrefixedLines([\n [`${lineNum} |`, subLines[0]],\n ...subLines.slice(1, subLineIndex + 1).map((subLine) => ['|', subLine]),\n ['|', '^'.padStart(subLineColumnNum)],\n ['|', subLines[subLineIndex + 1]],\n ])\n );\n }\n\n return (\n locationStr +\n printPrefixedLines([\n // Lines specified like this: [\"prefix\", \"string\"],\n [`${lineNum - 1} |`, lines[lineIndex - 1]],\n [`${lineNum} |`, locationLine],\n ['|', '^'.padStart(columnNum)],\n [`${lineNum + 1} |`, lines[lineIndex + 1]],\n ])\n );\n}\n\nfunction printPrefixedLines(lines) {\n const existingLines = lines.filter(([_, line]) => line !== undefined);\n const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length));\n return existingLines\n .map(([prefix, line]) => prefix.padStart(padLen) + (line ? ' ' + line : ''))\n .join('\\n');\n}\n","import { isObjectLike } from '../jsutils/isObjectLike.mjs';\nimport { getLocation } from '../language/location.mjs';\nimport {\n printLocation,\n printSourceLocation,\n} from '../language/printLocation.mjs';\n\nfunction toNormalizedOptions(args) {\n const firstArg = args[0];\n\n if (firstArg == null || 'kind' in firstArg || 'length' in firstArg) {\n return {\n nodes: firstArg,\n source: args[1],\n positions: args[2],\n path: args[3],\n originalError: args[4],\n extensions: args[5],\n };\n }\n\n return firstArg;\n}\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport class GraphQLError extends Error {\n /**\n * An array of `{ line, column }` locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n\n /**\n * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead.\n */\n constructor(message, ...rawArgs) {\n var _this$nodes, _nodeLocations$, _ref;\n\n const { nodes, source, positions, path, originalError, extensions } =\n toNormalizedOptions(rawArgs);\n super(message);\n this.name = 'GraphQLError';\n this.path = path !== null && path !== void 0 ? path : undefined;\n this.originalError =\n originalError !== null && originalError !== void 0\n ? originalError\n : undefined; // Compute list of blame nodes.\n\n this.nodes = undefinedIfEmpty(\n Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined,\n );\n const nodeLocations = undefinedIfEmpty(\n (_this$nodes = this.nodes) === null || _this$nodes === void 0\n ? void 0\n : _this$nodes.map((node) => node.loc).filter((loc) => loc != null),\n ); // Compute locations in the source for the given nodes/positions.\n\n this.source =\n source !== null && source !== void 0\n ? source\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : (_nodeLocations$ = nodeLocations[0]) === null ||\n _nodeLocations$ === void 0\n ? void 0\n : _nodeLocations$.source;\n this.positions =\n positions !== null && positions !== void 0\n ? positions\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : nodeLocations.map((loc) => loc.start);\n this.locations =\n positions && source\n ? positions.map((pos) => getLocation(source, pos))\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : nodeLocations.map((loc) => getLocation(loc.source, loc.start));\n const originalExtensions = isObjectLike(\n originalError === null || originalError === void 0\n ? void 0\n : originalError.extensions,\n )\n ? originalError === null || originalError === void 0\n ? void 0\n : originalError.extensions\n : undefined;\n this.extensions =\n (_ref =\n extensions !== null && extensions !== void 0\n ? extensions\n : originalExtensions) !== null && _ref !== void 0\n ? _ref\n : Object.create(null); // Only properties prescribed by the spec should be enumerable.\n // Keep the rest as non-enumerable.\n\n Object.defineProperties(this, {\n message: {\n writable: true,\n enumerable: true,\n },\n name: {\n enumerable: false,\n },\n nodes: {\n enumerable: false,\n },\n source: {\n enumerable: false,\n },\n positions: {\n enumerable: false,\n },\n originalError: {\n enumerable: false,\n },\n }); // Include (non-enumerable) stack trace.\n\n /* c8 ignore start */\n // FIXME: https://github.com/graphql/graphql-js/issues/2317\n\n if (\n originalError !== null &&\n originalError !== void 0 &&\n originalError.stack\n ) {\n Object.defineProperty(this, 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true,\n });\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, GraphQLError);\n } else {\n Object.defineProperty(this, 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true,\n });\n }\n /* c8 ignore stop */\n }\n\n get [Symbol.toStringTag]() {\n return 'GraphQLError';\n }\n\n toString() {\n let output = this.message;\n\n if (this.nodes) {\n for (const node of this.nodes) {\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (this.source && this.locations) {\n for (const location of this.locations) {\n output += '\\n\\n' + printSourceLocation(this.source, location);\n }\n }\n\n return output;\n }\n\n toJSON() {\n const formattedError = {\n message: this.message,\n };\n\n if (this.locations != null) {\n formattedError.locations = this.locations;\n }\n\n if (this.path != null) {\n formattedError.path = this.path;\n }\n\n if (this.extensions != null && Object.keys(this.extensions).length > 0) {\n formattedError.extensions = this.extensions;\n }\n\n return formattedError;\n }\n}\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * See: https://spec.graphql.org/draft/#sec-Errors\n */\n\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n *\n * @deprecated Please use `error.toString` instead. Will be removed in v17\n */\nexport function printError(error) {\n return error.toString();\n}\n/**\n * Given a GraphQLError, format it according to the rules described by the\n * Response Format, Errors section of the GraphQL Specification.\n *\n * @deprecated Please use `error.toJSON` instead. Will be removed in v17\n */\n\nexport function formatError(error) {\n return error.toJSON();\n}\n","/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport function isObjectLike(value) {\n return typeof value == 'object' && value !== null;\n}\n","import { GraphQLError } from './GraphQLError.mjs';\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(`Syntax Error: ${description}`, {\n source,\n positions: [position],\n });\n}\n","/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport class Location {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n constructor(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n get [Symbol.toStringTag]() {\n return 'Location';\n }\n\n toJSON() {\n return {\n start: this.start,\n end: this.end,\n };\n }\n}\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport class Token {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n *\n * Note: is undefined for punctuation tokens, but typed as string for\n * convenience in the parser.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. is always the first node and \n * the last.\n */\n constructor(kind, start, end, line, column, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n this.value = value;\n this.prev = null;\n this.next = null;\n }\n\n get [Symbol.toStringTag]() {\n return 'Token';\n }\n\n toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column,\n };\n }\n}\n/**\n * The list of all possible AST node types.\n */\n\n/**\n * @internal\n */\nexport const QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: [\n 'name',\n 'variableDefinitions',\n 'directives',\n 'selectionSet',\n ],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: [\n 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0\n 'variableDefinitions',\n 'typeCondition',\n 'directives',\n 'selectionSet',\n ],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: [\n 'description',\n 'name',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n InterfaceTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields'],\n};\nconst kindValues = new Set(Object.keys(QueryDocumentKeys));\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n const maybeKind =\n maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;\n return typeof maybeKind === 'string' && kindValues.has(maybeKind);\n}\n/** Name */\n\nvar OperationTypeNode;\n\n(function (OperationTypeNode) {\n OperationTypeNode['QUERY'] = 'query';\n OperationTypeNode['MUTATION'] = 'mutation';\n OperationTypeNode['SUBSCRIPTION'] = 'subscription';\n})(OperationTypeNode || (OperationTypeNode = {}));\n\nexport { OperationTypeNode };\n","/**\n * The set of allowed directive location values.\n */\nvar DirectiveLocation;\n\n(function (DirectiveLocation) {\n DirectiveLocation['QUERY'] = 'QUERY';\n DirectiveLocation['MUTATION'] = 'MUTATION';\n DirectiveLocation['SUBSCRIPTION'] = 'SUBSCRIPTION';\n DirectiveLocation['FIELD'] = 'FIELD';\n DirectiveLocation['FRAGMENT_DEFINITION'] = 'FRAGMENT_DEFINITION';\n DirectiveLocation['FRAGMENT_SPREAD'] = 'FRAGMENT_SPREAD';\n DirectiveLocation['INLINE_FRAGMENT'] = 'INLINE_FRAGMENT';\n DirectiveLocation['VARIABLE_DEFINITION'] = 'VARIABLE_DEFINITION';\n DirectiveLocation['SCHEMA'] = 'SCHEMA';\n DirectiveLocation['SCALAR'] = 'SCALAR';\n DirectiveLocation['OBJECT'] = 'OBJECT';\n DirectiveLocation['FIELD_DEFINITION'] = 'FIELD_DEFINITION';\n DirectiveLocation['ARGUMENT_DEFINITION'] = 'ARGUMENT_DEFINITION';\n DirectiveLocation['INTERFACE'] = 'INTERFACE';\n DirectiveLocation['UNION'] = 'UNION';\n DirectiveLocation['ENUM'] = 'ENUM';\n DirectiveLocation['ENUM_VALUE'] = 'ENUM_VALUE';\n DirectiveLocation['INPUT_OBJECT'] = 'INPUT_OBJECT';\n DirectiveLocation['INPUT_FIELD_DEFINITION'] = 'INPUT_FIELD_DEFINITION';\n})(DirectiveLocation || (DirectiveLocation = {}));\n\nexport { DirectiveLocation };\n/**\n * The enum type representing the directive location values.\n *\n * @deprecated Please use `DirectiveLocation`. Will be remove in v17.\n */\n","/**\n * The set of allowed kind values for AST nodes.\n */\nvar Kind;\n\n(function (Kind) {\n Kind['NAME'] = 'Name';\n Kind['DOCUMENT'] = 'Document';\n Kind['OPERATION_DEFINITION'] = 'OperationDefinition';\n Kind['VARIABLE_DEFINITION'] = 'VariableDefinition';\n Kind['SELECTION_SET'] = 'SelectionSet';\n Kind['FIELD'] = 'Field';\n Kind['ARGUMENT'] = 'Argument';\n Kind['FRAGMENT_SPREAD'] = 'FragmentSpread';\n Kind['INLINE_FRAGMENT'] = 'InlineFragment';\n Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition';\n Kind['VARIABLE'] = 'Variable';\n Kind['INT'] = 'IntValue';\n Kind['FLOAT'] = 'FloatValue';\n Kind['STRING'] = 'StringValue';\n Kind['BOOLEAN'] = 'BooleanValue';\n Kind['NULL'] = 'NullValue';\n Kind['ENUM'] = 'EnumValue';\n Kind['LIST'] = 'ListValue';\n Kind['OBJECT'] = 'ObjectValue';\n Kind['OBJECT_FIELD'] = 'ObjectField';\n Kind['DIRECTIVE'] = 'Directive';\n Kind['NAMED_TYPE'] = 'NamedType';\n Kind['LIST_TYPE'] = 'ListType';\n Kind['NON_NULL_TYPE'] = 'NonNullType';\n Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition';\n Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition';\n Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition';\n Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition';\n Kind['FIELD_DEFINITION'] = 'FieldDefinition';\n Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition';\n Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition';\n Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition';\n Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition';\n Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition';\n Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';\n Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';\n Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';\n Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';\n Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';\n Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';\n Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension';\n Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension';\n Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension';\n})(Kind || (Kind = {}));\n\nexport { Kind };\n/**\n * The enum type representing the possible kind values of AST nodes.\n *\n * @deprecated Please use `Kind`. Will be remove in v17.\n */\n","/**\n * ```\n * WhiteSpace ::\n * - \"Horizontal Tab (U+0009)\"\n * - \"Space (U+0020)\"\n * ```\n * @internal\n */\nexport function isWhiteSpace(code) {\n return code === 0x0009 || code === 0x0020;\n}\n/**\n * ```\n * Digit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * ```\n * @internal\n */\n\nexport function isDigit(code) {\n return code >= 0x0030 && code <= 0x0039;\n}\n/**\n * ```\n * Letter :: one of\n * - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M`\n * - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z`\n * - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m`\n * - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z`\n * ```\n * @internal\n */\n\nexport function isLetter(code) {\n return (\n (code >= 0x0061 && code <= 0x007a) || // A-Z\n (code >= 0x0041 && code <= 0x005a) // a-z\n );\n}\n/**\n * ```\n * NameStart ::\n * - Letter\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameStart(code) {\n return isLetter(code) || code === 0x005f;\n}\n/**\n * ```\n * NameContinue ::\n * - Letter\n * - Digit\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameContinue(code) {\n return isLetter(code) || isDigit(code) || code === 0x005f;\n}\n","import { isWhiteSpace } from './characterClasses.mjs';\n/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\n\nexport function dedentBlockStringLines(lines) {\n var _firstNonEmptyLine2;\n\n let commonIndent = Number.MAX_SAFE_INTEGER;\n let firstNonEmptyLine = null;\n let lastNonEmptyLine = -1;\n\n for (let i = 0; i < lines.length; ++i) {\n var _firstNonEmptyLine;\n\n const line = lines[i];\n const indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n firstNonEmptyLine =\n (_firstNonEmptyLine = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine !== void 0\n ? _firstNonEmptyLine\n : i;\n lastNonEmptyLine = i;\n\n if (i !== 0 && indent < commonIndent) {\n commonIndent = indent;\n }\n }\n\n return lines // Remove common indentation from all lines but first.\n .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines.\n .slice(\n (_firstNonEmptyLine2 = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine2 !== void 0\n ? _firstNonEmptyLine2\n : 0,\n lastNonEmptyLine + 1,\n );\n}\n\nfunction leadingWhitespace(str) {\n let i = 0;\n\n while (i < str.length && isWhiteSpace(str.charCodeAt(i))) {\n ++i;\n }\n\n return i;\n}\n/**\n * @internal\n */\n\nexport function isPrintableAsBlockString(value) {\n if (value === '') {\n return true; // empty string is printable\n }\n\n let isEmptyLine = true;\n let hasIndent = false;\n let hasCommonIndent = true;\n let seenNonEmptyLine = false;\n\n for (let i = 0; i < value.length; ++i) {\n switch (value.codePointAt(i)) {\n case 0x0000:\n case 0x0001:\n case 0x0002:\n case 0x0003:\n case 0x0004:\n case 0x0005:\n case 0x0006:\n case 0x0007:\n case 0x0008:\n case 0x000b:\n case 0x000c:\n case 0x000e:\n case 0x000f:\n return false;\n // Has non-printable characters\n\n case 0x000d:\n // \\r\n return false;\n // Has \\r or \\r\\n which will be replaced as \\n\n\n case 10:\n // \\n\n if (isEmptyLine && !seenNonEmptyLine) {\n return false; // Has leading new line\n }\n\n seenNonEmptyLine = true;\n isEmptyLine = true;\n hasIndent = false;\n break;\n\n case 9: // \\t\n\n case 32:\n // \n hasIndent || (hasIndent = isEmptyLine);\n break;\n\n default:\n hasCommonIndent && (hasCommonIndent = hasIndent);\n isEmptyLine = false;\n }\n }\n\n if (isEmptyLine) {\n return false; // Has trailing empty lines\n }\n\n if (hasCommonIndent && seenNonEmptyLine) {\n return false; // Has internal indent\n }\n\n return true;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value, options) {\n const escapedValue = value.replace(/\"\"\"/g, '\\\\\"\"\"'); // Expand a block string's raw value into independent lines.\n\n const lines = escapedValue.split(/\\r\\n|[\\n\\r]/g);\n const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line\n\n const forceLeadingNewLine =\n lines.length > 1 &&\n lines\n .slice(1)\n .every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0))); // Trailing triple quotes just looks confusing but doesn't force trailing new line\n\n const hasTrailingTripleQuotes = escapedValue.endsWith('\\\\\"\"\"'); // Trailing quote (single or double) or slash forces trailing new line\n\n const hasTrailingQuote = value.endsWith('\"') && !hasTrailingTripleQuotes;\n const hasTrailingSlash = value.endsWith('\\\\');\n const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;\n const printAsMultipleLines =\n !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability\n (!isSingleLine ||\n value.length > 70 ||\n forceTrailingNewline ||\n forceLeadingNewLine ||\n hasTrailingTripleQuotes);\n let result = ''; // Format a multi-line block quote to account for leading space.\n\n const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0));\n\n if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) {\n result += '\\n';\n }\n\n result += escapedValue;\n\n if (printAsMultipleLines || forceTrailingNewline) {\n result += '\\n';\n }\n\n return '\"\"\"' + result + '\"\"\"';\n}\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nvar TokenKind;\n\n(function (TokenKind) {\n TokenKind['SOF'] = '';\n TokenKind['EOF'] = '';\n TokenKind['BANG'] = '!';\n TokenKind['DOLLAR'] = '$';\n TokenKind['AMP'] = '&';\n TokenKind['PAREN_L'] = '(';\n TokenKind['PAREN_R'] = ')';\n TokenKind['SPREAD'] = '...';\n TokenKind['COLON'] = ':';\n TokenKind['EQUALS'] = '=';\n TokenKind['AT'] = '@';\n TokenKind['BRACKET_L'] = '[';\n TokenKind['BRACKET_R'] = ']';\n TokenKind['BRACE_L'] = '{';\n TokenKind['PIPE'] = '|';\n TokenKind['BRACE_R'] = '}';\n TokenKind['NAME'] = 'Name';\n TokenKind['INT'] = 'Int';\n TokenKind['FLOAT'] = 'Float';\n TokenKind['STRING'] = 'String';\n TokenKind['BLOCK_STRING'] = 'BlockString';\n TokenKind['COMMENT'] = 'Comment';\n})(TokenKind || (TokenKind = {}));\n\nexport { TokenKind };\n/**\n * The enum type representing the token kinds values.\n *\n * @deprecated Please use `TokenKind`. Will be remove in v17.\n */\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Token } from './ast.mjs';\nimport { dedentBlockStringLines } from './blockString.mjs';\nimport { isDigit, isNameContinue, isNameStart } from './characterClasses.mjs';\nimport { TokenKind } from './tokenKind.mjs';\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport class Lexer {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n constructor(source) {\n const startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n\n get [Symbol.toStringTag]() {\n return 'Lexer';\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n advance() {\n this.lastToken = this.token;\n const token = (this.token = this.lookahead());\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n\n lookahead() {\n let token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n if (token.next) {\n token = token.next;\n } else {\n // Read the next token and form a link in the token linked-list.\n const nextToken = readNextToken(this, token.end); // @ts-expect-error next is only mutable during parsing.\n\n token.next = nextToken; // @ts-expect-error prev is only mutable during parsing.\n\n nextToken.prev = token;\n token = nextToken;\n }\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n }\n}\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return (\n kind === TokenKind.BANG ||\n kind === TokenKind.DOLLAR ||\n kind === TokenKind.AMP ||\n kind === TokenKind.PAREN_L ||\n kind === TokenKind.PAREN_R ||\n kind === TokenKind.SPREAD ||\n kind === TokenKind.COLON ||\n kind === TokenKind.EQUALS ||\n kind === TokenKind.AT ||\n kind === TokenKind.BRACKET_L ||\n kind === TokenKind.BRACKET_R ||\n kind === TokenKind.BRACE_L ||\n kind === TokenKind.PIPE ||\n kind === TokenKind.BRACE_R\n );\n}\n/**\n * A Unicode scalar value is any Unicode code point except surrogate code\n * points. In other words, the inclusive ranges of values 0x0000 to 0xD7FF and\n * 0xE000 to 0x10FFFF.\n *\n * SourceCharacter ::\n * - \"Any Unicode scalar value\"\n */\n\nfunction isUnicodeScalarValue(code) {\n return (\n (code >= 0x0000 && code <= 0xd7ff) || (code >= 0xe000 && code <= 0x10ffff)\n );\n}\n/**\n * The GraphQL specification defines source text as a sequence of unicode scalar\n * values (which Unicode defines to exclude surrogate code points). However\n * JavaScript defines strings as a sequence of UTF-16 code units which may\n * include surrogates. A surrogate pair is a valid source character as it\n * encodes a supplementary code point (above U+FFFF), but unpaired surrogate\n * code points are not valid source characters.\n */\n\nfunction isSupplementaryCodePoint(body, location) {\n return (\n isLeadingSurrogate(body.charCodeAt(location)) &&\n isTrailingSurrogate(body.charCodeAt(location + 1))\n );\n}\n\nfunction isLeadingSurrogate(code) {\n return code >= 0xd800 && code <= 0xdbff;\n}\n\nfunction isTrailingSurrogate(code) {\n return code >= 0xdc00 && code <= 0xdfff;\n}\n/**\n * Prints the code point (or end of file reference) at a given location in a\n * source for use in error messages.\n *\n * Printable ASCII is printed quoted, while other points are printed in Unicode\n * code point form (ie. U+1234).\n */\n\nfunction printCodePointAt(lexer, location) {\n const code = lexer.source.body.codePointAt(location);\n\n if (code === undefined) {\n return TokenKind.EOF;\n } else if (code >= 0x0020 && code <= 0x007e) {\n // Printable ASCII\n const char = String.fromCodePoint(code);\n return char === '\"' ? \"'\\\"'\" : `\"${char}\"`;\n } // Unicode code point\n\n return 'U+' + code.toString(16).toUpperCase().padStart(4, '0');\n}\n/**\n * Create a token with line and column location information.\n */\n\nfunction createToken(lexer, kind, start, end, value) {\n const line = lexer.line;\n const col = 1 + start - lexer.lineStart;\n return new Token(kind, start, end, line, col, value);\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\nfunction readNextToken(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // SourceCharacter\n\n switch (code) {\n // Ignored ::\n // - UnicodeBOM\n // - WhiteSpace\n // - LineTerminator\n // - Comment\n // - Comma\n //\n // UnicodeBOM :: \"Byte Order Mark (U+FEFF)\"\n //\n // WhiteSpace ::\n // - \"Horizontal Tab (U+0009)\"\n // - \"Space (U+0020)\"\n //\n // Comma :: ,\n case 0xfeff: // \n\n case 0x0009: // \\t\n\n case 0x0020: // \n\n case 0x002c:\n // ,\n ++position;\n continue;\n // LineTerminator ::\n // - \"New Line (U+000A)\"\n // - \"Carriage Return (U+000D)\" [lookahead != \"New Line (U+000A)\"]\n // - \"Carriage Return (U+000D)\" \"New Line (U+000A)\"\n\n case 0x000a:\n // \\n\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n continue;\n\n case 0x000d:\n // \\r\n if (body.charCodeAt(position + 1) === 0x000a) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n continue;\n // Comment\n\n case 0x0023:\n // #\n return readComment(lexer, position);\n // Token ::\n // - Punctuator\n // - Name\n // - IntValue\n // - FloatValue\n // - StringValue\n //\n // Punctuator :: one of ! $ & ( ) ... : = @ [ ] { | }\n\n case 0x0021:\n // !\n return createToken(lexer, TokenKind.BANG, position, position + 1);\n\n case 0x0024:\n // $\n return createToken(lexer, TokenKind.DOLLAR, position, position + 1);\n\n case 0x0026:\n // &\n return createToken(lexer, TokenKind.AMP, position, position + 1);\n\n case 0x0028:\n // (\n return createToken(lexer, TokenKind.PAREN_L, position, position + 1);\n\n case 0x0029:\n // )\n return createToken(lexer, TokenKind.PAREN_R, position, position + 1);\n\n case 0x002e:\n // .\n if (\n body.charCodeAt(position + 1) === 0x002e &&\n body.charCodeAt(position + 2) === 0x002e\n ) {\n return createToken(lexer, TokenKind.SPREAD, position, position + 3);\n }\n\n break;\n\n case 0x003a:\n // :\n return createToken(lexer, TokenKind.COLON, position, position + 1);\n\n case 0x003d:\n // =\n return createToken(lexer, TokenKind.EQUALS, position, position + 1);\n\n case 0x0040:\n // @\n return createToken(lexer, TokenKind.AT, position, position + 1);\n\n case 0x005b:\n // [\n return createToken(lexer, TokenKind.BRACKET_L, position, position + 1);\n\n case 0x005d:\n // ]\n return createToken(lexer, TokenKind.BRACKET_R, position, position + 1);\n\n case 0x007b:\n // {\n return createToken(lexer, TokenKind.BRACE_L, position, position + 1);\n\n case 0x007c:\n // |\n return createToken(lexer, TokenKind.PIPE, position, position + 1);\n\n case 0x007d:\n // }\n return createToken(lexer, TokenKind.BRACE_R, position, position + 1);\n // StringValue\n\n case 0x0022:\n // \"\n if (\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022\n ) {\n return readBlockString(lexer, position);\n }\n\n return readString(lexer, position);\n } // IntValue | FloatValue (Digit | -)\n\n if (isDigit(code) || code === 0x002d) {\n return readNumber(lexer, position, code);\n } // Name\n\n if (isNameStart(code)) {\n return readName(lexer, position);\n }\n\n throw syntaxError(\n lexer.source,\n position,\n code === 0x0027\n ? 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?'\n : isUnicodeScalarValue(code) || isSupplementaryCodePoint(body, position)\n ? `Unexpected character: ${printCodePointAt(lexer, position)}.`\n : `Invalid character: ${printCodePointAt(lexer, position)}.`,\n );\n }\n\n return createToken(lexer, TokenKind.EOF, bodyLength, bodyLength);\n}\n/**\n * Reads a comment token from the source file.\n *\n * ```\n * Comment :: # CommentChar* [lookahead != CommentChar]\n *\n * CommentChar :: SourceCharacter but not LineTerminator\n * ```\n */\n\nfunction readComment(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // LineTerminator (\\n | \\r)\n\n if (code === 0x000a || code === 0x000d) {\n break;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n break;\n }\n }\n\n return createToken(\n lexer,\n TokenKind.COMMENT,\n start,\n position,\n body.slice(start + 1, position),\n );\n}\n/**\n * Reads a number token from the source file, either a FloatValue or an IntValue\n * depending on whether a FractionalPart or ExponentPart is encountered.\n *\n * ```\n * IntValue :: IntegerPart [lookahead != {Digit, `.`, NameStart}]\n *\n * IntegerPart ::\n * - NegativeSign? 0\n * - NegativeSign? NonZeroDigit Digit*\n *\n * NegativeSign :: -\n *\n * NonZeroDigit :: Digit but not `0`\n *\n * FloatValue ::\n * - IntegerPart FractionalPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n * - IntegerPart FractionalPart [lookahead != {Digit, `.`, NameStart}]\n * - IntegerPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n *\n * FractionalPart :: . Digit+\n *\n * ExponentPart :: ExponentIndicator Sign? Digit+\n *\n * ExponentIndicator :: one of `e` `E`\n *\n * Sign :: one of + -\n * ```\n */\n\nfunction readNumber(lexer, start, firstCode) {\n const body = lexer.source.body;\n let position = start;\n let code = firstCode;\n let isFloat = false; // NegativeSign (-)\n\n if (code === 0x002d) {\n code = body.charCodeAt(++position);\n } // Zero (0)\n\n if (code === 0x0030) {\n code = body.charCodeAt(++position);\n\n if (isDigit(code)) {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid number, unexpected digit after 0: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n } else {\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // Full stop (.)\n\n if (code === 0x002e) {\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // E e\n\n if (code === 0x0045 || code === 0x0065) {\n isFloat = true;\n code = body.charCodeAt(++position); // + -\n\n if (code === 0x002b || code === 0x002d) {\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n if (code === 0x002e || isNameStart(code)) {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid number, expected digit but got: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n\n return createToken(\n lexer,\n isFloat ? TokenKind.FLOAT : TokenKind.INT,\n start,\n position,\n body.slice(start, position),\n );\n}\n/**\n * Returns the new position in the source after reading one or more digits.\n */\n\nfunction readDigits(lexer, start, firstCode) {\n if (!isDigit(firstCode)) {\n throw syntaxError(\n lexer.source,\n start,\n `Invalid number, expected digit but got: ${printCodePointAt(\n lexer,\n start,\n )}.`,\n );\n }\n\n const body = lexer.source.body;\n let position = start + 1; // +1 to skip first firstCode\n\n while (isDigit(body.charCodeAt(position))) {\n ++position;\n }\n\n return position;\n}\n/**\n * Reads a single-quote string token from the source file.\n *\n * ```\n * StringValue ::\n * - `\"\"` [lookahead != `\"`]\n * - `\"` StringCharacter+ `\"`\n *\n * StringCharacter ::\n * - SourceCharacter but not `\"` or `\\` or LineTerminator\n * - `\\u` EscapedUnicode\n * - `\\` EscapedCharacter\n *\n * EscapedUnicode ::\n * - `{` HexDigit+ `}`\n * - HexDigit HexDigit HexDigit HexDigit\n *\n * EscapedCharacter :: one of `\"` `\\` `/` `b` `f` `n` `r` `t`\n * ```\n */\n\nfunction readString(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n let chunkStart = position;\n let value = '';\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // Closing Quote (\")\n\n if (code === 0x0022) {\n value += body.slice(chunkStart, position);\n return createToken(lexer, TokenKind.STRING, start, position + 1, value);\n } // Escape Sequence (\\)\n\n if (code === 0x005c) {\n value += body.slice(chunkStart, position);\n const escape =\n body.charCodeAt(position + 1) === 0x0075 // u\n ? body.charCodeAt(position + 2) === 0x007b // {\n ? readEscapedUnicodeVariableWidth(lexer, position)\n : readEscapedUnicodeFixedWidth(lexer, position)\n : readEscapedCharacter(lexer, position);\n value += escape.value;\n position += escape.size;\n chunkStart = position;\n continue;\n } // LineTerminator (\\n | \\r)\n\n if (code === 0x000a || code === 0x000d) {\n break;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character within String: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n }\n\n throw syntaxError(lexer.source, position, 'Unterminated string.');\n} // The string value and lexed size of an escape sequence.\n\nfunction readEscapedUnicodeVariableWidth(lexer, position) {\n const body = lexer.source.body;\n let point = 0;\n let size = 3; // Cannot be larger than 12 chars (\\u{00000000}).\n\n while (size < 12) {\n const code = body.charCodeAt(position + size++); // Closing Brace (})\n\n if (code === 0x007d) {\n // Must be at least 5 chars (\\u{0}) and encode a Unicode scalar value.\n if (size < 5 || !isUnicodeScalarValue(point)) {\n break;\n }\n\n return {\n value: String.fromCodePoint(point),\n size,\n };\n } // Append this hex digit to the code point.\n\n point = (point << 4) | readHexDigit(code);\n\n if (point < 0) {\n break;\n }\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid Unicode escape sequence: \"${body.slice(\n position,\n position + size,\n )}\".`,\n );\n}\n\nfunction readEscapedUnicodeFixedWidth(lexer, position) {\n const body = lexer.source.body;\n const code = read16BitHexCode(body, position + 2);\n\n if (isUnicodeScalarValue(code)) {\n return {\n value: String.fromCodePoint(code),\n size: 6,\n };\n } // GraphQL allows JSON-style surrogate pair escape sequences, but only when\n // a valid pair is formed.\n\n if (isLeadingSurrogate(code)) {\n // \\u\n if (\n body.charCodeAt(position + 6) === 0x005c &&\n body.charCodeAt(position + 7) === 0x0075\n ) {\n const trailingCode = read16BitHexCode(body, position + 8);\n\n if (isTrailingSurrogate(trailingCode)) {\n // JavaScript defines strings as a sequence of UTF-16 code units and\n // encodes Unicode code points above U+FFFF using a surrogate pair of\n // code units. Since this is a surrogate pair escape sequence, just\n // include both codes into the JavaScript string value. Had JavaScript\n // not been internally based on UTF-16, then this surrogate pair would\n // be decoded to retrieve the supplementary code point.\n return {\n value: String.fromCodePoint(code, trailingCode),\n size: 12,\n };\n }\n }\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid Unicode escape sequence: \"${body.slice(position, position + 6)}\".`,\n );\n}\n/**\n * Reads four hexadecimal characters and returns the positive integer that 16bit\n * hexadecimal string represents. For example, \"000f\" will return 15, and \"dead\"\n * will return 57005.\n *\n * Returns a negative number if any char was not a valid hexadecimal digit.\n */\n\nfunction read16BitHexCode(body, position) {\n // readHexDigit() returns -1 on error. ORing a negative value with any other\n // value always produces a negative value.\n return (\n (readHexDigit(body.charCodeAt(position)) << 12) |\n (readHexDigit(body.charCodeAt(position + 1)) << 8) |\n (readHexDigit(body.charCodeAt(position + 2)) << 4) |\n readHexDigit(body.charCodeAt(position + 3))\n );\n}\n/**\n * Reads a hexadecimal character and returns its positive integer value (0-15).\n *\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 if the provided character code was not a valid hexadecimal digit.\n *\n * HexDigit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * - `A` `B` `C` `D` `E` `F`\n * - `a` `b` `c` `d` `e` `f`\n */\n\nfunction readHexDigit(code) {\n return code >= 0x0030 && code <= 0x0039 // 0-9\n ? code - 0x0030\n : code >= 0x0041 && code <= 0x0046 // A-F\n ? code - 0x0037\n : code >= 0x0061 && code <= 0x0066 // a-f\n ? code - 0x0057\n : -1;\n}\n/**\n * | Escaped Character | Code Point | Character Name |\n * | ----------------- | ---------- | ---------------------------- |\n * | `\"` | U+0022 | double quote |\n * | `\\` | U+005C | reverse solidus (back slash) |\n * | `/` | U+002F | solidus (forward slash) |\n * | `b` | U+0008 | backspace |\n * | `f` | U+000C | form feed |\n * | `n` | U+000A | line feed (new line) |\n * | `r` | U+000D | carriage return |\n * | `t` | U+0009 | horizontal tab |\n */\n\nfunction readEscapedCharacter(lexer, position) {\n const body = lexer.source.body;\n const code = body.charCodeAt(position + 1);\n\n switch (code) {\n case 0x0022:\n // \"\n return {\n value: '\\u0022',\n size: 2,\n };\n\n case 0x005c:\n // \\\n return {\n value: '\\u005c',\n size: 2,\n };\n\n case 0x002f:\n // /\n return {\n value: '\\u002f',\n size: 2,\n };\n\n case 0x0062:\n // b\n return {\n value: '\\u0008',\n size: 2,\n };\n\n case 0x0066:\n // f\n return {\n value: '\\u000c',\n size: 2,\n };\n\n case 0x006e:\n // n\n return {\n value: '\\u000a',\n size: 2,\n };\n\n case 0x0072:\n // r\n return {\n value: '\\u000d',\n size: 2,\n };\n\n case 0x0074:\n // t\n return {\n value: '\\u0009',\n size: 2,\n };\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character escape sequence: \"${body.slice(\n position,\n position + 2,\n )}\".`,\n );\n}\n/**\n * Reads a block string token from the source file.\n *\n * ```\n * StringValue ::\n * - `\"\"\"` BlockStringCharacter* `\"\"\"`\n *\n * BlockStringCharacter ::\n * - SourceCharacter but not `\"\"\"` or `\\\"\"\"`\n * - `\\\"\"\"`\n * ```\n */\n\nfunction readBlockString(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let lineStart = lexer.lineStart;\n let position = start + 3;\n let chunkStart = position;\n let currentLine = '';\n const blockLines = [];\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // Closing Triple-Quote (\"\"\")\n\n if (\n code === 0x0022 &&\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022\n ) {\n currentLine += body.slice(chunkStart, position);\n blockLines.push(currentLine);\n const token = createToken(\n lexer,\n TokenKind.BLOCK_STRING,\n start,\n position + 3, // Return a string of the lines joined with U+000A.\n dedentBlockStringLines(blockLines).join('\\n'),\n );\n lexer.line += blockLines.length - 1;\n lexer.lineStart = lineStart;\n return token;\n } // Escaped Triple-Quote (\\\"\"\")\n\n if (\n code === 0x005c &&\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022 &&\n body.charCodeAt(position + 3) === 0x0022\n ) {\n currentLine += body.slice(chunkStart, position);\n chunkStart = position + 1; // skip only slash\n\n position += 4;\n continue;\n } // LineTerminator\n\n if (code === 0x000a || code === 0x000d) {\n currentLine += body.slice(chunkStart, position);\n blockLines.push(currentLine);\n\n if (code === 0x000d && body.charCodeAt(position + 1) === 0x000a) {\n position += 2;\n } else {\n ++position;\n }\n\n currentLine = '';\n chunkStart = position;\n lineStart = position;\n continue;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character within String: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n }\n\n throw syntaxError(lexer.source, position, 'Unterminated string.');\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * ```\n * Name ::\n * - NameStart NameContinue* [lookahead != NameContinue]\n * ```\n */\n\nfunction readName(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position);\n\n if (isNameContinue(code)) {\n ++position;\n } else {\n break;\n }\n }\n\n return createToken(\n lexer,\n TokenKind.NAME,\n start,\n position,\n body.slice(start, position),\n );\n}\n","export function devAssert(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (typeof value) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? `[function ${value.name}]` : '[function]';\n\n case 'object':\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (value === null) {\n return 'null';\n }\n\n if (previouslySeenValues.includes(value)) {\n return '[Circular]';\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON(); // check for infinite recursion\n\n if (jsonValue !== value) {\n return typeof jsonValue === 'string'\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction isJSONable(value) {\n return typeof value.toJSON === 'function';\n}\n\nfunction formatObject(object, seenValues) {\n const entries = Object.entries(object);\n\n if (entries.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n const properties = entries.map(\n ([key, value]) => key + ': ' + formatValue(value, seenValues),\n );\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(`... ${remaining} more items`);\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getObjectTag(object) {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, '')\n .replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n const name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","import { inspect } from './inspect.mjs';\n/* c8 ignore next 3 */\n\nconst isProduction =\n globalThis.process && // eslint-disable-next-line no-undef\n process.env.NODE_ENV === 'production';\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\n\nexport const instanceOf =\n /* c8 ignore next 6 */\n // FIXME: https://github.com/graphql/graphql-js/issues/2317\n isProduction\n ? function instanceOf(value, constructor) {\n return value instanceof constructor;\n }\n : function instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (typeof value === 'object' && value !== null) {\n var _value$constructor;\n\n // Prefer Symbol.toStringTag since it is immune to minification.\n const className = constructor.prototype[Symbol.toStringTag];\n const valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value // @ts-expect-error TS bug see, https://github.com/microsoft/TypeScript/issues/38009\n ? value[Symbol.toStringTag]\n : (_value$constructor = value.constructor) === null ||\n _value$constructor === void 0\n ? void 0\n : _value$constructor.name;\n\n if (className === valueClassName) {\n const stringifiedValue = inspect(value);\n throw new Error(`Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`);\n }\n }\n\n return false;\n };\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { instanceOf } from '../jsutils/instanceOf.mjs';\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport class Source {\n constructor(\n body,\n name = 'GraphQL request',\n locationOffset = {\n line: 1,\n column: 1,\n },\n ) {\n typeof body === 'string' ||\n devAssert(false, `Body must be a string. Received: ${inspect(body)}.`);\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 ||\n devAssert(\n false,\n 'line in locationOffset is 1-indexed and must be positive.',\n );\n this.locationOffset.column > 0 ||\n devAssert(\n false,\n 'column in locationOffset is 1-indexed and must be positive.',\n );\n }\n\n get [Symbol.toStringTag]() {\n return 'Source';\n }\n}\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Location, OperationTypeNode } from './ast.mjs';\nimport { DirectiveLocation } from './directiveLocation.mjs';\nimport { Kind } from './kinds.mjs';\nimport { isPunctuatorTokenKind, Lexer } from './lexer.mjs';\nimport { isSource, Source } from './source.mjs';\nimport { TokenKind } from './tokenKind.mjs';\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n const parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Similar to parseValue(), but raises a parse error if it encounters a\n * variable. The return type will be a constant value.\n */\n\nexport function parseConstValue(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const value = parser.parseConstValueLiteral();\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport class Parser {\n constructor(source, options = {}) {\n const sourceObj = isSource(source) ? source : new Source(source);\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n this._tokenCounter = 0;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n parseName() {\n const token = this.expectToken(TokenKind.NAME);\n return this.node(token, {\n kind: Kind.NAME,\n value: token.value,\n });\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n\n parseDocument() {\n return this.node(this._lexer.token, {\n kind: Kind.DOCUMENT,\n definitions: this.many(\n TokenKind.SOF,\n this.parseDefinition,\n TokenKind.EOF,\n ),\n });\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n *\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n\n parseDefinition() {\n if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } // Many definitions begin with a description and require a lookahead.\n\n const hasDescription = this.peekDescription();\n const keywordToken = hasDescription\n ? this._lexer.lookahead()\n : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n\n if (hasDescription) {\n throw syntaxError(\n this._lexer.source,\n this._lexer.token.start,\n 'Unexpected description, descriptions are supported only on type definitions.',\n );\n }\n\n switch (keywordToken.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n\n parseOperationDefinition() {\n const start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return this.node(start, {\n kind: Kind.OPERATION_DEFINITION,\n operation: OperationTypeNode.QUERY,\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n });\n }\n\n const operation = this.parseOperationType();\n let name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return this.node(start, {\n kind: Kind.OPERATION_DEFINITION,\n operation,\n name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * OperationType : one of query mutation subscription\n */\n\n parseOperationType() {\n const operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return OperationTypeNode.QUERY;\n\n case 'mutation':\n return OperationTypeNode.MUTATION;\n\n case 'subscription':\n return OperationTypeNode.SUBSCRIPTION;\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n\n parseVariableDefinitions() {\n return this.optionalMany(\n TokenKind.PAREN_L,\n this.parseVariableDefinition,\n TokenKind.PAREN_R,\n );\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n\n parseVariableDefinition() {\n return this.node(this._lexer.token, {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS)\n ? this.parseConstValueLiteral()\n : undefined,\n directives: this.parseConstDirectives(),\n });\n }\n /**\n * Variable : $ Name\n */\n\n parseVariable() {\n const start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return this.node(start, {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n });\n }\n /**\n * ```\n * SelectionSet : { Selection+ }\n * ```\n */\n\n parseSelectionSet() {\n return this.node(this._lexer.token, {\n kind: Kind.SELECTION_SET,\n selections: this.many(\n TokenKind.BRACE_L,\n this.parseSelection,\n TokenKind.BRACE_R,\n ),\n });\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n\n parseSelection() {\n return this.peek(TokenKind.SPREAD)\n ? this.parseFragment()\n : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n\n parseField() {\n const start = this._lexer.token;\n const nameOrAlias = this.parseName();\n let alias;\n let name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return this.node(start, {\n kind: Kind.FIELD,\n alias,\n name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L)\n ? this.parseSelectionSet()\n : undefined,\n });\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n\n parseArguments(isConst) {\n const item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n\n parseArgument(isConst = false) {\n const start = this._lexer.token;\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return this.node(start, {\n kind: Kind.ARGUMENT,\n name,\n value: this.parseValueLiteral(isConst),\n });\n }\n\n parseConstArgument() {\n return this.parseArgument(true);\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n\n parseFragment() {\n const start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n const hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return this.node(start, {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n });\n }\n\n return this.node(start, {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n\n parseFragmentDefinition() {\n const start = this._lexer.token;\n this.expectKeyword('fragment'); // Legacy support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (this._options.allowLegacyFragmentVariables === true) {\n return this.node(start, {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n\n return this.node(start, {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * FragmentName : Name but not `on`\n */\n\n parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n\n parseValueLiteral(isConst) {\n const token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this.advanceLexer();\n return this.node(token, {\n kind: Kind.INT,\n value: token.value,\n });\n\n case TokenKind.FLOAT:\n this.advanceLexer();\n return this.node(token, {\n kind: Kind.FLOAT,\n value: token.value,\n });\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this.advanceLexer();\n\n switch (token.value) {\n case 'true':\n return this.node(token, {\n kind: Kind.BOOLEAN,\n value: true,\n });\n\n case 'false':\n return this.node(token, {\n kind: Kind.BOOLEAN,\n value: false,\n });\n\n case 'null':\n return this.node(token, {\n kind: Kind.NULL,\n });\n\n default:\n return this.node(token, {\n kind: Kind.ENUM,\n value: token.value,\n });\n }\n\n case TokenKind.DOLLAR:\n if (isConst) {\n this.expectToken(TokenKind.DOLLAR);\n\n if (this._lexer.token.kind === TokenKind.NAME) {\n const varName = this._lexer.token.value;\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Unexpected variable \"$${varName}\" in constant value.`,\n );\n } else {\n throw this.unexpected(token);\n }\n }\n\n return this.parseVariable();\n\n default:\n throw this.unexpected();\n }\n }\n\n parseConstValueLiteral() {\n return this.parseValueLiteral(true);\n }\n\n parseStringLiteral() {\n const token = this._lexer.token;\n this.advanceLexer();\n return this.node(token, {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n });\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n\n parseList(isConst) {\n const item = () => this.parseValueLiteral(isConst);\n\n return this.node(this._lexer.token, {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n });\n }\n /**\n * ```\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n * ```\n */\n\n parseObject(isConst) {\n const item = () => this.parseObjectField(isConst);\n\n return this.node(this._lexer.token, {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n });\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n\n parseObjectField(isConst) {\n const start = this._lexer.token;\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return this.node(start, {\n kind: Kind.OBJECT_FIELD,\n name,\n value: this.parseValueLiteral(isConst),\n });\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n\n parseDirectives(isConst) {\n const directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n\n parseConstDirectives() {\n return this.parseDirectives(true);\n }\n /**\n * ```\n * Directive[Const] : @ Name Arguments[?Const]?\n * ```\n */\n\n parseDirective(isConst) {\n const start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return this.node(start, {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n });\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n\n parseTypeReference() {\n const start = this._lexer.token;\n let type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n const innerType = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = this.node(start, {\n kind: Kind.LIST_TYPE,\n type: innerType,\n });\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return this.node(start, {\n kind: Kind.NON_NULL_TYPE,\n type,\n });\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n\n parseNamedType() {\n return this.node(this._lexer.token, {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n });\n } // Implements the parsing rules in the Type Definition section.\n\n peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n\n parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * ```\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n * ```\n */\n\n parseSchemaDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('schema');\n const directives = this.parseConstDirectives();\n const operationTypes = this.many(\n TokenKind.BRACE_L,\n this.parseOperationTypeDefinition,\n TokenKind.BRACE_R,\n );\n return this.node(start, {\n kind: Kind.SCHEMA_DEFINITION,\n description,\n directives,\n operationTypes,\n });\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n\n parseOperationTypeDefinition() {\n const start = this._lexer.token;\n const operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n const type = this.parseNamedType();\n return this.node(start, {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation,\n type,\n });\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n\n parseScalarTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('scalar');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description,\n name,\n directives,\n });\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n\n parseObjectTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('type');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n return this.node(start, {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n\n parseImplementsInterfaces() {\n return this.expectOptionalKeyword('implements')\n ? this.delimitedMany(TokenKind.AMP, this.parseNamedType)\n : [];\n }\n /**\n * ```\n * FieldsDefinition : { FieldDefinition+ }\n * ```\n */\n\n parseFieldsDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseFieldDefinition,\n TokenKind.BRACE_R,\n );\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n\n parseFieldDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseName();\n const args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n const type = this.parseTypeReference();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.FIELD_DEFINITION,\n description,\n name,\n arguments: args,\n type,\n directives,\n });\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n\n parseArgumentDefs() {\n return this.optionalMany(\n TokenKind.PAREN_L,\n this.parseInputValueDef,\n TokenKind.PAREN_R,\n );\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n\n parseInputValueDef() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n const type = this.parseTypeReference();\n let defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseConstValueLiteral();\n }\n\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description,\n name,\n type,\n defaultValue,\n directives,\n });\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n\n parseInterfaceTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('interface');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n return this.node(start, {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n\n parseUnionTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('union');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const types = this.parseUnionMemberTypes();\n return this.node(start, {\n kind: Kind.UNION_TYPE_DEFINITION,\n description,\n name,\n directives,\n types,\n });\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n\n parseUnionMemberTypes() {\n return this.expectOptionalToken(TokenKind.EQUALS)\n ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType)\n : [];\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n\n parseEnumTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('enum');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const values = this.parseEnumValuesDefinition();\n return this.node(start, {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description,\n name,\n directives,\n values,\n });\n }\n /**\n * ```\n * EnumValuesDefinition : { EnumValueDefinition+ }\n * ```\n */\n\n parseEnumValuesDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseEnumValueDefinition,\n TokenKind.BRACE_R,\n );\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n */\n\n parseEnumValueDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseEnumValueName();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description,\n name,\n directives,\n });\n }\n /**\n * EnumValue : Name but not `true`, `false` or `null`\n */\n\n parseEnumValueName() {\n if (\n this._lexer.token.value === 'true' ||\n this._lexer.token.value === 'false' ||\n this._lexer.token.value === 'null'\n ) {\n throw syntaxError(\n this._lexer.source,\n this._lexer.token.start,\n `${getTokenDesc(\n this._lexer.token,\n )} is reserved and cannot be used for an enum value.`,\n );\n }\n\n return this.parseName();\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n\n parseInputObjectTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('input');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const fields = this.parseInputFieldsDefinition();\n return this.node(start, {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description,\n name,\n directives,\n fields,\n });\n }\n /**\n * ```\n * InputFieldsDefinition : { InputValueDefinition+ }\n * ```\n */\n\n parseInputFieldsDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseInputValueDef,\n TokenKind.BRACE_R,\n );\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n\n parseTypeSystemExtension() {\n const keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * ```\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n * ```\n */\n\n parseSchemaExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n const directives = this.parseConstDirectives();\n const operationTypes = this.optionalMany(\n TokenKind.BRACE_L,\n this.parseOperationTypeDefinition,\n TokenKind.BRACE_R,\n );\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.SCHEMA_EXTENSION,\n directives,\n operationTypes,\n });\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n\n parseScalarTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name,\n directives,\n });\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n\n parseObjectTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n\n if (\n interfaces.length === 0 &&\n directives.length === 0 &&\n fields.length === 0\n ) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend interface Name ImplementsInterfaces? Directives[Const]\n * - extend interface Name ImplementsInterfaces\n */\n\n parseInterfaceTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n\n if (\n interfaces.length === 0 &&\n directives.length === 0 &&\n fields.length === 0\n ) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n\n parseUnionTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.UNION_TYPE_EXTENSION,\n name,\n directives,\n types,\n });\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n\n parseEnumTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name,\n directives,\n values,\n });\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n\n parseInputObjectTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name,\n directives,\n fields,\n });\n }\n /**\n * ```\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n * ```\n */\n\n parseDirectiveDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n const name = this.parseName();\n const args = this.parseArgumentDefs();\n const repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n const locations = this.parseDirectiveLocations();\n return this.node(start, {\n kind: Kind.DIRECTIVE_DEFINITION,\n description,\n name,\n arguments: args,\n repeatable,\n locations,\n });\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n\n parseDirectiveLocations() {\n return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n\n parseDirectiveLocation() {\n const start = this._lexer.token;\n const name = this.parseName();\n\n if (Object.prototype.hasOwnProperty.call(DirectiveLocation, name.value)) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a node that, if configured to do so, sets a \"loc\" field as a\n * location object, used to identify the place in the source that created a\n * given parsed object.\n */\n\n node(startToken, node) {\n if (this._options.noLocation !== true) {\n node.loc = new Location(\n startToken,\n this._lexer.lastToken,\n this._lexer.source,\n );\n }\n\n return node;\n }\n /**\n * Determines if the next token is of a given kind\n */\n\n peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n\n expectToken(kind) {\n const token = this._lexer.token;\n\n if (token.kind === kind) {\n this.advanceLexer();\n return token;\n }\n\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Expected ${getTokenKindDesc(kind)}, found ${getTokenDesc(token)}.`,\n );\n }\n /**\n * If the next token is of the given kind, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n\n expectOptionalToken(kind) {\n const token = this._lexer.token;\n\n if (token.kind === kind) {\n this.advanceLexer();\n return true;\n }\n\n return false;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n\n expectKeyword(value) {\n const token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this.advanceLexer();\n } else {\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Expected \"${value}\", found ${getTokenDesc(token)}.`,\n );\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n\n expectOptionalKeyword(value) {\n const token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this.advanceLexer();\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token is encountered.\n */\n\n unexpected(atToken) {\n const token =\n atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(\n this._lexer.source,\n token.start,\n `Unexpected ${getTokenDesc(token)}.`,\n );\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n\n any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n const nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always return non-empty list\n * that begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n\n optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n\n many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n * Advances the parser to the next lex token after last item in the list.\n */\n\n delimitedMany(delimiterKind, parseFn) {\n this.expectOptionalToken(delimiterKind);\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (this.expectOptionalToken(delimiterKind));\n\n return nodes;\n }\n\n advanceLexer() {\n const { maxTokens } = this._options;\n\n const token = this._lexer.advance();\n\n if (maxTokens !== undefined && token.kind !== TokenKind.EOF) {\n ++this._tokenCounter;\n\n if (this._tokenCounter > maxTokens) {\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Document contains more that ${maxTokens} tokens. Parsing aborted.`,\n );\n }\n }\n }\n}\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n const value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? ` \"${value}\"` : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? `\"${kind}\"` : kind;\n}\n","/**\n * Prints a string as a GraphQL StringValue literal. Replaces control characters\n * and excluded characters (\" U+0022 and \\\\ U+005C) with escape sequences.\n */\nexport function printString(str) {\n return `\"${str.replace(escapedRegExp, escapedReplacer)}\"`;\n} // eslint-disable-next-line no-control-regex\n\nconst escapedRegExp = /[\\x00-\\x1f\\x22\\x5c\\x7f-\\x9f]/g;\n\nfunction escapedReplacer(str) {\n return escapeSequences[str.charCodeAt(0)];\n} // prettier-ignore\n\nconst escapeSequences = [\n '\\\\u0000',\n '\\\\u0001',\n '\\\\u0002',\n '\\\\u0003',\n '\\\\u0004',\n '\\\\u0005',\n '\\\\u0006',\n '\\\\u0007',\n '\\\\b',\n '\\\\t',\n '\\\\n',\n '\\\\u000B',\n '\\\\f',\n '\\\\r',\n '\\\\u000E',\n '\\\\u000F',\n '\\\\u0010',\n '\\\\u0011',\n '\\\\u0012',\n '\\\\u0013',\n '\\\\u0014',\n '\\\\u0015',\n '\\\\u0016',\n '\\\\u0017',\n '\\\\u0018',\n '\\\\u0019',\n '\\\\u001A',\n '\\\\u001B',\n '\\\\u001C',\n '\\\\u001D',\n '\\\\u001E',\n '\\\\u001F',\n '',\n '',\n '\\\\\"',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 2F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 3F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 4F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\\\\\',\n '',\n '',\n '', // 5F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 6F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\u007F',\n '\\\\u0080',\n '\\\\u0081',\n '\\\\u0082',\n '\\\\u0083',\n '\\\\u0084',\n '\\\\u0085',\n '\\\\u0086',\n '\\\\u0087',\n '\\\\u0088',\n '\\\\u0089',\n '\\\\u008A',\n '\\\\u008B',\n '\\\\u008C',\n '\\\\u008D',\n '\\\\u008E',\n '\\\\u008F',\n '\\\\u0090',\n '\\\\u0091',\n '\\\\u0092',\n '\\\\u0093',\n '\\\\u0094',\n '\\\\u0095',\n '\\\\u0096',\n '\\\\u0097',\n '\\\\u0098',\n '\\\\u0099',\n '\\\\u009A',\n '\\\\u009B',\n '\\\\u009C',\n '\\\\u009D',\n '\\\\u009E',\n '\\\\u009F',\n];\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { isNode, QueryDocumentKeys } from './ast.mjs';\nimport { Kind } from './kinds.mjs';\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport const BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * ```ts\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n * ```\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to three permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n * ```\n *\n * 2) Named visitors that trigger upon entering and leaving a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n * ```\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * ```ts\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n * ```\n */\n\nexport function visit(root, visitor, visitorKeys = QueryDocumentKeys) {\n const enterLeaveMap = new Map();\n\n for (const kind of Object.values(Kind)) {\n enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind));\n }\n /* eslint-disable no-undef-init */\n\n let stack = undefined;\n let inArray = Array.isArray(root);\n let keys = [root];\n let index = -1;\n let edits = [];\n let node = root;\n let key = undefined;\n let parent = undefined;\n const path = [];\n const ancestors = [];\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n const isLeaving = index === keys.length;\n const isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n let editOffset = 0;\n\n for (const [editKey, editValue] of edits) {\n const arrayKey = editKey - editOffset;\n\n if (editValue === null) {\n node.splice(arrayKey, 1);\n editOffset++;\n } else {\n node[arrayKey] = editValue;\n }\n }\n } else {\n node = Object.defineProperties(\n {},\n Object.getOwnPropertyDescriptors(node),\n );\n\n for (const [editKey, editValue] of edits) {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else if (parent) {\n key = inArray ? index : keys[index];\n node = parent[key];\n\n if (node === null || node === undefined) {\n continue;\n }\n\n path.push(key);\n }\n\n let result;\n\n if (!Array.isArray(node)) {\n var _enterLeaveMap$get, _enterLeaveMap$get2;\n\n isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`);\n const visitFn = isLeaving\n ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get === void 0\n ? void 0\n : _enterLeaveMap$get.leave\n : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get2 === void 0\n ? void 0\n : _enterLeaveMap$get2.enter;\n result =\n visitFn === null || visitFn === void 0\n ? void 0\n : visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _node$kind;\n\n stack = {\n inArray,\n index,\n keys,\n edits,\n prev: stack,\n };\n inArray = Array.isArray(node);\n keys = inArray\n ? node\n : (_node$kind = visitorKeys[node.kind]) !== null &&\n _node$kind !== void 0\n ? _node$kind\n : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n // New root\n return edits[edits.length - 1][1];\n }\n\n return root;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n const skipping = new Array(visitors.length).fill(null);\n const mergedVisitor = Object.create(null);\n\n for (const kind of Object.values(Kind)) {\n let hasVisitor = false;\n const enterList = new Array(visitors.length).fill(undefined);\n const leaveList = new Array(visitors.length).fill(undefined);\n\n for (let i = 0; i < visitors.length; ++i) {\n const { enter, leave } = getEnterLeaveForKind(visitors[i], kind);\n hasVisitor || (hasVisitor = enter != null || leave != null);\n enterList[i] = enter;\n leaveList[i] = leave;\n }\n\n if (!hasVisitor) {\n continue;\n }\n\n const mergedEnterLeave = {\n enter(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _enterList$i;\n\n const result =\n (_enterList$i = enterList[i]) === null || _enterList$i === void 0\n ? void 0\n : _enterList$i.apply(visitors[i], args);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n },\n\n leave(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _leaveList$i;\n\n const result =\n (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0\n ? void 0\n : _leaveList$i.apply(visitors[i], args);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n },\n };\n mergedVisitor[kind] = mergedEnterLeave;\n }\n\n return mergedVisitor;\n}\n/**\n * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.\n */\n\nexport function getEnterLeaveForKind(visitor, kind) {\n const kindVisitor = visitor[kind];\n\n if (typeof kindVisitor === 'object') {\n // { Kind: { enter() {}, leave() {} } }\n return kindVisitor;\n } else if (typeof kindVisitor === 'function') {\n // { Kind() {} }\n return {\n enter: kindVisitor,\n leave: undefined,\n };\n } // { enter() {}, leave() {} }\n\n return {\n enter: visitor.enter,\n leave: visitor.leave,\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n *\n * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17\n */\n\n/* c8 ignore next 8 */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n const { enter, leave } = getEnterLeaveForKind(visitor, kind);\n return isLeaving ? leave : enter;\n}\n","import { printBlockString } from './blockString.mjs';\nimport { printString } from './printString.mjs';\nimport { visit } from './visitor.mjs';\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, printDocASTReducer);\n}\nconst MAX_LINE_LENGTH = 80;\nconst printDocASTReducer = {\n Name: {\n leave: (node) => node.value,\n },\n Variable: {\n leave: (node) => '$' + node.name,\n },\n // Document\n Document: {\n leave: (node) => join(node.definitions, '\\n\\n'),\n },\n OperationDefinition: {\n leave(node) {\n const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n const prefix = join(\n [\n node.operation,\n join([node.name, varDefs]),\n join(node.directives, ' '),\n ],\n ' ',\n ); // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet;\n },\n },\n VariableDefinition: {\n leave: ({ variable, type, defaultValue, directives }) =>\n variable +\n ': ' +\n type +\n wrap(' = ', defaultValue) +\n wrap(' ', join(directives, ' ')),\n },\n SelectionSet: {\n leave: ({ selections }) => block(selections),\n },\n Field: {\n leave({ alias, name, arguments: args, directives, selectionSet }) {\n const prefix = wrap('', alias, ': ') + name;\n let argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n },\n Argument: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Fragments\n FragmentSpread: {\n leave: ({ name, directives }) =>\n '...' + name + wrap(' ', join(directives, ' ')),\n },\n InlineFragment: {\n leave: ({ typeCondition, directives, selectionSet }) =>\n join(\n [\n '...',\n wrap('on ', typeCondition),\n join(directives, ' '),\n selectionSet,\n ],\n ' ',\n ),\n },\n FragmentDefinition: {\n leave: (\n { name, typeCondition, variableDefinitions, directives, selectionSet }, // Note: fragment variable definitions are experimental and may be changed\n ) =>\n // or removed in the future.\n `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` +\n `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` +\n selectionSet,\n },\n // Value\n IntValue: {\n leave: ({ value }) => value,\n },\n FloatValue: {\n leave: ({ value }) => value,\n },\n StringValue: {\n leave: ({ value, block: isBlockString }) =>\n isBlockString ? printBlockString(value) : printString(value),\n },\n BooleanValue: {\n leave: ({ value }) => (value ? 'true' : 'false'),\n },\n NullValue: {\n leave: () => 'null',\n },\n EnumValue: {\n leave: ({ value }) => value,\n },\n ListValue: {\n leave: ({ values }) => '[' + join(values, ', ') + ']',\n },\n ObjectValue: {\n leave: ({ fields }) => '{' + join(fields, ', ') + '}',\n },\n ObjectField: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Directive\n Directive: {\n leave: ({ name, arguments: args }) =>\n '@' + name + wrap('(', join(args, ', '), ')'),\n },\n // Type\n NamedType: {\n leave: ({ name }) => name,\n },\n ListType: {\n leave: ({ type }) => '[' + type + ']',\n },\n NonNullType: {\n leave: ({ type }) => type + '!',\n },\n // Type System Definitions\n SchemaDefinition: {\n leave: ({ description, directives, operationTypes }) =>\n wrap('', description, '\\n') +\n join(['schema', join(directives, ' '), block(operationTypes)], ' '),\n },\n OperationTypeDefinition: {\n leave: ({ operation, type }) => operation + ': ' + type,\n },\n ScalarTypeDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') +\n join(['scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n FieldDefinition: {\n leave: ({ description, name, arguments: args, type, directives }) =>\n wrap('', description, '\\n') +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n ': ' +\n type +\n wrap(' ', join(directives, ' ')),\n },\n InputValueDefinition: {\n leave: ({ description, name, type, defaultValue, directives }) =>\n wrap('', description, '\\n') +\n join(\n [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')],\n ' ',\n ),\n },\n InterfaceTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeDefinition: {\n leave: ({ description, name, directives, types }) =>\n wrap('', description, '\\n') +\n join(\n ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))],\n ' ',\n ),\n },\n EnumTypeDefinition: {\n leave: ({ description, name, directives, values }) =>\n wrap('', description, '\\n') +\n join(['enum', name, join(directives, ' '), block(values)], ' '),\n },\n EnumValueDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') + join([name, join(directives, ' ')], ' '),\n },\n InputObjectTypeDefinition: {\n leave: ({ description, name, directives, fields }) =>\n wrap('', description, '\\n') +\n join(['input', name, join(directives, ' '), block(fields)], ' '),\n },\n DirectiveDefinition: {\n leave: ({ description, name, arguments: args, repeatable, locations }) =>\n wrap('', description, '\\n') +\n 'directive @' +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n (repeatable ? ' repeatable' : '') +\n ' on ' +\n join(locations, ' | '),\n },\n SchemaExtension: {\n leave: ({ directives, operationTypes }) =>\n join(\n ['extend schema', join(directives, ' '), block(operationTypes)],\n ' ',\n ),\n },\n ScalarTypeExtension: {\n leave: ({ name, directives }) =>\n join(['extend scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n InterfaceTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeExtension: {\n leave: ({ name, directives, types }) =>\n join(\n [\n 'extend union',\n name,\n join(directives, ' '),\n wrap('= ', join(types, ' | ')),\n ],\n ' ',\n ),\n },\n EnumTypeExtension: {\n leave: ({ name, directives, values }) =>\n join(['extend enum', name, join(directives, ' '), block(values)], ' '),\n },\n InputObjectTypeExtension: {\n leave: ({ name, directives, fields }) =>\n join(['extend input', name, join(directives, ' '), block(fields)], ' '),\n },\n};\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\nfunction join(maybeArray, separator = '') {\n var _maybeArray$filter$jo;\n\n return (_maybeArray$filter$jo =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.filter((x) => x).join(separator)) !== null &&\n _maybeArray$filter$jo !== void 0\n ? _maybeArray$filter$jo\n : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an indented `{ }` block.\n */\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\nfunction wrap(start, maybeString, end = '') {\n return maybeString != null && maybeString !== ''\n ? start + maybeString + end\n : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction hasMultilineItems(maybeArray) {\n var _maybeArray$some;\n\n // FIXME: https://github.com/graphql/graphql-js/issues/2203\n\n /* c8 ignore next */\n return (_maybeArray$some =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.some((str) => str.includes('\\n'))) !== null &&\n _maybeArray$some !== void 0\n ? _maybeArray$some\n : false;\n}\n","import { parse, print } from 'graphql';\n/**\n * helpers\n */\nconst extractOperationName = (document) => {\n let operationName = undefined;\n const operationDefinitions = document.definitions.filter((definition) => definition.kind === `OperationDefinition`);\n if (operationDefinitions.length === 1) {\n operationName = operationDefinitions[0]?.name?.value;\n }\n return operationName;\n};\nexport const resolveRequestDocument = (document) => {\n if (typeof document === `string`) {\n let operationName = undefined;\n try {\n const parsedDocument = parse(document);\n operationName = extractOperationName(parsedDocument);\n }\n catch (err) {\n // Failed parsing the document, the operationName will be undefined\n }\n return { query: document, operationName };\n }\n const operationName = extractOperationName(document);\n return { query: print(document), operationName };\n};\n","export class ClientError extends Error {\n constructor(response, request) {\n const message = `${ClientError.extractMessage(response)}: ${JSON.stringify({\n response,\n request,\n })}`;\n super(message);\n Object.setPrototypeOf(this, ClientError.prototype);\n this.response = response;\n this.request = request;\n // this is needed as Safari doesn't support .captureStackTrace\n if (typeof Error.captureStackTrace === `function`) {\n Error.captureStackTrace(this, ClientError);\n }\n }\n static extractMessage(response) {\n return response.errors?.[0]?.message ?? `GraphQL Error (Code: ${response.status})`;\n }\n}\n","import { defaultJsonSerializer } from './defaultJsonSerializer.js';\nimport { HeadersInstanceToPlainObject, uppercase } from './helpers.js';\nimport { parseBatchRequestArgs, parseRawRequestArgs, parseRawRequestExtendedArgs, parseRequestArgs, parseRequestExtendedArgs, } from './parseArgs.js';\nimport { resolveRequestDocument } from './resolveRequestDocument.js';\nimport { ClientError, } from './types.js';\nimport crossFetch, * as CrossFetch from 'cross-fetch';\n/**\n * Convert the given headers configuration into a plain object.\n */\nconst resolveHeaders = (headers) => {\n let oHeaders = {};\n if (headers) {\n if ((typeof Headers !== `undefined` && headers instanceof Headers) ||\n (CrossFetch && CrossFetch.Headers && headers instanceof CrossFetch.Headers)) {\n oHeaders = HeadersInstanceToPlainObject(headers);\n }\n else if (Array.isArray(headers)) {\n headers.forEach(([name, value]) => {\n if (name && value !== undefined) {\n oHeaders[name] = value;\n }\n });\n }\n else {\n oHeaders = headers;\n }\n }\n return oHeaders;\n};\n/**\n * Clean a GraphQL document to send it via a GET query\n */\nconst cleanQuery = (str) => str.replace(/([\\s,]|#[^\\n\\r]+)+/g, ` `).trim();\n/**\n * Create query string for GraphQL request\n */\nconst buildRequestConfig = (params) => {\n if (!Array.isArray(params.query)) {\n const params_ = params;\n const search = [`query=${encodeURIComponent(cleanQuery(params_.query))}`];\n if (params.variables) {\n search.push(`variables=${encodeURIComponent(params_.jsonSerializer.stringify(params_.variables))}`);\n }\n if (params_.operationName) {\n search.push(`operationName=${encodeURIComponent(params_.operationName)}`);\n }\n return search.join(`&`);\n }\n if (typeof params.variables !== `undefined` && !Array.isArray(params.variables)) {\n throw new Error(`Cannot create query with given variable type, array expected`);\n }\n // Batch support\n const params_ = params;\n const payload = params.query.reduce((acc, currentQuery, index) => {\n acc.push({\n query: cleanQuery(currentQuery),\n variables: params_.variables ? params_.jsonSerializer.stringify(params_.variables[index]) : undefined,\n });\n return acc;\n }, []);\n return `query=${encodeURIComponent(params_.jsonSerializer.stringify(payload))}`;\n};\nconst createHttpMethodFetcher = (method) => async (params) => {\n const { url, query, variables, operationName, fetch, fetchOptions, middleware } = params;\n const headers = { ...params.headers };\n let queryParams = ``;\n let body = undefined;\n if (method === `POST`) {\n body = createRequestBody(query, variables, operationName, fetchOptions.jsonSerializer);\n if (typeof body === `string`) {\n // @ts-expect-error todo\n headers[`Content-Type`] = `application/json`;\n }\n }\n else {\n // @ts-expect-error todo needs ADT for TS to understand the different states\n queryParams = buildRequestConfig({\n query,\n variables,\n operationName,\n jsonSerializer: fetchOptions.jsonSerializer ?? defaultJsonSerializer,\n });\n }\n const init = {\n method,\n headers,\n body,\n ...fetchOptions,\n };\n let urlResolved = url;\n let initResolved = init;\n if (middleware) {\n const result = await Promise.resolve(middleware({ ...init, url, operationName, variables }));\n const { url: urlNew, ...initNew } = result;\n urlResolved = urlNew;\n initResolved = initNew;\n }\n if (queryParams) {\n urlResolved = `${urlResolved}?${queryParams}`;\n }\n return await fetch(urlResolved, initResolved);\n};\n/**\n * GraphQL Client.\n */\nclass GraphQLClient {\n constructor(url, requestConfig = {}) {\n this.url = url;\n this.requestConfig = requestConfig;\n /**\n * Send a GraphQL query to the server.\n */\n this.rawRequest = async (...args) => {\n const [queryOrOptions, variables, requestHeaders] = args;\n const rawRequestOptions = parseRawRequestArgs(queryOrOptions, variables, requestHeaders);\n const { headers, fetch = crossFetch, method = `POST`, requestMiddleware, responseMiddleware, ...fetchOptions } = this.requestConfig;\n const { url } = this;\n if (rawRequestOptions.signal !== undefined) {\n fetchOptions.signal = rawRequestOptions.signal;\n }\n const { operationName } = resolveRequestDocument(rawRequestOptions.query);\n return makeRequest({\n url,\n query: rawRequestOptions.query,\n variables: rawRequestOptions.variables,\n headers: {\n ...resolveHeaders(callOrIdentity(headers)),\n ...resolveHeaders(rawRequestOptions.requestHeaders),\n },\n operationName,\n fetch,\n method,\n fetchOptions,\n middleware: requestMiddleware,\n })\n .then((response) => {\n if (responseMiddleware) {\n responseMiddleware(response);\n }\n return response;\n })\n .catch((error) => {\n if (responseMiddleware) {\n responseMiddleware(error);\n }\n throw error;\n });\n };\n }\n async request(documentOrOptions, ...variablesAndRequestHeaders) {\n const [variables, requestHeaders] = variablesAndRequestHeaders;\n const requestOptions = parseRequestArgs(documentOrOptions, variables, requestHeaders);\n const { headers, fetch = crossFetch, method = `POST`, requestMiddleware, responseMiddleware, ...fetchOptions } = this.requestConfig;\n const { url } = this;\n if (requestOptions.signal !== undefined) {\n fetchOptions.signal = requestOptions.signal;\n }\n const { query, operationName } = resolveRequestDocument(requestOptions.document);\n return makeRequest({\n url,\n query,\n variables: requestOptions.variables,\n headers: {\n ...resolveHeaders(callOrIdentity(headers)),\n ...resolveHeaders(requestOptions.requestHeaders),\n },\n operationName,\n fetch,\n method,\n fetchOptions,\n middleware: requestMiddleware,\n })\n .then((response) => {\n if (responseMiddleware) {\n responseMiddleware(response);\n }\n return response.data;\n })\n .catch((error) => {\n if (responseMiddleware) {\n responseMiddleware(error);\n }\n throw error;\n });\n }\n // prettier-ignore\n batchRequests(documentsOrOptions, requestHeaders) {\n const batchRequestOptions = parseBatchRequestArgs(documentsOrOptions, requestHeaders);\n const { headers, ...fetchOptions } = this.requestConfig;\n if (batchRequestOptions.signal !== undefined) {\n fetchOptions.signal = batchRequestOptions.signal;\n }\n const queries = batchRequestOptions.documents.map(({ document }) => resolveRequestDocument(document).query);\n const variables = batchRequestOptions.documents.map(({ variables }) => variables);\n return makeRequest({\n url: this.url,\n query: queries,\n // @ts-expect-error TODO reconcile batch variables into system.\n variables,\n headers: {\n ...resolveHeaders(callOrIdentity(headers)),\n ...resolveHeaders(batchRequestOptions.requestHeaders),\n },\n operationName: undefined,\n fetch: this.requestConfig.fetch ?? crossFetch,\n method: this.requestConfig.method || `POST`,\n fetchOptions,\n middleware: this.requestConfig.requestMiddleware,\n })\n .then((response) => {\n if (this.requestConfig.responseMiddleware) {\n this.requestConfig.responseMiddleware(response);\n }\n return response.data;\n })\n .catch((error) => {\n if (this.requestConfig.responseMiddleware) {\n this.requestConfig.responseMiddleware(error);\n }\n throw error;\n });\n }\n setHeaders(headers) {\n this.requestConfig.headers = headers;\n return this;\n }\n /**\n * Attach a header to the client. All subsequent requests will have this header.\n */\n setHeader(key, value) {\n const { headers } = this.requestConfig;\n if (headers) {\n // todo what if headers is in nested array form... ?\n //@ts-expect-error todo\n headers[key] = value;\n }\n else {\n this.requestConfig.headers = { [key]: value };\n }\n return this;\n }\n /**\n * Change the client endpoint. All subsequent requests will send to this endpoint.\n */\n setEndpoint(value) {\n this.url = value;\n return this;\n }\n}\nconst makeRequest = async (params) => {\n const { query, variables, fetchOptions } = params;\n const fetcher = createHttpMethodFetcher(uppercase(params.method ?? `post`));\n const isBatchingQuery = Array.isArray(params.query);\n const response = await fetcher(params);\n const result = await getResult(response, fetchOptions.jsonSerializer ?? defaultJsonSerializer);\n const successfullyReceivedData = Array.isArray(result)\n ? !result.some(({ data }) => !data)\n : Boolean(result.data);\n const successfullyPassedErrorPolicy = Array.isArray(result) ||\n !result.errors ||\n (Array.isArray(result.errors) && !result.errors.length) ||\n fetchOptions.errorPolicy === `all` ||\n fetchOptions.errorPolicy === `ignore`;\n if (response.ok && successfullyPassedErrorPolicy && successfullyReceivedData) {\n // @ts-expect-error TODO fixme\n const { errors: _, ...rest } = Array.isArray(result) ? result : result;\n const data = fetchOptions.errorPolicy === `ignore` ? rest : result;\n const dataEnvelope = isBatchingQuery ? { data } : data;\n // @ts-expect-error TODO\n return {\n ...dataEnvelope,\n headers: response.headers,\n status: response.status,\n };\n }\n else {\n const errorResult = typeof result === `string`\n ? {\n error: result,\n }\n : result;\n throw new ClientError(\n // @ts-expect-error TODO\n { ...errorResult, status: response.status, headers: response.headers }, { query, variables });\n }\n};\n/**\n * Send a GraphQL Query to the GraphQL server for execution.\n */\nconst rawRequest = async (...args) => {\n const [urlOrOptions, query, ...variablesAndRequestHeaders] = args;\n const requestOptions = parseRawRequestExtendedArgs(urlOrOptions, query, ...variablesAndRequestHeaders);\n const client = new GraphQLClient(requestOptions.url);\n return client.rawRequest({\n ...requestOptions,\n });\n};\n// prettier-ignore\n// eslint-disable-next-line\nasync function request(urlOrOptions, document, ...variablesAndRequestHeaders) {\n const requestOptions = parseRequestExtendedArgs(urlOrOptions, document, ...variablesAndRequestHeaders);\n const client = new GraphQLClient(requestOptions.url);\n return client.request({\n ...requestOptions,\n });\n}\n/**\n * Send a batch of GraphQL Document to the GraphQL server for execution.\n *\n * @example\n *\n * ```ts\n * // You can pass a raw string\n *\n * await batchRequests('https://foo.bar/graphql', [\n * {\n * query: `\n * {\n * query {\n * users\n * }\n * }`\n * },\n * {\n * query: `\n * {\n * query {\n * users\n * }\n * }`\n * }])\n *\n * // You can also pass a GraphQL DocumentNode as query. Convenient if you\n * // are using graphql-tag package.\n *\n * import gql from 'graphql-tag'\n *\n * await batchRequests('https://foo.bar/graphql', [{ query: gql`...` }])\n * ```\n */\nconst batchRequests = async (...args) => {\n const params = parseBatchRequestsArgsExtended(args);\n const client = new GraphQLClient(params.url);\n return client.batchRequests(params);\n};\nconst parseBatchRequestsArgsExtended = (args) => {\n if (args.length === 1) {\n return args[0];\n }\n else {\n return {\n url: args[0],\n documents: args[1],\n requestHeaders: args[2],\n signal: undefined,\n };\n }\n};\nconst createRequestBody = (query, variables, operationName, jsonSerializer) => {\n const jsonSerializer_ = jsonSerializer ?? defaultJsonSerializer;\n if (!Array.isArray(query)) {\n return jsonSerializer_.stringify({ query, variables, operationName });\n }\n if (typeof variables !== `undefined` && !Array.isArray(variables)) {\n throw new Error(`Cannot create request body with given variable type, array expected`);\n }\n // Batch support\n const payload = query.reduce((acc, currentQuery, index) => {\n acc.push({ query: currentQuery, variables: variables ? variables[index] : undefined });\n return acc;\n }, []);\n return jsonSerializer_.stringify(payload);\n};\nconst getResult = async (response, jsonSerializer) => {\n let contentType;\n response.headers.forEach((value, key) => {\n if (key.toLowerCase() === `content-type`) {\n contentType = value;\n }\n });\n if (contentType &&\n (contentType.toLowerCase().startsWith(`application/json`) ||\n contentType.toLowerCase().startsWith(`application/graphql+json`) ||\n contentType.toLowerCase().startsWith(`application/graphql-response+json`))) {\n return jsonSerializer.parse(await response.text());\n }\n else {\n return response.text();\n }\n};\nconst callOrIdentity = (value) => {\n return typeof value === `function` ? value() : value;\n};\n/**\n * Convenience passthrough template tag to get the benefits of tooling for the gql template tag. This does not actually parse the input into a GraphQL DocumentNode like graphql-tag package does. It just returns the string with any variables given interpolated. Can save you a bit of performance and having to install another package.\n *\n * @example\n * ```\n * import { gql } from 'graphql-request'\n *\n * await request('https://foo.bar/graphql', gql`...`)\n * ```\n *\n * @remarks\n *\n * Several tools in the Node GraphQL ecosystem are hardcoded to specially treat any template tag named \"gql\". For example see this prettier issue: https://github.com/prettier/prettier/issues/4360. Using this template tag has no runtime effect beyond variable interpolation.\n */\nexport const gql = (chunks, ...variables) => {\n return chunks.reduce((acc, chunk, index) => `${acc}${chunk}${index in variables ? String(variables[index]) : ``}`, ``);\n};\nexport { GraphQLWebSocketClient } from './graphql-ws.js';\nexport { resolveRequestDocument } from './resolveRequestDocument.js';\nexport { batchRequests, ClientError, GraphQLClient, rawRequest, request, };\nexport default request;\n","export const uppercase = (str) => str.toUpperCase();\n/**\n * Convert Headers instance into regular object\n */\nexport const HeadersInstanceToPlainObject = (headers) => {\n const o = {};\n headers.forEach((v, k) => {\n o[k] = v;\n });\n return o;\n};\n","export const parseRequestArgs = (documentOrOptions, variables, requestHeaders) => {\n return documentOrOptions.document\n ? documentOrOptions\n : {\n document: documentOrOptions,\n variables: variables,\n requestHeaders: requestHeaders,\n signal: undefined,\n };\n};\nexport const parseRawRequestArgs = (queryOrOptions, variables, requestHeaders) => {\n return queryOrOptions.query\n ? queryOrOptions\n : {\n query: queryOrOptions,\n variables: variables,\n requestHeaders: requestHeaders,\n signal: undefined,\n };\n};\nexport const parseBatchRequestArgs = (documentsOrOptions, requestHeaders) => {\n return documentsOrOptions.documents\n ? documentsOrOptions\n : {\n documents: documentsOrOptions,\n requestHeaders: requestHeaders,\n signal: undefined,\n };\n};\nexport const parseRequestExtendedArgs = (urlOrOptions, document, ...variablesAndRequestHeaders) => {\n const [variables, requestHeaders] = variablesAndRequestHeaders;\n return urlOrOptions.document\n ? urlOrOptions\n : {\n url: urlOrOptions,\n document: document,\n variables,\n requestHeaders,\n signal: undefined,\n };\n};\nexport const parseRawRequestExtendedArgs = (urlOrOptions, query, ...variablesAndRequestHeaders) => {\n const [variables, requestHeaders] = variablesAndRequestHeaders;\n return urlOrOptions.query\n ? urlOrOptions\n : {\n url: urlOrOptions,\n query: query,\n variables,\n requestHeaders,\n signal: undefined,\n };\n};\n","import { __assign } from \"tslib\";\nimport { parse } from 'graphql';\nvar docCache = new Map();\nvar fragmentSourceMap = new Map();\nvar printFragmentWarnings = true;\nvar experimentalFragmentVariables = false;\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\nfunction processFragments(ast) {\n var seenKeys = new Set();\n var definitions = [];\n ast.definitions.forEach(function (fragmentDefinition) {\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n var sourceKeySet = fragmentSourceMap.get(fragmentName);\n if (sourceKeySet && !sourceKeySet.has(sourceKey)) {\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\"\n + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\"\n + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n }\n else if (!sourceKeySet) {\n fragmentSourceMap.set(fragmentName, sourceKeySet = new Set);\n }\n sourceKeySet.add(sourceKey);\n if (!seenKeys.has(sourceKey)) {\n seenKeys.add(sourceKey);\n definitions.push(fragmentDefinition);\n }\n }\n else {\n definitions.push(fragmentDefinition);\n }\n });\n return __assign(__assign({}, ast), { definitions: definitions });\n}\nfunction stripLoc(doc) {\n var workSet = new Set(doc.definitions);\n workSet.forEach(function (node) {\n if (node.loc)\n delete node.loc;\n Object.keys(node).forEach(function (key) {\n var value = node[key];\n if (value && typeof value === 'object') {\n workSet.add(value);\n }\n });\n });\n var loc = doc.loc;\n if (loc) {\n delete loc.startToken;\n delete loc.endToken;\n }\n return doc;\n}\nfunction parseDocument(source) {\n var cacheKey = normalize(source);\n if (!docCache.has(cacheKey)) {\n var parsed = parse(source, {\n experimentalFragmentVariables: experimentalFragmentVariables,\n allowLegacyFragmentVariables: experimentalFragmentVariables\n });\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n docCache.set(cacheKey, stripLoc(processFragments(parsed)));\n }\n return docCache.get(cacheKey);\n}\nexport function gql(literals) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (typeof literals === 'string') {\n literals = [literals];\n }\n var result = literals[0];\n args.forEach(function (arg, i) {\n if (arg && arg.kind === 'Document') {\n result += arg.loc.source.body;\n }\n else {\n result += arg;\n }\n result += literals[i + 1];\n });\n return parseDocument(result);\n}\nexport function resetCaches() {\n docCache.clear();\n fragmentSourceMap.clear();\n}\nexport function disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\nexport function enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\nexport function disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\nvar extras = {\n gql: gql,\n resetCaches: resetCaches,\n disableFragmentWarnings: disableFragmentWarnings,\n enableExperimentalFragmentVariables: enableExperimentalFragmentVariables,\n disableExperimentalFragmentVariables: disableExperimentalFragmentVariables\n};\n(function (gql_1) {\n gql_1.gql = extras.gql, gql_1.resetCaches = extras.resetCaches, gql_1.disableFragmentWarnings = extras.disableFragmentWarnings, gql_1.enableExperimentalFragmentVariables = extras.enableExperimentalFragmentVariables, gql_1.disableExperimentalFragmentVariables = extras.disableExperimentalFragmentVariables;\n})(gql || (gql = {}));\ngql[\"default\"] = gql;\nexport default gql;\n","import { GraphQLClient, RequestOptions } from 'graphql-request';\nimport gql from 'graphql-tag';\nexport type Maybe = T | null;\nexport type InputMaybe = Maybe;\nexport type Exact = {\n [K in keyof T]: T[K];\n};\nexport type MakeOptional = Omit & {\n [SubKey in K]?: Maybe;\n};\nexport type MakeMaybe = Omit & {\n [SubKey in K]: Maybe;\n};\nexport type MakeEmpty<\n T extends { [key: string]: unknown },\n K extends keyof T,\n> = { [_ in K]?: never };\nexport type Incremental =\n | T\n | {\n [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never;\n };\ntype GraphQLClientRequestHeaders = RequestOptions['requestHeaders'];\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n JSON: { input: any; output: any };\n};\n\n/**\n * The asset that holds files, for a specific virtual dressing platform\n *\n */\nexport type Asset = {\n __typename?: 'Asset';\n /** The files that belong to this asset */\n files: Array;\n /** The format of this asset */\n format: ResultFormat;\n /** The id of this asset */\n id: Scalars['String']['output'];\n /** The content of the metadata.json file */\n metadata?: Maybe;\n};\n\n/**\n * An asset file\n *\n */\nexport type AssetFile = {\n __typename?: 'AssetFile';\n /** The name of this asset file */\n fileName: Scalars['String']['output'];\n /** The url to call with a GET method to receive the content of this file */\n getLocation: Scalars['String']['output'];\n /** The url to call with a HEAD method to receive meta information of this file */\n headLocation: Scalars['String']['output'];\n /** The id of this asset file */\n id: Scalars['String']['output'];\n};\n\n/**\n * The setting for configuring the managed MDRC\n *\n */\nexport type Mdrcsetting = {\n __typename?: 'Mdrcsetting';\n /** The id of this mdrc setting */\n id: Scalars['String']['output'];\n /** The content of the mdrc settings */\n setting: Scalars['JSON']['output'];\n};\n\nexport type Mutation = {\n __typename?: 'Mutation';\n /**\n * Create a new VDR session\n *\n * ## Arguments\n *\n * * `forOrganization` - The organization slug (or id)\n * * `forBrowser` - The browser id\n *\n * ## Response\n *\n * * `organization` - The organization id\n * * `browser` - The browser id\n * * `session` - The session id\n *\n */\n createSession: Session;\n};\n\nexport type MutationCreateSessionArgs = {\n forBrowser?: InputMaybe;\n forOrganization: Scalars['String']['input'];\n};\n\nexport enum ProductType {\n Accessory_3D = 'ACCESSORY_3D',\n Animation = 'ANIMATION',\n Avatar_2D = 'AVATAR_2D',\n Avatar_3D = 'AVATAR_3D',\n Avatar_3DLegacy = 'AVATAR_3D_LEGACY',\n AvatarCreationData = 'AVATAR_CREATION_DATA',\n AvatarHead_2D = 'AVATAR_HEAD_2D',\n AvatarHead_3D = 'AVATAR_HEAD_3D',\n AvatarHeadLegacy = 'AVATAR_HEAD_LEGACY',\n Garment_2D = 'GARMENT_2D',\n Garment_3D = 'GARMENT_3D',\n Garment_3DCad = 'GARMENT_3D_CAD',\n GhostGarment_3D = 'GHOST_GARMENT_3D',\n Mannequin_3D = 'MANNEQUIN_3D',\n Material = 'MATERIAL',\n Outfit_2D = 'OUTFIT_2D',\n Outfit_2DParallax = 'OUTFIT_2D_PARALLAX',\n Outfit_3D = 'OUTFIT_3D',\n PbmShape = 'PBM_SHAPE',\n Scene = 'SCENE',\n SizingSettings = 'SIZING_SETTINGS',\n Undefined = 'UNDEFINED',\n}\n\nexport type Query = {\n __typename?: 'Query';\n /**\n * Find public metadata for an asset\n *\n * ## Arguments\n *\n * * `forOrganization` - The organization slug (or id) that holds the asset (min. length of 3)\n * * `forReferences` - A list of references that should be fetched (max. 100 entries)\n * * `forFormat` - A list of result formats mostly WEB or MOBILE that should be fetched\n * * `forKind` - The list of request kinds mostly GARMENT_2D, GARMENT_3D or GARMENT_3D_CAD\n *\n * ## Response\n *\n * * `references` - A list of registered external references of this object\n * * `requests` - A list of requests that are associated with this metadata\n * Each request will have a different kind, so it can be used for\n * different dressing room modes, like 2D, 3D.\n *\n *\n */\n findMetadata: Array;\n /**\n * Find mdrc setting\n *\n * ## Arguments\n *\n * * `forOrganization` - The organization id that holds the asset (min. length of 3)\n * * `forReference` - An optional reference that should be fetched\n *\n * ## Response\n *\n * Optional setting response, might be null if none was found.\n *\n * * `id` - The id of the setting that was fetched\n * * `setting` - The json value of the setting.\n *\n *\n */\n findSetting?: Maybe;\n /**\n * Get public metadata for an asset by ids\n *\n * ## Arguments\n *\n * * `forIds` - A list of ids for assets (max. 100 entries)\n * * `forFormat` - A list of result formats mostly WEB or MOBILE that should be fetched\n * * `forKind` - The list of request kinds mostly GARMENT_2D, GARMENT_3D or GARMENT_3D_CAD\n *\n * ## Response\n *\n * * `references` - A list of registered external references of this object\n * * `requests` - A list of requests that are associated with this metadata\n * Each request will have a different kind, so it can be used for\n * different dressing room modes, like 2D, 3D.\n *\n *\n */\n getMetadata: Array;\n /**\n * Get stock metadata resoures\n *\n * ## Arguments\n *\n * * `forFormat` - A list of result formats mostly WEB or MOBILE that should be fetched\n * * `forKind` - The list of request kinds mostly GARMENT_2D, GARMENT_3D or GARMENT_3D_CAD\n *\n * ## Response\n *\n * * `references` - A list of registered external references of this object\n * * `requests` - A list of requests that are associated with this metadata\n * Each request will have a different kind, so it can be used for\n * different dressing room modes, like 2D, 3D.\n *\n *\n */\n getStockResources: Array;\n};\n\nexport type QueryFindMetadataArgs = {\n forFormat?: InputMaybe>;\n forKind?: InputMaybe>;\n forOrganization: Scalars['String']['input'];\n forReferences: Array;\n};\n\nexport type QueryFindSettingArgs = {\n forOrganization: Scalars['String']['input'];\n forReference?: InputMaybe;\n};\n\nexport type QueryGetMetadataArgs = {\n forFormat?: InputMaybe>;\n forIds: Array;\n forKind?: InputMaybe>;\n};\n\nexport type QueryGetStockResourcesArgs = {\n forFormat: Array;\n forKind: Array;\n};\n\n/**\n * Each request will have a different kind, so it can be used for\n * different dressing room modes, like 2D, 3D\n *\n */\nexport type Request = {\n __typename?: 'Request';\n /**\n * The file assets to be used in the dressing room, there are different\n * formats in the different assets like WEB or MOBILE.\n * Select the one that matches your platform.\n */\n assets: Array;\n /** The id of this request */\n id: Scalars['String']['output'];\n /** The kind of the request. */\n kind: ProductType;\n /** The request name */\n name?: Maybe;\n /** The organization this product belongs to */\n organization: Scalars['String']['output'];\n /**\n * A list of registered external references of this object\n *\n */\n references: Array;\n /** The tags that belong to this request */\n tags: Array;\n /** The url to call with a GET method to receive the thumbnail for this request */\n thumbnail?: Maybe;\n};\n\nexport enum ResultFormat {\n /** This should be used when working with a mobile SDK */\n Mobile = 'MOBILE',\n /** This is the raw result, other formats are derived from this */\n Raw = 'RAW',\n /** This should not happen */\n Undefined = 'UNDEFINED',\n /** This should be used when working with the web SDK */\n Web = 'WEB',\n /** This is the same as WEB but packaged into a zip file */\n WebZip = 'WEB_ZIP',\n}\n\n/** A session information object */\nexport type Session = {\n __typename?: 'Session';\n /** The browser identifier */\n browser: Scalars['String']['output'];\n /** The organization id of this session */\n organization: Scalars['String']['output'];\n /** The session identifier */\n session: Scalars['String']['output'];\n};\n\n/**\n * The tag that add additional information to an object\n *\n */\nexport type Tag = {\n __typename?: 'Tag';\n /** The id of this tag */\n id: Scalars['String']['output'];\n /** The key of this tag */\n key: Scalars['String']['output'];\n /** The value of this tag */\n value: Scalars['String']['output'];\n};\n\nexport type FindSettingQueryVariables = Exact<{\n org: Scalars['String']['input'];\n reference: Scalars['String']['input'];\n}>;\n\nexport type FindSettingQuery = {\n __typename?: 'Query';\n findSetting?: { __typename?: 'Mdrcsetting'; id: string; setting: any } | null;\n};\n\nexport const FindSettingDocument = gql`\n query findSetting($org: String!, $reference: String!) {\n findSetting(forOrganization: $org, forReference: $reference) {\n id\n setting\n }\n }\n`;\n\nexport type SdkFunctionWrapper = (\n action: (requestHeaders?: Record) => Promise,\n operationName: string,\n operationType?: string,\n variables?: any,\n) => Promise;\n\nconst defaultWrapper: SdkFunctionWrapper = (\n action,\n _operationName,\n _operationType,\n _variables,\n) => action();\n\nexport function getSdk(\n client: GraphQLClient,\n withWrapper: SdkFunctionWrapper = defaultWrapper,\n) {\n return {\n findSetting(\n variables: FindSettingQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n ): Promise {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request(FindSettingDocument, variables, {\n ...requestHeaders,\n ...wrappedRequestHeaders,\n }),\n 'findSetting',\n 'query',\n variables,\n );\n },\n };\n}\nexport type Sdk = ReturnType;\n","import { GraphQLClient, RequestOptions } from 'graphql-request';\nimport gql from 'graphql-tag';\nexport type Maybe = T | null;\nexport type InputMaybe = Maybe;\nexport type Exact = {\n [K in keyof T]: T[K];\n};\nexport type MakeOptional = Omit & {\n [SubKey in K]?: Maybe;\n};\nexport type MakeMaybe = Omit & {\n [SubKey in K]: Maybe;\n};\nexport type MakeEmpty<\n T extends { [key: string]: unknown },\n K extends keyof T,\n> = { [_ in K]?: never };\nexport type Incremental =\n | T\n | {\n [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never;\n };\ntype GraphQLClientRequestHeaders = RequestOptions['requestHeaders'];\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n JSON: { input: any; output: any };\n JSONObject: { input: any; output: any };\n};\n\nexport enum AccessPolicy {\n /** The means, that the product can't be fetched from the public API */\n Organization = 'ORGANIZATION',\n /** The means, that the product can be fetched from the public API to be used in the virtual dressing room */\n Public = 'PUBLIC',\n}\n\nexport enum CostType {\n /** A credit topup */\n CreditPurchase = 'CREDIT_PURCHASE',\n /** An unkown entry */\n Unkown = 'UNKOWN',\n /** A Garment 2D virtual asset */\n VaGarment_2D = 'VA_GARMENT_2D',\n /** An other virtual asset */\n VaGeneric = 'VA_GENERIC',\n /** A VDR session */\n VdrSession = 'VDR_SESSION',\n}\n\nexport type CreateFileInput = {\n fileType: FileType;\n name: Scalars['String']['input'];\n};\n\nexport type CreateRequestResponse = {\n __typename?: 'CreateRequestResponse';\n id: Scalars['String']['output'];\n newFiles: Array;\n /** @deprecated The field will be removed in the near future. Don't use it anymore. */\n product?: Maybe;\n};\n\n/** The filter options for selecting ledger entries */\nexport type CreditLedgerFilter = {\n /** The cost types that are searched for in the ledger */\n costTypes?: InputMaybe>;\n /** The ISO-8601 string of the datetime the ledger entries should have happened not after */\n notAfter?: InputMaybe;\n /** The ISO-8601 string of the datetime the ledger entries should have happened not before */\n notBefore?: InputMaybe;\n};\n\nexport type CreditPrice = {\n __typename?: 'CreditPrice';\n costType: CostType;\n price: Scalars['Float']['output'];\n};\n\nexport enum Event {\n /** A potential status change for an external reference */\n ExternalReferenceStatusChange = 'EXTERNAL_REFERENCE_STATUS_CHANGE',\n}\n\n/** Representing a product */\nexport type EventWebhook = {\n __typename?: 'EventWebhook';\n eventType: Event;\n extReferenceStatusChangeOptions?: Maybe;\n id: Scalars['String']['output'];\n url: Scalars['String']['output'];\n};\n\nexport type ExternalReference = {\n __typename?: 'ExternalReference';\n id: Scalars['String']['output'];\n reference: Scalars['String']['output'];\n};\n\nexport type ExternalReferenceStatusChangeInput = {\n headers: Scalars['JSONObject']['input'];\n organizationId: Scalars['String']['input'];\n patternName: Scalars['String']['input'];\n regex: Scalars['String']['input'];\n url: Scalars['String']['input'];\n};\n\n/** Webhooks */\nexport type ExternalReferenceStatusChangeOptions = {\n __typename?: 'ExternalReferenceStatusChangeOptions';\n patternName: Scalars['String']['output'];\n regex: Scalars['String']['output'];\n};\n\nexport type File = {\n __typename?: 'File';\n /** The created_at applicable */\n createdAt: Scalars['String']['output'];\n /** The name of this file */\n fileName: Scalars['String']['output'];\n /** The file type if applicable */\n fileType?: Maybe;\n /** The url to call with a GET method to receive the content of this file */\n getLocation: Scalars['String']['output'];\n /** The url to call with a HEAD method to receive meta information of this file */\n headLocation: Scalars['String']['output'];\n /** The id of this file */\n id: Scalars['String']['output'];\n};\n\nexport type FileToUpload = {\n __typename?: 'FileToUpload';\n id: Scalars['String']['output'];\n name: Scalars['String']['output'];\n url: Scalars['String']['output'];\n};\n\nexport enum FileType {\n AdditionalView = 'ADDITIONAL_VIEW',\n Avatar_3D = 'AVATAR_3D',\n Back = 'BACK',\n Backside_2D = 'BACKSIDE_2D',\n Bodymodel_2D = 'BODYMODEL_2D',\n CadFile = 'CAD_FILE',\n CameraMapping = 'CAMERA_MAPPING',\n CorrectedTexture = 'CORRECTED_TEXTURE',\n CustomerTechPack = 'CUSTOMER_TECH_PACK',\n Depth = 'DEPTH',\n FitmodelCharts = 'FITMODEL_CHARTS',\n Frontal = 'FRONTAL',\n Garment_3D = 'GARMENT_3D',\n GarmentClassification = 'GARMENT_CLASSIFICATION',\n HeadKeyframe = 'HEAD_KEYFRAME',\n Heatmap = 'HEATMAP',\n Keyframe = 'KEYFRAME',\n Landmarks_2D = 'LANDMARKS_2D',\n Landmarks_3D = 'LANDMARKS_3D',\n MaterialFile = 'MATERIAL_FILE',\n Matrix = 'MATRIX',\n MeasurementsConfig = 'MEASUREMENTS_CONFIG',\n Mesh = 'MESH',\n Metadata = 'METADATA',\n Opening_2D = 'OPENING_2D',\n PbmState = 'PBM_STATE',\n ReferenceAdditional = 'REFERENCE_ADDITIONAL',\n ReferenceMain = 'REFERENCE_MAIN',\n RejectionAttachment = 'REJECTION_ATTACHMENT',\n Rgba = 'RGBA',\n Segmentation = 'SEGMENTATION',\n SizeTable = 'SIZE_TABLE',\n SizeTableCreationConfig = 'SIZE_TABLE_CREATION_CONFIG',\n Slf_3D = 'SLF_3D',\n SlfTexture = 'SLF_TEXTURE',\n TemporalActivityCache = 'TEMPORAL_ACTIVITY_CACHE',\n Texture = 'TEXTURE',\n TexturedMesh_3D = 'TEXTURED_MESH_3D',\n TexturedPbm = 'TEXTURED_PBM',\n Thumbnail = 'THUMBNAIL',\n Ulg_3D = 'ULG_3D',\n Undefined = 'UNDEFINED',\n WebviewerConfig = 'WEBVIEWER_CONFIG',\n Xmp = 'XMP',\n Zephyr_3Dk = 'ZEPHYR_3DK',\n}\n\nexport type LedgerEntry = {\n amount: Scalars['Float']['output'];\n createdAt: Scalars['String']['output'];\n creditCostType: CostType;\n id: Scalars['String']['output'];\n};\n\nexport type LedgerGroupedEntry = {\n __typename?: 'LedgerGroupedEntry';\n amount: Scalars['Float']['output'];\n count: Scalars['Int']['output'];\n creditCostType: CostType;\n timestamp: Scalars['String']['output'];\n};\n\nexport type LedgerRequestEntry = LedgerEntry & {\n __typename?: 'LedgerRequestEntry';\n amount: Scalars['Float']['output'];\n createdAt: Scalars['String']['output'];\n creditCostType: CostType;\n externalReferences: Array;\n id: Scalars['String']['output'];\n productType: Scalars['String']['output'];\n};\n\nexport type LedgerSessionEntry = LedgerEntry & {\n __typename?: 'LedgerSessionEntry';\n amount: Scalars['Float']['output'];\n createdAt: Scalars['String']['output'];\n creditCostType: CostType;\n id: Scalars['String']['output'];\n};\n\nexport type LedgerTopUpEntry = LedgerEntry & {\n __typename?: 'LedgerTopUpEntry';\n amount: Scalars['Float']['output'];\n createdAt: Scalars['String']['output'];\n creditCostType: CostType;\n externalReferences: Array;\n id: Scalars['String']['output'];\n provider: Scalars['String']['output'];\n};\n\nexport type Message = {\n __typename?: 'Message';\n content: Scalars['String']['output'];\n createdAt: Scalars['String']['output'];\n id: Scalars['String']['output'];\n modifiedAt: Scalars['String']['output'];\n readAt?: Maybe;\n source: MessageSource;\n};\n\nexport enum MessageSource {\n /** The customer was the source of this message */\n Customer = 'CUSTOMER',\n /** Reactive Reality was the source of this message */\n ReactiveReality = 'REACTIVE_REALITY',\n}\n\nexport type MessageThread = {\n __typename?: 'MessageThread';\n associatedRequestId?: Maybe;\n createdAt: Scalars['String']['output'];\n id: Scalars['String']['output'];\n messages: Array;\n subject: Scalars['String']['output'];\n};\n\n/** The filter options for selecting ledger entries */\nexport type MessageThreadFilter = {\n /** The ISO-8601 string of the datetime the ledger entries should have happened not after */\n notAfter?: InputMaybe;\n /** The ISO-8601 string of the datetime the ledger entries should have happened not before */\n notBefore?: InputMaybe;\n /** The cost types that are searched for in the ledger */\n search?: InputMaybe;\n /** The cost types that are searched for in the ledger */\n status?: InputMaybe;\n};\n\nexport enum MessageThreadStatus {\n /** Has unread messages */\n HasUnread = 'HAS_UNREAD',\n}\n\nexport type Mutation = {\n __typename?: 'Mutation';\n /**\n * Add an external reference to a request\n *\n * # Arguments\n *\n * * `forRequest` - Identifies a request, this can either be an external reference or an id\n * * `theReference` - The reference string\n *\n */\n addExternalReference: ExternalReference;\n /**\n * Add an external reference to a setting\n *\n * # Arguments\n *\n * * `forSetting` - Identifies a setting by id\n * * `theReference` - The reference string\n *\n */\n addExternalReferenceToSetting: ExternalReference;\n /**\n * Assign a request to a specific account\n *\n * # Arguments\n *\n * * `forRequest` - The organization id that should be used\n * * `forAccount` - A product reference, that should be used to create the request\n *\n */\n assignRequestToAccount: Scalars['Boolean']['output'];\n /**\n * Create a new input file for a request\n *\n * # Arguments\n *\n * * `forRequest` - The request id, that should be used\n * * `withFiles` - A list of files that one plans to uploadt\n *\n */\n createInputFile: Array;\n /**\n * Create a new request in the PICTOFiT content service\n *\n * # Arguments\n *\n * * `forOrganization` - The organization id that should be used\n * * `forProduct` - A product reference, that should be used to create the request\n * * `ofProductType` - The request should be of the product type\n * * `withFiles` - A list of files that one plans to upload\n * * `withExternalReferences` - A list of external references to associate with the product\n *\n */\n createRequest: CreateRequestResponse;\n /**\n * Create a new setting for an organization\n *\n * ## Arguments\n * * `organizationId` - The organization id to search in\n * * `data` - The new data for the setting\n * * `settingType` - The type of the setting\n *\n */\n createSetting: Setting;\n /**\n * This enqueues a task that will sync in the requestId from the CS\n *\n * # Arguments\n *\n * * `requestIds` - The content service configuration id to sync (max. 20 items)\n *\n */\n enqueueRequestSynchronization: Array;\n /**\n * Tries to import a customer from the CS and return the result\n *\n * ## Arguments\n * * `organizationId` - An organization id to search for\n */\n findCustomer?: Maybe;\n /**\n * Mark a message as read\n *\n * # Arguments\n *\n * * `id` - The message id\n *\n */\n markMessageRead: Scalars['Boolean']['output'];\n /**\n * Mark a request as ready for processing\n *\n * # Arguments\n *\n * * `id` - The request id, that is ready for processing\n *\n */\n readyRequest: Scalars['String']['output'];\n /**\n * Remove the following external references\n *\n * This does not delete the product itself, but just the reference\n *\n * # Arguments\n *\n * * `theReferences` - A list of references to remove (this takes the external reference id!)\n *\n */\n removeExternalReferences: Array;\n /**\n * Remove a setting\n *\n * ## Arguments\n * * `settingId` - The setting id to remove\n *\n */\n removeSetting: Scalars['Boolean']['output'];\n /**\n * Remove the following tags by id\n *\n * This removes tags by their ids\n *\n * # Arguments\n *\n * * `theTags` - A list of tag ids to be removed\n *\n */\n removeTags: Array;\n /**\n * Rename a request, returns the new name\n *\n * # Arguments\n *\n * * `forRequest` - Identifies the request by id\n * * `theName` - The name string\n *\n */\n renameRequest: Scalars['String']['output'];\n /**\n * Create a new workflow for the request in the PICTOFiT content service\n *\n * # Arguments\n *\n * * `forRequest` - The request id, that should be used\n * * `ofWorkflowType` - The workflow type that should be executed\n *\n */\n runWorkflow: Scalars['String']['output'];\n /**\n * Report a problem with a request, this is once only operation per request\n *\n * # Arguments\n *\n * * `theRequest` - The request id that is ready for processing\n * * `msg` - The feedback msg\n *\n */\n sendFeedback: Scalars['String']['output'];\n /**\n * Sets external references for a request.\n *\n * If the `forOrganization` argument is given, the operation is scoped to this\n * organization otherwise the scope stretches accross all organizations a user\n * can access.\n *\n * If no `forRequest` argument is given all links of external references to\n * requests are removed, that match the `theReferences` argument.\n *\n * If a `forRequest` argument is given, all links of external references to\n * requests with the same product type like the request identified by `forRequest`\n * are removed, that match the `theReferences` argument and new links for the\n * `theReferences` to the `theRequest` are created.\n *\n * # Arguments\n *\n * * `forOrganization` - An organization id, which scopes this request\n * * `forRequest` - A request id, which the references should point to\n * * `theReferences` - A list of external references (the reference value)\n *\n */\n setExternalReference: Scalars['Boolean']['output'];\n /**\n * Set webhook for events\n *\n * ## Arguments\n * * `eventWebhook` - The settings for a specific event webhhok\n */\n setWebhook?: Maybe;\n /**\n * Update requests based on a list of product references\n *\n * # Arguments\n *\n * * `forRequests` - A list of request references\n * * `withPolicy` - The policy that should be set for the products\n * * `withTags` - The tags that should be set for the products, this will not remove additional tags\n *\n */\n updateRequests: Array;\n /**\n * Update a setting\n *\n * ## Arguments\n * * `settingId` - The setting id to update\n * * `data` - The new data for the setting\n * * `settingType` - The type of the setting\n *\n */\n updateSetting: Setting;\n};\n\nexport type MutationAddExternalReferenceArgs = {\n forRequest: Scalars['String']['input'];\n theReference: Scalars['String']['input'];\n};\n\nexport type MutationAddExternalReferenceToSettingArgs = {\n forSetting: Scalars['String']['input'];\n theReference: Scalars['String']['input'];\n};\n\nexport type MutationAssignRequestToAccountArgs = {\n forAccount: Scalars['String']['input'];\n forRequest: Scalars['String']['input'];\n};\n\nexport type MutationCreateInputFileArgs = {\n forRequest: Scalars['String']['input'];\n withFiles: Array;\n};\n\nexport type MutationCreateRequestArgs = {\n forOrganization: Scalars['String']['input'];\n forProduct?: InputMaybe;\n ofProductType: ProductType;\n withExternalReferences?: InputMaybe>;\n withFiles: Array;\n withName?: InputMaybe;\n withSku?: InputMaybe;\n withTags?: InputMaybe>;\n};\n\nexport type MutationCreateSettingArgs = {\n data: Scalars['JSON']['input'];\n organizationId: Scalars['String']['input'];\n settingType: Scalars['String']['input'];\n};\n\nexport type MutationEnqueueRequestSynchronizationArgs = {\n requestIds: Array;\n};\n\nexport type MutationFindCustomerArgs = {\n organizationId: Scalars['String']['input'];\n};\n\nexport type MutationMarkMessageReadArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type MutationReadyRequestArgs = {\n id: Scalars['String']['input'];\n};\n\nexport type MutationRemoveExternalReferencesArgs = {\n theReferences: Array;\n};\n\nexport type MutationRemoveSettingArgs = {\n settingId: Scalars['String']['input'];\n};\n\nexport type MutationRemoveTagsArgs = {\n theTags: Array;\n};\n\nexport type MutationRenameRequestArgs = {\n forRequest: Scalars['String']['input'];\n theName: Scalars['String']['input'];\n};\n\nexport type MutationRunWorkflowArgs = {\n forRequest: Scalars['String']['input'];\n ofWorkflowType: Scalars['String']['input'];\n};\n\nexport type MutationSendFeedbackArgs = {\n msg: Scalars['String']['input'];\n theRequest: Scalars['String']['input'];\n};\n\nexport type MutationSetExternalReferenceArgs = {\n forOrganization?: InputMaybe;\n forRequest?: InputMaybe;\n theReferences: Array;\n};\n\nexport type MutationSetWebhookArgs = {\n eventWebhook: SetEventWebhook;\n};\n\nexport type MutationUpdateRequestsArgs = {\n forRequests: Array;\n withPolicy?: InputMaybe;\n withTags?: InputMaybe>;\n};\n\nexport type MutationUpdateSettingArgs = {\n data: Scalars['JSON']['input'];\n settingId: Scalars['String']['input'];\n settingType?: InputMaybe;\n};\n\nexport type Organization = {\n __typename?: 'Organization';\n displayName: Scalars['String']['output'];\n id: Scalars['String']['output'];\n slug: Scalars['String']['output'];\n};\n\nexport type OrganizationDetailed = {\n __typename?: 'OrganizationDetailed';\n creditBalance: Scalars['Float']['output'];\n displayName: Scalars['String']['output'];\n id: Scalars['String']['output'];\n overdrafts: Array;\n prices: Array;\n slug: Scalars['String']['output'];\n topups: Array;\n};\n\nexport type OverdraftAllowance = {\n __typename?: 'OverdraftAllowance';\n costType: CostType;\n overdraft: Scalars['Float']['output'];\n};\n\nexport type PagedLedgerGroupedResult = {\n __typename?: 'PagedLedgerGroupedResult';\n /** If this is not null, there is a next page, which can be fetched with this cursor */\n nextCursor?: Maybe;\n /** If this is not null, there is previous page, which can be fetched with this cursor */\n prevCursor?: Maybe;\n /** The credit ledger entries */\n results: Array;\n};\n\nexport type PagedLedgerResult = {\n __typename?: 'PagedLedgerResult';\n /** If this is not null, there is a next page, which can be fetched with this cursor */\n nextCursor?: Maybe;\n /** If this is not null, there is previous page, which can be fetched with this cursor */\n prevCursor?: Maybe;\n /** The credit ledger entries */\n results: Array;\n};\n\nexport type PagedMessageThread = {\n __typename?: 'PagedMessageThread';\n /** If this is not null, there is a next page, which can be fetched with this cursor */\n nextCursor?: Maybe;\n /** If this is not null, there is previous page, which can be fetched with this cursor */\n prevCursor?: Maybe;\n /** The message threads entries */\n results: Array;\n};\n\n/** Representing a product */\nexport type Product = {\n __typename?: 'Product';\n /** The Access policy of the product */\n accessPolicy: AccessPolicy;\n externalReferences: Array;\n id: Scalars['String']['output'];\n name?: Maybe;\n organization: Organization;\n requests: Array;\n sku?: Maybe;\n};\n\nexport type ProductReference = {\n productID?: InputMaybe;\n productName?: InputMaybe;\n};\n\nexport enum ProductType {\n Accessory_3D = 'ACCESSORY_3D',\n Animation = 'ANIMATION',\n Avatar_2D = 'AVATAR_2D',\n Avatar_3D = 'AVATAR_3D',\n Avatar_3DLegacy = 'AVATAR_3D_LEGACY',\n AvatarCreationData = 'AVATAR_CREATION_DATA',\n AvatarHead_2D = 'AVATAR_HEAD_2D',\n AvatarHead_3D = 'AVATAR_HEAD_3D',\n AvatarHeadLegacy = 'AVATAR_HEAD_LEGACY',\n Garment_2D = 'GARMENT_2D',\n Garment_3D = 'GARMENT_3D',\n Garment_3DCad = 'GARMENT_3D_CAD',\n GhostGarment_3D = 'GHOST_GARMENT_3D',\n Mannequin_3D = 'MANNEQUIN_3D',\n Material = 'MATERIAL',\n Outfit_2D = 'OUTFIT_2D',\n Outfit_2DParallax = 'OUTFIT_2D_PARALLAX',\n Outfit_3D = 'OUTFIT_3D',\n PbmShape = 'PBM_SHAPE',\n Scene = 'SCENE',\n SizingSettings = 'SIZING_SETTINGS',\n Undefined = 'UNDEFINED',\n}\n\nexport type Query = {\n __typename?: 'Query';\n /**\n * Return all organizations that are available to the current account\n *\n */\n getAllOrganziations: Array;\n /**\n * Get all settings for an organization\n *\n * ## Arguments\n * * `organizationId` - The organization id to search in\n *\n */\n getAllSettings: Array;\n /**\n * Get all avatars for an organization\n *\n * ## Arguments\n * * `organizationId` - The organization id to search in\n *\n */\n getAvatars: Array;\n /**\n * Return a page of the credit ledger\n *\n * ## Arguments\n * * `organizationId` - An organization id to search for\n * * `pageSize` - The page size, has to be between 4 and 20\n * * `cursor` - The cursor to select the page\n * * `filter` - The search options\n */\n getCreditLeger: PagedLedgerResult;\n /**\n * Return a page of the credit ledger, where expenses are grouped\n * by cost type and day, expect for credit topups\n *\n * ## Arguments\n * * `organizationId` - An organization id to search for\n * * `pageSize` - The page size, has to be between 4 and 20\n * * `cursor` - The cursor to select the page\n * * `filter` - The search options\n */\n getGroupedLedger: PagedLedgerGroupedResult;\n /**\n * Get a message thread by id\n *\n * ## Arguments\n * * `threadId` - The id of the thread to fetch\n */\n getMessageThreadById?: Maybe;\n /**\n * Get a list of message threads\n *\n * ## Arguments\n * * `threadId` - The id of the thread to fetch\n */\n getMessageThreads: PagedMessageThread;\n /**\n * Return an organization by id\n *\n * ## Arguments\n * * `organizationId` - An organization id to search for\n */\n getOrganziationById?: Maybe;\n /**\n * Get a request by id\n *\n * ## Arguments\n * * `requestId` - The request id\n * * `organizationId` - An organization id to search for\n *\n */\n getRequestById?: Maybe;\n /**\n * Get all requests based on the references\n *\n * ## Arguments\n * * `references` - A list of references to look up, this can be external references or ids\n * * `organizationId` - An organization id to search for\n *\n */\n getRequests: Array;\n /**\n * Get all scenes for an organization\n *\n * ## Arguments\n * * `organizationId` - The organization id to search in\n *\n */\n getScenes: Array;\n /**\n * Get a setting by id\n *\n * ## Arguments\n * * `settingId` - The setting id\n *\n */\n getSettingById?: Maybe;\n};\n\nexport type QueryGetAllSettingsArgs = {\n organizationId: Scalars['String']['input'];\n};\n\nexport type QueryGetAvatarsArgs = {\n organizationId: Scalars['String']['input'];\n};\n\nexport type QueryGetCreditLegerArgs = {\n cursor?: InputMaybe;\n filter?: InputMaybe;\n organizationId: Scalars['String']['input'];\n pageSize: Scalars['Int']['input'];\n};\n\nexport type QueryGetGroupedLedgerArgs = {\n cursor?: InputMaybe;\n filter?: InputMaybe;\n organizationId: Scalars['String']['input'];\n pageSize: Scalars['Int']['input'];\n};\n\nexport type QueryGetMessageThreadByIdArgs = {\n threadId: Scalars['String']['input'];\n};\n\nexport type QueryGetMessageThreadsArgs = {\n cursor?: InputMaybe;\n filter?: InputMaybe;\n organizationId: Scalars['String']['input'];\n pageSize: Scalars['Int']['input'];\n};\n\nexport type QueryGetOrganziationByIdArgs = {\n organizationId: Scalars['String']['input'];\n};\n\nexport type QueryGetRequestByIdArgs = {\n organizationId: Scalars['String']['input'];\n requestId: Scalars['String']['input'];\n};\n\nexport type QueryGetRequestsArgs = {\n organizationId: Scalars['String']['input'];\n references: Array;\n};\n\nexport type QueryGetScenesArgs = {\n organizationId: Scalars['String']['input'];\n};\n\nexport type QueryGetSettingByIdArgs = {\n settingId: Scalars['String']['input'];\n};\n\n/**\n * Representing a request to create a virtual asset for a product\n * this defines for which type (2D, 3D) this asset can be used.\n */\nexport type Request = {\n __typename?: 'Request';\n /** The Access policy of the request */\n accessPolicy: AccessPolicy;\n externalReferences: Array;\n /** The feedback the user */\n feedback?: Maybe;\n files: Array;\n id: Scalars['String']['output'];\n name?: Maybe;\n organization: Organization;\n /** The product type of the request */\n productType: ProductType;\n rejectionReason?: Maybe;\n /** The generated assets split by platform (WEB, MOBILE, etc.) for this request */\n results: Array;\n sku?: Maybe;\n /** The state of the request */\n state: RequestState;\n tags: Array;\n /** The url to call with a GET method to receive the content of this file */\n thumbnail?: Maybe;\n};\n\nexport type RequestFeedback = {\n __typename?: 'RequestFeedback';\n createdAt: Scalars['String']['output'];\n feedback: Scalars['String']['output'];\n response?: Maybe;\n updatedAt: Scalars['String']['output'];\n};\n\nexport type RequestRejectionReason = {\n __typename?: 'RequestRejectionReason';\n additional?: Maybe;\n createdAt: Scalars['String']['output'];\n reason?: Maybe;\n updatedAt: Scalars['String']['output'];\n};\n\nexport enum RequestState {\n Approved = 'APPROVED',\n Draft = 'DRAFT',\n Finished = 'FINISHED',\n InProgress = 'IN_PROGRESS',\n Rejected = 'REJECTED',\n}\n\nexport type Result = {\n __typename?: 'Result';\n active: Scalars['Boolean']['output'];\n /** The files that should be used to initialize the SDK asset */\n files: Array;\n /** The platform this result can be used with */\n format: ResultFormat;\n id: Scalars['String']['output'];\n};\n\nexport enum ResultFormat {\n /** This should be used when working with a mobile SDK */\n Mobile = 'MOBILE',\n /** This is the raw result, other formats are derived from this */\n Raw = 'RAW',\n /** This should not happen */\n Undefined = 'UNDEFINED',\n /** This should be used when working with the web SDK */\n Web = 'WEB',\n /** This is the same as WEB but packaged into a zip file */\n WebZip = 'WEB_ZIP',\n}\n\nexport type SetEventWebhook = {\n externalReferenceStatusChange?: InputMaybe;\n};\n\nexport type Setting = {\n __typename?: 'Setting';\n data: Scalars['JSON']['output'];\n externalReferences: Array;\n id: Scalars['String']['output'];\n type: SettingType;\n};\n\nexport type SettingType = {\n __typename?: 'SettingType';\n schema: Scalars['JSON']['output'];\n type: Scalars['String']['output'];\n};\n\nexport type Tag = {\n __typename?: 'Tag';\n id: Scalars['String']['output'];\n key: Scalars['String']['output'];\n value: Scalars['String']['output'];\n};\n\nexport type TagInput = {\n key: Scalars['String']['input'];\n value: Scalars['String']['input'];\n};\n\nexport type GetAllSettingsQueryVariables = Exact<{\n org: Scalars['String']['input'];\n}>;\n\nexport type GetAllSettingsQuery = {\n __typename?: 'Query';\n getAllSettings: Array<{\n __typename?: 'Setting';\n id: string;\n data: any;\n type: { __typename?: 'SettingType'; type: string; schema: any };\n externalReferences: Array<{\n __typename?: 'ExternalReference';\n id: string;\n reference: string;\n }>;\n }>;\n};\n\nexport type CreateSettingMutationVariables = Exact<{\n org: Scalars['String']['input'];\n type: Scalars['String']['input'];\n data: Scalars['JSON']['input'];\n}>;\n\nexport type CreateSettingMutation = {\n __typename?: 'Mutation';\n createSetting: {\n __typename?: 'Setting';\n data: any;\n id: string;\n type: { __typename?: 'SettingType'; type: string };\n };\n};\n\nexport type AddExternalReferenceToSettingMutationVariables = Exact<{\n setting: Scalars['String']['input'];\n reference: Scalars['String']['input'];\n}>;\n\nexport type AddExternalReferenceToSettingMutation = {\n __typename?: 'Mutation';\n addExternalReferenceToSetting: {\n __typename?: 'ExternalReference';\n id: string;\n reference: string;\n };\n};\n\nexport type UpdateCollectionMutationVariables = Exact<{\n settingId: Scalars['String']['input'];\n data: Scalars['JSON']['input'];\n}>;\n\nexport type UpdateCollectionMutation = {\n __typename?: 'Mutation';\n updateSetting: { __typename?: 'Setting'; id: string };\n};\n\nexport type GetThumbnailQueryVariables = Exact<{\n org: Scalars['String']['input'];\n reference: Array | Scalars['String']['input'];\n}>;\n\nexport type GetThumbnailQuery = {\n __typename?: 'Query';\n getRequests: Array<{ __typename?: 'Request'; thumbnail?: string | null }>;\n};\n\nexport type GetIdQueryVariables = Exact<{\n org: Scalars['String']['input'];\n reference: Array | Scalars['String']['input'];\n}>;\n\nexport type GetIdQuery = {\n __typename?: 'Query';\n getRequests: Array<{ __typename?: 'Request'; id: string }>;\n};\n\nexport type GetAdditionalDataQueryVariables = Exact<{\n org: Scalars['String']['input'];\n reference: Array | Scalars['String']['input'];\n}>;\n\nexport type GetAdditionalDataQuery = {\n __typename?: 'Query';\n getRequests: Array<{\n __typename?: 'Request';\n id: string;\n thumbnail?: string | null;\n externalReferences: Array<{\n __typename?: 'ExternalReference';\n id: string;\n reference: string;\n }>;\n }>;\n};\n\nexport const GetAllSettingsDocument = gql`\n query getAllSettings($org: String!) {\n getAllSettings(organizationId: $org) {\n id\n type {\n type\n schema\n }\n data\n externalReferences {\n id\n reference\n }\n }\n }\n`;\nexport const CreateSettingDocument = gql`\n mutation createSetting($org: String!, $type: String!, $data: JSON!) {\n createSetting(organizationId: $org, data: $data, settingType: $type) {\n type {\n type\n }\n data\n id\n }\n }\n`;\nexport const AddExternalReferenceToSettingDocument = gql`\n mutation addExternalReferenceToSetting(\n $setting: String!\n $reference: String!\n ) {\n addExternalReferenceToSetting(\n forSetting: $setting\n theReference: $reference\n ) {\n id\n reference\n }\n }\n`;\nexport const UpdateCollectionDocument = gql`\n mutation updateCollection($settingId: String!, $data: JSON!) {\n updateSetting(data: $data, settingId: $settingId) {\n id\n }\n }\n`;\nexport const GetThumbnailDocument = gql`\n query getThumbnail($org: String!, $reference: [String!]!) {\n getRequests(organizationId: $org, references: $reference) {\n thumbnail\n }\n }\n`;\nexport const GetIdDocument = gql`\n query getId($org: String!, $reference: [String!]!) {\n getRequests(organizationId: $org, references: $reference) {\n id\n }\n }\n`;\nexport const GetAdditionalDataDocument = gql`\n query getAdditionalData($org: String!, $reference: [String!]!) {\n getRequests(organizationId: $org, references: $reference) {\n externalReferences {\n id\n reference\n }\n id\n thumbnail\n }\n }\n`;\n\nexport type SdkFunctionWrapper = (\n action: (requestHeaders?: Record) => Promise,\n operationName: string,\n operationType?: string,\n variables?: any,\n) => Promise;\n\nconst defaultWrapper: SdkFunctionWrapper = (\n action,\n _operationName,\n _operationType,\n _variables,\n) => action();\n\nexport function getSdk(\n client: GraphQLClient,\n withWrapper: SdkFunctionWrapper = defaultWrapper,\n) {\n return {\n getAllSettings(\n variables: GetAllSettingsQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n ): Promise {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request(\n GetAllSettingsDocument,\n variables,\n { ...requestHeaders, ...wrappedRequestHeaders },\n ),\n 'getAllSettings',\n 'query',\n variables,\n );\n },\n createSetting(\n variables: CreateSettingMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n ): Promise {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request(\n CreateSettingDocument,\n variables,\n { ...requestHeaders, ...wrappedRequestHeaders },\n ),\n 'createSetting',\n 'mutation',\n variables,\n );\n },\n addExternalReferenceToSetting(\n variables: AddExternalReferenceToSettingMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n ): Promise {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request(\n AddExternalReferenceToSettingDocument,\n variables,\n { ...requestHeaders, ...wrappedRequestHeaders },\n ),\n 'addExternalReferenceToSetting',\n 'mutation',\n variables,\n );\n },\n updateCollection(\n variables: UpdateCollectionMutationVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n ): Promise {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request(\n UpdateCollectionDocument,\n variables,\n { ...requestHeaders, ...wrappedRequestHeaders },\n ),\n 'updateCollection',\n 'mutation',\n variables,\n );\n },\n getThumbnail(\n variables: GetThumbnailQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n ): Promise {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request(GetThumbnailDocument, variables, {\n ...requestHeaders,\n ...wrappedRequestHeaders,\n }),\n 'getThumbnail',\n 'query',\n variables,\n );\n },\n getId(\n variables: GetIdQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n ): Promise {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request(GetIdDocument, variables, {\n ...requestHeaders,\n ...wrappedRequestHeaders,\n }),\n 'getId',\n 'query',\n variables,\n );\n },\n getAdditionalData(\n variables: GetAdditionalDataQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n ): Promise {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request(\n GetAdditionalDataDocument,\n variables,\n { ...requestHeaders, ...wrappedRequestHeaders },\n ),\n 'getAdditionalData',\n 'query',\n variables,\n );\n },\n };\n}\nexport type Sdk = ReturnType;\n","import { GraphQLClient } from 'graphql-request';\nimport * as publicSdk from './public-sdk';\nimport * as merchantSdk from './merchant-sdk';\n\ntype MerchantSdk = merchantSdk.Sdk;\ntype PublicSdk = publicSdk.Sdk;\n\nfunction getMerchantSdk(\n token: string,\n uri: string,\n): MerchantSdk {\n const client = new GraphQLClient(uri);\n client.setHeader('Authorization', `Bearer ${token}`);\n return merchantSdk.getSdk(client);\n}\n\nfunction getPublicSdk(\n token: string,\n uri: string,\n): PublicSdk {\n const client = new GraphQLClient(uri);\n return publicSdk.getSdk(client);\n}\n\nexport * as MerchantSDK from './merchant-sdk';\nexport * as PublicSDK from './public-sdk';\n\nexport { getMerchantSdk, MerchantSdk, getPublicSdk, PublicSdk };\n","import {\n MerchantSdk,\n PublicSdk,\n getMerchantSdk,\n getPublicSdk,\n} from 'projects/content-service-cms/src/app/data/central-asset-platform-sdk/src';\nimport { AdditionalData, ICentralAssetPlatformService } from '../api';\nimport {\n ExtendedCollection,\n ICollection,\n} from '../../collection-overview/collection.interface';\nimport { v4 as uuid } from 'uuid';\nimport { IAuthService } from '../../auth';\nimport { Injectable } from '@angular/core';\nimport {\n CreateSettingMutation,\n UpdateCollectionMutation,\n} from '../central-asset-platform-sdk/src/merchant-sdk';\nimport { NgDiscoveryService } from '../../core/services/ng-discovery.service';\n\n@Injectable()\nexport class CentralAssetPlatformService\n implements ICentralAssetPlatformService\n{\n private _merchant_sdk: MerchantSdk;\n private _public_sdk: PublicSdk;\n\n private _publicPostfix = 'graphql/public/v1';\n private _merchantPostfix = 'graphql/merchant/v1';\n constructor(\n private _authService: IAuthService,\n private discoveryService: NgDiscoveryService,\n ) {}\n\n private getMerchantSDK = () => {\n if (!this._merchant_sdk) {\n this._merchant_sdk = getMerchantSdk(\n this._authService?.getToken(),\n this.merchantPlatformUrl(),\n );\n }\n return this._merchant_sdk;\n };\n\n private getPublicSDK = () => {\n if (!this._public_sdk) {\n this._public_sdk = getPublicSdk(\n this._authService?.getToken(),\n this.publicPlatformUrl(),\n );\n }\n return this._public_sdk;\n };\n\n private publicPlatformUrl = () => {\n return (\n this.discoveryService.config.apiConfiguration.platformApiBaseUrl +\n this._publicPostfix\n );\n };\n private merchantPlatformUrl = () => {\n return (\n this.discoveryService.config.apiConfiguration.platformApiBaseUrl +\n this._merchantPostfix\n );\n };\n updateCollection(\n id: uuid,\n collection: ICollection,\n ): Promise {\n const r = this.getMerchantSDK().updateCollection({\n settingId: id,\n data: collection,\n });\n return r;\n }\n\n async createCollection(org: uuid, collection: ICollection): Promise {\n const result = (await this.getMerchantSDK().createSetting({\n org: org,\n data: collection,\n type: 'VIRTUAL_STYLING_V1',\n })) as CreateSettingMutation;\n return result.createSetting?.id;\n }\n\n async getAllCollections(org: uuid): Promise {\n if (!this._merchant_sdk) {\n this._merchant_sdk = getMerchantSdk(\n this._authService?.getToken(),\n this.merchantPlatformUrl(),\n );\n }\n const res = await this._merchant_sdk.getAllSettings({ org: org });\n\n //TODO: filtering based on version?\n const collections: ExtendedCollection[] = res.getAllSettings\n .filter((c) => c.type.type === 'VIRTUAL_STYLING_V1')\n .map((c) => {\n return {\n collection: c.data,\n externalReferences: c.externalReferences.map((e) => e.reference),\n id: c.id,\n type: c.type.type,\n schema: c.type.schema,\n };\n });\n\n return collections;\n }\n\n public referenceExists = async (org: uuid, reference: string) => {\n const setting = await this.getPublicSDK().findSetting({\n org: org,\n reference: reference,\n });\n\n return setting.findSetting !== null;\n };\n\n public addExternalReferenceToSetting = async (\n setting: string,\n reference: string,\n ) => {\n const result = await this.getMerchantSDK().addExternalReferenceToSetting({\n setting: setting,\n reference: reference,\n });\n return result;\n };\n\n // public getCollection = async (\n // org: uuid,\n // ref: string,\n // ): Promise<{ id: string; collection: ICollection }> => {\n // if (!this._public_sdk) {\n // this._public_sdk = getPublicSdk(\n // this._authService?.getToken(),\n // this.publicPlatformUrl(),\n // );\n // }\n // const setting = await this._public_sdk.findSetting({\n // org: org,\n // reference: ref,\n // });\n // if (setting.findSetting === null) {\n // return;\n // }\n // return {\n // id: setting.findSetting.id,\n // collection: setting.findSetting.setting,\n // };\n // };\n\n async getThumbnail(org: uuid, ref: string[]): Promise {\n const results: Promise[] = [];\n for (let i = 0; i < ref.length; i += 100) {\n const block = ref.slice(i, i + 100);\n const promise = this.getMerchantSDK()\n .getThumbnail({\n org: org,\n reference: block,\n })\n .then((result) => {\n if (result.getRequests === null) {\n return [];\n }\n return result.getRequests.map((r) => r.thumbnail);\n });\n results.push(promise);\n }\n return (await Promise.all(results)).flat();\n }\n\n async getId(org: uuid, ref: string | string[]): Promise {\n if (Array.isArray(ref)) {\n const results: Promise[] = [];\n for (let i = 0; i < ref.length; i += 100) {\n const block = ref.slice(i, i + 100);\n const promise = this.getMerchantSDK()\n .getId({\n org: org,\n reference: block,\n })\n .then((result) => {\n if (result.getRequests === null) {\n return [];\n }\n return result.getRequests.map((r) => r.id);\n });\n results.push(promise);\n }\n return (await Promise.all(results)).flat();\n } else {\n const result = await this.getMerchantSDK().getId({\n org: org,\n reference: ref,\n });\n if (result.getRequests === null) {\n return;\n }\n return result.getRequests.map((r) => r.id);\n }\n }\n async getAdditionalData(org: uuid, ref: string[]): Promise {\n const results: Promise[] = [];\n for (let i = 0; i < ref.length; i += 100) {\n const block = ref.slice(i, i + 100);\n const promise = this.getMerchantSDK()\n .getAdditionalData({\n org: org,\n reference: block,\n })\n .then((result) => {\n if (result.getRequests === null) {\n return [];\n }\n return result.getRequests.map((r) => {\n return {\n id: r.id,\n thumbnail: r.thumbnail,\n externalReferences: r.externalReferences,\n };\n });\n });\n results.push(promise);\n }\n return (await Promise.all(results)).flat();\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n IProductType,\n PRODUCT_STATE,\n PRODUCT_TYPE,\n} from 'projects/content-service-cms/src/app/data';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductHelper {\n static get ProductTypes_CMS(): IProductType[] {\n return [\n {\n id: PRODUCT_TYPE.GARMENT_2D,\n name: 'GARMENT_2D',\n },\n {\n id: PRODUCT_TYPE.GARMENT_3D,\n name: 'GARMENT_3D',\n },\n {\n id: PRODUCT_TYPE.ACCESSORY_3D,\n name: 'ACCESSORY_3D',\n },\n {\n id: PRODUCT_TYPE.OUTFIT_2D,\n name: 'OUTFIT_2D',\n },\n {\n id: PRODUCT_TYPE.OUTFIT_3D,\n name: 'OUTFIT_3D',\n },\n ];\n }\n\n static getProductStatusLabel(stateId: PRODUCT_STATE) {\n switch (stateId) {\n case PRODUCT_STATE.NOT_READY_FOR_PROCESSING:\n default:\n return 'Not Ready';\n case PRODUCT_STATE.READY_FOR_PROCESSING:\n return 'Ready';\n case PRODUCT_STATE.IN_PROGRESS:\n return 'In Progress';\n case PRODUCT_STATE.COMPLETED:\n return 'Completed';\n case PRODUCT_STATE.REJECTED:\n return 'Rejected';\n case PRODUCT_STATE.CANCELED:\n return 'Canceled';\n }\n }\n\n static getProductStatusScssClass(stateId: PRODUCT_STATE) {\n switch (stateId) {\n case PRODUCT_STATE.NOT_READY_FOR_PROCESSING:\n default:\n return 'bg-state-gray';\n case PRODUCT_STATE.READY_FOR_PROCESSING:\n return 'bg-state-yellow';\n case PRODUCT_STATE.IN_PROGRESS:\n return 'bg-state-lightblue';\n case PRODUCT_STATE.COMPLETED:\n return 'bg-state-blue';\n case PRODUCT_STATE.REJECTED:\n return 'bg-state-red';\n case PRODUCT_STATE.CANCELED:\n return 'bg-state-purple';\n }\n }\n\n static mapProductTypeFromStringToEnum(type: string): PRODUCT_TYPE {\n return parseInt(type, 10);\n }\n\n static mapProductTypeFromEnumToStringName(type: PRODUCT_TYPE): string {\n switch (type) {\n case PRODUCT_TYPE.GARMENT_2D:\n return 'Garment 2D';\n case PRODUCT_TYPE.GARMENT_3D:\n return 'Garment 3D';\n case PRODUCT_TYPE.GARMENT_3D_CAD:\n return 'Garment 3D CAD';\n case PRODUCT_TYPE.ACCESSORY_3D:\n return 'Accessory 3D';\n case PRODUCT_TYPE.OUTFIT_2D:\n return 'Outfit 2D';\n case PRODUCT_TYPE.OUTFIT_3D:\n return 'Outfit 3D';\n case PRODUCT_TYPE.AVATAR_2D:\n return 'Avatar 2D';\n case PRODUCT_TYPE.AVATAR_3D:\n return 'Avatar 3D';\n case PRODUCT_TYPE.OUTFIT_2D_PARALLAX:\n return 'Outfit 2D Parallax';\n case PRODUCT_TYPE.SCENE:\n return 'Scene';\n case PRODUCT_TYPE.UNDEFINED:\n return 'Undefined';\n default:\n return '';\n }\n }\n\n static getProductType(type: PRODUCT_TYPE): IProductType {\n switch (type) {\n case PRODUCT_TYPE.GARMENT_2D:\n return {\n id: PRODUCT_TYPE.GARMENT_2D,\n name: 'GARMENT_2D',\n };\n case PRODUCT_TYPE.GARMENT_3D:\n return {\n id: PRODUCT_TYPE.GARMENT_3D,\n name: 'GARMENT_3D',\n };\n case PRODUCT_TYPE.ACCESSORY_3D:\n return {\n id: PRODUCT_TYPE.ACCESSORY_3D,\n name: 'ACCESSORY_3D',\n };\n case PRODUCT_TYPE.OUTFIT_2D:\n return {\n id: PRODUCT_TYPE.OUTFIT_2D,\n name: 'OUTFIT_2D',\n };\n case PRODUCT_TYPE.OUTFIT_3D:\n return {\n id: PRODUCT_TYPE.OUTFIT_3D,\n name: 'OUTFIT_3D',\n };\n case PRODUCT_TYPE.GARMENT_3D_CAD:\n return {\n id: PRODUCT_TYPE.GARMENT_3D_CAD,\n name: 'GARMENT_3D_CAD',\n };\n case PRODUCT_TYPE.OUTFIT_3D:\n return {\n id: PRODUCT_TYPE.OUTFIT_3D,\n name: 'OUTFIT_3D',\n };\n default:\n return null;\n }\n }\n}\n","export enum REQUEST_STATE_CMS {\n CREATED,\n IN_PROGRESS,\n FINISHED,\n APPROVED,\n REJECTED,\n CANCELED,\n}\n","export enum REQUEST_STATE_INTERNAL_STRING {\n READY_FOR_PROCESSING = 'READY_FOR_PROCESSING',\n FETCHED = 'FETCHED',\n PROCESSED = 'PROCESSED',\n REPORTED = 'REPORTED',\n APPROVED = 'APPROVED',\n FETCHED_FOR_REVIEW = 'FETCHED_FOR_REVIEW',\n REJECTED_BY_CUSTOMER = 'REJECTED_BY_CUSTOMER',\n REJECTED_BY_SERVICE = 'REJECTED_BY_SERVICE',\n LOCKED = 'LOCKED',\n IN_PROGRESS = 'IN_PROGRESS',\n NOT_READY_FOR_PROCESSING = 'NOT_READY_FOR_PROCESSING',\n REJECTED_BY_REVIEWER = 'REJECTED_BY_REVIEWER',\n APPROVED_BY_CUSTOMER = 'APPROVED_BY_CUSTOMER',\n CANCELED_BY_CUSTOMER = 'CANCELED_BY_CUSTOMER',\n RESET_EVENT = 'RESET_EVENT',\n EXPORTING = 'EXPORTING',\n}\n","export enum REQUEST_STATE_INTERNAL_ID {\n READY_FOR_PROCESSING = 0,\n FETCHED = 1,\n PROCESSED = 2,\n REPORTED = 3,\n APPROVED = 4,\n FETCHED_FOR_REVIEW = 5,\n REJECTED_BY_CUSTOMER = 7,\n REJECTED_BY_SERVICE = 8,\n LOCKED = 9,\n IN_PROGRESS = 10,\n NOT_READY_FOR_PROCESSING = 11,\n REJECTED_BY_REVIEWER = 12,\n APPROVED_BY_CUSTOMER = 13,\n CANCELED_BY_CUSTOMER = 14,\n RESET_EVENT = 15,\n EXPORTING = 16,\n}\n","import { REQUEST_STATE_CMS } from '../enums/request-state-cms.enum';\nimport { REQUEST_STATE_INTERNAL_STRING } from '../enums/request-state-internal-string.enum';\nimport { REQUEST_STATE_INTERNAL_ID } from '../enums/request-state-internal.enum';\n\nexport class RequestStateHelper {\n static getInternalStateLabel(stateId: REQUEST_STATE_INTERNAL_ID): string {\n switch (stateId) {\n case REQUEST_STATE_INTERNAL_ID.READY_FOR_PROCESSING:\n return 'Ready';\n case REQUEST_STATE_INTERNAL_ID.FETCHED:\n return 'Fetched';\n case REQUEST_STATE_INTERNAL_ID.PROCESSED:\n return 'Processed';\n case REQUEST_STATE_INTERNAL_ID.REPORTED:\n return 'Reported';\n case REQUEST_STATE_INTERNAL_ID.APPROVED:\n return 'Approved';\n case REQUEST_STATE_INTERNAL_ID.APPROVED_BY_CUSTOMER:\n return 'Approved (Customer)';\n case REQUEST_STATE_INTERNAL_ID.FETCHED_FOR_REVIEW:\n return 'In Review';\n case REQUEST_STATE_INTERNAL_ID.REJECTED_BY_CUSTOMER:\n return 'Rejected (Customer)';\n case REQUEST_STATE_INTERNAL_ID.REJECTED_BY_SERVICE:\n return 'Rejected (Service)';\n case REQUEST_STATE_INTERNAL_ID.LOCKED:\n return 'Locked';\n case REQUEST_STATE_INTERNAL_ID.NOT_READY_FOR_PROCESSING:\n return 'Not Ready';\n case REQUEST_STATE_INTERNAL_ID.IN_PROGRESS:\n return 'In progress';\n case REQUEST_STATE_INTERNAL_ID.REJECTED_BY_REVIEWER:\n return 'Rejected (Revise)';\n case REQUEST_STATE_INTERNAL_ID.CANCELED_BY_CUSTOMER:\n return 'Canceled (Customer)';\n case REQUEST_STATE_INTERNAL_ID.RESET_EVENT:\n return 'Reseted';\n case REQUEST_STATE_INTERNAL_ID.EXPORTING:\n return 'Exporting';\n default:\n return 'Not Ready';\n }\n }\n\n static getInternalStateColorClass(\n stateId: REQUEST_STATE_INTERNAL_ID,\n ): string {\n switch (stateId) {\n case REQUEST_STATE_INTERNAL_ID.READY_FOR_PROCESSING:\n return 'bg-state-yellow';\n case REQUEST_STATE_INTERNAL_ID.FETCHED:\n return 'bg-state-deepskyblue';\n case REQUEST_STATE_INTERNAL_ID.PROCESSED:\n return 'bg-state-blue';\n case REQUEST_STATE_INTERNAL_ID.REPORTED:\n return 'bg-state-orange';\n case REQUEST_STATE_INTERNAL_ID.APPROVED:\n return 'bg-state-green';\n case REQUEST_STATE_INTERNAL_ID.FETCHED_FOR_REVIEW:\n return 'bg-state-navy';\n case REQUEST_STATE_INTERNAL_ID.REJECTED_BY_CUSTOMER:\n return 'bg-state-red';\n case REQUEST_STATE_INTERNAL_ID.REJECTED_BY_SERVICE:\n return 'bg-state-indianred';\n case REQUEST_STATE_INTERNAL_ID.LOCKED:\n return 'bg-state-purple';\n case REQUEST_STATE_INTERNAL_ID.NOT_READY_FOR_PROCESSING:\n return 'bg-state-gray';\n case REQUEST_STATE_INTERNAL_ID.IN_PROGRESS:\n return 'bg-state-lightblue';\n case REQUEST_STATE_INTERNAL_ID.REJECTED_BY_REVIEWER:\n return 'bg-state-darkorange';\n case REQUEST_STATE_INTERNAL_ID.APPROVED_BY_CUSTOMER:\n return 'bg-state-darkgreen';\n case REQUEST_STATE_INTERNAL_ID.CANCELED_BY_CUSTOMER:\n return 'bg-state-darkgray';\n case REQUEST_STATE_INTERNAL_ID.RESET_EVENT:\n return 'bg-state-gray';\n case REQUEST_STATE_INTERNAL_ID.EXPORTING:\n return 'bg-state-navy';\n default:\n return 'bg-dark';\n }\n }\n\n static mapInternalStateStringToEnum(\n stateString: REQUEST_STATE_INTERNAL_STRING,\n ): REQUEST_STATE_INTERNAL_ID {\n switch (stateString.toUpperCase()) {\n case REQUEST_STATE_INTERNAL_STRING.READY_FOR_PROCESSING:\n return REQUEST_STATE_INTERNAL_ID.READY_FOR_PROCESSING;\n case REQUEST_STATE_INTERNAL_STRING.FETCHED:\n return REQUEST_STATE_INTERNAL_ID.FETCHED;\n case REQUEST_STATE_INTERNAL_STRING.PROCESSED:\n return REQUEST_STATE_INTERNAL_ID.PROCESSED;\n case REQUEST_STATE_INTERNAL_STRING.REPORTED:\n return REQUEST_STATE_INTERNAL_ID.REPORTED;\n case REQUEST_STATE_INTERNAL_STRING.APPROVED:\n return REQUEST_STATE_INTERNAL_ID.APPROVED;\n case REQUEST_STATE_INTERNAL_STRING.APPROVED_BY_CUSTOMER:\n return REQUEST_STATE_INTERNAL_ID.APPROVED_BY_CUSTOMER;\n case REQUEST_STATE_INTERNAL_STRING.FETCHED_FOR_REVIEW:\n return REQUEST_STATE_INTERNAL_ID.FETCHED_FOR_REVIEW;\n case REQUEST_STATE_INTERNAL_STRING.REJECTED_BY_CUSTOMER:\n return REQUEST_STATE_INTERNAL_ID.REJECTED_BY_CUSTOMER;\n case REQUEST_STATE_INTERNAL_STRING.REJECTED_BY_SERVICE:\n return REQUEST_STATE_INTERNAL_ID.REJECTED_BY_SERVICE;\n case REQUEST_STATE_INTERNAL_STRING.LOCKED:\n return REQUEST_STATE_INTERNAL_ID.LOCKED;\n case REQUEST_STATE_INTERNAL_STRING.NOT_READY_FOR_PROCESSING:\n return REQUEST_STATE_INTERNAL_ID.NOT_READY_FOR_PROCESSING;\n case REQUEST_STATE_INTERNAL_STRING.IN_PROGRESS:\n return REQUEST_STATE_INTERNAL_ID.IN_PROGRESS;\n case REQUEST_STATE_INTERNAL_STRING.REJECTED_BY_REVIEWER:\n return REQUEST_STATE_INTERNAL_ID.REJECTED_BY_REVIEWER;\n case REQUEST_STATE_INTERNAL_STRING.CANCELED_BY_CUSTOMER:\n return REQUEST_STATE_INTERNAL_ID.CANCELED_BY_CUSTOMER;\n case REQUEST_STATE_INTERNAL_STRING.RESET_EVENT:\n return REQUEST_STATE_INTERNAL_ID.RESET_EVENT;\n case REQUEST_STATE_INTERNAL_STRING.EXPORTING:\n return REQUEST_STATE_INTERNAL_ID.EXPORTING;\n default:\n return null;\n }\n }\n\n static mapInternatStateToCustomerState(\n stateId: REQUEST_STATE_INTERNAL_ID,\n ): REQUEST_STATE_CMS {\n if (typeof stateId === 'string') {\n stateId = Number.parseInt(stateId);\n }\n\n switch (stateId) {\n case REQUEST_STATE_INTERNAL_ID.NOT_READY_FOR_PROCESSING:\n return REQUEST_STATE_CMS.CREATED;\n case REQUEST_STATE_INTERNAL_ID.READY_FOR_PROCESSING:\n case REQUEST_STATE_INTERNAL_ID.FETCHED:\n case REQUEST_STATE_INTERNAL_ID.PROCESSED:\n case REQUEST_STATE_INTERNAL_ID.REPORTED:\n case REQUEST_STATE_INTERNAL_ID.FETCHED_FOR_REVIEW:\n case REQUEST_STATE_INTERNAL_ID.REJECTED_BY_CUSTOMER:\n case REQUEST_STATE_INTERNAL_ID.LOCKED:\n case REQUEST_STATE_INTERNAL_ID.IN_PROGRESS:\n case REQUEST_STATE_INTERNAL_ID.REJECTED_BY_REVIEWER:\n case REQUEST_STATE_INTERNAL_ID.RESET_EVENT:\n case REQUEST_STATE_INTERNAL_ID.EXPORTING:\n return REQUEST_STATE_CMS.IN_PROGRESS;\n case REQUEST_STATE_INTERNAL_ID.REJECTED_BY_SERVICE:\n return REQUEST_STATE_CMS.REJECTED;\n case REQUEST_STATE_INTERNAL_ID.CANCELED_BY_CUSTOMER:\n return REQUEST_STATE_CMS.CANCELED;\n case REQUEST_STATE_INTERNAL_ID.APPROVED:\n return REQUEST_STATE_CMS.FINISHED;\n case REQUEST_STATE_INTERNAL_ID.APPROVED_BY_CUSTOMER:\n return REQUEST_STATE_CMS.APPROVED;\n default:\n return REQUEST_STATE_CMS.IN_PROGRESS;\n }\n }\n\n static mapCustomerStateToInternalState(\n stateId: REQUEST_STATE_CMS,\n ): REQUEST_STATE_INTERNAL_ID | REQUEST_STATE_INTERNAL_ID[] {\n switch (stateId) {\n case REQUEST_STATE_CMS.CREATED:\n return REQUEST_STATE_INTERNAL_ID.NOT_READY_FOR_PROCESSING;\n case REQUEST_STATE_CMS.IN_PROGRESS:\n return [\n REQUEST_STATE_INTERNAL_ID.READY_FOR_PROCESSING,\n REQUEST_STATE_INTERNAL_ID.FETCHED,\n REQUEST_STATE_INTERNAL_ID.PROCESSED,\n REQUEST_STATE_INTERNAL_ID.REPORTED,\n REQUEST_STATE_INTERNAL_ID.FETCHED_FOR_REVIEW,\n REQUEST_STATE_INTERNAL_ID.REJECTED_BY_CUSTOMER,\n REQUEST_STATE_INTERNAL_ID.LOCKED,\n REQUEST_STATE_INTERNAL_ID.IN_PROGRESS,\n REQUEST_STATE_INTERNAL_ID.REJECTED_BY_REVIEWER,\n REQUEST_STATE_INTERNAL_ID.RESET_EVENT,\n REQUEST_STATE_INTERNAL_ID.EXPORTING,\n ];\n case REQUEST_STATE_CMS.REJECTED:\n return REQUEST_STATE_INTERNAL_ID.REJECTED_BY_SERVICE;\n case REQUEST_STATE_CMS.CANCELED:\n return REQUEST_STATE_INTERNAL_ID.CANCELED_BY_CUSTOMER;\n case REQUEST_STATE_CMS.FINISHED:\n return REQUEST_STATE_INTERNAL_ID.APPROVED;\n case REQUEST_STATE_CMS.APPROVED:\n return REQUEST_STATE_INTERNAL_ID.APPROVED_BY_CUSTOMER;\n default:\n return null;\n }\n }\n\n static getCustomerStateLabel(stateId: REQUEST_STATE_CMS): string {\n switch (stateId) {\n case REQUEST_STATE_CMS.CREATED:\n return 'Created';\n case REQUEST_STATE_CMS.IN_PROGRESS:\n return 'In Progress';\n case REQUEST_STATE_CMS.FINISHED:\n return 'Finished';\n case REQUEST_STATE_CMS.APPROVED:\n return 'Approved';\n case REQUEST_STATE_CMS.REJECTED:\n return 'Rejected';\n case REQUEST_STATE_CMS.CANCELED:\n return 'Canceled';\n default:\n return '';\n }\n }\n\n static getCustomerStateColorClass(stateId: REQUEST_STATE_CMS): string {\n switch (stateId) {\n case REQUEST_STATE_CMS.CREATED:\n return 'bg-state-created';\n case REQUEST_STATE_CMS.IN_PROGRESS:\n return 'bg-state-in-progress';\n case REQUEST_STATE_CMS.FINISHED:\n return 'bg-state-finished';\n case REQUEST_STATE_CMS.APPROVED:\n return 'bg-state-approved';\n case REQUEST_STATE_CMS.REJECTED:\n return 'bg-state-rejected';\n case REQUEST_STATE_CMS.CANCELED:\n return 'bg-state-canceled';\n default:\n return 'bg-dark';\n }\n }\n\n static getCustomerStateColor(stateId: REQUEST_STATE_CMS): string {\n switch (stateId) {\n case REQUEST_STATE_CMS.CREATED:\n return 'state-created';\n case REQUEST_STATE_CMS.IN_PROGRESS:\n return 'state-in-progress';\n case REQUEST_STATE_CMS.FINISHED:\n return 'state-finished';\n case REQUEST_STATE_CMS.APPROVED:\n return 'state-approved';\n case REQUEST_STATE_CMS.REJECTED:\n return 'state-rejected';\n case REQUEST_STATE_CMS.CANCELED:\n return 'state-canceled';\n default:\n return 'state-primary';\n }\n }\n}\n","export enum PRODUCT_STATE {\n NOT_READY_FOR_PROCESSING = 0,\n READY_FOR_PROCESSING = 1,\n IN_PROGRESS = 2,\n COMPLETED = 3,\n REJECTED = 4,\n CANCELED = 5,\n}\n","import { Provider } from '@angular/core';\nimport {\n IApiSdkService,\n ICentralAssetPlatformService,\n ICustomerService,\n IFileDownloadService,\n IFileService,\n IFileUploadService,\n IGarmentService,\n IProcessService,\n IProductService,\n IPublicRequestService,\n IRequestService,\n ISimpleFileService,\n ITagService,\n IUserService,\n} from './api';\n\nimport { ApiSdkService } from './services/api-sdk.service';\nimport { CustomerService } from './services/customer.service';\nimport { FileDownloadService } from './services/file-download.service';\nimport { FileUploadService } from './services/file-upload.service';\nimport { FilesService } from './services/files.service';\nimport { GarmentService } from './services/garment.service';\nimport { ProcessService } from './services/process.service';\nimport { ProductService } from './services/product.service';\nimport { PublicRequestService } from './services/public-request.service';\nimport { RequestService } from './services/request.service';\nimport { TagService } from './services/tag.service';\nimport { UserService } from './services/user.service';\nimport { CentralAssetPlatformService } from './services/central-asset-platform.service';\nimport { SimpleFileService } from '../collection-screen/services/file.service';\n\nexport const DataProviders: Provider[] = [\n {\n provide: IApiSdkService,\n useExisting: ApiSdkService,\n },\n ApiSdkService,\n {\n provide: ICustomerService,\n useExisting: CustomerService,\n },\n CustomerService,\n {\n provide: IProductService,\n useExisting: ProductService,\n },\n ProductService,\n {\n provide: IProcessService,\n useExisting: ProcessService,\n },\n ProcessService,\n {\n provide: ITagService,\n useExisting: TagService,\n },\n TagService,\n {\n provide: IUserService,\n useExisting: UserService,\n },\n UserService,\n {\n provide: IRequestService,\n useExisting: RequestService,\n },\n RequestService,\n {\n provide: IFileUploadService,\n useExisting: FileUploadService,\n },\n FileUploadService,\n {\n provide: IPublicRequestService,\n useExisting: PublicRequestService,\n },\n PublicRequestService,\n {\n provide: IGarmentService,\n useExisting: GarmentService,\n },\n GarmentService,\n PublicRequestService,\n {\n provide: IFileDownloadService,\n useExisting: FileDownloadService,\n },\n FileDownloadService,\n {\n provide: IFileService,\n useExisting: FilesService,\n },\n FilesService,\n {\n provide: ICentralAssetPlatformService,\n useExisting: CentralAssetPlatformService,\n },\n CentralAssetPlatformService,\n {\n provide: ISimpleFileService,\n useExisting: SimpleFileService,\n },\n SimpleFileService,\n];\n\nexport {\n IDiscoveryConfiguration,\n IApiSdkService,\n ICsApiSdkConfiguration,\n ICustomerService,\n ICustomer,\n IProduct,\n IProductType,\n IProductService,\n IServiceRejectionReason,\n IProcessService,\n IUser,\n IUserService,\n IRequest,\n IResquestStateCount,\n IRequestsAggregate,\n IRequestDetail,\n IRequestHistoryState,\n IRequestPrioritiy,\n IRequestState,\n IRequestResult,\n IRequestResultFile,\n IRequestService,\n IFileInformation,\n IFileUploadService,\n IPublicRequestService,\n IGarmentService,\n IFileDownloadService,\n IFileService,\n} from './api';\n\n//HELPERS\nexport { ProductHelper } from './helpers/product.helper';\nexport { RequestStateHelper } from './helpers/request-state.helper';\n\n// ENUMS\nexport { PRODUCT_TYPE } from './enums/product-type.enum';\nexport { PRODUCT_STATE } from './enums/product-state.enum';\nexport { USER_FEATURE_FLAGS } from './enums/user-feature-flags.enum';\nexport { REQUEST_STATE_INTERNAL_ID } from './enums/request-state-internal.enum';\nexport { REQUEST_STATE_CMS } from './enums/request-state-cms.enum';\nexport { REQUEST_STATE_INTERNAL_STRING } from './enums/request-state-internal-string.enum';\n","// ===== File globals.ts\n//\n\nexport const GlobalVariable = Object.freeze({\n CLIENT_VERSION: require('/src/version.json').version,\n GET_CUSTOMER_IDS: 'customerIds',\n FILE_TYPES: 'fileTypes',\n FILE_MIME_TYPES: 'fileMimeTypes',\n FILTER_USER_LIST: 'userLists',\n SCREENSHOT_NAME: 'Screenshot',\n});\n","import { v4 as uuid } from 'uuid';\nimport { RRIBaseModel } from 'projects/web-ui-component-library/src';\n\nexport class File implements RRIBaseModel {\n id: uuid;\n configurationId: uuid;\n name = '';\n typeId = 0;\n typeName = '';\n mimeType = '';\n mimeTypeId: number = 0;\n currentRevisionId: number = 0;\n url = '';\n size: number;\n createdAt: number;\n modifiedAt: number;\n text: string;\n previewUrl?: string;\n\n toDataFormat(): { [key: string]: string } {\n return {\n id: String(this.id),\n configurationId: String(this.configurationId),\n name: String(this.name),\n typeId: String(this.typeId),\n };\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n RRIBatchOption,\n RRIDownloadBatchOptionSettings,\n RRIFileService,\n RRIQueryParams,\n RRITableData,\n} from 'projects/web-ui-component-library/src';\nimport { Observable, Subject } from 'rxjs';\nimport { NgStorageManagerService } from '../../core/services/ng-storage-manager.service';\nimport { AlertService } from 'projects/content-service-cms/src/app/core/services/alert.service';\nimport { ProgressBarService } from 'projects/content-service-cms/src/app/core/services/progress-bar.service';\nimport {\n IFileDownloadService,\n IFileService,\n IRequestResultFile,\n} from 'projects/content-service-cms/src/app/data/api';\nimport { GlobalVariable } from 'projects/content-service-cms/src/app/core/globals';\nimport { File } from 'projects/content-service-cms/src/app/core/models/files/file.model';\nimport {\n IApiSdkService,\n ICsApiSdkConfiguration,\n} from 'projects/content-service-cms/src/app/data';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\n\nimport { FileRevision } from '../../core/models/files/file-revision.model';\nimport {\n FilesApi,\n ImageDTO,\n ImageDTOPage,\n MIMETypeDTO,\n ProductTypeDTO,\n} from '@reactivereality/cs-api-sdk';\n\nimport { AxiosResponse } from 'axios';\nimport { of } from 'rxjs';\nimport { NgDiscoveryService } from '../../core/services/ng-discovery.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FilesService\n extends IFileService\n implements RRIFileService\n{\n static endpointName = 'files';\n private configFilesurl: string;\n private fileConfiguration: File;\n\n private _filesApi: FilesApi;\n private _apiVersion: string;\n\n public isLoading: Subject;\n public BASE_API_URL: string;\n\n constructor(\n protected _http: HttpClient,\n protected _discoveryService: NgDiscoveryService,\n protected _logger: ILogger,\n protected _apiSdkService: IApiSdkService,\n protected _alertService: AlertService,\n protected _progressBarOverlayService: ProgressBarService,\n private _storageService: NgStorageManagerService,\n private _fileDownloadService: IFileDownloadService,\n ) {\n super(\n FilesService.endpointName,\n _http,\n _logger,\n _apiSdkService,\n _discoveryService,\n );\n this.standardUrl = `${this.BASE_API_URL}/${FilesService.endpointName}`;\n this.isLoading = this._progressBarOverlayService.isLoading;\n this._apiSdkService.sdkConfig$.subscribe({\n next: this.initService,\n error: this.errorOnInitService,\n });\n }\n\n public async deleteFile(file: ImageDTO): Promise {\n const response = await this._filesApi.vversionFilesIdDelete(file.id, '1.5');\n return response.data;\n }\n\n public async fileDownload(\n entities: any[],\n visibleBatchOptions: RRIBatchOption>,\n singleDownload?: boolean,\n ): Promise {\n return this._fileDownloadService.fileDownload(\n entities,\n visibleBatchOptions,\n singleDownload,\n );\n }\n\n public async downloadFile(file: File): Promise {\n return this._fileDownloadService.downloadFile(file).toPromise();\n }\n\n public setFileConfiguration(file: File): void {\n this.fileConfiguration = file;\n }\n\n public getData(\n params?: RRIQueryParams,\n ): Observable> {\n const filter: string = this.formatFilters(params.filters);\n\n const imagePage = this.getRequestFiles(\n this.fileConfiguration.configurationId,\n filter,\n );\n return this.mapRequestFiles(imagePage);\n }\n\n public async getFilesFromRequest(): Promise {\n return this.getRequestFiles(this.fileConfiguration.configurationId);\n }\n\n public async getRequestFiles(\n requestId: string,\n filters?: string,\n ): Promise {\n if (this._filesApi) {\n return this._filesApi\n .vversionConfigurationsConfigurationIdFilesGet(\n requestId,\n this._apiVersion,\n 1,\n -1,\n undefined,\n filters,\n )\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return response.data;\n }\n return undefined;\n })\n .catch((reason: any) => {\n this._logger.error(\n `Error while fetching request files for config ${requestId}`,\n reason,\n );\n return null;\n });\n }\n return Promise.reject('There is no Files API.');\n }\n\n public async getFile(fileId: string): Promise {\n if (this._filesApi) {\n return this._filesApi\n .fileLink(fileId, this._apiVersion)\n .then((response: AxiosResponse) => {\n if (response && response.data) {\n return response.data;\n }\n return undefined;\n })\n .catch((reason: any) => {\n this._logger.error(`Error while fetching file ${fileId}`, reason);\n return null;\n });\n }\n return Promise.reject('There is no Files API.');\n }\n\n public async getTypes(): Promise {\n if (!this._storageService.getItem(GlobalVariable.FILE_TYPES, 'session')) {\n if (this._filesApi) {\n return this._filesApi\n .vversionFilesTypesGet(this._apiVersion)\n .then((response: AxiosResponse) => {\n if (response && Array.isArray(response.data)) {\n this._storageService.setItem(\n GlobalVariable.FILE_TYPES,\n response.data,\n 'session',\n );\n return Promise.resolve(response.data);\n }\n\n return undefined;\n })\n .catch((reason: any) => {\n this._logger.error('Error while fetching product types.', reason);\n return Promise.reject();\n });\n }\n } else {\n const data = this._storageService.getItem(\n GlobalVariable.FILE_TYPES,\n 'session',\n );\n return Promise.resolve(data);\n }\n return undefined;\n }\n\n public async getMimeTypes(): Promise {\n if (\n !this._storageService.getItem(GlobalVariable.FILE_MIME_TYPES, 'session')\n ) {\n if (this._filesApi) {\n return this._filesApi\n .vversionFilesMIMEtypesGet(this._apiVersion)\n .then((response: AxiosResponse) => {\n if (response && Array.isArray(response.data)) {\n this._storageService.setItem(\n GlobalVariable.FILE_MIME_TYPES,\n response.data,\n 'session',\n );\n return response.data;\n }\n\n return undefined;\n })\n .catch((reason: any) => {\n this._logger.error('Error while fetching product types.', reason);\n return Promise.reject();\n });\n }\n } else {\n const data = this._storageService.getItem(\n GlobalVariable.FILE_MIME_TYPES,\n 'session',\n );\n return Promise.resolve(data);\n }\n }\n\n public loadFile(lbActiveFile: File): Observable {\n return new Observable((subscriber) => {\n if (typeof lbActiveFile.mimeType !== 'undefined') {\n const request = new XMLHttpRequest();\n request.open('GET', lbActiveFile.url, true);\n request.responseType = 'blob';\n request.onload = () => {\n const reader = new FileReader();\n reader.readAsText(request.response);\n reader.onloadend = (e) => {\n lbActiveFile.text = e.target['result'].toString();\n if (\n lbActiveFile.mimeType &&\n lbActiveFile.mimeType.includes('text')\n ) {\n lbActiveFile.text = lbActiveFile.text.replace(\n /(?:\\r\\n|\\r|\\n)/g,\n '
    ',\n );\n }\n subscriber.next({ file: lbActiveFile, hideLoader: true });\n subscriber.complete();\n };\n reader.onerror = () => {\n this._logger.error('Error: File loading');\n subscriber.next({ file: lbActiveFile, hideLoader: true });\n reader.abort();\n subscriber.complete();\n };\n };\n request.onerror = () => {\n this._logger.error('Error: File loading');\n subscriber.next({ file: lbActiveFile, hideLoader: true });\n subscriber.complete();\n };\n request.send();\n } else {\n const extension = this.getFileExtension(lbActiveFile);\n let hideLoader = true;\n if (extension == '.garment' || extension == '.avatar') {\n hideLoader = false;\n }\n subscriber.next({ file: lbActiveFile, hideLoader: hideLoader });\n subscriber.complete();\n }\n });\n }\n\n private mapRequestFiles(\n files: Promise,\n ): Observable> {\n const data: RRITableData = { pagination: null, results: [] };\n\n files.then((res) => {\n res.results.map((r) => {\n const f: File = new File();\n f.configurationId = r.configurationId;\n f.createdAt = r.createdAt;\n f.currentRevisionId = r.currentRevisionId;\n f.id = r.id;\n f.mimeType = r.mimeType;\n f.mimeTypeId = r.mimeTypeId;\n f.modifiedAt = r.modifiedAt;\n f.name = r.name;\n f.typeId = r.typeId;\n f.url = r.url;\n f.previewUrl = r.url;\n\n if (f.typeId != 36) {\n //Do not add the thumbnail to the returned files\n data.results.push(f);\n }\n });\n });\n return of(data);\n }\n\n protected initService = (sdkConfig: ICsApiSdkConfiguration) => {\n if (sdkConfig !== undefined && sdkConfig.filesApiSdk) {\n this._apiVersion = sdkConfig.apiVersion;\n this._filesApi = sdkConfig.filesApiSdk;\n } else {\n this.errorOnInitService(\n new Error('There is no Products API Sdk Configuration or API version.'),\n );\n }\n };\n\n private getFileExtension(\n file: File | IRequestResultFile | FileRevision,\n ): string {\n let extension = file.url;\n if (extension.indexOf('?') > -1) {\n extension = extension.substring(0, extension.indexOf('?'));\n }\n extension = extension.substr(extension.lastIndexOf('.'), extension.length);\n return extension;\n }\n}\n","export abstract class ILogger {\n abstract debug(msg: string, ...details: unknown[]): void;\n abstract info(msg: string, ...details: unknown[]): void;\n abstract warn(msg: string, ...details: unknown[]): void;\n abstract error(msg: string, ...details: unknown[]): void;\n}\n","import { Provider } from '@angular/core';\nimport { ILogger } from './api';\nimport { ConsoleLoggerService } from './services/console-logger.service';\n\nexport const LoggerProviders: Provider[] = [\n {\n provide: ILogger,\n useExisting: ConsoleLoggerService,\n },\n ConsoleLoggerService,\n];\n\nexport { ILogger } from './api';\n","import { Injectable } from '@angular/core';\nimport { ILogger } from '../api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConsoleLoggerService implements ILogger {\n private warnedOfConsole: boolean = false;\n constructor() {\n // eslint-disable-next-line no-console\n console.log = (...args: any[]) => {\n if (!this.warnedOfConsole) {\n this.emitMessage('Warn', \"Instances of 'console.log' still in use.\");\n this.warnedOfConsole = true;\n }\n\n this.emitMessage('Debug', ...args);\n };\n\n this.info('Creating console logger');\n }\n\n private emitMessage(\n level: 'Debug' | 'Info' | 'Warn' | 'Error',\n ...args: any[]\n ) {\n // eslint-disable-next-line no-console\n console[level.toLowerCase()](`[${level}]`, ...args);\n }\n\n public debug(msg: string, ...details: any[]) {\n this.emitMessage('Debug', msg, ...details);\n }\n public info(msg: string, ...details: any[]) {\n this.emitMessage('Info', msg, ...details);\n }\n public warn(msg: string, ...details: any[]) {\n this.emitMessage('Warn', msg, ...details);\n }\n public error(msg: string, ...details: any[]) {\n this.emitMessage('Error', msg, ...details);\n }\n}\n","import { Injectable, InjectionToken, TemplateRef } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { Observable } from 'rxjs';\nimport { ILogger } from '../logging';\n\nexport const DEPTH_TOKEN = new InjectionToken('Depth of service', {\n factory: () => 0,\n});\n\nexport interface ModalProps {\n template: TemplateRef;\n headerTemplate?: TemplateRef;\n title?: string;\n confirmDiscard?: boolean;\n showClose?: boolean;\n dismissable?: boolean;\n onClose?: () => any;\n}\n\nexport interface IModalService {\n show(modal: ModalProps): void;\n close(): void;\n}\n\nclass ModalStore extends ComponentStore<{\n modals: ModalProps[];\n}> {\n constructor() {\n super({\n modals: [],\n });\n }\n\n public switch = this.updater((s, newModal: ModalProps) => {\n if (s.modals.length <= 0)\n return {\n ...s,\n modals: [newModal],\n };\n\n const outgoing = s.modals.slice(-1)[0];\n if (outgoing.onClose) outgoing.onClose();\n\n return {\n ...s,\n modals: [...s.modals.slice(0, -1), newModal],\n };\n });\n public show = this.updater((s, newModal: ModalProps) => ({\n ...s,\n modals: [...s.modals, newModal],\n }));\n\n public close = this.updater((s) => {\n if (s.modals.length <= 0) return s;\n\n const outgoing = s.modals.slice(-1)[0];\n const newStack = s.modals.slice(0, -1);\n if (outgoing.onClose) outgoing.onClose();\n\n return {\n ...s,\n modals: newStack,\n };\n });\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService implements IModalService {\n private modalStore: ModalStore;\n\n public readonly modalStack$: Observable;\n public readonly modalStackDepth$: Observable;\n\n public show(modal: ModalProps) {\n return this.modalStore.show(modal);\n }\n\n public switch(modal: ModalProps) {\n return this.modalStore.switch(modal);\n }\n public close() {\n return this.modalStore.close();\n }\n\n constructor(private logger: ILogger) {\n this.logger.debug('[ModalService]', 'New ModalService');\n this.modalStore = new ModalStore();\n\n this.modalStack$ = this.modalStore.select((s) => s.modals);\n this.modalStackDepth$ = this.modalStore.select((s) => s.modals.length);\n\n // debug\n this.modalStack$.subscribe((stack) =>\n this.logger.debug('[ModalService]', 'Stack:', stack),\n );\n }\n}\n","export enum FASHION_IMAGE_RESOLUTION {\n SD = 0,\n HD = 1,\n FOUR_K = 2,\n SIX_K = 3,\n}\n\nexport interface FashionImageResolutionInfo {\n resolution: FASHION_IMAGE_RESOLUTION;\n width: number;\n height: number;\n text: string;\n slug: string;\n}\n\nexport const FashionImageResolutionTypes: FashionImageResolutionInfo[] = [\n {\n resolution: FASHION_IMAGE_RESOLUTION.SD,\n width: 720,\n height: 1280,\n text: '1280x720 (SD)',\n slug: 'sd',\n },\n {\n resolution: FASHION_IMAGE_RESOLUTION.HD,\n width: 1080,\n height: 1920,\n text: '1920x1080 (HD)',\n slug: 'hd',\n },\n {\n resolution: FASHION_IMAGE_RESOLUTION.FOUR_K,\n width: 2160,\n height: 3840,\n text: '3840x2160 (4K)',\n slug: '4k',\n },\n {\n resolution: FASHION_IMAGE_RESOLUTION.SIX_K,\n width: 4000,\n height: 6000,\n text: '6000x4000 (6K)',\n slug: '6k',\n },\n];\n","\n\n\n\n\n\n\n\n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n ConfigurationHasTagKeyDTO,\n TagKeyDTO,\n} from '@reactivereality/cs-api-sdk';\nimport { InputDateComponent } from 'projects/content-service-cms/src/app/components/inputs/input-date/input-date.component';\nimport {\n DropDownEntry,\n InputDropdownComponent,\n} from 'projects/content-service-cms/src/app/components/inputs/input-dropdown/input-dropdown.component';\nimport { InputTextComponent } from 'projects/content-service-cms/src/app/components/inputs/input-text/input-text.component';\nimport { TagSelectionComponent } from 'projects/content-service-cms/src/app/components/tag-selection/tag-selection.component';\nimport { ICustomerService } from 'projects/content-service-cms/src/app/customer';\nimport {\n IRequestService,\n PRODUCT_TYPE,\n} from 'projects/content-service-cms/src/app/data';\nimport {\n IPriority,\n ITagService,\n} from 'projects/content-service-cms/src/app/data/api';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { Observable, Subject, map, takeUntil } from 'rxjs';\nimport { CreateRequestModalStore } from '../create-request-modal.state';\nimport { FashionImageResolutionTypes } from '../data/fashion-image-size.types';\n\n@Component({\n selector: 'app-common-inputs',\n templateUrl: './common-inputs.component.html',\n styleUrls: ['./common-inputs.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n TagSelectionComponent,\n InputDropdownComponent,\n InputTextComponent,\n InputDateComponent,\n ],\n})\nexport class CommonInputsComponent implements OnInit, OnDestroy {\n public tags: TagKeyDTO[] = [];\n public inputValid: boolean;\n private _onDestroy$: Subject;\n private _allPriorities: IPriority[] = [];\n\n public prioritiesDDValues: DropDownEntry[] = [];\n public renderSizes: DropDownEntry[] = [];\n public allProductTypes = PRODUCT_TYPE;\n public priority: Observable = undefined;\n public size: Observable = undefined;\n public tags$: Observable>;\n\n public disabled: boolean;\n\n constructor(\n private _requestService: IRequestService,\n private _logger: ILogger,\n private _tagService: ITagService,\n public customerService: ICustomerService,\n public createRequestModalStore: CreateRequestModalStore,\n ) {\n FashionImageResolutionTypes.forEach((v) =>\n this.renderSizes.push({ id: v.text, data: v.text }),\n );\n }\n\n ngOnInit(): void {\n this.inputValid = false;\n this._onDestroy$ = new Subject();\n this.createRequestModalStore.createRequestAction$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((create) => {\n this.disabled = create;\n });\n this.createRequestModalStore.createRequestActionAndAnotherOne$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((createAndAnotherOne) => {\n this.disabled = createAndAnotherOne;\n });\n this.tags$ = this.createRequestModalStore.tags$.pipe(\n takeUntil(this._onDestroy$),\n map((t) => {\n return t.map((tag) => {\n return {\n tagKeyId: tag.id,\n tagKeyName: tag.name,\n tagKeyColor: tag.color,\n tagKeyDescription: tag.description,\n tagKeyDisplayTemplate: tag.displayTemplate,\n tagKeyJsonSchema: tag.jsonSchema,\n value: '',\n configurationId: '',\n } as ConfigurationHasTagKeyDTO;\n });\n }),\n );\n\n this.size = this.createRequestModalStore.requestCommonDataSize$.pipe(\n map((s) => {\n this._logger.debug(`Common input setting size`, s);\n if (s) {\n return `${s.text}`;\n }\n return null;\n }),\n );\n this.priority =\n this.createRequestModalStore.requestCommonDataPriority$.pipe(\n map((s) => s?.id),\n );\n\n this._requestService.allPriorities$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe({\n next: this.onPrioritiesChanged,\n error: this.onPrioritiesChangedHasError,\n });\n }\n\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n\n onPrioritiesChanged = (data: Array) => {\n this._allPriorities = data;\n this.prioritiesDDValues = this._allPriorities.map((v) => {\n return { id: v.id, data: v.name };\n });\n };\n\n onPrioritiesChangedHasError = (error: Error) => {\n console.error('Was not able to fetch priorites.', error);\n };\n\n onNameChanged(entry: { value: string; valid: boolean }) {\n this.createRequestModalStore.changeCreateRequestCommonData({\n name: entry.value,\n });\n }\n onSkuChanged(entry: { value: string; valid: boolean }) {\n this.createRequestModalStore.changeCreateRequestCommonData({\n sku: entry.value,\n });\n }\n onDueChanged(entry: Date) {\n this.createRequestModalStore.changeCreateRequestCommonData({\n dueDate: entry,\n });\n }\n onPriorityChanged(entry: DropDownEntry) {\n this.createRequestModalStore.changeCreateRequestCommonData({\n priority: {\n id: `${entry.id}`,\n name: entry.data,\n },\n });\n }\n onSizeChanged(entry: DropDownEntry) {\n this.createRequestModalStore.changeCreateRequestCommonData({\n size: FashionImageResolutionTypes.find((i) => i.text === entry.id),\n });\n }\n nameValidation = (value: string): boolean => {\n return value.length > 0;\n };\n\n addExistingTagToSelectionEvent(event: TagKeyDTO) {\n this.tags.push(event);\n // TODO:\n //this.tagsToAdd.emit(this.tags);\n this.createRequestModalStore.addTagEntry(event);\n }\n async addToSelectionEvent(event: TagKeyDTO) {\n this._logger.info('addToSelectionEvent', event);\n await this._tagService.createOrUpdateTag(event.id, event);\n this.tags.push(event);\n // TODO:\n //this.tagsToAdd.emit(this.tags);\n this.createRequestModalStore.addTagEntry(event);\n }\n async deleteTagEvent(event: TagKeyDTO) {\n this._logger.info('deleteTagEvent', event);\n await this._tagService.deleteTag(event.id);\n this.tags = this.tags.filter((o) => o.id !== event.id);\n // TODO:\n //this.tagsToAdd.emit(this.tags);\n this.createRequestModalStore.removeTagEntry(event);\n }\n async removeFromSelectionEvent(event: TagKeyDTO) {\n this._logger.info('removeFromSelectionEvent', event);\n this.tags = this.tags.filter((o) => o.id !== event.id);\n // TODO:\n //this.tagsToAdd.emit(this.tags);\n this.createRequestModalStore.removeTagEntry(event);\n }\n async updateOrCreateSelectionEvent(event: TagKeyDTO) {\n this._logger.info('updateOrCreateSelectionEvent', event);\n await this._tagService.createOrUpdateTag(event.id, event);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n DressableGarment,\n IGarmentSelectionService,\n} from 'projects/content-service-cms/src/app/components/garment-selection/services/i-garment-selection.service';\nimport { GarmentDTO } from 'projects/content-service-cms/src/app/data/api';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { Observable } from 'rxjs';\nimport { CreateRequestModalStore } from '../create-request-modal.state';\n\n@Injectable()\nexport class CreateRequestGarmentSelectionService extends IGarmentSelectionService {\n constructor(private store: CreateRequestModalStore, private logger: ILogger) {\n super();\n this.logger.debug(\n `Initializing garment selection service for component store`,\n );\n }\n public tuckedInGarment$: Observable =\n this.store.tuckedInGarment$;\n\n public selectedGarments$: Observable =\n this.store.selectedGarments$;\n\n public dressed$: Observable = this.store.garments$;\n\n public currentSelectedGarments = (): GarmentDTO[] => {\n this.logger.debug(`Getting current garments from store`);\n return this.store.current().dressingRoom.selectedGarments;\n };\n\n public currentDressed = (): GarmentDTO[] => {\n return this.store.current().dressingRoom.garments;\n };\n\n public setSelectedGarments = (garments: GarmentDTO[]) => {\n this.logger.debug(`Setting garments in the adapter!`, garments);\n this.store.setSelectedGarments(garments);\n };\n\n public setDressedGarments = (garments: GarmentDTO[]) => {\n this.logger.debug(`Setting dressed garments in the adapter!`, garments);\n this.store.setGarments(garments);\n };\n public setTuckedInGarment = (garment: GarmentDTO) => {\n this.logger.debug(`Setting tucked in garment in the adapter!`, garment);\n this.store.setTuckedInGarment(garment);\n };\n public setGarmentStylingOptions = (garment: GarmentDTO, options: any) => {\n this.logger.debug(`Setting garment styling options!`, garment, options);\n this.store.setGarmentStylingOptions({ garment, options });\n };\n}\n","
    \n \n Cancel\n \n
    \n \n Submit request \n \n \n \n \n
    \n \n
    \n
    \n
    \n Submit request\n
    \n
    \n Submit and create another request\n
    \n \n Save draft\n
    \n \n \n \n\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { CreateRequestModalStore } from '../create-request-modal.state';\n\n@Component({\n selector: 'app-action-buttons',\n templateUrl: './action-buttons.component.html',\n styleUrls: ['./action-buttons.component.scss'],\n standalone: true,\n imports: [CommonModule],\n})\nexport class ActionButtonsComponent implements OnInit, OnDestroy {\n public mouseOver: boolean;\n public showDropDown: boolean;\n @ViewChild('#dropdown') dropDown: ElementRef;\n\n constructor(\n public createRequestModalStore: CreateRequestModalStore,\n private eRef: ElementRef,\n ) {}\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {}\n\n cancelClicked = () => {\n this.createRequestModalStore.cancelAction();\n };\n\n createRequestClicked = () => {\n this.createRequestModalStore.createRequestAction();\n this.showDropDown = false;\n };\n saveDraftRequestClicked = () => {\n this.createRequestModalStore.saveDraftAction();\n this.showDropDown = false;\n };\n onDropDownClicked() {\n this.showDropDown = !this.showDropDown;\n }\n clickOutside(event: MouseEvent) {\n this.showDropDown = false;\n }\n saveRequestAndAnotherOneClicked() {\n this.createRequestModalStore.createRequestActionAnAnotherOne();\n this.showDropDown = false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from 'projects/content-service-cms/src/app/app.state';\nimport { AddAvatarModalComponent } from 'projects/content-service-cms/src/app/components/avatar-selection-entry/add-avatar-modal/add-avatar-modal.component';\nimport { AvatarSelectionEntryComponent } from 'projects/content-service-cms/src/app/components/avatar-selection-entry/avatar-selection-entry.component';\nimport { FileUploadFullComponent } from 'projects/content-service-cms/src/app/components/file-upload-full/file-upload-full.component';\nimport { AddGarmentModalComponent } from 'projects/content-service-cms/src/app/components/garment-selection/add-garment-modal/add-garment-modal.component';\nimport { GarmentSelectionComponent } from 'projects/content-service-cms/src/app/components/garment-selection/garment-selection.component';\nimport { RequestFilesHelper } from 'projects/content-service-cms/src/app/core/helpers/request/request-files.helper';\nimport { UploadData } from 'projects/content-service-cms/src/app/core/interfaces/upload-data.interface';\nimport { ICustomerService } from 'projects/content-service-cms/src/app/customer';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { VirtualDressingRoomModule } from 'projects/content-service-cms/src/app/virtual-dressing-room/virtual-dressing-room.module';\nimport { RRSpinnerModule } from 'projects/web-ui-component-library/src';\nimport { Subject, filter, takeUntil } from 'rxjs';\nimport { createNewRequestAction } from '../../../store/requests-overview.actions';\nimport { ActionButtonsComponent } from '../action-buttons/action-buttons.component';\nimport { CommonInputsComponent } from '../common-inputs/common-inputs.component';\nimport { CreateRequestModalStore } from '../create-request-modal.state';\nimport { CreateGarment2DService } from '../services/create-garment-2d.service';\n\n@Component({\n selector: 'app-create-garment-2d',\n templateUrl: './create-garment-2d.component.html',\n styleUrls: ['./create-garment-2d.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n AddAvatarModalComponent,\n AddGarmentModalComponent,\n RRSpinnerModule,\n VirtualDressingRoomModule,\n FileUploadFullComponent,\n CommonInputsComponent,\n AvatarSelectionEntryComponent,\n GarmentSelectionComponent,\n ActionButtonsComponent,\n ],\n})\nexport class CreateGarment2DComponent implements OnInit, OnDestroy {\n private _onDestroy$: Subject;\n\n private _frontFile: UploadData;\n private _backFile: UploadData;\n private _referencefiles: UploadData[];\n\n public initialFrontFiles = new Subject();\n public initialBackFiles = new Subject();\n public initialReferenceFiles = new Subject();\n\n constructor(\n private _logger: ILogger,\n public customerService: ICustomerService,\n public createRequestModalStore: CreateRequestModalStore,\n private createGarment2DService: CreateGarment2DService,\n private _store: Store,\n ) {}\n\n ngOnInit(): void {\n this._onDestroy$ = new Subject();\n this.createRequestModalStore.requestCommonDataName$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => {\n this.isInputValid();\n });\n\n this.createRequestModalStore.createRequestAction$\n .pipe(\n takeUntil(this._onDestroy$),\n filter((c) => c),\n )\n .subscribe(async () => {\n await this.createGarment2DService.createRequest(\n this.createRequestModalStore,\n {\n front: this._frontFile,\n back: this._backFile,\n reference: this._referencefiles,\n },\n );\n\n this.createRequestModalStore.cancelAction();\n });\n this.createRequestModalStore.createRequestActionAndAnotherOne$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(async () => {\n await this.createGarment2DService.createRequest(\n this.createRequestModalStore,\n {\n front: this._frontFile,\n back: this._backFile,\n reference: this._referencefiles,\n },\n );\n const state = this.createRequestModalStore.current();\n this._store.dispatch(\n createNewRequestAction({\n productType: state.productType,\n }),\n );\n this.initialBackFiles.next([]);\n this.initialFrontFiles.next([]);\n this.initialReferenceFiles.next([]);\n });\n }\n\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n\n public onSelectedFilesChanged(\n type: 'front' | 'back' | 'ref',\n files: UploadData[],\n ) {\n this._logger.debug(type, files);\n switch (type) {\n case 'front':\n if (files?.length === 0) {\n this._frontFile = undefined;\n break;\n }\n this._frontFile = files[0];\n this._frontFile.fileinformation.typeId =\n RequestFilesHelper.MannequinShotFileType.id;\n break;\n case 'back':\n if (files?.length === 0) {\n this._backFile = undefined;\n break;\n }\n this._backFile = files[0];\n this._backFile.fileinformation.typeId =\n RequestFilesHelper.MannequinShotBackFileType.id;\n break;\n case 'ref':\n if (files?.length === 0) {\n this._referencefiles = [];\n break;\n }\n this._referencefiles = files;\n this._referencefiles.forEach((a) => {\n a.fileinformation.typeId =\n RequestFilesHelper.ReferenceImageFileType.id;\n });\n break;\n }\n this.isInputValid();\n }\n private isInputValid() {\n const commonData = this.createRequestModalStore.currentCommonData();\n if (commonData.name && this._frontFile) {\n this.createRequestModalStore.changeCreateRequestCommonData({\n dataValid: true,\n });\n } else {\n this.createRequestModalStore.changeCreateRequestCommonData({\n dataValid: false,\n });\n }\n }\n}\n","
    \n
    \n

    Ghost mannequin shot

    \n \n \n \n
    \n
    \n \n
    \n \n Manual quality control\n
    \n \n
    \n
    \n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from 'projects/content-service-cms/src/app/app.state';\nimport { AddAvatarModalComponent } from 'projects/content-service-cms/src/app/components/avatar-selection-entry/add-avatar-modal/add-avatar-modal.component';\nimport { AvatarSelectionEntryComponent } from 'projects/content-service-cms/src/app/components/avatar-selection-entry/avatar-selection-entry.component';\nimport { FileUploadFullComponent } from 'projects/content-service-cms/src/app/components/file-upload-full/file-upload-full.component';\nimport { AddGarmentModalComponent } from 'projects/content-service-cms/src/app/components/garment-selection/add-garment-modal/add-garment-modal.component';\nimport { GarmentSelectionComponent } from 'projects/content-service-cms/src/app/components/garment-selection/garment-selection.component';\nimport { RequestFilesHelper } from 'projects/content-service-cms/src/app/core/helpers/request/request-files.helper';\nimport { UploadData } from 'projects/content-service-cms/src/app/core/interfaces/upload-data.interface';\nimport { ICustomerService } from 'projects/content-service-cms/src/app/customer';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { VirtualDressingRoomModule } from 'projects/content-service-cms/src/app/virtual-dressing-room/virtual-dressing-room.module';\nimport { RRSpinnerModule } from 'projects/web-ui-component-library/src';\nimport { Subject, filter, takeUntil } from 'rxjs';\nimport { createNewRequestAction } from '../../../store/requests-overview.actions';\nimport { ActionButtonsComponent } from '../action-buttons/action-buttons.component';\nimport { CommonInputsComponent } from '../common-inputs/common-inputs.component';\nimport { CreateRequestModalStore } from '../create-request-modal.state';\nimport { CreateGarment3DCADService } from '../services/create-garment-3d-cad.service';\n\n@Component({\n selector: 'app-create-garment-3d-cad',\n templateUrl: './create-garment-3d-cad.component.html',\n styleUrls: ['./create-garment-3d-cad.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n AddAvatarModalComponent,\n AddGarmentModalComponent,\n RRSpinnerModule,\n VirtualDressingRoomModule,\n FileUploadFullComponent,\n CommonInputsComponent,\n AvatarSelectionEntryComponent,\n GarmentSelectionComponent,\n ActionButtonsComponent,\n ],\n})\nexport class CreateGarment3DCADComponent implements OnInit, OnDestroy {\n private _onDestroy$: Subject;\n\n private _cadFile: UploadData;\n private _referencefiles: UploadData[];\n\n public initialCadFiles = new Subject();\n public initialReferenceFiles = new Subject();\n\n constructor(\n private _logger: ILogger,\n public customerService: ICustomerService,\n public createRequestModalStore: CreateRequestModalStore,\n private createGarment3DCADService: CreateGarment3DCADService,\n private _store: Store,\n ) {}\n\n ngOnInit(): void {\n this._onDestroy$ = new Subject();\n this.createRequestModalStore.requestCommonDataName$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((name) => {\n this.isInputValid();\n });\n\n this.createRequestModalStore.createRequestAction$\n .pipe(\n takeUntil(this._onDestroy$),\n filter((c) => c),\n )\n .subscribe(async () => {\n await this.createGarment3DCADService.createRequest(\n this.createRequestModalStore,\n {\n cad: this._cadFile,\n reference: this._referencefiles,\n },\n );\n this.createRequestModalStore.cancelAction();\n });\n this.createRequestModalStore.createRequestActionAndAnotherOne$\n .pipe(\n takeUntil(this._onDestroy$),\n filter((c) => c),\n )\n .subscribe(async () => {\n await this.createGarment3DCADService.createRequest(\n this.createRequestModalStore,\n {\n cad: this._cadFile,\n reference: this._referencefiles,\n },\n );\n const state = this.createRequestModalStore.current();\n this._store.dispatch(\n createNewRequestAction({\n productType: state.productType,\n }),\n );\n this.initialCadFiles.next([]);\n this.initialReferenceFiles.next([]);\n });\n }\n\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n private isInputValid() {\n const commonData = this.createRequestModalStore.currentCommonData();\n if (commonData.name && this._cadFile) {\n this.createRequestModalStore.changeCreateRequestCommonData({\n dataValid: true,\n });\n } else {\n this.createRequestModalStore.changeCreateRequestCommonData({\n dataValid: false,\n });\n }\n }\n public onSelectedFilesChanged(type: 'cad' | 'ref', files: UploadData[]) {\n this._logger.debug(type, files);\n switch (type) {\n case 'cad':\n if (files?.length === 0) {\n this._cadFile = undefined;\n break;\n }\n this._cadFile = files[0];\n this._cadFile.fileinformation.typeId =\n RequestFilesHelper.CadFileType.id;\n break;\n case 'ref':\n if (files?.length === 0) {\n this._referencefiles = [];\n break;\n }\n this._referencefiles = files;\n this._referencefiles.forEach((a) => {\n a.fileinformation.typeId =\n RequestFilesHelper.ReferenceImageFileType.id;\n });\n break;\n }\n this.isInputValid();\n }\n}\n","
    \n
    \n

    CAD file

    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n","
    \n
    \n \n \n The outfit has changed. Please click
    \n reload when you’re finised editing.\n \n Reload preview\n \n
    \n \n Please select an avatar\n \n Select Avatar\n \n
    \n \n \n
    \n
    \n \n \n
    \n

    Avatar

    \n
    \n \n \n
    \n
    \n \n \n \n \n
    \n
    \n\n","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport {\n Component,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { StaticAsset } from '@reactivereality/pictofit-web-sdk';\nimport { IAppState } from 'projects/content-service-cms/src/app/app.state';\n\nimport { IAuthService } from 'projects/content-service-cms/src/app/auth';\nimport { AddAvatarModalComponent } from 'projects/content-service-cms/src/app/components/avatar-selection-entry/add-avatar-modal/add-avatar-modal.component';\nimport { AvatarSelectionEntryComponent } from 'projects/content-service-cms/src/app/components/avatar-selection-entry/avatar-selection-entry.component';\nimport { AvatarSelectionService } from 'projects/content-service-cms/src/app/components/avatar-selection-entry/avatar-selection.service';\nimport { FileUploadFullComponent } from 'projects/content-service-cms/src/app/components/file-upload-full/file-upload-full.component';\nimport { AddGarmentModalComponent } from 'projects/content-service-cms/src/app/components/garment-selection/add-garment-modal/add-garment-modal.component';\nimport { GarmentSelectionComponent } from 'projects/content-service-cms/src/app/components/garment-selection/garment-selection.component';\nimport { AlertService } from 'projects/content-service-cms/src/app/core/services/alert.service';\nimport { NgDiscoveryService } from 'projects/content-service-cms/src/app/core/services/ng-discovery.service';\nimport { ICustomerService } from 'projects/content-service-cms/src/app/customer';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { ViewerMode } from 'projects/content-service-cms/src/app/virtual-dressing-room/data/api';\nimport { Avatar3DAsset } from 'projects/content-service-cms/src/app/virtual-dressing-room/data/model/AvatarAssets';\nimport { Garment3DAsset } from 'projects/content-service-cms/src/app/virtual-dressing-room/data/model/GarmentAssets';\nimport { IIDAsset } from 'projects/content-service-cms/src/app/virtual-dressing-room/interfaces/assets';\nimport { RRIDressingRoomSettings } from 'projects/content-service-cms/src/app/virtual-dressing-room/interfaces/dressing-room-settings';\nimport {\n IVDRDisplay,\n IVDRStatus,\n} from 'projects/content-service-cms/src/app/virtual-dressing-room/interfaces/vdressing-room';\nimport { VirtualDressingRoomModule } from 'projects/content-service-cms/src/app/virtual-dressing-room/virtual-dressing-room.module';\nimport { RRSpinnerModule } from 'projects/web-ui-component-library/src';\nimport { BehaviorSubject, Subject, filter, takeUntil } from 'rxjs';\nimport { createNewRequestAction } from '../../../store/requests-overview.actions';\nimport { ActionButtonsComponent } from '../action-buttons/action-buttons.component';\nimport { CommonInputsComponent } from '../common-inputs/common-inputs.component';\nimport { CreateRequestModalStore } from '../create-request-modal.state';\nimport { CreateOutfit3DService } from '../services/create-outfit-3d.service';\nimport { VirtualDressingRoomComponent } from 'projects/content-service-cms/src/app/virtual-dressing-room/virtual-dressing-room/virtual-dressing-room.component';\nimport { IScreenShotService } from 'projects/content-service-cms/src/app/core/interfaces/i-screenshot';\n\n@Component({\n selector: 'app-create-outfit-3d',\n templateUrl: './create-outfit-3d.component.html',\n styleUrls: ['./create-outfit-3d.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n AddAvatarModalComponent,\n AddGarmentModalComponent,\n RRSpinnerModule,\n VirtualDressingRoomModule,\n FileUploadFullComponent,\n CommonInputsComponent,\n AvatarSelectionEntryComponent,\n GarmentSelectionComponent,\n ActionButtonsComponent,\n ],\n})\nexport class CreateOutfit3DComponent\n implements OnInit, OnDestroy, IScreenShotService\n{\n public dressingRoomSettings: RRIDressingRoomSettings;\n public vdrUpdate$: BehaviorSubject;\n public vdrStatus$: BehaviorSubject;\n public vdrReset$: Subject;\n private _onDestroy$: Subject;\n\n public token = this._authService.getToken();\n public viewerReloadRequired: boolean;\n\n @ViewChild('MainVDR') vdr: VirtualDressingRoomComponent;\n\n constructor(\n public createRequestModalStore: CreateRequestModalStore,\n public customerService: ICustomerService,\n private _logger: ILogger,\n private _authService: IAuthService,\n private _discoveryService: NgDiscoveryService,\n private _http: HttpClient,\n private _outfit3DService: CreateOutfit3DService,\n private alertService: AlertService,\n private avatarSelectionService: AvatarSelectionService,\n private _store: Store,\n ) {\n this.vdrStatus$ = new BehaviorSubject(undefined);\n this.vdrUpdate$ = new BehaviorSubject(undefined);\n this.vdrReset$ = new Subject();\n this.dressingRoomSettings = {\n type: '3D',\n computeServerUrl:\n this._discoveryService.config.apiConfiguration.computeServerUrl,\n height: '100%',\n width: '100%',\n disableAvatarSelection: true,\n disableFullscreenMode: true,\n };\n }\n\n async takeScreenshot(height?: number, width?: number): Promise {\n return await this.vdr.takeScreenshot(height, width);\n }\n\n ngOnInit(): void {\n this._onDestroy$ = new Subject();\n\n this.vdrStatus$.subscribe((status) => {\n this._logger.error(`Received status from VDR!!`, status);\n if (status && status.error) {\n this._logger.error(`Received error status from VDR!!`);\n this.alertService.showErrorAlert(`Failed to perform 3D tryon.`);\n this.viewerReloadRequired = true;\n }\n });\n this.createRequestModalStore.requestCommonDataName$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => {\n this.isInputValid();\n });\n this.createRequestModalStore.garments$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((_) => {\n this.viewerReloadRequired = true;\n });\n\n this.createRequestModalStore.refreshRoom$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((refresh) => {\n if (refresh) {\n this.applyChangedState();\n this.createRequestModalStore.refreshRoomNow(false);\n }\n });\n\n this.createRequestModalStore.avatar$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((avatar) => {\n this._logger.debug(`Updated avatar!`, avatar);\n this.updateViewer();\n });\n\n this.createRequestModalStore.createRequestAction$\n .pipe(\n takeUntil(this._onDestroy$),\n filter((c) => c),\n )\n .subscribe(async () => {\n const image = await this.vdr.takeScreenshot();\n await this._outfit3DService.createRequest(\n this.createRequestModalStore,\n image,\n false,\n );\n this.createRequestModalStore.cancelAction();\n });\n this.createRequestModalStore.createRequestActionAndAnotherOne$\n .pipe(\n takeUntil(this._onDestroy$),\n filter((c) => c),\n )\n .subscribe(async () => {\n const image = await this.vdr.takeScreenshot();\n await this._outfit3DService.createRequest(\n this.createRequestModalStore,\n image,\n false,\n );\n const state = this.createRequestModalStore.current();\n this._store.dispatch(\n createNewRequestAction({\n productType: state.productType,\n }),\n );\n this.vdrReset$.next();\n });\n this.createRequestModalStore.saveDraftAction$\n .pipe(\n takeUntil(this._onDestroy$),\n filter((c) => c),\n )\n .subscribe(async () => {\n const image = await this.vdr.takeScreenshot();\n await this._outfit3DService.createRequest(\n this.createRequestModalStore,\n image,\n true,\n );\n this.createRequestModalStore.cancelAction();\n });\n }\n\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n\n public addAvatarClicked() {\n this.avatarSelectionService.selectAvatar();\n }\n\n private updateViewer = () => {\n const currentAvatar = this.createRequestModalStore.currentAvatar();\n if (!currentAvatar) {\n this._logger.debug('not ready to show');\n return;\n }\n\n const viewerMode: ViewerMode = ViewerMode.MODE_3D;\n const sceneAsset: IIDAsset = {\n asset: new StaticAsset('/assets/viewer/scenes/3D/standard'),\n id: 'test',\n };\n const avatarWebResult = currentAvatar.results.find(\n (r) => r.format === 'web',\n );\n\n if (!avatarWebResult) {\n this._logger.error(`Failed to load web result of avatar!`);\n throw new Error(`Failed to load web result of avatar!`);\n }\n\n const avatar: any = new Avatar3DAsset(\n avatarWebResult.files.map((f) => ({\n filename: f.name,\n mimetype: f.mimeType,\n url: f.url,\n })),\n this._http,\n this._logger,\n );\n\n const currentGarments = this.createRequestModalStore\n .current()\n .dressingRoom.garments.filter(\n (c) => c.results.find((r) => r.format === 'web') !== undefined,\n )\n .map((r) => {\n const result = r.results.find((r) => r.format === 'web');\n const stylingOptions = r.stylingOptions;\n\n const asset = new Garment3DAsset(\n result.files.map((f) => ({\n filename: f.name,\n url: f.url,\n })),\n this._http,\n this._logger,\n );\n\n return {\n asset,\n id: r.id,\n stylingOptions,\n };\n });\n\n this.vdrUpdate$.next({\n garments: currentGarments,\n scene: sceneAsset,\n avatar: {\n id: currentAvatar.id,\n asset: avatar,\n },\n focusedGarment: null,\n sizeRecomendation: null,\n mode: viewerMode,\n });\n this.viewerReloadRequired = false;\n this.isInputValid();\n };\n\n applyChangedState() {\n this.updateViewer();\n this.viewerReloadRequired = false;\n }\n private isInputValid() {\n const currentState = this.createRequestModalStore.current();\n\n if (\n currentState.requestCommonData.name &&\n currentState.dressingRoom?.avatar &&\n currentState.dressingRoom?.garments?.length > 0\n ) {\n this.createRequestModalStore.changeCreateRequestCommonData({\n dataValid: true,\n });\n } else {\n this.createRequestModalStore.changeCreateRequestCommonData({\n dataValid: false,\n });\n }\n }\n}\n","
    \n
    \n

    Scenes

    \n\n \n\n \n \n \n \n \n
    \n \n \n \n \n This scene is not valid.\n This scene has been archived.\n \n\n
    \n \n \n \n \n
    \n\n
    \n {{ scene?.name }}\n {{ scene?.sku }}\n
    \n {{\n scene?.createdAt ? (scene.createdAt | prettyProductDate) : ''\n }}\n \n
    \n \n \n
    \n
    \n \n Cancel\n \n \n Select\n \n
    \n
    \n
    \n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n DateInputElementComponent,\n RRSpinnerModel,\n RRSpinnerModule,\n SelectInputElementComponent,\n} from 'projects/web-ui-component-library/src';\nimport {\n GarmentThumbnailPipe,\n ProductTypePipe,\n SceneThumbnailPipe,\n} from '../../../utils/CommonPipes';\nimport { AddItemComponent } from '../../add-item/add-item.component';\n\nimport { PagingData, SceneDTO } from '../../../data/api';\nimport { PrettyProductDatePipe } from '../../../request-overview/components/request-list-page/request-list-row/request-list-row.component';\n\nimport { CustomerStorageService } from '../../../customer/service/customer-storage.service';\nimport { SceneService } from '../../../virtual-dressing-room/data/services/scene.service';\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\n\nimport { IPaginationDataProviderInterface } from '../../../request-overview/services/pagination-data-provider.interface';\nimport { ComponentPaginationDataProvider } from '../../../request-overview/services/component-pagination-data-provider';\nimport { RequestListPaginationComponent } from '../../../request-overview/components/request-list-page/request-list-pagination/request-list-pagination.component';\nimport { SelectionModalStore } from '../../../request-overview/components/create-request-modal/store/selection-modal-store';\nimport { ModalService } from '../../../modal/modal.service';\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n debounceTime,\n from,\n switchMap,\n} from 'rxjs';\nimport { FilterSelectionComponent } from '../../filter-selection/filter-selection.component';\nimport { IFilterConfiguration } from '../../filter-selection/types/filter-selection.types';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from '../../../app.state';\nimport { PRODUCT_TYPE } from '../../../data';\n\n@Component({\n selector: 'app-add-scene-modal',\n templateUrl: './add-scene-modal.component.html',\n styleUrls: ['./add-scene-modal.component.scss'],\n imports: [\n CommonModule,\n RRSpinnerModule,\n AddItemComponent,\n GarmentThumbnailPipe,\n SceneThumbnailPipe,\n ProductTypePipe,\n PrettyProductDatePipe,\n PaginationModule,\n RequestListPaginationComponent,\n NgxSkeletonLoaderModule,\n FilterSelectionComponent,\n ],\n standalone: true,\n providers: [\n [\n SelectionModalStore,\n {\n provide: IPaginationDataProviderInterface,\n useClass: ComponentPaginationDataProvider,\n },\n ],\n ],\n})\nexport class AddSceneModalComponent implements OnInit, AfterViewInit {\n @Output() public selectedScene: EventEmitter =\n new EventEmitter();\n\n @ViewChild('selectScene') modal;\n\n public allScenes: SceneDTO[];\n public spinnerStatus: RRSpinnerModel;\n public selScene: SceneDTO;\n public currentPage: number;\n public searchPattern: string;\n public readonly pageSize = 10;\n\n public filterConfiguration: IFilterConfiguration[];\n private _allTags$ = new BehaviorSubject<{ value: string; text: string }[]>(\n undefined,\n );\n private _sceneLookup$: Subject = new Subject();\n private _abortController: AbortController;\n private _filter = {};\n constructor(\n private _customerStorageService: CustomerStorageService,\n private _sceneService: SceneService,\n private _store: SelectionModalStore,\n private _modalService: ModalService,\n\n private _appStore: Store,\n ) {\n this.spinnerStatus = {\n show: false,\n text: 'Loading...',\n };\n\n this.filterConfiguration = [\n {\n id: 'tags',\n text: 'Tags',\n placeholder: 'Find Tags...',\n type: SelectInputElementComponent,\n data: this._allTags$,\n },\n {\n id: 'createdAt',\n text: 'Created at',\n placeholder: 'Select date',\n type: DateInputElementComponent,\n },\n ];\n }\n async ngAfterViewInit(): Promise {\n combineLatest([\n this._store.currentPage$,\n this._store.searchPattern$,\n this._store.filters$,\n ])\n .pipe(debounceTime(100))\n .subscribe(([currentPage, searchPattern, filter]) => {\n if (currentPage && searchPattern != undefined && filter != undefined) {\n this.currentPage = currentPage;\n this.searchPattern = searchPattern;\n this._filter = filter;\n this._sceneLookup$.next();\n }\n });\n\n //request the garments and enable aborting the request with a new request\n this._sceneLookup$\n .pipe(\n debounceTime(100),\n switchMap(() => {\n this.spinnerStatus.show = true;\n if (this._abortController !== undefined) {\n this._abortController.abort();\n }\n return this.getScenes();\n }),\n )\n .subscribe(async (result) => {\n (this.allScenes = result.scenes),\n this._store.updateCurrentPage(this.currentPage);\n this._store.updatePageCount(result.paging.pageCount);\n this.spinnerStatus.show = false;\n });\n\n this.currentPage = 1;\n this.searchPattern = '';\n\n // this._paginationProvider.currentPage$.subscribe((currentPage) => {\n // if (this.currentPage != currentPage) {\n // this.currentPage = currentPage;\n // this.getScenes();\n // }\n // });\n\n //read all tags from app store\n this._appStore\n .select((state) => state.requestOverview.tags)\n .subscribe((value) => {\n const data = value.map((v) => {\n return { value: v.uuid, text: v.name };\n });\n this._allTags$.next(data);\n });\n }\n\n private getScenes(): Observable<{\n scenes: SceneDTO[];\n paging: PagingData;\n }> {\n this.spinnerStatus.show = true;\n let requestFilter = {\n productTypeId: PRODUCT_TYPE.SCENE,\n stateId: [4, 13],\n };\n\n //extract the tags from the filters\n let tags = this._filter['tags'];\n const filters = JSON.parse(JSON.stringify(this._filter));\n if (tags !== undefined) {\n tags = this.convertToTagFormat(tags);\n delete filters['tags'];\n }\n\n requestFilter = { ...requestFilter, ...filters };\n\n if (this.searchPattern !== undefined && this.searchPattern !== '') {\n requestFilter = {\n ...requestFilter,\n ...{ 'name,sku': this.searchPattern },\n };\n }\n\n this._abortController = new AbortController();\n return from(\n this._sceneService.getScenesForCustomer(\n JSON.stringify(requestFilter),\n PRODUCT_TYPE.SCENE,\n this._customerStorageService.getSelectedCustomer(),\n this.currentPage,\n this.pageSize,\n tags,\n this._abortController.signal,\n ),\n );\n }\n\n ngOnInit(): void {}\n\n onCheckboxChanged($event: any, scene: SceneDTO) {\n const cbs = document.getElementsByName('cb');\n const selElement = $event.target.checked;\n cbs.forEach((data: HTMLInputElement) => {\n data.checked = false;\n });\n if (selElement) {\n if (scene) {\n this.selScene = scene;\n $event.target.checked = true;\n }\n } else {\n if (scene) {\n $event.target.checked = false;\n this.selScene = undefined;\n }\n }\n $event.stopPropagation();\n }\n\n public closeModal() {\n this._modalService.close();\n }\n\n public selectSceneClicked() {\n if (this.selScene != undefined) {\n this.selectedScene.emit(this.selScene);\n }\n this.closeModal();\n }\n\n public async searchPatternChanged(event: any) {\n if (event.target?.value === '' || event.target?.value?.length > 0) {\n this.allScenes = [];\n this._store.updateSearchPattern(event.target.value);\n }\n }\n\n public clearSearchInput() {\n this.allScenes = [];\n this._store.updateSearchPattern('');\n }\n\n private convertToTagFormat(tags: string): string {\n const values = JSON.parse(tags) as {\n value: string;\n id: string;\n }[];\n const tagId = values.map((v) => {\n return v.id;\n });\n let v = {};\n for (const id of tagId) {\n v = { ...v, [id]: ['*'] };\n }\n return JSON.stringify(v);\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class SceneSelectionService {\n public onSelect: EventEmitter = new EventEmitter();\n\n constructor() {}\n\n public selectScene(): void {\n this.onSelect.emit();\n }\n}\n","\n \n\n\n\n\n\n
    \n \n
    \n
    \n {{ selectedScene?.name }}\n {{\n selectedScene?.productTypeId | productType\n }}\n
    \n
    \n \n
    \n\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { ConfigurationDTO, CustomerDTO } from '@reactivereality/cs-api-sdk';\nimport { Subject, takeUntil } from 'rxjs';\nimport { PRODUCT_TYPE } from '../../data';\nimport { IRequestService, SceneDTO } from '../../data/api';\nimport { ModalService } from '../../modal/modal.service';\nimport { CreateRequestModalStore } from '../../request-overview/components/create-request-modal/create-request-modal.state';\nimport {\n GarmentThumbnailPipe,\n ProductTypePipe,\n SceneThumbnailPipe,\n} from '../../utils/CommonPipes';\nimport { AddItemComponent } from '../add-item/add-item.component';\nimport { AddSceneModalComponent } from './add-scene-modal/add-scene-modal.component';\nimport { SceneSelectionService } from './scene-selection.service';\nimport { NgStorageManagerService } from '../../core/services/ng-storage-manager.service';\nimport { ICustomerService } from '../../customer';\n\nconst LOCAL_STORAGE_KEY = 'sceneSelection';\nconst LAST_USED_SCENE = 'lastUsedScene';\n\n@Component({\n selector: 'app-scene-selection-entry',\n templateUrl: './scene-selection-entry.component.html',\n styleUrls: ['./scene-selection-entry.component.scss'],\n imports: [\n CommonModule,\n AddItemComponent,\n GarmentThumbnailPipe,\n SceneThumbnailPipe,\n ProductTypePipe,\n AddSceneModalComponent,\n ],\n standalone: true,\n})\nexport class SceneSelectionEntryComponent implements OnDestroy, OnInit {\n protected ngUnsubscribe: Subject = new Subject();\n public sceneType: PRODUCT_TYPE.SCENE;\n @Input() public selectedScene: SceneDTO;\n @Output() public changeClicked = new EventEmitter();\n @ViewChild('selectScene') selectScene: TemplateRef;\n\n private _currentCustomer: CustomerDTO;\n\n constructor(\n public createRequestModalStore: CreateRequestModalStore,\n public modalService: ModalService,\n public sceneSelectionService: SceneSelectionService,\n private _localStorageService: NgStorageManagerService,\n private _customerService: ICustomerService,\n private _requestService: IRequestService,\n ) {\n this.sceneSelectionService.onSelect\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.modalService.show({\n title: 'Select Scene',\n template: this.selectScene,\n });\n });\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n async ngOnInit(): Promise {\n this._customerService.currentCustomer$.subscribe((customer) => {\n this._currentCustomer = customer;\n });\n if (!this.selectedScene) {\n const lastUsedSceneId = this._localStorageService.getItem(\n [\n LOCAL_STORAGE_KEY,\n LAST_USED_SCENE,\n PRODUCT_TYPE.SCENE,\n this._currentCustomer.id,\n ].join('.'),\n 'local',\n );\n if (lastUsedSceneId === undefined) {\n return;\n }\n const scene = await this._requestService.getRequestByID(lastUsedSceneId);\n this.selectedScene = scene as SceneDTO;\n this.createRequestModalStore.setScene(this.selectedScene);\n }\n }\n\n public onSceneSelected($event: SceneDTO) {\n this._localStorageService.setItem(\n [\n LOCAL_STORAGE_KEY,\n LAST_USED_SCENE,\n PRODUCT_TYPE.SCENE,\n this._currentCustomer.id,\n ].join('.'),\n $event?.id,\n 'local',\n );\n this.createRequestModalStore.setScene($event);\n }\n}\n","
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n \n
    \n \n \n \n
    \n

    Avatar

    \n
    \n \n \n
    \n
    \n \n
    \n

    Scene

    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n","/* eslint-disable max-lines-per-function */\nimport { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FileUploadFullComponent } from 'projects/content-service-cms/src/app/components/file-upload-full/file-upload-full.component';\nimport { AddGarmentModalComponent } from 'projects/content-service-cms/src/app/components/garment-selection/add-garment-modal/add-garment-modal.component';\nimport { GarmentSelectionComponent } from 'projects/content-service-cms/src/app/components/garment-selection/garment-selection.component';\nimport { VirtualDressingRoomModule } from 'projects/content-service-cms/src/app/virtual-dressing-room/virtual-dressing-room.module';\nimport { RRSpinnerModule } from 'projects/web-ui-component-library/src';\nimport { ActionButtonsComponent } from '../action-buttons/action-buttons.component';\nimport { CommonInputsComponent } from '../common-inputs/common-inputs.component';\nimport { CreateRequestModalStore } from '../create-request-modal.state';\nimport { CreateOutfit2DParallaxService } from '../services/create-outfit-2d-parallax.service';\nimport { BehaviorSubject, Subject, filter, takeUntil } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from 'projects/content-service-cms/src/app/app.state';\nimport { createNewRequestAction } from '../../../store/requests-overview.actions';\nimport { AvatarSelectionService } from 'projects/content-service-cms/src/app/components/avatar-selection-entry/avatar-selection.service';\nimport { AvatarService } from 'projects/content-service-cms/src/app/virtual-dressing-room/data/services/avatar.service';\nimport { SceneService } from 'projects/content-service-cms/src/app/virtual-dressing-room/data/services/scene.service';\nimport { AvatarSelectionEntryComponent } from 'projects/content-service-cms/src/app/components/avatar-selection-entry/avatar-selection-entry.component';\nimport { SceneSelectionEntryComponent } from 'projects/content-service-cms/src/app/components/scene-selection-entry/scene-selection-entry.component';\nimport { RRIDressingRoomSettings } from 'projects/content-service-cms/src/app/virtual-dressing-room/interfaces/dressing-room-settings';\nimport {\n IVDRDisplay,\n IVDRStatus,\n} from 'projects/content-service-cms/src/app/virtual-dressing-room/interfaces/vdressing-room';\nimport { IAuthService } from 'projects/content-service-cms/src/app/auth';\nimport { NgDiscoveryService } from 'projects/content-service-cms/src/app/core/services/ng-discovery.service';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { AlertService } from 'projects/content-service-cms/src/app/core/services/alert.service';\nimport { ViewerMode } from 'projects/content-service-cms/src/app/virtual-dressing-room/data/api';\nimport { Avatar2DAsset } from 'projects/content-service-cms/src/app/virtual-dressing-room/data/model/Avatar2DAsset';\nimport { HttpClient } from '@angular/common/http';\nimport { Garment2DAsset } from 'projects/content-service-cms/src/app/virtual-dressing-room/data/model/GarmentAssets';\nimport { SceneAsset } from 'projects/content-service-cms/src/app/virtual-dressing-room/data/model/SceneAsset';\nimport {\n ACCESSORY_SLOT,\n AccessorySelectionComponent,\n} from '../../../../components/accessory-selection/accessory-selection.component';\nimport { IScreenShotService } from 'projects/content-service-cms/src/app/core/interfaces/i-screenshot';\nimport { VirtualDressingRoomComponent } from 'projects/content-service-cms/src/app/virtual-dressing-room/virtual-dressing-room/virtual-dressing-room.component';\nimport { CreateRequestInputData } from '../create-request-input.interface';\n\n@Component({\n selector: 'app-create-outfit2d-parallax',\n standalone: true,\n imports: [\n CommonModule,\n AddGarmentModalComponent,\n RRSpinnerModule,\n VirtualDressingRoomModule,\n FileUploadFullComponent,\n CommonInputsComponent,\n GarmentSelectionComponent,\n ActionButtonsComponent,\n AvatarSelectionEntryComponent,\n SceneSelectionEntryComponent,\n AccessorySelectionComponent,\n ],\n templateUrl: './create-outfit2d-parallax.component.html',\n styleUrl: './create-outfit2d-parallax.component.scss',\n})\nexport class CreateOutfit2dParallaxComponent\n implements OnInit, OnDestroy, IScreenShotService\n{\n private _onDestroy$: Subject;\n public dressingRoomSettings: RRIDressingRoomSettings;\n public vdrUpdate$: BehaviorSubject;\n public vdrStatus$: BehaviorSubject;\n public vdrReset$: Subject;\n public token = this.authService.getToken();\n\n @ViewChild('MainVDR') vdr: VirtualDressingRoomComponent;\n\n constructor(\n public createRequestModalStore: CreateRequestModalStore,\n public authService: IAuthService,\n public avatarSelectionService: AvatarSelectionService,\n public avatarService: AvatarService,\n public sceneService: SceneService,\n private _outfitService: CreateOutfit2DParallaxService,\n private _store: Store,\n private _discoveryService: NgDiscoveryService,\n private _logger: ILogger,\n private _alertService: AlertService,\n private _http: HttpClient,\n ) {\n this.vdrStatus$ = new BehaviorSubject(undefined);\n this.vdrUpdate$ = new BehaviorSubject(undefined);\n this.vdrReset$ = new Subject();\n this.dressingRoomSettings = {\n type: '2D_PARALLAX',\n computeServerUrl:\n this._discoveryService.config.apiConfiguration.computeServerUrl,\n height: '100%',\n width: '100%',\n disableAvatarSelection: true,\n disableFullscreenMode: true,\n };\n }\n async takeScreenshot(height?: number, width?: number): Promise {\n return await this.vdr.takeScreenshot();\n }\n\n ngOnInit(): void {\n this._onDestroy$ = new Subject();\n this.vdrStatus$.subscribe((status) => {\n if (status?.error) {\n this._logger.error(`Received error status from VDR!!`);\n this._alertService.showErrorAlert(`Failed to perform 2D tryon.`);\n this._logger.debug(`Received status from VDR!!`, status);\n }\n });\n this.createRequestModalStore.inputData$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((inputData: CreateRequestInputData) => {\n const isCollectionOutfit =\n inputData.additionalInfo?.isCollectionOutfit ?? false;\n this.createRequestModalStore.changeIsCollectionOutfit(\n isCollectionOutfit,\n );\n });\n this.createRequestModalStore.requestCommonDataName$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => {\n this.isInputValid();\n });\n this.createRequestModalStore.garments$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((_) => {\n this.updateViewer();\n this._logger.debug(\n 'Garments changed!!',\n this.createRequestModalStore.current(),\n );\n });\n this.createRequestModalStore.refreshRoom$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((refresh) => {\n if (refresh) {\n this.updateViewer();\n this.createRequestModalStore.refreshRoomNow(false);\n }\n });\n\n this.createRequestModalStore.avatar$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((avatar) => {\n this._logger.debug(`Updated avatar!`, avatar);\n this.updateViewer();\n });\n\n this.createRequestModalStore.scene$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((scene) => {\n this._logger.debug(`Updated scene!`, scene);\n this.updateViewer();\n });\n\n this.createRequestModalStore.accessories$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((accessories) => {\n this._logger.debug(`Updated accessories!`, accessories);\n this.updateViewer();\n });\n\n this.createRequestModalStore.createRequestAction$\n .pipe(\n takeUntil(this._onDestroy$),\n filter((c) => c),\n )\n .subscribe(async () => {\n const image = await this.takeScreenshot();\n await this._outfitService.createRequest(\n this.createRequestModalStore,\n image,\n false,\n );\n this.createRequestModalStore.cancelAction();\n });\n this.createRequestModalStore.createRequestActionAndAnotherOne$\n .pipe(\n takeUntil(this._onDestroy$),\n filter((c) => c),\n )\n .subscribe(async () => {\n const image = await this.takeScreenshot();\n await this._outfitService.createRequest(\n this.createRequestModalStore,\n image,\n false,\n );\n const state = this.createRequestModalStore.current();\n this._store.dispatch(\n createNewRequestAction({\n productType: state.productType,\n }),\n );\n });\n this.createRequestModalStore.saveDraftAction$\n .pipe(\n takeUntil(this._onDestroy$),\n filter((c) => c),\n )\n .subscribe(async () => {\n const image = await this.takeScreenshot();\n await this._outfitService.createRequest(\n this.createRequestModalStore,\n image,\n true,\n );\n this.createRequestModalStore.cancelAction();\n });\n }\n\n private updateViewer = async () => {\n const currentAvatar = this.createRequestModalStore.currentAvatar();\n const currentScene = this.createRequestModalStore.currentScene();\n if (!currentAvatar || !currentScene) {\n this._logger.debug('not ready to show');\n return;\n }\n\n const viewerMode: ViewerMode = ViewerMode.MODE_2D_PARALLAX;\n\n const avatarWebResult = currentAvatar.results.find(\n (r) => r.format === 'web',\n );\n\n if (!avatarWebResult) {\n this._logger.error(`Failed to load web result of avatar!`);\n throw new Error(`Failed to load web result of avatar!`);\n }\n\n const avatar: any = new Avatar2DAsset(\n avatarWebResult.files.map((f) => ({\n filename: f.name,\n mimetype: f.mimeType,\n url: f.url,\n })),\n this._http,\n this._logger,\n );\n\n const sceneWebResult = currentScene.results.find((r) => r.format === 'web');\n\n if (!sceneWebResult) {\n this._logger.error(`Failed to load web result of scene!`);\n throw new Error(`Failed to load web result of scene!`);\n }\n\n const scene: any = new SceneAsset(\n sceneWebResult.files.map((f) => ({\n filename: f.name,\n mimetype: f.mimeType,\n url: f.url,\n })),\n this._http,\n this._logger,\n );\n\n const currentGarments = this.createRequestModalStore\n .current()\n .dressingRoom.garments.filter(\n (c) => c.results.find((r) => r.format === 'web') !== undefined,\n )\n .map((r) => {\n const result = r.results.find((r) => r.format === 'web');\n return {\n asset: new Garment2DAsset(\n result.files.map((f) => ({\n filename: f.name,\n url: f.url,\n })),\n this._http,\n this._logger,\n ),\n id: r.id,\n };\n });\n\n const currentAccessoires = [];\n for (const pos of Object.values(ACCESSORY_SLOT)) {\n const acc =\n this.createRequestModalStore.current().dressingRoom.accessories[pos];\n if (!acc) continue;\n const result = acc.results.find((r) => r.format === 'web');\n if (!result) continue;\n const asset = new Garment2DAsset(\n result.files.map((f) => ({\n filename: f.name,\n url: f.url,\n })),\n this._http,\n this._logger,\n );\n\n currentAccessoires[pos] = { id: acc.id, asset: asset };\n }\n\n this.vdrUpdate$.next({\n garments: currentGarments,\n scene: {\n id: scene.id,\n asset: scene,\n },\n avatar: {\n id: currentAvatar.id,\n asset: avatar,\n },\n focusedGarment: null,\n sizeRecomendation: null,\n mode: viewerMode,\n accessories: currentAccessoires,\n });\n\n this.isInputValid();\n };\n\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n\n public addAvatarClicked() {\n this.avatarSelectionService.selectAvatar();\n }\n\n private isInputValid() {\n const currentState = this.createRequestModalStore.current();\n\n if (\n currentState.requestCommonData.name &&\n currentState.dressingRoom?.avatar &&\n currentState.dressingRoom?.scene &&\n currentState.dressingRoom?.garments?.length > 0\n ) {\n this.createRequestModalStore.changeCreateRequestCommonData({\n dataValid: true,\n });\n } else {\n this.createRequestModalStore.changeCreateRequestCommonData({\n dataValid: false,\n });\n }\n }\n}\n","\n \n\n
    \n \n \n \n \n
    \n
    \n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { RRSpinnerModule } from 'projects/web-ui-component-library/src';\nimport { IRequestService, PRODUCT_TYPE } from '../../../data';\nimport { Subject, takeUntil } from 'rxjs';\nimport {\n CreateRequestInputData,\n UpdateRequestInputData,\n} from './create-request-input.interface';\nimport { ILogger } from '../../../logging';\nimport { IAppState } from '../../../app.state';\nimport { Store } from '@ngrx/store';\nimport { selectRequestsModalFilter } from '../../store/requests-overview.selectors';\nimport { reloadRequestsAction } from '../../store/requests-overview.actions';\nimport { CreateRequestModalStore } from './create-request-modal.state';\nimport { CreateRequestService } from './services/create-request.service';\nimport { IGarmentSelectionService } from '../../../components/garment-selection/services/i-garment-selection.service';\nimport { CreateRequestGarmentSelectionService } from './services/create-garment-selection.service';\nimport { CommonModule } from '@angular/common';\nimport { CreateGarment2DComponent } from './create-garment-2d/create-garment-2d.component';\nimport { CreateGarment3DCADComponent } from './create-garment-3d-cad/create-garment-3d-cad.component';\nimport { CreateOutfit2DComponent } from './create-outfit-2d/create-outfit-2d.component';\nimport { CreateOutfit3DComponent } from './create-outfit-3d/create-outfit-3d.component';\nimport { AddGarmentModalComponent } from '../../../components/garment-selection/add-garment-modal/add-garment-modal.component';\nimport { AddAvatarModalComponent } from '../../../components/avatar-selection-entry/add-avatar-modal/add-avatar-modal.component';\nimport { ModalService } from '../../../modal/modal.service';\nimport { AvatarSelectionService } from '../../../components/avatar-selection-entry/avatar-selection.service';\nimport { CreateOutfit2dParallaxComponent } from './create-outfit2d-parallax/create-outfit2d-parallax.component';\nimport { SceneSelectionService } from '../../../components/scene-selection-entry/scene-selection.service';\n\n@Component({\n selector: 'app-create-request-modal',\n templateUrl: './create-request-modal.component.html',\n styleUrls: ['./create-request-modal.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n CreateGarment2DComponent,\n CreateGarment3DCADComponent,\n CreateOutfit2dParallaxComponent,\n CreateOutfit2DComponent,\n CreateOutfit3DComponent,\n RRSpinnerModule,\n AddGarmentModalComponent,\n AddAvatarModalComponent,\n ],\n providers: [\n CreateRequestModalStore,\n AvatarSelectionService,\n SceneSelectionService,\n {\n provide: IGarmentSelectionService,\n useClass: CreateRequestGarmentSelectionService,\n },\n ],\n})\nexport class CreateRequestModalComponent implements OnInit, OnDestroy {\n private _onDestroy$: Subject;\n public allProductTypes = PRODUCT_TYPE;\n\n @ViewChild('createRequestModalBody') createRequestModalBody;\n\n constructor(\n private _requestService: IRequestService,\n private _logger: ILogger,\n private store: Store,\n public createRequestModalStore: CreateRequestModalStore,\n private createRequestService: CreateRequestService,\n public modalService: ModalService,\n ) {}\n\n async ngOnInit(): Promise {\n this._onDestroy$ = new Subject();\n\n this._requestService.allPriorities_loading$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => this._logger.debug('loading'));\n\n this.createRequestModalStore.inputData$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(\n (v: CreateRequestInputData | UpdateRequestInputData | null) => {\n this._logger.debug(`Input data is set in store!`, v);\n if (v !== null) {\n this.createRequestService.prepare(v, this.createRequestModalStore);\n }\n },\n );\n\n this.store\n .select(selectRequestsModalFilter)\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((v) => {\n this.createRequestModalStore.reset();\n\n if (v === null) {\n this.closeModal();\n return;\n }\n\n this.modalService.switch({\n title: 'Create New Request',\n template: this.createRequestModalBody,\n confirmDiscard: true,\n onClose: () => {\n this._logger.debug('Loading requests...');\n this.store.dispatch(reloadRequestsAction());\n },\n });\n\n this.createRequestModalStore.setInputData(v);\n });\n\n this.createRequestModalStore.cancelAction$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((c) => {\n if (c) {\n this.closeModal();\n }\n });\n }\n\n public closeModal() {\n this.modalService.close();\n }\n\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { createSelector } from '@ngrx/store';\nimport { TagKeyDTO } from '@reactivereality/cs-api-sdk';\nimport * as _ from 'lodash';\nimport { RRSpinnerModel } from 'projects/web-ui-component-library/src';\nimport { IRequestDetail, PRODUCT_TYPE } from '../../../data';\nimport { AvatarDTO, GarmentDTO, SceneDTO } from '../../../data/api';\nimport {\n CloneRequestInputData,\n CreateRequestCommonData,\n CreateRequestInputData,\n UpdateRequestInputData,\n} from './create-request-input.interface';\nimport { SelectedAccessories } from '../../../components/accessory-selection/accessory-selection.component';\n\nexport interface CreateRequestModalState {\n requestCommonData?: CreateRequestCommonData;\n existingRequest: IRequestDetail | null;\n tags: Array;\n loadingState: RRSpinnerModel;\n skipManualStep: boolean;\n productType: PRODUCT_TYPE;\n inputData:\n | CreateRequestInputData\n | UpdateRequestInputData\n | CloneRequestInputData\n | null;\n features: {\n supportDraft: boolean;\n supportDueDate: boolean;\n supportPriority: boolean;\n supportSize: boolean;\n };\n dressingRoom: {\n avatar: AvatarDTO | null;\n scene: SceneDTO | null;\n garments: Array<\n GarmentDTO & {\n stylingOptions?: any;\n }\n >;\n selectedGarments: Array<\n GarmentDTO & {\n stylingOptions?: any;\n }\n >;\n tuckedInGarment: GarmentDTO & {\n stylingOptions?: any;\n };\n refreshDressingRoom: boolean;\n accessories: SelectedAccessories;\n };\n actions: {\n cancel: boolean;\n cancelAndRedirect: string[];\n createRequest: boolean;\n saveDraft: boolean;\n createRequestAndAnotherOne: boolean;\n startRequest: boolean;\n };\n isCollectionOutfit: boolean;\n}\n\nconst initState: CreateRequestModalState = {\n requestCommonData: {\n dataValid: false,\n },\n existingRequest: null,\n tags: [],\n inputData: null,\n loadingState: {\n show: false,\n text: 'Loading...',\n id: 'create-request',\n },\n skipManualStep: false,\n productType: PRODUCT_TYPE.UNDEFINED,\n features: {\n supportDraft: false,\n supportDueDate: false,\n supportPriority: false,\n supportSize: false,\n },\n dressingRoom: {\n avatar: null,\n scene: null,\n garments: [],\n selectedGarments: [],\n refreshDressingRoom: false,\n tuckedInGarment: null,\n accessories: { TOP: undefined, BOTTOM: undefined, MIDDLE: undefined },\n },\n actions: {\n cancel: false,\n cancelAndRedirect: [],\n createRequest: false,\n saveDraft: false,\n createRequestAndAnotherOne: false,\n startRequest: false,\n },\n isCollectionOutfit: false,\n};\n\n@Injectable()\nexport class CreateRequestModalStore extends ComponentStore {\n constructor() {\n super(initState);\n }\n\n readonly currentAvatar = () => {\n return this.get().dressingRoom.avatar;\n };\n readonly currentScene = () => {\n return this.get().dressingRoom.scene;\n };\n readonly currentAccessories = () => {\n return this.get().dressingRoom.accessories;\n };\n readonly currentCommonData = () => {\n return this.get().requestCommonData;\n };\n readonly currentExistingRequest = () => {\n return this.get().existingRequest;\n };\n readonly currentSkipManualStep = () => {\n return this.get().skipManualStep;\n };\n readonly current = () => {\n return this.get();\n };\n\n readonly loadingState$ = this.select(selectLoadingState);\n readonly requestCommonData$ = this.select(selectCommonData);\n readonly requestCommonDataName$ = this.select(selectCommonDataName);\n readonly requestCommonDataSize$ = this.select(selectCommonDataSize);\n readonly requestCommonDataPriority$ = this.select(selectCommonDataPriority);\n readonly requestCommonDataValid$ = this.select(selectCommonDataIsValid);\n readonly skipManualStep$ = this.select(selectSkipManualStep);\n readonly isCollectionOutfit$ = this.select(selectIsCollectionOutfit);\n\n readonly supportDraft$ = this.select((s) => s.features.supportDraft);\n readonly supportDueDate$ = this.select((s) => s.features.supportDueDate);\n readonly supportPriority$ = this.select((s) => s.features.supportPriority);\n readonly supportSize$ = this.select((s) => s.features.supportSize);\n readonly productType$ = this.select((s) => s.productType);\n readonly inputData$ = this.select((s) => s.inputData);\n readonly existingRequest$ = this.select((s) => s.existingRequest);\n readonly avatar$ = this.select((s) => s.dressingRoom.avatar);\n readonly scene$ = this.select((s) => s.dressingRoom.scene);\n readonly accessories$ = this.select((s) => s.dressingRoom.accessories);\n readonly garments$ = this.select((s) => s.dressingRoom.garments);\n readonly tuckedInGarment$ = this.select(\n (s) => s.dressingRoom.tuckedInGarment,\n );\n readonly selectedGarments$ = this.select(\n (s) => s.dressingRoom.selectedGarments,\n );\n readonly refreshRoom$ = this.select(\n (s) => s.dressingRoom.refreshDressingRoom,\n );\n readonly tags$ = this.select((s) => s.tags);\n\n readonly reset = this.updater((_) => ({\n ...initState,\n }));\n\n readonly showLoading = this.updater((state) => ({\n ...state,\n loadingState: {\n ...state.loadingState,\n show: true,\n },\n }));\n\n readonly hideLoading = this.updater((state) => ({\n ...state,\n loadingState: {\n ...state.loadingState,\n show: false,\n },\n }));\n\n readonly changeCreateRequestCommonData = this.updater(\n (state, data: Partial) => ({\n ...state,\n requestCommonData: {\n ...state.requestCommonData,\n ...data,\n },\n }),\n );\n\n readonly clearCreateRequestCommonData = this.updater((state) => ({\n ...state,\n requestCommonData: {\n dataValid: false,\n },\n }));\n\n readonly changeSkipManualStep = this.updater((state, data: boolean) => ({\n ...state,\n skipManualStep: data,\n }));\n\n readonly switchSkipManualStep = this.updater((state) => ({\n ...state,\n skipManualStep: !state.skipManualStep,\n }));\n\n readonly changeIsCollectionOutfit = this.updater((state, data: boolean) => ({\n ...state,\n isCollectionOutfit: data,\n features: {\n ...state.features,\n supportSize: !data,\n },\n }));\n\n readonly switchIsCollectionOutfit = this.updater((state) => ({\n ...state,\n isCollectionOutfit: !state.isCollectionOutfit,\n }));\n\n readonly setProductType = this.updater((state, type: PRODUCT_TYPE) => ({\n ...state,\n productType: type,\n }));\n\n readonly clearExistingRequest = this.updater((state) => ({\n ...state,\n existingRequest: null,\n }));\n\n readonly setExistingRequest = this.updater((state, req: IRequestDetail) => ({\n ...state,\n existingRequest: req,\n }));\n\n readonly setFeatures = this.updater(\n (state, features: CreateRequestModalState['features']) => ({\n ...state,\n features,\n }),\n );\n\n readonly setInputData = this.updater(\n (\n state,\n inputData:\n | CreateRequestInputData\n | UpdateRequestInputData\n | CloneRequestInputData\n | null,\n ) => ({\n ...state,\n inputData,\n }),\n );\n\n readonly setAvatar = this.updater((state, avatar: AvatarDTO | null) => ({\n ...state,\n dressingRoom: {\n ...state.dressingRoom,\n avatar,\n },\n }));\n\n readonly setScene = this.updater((state, scene: SceneDTO | null) => ({\n ...state,\n dressingRoom: {\n ...state.dressingRoom,\n scene,\n },\n }));\n\n readonly setAccessories = this.updater(\n (state, accessories: SelectedAccessories) => ({\n ...state,\n dressingRoom: {\n ...state.dressingRoom,\n accessories,\n },\n }),\n );\n\n readonly setGarments = this.updater(\n (\n state,\n garments: Array<\n GarmentDTO & {\n stylingOptions?: any;\n }\n >,\n ) => ({\n ...state,\n dressingRoom: {\n ...state.dressingRoom,\n garments,\n },\n }),\n );\n\n readonly refreshRoomNow = this.updater((state, refresh: boolean) => ({\n ...state,\n dressingRoom: {\n ...state.dressingRoom,\n refreshDressingRoom: refresh,\n },\n }));\n\n readonly setSelectedGarments = this.updater(\n (state, garments: Array) => ({\n ...state,\n dressingRoom: {\n ...state.dressingRoom,\n selectedGarments: garments,\n },\n }),\n );\n readonly setTuckedInGarment = this.updater((state, garment: GarmentDTO) => ({\n ...state,\n dressingRoom: {\n ...state.dressingRoom,\n tuckedInGarment: garment,\n },\n }));\n readonly setTags = this.updater((state, tags: Array) => ({\n ...state,\n tags,\n }));\n\n readonly addTagEntry = this.updater((state, tag: TagKeyDTO) => ({\n ...state,\n tags: _.uniqBy([...state.tags, tag], (v) => v.id),\n }));\n\n readonly clearTagEntry = this.updater((state, tag: TagKeyDTO) => ({\n ...state,\n tags: [],\n }));\n\n readonly removeTagEntry = this.updater((state, tag: TagKeyDTO) => ({\n ...state,\n tags: [...state.tags, tag].filter((t) => t.id !== tag.id),\n }));\n\n // Actions\n\n readonly cancelAction$ = this.select((s) => s.actions.cancel);\n readonly cancelAndRedirectAction$ = this.select(\n (s) => s.actions.cancelAndRedirect,\n );\n readonly createRequestActionAndAnotherOne$ = this.select(\n (s) => s.actions.createRequestAndAnotherOne,\n );\n readonly createRequestAction$ = this.select((s) => s.actions.createRequest);\n readonly saveDraftAction$ = this.select((s) => s.actions.saveDraft);\n readonly startRequestAction$ = this.select((s) => s.actions.startRequest);\n\n readonly cancelAction = this.updater((state) => ({\n ...state,\n loadingState: {\n ...state.loadingState,\n show: false,\n },\n actions: {\n ...state.actions,\n cancel: true,\n cancelAndRedirect: [],\n },\n }));\n\n readonly cancelAndRedirectAction = this.updater(\n (state, redirectTo: string[]) => ({\n ...state,\n loadingState: {\n ...state.loadingState,\n show: false,\n },\n actions: {\n ...state.actions,\n cancel: true,\n cancelAndRedirect: redirectTo,\n },\n }),\n );\n\n readonly createRequestAction = this.updater((state) => ({\n ...state,\n loadingState: {\n ...state.loadingState,\n show: true,\n },\n actions: {\n ...state.actions,\n createRequest: true,\n },\n }));\n\n readonly createRequestActionAnAnotherOne = this.updater((state) => ({\n ...state,\n loadingState: {\n ...state.loadingState,\n show: true,\n },\n actions: {\n ...state.actions,\n createRequestAndAnotherOne: true,\n },\n }));\n\n readonly saveDraftAction = this.updater((state) => ({\n ...state,\n loadingState: {\n ...state.loadingState,\n show: true,\n },\n actions: {\n ...state.actions,\n saveDraft: true,\n },\n }));\n\n readonly startRequestAction = this.updater((state) => ({\n ...state,\n actions: {\n ...state.actions,\n startRequest: true,\n },\n }));\n\n readonly resetStartRequestAction = this.updater((state) => ({\n ...state,\n actions: {\n ...state.actions,\n startRequest: false,\n },\n }));\n\n readonly setGarmentStylingOptions = this.updater(\n (state, update: { garment: GarmentDTO; options: any }) => {\n const garments = state.dressingRoom.garments.map((garment) => {\n if (garment.id !== update.garment.id) return garment;\n\n garment.stylingOptions = update.options;\n return garment;\n });\n\n const selectedGarments = state.dressingRoom.selectedGarments.map(\n (garment) => {\n if (garment.id !== update.garment.id) return garment;\n\n garment.stylingOptions = update.options;\n return garment;\n },\n );\n\n return {\n ...state,\n dressingRoom: {\n ...state.dressingRoom,\n selectedGarments,\n garments,\n },\n };\n },\n );\n}\n\n// Selectors\n\nexport const selectLoadingState = (state: CreateRequestModalState) =>\n state.loadingState;\nexport const selectLoadingStateShow = createSelector(\n selectLoadingState,\n (state: RRSpinnerModel) => state.show,\n);\nexport const selectLoadingStateText = createSelector(\n selectLoadingState,\n (state: RRSpinnerModel) => state.text,\n);\n\nexport const selectSkipManualStep = (state: CreateRequestModalState) =>\n state.skipManualStep;\n\nexport const selectIsCollectionOutfit = (state: CreateRequestModalState) =>\n state.isCollectionOutfit;\nexport const selectCommonData = (state: CreateRequestModalState) =>\n state.requestCommonData;\n\nexport const selectCommonDataName = createSelector(\n selectCommonData,\n (state: CreateRequestCommonData) => state.name,\n);\nexport const selectCommonDataPriority = createSelector(\n selectCommonData,\n (state: CreateRequestCommonData) => state.priority,\n);\nexport const selectCommonDataSize = createSelector(\n selectCommonData,\n (state: CreateRequestCommonData) => state.size,\n);\nexport const selectCommonDataIsValid = createSelector(\n selectCommonData,\n (state: CreateRequestCommonData) => state.dataValid,\n);\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { RequestFilesHelper } from 'projects/content-service-cms/src/app/core/helpers/request/request-files.helper';\nimport {\n FILE_UPLOAD_STATE,\n UploadData,\n} from 'projects/content-service-cms/src/app/core/interfaces/upload-data.interface';\nimport { ICustomerService } from 'projects/content-service-cms/src/app/customer';\nimport {\n IFileService,\n IFileUploadService,\n IProductService,\n IRequestDetail,\n IRequestService,\n} from 'projects/content-service-cms/src/app/data';\nimport { ITagService } from 'projects/content-service-cms/src/app/data/api';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { CreateRequestInputData } from '../create-request-input.interface';\nimport { CreateRequestModalStore } from '../create-request-modal.state';\nimport { CreateRequestBaseService } from './create-request-base';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CreateGarment2DService extends CreateRequestBaseService {\n constructor(\n private _http: HttpClient,\n private _fileService: IFileService,\n _requestService: IRequestService,\n private _logger: ILogger,\n private customerService: ICustomerService,\n _productService: IProductService,\n private _fileUploadService: IFileUploadService,\n tagService: ITagService,\n ) {\n super(_requestService, _productService, tagService);\n }\n\n prepareCreateNew = async (\n inputData: CreateRequestInputData,\n store: CreateRequestModalStore,\n ): Promise => {\n store.clearCreateRequestCommonData();\n store.clearExistingRequest();\n store.setProductType(inputData.productType);\n store.setFeatures({\n supportDraft: false,\n supportDueDate: false,\n supportPriority: false,\n supportSize: false,\n });\n };\n\n uploadFiles = async (\n filesToUpload: Array,\n request: IRequestDetail,\n ): Promise => {\n const promises = filesToUpload.map(async (file) => {\n file.fileinformation.configurationId = request.id;\n file.uploadState.next(FILE_UPLOAD_STATE.UPLOADING);\n return this._fileUploadService.uploadFile(\n file.fileinformation,\n file.file,\n );\n });\n\n promises.map((p, index) => {\n p.then((_) => {\n filesToUpload[index].uploadState.next(FILE_UPLOAD_STATE.DONE);\n });\n });\n\n await Promise.all(promises);\n };\n\n createRequest = async (\n store: CreateRequestModalStore,\n files: {\n front: UploadData;\n back?: UploadData;\n reference: Array;\n },\n ): Promise => {\n this._logger.debug(`Creating Garment 2D request ...`);\n const customer = await this.customerService.currentCustomer();\n const state = store.current();\n const product = await this.createProduct(\n customer,\n state.requestCommonData,\n state.productType,\n );\n\n const frontRequest = this.getRequestUpdate(\n state.requestCommonData,\n product.id,\n );\n frontRequest.metadata = {\n skip_manual_step: state.skipManualStep,\n } as IRequestDetail['metadata'];\n frontRequest.annotations = {\n view: 'front',\n };\n const front = await this.updateRequest(frontRequest);\n await this.updateTags(front, state.tags);\n const refs =\n files.reference === undefined || files.reference === null\n ? []\n : files.reference;\n await this.uploadFiles([files.front, ...refs], front);\n await this._requestService.setReady(front.id);\n\n if (files.back) {\n const backRequest = this.getRequestUpdate(\n state.requestCommonData,\n product.id,\n );\n backRequest.metadata = {\n skip_manual_step: state.skipManualStep,\n } as IRequestDetail['metadata'];\n backRequest.annotations = {\n view: 'back',\n };\n const back = await this.updateRequest(backRequest);\n await this.updateTags(back, state.tags);\n // We are overwriting the type here for now, but this should be fixed in the task processor later on.\n // See: https://reactivereality.atlassian.net/browse/PC-5389\n files.back!.fileinformation.typeId =\n RequestFilesHelper.MannequinShotFileType.id;\n const refs =\n files.reference === undefined || files.reference === null\n ? []\n : files.reference;\n await this.uploadFiles([files.back, ...refs], back);\n await this._requestService.setReady(back.id);\n }\n };\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n FILE_UPLOAD_STATE,\n UploadData,\n} from 'projects/content-service-cms/src/app/core/interfaces/upload-data.interface';\nimport { ICustomerService } from 'projects/content-service-cms/src/app/customer';\nimport {\n IFileService,\n IFileUploadService,\n IProductService,\n IRequestDetail,\n IRequestService,\n} from 'projects/content-service-cms/src/app/data';\nimport { ITagService } from 'projects/content-service-cms/src/app/data/api';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { CreateRequestInputData } from '../create-request-input.interface';\nimport { CreateRequestModalStore } from '../create-request-modal.state';\nimport { CreateRequestBaseService } from './create-request-base';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CreateGarment3DCADService extends CreateRequestBaseService {\n constructor(\n private _http: HttpClient,\n private _fileService: IFileService,\n _requestService: IRequestService,\n private _logger: ILogger,\n private customerService: ICustomerService,\n _productService: IProductService,\n private _fileUploadService: IFileUploadService,\n tagService: ITagService,\n ) {\n super(_requestService, _productService, tagService);\n }\n\n prepareCreateNew = async (\n inputData: CreateRequestInputData,\n store: CreateRequestModalStore,\n ): Promise => {\n store.clearCreateRequestCommonData();\n store.clearExistingRequest();\n store.setProductType(inputData.productType);\n store.setFeatures({\n supportDraft: false,\n supportDueDate: false,\n supportPriority: false,\n supportSize: false,\n });\n };\n\n uploadFiles = async (\n filesToUpload: Array,\n request: IRequestDetail,\n ): Promise => {\n const promises = filesToUpload.map(async (file) => {\n file.fileinformation.configurationId = request.id;\n file.uploadState.next(FILE_UPLOAD_STATE.UPLOADING);\n return this._fileUploadService.uploadFile(\n file.fileinformation,\n file.file,\n );\n });\n\n promises.map((p, index) => {\n p.then((_) => {\n filesToUpload[index].uploadState.next(FILE_UPLOAD_STATE.DONE);\n });\n });\n\n await Promise.all(promises);\n };\n\n createRequest = async (\n store: CreateRequestModalStore,\n files: {\n cad: UploadData;\n reference: Array;\n },\n ): Promise => {\n this._logger.debug(`Creating Garment 3D CAD request ...`);\n const customer = await this.customerService.currentCustomer();\n const state = store.current();\n const product = await this.createProduct(\n customer,\n state.requestCommonData,\n state.productType,\n );\n\n const frontRequest = this.getRequestUpdate(\n state.requestCommonData,\n product.id,\n );\n const front = await this.updateRequest(frontRequest);\n await this.updateTags(front, state.tags);\n const refs =\n files.reference === undefined || files.reference === null\n ? []\n : files.reference;\n await this.uploadFiles([files.cad, ...refs], front);\n await this._requestService.setReady(front.id);\n };\n}\n","/* eslint-disable max-lines */\n/* eslint-disable max-lines-per-function */\nimport { Injectable } from '@angular/core';\nimport { ICustomerService } from 'projects/content-service-cms/src/app/customer';\nimport {\n IFileUploadService,\n IGarmentService,\n IProductService,\n IRequestDetail,\n IRequestService,\n} from 'projects/content-service-cms/src/app/data';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\n\nimport {\n CreateRequestCommonData,\n CreateRequestInputData,\n} from '../create-request-input.interface';\nimport {\n CreateRequestModalState,\n CreateRequestModalStore,\n} from '../create-request-modal.state';\nimport { CreateRequestBaseService } from './create-request-base';\nimport {\n IFileService,\n ITagService,\n} from 'projects/content-service-cms/src/app/data/api';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from 'projects/content-service-cms/src/app/app.state';\nimport { v4 as uuid } from 'uuid';\nimport { ConfigurationHasTagKeyDTO } from '@reactivereality/cs-api-sdk';\nimport { firstValueFrom } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport {\n ACCESSORY_SLOT,\n SelectedAccessories,\n} from 'projects/content-service-cms/src/app/components/accessory-selection/accessory-selection.component';\nexport interface ParallaxConfig {\n scene?: uuid;\n avatar?: uuid;\n garments?: uuid[];\n render_resolutions?: {\n name: string;\n width: number;\n height: number;\n }[];\n accessories?:\n | []\n | {\n id: uuid;\n position: 'TOP' | 'BOTTOM' | 'MIDDLE';\n }[];\n mode?: 'DEFAULT' | 'IMAGE_ONLY';\n skip_manual_step?: boolean;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CreateOutfit2DParallaxService extends CreateRequestBaseService {\n private readonly OUTFIT_2D_PARALLAX_FILENAME = 'config.json';\n private readonly OUTFIT_2D_PARALLAX_PREVIEW_FILENAME =\n '__configuration_thumbnail.png';\n\n private readonly DEFAULT_RESOLUTIONS = [\n {\n name: '4K',\n width: 2160,\n height: 3840,\n },\n ];\n constructor(\n requestService: IRequestService,\n private garmentService: IGarmentService,\n private _logger: ILogger,\n private customerService: ICustomerService,\n productService: IProductService,\n private _fileUploadService: IFileUploadService,\n tagService: ITagService,\n private appState: Store,\n private _fileService: IFileService,\n private _http: HttpClient,\n ) {\n super(requestService, productService, tagService);\n }\n\n prepareCreateNew = async (\n inputData: CreateRequestInputData,\n store: CreateRequestModalStore,\n ): Promise => {\n store.clearCreateRequestCommonData();\n store.clearExistingRequest();\n store.setAvatar(null);\n store.setProductType(inputData.productType);\n store.setFeatures({\n supportDraft: false,\n supportDueDate: false,\n supportPriority: false,\n supportSize: true,\n });\n };\n\n public readConfigFile = async (\n request: IRequestDetail,\n ): Promise => {\n const files = await this._fileService.getRequestFiles(\n request.id,\n JSON.stringify({\n name: this.OUTFIT_2D_PARALLAX_FILENAME,\n }),\n );\n const inputFile = files.results.length > 0 ? files.results[0] : undefined;\n if (inputFile) {\n return await firstValueFrom(\n this._http.get(inputFile.url, {\n responseType: 'json',\n }),\n );\n }\n };\n\n prepareDraftEdit = async (\n request: IRequestDetail,\n store: CreateRequestModalStore,\n ): Promise => {\n const priorities = this._requestService.allPriorities$.value;\n const outfitConfiguration = await this.readConfigFile(request);\n\n this._logger.debug(`Outfit configuration loaded`, outfitConfiguration);\n\n const requestCommonData: CreateRequestCommonData = {\n name: request.name,\n sku: request.sku,\n priority: request.priority\n ? priorities.find((p) => p.id === request.priority)\n : undefined,\n dueDate: request.dueAt ? new Date(request.dueAt * 1000) : undefined,\n dataValid: true,\n size: null,\n };\n\n store.changeCreateRequestCommonData(requestCommonData);\n store.setTags(\n request.tags.map((v: ConfigurationHasTagKeyDTO) => {\n return {\n id: v.tagKeyId,\n name: v.tagKeyName,\n color: v.tagKeyColor,\n description: v.tagKeyDescription,\n displayTemplate: v.tagKeyDisplayTemplate,\n jsonSchema: v.tagKeyJsonSchema,\n };\n }),\n );\n\n if (outfitConfiguration.skip_manual_step === true) {\n store.changeSkipManualStep(true);\n } else {\n store.changeSkipManualStep(false);\n }\n\n if (outfitConfiguration.mode === 'DEFAULT') {\n store.changeIsCollectionOutfit(true);\n } else {\n store.changeIsCollectionOutfit(false);\n }\n\n store.setExistingRequest(request);\n store.setProductType(request.productTypeId);\n store.setFeatures({\n supportDraft: true,\n supportDueDate: false,\n supportPriority: false,\n supportSize: true,\n });\n\n const avatarID = outfitConfiguration?.avatar;\n if (avatarID) {\n this._logger.info('Setting avatar:', avatarID);\n const avatarRequest = await this._requestService.getRequestByID(avatarID);\n store.setAvatar({\n ...avatarRequest,\n isPublic: true,\n });\n }\n\n const sceneID = outfitConfiguration?.scene;\n if (sceneID) {\n this._logger.info('Setting scene:', sceneID);\n const sceneRequest = await this._requestService.getRequestByID(sceneID);\n store.setScene({\n ...sceneRequest,\n isPublic: true,\n });\n }\n\n const garments = outfitConfiguration?.garments;\n if (garments) {\n this._logger.debug(`Garments: `, garments);\n const resolved = (\n await Promise.all(\n garments\n .map((g) => ({\n dto: this._requestService.getRequestByID(g),\n garment: g,\n }))\n .map(async ({ dto, garment }) => {\n try {\n const d = await dto;\n return await this.garmentService.mapRequestsToGarments(d, {\n dressed: true,\n isPublic: false,\n tuckedIn: true,\n });\n } catch (e) {\n this._logger.warn(`Failed to load garment!`, e);\n return undefined;\n }\n }),\n )\n ).filter((v) => v !== undefined);\n this._logger.debug(`Resolved Garments: `, resolved);\n const tuckedInItem = resolved.find((o) => o.tuckedIn === true);\n store.setTuckedInGarment(tuckedInItem);\n store.setSelectedGarments(resolved);\n store.setGarments(resolved);\n\n const accessories = outfitConfiguration?.accessories;\n if (accessories) {\n this._logger.debug(`Accessories: `, accessories);\n const resolved = (\n await Promise.all(\n accessories\n .map((g) => ({\n dto: this._requestService.getRequestByID(g),\n garment: g,\n }))\n .map(async ({ dto, garment }) => {\n try {\n const d = await dto;\n const mapped =\n await this.garmentService.mapRequestsToGarments(d, {\n dressed: true,\n isPublic: false,\n });\n return { dto: mapped, position: garment.position };\n } catch (e) {\n this._logger.warn(`Failed to load Accessory!`, e);\n return undefined;\n }\n }),\n )\n ).filter((v) => v !== undefined);\n this._logger.debug(`Resolved Accessories: `, resolved);\n const accs: SelectedAccessories = {\n TOP: undefined,\n MIDDLE: undefined,\n BOTTOM: undefined,\n };\n resolved.forEach((r) => {\n accs[r.position] = r.dto;\n });\n store.setAccessories(accs);\n }\n store.refreshRoomNow(true);\n }\n };\n\n build2DParallaxConfig = async (state: CreateRequestModalState) => {\n let res = this.DEFAULT_RESOLUTIONS;\n const size = state.requestCommonData?.size;\n if (size) {\n res = [\n {\n name: size.slug,\n width: size.width,\n height: size.height,\n },\n ];\n }\n\n const config: ParallaxConfig = {\n scene: state.dressingRoom.scene.id,\n avatar: state.dressingRoom.avatar.id,\n garments: state.dressingRoom.garments.map((g) => g.id),\n accessories: mapAccessories(state.dressingRoom.accessories),\n render_resolutions: res,\n mode: state.isCollectionOutfit ? 'DEFAULT' : 'IMAGE_ONLY',\n skip_manual_step: state.skipManualStep,\n };\n\n if (state.isCollectionOutfit) {\n delete config.render_resolutions;\n }\n return config;\n };\n\n createRequest = async (\n store: CreateRequestModalStore,\n previewImage: string,\n asDraft: boolean,\n ): Promise => {\n this._logger.debug(`Creating/Updating Outfit 2D parallax request ...`);\n const customer = await this.customerService.currentCustomer();\n const state = store.current();\n\n const config = await this.build2DParallaxConfig(state);\n let productId = '';\n\n if (!state.existingRequest) {\n const product = await this.createProduct(\n customer,\n state.requestCommonData,\n state.productType,\n );\n productId = product.id;\n } else {\n productId = state.existingRequest.productId;\n }\n\n const request = this.getRequestUpdate(state.requestCommonData, productId);\n\n if (state.existingRequest) {\n request.id = state.existingRequest.id;\n }\n\n const front = await this.updateRequest(request);\n\n await this.updateTags(front, state.tags);\n\n if (state.existingRequest) {\n const files = await this._fileService.getRequestFiles(request.id);\n const outfitFile = files.results.find(\n (o) => o.name === this.OUTFIT_2D_PARALLAX_FILENAME,\n );\n const previewFile = files.results.find(\n (o) => o.name === this.OUTFIT_2D_PARALLAX_PREVIEW_FILENAME,\n );\n if (outfitFile) {\n await this._fileService.deleteFile(outfitFile);\n }\n if (previewFile) {\n await this._fileService.deleteFile(previewFile);\n }\n }\n\n await this._fileUploadService.uploadJsonFile(\n {\n id: '',\n configurationId: request.id,\n fileName: this.OUTFIT_2D_PARALLAX_FILENAME,\n typeId: 0,\n mimeType: 'application/json',\n },\n config,\n );\n\n await this._fileUploadService.uploadBase64File(\n {\n id: '',\n configurationId: request.id,\n fileName: this.OUTFIT_2D_PARALLAX_PREVIEW_FILENAME,\n typeId: 36,\n mimeType: 'image/png',\n },\n previewImage,\n );\n\n if (!asDraft) {\n await this._requestService.setReady(request.id);\n }\n };\n}\nfunction mapAccessories(accessories: SelectedAccessories): {\n id: uuid;\n position: 'TOP' | 'BOTTOM' | 'MIDDLE';\n}[] {\n if (accessories) {\n const result = [];\n for (const p of Object.values(ACCESSORY_SLOT)) {\n if (accessories[p] !== undefined) {\n result.push({\n id: accessories[p].id,\n position: p,\n });\n }\n }\n return result;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ConfigurationHasTagKeyDTO } from '@reactivereality/cs-api-sdk';\nimport { ICustomerService } from 'projects/content-service-cms/src/app/customer';\nimport {\n IFileService,\n IFileUploadService,\n IGarmentService,\n IProductService,\n IRequestDetail,\n IRequestService,\n} from 'projects/content-service-cms/src/app/data';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { firstValueFrom } from 'rxjs';\nimport {\n CreateRequestCommonData,\n CreateRequestInputData,\n} from '../create-request-input.interface';\nimport { CreateRequestModalStore } from '../create-request-modal.state';\nimport { CreateRequestBaseService } from './create-request-base';\nimport { ITagService } from 'projects/content-service-cms/src/app/data/api';\nimport { Outfit3DManifest } from 'projects/content-service-cms/src/app/data/models/outfit3d/outfit3d.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CreateOutfit3DService extends CreateRequestBaseService {\n private readonly OUTFIT_3D_FILENAME = 'outfit3d-manifest.json';\n private readonly OUTFIT_3D_PREVIEW_FILENAME = 'outfit3d-preview.png';\n\n constructor(\n private _http: HttpClient,\n private _fileService: IFileService,\n requestService: IRequestService,\n private garmentService: IGarmentService,\n private _logger: ILogger,\n private customerService: ICustomerService,\n productService: IProductService,\n private _fileUploadService: IFileUploadService,\n tagService: ITagService,\n ) {\n super(requestService, productService, tagService);\n }\n\n public readOutfitManifest = async (\n request: IRequestDetail,\n ): Promise => {\n const files = await this._fileService.getRequestFiles(\n request.id,\n JSON.stringify({\n name: this.OUTFIT_3D_FILENAME,\n }),\n );\n const inputFile = files.results.length > 0 ? files.results[0] : undefined;\n if (inputFile) {\n return await firstValueFrom(\n this._http.get(inputFile.url, {\n responseType: 'json',\n }),\n );\n }\n };\n\n public buildOutfitManifest = async (\n store: CreateRequestModalStore,\n mustBeValid: boolean,\n ): Promise => {\n const current = store.current();\n let order = -1;\n current.dressingRoom.garments.forEach((g) => {\n const mobileResult = g.results.find((r) => r.format === 'mobile');\n if (!mobileResult) {\n throw new Error(\n `Failed to handle configuration ${g.id}, no mobile result`,\n );\n }\n if (mobileResult.files.length < 1) {\n throw new Error(\n `Failed to handle configuration ${g.id}, invalid mobile result, is empty`,\n );\n }\n });\n\n const garmentInputs = current.dressingRoom.garments.map((garment) => {\n const mobileResult = garment.results.find((r) => r.format === 'mobile');\n order = order + 1;\n return {\n order,\n stylingTemplates: garment.stylingOptions ?? {},\n source: {\n configurationId: garment.id,\n resultId: mobileResult.id,\n fileName:\n mobileResult.files?.length === 1 ? mobileResult.files[0].name : '',\n },\n };\n });\n\n const avatarMobileResult = current.dressingRoom.avatar.results.find(\n (r) => r.format === 'mobile',\n );\n if (!avatarMobileResult && mustBeValid) {\n throw new Error(\n `Failed to handle configuration ${current.dressingRoom.avatar.id}, no mobile result`,\n );\n }\n\n const avatar = avatarMobileResult\n ? {\n configurationId: current.dressingRoom.avatar.id,\n resultId: avatarMobileResult.id,\n fileName:\n avatarMobileResult.files?.length === 1\n ? avatarMobileResult.files[0].name\n : '',\n isPublic: current.dressingRoom.avatar.isPublic,\n }\n : null;\n\n return {\n outfit: {\n avatar: {\n source: avatar,\n },\n garments: garmentInputs,\n },\n };\n };\n\n prepareCreateNew = async (\n inputData: CreateRequestInputData,\n store: CreateRequestModalStore,\n ): Promise => {\n store.clearCreateRequestCommonData();\n store.clearExistingRequest();\n store.setProductType(inputData.productType);\n store.setFeatures({\n supportDraft: true,\n supportDueDate: false,\n supportPriority: false,\n supportSize: false,\n });\n };\n\n prepareDraftEdit = async (\n request: IRequestDetail,\n store: CreateRequestModalStore,\n ): Promise => {\n const priorities = this._requestService.allPriorities$.value;\n const manifest = await this.readOutfitManifest(request);\n\n this._logger.debug(`3D Outfit manifest loaded`, manifest);\n\n const requestCommonData: CreateRequestCommonData = {\n name: request.name,\n sku: request.sku,\n priority: request.priority\n ? priorities.find((p) => p.id === request.priority)\n : undefined,\n dueDate: request.dueAt ? new Date(request.dueAt * 1000) : undefined,\n dataValid: true,\n };\n\n store.changeCreateRequestCommonData(requestCommonData);\n store.setTags(\n request.tags.map((v: ConfigurationHasTagKeyDTO) => {\n return {\n id: v.tagKeyId,\n name: v.tagKeyName,\n color: v.tagKeyColor,\n description: v.tagKeyDescription,\n displayTemplate: v.tagKeyDisplayTemplate,\n jsonSchema: v.tagKeyJsonSchema,\n };\n }),\n );\n\n store.setExistingRequest(request);\n store.setProductType(request.productTypeId);\n store.setFeatures({\n supportDraft: true,\n supportDueDate: false,\n supportPriority: false,\n supportSize: false,\n });\n\n const avatarID = manifest?.outfit.avatar.source.configurationId;\n if (avatarID) {\n const avatarRequest = await this._requestService.getRequestByID(avatarID);\n store.setAvatar({\n ...avatarRequest,\n isPublic: false,\n });\n }\n\n const garments = manifest?.outfit.garments;\n if (garments) {\n this._logger.debug(`Garments: `, garments);\n const resolved = (\n await Promise.all(\n garments\n .map((g) => ({\n dto: this._requestService.getRequestByID(\n g.source.configurationId,\n ),\n garment: g,\n stylingTemplates: g.stylingTemplates,\n }))\n .map(\n async ({\n dto,\n garment: { stylingTemplates: stylingOptions },\n }) => {\n try {\n return {\n ...(await this.garmentService.mapRequestsToGarments(\n await dto,\n {\n dressed: true,\n isPublic: false,\n },\n )),\n stylingOptions,\n };\n } catch (e) {\n this._logger.warn(`Failed to load garment!`, e);\n return undefined;\n }\n },\n ),\n )\n ).filter((v) => v !== undefined);\n this._logger.debug(`Resolved Garments: `, resolved);\n store.setSelectedGarments(resolved);\n store.setGarments(resolved);\n store.refreshRoomNow(true);\n }\n };\n\n createRequest = async (\n store: CreateRequestModalStore,\n previewImage: string,\n asDraft: boolean,\n ): Promise => {\n this._logger.debug(`Creating/Updating Outfit 3D request ...`);\n const customer = await this.customerService.currentCustomer();\n const state = store.current();\n const manifest = await this.buildOutfitManifest(store, !asDraft);\n\n let productId = '';\n\n if (!state.existingRequest) {\n const product = await this.createProduct(\n customer,\n state.requestCommonData,\n state.productType,\n );\n productId = product.id;\n } else {\n productId = state.existingRequest.productId;\n }\n\n const request = this.getRequestUpdate(state.requestCommonData, productId);\n\n if (state.existingRequest) {\n request.id = state.existingRequest.id;\n }\n\n const front = await this.updateRequest(request);\n\n await this.updateTags(front, state.tags);\n\n if (state.existingRequest) {\n const files = await this._fileService.getRequestFiles(request.id);\n const outfitFile = files.results.find(\n (o) => o.name === this.OUTFIT_3D_FILENAME,\n );\n const previewFile = files.results.find(\n (o) => o.name === this.OUTFIT_3D_PREVIEW_FILENAME,\n );\n if (outfitFile) {\n await this._fileService.deleteFile(outfitFile);\n }\n if (previewFile) {\n await this._fileService.deleteFile(previewFile);\n }\n }\n\n await this._fileUploadService.uploadJsonFile(\n {\n id: '',\n configurationId: request.id,\n fileName: this.OUTFIT_3D_FILENAME,\n typeId: 0,\n mimeType: 'application/json',\n },\n manifest,\n );\n\n await this._fileUploadService.uploadBase64File(\n {\n id: '',\n configurationId: request.id,\n fileName: this.OUTFIT_3D_PREVIEW_FILENAME,\n typeId: 36,\n mimeType: 'image/png',\n },\n previewImage,\n );\n\n if (!asDraft) {\n await this._requestService.setReady(request.id);\n }\n };\n}\n","import {\n ConfigurationHasTagKeyDTO,\n CustomerDTO,\n TagKeyDTO,\n} from '@reactivereality/cs-api-sdk';\nimport {\n IProduct,\n IProductService,\n IRequestDetail,\n IRequestService,\n PRODUCT_STATE,\n PRODUCT_TYPE,\n} from 'projects/content-service-cms/src/app/data';\nimport {\n IRequestUpdate,\n ITagService,\n} from 'projects/content-service-cms/src/app/data/api';\n\nimport { v4 as uuid } from 'uuid';\nimport { CreateRequestCommonData } from '../create-request-input.interface';\n\nexport class CreateRequestBaseService {\n constructor(\n protected _requestService: IRequestService,\n protected _productService: IProductService,\n protected _tagService: ITagService,\n ) {}\n\n protected updateTags = async (\n req: IRequestDetail,\n tags: Array,\n ) => {\n await Promise.all(\n req.tags?.map((t: ConfigurationHasTagKeyDTO) => {\n if (!tags.some((v) => v.id === t.tagKeyId)) {\n return this._tagService.deleteTagFromConfiguration(\n t.tagKeyId,\n req.id,\n );\n }\n }),\n );\n await Promise.all(\n tags.map((t) => {\n return this._tagService.addTagToConfiguration(t.id, req.id);\n }),\n );\n };\n\n protected createProduct = async (\n customer: CustomerDTO,\n requestCommonData: CreateRequestCommonData,\n productType: PRODUCT_TYPE,\n ): Promise => {\n const productId = uuid();\n const product = {\n createdAt: Date.now(),\n customerId: customer.id,\n customerName: customer.name,\n dueAt: null,\n id: productId,\n metadata: {},\n modifiedAt: Date.now(),\n name: requestCommonData.name,\n sku: requestCommonData.sku ? requestCommonData.sku : uuid(),\n stateId: PRODUCT_STATE.READY_FOR_PROCESSING,\n typeId: productType,\n };\n return await this._productService.updateProduct(product);\n };\n\n protected getRequestUpdate = (\n requestCommonData: CreateRequestCommonData,\n productId: string,\n ): IRequestUpdate => {\n return {\n id: uuid(),\n productId: productId,\n name: requestCommonData.name,\n sku: requestCommonData.sku,\n dueAt: requestCommonData.dueDate\n ? requestCommonData.dueDate?.getTime() / 1000\n : null,\n priority: requestCommonData.priority\n ? requestCommonData.priority.id\n : null,\n metadata: {},\n annotations: null,\n };\n };\n\n protected updateRequest = async (\n request: IRequestUpdate,\n ): Promise => {\n return await this._requestService.update(request);\n };\n}\n","import { Injectable } from '@angular/core';\nimport { AlertService } from 'projects/content-service-cms/src/app/core/services/alert.service';\nimport {\n IRequestService,\n PRODUCT_TYPE,\n} from 'projects/content-service-cms/src/app/data';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport {\n CloneRequestInputData,\n CreateRequestInputData,\n UpdateRequestInputData,\n isCloneRequestInputData,\n isCreateRequestInputData,\n isUpdateRequestInputData,\n} from '../create-request-input.interface';\nimport { CreateRequestModalStore } from '../create-request-modal.state';\nimport { CreateGarment2DService } from './create-garment-2d.service';\nimport { CreateGarment3DCADService } from './create-garment-3d-cad.service';\nimport { CreateOutfit3DService } from './create-outfit-3d.service';\nimport { ICreateRequestService } from './create-request-interface';\nimport { CreateOutfit2DParallaxService } from './create-outfit-2d-parallax.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CreateRequestService {\n private dispatch: { [type: string]: ICreateRequestService } = {};\n\n constructor(\n private _logger: ILogger,\n private _requestService: IRequestService,\n createGarment2D: CreateGarment2DService,\n createOutfit2DParallax: CreateOutfit2DParallaxService,\n createGarment3DCAD: CreateGarment3DCADService,\n createOutfit3D: CreateOutfit3DService,\n private alertService: AlertService,\n ) {\n this.dispatch[PRODUCT_TYPE.GARMENT_2D] = createGarment2D;\n this.dispatch[PRODUCT_TYPE.OUTFIT_2D_PARALLAX] = createOutfit2DParallax;\n this.dispatch[PRODUCT_TYPE.GARMENT_3D_CAD] = createGarment3DCAD;\n this.dispatch[PRODUCT_TYPE.OUTFIT_3D] = createOutfit3D;\n }\n\n supportsDraft = (productType: PRODUCT_TYPE): boolean => {\n const service = this.dispatch[productType];\n return service?.prepareDraftEdit !== undefined;\n };\n\n prepare = async (\n inputData:\n | CreateRequestInputData\n | UpdateRequestInputData\n | CloneRequestInputData,\n store: CreateRequestModalStore,\n ): Promise => {\n store.showLoading();\n try {\n this._logger.debug(`Preparing data`, inputData);\n if (isCreateRequestInputData(inputData)) {\n const service = this.dispatch[inputData.productType];\n if (service) {\n this._logger.debug(`prepareCreateNew ...`, inputData);\n return await service.prepareCreateNew(inputData, store);\n }\n this.alertService.showErrorAlert(\n 'Creating a request is not supported by this product type',\n );\n } else if (isUpdateRequestInputData(inputData)) {\n const request = await this._requestService.getRequestByID(inputData.id);\n if (request) {\n this._logger.debug(`get request ...`, request);\n const service = this.dispatch[request.productTypeId];\n if (service && service.prepareDraftEdit) {\n this._logger.debug(`prepareDraftEdit ...`, inputData);\n return await service.prepareDraftEdit(request, store);\n }\n }\n this.alertService.showErrorAlert(\n 'Opening as draft is not supported by this product type',\n );\n } else if (isCloneRequestInputData(inputData)) {\n const request = await this._requestService.getRequestByID(\n inputData.cloneRequestId,\n );\n if (request) {\n this._logger.debug(`get request ...`, request);\n const service = this.dispatch[request.productTypeId];\n if (service && service.prepareClone) {\n this._logger.debug(`prepareClone ...`, inputData);\n return await service.prepareClone(request, store);\n }\n }\n this.alertService.showErrorAlert(\n 'Cloning is not supported by this request',\n );\n }\n store.cancelAction();\n } finally {\n store.hideLoading();\n }\n };\n}\n","import { PRODUCT_TYPE } from '../../../data';\nimport { IPriority } from '../../../data/api';\nimport { FashionImageResolutionInfo } from './data/fashion-image-size.types';\n\nexport interface CreateRequestInputData {\n productType: PRODUCT_TYPE;\n additionalInfo?: any;\n}\n\nexport function isCreateRequestInputData(\n obj: CreateRequestInputData | UpdateRequestInputData | CloneRequestInputData,\n): obj is CreateRequestInputData {\n return obj && 'productType' in obj;\n}\n\nexport interface UpdateRequestInputData {\n id: string;\n}\n\nexport function isUpdateRequestInputData(\n obj: CreateRequestInputData | UpdateRequestInputData | CloneRequestInputData,\n): obj is UpdateRequestInputData {\n return obj && 'id' in obj;\n}\n\nexport interface CloneRequestInputData {\n cloneRequestId: string;\n}\n\nexport function isCloneRequestInputData(\n obj: CreateRequestInputData | UpdateRequestInputData | CloneRequestInputData,\n): obj is CreateRequestInputData {\n return obj && 'cloneRequestId' in obj;\n}\n\nexport interface CreateRequestCommonData {\n id?: string;\n name?: string;\n sku?: string;\n dueDate?: Date;\n priority?: IPriority;\n size?: FashionImageResolutionInfo;\n dataValid: boolean;\n}\n","import { Injectable } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { RRIPagination } from 'projects/web-ui-component-library/src';\nimport { FilterOutput } from 'projects/web-ui-component-library/src/lib/filter-elements/interfaces/filter.interface';\n\nexport interface FilterConfiguration {\n name: string;\n selected: string | string[];\n}\n\nexport interface SelectionModalState {\n pagination: RRIPagination;\n searchPattern: string;\n filters?: { [key: string]: string | [] };\n visibleFilter: string;\n}\n\nconst defaultState: SelectionModalState = {\n pagination: {\n currentPage: 1,\n pageCount: 1,\n pageSize: 10,\n recordCount: 1,\n },\n searchPattern: '',\n filters: {},\n visibleFilter: '',\n};\n\n@Injectable()\nexport class SelectionModalStore extends ComponentStore {\n constructor() {\n super(defaultState);\n }\n\n readonly currentPage$ = this.select(\n ({ pagination }) => pagination.currentPage,\n );\n\n readonly searchPattern$ = this.select(\n ({ searchPattern: searchPattern }) => searchPattern,\n );\n\n readonly filters$ = this.select(({ filters: filters }) => filters);\n\n readonly countFilters$ = this.select(({ filters: f }) => {\n return Object.keys(f).length;\n });\n\n readonly visibleFilter$ = this.select(\n ({ visibleFilter: visibleFilter }) => visibleFilter,\n );\n\n readonly updateFilters = this.updater((state, filter: FilterOutput) => {\n const f = JSON.parse(JSON.stringify(state.filters));\n if (\n filter.value === undefined ||\n filter.value === '' ||\n filter.value === '[]'\n ) {\n delete f[filter.id];\n } else {\n f[filter.id] = filter.value;\n }\n return {\n ...state,\n filters: f,\n };\n });\n\n readonly clearFilters = this.updater((state) => {\n return { ...state, filters: {} };\n });\n\n readonly clearFilter = this.updater((state, id: string) => {\n const f = JSON.parse(JSON.stringify(state.filters));\n delete f[id];\n return {\n ...state,\n filters: f,\n };\n });\n\n readonly updateCurrentPage = this.updater(\n (state, currentPage: number | null) => ({\n ...state,\n pagination: { ...state.pagination, currentPage: currentPage },\n }),\n );\n\n readonly updatePageSize = this.updater((state, pageSize: number | null) => ({\n ...state,\n pagination: { ...state.pagination, pageSize: pageSize },\n }));\n\n readonly updatePageCount = this.updater(\n (state, pageCount: number | null) => ({\n ...state,\n pagination: { ...state.pagination, pageCount: pageCount },\n }),\n );\n\n readonly updateSearchPattern = this.updater(\n (state, searchPattern: string) => ({\n ...state,\n pagination: { ...state.pagination, currentPage: 1 },\n searchPattern: searchPattern,\n }),\n );\n\n readonly updateVisibleFilter = this.updater(\n (state, visibleFilterId: string) => ({\n ...state,\n visibleFilter: visibleFilterId,\n }),\n );\n}\n","
    \n
    \n
    \n \n \n
    {{ requestOption.title }}
    \n
    \n {{ requestOption.description }}\n
    \n \n {{ 'Create ' + requestOption.title }}\n \n
    \n
    \n \n
    \n","import {\n AfterViewInit,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { PRODUCT_TYPE } from '../../../data';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from '../../../app.state';\nimport { createNewRequestAction } from '../../store/requests-overview.actions';\nimport { CommonModule } from '@angular/common';\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { PRODUCT_TYPE_GROUP } from '../../../data/enums/product-type-group.enum';\n\n@Component({\n selector: 'app-create-request-select-type-modal',\n templateUrl: './create-request-select-type-modal.component.html',\n styleUrls: ['./create-request-select-type-modal.component.scss'],\n standalone: true,\n imports: [CommonModule],\n})\nexport class CreateRequestSelectTypeModalComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n public readonly REQUESTS_OPTIONS = [\n {\n order: 0,\n type: PRODUCT_TYPE.GARMENT_2D,\n title: 'Garment 2D',\n description: 'Create a new 2D garment.',\n imageIconUrl: '../../../../assets/img/garment-2d.png',\n group: 0,\n additionalInfo: {},\n },\n {\n order: 0,\n type: PRODUCT_TYPE.OUTFIT_2D_PARALLAX,\n title: 'Fashion Image',\n description: 'Create a Fashion Image',\n imageIconUrl: '../../../../assets/img/outfit-2d.png',\n group: 0,\n additionalInfo: {},\n },\n {\n order: 0,\n type: PRODUCT_TYPE.OUTFIT_2D_PARALLAX,\n title: 'Collection Outfit',\n description: 'Create an outfit to be used in a collection.',\n imageIconUrl: '../../../../assets/img/collection.png',\n group: 0,\n additionalInfo: { isCollectionOutfit: true },\n },\n // {\n // order: 1,\n // type: PRODUCT_TYPE.GARMENT_3D_CAD,\n // title: 'Garment 3D CAD',\n // description: 'Create a new 3D garment, based on a CAD file.',\n // imageIconUrl: '../../../../assets/img/garment-3d.png',\n // group: 0,\n // },\n // {\n // order: 1,\n // type: PRODUCT_TYPE.OUTFIT_3D,\n // title: 'Outfit 3D',\n // description: 'Create a new 3D outfit.',\n // imageIconUrl: '../../../../assets/img/outfit-3d.svg',\n // group: 1,\n // },\n ];\n public readonly MODAL_ID = 'request_type';\n public requests = [];\n private _onDestroy$: Subject = new Subject();\n @Input() selectedModalGroup$: Observable;\n\n constructor(private _store: Store) {}\n\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n\n ngOnInit(): void {\n this.selectedModalGroup$\n ?.pipe(takeUntil(this._onDestroy$))\n .subscribe((type) => {\n this.requests = this.REQUESTS_OPTIONS.filter((o) => o.group === type);\n });\n }\n\n ngAfterViewInit(): void {}\n\n public goToCreateRequestPage(type: PRODUCT_TYPE, additionalInfo: any): void {\n this._store.dispatch(\n createNewRequestAction({\n productType: type,\n additionalInfo: additionalInfo,\n }),\n );\n }\n}\n","Showing {{ (currentItems$ | async)[0] }} -\n {{ (currentItems$ | async)[1] }} of\n {{ paginationDataProvider.totalRecords$ | async }}
    \n\n\n \n\n\n\n 1\n\n\n WindowSize ? 'visible' : ''\"\n>\n ...\n\n\n\n {{ page }}\n\n\n\n ...\n\n\n pageCount\"\n>\n {{ pageCount }}\n\n\n\n \n\n\n\n {{ paginationDataProvider.pageSize$ | async }} items per page
    \n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { Observable, combineLatest, map } from 'rxjs';\nimport { IPaginationDataProviderInterface } from '../../../services/pagination-data-provider.interface';\n\ndeclare global {\n interface Number {\n toCollection(): Array;\n }\n\n interface Array {\n take(count: number): Array;\n window(offset: number, count: number): Array;\n chunk(offset: number, group: number): Array;\n }\n}\n\nNumber.prototype.toCollection = function () {\n if (this <= 0) return [];\n\n const generate = function* (value: number) {\n for (let i = 1; i <= value; i++) {\n yield i as number;\n }\n };\n\n return Array.from(generate(this));\n};\n\nArray.prototype.chunk = function (offset, group) {\n const startAt = ((offset / group) | 0) * group;\n return this.window(startAt, group);\n};\n\nArray.prototype.take = function (count: number) {\n return this.slice(0, Math.min(count, this.length));\n};\n\nArray.prototype.window = function (offset: number, count: number) {\n offset = Math.min(offset, Math.max(this.length - 1, 0));\n return this.slice(offset).take(count);\n};\n\n@Component({\n selector: 'rr-request-list-pagination',\n templateUrl: './request-list-pagination.component.html',\n styleUrls: ['./request-list-pagination.component.scss'],\n standalone: true,\n imports: [CommonModule],\n})\nexport class RequestListPaginationComponent {\n public currentPage: number = 1;\n public pageCount: number = 1;\n public readonly WindowSize: number = 3;\n\n @Input()\n public AdvancedControls: boolean = false;\n\n public readonly currentItems$: Observable<[number, number]>;\n\n private readonly _pagination$: Observable<[number, number]>;\n\n constructor(public paginationDataProvider: IPaginationDataProviderInterface) {\n this._pagination$ = combineLatest([\n this.paginationDataProvider.currentPage$,\n this.paginationDataProvider.pageCount$,\n ]);\n\n this._pagination$.subscribe(([currentPage, pageCount]) => {\n this.currentPage = currentPage;\n this.pageCount = pageCount;\n });\n\n this.currentItems$ = combineLatest([\n this.paginationDataProvider.currentPage$,\n this.paginationDataProvider.pageSize$,\n this.paginationDataProvider.totalRecords$,\n ]).pipe(\n map(([currentPage, pageSize, totalRecords]) => {\n return [\n (currentPage - 1) * pageSize + 1,\n Math.min((currentPage - 1) * pageSize + pageSize, totalRecords),\n ];\n }),\n );\n }\n\n showNextPage() {\n return this.jumpPage(1);\n }\n\n showPrevPage() {\n return this.jumpPage(-1);\n }\n\n getStartOfBlock(page: number, blockSize: number) {\n const pc = Math.floor((page - 1) / blockSize);\n return blockSize * pc + 1;\n }\n\n nextPageBlockAt(thisPage: number, skip: number): number {\n return this.getStartOfBlock(thisPage + skip, skip);\n }\n\n prevPageBlockAt(thisPage: number, skip: number): number {\n return this.getStartOfBlock(Math.max(1, thisPage - skip), skip) + skip - 1;\n }\n\n jumpPage(page: number) {\n const newPage = Math.min(\n Math.max(this.currentPage + page, 1),\n this.pageCount,\n );\n this.showPage(newPage);\n }\n\n showPage(newPage: number) {\n this.paginationDataProvider.setCurrentPage(newPage);\n }\n}\n","\n \n \n \n\n \n \n \n\n \n
    \n \n
    \n \n\n \n \n \n\n \n
    {{ record.createdAt | prettyProductDate }}
    \n \n\n \n
    \n \n
    \n \n\n\n \n\n \n \n \n\n \n
    \n \n
    \n \n\n \n
    {{ linked.createdAt | prettyProductDate }}
    \n \n\n \n
    \n \n
    \n \n\n \n \n \n\n","/* eslint-disable @angular-eslint/component-selector */\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n Pipe,\n PipeTransform,\n SimpleChanges,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from 'projects/content-service-cms/src/app/app.state';\nimport { REQUEST_STATE_CMS } from 'projects/content-service-cms/src/app/data';\nimport { TableRowComponent } from 'projects/web-ui-component-library/src';\nimport { Subject } from 'rxjs';\nimport { updateDraftRequestAction } from '../../../store/requests-overview.actions';\nimport { CreateRequestService } from '../../create-request-modal/services/create-request.service';\nimport { RequestRecord } from '../request-list.page.component';\n\n@Pipe({\n standalone: true,\n name: 'prettyProductDate',\n})\nexport class PrettyProductDatePipe implements PipeTransform {\n transform(time: number) {\n const date = new Date(time * 1000);\n const locale =\n navigator.languages && navigator.languages.length\n ? navigator.languages[0]\n : navigator.language ?? 'en';\n\n return date.toLocaleTimeString(locale, {\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n });\n }\n}\n\n@Component({\n selector: 'tbody.app-request-list-row',\n templateUrl: './request-list-row.component.html',\n styleUrls: ['./request-list-row.component.scss'],\n})\nexport class RequestListRowComponent\n implements AfterViewInit, TableRowComponent, OnChanges\n{\n @Input() record: RequestRecord;\n @Input() loaded: Subject;\n expanded: boolean = false;\n constructor(\n private element: ElementRef,\n private router: Router,\n private store: Store,\n private createRequestService: CreateRequestService,\n ) {}\n ngOnChanges(changes: SimpleChanges): void {\n if (this.loaded) {\n const tableImages = document.getElementsByClassName('table-thumbnail');\n if (tableImages.length > 0) {\n tableImages[tableImages.length - 1].addEventListener('load', () => {\n this.loaded.next();\n });\n } else {\n this.loaded.next();\n }\n }\n }\n\n toggleExpanded() {\n this.expanded = !this.expanded;\n }\n\n openRequest(record: RequestRecord) {\n if (\n record.state === REQUEST_STATE_CMS.CREATED &&\n this.createRequestService.supportsDraft(record.productType)\n ) {\n // start creation modal ...\n this.store.dispatch(\n updateDraftRequestAction({\n id: record.id,\n }),\n );\n } else {\n this.router.navigate(['requests', record.id]);\n }\n }\n\n ngAfterViewInit() {\n this.element.nativeElement.classList.toggle('collapsed', !this.expanded);\n if (this.loaded) {\n const tableImages = document.getElementsByClassName('table-thumbnail');\n if (tableImages?.length > 0) {\n tableImages[tableImages.length - 1].addEventListener('load', () => {\n this.loaded.next();\n });\n }\n }\n }\n}\n","\n \n\n \n\n\nNo options available.\n
      \n \n \n {{ item.text }}\n \n
    \n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Filters } from '../../../..';\nimport {\n FilterBarElement,\n FilterBarInputElement,\n} from '../filter-bar-element.component';\n\ntype Arrayable = R extends Array ? Array : Array;\ntype Item = R extends Array ? U : never;\ntype SelectableItem = { text: string; value: Item; selected?: boolean };\n\nexport abstract class SelectInputElementOptions {\n public abstract formatItem: (item: R) => {\n text: string;\n item;\n };\n}\n\nexport interface ElementOptions {\n formatItem: (item: Item) => { text: string };\n compareItem?: (a: Item, b: Item) => boolean;\n selector?: Observable>;\n}\n\n@Component({\n selector: 'rr-select-input-element',\n templateUrl: './select-input-element.component.html',\n styleUrls: ['./select-input-element.component.scss'],\n standalone: true,\n imports: [CommonModule],\n})\nexport class SelectInputElementComponent<\n F extends Filters,\n K extends keyof F = keyof F,\n R extends Arrayable = Arrayable,\n> implements FilterBarInputElement, AfterViewInit\n{\n @Input() element: FilterBarElement;\n @Input() filterValueSub: BehaviorSubject;\n @Output() valueChanged: EventEmitter = new EventEmitter();\n @Input() options: ElementOptions;\n\n @ViewChild('inputText') searchInput: ElementRef;\n searchInputValue: string = '';\n\n items: SelectableItem[] = [];\n filtered: Item[] = [];\n\n constructor() {}\n\n get filteredItems() {\n return this.searchInputValue.length\n ? this.items.filter((i) =>\n i.text.toLowerCase().includes(this.searchInputValue.toLowerCase()),\n )\n : this.items;\n }\n\n setValue(value) {\n this.filtered = value;\n\n if (!this.items || !this.filtered) return;\n this.updateSelectedItems();\n }\n\n updateSelectedItems() {\n console.log(\n 'SelectInputElement',\n 'updateSelectedItems:',\n this.filtered,\n this.items,\n );\n\n if (!this.filtered) return;\n\n this.items = this.items.map((item) => {\n return {\n ...item,\n selected: this.filtered.some(\n (v) => this.options.compareItem?.(v, item.value) ?? v === item.value,\n ),\n };\n });\n\n console.log(\n 'SelectInputElement',\n 'selectedItems:',\n this.items.filter((i) => i.selected),\n );\n\n this.sortItems();\n this.updateBadge();\n }\n\n ngAfterViewInit(): void {\n // get our currently selected options from the filter...\n this.filterValueSub.subscribe((selected) => {\n if (!selected) {\n this.setValue([]);\n } else {\n this.setValue(selected);\n }\n });\n }\n\n updateTagFilter() {\n this.searchInputValue = this.searchInput.nativeElement.value;\n }\n\n updateBadge() {\n this.element.badge = this.items\n .map((r) => r.selected)\n .filter((r) => r).length;\n }\n\n public label: string;\n\n init(element: FilterBarElement) {\n // console.log('SelectInputElementComponent', 'init', element);\n this.element = element as any;\n\n if ('label' in this.element.config) {\n this.label = this.element.config.label;\n }\n\n // get all our options that can be selected...\n if (this.options.selector) {\n this.options.selector?.subscribe((newSelectableOptions) => {\n this.items = [];\n newSelectableOptions.forEach((value) =>\n this.items.push({\n ...this.options.formatItem(value),\n value,\n }),\n );\n\n this.updateSelectedItems();\n });\n }\n }\n\n sortItems() {\n if (!this.items) return;\n\n this.items = this.items.sort((a, b) => {\n if (a.selected && !b.selected) return -1;\n if (!a.selected && b.selected) return 1;\n\n if (a.text < b.text) return -1;\n if (a.text > b.text) return 1;\n\n return 0;\n });\n }\n\n getValue() {\n return (this.items ?? [])\n .filter((item) => item.selected)\n .map((item) => item.value) as R; // shouldn't need this hack\n }\n\n toggleResultCheck(item: SelectableItem>, event: Event | MouseEvent) {\n event.stopPropagation();\n\n this.items = this.items.map((i) => {\n if (\n this.options.compareItem &&\n !this.options.compareItem(i.value, item.value)\n )\n return i;\n if (i.value !== item.value) return i;\n\n return {\n ...i,\n selected: i.selected !== undefined ? !i.selected : true,\n };\n });\n\n // this.sortItems();\n this.valueChanged.emit(this.getValue());\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n RRFilterBarComponent,\n RRIFilterOutput,\n RR_FILTER_TYPE,\n} from 'projects/web-ui-component-library/src';\nimport {\n AbstractFilterService,\n SelectedFilters,\n buildInputElement,\n} from 'projects/web-ui-component-library/src/lib/filter';\nimport { DateInputElementComponent } from 'projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/date-input-element/date-input-element.component';\nimport { SelectInputElementComponent } from 'projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/select-input-element/select-input-element.component';\nimport { TextInputElementComponent } from 'projects/web-ui-component-library/src/lib/filter/components/filter-bar/filter-bar-element/text-input-element/text-input-element.component';\nimport { Observable } from 'rxjs';\nimport { IAppState } from '../../../app.state';\nimport {\n PRODUCT_TYPE,\n ProductHelper,\n REQUEST_STATE_CMS,\n RequestStateHelper,\n} from '../../../data';\nimport { ILogger } from '../../../logging';\nimport {\n clearFilters,\n filtersChange,\n} from '../../store/requests-overview.actions';\nimport { selectRequestsFilter } from '../../store/requests-overview.selectors';\n\nexport type RequestFilters = {\n createdAt: { from: Date; to: Date };\n dueAt: { from: Date; to: Date };\n name: string;\n sku: string;\n productTypeId: PRODUCT_TYPE[];\n stateId: REQUEST_STATE_CMS[];\n tags: { name: string; uuid: string }[];\n customerId: string;\n};\n\n// Change the value output of the filter components to match the filter store...\nfunction mapFilterValue(\n fieldName: K,\n value: RequestFilters[K],\n) {\n switch (fieldName) {\n // the date formats need changing to a numeric tuple...\n case 'createdAt':\n case 'dueAt':\n if (\n value &&\n typeof value === 'object' &&\n 'from' in value &&\n 'to' in value\n ) {\n return [\n new Date(value.from).getTime() / 1000,\n new Date(value.to).getTime() / 1000,\n ];\n }\n return null;\n case 'stateId':\n if (Array.isArray(value)) {\n if (value.length === 0) return null;\n\n return value\n .map((v) =>\n // InProgress results in many values... ?\n RequestStateHelper.mapCustomerStateToInternalState(v),\n )\n .flat();\n }\n break;\n }\n\n // no change required\n return value;\n}\n/*\n This function will convert the RequestFilters into an array of\n objects compatible with the API service.\n*/\nexport function toRRIFilterArray(\n selectedFilters: SelectedFilters,\n): RRIFilterOutput[] {\n const newFilters: RRIFilterOutput[] = [];\n for (const fieldName in selectedFilters) {\n const value = mapFilterValue(\n fieldName as keyof RequestFilters,\n selectedFilters[fieldName],\n );\n if (!value) continue;\n\n switch (fieldName) {\n case 'createdAt':\n case 'dueAt':\n if (\n isNaN(value[0]) ||\n isNaN(value[1]) ||\n value[0] === 0 ||\n value[1] === 0\n )\n break;\n newFilters.push({\n type: RR_FILTER_TYPE.DATE_RANGE,\n filterBy: {\n fieldName,\n value,\n defaultValue: null,\n },\n });\n break;\n case 'sku':\n case 'customerId':\n case 'name':\n newFilters.push({\n type: RR_FILTER_TYPE.TEXT_SEARCH,\n filterBy: {\n fieldName,\n value,\n defaultValue: null,\n },\n });\n break;\n case 'productTypeId':\n newFilters.push({\n type: RR_FILTER_TYPE.DROPDOWN_SELECT,\n filterBy: {\n fieldName,\n value,\n defaultValue: null,\n },\n });\n break;\n case 'stateId':\n newFilters.push({\n type: RR_FILTER_TYPE.DROPDOWN_SELECT,\n filterBy: {\n fieldName,\n value,\n defaultValue: null,\n },\n });\n break;\n }\n }\n\n return newFilters;\n}\n\nclass RequestFilterService extends AbstractFilterService {\n constructor(private store: Store) {\n super({\n createdAt: {\n id: 'createdAt',\n label: 'Created',\n icon: 'calendar',\n ...buildInputElement(DateInputElementComponent),\n },\n dueAt: {\n id: 'dueAt',\n label: 'Requested',\n icon: 'calendar',\n ...buildInputElement(DateInputElementComponent),\n },\n sku: {\n id: 'sku',\n label: 'SKU',\n searchable: true,\n ...buildInputElement(TextInputElementComponent),\n },\n name: {\n id: 'name',\n label: 'Name',\n searchable: true,\n ...buildInputElement(TextInputElementComponent),\n },\n tags: {\n id: 'tags',\n icon: 'tags',\n label: 'Tags',\n searchable: true,\n ...buildInputElement<\n SelectInputElementComponent\n >(SelectInputElementComponent, {\n formatItem: (item) => ({\n text: item.name,\n }),\n compareItem: (a, b) => a && b && a.uuid === b.uuid,\n selector: store.select((state) => state.requestOverview.tags),\n }),\n },\n productTypeId: {\n id: 'productTypeId',\n label: 'Type',\n icon: 'person',\n ...buildInputElement<\n SelectInputElementComponent\n >(SelectInputElementComponent, {\n formatItem: (item) => {\n return {\n text: ProductHelper.mapProductTypeFromEnumToStringName(item),\n };\n },\n selector: new Observable((observer) => {\n observer.next(enumKeys(PRODUCT_TYPE).map((k) => PRODUCT_TYPE[k]));\n observer.complete();\n }),\n }),\n },\n customerId: {\n id: 'customerId',\n },\n stateId: {\n id: 'stateId',\n label: 'Status',\n icon: 'clock',\n ...buildInputElement<\n SelectInputElementComponent<\n RequestFilters,\n 'stateId',\n REQUEST_STATE_CMS[]\n >\n >(SelectInputElementComponent, {\n formatItem: (item) => {\n return {\n text: RequestStateHelper.getCustomerStateLabel(item),\n };\n },\n selector: new Observable((observer) => {\n observer.next(\n enumKeys(REQUEST_STATE_CMS).map((k) => REQUEST_STATE_CMS[k]),\n );\n observer.complete();\n }),\n }),\n },\n });\n }\n}\n\nfunction enumKeys(obj: O): K[] {\n return Object.keys(obj).filter((k) => Number.isNaN(+k)) as K[];\n}\n\n@Component({\n selector: 'app-request-list-action-bar',\n templateUrl: './request-list-action-bar.component.html',\n styleUrls: ['./request-list-action-bar.component.scss'],\n})\nexport class RequestListActionBarComponent {\n @Input() filterText: string;\n @Output() filterChange: EventEmitter> =\n new EventEmitter();\n @ViewChild('filterBar') filterBar: RRFilterBarComponent;\n\n requestFilterService: RequestFilterService;\n\n constructor(public store: Store, private logger: ILogger) {\n this.requestFilterService = new RequestFilterService(store);\n\n const requestFilters = this.store.select(selectRequestsFilter);\n requestFilters.subscribe((filters) => {\n this.requestFilterService.filterValues.next(filters);\n });\n\n this.requestFilterService.filterValues.subscribe((filters) => {\n this.logger.debug('RequestListActionBar', 'filterValues:', filters);\n this.store.dispatch(filtersChange({ filters }));\n });\n }\n clearFilterValues() {\n this.store.dispatch(clearFilters());\n }\n}\n","\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { IAppState } from '../../app.state';\nimport { ILogger } from '../../logging';\nimport { changePageAction } from '../store/requests-overview.actions';\nimport { IPaginationDataProviderInterface } from './pagination-data-provider.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalStatePaginationDataProvider\n implements IPaginationDataProviderInterface\n{\n public readonly pageCount$: Observable;\n public readonly currentPage$: Observable;\n public readonly totalRecords$: Observable;\n public readonly pageSize$: Observable;\n\n constructor(private store: Store, private logger: ILogger) {\n this.currentPage$ = this.store.select(\n (state) => state.requestOverview.pagination.currentPage,\n );\n this.pageCount$ = this.store.select((state) => {\n // The state doesn't hold an accurate record\n // of the pageCount. So we calculate it.\n return Math.ceil(\n state.requestOverview.recordCount /\n state.requestOverview.pagination.pageSize,\n );\n });\n\n this.totalRecords$ = this.store.select((state) => {\n return state.requestOverview.recordCount;\n });\n this.pageSize$ = this.store.select((state) => {\n return state.requestOverview.pagination.pageSize;\n });\n }\n\n public setCurrentPage(page: number) {\n this.store.dispatch(changePageAction({ page }));\n }\n\n public setPageSize(page: number) {\n this.store.dispatch(changePageAction({ page }));\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n RRIStackedBarData,\n SelectedFilters,\n} from 'projects/web-ui-component-library/src';\nimport { Observable, from, take } from 'rxjs';\nimport { NgStorageManagerService } from '../../core/services/ng-storage-manager.service';\nimport { IResquestStateCount, RequestStateHelper } from '../../data';\nimport { RequestFilters } from '../components/request-list-action-bar/request-list-action-bar.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RequestOverviewService {\n constructor(private _storageService: NgStorageManagerService) {}\n\n public buildRequestsOverviewChartData(\n data: IResquestStateCount[],\n ): RRIStackedBarData[] {\n if (!Array.isArray(data)) return [];\n\n let total = 0;\n const chartData = data.reduce((accum, currentValue) => {\n const customerStateId =\n RequestStateHelper.mapInternatStateToCustomerState(\n currentValue.stateId,\n );\n const stateName =\n RequestStateHelper.getCustomerStateLabel(customerStateId);\n const state = accum\n ? accum.find((a) => a.data === customerStateId)\n : undefined;\n total = total + currentValue.count;\n if (state !== undefined) {\n state.count += currentValue.count;\n } else {\n if (accum === undefined) accum = [];\n accum.push({\n data: customerStateId,\n count: currentValue.count,\n label: stateName,\n value: currentValue.count,\n percentage: 0,\n color: RequestStateHelper.getCustomerStateColor(customerStateId),\n });\n }\n return accum;\n }, []);\n\n chartData.forEach((state) => {\n if (total !== 0) {\n state.percentage = state.count / total;\n } else {\n state.percentage = 1 / chartData.length;\n }\n });\n\n return chartData;\n }\n\n public setFiltersFromStorage(): SelectedFilters {\n const storedFilters: SelectedFilters = JSON.parse(\n this._storageService.getItem('filters', 'local'),\n );\n if (!storedFilters) return {};\n return storedFilters;\n }\n\n public loadFilters(): Observable> {\n return this._storageService.getItem$('filters', 'local').pipe(take(1));\n }\n\n public storeFilters(\n filters: SelectedFilters,\n ): Observable {\n return from(\n new Promise((resolve) => {\n this._storageService.setItem('filters', filters, 'local');\n resolve();\n }),\n );\n }\n}\n","
    \n
    \n \n \n \n
    \n

    Requests

    \n
    \n \n \n New Request \n \n
    \n \n {{ updated_text | async }}\n \n \n
    \n
    \n\n \n \n \n We couldn’t find any requests\n Try adjusting your filters.\n Clear all filters\n
    \n \n
    \n \n
    \n \n \n \n\n\n {{ item.value }}\n\n\n\n","import {\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {\n DataSource,\n PageContextService,\n RRIFilterOutput,\n RRIPagination,\n RRISort,\n RRIStackedBarData,\n RRSpinnerModel,\n RR_THUMBNAIL,\n TableConfiguration,\n} from 'projects/web-ui-component-library/src';\nimport { map, take, takeUntil } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { RRIDropdownOptionTemplate } from 'projects/web-ui-component-library/src/lib/form-inputs/interfaces/dropdown-option-template.interface';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n interval,\n} from 'rxjs';\nimport { FilesService } from 'projects/content-service-cms/src/app/data/services/files.service';\nimport { NgStorageManagerService } from '../../../core/services/ng-storage-manager.service';\nimport {\n IRequest,\n IRequestsAggregate,\n PRODUCT_TYPE,\n ProductHelper,\n REQUEST_STATE_CMS,\n RequestStateHelper,\n} from 'projects/content-service-cms/src/app/data';\n\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { Store } from '@ngrx/store';\nimport {\n clearFilters,\n loadFiltersAction,\n loadRequests,\n loadRequestsAggregate,\n paginationChange,\n sortChange,\n} from '../../store/requests-overview.actions';\nimport {\n selectLastUpdated,\n selectRequestsErrorOverview,\n selectRequestsOverview,\n selectRequestsOverviewAggregate,\n selectRequestsOverviewAggregateError,\n selectRequestsOverviewShowLoader,\n selectRequestsOverviewSort,\n} from '../../store/requests-overview.selectors';\nimport { RequestOverviewService } from '../../services/request-overview.service';\nimport { AlertService } from '../../../core/services/alert.service';\nimport { RequestListActionBarComponent } from '../request-list-action-bar/request-list-action-bar.component';\nimport { RequestListRowComponent } from './request-list-row/request-list-row.component';\nimport { IAppState } from '../../../app.state';\nimport { createNewRequestAction } from '../../store/requests-overview.actions';\n\nexport interface RequestRecord {\n id: string;\n name: string;\n sku: string;\n createdAt: number;\n state: REQUEST_STATE_CMS;\n productType: PRODUCT_TYPE;\n tags: { colour: string; name: string; value: string | null }[];\n thumbnail?: string;\n linked?: RequestRecord[];\n}\nimport * as _ from 'lodash';\nimport { CreateRequestInputData } from '../create-request-modal/create-request-input.interface';\nimport { IPaginationDataProviderInterface } from '../../services/pagination-data-provider.interface';\nimport { GlobalStatePaginationDataProvider } from '../../services/global-state-pagination-data-provider';\nimport { CreateRequestModalStore } from '../create-request-modal/create-request-modal.state';\n\nconst moment = require('moment');\n\n@Component({\n selector: 'rr-request-list',\n templateUrl: './request-list.page.component.html',\n styleUrls: ['./request-list.page.component.scss'],\n providers: [\n {\n provide: IPaginationDataProviderInterface,\n useClass: GlobalStatePaginationDataProvider,\n },\n ],\n})\nexport class RequestListPageComponent implements OnInit, OnDestroy {\n public readonly RequestStateIdHelper = RequestStateHelper;\n\n public createInput$: BehaviorSubject =\n new BehaviorSubject(undefined);\n public spinnerStatusChart: RRSpinnerModel = {\n show: false,\n text: 'Loading...',\n };\n public spinnerStatus: RRSpinnerModel;\n public showRejectedModal: boolean;\n public statesDataset: RRIStackedBarData[];\n public request: IRequest;\n public displayedRequests: BehaviorSubject = new BehaviorSubject(\n [],\n );\n private _onDestroy$: Subject;\n private _spinnerCounter: number;\n private _spinnerCounterBarChart: number;\n public showSkeletonLoader: Observable;\n @ViewChild('statusOptionTemplate')\n statusOptionTemplate: TemplateRef>;\n\n currentFilters: RRIFilterOutput[] = [];\n requestTableConfiguration: TableConfiguration = {\n rowComponent: RequestListRowComponent,\n columns: [\n {\n title: '',\n hideSort: true,\n },\n {\n title: 'Asset',\n },\n {\n title: 'Status',\n },\n {\n title: 'Product Type',\n },\n {\n title: 'Created At',\n },\n {\n title: 'Tags',\n hideSort: true,\n },\n {\n title: '',\n hideSort: true,\n },\n ],\n };\n\n requestDatasource: DataSource = {\n fetch: (opts) => {\n const mapRequestToRecord = (r: IRequest): RequestRecord => ({\n id: r.id,\n createdAt: r.createdAt,\n name: r.name,\n sku: r.sku,\n productType: ProductHelper.mapProductTypeFromStringToEnum(\n r.productTypeId,\n ),\n state: RequestStateHelper.mapInternatStateToCustomerState(r.stateId),\n tags: r.tags.map((t) => ({\n colour: t.tagKeyColor,\n name: t.tagKeyName,\n value: t.value,\n })),\n thumbnail: r.previewUrl ?? RR_THUMBNAIL,\n });\n\n return this.displayedRequests.pipe(\n map((requests) => ({\n data: requests.map(mapRequestToRecord),\n })),\n );\n },\n };\n\n public updated_text: Observable;\n public updated_date: Observable;\n\n constructor(\n public store: Store,\n public fileService: FilesService,\n private _router: Router,\n private _storageService: NgStorageManagerService,\n private _logger: ILogger,\n private _requestOverviewService: RequestOverviewService,\n private _alertService: AlertService,\n private _pageContextService: PageContextService,\n public createRequestModalStore: CreateRequestModalStore,\n ) {\n this.store\n .select((state) => state.requestOverview.showLoader)\n .subscribe((show) => this.manageShowBarChartSpinner(show));\n\n this.spinnerStatus = {\n show: false,\n text: 'Loading...',\n id: 'overview-page',\n };\n // this._storageService.setStorageName('requests_overview');\n this._spinnerCounter = 0;\n this._spinnerCounterBarChart = 0;\n this.showRejectedModal = false;\n\n // load the filters from application storage\n this.store.dispatch(loadFiltersAction());\n\n this.updated_text = combineLatest([\n this.store.select(selectLastUpdated),\n interval(5000),\n ]).pipe(\n map(([u, _]) => {\n if (u) {\n const mom = moment(u);\n const info = mom.fromNow();\n return `Last updated ${info}`;\n }\n return '';\n }),\n );\n\n this.updated_date = this.store.select(selectLastUpdated).pipe(\n map((u) => {\n if (u) {\n return u.getTime() / 1000;\n }\n return null;\n }),\n );\n\n // load the tags\n\n this._pageContextService\n .setPageParent()\n .setPageActionBar(RequestListActionBarComponent, (ref) => {\n // bind the filter changes\n // ref.filterChange.subscribe((evt) => {\n // this.onChangeFilter(evt);\n // });\n })\n .setPageTitle('Dashboard');\n }\n\n ngOnInit(): void {\n this.manageShowSpinner(true);\n this._onDestroy$ = new Subject();\n this._logger.debug('RequestOverviewPage', 'initPromises');\n const sort$ = this.store.select(selectRequestsOverviewSort);\n sort$.pipe(takeUntil(this._onDestroy$)).subscribe((data) => {\n this.setSortColumn(data);\n });\n const requests$ = this.store.select(selectRequestsOverview);\n const requestsAggregate$ = this.store.select(\n selectRequestsOverviewAggregate,\n );\n const isLoading$ = this.store.select(selectRequestsOverviewShowLoader);\n this.showSkeletonLoader = isLoading$;\n\n const requestsError$ = this.store.select(selectRequestsErrorOverview);\n const requestsAggregateError$ = this.store.select(\n selectRequestsOverviewAggregateError,\n );\n\n requests$.pipe(takeUntil(this._onDestroy$)).subscribe({\n next: this.onRequestsChanged,\n });\n\n requestsAggregate$.pipe(takeUntil(this._onDestroy$)).subscribe({\n next: this.onRequestsAggregateChanged,\n });\n\n requestsError$.pipe(takeUntil(this._onDestroy$)).subscribe({\n next: (error: string) => {\n if (error) this._alertService.showErrorAlert(error);\n this.manageShowSpinner(false);\n },\n });\n\n requestsAggregateError$.pipe(takeUntil(this._onDestroy$)).subscribe({\n next: (error: string) => {\n if (error) this._alertService.showErrorAlert(error);\n },\n });\n }\n\n ngOnDestroy(): void {\n if (this._onDestroy$) {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n }\n\n @ViewChild('scrollArea')\n private scrollArea: ElementRef;\n\n public manageShowSpinner(isLoading: boolean): void {\n if (isLoading) {\n this._spinnerCounter++;\n }\n\n if (!isLoading && this._spinnerCounter > 0) {\n this._spinnerCounter--;\n }\n\n this.spinnerStatus.show = this._spinnerCounter !== 0;\n }\n\n public manageShowBarChartSpinner(isLoading: boolean): void {\n if (isLoading) {\n this._spinnerCounterBarChart++;\n }\n\n if (!isLoading && this._spinnerCounterBarChart > 0) {\n this._spinnerCounterBarChart--;\n }\n\n this.spinnerStatusChart.show = this._spinnerCounterBarChart !== 0;\n }\n\n public onShowRejectModalChanged(showModal: boolean): void {\n this.showRejectedModal = showModal;\n }\n\n public onCreateRequestTypeSelected(productType: PRODUCT_TYPE): void {\n this.store.dispatch(\n createNewRequestAction({\n productType,\n }),\n );\n }\n\n public onCreateNewClicked(): void {\n this.createRequestModalStore.startRequestAction();\n }\n public onPaginationChange(uiPagination: RRIPagination): void {\n const pagination = Object.assign({}, uiPagination);\n this.store.dispatch(paginationChange({ pagination }));\n }\n\n public onSortByChange(uiSort: RRISort): void {\n const sort = Object.assign({}, uiSort);\n this.store.dispatch(sortChange({ sort }));\n }\n\n public onCreateRequestSelected() {\n throw new Error('Method not implemented.');\n }\n\n public reloadData() {\n this.loadRequests();\n }\n\n private loadRequests() {\n return this.store\n .select((state) => state.requestOverview)\n .pipe(\n take(1),\n map(({ filters, pagination, sort }) => ({\n filters: filters ?? {},\n pagination,\n sort,\n })),\n )\n .subscribe(({ filters, sort, pagination }) => {\n this._logger.debug('Loading requests...');\n this.manageShowSpinner(true);\n this.manageShowBarChartSpinner(true);\n\n this.store.dispatch(loadRequests({ pagination, sort, filters }));\n this.store.dispatch(loadRequestsAggregate({ filters }));\n });\n }\n\n private onRequestsChanged = ({\n requests,\n recordCount,\n }: {\n requests: IRequest[];\n recordCount: number;\n }) => {\n if (_.isEqual(this.displayedRequests.value, requests)) return;\n this.displayedRequests.next(requests);\n\n this.manageShowSpinner(false);\n };\n\n private onRequestsAggregateChanged = (aggregates: IRequestsAggregate) => {\n if (aggregates && aggregates.statesCount) {\n this.statesDataset =\n this._requestOverviewService.buildRequestsOverviewChartData(\n aggregates.statesCount,\n );\n }\n this.manageShowBarChartSpinner(false);\n };\n onSortColumn(col: {\n title: string;\n hideSort?: boolean;\n sort?: 'ASC' | 'DESC' | '';\n sortable?: (a: RequestRecord, b: RequestRecord) => number;\n }) {\n this.onSortByChange(this.getSortObject(col));\n }\n\n getSortObject(col: {\n title: string;\n hideSort?: boolean;\n sort?: 'ASC' | 'DESC' | '';\n sortable?: (a: RequestRecord, b: RequestRecord) => number;\n }): RRISort {\n switch (col.title) {\n case 'Asset':\n return {\n fieldName: 'name',\n desc: col.sort === 'DESC' ? true : false,\n };\n case 'Status':\n return {\n fieldName: 'stateId',\n desc: col.sort === 'DESC' ? true : false,\n };\n case 'Product Type':\n return {\n fieldName: 'productTypeId',\n desc: col.sort === 'DESC' ? true : false,\n };\n case 'Created At':\n return {\n fieldName: 'createdAt',\n desc: col.sort === 'DESC' ? true : false,\n };\n }\n }\n private setSortColumn(sort: RRISort): void {\n switch (sort.fieldName) {\n case 'name':\n const asset = this.requestTableConfiguration.columns.find(\n (o) => o.title === 'Asset',\n );\n if (asset) {\n asset.sort = sort.desc ? 'DESC' : 'ASC';\n }\n break;\n case 'stateId':\n const status = this.requestTableConfiguration.columns.find(\n (o) => o.title === 'Status',\n );\n if (status) {\n status.sort = sort.desc ? 'DESC' : 'ASC';\n }\n break;\n case 'productTypeId':\n const productType = this.requestTableConfiguration.columns.find(\n (o) => o.title === 'Product Type',\n );\n if (productType) {\n productType.sort = sort.desc ? 'DESC' : 'ASC';\n }\n break;\n\n case 'createdAt':\n const createdAt = this.requestTableConfiguration.columns.find(\n (o) => o.title === 'Created At',\n );\n if (createdAt) {\n createdAt.sort = sort.desc ? 'DESC' : 'ASC';\n }\n break;\n }\n }\n clearFilter() {\n this.store.dispatch(clearFilters());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { AuthGuard } from '../auth';\nimport { RequestListPageComponent } from './components/request-list-page/request-list.page.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: RequestListPageComponent,\n canActivate: [AuthGuard],\n data: {\n type: 'requests',\n breadcrumb: 'Request Detail',\n breadcrumbParentPath: 'requests',\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class RequestOverviewRoutingModule {}\n","import { createReducer, on } from '@ngrx/store';\nimport * as _ from 'lodash';\nimport { SelectedFilters } from 'projects/web-ui-component-library/src';\nimport { RequestFilters } from '../components/request-list-action-bar/request-list-action-bar.component';\nimport {\n changeCustomerAction,\n changePageAction,\n changePageSizeAction,\n clearFilters,\n clearRequestModalAction,\n cloneRequestAction,\n createNewRequestAction,\n filtersChange,\n hideLoaderAction,\n loadFiltersCompleteAction,\n loadTagsCompleteAction,\n paginationChange,\n retrievedRequests,\n retrievedRequestsAggregate,\n retrievedRequestsAggregateWithError,\n retrievedRequestsWithError,\n showLoaderAction,\n sortChange,\n updateDraftRequestAction,\n} from './requests-overview.actions';\nimport { IRequestsOverviewState } from './requests-overview.state';\n\nconst initialState: IRequestsOverviewState = {\n recordCount: null,\n pagination: {\n currentPage: 1,\n pageSize: 10,\n pageCount: null,\n recordCount: null,\n },\n sort: {\n fieldName: 'createdAt',\n desc: true,\n },\n filters: {},\n tags: [],\n requests: [],\n requestAggregates: null,\n requestsError: null,\n requestAggregatesError: null,\n currentCustomerID: null,\n requests_loaded: null,\n showLoader: false,\n createRequestModal: null,\n};\n\nconst paginationChangedReducer = (\n state: IRequestsOverviewState,\n { pagination },\n): IRequestsOverviewState => ({\n ...state,\n pagination: {\n ...state.pagination,\n ...pagination,\n },\n showLoader: true,\n});\n\nconst sortChangedReducer = (\n state: IRequestsOverviewState,\n { sort },\n): IRequestsOverviewState => ({ ...state, sort, showLoader: true });\n\nconst filtersChangedReducer = (\n state: IRequestsOverviewState,\n { filters },\n): IRequestsOverviewState => {\n // only change the page if the filters are NOT equal\n const currentPage = _.isEqual(state.filters, filters)\n ? state.pagination.currentPage\n : 1;\n\n return {\n ...state,\n filters,\n pagination: {\n ...state.pagination,\n currentPage,\n },\n showLoader: true,\n };\n};\nconst clearFiltersReducer = (\n state: IRequestsOverviewState,\n): IRequestsOverviewState => ({\n ...state,\n filters: {\n customerId: state.filters.customerId,\n createdAt: null,\n dueAt: null,\n name: null,\n productTypeId: null,\n sku: null,\n stateId: null,\n tags: null,\n },\n pagination: {\n ...state.pagination,\n currentPage: 1,\n },\n showLoader: true,\n});\nconst requestsChangedReducer = (\n state: IRequestsOverviewState,\n { requests, recordCount },\n): IRequestsOverviewState => ({\n ...state,\n requests,\n recordCount,\n requestsError: null,\n requests_loaded: new Date(),\n});\n\nconst showLoaderReducer = (\n state: IRequestsOverviewState,\n): IRequestsOverviewState => ({\n ...state,\n showLoader: true,\n});\nconst hideLoaderReducer = (\n state: IRequestsOverviewState,\n): IRequestsOverviewState => ({\n ...state,\n showLoader: false,\n});\nconst requestsErrorChangedReducer = (\n state: IRequestsOverviewState,\n): IRequestsOverviewState => ({\n ...state,\n requestsError: 'Error while fetching requests.',\n showLoader: false,\n});\n\nconst requestsAggregateChangedReducer = (\n state: IRequestsOverviewState,\n { requestAggregates },\n): IRequestsOverviewState => ({\n ...state,\n requestAggregates,\n requestAggregatesError: null,\n showLoader: false,\n});\n\nconst requestsAggregateErrorChangedReducer = (\n state: IRequestsOverviewState,\n): IRequestsOverviewState => ({\n ...state,\n requestAggregatesError: 'Error while fetching requests aggregates.',\n showLoader: false,\n});\n\nconst changePageReducer = (\n state: IRequestsOverviewState,\n { page }: { page: number },\n): IRequestsOverviewState => ({\n ...state,\n pagination: Object.assign({}, state.pagination, {\n currentPage: page,\n }),\n showLoader: true,\n});\n\nconst changePageSizeReducer = (\n state: IRequestsOverviewState,\n { pageSize }: { pageSize: number },\n): IRequestsOverviewState => ({\n ...state,\n pagination: Object.assign({}, state.pagination, {\n pageSize: pageSize,\n }),\n showLoader: true,\n});\n\nconst loadFiltersReducer = (\n state: IRequestsOverviewState,\n { filters }: { filters: SelectedFilters },\n): IRequestsOverviewState => {\n return {\n ...state,\n filters,\n };\n};\n\nconst loadTagsReducer = (\n state: IRequestsOverviewState,\n { tags }: { tags: { name: string; uuid: string }[] },\n): IRequestsOverviewState => ({\n ...state,\n tags,\n});\n\nconst changeRequestModalStateReducer = (\n state: IRequestsOverviewState,\n createRequestModal: IRequestsOverviewState['createRequestModal'],\n): IRequestsOverviewState => ({\n ...state,\n createRequestModal,\n});\n\nconst changeCustomerReducer = (\n state: IRequestsOverviewState,\n { customer }: { customer: string },\n): IRequestsOverviewState => {\n return {\n ...initialState,\n currentCustomerID: customer,\n };\n};\n\nexport const requestOverviewReducer = createReducer(\n initialState,\n on(retrievedRequests, requestsChangedReducer),\n on(paginationChange, paginationChangedReducer),\n on(changePageAction, changePageReducer),\n on(changePageSizeAction, changePageSizeReducer),\n on(sortChange, sortChangedReducer),\n on(filtersChange, filtersChangedReducer),\n on(retrievedRequestsWithError, requestsErrorChangedReducer),\n on(retrievedRequestsAggregate, requestsAggregateChangedReducer),\n on(retrievedRequestsAggregateWithError, requestsAggregateErrorChangedReducer),\n on(loadFiltersCompleteAction, loadFiltersReducer),\n on(loadTagsCompleteAction, loadTagsReducer),\n on(changeCustomerAction, changeCustomerReducer),\n on(showLoaderAction, showLoaderReducer),\n on(hideLoaderAction, hideLoaderReducer),\n on(createNewRequestAction, changeRequestModalStateReducer),\n on(cloneRequestAction, changeRequestModalStateReducer),\n on(updateDraftRequestAction, changeRequestModalStateReducer),\n on(clearFilters, clearFiltersReducer),\n on(clearRequestModalAction, (state) =>\n changeRequestModalStateReducer(state, null),\n ),\n);\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport {\n catchError,\n combineLatest,\n concatMap,\n debounceTime,\n filter,\n from,\n map,\n of,\n switchMap,\n} from 'rxjs';\nimport { IAppState } from '../../app.state';\nimport { IRequestService } from '../../data';\nimport { ITagService } from '../../data/api';\nimport { toRRIFilterArray } from '../components/request-list-action-bar/request-list-action-bar.component';\nimport { RequestOverviewService } from '../services/request-overview.service';\nimport {\n filtersChange,\n loadFiltersAction,\n loadFiltersCompleteAction,\n loadRequests,\n loadRequestsAggregate,\n loadTagsAction,\n loadTagsCompleteAction,\n reloadRequestsAction,\n retrievedRequests,\n retrievedRequestsAggregate,\n retrievedRequestsAggregateWithError,\n retrievedRequestsWithError,\n showLoaderAction,\n storeFiltersAction,\n storeFiltersCompleteAction,\n} from './requests-overview.actions';\nimport {\n selectRequestsOverviewFilters,\n selectRequestsOverviewPagination,\n selectRequestsOverviewSort,\n} from './requests-overview.selectors';\nimport { setCurrentCustomerAction } from '../../customer/store/customer.actions';\n\nconst formatTags = (\n tags: { name: string; uuid: string }[],\n): { [tag: string]: string[] } | undefined => {\n if (!tags || tags.length === 0) return undefined;\n\n return tags.reduce((acc, curr) => {\n acc[curr.uuid] = ['*'];\n return acc;\n }, {});\n};\n\n@Injectable()\nexport class RequestsOverviewEffects {\n loadRequests$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(loadRequests),\n switchMap(({ filters, pagination, sort }) => {\n return this._newRequestService\n .getData({\n pagination,\n sort,\n filters: toRRIFilterArray(filters),\n tags: formatTags(filters?.tags),\n })\n .pipe(\n map(\n (data) =>\n retrievedRequests({\n recordCount: data.pagination.recordCount,\n pageCount: data.pagination.pageCount,\n requests: data.results,\n }),\n catchError(() => of(retrievedRequestsWithError)),\n ),\n );\n }),\n );\n });\n\n loadRequestsAggregate$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(loadRequestsAggregate),\n switchMap(({ filters }) =>\n this._newRequestService\n .getRequestAggregates(\n toRRIFilterArray(filters),\n formatTags(filters?.tags),\n )\n .pipe(\n map(\n (data) => retrievedRequestsAggregate({ requestAggregates: data }),\n catchError(() => of(retrievedRequestsAggregateWithError)),\n ),\n ),\n ),\n );\n });\n\n filtersChanged$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(filtersChange),\n map(({ filters }) => storeFiltersAction({ filters })),\n );\n });\n\n loadOnChange$ = createEffect(() => {\n return combineLatest([\n this.store.select(selectRequestsOverviewFilters),\n this.store.select(selectRequestsOverviewPagination),\n this.store.select(selectRequestsOverviewSort),\n ]).pipe(\n debounceTime(500),\n concatMap(([filters, pagination, sort]) => [\n loadRequestsAggregate({ filters }),\n loadRequests({ pagination, filters, sort }),\n loadTagsAction({ customerId: filters?.customerId }),\n ]),\n );\n });\n\n storeFilters$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(storeFiltersAction),\n switchMap(({ filters }) =>\n this._requestOverviewService.storeFilters(filters),\n ),\n map(() => storeFiltersCompleteAction()),\n );\n });\n\n loadFilters$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(loadFiltersAction),\n switchMap(() => this._requestOverviewService.loadFilters()),\n map((filters) => loadFiltersCompleteAction({ filters })),\n );\n });\n\n loadTags$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(loadTagsAction),\n switchMap(({ customerId }) => {\n const tags = customerId\n ? this._tagsService.getAllTagsByCustomerId(customerId)\n : this._tagsService.getAllTags();\n return from(tags).pipe(\n map(\n (data) =>\n loadTagsCompleteAction({\n tags: data.map((t) => ({ name: t.name, uuid: t.id })),\n }),\n catchError(() => of(loadTagsCompleteAction({ tags: [] }))),\n ),\n );\n }),\n );\n });\n\n /*\n In order to prevent losing all filters when loading the app,\n the change customer action should only fire once the existing\n filters have been loaded. Only then can we determine if the customer\n filter value has changed and should reset the filters...\n */\n changeCustomerAction$ = createEffect(() => {\n return combineLatest([\n this.actions$.pipe(ofType(setCurrentCustomerAction)),\n this.actions$.pipe(ofType(storeFiltersAction)),\n ]).pipe(\n filter(\n ([{ currentCustomer }, { filters }]) =>\n currentCustomer &&\n (!filters || filters.customerId !== currentCustomer.id),\n ),\n map(([{ currentCustomer }]) => {\n return filtersChange({\n filters: {\n customerId: currentCustomer.id,\n },\n });\n }),\n );\n });\n\n reloadRequests$ = createEffect(() =>\n this.actions$.pipe(\n ofType(reloadRequestsAction),\n switchMap(() =>\n combineLatest([\n this.store.select(selectRequestsOverviewFilters),\n this.store.select(selectRequestsOverviewPagination),\n this.store.select(selectRequestsOverviewSort),\n ]),\n ),\n concatMap(([filters, pagination, sort]) => [\n showLoaderAction(),\n loadRequestsAggregate({ filters }),\n loadRequests({ pagination, filters, sort }),\n loadTagsAction({ customerId: filters.customerId }),\n ]),\n ),\n );\n\n constructor(\n private actions$: Actions,\n private _newRequestService: IRequestService,\n private _tagsService: ITagService,\n private _requestOverviewService: RequestOverviewService,\n private store: Store,\n ) {}\n}\n","import {\n AfterViewInit,\n Component,\n Input,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport {\n REQUEST_STATE_CMS,\n RequestStateHelper,\n} from 'projects/content-service-cms/src/app/data';\nimport { RequestRecord } from '../../request-list.page.component';\n\n@Pipe({\n name: 'prettyProductState',\n})\nexport class PrettyProductStatePipe implements PipeTransform {\n transform(record: RequestRecord) {\n if (record.linked && record.linked.length > 0) {\n return 'Multiple';\n }\n\n return RequestStateHelper.getCustomerStateLabel(record.state);\n }\n}\n\n@Component({\n selector: 'rr-state',\n templateUrl: './state.component.html',\n styleUrls: ['./state.component.scss'],\n})\nexport class StateComponent implements AfterViewInit {\n @Input() record: RequestRecord;\n\n labelProductState: string = '';\n circleProductState: string = '';\n\n constructor() {}\n\n ngAfterViewInit(): void {\n if (!this.record) return;\n\n this.labelProductState = `label-${this.classForState(this.record.state)}`;\n this.circleProductState = `circle-${this.classForState(this.record.state)}`;\n }\n\n classForState(state: REQUEST_STATE_CMS) {\n if (this.record.linked && this.record.linked.length > 0) {\n return 'state-multiple';\n }\n\n switch (state) {\n case REQUEST_STATE_CMS.IN_PROGRESS:\n return 'state-in-progress';\n case REQUEST_STATE_CMS.CREATED:\n return 'state-created';\n case REQUEST_STATE_CMS.FINISHED:\n return 'state-finished';\n case REQUEST_STATE_CMS.REJECTED:\n return 'state-rejected';\n case REQUEST_STATE_CMS.CANCELED:\n return 'state-canceled';\n case REQUEST_STATE_CMS.APPROVED:\n return 'state-approved';\n default:\n return 'state-gray';\n }\n }\n}\n","\n{{\n record | prettyProductState\n}}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'rr-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n})\nexport class TagComponent implements OnInit {\n @Input() tag: { colour: string; name: string; value: string | null };\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
    {{ tag.name }}
    \n","import { Component, Input, OnInit, Pipe, PipeTransform } from '@angular/core';\nimport { ProductHelper } from 'projects/content-service-cms/src/app/data';\nimport { RequestRecord } from '../../request-list.page.component';\n\n@Pipe({\n name: 'prettyProductType',\n})\nexport class AssetPrettyProductTypePipe implements PipeTransform {\n transform(record: RequestRecord) {\n const output: string[] = [];\n output.push(\n ProductHelper.mapProductTypeFromEnumToStringName(record.productType),\n );\n\n if (record.linked && record.linked.length > 0) {\n output.push('•');\n output.push(`${record.linked.length} views`);\n }\n\n return output.join(' ');\n }\n}\n\n@Component({\n selector: 'rr-asset',\n templateUrl: './asset.component.html',\n styleUrls: ['./asset.component.scss'],\n})\nexport class RequestListAssetComponent implements OnInit {\n @Input() record: RequestRecord;\n @Input() expanded: boolean;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
    \n \n
    \n {{ record.name }}\n {{ record.sku }}\n
    \n
    \n","import {\n AfterViewInit,\n Component,\n Input,\n Pipe,\n PipeTransform,\n} from '@angular/core';\nimport {\n PRODUCT_TYPE,\n ProductHelper,\n} from 'projects/content-service-cms/src/app/data';\nimport { RequestRecord } from '../../request-list.page.component';\n\n@Pipe({\n name: 'prettyProductType',\n})\nexport class PrettyProductTypePipe implements PipeTransform {\n transform(record: RequestRecord) {\n if (record.linked && record.linked.length > 0) {\n return 'Multiple';\n }\n return ProductHelper.mapProductTypeFromEnumToStringName(record.productType);\n }\n}\n\n@Component({\n selector: 'rr-product-type',\n templateUrl: './product-type.component.html',\n styleUrls: ['./product-type.component.scss'],\n})\nexport class ProductTypeComponent implements AfterViewInit {\n @Input() record: RequestRecord;\n\n labelProductType: string = '';\n\n constructor() {}\n\n ngAfterViewInit(): void {\n if (!this.record) return;\n\n this.labelProductType = `label-${this.classForType(\n this.record.productType,\n )}`;\n }\n\n classForType(_state: PRODUCT_TYPE) {\n return 'state-gray';\n }\n}\n","{{\n record | prettyProductType\n}}\n","\n \n
    \n   No Requests Found\n \n
    \n \n
    \n\n\n \n
    \n \n {{ entry.label }}\n \n {{ entry.count }} \n
    \n
    \n \n
    \n","import { Component, Input } from '@angular/core';\nimport { RRIStackedBarData } from '../../public-api';\n\n@Component({\n selector: 'rr-stacked-bar-chart',\n templateUrl: './stacked-bar-chart.component.html',\n styleUrls: ['./stacked-bar-chart.component.scss'],\n})\nexport class StackedBarChartComponent {\n @Input() dataset: RRIStackedBarData[];\n @Input() barMinWidth: number;\n @Input() barWidthMultiplier: number;\n\n constructor() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n RRBootstrapModule,\n RRChartsModule,\n RRFilterModule,\n RRFilteredTableModule,\n RRLayoutModule,\n RRModalModule,\n RRSpinnerModule,\n RRTableModule,\n} from 'projects/web-ui-component-library/src';\nimport { RequestListPageComponent } from './components/request-list-page/request-list.page.component';\nimport { RequestOverviewRoutingModule } from './request-overview.router.module';\nimport { StoreModule } from '@ngrx/store';\nimport { requestOverviewReducer } from './store/requests-overview.reducer';\nimport { EffectsModule } from '@ngrx/effects';\nimport { RequestsOverviewEffects } from './store/requests-overview.effects';\nimport { RequestOverviewService } from './services/request-overview.service';\nimport { RequestListActionBarComponent } from './components/request-list-action-bar/request-list-action-bar.component';\nimport { InputDropdownComponent } from '../components/inputs/input-dropdown/input-dropdown.component';\nimport { InputTextComponent } from '../components/inputs/input-text/input-text.component';\nimport { InputDateComponent } from '../components/inputs/input-date/input-date.component';\nimport { VirtualDressingRoomModule } from '../virtual-dressing-room/virtual-dressing-room.module';\n\nimport { AvatarSelectionEntryComponent } from '../components/avatar-selection-entry/avatar-selection-entry.component';\nimport {\n PrettyProductDatePipe,\n RequestListRowComponent,\n} from './components/request-list-page/request-list-row/request-list-row.component';\nimport { FileUploadComponent } from '../components/file-upload/file-upload.component';\nimport { FileUploadFullComponent } from '../components/file-upload-full/file-upload-full.component';\nimport { GarmentSelectionComponent } from '../components/garment-selection/garment-selection.component';\nimport { AddGarmentModalComponent } from '../components/garment-selection/add-garment-modal/add-garment-modal.component';\nimport { RequestListPaginationComponent } from './components/request-list-page/request-list-pagination/request-list-pagination.component';\nimport { CommonInputsComponent } from './components/create-request-modal/common-inputs/common-inputs.component';\nimport { TagSelectionComponent } from '../components/tag-selection/tag-selection.component';\nimport {\n PrettyProductStatePipe,\n StateComponent,\n} from './components/request-list-page/request-list-row/state/state.component';\nimport { TagComponent } from './components/request-list-page/request-list-row/tags/tag.component';\nimport {\n AssetPrettyProductTypePipe,\n RequestListAssetComponent,\n} from './components/request-list-page/request-list-row/asset/asset.component';\nimport {\n PrettyProductTypePipe,\n ProductTypeComponent,\n} from './components/request-list-page/request-list-row/product-type/product-type.component';\nimport { AddAvatarModalComponent } from '../components/avatar-selection-entry/add-avatar-modal/add-avatar-modal.component';\nimport { CreateRequestModalComponent } from './components/create-request-modal/create-request-modal.component';\nimport { CreateRequestSelectTypeModalComponent } from './components/create-request-select-type-modal/create-request-select-type-modal.component';\n\n\n@NgModule({\n declarations: [\n RequestListPageComponent,\n RequestListActionBarComponent,\n RequestListRowComponent,\n StateComponent,\n TagComponent,\n PrettyProductStatePipe,\n ProductTypeComponent,\n AssetPrettyProductTypePipe,\n PrettyProductTypePipe,\n RequestListAssetComponent,\n ],\n providers: [RequestOverviewService],\n imports: [\n CommonModule,\n RequestOverviewRoutingModule,\n RRBootstrapModule,\n RRFilteredTableModule,\n RRModalModule,\n RRSpinnerModule,\n RRChartsModule,\n RRTableModule,\n StoreModule.forFeature('requestOverview', requestOverviewReducer),\n EffectsModule.forFeature([RequestsOverviewEffects]),\n\n RRLayoutModule,\n RRFilterModule,\n InputDropdownComponent,\n InputTextComponent,\n InputDateComponent,\n VirtualDressingRoomModule,\n PrettyProductDatePipe,\n AvatarSelectionEntryComponent,\n FileUploadComponent,\n FileUploadFullComponent,\n CommonInputsComponent,\n TagSelectionComponent,\n AddAvatarModalComponent,\n GarmentSelectionComponent,\n AddGarmentModalComponent,\n CreateRequestModalComponent,\n CreateRequestSelectTypeModalComponent,\n RequestListPaginationComponent,\n PrettyProductDatePipe,\n ],\n})\nexport class RequestOverviewModule {}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SelectionModalStore } from '../components/create-request-modal/store/selection-modal-store';\nimport { IPaginationDataProviderInterface } from './pagination-data-provider.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ComponentPaginationDataProvider\n implements IPaginationDataProviderInterface\n{\n public readonly currentPage$: Observable;\n public readonly pageCount$: Observable;\n public readonly totalRecords$: Observable;\n public readonly pageSize$: Observable;\n\n constructor(private store: SelectionModalStore) {\n this.currentPage$ = this.store.select(\n (state) => state.pagination.currentPage,\n );\n this.pageCount$ = this.store.select((state) => {\n return state.pagination.pageCount;\n });\n\n this.totalRecords$ = this.store.select((state) => {\n return state.pagination.recordCount;\n });\n this.pageSize$ = this.store.select((state) => {\n return state.pagination.pageSize;\n });\n }\n public setCurrentPage(page: number) {\n this.store.updateCurrentPage(page);\n }\n public setPageSize(page: number) {\n this.store.updatePageSize(page);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IPaginationDataProviderInterface {\n public readonly currentPage$: Observable;\n public setCurrentPage: (page: number) => void;\n\n public readonly pageCount$: Observable;\n public readonly totalRecords$: Observable;\n public readonly pageSize$: Observable;\n public setPageSize: (page: number) => void;\n}\n","import { createAction, props } from '@ngrx/store';\nimport {\n RRIPagination,\n RRISort,\n SelectedFilters,\n} from 'projects/web-ui-component-library/src';\nimport { IRequest, IRequestsAggregate } from '../../data/api';\nimport {\n CloneRequestInputData,\n CreateRequestInputData,\n UpdateRequestInputData,\n} from '../components/create-request-modal/create-request-input.interface';\nimport { RequestFilters } from '../components/request-list-action-bar/request-list-action-bar.component';\n\nexport const paginationChange = createAction(\n '[Request Overview Pagination] Change Pagination',\n props<{ pagination: Partial }>(),\n);\n\nexport const changePageAction = createAction(\n '[Request Overview Pagination] Change Page',\n props<{ page: number }>(),\n);\n\nexport const changePageSizeAction = createAction(\n '[Request Overview Pagination] Change Page Size',\n props<{ pageSize: number }>(),\n);\n\nexport const sortChange = createAction(\n '[Request Overview Table] Change Sort',\n props<{ sort: RRISort }>(),\n);\n\nexport const clearFilters = createAction(\n '[Request Overview Filters] Clear Filters',\n);\n\nexport const filtersChange = createAction(\n '[Request Overview Filters] Change Filters',\n props<{ filters: SelectedFilters }>(),\n);\n\nexport const filtersLoad = createAction(\n '[Request Overview Filters] Loading Filters',\n props<{ filters: SelectedFilters }>(),\n);\n\nexport const retrievedRequests = createAction(\n '[Request Overview API] Retrieved Requests Success',\n props<{ recordCount: number; pageCount: number; requests: IRequest[] }>(),\n);\n\nexport const retrievedRequestsWithError = createAction(\n '[Request Overview API] Retrieved Requests Error',\n);\n\nexport const retrievedRequestsAggregate = createAction(\n '[Request Overview API] Retrieved Requests Aggregate Success',\n props<{ requestAggregates: IRequestsAggregate }>(),\n);\n\nexport const retrievedRequestsAggregateWithError = createAction(\n '[Request Overview API] Retrieved Requests Aggregate Error',\n);\n\nexport const changeCustomerAction = createAction(\n '[Request Overview Page] Change Customer',\n props<{\n customer: string;\n }>(),\n);\n\nexport const loadRequests = createAction(\n '[Request Overview Page] Load Requests',\n props<{\n sort: RRISort;\n pagination: RRIPagination;\n filters: SelectedFilters;\n }>(),\n);\n\nexport const loadRequestsAggregate = createAction(\n '[Request Overview Page] Load Requests Aggregate',\n props<{ filters: SelectedFilters }>(),\n);\n\nexport const storeFiltersAction = createAction(\n '[Request Overview Filters] Store Filters',\n props<{ filters: SelectedFilters }>(),\n);\n\nexport const storeFiltersCompleteAction = createAction(\n '[Request Overview Filters] Store Filters complete',\n);\n\nexport const loadFiltersAction = createAction(\n '[Request Overview Filters] Load Filters',\n);\n\nexport const loadFiltersCompleteAction = createAction(\n '[Request Overview Filters] Load Filters complete',\n props<{ filters: SelectedFilters }>(),\n);\n\nexport const loadTagsAction = createAction(\n '[Request Overview Filters] Load tags',\n props<{ customerId?: string }>(),\n);\n\nexport const showLoaderAction = createAction('[Request Overview] Show loader');\n\nexport const hideLoaderAction = createAction('[Request Overview ] Hide loader');\n\nexport const loadTagsCompleteAction = createAction(\n '[Request Overview Filters] Load tags complete',\n props<{ tags: { uuid: string; name: string }[] }>(),\n);\n\nexport const createNewRequestAction = createAction(\n '[Request Overview Page] Create new request',\n props(),\n);\n\nexport const cloneRequestAction = createAction(\n '[Request Overview Page] Clone request',\n props(),\n);\n\nexport const updateDraftRequestAction = createAction(\n '[Request Overview Page] Edit a draft request',\n props(),\n);\n\nexport const clearRequestModalAction = createAction(\n '[Request Overview Page] Clear request modal',\n);\n\nexport const reloadRequestsAction = createAction(\n '[Request Overview Page] Reload Requests',\n);\n","import { createSelector } from '@ngrx/store';\nimport { IAppState } from '../../app.state';\nimport { IRequestsOverviewState } from './requests-overview.state';\n\nexport const selectRequestOverview = (state: IAppState) =>\n state.requestOverview;\n\nexport const selectRequestsOverviewShowLoader = createSelector(\n selectRequestOverview,\n (state: IRequestsOverviewState) => state.showLoader,\n);\n\nexport const selectRequestsOverviewPagination = createSelector(\n selectRequestOverview,\n (state: IRequestsOverviewState) => state.pagination,\n);\n\nexport const selectLastUpdated = createSelector(\n selectRequestOverview,\n (state: IRequestsOverviewState) => state.requests_loaded,\n);\n\nexport const selectRequestsOverviewSort = createSelector(\n selectRequestOverview,\n (state: IRequestsOverviewState) => state.sort,\n);\n\nexport const selectRequestsOverviewFilters = createSelector(\n selectRequestOverview,\n (state: IRequestsOverviewState) => state.filters,\n);\nexport const selectRequestsOverviewCurrentCustomerId = createSelector(\n selectRequestOverview,\n (state: IRequestsOverviewState) => state.currentCustomerID,\n);\n\nexport const selectRequestsOverview = createSelector(\n selectRequestOverview,\n (state: IRequestsOverviewState) => ({\n requests: state.requests,\n recordCount: state.recordCount,\n }),\n);\n\nexport const selectRequestsOverviewAggregate = createSelector(\n selectRequestOverview,\n (state: IRequestsOverviewState) => state.requestAggregates,\n);\n\nexport const selectRequestsErrorOverview = createSelector(\n selectRequestOverview,\n (state: IRequestsOverviewState) => state.requestsError,\n);\n\nexport const selectRequestsOverviewAggregateError = createSelector(\n selectRequestOverview,\n (state: IRequestsOverviewState) => state.requestAggregatesError,\n);\n\nexport const selectRequestsFilter = createSelector(\n selectRequestOverview,\n (state: IRequestsOverviewState) => state.filters,\n);\n\nexport const selectRequestsModalFilter = createSelector(\n selectRequestOverview,\n (state: IRequestsOverviewState) => state.createRequestModal,\n);\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { RR_THUMBNAIL } from 'projects/web-ui-component-library/src';\nimport { PRODUCT_TYPE, ProductHelper } from '../data';\n\n@Pipe({ name: 'productType', standalone: true })\nexport class ProductTypePipe implements PipeTransform {\n transform(type: PRODUCT_TYPE) {\n return ProductHelper.mapProductTypeFromEnumToStringName(type);\n }\n}\n\n@Pipe({ name: 'garmentThumbnailAvailable', standalone: true })\nexport class GarmentThumbnailPipe implements PipeTransform {\n transform(url: string) {\n if (url === undefined || url === null) {\n return RR_THUMBNAIL;\n } else {\n return url;\n }\n }\n}\n\n@Pipe({ name: 'avatarThumbnailAvailable', standalone: true })\nexport class AvatarThumbnailPipe implements PipeTransform {\n transform(url: string) {\n if (url === undefined || url === null) {\n return '/assets/img/avatar-placeholder.png';\n } else {\n return url;\n }\n }\n}\n\n@Pipe({ name: 'sceneThumbnailAvailable', standalone: true })\nexport class SceneThumbnailPipe implements PipeTransform {\n transform(url: string) {\n if (url === undefined || url === null) {\n return '/assets/img/avatar-placeholder.png';\n } else {\n return url;\n }\n }\n}\n","import { ElementRef } from '@angular/core';\nimport {\n IAsset,\n PersonalisedMannequinCreatorCustomiseParameters,\n SizeRecommendationResponse,\n VDRSizeRecommendationConfiguration,\n} from '@reactivereality/pictofit-web-sdk';\nimport { ConfigurationDTO } from '@reactivereality/cs-api-sdk';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n// Discovery\nexport class IAppConfiguration {\n config: string;\n garments_type: string;\n default_2d_scene: string;\n default_3d_scene: string;\n}\n\nexport class IApiConfiguration {\n graphql_endpoint: string;\n websdk_endpoint: string;\n}\n\nexport interface IConfiguration {\n appConfiguration: IAppConfiguration;\n apiConfiguration: IApiConfiguration;\n}\n\nexport abstract class IConfigurationService {\n abstract getConfiguration(): Promise;\n abstract getObservableConfiguration(): Observable;\n}\n\n//export type GqlSdk = ReturnType;\n\n// Brands\nexport interface IBrand {\n id: string;\n name: string;\n previewFiles: Array<{\n id: string;\n filename: string;\n mimetype: string;\n }>;\n}\n\nexport interface IDisplaySetting {\n id: string;\n name: string;\n dress_on_avatar: boolean;\n scene_id: string;\n}\n\nexport interface ICategory {\n id: string;\n name: string;\n render_2d?: IDisplaySetting;\n render_3d?: IDisplaySetting;\n}\n\nexport interface IUserProfile {\n id: string;\n email: string;\n}\n\nexport type AssetFiles = Array<{\n filename: string;\n mimetype: string;\n url: string;\n}>;\n\nexport enum Gender {\n MALE,\n FEMALE,\n}\n\nexport interface IAvatar {\n id: string;\n name: string;\n gender: Gender;\n request?: PersonalisedMannequinCreatorCustomiseParameters;\n asset: AssetFiles | IAsset;\n thumbnail?:\n | string\n | {\n filename: string;\n mimetype: string;\n url: string;\n };\n userSpecific: boolean;\n}\n\nexport interface IPreviewAvatar extends IAvatar {\n preview: {\n url: Promise;\n mimetype: Promise;\n };\n}\n\nexport interface IScene {\n id: string;\n name: string;\n description: string;\n supports_2d: boolean;\n supports_3d: boolean;\n asset: AssetFiles;\n}\nexport interface ITuckedIn {\n garmentId: string;\n tuckedIn: boolean;\n}\n\n// Garments\n\nexport interface IGarmentDetails extends GarmentDetailsFragment {\n garment_3d_assets: Array<{\n asset: DownloadAbleAssetsFragment;\n }>;\n garment_2d_assets: Array<{\n asset: DownloadAbleAssetsFragment;\n }>;\n}\n\nexport interface IAssetMetadata {\n garmentGroup: number;\n tryonable: boolean;\n productTypeId?: string;\n assetComponentKeys?: Array;\n //supportSizing: boolean;\n}\n\nexport type IGarmentMetadata = {\n '2D': IAssetMetadata | undefined;\n '3D': IAssetMetadata | undefined;\n};\n\nexport interface IPreviewGarmentDetails extends IGarmentDetails {\n metadata: IGarmentMetadata;\n preview: {\n url: Promise;\n mimetype: Promise;\n };\n}\n\nexport interface PagedGarmentResponse\n extends IPagedResult {}\n\nexport interface IPagedResult {\n data: Array;\n pageSize: number;\n offset: number;\n total: number;\n}\n\n// Outfits\n\nexport interface IOutfitDetail extends OutfitDetailFragment {\n preview: {\n url: Promise;\n mimetype: Promise;\n };\n}\n\nexport interface IStoreOutfitDetail {\n id?: string;\n name: string;\n avatar: string;\n garments: string[];\n screenshot: Blob;\n}\n\nexport enum ViewerMode {\n MODE_2D_PARALLAX = '2D_PARALLAX',\n MODE_3D = '3D',\n MODE_2D = '2D',\n}\n\nexport abstract class IBrandService {\n abstract readonly allBrands_loading$: BehaviorSubject;\n abstract readonly allBrands$: Observable>;\n}\n\nexport abstract class ITagsService {\n abstract readonly allFilterableTags_loading$: BehaviorSubject;\n abstract readonly allFilterableTags$: Observable>;\n}\n\nexport abstract class ICategoryService {\n abstract readonly allCategories_loading$: BehaviorSubject;\n abstract readonly allCategories$: BehaviorSubject>;\n}\n\nexport abstract class IGarmentService {\n public abstract readonly current_garments_loading$: BehaviorSubject;\n public abstract readonly current_garments$: Observable;\n public abstract readonly current_query$: BehaviorSubject;\n\n public abstract readonly garment_detail_loading$: BehaviorSubject;\n public abstract readonly garment_detail_garments$: Observable<\n IPreviewGarmentDetails | undefined\n >;\n public abstract readonly garment_detail_query$: BehaviorSubject<\n string | undefined\n >;\n\n public abstract getDisplaySettings(\n garment: IPreviewGarmentDetails,\n mode: ViewerMode,\n ): Promise;\n\n public abstract getGarmentMetadata(\n garment: IPreviewGarmentDetails,\n mode: ViewerMode,\n ): IAssetMetadata | undefined;\n\n public abstract supportedViewerModes(\n garment: IGarmentDetails,\n ): Promise>;\n public abstract toSdkAsset(\n garment: IGarmentDetails,\n mode: ViewerMode,\n ): Promise;\n public abstract getSizes(\n garment: IGarmentDetails,\n mode: ViewerMode,\n ): Promise;\n public abstract getSizeRecommendation(\n garment: IGarmentDetails,\n avatar: IAvatar,\n request: VDRSizeRecommendationConfiguration,\n mode: ViewerMode,\n sizes?: Set,\n ): Promise;\n\n public abstract fetchGarmentById(\n garmentIds: string,\n ): Promise;\n public abstract fetchGarmentsByIds(\n garmentIds: string[],\n ): Promise;\n public abstract resolvePreview(\n garment: IGarmentDetails,\n ): Promise;\n}\n\nexport abstract class IAvatarService {\n abstract readonly defaultAvatarId$: BehaviorSubject;\n readonly allUserAvatars3d$: BehaviorSubject>;\n readonly allUserAvatars2d$: BehaviorSubject>;\n\n abstract toSdkAsset(\n avatar: ConfigurationDTO,\n mode: ViewerMode,\n ): Promise;\n abstract loadCustomerAvatars2D(\n customerId: string,\n currentPage: number,\n pageSize: number,\n ): Promise>;\n abstract loadCustomerAvatars3D(\n customerId: string,\n currentPage: number,\n pageSize: number,\n ): Promise>;\n abstract loadPublicAvatars2D(): Promise>;\n abstract loadPublicAvatars3D(): Promise>;\n}\n\nexport abstract class ISceneService {\n abstract readonly allScenes_loading$: BehaviorSubject;\n abstract readonly allScenes$: BehaviorSubject>;\n abstract toSdkAsset(avatar: IScene, mode: ViewerMode): Promise;\n}\n\nexport abstract class IUserService {\n abstract readonly userProfile$: BehaviorSubject;\n}\n\nexport abstract class IDownloadUrlCacheService {\n abstract attachCachedUrlsToAsset(\n asset: DownloadAbleAssetsFragment,\n ): Promise;\n abstract resolveDownloadURL(fileId: string, value: string): Promise;\n}\n\nexport abstract class IGarmentCacheService {\n public abstract fetchGarmentById(\n garmentIds: string,\n ): Promise;\n public abstract fetchGarmentsByIds(\n garmentIds: string[],\n ): Promise;\n}\n\nexport abstract class IOutfitService {\n abstract readonly userOutfits$: BehaviorSubject;\n abstract readonly selectedUserOutfit$: BehaviorSubject<\n IOutfitDetail | undefined\n >;\n\n abstract storeOutfit(outfit: IStoreOutfitDetail): Promise;\n abstract deleteOutfit(outfit: IOutfitDetail): Promise;\n public abstract undressGarment(outfit: IOutfitDetail | string): void;\n}\n\nexport abstract class IShoppingBagService {\n public readonly bagGarments$: BehaviorSubject;\n public abstract animateShoppingBagIcon(\n reverse: boolean,\n from: ElementRef,\n to?: ElementRef,\n );\n\n public abstract isInShoppingBag(garment: IGarmentDetails | string): boolean;\n public abstract addGarment(\n garment: IGarmentDetails[] | IGarmentDetails | string | string[],\n ): void;\n public abstract delGarment(garment: IGarmentDetails | string): void;\n}\n\nexport abstract class IDressingRoomService {\n public readonly selectedOutfit$: BehaviorSubject;\n /**\n * Garments that are currently selected to be in the dressing room\n */\n public readonly selectedGarments$: BehaviorSubject;\n /**\n * Garments that are currently dressed in the dressing room\n */\n public readonly dressedGarments$: BehaviorSubject;\n public readonly checkFitGarment$: BehaviorSubject;\n\n /**\n * Garments that are currently tucked in\n */\n public readonly tuckedInGarment$: BehaviorSubject;\n\n public abstract tryonOnOutfit(outfit: IOutfitDetail);\n public abstract supportDressingRoom(garment: IGarmentDetails): boolean;\n public abstract isInDressingRoom(garment: IGarmentDetails | string): boolean;\n /**\n * Adds garment into dressing room\n * @param garment\n */\n public abstract addGarment(\n garment: IGarmentDetails[] | IGarmentDetails | string | string[],\n ): void;\n\n /**\n * Removes garment from dressing room\n * @param garment\n */\n public abstract delGarment(garment: IGarmentDetails | string): void;\n\n /**\n * Tries on garment\n * @param garment\n */\n public abstract dressGarment(\n garment: IGarmentDetails[] | IGarmentDetails | string | string[],\n ): void;\n\n public abstract getInitialGarments(): string[];\n\n /**\n * Change tuck in state of the garment\n * @param garment\n * @param tuckedIn\n */\n public abstract tuckIn(garment: IGarmentDetails, tuckedIn: boolean): void;\n\n /**\n * Undress garment\n * @param garment\n */\n public abstract undressGarment(garment: IGarmentDetails | string): void;\n\n public abstract animateDressingRoomIcon(\n reverse: boolean,\n from: ElementRef,\n to?: ElementRef,\n ): void;\n}\n\n// THIS DOESN\"T WORK YET!!\nexport abstract class ISizeRecommendationService {\n public abstract isShown(): boolean;\n public abstract show(garment: IGarmentDetails): void;\n public abstract hide(): void;\n //public abstract setComponent(component: SizeRecommendationComponent): void;\n}\n\n//Todo: DUMMYS:\nclass GarmentDetailsFragment {}\nclass DownloadAbleAssetsFragment {}\nclass OutfitDetailFragment {}\nclass GetGarmentsOverviewQueryVariables {}\n\nexport type GarmentAssetFiles = Array<{\n filename: string;\n url: string;\n}>;\n","import { HttpClient } from '@angular/common/http';\nimport { AssetType, IAsset } from '@reactivereality/pictofit-web-sdk';\nimport { ILogger } from '../../../logging';\nimport { AssetFiles } from '../api';\n\nexport class Avatar2DAsset implements IAsset {\n constructor(\n protected avatar: AssetFiles,\n protected httpClient: HttpClient,\n protected logger: ILogger,\n ) {}\n preloadComponents(): Promise {\n this.logger.warn('[Avatar2DAsset] preloadComponents not implemented');\n return;\n }\n preloadComponent(key: string): Promise {\n this.logger.warn('[Avatar2DAsset] preloadComponent not implemented');\n return;\n }\n\n private findFile(key: string) {\n this.logger.debug(`[Avatar2DAsset] Loading key: ${key}`);\n return this.avatar.find((file) => file.filename === key);\n }\n\n protected getLocation = async (key: string): Promise => {\n const fileInQuestion = this.findFile(key);\n\n if (!fileInQuestion) {\n return null;\n }\n\n return fileInQuestion.url;\n };\n\n public getComponent = async (key: string): Promise => {\n const location = await this.getLocation(key);\n\n if (location == null) {\n throw new Error(`Key '${key}' is not available in Avatar2DAsset`);\n }\n\n const response = await this.httpClient\n .get(location, { observe: 'response', responseType: 'blob' })\n .toPromise();\n\n if (response.status !== 200) {\n const responseText =\n response.body !== null\n ? await response.body.text()\n : 'Unkown response text';\n throw new Error(\n `Failed to fetch key '${key}' for Avatar2DAsset ${responseText}`,\n );\n }\n\n if (response.body === null) {\n throw new Error(`Key '${key}' for product resulted in null blob content`);\n }\n\n return response.body;\n };\n\n /**\n * Get the location of a component of this asset associated with the specified key.\n * @param key\n * @returns The location of the component or null. Does not mean that the component behind the url is available.\n */\n public getComponentLocation = async (key: string): Promise => {\n const location = await this.getLocation(key);\n\n return location;\n };\n\n /**\n * Get all keys of this asset.\n */\n public getKeys = async (): Promise => {\n return this.avatar.map((f) => f.filename);\n };\n\n /**\n * The type of an asset.\n */\n public getType = async (): Promise => {\n return AssetType.AVATAR_2D;\n };\n}\n","import { AssetType, IAsset } from '@reactivereality/pictofit-web-sdk';\nimport { HttpClient } from '@angular/common/http';\nimport { AssetFiles } from '../api';\nimport { ILogger } from '../../../logging';\n\nexport class Avatar3DAsset implements IAsset {\n constructor(\n protected avatar: AssetFiles,\n protected httpClient: HttpClient,\n protected logger: ILogger,\n ) {}\n preloadComponents(): Promise {\n throw new Error('Method not implemented.');\n }\n preloadComponent(key: string): Promise {\n throw new Error('Method not implemented.');\n }\n\n private findFile(key: string) {\n this.logger.debug(`[Avatar3DAsset] Loading key: ${key}`);\n return this.avatar.find((file) => file.filename === key);\n }\n\n protected getLocation = async (key: string): Promise => {\n const fileInQuestion = this.findFile(key);\n\n if (!fileInQuestion) {\n return null;\n }\n\n return fileInQuestion.url;\n };\n\n public getComponent = async (key: string): Promise => {\n const location = await this.getLocation(key);\n\n if (location == null) {\n throw new Error(`Key '${key}' is not available in Avatar3DAsset`);\n }\n\n const response = await this.httpClient\n .get(location, { observe: 'response', responseType: 'blob' })\n .toPromise();\n\n if (response.status !== 200) {\n const responseText =\n response.body !== null\n ? await response.body.text()\n : 'Unkown response text';\n throw new Error(\n `Failed to fetch key '${key}' for Avatar3DAsset ${responseText}`,\n );\n }\n\n if (response.body === null) {\n throw new Error(`Key '${key}' for product resulted in null blob content`);\n }\n\n return response.body;\n };\n\n /**\n * Get the location of a component of this asset associated with the specified key.\n * Will return null incase an location could not be resolved. This could sometimes be the case when a component is only available locally but has no public location.\n * @param key\n * @returns The location of the component or null. Does not mean that the component behind the url is available.\n */\n public getComponentLocation = async (key: string): Promise => {\n const location = await this.getLocation(key);\n\n if (\n location !== null &&\n !location.startsWith('http') &&\n key !== 'material.json'\n ) {\n return null;\n }\n return location;\n };\n\n /**\n * Get all keys of this asset.\n */\n public getKeys = async (): Promise => {\n return this.avatar.map((f) => f.filename);\n };\n\n /**\n * The type of an asset.\n */\n public getType = async (): Promise => {\n return AssetType.AVATAR_3D;\n };\n}\n\nexport class Generated3DAvatar implements IAsset {\n constructor(protected avatar: IAsset, protected httpClient: HttpClient) {}\n preloadComponents(): Promise {\n throw new Error('Method not implemented.');\n }\n preloadComponent(key: string): Promise {\n throw new Error('Method not implemented.');\n }\n\n public getComponent = async (key: string): Promise => {\n return this.avatar.getComponent(key);\n };\n\n /**\n * Get the location of a component of this asset associated with the specified key.\n * Will return null incase an location could not be resolved. This could sometimes be the case when a component is only available locally but has no public location.\n * @param key\n * @returns The location of the component or null. Does not mean that the component behind the url is available.\n */\n public getComponentLocation = async (key: string): Promise => {\n return this.avatar.getComponentLocation(key);\n };\n\n /**\n * Get all keys of this asset.\n */\n public getKeys = async (): Promise => {\n return [...(await this.avatar.getKeys()), 'material.json'];\n };\n\n /**\n * The type of an asset.\n */\n public getType = async (): Promise => {\n return AssetType.AVATAR_3D;\n };\n}\n","import { AssetType, IAsset } from '@reactivereality/pictofit-web-sdk';\n\nimport { HttpClient } from '@angular/common/http';\nimport { ILogger } from '../../../logging/api';\nimport { GarmentAssetFiles } from '../api';\n\nabstract class GarmentAsset implements IAsset {\n constructor(\n protected asset: GarmentAssetFiles,\n protected httpClient: HttpClient,\n protected logger: ILogger,\n ) {}\n\n preloadComponents(): Promise {\n this.logger.warn('[GarmentAsset] preloadComponents not implemented');\n return;\n }\n preloadComponent(key: string): Promise {\n this.logger.warn('[GarmentAsset] preloadComponent not implemented');\n return;\n }\n\n private findFile(key: string) {\n this.logger.debug(`Asset searching for file: ${key}`);\n return this.asset.find((file) => file.filename === key);\n }\n\n /**\n * Get a component of this asset associated with the specified key.\n * Returns a blob incase the component is available, otherwise it will throw an error.\n * This is the entrypoint from which components are requested for local purposes. (aka. when no compute server is involved.)\n * @param key The key that the component is associated with.\n * @returns A promise that resolves to the components blob.\n */\n public getComponent = async (key: string): Promise => {\n const location = await this.getComponentLocation(key);\n\n if (location == null) {\n throw new Error(`Key '${key}' is not available in WebshopAsset`);\n }\n\n const response = await this.httpClient\n .get(location, { observe: 'response', responseType: 'blob' })\n .toPromise();\n\n if (response.status !== 200) {\n const responseText =\n response.body !== null\n ? await response.body.text()\n : 'Unkown response text';\n throw new Error(\n `Failed to fetch key '${key}' for WebshopAsset ${responseText}`,\n );\n }\n\n if (response.body === null) {\n throw new Error(\n `Key '${key}' for WebshopAsset resulted in null blob content`,\n );\n }\n\n return response.body;\n };\n\n /**\n * Get the location of a component of this asset associated with the specified key.\n * Will return null incase an location could not be resolved. This could sometimes be the case when a component is only available locally but has no public location.\n * @param key\n * @returns The location of the component or null. Does not mean that the component behind the url is available.\n */\n public getComponentLocation = async (key: string): Promise => {\n const fileInQuestion = this.findFile(key);\n\n if (!fileInQuestion) {\n return null;\n }\n\n return fileInQuestion.url;\n };\n\n /**\n * Get all keys of this asset.\n */\n public getKeys = async (): Promise => {\n return this.asset.map((f) => f.filename);\n };\n\n abstract getType(): Promise;\n}\n\nexport class Garment2DAsset extends GarmentAsset {\n constructor(\n protected asset: GarmentAssetFiles,\n protected httpClient: HttpClient,\n logger: ILogger,\n ) {\n super(asset, httpClient, logger);\n }\n\n /**\n * The type of an asset.\n */\n public getType = async (): Promise => {\n return AssetType.GARMENT_2D;\n };\n}\n\nexport class Garment3DAsset extends GarmentAsset {\n constructor(\n protected asset: GarmentAssetFiles,\n protected httpClient: HttpClient,\n logger: ILogger,\n ) {\n super(asset, httpClient, logger);\n }\n\n /**\n * The type of an asset.\n */\n public getType = async (): Promise => {\n return AssetType.GARMENT_3D;\n };\n}\n","import { HttpClient } from '@angular/common/http';\nimport { AssetType, IAsset } from '@reactivereality/pictofit-web-sdk';\nimport { ILogger } from '../../../logging';\nimport { AssetFiles } from '../api';\n\nexport class SceneAsset implements IAsset {\n constructor(\n protected scene: AssetFiles,\n protected httpClient: HttpClient,\n protected logger: ILogger,\n ) {}\n preloadComponents(): Promise {\n this.logger.warn('[SceneAsset] preloadComponents not implemented');\n return;\n }\n preloadComponent(key: string): Promise {\n this.logger.warn('[SceneAsset] preloadComponent not implemented');\n return;\n }\n\n private findFile(key: string) {\n this.logger.debug(`[SceneAsset] Loading key: ${key}`);\n return this.scene.find((file) => file.filename === key);\n }\n\n protected getLocation = async (key: string): Promise => {\n const fileInQuestion = this.findFile(key);\n\n if (!fileInQuestion) {\n return null;\n }\n\n return fileInQuestion.url;\n };\n\n public getComponent = async (key: string): Promise => {\n const location = await this.getLocation(key);\n\n if (location == null) {\n throw new Error(`Key '${key}' is not available in SceneAsset`);\n }\n\n const response = await this.httpClient\n .get(location, { observe: 'response', responseType: 'blob' })\n .toPromise();\n\n if (response.status !== 200) {\n const responseText =\n response.body !== null\n ? await response.body.text()\n : 'Unkown response text';\n throw new Error(\n `Failed to fetch key '${key}' for SceneAsset ${responseText}`,\n );\n }\n\n if (response.body === null) {\n throw new Error(`Key '${key}' for product resulted in null blob content`);\n }\n\n return response.body;\n };\n\n /**\n * Get the location of a component of this asset associated with the specified key.\n * @param key\n * @returns The location of the component or null. Does not mean that the component behind the url is available.\n */\n public getComponentLocation = async (key: string): Promise => {\n const location = await this.getLocation(key);\n\n return location;\n };\n\n /**\n * Get all keys of this asset.\n */\n public getKeys = async (): Promise => {\n return this.scene.map((f) => f.filename);\n };\n\n /**\n * The type of an asset.\n */\n public getType = async (): Promise => {\n return AssetType.SCENE;\n };\n}\n","import { AssetFiles } from '../api';\n//import { DownloadAbleAssetsFragment } from '../../../graphql-db-connection/types';\nimport { AssetType, IAsset } from '@reactivereality/pictofit-web-sdk';\nimport { HttpClient } from '@angular/common/http';\nimport { ILogger } from '../../../logging';\n\nexport const toAssetFiles = (data: AssetFiles): AssetFiles => {\n if (Array.isArray(data)) {\n return data;\n }\n};\n\nexport class BaseAsset implements IAsset {\n constructor(\n protected avatar: AssetFiles,\n protected httpClient: HttpClient,\n protected logger: ILogger,\n protected assetType: AssetType,\n ) {}\n preloadComponents(): Promise {\n throw new Error('Method not implemented.');\n }\n preloadComponent(key: string): Promise {\n throw new Error('Method not implemented.');\n }\n\n private findFile(key: string) {\n //this.logger.debug(`[BaseAsset] Loading key: ${key}`);\n return this.avatar.find((file) => file.filename === key);\n }\n\n private getLocation = async (key: string): Promise => {\n const fileInQuestion = this.findFile(key);\n\n if (!fileInQuestion) {\n return null;\n }\n\n return fileInQuestion.url;\n };\n\n /**\n * Get a component of this asset associated with the specified key.\n * Returns a blob incase the component is available, otherwise it will throw an error.\n * This is the entrypoint from which components are requested for local purposes. (aka. when no compute server is involved.)\n * @param key The key that the component is associated with.\n * @returns A promise that resolves to the components blob.\n */\n public getComponent = async (key: string): Promise => {\n const location = await this.getLocation(key);\n\n if (location == null) {\n throw new Error(`Key '${key}' is not available in BaseAsset`);\n }\n\n //this.logger.debug(`[BaseAsset] getComponent: ${key}`);\n\n const response = await this.httpClient\n .get(location, { observe: 'response', responseType: 'blob' })\n .toPromise();\n\n if (response.status !== 200) {\n const responseText =\n response.body !== null\n ? await response.body.text()\n : 'Unkown response text';\n throw new Error(\n `Failed to fetch key '${key}' for BaseAsset ${responseText}`,\n );\n }\n\n if (response.body === null) {\n throw new Error(`Key '${key}' for product resulted in null blob content`);\n }\n\n return response.body;\n };\n\n /**\n * Get the location of a component of this asset associated with the specified key.\n * Will return null incase an location could not be resolved. This could sometimes be the case when a component is only available locally but has no public location.\n * @param key\n * @returns The location of the component or null. Does not mean that the component behind the url is available.\n */\n public getComponentLocation = async (key: string): Promise => {\n const location = await this.getLocation(key);\n\n // this.logger.debug(\n // `[BaseAsset] getComponentLocation: ${key} => ${location}`\n // );\n return location;\n };\n\n /**\n * Get all keys of this asset.\n */\n public getKeys = async (): Promise => {\n return this.avatar.map((f) => f.filename);\n };\n\n /**\n * The type of an asset.\n */\n public getType = async (): Promise => {\n return this.assetType;\n };\n}\n","import { HttpClient } from '@angular/common/http';\nimport { AssetType, IAsset } from '@reactivereality/pictofit-web-sdk';\nimport { ILogger } from '../../../logging';\nimport { AssetFiles } from '../api';\nimport { BaseAsset, toAssetFiles } from './common';\n\nexport { Garment2DAsset, Garment3DAsset } from './GarmentAssets';\nexport { Avatar3DAsset, Generated3DAvatar } from './AvatarAssets';\n\nconst createBaseAsset = (\n data: AssetFiles,\n assetType: AssetType,\n httpClient: HttpClient,\n logger: ILogger,\n): IAsset => {\n return new BaseAsset(toAssetFiles(data), httpClient, logger, assetType);\n};\n\nexport const createSceneAsset = (\n data: AssetFiles,\n httpClient: HttpClient,\n logger: ILogger,\n): IAsset => {\n return createBaseAsset(data, AssetType.UNDEFINED, httpClient, logger);\n};\n\nexport const createGarment2DAsset = (\n data: AssetFiles,\n httpClient: HttpClient,\n logger: ILogger,\n): IAsset => {\n return createBaseAsset(data, AssetType.GARMENT_2D, httpClient, logger);\n};\n\nexport const createGarment3DAsset = (\n data: AssetFiles,\n httpClient: HttpClient,\n logger: ILogger,\n): IAsset => {\n return createBaseAsset(data, AssetType.GARMENT_3D, httpClient, logger);\n};\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest } from 'rxjs';\nimport { ILogger } from '../../../logging';\n\nimport { AssetFiles, IAvatar, IAvatarService, ViewerMode } from '../api';\nimport { distinct, distinctUntilChanged, filter } from 'rxjs/operators';\nimport {\n IAsset,\n PersonalisedMannequinCreatorCustomiseParameters,\n} from '@reactivereality/pictofit-web-sdk';\nimport { Avatar3DAsset } from '../model/WebshopAssets';\nimport { HttpClient } from '@angular/common/http';\nimport {\n IRequestDetail,\n IRequestResult,\n IRequestService,\n PRODUCT_TYPE,\n} from '../../../data';\nimport {\n ConfigurationDTO,\n ConfigurationPublicOnlyDTO,\n} from '@reactivereality/cs-api-sdk';\nimport * as _ from 'lodash';\nimport { AvatarDTO, PagingData } from '../../../data/api';\nimport { NgStorageManagerService } from '../../../core/services/ng-storage-manager.service';\nimport { NgDiscoveryService } from '../../../core/services/ng-discovery.service';\nimport { mapRequestsToAssets } from './common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AvatarService implements IAvatarService {\n public readonly defaultAvatarId$: BehaviorSubject;\n\n // All brands loading\n public readonly allAvatars_loading$: BehaviorSubject;\n public readonly allAvatars$: Observable>;\n\n private allAvatars_query_counter: number = 0;\n private readonly internal_allAvatars$: BehaviorSubject<\n Array | undefined\n >;\n public readonly allPublicAvatars3d$: BehaviorSubject<\n Array | undefined\n > = new BehaviorSubject | undefined>([]);\n public readonly allPublicAvatars2d$: BehaviorSubject<\n Array | undefined\n > = new BehaviorSubject | undefined>([]);\n public readonly allUserAvatars2d$: BehaviorSubject<\n Array | undefined\n > = new BehaviorSubject | undefined>([]);\n public readonly allUserAvatars3d$: BehaviorSubject<\n Array | undefined\n > = new BehaviorSubject | undefined>([]);\n public readonly userAvatars_loading$: BehaviorSubject;\n public readonly userAvatars$: Observable>;\n\n private userAvatars_query_counter: number = 0;\n private readonly internal_userAvatars$: BehaviorSubject<\n Array | undefined\n >;\n\n public BASE_API_URL: string;\n\n constructor(\n private logger: ILogger,\n private httpClient: HttpClient,\n private _discoveryService: NgDiscoveryService,\n private _requestService: IRequestService,\n private _logger: ILogger,\n private storageManager: NgStorageManagerService,\n ) {\n // User Avatars\n this.internal_userAvatars$ = new BehaviorSubject<\n Array | undefined\n >(undefined);\n this.userAvatars_loading$ = new BehaviorSubject(false);\n\n this.userAvatars$ = this.internal_userAvatars$.pipe(\n filter((v) => v !== undefined),\n ) as Observable>;\n\n // Single Garment\n this.internal_allAvatars$ = new BehaviorSubject<\n Array | undefined\n >(undefined);\n this.allAvatars_loading$ = new BehaviorSubject(false);\n\n this.allAvatars$ = this.internal_allAvatars$.pipe(\n filter((v) => v !== undefined),\n distinct(),\n ) as Observable>;\n\n this.defaultAvatarId$ = new BehaviorSubject(undefined);\n this.storageManager\n .getItem$('avatar.currentAvatar', 'local')\n .pipe(distinctUntilChanged())\n .subscribe((currentAvatar) => {\n this.defaultAvatarId$.next(currentAvatar);\n });\n\n this.defaultAvatarId$.subscribe((id) => {\n this.storageManager.setItem(`avatar.currentAvatar`, id, 'local');\n });\n\n this.BASE_API_URL =\n this._discoveryService.config.apiConfiguration.baseApiUrl;\n this.loadUserAvatars2d();\n this.loadPublicAvatars2d();\n this.loadUserAvatars3d();\n this.loadPublicAvatars3d();\n\n combineLatest([this.internal_userAvatars$]).subscribe();\n }\n private async loadPublicAvatars3d() {\n const response = await this._requestService.getPublicRequests(\n '{\"productTypeId\":\"15\", \"stateId\":[4,13]}',\n 1,\n -1,\n );\n const configsWithWebResult = response.configurations.filter((o) =>\n this.resultHasWebResult(o),\n );\n\n let configs = this.internal_allAvatars$.value\n ? [...this.internal_allAvatars$.value, ...configsWithWebResult]\n : configsWithWebResult;\n configs = _.uniqBy(configs, (config) => {\n return config.id;\n });\n this.allPublicAvatars3d$.next(configsWithWebResult);\n this.internal_allAvatars$.next(configs);\n }\n private async loadPublicAvatars2d() {\n const response = await this._requestService.getPublicRequests(\n '{\"productTypeId\":\"6\", \"stateId\":[4,13]}',\n 1,\n -1,\n );\n const configsWithWebResult = response.configurations.filter((o) =>\n this.resultHasWebResult(o[0]),\n );\n\n let configs = this.internal_allAvatars$.value\n ? [...this.internal_allAvatars$.value, ...configsWithWebResult]\n : configsWithWebResult;\n configs = _.uniqBy(configs, (config) => {\n return config.id;\n });\n this.allPublicAvatars2d$.next(configsWithWebResult);\n this.internal_allAvatars$.next(configs);\n }\n private async loadUserAvatars3d() {\n const response = await this._requestService.getRequests(\n '{\"productTypeId\":\"15\", \"stateId\":[4,13]}',\n 1,\n -1,\n );\n const configsWithWebResult = response.configurations.filter((o) =>\n this.resultHasWebResult(o),\n );\n\n let configs = this.internal_allAvatars$.value\n ? [...this.internal_allAvatars$.value, ...configsWithWebResult]\n : configsWithWebResult;\n configs = _.uniqBy(configs, (config) => {\n return config.id;\n });\n this.allUserAvatars3d$.next(configsWithWebResult);\n this.internal_allAvatars$.next(configs);\n }\n private async loadUserAvatars2d() {\n const response = await this._requestService.getRequests(\n '{\"productTypeId\":\"6\", \"stateId\":[4,13]}',\n 1,\n -1,\n );\n const configsWithWebResult = response.configurations.filter((o) =>\n this.resultHasWebResult(o),\n );\n let configs = this.internal_allAvatars$.value\n ? [...this.internal_allAvatars$.value, ...configsWithWebResult]\n : configsWithWebResult;\n configs = _.uniqBy(configs, (config) => {\n return config.id;\n });\n this.allUserAvatars2d$.next(configsWithWebResult);\n this.internal_allAvatars$.next(configsWithWebResult);\n }\n private resultHasWebResult(config: ConfigurationDTO): boolean {\n if (config?.results?.find((o) => o?.format?.toLowerCase() === 'web')) {\n return true;\n }\n return false;\n }\n upsertUserAvatar(avatar: IAvatar): Promise {\n throw new Error('Method not implemented.');\n }\n\n private toBlob = async (url: string): Promise => {\n const response = await this.httpClient\n .get(url, { observe: 'response', responseType: 'blob' })\n .toPromise();\n\n if (response.status !== 200) {\n const responseText =\n response.body !== null\n ? await response.body.text()\n : 'Unkown response text';\n throw new Error(\n `Failed to fetch url '${url}' for Avatar ${responseText}`,\n );\n }\n\n if (response.body === null) {\n throw new Error(`Key '${url}' for Avatar resulted in null blob content`);\n }\n return response.body;\n };\n\n public toSdkAsset = async (\n avatar: IRequestDetail & IRequestResult,\n mode: ViewerMode,\n ): Promise => {\n switch (mode) {\n case ViewerMode.MODE_2D_PARALLAX:\n throw new Error(`Unsupported avatar mode!`);\n case ViewerMode.MODE_3D:\n if (Array.isArray(avatar.results)) {\n const webResult = avatar.results.find(\n (o) => o.format.toLowerCase() === 'web',\n );\n const fileList = webResult.files.map((file) => {\n return {\n filename: file.name,\n mimetype: file.mimeType,\n url: file.url,\n };\n }) as AssetFiles;\n return new Avatar3DAsset(fileList, this.httpClient, this.logger);\n }\n }\n };\n\n public deleteAvatar = async (avatarId: string): Promise => {};\n\n private getAvatarRequestFilename = (avatar: IAvatar): string => {\n return `${avatar.name}-request.json`;\n };\n\n private getAvatarThumbnailFilename = (avatar: IAvatar): string => {\n return `${avatar.name}-thumbnail.png`;\n };\n\n public getAvatarCreationRequest = async (\n avatar: IAvatar,\n ): Promise => {\n if (avatar === undefined || avatar === null) {\n this.logger.error(\n `Requesting avatar creation request of a null/undefined avatar`,\n );\n throw new Error(\n `Requesting avatar creation request of a null/undefined avatar`,\n );\n }\n\n if (Array.isArray(avatar.asset)) {\n const requestFile = avatar.asset.find(\n (v) => v.filename === this.getAvatarRequestFilename(avatar),\n );\n\n if (requestFile === null || requestFile === undefined) {\n this.logger.error(\n `Requesting avatar creation request of avatar, but none found`,\n avatar,\n );\n throw new Error(\n `Requesting avatar creation request of avatar but none found`,\n );\n }\n\n return this.httpClient\n .get(requestFile.url, {\n responseType: 'json',\n })\n .toPromise();\n } else if (typeof avatar.asset === 'object') {\n const requestData = await avatar.asset.getComponent(\n this.getAvatarRequestFilename(avatar),\n );\n return JSON.parse(\n await requestData.text(),\n ) as PersonalisedMannequinCreatorCustomiseParameters;\n } else {\n this.logger.error(\n `Requesting avatar creation request of avatar, without valid asset`,\n avatar.asset,\n );\n throw new Error(\n `Requesting avatar creation request of avatar, without valid asset`,\n );\n }\n };\n\n public async loadCustomerAvatars2D(\n customerId: string,\n currentPage: number,\n pageSize: number,\n ): Promise {\n const response = await this._requestService.getRequests(\n `{\"productTypeId\":\"6\", \"stateId\":[4,13], \"customerId\":\"${customerId}\"}`,\n 1,\n -1,\n );\n const configsWithWebResult = response.configurations.filter((o) =>\n this.resultHasWebResult(o),\n );\n return configsWithWebResult;\n }\n\n public async loadCustomerAvatars3D(\n customerId: string,\n currentPage: number,\n pageSize: number,\n ): Promise {\n const response = await this._requestService.getRequests(\n `{\"productTypeId\":\"15\", \"stateId\":[4,13], \"customerId\":\"${customerId}\"}`,\n 1,\n -1,\n );\n const configsWithWebResult = response.configurations.filter((o) =>\n this.resultHasWebResult(o),\n );\n return configsWithWebResult;\n }\n public async loadPublicAvatars2D(): Promise {\n const response = await this._requestService.getPublicRequests(\n `{\"productTypeId\":\"6\", \"stateId\":[4,13]}`,\n 1,\n -1,\n );\n const configsWithWebResult = response.configurations.filter((o) =>\n this.resultHasWebResult(o),\n );\n return configsWithWebResult;\n }\n\n public async loadPublicAvatars3D(): Promise {\n const response = await this._requestService.getPublicRequests(\n `{\"productTypeId\":\"15\", \"stateId\":[4,13]}`,\n 1,\n -1,\n );\n const configsWithWebResult = response.configurations.filter((o) =>\n this.resultHasWebResult(o),\n );\n return configsWithWebResult;\n }\n\n public async getAvatarsForCustomer(\n requestFilter: string,\n productType: PRODUCT_TYPE,\n customerId: string,\n page: number,\n pageSize: number,\n tags: string,\n signal: AbortSignal,\n inlcudeArchived: boolean = true,\n ): Promise<{ avatars: AvatarDTO[]; paging: PagingData }> {\n const customerRequests = await this._requestService.getAllCustomerRequests(\n customerId,\n requestFilter,\n page,\n pageSize,\n tags,\n inlcudeArchived,\n signal,\n );\n return {\n avatars: await mapRequestsToAssets(\n productType,\n customerRequests.configurations,\n ),\n paging: customerRequests.paging,\n };\n }\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nimport { innerFrom } from '../observable/innerFrom';\nexport function distinct(keySelector, flushes) {\n return operate((source, subscriber) => {\n const distinctKeys = new Set();\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const key = keySelector ? keySelector(value) : value;\n if (!distinctKeys.has(key)) {\n distinctKeys.add(key);\n subscriber.next(value);\n }\n }));\n flushes && innerFrom(flushes).subscribe(createOperatorSubscriber(subscriber, () => distinctKeys.clear(), noop));\n });\n}\n","import { ConfigurationPublicOnlyDTO } from '@reactivereality/cs-api-sdk';\nimport { PRODUCT_TYPE } from '../../../data';\nimport { AvatarDTO, SceneDTO } from '../../../data/api';\n\nexport async function mapRequestsToAssets(\n productType: PRODUCT_TYPE,\n requests: ConfigurationPublicOnlyDTO[],\n): Promise {\n const assets: AvatarDTO[] | SceneDTO[] = [];\n for (const request of requests) {\n if (request.storageInTransit != false || request.storageLocation != null) {\n //configuration is archived or a archiving/restoring process is ongoing\n this._logger.debug('Asset is archived - id: ', request.id);\n const asset = {\n ...request,\n archived: true,\n enabled: false,\n isPublic: false,\n };\n assets.push(asset);\n continue;\n }\n let enabled = true;\n\n if (productType === PRODUCT_TYPE.AVATAR_3D) {\n enabled = ['mobile', 'web'].every((value) => {\n return request.results.find((r) => r.format === value);\n });\n }\n if (\n productType === PRODUCT_TYPE.AVATAR_2D ||\n productType === PRODUCT_TYPE.SCENE\n ) {\n enabled = ['web'].every((value) => {\n return request.results.find((r) => r.format === value);\n });\n }\n\n const asset = {\n ...request,\n isPublic: false,\n enabled: enabled,\n archived:\n request.storageInTransit != false || request.storageLocation != null,\n };\n assets.push(asset);\n }\n return assets;\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ILogger } from '../../../logging';\n\nimport { ISceneService, ViewerMode, IScene as WebshopScene } from '../api';\nimport { IAsset, StaticAsset } from '@reactivereality/pictofit-web-sdk';\n\nimport { HttpClient } from '@angular/common/http';\nimport { createSceneAsset } from '../model/WebshopAssets';\nimport { PRODUCT_TYPE } from '../../../data';\nimport { IRequestService, PagingData, SceneDTO } from '../../../data/api';\nimport { mapRequestsToAssets } from './common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SceneService implements ISceneService {\n // All brands loading\n public readonly allScenes_loading$: BehaviorSubject;\n public readonly allScenes$: BehaviorSubject>;\n\n private allScenes_query_counter: number = 0;\n private readonly internal_allScenes$: BehaviorSubject<\n Array | undefined\n >;\n\n constructor(\n private httpClient: HttpClient,\n private logger: ILogger,\n private _requestService: IRequestService,\n ) {\n // User Avatars\n this.internal_allScenes$ = new BehaviorSubject>([]);\n this.allScenes_loading$ = new BehaviorSubject(false);\n\n this.allScenes$ = new BehaviorSubject>([]);\n\n this.internal_allScenes$.subscribe((n) => this.allScenes$.next(n));\n\n //load default scene\n const sceneAsset = new StaticAsset(\n 'https://rrwebsites.blob.core.windows.net/sdks/sample-assets-17/scenes/2D-parallax/street/',\n );\n }\n public async getScenesForCustomer(\n requestFilter: string,\n productType: PRODUCT_TYPE,\n customerId: string,\n page: number,\n pageSize: number,\n tags: string,\n signal: AbortSignal,\n inlcudeArchived: boolean = true,\n ): Promise<{ scenes: SceneDTO[]; paging: PagingData }> {\n const customerRequests = await this._requestService.getAllCustomerRequests(\n customerId,\n requestFilter,\n page,\n pageSize,\n tags,\n inlcudeArchived,\n signal,\n );\n return {\n scenes: await mapRequestsToAssets(\n PRODUCT_TYPE.SCENE,\n customerRequests.configurations,\n ),\n paging: customerRequests.paging,\n };\n }\n\n private toBlob = async (url: string): Promise => {\n const response = await this.httpClient\n .get(url, { observe: 'response', responseType: 'blob' })\n .toPromise();\n\n if (response.status !== 200) {\n const responseText =\n response.body !== null\n ? await response.body.text()\n : 'Unkown response text';\n throw new Error(\n `Failed to fetch url '${url}' for Avatar ${responseText}`,\n );\n }\n\n if (response.body === null) {\n throw new Error(`Key '${url}' for Avatar resulted in null blob content`);\n }\n return response.body;\n };\n\n public toSdkAsset = async (\n scene: WebshopScene,\n mode: ViewerMode,\n ): Promise => {\n switch (mode) {\n case ViewerMode.MODE_2D_PARALLAX:\n if (!scene.supports_2d) {\n throw new Error(`Unsupported scene mode!`);\n }\n case ViewerMode.MODE_3D:\n if (!scene.supports_3d) {\n throw new Error(`Unsupported scene mode!`);\n }\n }\n this.logger.debug(`Scene ${scene.name} to asset => `, scene);\n return createSceneAsset(scene.asset, this.httpClient, this.logger);\n };\n}\n","export const sleep = async (ms: number) => {\n return new Promise((resolve) => setTimeout(resolve, ms));\n};\n\nexport const dataURItoBlob = (dataURI: string): Blob => {\n const byteString = atob(dataURI.split(',')[1]);\n const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n const blob = new Blob([ab], { type: mimeString });\n return blob;\n};\n","import { Subject } from './Subject';\nexport class AsyncSubject extends Subject {\n constructor() {\n super(...arguments);\n this._value = null;\n this._hasValue = false;\n this._isComplete = false;\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, _hasValue, _value, thrownError, isStopped, _isComplete } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped || _isComplete) {\n _hasValue && subscriber.next(_value);\n subscriber.complete();\n }\n }\n next(value) {\n if (!this.isStopped) {\n this._value = value;\n this._hasValue = true;\n }\n }\n complete() {\n const { _hasValue, _value, _isComplete } = this;\n if (!_isComplete) {\n this._isComplete = true;\n _hasValue && super.next(_value);\n super.complete();\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { AsyncSubject, Observable, lastValueFrom } from 'rxjs';\nimport { ILogger } from '../../../logging';\n\nimport {\n IApiConfiguration,\n IAppConfiguration,\n IConfiguration,\n IConfigurationService,\n} from '../api';\nimport { sleep } from '../../utils/utilities';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigurationService implements IConfigurationService {\n private appConfiguration: AsyncSubject;\n\n private configuration: AsyncSubject;\n\n constructor(private httpClient: HttpClient, private logger: ILogger) {\n this.appConfiguration = new AsyncSubject();\n this.configuration = new AsyncSubject();\n\n this.appConfiguration.subscribe(\n (cfg) => {\n if (cfg === undefined) {\n this.logger.error(`Retreived discovery document is undefined!`);\n throw new Error(`Retreived discovery document is undefined!`);\n } else {\n this.loadApiConfiguration(0, cfg);\n }\n },\n (error) => {\n this.logger.error(\n `Failed to retreive api configuration, because the discover document wasn't found!`,\n error,\n );\n },\n );\n\n this.loadConfiguration(0);\n }\n private async loadApiConfiguration(counter: number, cfg: IAppConfiguration) {\n if (counter > 5) {\n this.configuration.error(\n new Error(\n `Failed to receive api configuration, can't start webshop application!`,\n ),\n );\n this.configuration.complete();\n return;\n }\n\n await sleep(counter * 100);\n\n this.httpClient\n .get(cfg.config, { responseType: 'json' })\n .subscribe(\n (api) => {\n this.logger.debug(`Api configuration found`, cfg);\n this.configuration.next({\n appConfiguration: cfg,\n apiConfiguration: api,\n });\n this.configuration.complete();\n },\n (error) => {\n this.logger.error(`Failed to retreive api configuration`, error);\n this.loadApiConfiguration(counter + 1, cfg);\n },\n );\n }\n\n private async loadConfiguration(counter: number) {\n if (counter > 5) {\n this.appConfiguration.error(\n new Error(\n `Failed to receive discovery document, can't start webshop application!`,\n ),\n );\n this.appConfiguration.complete();\n return;\n }\n\n await sleep(counter * 100);\n\n this.httpClient\n .get('/.well-known/app-configuration')\n .subscribe(\n (doc) => {\n this.logger.debug(`Discover document found`, doc);\n this.appConfiguration.next(doc);\n this.appConfiguration.complete();\n },\n (error) => {\n this.logger.warn(`Failed to retreive discovery document`, error);\n this.loadConfiguration(counter + 1);\n },\n );\n }\n\n public getConfiguration(): Promise {\n return lastValueFrom(this.configuration);\n }\n\n public getObservableConfiguration(): Observable {\n return this.configuration.asObservable();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { IAvatarService, IConfigurationService, ISceneService } from './api';\nimport { ConfigurationService } from './services/configuration.service';\nimport { AvatarService } from './services/avatar.service';\nimport { SceneService } from './services/scene.service';\n\n@NgModule({\n imports: [],\n providers: [\n {\n provide: IConfigurationService,\n useClass: ConfigurationService,\n },\n {\n provide: IAvatarService,\n useClass: AvatarService,\n },\n {\n provide: ISceneService,\n useClass: SceneService,\n },\n ],\n declarations: [],\n exports: [],\n bootstrap: [],\n})\nexport class DataModule {}\n\nexport {\n IGarmentService,\n IConfigurationService,\n IGarmentDetails,\n PagedGarmentResponse,\n IAvatarService,\n ISceneService,\n} from './api';\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VirtualDressingRoomComponent } from './virtual-dressing-room/virtual-dressing-room.component';\nimport { OverlaySpinnerComponent } from './components/overlay-spinner/overlay-spinner.component';\nimport { DataModule } from './data';\n\n@NgModule({\n declarations: [VirtualDressingRoomComponent, OverlaySpinnerComponent],\n exports: [VirtualDressingRoomComponent],\n imports: [CommonModule, DataModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class VirtualDressingRoomModule {}\n","class s{constructor(){this.garments=[],this.runPhysicsSimulation=!1,this.debug=!1,this.doSkinning=!1}}export{s as VirtualTryOn3DRequest};\n","import{Vector2 as t,Vector3 as e}from\"@babylonjs/core/Maths/math.vector\";class n{constructor(t,e,n,r,i){this.fitCategory=t,this.measurementName=e,this.measurementCategory=n,this.idealMeasurement=r,this.avatarMeasurement=i}}class r{generateLabelText(t,e){const n=e.fitCategory.split(/(?=[A-Z])/);if(0==n.length)return\"\";const r=n[0];if(0!=r.length){const t=r.charAt(0).toUpperCase();n[0]=t+r.substring(1)}for(let t=1;t{n?(n.x=Math.min(n.x,e.x),n.y=Math.min(n.y,e.y)):n=new t(e.x,e.y),r?(r.x=Math.max(r.x,e.x),r.y=Math.max(r.y,e.y)):r=new t(e.x,e.y)})),n&&r)return{min:n,max:r}}_calculateFreeAnchorSearchStartPosition(e,n){const r=e.min,i=e.max;switch(n){case o.Top:return new t(.5*(r.x+i.x),i.y);case o.Bottom:return new t(.5*(r.x+i.x),r.y);case o.Left:return new t(i.x,.5*(r.y+i.y));case o.Right:return new t(r.x,.5*(r.y+i.y));case o.Center:return new t(.5*(r.x+i.x),.5*(r.y+i.y));default:return new t(0,0)}}_checkCollision(t,e,n){if(n==o.Center)return!1;const r={min:0,max:0};let i=0,s=!1;switch(n){case o.Left:r.min=e.min.y,r.max=e.max.y,i=t.y,s=t.xe.min.x;break;case o.Top:r.min=e.min.x,r.max=e.max.x,i=t.x,s=t.ye.min.y}return!!s&&(r.mini)}_boundingBoxSurroundingIsFree(t,e,n){let r=!1;for(const i of t){if(i[1]==e)continue;const t=this._calculateFreeAnchorSearchStartPosition(e,n);if(this._checkCollision(t,i[1],n)){r=!0;break}}return!r}_checkAndAddFreeAnchorPosition(t,e,n,r){this._boundingBoxSurroundingIsFree(t,e,n)&&r.push(n)}_calculateFreeAnchorPositions(t){const e=new Map;for(const n of t){const r=new Array;this._checkAndAddFreeAnchorPosition(t,n[1],o.Left,r),this._checkAndAddFreeAnchorPosition(t,n[1],o.Right,r),this._checkAndAddFreeAnchorPosition(t,n[1],o.Bottom,r),this._checkAndAddFreeAnchorPosition(t,n[1],o.Top,r),this._checkAndAddFreeAnchorPosition(t,n[1],o.Center,r),e.set(n[0],r)}return e}_invertAnchorPositionSide(t){switch(t){case o.Top:return o.Bottom;case o.Bottom:return o.Top;case o.Right:return o.Left;case o.Left:return o.Right;default:return t}}_isVerticallyAligned(t){return t==o.Top||t==o.Bottom}_isHorizontallyAligned(t){return t==o.Left||t==o.Right}_getSortAnchorPositionsIndex(t){return this._isHorizontallyAligned(t)?0:this._isVerticallyAligned(t)?1:2}_pickFirstAnchorPosition(t){return 0!=t.length?t[0]:o.Center}_sortPositionAnchorPositionsForAlternating(t,e){const n=new Array;for(const e of t)n.push(e);return n.sort(((t,n)=>{const r=this._pickFirstAnchorPosition(t[1]),i=this._pickFirstAnchorPosition(n[1]),o=this._getSortAnchorPositionsIndex(r),s=this._getSortAnchorPositionsIndex(i);if(o!=s)return o>s?1:-1;const a=e.get(t[0]),h=e.get(n[0]);if(!a||!h)return 0;let c=0,l=0;return this._isVerticallyAligned(r)?c=.5*(a.min.x+a.max.x):this._isHorizontallyAligned(r)&&(c=.5*(a.min.y+a.max.y)),this._isVerticallyAligned(i)?l=.5*(h.min.x+h.max.x):this._isHorizontallyAligned(i)&&(l=.5*(h.min.y+h.max.y)),c!=l?c>l?1:-1:0})),n}_fixOverlaps(e,n,r,i){var s,a;const h=new Map,c=document.createElement(\"div\");c.style.position=\"absolute\",e.webViewer.pictofitWebHtmlElement.divContainer.appendChild(c);for(const t of n){const n=this.createLabel(e,t[0]),r=n.parentNode;let i=0;r&&(i=Array.from(r.childNodes).indexOf(n)),c.append(n),h.set(t[0],{width:n.offsetWidth,height:n.offsetHeight}),r?i>=r.childNodes.length?r.append(n):r.insertBefore(n,r.childNodes[i]):c.removeChild(n)}c.remove();const l=(e,n)=>{var r,s;const a=null!==(r=h.get(e))&&void 0!==r?r:{width:0,height:0},c=null!==(s=i.get(e))&&void 0!==s?s:{min:t.Zero(),max:t.Zero()},l=this._calculateFreeAnchorSearchStartPosition(c,n),m={min:t.Zero(),max:t.Zero()};return m.min.x=l.x-a.width/2,m.min.y=l.y-a.height/2,this._isVerticallyAligned(n)?n==o.Top?m.min.y=l.y:m.min.y=l.y-a.height:this._isHorizontallyAligned(n)&&(n==o.Left?m.min.x=l.x:m.min.x=l.x-a.width),m.max.x=m.min.x+a.width,m.max.y=m.min.y+a.height,m},m=(t,e)=>{let n=0,r=0;return Math.sign(t.max.x-e.min.x)==Math.sign(t.min.x-e.max.x)&&(n=Math.min(Math.abs(t.max.x-e.min.x),Math.abs(t.min.x-e.max.x))),Math.sign(t.max.y-e.min.y)==Math.sign(t.min.y-e.max.y)&&(r=Math.min(Math.abs(t.max.y-e.min.y),Math.abs(t.min.y-e.max.y))),Math.sqrt(n*n+r*r)},u=(t,e)=>{var i;let s;const a=n[t][0],h=l(a,e);for(let e=0;e{const e=n[t];let r,i=o.Center;for(const n of e[1]){const e=u(t,n);(null==r||ri.distance?r.set(e,n.anchorPosition):r.set(h,i.anchorPosition)}}}}_pickFreeAnchorPositions(t,e,n){const r=this._sortPositionAnchorPositionsForAlternating(e,n),i=(t,e)=>{const n=this._invertAnchorPositionSide(e);return t.findIndex((t=>t==n))<0?e:n},o=t=>{let e,n=0;const o=new Map;for(const s of r){let r=this._pickFirstAnchorPosition(s[1]);if(t&&(r=i(s[1],r)),r==e){const t=i(s[1],r);t==r&&n++,r=t}o.set(s[0],r),e=r}return{positions:o,numCollisions:n}},s=o(!1),a=o(!0),h=a.numCollisions>s.numCollisions?s.positions:a.positions;return this._fixOverlaps(t,r,h,n),h}_closestPositionOnSegment(e,n,r){const i=n.subtract(e),o=i.lengthSquared();if(o<.001)return{position:e,t:0};const s=t.Dot(r.subtract(e),i)/o,a=Math.min(Math.max(s,0),1);return{position:e.multiply(new t(1-a,1-a)).add(n.multiply(new t(a,a))),t:a}}_calculateMeasurementPositionIndex(e,n,r){let i=0;if(0!=n.length)if(r==o.Center){let t=n[0].z;n.forEach(((e,n)=>{e.zc&&(r=c,i=o+h.t):(r=c,i=o+h.t)}}return i}_calculatePositioningData(t,e,n,r){var i;const s=new Map,a=this._pickFreeAnchorPositions(t,n,r);for(const t of e){const e={measurementPositionIndex:0,anchorPosition:o.Center},n=null!==(i=a.get(t[0]))&&void 0!==i?i:o.Center,h=r.get(t[0]);if(h){const r=this._calculateFreeAnchorSearchStartPosition(h,n);e.anchorPosition=n,e.measurementPositionIndex=this._calculateMeasurementPositionIndex(r,t[1],n)}s.set(t[0],e)}return s}updateLabelPlacement(t,e){if(0!=this._measurementLabelPositioningData.size)return;const n=new Map;e.forEach(((t,e)=>{const r=this._calculateBoundingBox(t);r&&n.set(e,r)}));const r=this._calculateFreeAnchorPositions(n);this._measurementLabelPositioningData=this._calculatePositioningData(t,e,r,n)}getLabelAnchorPoint(e,n){const r=this._measurementLabelPositioningData.get(n),i=this._measurementLabels.get(n);if(!r||!i)return new t(0,0);const s={min:new t(0,0),max:new t(i.offsetWidth,i.offsetHeight)},a=this._invertAnchorPositionSide(r.anchorPosition),h=new t(0,0);switch(r.anchorPosition){case o.Top:h.y=-5;break;case o.Bottom:h.y=5;break;case o.Left:h.x=-5;break;case o.Right:h.x=5}const c=this._calculateFreeAnchorSearchStartPosition(s,a);return c.addInPlace(h),c}getLabelMeasurementPositionIndex(t,e){const n=this._measurementLabelPositioningData.get(e);return n?n.measurementPositionIndex:0}get shouldRecreateLabels(){return!1}createLabel(t,e){const n=this._measurementLabels.get(e);if(n)return n;const r=this._labelFactory.createLabel(t,e);return this._measurementLabels.set(e,r),r}renderMeasurementPaths(t,e,n){this._measurementPathRenderer.renderMeasurementPaths(t,e,n)}}class a{constructor(){this._measurementPathFrontSideAlpha=1,this._measurementPathBackSideAlpha=.4}get measurementPathFrontSideAlpha(){return this._measurementPathFrontSideAlpha}set measurementPathFrontSideAlpha(t){this._measurementPathFrontSideAlpha=t}get measurementPathBackSideAlpha(){return this._measurementPathBackSideAlpha}set measurementPathBackSideAlpha(t){this._measurementPathBackSideAlpha=t}_calculateCircumferenceNormal(t){if(t.length<3)return new e(0,1,0);const n=t[0],r=t[Math.round(1*t.length/3)],i=t[Math.round(2*t.length/3)];return n.subtract(r).cross(n.subtract(i)).normalize()}_splitMeasurementPath(t){if(0==t.length)return{front:t,back:t};const n=this._calculateCircumferenceNormal(t).cross(new e(0,0,1));let r=e.Dot(n,t[0]),i=0,o=r,s=0;for(let a=0;ao&&(s=a,o=c)}const a=t[s].z>t[(s+1)%t.length].z,h=a?s:i,c=a?i:s,l=new Array,m=new Array,u=h>c,d=u?h:c,x=u?l:m,g=u?c:h,f=u?m:l;for(let e=g;e<=d;e++)f.push(t[e]);for(let e=d;e{n.lineWidth=3,n.strokeStyle=\"rgba(255, 255, 255, \"+this._measurementPathFrontSideAlpha.toString()+\")\",n.shadowColor=\"rgba(0, 0, 0, 0.5)\",n.shadowBlur=7,n.shadowOffsetX=2,n.shadowOffsetY=2},i=()=>{n.lineWidth=3,n.strokeStyle=\"rgba(255, 255, 255, \"+this._measurementPathBackSideAlpha.toString()+\")\",n.shadowColor=\"rgba(0, 0, 0, 0.5)\",n.shadowBlur=7,n.shadowOffsetX=2,n.shadowOffsetY=2};n.setLineDash([10,5]);for(const t of e){const e=t[1];if(\"circumference\"==t[0].measurementCategory){const t=this._splitMeasurementPath(e);i(),this._drawLine(t.back,n),r(),this._drawLine(t.front,n)}else r(),this._drawLine(e,n)}}}export{i as DefaultMeasurementLabelFactory,r as DefaultMeasurementLabelTextComposer,a as DefaultMeasurementPathRenderer,s as DefaultSizeVisualization,n as MeasurementLabelInfo};\n","var n;!function(n){n.UNKNOWN=\"unknown\",n.LENGTH=\"length\",n.CIRCUMFERENCE=\"circumference\"}(n||(n={}));export{n as MeasurementCategory};\n","import { Plane } from \"../../Maths/math.plane.js\";\nimport { RenderTargetTexture } from \"../../Materials/Textures/renderTargetTexture.js\";\n/**\n * Creates a refraction texture used by refraction channel of the standard material.\n * It is like a mirror but to see through a material.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#refractiontexture\n */\nexport class RefractionTexture extends RenderTargetTexture {\n /**\n * Creates a refraction texture used by refraction channel of the standard material.\n * It is like a mirror but to see through a material.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#refraction\n * @param name Define the texture name\n * @param size Define the size of the underlying texture\n * @param scene Define the scene the refraction belongs to\n * @param generateMipMaps Define if we need to generate mips level for the refraction\n */\n constructor(name, size, scene, generateMipMaps) {\n super(name, size, scene, generateMipMaps, true);\n /**\n * Define the reflection plane we want to use. The refractionPlane is usually set to the constructed refractor.\n * It is possible to directly set the refractionPlane by directly using a Plane(a, b, c, d) where a, b and c give the plane normal vector (a, b, c) and d is a scalar displacement from the refractionPlane to the origin. However in all but the very simplest of situations it is more straight forward to set it to the refractor as stated in the doc.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#refraction\n */\n this.refractionPlane = new Plane(0, 1, 0, 1);\n /**\n * Define how deep under the surface we should see.\n */\n this.depth = 2.0;\n this.onBeforeRenderObservable.add(() => {\n this.getScene().clipPlane = this.refractionPlane;\n });\n this.onAfterRenderObservable.add(() => {\n this.getScene().clipPlane = null;\n });\n }\n /**\n * Clone the refraction texture.\n * @returns the cloned texture\n */\n clone() {\n const scene = this.getScene();\n if (!scene) {\n return this;\n }\n const textureSize = this.getSize();\n const newTexture = new RefractionTexture(this.name, textureSize.width, scene, this._generateMipMaps);\n // Base texture\n newTexture.hasAlpha = this.hasAlpha;\n newTexture.level = this.level;\n // Refraction Texture\n newTexture.refractionPlane = this.refractionPlane.clone();\n if (this.renderList) {\n newTexture.renderList = this.renderList.slice(0);\n }\n newTexture.depth = this.depth;\n return newTexture;\n }\n /**\n * Serialize the texture to a JSON representation you could use in Parse later on\n * @returns the serialized JSON representation\n */\n serialize() {\n if (!this.name) {\n return null;\n }\n const serializationObject = super.serialize();\n serializationObject.mirrorPlane = this.refractionPlane.asArray();\n serializationObject.depth = this.depth;\n return serializationObject;\n }\n}\n","import{__awaiter as e}from\"tslib\";import{v4 as t}from\"uuid\";import{VirtualDressingRoom as i,VDRFocusArea as a,VDRRotationMode as n,VDRRotationOrientation as s}from\"./IVirtualDressingRoom.js\";import{TransformNode as o}from\"@babylonjs/core/Meshes/transformNode\";import{StandardMaterial as r}from\"@babylonjs/core/Materials/standardMaterial\";import{Color3 as l}from\"@babylonjs/core/Maths/math.color\";import{ArcRotateCamera as c}from\"@babylonjs/core/Cameras/arcRotateCamera\";import{Tools as d}from\"@babylonjs/core/Misc/tools\";import{Animation as h}from\"@babylonjs/core/Animations/animation\";import{PlaneRotationGizmo as u}from\"@babylonjs/core/Gizmos/planeRotationGizmo\";import{BezierCurveEase as m}from\"@babylonjs/core/Animations/easing\";import{SizeVisualisationRequest as f}from\"../../ComputeServer/Data/SizeRecommendation/SizeRecommendationRequest.js\";import{JSONScene as _}from\"../../Data/JSONScene.js\";import{Constants as p,RenderHelper as v}from\"../../Rendering/RenderHelper.js\";import{TargetCameraNodeMetadata as w}from\"../../SceneConfiguration/Parser/V2/TargetCameraNode.js\";import{LockedArray as g}from\"../../Util/Util.js\";import{Vector2 as b,Vector3 as y,Matrix as V}from\"@babylonjs/core/Maths/math.vector\";import{AvatarPlaceholderNodeMetadata as I}from\"../../SceneConfiguration/Parser/V2/AvatarPlaceholderNode.js\";import{Camera as S}from\"@babylonjs/core/Cameras/camera\";import{Viewport as C}from\"@babylonjs/core/Maths/math.viewport\";import{VertexBuffer as R}from\"@babylonjs/core/Buffers/buffer\";import{DefaultSizeVisualization as M,MeasurementLabelInfo as O}from\"../../Rendering/UI/SizeVisualizationConfig.js\";import{CameraROI as A}from\"../../CanvasOverlayMargins.js\";import{MeasurementCategory as N}from\"../../ComputeServer/Data/SizeRecommendation/MeasurementCategory.js\";import{Animation as L}from\"../../Data/Animation.js\";import{MeshFormat as G}from\"../../ComputeServer/Data/MeshData.js\";import{GarmentGroupID as z}from\"../../Data/GarmentGroup.js\";import{SceneNode as D}from\"../../SceneConfiguration/Parser/V2/SceneNode.js\";import{AccessoryStack as P}from\"./AccessoryStack.js\";import{Accessory as x}from\"../../Data/IAccessory.js\";import{RRArcRotateCamera as T}from\"../../Rendering/Camera/RRArcRotateCamera.js\";import{MeshBuilder as E}from\"@babylonjs/core/Meshes/meshBuilder\";var k;!function(e){e[e.TopCenter=1]=\"TopCenter\",e[e.TopLeft=2]=\"TopLeft\",e[e.LeftCenter=3]=\"LeftCenter\",e[e.BottomLeft=4]=\"BottomLeft\",e[e.BottomCenter=5]=\"BottomCenter\",e[e.BottomRight=6]=\"BottomRight\",e[e.RightCenter=7]=\"RightCenter\",e[e.TopRight=8]=\"TopRight\"}(k||(k={}));class B{constructor(e,t,i,a){this._interpolationFactor=0,this._webViewer=e,this._cameraROITarget=t.clone(),this._cameraROISrc=t.clone(),this._cameraROIDst=i.clone(),this._callback=a}set interpolationFactor(e){this._cameraROITarget.aspectRatio=this._cameraROISrc.aspectRatio*e+this._cameraROIDst.aspectRatio*(1-e),this._cameraROITarget.bottomMargin=this._cameraROISrc.bottomMargin*e+this._cameraROIDst.bottomMargin*(1-e),this._cameraROITarget.topMargin=this._cameraROISrc.topMargin*e+this._cameraROIDst.topMargin*(1-e),this._interpolationFactor=e,this._callback(this._cameraROITarget)}get interpolationFactor(){return this._interpolationFactor}animate(){return e(this,void 0,void 0,(function*(){return new Promise((e=>{const t=Math.min(10,1/.75),i=new h(\"focusGarmentAnimation\",\"interpolationFactor\",2,h.ANIMATIONTYPE_FLOAT,h.ANIMATIONLOOPMODE_CONSTANT),a=[{frame:0,value:1},{frame:2,value:0}];i.setKeys(a);const n=new m(.5,0,.5,1);i.setEasingFunction(n),this._webViewer.dirtyMonitor.continuousRendering=!0,this._webViewer.scene.beginDirectAnimation(this,[i],0,2,!1,t,(()=>{this._webViewer.dirtyMonitor.continuousRendering=!1,e()}))}))}))}}class F extends i{constructor(e,t){super(e,t),this._tryOnDeformedAvatar=null,this._avatarPlaceholderNode=null,this._sceneLoadedInScene=null,this._avatarLoadedInScene=null,this._fittedGarmentsLoadedInScene=[],this._sizeVisualizationParentNode=null,this._sizeVisualizationRender2DObserver=null,this._sizeVisualizationMeasurementLabelDivs=new Map,this._sizeVisualizationShouldRecreateLabels=!1,this._garmentInfoDotsUpdatedCallback=void 0,this._tryOnFinishedPromises=[],this._shouldOptimizeMeasurementPositions=!1,this._accessoryStack=null,this._focusGarmentCameraROICurrent=null,this._focusGarmentCameraROIOriginal=null,this._focusGarmentCameraROIAnimationHandler=null,this._focusGarmentAccessoryStackWasVisible=!1,this._resizeObserver=null,this._pointerValid=!1,this._pointerDownPos=b.Zero(),this.registerResizeObserver(),this.registerLowPerformanceObserver(),this.registerWebGLContextLostObserver()}registerResizeObserver(){this._resizeObserver=this._webViewer.onResizeObservable.add((()=>{this.updateGarmentInfoDots()}))}registerLowPerformanceObserver(){this._resizeObserver=this._webViewer.performanceMonitor.onLowPerformanceObservable.add((()=>{var e,t;null===(e=this.animation)||void 0===e||e.pause(),null===(t=this.animation)||void 0===t||t.reset(),this.webViewer.smartRenderModeEnabled=!0,this.webViewer.performanceMonitor.resetHardwareScalingLevel()}))}registerWebGLContextLostObserver(){const e=()=>{console.log(\"cleanupBabylonScene()\");for(let e=this._webViewer.scene.transformNodes.length-1;e>=0;e--){const t=this._webViewer.scene.transformNodes[e];try{console.log(\"cleanupBabylonScene - disposing transform node\",t.name),t.dispose(!1,!0)}catch(e){console.error(e),this._webViewer.scene.removeTransformNode(t)}}for(let e=this._webViewer.scene.meshes.length-1;e>=0;e--){const t=this._webViewer.scene.meshes[e];try{console.log(\"cleanupBabylonScene - disposing mesh\",t.name),t.dispose(!1,!0)}catch(e){console.error(e),this._webViewer.scene.removeMesh(t)}}for(let e=this._webViewer.scene.materials.length-1;e>=0;e--){const t=this._webViewer.scene.materials[e];try{console.log(\"cleanupBabylonScene - disposing material\",t.name),t.dispose(!1,!0)}catch(e){console.error(e),this._webViewer.scene.removeMaterial(t)}}for(let e=this._webViewer.scene.lights.length-1;e>=0;e--){const t=this._webViewer.scene.lights[e];try{console.log(\"cleanupBabylonScene - disposing light\",t.name),t.dispose(!1,!0)}catch(e){console.error(e),this._webViewer.scene.removeLight(t)}}for(let e=this._webViewer.scene.skeletons.length-1;e>=0;e--){const t=this._webViewer.scene.skeletons[e];try{console.log(\"cleanupBabylonScene - disposing skeleton\",t.name),t.dispose()}catch(e){console.error(e),this._webViewer.scene.removeSkeleton(t)}}for(let e=this._webViewer.scene.animationGroups.length-1;e>=0;e--){const t=this._webViewer.scene.animationGroups[e];try{console.log(\"cleanupBabylonScene - disposing animation group\",t.name),t.dispose()}catch(e){console.error(e),this._webViewer.scene.removeAnimationGroup(t)}}for(let e=this._webViewer.scene.textures.length-1;e>=0;e--){const t=this._webViewer.scene.textures[e];if(\"data:EnvironmentBRDFTexture0\"!=t.name)try{console.log(\"cleanupBabylonScene - disposing texture\",t.name),t.dispose()}catch(e){console.error(e),this._webViewer.scene.removeTexture(t)}}};this._webViewer.engine.onContextLostObservable.add((()=>{var t,i;console.warn(\"WebGL context lost - disable rendering!\"),null===(i=null===(t=this._accessoryStack)||void 0===t?void 0:t.rootNode)||void 0===i||i.dispose(!1,!0),this._accessoryStack=null;let a=!1;const n=()=>{console.log(`WebGLContextLost cleanupLoop - inCleanup: ${a}`),a||(a=!0,this.cleanup().then((()=>{this._webViewer.doRender=!1,console.log(\"WebGLContextLost - cleanup done\"),e(),a=!1})).catch((t=>{console.log(\"WebGLContextLost - cleanup error, try again\",t);try{this._webViewer.scene.render()}catch(e){console.error(e)}e(),a=!1,setTimeout(n,100)})))};n()})),this._webViewer.engine.onContextRestoredObservable.add((()=>{console.warn(\"WebGL context restored - reenable rendering!\"),e(),this._webViewer.doRender=!0,this._sceneNeedsVisualUpdate=!0,this._avatarNeedsVisualUpdate=!0,this._animationNeedsVisualUpdate=!0,this._garmentsNeedVisualUpdate=!0,this._accessoriesNeedVisualUpdate=!0;let t=!1;const i=()=>{console.log(`WebGLContextRestored refreshLoop - inRefresh: ${t}`),t||(t=!0,this.refresh().then((()=>{console.log(\"WebGLContextRestored - refresh done\"),t=!1})).catch((e=>{console.log(\"WebGLContextRestored - refresh error, try again\",e);try{this._webViewer.scene.render()}catch(e){console.error(e)}t=!1,setTimeout(i,100)})))};this.cleanup().finally((()=>{i()}))}))}updateGarmentInfoDots(){return e(this,void 0,void 0,(function*(){const t=this._tryOnFinishedPromises;Promise.all(t).then((()=>e(this,void 0,void 0,(function*(){if(this._garmentInfoDotsUpdatedCallback&&t===this._tryOnFinishedPromises){this._tryOnFinishedPromises=[];const e=yield this.computeGarmentInfoDotLocations();this._garmentInfoDotsUpdatedCallback(e)}}))))}))}createAnimation(t){return e(this,void 0,void 0,(function*(){return new L(t)}))}createAccessory(t,i){return e(this,void 0,void 0,(function*(){const e=yield this.createGarment(t);return new x(e,i)}))}set garmentInfoDotsUpdatedCallback(e){this._garmentInfoDotsUpdatedCallback=e}set clickCallback(e){if(!e)return this._webViewer.scene.onPointerDown=void 0,this._webViewer.scene.onPointerMove=void 0,void(this._webViewer.scene.onPointerPick=void 0);this._webViewer.scene.onPointerDown=e=>{this._pointerValid=!0,this._pointerDownPos=new b(e.clientX,e.clientY)},this._webViewer.scene.onPointerMove=e=>{this._pointerValid&&this._pointerDownPos.subtract(new b(e.clientX,e.clientY)).length()>10&&(this._pointerValid=!1)},this._webViewer.scene.onPointerPick=(t,i)=>{var a;if(this._pointerValid){if(i.pickedMesh&&i.ray){const t=this._webViewer.scene.multiPickWithRay(i.ray);if(t){let i=null,a=-1;for(const e of t){if(!e.hit||!e.pickedMesh)continue;if(e.pickedMesh.renderingGroupId!=p.AVATAR_RENDERING_GROUP_ID)continue;const t=e.pickedMesh.metadata;t>a&&(i=e,a=t)}if(i&&i.pickedMesh){if(this._avatarLoadedInScene&&i.pickedMesh.name.includes(this._avatarLoadedInScene.uuid))return void e({type:\"Avatar\"});for(let t=0;te(this,void 0,void 0,(function*(){this._tryOnFinishedPromises=[],this._garments instanceof g&&(this._garmentsNeedVisualUpdate=this._garmentsNeedVisualUpdate||this._garments.dirty,this._garments.resetDirtyFlag()),this._webViewer.registerLayout(this._layoutID),this.emit(\"loading\"),this._webViewer.dirtyMonitor.continuousRendering=!0;const e=this._garmentInfoDotsUpdatedCallback&&(this._sceneNeedsVisualUpdate||this._avatarNeedsVisualUpdate||this._garmentsNeedVisualUpdate||this._accessoriesNeedVisualUpdate||this._focusGarmentNeedsVisualUpdate);yield this.updateScene(),yield this.updateAvatar(),yield this.updateGarments(),yield this.updateFocusGarment(),yield this.updateAnimation(),yield this.updateAccessories(),this._webViewer.dirtyMonitor.continuousRendering=!1,this.emit(\"loaded\"),e?yield this.updateGarmentInfoDots():this._tryOnFinishedPromises=[]}))),3e4)}))}updateAccessories(){var t;return e(this,void 0,void 0,(function*(){this._accessoriesNeedVisualUpdate&&(yield null===(t=this._accessoryStack)||void 0===t?void 0:t.update(this._accessories,(()=>{this._garmentInfoDotsUpdatedCallback&&this._garmentInfoDotsUpdatedCallback([])})),this._accessoriesNeedVisualUpdate=!1)}))}setAccessoryStackVisible(t){return e(this,void 0,void 0,(function*(){yield this._setAccessoryStackVisibleInternal(t,!0)}))}_setAccessoryStackVisibleInternal(t,i=!0){var a;return e(this,void 0,void 0,(function*(){yield null===(a=this._accessoryStack)||void 0===a?void 0:a.showAccessoryStack(t,(()=>{this._garmentInfoDotsUpdatedCallback&&this._garmentInfoDotsUpdatedCallback([])})),i&&(yield this.updateGarmentInfoDots())}))}getAccessoryStackVisible(){var e,t,i;return null!==(i=null===(t=null===(e=this._accessoryStack)||void 0===e?void 0:e.rootNode)||void 0===t?void 0:t.isEnabled())&&void 0!==i&&i}highlightAccessorySlotForPosition(e){var t;null===(t=this._accessoryStack)||void 0===t||t.highlightAccessorySlot(e)}enableSizeVisualisation(t,i){return e(this,void 0,void 0,(function*(){return this.enableSizeVisualisationImpl(t,i,void 0)}))}enableSizeVisualisationImpl(t,i,a){return e(this,void 0,void 0,(function*(){return this.verifyNoAsyncOperationInProgress(),yield this._asyncFunctionMutex.dispatch((()=>e(this,void 0,void 0,(function*(){var e,n;if(!this._garments)throw this.emit(\"error\",new Error(\"At least the one garment used for size visualisation must be part of the dressing room!\"));if(!this._fittedGarmentsLoadedInScene)throw this.emit(\"error\",new Error(\"There must be at least one fitted garment in the dressing room before the size visualisation can be enabled!\"));const s=this._fittedGarmentsLoadedInScene.find((e=>e.garmentOriginal.uuid===t.uuid));if(!s)throw this.emit(\"error\",new Error(\"The garments registered for the size visualisation are not part of the garments that are currently fitted & in the dressing room!\"));if(!s.isVisualisationCreated())throw this.emit(\"error\",new Error(\"The provided garment does not contain a valid mesh. Did you compute a tryon before?\"));const o=this._tryOnDeformedAvatar?this._tryOnDeformedAvatar:this._avatar;if(!o)throw this.emit(\"error\",new Error(\"An avatar must be set to compute a size visualisation!\"));this._webViewer.dirtyMonitor.continuousRendering=!0;let r=new f;i&&(r=Object.assign(r,i)),r.fittedGarment=s,r.avatar=o,r.metricLabels=a;const l=yield this.requestSizeVisualisation(r);return yield this._disableSizeVisualisation(),null===(e=this._animation)||void 0===e||e.pause(),null===(n=this._animation)||void 0===n||n.reset(),yield this.createSizeVisualisationNew(s,l,i),this._webViewer.dirtyMonitor.continuousRendering=!1,l}))))}))}getSizeVisualizationFacetSortingEnabled(){return!0}createSizeVisualisationNew(t,i,a){return e(this,void 0,void 0,(function*(){const e=new Array,n=(null==a?void 0:a.sizeVisualization)?a.sizeVisualization:new M,s=this._webViewer.pictofitWebHtmlElement;this._sizeVisualizationParentNode=new o(\"Measurements\",this._webViewer.scene),this._sizeVisualizationParentNode.parent=t.rootNode;for(const t in i.fitInformation){const a=i.fitInformation[t],n=a.measurementPaths,o=new Array,r=0!=n.length?n[0]:[];for(const e of r)o.push(new y(-e[0],e[1],e[2]));if(0==r.length)continue;const l=new O(a.fitCategory,t,a.measurementCategory,a.idealMeasurement,a.avatarMeasurement),c=document.createElement(\"div\");this._sizeVisualizationMeasurementLabelDivs.set(l,c),s.divContainer.appendChild(c),c.style.position=\"absolute\",e.push({labelInfo:l,measurementPositionsBackup:o,measurementPositions:o,labelDiv:c})}const r=this._webViewer.scene.onBeforeRenderObservable.add((()=>{const t=this._webViewer.canvas2D,i=this._webViewer.scene.activeCamera;if(t instanceof HTMLCanvasElement&&i instanceof S){t.width=s.clientWidth,t.height=s.clientHeight;const i=this._calculate2DMeasurementPaths(e);n.updateLabelPlacement(this,i);const a=t.getContext(\"2d\");if(a instanceof CanvasRenderingContext2D){if(a.clearRect(0,0,t.width,t.height),this._sizeVisualizationRender2DObserver!=r)return;if(this._sizeVisualizationShouldRecreateLabels||n.shouldRecreateLabels){this._sizeVisualizationShouldRecreateLabels=!1;for(const t of e){const e=this._sizeVisualizationMeasurementLabelDivs.get(t.labelInfo);if(e){const i=e.childNodes;for(const e of i)e.remove();const a=n.createLabel(this,t.labelInfo);e.append(a)}}}n.renderMeasurementPaths(this,i,a);for(const t of e){const e=i.get(t.labelInfo);if(e){let i=0;const a=n.getLabelMeasurementPositionIndex(this,t.labelInfo),s=new b(0,0);for(const t of e){let n=i;0==n&&a>1&&(n=e.length);const o=Math.max(0,1-Math.abs(n-a));s.x+=o*t.x,s.y+=o*t.y,i++}const o=n.getLabelAnchorPoint(this,t.labelInfo),r=new b(s.x-o.x,s.y-o.y);this._clampLabelPositionToFitInsideCanvas(r,t),t.labelDiv.style.left=r.x.toString()+\"px\",t.labelDiv.style.top=r.y.toString()+\"px\"}}}}}));this._sizeVisualizationRender2DObserver=r,this._sizeVisualizationShouldRecreateLabels=!0,this._shouldOptimizeMeasurementPositions=!0}))}_clampLabelPositionToFitInsideCanvas(e,t){const i=this._webViewer.canvas2D.clientWidth,a=this._webViewer.canvas2D.clientHeight,n=this._webViewer.canvasOverlayMargins,s=i*n.leftMargin+3,o=i*(1-n.rightMargin)-3,r=a*n.topMargin+3,l=a*(1-n.bottomMargin)-3;e.x=Math.max(e.x,s),e.y=Math.max(e.y,r),e.x=Math.min(e.x,o-t.labelDiv.offsetWidth),e.y=Math.min(e.y,l-t.labelDiv.offsetHeight)}_calculateEllipseNormal(e){if(e.length<3)return new y(0,0,1);const t=e[0],i=e[Math.round(1*e.length/3)],a=e[Math.round(2*e.length/3)],n=y.Cross(i.subtract(t),a.subtract(t));return n.normalize(),n}_calculateEllipseCenter(e){const t=y.Zero();for(const i of e)t.addInPlace(i);return t.divideInPlace(new y(e.length,e.length,e.length)),t}_optimizeMeasurementPositions(e){var t,i;if(e.measurementPositions=e.measurementPositionsBackup,e.labelInfo.measurementCategory!=N.CIRCUMFERENCE)return;const a=this._calculateEllipseNormal(e.measurementPositionsBackup),n=this._calculateEllipseCenter(e.measurementPositionsBackup),s=null===(t=this._sizeVisualizationParentNode)||void 0===t?void 0:t.getWorldMatrix();if(!s)return;const o=y.TransformNormal(a,s),r=y.TransformCoordinates(n,s),l=null===(i=this._webViewer.scene.activeCamera)||void 0===i?void 0:i.position;if(!l)return;const c=r.subtract(l);c.normalize();const d=y.Dot(c,o),h=y.Cross(c,o),u=Math.atan2(h.length(),d),m=180*u/Math.PI;if(Math.abs(Math.abs(m)-90)>5)return;const f=(u>0?95:-95)*Math.PI/180-u,_=s.clone();_.invert();const p=y.TransformNormal(c,_),v=y.Cross(p,a);v.normalize();const w=V.RotationAxis(v,f),g=V.Translation(-n.x,-n.y,-n.z),b=V.Translation(n.x,n.y,n.z),I=g.multiply(w).multiply(b),S=new Array;for(const t of e.measurementPositionsBackup)S.push(y.TransformCoordinates(t,I));e.measurementPositions=S}_calculate2DMeasurementPaths(e){var t,i;const a=new Map,n=this._webViewer.pictofitWebHtmlElement,s=null!==(i=null===(t=this._webViewer.scene.activeCamera)||void 0===t?void 0:t.viewport.clone())&&void 0!==i?i:new C(0,0,1,1);s.y=1-s.height-s.y;const o=s.toGlobal(n.divContainer.clientWidth,n.divContainer.clientHeight);if(this._shouldOptimizeMeasurementPositions){for(const t of e)this._optimizeMeasurementPositions(t);this._shouldOptimizeMeasurementPositions=!1}for(const t of e){const e=new Array;for(const i of t.measurementPositions){const t=this._calculateMeasurementScreenPosition(o,i);e.push(t)}a.set(t.labelInfo,e)}return a}_calculateMeasurementScreenPosition(e,t){var i,a;return y.Project(t,null!==(a=null===(i=this._sizeVisualizationParentNode)||void 0===i?void 0:i.getWorldMatrix())&&void 0!==a?a:V.Identity(),this._webViewer.scene.getTransformMatrix(),e)}createSizeVisualizationMaterial(e,t,i){const a=new r(e,this._webViewer.scene);return a.diffuseColor=l.Black(),a.specularColor=l.Black(),a.emissiveColor=l.White(),a.forceDepthWrite=!0,a.backFaceCulling=!1,a}disableSizeVisualisation(){return e(this,void 0,void 0,(function*(){return this.verifyNoAsyncOperationInProgress(),yield this._asyncFunctionMutex.dispatch((()=>e(this,void 0,void 0,(function*(){var e;this._webViewer.dirtyMonitor.continuousRendering=!0,yield this._disableSizeVisualisation(),(yield this.doAssetsHaveSkinningInfo())&&(null===(e=this._animation)||void 0===e||e.play()),this._webViewer.dirtyMonitor.continuousRendering=!1}))))}))}cleanup(){return e(this,void 0,void 0,(function*(){return this.verifyNoAsyncOperationInProgress(),yield this._asyncFunctionMutex.dispatch((()=>e(this,void 0,void 0,(function*(){var e;this._webViewer.dirtyMonitor.continuousRendering=!0,yield this._disableSizeVisualisation(),yield this.cleanupStandaloneGarments(),yield this.cleanupLoadedFittedGarments(),yield this.cleanupLoadedAvatars(),yield this.cleanupLoadedScene(),yield null===(e=this._avatar)||void 0===e?void 0:e.destroyVisualisation(),this._webViewer.dirtyMonitor.continuousRendering=!1,this._webViewer.smartRenderModeEnabled=!0,this._webViewer.unregisterLayout(this._layoutID)}))))}))}attachAvatarToPlaceholder(e){var t;if(e){if(e.rootNode&&this._avatarPlaceholderNode){e.attachToNode(this._avatarPlaceholderNode);let t=1;if(this._avatarPlaceholderNode.metadata instanceof I){const i=e.avatarHeight;i&&(t=this._avatarPlaceholderNode.metadata.avatarHeight/i)}e.rootNode.scaling=new y(t,t,t)}null===(t=this._accessoryStack)||void 0===t||t.updatePlacement(e)}}createAccessoryStack(){this._accessoryStack||(this._accessoryStack=new P,this._accessoryStack.createVisualization(this._webViewer)),this._accessoryStack.attachToNode(this._avatarPlaceholderNode)}updateScene(){var t,i,a,n,s,o,r,l,c;return e(this,void 0,void 0,(function*(){if(!this._sceneNeedsVisualUpdate)return;const e=this._tryOnDeformedAvatar?this._tryOnDeformedAvatar:this._avatar;if(this._scene){this.tmpRenameLoadedSceneElements(),yield this._scene.createScene(this._webViewer,!0),this.setupSceneMeshRenderingSequence(this._webViewer.scene),D.updateFromMetadata(this._webViewer.scene);const d=null===(t=this._accessoryStack)||void 0===t?void 0:t.isEnabled();if(null===(i=this._accessoryStack)||void 0===i||i.setEnabled(!1),null===(a=this._accessoryStack)||void 0===a||a.attachToNode(null),null===(s=null===(n=this._sceneLoadedInScene)||void 0===n?void 0:n.rootNode)||void 0===s||s.setEnabled(!1),null===(r=null===(o=this.scene)||void 0===o?void 0:o.rootNode)||void 0===r||r.setEnabled(!0),this._avatarPlaceholderNode=null!==(l=this._webViewer.scene.getNodeById(\"AvatarPlaceholder\"))&&void 0!==l?l:null,this.createAccessoryStack(),this.attachAvatarToPlaceholder(e),null===(c=this._accessoryStack)||void 0===c||c.setEnabled(null!=d&&d),yield this.cleanupLoadedScene(),this._sceneLoadedInScene=this._scene,!this._webViewer.scene.activeCamera)throw this.emit(\"error\",new Error(\"Illegal VDR state: the scene you tried to load does not define a camera!\"));this._focusGarmentCameraROIOriginal=this._getCameraROI(this._webViewer.scene.activeCamera),this._focusGarmentCameraROICurrent=this._focusGarmentCameraROIOriginal.clone()}this.updateShadowCasters(),this._sceneNeedsVisualUpdate=!1,this.sceneUpdated()}))}updateAnimation(){var t,i,a;return e(this,void 0,void 0,(function*(){if(!this._animationNeedsVisualUpdate)return;if(!this._avatar)throw this.emit(\"error\",new Error(\"Illegal VDR State: Can't load an animation without an avatar.\"));let e=this._avatar.getAnimation();(yield this.doAssetsHaveSkinningInfo())?(yield this._avatar.setAnimation(this._animation),e=this._animation):(null===(t=null==e?void 0:e.animationGroup)||void 0===t?void 0:t.isPlaying)&&(e.pause(),e.reset(),null===(i=e.skeleton)||void 0===i||i.returnToRest()),(null===(a=null==e?void 0:e.animationGroup)||void 0===a?void 0:a.isPlaying)?this.webViewer.smartRenderModeEnabled=!1:this.webViewer.smartRenderModeEnabled=!0,this._animationNeedsVisualUpdate=!1}))}updateAvatar(){var t,i;return e(this,void 0,void 0,(function*(){if(this._avatarNeedsVisualUpdate){if(!this._scene)throw this.emit(\"error\",new Error(\"Illegal VDR State: Can't load an avatar without a scene.\"));this._garmentInfoDotsUpdatedCallback&&this._garmentInfoDotsUpdatedCallback([]),this._avatar?this._garments&&this._garments.length>0?(yield this.performTryOn(),yield this._disableSizeVisualisation(),this._garmentsNeedVisualUpdate=!1):(yield this._disableSizeVisualisation(),yield null===(t=this._avatar)||void 0===t?void 0:t.createVisualisation(this._webViewer,!0),this.attachAvatarToPlaceholder(this._avatar),(null===(i=this._accessoryStack)||void 0===i?void 0:i.isEnabled())&&this._accessoryStack.refresh(),this.resetAvatarOverlapCorrectionData(),this.showAllMeshes(this._avatar),yield this.cleanupLoadedAvatars(),this._avatarLoadedInScene=this._avatar,yield this.cleanupLoadedFittedGarments(),yield this.cleanupStandaloneGarments()):(yield this._disableSizeVisualisation(),yield this.cleanupLoadedFittedGarments(),yield this.cleanupLoadedAvatars()),this.updateShadowCasters(),this._tryOnDeformedAvatar?this._avatarNeedsVisualUpdate=!0:this._avatarNeedsVisualUpdate=!1,this._animationNeedsVisualUpdate=!0}}))}updateGarments(){var t;return e(this,void 0,void 0,(function*(){if(this._garmentsNeedVisualUpdate){if(this._focusGarment&&!(null===(t=this._garments)||void 0===t?void 0:t.find((e=>e===this._focusGarment)))&&(this._focusGarment=null,this._focusGarmentNeedsVisualUpdate=!0),this._garmentInfoDotsUpdatedCallback&&this._garmentInfoDotsUpdatedCallback([]),this._garments&&this._garments.length>0)if(this._avatar)yield this.performTryOn(),yield this._disableSizeVisualisation();else{if(1!==this._garments.length)throw this.emit(\"error\",new Error(\"Illegal VDR state: You must at least set one avatar & one garment to show a tryon or just one garment to show it standalone!\"));yield this._disableSizeVisualisation(),yield this.cleanupStandaloneGarments(),yield this.cleanupLoadedFittedGarments(),yield this._garments[0].createVisualisation(this._webViewer,!1)}else yield this._disableSizeVisualisation(),yield this.cleanupLoadedFittedGarments(),yield this.cleanupStandaloneGarments(),this.resetAvatarOverlapCorrectionData();this.updateShadowCasters(),this._garmentsNeedVisualUpdate=!1,this._tryOnDeformedAvatar?this._avatarNeedsVisualUpdate=!0:this._avatarNeedsVisualUpdate=!1,this._animation&&(this._animationNeedsVisualUpdate=!0)}}))}_calculateNormalizedCanvasPosition(e,t){var i,a;const n=this._webViewer.pictofitWebHtmlElement,s=null!==(a=null===(i=this._webViewer.scene.activeCamera)||void 0===i?void 0:i.viewport.clone())&&void 0!==a?a:new C(0,0,1,1);s.y=1-s.height-s.y;const o=s.toGlobal(n.divContainer.clientWidth,n.divContainer.clientHeight),r=y.Project(e,t,this._webViewer.scene.getTransformMatrix(),o);return new b(r.x/n.divContainer.clientWidth,r.y/n.divContainer.clientHeight)}_computeNormalizedFittedGarment2DVertices(){var e;const t=this._fittedGarmentsLoadedInScene,i=[];this._webViewer.scene.updateTransformMatrix(!0);for(const a of t){i.push([]);const t=null===(e=a.rootNode)||void 0===e?void 0:e.getChildMeshes();for(const e of null!=t?t:[]){const t=e.computeWorldMatrix(!0),a=e.getVerticesData(R.PositionKind);if(null!=a)for(let e=0;e{t.push({value:(e.minY+e.maxY)/2,garmentIndex:i})})),t.sort(((e,t)=>e.value-t.value));const i=new Array(t.length);if(1==t.length)i[0]=k.RightCenter;else if(2==t.length)i[t[0].garmentIndex]=k.TopLeft,i[t[1].garmentIndex]=k.BottomRight;else if(3==t.length)i[t[0].garmentIndex]=k.TopRight,i[t[1].garmentIndex]=k.LeftCenter,i[t[2].garmentIndex]=k.BottomRight;else if(t.length>3){i[t[0].garmentIndex]=k.TopRight;for(let e=1;e{const s=this._computeBoundingBoxOutlineLocation(i[n],t[n]),o=this._calculateBoundingBoxCenter(i[n]).subtract(s),r=.2*o.length();o.normalize();const l=o.multiplyByFloats(r,r);if(0==e.length)return;let c=e[0],d=e[0].subtract(s).length();for(let t=1;tthis._computeGarmentInfoDotBoundingBoxLocation(e))),i=this._computeNormalizedFittedGarment2DVertices(),a=this._computeNormalized2DGarmentBoundingBoxes(i),n=yield Promise.all(t);if(n.length!==a.length||i.length!==a.length)return e;e.push(...this._findClosestVertexPositions(i,n,a))}const t=this._computeNormalizedAccessoryPositions();return e.push(...t),e}))}focusDataWillUpdate(){this._focusGarmentAccessoryStackWasVisible=this.accessoryStackVisible}updateFocusGarment(){return e(this,void 0,void 0,(function*(){if(!this._focusGarmentNeedsVisualUpdate)return;const e=this._webViewer.scene.activeCamera;if(!e)throw this.emit(\"error\",new Error(\"The loaded scene does not contain a target camera, therefore setting a focus garment is not valid!\"));if(this._focusGarment||this._focusArea!==a.NONE){let t=null,i=!1;if(this._focusGarment){const e=this._fittedGarmentsLoadedInScene.find((e=>{var t;return e.garmentOriginal.uuid===(null===(t=this._focusGarment)||void 0===t?void 0:t.uuid)}));if(!e)throw this.emit(\"error\",new Error(\"The focus garment is not part of the dressing room or has not been fitted yet. Did you compute a tryon before?\"));for(const i of this._webViewer.scene.meshes)if(i.isEnabled()&&i.id.includes(e.uuid)){t=i;break}}else{switch(i=!0,this._focusArea){case a.TOP:t=E.CreateBox(\"VDRFocusAreaBox\",{width:.6,height:.95,depth:.01},this._webViewer.scene),t.parent=this._avatarPlaceholderNode,t.locallyTranslate(new y(0,1.2,0));break;case a.BOTTOM:t=E.CreateBox(\"VDRFocusAreaBox\",{width:.6,height:1,depth:.01},this._webViewer.scene),t.parent=this._avatarPlaceholderNode,t.locallyTranslate(new y(0,.5,0));break;case a.FULL:t=E.CreateBox(\"VDRFocusAreaBox\",{width:.6,height:1.55,depth:.01},this._webViewer.scene),t.parent=this._avatarPlaceholderNode,t.locallyTranslate(new y(0,.85,0))}if(t){const e=new r(\"VDRFocusAreaMaterial\",this._webViewer.scene);e.alpha=0,t.material=e}}if(!t)throw this.emit(\"error\",new Error(\"Focus garment has not been loaded to the scene yet!\"));if(this._focusGarmentCameraROICurrent){if(e.metadata&&e.metadata instanceof w){const t=e.metadata;t.originalFOV&&(e.fov=t.originalFOV),e.viewport=new C(0,0,1,1)}const a=this._focusGarmentCameraROICurrent,n=this._computeFocusGarmentCameraROI(t);this._focusGarmentCameraROIAnimationHandler=new B(this._webViewer,a,n,(t=>{this._updateCameraROI(e,t),this.webViewer.updateActiveCameraViewport()})),this._setAccessoryStackVisibleInternal(!1,!1),yield this._focusGarmentCameraROIAnimationHandler.animate(),i&&t.dispose(!1,!0),this._focusGarmentCameraROICurrent=this._getCameraROI(e)}}else if(this._setAccessoryStackVisibleInternal(this._focusGarmentAccessoryStackWasVisible,!1),this._focusGarmentCameraROIOriginal){const t=this._getCameraROI(e),i=this._focusGarmentCameraROIOriginal;this._focusGarmentCameraROIAnimationHandler=new B(this._webViewer,t,i,(t=>{this._updateCameraROI(e,t),this.webViewer.updateActiveCameraViewport()})),yield this._focusGarmentCameraROIAnimationHandler.animate(),this._focusGarmentCameraROICurrent=this._getCameraROI(e)}this._shouldOptimizeMeasurementPositions=!0,this._focusGarmentNeedsVisualUpdate=!1}))}_updateCameraROI(e,t){if(null==e)return;const i=e.metadata&&e.metadata instanceof w?e.metadata:new w;i.cameraROI=t,e.metadata=i}_getCameraROI(e){if(!e)return new A;return(e.metadata instanceof w?e.metadata.clone():new w).cameraROI}_computeFocusGarmentCameraROI(e){const t=this._webViewer.scene.activeCamera;if(null==t)return new A;let i=null;t instanceof T&&(i=t.projectionTransformationMatrix.clone(),t.projectionTransformationMatrix=V.Identity()),t.computeWorldMatrix(),t.update(),e.computeWorldMatrix(!0);let a=Number.MAX_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER,o=Number.MIN_SAFE_INTEGER;const r=this.webViewer.engine.getRenderWidth(),l=this.webViewer.engine.getRenderHeight();for(const i of e.getBoundingInfo().boundingBox.vectorsWorld){const e=y.Project(i,V.Identity(),t.getTransformationMatrix(),t.viewport.toGlobal(r,l));a=Math.min(a,e.x),n=Math.min(n,e.y),s=Math.max(s,e.x),o=Math.max(o,e.y)}const c=r/2,d=2*Math.max(Math.abs(s-c),Math.abs(a-c)),h=Math.abs(o-n),u=d/h,m=new A;m.aspectRatio=u;return m.topMargin=(n-.1*h)/this.webViewer.engine.getRenderHeight(),m.bottomMargin=1-(o+.1*h)/this.webViewer.engine.getRenderHeight(),t instanceof T&&i&&(t.projectionTransformationMatrix=i),m}showAllMeshes(e,t){if(e&&(e.visible=!0),t)for(const e of t)e.visible=!0;this.updateShadowCasters()}updateShadowCasters(){var e;for(const t of this._webViewer.scene.lights){const i=t.getShadowGenerator();if(i){const t=null===(e=i.getShadowMap())||void 0===e?void 0:e.renderList;if(null==t||t.splice(0,null==t?void 0:t.length),this._avatar&&this._avatar.rootNode?this._avatar.addToShadowGenerator(i):this._tryOnDeformedAvatar&&this._tryOnDeformedAvatar.rootNode&&this._tryOnDeformedAvatar.addToShadowGenerator(i),this._fittedGarmentsLoadedInScene)for(const e of this._fittedGarmentsLoadedInScene)e.addToShadowGenerator(i);const a=i.getShadowMap();a&&(a.refreshRate=this._webViewer.shadowRefreshRate)}}}tmpRenameLoadedSceneElements(){if(null==this._sceneLoadedInScene||null==this._sceneLoadedInScene.rootNode)return;const e=t();for(const t of this._webViewer.scene.meshes)t.isDescendantOf(this._sceneLoadedInScene.rootNode)&&(t.id=t.id+\"_\"+e);for(const t of this._webViewer.scene.materials){const i=t.id.toLowerCase().includes(\"gizmo\");for(const a of t.getBindedMeshes()){if(i||a&&a.isDescendantOf(this._sceneLoadedInScene.rootNode)){t.id=t.id+\"_\"+e;break}}}for(const t of this._webViewer.scene.lights)t.isDescendantOf(this._sceneLoadedInScene.rootNode)&&(t.id=t.id+\"_\"+e);this._avatarPlaceholderNode&&(this._avatarPlaceholderNode.id+=\"_\"+e)}cleanupStandaloneGarments(){return e(this,void 0,void 0,(function*(){if(this._garments){const e=this._garments.map((e=>e.destroyVisualisation()));yield Promise.all(e)}}))}cleanupLoadedFittedGarments(){return e(this,void 0,void 0,(function*(){if(this._fittedGarmentsLoadedInScene.length>0){const e=this._fittedGarmentsLoadedInScene.map((e=>e.destroyVisualisation()));yield Promise.all(e),this._fittedGarmentsLoadedInScene=[]}}))}cleanupLoadedAvatars(){var t,i;return e(this,void 0,void 0,(function*(){yield null===(t=this._tryOnDeformedAvatar)||void 0===t?void 0:t.destroyVisualisation(),this._tryOnDeformedAvatar=null,yield null===(i=this._avatarLoadedInScene)||void 0===i?void 0:i.destroyVisualisation(),this._avatarLoadedInScene=null}))}cleanupLoadedScene(){var t;return e(this,void 0,void 0,(function*(){yield null===(t=this._sceneLoadedInScene)||void 0===t?void 0:t.destroyScene(),this._sceneLoadedInScene=null}))}_disableSizeVisualisation(){var t;return e(this,void 0,void 0,(function*(){null===(t=this._sizeVisualizationParentNode)||void 0===t||t.dispose(),this._sizeVisualizationParentNode=null,this._sizeVisualizationRender2DObserver&&(this._sizeVisualizationRender2DObserver.unregisterOnNextCall=!0,this._sizeVisualizationRender2DObserver=null);for(const e of this._sizeVisualizationMeasurementLabelDivs)e[1].remove();this._sizeVisualizationMeasurementLabelDivs.clear();for(const e of this._fittedGarmentsLoadedInScene);}))}rotate(e=n.CAMERA,t=s.HORIZONTAL,i=45,a=.75){let o=[];e==n.AUTO&&(o=this.getSceneGizmos(),e=o.length>0?n.GIZMO:n.CAMERA),e==n.CAMERA?this.rotateCamera(t,i,a):e==n.GIZMO&&this.rotateGizmo(o,i,a)}rotateCamera(e,t,i){if(!(this._webViewer.scene.activeCamera instanceof c))return;const a=this._webViewer.scene.activeCamera,n=d.ToRadians(t),o=Math.min(10,1/i);let r;if(e==s.HORIZONTAL){if(10==o)return void(a.alpha=a.alpha+n);r=new h(\"rotationAlphaAnimation\",\"alpha\",2,h.ANIMATIONTYPE_FLOAT,h.ANIMATIONLOOPMODE_CONSTANT);let e=a.alpha+n;a.lowerAlphaLimit&&(e=Math.max(e,a.lowerAlphaLimit)),a.upperAlphaLimit&&(e=Math.min(e,a.upperAlphaLimit));const t=[{frame:0,value:a.alpha},{frame:2,value:e}];r.setKeys(t)}else{if(10==o)return void(a.beta=a.beta+n);r=new h(\"rotationBetaAnimation\",\"beta\",2,h.ANIMATIONTYPE_FLOAT,h.ANIMATIONLOOPMODE_CONSTANT);let e=a.beta+n;a.lowerBetaLimit&&(e=Math.max(e,a.lowerBetaLimit)),a.upperBetaLimit&&(e=Math.min(e,a.upperBetaLimit));const t=[{frame:0,value:a.beta},{frame:2,value:e}];r.setKeys(t)}const l=new m(.5,0,.5,1);r.setEasingFunction(l),this._webViewer.dirtyMonitor.continuousRendering=!0,this._webViewer.scene.beginDirectAnimation(a,[r],0,2,!1,o,(()=>{this._webViewer.dirtyMonitor.continuousRendering=!1}))}rotateGizmo(e,t,i){const a=d.ToRadians(t),n=Math.min(10,1/i);for(const t of e){if(!(t instanceof u))continue;const e=t.attachedNode;if(!e)continue;if(10==n)return void(e.rotation.y=e.rotation.y+a);const i=new h(\"rotationYAnimation\",\"rotation.y\",2,h.ANIMATIONTYPE_FLOAT,h.ANIMATIONLOOPMODE_CONSTANT),s=[{frame:0,value:e.rotation.y},{frame:2,value:e.rotation.y+a}];i.setKeys(s);const o=new m(.5,0,.5,1);i.setEasingFunction(o),this._webViewer.dirtyMonitor.continuousRendering=!0,this._webViewer.scene.beginDirectAnimation(e,[i],0,2,!1,n,(()=>{this._webViewer.dirtyMonitor.continuousRendering=!1}))}}getSceneGizmos(){if(!(this._scene instanceof _))return console.log(\"Scene is no JSONScene!\"),[];const e=this._scene.getResources();return e?e.gizmos:[]}setupSceneMeshRenderingSequence(e){v.setupSceneMeshRenderingSequence(e)}set gizmosHidden(e){this.getSceneGizmos().forEach((t=>{t._rootMesh.getChildMeshes().forEach((t=>{t.material&&(t.material.alpha=e?0:1)}))}))}animationWillUpdate(){this._fittedGarmentsLoadedInScene.length>0&&this._fittedGarmentsLoadedInScene[0].meshFormat!==G.GLB&&(this._garmentsNeedVisualUpdate=!0)}updateSizeVisualizationMeshRenderIndex(e){v.setRenderingGroupId(e,p.AVATAR_RENDERING_GROUP_ID)}resetAvatarOverlapCorrectionData(){}sceneUpdated(){}}export{F as VirtualDressingRoomInteractive};\n","import{MaterialPluginBase as e}from\"@babylonjs/core/Materials/materialPluginBase\";class a extends e{get textureHasPremultipliedAlpha(){return this._textureHasPremultipliedAlpha}set textureHasPremultipliedAlpha(e){this._textureHasPremultipliedAlpha=e}constructor(e){super(e,\"Accessory2DPluginMaterial\",200,{PARALLAX_2D_PLUGIN_TEXTURE_HAS_PREMULTIPLIED_ALPHA:!1},!0,!0),this._textureHasPremultipliedAlpha=!1}getClassName(){return\"Accessory2DPluginMaterial\"}prepareDefines(e,a,l){e.PARALLAX_2D_PLUGIN_TEXTURE_HAS_PREMULTIPLIED_ALPHA=this._textureHasPremultipliedAlpha}getCustomCode(e){return\"fragment\"===e?{CUSTOM_FRAGMENT_UPDATE_ALPHA:\"\\n #ifdef PARALLAX_2D_PLUGIN_TEXTURE_HAS_PREMULTIPLIED_ALPHA\\n // take a look at Babylon.js/packages/dev/core/src/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.fx\\n #ifdef GAMMAALBEDO\\n float alphaUnPremultiply = toLinearSpace(alpha);\\n // float alphaUnPremultiply = alpha * alpha;\\n #else\\n float alphaUnPremultiply = alpha;\\n #endif\\n\\n // The color texture has premultiplied alpha, so we need to divide by alpha to get original color values.\\n baseColor = baseColor / alphaUnPremultiply;\\n #endif\\n \"}:null}}export{a as Accessory2DPluginMaterial};\n","import{__awaiter as e}from\"tslib\";import{StandardMaterial as t}from\"@babylonjs/core/Materials/standardMaterial\";import{Color3 as o}from\"@babylonjs/core/Maths/math.color\";import{MeshBuilder as r}from\"@babylonjs/core/Meshes/meshBuilder\";import{TransformNode as s}from\"@babylonjs/core/Meshes/transformNode\";import{RenderHelper as i,Constants as a}from\"../../Rendering/RenderHelper.js\";import{Texture as n}from\"@babylonjs/core/Materials/Textures/texture\";import{AccessoryPositionInfo as l}from\"../../Data/IAccessory.js\";import{Vector2 as c,Vector3 as h,Matrix as m}from\"@babylonjs/core/Maths/math.vector\";import{Tools as d}from\"@babylonjs/core/Misc/tools\";import{Garment2DAssetKey as u}from\"../../Data/Garment2D.js\";import{AssetHelper as p}from\"../../Data/Asset/AssetHelper.js\";import{Mesh as _}from\"@babylonjs/core/Meshes/mesh\";import\"../../Data/Animation.js\";import\"../../Data/Avatar2D.js\";import\"../../Data/Scene2DParallax.js\";import\"../../Data/Asset/AssetType.js\";import\"../../Data/Avatar3D.js\";import\"../../Data/Garment3D.js\";import\"../../Data/Scene3D.js\";import\"../../Data/IAvatar.js\";import\"../../ComputeServer/ComputeServer.js\";import\"../../ComputeServer/ComputeServerWasm.js\";import\"ts-md5\";import\"../../ComputeServer/Data/MeshData.js\";import\"../../Data/Asset/CommonAssetKey.js\";import\"../../Data/GarmentGroup.js\";import\"../../ComputeServer/Data/SizeRecommendation/FitCategory.js\";import\"../../ComputeServer/Data/Layouts/SlotLayout/SlotType.js\";import\"../../Data/IGarment.js\";import\"../../Data/HeadAvatar3D.js\";import\"../HeadAvatar3D/InteractiveAvatar3DEditor.js\";import\"@babylonjs/core/assetContainer\";import\"@babylonjs/core/Loading/Plugins/babylonFileLoader\";import\"@babylonjs/core/Loading/sceneLoader\";import\"@babylonjs/core/Meshes/mesh.vertexData\";import\"@babylonjs/core/Cameras/camera\";import\"@babylonjs/core/Gizmos/planeRotationGizmo\";import\"@babylonjs/core/Cameras/arcRotateCamera\";import\"@babylonjs/core/Lights/directionalLight\";import\"@babylonjs/loaders\";import\"../../SceneConfiguration/Parser/V2/BaseNode.js\";import\"../../WebViewer.js\";import{Engine as b}from\"@babylonjs/core/Engines/engine\";import\"@babylonjs/core/Maths/math\";import\"@babylonjs/core/Materials/imageProcessingConfiguration\";import\"@babylonjs/core/Materials/Textures/cubeTexture\";import\"@babylonjs/core/Materials/fresnelParameters\";import\"@babylonjs/core/Materials/PBR/pbrMetallicRoughnessMaterial\";import{PBRMaterial as g}from\"@babylonjs/core/Materials/PBR/pbrMaterial\";import\"@babylonjs/core/Materials/shaderMaterial\";import\"@babylonjs/core/Meshes/Compression/dracoCompression\";import\"@babylonjs/core/Meshes/geometry\";import\"@babylonjs/core/Culling/ray\";import\"@babylonjs/core/Rendering/boundingBoxRenderer\";import\"@babylonjs/core/Rendering/outlineRenderer\";import\"../../Util/AverageTimer.js\";import\"@babylonjs/core/Materials/Background/backgroundMaterial\";import\"@babylonjs/core/Behaviors/Cameras/autoRotationBehavior\";import{TargetCameraNodeMetadata as y}from\"../../SceneConfiguration/Parser/V2/TargetCameraNode.js\";import\"../../Rendering/Camera/RRAutoRotationBehavior.js\";import{RRArcRotateCamera as f}from\"../../Rendering/Camera/RRArcRotateCamera.js\";import\"@babylonjs/core/Lights/Shadows/shadowGenerator\";import\"@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent\";import\"@babylonjs/core/Lights/pointLight\";import\"@babylonjs/core/Lights/spotLight\";import\"@babylonjs/core/Helpers/sceneHelpers\";import\"@babylonjs/core/Cameras/freeCamera\";import\"@babylonjs/core/Lights/hemisphericLight\";import\"@babylonjs/core/Materials/Textures/hdrCubeTexture\";import{v4 as M}from\"uuid\";import\"../../Data/JSONScene.js\";import\"../../ComputeServer/Data/PersonalisedMannequin/MannequinRequestReturnFile.js\";import\"../../ComputeServer/Data/SizeRecommendation/MeasurementCategory.js\";import\"../../ComputeServer/Data/SizeRecommendation/OverlayType.js\";import\"../../ComputeServer/Data/Layouts/SlotLayout/ScalingMode.js\";import\"../../PictofitWebSDK.js\";import\"@babylonjs/core/Events/pointerEvents\";import\"../../Data/Asset/LocalStorageAsset.js\";import\"../PersonalisedMannequin/PersonalisedMannequinCreator.js\";import\"./IVirtualDressingRoom.js\";import\"./VirtualDressingRoom2D.js\";import\"./VirtualDressingRoomInteractive.js\";import\"@reactivereality-public/promjs\";import\"@babylonjs/core/Cameras/Inputs/arcRotateCameraPointersInput\";import{Generic2DMaterialData as v}from\"../../Data/Generic2DMaterialData.js\";import\"@babylonjs/core/PostProcesses/depthOfFieldEffect\";import\"@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline\";import\"../../Rendering/UI/SizeVisualizationConfig.js\";import{CameraROI as P}from\"../../CanvasOverlayMargins.js\";import\"@babylonjs/core/Misc/observable\";import\"@babylonjs/core/Misc/domManagement\";import{Animation as S}from\"@babylonjs/core/Animations/animation\";import{BezierCurveEase as j}from\"@babylonjs/core/Animations/easing\";import w from\"earcut\";import{RefractionTexture as R}from\"@babylonjs/core/Materials/Textures/refractionTexture\";import{Plane as D}from\"@babylonjs/core/Maths/math.plane\";import{BlurPostProcess as E}from\"@babylonjs/core/PostProcesses/blurPostProcess\";import{RenderTargetTexture as T}from\"@babylonjs/core/Materials/Textures/renderTargetTexture\";import{Viewport as N}from\"@babylonjs/core/Maths/math.viewport\";import{Accessory2DPluginMaterial as C}from\"../../Rendering/MaterialPlugins/Accessory2DPluginMaterial.js\";class O{constructor(e,t){this._offsetFactor=0,this._camera=e,this._screenSpaceXOffset=t}set offsetFactor(e){this._offsetFactor=e;const t=this._screenSpaceXOffset*e;this.updateProjectionMatrixFromXOffset(t)}get offsetFactor(){return this._offsetFactor}refresh(){this.updateProjectionMatrixFromXOffset(this._screenSpaceXOffset)}updateProjectionMatrixFromXOffset(e){const t=m.Translation(e,0,0);this._camera.projectionTransformationMatrix=t}}class A{constructor(){this._rootNode=null,this._accessorySlotMesh=null,this._accessorySlotMeshBorder=null,this._imagePlaneMesh=null,this._imagePlaneMaterial=null,this._imagePlanePluginMaterial=null,this._garment=null}get rootNode(){return this._rootNode}get garment(){return this._garment}computeInfoDotLocation3D(){if(!this._accessorySlotMesh)return new h(0,0,0);const e=this._accessorySlotMesh.computeWorldMatrix(!0),t=h.TransformCoordinates(this._accessorySlotMesh.getBoundingInfo().maximum,e),o=h.TransformCoordinates(this._accessorySlotMesh.getBoundingInfo().minimum,e),r=.85;return t.multiplyByFloats(r,r,r).add(o.multiplyByFloats(1-r,1-r,1-r))}clone(e){var t,o,r,s,i,a,n,l;const c=new A;return c._webViewer=this._webViewer,c._rootNode=null!==(o=null===(t=this._rootNode)||void 0===t?void 0:t.clone(`${e}_root`,this._rootNode.parent,!0))&&void 0!==o?o:null,c._accessorySlotMesh=null!==(s=null===(r=this._accessorySlotMesh)||void 0===r?void 0:r.clone(`${e}_slot`,c._rootNode))&&void 0!==s?s:null,c._accessorySlotMeshBorder=null!==(a=null===(i=this._accessorySlotMeshBorder)||void 0===i?void 0:i.clone(`${e}_slot_border`,c._rootNode))&&void 0!==a?a:null,c._imagePlaneMesh=null!==(l=null===(n=this._imagePlaneMesh)||void 0===n?void 0:n.clone(`${e}_image_plane`,c._rootNode))&&void 0!==l?l:null,c._createImagePlaneMaterial(`${e}_image_plane`,this._webViewer.scene),c._imagePlaneMesh&&(c._imagePlaneMesh.material=c._imagePlaneMaterial),c}highlight(e){if(this.rootNode&&this._accessorySlotMesh&&this._accessorySlotMeshBorder)if(this._accessorySlotMeshBorder.setEnabled(e),e){const e=1.1;this._accessorySlotMesh.scaling=new h(e,e,e),this._accessorySlotMeshBorder.scaling=new h(e,e,e)}else this._accessorySlotMesh.scaling=new h(1,1,1),this._accessorySlotMeshBorder.scaling=new h(1,1,1)}isColliderMesh(e){return this._accessorySlotMesh===e}_createImagePlaneMaterial(e,r){this._imagePlaneMaterial=new t(e,r),this._imagePlaneMaterial.disableLighting=!0,this._imagePlaneMaterial.emissiveColor=o.White(),this._imagePlanePluginMaterial=new C(this._imagePlaneMaterial)}createVisualization(e,r,i,a){this._webViewer=e;const n=this._webViewer.scene;this._rootNode=new s(`${r}_root`,n);const l=.5*i;this._accessorySlotMesh=this.createGeometry(`${r}_slot`,i,i,n),this._accessorySlotMesh.position.y=l,this._accessorySlotMesh.parent=this._rootNode,this._accessorySlotMesh.material=a;const c=1.03*i;this._accessorySlotMeshBorder=this.createGeometry(`${r}_slot_border`,c,c,n,!1,!0),this._accessorySlotMeshBorder.position.y=l,this._accessorySlotMeshBorder.position.z=-1e-4,this._accessorySlotMeshBorder.parent=this._rootNode,this._accessorySlotMeshBorder.setEnabled(!1),this._accessorySlotMeshBorder.isPickable=!1;const h=new t(`${r}_slot_border`,n);h.disableLighting=!0,h.emissiveColor=new o(1,1,1),this._accessorySlotMeshBorder.material=h;const m=`${r}_image_plane`,d=.85*i;this._imagePlaneMesh=this.createGeometry(m,d,d,n,!0),this._imagePlaneMesh.position.y=l,this._imagePlaneMesh.position.z=-2e-4,this._imagePlaneMesh.parent=this._rootNode,this._imagePlaneMesh.setEnabled(!1),this._imagePlaneMesh.isPickable=!1,this._createImagePlaneMaterial(m,n),this._imagePlaneMesh.material=this._imagePlaneMaterial,this.setRenderingGroup(),this._rootNode.billboardMode=_.BILLBOARDMODE_Y}setRenderingGroup(){this._accessorySlotMesh&&(i.setRenderingGroupId(this._accessorySlotMesh,a.SCENE_RENDERING_GROUP_ID),i.setRenderingIndex(this._accessorySlotMesh,100,!1)),this._accessorySlotMeshBorder&&(i.setRenderingGroupId(this._accessorySlotMeshBorder,a.SCENE_RENDERING_GROUP_ID),i.setRenderingIndex(this._accessorySlotMeshBorder,101,!1)),this._imagePlaneMesh&&(i.setRenderingGroupId(this._imagePlaneMesh,a.SCENE_RENDERING_GROUP_ID),i.setRenderingIndex(this._imagePlaneMesh,102,!1))}createGeometry(e,t,o,s,i=!1,a=!1){if(i)return r.CreatePlane(e,{width:t,height:o},s);const n=Math.min(t,o)/18,l=Math.PI/32,c=[];let m=-(.5*t-n),u=-(.5*o-n);for(let e=Math.PI;e<=1.5*Math.PI;e+=l)c.push(new h(m+n*Math.cos(e),0,u+n*Math.sin(e)));m=.5*t-n;for(let e=1.5*Math.PI;e<=2*Math.PI;e+=l)c.push(new h(m+n*Math.cos(e),0,u+n*Math.sin(e)));u=.5*o-n;for(let e=0;e<=.5*Math.PI;e+=l)c.push(new h(m+n*Math.cos(e),0,u+n*Math.sin(e)));m=-(.5*t-n);for(let e=.5*Math.PI;e<=Math.PI;e+=l)c.push(new h(m+n*Math.cos(e),0,u+n*Math.sin(e)));const p={shape:c};if(a){const e=[],t=.97;c.forEach((o=>{e.push(new h(o.x*t,o.y*t,o.z*t))})),p.holes=[e]}const _=r.CreatePolygon(e,p,s,w);return _.rotation.x=d.ToRadians(270),_}update(t){var o,r,s,i,a;return e(this,void 0,void 0,(function*(){if(!this._imagePlaneMaterial||!this._imagePlanePluginMaterial)throw new Error(\"Cannot update accessory slot. Did you call createVisualization() first?\");if(this._garment=t,!t)return null===(o=this._imagePlaneMaterial.diffuseTexture)||void 0===o||o.dispose(),void(null===(r=this._imagePlaneMaterial.opacityTexture)||void 0===r||r.dispose());let e=\"\";const l=yield p.getComponentForPrioritizedKeyList(t.asset,[u.TEXTURE_DIFFUSE_OPACITY_KTX,u.TEXTURE_DIFFUSE,u.TEXTURE_DIFFUSE_LEGACY],(t=>{e=t}));let c=null;e!=u.TEXTURE_DIFFUSE_OPACITY_KTX&&(c=yield p.getComponentForPrioritizedKeyList(t.asset,[u.TEXTURE_OPACITY,u.TEXTURE_OPACITY_LEGACY]));const m=t=>{const o=t.getSize();if(this._imagePlaneMesh){let t=o.width/o.height;isNaN(t)&&(console.warn(`Failed to compute aspect ratio for ${e} - size is ${o.width}x${o.height}. Using 1:1 ratio.`),t=1),this._imagePlaneMesh.scaling=t<=1?new h(t,1,1):new h(1,1/t,1)}},[d,_]=yield Promise.all([v.createTexture(this._webViewer.scene,\"accessory_diffuse\",l,!c,c?b.TEXTUREFORMAT_RGB:b.TEXTUREFORMAT_RGBA,n.MIRROR_ADDRESSMODE,!0,p.isKTXAssetComponent(e),(e=>{m(e)})),c?v.createTexture(this._webViewer.scene,\"accessory_opacity\",c,!0,b.TEXTUREFORMAT_LUMINANCE,n.MIRROR_ADDRESSMODE,!0,!1):null]);null===(s=this._imagePlaneMaterial.diffuseTexture)||void 0===s||s.dispose(),null===(i=this._imagePlaneMaterial.opacityTexture)||void 0===i||i.dispose(),d.hasAlpha=!_,this._imagePlaneMaterial.useAlphaFromDiffuseTexture=!_,this._imagePlaneMaterial.opacityTexture=_,this._imagePlaneMaterial.diffuseTexture=d,this._imagePlanePluginMaterial.textureHasPremultipliedAlpha=p.isKTXAssetComponent(e),null===(a=this._imagePlaneMesh)||void 0===a||a.setEnabled(!0)}))}}class x{constructor(){this._rootNode=null,this._slots=new Map,this._accessories=[],this._avatar=null,this._screenSpaceOffsetHandler=null,this._resizeObserver=null}get rootNode(){return this._rootNode}get screenSpaceOffsetHandler(){return this._screenSpaceOffsetHandler}createVisualization(e){if(!e.scene.activeCamera)throw new Error(\"Canot create accessory stack visualization without an active camera!\");this._webViewer=e,this._rootNode=new s(\"accessory_stack_root\",this._webViewer.scene),this._rootNode.setEnabled(!1),this._cameraViewOriginal=e.scene.activeCamera.getViewMatrix();const r=.4,i=M(),a=new t(`${i}_accessory_slot`,e.scene);a.alpha=.6,a.disableLighting=!0,a.emissiveColor=new o(.6,.6,.6);const n=new A;n.createVisualization(e,i+\"-accessory_slot_bottom\",r,a),n.rootNode&&(n.rootNode.parent=this._rootNode,n.rootNode.position.y=.1),this._slots.set(l.BOTTOM,n);const c=n.clone(i+\"-accessory_slot_middle\");c.rootNode&&(c.rootNode.parent=this._rootNode,c.rootNode.position.y=.2+r,c.rootNode.position.x=.12),this._slots.set(l.MIDDLE,c);const h=n.clone(i+\"-accessory_slot_top\");h.rootNode&&(h.rootNode.parent=this._rootNode,h.rootNode.position.y=1.1),this._slots.set(l.TOP,h),this.registerResizeObserver()}createRefractionMaterial(e,t){const r=t+\"-accessory_slot_refraction\",s=e.engine,i=e.scene,a=new g(`${r}_slot`,i);a.albedoColor=new o(.8,.8,.8),a.subSurface.isRefractionEnabled=!0,a.subSurface.refractionIntensity=1,a.subSurface.indexOfRefraction=1,a.subSurface.useAlbedoToTintRefraction=!0,a.metallic=0,a.roughness=0;const l=new R(r+\"_refraction_texture\",768,i,!1);l.renderListPredicate=e=>{const t=[\"_image_plane\",\"_slot\",\"avatar\",\"garment\"];for(const o of t)if(e.name.includes(o))return!1;return!0},l.refractionPlane=new D(0,0,-1,0),a.refractionTexture=l,i.customRenderTargets.push(l);const h=l.textureType;l.ignoreCameraViewport=!0;const m=new E(\"blur_x\",new c(1,0),25,1,null,n.BILINEAR_SAMPLINGMODE,s,!1,h);m.autoClear=!1,m.width=l.getRenderWidth(),m.height=l.getRenderHeight(),m.onApplyObservable.add((e=>{e.setTexture(\"textureSampler\",l)}));const d=[m,new E(\"blur_y\",new c(0,1),25,1,null,n.BILINEAR_SAMPLINGMODE,s,!1,h)],u=new T(\"rtt_accessory_slot_refraction\",{width:m.width,height:m.height},i,!1,!0,h,void 0,void 0,!1);u.onClearObservable.add((()=>{}));const p=this._rootNode;return l.onAfterUnbindObservable.add((function(){const e=u.renderTarget;(null==p?void 0:p.isEnabled())&&e&&(i.postProcessManager.directRender(d,e,!0),s.unBindFramebuffer(e,!0))})),a.refractionTexture=u,a}attachToNode(e){var t;null===(t=this._rootNode)||void 0===t||t.setParent(e),this._slots.forEach((e=>e.setRenderingGroup()))}isEnabled(){var e,t;return null!==(t=null===(e=this._rootNode)||void 0===e?void 0:e.isEnabled())&&void 0!==t&&t}setEnabled(e){var t;null===(t=this._rootNode)||void 0===t||t.setEnabled(e),e&&this.refresh()}refresh(){var e;null===(e=this._screenSpaceOffsetHandler)||void 0===e||e.refresh()}computeAccessoryInfoDotLocations3D(){var e;const t=new Array;for(const o of this._accessories)for(const r of this._slots.values())(null===(e=r.garment)||void 0===e?void 0:e.uuid)===o.accessory.uuid&&t.push(r.computeInfoDotLocation3D());return t}highlightAccessorySlot(e){var t;this._slots.forEach((e=>e.highlight(!1))),null!=e&&(null===(t=this._slots.get(e))||void 0===t||t.highlight(!0))}update(t,o){var r,s;return e(this,void 0,void 0,(function*(){this._accessories=null!=t?t:[];let e=!0;for(const[o,s]of this._slots.entries()){s.garment&&(e=!1);let i=!1;for(const e of null!=t?t:[])if(e.metadata.position===o&&e.accessory.uuid===(null===(r=s.garment)||void 0===r?void 0:r.uuid)){i=!0;break}i||(yield s.update(null))}if(null==t||0===t.length)return void(e||(yield this.showAccessoryStack(!1,o)));const i=new Array;for(const e of t){const t=this._slots.get(e.metadata.position);t&&e.accessory.uuid!==(null===(s=t.garment)||void 0===s?void 0:s.uuid)&&i.push(t.update(e.accessory))}yield Promise.all(i),yield this.showAccessoryStack(!0,o)}))}updatePlacement(e){if(!this.rootNode)return;this._avatar=e;let t=this.rootNode.getHierarchyBoundingVectors(),o=e.rootNode?e.rootNode.getHierarchyBoundingVectors(void 0,(e=>!e.name.includes(\"feetElongation\"))):t;{const e=t.max.x-t.min.x,r=(o.max.x-o.min.x)/2+e/2+0;this.rootNode.position.x=-r}var r,s;t=this.rootNode.getHierarchyBoundingVectors(),o=e.rootNode?e.rootNode.getHierarchyBoundingVectors(void 0,(e=>!e.name.includes(\"feetElongation\"))):(s=-.6,{min:new h((r=t).min.x+s,r.min.y,r.min.z),max:new h(r.max.x+s,r.max.y,r.max.z)});{const e=this._webViewer.scene.activeCamera;if(!(e&&e instanceof f))return;const r=e.clone(\"cameraTmp\");if(r.metadata&&r.metadata instanceof y){const e=r.metadata.clone();e.cameraROI=new P,e.originalFOV&&(r.fov=e.originalFOV),r.viewport=new N(0,0,1,1),r.metadata=e}this._webViewer.updateCameraViewport(r);const s=this._cameraViewOriginal.multiply(r.getProjectionMatrix(!0)),i=o.min.add(o.max.subtract(o.min).multiplyByFloats(.5,0,0)),a=t.min.add(t.max.subtract(t.min).multiplyByFloats(.5,0,0)),n=h.Project(a,m.Identity(),s,r.viewport),l=h.Project(i,m.Identity(),s,r.viewport).x-n.x;this._screenSpaceOffsetHandler=new O(e,l),r.dispose()}}showAccessoryStack(t,o){return e(this,void 0,void 0,(function*(){this.isEnabled()&&t||!this.isEnabled()&&!t||(this.setEnabled(t),o&&o(),yield this.startScreenSpaceAnimation(t))}))}getAccessoryPositionForColliderMesh(e){for(const[t,o]of this._slots.entries())if(o.isColliderMesh(e))return t;return null}startScreenSpaceAnimation(t){return e(this,void 0,void 0,(function*(){const e=new S(\"screenSpaceAnimation\",\"offsetFactor\",2,S.ANIMATIONTYPE_FLOAT,S.ANIMATIONLOOPMODE_CONSTANT),o=[{frame:0,value:t?0:1},{frame:1,value:t?1:0}];e.setKeys(o),e.setEasingFunction(new j(.5,0,.5,1)),this._webViewer.dirtyMonitor.continuousRendering=!0;const r=this._webViewer.scene.beginDirectAnimation(this._screenSpaceOffsetHandler,[e],0,2,!1,1.3333333333333333,(()=>{this._webViewer.dirtyMonitor.continuousRendering=!1}));yield r.waitAsync()}))}registerResizeObserver(){var e;this._resizeObserver&&(this._resizeObserver.unregisterOnNextCall=!0),this._resizeObserver=this._webViewer.onResizeObservable.add((()=>{this.isEnabled()&&(this._avatar&&this.updatePlacement(this._avatar),this._screenSpaceOffsetHandler&&this._screenSpaceOffsetHandler.refresh())})),null===(e=this._rootNode)||void 0===e||e.onDisposeObservable.addOnce((()=>{this._resizeObserver&&(this._resizeObserver.unregisterOnNextCall=!0)}))}}export{x as AccessoryStack};\n","import{__awaiter as e}from\"tslib\";import{VirtualTryOn3DRequest as t}from\"../../ComputeServer/Data/VirtualTryOn3D/VirtualTryOn3DRequest.js\";import{Avatar3DAssetKey as a,Avatar3D as i}from\"../../Data/Avatar3D.js\";import{Garment3DAssetKey as s,Garment3D as r}from\"../../Data/Garment3D.js\";import{JSONMaterial as n}from\"../../Data/JSONMaterial.js\";import{Scene3D as o}from\"../../Data/Scene3D.js\";import{VirtualDressingRoomInteractive as d}from\"./VirtualDressingRoomInteractive.js\";class h extends d{constructor(e,t){super(e,t),this.enablePhysicsSimulation=!1,this.emitTryOnDebugEvents=!1,this._webViewer.postProcessingHandler.focusMeshIDs=[\"avatar\",\"garment\"]}preloadAvatarComponents(t){return e(this,void 0,void 0,(function*(){this.checkAvatarType(t);const e=[];try{e.push(t.asset.preloadComponent(a.MESH))}catch(i){e.push(t.asset.preloadComponent(a.MESH_LEGACY))}if((yield t.asset.getKeys()).includes(a.MATERIAL)){const i=new n(a.MATERIAL,t.asset);e.push(i.preloadComponents())}yield Promise.all(e)}))}preloadGarmentComponents(t){return e(this,void 0,void 0,(function*(){this.checkGarmentType([t]);const e=[];try{e.push(t.asset.preloadComponent(s.MESH))}catch(a){e.push(t.asset.preloadComponent(s.MESH_LEGACY))}if((yield t.asset.getKeys()).includes(s.MATERIAL)){const a=new n(s.MATERIAL,t.asset);e.push(a.preloadComponents())}yield Promise.all(e)}))}preloadSceneComponents(t){return e(this,void 0,void 0,(function*(){yield t.preloadComponents()}))}createAvatar(t){return e(this,void 0,void 0,(function*(){return new i(t)}))}createGarment(t){return e(this,void 0,void 0,(function*(){return new r(t)}))}createScene(t){return e(this,void 0,void 0,(function*(){return new o(t)}))}checkAvatarType(e){if(e&&!(e instanceof i))throw new Error(\"This VDR only accepts Avatar3D instances. Please use the provided factory method createAvatar() to initiate your avatars!\")}checkGarmentType(e){if(e)for(const t of e)if(t&&!(t instanceof r))throw new Error(\"This VDR only accepts Garment3D instances. Please use the provided factory method createGarment() to initiate your garments!\")}performTryOn(){var a;return e(this,void 0,void 0,(function*(){if(!this._garments||0===this._garments.length||!this._avatar)return;const e=new t;e.garments=this._garments,e.avatar=this._avatar,e.runPhysicsSimulation=this.enablePhysicsSimulation,e.debug=this.emitTryOnDebugEvents,this._animation&&(e.doSkinning=yield this.doAssetsHaveSkinningInfo());const i=yield this._computeServer.requestFittedGarments(e),s=i.deformedBodyModel,r=i.fittedGarments,n=null!=s?s:this._avatar;i.debugInformation&&this.emit(\"tryOnDebugInformation\",i.debugInformation);const o=[];let d=!1;(s||this._tryOnDeformedAvatar||this._avatarNeedsVisualUpdate)&&(yield n.createVisualisation(this._webViewer,!0),d=!0),r.forEach((e=>o.push(e.createVisualisation(this._webViewer,!0)))),yield Promise.all(o),r.forEach((e=>e.attachToNode(n.groundOffsetNode))),this.attachAvatarToPlaceholder(n),this.showAllMeshes(n,r),d&&(yield this.cleanupLoadedAvatars()),yield this.cleanupLoadedFittedGarments(),this._tryOnDeformedAvatar=s,this._fittedGarmentsLoadedInScene=r,d&&(this._avatarLoadedInScene=n),this._tryOnFinishedCallback&&this._tryOnFinishedCallback(n,null!==(a=this.garments)&&void 0!==a?a:[])}))}requestSizeVisualisation(e){return this._computeServer.requestSizeVisualisation3D(e)}doAssetsHaveSkinningInfo(){return e(this,void 0,void 0,(function*(){if(!this._avatar)return!1;return!!(yield this._avatar.asset.getKeys()).includes(a.MESH_GLB)}))}}export{h as VirtualDressingRoom3D};\n","class t{constructor(){this.garments=[],this.doSkinning=!1,this.computeShadows=!1,this.returnGarmentMeshVertexBufferOnly=!1}}export{t as SceneTryOn2DRequest};\n","import{JSONScene as e}from\"./JSONScene.js\";var s;!function(e){e.SCENE=\"scene.json\"}(s||(s={}));class n extends e{constructor(e){super(s.SCENE,e)}}export{n as Scene2DParallax,s as Scene2DParallaxAssetKey};\n","import{__awaiter as e}from\"tslib\";import s from\"@reactivereality-public/promjs\";const i=\"rr_pictofit_websdk_\";class n{constructor(e){this.params=e,this.customRegistry=null,this.globalLabels={},this.configuration={tryOn2DProcessingTimeMs:{enabled:!0,pushImmediately:!1},avatar2DCreationProcessingTimeMs:{enabled:!0,pushImmediately:!1},personalizedMannequinCreationTimeMs:{enabled:!0,pushImmediately:!1},sizeRecommendationProcessingTimeMs:{enabled:!0,pushImmediately:!1},inputMeasurementRequestTimeMs:{enabled:!0,pushImmediately:!1},garmentSizesProcessingTimeMs:{enabled:!0,pushImmediately:!1},dressingRoomTryOnProcessingTimeMs:{enabled:!0,pushImmediately:!1},dressingRoomEnableSizeVisualisationProcessingTimeMs:{enabled:!0,pushImmediately:!1},personalizedMannequinCreatorProcessingTimeMs:{enabled:!0,pushImmediately:!1}}}static createDefault(e){return new n(e)}setCustomRegistry(e){return this.customRegistry=e,this}setGlobalLabels(e){return this.globalLabels=e,this}build(){const n=this.customRegistry?this.customRegistry:s(),t=()=>e(this,void 0,void 0,(function*(){yield n.push(this.params.ingestUrl)})),r=(s,i,r,o,a,m)=>{if(!m.enabled)return null;const c=n.create(\"histogram\",s,i,Array(r).fill(null).map(((e,s)=>(s+1)*o)));return{report:(s,i)=>e(this,void 0,void 0,(function*(){c.observe(s*a,Object.assign(Object.assign({},i),this.globalLabels)),m.pushImmediately&&(yield t())}))}};return{registry:n,ingestUrl:this.params.ingestUrl,push:t,metrics:{tryOn2DProcessingTimeMs:r(i+\"2D_tryon_processing_time_seconds\",\"This measures the time for a 2D try-on.\",20,.25,.001,this.configuration.tryOn2DProcessingTimeMs),avatar2DCreationProcessingTimeMs:r(i+\"2D_avatar_creation_processing_time_seconds\",\"This measures the time for creating a 2D avatar.\",20,.25,.001,this.configuration.avatar2DCreationProcessingTimeMs),personalizedMannequinCreationTimeMs:r(i+\"personalized_mannequin_creation_processing_time_seconds\",\"This measures the time for creating a mannequin.\",20,.5,.001,this.configuration.personalizedMannequinCreationTimeMs),sizeRecommendationProcessingTimeMs:r(i+\"size_recommendation_processing_time_seconds\",\"This measures the time for doing a size recommendation.\",20,.25,.001,this.configuration.sizeRecommendationProcessingTimeMs),inputMeasurementRequestTimeMs:r(i+\"input_measurement_request_processing_time_seconds\",\"This measures the time for getting the input measurement.\",10,.15,.001,this.configuration.inputMeasurementRequestTimeMs),garmentSizesProcessingTimeMs:r(i+\"garment_sizes_processing_time_seconds\",\"This measures the time for getting the sizes of a garment.\",5,.2,.001,this.configuration.garmentSizesProcessingTimeMs),dressingRoomTryOnProcessingTimeMs:r(i+\"dressing_room_2D_tryon_processing_time_seconds\",\"The 2D try-on as triggered from the dressing room, both using WASM and the classic compute server.\",20,.25,.001,this.configuration.dressingRoomTryOnProcessingTimeMs),dressingRoomEnableSizeVisualisationProcessingTimeMs:r(i+\"dressing_room_2D_size_visualization_processing_time_seconds\",\"The 2D size visualization as triggered from the dressing room, both using WASM and the classic compute server.\",10,.15,.001,this.configuration.dressingRoomEnableSizeVisualisationProcessingTimeMs),personalizedMannequinCreatorProcessingTimeMs:r(i+\"personalized_mannequin_creator_processing_time_seconds\",\"This measures the time for creating a mannequin in total, both using WASM and the classic compute server..\",20,.5,.001,this.configuration.personalizedMannequinCreatorProcessingTimeMs)}}}}let t=null;function r(e){t=e}function o(){return t}class a{constructor(){this.content={}}}function m(e){if(\"object\"!=typeof e||null===e)return!1;if(\"metricLabels\"in e){const s=e.metricLabels;return void 0!==s&&\"object\"==typeof s&&s instanceof a}return!1}export{a as CsLabels,n as MetricsConfigurationBuilder,o as getMetricsConfiguration,m as isWithMetricLabels,r as setMetricsConfiguration};\n","var ud = (() => {\n var v = import.meta.url;\n return function(G = {}) {\n var s = G, c, b;\n s.ready = new Promise((i, l) => {\n c = i, b = l;\n });\n var h = Object.assign({}, s), Z = \"./this.program\", I = (i, l) => {\n throw l;\n }, R = typeof window == \"object\", V = typeof importScripts == \"function\";\n typeof process == \"object\" && typeof process.versions == \"object\" && process.versions.node;\n var H = \"\";\n function N(i) {\n return s.locateFile ? s.locateFile(i, H) : H + i;\n }\n var M;\n (R || V) && (V ? H = self.location.href : typeof document < \"u\" && document.currentScript && (H = document.currentScript.src), v && (H = v), H.indexOf(\"blob:\") !== 0 ? H = H.substr(0, H.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1) : H = \"\", V && (M = (i) => {\n var l = new XMLHttpRequest();\n return l.open(\"GET\", i, !1), l.responseType = \"arraybuffer\", l.send(null), new Uint8Array(l.response);\n }));\n var A = s.print || console.log.bind(console), ei = s.printErr || console.error.bind(console);\n Object.assign(s, h), h = null, s.arguments && s.arguments, s.thisProgram && (Z = s.thisProgram), s.quit && (I = s.quit);\n var ii;\n s.wasmBinary && (ii = s.wasmBinary), typeof WebAssembly != \"object\" && mi(\"no native wasm support detected\");\n var z, $ = !1, Q, E, J, j, ai, U, T, oi, Li;\n function nl() {\n var i = z.buffer;\n s.HEAP8 = E = new Int8Array(i), s.HEAP16 = j = new Int16Array(i), s.HEAPU8 = J = new Uint8Array(i), s.HEAPU16 = ai = new Uint16Array(i), s.HEAP32 = U = new Int32Array(i), s.HEAPU32 = T = new Uint32Array(i), s.HEAPF32 = oi = new Float32Array(i), s.HEAPF64 = Li = new Float64Array(i);\n }\n var rl = [], dl = [], cl = [];\n function ae() {\n if (s.preRun)\n for (typeof s.preRun == \"function\" && (s.preRun = [s.preRun]); s.preRun.length; )\n se(s.preRun.shift());\n Mi(rl);\n }\n function te() {\n Mi(dl);\n }\n function ee() {\n if (s.postRun)\n for (typeof s.postRun == \"function\" && (s.postRun = [s.postRun]); s.postRun.length; )\n re(s.postRun.shift());\n Mi(cl);\n }\n function se(i) {\n rl.unshift(i);\n }\n function ne(i) {\n dl.unshift(i);\n }\n function re(i) {\n cl.unshift(i);\n }\n var hi = 0, Si = null;\n function de(i) {\n hi++, s.monitorRunDependencies && s.monitorRunDependencies(hi);\n }\n function ce(i) {\n if (hi--, s.monitorRunDependencies && s.monitorRunDependencies(hi), hi == 0 && Si) {\n var l = Si;\n Si = null, l();\n }\n }\n function mi(i) {\n s.onAbort && s.onAbort(i), i = \"Aborted(\" + i + \")\", ei(i), $ = !0, Q = 1, i += \". Build with -sASSERTIONS for more info.\";\n var l = new WebAssembly.RuntimeError(i);\n throw b(l), l;\n }\n var oe = \"data:application/octet-stream;base64,\", ol = (i) => i.startsWith(oe), Zi;\n s.locateFile ? (Zi = \"rr_pictofit_core_wrapper.wasm\", ol(Zi) || (Zi = N(Zi))) : Zi = new URL(\"rr_pictofit_core_wrapper.wasm\", self.location).href;\n function bl(i) {\n if (i == Zi && ii)\n return new Uint8Array(ii);\n if (M)\n return M(i);\n throw \"both async and sync fetching of the wasm failed\";\n }\n function be(i) {\n return !ii && (R || V) && typeof fetch == \"function\" ? fetch(i, { credentials: \"same-origin\" }).then((l) => {\n if (!l.ok)\n throw \"failed to load wasm binary file at '\" + i + \"'\";\n return l.arrayBuffer();\n }).catch(() => bl(i)) : Promise.resolve().then(() => bl(i));\n }\n function pl(i, l, a) {\n return be(i).then((t) => WebAssembly.instantiate(t, l)).then((t) => t).then(a, (t) => {\n ei(`failed to asynchronously prepare wasm: ${t}`), mi(t);\n });\n }\n function pe(i, l, a, t) {\n return !i && typeof WebAssembly.instantiateStreaming == \"function\" && !ol(l) && typeof fetch == \"function\" ? fetch(l, { credentials: \"same-origin\" }).then((e) => {\n var n = WebAssembly.instantiateStreaming(e, a);\n return n.then(t, function(r) {\n return ei(`wasm streaming compile failed: ${r}`), ei(\"falling back to ArrayBuffer instantiation\"), pl(l, a, t);\n });\n }) : pl(l, a, t);\n }\n function he() {\n var i = { a: Sn };\n function l(t, e) {\n return u = t.exports, u = K.instrumentWasmExports(u), z = u.fc, nl(), u.ic, ne(u.gc), ce(), u;\n }\n de();\n function a(t) {\n l(t.instance);\n }\n if (s.instantiateWasm)\n try {\n return s.instantiateWasm(i, l);\n } catch (t) {\n ei(`Module.instantiateWasm callback failed with error: ${t}`), b(t);\n }\n return pe(ii, Zi, i, a).catch(b), {};\n }\n function Ze(i) {\n return K.handleAsync(async () => {\n const l = P.toValue(i), a = new Uint8Array(l), t = new Blob([a]), e = await createImageBitmap(t), n = new OffscreenCanvas(e.width, e.height), r = n.getContext(\"2d\", { willReadFrequently: !0 });\n r.drawImage(e, 0, 0, e.width, e.height), e.close();\n const d = r.getImageData(0, 0, n.width, n.height), o = { width: n.width, height: n.height, data: d.data };\n return P.toHandle(o);\n });\n }\n function Ge(i, l) {\n return K.handleAsync(async () => {\n const t = await P.toValue(i).arrayBuffer(), e = new Uint8Array(t);\n J.set(e, l);\n });\n }\n function ye(i, l) {\n return K.handleAsync(async () => {\n const a = P.toValue(i), t = new Uint8Array(a);\n J.set(t, l);\n });\n }\n function ue(i, l) {\n return K.handleAsync(async () => {\n const a = P.toValue(i), t = new Uint8Array(a);\n l = gi(l);\n const e = l != \"\" ? new Blob([t], { type: l }) : new Blob([t]);\n return P.toHandle(e);\n });\n }\n function hl(i) {\n this.name = \"ExitStatus\", this.message = `Program terminated with exit(${i})`, this.status = i;\n }\n var Mi = (i) => {\n for (; i.length > 0; )\n i.shift()(s);\n }, me = s.noExitRuntime || !0, bi = [], Ci = 0, We = (i) => {\n var l = new Hi(i);\n return l.get_caught() || (l.set_caught(!0), Ci--), l.set_rethrown(!1), bi.push(l), tl(l.excPtr), l.get_exception_ptr();\n }, Xe = () => {\n if (!bi.length)\n return 0;\n var i = bi[bi.length - 1];\n return tl(i.excPtr), i.excPtr;\n }, ri = 0, xe = () => {\n X(0, 0);\n var i = bi.pop();\n Al(i.excPtr), ri = 0;\n };\n function Hi(i) {\n this.excPtr = i, this.ptr = i - 24, this.set_type = function(l) {\n T[this.ptr + 4 >> 2] = l;\n }, this.get_type = function() {\n return T[this.ptr + 4 >> 2];\n }, this.set_destructor = function(l) {\n T[this.ptr + 8 >> 2] = l;\n }, this.get_destructor = function() {\n return T[this.ptr + 8 >> 2];\n }, this.set_caught = function(l) {\n l = l ? 1 : 0, E[this.ptr + 12 >> 0] = l;\n }, this.get_caught = function() {\n return E[this.ptr + 12 >> 0] != 0;\n }, this.set_rethrown = function(l) {\n l = l ? 1 : 0, E[this.ptr + 13 >> 0] = l;\n }, this.get_rethrown = function() {\n return E[this.ptr + 13 >> 0] != 0;\n }, this.init = function(l, a) {\n this.set_adjusted_ptr(0), this.set_type(l), this.set_destructor(a);\n }, this.set_adjusted_ptr = function(l) {\n T[this.ptr + 16 >> 2] = l;\n }, this.get_adjusted_ptr = function() {\n return T[this.ptr + 16 >> 2];\n }, this.get_exception_ptr = function() {\n var l = ql(this.get_type());\n if (l)\n return T[this.excPtr >> 2];\n var a = this.get_adjusted_ptr();\n return a !== 0 ? a : this.excPtr;\n };\n }\n var Le = (i) => {\n throw ri || (ri = i), ri;\n }, Zl = (i) => {\n var l = ri;\n if (!l)\n return Ri(0), 0;\n var a = new Hi(l);\n a.set_adjusted_ptr(l);\n var t = a.get_type();\n if (!t)\n return Ri(0), l;\n for (var e in i) {\n var n = i[e];\n if (n === 0 || n === t)\n break;\n var r = a.ptr + 16;\n if ($l(n, t, r))\n return Ri(n), l;\n }\n return Ri(t), l;\n }, Se = () => Zl([]), Ye = (i) => Zl([i]), Gl = () => {\n var i = bi.pop();\n i || mi(\"no exception to throw\");\n var l = i.excPtr;\n throw i.get_rethrown() || (bi.push(i), i.set_rethrown(!0), i.set_caught(!1), Ci++), ri = l, ri;\n }, ve = (i) => {\n if (i) {\n var l = new Hi(i);\n bi.push(l), l.set_rethrown(!0), Gl();\n }\n }, ke = (i, l, a) => {\n var t = new Hi(i);\n throw t.init(l, a), ri = i, Ci++, ri;\n }, fe = () => Ci, yl = typeof TextDecoder < \"u\" ? new TextDecoder(\"utf8\") : void 0, ul = (i, l, a) => {\n for (var t = l + a, e = l; i[e] && !(e >= t); )\n ++e;\n if (e - l > 16 && i.buffer && yl)\n return yl.decode(i.subarray(l, e));\n for (var n = \"\"; l < e; ) {\n var r = i[l++];\n if (!(r & 128)) {\n n += String.fromCharCode(r);\n continue;\n }\n var d = i[l++] & 63;\n if ((r & 224) == 192) {\n n += String.fromCharCode((r & 31) << 6 | d);\n continue;\n }\n var o = i[l++] & 63;\n if ((r & 240) == 224 ? r = (r & 15) << 12 | d << 6 | o : r = (r & 7) << 18 | d << 12 | o << 6 | i[l++] & 63, r < 65536)\n n += String.fromCharCode(r);\n else {\n var p = r - 65536;\n n += String.fromCharCode(55296 | p >> 10, 56320 | p & 1023);\n }\n }\n return n;\n }, gi = (i, l) => i ? ul(J, i, l) : \"\";\n function Ve(i, l, a) {\n return 0;\n }\n function Ke(i, l, a) {\n return 0;\n }\n function Ie(i, l, a, t) {\n }\n var Re = (i) => {\n }, Ce = (i, l, a) => {\n }, He = (i, l, a, t, e) => {\n }, ge = () => {\n for (var i = new Array(256), l = 0; l < 256; ++l)\n i[l] = String.fromCharCode(l);\n ml = i;\n }, ml, D = (i) => {\n for (var l = \"\", a = i; J[a]; )\n l += ml[J[a++]];\n return l;\n }, Wi = {}, Gi = {}, Ti = {}, Xi, g = (i) => {\n throw new Xi(i);\n }, Wl, Fi = (i) => {\n throw new Wl(i);\n }, di = (i, l, a) => {\n i.forEach(function(d) {\n Ti[d] = l;\n });\n function t(d) {\n var o = a(d);\n o.length !== i.length && Fi(\"Mismatched type converter count\");\n for (var p = 0; p < i.length; ++p)\n ci(i[p], o[p]);\n }\n var e = new Array(l.length), n = [], r = 0;\n l.forEach((d, o) => {\n Gi.hasOwnProperty(d) ? e[o] = Gi[d] : (n.push(d), Wi.hasOwnProperty(d) || (Wi[d] = []), Wi[d].push(() => {\n e[o] = Gi[d], ++r, r === n.length && t(e);\n }));\n }), n.length === 0 && t(e);\n };\n function Te(i, l, a = {}) {\n var t = l.name;\n if (i || g(`type \"${t}\" must have a positive integer typeid pointer`), Gi.hasOwnProperty(i)) {\n if (a.ignoreDuplicateRegistrations)\n return;\n g(`Cannot register type '${t}' twice`);\n }\n if (Gi[i] = l, delete Ti[i], Wi.hasOwnProperty(i)) {\n var e = Wi[i];\n delete Wi[i], e.forEach((n) => n());\n }\n }\n function ci(i, l, a = {}) {\n if (!(\"argPackAdvance\" in l))\n throw new TypeError(\"registerType registeredInstance requires argPackAdvance\");\n return Te(i, l, a);\n }\n var pi = 8, Fe = (i, l, a, t) => {\n l = D(l), ci(i, { name: l, fromWireType: function(e) {\n return !!e;\n }, toWireType: function(e, n) {\n return n ? a : t;\n }, argPackAdvance: pi, readValueFromPointer: function(e) {\n return this.fromWireType(J[e]);\n }, destructorFunction: null });\n }, Pe = (i) => ({ count: i.count, deleteScheduled: i.deleteScheduled, preservePointerOnDelete: i.preservePointerOnDelete, ptr: i.ptr, ptrType: i.ptrType, smartPtr: i.smartPtr, smartPtrType: i.smartPtrType }), zi = (i) => {\n function l(a) {\n return a.$$.ptrType.registeredClass.name;\n }\n g(l(i) + \" instance already deleted\");\n }, Ei = !1, Xl = (i) => {\n }, Je = (i) => {\n i.smartPtr ? i.smartPtrType.rawDestructor(i.smartPtr) : i.ptrType.registeredClass.rawDestructor(i.ptr);\n }, xl = (i) => {\n i.count.value -= 1;\n var l = i.count.value === 0;\n l && Je(i);\n }, Ll = (i, l, a) => {\n if (l === a)\n return i;\n if (a.baseClass === void 0)\n return null;\n var t = Ll(i, l, a.baseClass);\n return t === null ? null : a.downcast(t);\n }, Sl = {}, we = () => Object.keys(ki).length, Ue = () => {\n var i = [];\n for (var l in ki)\n ki.hasOwnProperty(l) && i.push(ki[l]);\n return i;\n }, Yi = [], Di = () => {\n for (; Yi.length; ) {\n var i = Yi.pop();\n i.$$.deleteScheduled = !1, i.delete();\n }\n }, vi, Ne = (i) => {\n vi = i, Yi.length && vi && vi(Di);\n }, je = () => {\n s.getInheritedInstanceCount = we, s.getLiveInheritedInstances = Ue, s.flushPendingDeletes = Di, s.setDelayFunction = Ne;\n }, ki = {}, Be = (i, l) => {\n for (l === void 0 && g(\"ptr should not be undefined\"); i.baseClass; )\n l = i.upcast(l), i = i.baseClass;\n return l;\n }, Qe = (i, l) => (l = Be(i, l), ki[l]), Pi = (i, l) => {\n (!l.ptrType || !l.ptr) && Fi(\"makeClassHandle requires ptr and ptrType\");\n var a = !!l.smartPtrType, t = !!l.smartPtr;\n return a !== t && Fi(\"Both smartPtrType and smartPtr must be specified\"), l.count = { value: 1 }, fi(Object.create(i, { $$: { value: l } }));\n };\n function _e(i) {\n var l = this.getPointee(i);\n if (!l)\n return this.destructor(i), null;\n var a = Qe(this.registeredClass, l);\n if (a !== void 0) {\n if (a.$$.count.value === 0)\n return a.$$.ptr = l, a.$$.smartPtr = i, a.clone();\n var t = a.clone();\n return this.destructor(i), t;\n }\n function e() {\n return this.isSmartPointer ? Pi(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: l, smartPtrType: this, smartPtr: i }) : Pi(this.registeredClass.instancePrototype, { ptrType: this, ptr: i });\n }\n var n = this.registeredClass.getActualType(l), r = Sl[n];\n if (!r)\n return e.call(this);\n var d;\n this.isConst ? d = r.constPointerType : d = r.pointerType;\n var o = Ll(l, this.registeredClass, d.registeredClass);\n return o === null ? e.call(this) : this.isSmartPointer ? Pi(d.registeredClass.instancePrototype, { ptrType: d, ptr: o, smartPtrType: this, smartPtr: i }) : Pi(d.registeredClass.instancePrototype, { ptrType: d, ptr: o });\n }\n var fi = (i) => typeof FinalizationRegistry > \"u\" ? (fi = (l) => l, i) : (Ei = new FinalizationRegistry((l) => {\n xl(l.$$);\n }), fi = (l) => {\n var a = l.$$, t = !!a.smartPtr;\n if (t) {\n var e = { $$: a };\n Ei.register(l, e, l);\n }\n return l;\n }, Xl = (l) => Ei.unregister(l), fi(i)), Me = () => {\n Object.assign(Ji.prototype, { isAliasOf(i) {\n if (!(this instanceof Ji) || !(i instanceof Ji))\n return !1;\n var l = this.$$.ptrType.registeredClass, a = this.$$.ptr;\n i.$$ = i.$$;\n for (var t = i.$$.ptrType.registeredClass, e = i.$$.ptr; l.baseClass; )\n a = l.upcast(a), l = l.baseClass;\n for (; t.baseClass; )\n e = t.upcast(e), t = t.baseClass;\n return l === t && a === e;\n }, clone() {\n if (this.$$.ptr || zi(this), this.$$.preservePointerOnDelete)\n return this.$$.count.value += 1, this;\n var i = fi(Object.create(Object.getPrototypeOf(this), { $$: { value: Pe(this.$$) } }));\n return i.$$.count.value += 1, i.$$.deleteScheduled = !1, i;\n }, delete() {\n this.$$.ptr || zi(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && g(\"Object already scheduled for deletion\"), Xl(this), xl(this.$$), this.$$.preservePointerOnDelete || (this.$$.smartPtr = void 0, this.$$.ptr = void 0);\n }, isDeleted() {\n return !this.$$.ptr;\n }, deleteLater() {\n return this.$$.ptr || zi(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && g(\"Object already scheduled for deletion\"), Yi.push(this), Yi.length === 1 && vi && vi(Di), this.$$.deleteScheduled = !0, this;\n } });\n };\n function Ji() {\n }\n var Vi = (i, l) => Object.defineProperty(l, \"name\", { value: i }), Yl = (i, l, a) => {\n if (i[l].overloadTable === void 0) {\n var t = i[l];\n i[l] = function() {\n return i[l].overloadTable.hasOwnProperty(arguments.length) || g(`Function '${a}' called with an invalid number of arguments (${arguments.length}) - expects one of (${i[l].overloadTable})!`), i[l].overloadTable[arguments.length].apply(this, arguments);\n }, i[l].overloadTable = [], i[l].overloadTable[t.argCount] = t;\n }\n }, vl = (i, l, a) => {\n s.hasOwnProperty(i) ? ((a === void 0 || s[i].overloadTable !== void 0 && s[i].overloadTable[a] !== void 0) && g(`Cannot register public name '${i}' twice`), Yl(s, i, i), s.hasOwnProperty(a) && g(`Cannot register multiple overloads of a function with the same number of arguments (${a})!`), s[i].overloadTable[a] = l) : (s[i] = l, a !== void 0 && (s[i].numArguments = a));\n }, ze = 48, Ee = 57, De = (i) => {\n if (i === void 0)\n return \"_unknown\";\n i = i.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var l = i.charCodeAt(0);\n return l >= ze && l <= Ee ? `_${i}` : i;\n };\n function Oe(i, l, a, t, e, n, r, d) {\n this.name = i, this.constructor = l, this.instancePrototype = a, this.rawDestructor = t, this.baseClass = e, this.getActualType = n, this.upcast = r, this.downcast = d, this.pureVirtualFunctions = [];\n }\n var wi = (i, l, a) => {\n for (; l !== a; )\n l.upcast || g(`Expected null or instance of ${a.name}, got an instance of ${l.name}`), i = l.upcast(i), l = l.baseClass;\n return i;\n };\n function Ae(i, l) {\n if (l === null)\n return this.isReference && g(`null is not a valid ${this.name}`), 0;\n l.$$ || g(`Cannot pass \"${il(l)}\" as a ${this.name}`), l.$$.ptr || g(`Cannot pass deleted object as a pointer of type ${this.name}`);\n var a = l.$$.ptrType.registeredClass, t = wi(l.$$.ptr, a, this.registeredClass);\n return t;\n }\n function $e(i, l) {\n var a;\n if (l === null)\n return this.isReference && g(`null is not a valid ${this.name}`), this.isSmartPointer ? (a = this.rawConstructor(), i !== null && i.push(this.rawDestructor, a), a) : 0;\n l.$$ || g(`Cannot pass \"${il(l)}\" as a ${this.name}`), l.$$.ptr || g(`Cannot pass deleted object as a pointer of type ${this.name}`), !this.isConst && l.$$.ptrType.isConst && g(`Cannot convert argument of type ${l.$$.smartPtrType ? l.$$.smartPtrType.name : l.$$.ptrType.name} to parameter type ${this.name}`);\n var t = l.$$.ptrType.registeredClass;\n if (a = wi(l.$$.ptr, t, this.registeredClass), this.isSmartPointer)\n switch (l.$$.smartPtr === void 0 && g(\"Passing raw pointer to smart pointer is illegal\"), this.sharingPolicy) {\n case 0:\n l.$$.smartPtrType === this ? a = l.$$.smartPtr : g(`Cannot convert argument of type ${l.$$.smartPtrType ? l.$$.smartPtrType.name : l.$$.ptrType.name} to parameter type ${this.name}`);\n break;\n case 1:\n a = l.$$.smartPtr;\n break;\n case 2:\n if (l.$$.smartPtrType === this)\n a = l.$$.smartPtr;\n else {\n var e = l.clone();\n a = this.rawShare(a, P.toHandle(() => e.delete())), i !== null && i.push(this.rawDestructor, a);\n }\n break;\n default:\n g(\"Unsupporting sharing policy\");\n }\n return a;\n }\n function qe(i, l) {\n if (l === null)\n return this.isReference && g(`null is not a valid ${this.name}`), 0;\n l.$$ || g(`Cannot pass \"${il(l)}\" as a ${this.name}`), l.$$.ptr || g(`Cannot pass deleted object as a pointer of type ${this.name}`), l.$$.ptrType.isConst && g(`Cannot convert argument of type ${l.$$.ptrType.name} to parameter type ${this.name}`);\n var a = l.$$.ptrType.registeredClass, t = wi(l.$$.ptr, a, this.registeredClass);\n return t;\n }\n function kl(i) {\n return this.fromWireType(T[i >> 2]);\n }\n var is = () => {\n Object.assign(Ki.prototype, { getPointee(i) {\n return this.rawGetPointee && (i = this.rawGetPointee(i)), i;\n }, destructor(i) {\n this.rawDestructor && this.rawDestructor(i);\n }, argPackAdvance: pi, readValueFromPointer: kl, deleteObject(i) {\n i !== null && i.delete();\n }, fromWireType: _e });\n };\n function Ki(i, l, a, t, e, n, r, d, o, p, y) {\n this.name = i, this.registeredClass = l, this.isReference = a, this.isConst = t, this.isSmartPointer = e, this.pointeeType = n, this.sharingPolicy = r, this.rawGetPointee = d, this.rawConstructor = o, this.rawShare = p, this.rawDestructor = y, !e && l.baseClass === void 0 ? t ? (this.toWireType = Ae, this.destructorFunction = null) : (this.toWireType = qe, this.destructorFunction = null) : this.toWireType = $e;\n }\n var fl = (i, l, a) => {\n s.hasOwnProperty(i) || Fi(\"Replacing nonexistant public symbol\"), s[i].overloadTable !== void 0 && a !== void 0 ? s[i].overloadTable[a] = l : (s[i] = l, s[i].argCount = a);\n }, ls = (i, l, a) => {\n var t = s[\"dynCall_\" + i];\n return a && a.length ? t.apply(null, [l].concat(a)) : t.call(null, l);\n }, as = (i, l, a) => {\n var t = ls(i, l, a);\n return t;\n }, ts = (i, l) => {\n var a = [];\n return function() {\n return a.length = 0, Object.assign(a, arguments), as(i, l, a);\n };\n }, li = (i, l) => {\n i = D(i);\n function a() {\n return ts(i, l);\n }\n var t = a();\n return typeof t != \"function\" && g(`unknown function pointer with signature ${i}: ${l}`), t;\n }, es = (i, l) => {\n var a = Vi(l, function(t) {\n this.name = l, this.message = t;\n var e = new Error(t).stack;\n e !== void 0 && (this.stack = this.toString() + `\n` + e.replace(/^Error(:[^\\n]*)?\\n/, \"\"));\n });\n return a.prototype = Object.create(i.prototype), a.prototype.constructor = a, a.prototype.toString = function() {\n return this.message === void 0 ? this.name : `${this.name}: ${this.message}`;\n }, a;\n }, Vl, Kl = (i) => {\n var l = Ol(i), a = D(l);\n return ni(l), a;\n }, xi = (i, l) => {\n var a = [], t = {};\n function e(n) {\n if (!t[n] && !Gi[n]) {\n if (Ti[n]) {\n Ti[n].forEach(e);\n return;\n }\n a.push(n), t[n] = !0;\n }\n }\n throw l.forEach(e), new Vl(`${i}: ` + a.map(Kl).join([\", \"]));\n }, ss = (i, l, a, t, e, n, r, d, o, p, y, m, W) => {\n y = D(y), n = li(e, n), d && (d = li(r, d)), p && (p = li(o, p)), W = li(m, W);\n var Y = De(y);\n vl(Y, function() {\n xi(`Cannot construct ${y} due to unbound types`, [t]);\n }), di([i, l, a], t ? [t] : [], function(k) {\n k = k[0];\n var C, F;\n t ? (C = k.registeredClass, F = C.instancePrototype) : F = Ji.prototype;\n var w = Vi(y, function() {\n if (Object.getPrototypeOf(this) !== S)\n throw new Xi(\"Use 'new' to construct \" + y);\n if (f.constructor_body === void 0)\n throw new Xi(y + \" has no accessible constructor\");\n var _i = f.constructor_body[arguments.length];\n if (_i === void 0)\n throw new Xi(`Tried to invoke ctor of ${y} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(f.constructor_body).toString()}) parameters instead!`);\n return _i.apply(this, arguments);\n }), S = Object.create(F, { constructor: { value: w } });\n w.prototype = S;\n var f = new Oe(y, w, S, W, C, n, d, p);\n f.baseClass && (f.baseClass.__derivedClasses === void 0 && (f.baseClass.__derivedClasses = []), f.baseClass.__derivedClasses.push(f));\n var q = new Ki(y, f, !0, !1, !1), _ = new Ki(y + \"*\", f, !1, !1, !1), yi = new Ki(y + \" const*\", f, !1, !0, !1);\n return Sl[i] = { pointerType: _, constPointerType: yi }, fl(Y, w), [q, _, yi];\n });\n }, Oi = (i, l) => {\n for (var a = [], t = 0; t < i; t++)\n a.push(T[l + t * 4 >> 2]);\n return a;\n }, Ai = (i) => {\n for (; i.length; ) {\n var l = i.pop(), a = i.pop();\n a(l);\n }\n };\n function Il(i, l) {\n if (!(i instanceof Function))\n throw new TypeError(`new_ called with constructor type ${typeof i} which is not a function`);\n var a = Vi(i.name || \"unknownFunctionName\", function() {\n });\n a.prototype = i.prototype;\n var t = new a(), e = i.apply(t, l);\n return e instanceof Object ? e : t;\n }\n var Ui = (i) => {\n try {\n return i();\n } catch (l) {\n mi(l);\n }\n }, Rl = (i) => {\n if (i instanceof hl || i == \"unwind\")\n return Q;\n I(1, i);\n }, ns = 0, Cl = () => me || ns > 0, rs = (i) => {\n Q = i, Cl() || (s.onExit && s.onExit(i), $ = !0), I(i, new hl(i));\n }, ds = (i, l) => {\n Q = i, rs(i);\n }, Hl = ds, cs = () => {\n if (!Cl())\n try {\n Hl(Q);\n } catch (i) {\n Rl(i);\n }\n }, gl = (i) => {\n if (!$)\n try {\n i(), cs();\n } catch (l) {\n Rl(l);\n }\n }, K = { instrumentWasmImports(i) {\n var l = /^(invoke_.*|__asyncjs__.*)$/;\n for (var a in i)\n (function(t) {\n var e = i[t];\n e.sig, typeof e == \"function\" && (e.isAsync || l.test(t));\n })(a);\n }, instrumentWasmExports(i) {\n var l = {};\n for (var a in i)\n (function(t) {\n var e = i[t];\n typeof e == \"function\" ? l[t] = function() {\n K.exportCallStack.push(t);\n try {\n return e.apply(null, arguments);\n } finally {\n $ || (K.exportCallStack.pop(), K.maybeStopUnwind());\n }\n } : l[t] = e;\n })(a);\n return l;\n }, State: { Normal: 0, Unwinding: 1, Rewinding: 2, Disabled: 3 }, state: 0, StackSize: 4096, currData: null, handleSleepReturnValue: 0, exportCallStack: [], callStackNameToId: {}, callStackIdToName: {}, callStackId: 0, asyncPromiseHandlers: null, sleepCallbacks: [], getCallStackId(i) {\n var l = K.callStackNameToId[i];\n return l === void 0 && (l = K.callStackId++, K.callStackNameToId[i] = l, K.callStackIdToName[l] = i), l;\n }, maybeStopUnwind() {\n K.currData && K.state === K.State.Unwinding && K.exportCallStack.length === 0 && (K.state = K.State.Normal, Ui(Et), typeof Fibers < \"u\" && Fibers.trampoline());\n }, whenDone() {\n return new Promise((i, l) => {\n K.asyncPromiseHandlers = { resolve: i, reject: l };\n });\n }, allocateData() {\n var i = Bi(12 + K.StackSize);\n return K.setDataHeader(i, i + 12, K.StackSize), K.setDataRewindFunc(i), i;\n }, setDataHeader(i, l, a) {\n T[i >> 2] = l, T[i + 4 >> 2] = l + a;\n }, setDataRewindFunc(i) {\n var l = K.exportCallStack[0], a = K.getCallStackId(l);\n U[i + 8 >> 2] = a;\n }, getDataRewindFunc(i) {\n var l = U[i + 8 >> 2], a = K.callStackIdToName[l], t = u[a];\n return t;\n }, doRewind(i) {\n var l = K.getDataRewindFunc(i);\n return l();\n }, handleSleep(i) {\n if (!$) {\n if (K.state === K.State.Normal) {\n var l = !1, a = !1;\n i((t = 0) => {\n if (!$ && (K.handleSleepReturnValue = t, l = !0, !!a)) {\n K.state = K.State.Rewinding, Ui(() => Dt(K.currData)), typeof Browser < \"u\" && Browser.mainLoop.func && Browser.mainLoop.resume();\n var e, n = !1;\n try {\n e = K.doRewind(K.currData);\n } catch (o) {\n e = o, n = !0;\n }\n var r = !1;\n if (!K.currData) {\n var d = K.asyncPromiseHandlers;\n d && (K.asyncPromiseHandlers = null, (n ? d.reject : d.resolve)(e), r = !0);\n }\n if (n && !r)\n throw e;\n }\n }), a = !0, l || (K.state = K.State.Unwinding, K.currData = K.allocateData(), typeof Browser < \"u\" && Browser.mainLoop.func && Browser.mainLoop.pause(), Ui(() => zt(K.currData)));\n } else\n K.state === K.State.Rewinding ? (K.state = K.State.Normal, Ui(Ot), ni(K.currData), K.currData = null, K.sleepCallbacks.forEach((t) => gl(t))) : mi(`invalid state: ${K.state}`);\n return K.handleSleepReturnValue;\n }\n }, handleAsync(i) {\n return K.handleSleep((l) => {\n i().then(l);\n });\n } };\n function $i(i, l, a, t, e, n) {\n var r = l.length;\n r < 2 && g(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n for (var d = l[1] !== null && a !== null, o = !1, p = 1; p < l.length; ++p)\n if (l[p] !== null && l[p].destructorFunction === void 0) {\n o = !0;\n break;\n }\n for (var y = l[0].name !== \"void\", m = \"\", W = \"\", p = 0; p < r - 2; ++p)\n m += (p !== 0 ? \", \" : \"\") + \"arg\" + p, W += (p !== 0 ? \", \" : \"\") + \"arg\" + p + \"Wired\";\n var Y = `\n return function (${m}) {\n if (arguments.length !== ${r - 2}) {\n throwBindingError('function ${i} called with ' + arguments.length + ' arguments, expected ${r - 2}');\n }`;\n o && (Y += `var destructors = [];\n`);\n var k = o ? \"destructors\" : \"null\", C = [\"throwBindingError\", \"invoker\", \"fn\", \"runDestructors\", \"retType\", \"classParam\"], F = [g, t, e, Ai, l[0], l[1]];\n d && (Y += \"var thisWired = classParam.toWireType(\" + k + `, this);\n`);\n for (var p = 0; p < r - 2; ++p)\n Y += \"var arg\" + p + \"Wired = argType\" + p + \".toWireType(\" + k + \", arg\" + p + \"); // \" + l[p + 2].name + `\n`, C.push(\"argType\" + p), F.push(l[p + 2]);\n if (d && (W = \"thisWired\" + (W.length > 0 ? \", \" : \"\") + W), Y += (y || n ? \"var rv = \" : \"\") + \"invoker(fn\" + (W.length > 0 ? \", \" : \"\") + W + `);\n`, C.push(\"Asyncify\"), F.push(K), Y += \"function onDone(\" + (y ? \"rv\" : \"\") + `) {\n`, o)\n Y += `runDestructors(destructors);\n`;\n else\n for (var p = d ? 1 : 2; p < l.length; ++p) {\n var w = p === 1 ? \"thisWired\" : \"arg\" + (p - 2) + \"Wired\";\n l[p].destructorFunction !== null && (Y += w + \"_dtor(\" + w + \"); // \" + l[p].name + `\n`, C.push(w + \"_dtor\"), F.push(l[p].destructorFunction));\n }\n y && (Y += `var ret = retType.fromWireType(rv);\nreturn ret;\n`), Y += `}\n`, Y += \"return Asyncify.currData ? Asyncify.whenDone().then(onDone) : onDone(\" + (y ? \"rv\" : \"\") + `);\n`, Y += `}\n`, C.push(Y);\n var S = Il(Function, C).apply(null, F);\n return Vi(i, S);\n }\n var os = (i, l, a, t, e, n) => {\n var r = Oi(l, a);\n e = li(t, e), di([], [i], function(d) {\n d = d[0];\n var o = `constructor ${d.name}`;\n if (d.registeredClass.constructor_body === void 0 && (d.registeredClass.constructor_body = []), d.registeredClass.constructor_body[l - 1] !== void 0)\n throw new Xi(`Cannot register multiple constructors with identical number of parameters (${l - 1}) for class '${d.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n return d.registeredClass.constructor_body[l - 1] = () => {\n xi(`Cannot construct ${d.name} due to unbound types`, r);\n }, di([], r, (p) => (p.splice(1, 0, null), d.registeredClass.constructor_body[l - 1] = $i(o, p, null, e, n), [])), [];\n });\n }, Tl = (i) => {\n i = i.trim();\n const l = i.indexOf(\"(\");\n return l !== -1 ? i.substr(0, l) : i;\n }, bs = (i, l, a, t, e, n, r, d, o) => {\n var p = Oi(a, t);\n l = D(l), l = Tl(l), n = li(e, n), di([], [i], function(y) {\n y = y[0];\n var m = `${y.name}.${l}`;\n l.startsWith(\"@@\") && (l = Symbol[l.substring(2)]), d && y.registeredClass.pureVirtualFunctions.push(l);\n function W() {\n xi(`Cannot call ${m} due to unbound types`, p);\n }\n var Y = y.registeredClass.instancePrototype, k = Y[l];\n return k === void 0 || k.overloadTable === void 0 && k.className !== y.name && k.argCount === a - 2 ? (W.argCount = a - 2, W.className = y.name, Y[l] = W) : (Yl(Y, l, m), Y[l].overloadTable[a - 2] = W), di([], p, function(C) {\n var F = $i(m, C, y, n, r, o);\n return Y[l].overloadTable === void 0 ? (F.argCount = a - 2, Y[l] = F) : Y[l].overloadTable[a - 2] = F, [];\n }), [];\n });\n }, Fl = (i, l, a) => (i instanceof Object || g(`${a} with invalid \"this\": ${i}`), i instanceof l.registeredClass.constructor || g(`${a} incompatible with \"this\" of type ${i.constructor.name}`), i.$$.ptr || g(`cannot call emscripten binding method ${a} on deleted object`), wi(i.$$.ptr, i.$$.ptrType.registeredClass, l.registeredClass)), ps = (i, l, a, t, e, n, r, d, o, p) => {\n l = D(l), e = li(t, e), di([], [i], function(y) {\n y = y[0];\n var m = `${y.name}.${l}`, W = { get() {\n xi(`Cannot access ${m} due to unbound types`, [a, r]);\n }, enumerable: !0, configurable: !0 };\n return o ? W.set = () => xi(`Cannot access ${m} due to unbound types`, [a, r]) : W.set = (Y) => g(m + \" is a read-only property\"), Object.defineProperty(y.registeredClass.instancePrototype, l, W), di([], o ? [a, r] : [a], function(Y) {\n var k = Y[0], C = { get() {\n var w = Fl(this, y, m + \" getter\");\n return k.fromWireType(e(n, w));\n }, enumerable: !0 };\n if (o) {\n o = li(d, o);\n var F = Y[1];\n C.set = function(w) {\n var S = Fl(this, y, m + \" setter\"), f = [];\n o(p, S, F.toWireType(f, w)), Ai(f);\n };\n }\n return Object.defineProperty(y.registeredClass.instancePrototype, l, C), [];\n }), [];\n });\n };\n function hs() {\n Object.assign(Pl.prototype, { get(i) {\n return this.allocated[i];\n }, has(i) {\n return this.allocated[i] !== void 0;\n }, allocate(i) {\n var l = this.freelist.pop() || this.allocated.length;\n return this.allocated[l] = i, l;\n }, free(i) {\n this.allocated[i] = void 0, this.freelist.push(i);\n } });\n }\n function Pl() {\n this.allocated = [void 0], this.freelist = [];\n }\n var ti = new Pl(), qi = (i) => {\n i >= ti.reserved && --ti.get(i).refcount === 0 && ti.free(i);\n }, Zs = () => {\n for (var i = 0, l = ti.reserved; l < ti.allocated.length; ++l)\n ti.allocated[l] !== void 0 && ++i;\n return i;\n }, Gs = () => {\n ti.allocated.push({ value: void 0 }, { value: null }, { value: !0 }, { value: !1 }), ti.reserved = ti.allocated.length, s.count_emval_handles = Zs;\n }, P = { toValue: (i) => (i || g(\"Cannot use deleted val. handle = \" + i), ti.get(i).value), toHandle: (i) => {\n switch (i) {\n case void 0:\n return 1;\n case null:\n return 2;\n case !0:\n return 3;\n case !1:\n return 4;\n default:\n return ti.allocate({ refcount: 1, value: i });\n }\n } };\n function Jl(i) {\n return this.fromWireType(U[i >> 2]);\n }\n var ys = (i, l) => {\n l = D(l), ci(i, { name: l, fromWireType: (a) => {\n var t = P.toValue(a);\n return qi(a), t;\n }, toWireType: (a, t) => P.toHandle(t), argPackAdvance: pi, readValueFromPointer: Jl, destructorFunction: null });\n }, il = (i) => {\n if (i === null)\n return \"null\";\n var l = typeof i;\n return l === \"object\" || l === \"array\" || l === \"function\" ? i.toString() : \"\" + i;\n }, us = (i, l) => {\n switch (l) {\n case 4:\n return function(a) {\n return this.fromWireType(oi[a >> 2]);\n };\n case 8:\n return function(a) {\n return this.fromWireType(Li[a >> 3]);\n };\n default:\n throw new TypeError(`invalid float width (${l}): ${i}`);\n }\n }, ms = (i, l, a) => {\n l = D(l), ci(i, { name: l, fromWireType: (t) => t, toWireType: (t, e) => e, argPackAdvance: pi, readValueFromPointer: us(l, a), destructorFunction: null });\n }, Ws = (i, l, a, t, e, n, r) => {\n var d = Oi(l, a);\n i = D(i), i = Tl(i), e = li(t, e), vl(i, function() {\n xi(`Cannot call ${i} due to unbound types`, d);\n }, l - 1), di([], d, function(o) {\n var p = [o[0], null].concat(o.slice(1));\n return fl(i, $i(i, p, null, e, n, r), l - 1), [];\n });\n }, Xs = (i, l, a) => {\n switch (l) {\n case 1:\n return a ? (t) => E[t >> 0] : (t) => J[t >> 0];\n case 2:\n return a ? (t) => j[t >> 1] : (t) => ai[t >> 1];\n case 4:\n return a ? (t) => U[t >> 2] : (t) => T[t >> 2];\n default:\n throw new TypeError(`invalid integer width (${l}): ${i}`);\n }\n }, xs = (i, l, a, t, e) => {\n l = D(l);\n var n = (y) => y;\n if (t === 0) {\n var r = 32 - 8 * a;\n n = (y) => y << r >>> r;\n }\n var d = l.includes(\"unsigned\"), o = (y, m) => {\n }, p;\n d ? p = function(y, m) {\n return o(m, this.name), m >>> 0;\n } : p = function(y, m) {\n return o(m, this.name), m;\n }, ci(i, { name: l, fromWireType: n, toWireType: p, argPackAdvance: pi, readValueFromPointer: Xs(l, a, t !== 0), destructorFunction: null });\n }, Ls = (i, l, a) => {\n var t = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array], e = t[l];\n function n(r) {\n var d = T[r >> 2], o = T[r + 4 >> 2];\n return new e(E.buffer, o, d);\n }\n a = D(a), ci(i, { name: a, fromWireType: n, argPackAdvance: pi, readValueFromPointer: n }, { ignoreDuplicateRegistrations: !0 });\n }, Ss = (i, l, a, t, e, n, r, d, o, p, y, m) => {\n a = D(a), n = li(e, n), d = li(r, d), p = li(o, p), m = li(y, m), di([i], [l], function(W) {\n W = W[0];\n var Y = new Ki(a, W.registeredClass, !1, !1, !0, W, t, n, d, p, m);\n return [Y];\n });\n }, wl = (i, l, a, t) => {\n if (!(t > 0))\n return 0;\n for (var e = a, n = a + t - 1, r = 0; r < i.length; ++r) {\n var d = i.charCodeAt(r);\n if (d >= 55296 && d <= 57343) {\n var o = i.charCodeAt(++r);\n d = 65536 + ((d & 1023) << 10) | o & 1023;\n }\n if (d <= 127) {\n if (a >= n)\n break;\n l[a++] = d;\n } else if (d <= 2047) {\n if (a + 1 >= n)\n break;\n l[a++] = 192 | d >> 6, l[a++] = 128 | d & 63;\n } else if (d <= 65535) {\n if (a + 2 >= n)\n break;\n l[a++] = 224 | d >> 12, l[a++] = 128 | d >> 6 & 63, l[a++] = 128 | d & 63;\n } else {\n if (a + 3 >= n)\n break;\n l[a++] = 240 | d >> 18, l[a++] = 128 | d >> 12 & 63, l[a++] = 128 | d >> 6 & 63, l[a++] = 128 | d & 63;\n }\n }\n return l[a] = 0, a - e;\n }, Ys = (i, l, a) => wl(i, J, l, a), Ul = (i) => {\n for (var l = 0, a = 0; a < i.length; ++a) {\n var t = i.charCodeAt(a);\n t <= 127 ? l++ : t <= 2047 ? l += 2 : t >= 55296 && t <= 57343 ? (l += 4, ++a) : l += 3;\n }\n return l;\n }, vs = (i, l) => {\n l = D(l);\n var a = l === \"std::string\";\n ci(i, { name: l, fromWireType(t) {\n var e = T[t >> 2], n = t + 4, r;\n if (a)\n for (var d = n, o = 0; o <= e; ++o) {\n var p = n + o;\n if (o == e || J[p] == 0) {\n var y = p - d, m = gi(d, y);\n r === void 0 ? r = m : (r += String.fromCharCode(0), r += m), d = p + 1;\n }\n }\n else {\n for (var W = new Array(e), o = 0; o < e; ++o)\n W[o] = String.fromCharCode(J[n + o]);\n r = W.join(\"\");\n }\n return ni(t), r;\n }, toWireType(t, e) {\n e instanceof ArrayBuffer && (e = new Uint8Array(e));\n var n, r = typeof e == \"string\";\n r || e instanceof Uint8Array || e instanceof Uint8ClampedArray || e instanceof Int8Array || g(\"Cannot pass non-string to std::string\"), a && r ? n = Ul(e) : n = e.length;\n var d = Bi(4 + n + 1), o = d + 4;\n if (T[d >> 2] = n, a && r)\n Ys(e, o, n + 1);\n else if (r)\n for (var p = 0; p < n; ++p) {\n var y = e.charCodeAt(p);\n y > 255 && (ni(o), g(\"String has UTF-16 code units that do not fit in 8 bits\")), J[o + p] = y;\n }\n else\n for (var p = 0; p < n; ++p)\n J[o + p] = e[p];\n return t !== null && t.push(ni, d), d;\n }, argPackAdvance: pi, readValueFromPointer: kl, destructorFunction(t) {\n ni(t);\n } });\n }, Nl = typeof TextDecoder < \"u\" ? new TextDecoder(\"utf-16le\") : void 0, ks = (i, l) => {\n for (var a = i, t = a >> 1, e = t + l / 2; !(t >= e) && ai[t]; )\n ++t;\n if (a = t << 1, a - i > 32 && Nl)\n return Nl.decode(J.subarray(i, a));\n for (var n = \"\", r = 0; !(r >= l / 2); ++r) {\n var d = j[i + r * 2 >> 1];\n if (d == 0)\n break;\n n += String.fromCharCode(d);\n }\n return n;\n }, fs = (i, l, a) => {\n if (a === void 0 && (a = 2147483647), a < 2)\n return 0;\n a -= 2;\n for (var t = l, e = a < i.length * 2 ? a / 2 : i.length, n = 0; n < e; ++n) {\n var r = i.charCodeAt(n);\n j[l >> 1] = r, l += 2;\n }\n return j[l >> 1] = 0, l - t;\n }, Vs = (i) => i.length * 2, Ks = (i, l) => {\n for (var a = 0, t = \"\"; !(a >= l / 4); ) {\n var e = U[i + a * 4 >> 2];\n if (e == 0)\n break;\n if (++a, e >= 65536) {\n var n = e - 65536;\n t += String.fromCharCode(55296 | n >> 10, 56320 | n & 1023);\n } else\n t += String.fromCharCode(e);\n }\n return t;\n }, Is = (i, l, a) => {\n if (a === void 0 && (a = 2147483647), a < 4)\n return 0;\n for (var t = l, e = t + a - 4, n = 0; n < i.length; ++n) {\n var r = i.charCodeAt(n);\n if (r >= 55296 && r <= 57343) {\n var d = i.charCodeAt(++n);\n r = 65536 + ((r & 1023) << 10) | d & 1023;\n }\n if (U[l >> 2] = r, l += 4, l + 4 > e)\n break;\n }\n return U[l >> 2] = 0, l - t;\n }, Rs = (i) => {\n for (var l = 0, a = 0; a < i.length; ++a) {\n var t = i.charCodeAt(a);\n t >= 55296 && t <= 57343 && ++a, l += 4;\n }\n return l;\n }, Cs = (i, l, a) => {\n a = D(a);\n var t, e, n, r, d;\n l === 2 ? (t = ks, e = fs, r = Vs, n = () => ai, d = 1) : l === 4 && (t = Ks, e = Is, r = Rs, n = () => T, d = 2), ci(i, { name: a, fromWireType: (o) => {\n for (var p = T[o >> 2], y = n(), m, W = o + 4, Y = 0; Y <= p; ++Y) {\n var k = o + 4 + Y * l;\n if (Y == p || y[k >> d] == 0) {\n var C = k - W, F = t(W, C);\n m === void 0 ? m = F : (m += String.fromCharCode(0), m += F), W = k + l;\n }\n }\n return ni(o), m;\n }, toWireType: (o, p) => {\n typeof p != \"string\" && g(`Cannot pass non-string to C++ string type ${a}`);\n var y = r(p), m = Bi(4 + y + l);\n return T[m >> 2] = y >> d, e(p, m + 4, y + l), o !== null && o.push(ni, m), m;\n }, argPackAdvance: pi, readValueFromPointer: Jl, destructorFunction(o) {\n ni(o);\n } });\n }, Hs = (i, l) => {\n l = D(l), ci(i, { isVoid: !0, name: l, argPackAdvance: 0, fromWireType: () => {\n }, toWireType: (a, t) => {\n } });\n }, gs = 1, Ts = () => gs, Fs = () => {\n throw 1 / 0;\n }, ll = (i, l) => {\n var a = Gi[i];\n return a === void 0 && g(l + \" has unknown type \" + Kl(i)), a;\n }, jl = (i, l, a) => {\n var t = [], e = i.toWireType(t, a);\n return t.length && (T[l >> 2] = P.toHandle(t)), e;\n }, Ps = (i, l, a) => (i = P.toValue(i), l = ll(l, \"emval::as\"), jl(l, a, i)), Bl = (i) => K.handleAsync(() => (i = P.toValue(i), i.then(P.toHandle)));\n Bl.isAsync = !0;\n var Ni = [], Js = (i, l, a, t) => (i = Ni[i], l = P.toValue(l), i(null, l, a, t)), ws = {}, Ql = (i) => {\n var l = ws[i];\n return l === void 0 ? D(i) : l;\n }, Us = (i, l, a, t, e) => (i = Ni[i], l = P.toValue(l), a = Ql(a), i(l, l[a], t, e)), Ns = (i, l) => (i = P.toValue(i), l = P.toValue(l), i == l), js = (i) => {\n var l = Ni.length;\n return Ni.push(i), l;\n }, Bs = (i, l) => {\n for (var a = new Array(i), t = 0; t < i; ++t)\n a[t] = ll(T[l + t * 4 >> 2], \"parameter \" + t);\n return a;\n }, Qs = (i, l, a) => {\n var t = Bs(i, l), e = t.shift();\n i--;\n var n = `return function (obj, func, destructorsRef, args) {\n`, r = 0, d = [];\n a === 0 && d.push(\"obj\");\n for (var o = [\"retType\"], p = [e], y = 0; y < i; ++y)\n d.push(\"arg\" + y), o.push(\"argType\" + y), p.push(t[y]), n += ` var arg${y} = argType${y}.readValueFromPointer(args${r ? \"+\" + r : \"\"});\n`, r += t[y].argPackAdvance;\n var m = a === 1 ? \"new func\" : \"func.call\";\n n += ` var rv = ${m}(${d.join(\", \")});\n`;\n for (var y = 0; y < i; ++y)\n t[y].deleteObject && (n += ` argType${y}.deleteObject(arg${y});\n`);\n e.isVoid || (o.push(\"emval_returnValue\"), p.push(jl), n += ` return emval_returnValue(retType, destructorsRef, rv);\n`), n += `};\n`, o.push(n);\n var W = Il(Function, o).apply(null, p), Y = `methodCaller<(${t.map((k) => k.name).join(\", \")}) => ${e.name}>`;\n return js(Vi(Y, W));\n }, _s = (i, l) => (i = P.toValue(i), l = P.toValue(l), P.toHandle(i[l])), Ms = (i) => {\n i > 4 && (ti.get(i).refcount += 1);\n }, zs = () => P.toHandle([]), Es = (i) => P.toHandle(Ql(i)), Ds = () => P.toHandle({}), Os = (i) => {\n var l = P.toValue(i);\n Ai(l), qi(i);\n }, As = (i, l, a) => {\n i = P.toValue(i), l = P.toValue(l), a = P.toValue(a), i[l] = a;\n }, $s = (i, l) => {\n i = ll(i, \"_emval_take_value\");\n var a = i.readValueFromPointer(l);\n return P.toHandle(a);\n }, qs = () => {\n mi(\"\");\n }, _l = () => 2147483648, ln = () => _l(), Ml;\n Ml = () => performance.now();\n var an = (i, l, a) => J.copyWithin(i, l, l + a), tn = (i) => {\n var l = z.buffer, a = (i - l.byteLength + 65535) / 65536;\n try {\n return z.grow(a), nl(), 1;\n } catch {\n }\n }, en = (i) => {\n var l = J.length;\n i >>>= 0;\n var a = _l();\n if (i > a)\n return !1;\n for (var t = (o, p) => o + (p - o % p) % p, e = 1; e <= 4; e *= 2) {\n var n = l * (1 + 1 / e);\n n = Math.min(n, i + 268435456);\n var r = Math.min(a, t(Math.max(i, n), 65536)), d = tn(r);\n if (d)\n return !0;\n }\n return !1;\n }, sn = (i, l) => setTimeout(() => {\n gl(i);\n }, l), zl = (i) => K.handleSleep((l) => sn(l, i));\n zl.isAsync = !0;\n var al = {}, nn = () => Z || \"./this.program\", Ii = () => {\n if (!Ii.strings) {\n var i = (typeof navigator == \"object\" && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\", l = { USER: \"web_user\", LOGNAME: \"web_user\", PATH: \"/\", PWD: \"/\", HOME: \"/home/web_user\", LANG: i, _: nn() };\n for (var a in al)\n al[a] === void 0 ? delete l[a] : l[a] = al[a];\n var t = [];\n for (var a in l)\n t.push(`${a}=${l[a]}`);\n Ii.strings = t;\n }\n return Ii.strings;\n }, rn = (i, l) => {\n for (var a = 0; a < i.length; ++a)\n E[l++ >> 0] = i.charCodeAt(a);\n E[l >> 0] = 0;\n }, dn = (i, l) => {\n var a = 0;\n return Ii().forEach((t, e) => {\n var n = l + a;\n T[i + e * 4 >> 2] = n, rn(t, n), a += t.length + 1;\n }), 0;\n }, cn = (i, l) => {\n var a = Ii();\n T[i >> 2] = a.length;\n var t = 0;\n return a.forEach((e) => t += e.length + 1), T[l >> 2] = t, 0;\n }, on = (i) => 52, bn = (i, l, a, t) => 52;\n function pn(i, l, a, t, e) {\n return 70;\n }\n var hn = [null, [], []], Zn = (i, l) => {\n var a = hn[i];\n l === 0 || l === 10 ? ((i === 1 ? A : ei)(ul(a, 0)), a.length = 0) : a.push(l);\n }, Gn = (i, l, a, t) => {\n for (var e = 0, n = 0; n < a; n++) {\n var r = T[l >> 2], d = T[l + 4 >> 2];\n l += 8;\n for (var o = 0; o < d; o++)\n Zn(i, J[r + o]);\n e += d;\n }\n return T[t >> 2] = e, 0;\n }, yn = (i) => i, ji = (i) => i % 4 === 0 && (i % 100 !== 0 || i % 400 === 0), un = (i, l) => {\n for (var a = 0, t = 0; t <= l; a += i[t++])\n ;\n return a;\n }, El = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], Dl = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], mn = (i, l) => {\n for (var a = new Date(i.getTime()); l > 0; ) {\n var t = ji(a.getFullYear()), e = a.getMonth(), n = (t ? El : Dl)[e];\n if (l > n - a.getDate())\n l -= n - a.getDate() + 1, a.setDate(1), e < 11 ? a.setMonth(e + 1) : (a.setMonth(0), a.setFullYear(a.getFullYear() + 1));\n else\n return a.setDate(a.getDate() + l), a;\n }\n return a;\n };\n function Wn(i, l, a) {\n var t = a > 0 ? a : Ul(i) + 1, e = new Array(t), n = wl(i, e, 0, e.length);\n return l && (e.length = n), e;\n }\n var Xn = (i, l) => {\n E.set(i, l);\n }, xn = (i, l, a, t) => {\n var e = T[t + 40 >> 2], n = { tm_sec: U[t >> 2], tm_min: U[t + 4 >> 2], tm_hour: U[t + 8 >> 2], tm_mday: U[t + 12 >> 2], tm_mon: U[t + 16 >> 2], tm_year: U[t + 20 >> 2], tm_wday: U[t + 24 >> 2], tm_yday: U[t + 28 >> 2], tm_isdst: U[t + 32 >> 2], tm_gmtoff: U[t + 36 >> 2], tm_zone: e ? gi(e) : \"\" }, r = gi(a), d = { \"%c\": \"%a %b %d %H:%M:%S %Y\", \"%D\": \"%m/%d/%y\", \"%F\": \"%Y-%m-%d\", \"%h\": \"%b\", \"%r\": \"%I:%M:%S %p\", \"%R\": \"%H:%M\", \"%T\": \"%H:%M:%S\", \"%x\": \"%m/%d/%y\", \"%X\": \"%H:%M:%S\", \"%Ec\": \"%c\", \"%EC\": \"%C\", \"%Ex\": \"%m/%d/%y\", \"%EX\": \"%H:%M:%S\", \"%Ey\": \"%y\", \"%EY\": \"%Y\", \"%Od\": \"%d\", \"%Oe\": \"%e\", \"%OH\": \"%H\", \"%OI\": \"%I\", \"%Om\": \"%m\", \"%OM\": \"%M\", \"%OS\": \"%S\", \"%Ou\": \"%u\", \"%OU\": \"%U\", \"%OV\": \"%V\", \"%Ow\": \"%w\", \"%OW\": \"%W\", \"%Oy\": \"%y\" };\n for (var o in d)\n r = r.replace(new RegExp(o, \"g\"), d[o]);\n var p = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"], y = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n function m(S, f, q) {\n for (var _ = typeof S == \"number\" ? S.toString() : S || \"\"; _.length < f; )\n _ = q[0] + _;\n return _;\n }\n function W(S, f) {\n return m(S, f, \"0\");\n }\n function Y(S, f) {\n function q(yi) {\n return yi < 0 ? -1 : yi > 0 ? 1 : 0;\n }\n var _;\n return (_ = q(S.getFullYear() - f.getFullYear())) === 0 && (_ = q(S.getMonth() - f.getMonth())) === 0 && (_ = q(S.getDate() - f.getDate())), _;\n }\n function k(S) {\n switch (S.getDay()) {\n case 0:\n return new Date(S.getFullYear() - 1, 11, 29);\n case 1:\n return S;\n case 2:\n return new Date(S.getFullYear(), 0, 3);\n case 3:\n return new Date(S.getFullYear(), 0, 2);\n case 4:\n return new Date(S.getFullYear(), 0, 1);\n case 5:\n return new Date(S.getFullYear() - 1, 11, 31);\n case 6:\n return new Date(S.getFullYear() - 1, 11, 30);\n }\n }\n function C(S) {\n var f = mn(new Date(S.tm_year + 1900, 0, 1), S.tm_yday), q = new Date(f.getFullYear(), 0, 4), _ = new Date(f.getFullYear() + 1, 0, 4), yi = k(q), _i = k(_);\n return Y(yi, f) <= 0 ? Y(_i, f) <= 0 ? f.getFullYear() + 1 : f.getFullYear() : f.getFullYear() - 1;\n }\n var F = { \"%a\": (S) => p[S.tm_wday].substring(0, 3), \"%A\": (S) => p[S.tm_wday], \"%b\": (S) => y[S.tm_mon].substring(0, 3), \"%B\": (S) => y[S.tm_mon], \"%C\": (S) => {\n var f = S.tm_year + 1900;\n return W(f / 100 | 0, 2);\n }, \"%d\": (S) => W(S.tm_mday, 2), \"%e\": (S) => m(S.tm_mday, 2, \" \"), \"%g\": (S) => C(S).toString().substring(2), \"%G\": (S) => C(S), \"%H\": (S) => W(S.tm_hour, 2), \"%I\": (S) => {\n var f = S.tm_hour;\n return f == 0 ? f = 12 : f > 12 && (f -= 12), W(f, 2);\n }, \"%j\": (S) => W(S.tm_mday + un(ji(S.tm_year + 1900) ? El : Dl, S.tm_mon - 1), 3), \"%m\": (S) => W(S.tm_mon + 1, 2), \"%M\": (S) => W(S.tm_min, 2), \"%n\": () => `\n`, \"%p\": (S) => S.tm_hour >= 0 && S.tm_hour < 12 ? \"AM\" : \"PM\", \"%S\": (S) => W(S.tm_sec, 2), \"%t\": () => \"\t\", \"%u\": (S) => S.tm_wday || 7, \"%U\": (S) => {\n var f = S.tm_yday + 7 - S.tm_wday;\n return W(Math.floor(f / 7), 2);\n }, \"%V\": (S) => {\n var f = Math.floor((S.tm_yday + 7 - (S.tm_wday + 6) % 7) / 7);\n if ((S.tm_wday + 371 - S.tm_yday - 2) % 7 <= 2 && f++, f) {\n if (f == 53) {\n var _ = (S.tm_wday + 371 - S.tm_yday) % 7;\n _ != 4 && (_ != 3 || !ji(S.tm_year)) && (f = 1);\n }\n } else {\n f = 52;\n var q = (S.tm_wday + 7 - S.tm_yday - 1) % 7;\n (q == 4 || q == 5 && ji(S.tm_year % 400 - 1)) && f++;\n }\n return W(f, 2);\n }, \"%w\": (S) => S.tm_wday, \"%W\": (S) => {\n var f = S.tm_yday + 7 - (S.tm_wday + 6) % 7;\n return W(Math.floor(f / 7), 2);\n }, \"%y\": (S) => (S.tm_year + 1900).toString().substring(2), \"%Y\": (S) => S.tm_year + 1900, \"%z\": (S) => {\n var f = S.tm_gmtoff, q = f >= 0;\n return f = Math.abs(f) / 60, f = f / 60 * 100 + f % 60, (q ? \"+\" : \"-\") + (\"0000\" + f).slice(-4);\n }, \"%Z\": (S) => S.tm_zone, \"%%\": () => \"%\" };\n r = r.replace(/%%/g, \"\\0\\0\");\n for (var o in F)\n r.includes(o) && (r = r.replace(new RegExp(o, \"g\"), F[o](n)));\n r = r.replace(/\\0\\0/g, \"%\");\n var w = Wn(r, !1);\n return w.length > l ? 0 : (Xn(w, i), w.length - 1);\n }, Ln = (i, l, a, t, e) => xn(i, l, a, t);\n ge(), Xi = s.BindingError = class extends Error {\n constructor(l) {\n super(l), this.name = \"BindingError\";\n }\n }, Wl = s.InternalError = class extends Error {\n constructor(l) {\n super(l), this.name = \"InternalError\";\n }\n }, Me(), je(), is(), Vl = s.UnboundTypeError = es(Error, \"UnboundTypeError\"), hs(), Gs();\n var Sn = { hb: ue, eb: ye, gb: Ge, fb: Ze, s: We, Ab: Xe, D: xe, a: Se, h: Ye, Ha: Gl, zb: ve, n: ke, Bb: fe, f: Le, Ka: Ve, Kb: Ke, Lb: Ie, Fb: Re, Gb: Ce, rb: He, Pb: Fe, ca: ss, ba: os, M: bs, t: ps, Ob: ys, Na: ms, ec: Ws, T: xs, H: Ls, db: Ss, Ma: vs, va: Cs, Qb: Hs, Mb: Ts, Cb: Fs, Ea: Ps, $a: Bl, Ga: Js, Fa: Us, Za: qi, _a: Ns, ta: Qs, jb: _s, Pa: Ms, kb: zs, aa: Es, ib: Ds, lb: Os, cb: As, ia: $s, pa: qs, Eb: ln, ua: Ml, Nb: an, Db: en, Ta: zl, Hb: dn, Ib: cn, Rb: Hl, La: on, Jb: bn, qb: pn, Ja: Gn, Ub: ad, E: Kr, N: Ir, wa: Fr, z: Pn, Ua: gr, ab: On, C: Fn, Q: Rr, w: vr, S: br, L: Xr, xa: kr, V: Sr, Sb: ed, q: Cn, b: vn, B: er, y: $n, c: kn, ea: Dn, i: fn, Z: ur, m: Un, Ia: nd, p: Nn, r: wn, ac: Qr, X: qn, sa: rr, da: nr, Ra: Ar, _: ir, Ca: lr, nb: Gd, ub: od, xb: rd, pb: hd, wb: dd, mb: yd, k: Kn, g: Yn, U: Vr, Wa: Cr, F: tr, x: pr, R: mr, Da: An, za: hr, Xa: Gr, J: xr, d: Vn, A: zn, Va: Hr, ga: Pr, bb: En, $: jn, Vb: id, e: Hn, P: Tr, Tb: td, na: Zr, ya: Wr, ra: yr, Wb: qr, G: Yr, la: jr, j: gn, Xb: $r, I: Lr, Oa: sd, o: In, Qa: ld, fa: _n, Zb: zr, ma: fr, l: Mn, Aa: or, cc: Ur, u: Rn, W: dr, oa: Qn, Sa: Nr, Y: Tn, qa: Jr, ja: Or, K: Jn, O: Bn, Ba: cr, _b: Mr, $b: _r, Yb: Er, dc: wr, bc: Br, ka: Dr, ha: sr, Ya: ar, sb: pd, tb: bd, ob: Zd, vb: cd, v: yn, yb: Ln }, u = he(), Bi = (i) => (Bi = u.hc)(i), Ri = (i) => (Ri = u.jc)(i), ni = (i) => (ni = u.kc)(i), Ol = (i) => (Ol = u.lc)(i), X = (i, l) => (X = u.mc)(i, l), x = () => (x = u.nc)(), L = (i) => (L = u.oc)(i), Al = (i) => (Al = u.pc)(i), tl = (i) => (tl = u.qc)(i), $l = (i, l, a) => ($l = u.rc)(i, l, a), ql = (i) => (ql = u.sc)(i), ia = s.dynCall_vi = (i, l) => (ia = s.dynCall_vi = u.tc)(i, l), la = s.dynCall_v = (i) => (la = s.dynCall_v = u.uc)(i), aa = s.dynCall_ii = (i, l) => (aa = s.dynCall_ii = u.vc)(i, l), ta = s.dynCall_i = (i) => (ta = s.dynCall_i = u.wc)(i), ea = s.dynCall_iii = (i, l, a) => (ea = s.dynCall_iii = u.xc)(i, l, a), sa = s.dynCall_iiii = (i, l, a, t) => (sa = s.dynCall_iiii = u.yc)(i, l, a, t), na = s.dynCall_viii = (i, l, a, t) => (na = s.dynCall_viii = u.zc)(i, l, a, t), ra = s.dynCall_vii = (i, l, a) => (ra = s.dynCall_vii = u.Ac)(i, l, a), da = s.dynCall_dii = (i, l, a) => (da = s.dynCall_dii = u.Bc)(i, l, a), ca = s.dynCall_viid = (i, l, a, t) => (ca = s.dynCall_viid = u.Cc)(i, l, a, t), oa = s.dynCall_viiiii = (i, l, a, t, e, n) => (oa = s.dynCall_viiiii = u.Dc)(i, l, a, t, e, n), ba = s.dynCall_viiiiii = (i, l, a, t, e, n, r) => (ba = s.dynCall_viiiiii = u.Ec)(i, l, a, t, e, n, r), pa = s.dynCall_viiiiiii = (i, l, a, t, e, n, r, d) => (pa = s.dynCall_viiiiiii = u.Fc)(i, l, a, t, e, n, r, d), ha = s.dynCall_viiiiiiii = (i, l, a, t, e, n, r, d, o) => (ha = s.dynCall_viiiiiiii = u.Gc)(i, l, a, t, e, n, r, d, o), Za = s.dynCall_fii = (i, l, a) => (Za = s.dynCall_fii = u.Hc)(i, l, a), Ga = s.dynCall_viif = (i, l, a, t) => (Ga = s.dynCall_viif = u.Ic)(i, l, a, t), ya = s.dynCall_viiii = (i, l, a, t, e) => (ya = s.dynCall_viiii = u.Jc)(i, l, a, t, e), ua = s.dynCall_diiiii = (i, l, a, t, e, n) => (ua = s.dynCall_diiiii = u.Kc)(i, l, a, t, e, n), ma = s.dynCall_diii = (i, l, a, t) => (ma = s.dynCall_diii = u.Lc)(i, l, a, t), Wa = s.dynCall_iiiiiii = (i, l, a, t, e, n, r) => (Wa = s.dynCall_iiiiiii = u.Mc)(i, l, a, t, e, n, r), Xa = s.dynCall_viiiiiiiii = (i, l, a, t, e, n, r, d, o, p) => (Xa = s.dynCall_viiiiiiiii = u.Nc)(i, l, a, t, e, n, r, d, o, p), xa = s.dynCall_iiiii = (i, l, a, t, e) => (xa = s.dynCall_iiiii = u.Oc)(i, l, a, t, e), La = s.dynCall_iiiiii = (i, l, a, t, e, n) => (La = s.dynCall_iiiiii = u.Pc)(i, l, a, t, e, n), Sa = s.dynCall_viiiiiiiiii = (i, l, a, t, e, n, r, d, o, p, y) => (Sa = s.dynCall_viiiiiiiiii = u.Qc)(i, l, a, t, e, n, r, d, o, p, y), Ya = s.dynCall_viiiiiiif = (i, l, a, t, e, n, r, d, o) => (Ya = s.dynCall_viiiiiiif = u.Rc)(i, l, a, t, e, n, r, d, o), va = s.dynCall_viiiiif = (i, l, a, t, e, n, r) => (va = s.dynCall_viiiiif = u.Sc)(i, l, a, t, e, n, r), ka = s.dynCall_iiid = (i, l, a, t) => (ka = s.dynCall_iiid = u.Tc)(i, l, a, t), fa = s.dynCall_viididid = (i, l, a, t, e, n, r, d) => (fa = s.dynCall_viididid = u.Uc)(i, l, a, t, e, n, r, d), Va = s.dynCall_diiii = (i, l, a, t, e) => (Va = s.dynCall_diiii = u.Vc)(i, l, a, t, e), Ka = s.dynCall_vifff = (i, l, a, t, e) => (Ka = s.dynCall_vifff = u.Wc)(i, l, a, t, e), Ia = s.dynCall_iif = (i, l, a) => (Ia = s.dynCall_iif = u.Xc)(i, l, a), Ra = s.dynCall_vidi = (i, l, a, t) => (Ra = s.dynCall_vidi = u.Yc)(i, l, a, t), Ca = s.dynCall_iid = (i, l, a) => (Ca = s.dynCall_iid = u.Zc)(i, l, a), Ha = s.dynCall_viiiiiiiiiiiiiiii = (i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k, C, F) => (Ha = s.dynCall_viiiiiiiiiiiiiiii = u._c)(i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k, C, F), ga = s.dynCall_viiiiiiiiiiiiiii = (i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k, C) => (ga = s.dynCall_viiiiiiiiiiiiiii = u.$c)(i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k, C), Ta = s.dynCall_iiiiiiiiii = (i, l, a, t, e, n, r, d, o, p) => (Ta = s.dynCall_iiiiiiiiii = u.ad)(i, l, a, t, e, n, r, d, o, p), Fa = s.dynCall_iiiiiiiii = (i, l, a, t, e, n, r, d, o) => (Fa = s.dynCall_iiiiiiiii = u.bd)(i, l, a, t, e, n, r, d, o), Pa = s.dynCall_iiiiiiii = (i, l, a, t, e, n, r, d) => (Pa = s.dynCall_iiiiiiii = u.cd)(i, l, a, t, e, n, r, d), Ja = s.dynCall_viiiiiiidiiii = (i, l, a, t, e, n, r, d, o, p, y, m, W) => (Ja = s.dynCall_viiiiiiidiiii = u.dd)(i, l, a, t, e, n, r, d, o, p, y, m, W), wa = s.dynCall_viiiiiiiiiidii = (i, l, a, t, e, n, r, d, o, p, y, m, W, Y) => (wa = s.dynCall_viiiiiiiiiidii = u.ed)(i, l, a, t, e, n, r, d, o, p, y, m, W, Y), Ua = s.dynCall_viiiiiid = (i, l, a, t, e, n, r, d) => (Ua = s.dynCall_viiiiiid = u.fd)(i, l, a, t, e, n, r, d), Na = s.dynCall_vif = (i, l, a) => (Na = s.dynCall_vif = u.gd)(i, l, a), ja = s.dynCall_iiiif = (i, l, a, t, e) => (ja = s.dynCall_iiiif = u.hd)(i, l, a, t, e), Ba = s.dynCall_viiidi = (i, l, a, t, e, n) => (Ba = s.dynCall_viiidi = u.id)(i, l, a, t, e, n), Qa = s.dynCall_iiji = (i, l, a, t, e) => (Qa = s.dynCall_iiji = u.jd)(i, l, a, t, e), _a = s.dynCall_viiiiifi = (i, l, a, t, e, n, r, d) => (_a = s.dynCall_viiiiifi = u.kd)(i, l, a, t, e, n, r, d), Ma = s.dynCall_vifii = (i, l, a, t, e) => (Ma = s.dynCall_vifii = u.ld)(i, l, a, t, e), za = s.dynCall_viiiif = (i, l, a, t, e, n) => (za = s.dynCall_viiiif = u.md)(i, l, a, t, e, n), Ea = s.dynCall_iiiiiiiiiiii = (i, l, a, t, e, n, r, d, o, p, y, m) => (Ea = s.dynCall_iiiiiiiiiiii = u.nd)(i, l, a, t, e, n, r, d, o, p, y, m), Da = s.dynCall_viiiffiiiiiiii = (i, l, a, t, e, n, r, d, o, p, y, m, W, Y) => (Da = s.dynCall_viiiffiiiiiiii = u.od)(i, l, a, t, e, n, r, d, o, p, y, m, W, Y), Oa = s.dynCall_fi = (i, l) => (Oa = s.dynCall_fi = u.pd)(i, l), Aa = s.dynCall_fiif = (i, l, a, t) => (Aa = s.dynCall_fiif = u.qd)(i, l, a, t), $a = s.dynCall_viffii = (i, l, a, t, e, n) => ($a = s.dynCall_viffii = u.rd)(i, l, a, t, e, n), qa = s.dynCall_fiii = (i, l, a, t) => (qa = s.dynCall_fiii = u.sd)(i, l, a, t), it = s.dynCall_viiifi = (i, l, a, t, e, n) => (it = s.dynCall_viiifi = u.td)(i, l, a, t, e, n), lt = s.dynCall_fif = (i, l, a) => (lt = s.dynCall_fif = u.ud)(i, l, a), at = s.dynCall_vid = (i, l, a) => (at = s.dynCall_vid = u.vd)(i, l, a), tt = s.dynCall_di = (i, l) => (tt = s.dynCall_di = u.wd)(i, l), et = s.dynCall_vidd = (i, l, a, t) => (et = s.dynCall_vidd = u.xd)(i, l, a, t), st = s.dynCall_viiddd = (i, l, a, t, e, n) => (st = s.dynCall_viiddd = u.yd)(i, l, a, t, e, n), nt = s.dynCall_diiidi = (i, l, a, t, e, n) => (nt = s.dynCall_diiidi = u.zd)(i, l, a, t, e, n), rt = s.dynCall_viijii = (i, l, a, t, e, n, r) => (rt = s.dynCall_viijii = u.Ad)(i, l, a, t, e, n, r), dt = s.dynCall_iiiiiiiiiiiiiiiii = (i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k, C, F) => (dt = s.dynCall_iiiiiiiiiiiiiiiii = u.Bd)(i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k, C, F), ct = s.dynCall_viiidd = (i, l, a, t, e, n) => (ct = s.dynCall_viiidd = u.Cd)(i, l, a, t, e, n), ot = s.dynCall_ff = (i, l) => (ot = s.dynCall_ff = u.Dd)(i, l), bt = s.dynCall_vij = (i, l, a, t) => (bt = s.dynCall_vij = u.Ed)(i, l, a, t), pt = s.dynCall_iij = (i, l, a, t) => (pt = s.dynCall_iij = u.Fd)(i, l, a, t), ht = s.dynCall_viff = (i, l, a, t) => (ht = s.dynCall_viff = u.Gd)(i, l, a, t), Zt = s.dynCall_diiddi = (i, l, a, t, e, n) => (Zt = s.dynCall_diiddi = u.Hd)(i, l, a, t, e, n), Gt = s.dynCall_viidi = (i, l, a, t, e) => (Gt = s.dynCall_viidi = u.Id)(i, l, a, t, e), yt = s.dynCall_ji = (i, l) => (yt = s.dynCall_ji = u.Jd)(i, l), ut = s.dynCall_viiiiiiiif = (i, l, a, t, e, n, r, d, o, p) => (ut = s.dynCall_viiiiiiiif = u.Kd)(i, l, a, t, e, n, r, d, o, p), mt = s.dynCall_viij = (i, l, a, t, e) => (mt = s.dynCall_viij = u.Ld)(i, l, a, t, e), Wt = s.dynCall_viiiiiiiiiifii = (i, l, a, t, e, n, r, d, o, p, y, m, W, Y) => (Wt = s.dynCall_viiiiiiiiiifii = u.Md)(i, l, a, t, e, n, r, d, o, p, y, m, W, Y), Xt = s.dynCall_viiiiiif = (i, l, a, t, e, n, r, d) => (Xt = s.dynCall_viiiiiif = u.Nd)(i, l, a, t, e, n, r, d), xt = s.dynCall_viiiiiiifiiii = (i, l, a, t, e, n, r, d, o, p, y, m, W) => (xt = s.dynCall_viiiiiiifiiii = u.Od)(i, l, a, t, e, n, r, d, o, p, y, m, W), Lt = s.dynCall_viffff = (i, l, a, t, e, n) => (Lt = s.dynCall_viffff = u.Pd)(i, l, a, t, e, n), St = s.dynCall_viiiiiiiiiii = (i, l, a, t, e, n, r, d, o, p, y, m) => (St = s.dynCall_viiiiiiiiiii = u.Qd)(i, l, a, t, e, n, r, d, o, p, y, m), Yt = s.dynCall_viiiiiiiiiif = (i, l, a, t, e, n, r, d, o, p, y, m) => (Yt = s.dynCall_viiiiiiiiiif = u.Rd)(i, l, a, t, e, n, r, d, o, p, y, m), vt = s.dynCall_viiiiiff = (i, l, a, t, e, n, r, d) => (vt = s.dynCall_viiiiiff = u.Sd)(i, l, a, t, e, n, r, d), kt = s.dynCall_viiiiiiiiiiff = (i, l, a, t, e, n, r, d, o, p, y, m, W) => (kt = s.dynCall_viiiiiiiiiiff = u.Td)(i, l, a, t, e, n, r, d, o, p, y, m, W), ft = s.dynCall_iiiiiiif = (i, l, a, t, e, n, r, d) => (ft = s.dynCall_iiiiiiif = u.Ud)(i, l, a, t, e, n, r, d), Vt = s.dynCall_viiiiiiiiiifi = (i, l, a, t, e, n, r, d, o, p, y, m, W) => (Vt = s.dynCall_viiiiiiiiiifi = u.Vd)(i, l, a, t, e, n, r, d, o, p, y, m, W), Kt = s.dynCall_viiiiiiiiiiiiif = (i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k) => (Kt = s.dynCall_viiiiiiiiiiiiif = u.Wd)(i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k), It = s.dynCall_viiiiiiiifi = (i, l, a, t, e, n, r, d, o, p, y) => (It = s.dynCall_viiiiiiiifi = u.Xd)(i, l, a, t, e, n, r, d, o, p, y), Rt = s.dynCall_iiiiiiiiiii = (i, l, a, t, e, n, r, d, o, p, y) => (Rt = s.dynCall_iiiiiiiiiii = u.Yd)(i, l, a, t, e, n, r, d, o, p, y), Ct = s.dynCall_viiifff = (i, l, a, t, e, n, r) => (Ct = s.dynCall_viiifff = u.Zd)(i, l, a, t, e, n, r), Ht = s.dynCall_viiffi = (i, l, a, t, e, n) => (Ht = s.dynCall_viiffi = u._d)(i, l, a, t, e, n), gt = s.dynCall_viiiddi = (i, l, a, t, e, n, r) => (gt = s.dynCall_viiiddi = u.$d)(i, l, a, t, e, n, r), Tt = s.dynCall_viiif = (i, l, a, t, e) => (Tt = s.dynCall_viiif = u.ae)(i, l, a, t, e), Ft = s.dynCall_viiiidiiii = (i, l, a, t, e, n, r, d, o, p) => (Ft = s.dynCall_viiiidiiii = u.be)(i, l, a, t, e, n, r, d, o, p), Pt = s.dynCall_viiiiidi = (i, l, a, t, e, n, r, d) => (Pt = s.dynCall_viiiiidi = u.ce)(i, l, a, t, e, n, r, d), Jt = s.dynCall_ddi = (i, l, a) => (Jt = s.dynCall_ddi = u.de)(i, l, a), wt = s.dynCall_viiidddiiii = (i, l, a, t, e, n, r, d, o, p, y) => (wt = s.dynCall_viiidddiiii = u.ee)(i, l, a, t, e, n, r, d, o, p, y), Ut = s.dynCall_fiiiif = (i, l, a, t, e, n) => (Ut = s.dynCall_fiiiif = u.fe)(i, l, a, t, e, n), Nt = s.dynCall_viiiifi = (i, l, a, t, e, n, r) => (Nt = s.dynCall_viiiifi = u.ge)(i, l, a, t, e, n, r), jt = s.dynCall_viiiiiijj = (i, l, a, t, e, n, r, d, o, p, y) => (jt = s.dynCall_viiiiiijj = u.he)(i, l, a, t, e, n, r, d, o, p, y);\n s.dynCall_viiiiiiiiidd = (i, l, a, t, e, n, r, d, o, p, y, m) => (s.dynCall_viiiiiiiiidd = u.ie)(i, l, a, t, e, n, r, d, o, p, y, m), s.dynCall_viiid = (i, l, a, t, e) => (s.dynCall_viiid = u.je)(i, l, a, t, e), s.dynCall_viiiiiiiiiiddi = (i, l, a, t, e, n, r, d, o, p, y, m, W, Y) => (s.dynCall_viiiiiiiiiiddi = u.ke)(i, l, a, t, e, n, r, d, o, p, y, m, W, Y), s.dynCall_viiiiiiiddi = (i, l, a, t, e, n, r, d, o, p, y) => (s.dynCall_viiiiiiiddi = u.le)(i, l, a, t, e, n, r, d, o, p, y), s.dynCall_viiiid = (i, l, a, t, e, n) => (s.dynCall_viiiid = u.me)(i, l, a, t, e, n), s.dynCall_vidii = (i, l, a, t, e) => (s.dynCall_vidii = u.ne)(i, l, a, t, e), s.dynCall_jiji = (i, l, a, t, e) => (s.dynCall_jiji = u.oe)(i, l, a, t, e), s.dynCall_iidiiii = (i, l, a, t, e, n, r) => (s.dynCall_iidiiii = u.pe)(i, l, a, t, e, n, r);\n var Bt = s.dynCall_j = (i) => (Bt = s.dynCall_j = u.qe)(i), Qt = s.dynCall_iiiiij = (i, l, a, t, e, n, r) => (Qt = s.dynCall_iiiiij = u.re)(i, l, a, t, e, n, r), _t = s.dynCall_iiiiid = (i, l, a, t, e, n) => (_t = s.dynCall_iiiiid = u.se)(i, l, a, t, e, n), Mt = s.dynCall_jiiii = (i, l, a, t, e) => (Mt = s.dynCall_jiiii = u.te)(i, l, a, t, e);\n s.dynCall_iiiiiiiiiiiii = (i, l, a, t, e, n, r, d, o, p, y, m, W) => (s.dynCall_iiiiiiiiiiiii = u.ue)(i, l, a, t, e, n, r, d, o, p, y, m, W), s.dynCall_iiiiijj = (i, l, a, t, e, n, r, d, o) => (s.dynCall_iiiiijj = u.ve)(i, l, a, t, e, n, r, d, o), s.dynCall_iiiiiijj = (i, l, a, t, e, n, r, d, o, p) => (s.dynCall_iiiiiijj = u.we)(i, l, a, t, e, n, r, d, o, p);\n var zt = (i) => (zt = u.xe)(i), Et = () => (Et = u.ye)(), Dt = (i) => (Dt = u.ze)(i), Ot = () => (Ot = u.Ae)();\n s.___start_em_js = 418396, s.___stop_em_js = 420207;\n function Yn(i, l) {\n var a = x();\n try {\n ia(i, l);\n } catch (t) {\n if (L(a), t !== t + 0)\n throw t;\n X(1, 0);\n }\n }\n function vn(i, l) {\n var a = x();\n try {\n return aa(i, l);\n } catch (t) {\n if (L(a), t !== t + 0)\n throw t;\n X(1, 0);\n }\n }\n function kn(i, l, a) {\n var t = x();\n try {\n return ea(i, l, a);\n } catch (e) {\n if (L(t), e !== e + 0)\n throw e;\n X(1, 0);\n }\n }\n function fn(i, l, a, t) {\n var e = x();\n try {\n return sa(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function Vn(i, l, a) {\n var t = x();\n try {\n ra(i, l, a);\n } catch (e) {\n if (L(t), e !== e + 0)\n throw e;\n X(1, 0);\n }\n }\n function Kn(i) {\n var l = x();\n try {\n la(i);\n } catch (a) {\n if (L(l), a !== a + 0)\n throw a;\n X(1, 0);\n }\n }\n function In(i, l, a, t, e, n) {\n var r = x();\n try {\n oa(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function Rn(i, l, a, t, e, n, r, d) {\n var o = x();\n try {\n pa(i, l, a, t, e, n, r, d);\n } catch (p) {\n if (L(o), p !== p + 0)\n throw p;\n X(1, 0);\n }\n }\n function Cn(i) {\n var l = x();\n try {\n return ta(i);\n } catch (a) {\n if (L(l), a !== a + 0)\n throw a;\n X(1, 0);\n }\n }\n function Hn(i, l, a, t) {\n var e = x();\n try {\n na(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function gn(i, l, a, t, e) {\n var n = x();\n try {\n ya(i, l, a, t, e);\n } catch (r) {\n if (L(n), r !== r + 0)\n throw r;\n X(1, 0);\n }\n }\n function Tn(i, l, a, t, e, n, r, d, o) {\n var p = x();\n try {\n ha(i, l, a, t, e, n, r, d, o);\n } catch (y) {\n if (L(p), y !== y + 0)\n throw y;\n X(1, 0);\n }\n }\n function Fn(i, l, a, t, e, n) {\n var r = x();\n try {\n return ua(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function Pn(i, l, a, t) {\n var e = x();\n try {\n return ma(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function Jn(i, l, a, t, e, n, r, d, o, p) {\n var y = x();\n try {\n Xa(i, l, a, t, e, n, r, d, o, p);\n } catch (m) {\n if (L(y), m !== m + 0)\n throw m;\n X(1, 0);\n }\n }\n function wn(i, l, a, t, e, n, r) {\n var d = x();\n try {\n return Wa(i, l, a, t, e, n, r);\n } catch (o) {\n if (L(d), o !== o + 0)\n throw o;\n X(1, 0);\n }\n }\n function Un(i, l, a, t, e) {\n var n = x();\n try {\n return xa(i, l, a, t, e);\n } catch (r) {\n if (L(n), r !== r + 0)\n throw r;\n X(1, 0);\n }\n }\n function Nn(i, l, a, t, e, n) {\n var r = x();\n try {\n return La(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function jn(i, l, a, t) {\n var e = x();\n try {\n Ga(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function Bn(i, l, a, t, e, n, r, d, o, p, y) {\n var m = x();\n try {\n Sa(i, l, a, t, e, n, r, d, o, p, y);\n } catch (W) {\n if (L(m), W !== W + 0)\n throw W;\n X(1, 0);\n }\n }\n function Qn(i, l, a, t, e, n, r, d, o) {\n var p = x();\n try {\n Ya(i, l, a, t, e, n, r, d, o);\n } catch (y) {\n if (L(p), y !== y + 0)\n throw y;\n X(1, 0);\n }\n }\n function _n(i, l, a, t, e, n, r) {\n var d = x();\n try {\n va(i, l, a, t, e, n, r);\n } catch (o) {\n if (L(d), o !== o + 0)\n throw o;\n X(1, 0);\n }\n }\n function Mn(i, l, a, t, e, n, r) {\n var d = x();\n try {\n ba(i, l, a, t, e, n, r);\n } catch (o) {\n if (L(d), o !== o + 0)\n throw o;\n X(1, 0);\n }\n }\n function zn(i, l, a, t) {\n var e = x();\n try {\n ca(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function En(i, l, a, t, e, n, r, d) {\n var o = x();\n try {\n fa(i, l, a, t, e, n, r, d);\n } catch (p) {\n if (L(o), p !== p + 0)\n throw p;\n X(1, 0);\n }\n }\n function Dn(i, l, a, t) {\n var e = x();\n try {\n return ka(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function On(i, l, a, t, e) {\n var n = x();\n try {\n return Va(i, l, a, t, e);\n } catch (r) {\n if (L(n), r !== r + 0)\n throw r;\n X(1, 0);\n }\n }\n function An(i, l, a, t, e) {\n var n = x();\n try {\n Ka(i, l, a, t, e);\n } catch (r) {\n if (L(n), r !== r + 0)\n throw r;\n X(1, 0);\n }\n }\n function $n(i, l, a) {\n var t = x();\n try {\n return Ia(i, l, a);\n } catch (e) {\n if (L(t), e !== e + 0)\n throw e;\n X(1, 0);\n }\n }\n function qn(i, l, a, t, e, n, r, d) {\n var o = x();\n try {\n return Pa(i, l, a, t, e, n, r, d);\n } catch (p) {\n if (L(o), p !== p + 0)\n throw p;\n X(1, 0);\n }\n }\n function ir(i, l, a, t, e, n, r, d, o, p, y, m) {\n var W = x();\n try {\n return Ea(i, l, a, t, e, n, r, d, o, p, y, m);\n } catch (Y) {\n if (L(W), Y !== Y + 0)\n throw Y;\n X(1, 0);\n }\n }\n function lr(i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k, C, F) {\n var w = x();\n try {\n return dt(i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k, C, F);\n } catch (S) {\n if (L(w), S !== S + 0)\n throw S;\n X(1, 0);\n }\n }\n function ar(i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k, C, F) {\n var w = x();\n try {\n Ha(i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k, C, F);\n } catch (S) {\n if (L(w), S !== S + 0)\n throw S;\n X(1, 0);\n }\n }\n function tr(i, l, a, t) {\n var e = x();\n try {\n Ra(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function er(i, l, a) {\n var t = x();\n try {\n return Ca(i, l, a);\n } catch (e) {\n if (L(t), e !== e + 0)\n throw e;\n X(1, 0);\n }\n }\n function sr(i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k, C) {\n var F = x();\n try {\n ga(i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k, C);\n } catch (w) {\n if (L(F), w !== w + 0)\n throw w;\n X(1, 0);\n }\n }\n function nr(i, l, a, t, e, n, r, d, o, p) {\n var y = x();\n try {\n return Ta(i, l, a, t, e, n, r, d, o, p);\n } catch (m) {\n if (L(y), m !== m + 0)\n throw m;\n X(1, 0);\n }\n }\n function rr(i, l, a, t, e, n, r, d, o) {\n var p = x();\n try {\n return Fa(i, l, a, t, e, n, r, d, o);\n } catch (y) {\n if (L(p), y !== y + 0)\n throw y;\n X(1, 0);\n }\n }\n function dr(i, l, a, t, e, n, r, d, o, p, y, m, W) {\n var Y = x();\n try {\n Ja(i, l, a, t, e, n, r, d, o, p, y, m, W);\n } catch (k) {\n if (L(Y), k !== k + 0)\n throw k;\n X(1, 0);\n }\n }\n function cr(i, l, a, t, e, n, r, d, o, p, y, m, W, Y) {\n var k = x();\n try {\n wa(i, l, a, t, e, n, r, d, o, p, y, m, W, Y);\n } catch (C) {\n if (L(k), C !== C + 0)\n throw C;\n X(1, 0);\n }\n }\n function or(i, l, a, t, e, n, r, d) {\n var o = x();\n try {\n Ua(i, l, a, t, e, n, r, d);\n } catch (p) {\n if (L(o), p !== p + 0)\n throw p;\n X(1, 0);\n }\n }\n function br(i, l, a) {\n var t = x();\n try {\n return lt(i, l, a);\n } catch (e) {\n if (L(t), e !== e + 0)\n throw e;\n X(1, 0);\n }\n }\n function pr(i, l, a) {\n var t = x();\n try {\n Na(i, l, a);\n } catch (e) {\n if (L(t), e !== e + 0)\n throw e;\n X(1, 0);\n }\n }\n function hr(i, l, a, t, e, n) {\n var r = x();\n try {\n Lt(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function Zr(i, l, a, t, e, n, r) {\n var d = x();\n try {\n gt(i, l, a, t, e, n, r);\n } catch (o) {\n if (L(d), o !== o + 0)\n throw o;\n X(1, 0);\n }\n }\n function Gr(i, l, a, t, e, n) {\n var r = x();\n try {\n $a(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function yr(i, l, a, t, e) {\n var n = x();\n try {\n Tt(i, l, a, t, e);\n } catch (r) {\n if (L(n), r !== r + 0)\n throw r;\n X(1, 0);\n }\n }\n function ur(i, l, a, t, e) {\n var n = x();\n try {\n return ja(i, l, a, t, e);\n } catch (r) {\n if (L(n), r !== r + 0)\n throw r;\n X(1, 0);\n }\n }\n function mr(i, l, a, t) {\n var e = x();\n try {\n ht(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function Wr(i, l, a, t, e, n) {\n var r = x();\n try {\n Ba(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function Xr(i, l, a) {\n var t = x();\n try {\n return Za(i, l, a);\n } catch (e) {\n if (L(t), e !== e + 0)\n throw e;\n X(1, 0);\n }\n }\n function xr(i, l, a, t, e) {\n var n = x();\n try {\n Ma(i, l, a, t, e);\n } catch (r) {\n if (L(n), r !== r + 0)\n throw r;\n X(1, 0);\n }\n }\n function Lr(i, l, a, t, e, n) {\n var r = x();\n try {\n za(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function Sr(i, l, a, t) {\n var e = x();\n try {\n return qa(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function Yr(i, l, a, t, e, n, r, d, o, p, y, m, W, Y) {\n var k = x();\n try {\n Da(i, l, a, t, e, n, r, d, o, p, y, m, W, Y);\n } catch (C) {\n if (L(k), C !== C + 0)\n throw C;\n X(1, 0);\n }\n }\n function vr(i, l) {\n var a = x();\n try {\n return Oa(i, l);\n } catch (t) {\n if (L(a), t !== t + 0)\n throw t;\n X(1, 0);\n }\n }\n function kr(i, l, a, t) {\n var e = x();\n try {\n return Aa(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function fr(i, l, a, t, e, n, r, d) {\n var o = x();\n try {\n _a(i, l, a, t, e, n, r, d);\n } catch (p) {\n if (L(o), p !== p + 0)\n throw p;\n X(1, 0);\n }\n }\n function Vr(i, l, a) {\n var t = x();\n try {\n at(i, l, a);\n } catch (e) {\n if (L(t), e !== e + 0)\n throw e;\n X(1, 0);\n }\n }\n function Kr(i, l) {\n var a = x();\n try {\n return tt(i, l);\n } catch (t) {\n if (L(a), t !== t + 0)\n throw t;\n X(1, 0);\n }\n }\n function Ir(i, l, a) {\n var t = x();\n try {\n return da(i, l, a);\n } catch (e) {\n if (L(t), e !== e + 0)\n throw e;\n X(1, 0);\n }\n }\n function Rr(i, l) {\n var a = x();\n try {\n return ot(i, l);\n } catch (t) {\n if (L(a), t !== t + 0)\n throw t;\n X(1, 0);\n }\n }\n function Cr(i, l, a, t) {\n var e = x();\n try {\n et(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function Hr(i, l, a, t, e, n) {\n var r = x();\n try {\n st(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function gr(i, l, a, t, e, n) {\n var r = x();\n try {\n return nt(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function Tr(i, l, a, t, e, n) {\n var r = x();\n try {\n ct(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function Fr(i, l, a, t, e, n) {\n var r = x();\n try {\n return Zt(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function Pr(i, l, a, t, e) {\n var n = x();\n try {\n Gt(i, l, a, t, e);\n } catch (r) {\n if (L(n), r !== r + 0)\n throw r;\n X(1, 0);\n }\n }\n function Jr(i, l, a, t, e, n, r, d, o, p) {\n var y = x();\n try {\n ut(i, l, a, t, e, n, r, d, o, p);\n } catch (m) {\n if (L(y), m !== m + 0)\n throw m;\n X(1, 0);\n }\n }\n function wr(i, l, a, t, e, n, r, d, o, p, y, m, W, Y) {\n var k = x();\n try {\n Wt(i, l, a, t, e, n, r, d, o, p, y, m, W, Y);\n } catch (C) {\n if (L(k), C !== C + 0)\n throw C;\n X(1, 0);\n }\n }\n function Ur(i, l, a, t, e, n, r, d) {\n var o = x();\n try {\n Xt(i, l, a, t, e, n, r, d);\n } catch (p) {\n if (L(o), p !== p + 0)\n throw p;\n X(1, 0);\n }\n }\n function Nr(i, l, a, t, e, n, r, d, o, p, y, m, W) {\n var Y = x();\n try {\n xt(i, l, a, t, e, n, r, d, o, p, y, m, W);\n } catch (k) {\n if (L(Y), k !== k + 0)\n throw k;\n X(1, 0);\n }\n }\n function jr(i, l, a, t, e, n) {\n var r = x();\n try {\n it(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function Br(i, l, a, t, e, n, r, d, o, p, y, m) {\n var W = x();\n try {\n St(i, l, a, t, e, n, r, d, o, p, y, m);\n } catch (Y) {\n if (L(W), Y !== Y + 0)\n throw Y;\n X(1, 0);\n }\n }\n function Qr(i, l, a, t, e, n, r, d) {\n var o = x();\n try {\n return ft(i, l, a, t, e, n, r, d);\n } catch (p) {\n if (L(o), p !== p + 0)\n throw p;\n X(1, 0);\n }\n }\n function _r(i, l, a, t, e, n, r, d, o, p, y, m, W) {\n var Y = x();\n try {\n kt(i, l, a, t, e, n, r, d, o, p, y, m, W);\n } catch (k) {\n if (L(Y), k !== k + 0)\n throw k;\n X(1, 0);\n }\n }\n function Mr(i, l, a, t, e, n, r, d, o, p, y, m) {\n var W = x();\n try {\n Yt(i, l, a, t, e, n, r, d, o, p, y, m);\n } catch (Y) {\n if (L(W), Y !== Y + 0)\n throw Y;\n X(1, 0);\n }\n }\n function zr(i, l, a, t, e, n, r, d) {\n var o = x();\n try {\n vt(i, l, a, t, e, n, r, d);\n } catch (p) {\n if (L(o), p !== p + 0)\n throw p;\n X(1, 0);\n }\n }\n function Er(i, l, a, t, e, n, r, d, o, p, y, m, W) {\n var Y = x();\n try {\n Vt(i, l, a, t, e, n, r, d, o, p, y, m, W);\n } catch (k) {\n if (L(Y), k !== k + 0)\n throw k;\n X(1, 0);\n }\n }\n function Dr(i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k) {\n var C = x();\n try {\n Kt(i, l, a, t, e, n, r, d, o, p, y, m, W, Y, k);\n } catch (F) {\n if (L(C), F !== F + 0)\n throw F;\n X(1, 0);\n }\n }\n function Or(i, l, a, t, e, n, r, d, o, p, y) {\n var m = x();\n try {\n It(i, l, a, t, e, n, r, d, o, p, y);\n } catch (W) {\n if (L(m), W !== W + 0)\n throw W;\n X(1, 0);\n }\n }\n function Ar(i, l, a, t, e, n, r, d, o, p, y) {\n var m = x();\n try {\n return Rt(i, l, a, t, e, n, r, d, o, p, y);\n } catch (W) {\n if (L(m), W !== W + 0)\n throw W;\n X(1, 0);\n }\n }\n function $r(i, l, a, t, e, n, r, d, o, p) {\n var y = x();\n try {\n Ft(i, l, a, t, e, n, r, d, o, p);\n } catch (m) {\n if (L(y), m !== m + 0)\n throw m;\n X(1, 0);\n }\n }\n function qr(i, l, a, t, e, n, r) {\n var d = x();\n try {\n Ct(i, l, a, t, e, n, r);\n } catch (o) {\n if (L(d), o !== o + 0)\n throw o;\n X(1, 0);\n }\n }\n function id(i, l, a, t, e, n) {\n var r = x();\n try {\n Ht(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function ld(i, l, a, t, e, n, r, d) {\n var o = x();\n try {\n Pt(i, l, a, t, e, n, r, d);\n } catch (p) {\n if (L(o), p !== p + 0)\n throw p;\n X(1, 0);\n }\n }\n function ad(i, l, a) {\n var t = x();\n try {\n return Jt(i, l, a);\n } catch (e) {\n if (L(t), e !== e + 0)\n throw e;\n X(1, 0);\n }\n }\n function td(i, l, a, t, e, n, r, d, o, p, y) {\n var m = x();\n try {\n wt(i, l, a, t, e, n, r, d, o, p, y);\n } catch (W) {\n if (L(m), W !== W + 0)\n throw W;\n X(1, 0);\n }\n }\n function ed(i, l, a, t, e, n) {\n var r = x();\n try {\n return Ut(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function sd(i, l, a, t, e, n, r) {\n var d = x();\n try {\n Nt(i, l, a, t, e, n, r);\n } catch (o) {\n if (L(d), o !== o + 0)\n throw o;\n X(1, 0);\n }\n }\n function nd(i, l, a, t, e, n) {\n var r = x();\n try {\n return _t(i, l, a, t, e, n);\n } catch (d) {\n if (L(r), d !== d + 0)\n throw d;\n X(1, 0);\n }\n }\n function rd(i, l, a, t, e) {\n var n = x();\n try {\n return Qa(i, l, a, t, e);\n } catch (r) {\n if (L(n), r !== r + 0)\n throw r;\n X(1, 0);\n }\n }\n function dd(i, l) {\n var a = x();\n try {\n return yt(i, l);\n } catch (t) {\n if (L(a), t !== t + 0)\n throw t;\n X(1, 0);\n }\n }\n function cd(i, l, a, t) {\n var e = x();\n try {\n bt(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function od(i, l, a, t) {\n var e = x();\n try {\n return pt(i, l, a, t);\n } catch (n) {\n if (L(e), n !== n + 0)\n throw n;\n X(1, 0);\n }\n }\n function bd(i, l, a, t, e) {\n var n = x();\n try {\n mt(i, l, a, t, e);\n } catch (r) {\n if (L(n), r !== r + 0)\n throw r;\n X(1, 0);\n }\n }\n function pd(i, l, a, t, e, n, r, d, o, p, y) {\n var m = x();\n try {\n jt(i, l, a, t, e, n, r, d, o, p, y);\n } catch (W) {\n if (L(m), W !== W + 0)\n throw W;\n X(1, 0);\n }\n }\n function hd(i) {\n var l = x();\n try {\n return Bt(i);\n } catch (a) {\n if (L(l), a !== a + 0)\n throw a;\n X(1, 0);\n }\n }\n function Zd(i, l, a, t, e, n, r) {\n var d = x();\n try {\n rt(i, l, a, t, e, n, r);\n } catch (o) {\n if (L(d), o !== o + 0)\n throw o;\n X(1, 0);\n }\n }\n function Gd(i, l, a, t, e, n, r) {\n var d = x();\n try {\n return Qt(i, l, a, t, e, n, r);\n } catch (o) {\n if (L(d), o !== o + 0)\n throw o;\n X(1, 0);\n }\n }\n function yd(i, l, a, t, e) {\n var n = x();\n try {\n return Mt(i, l, a, t, e);\n } catch (r) {\n if (L(n), r !== r + 0)\n throw r;\n X(1, 0);\n }\n }\n var Qi;\n Si = function i() {\n Qi || At(), Qi || (Si = i);\n };\n function At() {\n if (hi > 0 || (ae(), hi > 0))\n return;\n function i() {\n Qi || (Qi = !0, s.calledRun = !0, !$ && (te(), c(s), s.onRuntimeInitialized && s.onRuntimeInitialized(), ee()));\n }\n s.setStatus ? (s.setStatus(\"Running...\"), setTimeout(function() {\n setTimeout(function() {\n s.setStatus(\"\");\n }, 1), i();\n }, 1)) : i();\n }\n if (s.preInit)\n for (typeof s.preInit == \"function\" && (s.preInit = [s.preInit]); s.preInit.length > 0; )\n s.preInit.pop()();\n return At(), G.ready;\n };\n})();\nconst md = ud;\nvar el = null, ui = null;\nfunction si() {\n return el === null && (el = md({\n locateFile(v, G) {\n if (v.endsWith(\".wasm\") && ui !== null) {\n console.log(\"trying to load wasm with prefix \" + G + \" and path \" + v + \" and core path \" + ui);\n try {\n new URL(ui);\n } catch {\n const c = new URL(ui, G);\n return console.log(\"returning \" + c.href), c.href;\n }\n return console.log(\"returning \" + ui), ui;\n }\n return G + v;\n }\n })), el;\n}\nfunction Yd(v) {\n ui = v;\n}\nclass sl {\n constructor(G, s, c, b, h, Z, I) {\n this.garmentMask = G, this.garmentMesh = s, this.garmentBacksideMesh = c, this.garmentFrontsideShadowTextureMeshToUVTransformation = b, this.garmentBacksideShadowTextureMeshToUVTransformation = h, this.garmentFrontsideShadowTextureImage = Z, this.garmentBacksideShadowTextureImage = I;\n }\n}\nclass ie {\n constructor(G, s, c, b) {\n this.fittedGarments = G, this.avatarOverlapCorrectionMask = s, this.avatarShadowTextureUVTransformation = c, this.avatarShadowTextureImage = b;\n }\n}\nclass Wd {\n constructor(G) {\n this.fittedGarments = G;\n }\n}\nasync function vd(v, G, s, c, b, h) {\n var Z = Date.now(), I = await si(), R = I, V = new R.RRTryOn2DWrapper();\n try {\n V.avatarBlobVal = v;\n const ei = [];\n for (var H = 0; H < G.length; ++H)\n ei.push(G[H]);\n if (V.garmentBlobVals = ei, V.doSkinning = c, V.computeShadows = b, V.returnGarmentMeshVertexBufferOnly = h, !await V.tryOn2D(s))\n return null;\n let z = null;\n V.resultAvatarMask !== null && (z = V.resultAvatarMask);\n for (var N = [], H = 0; H < G.length; ++H) {\n let J = null;\n const j = V.resultGarmentMeshes[H], ai = V.resultGarmentBacksideMeshes[H];\n V.resultGarmentMasks[H] !== null && (J = V.resultGarmentMasks[H]);\n const U = V.resultGarmentFrontsideShadowTextureMeshToUVTransformations[H], T = V.resultGarmentBacksideShadowTextureMeshToUVTransformations[H];\n let oi = null;\n V.resultGarmentFrontsideShadowTextureImages[H] !== null && (oi = V.resultGarmentFrontsideShadowTextureImages[H]);\n let Li = null;\n V.resultGarmentBacksideShadowTextureImages[H] !== null && (Li = V.resultGarmentBacksideShadowTextureImages[H]);\n var M = new sl(\n J,\n j,\n ai,\n U,\n T,\n oi,\n Li\n );\n N.push(M);\n }\n let $ = null;\n V.resultAvatarShadowTextureImage !== null && ($ = V.resultAvatarShadowTextureImage);\n const Q = V.resultAvatarShadowTextureUVTransformation;\n var A = new ie(N, z, Q, $);\n return console.log(`Wasm doTryOn() took: ${Date.now() - Z}`), A;\n } finally {\n V.delete();\n }\n}\nasync function kd(v, G) {\n var s = await si(), c = s, b = new c.RRTryOn2DWrapper();\n try {\n b.avatarBlobVal = v;\n const h = G;\n return b.garmentBlobVals = [h], await b.computeFit() ? { mesh: b.resultFittedGarmentBlob, rigidTransformation: b.resultFittedGarmentRigidTransformation } : (console.log(\"compute fit failed.\"), null);\n } finally {\n b.delete();\n }\n}\nasync function fd(v, G, s, c, b, h) {\n var Z = await si(), I = Z, R = new I.RRTryOn2DWrapper();\n try {\n R.avatarBlobVal = v;\n const A = [];\n for (var V = 0; V < G.length; ++V)\n A.push(G[V]);\n if (R.garmentBlobVals = A, R.fittedGarmentData = s, R.doSkinning = c, R.computeShadows = b, R.returnGarmentMeshVertexBufferOnly = h, !await R.tryOn2DWithFittedGarments())\n return null;\n let ii = null;\n R.resultAvatarMask !== null && (ii = R.resultAvatarMask);\n for (var H = [], V = 0; V < G.length; ++V) {\n let E = null;\n const J = R.resultGarmentMeshes[V], j = R.resultGarmentBacksideMeshes[V];\n R.resultGarmentMasks[V] !== null && (E = R.resultGarmentMasks[V]);\n const ai = R.resultGarmentFrontsideShadowTextureMeshToUVTransformations[V], U = R.resultGarmentBacksideShadowTextureMeshToUVTransformations[V];\n let T = null;\n R.resultGarmentFrontsideShadowTextureImages[V] !== null && (T = R.resultGarmentFrontsideShadowTextureImages[V]);\n let oi = null;\n R.resultGarmentBacksideShadowTextureImages[V] !== null && (oi = R.resultGarmentBacksideShadowTextureImages[V]);\n var N = new sl(\n E,\n J,\n j,\n ai,\n U,\n T,\n oi\n );\n H.push(N);\n }\n let z = null;\n R.resultAvatarShadowTextureImage !== null && (z = R.resultAvatarShadowTextureImage);\n const $ = R.resultAvatarShadowTextureUVTransformation;\n var M = new ie(H, ii, $, z);\n return M;\n } finally {\n R.delete();\n }\n}\nasync function Vd(v, G, s) {\n var c = Date.now(), b = await si(), h = b, Z = new h.RRTryOn2DWrapper();\n try {\n Z.avatarBlobVal = v;\n const N = [];\n for (var I = 0; I < G.length; ++I)\n N.push(G[I]);\n if (Z.garmentBlobVals = N, Z.doSkinning = s, !await Z.computeRigidFittedGarments())\n return null;\n var R = [];\n const A = [\n 1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 1\n ];\n for (var I = 0; I < G.length; ++I) {\n const ii = Z.resultGarmentMeshes[I], z = Z.resultGarmentBacksideMeshes[I];\n var V = new sl(\n null,\n ii,\n z,\n A,\n A,\n null,\n null\n );\n R.push(V);\n }\n var H = new Wd(R);\n return console.log(`Wasm computeRigidFittedGarments() took: ${Date.now() - c}`), H;\n } finally {\n Z.delete();\n }\n}\nasync function Kd(v, G) {\n var s = await si();\n let c = new s.RRObjectDataProviderBlobCallbacks();\n return c.idToCallback = {\n DAZ_Genesis8Male_default: async () => {\n const b = await G();\n return b;\n },\n DAZ_Genesis8Female_default: async () => {\n const b = await v();\n return b;\n }\n }, c;\n}\nasync function Id(v, G, s) {\n let c = await si();\n var b = new c.RRSizeRecommendationWrapper();\n try {\n return b.garmentBlobVal = v, b.sizeTableCreationConfigBlobVal = G, b.fitModelsBlobVal = s, await b.getGarment2DSizes() ? [...b.availableSizes] : [];\n } finally {\n b.delete();\n }\n}\nasync function Rd(v, G) {\n var s = await si(), c = new s.RRSizeRecommendationWrapper();\n try {\n c.avatarBlobVal = G.avatarBlob, c.garmentBlobVal = G.garmentBlob, G.size !== null && (c.requestedSize = G.size), c.sizeTableBlobVal = G.sizeTable, c.measurementsConfigBlobVal = G.measurementsConfig, c.sizeTableCreationConfigBlobVal = G.sizeTableCreationConfig, c.fitModelsBlobVal = G.fitModels, c.computeVisualization = G.computeVisualization, G.availableSizes !== null && (c.availableSizes = [...G.availableSizes]), await c.computeSizeRecommendation(v);\n var b = {\n fitInformation: c.fitInformation,\n recommendedSize: c.resultSize\n };\n return b;\n } finally {\n c.delete();\n }\n}\nasync function Cd(v, G, s, c) {\n let b = await si();\n const h = new b.RRAvatarCreatorWrapper(v);\n try {\n if (G instanceof Blob)\n h.bodyModelStateBlobVal = G;\n else if (G != null)\n h.pbmId = G;\n else if (c != null) {\n const Z = new b.RRBlendedHeadAvatarWrapper(v);\n try {\n Z.visualRepresentationBlobVal = c, await Z.extractVisualRepresentationData(), h.bodyModelStateBlobVal = Z.bodyModelStateBlobVal;\n } finally {\n Z.delete();\n }\n }\n return s !== null && (h.configBlobVal = s), [...await h.getInputMeasurements()];\n } finally {\n h.delete();\n }\n}\nasync function Hd(v, G) {\n let s = await si();\n const c = new s.RRAvatarCreatorWrapper(v);\n try {\n G.bodymodel instanceof Blob ? c.bodyModelStateBlobVal = G.bodymodel : c.pbmId = G.bodymodel, G.config !== null && (c.configBlobVal = G.config), G.appearanceModel !== null && (c.appearanceModelBlobVal = G.appearanceModel), G.customShape !== null && (c.customShapeBlobVal = G.customShape), c.baseShapeType = G.baseShapeType, c.measurementTargets = G.measurementTargets, G.pose !== null ? (c.poseBlobVal = G.pose, c.poseType = G.poseType) : c.poseType = \"\", c.responseMeshFormat = G.responseMeshFormat, c.learningRate = G.learningRate, c.maxIterations = G.maxIterations, c.factorThreshold = G.factorThreshold, await c.createMannequin();\n let b = null, h = null, Z = null;\n return c.resultModel !== null && (b = c.resultModel), c.resultState !== null && (h = c.resultState), c.resultVR !== null && (Z = c.resultVR), {\n resultState: h,\n resultModel: b,\n resultVR: Z\n };\n } finally {\n c.delete();\n }\n}\nasync function gd(v, G) {\n let s = await si();\n const c = new s.RRAvatarCreatorWrapper(v);\n try {\n if (G.bodymodel instanceof Blob)\n c.bodyModelStateBlobVal = G.bodymodel;\n else if (G.bodymodel != null)\n c.pbmId = G.bodymodel;\n else if (G.visualRepresentation != null) {\n const R = new s.RRBlendedHeadAvatarWrapper(v);\n try {\n R.visualRepresentationBlobVal = G.visualRepresentation, await R.extractVisualRepresentationData(), c.bodyModelStateBlobVal = R.bodyModelStateBlobVal, c.headAlignmentDataBlobVal = R.headAlignmentDataBlobVal, c.uvLayoutBlobVal = R.uvLayoutBlobVal;\n } finally {\n R.delete();\n }\n }\n G.config !== null && (c.configBlobVal = G.config), G.appearanceModel !== null && (c.appearanceModelBlobVal = G.appearanceModel), G.customShape !== null && (c.customShapeBlobVal = G.customShape), c.baseShapeType = G.baseShapeType, c.measurementTargets = G.measurementTargets, G.pose !== null ? (c.poseBlobVal = G.pose, c.poseType = G.poseType) : c.poseType = \"\", c.responseMeshFormat = G.responseMeshFormat, c.learningRate = G.learningRate, c.maxIterations = G.maxIterations, c.factorThreshold = G.factorThreshold, await c.createMannequin();\n let b = null, h = null, Z = null, I = null;\n return c.resultModel !== null && (b = c.resultModel), c.resultState !== null && (h = c.resultState), c.resultVR !== null && (Z = c.resultVR), c.resultHeadTransform.length != 0 && (I = c.resultHeadTransform), {\n resultState: h,\n resultModel: b,\n resultVR: Z,\n headTransform: I\n };\n } finally {\n c.delete();\n }\n}\nasync function Td(v, G) {\n let s = await si();\n const c = new s.RRAvatarConverterWrapper(await v);\n try {\n const b = G.mannequinRendering;\n G.conversionConfig instanceof Blob && (c.conversionConfigBlobVal = G.conversionConfig), c.position = G.cameraProperties.position, c.direction = G.cameraProperties.direction, c.up = G.cameraProperties.up, c.fov = G.cameraProperties.fieldOfView, c.nearPlane = G.cameraProperties.nearPlane, c.farPlane = G.cameraProperties.farPlane, c.returnNonMinifiedAvatar = G.returnNonMinifiedAvatar, c.returnTryOn2DFiles = G.returnTryOn2DFiles, G.returnTryOn2DFiles && (c.responseMeshFormat = G.responseMeshFormat);\n let h;\n if (G.virtualMorphFactors && (h = new Array(), G.virtualMorphFactors.forEach((I, R) => {\n h.push({ id: R, value: I });\n })), G.bodyModelStateBlob != null) {\n const I = G.bodyModelStateBlob;\n await c.convertTo2D(I, b, G.editingInfo, h);\n } else {\n const I = G.visualRepresentationBlob, R = G.headMeshBlob, V = G.faceMeshBlob;\n await c.convertHeadAvatarTo2D(I, R, V, b, G.editingInfo, h);\n }\n const Z = [];\n return G.returnNonMinifiedAvatar && Z.push({ key: \"avatar\", blob: c.resultAvatar }), G.returnTryOn2DFiles && (Z.push({ key: \"diffuseTexture\", blob: c.resultDiffuseTexture }), Z.push({ key: \"opacityTexture\", blob: c.resultOpacityTexture }), Z.push({ key: \"backsideTexture\", blob: c.resultBacksideTexture }), Z.push({ key: \"avatarMinified\", blob: c.resultAvatarMinified }), Z.push({ key: \"upsampledMesh\", blob: c.resultUpsampledMesh })), Z;\n } finally {\n c.delete();\n }\n}\nconst Xd = \"__RR_PICTOFIT_CORE_WASM_VERSION__\", le = \"KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBHPSh3PT4od1t3LlNldFdhc21QYXRoPTFdPSJTZXRXYXNtUGF0aCIsd1t3LlNldFBibUJsb2JzPTJdPSJTZXRQYm1CbG9icyIsd1t3LkRvVHJ5T249M109IkRvVHJ5T24iLHdbdy5SZWNvbW1lbmRTaXplPTRdPSJSZWNvbW1lbmRTaXplIix3W3cuR2V0R2FybWVudDJEU2l6ZXM9NV09IkdldEdhcm1lbnQyRFNpemVzIix3W3cuR2V0QXZhdGFyQ3JlYXRpb25JbnB1dE1lYXN1cmVtZW50cz02XT0iR2V0QXZhdGFyQ3JlYXRpb25JbnB1dE1lYXN1cmVtZW50cyIsd1t3LkNyZWF0ZU1hbm5lcXVpbj03XT0iQ3JlYXRlTWFubmVxdWluIix3W3cuRWRpdEF2YXRhcj04XT0iRWRpdEF2YXRhciIsd1t3LkNvbnZlcnRBdmF0YXI9OV09IkNvbnZlcnRBdmF0YXIiLHdbdy5Db21wdXRlRml0PTEwXT0iQ29tcHV0ZUZpdCIsd1t3LlRyeU9uRml0dGVkR2FybWVudHM9MTFdPSJUcnlPbkZpdHRlZEdhcm1lbnRzIix3W3cuQ29tcHV0ZVJpZ2lkRml0dGVkR2FybWVudHM9MTJdPSJDb21wdXRlUmlnaWRGaXR0ZWRHYXJtZW50cyIsd1t3LkluaXRJbnRlcmFjdGl2ZUF2YXRhckVkaXRpbmc9MTNdPSJJbml0SW50ZXJhY3RpdmVBdmF0YXJFZGl0aW5nIix3W3cuSW50ZXJhY3RpdmVBdmF0YXJFZGl0aW5nPTE0XT0iSW50ZXJhY3RpdmVBdmF0YXJFZGl0aW5nIix3W3cuQXBwbHlJbnRlcmFjdGl2ZUF2YXRhckVkaXRpbmc9MTVdPSJBcHBseUludGVyYWN0aXZlQXZhdGFyRWRpdGluZyIsdykpKEd8fHt9KSxRdD0oKCk9Pnt2YXIgdz1zZWxmLmxvY2F0aW9uLmhyZWY7cmV0dXJuIGZ1bmN0aW9uKHU9e30pe3ZhciBvPXUsXyxrO28ucmVhZHk9bmV3IFByb21pc2UoKGksZSk9PntfPWksaz1lfSk7dmFyIEQ9T2JqZWN0LmFzc2lnbih7fSxvKSxSPSIuL3RoaXMucHJvZ3JhbSIsTz0oaSxlKT0+e3Rocm93IGV9LEE9dHlwZW9mIHdpbmRvdz09Im9iamVjdCIsUD10eXBlb2YgaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIjt0eXBlb2YgcHJvY2Vzcz09Im9iamVjdCImJnR5cGVvZiBwcm9jZXNzLnZlcnNpb25zPT0ib2JqZWN0IiYmcHJvY2Vzcy52ZXJzaW9ucy5ub2RlO3ZhciBFPSIiO2Z1bmN0aW9uIGlpKGkpe3JldHVybiBvLmxvY2F0ZUZpbGU/by5sb2NhdGVGaWxlKGksRSk6RStpfXZhciBsaTsoQXx8UCkmJihQP0U9c2VsZi5sb2NhdGlvbi5ocmVmOnR5cGVvZiBkb2N1bWVudDwidSImJmRvY3VtZW50LmN1cnJlbnRTY3JpcHQmJihFPWRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjKSx3JiYoRT13KSxFLmluZGV4T2YoImJsb2I6IikhPT0wP0U9RS5zdWJzdHIoMCxFLnJlcGxhY2UoL1s/I10uKi8sIiIpLmxhc3RJbmRleE9mKCIvIikrMSk6RT0iIixQJiYobGk9aT0+e3ZhciBlPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gZS5vcGVuKCJHRVQiLGksITEpLGUucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsZS5zZW5kKG51bGwpLG5ldyBVaW50OEFycmF5KGUucmVzcG9uc2UpfSkpO3ZhciBlaT1vLnByaW50fHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpLEs9by5wcmludEVycnx8Y29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpO09iamVjdC5hc3NpZ24obyxEKSxEPW51bGwsby5hcmd1bWVudHMmJm8uYXJndW1lbnRzLG8udGhpc1Byb2dyYW0mJihSPW8udGhpc1Byb2dyYW0pLG8ucXVpdCYmKE89by5xdWl0KTt2YXIgWjtvLndhc21CaW5hcnkmJihaPW8ud2FzbUJpbmFyeSksdHlwZW9mIFdlYkFzc2VtYmx5IT0ib2JqZWN0IiYmZ2koIm5vIG5hdGl2ZSB3YXNtIHN1cHBvcnQgZGV0ZWN0ZWQiKTt2YXIgcSxKPSExLHZpLFksaixyaSxvaSxVLFYsc2ksYmk7ZnVuY3Rpb24gb2UoKXt2YXIgaT1xLmJ1ZmZlcjtvLkhFQVA4PVk9bmV3IEludDhBcnJheShpKSxvLkhFQVAxNj1yaT1uZXcgSW50MTZBcnJheShpKSxvLkhFQVBVOD1qPW5ldyBVaW50OEFycmF5KGkpLG8uSEVBUFUxNj1vaT1uZXcgVWludDE2QXJyYXkoaSksby5IRUFQMzI9VT1uZXcgSW50MzJBcnJheShpKSxvLkhFQVBVMzI9Vj1uZXcgVWludDMyQXJyYXkoaSksby5IRUFQRjMyPXNpPW5ldyBGbG9hdDMyQXJyYXkoaSksby5IRUFQRjY0PWJpPW5ldyBGbG9hdDY0QXJyYXkoaSl9dmFyIHNlPVtdLGRlPVtdLGZlPVtdO2Z1bmN0aW9uIF9hKCl7aWYoby5wcmVSdW4pZm9yKHR5cGVvZiBvLnByZVJ1bj09ImZ1bmN0aW9uIiYmKG8ucHJlUnVuPVtvLnByZVJ1bl0pO28ucHJlUnVuLmxlbmd0aDspZ2Eoby5wcmVSdW4uc2hpZnQoKSk7cWkoc2UpfWZ1bmN0aW9uIGhhKCl7cWkoZGUpfWZ1bmN0aW9uIHBhKCl7aWYoby5wb3N0UnVuKWZvcih0eXBlb2Ygby5wb3N0UnVuPT0iZnVuY3Rpb24iJiYoby5wb3N0UnVuPVtvLnBvc3RSdW5dKTtvLnBvc3RSdW4ubGVuZ3RoOylDYShvLnBvc3RSdW4uc2hpZnQoKSk7cWkoZmUpfWZ1bmN0aW9uIGdhKGkpe3NlLnVuc2hpZnQoaSl9ZnVuY3Rpb24gbWEoaSl7ZGUudW5zaGlmdChpKX1mdW5jdGlvbiBDYShpKXtmZS51bnNoaWZ0KGkpfXZhciB5aT0wLFRpPW51bGw7ZnVuY3Rpb24gd2EoaSl7eWkrKyxvLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJm8ubW9uaXRvclJ1bkRlcGVuZGVuY2llcyh5aSl9ZnVuY3Rpb24gYmEoaSl7aWYoeWktLSxvLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJm8ubW9uaXRvclJ1bkRlcGVuZGVuY2llcyh5aSkseWk9PTAmJlRpKXt2YXIgZT1UaTtUaT1udWxsLGUoKX19ZnVuY3Rpb24gZ2koaSl7by5vbkFib3J0JiZvLm9uQWJvcnQoaSksaT0iQWJvcnRlZCgiK2krIikiLEsoaSksSj0hMCx2aT0xLGkrPSIuIEJ1aWxkIHdpdGggLXNBU1NFUlRJT05TIGZvciBtb3JlIGluZm8uIjt2YXIgZT1uZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKGkpO3Rocm93IGsoZSksZX12YXIgVGE9ImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCwiLGNlPWk9Pmkuc3RhcnRzV2l0aChUYSksX2k7by5sb2NhdGVGaWxlPyhfaT0icnJfcGljdG9maXRfY29yZV93cmFwcGVyLndhc20iLGNlKF9pKXx8KF9pPWlpKF9pKSkpOl9pPW5ldyBVUkwoInJyX3BpY3RvZml0X2NvcmVfd3JhcHBlci53YXNtIixzZWxmLmxvY2F0aW9uKS5ocmVmO2Z1bmN0aW9uIHVlKGkpe2lmKGk9PV9pJiZaKXJldHVybiBuZXcgVWludDhBcnJheShaKTtpZihsaSlyZXR1cm4gbGkoaSk7dGhyb3ciYm90aCBhc3luYyBhbmQgc3luYyBmZXRjaGluZyBvZiB0aGUgd2FzbSBmYWlsZWQifWZ1bmN0aW9uIFNhKGkpe3JldHVybiFaJiYoQXx8UCkmJnR5cGVvZiBmZXRjaD09ImZ1bmN0aW9uIj9mZXRjaChpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihlPT57aWYoIWUub2spdGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIitpKyInIjtyZXR1cm4gZS5hcnJheUJ1ZmZlcigpfSkuY2F0Y2goKCk9PnVlKGkpKTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT51ZShpKSl9ZnVuY3Rpb24gdmUoaSxlLHIpe3JldHVybiBTYShpKS50aGVuKHQ9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHQsZSkpLnRoZW4odD0+dCkudGhlbihyLHQ9PntLKGBmYWlsZWQgdG8gYXN5bmNocm9ub3VzbHkgcHJlcGFyZSB3YXNtOiAke3R9YCksZ2kodCl9KX1mdW5jdGlvbiAkYShpLGUscix0KXtyZXR1cm4haSYmdHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nPT0iZnVuY3Rpb24iJiYhY2UoZSkmJnR5cGVvZiBmZXRjaD09ImZ1bmN0aW9uIj9mZXRjaChlLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihhPT57dmFyIG49V2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoYSxyKTtyZXR1cm4gbi50aGVuKHQsZnVuY3Rpb24obCl7cmV0dXJuIEsoYHdhc20gc3RyZWFtaW5nIGNvbXBpbGUgZmFpbGVkOiAke2x9YCksSygiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKSx2ZShlLHIsdCl9KX0pOnZlKGUscix0KX1mdW5jdGlvbiBrYSgpe3ZhciBpPXthOklsfTtmdW5jdGlvbiBlKHQsYSl7cmV0dXJuIHY9dC5leHBvcnRzLHY9JC5pbnN0cnVtZW50V2FzbUV4cG9ydHModikscT12LmZjLG9lKCksdi5pYyxtYSh2LmdjKSxiYSgpLHZ9d2EoKTtmdW5jdGlvbiByKHQpe2UodC5pbnN0YW5jZSl9aWYoby5pbnN0YW50aWF0ZVdhc20pdHJ5e3JldHVybiBvLmluc3RhbnRpYXRlV2FzbShpLGUpfWNhdGNoKHQpe0soYE1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICR7dH1gKSxrKHQpfXJldHVybiAkYShaLF9pLGkscikuY2F0Y2goaykse319ZnVuY3Rpb24gUGEoaSl7cmV0dXJuICQuaGFuZGxlQXN5bmMoYXN5bmMoKT0+e2NvbnN0IGU9SS50b1ZhbHVlKGkpLHI9bmV3IFVpbnQ4QXJyYXkoZSksdD1uZXcgQmxvYihbcl0pLGE9YXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAodCksbj1uZXcgT2Zmc2NyZWVuQ2FudmFzKGEud2lkdGgsYS5oZWlnaHQpLGw9bi5nZXRDb250ZXh0KCIyZCIse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pO2wuZHJhd0ltYWdlKGEsMCwwLGEud2lkdGgsYS5oZWlnaHQpLGEuY2xvc2UoKTtjb25zdCBzPWwuZ2V0SW1hZ2VEYXRhKDAsMCxuLndpZHRoLG4uaGVpZ2h0KSxkPXt3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodCxkYXRhOnMuZGF0YX07cmV0dXJuIEkudG9IYW5kbGUoZCl9KX1mdW5jdGlvbiBNYShpLGUpe3JldHVybiAkLmhhbmRsZUFzeW5jKGFzeW5jKCk9Pntjb25zdCB0PWF3YWl0IEkudG9WYWx1ZShpKS5hcnJheUJ1ZmZlcigpLGE9bmV3IFVpbnQ4QXJyYXkodCk7ai5zZXQoYSxlKX0pfWZ1bmN0aW9uIEFhKGksZSl7cmV0dXJuICQuaGFuZGxlQXN5bmMoYXN5bmMoKT0+e2NvbnN0IHI9SS50b1ZhbHVlKGkpLHQ9bmV3IFVpbnQ4QXJyYXkocik7ai5zZXQodCxlKX0pfWZ1bmN0aW9uIFJhKGksZSl7cmV0dXJuICQuaGFuZGxlQXN5bmMoYXN5bmMoKT0+e2NvbnN0IHI9SS50b1ZhbHVlKGkpLHQ9bmV3IFVpbnQ4QXJyYXkocik7ZT1EaShlKTtjb25zdCBhPWUhPSIiP25ldyBCbG9iKFt0XSx7dHlwZTplfSk6bmV3IEJsb2IoW3RdKTtyZXR1cm4gSS50b0hhbmRsZShhKX0pfWZ1bmN0aW9uIHllKGkpe3RoaXMubmFtZT0iRXhpdFN0YXR1cyIsdGhpcy5tZXNzYWdlPWBQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCR7aX0pYCx0aGlzLnN0YXR1cz1pfXZhciBxaT1pPT57Zm9yKDtpLmxlbmd0aD4wOylpLnNoaWZ0KCkobyl9LEZhPW8ubm9FeGl0UnVudGltZXx8ITAsZGk9W10sVmk9MCxWYT1pPT57dmFyIGU9bmV3IEJpKGkpO3JldHVybiBlLmdldF9jYXVnaHQoKXx8KGUuc2V0X2NhdWdodCghMCksVmktLSksZS5zZXRfcmV0aHJvd24oITEpLGRpLnB1c2goZSksbmUoZS5leGNQdHIpLGUuZ2V0X2V4Y2VwdGlvbl9wdHIoKX0sQmE9KCk9PntpZighZGkubGVuZ3RoKXJldHVybiAwO3ZhciBpPWRpW2RpLmxlbmd0aC0xXTtyZXR1cm4gbmUoaS5leGNQdHIpLGkuZXhjUHRyfSx0aT0wLERhPSgpPT57cCgwLDApO3ZhciBpPWRpLnBvcCgpO0tlKGkuZXhjUHRyKSx0aT0wfTtmdW5jdGlvbiBCaShpKXt0aGlzLmV4Y1B0cj1pLHRoaXMucHRyPWktMjQsdGhpcy5zZXRfdHlwZT1mdW5jdGlvbihlKXtWW3RoaXMucHRyKzQ+PjJdPWV9LHRoaXMuZ2V0X3R5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gVlt0aGlzLnB0cis0Pj4yXX0sdGhpcy5zZXRfZGVzdHJ1Y3Rvcj1mdW5jdGlvbihlKXtWW3RoaXMucHRyKzg+PjJdPWV9LHRoaXMuZ2V0X2Rlc3RydWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gVlt0aGlzLnB0cis4Pj4yXX0sdGhpcy5zZXRfY2F1Z2h0PWZ1bmN0aW9uKGUpe2U9ZT8xOjAsWVt0aGlzLnB0cisxMj4+MF09ZX0sdGhpcy5nZXRfY2F1Z2h0PWZ1bmN0aW9uKCl7cmV0dXJuIFlbdGhpcy5wdHIrMTI+PjBdIT0wfSx0aGlzLnNldF9yZXRocm93bj1mdW5jdGlvbihlKXtlPWU/MTowLFlbdGhpcy5wdHIrMTM+PjBdPWV9LHRoaXMuZ2V0X3JldGhyb3duPWZ1bmN0aW9uKCl7cmV0dXJuIFlbdGhpcy5wdHIrMTM+PjBdIT0wfSx0aGlzLmluaXQ9ZnVuY3Rpb24oZSxyKXt0aGlzLnNldF9hZGp1c3RlZF9wdHIoMCksdGhpcy5zZXRfdHlwZShlKSx0aGlzLnNldF9kZXN0cnVjdG9yKHIpfSx0aGlzLnNldF9hZGp1c3RlZF9wdHI9ZnVuY3Rpb24oZSl7Vlt0aGlzLnB0cisxNj4+Ml09ZX0sdGhpcy5nZXRfYWRqdXN0ZWRfcHRyPWZ1bmN0aW9uKCl7cmV0dXJuIFZbdGhpcy5wdHIrMTY+PjJdfSx0aGlzLmdldF9leGNlcHRpb25fcHRyPWZ1bmN0aW9uKCl7dmFyIGU9aXIodGhpcy5nZXRfdHlwZSgpKTtpZihlKXJldHVybiBWW3RoaXMuZXhjUHRyPj4yXTt2YXIgcj10aGlzLmdldF9hZGp1c3RlZF9wdHIoKTtyZXR1cm4gciE9PTA/cjp0aGlzLmV4Y1B0cn19dmFyIEVhPWk9Pnt0aHJvdyB0aXx8KHRpPWkpLHRpfSxfZT1pPT57dmFyIGU9dGk7aWYoIWUpcmV0dXJuIEZpKDApLDA7dmFyIHI9bmV3IEJpKGUpO3Iuc2V0X2FkanVzdGVkX3B0cihlKTt2YXIgdD1yLmdldF90eXBlKCk7aWYoIXQpcmV0dXJuIEZpKDApLGU7Zm9yKHZhciBhIGluIGkpe3ZhciBuPWlbYV07aWYobj09PTB8fG49PT10KWJyZWFrO3ZhciBsPXIucHRyKzE2O2lmKFFlKG4sdCxsKSlyZXR1cm4gRmkobiksZX1yZXR1cm4gRmkodCksZX0sSWE9KCk9Pl9lKFtdKSxPYT1pPT5fZShbaV0pLGhlPSgpPT57dmFyIGk9ZGkucG9wKCk7aXx8Z2koIm5vIGV4Y2VwdGlvbiB0byB0aHJvdyIpO3ZhciBlPWkuZXhjUHRyO3Rocm93IGkuZ2V0X3JldGhyb3duKCl8fChkaS5wdXNoKGkpLGkuc2V0X3JldGhyb3duKCEwKSxpLnNldF9jYXVnaHQoITEpLFZpKyspLHRpPWUsdGl9LHhhPWk9PntpZihpKXt2YXIgZT1uZXcgQmkoaSk7ZGkucHVzaChlKSxlLnNldF9yZXRocm93bighMCksaGUoKX19LGphPShpLGUscik9Pnt2YXIgdD1uZXcgQmkoaSk7dGhyb3cgdC5pbml0KGUsciksdGk9aSxWaSsrLHRpfSxVYT0oKT0+VmkscGU9dHlwZW9mIFRleHREZWNvZGVyPCJ1Ij9uZXcgVGV4dERlY29kZXIoInV0ZjgiKTp2b2lkIDAsZ2U9KGksZSxyKT0+e2Zvcih2YXIgdD1lK3IsYT1lO2lbYV0mJiEoYT49dCk7KSsrYTtpZihhLWU+MTYmJmkuYnVmZmVyJiZwZSlyZXR1cm4gcGUuZGVjb2RlKGkuc3ViYXJyYXkoZSxhKSk7Zm9yKHZhciBuPSIiO2U8YTspe3ZhciBsPWlbZSsrXTtpZighKGwmMTI4KSl7bis9U3RyaW5nLmZyb21DaGFyQ29kZShsKTtjb250aW51ZX12YXIgcz1pW2UrK10mNjM7aWYoKGwmMjI0KT09MTkyKXtuKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChsJjMxKTw8NnxzKTtjb250aW51ZX12YXIgZD1pW2UrK10mNjM7aWYoKGwmMjQwKT09MjI0P2w9KGwmMTUpPDwxMnxzPDw2fGQ6bD0obCY3KTw8MTh8czw8MTJ8ZDw8NnxpW2UrK10mNjMsbDw2NTUzNiluKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGwpO2Vsc2V7dmFyIGY9bC02NTUzNjtuKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2fGY+PjEwLDU2MzIwfGYmMTAyMyl9fXJldHVybiBufSxEaT0oaSxlKT0+aT9nZShqLGksZSk6IiI7ZnVuY3Rpb24gV2EoaSxlLHIpe3JldHVybiAwfWZ1bmN0aW9uIEhhKGksZSxyKXtyZXR1cm4gMH1mdW5jdGlvbiBHYShpLGUscix0KXt9dmFyIHphPWk9Pnt9LFlhPShpLGUscik9Pnt9LExhPShpLGUscix0LGEpPT57fSxOYT0oKT0+e2Zvcih2YXIgaT1uZXcgQXJyYXkoMjU2KSxlPTA7ZTwyNTY7KytlKWlbZV09U3RyaW5nLmZyb21DaGFyQ29kZShlKTttZT1pfSxtZSxIPWk9Pntmb3IodmFyIGU9IiIscj1pO2pbcl07KWUrPW1lW2pbcisrXV07cmV0dXJuIGV9LG1pPXt9LGhpPXt9LEVpPXt9LENpLEY9aT0+e3Rocm93IG5ldyBDaShpKX0sQ2UsSWk9aT0+e3Rocm93IG5ldyBDZShpKX0sYWk9KGksZSxyKT0+e2kuZm9yRWFjaChmdW5jdGlvbihzKXtFaVtzXT1lfSk7ZnVuY3Rpb24gdChzKXt2YXIgZD1yKHMpO2QubGVuZ3RoIT09aS5sZW5ndGgmJklpKCJNaXNtYXRjaGVkIHR5cGUgY29udmVydGVyIGNvdW50Iik7Zm9yKHZhciBmPTA7ZjxpLmxlbmd0aDsrK2YpbmkoaVtmXSxkW2ZdKX12YXIgYT1uZXcgQXJyYXkoZS5sZW5ndGgpLG49W10sbD0wO2UuZm9yRWFjaCgocyxkKT0+e2hpLmhhc093blByb3BlcnR5KHMpP2FbZF09aGlbc106KG4ucHVzaChzKSxtaS5oYXNPd25Qcm9wZXJ0eShzKXx8KG1pW3NdPVtdKSxtaVtzXS5wdXNoKCgpPT57YVtkXT1oaVtzXSwrK2wsbD09PW4ubGVuZ3RoJiZ0KGEpfSkpfSksbi5sZW5ndGg9PT0wJiZ0KGEpfTtmdW5jdGlvbiBxYShpLGUscj17fSl7dmFyIHQ9ZS5uYW1lO2lmKGl8fEYoYHR5cGUgIiR7dH0iIG11c3QgaGF2ZSBhIHBvc2l0aXZlIGludGVnZXIgdHlwZWlkIHBvaW50ZXJgKSxoaS5oYXNPd25Qcm9wZXJ0eShpKSl7aWYoci5pZ25vcmVEdXBsaWNhdGVSZWdpc3RyYXRpb25zKXJldHVybjtGKGBDYW5ub3QgcmVnaXN0ZXIgdHlwZSAnJHt0fScgdHdpY2VgKX1pZihoaVtpXT1lLGRlbGV0ZSBFaVtpXSxtaS5oYXNPd25Qcm9wZXJ0eShpKSl7dmFyIGE9bWlbaV07ZGVsZXRlIG1pW2ldLGEuZm9yRWFjaChuPT5uKCkpfX1mdW5jdGlvbiBuaShpLGUscj17fSl7aWYoISgiYXJnUGFja0FkdmFuY2UiaW4gZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigicmVnaXN0ZXJUeXBlIHJlZ2lzdGVyZWRJbnN0YW5jZSByZXF1aXJlcyBhcmdQYWNrQWR2YW5jZSIpO3JldHVybiBxYShpLGUscil9dmFyIGZpPTgsSmE9KGksZSxyLHQpPT57ZT1IKGUpLG5pKGkse25hbWU6ZSxmcm9tV2lyZVR5cGU6ZnVuY3Rpb24oYSl7cmV0dXJuISFhfSx0b1dpcmVUeXBlOmZ1bmN0aW9uKGEsbil7cmV0dXJuIG4/cjp0fSxhcmdQYWNrQWR2YW5jZTpmaSxyZWFkVmFsdWVGcm9tUG9pbnRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUoalthXSl9LGRlc3RydWN0b3JGdW5jdGlvbjpudWxsfSl9LFhhPWk9Pih7Y291bnQ6aS5jb3VudCxkZWxldGVTY2hlZHVsZWQ6aS5kZWxldGVTY2hlZHVsZWQscHJlc2VydmVQb2ludGVyT25EZWxldGU6aS5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZSxwdHI6aS5wdHIscHRyVHlwZTppLnB0clR5cGUsc21hcnRQdHI6aS5zbWFydFB0cixzbWFydFB0clR5cGU6aS5zbWFydFB0clR5cGV9KSxKaT1pPT57ZnVuY3Rpb24gZShyKXtyZXR1cm4gci4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzcy5uYW1lfUYoZShpKSsiIGluc3RhbmNlIGFscmVhZHkgZGVsZXRlZCIpfSxYaT0hMSx3ZT1pPT57fSxaYT1pPT57aS5zbWFydFB0cj9pLnNtYXJ0UHRyVHlwZS5yYXdEZXN0cnVjdG9yKGkuc21hcnRQdHIpOmkucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3MucmF3RGVzdHJ1Y3RvcihpLnB0cil9LGJlPWk9PntpLmNvdW50LnZhbHVlLT0xO3ZhciBlPWkuY291bnQudmFsdWU9PT0wO2UmJlphKGkpfSxUZT0oaSxlLHIpPT57aWYoZT09PXIpcmV0dXJuIGk7aWYoci5iYXNlQ2xhc3M9PT12b2lkIDApcmV0dXJuIG51bGw7dmFyIHQ9VGUoaSxlLHIuYmFzZUNsYXNzKTtyZXR1cm4gdD09PW51bGw/bnVsbDpyLmRvd25jYXN0KHQpfSxTZT17fSxLYT0oKT0+T2JqZWN0LmtleXMoa2kpLmxlbmd0aCxRYT0oKT0+e3ZhciBpPVtdO2Zvcih2YXIgZSBpbiBraSlraS5oYXNPd25Qcm9wZXJ0eShlKSYmaS5wdXNoKGtpW2VdKTtyZXR1cm4gaX0sU2k9W10sWmk9KCk9Pntmb3IoO1NpLmxlbmd0aDspe3ZhciBpPVNpLnBvcCgpO2kuJCQuZGVsZXRlU2NoZWR1bGVkPSExLGkuZGVsZXRlKCl9fSwkaSxlbj1pPT57JGk9aSxTaS5sZW5ndGgmJiRpJiYkaShaaSl9LHJuPSgpPT57by5nZXRJbmhlcml0ZWRJbnN0YW5jZUNvdW50PUthLG8uZ2V0TGl2ZUluaGVyaXRlZEluc3RhbmNlcz1RYSxvLmZsdXNoUGVuZGluZ0RlbGV0ZXM9Wmksby5zZXREZWxheUZ1bmN0aW9uPWVufSxraT17fSx0bj0oaSxlKT0+e2ZvcihlPT09dm9pZCAwJiZGKCJwdHIgc2hvdWxkIG5vdCBiZSB1bmRlZmluZWQiKTtpLmJhc2VDbGFzczspZT1pLnVwY2FzdChlKSxpPWkuYmFzZUNsYXNzO3JldHVybiBlfSxhbj0oaSxlKT0+KGU9dG4oaSxlKSxraVtlXSksT2k9KGksZSk9PnsoIWUucHRyVHlwZXx8IWUucHRyKSYmSWkoIm1ha2VDbGFzc0hhbmRsZSByZXF1aXJlcyBwdHIgYW5kIHB0clR5cGUiKTt2YXIgcj0hIWUuc21hcnRQdHJUeXBlLHQ9ISFlLnNtYXJ0UHRyO3JldHVybiByIT09dCYmSWkoIkJvdGggc21hcnRQdHJUeXBlIGFuZCBzbWFydFB0ciBtdXN0IGJlIHNwZWNpZmllZCIpLGUuY291bnQ9e3ZhbHVlOjF9LFBpKE9iamVjdC5jcmVhdGUoaSx7JCQ6e3ZhbHVlOmV9fSkpfTtmdW5jdGlvbiBubihpKXt2YXIgZT10aGlzLmdldFBvaW50ZWUoaSk7aWYoIWUpcmV0dXJuIHRoaXMuZGVzdHJ1Y3RvcihpKSxudWxsO3ZhciByPWFuKHRoaXMucmVnaXN0ZXJlZENsYXNzLGUpO2lmKHIhPT12b2lkIDApe2lmKHIuJCQuY291bnQudmFsdWU9PT0wKXJldHVybiByLiQkLnB0cj1lLHIuJCQuc21hcnRQdHI9aSxyLmNsb25lKCk7dmFyIHQ9ci5jbG9uZSgpO3JldHVybiB0aGlzLmRlc3RydWN0b3IoaSksdH1mdW5jdGlvbiBhKCl7cmV0dXJuIHRoaXMuaXNTbWFydFBvaW50ZXI/T2kodGhpcy5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUse3B0clR5cGU6dGhpcy5wb2ludGVlVHlwZSxwdHI6ZSxzbWFydFB0clR5cGU6dGhpcyxzbWFydFB0cjppfSk6T2kodGhpcy5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUse3B0clR5cGU6dGhpcyxwdHI6aX0pfXZhciBuPXRoaXMucmVnaXN0ZXJlZENsYXNzLmdldEFjdHVhbFR5cGUoZSksbD1TZVtuXTtpZighbClyZXR1cm4gYS5jYWxsKHRoaXMpO3ZhciBzO3RoaXMuaXNDb25zdD9zPWwuY29uc3RQb2ludGVyVHlwZTpzPWwucG9pbnRlclR5cGU7dmFyIGQ9VGUoZSx0aGlzLnJlZ2lzdGVyZWRDbGFzcyxzLnJlZ2lzdGVyZWRDbGFzcyk7cmV0dXJuIGQ9PT1udWxsP2EuY2FsbCh0aGlzKTp0aGlzLmlzU21hcnRQb2ludGVyP09pKHMucmVnaXN0ZXJlZENsYXNzLmluc3RhbmNlUHJvdG90eXBlLHtwdHJUeXBlOnMscHRyOmQsc21hcnRQdHJUeXBlOnRoaXMsc21hcnRQdHI6aX0pOk9pKHMucmVnaXN0ZXJlZENsYXNzLmluc3RhbmNlUHJvdG90eXBlLHtwdHJUeXBlOnMscHRyOmR9KX12YXIgUGk9aT0+dHlwZW9mIEZpbmFsaXphdGlvblJlZ2lzdHJ5PiJ1Ij8oUGk9ZT0+ZSxpKTooWGk9bmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KGU9PntiZShlLiQkKX0pLFBpPWU9Pnt2YXIgcj1lLiQkLHQ9ISFyLnNtYXJ0UHRyO2lmKHQpe3ZhciBhPXskJDpyfTtYaS5yZWdpc3RlcihlLGEsZSl9cmV0dXJuIGV9LHdlPWU9PlhpLnVucmVnaXN0ZXIoZSksUGkoaSkpLGxuPSgpPT57T2JqZWN0LmFzc2lnbih4aS5wcm90b3R5cGUse2lzQWxpYXNPZihpKXtpZighKHRoaXMgaW5zdGFuY2VvZiB4aSl8fCEoaSBpbnN0YW5jZW9mIHhpKSlyZXR1cm4hMTt2YXIgZT10aGlzLiQkLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzLHI9dGhpcy4kJC5wdHI7aS4kJD1pLiQkO2Zvcih2YXIgdD1pLiQkLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzLGE9aS4kJC5wdHI7ZS5iYXNlQ2xhc3M7KXI9ZS51cGNhc3QociksZT1lLmJhc2VDbGFzcztmb3IoO3QuYmFzZUNsYXNzOylhPXQudXBjYXN0KGEpLHQ9dC5iYXNlQ2xhc3M7cmV0dXJuIGU9PT10JiZyPT09YX0sY2xvbmUoKXtpZih0aGlzLiQkLnB0cnx8SmkodGhpcyksdGhpcy4kJC5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZSlyZXR1cm4gdGhpcy4kJC5jb3VudC52YWx1ZSs9MSx0aGlzO3ZhciBpPVBpKE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLHskJDp7dmFsdWU6WGEodGhpcy4kJCl9fSkpO3JldHVybiBpLiQkLmNvdW50LnZhbHVlKz0xLGkuJCQuZGVsZXRlU2NoZWR1bGVkPSExLGl9LGRlbGV0ZSgpe3RoaXMuJCQucHRyfHxKaSh0aGlzKSx0aGlzLiQkLmRlbGV0ZVNjaGVkdWxlZCYmIXRoaXMuJCQucHJlc2VydmVQb2ludGVyT25EZWxldGUmJkYoIk9iamVjdCBhbHJlYWR5IHNjaGVkdWxlZCBmb3IgZGVsZXRpb24iKSx3ZSh0aGlzKSxiZSh0aGlzLiQkKSx0aGlzLiQkLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlfHwodGhpcy4kJC5zbWFydFB0cj12b2lkIDAsdGhpcy4kJC5wdHI9dm9pZCAwKX0saXNEZWxldGVkKCl7cmV0dXJuIXRoaXMuJCQucHRyfSxkZWxldGVMYXRlcigpe3JldHVybiB0aGlzLiQkLnB0cnx8SmkodGhpcyksdGhpcy4kJC5kZWxldGVTY2hlZHVsZWQmJiF0aGlzLiQkLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlJiZGKCJPYmplY3QgYWxyZWFkeSBzY2hlZHVsZWQgZm9yIGRlbGV0aW9uIiksU2kucHVzaCh0aGlzKSxTaS5sZW5ndGg9PT0xJiYkaSYmJGkoWmkpLHRoaXMuJCQuZGVsZXRlU2NoZWR1bGVkPSEwLHRoaXN9fSl9O2Z1bmN0aW9uIHhpKCl7fXZhciBNaT0oaSxlKT0+T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIm5hbWUiLHt2YWx1ZTppfSksJGU9KGksZSxyKT0+e2lmKGlbZV0ub3ZlcmxvYWRUYWJsZT09PXZvaWQgMCl7dmFyIHQ9aVtlXTtpW2VdPWZ1bmN0aW9uKCl7cmV0dXJuIGlbZV0ub3ZlcmxvYWRUYWJsZS5oYXNPd25Qcm9wZXJ0eShhcmd1bWVudHMubGVuZ3RoKXx8RihgRnVuY3Rpb24gJyR7cn0nIGNhbGxlZCB3aXRoIGFuIGludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyAoJHthcmd1bWVudHMubGVuZ3RofSkgLSBleHBlY3RzIG9uZSBvZiAoJHtpW2VdLm92ZXJsb2FkVGFibGV9KSFgKSxpW2VdLm92ZXJsb2FkVGFibGVbYXJndW1lbnRzLmxlbmd0aF0uYXBwbHkodGhpcyxhcmd1bWVudHMpfSxpW2VdLm92ZXJsb2FkVGFibGU9W10saVtlXS5vdmVybG9hZFRhYmxlW3QuYXJnQ291bnRdPXR9fSxrZT0oaSxlLHIpPT57by5oYXNPd25Qcm9wZXJ0eShpKT8oKHI9PT12b2lkIDB8fG9baV0ub3ZlcmxvYWRUYWJsZSE9PXZvaWQgMCYmb1tpXS5vdmVybG9hZFRhYmxlW3JdIT09dm9pZCAwKSYmRihgQ2Fubm90IHJlZ2lzdGVyIHB1YmxpYyBuYW1lICcke2l9JyB0d2ljZWApLCRlKG8saSxpKSxvLmhhc093blByb3BlcnR5KHIpJiZGKGBDYW5ub3QgcmVnaXN0ZXIgbXVsdGlwbGUgb3ZlcmxvYWRzIG9mIGEgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgYXJndW1lbnRzICgke3J9KSFgKSxvW2ldLm92ZXJsb2FkVGFibGVbcl09ZSk6KG9baV09ZSxyIT09dm9pZCAwJiYob1tpXS5udW1Bcmd1bWVudHM9cikpfSxvbj00OCxzbj01Nyxkbj1pPT57aWYoaT09PXZvaWQgMClyZXR1cm4iX3Vua25vd24iO2k9aS5yZXBsYWNlKC9bXmEtekEtWjAtOV9dL2csIiQiKTt2YXIgZT1pLmNoYXJDb2RlQXQoMCk7cmV0dXJuIGU+PW9uJiZlPD1zbj9gXyR7aX1gOml9O2Z1bmN0aW9uIGZuKGksZSxyLHQsYSxuLGwscyl7dGhpcy5uYW1lPWksdGhpcy5jb25zdHJ1Y3Rvcj1lLHRoaXMuaW5zdGFuY2VQcm90b3R5cGU9cix0aGlzLnJhd0Rlc3RydWN0b3I9dCx0aGlzLmJhc2VDbGFzcz1hLHRoaXMuZ2V0QWN0dWFsVHlwZT1uLHRoaXMudXBjYXN0PWwsdGhpcy5kb3duY2FzdD1zLHRoaXMucHVyZVZpcnR1YWxGdW5jdGlvbnM9W119dmFyIGppPShpLGUscik9Pntmb3IoO2UhPT1yOyllLnVwY2FzdHx8RihgRXhwZWN0ZWQgbnVsbCBvciBpbnN0YW5jZSBvZiAke3IubmFtZX0sIGdvdCBhbiBpbnN0YW5jZSBvZiAke2UubmFtZX1gKSxpPWUudXBjYXN0KGkpLGU9ZS5iYXNlQ2xhc3M7cmV0dXJuIGl9O2Z1bmN0aW9uIGNuKGksZSl7aWYoZT09PW51bGwpcmV0dXJuIHRoaXMuaXNSZWZlcmVuY2UmJkYoYG51bGwgaXMgbm90IGEgdmFsaWQgJHt0aGlzLm5hbWV9YCksMDtlLiQkfHxGKGBDYW5ub3QgcGFzcyAiJHtyZShlKX0iIGFzIGEgJHt0aGlzLm5hbWV9YCksZS4kJC5wdHJ8fEYoYENhbm5vdCBwYXNzIGRlbGV0ZWQgb2JqZWN0IGFzIGEgcG9pbnRlciBvZiB0eXBlICR7dGhpcy5uYW1lfWApO3ZhciByPWUuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3MsdD1qaShlLiQkLnB0cixyLHRoaXMucmVnaXN0ZXJlZENsYXNzKTtyZXR1cm4gdH1mdW5jdGlvbiB1bihpLGUpe3ZhciByO2lmKGU9PT1udWxsKXJldHVybiB0aGlzLmlzUmVmZXJlbmNlJiZGKGBudWxsIGlzIG5vdCBhIHZhbGlkICR7dGhpcy5uYW1lfWApLHRoaXMuaXNTbWFydFBvaW50ZXI/KHI9dGhpcy5yYXdDb25zdHJ1Y3RvcigpLGkhPT1udWxsJiZpLnB1c2godGhpcy5yYXdEZXN0cnVjdG9yLHIpLHIpOjA7ZS4kJHx8RihgQ2Fubm90IHBhc3MgIiR7cmUoZSl9IiBhcyBhICR7dGhpcy5uYW1lfWApLGUuJCQucHRyfHxGKGBDYW5ub3QgcGFzcyBkZWxldGVkIG9iamVjdCBhcyBhIHBvaW50ZXIgb2YgdHlwZSAke3RoaXMubmFtZX1gKSwhdGhpcy5pc0NvbnN0JiZlLiQkLnB0clR5cGUuaXNDb25zdCYmRihgQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgb2YgdHlwZSAke2UuJCQuc21hcnRQdHJUeXBlP2UuJCQuc21hcnRQdHJUeXBlLm5hbWU6ZS4kJC5wdHJUeXBlLm5hbWV9IHRvIHBhcmFtZXRlciB0eXBlICR7dGhpcy5uYW1lfWApO3ZhciB0PWUuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3M7aWYocj1qaShlLiQkLnB0cix0LHRoaXMucmVnaXN0ZXJlZENsYXNzKSx0aGlzLmlzU21hcnRQb2ludGVyKXN3aXRjaChlLiQkLnNtYXJ0UHRyPT09dm9pZCAwJiZGKCJQYXNzaW5nIHJhdyBwb2ludGVyIHRvIHNtYXJ0IHBvaW50ZXIgaXMgaWxsZWdhbCIpLHRoaXMuc2hhcmluZ1BvbGljeSl7Y2FzZSAwOmUuJCQuc21hcnRQdHJUeXBlPT09dGhpcz9yPWUuJCQuc21hcnRQdHI6RihgQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgb2YgdHlwZSAke2UuJCQuc21hcnRQdHJUeXBlP2UuJCQuc21hcnRQdHJUeXBlLm5hbWU6ZS4kJC5wdHJUeXBlLm5hbWV9IHRvIHBhcmFtZXRlciB0eXBlICR7dGhpcy5uYW1lfWApO2JyZWFrO2Nhc2UgMTpyPWUuJCQuc21hcnRQdHI7YnJlYWs7Y2FzZSAyOmlmKGUuJCQuc21hcnRQdHJUeXBlPT09dGhpcylyPWUuJCQuc21hcnRQdHI7ZWxzZXt2YXIgYT1lLmNsb25lKCk7cj10aGlzLnJhd1NoYXJlKHIsSS50b0hhbmRsZSgoKT0+YS5kZWxldGUoKSkpLGkhPT1udWxsJiZpLnB1c2godGhpcy5yYXdEZXN0cnVjdG9yLHIpfWJyZWFrO2RlZmF1bHQ6RigiVW5zdXBwb3J0aW5nIHNoYXJpbmcgcG9saWN5Iil9cmV0dXJuIHJ9ZnVuY3Rpb24gdm4oaSxlKXtpZihlPT09bnVsbClyZXR1cm4gdGhpcy5pc1JlZmVyZW5jZSYmRihgbnVsbCBpcyBub3QgYSB2YWxpZCAke3RoaXMubmFtZX1gKSwwO2UuJCR8fEYoYENhbm5vdCBwYXNzICIke3JlKGUpfSIgYXMgYSAke3RoaXMubmFtZX1gKSxlLiQkLnB0cnx8RihgQ2Fubm90IHBhc3MgZGVsZXRlZCBvYmplY3QgYXMgYSBwb2ludGVyIG9mIHR5cGUgJHt0aGlzLm5hbWV9YCksZS4kJC5wdHJUeXBlLmlzQ29uc3QmJkYoYENhbm5vdCBjb252ZXJ0IGFyZ3VtZW50IG9mIHR5cGUgJHtlLiQkLnB0clR5cGUubmFtZX0gdG8gcGFyYW1ldGVyIHR5cGUgJHt0aGlzLm5hbWV9YCk7dmFyIHI9ZS4kJC5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzcyx0PWppKGUuJCQucHRyLHIsdGhpcy5yZWdpc3RlcmVkQ2xhc3MpO3JldHVybiB0fWZ1bmN0aW9uIFBlKGkpe3JldHVybiB0aGlzLmZyb21XaXJlVHlwZShWW2k+PjJdKX12YXIgeW49KCk9PntPYmplY3QuYXNzaWduKEFpLnByb3RvdHlwZSx7Z2V0UG9pbnRlZShpKXtyZXR1cm4gdGhpcy5yYXdHZXRQb2ludGVlJiYoaT10aGlzLnJhd0dldFBvaW50ZWUoaSkpLGl9LGRlc3RydWN0b3IoaSl7dGhpcy5yYXdEZXN0cnVjdG9yJiZ0aGlzLnJhd0Rlc3RydWN0b3IoaSl9LGFyZ1BhY2tBZHZhbmNlOmZpLHJlYWRWYWx1ZUZyb21Qb2ludGVyOlBlLGRlbGV0ZU9iamVjdChpKXtpIT09bnVsbCYmaS5kZWxldGUoKX0sZnJvbVdpcmVUeXBlOm5ufSl9O2Z1bmN0aW9uIEFpKGksZSxyLHQsYSxuLGwscyxkLGYsYyl7dGhpcy5uYW1lPWksdGhpcy5yZWdpc3RlcmVkQ2xhc3M9ZSx0aGlzLmlzUmVmZXJlbmNlPXIsdGhpcy5pc0NvbnN0PXQsdGhpcy5pc1NtYXJ0UG9pbnRlcj1hLHRoaXMucG9pbnRlZVR5cGU9bix0aGlzLnNoYXJpbmdQb2xpY3k9bCx0aGlzLnJhd0dldFBvaW50ZWU9cyx0aGlzLnJhd0NvbnN0cnVjdG9yPWQsdGhpcy5yYXdTaGFyZT1mLHRoaXMucmF3RGVzdHJ1Y3Rvcj1jLCFhJiZlLmJhc2VDbGFzcz09PXZvaWQgMD90Pyh0aGlzLnRvV2lyZVR5cGU9Y24sdGhpcy5kZXN0cnVjdG9yRnVuY3Rpb249bnVsbCk6KHRoaXMudG9XaXJlVHlwZT12bix0aGlzLmRlc3RydWN0b3JGdW5jdGlvbj1udWxsKTp0aGlzLnRvV2lyZVR5cGU9dW59dmFyIE1lPShpLGUscik9PntvLmhhc093blByb3BlcnR5KGkpfHxJaSgiUmVwbGFjaW5nIG5vbmV4aXN0YW50IHB1YmxpYyBzeW1ib2wiKSxvW2ldLm92ZXJsb2FkVGFibGUhPT12b2lkIDAmJnIhPT12b2lkIDA/b1tpXS5vdmVybG9hZFRhYmxlW3JdPWU6KG9baV09ZSxvW2ldLmFyZ0NvdW50PXIpfSxfbj0oaSxlLHIpPT57dmFyIHQ9b1siZHluQ2FsbF8iK2ldO3JldHVybiByJiZyLmxlbmd0aD90LmFwcGx5KG51bGwsW2VdLmNvbmNhdChyKSk6dC5jYWxsKG51bGwsZSl9LGhuPShpLGUscik9Pnt2YXIgdD1fbihpLGUscik7cmV0dXJuIHR9LHBuPShpLGUpPT57dmFyIHI9W107cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIubGVuZ3RoPTAsT2JqZWN0LmFzc2lnbihyLGFyZ3VtZW50cyksaG4oaSxlLHIpfX0sTD0oaSxlKT0+e2k9SChpKTtmdW5jdGlvbiByKCl7cmV0dXJuIHBuKGksZSl9dmFyIHQ9cigpO3JldHVybiB0eXBlb2YgdCE9ImZ1bmN0aW9uIiYmRihgdW5rbm93biBmdW5jdGlvbiBwb2ludGVyIHdpdGggc2lnbmF0dXJlICR7aX06ICR7ZX1gKSx0fSxnbj0oaSxlKT0+e3ZhciByPU1pKGUsZnVuY3Rpb24odCl7dGhpcy5uYW1lPWUsdGhpcy5tZXNzYWdlPXQ7dmFyIGE9bmV3IEVycm9yKHQpLnN0YWNrO2EhPT12b2lkIDAmJih0aGlzLnN0YWNrPXRoaXMudG9TdHJpbmcoKStgCmArYS5yZXBsYWNlKC9eRXJyb3IoOlteXG5dKik/XG4vLCIiKSl9KTtyZXR1cm4gci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1lc3NhZ2U9PT12b2lkIDA/dGhpcy5uYW1lOmAke3RoaXMubmFtZX06ICR7dGhpcy5tZXNzYWdlfWB9LHJ9LEFlLFJlPWk9Pnt2YXIgZT1aZShpKSxyPUgoZSk7cmV0dXJuIFEoZSkscn0sd2k9KGksZSk9Pnt2YXIgcj1bXSx0PXt9O2Z1bmN0aW9uIGEobil7aWYoIXRbbl0mJiFoaVtuXSl7aWYoRWlbbl0pe0VpW25dLmZvckVhY2goYSk7cmV0dXJufXIucHVzaChuKSx0W25dPSEwfX10aHJvdyBlLmZvckVhY2goYSksbmV3IEFlKGAke2l9OiBgK3IubWFwKFJlKS5qb2luKFsiLCAiXSkpfSxtbj0oaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCk9PntjPUgoYyksbj1MKGEsbikscyYmKHM9TChsLHMpKSxmJiYoZj1MKGQsZikpLGg9TCh5LGgpO3ZhciBiPWRuKGMpO2tlKGIsZnVuY3Rpb24oKXt3aShgQ2Fubm90IGNvbnN0cnVjdCAke2N9IGR1ZSB0byB1bmJvdW5kIHR5cGVzYCxbdF0pfSksYWkoW2ksZSxyXSx0P1t0XTpbXSxmdW5jdGlvbihUKXtUPVRbMF07dmFyIE0sQjt0PyhNPVQucmVnaXN0ZXJlZENsYXNzLEI9TS5pbnN0YW5jZVByb3RvdHlwZSk6Qj14aS5wcm90b3R5cGU7dmFyIHg9TWkoYyxmdW5jdGlvbigpe2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSE9PUMpdGhyb3cgbmV3IENpKCJVc2UgJ25ldycgdG8gY29uc3RydWN0ICIrYyk7aWYoUy5jb25zdHJ1Y3Rvcl9ib2R5PT09dm9pZCAwKXRocm93IG5ldyBDaShjKyIgaGFzIG5vIGFjY2Vzc2libGUgY29uc3RydWN0b3IiKTt2YXIgWWk9Uy5jb25zdHJ1Y3Rvcl9ib2R5W2FyZ3VtZW50cy5sZW5ndGhdO2lmKFlpPT09dm9pZCAwKXRocm93IG5ldyBDaShgVHJpZWQgdG8gaW52b2tlIGN0b3Igb2YgJHtjfSB3aXRoIGludmFsaWQgbnVtYmVyIG9mIHBhcmFtZXRlcnMgKCR7YXJndW1lbnRzLmxlbmd0aH0pIC0gZXhwZWN0ZWQgKCR7T2JqZWN0LmtleXMoUy5jb25zdHJ1Y3Rvcl9ib2R5KS50b1N0cmluZygpfSkgcGFyYW1ldGVycyBpbnN0ZWFkIWApO3JldHVybiBZaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxDPU9iamVjdC5jcmVhdGUoQix7Y29uc3RydWN0b3I6e3ZhbHVlOnh9fSk7eC5wcm90b3R5cGU9Qzt2YXIgUz1uZXcgZm4oYyx4LEMsaCxNLG4scyxmKTtTLmJhc2VDbGFzcyYmKFMuYmFzZUNsYXNzLl9fZGVyaXZlZENsYXNzZXM9PT12b2lkIDAmJihTLmJhc2VDbGFzcy5fX2Rlcml2ZWRDbGFzc2VzPVtdKSxTLmJhc2VDbGFzcy5fX2Rlcml2ZWRDbGFzc2VzLnB1c2goUykpO3ZhciB6PW5ldyBBaShjLFMsITAsITEsITEpLFc9bmV3IEFpKGMrIioiLFMsITEsITEsITEpLHBpPW5ldyBBaShjKyIgY29uc3QqIixTLCExLCEwLCExKTtyZXR1cm4gU2VbaV09e3BvaW50ZXJUeXBlOlcsY29uc3RQb2ludGVyVHlwZTpwaX0sTWUoYix4KSxbeixXLHBpXX0pfSxLaT0oaSxlKT0+e2Zvcih2YXIgcj1bXSx0PTA7dDxpO3QrKylyLnB1c2goVltlK3QqND4+Ml0pO3JldHVybiByfSxRaT1pPT57Zm9yKDtpLmxlbmd0aDspe3ZhciBlPWkucG9wKCkscj1pLnBvcCgpO3IoZSl9fTtmdW5jdGlvbiBGZShpLGUpe2lmKCEoaSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSl0aHJvdyBuZXcgVHlwZUVycm9yKGBuZXdfIGNhbGxlZCB3aXRoIGNvbnN0cnVjdG9yIHR5cGUgJHt0eXBlb2YgaX0gd2hpY2ggaXMgbm90IGEgZnVuY3Rpb25gKTt2YXIgcj1NaShpLm5hbWV8fCJ1bmtub3duRnVuY3Rpb25OYW1lIixmdW5jdGlvbigpe30pO3IucHJvdG90eXBlPWkucHJvdG90eXBlO3ZhciB0PW5ldyByLGE9aS5hcHBseSh0LGUpO3JldHVybiBhIGluc3RhbmNlb2YgT2JqZWN0P2E6dH12YXIgVWk9aT0+e3RyeXtyZXR1cm4gaSgpfWNhdGNoKGUpe2dpKGUpfX0sVmU9aT0+e2lmKGkgaW5zdGFuY2VvZiB5ZXx8aT09InVud2luZCIpcmV0dXJuIHZpO08oMSxpKX0sQ249MCxCZT0oKT0+RmF8fENuPjAsd249aT0+e3ZpPWksQmUoKXx8KG8ub25FeGl0JiZvLm9uRXhpdChpKSxKPSEwKSxPKGksbmV3IHllKGkpKX0sYm49KGksZSk9Pnt2aT1pLHduKGkpfSxEZT1ibixUbj0oKT0+e2lmKCFCZSgpKXRyeXtEZSh2aSl9Y2F0Y2goaSl7VmUoaSl9fSxFZT1pPT57aWYoIUopdHJ5e2koKSxUbigpfWNhdGNoKGUpe1ZlKGUpfX0sJD17aW5zdHJ1bWVudFdhc21JbXBvcnRzKGkpe3ZhciBlPS9eKGludm9rZV8uKnxfX2FzeW5janNfXy4qKSQvO2Zvcih2YXIgciBpbiBpKShmdW5jdGlvbih0KXt2YXIgYT1pW3RdO2Euc2lnLHR5cGVvZiBhPT0iZnVuY3Rpb24iJiYoYS5pc0FzeW5jfHxlLnRlc3QodCkpfSkocil9LGluc3RydW1lbnRXYXNtRXhwb3J0cyhpKXt2YXIgZT17fTtmb3IodmFyIHIgaW4gaSkoZnVuY3Rpb24odCl7dmFyIGE9aVt0XTt0eXBlb2YgYT09ImZ1bmN0aW9uIj9lW3RdPWZ1bmN0aW9uKCl7JC5leHBvcnRDYWxsU3RhY2sucHVzaCh0KTt0cnl7cmV0dXJuIGEuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZpbmFsbHl7Snx8KCQuZXhwb3J0Q2FsbFN0YWNrLnBvcCgpLCQubWF5YmVTdG9wVW53aW5kKCkpfX06ZVt0XT1hfSkocik7cmV0dXJuIGV9LFN0YXRlOntOb3JtYWw6MCxVbndpbmRpbmc6MSxSZXdpbmRpbmc6MixEaXNhYmxlZDozfSxzdGF0ZTowLFN0YWNrU2l6ZTo0MDk2LGN1cnJEYXRhOm51bGwsaGFuZGxlU2xlZXBSZXR1cm5WYWx1ZTowLGV4cG9ydENhbGxTdGFjazpbXSxjYWxsU3RhY2tOYW1lVG9JZDp7fSxjYWxsU3RhY2tJZFRvTmFtZTp7fSxjYWxsU3RhY2tJZDowLGFzeW5jUHJvbWlzZUhhbmRsZXJzOm51bGwsc2xlZXBDYWxsYmFja3M6W10sZ2V0Q2FsbFN0YWNrSWQoaSl7dmFyIGU9JC5jYWxsU3RhY2tOYW1lVG9JZFtpXTtyZXR1cm4gZT09PXZvaWQgMCYmKGU9JC5jYWxsU3RhY2tJZCsrLCQuY2FsbFN0YWNrTmFtZVRvSWRbaV09ZSwkLmNhbGxTdGFja0lkVG9OYW1lW2VdPWkpLGV9LG1heWJlU3RvcFVud2luZCgpeyQuY3VyckRhdGEmJiQuc3RhdGU9PT0kLlN0YXRlLlVud2luZGluZyYmJC5leHBvcnRDYWxsU3RhY2subGVuZ3RoPT09MCYmKCQuc3RhdGU9JC5TdGF0ZS5Ob3JtYWwsVWkoSnQpLHR5cGVvZiBGaWJlcnM8InUiJiZGaWJlcnMudHJhbXBvbGluZSgpKX0sd2hlbkRvbmUoKXtyZXR1cm4gbmV3IFByb21pc2UoKGksZSk9PnskLmFzeW5jUHJvbWlzZUhhbmRsZXJzPXtyZXNvbHZlOmkscmVqZWN0OmV9fSl9LGFsbG9jYXRlRGF0YSgpe3ZhciBpPUdpKDEyKyQuU3RhY2tTaXplKTtyZXR1cm4gJC5zZXREYXRhSGVhZGVyKGksaSsxMiwkLlN0YWNrU2l6ZSksJC5zZXREYXRhUmV3aW5kRnVuYyhpKSxpfSxzZXREYXRhSGVhZGVyKGksZSxyKXtWW2k+PjJdPWUsVltpKzQ+PjJdPWUrcn0sc2V0RGF0YVJld2luZEZ1bmMoaSl7dmFyIGU9JC5leHBvcnRDYWxsU3RhY2tbMF0scj0kLmdldENhbGxTdGFja0lkKGUpO1VbaSs4Pj4yXT1yfSxnZXREYXRhUmV3aW5kRnVuYyhpKXt2YXIgZT1VW2krOD4+Ml0scj0kLmNhbGxTdGFja0lkVG9OYW1lW2VdLHQ9dltyXTtyZXR1cm4gdH0sZG9SZXdpbmQoaSl7dmFyIGU9JC5nZXREYXRhUmV3aW5kRnVuYyhpKTtyZXR1cm4gZSgpfSxoYW5kbGVTbGVlcChpKXtpZighSil7aWYoJC5zdGF0ZT09PSQuU3RhdGUuTm9ybWFsKXt2YXIgZT0hMSxyPSExO2koKHQ9MCk9PntpZighSiYmKCQuaGFuZGxlU2xlZXBSZXR1cm5WYWx1ZT10LGU9ITAsISFyKSl7JC5zdGF0ZT0kLlN0YXRlLlJld2luZGluZyxVaSgoKT0+WHQoJC5jdXJyRGF0YSkpLHR5cGVvZiBCcm93c2VyPCJ1IiYmQnJvd3Nlci5tYWluTG9vcC5mdW5jJiZCcm93c2VyLm1haW5Mb29wLnJlc3VtZSgpO3ZhciBhLG49ITE7dHJ5e2E9JC5kb1Jld2luZCgkLmN1cnJEYXRhKX1jYXRjaChkKXthPWQsbj0hMH12YXIgbD0hMTtpZighJC5jdXJyRGF0YSl7dmFyIHM9JC5hc3luY1Byb21pc2VIYW5kbGVycztzJiYoJC5hc3luY1Byb21pc2VIYW5kbGVycz1udWxsLChuP3MucmVqZWN0OnMucmVzb2x2ZSkoYSksbD0hMCl9aWYobiYmIWwpdGhyb3cgYX19KSxyPSEwLGV8fCgkLnN0YXRlPSQuU3RhdGUuVW53aW5kaW5nLCQuY3VyckRhdGE9JC5hbGxvY2F0ZURhdGEoKSx0eXBlb2YgQnJvd3NlcjwidSImJkJyb3dzZXIubWFpbkxvb3AuZnVuYyYmQnJvd3Nlci5tYWluTG9vcC5wYXVzZSgpLFVpKCgpPT5xdCgkLmN1cnJEYXRhKSkpfWVsc2UgJC5zdGF0ZT09PSQuU3RhdGUuUmV3aW5kaW5nPygkLnN0YXRlPSQuU3RhdGUuTm9ybWFsLFVpKFp0KSxRKCQuY3VyckRhdGEpLCQuY3VyckRhdGE9bnVsbCwkLnNsZWVwQ2FsbGJhY2tzLmZvckVhY2godD0+RWUodCkpKTpnaShgaW52YWxpZCBzdGF0ZTogJHskLnN0YXRlfWApO3JldHVybiAkLmhhbmRsZVNsZWVwUmV0dXJuVmFsdWV9fSxoYW5kbGVBc3luYyhpKXtyZXR1cm4gJC5oYW5kbGVTbGVlcChlPT57aSgpLnRoZW4oZSl9KX19O2Z1bmN0aW9uIGllKGksZSxyLHQsYSxuKXt2YXIgbD1lLmxlbmd0aDtsPDImJkYoImFyZ1R5cGVzIGFycmF5IHNpemUgbWlzbWF0Y2ghIE11c3QgYXQgbGVhc3QgZ2V0IHJldHVybiB2YWx1ZSBhbmQgJ3RoaXMnIHR5cGVzISIpO2Zvcih2YXIgcz1lWzFdIT09bnVsbCYmciE9PW51bGwsZD0hMSxmPTE7ZjxlLmxlbmd0aDsrK2YpaWYoZVtmXSE9PW51bGwmJmVbZl0uZGVzdHJ1Y3RvckZ1bmN0aW9uPT09dm9pZCAwKXtkPSEwO2JyZWFrfWZvcih2YXIgYz1lWzBdLm5hbWUhPT0idm9pZCIseT0iIixoPSIiLGY9MDtmPGwtMjsrK2YpeSs9KGYhPT0wPyIsICI6IiIpKyJhcmciK2YsaCs9KGYhPT0wPyIsICI6IiIpKyJhcmciK2YrIldpcmVkIjt2YXIgYj1gCiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgke3l9KSB7CiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggIT09ICR7bC0yfSkgewogICAgICAgICAgdGhyb3dCaW5kaW5nRXJyb3IoJ2Z1bmN0aW9uICR7aX0gY2FsbGVkIHdpdGggJyArIGFyZ3VtZW50cy5sZW5ndGggKyAnIGFyZ3VtZW50cywgZXhwZWN0ZWQgJHtsLTJ9Jyk7CiAgICAgICAgfWA7ZCYmKGIrPWB2YXIgZGVzdHJ1Y3RvcnMgPSBbXTsKYCk7dmFyIFQ9ZD8iZGVzdHJ1Y3RvcnMiOiJudWxsIixNPVsidGhyb3dCaW5kaW5nRXJyb3IiLCJpbnZva2VyIiwiZm4iLCJydW5EZXN0cnVjdG9ycyIsInJldFR5cGUiLCJjbGFzc1BhcmFtIl0sQj1bRix0LGEsUWksZVswXSxlWzFdXTtzJiYoYis9InZhciB0aGlzV2lyZWQgPSBjbGFzc1BhcmFtLnRvV2lyZVR5cGUoIitUK2AsIHRoaXMpOwpgKTtmb3IodmFyIGY9MDtmPGwtMjsrK2YpYis9InZhciBhcmciK2YrIldpcmVkID0gYXJnVHlwZSIrZisiLnRvV2lyZVR5cGUoIitUKyIsIGFyZyIrZisiKTsgLy8gIitlW2YrMl0ubmFtZStgCmAsTS5wdXNoKCJhcmdUeXBlIitmKSxCLnB1c2goZVtmKzJdKTtpZihzJiYoaD0idGhpc1dpcmVkIisoaC5sZW5ndGg+MD8iLCAiOiIiKStoKSxiKz0oY3x8bj8idmFyIHJ2ID0gIjoiIikrImludm9rZXIoZm4iKyhoLmxlbmd0aD4wPyIsICI6IiIpK2grYCk7CmAsTS5wdXNoKCJBc3luY2lmeSIpLEIucHVzaCgkKSxiKz0iZnVuY3Rpb24gb25Eb25lKCIrKGM/InJ2IjoiIikrYCkgewpgLGQpYis9YHJ1bkRlc3RydWN0b3JzKGRlc3RydWN0b3JzKTsKYDtlbHNlIGZvcih2YXIgZj1zPzE6MjtmPGUubGVuZ3RoOysrZil7dmFyIHg9Zj09PTE/InRoaXNXaXJlZCI6ImFyZyIrKGYtMikrIldpcmVkIjtlW2ZdLmRlc3RydWN0b3JGdW5jdGlvbiE9PW51bGwmJihiKz14KyJfZHRvcigiK3grIik7IC8vICIrZVtmXS5uYW1lK2AKYCxNLnB1c2goeCsiX2R0b3IiKSxCLnB1c2goZVtmXS5kZXN0cnVjdG9yRnVuY3Rpb24pKX1jJiYoYis9YHZhciByZXQgPSByZXRUeXBlLmZyb21XaXJlVHlwZShydik7CnJldHVybiByZXQ7CmApLGIrPWB9CmAsYis9InJldHVybiBBc3luY2lmeS5jdXJyRGF0YSA/IEFzeW5jaWZ5LndoZW5Eb25lKCkudGhlbihvbkRvbmUpIDogb25Eb25lKCIrKGM/InJ2IjoiIikrYCk7CmAsYis9YH0KYCxNLnB1c2goYik7dmFyIEM9RmUoRnVuY3Rpb24sTSkuYXBwbHkobnVsbCxCKTtyZXR1cm4gTWkoaSxDKX12YXIgU249KGksZSxyLHQsYSxuKT0+e3ZhciBsPUtpKGUscik7YT1MKHQsYSksYWkoW10sW2ldLGZ1bmN0aW9uKHMpe3M9c1swXTt2YXIgZD1gY29uc3RydWN0b3IgJHtzLm5hbWV9YDtpZihzLnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5PT09dm9pZCAwJiYocy5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keT1bXSkscy5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keVtlLTFdIT09dm9pZCAwKXRocm93IG5ldyBDaShgQ2Fubm90IHJlZ2lzdGVyIG11bHRpcGxlIGNvbnN0cnVjdG9ycyB3aXRoIGlkZW50aWNhbCBudW1iZXIgb2YgcGFyYW1ldGVycyAoJHtlLTF9KSBmb3IgY2xhc3MgJyR7cy5uYW1lfSchIE92ZXJsb2FkIHJlc29sdXRpb24gaXMgY3VycmVudGx5IG9ubHkgcGVyZm9ybWVkIHVzaW5nIHRoZSBwYXJhbWV0ZXIgY291bnQsIG5vdCBhY3R1YWwgdHlwZSBpbmZvIWApO3JldHVybiBzLnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5W2UtMV09KCk9Pnt3aShgQ2Fubm90IGNvbnN0cnVjdCAke3MubmFtZX0gZHVlIHRvIHVuYm91bmQgdHlwZXNgLGwpfSxhaShbXSxsLGY9PihmLnNwbGljZSgxLDAsbnVsbCkscy5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keVtlLTFdPWllKGQsZixudWxsLGEsbiksW10pKSxbXX0pfSxJZT1pPT57aT1pLnRyaW0oKTtjb25zdCBlPWkuaW5kZXhPZigiKCIpO3JldHVybiBlIT09LTE/aS5zdWJzdHIoMCxlKTppfSwkbj0oaSxlLHIsdCxhLG4sbCxzLGQpPT57dmFyIGY9S2kocix0KTtlPUgoZSksZT1JZShlKSxuPUwoYSxuKSxhaShbXSxbaV0sZnVuY3Rpb24oYyl7Yz1jWzBdO3ZhciB5PWAke2MubmFtZX0uJHtlfWA7ZS5zdGFydHNXaXRoKCJAQCIpJiYoZT1TeW1ib2xbZS5zdWJzdHJpbmcoMildKSxzJiZjLnJlZ2lzdGVyZWRDbGFzcy5wdXJlVmlydHVhbEZ1bmN0aW9ucy5wdXNoKGUpO2Z1bmN0aW9uIGgoKXt3aShgQ2Fubm90IGNhbGwgJHt5fSBkdWUgdG8gdW5ib3VuZCB0eXBlc2AsZil9dmFyIGI9Yy5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUsVD1iW2VdO3JldHVybiBUPT09dm9pZCAwfHxULm92ZXJsb2FkVGFibGU9PT12b2lkIDAmJlQuY2xhc3NOYW1lIT09Yy5uYW1lJiZULmFyZ0NvdW50PT09ci0yPyhoLmFyZ0NvdW50PXItMixoLmNsYXNzTmFtZT1jLm5hbWUsYltlXT1oKTooJGUoYixlLHkpLGJbZV0ub3ZlcmxvYWRUYWJsZVtyLTJdPWgpLGFpKFtdLGYsZnVuY3Rpb24oTSl7dmFyIEI9aWUoeSxNLGMsbixsLGQpO3JldHVybiBiW2VdLm92ZXJsb2FkVGFibGU9PT12b2lkIDA/KEIuYXJnQ291bnQ9ci0yLGJbZV09Qik6YltlXS5vdmVybG9hZFRhYmxlW3ItMl09QixbXX0pLFtdfSl9LE9lPShpLGUscik9PihpIGluc3RhbmNlb2YgT2JqZWN0fHxGKGAke3J9IHdpdGggaW52YWxpZCAidGhpcyI6ICR7aX1gKSxpIGluc3RhbmNlb2YgZS5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3J8fEYoYCR7cn0gaW5jb21wYXRpYmxlIHdpdGggInRoaXMiIG9mIHR5cGUgJHtpLmNvbnN0cnVjdG9yLm5hbWV9YCksaS4kJC5wdHJ8fEYoYGNhbm5vdCBjYWxsIGVtc2NyaXB0ZW4gYmluZGluZyBtZXRob2QgJHtyfSBvbiBkZWxldGVkIG9iamVjdGApLGppKGkuJCQucHRyLGkuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3MsZS5yZWdpc3RlcmVkQ2xhc3MpKSxrbj0oaSxlLHIsdCxhLG4sbCxzLGQsZik9PntlPUgoZSksYT1MKHQsYSksYWkoW10sW2ldLGZ1bmN0aW9uKGMpe2M9Y1swXTt2YXIgeT1gJHtjLm5hbWV9LiR7ZX1gLGg9e2dldCgpe3dpKGBDYW5ub3QgYWNjZXNzICR7eX0gZHVlIHRvIHVuYm91bmQgdHlwZXNgLFtyLGxdKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9O3JldHVybiBkP2guc2V0PSgpPT53aShgQ2Fubm90IGFjY2VzcyAke3l9IGR1ZSB0byB1bmJvdW5kIHR5cGVzYCxbcixsXSk6aC5zZXQ9Yj0+Rih5KyIgaXMgYSByZWFkLW9ubHkgcHJvcGVydHkiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYy5yZWdpc3RlcmVkQ2xhc3MuaW5zdGFuY2VQcm90b3R5cGUsZSxoKSxhaShbXSxkP1tyLGxdOltyXSxmdW5jdGlvbihiKXt2YXIgVD1iWzBdLE09e2dldCgpe3ZhciB4PU9lKHRoaXMsYyx5KyIgZ2V0dGVyIik7cmV0dXJuIFQuZnJvbVdpcmVUeXBlKGEobix4KSl9LGVudW1lcmFibGU6ITB9O2lmKGQpe2Q9TChzLGQpO3ZhciBCPWJbMV07TS5zZXQ9ZnVuY3Rpb24oeCl7dmFyIEM9T2UodGhpcyxjLHkrIiBzZXR0ZXIiKSxTPVtdO2QoZixDLEIudG9XaXJlVHlwZShTLHgpKSxRaShTKX19cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZSxlLE0pLFtdfSksW119KX07ZnVuY3Rpb24gUG4oKXtPYmplY3QuYXNzaWduKHhlLnByb3RvdHlwZSx7Z2V0KGkpe3JldHVybiB0aGlzLmFsbG9jYXRlZFtpXX0saGFzKGkpe3JldHVybiB0aGlzLmFsbG9jYXRlZFtpXSE9PXZvaWQgMH0sYWxsb2NhdGUoaSl7dmFyIGU9dGhpcy5mcmVlbGlzdC5wb3AoKXx8dGhpcy5hbGxvY2F0ZWQubGVuZ3RoO3JldHVybiB0aGlzLmFsbG9jYXRlZFtlXT1pLGV9LGZyZWUoaSl7dGhpcy5hbGxvY2F0ZWRbaV09dm9pZCAwLHRoaXMuZnJlZWxpc3QucHVzaChpKX19KX1mdW5jdGlvbiB4ZSgpe3RoaXMuYWxsb2NhdGVkPVt2b2lkIDBdLHRoaXMuZnJlZWxpc3Q9W119dmFyIFg9bmV3IHhlLGVlPWk9PntpPj1YLnJlc2VydmVkJiYtLVguZ2V0KGkpLnJlZmNvdW50PT09MCYmWC5mcmVlKGkpfSxNbj0oKT0+e2Zvcih2YXIgaT0wLGU9WC5yZXNlcnZlZDtlPFguYWxsb2NhdGVkLmxlbmd0aDsrK2UpWC5hbGxvY2F0ZWRbZV0hPT12b2lkIDAmJisraTtyZXR1cm4gaX0sQW49KCk9PntYLmFsbG9jYXRlZC5wdXNoKHt2YWx1ZTp2b2lkIDB9LHt2YWx1ZTpudWxsfSx7dmFsdWU6ITB9LHt2YWx1ZTohMX0pLFgucmVzZXJ2ZWQ9WC5hbGxvY2F0ZWQubGVuZ3RoLG8uY291bnRfZW12YWxfaGFuZGxlcz1Nbn0sST17dG9WYWx1ZTppPT4oaXx8RigiQ2Fubm90IHVzZSBkZWxldGVkIHZhbC4gaGFuZGxlID0gIitpKSxYLmdldChpKS52YWx1ZSksdG9IYW5kbGU6aT0+e3N3aXRjaChpKXtjYXNlIHZvaWQgMDpyZXR1cm4gMTtjYXNlIG51bGw6cmV0dXJuIDI7Y2FzZSEwOnJldHVybiAzO2Nhc2UhMTpyZXR1cm4gNDtkZWZhdWx0OnJldHVybiBYLmFsbG9jYXRlKHtyZWZjb3VudDoxLHZhbHVlOml9KX19fTtmdW5jdGlvbiBqZShpKXtyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUoVVtpPj4yXSl9dmFyIFJuPShpLGUpPT57ZT1IKGUpLG5pKGkse25hbWU6ZSxmcm9tV2lyZVR5cGU6cj0+e3ZhciB0PUkudG9WYWx1ZShyKTtyZXR1cm4gZWUociksdH0sdG9XaXJlVHlwZToocix0KT0+SS50b0hhbmRsZSh0KSxhcmdQYWNrQWR2YW5jZTpmaSxyZWFkVmFsdWVGcm9tUG9pbnRlcjpqZSxkZXN0cnVjdG9yRnVuY3Rpb246bnVsbH0pfSxyZT1pPT57aWYoaT09PW51bGwpcmV0dXJuIm51bGwiO3ZhciBlPXR5cGVvZiBpO3JldHVybiBlPT09Im9iamVjdCJ8fGU9PT0iYXJyYXkifHxlPT09ImZ1bmN0aW9uIj9pLnRvU3RyaW5nKCk6IiIraX0sRm49KGksZSk9Pntzd2l0Y2goZSl7Y2FzZSA0OnJldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUoc2lbcj4+Ml0pfTtjYXNlIDg6cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLmZyb21XaXJlVHlwZShiaVtyPj4zXSl9O2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihgaW52YWxpZCBmbG9hdCB3aWR0aCAoJHtlfSk6ICR7aX1gKX19LFZuPShpLGUscik9PntlPUgoZSksbmkoaSx7bmFtZTplLGZyb21XaXJlVHlwZTp0PT50LHRvV2lyZVR5cGU6KHQsYSk9PmEsYXJnUGFja0FkdmFuY2U6ZmkscmVhZFZhbHVlRnJvbVBvaW50ZXI6Rm4oZSxyKSxkZXN0cnVjdG9yRnVuY3Rpb246bnVsbH0pfSxCbj0oaSxlLHIsdCxhLG4sbCk9Pnt2YXIgcz1LaShlLHIpO2k9SChpKSxpPUllKGkpLGE9TCh0LGEpLGtlKGksZnVuY3Rpb24oKXt3aShgQ2Fubm90IGNhbGwgJHtpfSBkdWUgdG8gdW5ib3VuZCB0eXBlc2Ascyl9LGUtMSksYWkoW10scyxmdW5jdGlvbihkKXt2YXIgZj1bZFswXSxudWxsXS5jb25jYXQoZC5zbGljZSgxKSk7cmV0dXJuIE1lKGksaWUoaSxmLG51bGwsYSxuLGwpLGUtMSksW119KX0sRG49KGksZSxyKT0+e3N3aXRjaChlKXtjYXNlIDE6cmV0dXJuIHI/dD0+WVt0Pj4wXTp0PT5qW3Q+PjBdO2Nhc2UgMjpyZXR1cm4gcj90PT5yaVt0Pj4xXTp0PT5vaVt0Pj4xXTtjYXNlIDQ6cmV0dXJuIHI/dD0+VVt0Pj4yXTp0PT5WW3Q+PjJdO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihgaW52YWxpZCBpbnRlZ2VyIHdpZHRoICgke2V9KTogJHtpfWApfX0sRW49KGksZSxyLHQsYSk9PntlPUgoZSk7dmFyIG49Yz0+YztpZih0PT09MCl7dmFyIGw9MzItOCpyO249Yz0+Yzw8bD4+Pmx9dmFyIHM9ZS5pbmNsdWRlcygidW5zaWduZWQiKSxkPShjLHkpPT57fSxmO3M/Zj1mdW5jdGlvbihjLHkpe3JldHVybiBkKHksdGhpcy5uYW1lKSx5Pj4+MH06Zj1mdW5jdGlvbihjLHkpe3JldHVybiBkKHksdGhpcy5uYW1lKSx5fSxuaShpLHtuYW1lOmUsZnJvbVdpcmVUeXBlOm4sdG9XaXJlVHlwZTpmLGFyZ1BhY2tBZHZhbmNlOmZpLHJlYWRWYWx1ZUZyb21Qb2ludGVyOkRuKGUscix0IT09MCksZGVzdHJ1Y3RvckZ1bmN0aW9uOm51bGx9KX0sSW49KGksZSxyKT0+e3ZhciB0PVtJbnQ4QXJyYXksVWludDhBcnJheSxJbnQxNkFycmF5LFVpbnQxNkFycmF5LEludDMyQXJyYXksVWludDMyQXJyYXksRmxvYXQzMkFycmF5LEZsb2F0NjRBcnJheV0sYT10W2VdO2Z1bmN0aW9uIG4obCl7dmFyIHM9VltsPj4yXSxkPVZbbCs0Pj4yXTtyZXR1cm4gbmV3IGEoWS5idWZmZXIsZCxzKX1yPUgociksbmkoaSx7bmFtZTpyLGZyb21XaXJlVHlwZTpuLGFyZ1BhY2tBZHZhbmNlOmZpLHJlYWRWYWx1ZUZyb21Qb2ludGVyOm59LHtpZ25vcmVEdXBsaWNhdGVSZWdpc3RyYXRpb25zOiEwfSl9LE9uPShpLGUscix0LGEsbixsLHMsZCxmLGMseSk9PntyPUgociksbj1MKGEsbikscz1MKGwscyksZj1MKGQsZikseT1MKGMseSksYWkoW2ldLFtlXSxmdW5jdGlvbihoKXtoPWhbMF07dmFyIGI9bmV3IEFpKHIsaC5yZWdpc3RlcmVkQ2xhc3MsITEsITEsITAsaCx0LG4scyxmLHkpO3JldHVybltiXX0pfSxVZT0oaSxlLHIsdCk9PntpZighKHQ+MCkpcmV0dXJuIDA7Zm9yKHZhciBhPXIsbj1yK3QtMSxsPTA7bDxpLmxlbmd0aDsrK2wpe3ZhciBzPWkuY2hhckNvZGVBdChsKTtpZihzPj01NTI5NiYmczw9NTczNDMpe3ZhciBkPWkuY2hhckNvZGVBdCgrK2wpO3M9NjU1MzYrKChzJjEwMjMpPDwxMCl8ZCYxMDIzfWlmKHM8PTEyNyl7aWYocj49bilicmVhaztlW3IrK109c31lbHNlIGlmKHM8PTIwNDcpe2lmKHIrMT49bilicmVhaztlW3IrK109MTkyfHM+PjYsZVtyKytdPTEyOHxzJjYzfWVsc2UgaWYoczw9NjU1MzUpe2lmKHIrMj49bilicmVhaztlW3IrK109MjI0fHM+PjEyLGVbcisrXT0xMjh8cz4+NiY2MyxlW3IrK109MTI4fHMmNjN9ZWxzZXtpZihyKzM+PW4pYnJlYWs7ZVtyKytdPTI0MHxzPj4xOCxlW3IrK109MTI4fHM+PjEyJjYzLGVbcisrXT0xMjh8cz4+NiY2MyxlW3IrK109MTI4fHMmNjN9fXJldHVybiBlW3JdPTAsci1hfSx4bj0oaSxlLHIpPT5VZShpLGosZSxyKSxXZT1pPT57Zm9yKHZhciBlPTAscj0wO3I8aS5sZW5ndGg7KytyKXt2YXIgdD1pLmNoYXJDb2RlQXQocik7dDw9MTI3P2UrKzp0PD0yMDQ3P2UrPTI6dD49NTUyOTYmJnQ8PTU3MzQzPyhlKz00LCsrcik6ZSs9M31yZXR1cm4gZX0sam49KGksZSk9PntlPUgoZSk7dmFyIHI9ZT09PSJzdGQ6OnN0cmluZyI7bmkoaSx7bmFtZTplLGZyb21XaXJlVHlwZSh0KXt2YXIgYT1WW3Q+PjJdLG49dCs0LGw7aWYocilmb3IodmFyIHM9bixkPTA7ZDw9YTsrK2Qpe3ZhciBmPW4rZDtpZihkPT1hfHxqW2ZdPT0wKXt2YXIgYz1mLXMseT1EaShzLGMpO2w9PT12b2lkIDA/bD15OihsKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDApLGwrPXkpLHM9ZisxfX1lbHNle2Zvcih2YXIgaD1uZXcgQXJyYXkoYSksZD0wO2Q8YTsrK2QpaFtkXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGpbbitkXSk7bD1oLmpvaW4oIiIpfXJldHVybiBRKHQpLGx9LHRvV2lyZVR5cGUodCxhKXthIGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJihhPW5ldyBVaW50OEFycmF5KGEpKTt2YXIgbixsPXR5cGVvZiBhPT0ic3RyaW5nIjtsfHxhIGluc3RhbmNlb2YgVWludDhBcnJheXx8YSBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5fHxhIGluc3RhbmNlb2YgSW50OEFycmF5fHxGKCJDYW5ub3QgcGFzcyBub24tc3RyaW5nIHRvIHN0ZDo6c3RyaW5nIiksciYmbD9uPVdlKGEpOm49YS5sZW5ndGg7dmFyIHM9R2koNCtuKzEpLGQ9cys0O2lmKFZbcz4+Ml09bixyJiZsKXhuKGEsZCxuKzEpO2Vsc2UgaWYobClmb3IodmFyIGY9MDtmPG47KytmKXt2YXIgYz1hLmNoYXJDb2RlQXQoZik7Yz4yNTUmJihRKGQpLEYoIlN0cmluZyBoYXMgVVRGLTE2IGNvZGUgdW5pdHMgdGhhdCBkbyBub3QgZml0IGluIDggYml0cyIpKSxqW2QrZl09Y31lbHNlIGZvcih2YXIgZj0wO2Y8bjsrK2YpaltkK2ZdPWFbZl07cmV0dXJuIHQhPT1udWxsJiZ0LnB1c2goUSxzKSxzfSxhcmdQYWNrQWR2YW5jZTpmaSxyZWFkVmFsdWVGcm9tUG9pbnRlcjpQZSxkZXN0cnVjdG9yRnVuY3Rpb24odCl7USh0KX19KX0sSGU9dHlwZW9mIFRleHREZWNvZGVyPCJ1Ij9uZXcgVGV4dERlY29kZXIoInV0Zi0xNmxlIik6dm9pZCAwLFVuPShpLGUpPT57Zm9yKHZhciByPWksdD1yPj4xLGE9dCtlLzI7ISh0Pj1hKSYmb2lbdF07KSsrdDtpZihyPXQ8PDEsci1pPjMyJiZIZSlyZXR1cm4gSGUuZGVjb2RlKGouc3ViYXJyYXkoaSxyKSk7Zm9yKHZhciBuPSIiLGw9MDshKGw+PWUvMik7KytsKXt2YXIgcz1yaVtpK2wqMj4+MV07aWYocz09MClicmVhaztuKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHMpfXJldHVybiBufSxXbj0oaSxlLHIpPT57aWYocj09PXZvaWQgMCYmKHI9MjE0NzQ4MzY0NykscjwyKXJldHVybiAwO3ItPTI7Zm9yKHZhciB0PWUsYT1yPGkubGVuZ3RoKjI/ci8yOmkubGVuZ3RoLG49MDtuPGE7KytuKXt2YXIgbD1pLmNoYXJDb2RlQXQobik7cmlbZT4+MV09bCxlKz0yfXJldHVybiByaVtlPj4xXT0wLGUtdH0sSG49aT0+aS5sZW5ndGgqMixHbj0oaSxlKT0+e2Zvcih2YXIgcj0wLHQ9IiI7IShyPj1lLzQpOyl7dmFyIGE9VVtpK3IqND4+Ml07aWYoYT09MClicmVhaztpZigrK3IsYT49NjU1MzYpe3ZhciBuPWEtNjU1MzY7dCs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxuPj4xMCw1NjMyMHxuJjEwMjMpfWVsc2UgdCs9U3RyaW5nLmZyb21DaGFyQ29kZShhKX1yZXR1cm4gdH0sem49KGksZSxyKT0+e2lmKHI9PT12b2lkIDAmJihyPTIxNDc0ODM2NDcpLHI8NClyZXR1cm4gMDtmb3IodmFyIHQ9ZSxhPXQrci00LG49MDtuPGkubGVuZ3RoOysrbil7dmFyIGw9aS5jaGFyQ29kZUF0KG4pO2lmKGw+PTU1Mjk2JiZsPD01NzM0Myl7dmFyIHM9aS5jaGFyQ29kZUF0KCsrbik7bD02NTUzNisoKGwmMTAyMyk8PDEwKXxzJjEwMjN9aWYoVVtlPj4yXT1sLGUrPTQsZSs0PmEpYnJlYWt9cmV0dXJuIFVbZT4+Ml09MCxlLXR9LFluPWk9Pntmb3IodmFyIGU9MCxyPTA7cjxpLmxlbmd0aDsrK3Ipe3ZhciB0PWkuY2hhckNvZGVBdChyKTt0Pj01NTI5NiYmdDw9NTczNDMmJisrcixlKz00fXJldHVybiBlfSxMbj0oaSxlLHIpPT57cj1IKHIpO3ZhciB0LGEsbixsLHM7ZT09PTI/KHQ9VW4sYT1XbixsPUhuLG49KCk9Pm9pLHM9MSk6ZT09PTQmJih0PUduLGE9em4sbD1ZbixuPSgpPT5WLHM9MiksbmkoaSx7bmFtZTpyLGZyb21XaXJlVHlwZTpkPT57Zm9yKHZhciBmPVZbZD4+Ml0sYz1uKCkseSxoPWQrNCxiPTA7Yjw9ZjsrK2Ipe3ZhciBUPWQrNCtiKmU7aWYoYj09Znx8Y1tUPj5zXT09MCl7dmFyIE09VC1oLEI9dChoLE0pO3k9PT12b2lkIDA/eT1COih5Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKDApLHkrPUIpLGg9VCtlfX1yZXR1cm4gUShkKSx5fSx0b1dpcmVUeXBlOihkLGYpPT57dHlwZW9mIGYhPSJzdHJpbmciJiZGKGBDYW5ub3QgcGFzcyBub24tc3RyaW5nIHRvIEMrKyBzdHJpbmcgdHlwZSAke3J9YCk7dmFyIGM9bChmKSx5PUdpKDQrYytlKTtyZXR1cm4gVlt5Pj4yXT1jPj5zLGEoZix5KzQsYytlKSxkIT09bnVsbCYmZC5wdXNoKFEseSkseX0sYXJnUGFja0FkdmFuY2U6ZmkscmVhZFZhbHVlRnJvbVBvaW50ZXI6amUsZGVzdHJ1Y3RvckZ1bmN0aW9uKGQpe1EoZCl9fSl9LE5uPShpLGUpPT57ZT1IKGUpLG5pKGkse2lzVm9pZDohMCxuYW1lOmUsYXJnUGFja0FkdmFuY2U6MCxmcm9tV2lyZVR5cGU6KCk9Pnt9LHRvV2lyZVR5cGU6KHIsdCk9Pnt9fSl9LHFuPTEsSm49KCk9PnFuLFhuPSgpPT57dGhyb3cgMS8wfSx0ZT0oaSxlKT0+e3ZhciByPWhpW2ldO3JldHVybiByPT09dm9pZCAwJiZGKGUrIiBoYXMgdW5rbm93biB0eXBlICIrUmUoaSkpLHJ9LEdlPShpLGUscik9Pnt2YXIgdD1bXSxhPWkudG9XaXJlVHlwZSh0LHIpO3JldHVybiB0Lmxlbmd0aCYmKFZbZT4+Ml09SS50b0hhbmRsZSh0KSksYX0sWm49KGksZSxyKT0+KGk9SS50b1ZhbHVlKGkpLGU9dGUoZSwiZW12YWw6OmFzIiksR2UoZSxyLGkpKSx6ZT1pPT4kLmhhbmRsZUFzeW5jKCgpPT4oaT1JLnRvVmFsdWUoaSksaS50aGVuKEkudG9IYW5kbGUpKSk7emUuaXNBc3luYz0hMDt2YXIgV2k9W10sS249KGksZSxyLHQpPT4oaT1XaVtpXSxlPUkudG9WYWx1ZShlKSxpKG51bGwsZSxyLHQpKSxRbj17fSxZZT1pPT57dmFyIGU9UW5baV07cmV0dXJuIGU9PT12b2lkIDA/SChpKTplfSxpbD0oaSxlLHIsdCxhKT0+KGk9V2lbaV0sZT1JLnRvVmFsdWUoZSkscj1ZZShyKSxpKGUsZVtyXSx0LGEpKSxlbD0oaSxlKT0+KGk9SS50b1ZhbHVlKGkpLGU9SS50b1ZhbHVlKGUpLGk9PWUpLHJsPWk9Pnt2YXIgZT1XaS5sZW5ndGg7cmV0dXJuIFdpLnB1c2goaSksZX0sdGw9KGksZSk9Pntmb3IodmFyIHI9bmV3IEFycmF5KGkpLHQ9MDt0PGk7Kyt0KXJbdF09dGUoVltlK3QqND4+Ml0sInBhcmFtZXRlciAiK3QpO3JldHVybiByfSxhbD0oaSxlLHIpPT57dmFyIHQ9dGwoaSxlKSxhPXQuc2hpZnQoKTtpLS07dmFyIG49YHJldHVybiBmdW5jdGlvbiAob2JqLCBmdW5jLCBkZXN0cnVjdG9yc1JlZiwgYXJncykgewpgLGw9MCxzPVtdO3I9PT0wJiZzLnB1c2goIm9iaiIpO2Zvcih2YXIgZD1bInJldFR5cGUiXSxmPVthXSxjPTA7YzxpOysrYylzLnB1c2goImFyZyIrYyksZC5wdXNoKCJhcmdUeXBlIitjKSxmLnB1c2godFtjXSksbis9YCAgdmFyIGFyZyR7Y30gPSBhcmdUeXBlJHtjfS5yZWFkVmFsdWVGcm9tUG9pbnRlcihhcmdzJHtsPyIrIitsOiIifSk7CmAsbCs9dFtjXS5hcmdQYWNrQWR2YW5jZTt2YXIgeT1yPT09MT8ibmV3IGZ1bmMiOiJmdW5jLmNhbGwiO24rPWAgIHZhciBydiA9ICR7eX0oJHtzLmpvaW4oIiwgIil9KTsKYDtmb3IodmFyIGM9MDtjPGk7KytjKXRbY10uZGVsZXRlT2JqZWN0JiYobis9YCAgYXJnVHlwZSR7Y30uZGVsZXRlT2JqZWN0KGFyZyR7Y30pOwpgKTthLmlzVm9pZHx8KGQucHVzaCgiZW12YWxfcmV0dXJuVmFsdWUiKSxmLnB1c2goR2UpLG4rPWAgIHJldHVybiBlbXZhbF9yZXR1cm5WYWx1ZShyZXRUeXBlLCBkZXN0cnVjdG9yc1JlZiwgcnYpOwpgKSxuKz1gfTsKYCxkLnB1c2gobik7dmFyIGg9RmUoRnVuY3Rpb24sZCkuYXBwbHkobnVsbCxmKSxiPWBtZXRob2RDYWxsZXI8KCR7dC5tYXAoVD0+VC5uYW1lKS5qb2luKCIsICIpfSkgPT4gJHthLm5hbWV9PmA7cmV0dXJuIHJsKE1pKGIsaCkpfSxubD0oaSxlKT0+KGk9SS50b1ZhbHVlKGkpLGU9SS50b1ZhbHVlKGUpLEkudG9IYW5kbGUoaVtlXSkpLGxsPWk9PntpPjQmJihYLmdldChpKS5yZWZjb3VudCs9MSl9LG9sPSgpPT5JLnRvSGFuZGxlKFtdKSxzbD1pPT5JLnRvSGFuZGxlKFllKGkpKSxkbD0oKT0+SS50b0hhbmRsZSh7fSksZmw9aT0+e3ZhciBlPUkudG9WYWx1ZShpKTtRaShlKSxlZShpKX0sY2w9KGksZSxyKT0+e2k9SS50b1ZhbHVlKGkpLGU9SS50b1ZhbHVlKGUpLHI9SS50b1ZhbHVlKHIpLGlbZV09cn0sdWw9KGksZSk9PntpPXRlKGksIl9lbXZhbF90YWtlX3ZhbHVlIik7dmFyIHI9aS5yZWFkVmFsdWVGcm9tUG9pbnRlcihlKTtyZXR1cm4gSS50b0hhbmRsZShyKX0sdmw9KCk9PntnaSgiIil9LExlPSgpPT4yMTQ3NDgzNjQ4LHlsPSgpPT5MZSgpLE5lO05lPSgpPT5wZXJmb3JtYW5jZS5ub3coKTt2YXIgX2w9KGksZSxyKT0+ai5jb3B5V2l0aGluKGksZSxlK3IpLGhsPWk9Pnt2YXIgZT1xLmJ1ZmZlcixyPShpLWUuYnl0ZUxlbmd0aCs2NTUzNSkvNjU1MzY7dHJ5e3JldHVybiBxLmdyb3cociksb2UoKSwxfWNhdGNoe319LHBsPWk9Pnt2YXIgZT1qLmxlbmd0aDtpPj4+PTA7dmFyIHI9TGUoKTtpZihpPnIpcmV0dXJuITE7Zm9yKHZhciB0PShkLGYpPT5kKyhmLWQlZiklZixhPTE7YTw9NDthKj0yKXt2YXIgbj1lKigxKzEvYSk7bj1NYXRoLm1pbihuLGkrMjY4NDM1NDU2KTt2YXIgbD1NYXRoLm1pbihyLHQoTWF0aC5tYXgoaSxuKSw2NTUzNikpLHM9aGwobCk7aWYocylyZXR1cm4hMH1yZXR1cm4hMX0sZ2w9KGksZSk9PnNldFRpbWVvdXQoKCk9PntFZShpKX0sZSkscWU9aT0+JC5oYW5kbGVTbGVlcChlPT5nbChlLGkpKTtxZS5pc0FzeW5jPSEwO3ZhciBhZT17fSxtbD0oKT0+Unx8Ii4vdGhpcy5wcm9ncmFtIixSaT0oKT0+e2lmKCFSaS5zdHJpbmdzKXt2YXIgaT0odHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvci5sYW5ndWFnZXMmJm5hdmlnYXRvci5sYW5ndWFnZXNbMF18fCJDIikucmVwbGFjZSgiLSIsIl8iKSsiLlVURi04IixlPXtVU0VSOiJ3ZWJfdXNlciIsTE9HTkFNRToid2ViX3VzZXIiLFBBVEg6Ii8iLFBXRDoiLyIsSE9NRToiL2hvbWUvd2ViX3VzZXIiLExBTkc6aSxfOm1sKCl9O2Zvcih2YXIgciBpbiBhZSlhZVtyXT09PXZvaWQgMD9kZWxldGUgZVtyXTplW3JdPWFlW3JdO3ZhciB0PVtdO2Zvcih2YXIgciBpbiBlKXQucHVzaChgJHtyfT0ke2Vbcl19YCk7Umkuc3RyaW5ncz10fXJldHVybiBSaS5zdHJpbmdzfSxDbD0oaSxlKT0+e2Zvcih2YXIgcj0wO3I8aS5sZW5ndGg7KytyKVlbZSsrPj4wXT1pLmNoYXJDb2RlQXQocik7WVtlPj4wXT0wfSx3bD0oaSxlKT0+e3ZhciByPTA7cmV0dXJuIFJpKCkuZm9yRWFjaCgodCxhKT0+e3ZhciBuPWUrcjtWW2krYSo0Pj4yXT1uLENsKHQsbikscis9dC5sZW5ndGgrMX0pLDB9LGJsPShpLGUpPT57dmFyIHI9UmkoKTtWW2k+PjJdPXIubGVuZ3RoO3ZhciB0PTA7cmV0dXJuIHIuZm9yRWFjaChhPT50Kz1hLmxlbmd0aCsxKSxWW2U+PjJdPXQsMH0sVGw9aT0+NTIsU2w9KGksZSxyLHQpPT41MjtmdW5jdGlvbiAkbChpLGUscix0LGEpe3JldHVybiA3MH12YXIga2w9W251bGwsW10sW11dLFBsPShpLGUpPT57dmFyIHI9a2xbaV07ZT09PTB8fGU9PT0xMD8oKGk9PT0xP2VpOkspKGdlKHIsMCkpLHIubGVuZ3RoPTApOnIucHVzaChlKX0sTWw9KGksZSxyLHQpPT57Zm9yKHZhciBhPTAsbj0wO248cjtuKyspe3ZhciBsPVZbZT4+Ml0scz1WW2UrND4+Ml07ZSs9ODtmb3IodmFyIGQ9MDtkPHM7ZCsrKVBsKGksaltsK2RdKTthKz1zfXJldHVybiBWW3Q+PjJdPWEsMH0sQWw9aT0+aSxIaT1pPT5pJTQ9PT0wJiYoaSUxMDAhPT0wfHxpJTQwMD09PTApLFJsPShpLGUpPT57Zm9yKHZhciByPTAsdD0wO3Q8PWU7cis9aVt0KytdKTtyZXR1cm4gcn0sSmU9WzMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxYZT1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLEZsPShpLGUpPT57Zm9yKHZhciByPW5ldyBEYXRlKGkuZ2V0VGltZSgpKTtlPjA7KXt2YXIgdD1IaShyLmdldEZ1bGxZZWFyKCkpLGE9ci5nZXRNb250aCgpLG49KHQ/SmU6WGUpW2FdO2lmKGU+bi1yLmdldERhdGUoKSllLT1uLXIuZ2V0RGF0ZSgpKzEsci5zZXREYXRlKDEpLGE8MTE/ci5zZXRNb250aChhKzEpOihyLnNldE1vbnRoKDApLHIuc2V0RnVsbFllYXIoci5nZXRGdWxsWWVhcigpKzEpKTtlbHNlIHJldHVybiByLnNldERhdGUoci5nZXREYXRlKCkrZSkscn1yZXR1cm4gcn07ZnVuY3Rpb24gVmwoaSxlLHIpe3ZhciB0PXI+MD9yOldlKGkpKzEsYT1uZXcgQXJyYXkodCksbj1VZShpLGEsMCxhLmxlbmd0aCk7cmV0dXJuIGUmJihhLmxlbmd0aD1uKSxhfXZhciBCbD0oaSxlKT0+e1kuc2V0KGksZSl9LERsPShpLGUscix0KT0+e3ZhciBhPVZbdCs0MD4+Ml0sbj17dG1fc2VjOlVbdD4+Ml0sdG1fbWluOlVbdCs0Pj4yXSx0bV9ob3VyOlVbdCs4Pj4yXSx0bV9tZGF5OlVbdCsxMj4+Ml0sdG1fbW9uOlVbdCsxNj4+Ml0sdG1feWVhcjpVW3QrMjA+PjJdLHRtX3dkYXk6VVt0KzI0Pj4yXSx0bV95ZGF5OlVbdCsyOD4+Ml0sdG1faXNkc3Q6VVt0KzMyPj4yXSx0bV9nbXRvZmY6VVt0KzM2Pj4yXSx0bV96b25lOmE/RGkoYSk6IiJ9LGw9RGkocikscz17IiVjIjoiJWEgJWIgJWQgJUg6JU06JVMgJVkiLCIlRCI6IiVtLyVkLyV5IiwiJUYiOiIlWS0lbS0lZCIsIiVoIjoiJWIiLCIlciI6IiVJOiVNOiVTICVwIiwiJVIiOiIlSDolTSIsIiVUIjoiJUg6JU06JVMiLCIleCI6IiVtLyVkLyV5IiwiJVgiOiIlSDolTTolUyIsIiVFYyI6IiVjIiwiJUVDIjoiJUMiLCIlRXgiOiIlbS8lZC8leSIsIiVFWCI6IiVIOiVNOiVTIiwiJUV5IjoiJXkiLCIlRVkiOiIlWSIsIiVPZCI6IiVkIiwiJU9lIjoiJWUiLCIlT0giOiIlSCIsIiVPSSI6IiVJIiwiJU9tIjoiJW0iLCIlT00iOiIlTSIsIiVPUyI6IiVTIiwiJU91IjoiJXUiLCIlT1UiOiIlVSIsIiVPViI6IiVWIiwiJU93IjoiJXciLCIlT1ciOiIlVyIsIiVPeSI6IiV5In07Zm9yKHZhciBkIGluIHMpbD1sLnJlcGxhY2UobmV3IFJlZ0V4cChkLCJnIiksc1tkXSk7dmFyIGY9WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLGM9WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdO2Z1bmN0aW9uIHkoQyxTLHope2Zvcih2YXIgVz10eXBlb2YgQz09Im51bWJlciI/Qy50b1N0cmluZygpOkN8fCIiO1cubGVuZ3RoPFM7KVc9elswXStXO3JldHVybiBXfWZ1bmN0aW9uIGgoQyxTKXtyZXR1cm4geShDLFMsIjAiKX1mdW5jdGlvbiBiKEMsUyl7ZnVuY3Rpb24geihwaSl7cmV0dXJuIHBpPDA/LTE6cGk+MD8xOjB9dmFyIFc7cmV0dXJuKFc9eihDLmdldEZ1bGxZZWFyKCktUy5nZXRGdWxsWWVhcigpKSk9PT0wJiYoVz16KEMuZ2V0TW9udGgoKS1TLmdldE1vbnRoKCkpKT09PTAmJihXPXooQy5nZXREYXRlKCktUy5nZXREYXRlKCkpKSxXfWZ1bmN0aW9uIFQoQyl7c3dpdGNoKEMuZ2V0RGF5KCkpe2Nhc2UgMDpyZXR1cm4gbmV3IERhdGUoQy5nZXRGdWxsWWVhcigpLTEsMTEsMjkpO2Nhc2UgMTpyZXR1cm4gQztjYXNlIDI6cmV0dXJuIG5ldyBEYXRlKEMuZ2V0RnVsbFllYXIoKSwwLDMpO2Nhc2UgMzpyZXR1cm4gbmV3IERhdGUoQy5nZXRGdWxsWWVhcigpLDAsMik7Y2FzZSA0OnJldHVybiBuZXcgRGF0ZShDLmdldEZ1bGxZZWFyKCksMCwxKTtjYXNlIDU6cmV0dXJuIG5ldyBEYXRlKEMuZ2V0RnVsbFllYXIoKS0xLDExLDMxKTtjYXNlIDY6cmV0dXJuIG5ldyBEYXRlKEMuZ2V0RnVsbFllYXIoKS0xLDExLDMwKX19ZnVuY3Rpb24gTShDKXt2YXIgUz1GbChuZXcgRGF0ZShDLnRtX3llYXIrMTkwMCwwLDEpLEMudG1feWRheSksej1uZXcgRGF0ZShTLmdldEZ1bGxZZWFyKCksMCw0KSxXPW5ldyBEYXRlKFMuZ2V0RnVsbFllYXIoKSsxLDAsNCkscGk9VCh6KSxZaT1UKFcpO3JldHVybiBiKHBpLFMpPD0wP2IoWWksUyk8PTA/Uy5nZXRGdWxsWWVhcigpKzE6Uy5nZXRGdWxsWWVhcigpOlMuZ2V0RnVsbFllYXIoKS0xfXZhciBCPXsiJWEiOkM9PmZbQy50bV93ZGF5XS5zdWJzdHJpbmcoMCwzKSwiJUEiOkM9PmZbQy50bV93ZGF5XSwiJWIiOkM9PmNbQy50bV9tb25dLnN1YnN0cmluZygwLDMpLCIlQiI6Qz0+Y1tDLnRtX21vbl0sIiVDIjpDPT57dmFyIFM9Qy50bV95ZWFyKzE5MDA7cmV0dXJuIGgoUy8xMDB8MCwyKX0sIiVkIjpDPT5oKEMudG1fbWRheSwyKSwiJWUiOkM9PnkoQy50bV9tZGF5LDIsIiAiKSwiJWciOkM9Pk0oQykudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiksIiVHIjpDPT5NKEMpLCIlSCI6Qz0+aChDLnRtX2hvdXIsMiksIiVJIjpDPT57dmFyIFM9Qy50bV9ob3VyO3JldHVybiBTPT0wP1M9MTI6Uz4xMiYmKFMtPTEyKSxoKFMsMil9LCIlaiI6Qz0+aChDLnRtX21kYXkrUmwoSGkoQy50bV95ZWFyKzE5MDApP0plOlhlLEMudG1fbW9uLTEpLDMpLCIlbSI6Qz0+aChDLnRtX21vbisxLDIpLCIlTSI6Qz0+aChDLnRtX21pbiwyKSwiJW4iOigpPT5gCmAsIiVwIjpDPT5DLnRtX2hvdXI+PTAmJkMudG1faG91cjwxMj8iQU0iOiJQTSIsIiVTIjpDPT5oKEMudG1fc2VjLDIpLCIldCI6KCk9PiIJIiwiJXUiOkM9PkMudG1fd2RheXx8NywiJVUiOkM9Pnt2YXIgUz1DLnRtX3lkYXkrNy1DLnRtX3dkYXk7cmV0dXJuIGgoTWF0aC5mbG9vcihTLzcpLDIpfSwiJVYiOkM9Pnt2YXIgUz1NYXRoLmZsb29yKChDLnRtX3lkYXkrNy0oQy50bV93ZGF5KzYpJTcpLzcpO2lmKChDLnRtX3dkYXkrMzcxLUMudG1feWRheS0yKSU3PD0yJiZTKyssUyl7aWYoUz09NTMpe3ZhciBXPShDLnRtX3dkYXkrMzcxLUMudG1feWRheSklNztXIT00JiYoVyE9M3x8IUhpKEMudG1feWVhcikpJiYoUz0xKX19ZWxzZXtTPTUyO3ZhciB6PShDLnRtX3dkYXkrNy1DLnRtX3lkYXktMSklNzsoej09NHx8ej09NSYmSGkoQy50bV95ZWFyJTQwMC0xKSkmJlMrK31yZXR1cm4gaChTLDIpfSwiJXciOkM9PkMudG1fd2RheSwiJVciOkM9Pnt2YXIgUz1DLnRtX3lkYXkrNy0oQy50bV93ZGF5KzYpJTc7cmV0dXJuIGgoTWF0aC5mbG9vcihTLzcpLDIpfSwiJXkiOkM9PihDLnRtX3llYXIrMTkwMCkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiksIiVZIjpDPT5DLnRtX3llYXIrMTkwMCwiJXoiOkM9Pnt2YXIgUz1DLnRtX2dtdG9mZix6PVM+PTA7cmV0dXJuIFM9TWF0aC5hYnMoUykvNjAsUz1TLzYwKjEwMCtTJTYwLCh6PyIrIjoiLSIpKygiMDAwMCIrUykuc2xpY2UoLTQpfSwiJVoiOkM9PkMudG1fem9uZSwiJSUiOigpPT4iJSJ9O2w9bC5yZXBsYWNlKC8lJS9nLCJcMFwwIik7Zm9yKHZhciBkIGluIEIpbC5pbmNsdWRlcyhkKSYmKGw9bC5yZXBsYWNlKG5ldyBSZWdFeHAoZCwiZyIpLEJbZF0obikpKTtsPWwucmVwbGFjZSgvXDBcMC9nLCIlIik7dmFyIHg9VmwobCwhMSk7cmV0dXJuIHgubGVuZ3RoPmU/MDooQmwoeCxpKSx4Lmxlbmd0aC0xKX0sRWw9KGksZSxyLHQsYSk9PkRsKGksZSxyLHQpO05hKCksQ2k9by5CaW5kaW5nRXJyb3I9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9IkJpbmRpbmdFcnJvciJ9fSxDZT1vLkludGVybmFsRXJyb3I9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLm5hbWU9IkludGVybmFsRXJyb3IifX0sbG4oKSxybigpLHluKCksQWU9by5VbmJvdW5kVHlwZUVycm9yPWduKEVycm9yLCJVbmJvdW5kVHlwZUVycm9yIiksUG4oKSxBbigpO3ZhciBJbD17aGI6UmEsZWI6QWEsZ2I6TWEsZmI6UGEsczpWYSxBYjpCYSxEOkRhLGE6SWEsaDpPYSxIYTpoZSx6Yjp4YSxuOmphLEJiOlVhLGY6RWEsS2E6V2EsS2I6SGEsTGI6R2EsRmI6emEsR2I6WWEscmI6TGEsUGI6SmEsY2E6bW4sYmE6U24sTTokbix0OmtuLE9iOlJuLE5hOlZuLGVjOkJuLFQ6RW4sSDpJbixkYjpPbixNYTpqbix2YTpMbixRYjpObixNYjpKbixDYjpYbixFYTpabiwkYTp6ZSxHYTpLbixGYTppbCxaYTplZSxfYTplbCx0YTphbCxqYjpubCxQYTpsbCxrYjpvbCxhYTpzbCxpYjpkbCxsYjpmbCxjYjpjbCxpYTp1bCxwYTp2bCxFYjp5bCx1YTpOZSxOYjpfbCxEYjpwbCxUYTpxZSxIYjp3bCxJYjpibCxSYjpEZSxMYTpUbCxKYjpTbCxxYjokbCxKYTpNbCxVYjpocyxFOkdvLE46em8sd2E6WG8sejpYbCxVYTpxbyxhYjpmbyxDOkpsLFE6WW8sdzpqbyxTOiRvLEw6RG8seGE6VW8sVjpPbyxTYjpncyxxOllsLGI6eGwsQjpnbyx5OnVvLGM6amwsZWE6c28saTpVbCxaOkZvLG06UWwsSWE6Q3MscDppbyxyOktsLGFjOmFzLFg6dm8sc2E6d28sZGE6Q28sUmE6Y3MsXzp5byxDYTpfbyxuYjpBcyx1YjpTcyx4Yjp3cyxwYjpQcyx3YjpicyxtYjpScyxrOkhsLGc6T2wsVTpIbyxXYTpMbyxGOnBvLHg6a28sUjpWbyxEYTpjbyx6YTpQbyxYYTpBbyxKOkVvLGQ6V2wsQTpsbyxWYTpObyxnYTpabyxiYjpvbywkOmVvLFZiOnlzLGU6TGwsUDpKbyxUYjpwcyxuYTpNbyx5YTpCbyxyYTpSbyxXYjp2cyxHOnhvLGxhOnJzLGo6TmwsWGI6dXMsSTpJbyxPYTptcyxvOkdsLFFhOl9zLGZhOmFvLFpiOm9zLG1hOldvLGw6bm8sQWE6U28sY2M6aXMsdTp6bCxXOmJvLG9hOnRvLFNhOmVzLFk6cWwscWE6S28samE6ZnMsSzpabCxPOnJvLEJhOlRvLF9iOmxzLCRiOm5zLFliOnNzLGRjOlFvLGJjOnRzLGthOmRzLGhhOm1vLFlhOmhvLHNiOmtzLHRiOiRzLG9iOk1zLHZiOlRzLHY6QWwseWI6RWx9LHY9a2EoKSxHaT1pPT4oR2k9di5oYykoaSksRmk9aT0+KEZpPXYuamMpKGkpLFE9aT0+KFE9di5rYykoaSksWmU9aT0+KFplPXYubGMpKGkpLHA9KGksZSk9PihwPXYubWMpKGksZSksZz0oKT0+KGc9di5uYykoKSxtPWk9PihtPXYub2MpKGkpLEtlPWk9PihLZT12LnBjKShpKSxuZT1pPT4obmU9di5xYykoaSksUWU9KGksZSxyKT0+KFFlPXYucmMpKGksZSxyKSxpcj1pPT4oaXI9di5zYykoaSksZXI9by5keW5DYWxsX3ZpPShpLGUpPT4oZXI9by5keW5DYWxsX3ZpPXYudGMpKGksZSkscnI9by5keW5DYWxsX3Y9aT0+KHJyPW8uZHluQ2FsbF92PXYudWMpKGkpLHRyPW8uZHluQ2FsbF9paT0oaSxlKT0+KHRyPW8uZHluQ2FsbF9paT12LnZjKShpLGUpLGFyPW8uZHluQ2FsbF9pPWk9Pihhcj1vLmR5bkNhbGxfaT12LndjKShpKSxucj1vLmR5bkNhbGxfaWlpPShpLGUscik9Pihucj1vLmR5bkNhbGxfaWlpPXYueGMpKGksZSxyKSxscj1vLmR5bkNhbGxfaWlpaT0oaSxlLHIsdCk9Pihscj1vLmR5bkNhbGxfaWlpaT12LnljKShpLGUscix0KSxvcj1vLmR5bkNhbGxfdmlpaT0oaSxlLHIsdCk9Pihvcj1vLmR5bkNhbGxfdmlpaT12LnpjKShpLGUscix0KSxzcj1vLmR5bkNhbGxfdmlpPShpLGUscik9Pihzcj1vLmR5bkNhbGxfdmlpPXYuQWMpKGksZSxyKSxkcj1vLmR5bkNhbGxfZGlpPShpLGUscik9Pihkcj1vLmR5bkNhbGxfZGlpPXYuQmMpKGksZSxyKSxmcj1vLmR5bkNhbGxfdmlpZD0oaSxlLHIsdCk9Pihmcj1vLmR5bkNhbGxfdmlpZD12LkNjKShpLGUscix0KSxjcj1vLmR5bkNhbGxfdmlpaWlpPShpLGUscix0LGEsbik9Pihjcj1vLmR5bkNhbGxfdmlpaWlpPXYuRGMpKGksZSxyLHQsYSxuKSx1cj1vLmR5bkNhbGxfdmlpaWlpaT0oaSxlLHIsdCxhLG4sbCk9Pih1cj1vLmR5bkNhbGxfdmlpaWlpaT12LkVjKShpLGUscix0LGEsbixsKSx2cj1vLmR5bkNhbGxfdmlpaWlpaWk9KGksZSxyLHQsYSxuLGwscyk9Pih2cj1vLmR5bkNhbGxfdmlpaWlpaWk9di5GYykoaSxlLHIsdCxhLG4sbCxzKSx5cj1vLmR5bkNhbGxfdmlpaWlpaWlpPShpLGUscix0LGEsbixsLHMsZCk9Pih5cj1vLmR5bkNhbGxfdmlpaWlpaWlpPXYuR2MpKGksZSxyLHQsYSxuLGwscyxkKSxfcj1vLmR5bkNhbGxfZmlpPShpLGUscik9Pihfcj1vLmR5bkNhbGxfZmlpPXYuSGMpKGksZSxyKSxocj1vLmR5bkNhbGxfdmlpZj0oaSxlLHIsdCk9Pihocj1vLmR5bkNhbGxfdmlpZj12LkljKShpLGUscix0KSxwcj1vLmR5bkNhbGxfdmlpaWk9KGksZSxyLHQsYSk9Pihwcj1vLmR5bkNhbGxfdmlpaWk9di5KYykoaSxlLHIsdCxhKSxncj1vLmR5bkNhbGxfZGlpaWlpPShpLGUscix0LGEsbik9Pihncj1vLmR5bkNhbGxfZGlpaWlpPXYuS2MpKGksZSxyLHQsYSxuKSxtcj1vLmR5bkNhbGxfZGlpaT0oaSxlLHIsdCk9Pihtcj1vLmR5bkNhbGxfZGlpaT12LkxjKShpLGUscix0KSxDcj1vLmR5bkNhbGxfaWlpaWlpaT0oaSxlLHIsdCxhLG4sbCk9PihDcj1vLmR5bkNhbGxfaWlpaWlpaT12Lk1jKShpLGUscix0LGEsbixsKSx3cj1vLmR5bkNhbGxfdmlpaWlpaWlpaT0oaSxlLHIsdCxhLG4sbCxzLGQsZik9Pih3cj1vLmR5bkNhbGxfdmlpaWlpaWlpaT12Lk5jKShpLGUscix0LGEsbixsLHMsZCxmKSxicj1vLmR5bkNhbGxfaWlpaWk9KGksZSxyLHQsYSk9Pihicj1vLmR5bkNhbGxfaWlpaWk9di5PYykoaSxlLHIsdCxhKSxUcj1vLmR5bkNhbGxfaWlpaWlpPShpLGUscix0LGEsbik9PihUcj1vLmR5bkNhbGxfaWlpaWlpPXYuUGMpKGksZSxyLHQsYSxuKSxTcj1vLmR5bkNhbGxfdmlpaWlpaWlpaWk9KGksZSxyLHQsYSxuLGwscyxkLGYsYyk9PihTcj1vLmR5bkNhbGxfdmlpaWlpaWlpaWk9di5RYykoaSxlLHIsdCxhLG4sbCxzLGQsZixjKSwkcj1vLmR5bkNhbGxfdmlpaWlpaWlmPShpLGUscix0LGEsbixsLHMsZCk9Pigkcj1vLmR5bkNhbGxfdmlpaWlpaWlmPXYuUmMpKGksZSxyLHQsYSxuLGwscyxkKSxrcj1vLmR5bkNhbGxfdmlpaWlpZj0oaSxlLHIsdCxhLG4sbCk9Pihrcj1vLmR5bkNhbGxfdmlpaWlpZj12LlNjKShpLGUscix0LGEsbixsKSxQcj1vLmR5bkNhbGxfaWlpZD0oaSxlLHIsdCk9PihQcj1vLmR5bkNhbGxfaWlpZD12LlRjKShpLGUscix0KSxNcj1vLmR5bkNhbGxfdmlpZGlkaWQ9KGksZSxyLHQsYSxuLGwscyk9PihNcj1vLmR5bkNhbGxfdmlpZGlkaWQ9di5VYykoaSxlLHIsdCxhLG4sbCxzKSxBcj1vLmR5bkNhbGxfZGlpaWk9KGksZSxyLHQsYSk9PihBcj1vLmR5bkNhbGxfZGlpaWk9di5WYykoaSxlLHIsdCxhKSxScj1vLmR5bkNhbGxfdmlmZmY9KGksZSxyLHQsYSk9PihScj1vLmR5bkNhbGxfdmlmZmY9di5XYykoaSxlLHIsdCxhKSxGcj1vLmR5bkNhbGxfaWlmPShpLGUscik9PihGcj1vLmR5bkNhbGxfaWlmPXYuWGMpKGksZSxyKSxWcj1vLmR5bkNhbGxfdmlkaT0oaSxlLHIsdCk9PihWcj1vLmR5bkNhbGxfdmlkaT12LlljKShpLGUscix0KSxCcj1vLmR5bkNhbGxfaWlkPShpLGUscik9PihCcj1vLmR5bkNhbGxfaWlkPXYuWmMpKGksZSxyKSxEcj1vLmR5bkNhbGxfdmlpaWlpaWlpaWlpaWlpaWk9KGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYixULE0sQik9PihEcj1vLmR5bkNhbGxfdmlpaWlpaWlpaWlpaWlpaWk9di5fYykoaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCxiLFQsTSxCKSxFcj1vLmR5bkNhbGxfdmlpaWlpaWlpaWlpaWlpaT0oaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCxiLFQsTSk9PihFcj1vLmR5bkNhbGxfdmlpaWlpaWlpaWlpaWlpaT12LiRjKShpLGUscix0LGEsbixsLHMsZCxmLGMseSxoLGIsVCxNKSxJcj1vLmR5bkNhbGxfaWlpaWlpaWlpaT0oaSxlLHIsdCxhLG4sbCxzLGQsZik9PihJcj1vLmR5bkNhbGxfaWlpaWlpaWlpaT12LmFkKShpLGUscix0LGEsbixsLHMsZCxmKSxPcj1vLmR5bkNhbGxfaWlpaWlpaWlpPShpLGUscix0LGEsbixsLHMsZCk9PihPcj1vLmR5bkNhbGxfaWlpaWlpaWlpPXYuYmQpKGksZSxyLHQsYSxuLGwscyxkKSx4cj1vLmR5bkNhbGxfaWlpaWlpaWk9KGksZSxyLHQsYSxuLGwscyk9Pih4cj1vLmR5bkNhbGxfaWlpaWlpaWk9di5jZCkoaSxlLHIsdCxhLG4sbCxzKSxqcj1vLmR5bkNhbGxfdmlpaWlpaWlkaWlpaT0oaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCk9Pihqcj1vLmR5bkNhbGxfdmlpaWlpaWlkaWlpaT12LmRkKShpLGUscix0LGEsbixsLHMsZCxmLGMseSxoKSxVcj1vLmR5bkNhbGxfdmlpaWlpaWlpaWlkaWk9KGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYik9PihVcj1vLmR5bkNhbGxfdmlpaWlpaWlpaWlkaWk9di5lZCkoaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCxiKSxXcj1vLmR5bkNhbGxfdmlpaWlpaWQ9KGksZSxyLHQsYSxuLGwscyk9PihXcj1vLmR5bkNhbGxfdmlpaWlpaWQ9di5mZCkoaSxlLHIsdCxhLG4sbCxzKSxIcj1vLmR5bkNhbGxfdmlmPShpLGUscik9PihIcj1vLmR5bkNhbGxfdmlmPXYuZ2QpKGksZSxyKSxHcj1vLmR5bkNhbGxfaWlpaWY9KGksZSxyLHQsYSk9PihHcj1vLmR5bkNhbGxfaWlpaWY9di5oZCkoaSxlLHIsdCxhKSx6cj1vLmR5bkNhbGxfdmlpaWRpPShpLGUscix0LGEsbik9Pih6cj1vLmR5bkNhbGxfdmlpaWRpPXYuaWQpKGksZSxyLHQsYSxuKSxZcj1vLmR5bkNhbGxfaWlqaT0oaSxlLHIsdCxhKT0+KFlyPW8uZHluQ2FsbF9paWppPXYuamQpKGksZSxyLHQsYSksTHI9by5keW5DYWxsX3ZpaWlpaWZpPShpLGUscix0LGEsbixsLHMpPT4oTHI9by5keW5DYWxsX3ZpaWlpaWZpPXYua2QpKGksZSxyLHQsYSxuLGwscyksTnI9by5keW5DYWxsX3ZpZmlpPShpLGUscix0LGEpPT4oTnI9by5keW5DYWxsX3ZpZmlpPXYubGQpKGksZSxyLHQsYSkscXI9by5keW5DYWxsX3ZpaWlpZj0oaSxlLHIsdCxhLG4pPT4ocXI9by5keW5DYWxsX3ZpaWlpZj12Lm1kKShpLGUscix0LGEsbiksSnI9by5keW5DYWxsX2lpaWlpaWlpaWlpaT0oaSxlLHIsdCxhLG4sbCxzLGQsZixjLHkpPT4oSnI9by5keW5DYWxsX2lpaWlpaWlpaWlpaT12Lm5kKShpLGUscix0LGEsbixsLHMsZCxmLGMseSksWHI9by5keW5DYWxsX3ZpaWlmZmlpaWlpaWlpPShpLGUscix0LGEsbixsLHMsZCxmLGMseSxoLGIpPT4oWHI9by5keW5DYWxsX3ZpaWlmZmlpaWlpaWlpPXYub2QpKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYiksWnI9by5keW5DYWxsX2ZpPShpLGUpPT4oWnI9by5keW5DYWxsX2ZpPXYucGQpKGksZSksS3I9by5keW5DYWxsX2ZpaWY9KGksZSxyLHQpPT4oS3I9by5keW5DYWxsX2ZpaWY9di5xZCkoaSxlLHIsdCksUXI9by5keW5DYWxsX3ZpZmZpaT0oaSxlLHIsdCxhLG4pPT4oUXI9by5keW5DYWxsX3ZpZmZpaT12LnJkKShpLGUscix0LGEsbiksaXQ9by5keW5DYWxsX2ZpaWk9KGksZSxyLHQpPT4oaXQ9by5keW5DYWxsX2ZpaWk9di5zZCkoaSxlLHIsdCksZXQ9by5keW5DYWxsX3ZpaWlmaT0oaSxlLHIsdCxhLG4pPT4oZXQ9by5keW5DYWxsX3ZpaWlmaT12LnRkKShpLGUscix0LGEsbikscnQ9by5keW5DYWxsX2ZpZj0oaSxlLHIpPT4ocnQ9by5keW5DYWxsX2ZpZj12LnVkKShpLGUsciksdHQ9by5keW5DYWxsX3ZpZD0oaSxlLHIpPT4odHQ9by5keW5DYWxsX3ZpZD12LnZkKShpLGUsciksYXQ9by5keW5DYWxsX2RpPShpLGUpPT4oYXQ9by5keW5DYWxsX2RpPXYud2QpKGksZSksbnQ9by5keW5DYWxsX3ZpZGQ9KGksZSxyLHQpPT4obnQ9by5keW5DYWxsX3ZpZGQ9di54ZCkoaSxlLHIsdCksbHQ9by5keW5DYWxsX3ZpaWRkZD0oaSxlLHIsdCxhLG4pPT4obHQ9by5keW5DYWxsX3ZpaWRkZD12LnlkKShpLGUscix0LGEsbiksb3Q9by5keW5DYWxsX2RpaWlkaT0oaSxlLHIsdCxhLG4pPT4ob3Q9by5keW5DYWxsX2RpaWlkaT12LnpkKShpLGUscix0LGEsbiksc3Q9by5keW5DYWxsX3ZpaWppaT0oaSxlLHIsdCxhLG4sbCk9PihzdD1vLmR5bkNhbGxfdmlpamlpPXYuQWQpKGksZSxyLHQsYSxuLGwpLGR0PW8uZHluQ2FsbF9paWlpaWlpaWlpaWlpaWlpaT0oaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCxiLFQsTSxCKT0+KGR0PW8uZHluQ2FsbF9paWlpaWlpaWlpaWlpaWlpaT12LkJkKShpLGUscix0LGEsbixsLHMsZCxmLGMseSxoLGIsVCxNLEIpLGZ0PW8uZHluQ2FsbF92aWlpZGQ9KGksZSxyLHQsYSxuKT0+KGZ0PW8uZHluQ2FsbF92aWlpZGQ9di5DZCkoaSxlLHIsdCxhLG4pLGN0PW8uZHluQ2FsbF9mZj0oaSxlKT0+KGN0PW8uZHluQ2FsbF9mZj12LkRkKShpLGUpLHV0PW8uZHluQ2FsbF92aWo9KGksZSxyLHQpPT4odXQ9by5keW5DYWxsX3Zpaj12LkVkKShpLGUscix0KSx2dD1vLmR5bkNhbGxfaWlqPShpLGUscix0KT0+KHZ0PW8uZHluQ2FsbF9paWo9di5GZCkoaSxlLHIsdCkseXQ9by5keW5DYWxsX3ZpZmY9KGksZSxyLHQpPT4oeXQ9by5keW5DYWxsX3ZpZmY9di5HZCkoaSxlLHIsdCksX3Q9by5keW5DYWxsX2RpaWRkaT0oaSxlLHIsdCxhLG4pPT4oX3Q9by5keW5DYWxsX2RpaWRkaT12LkhkKShpLGUscix0LGEsbiksaHQ9by5keW5DYWxsX3ZpaWRpPShpLGUscix0LGEpPT4oaHQ9by5keW5DYWxsX3ZpaWRpPXYuSWQpKGksZSxyLHQsYSkscHQ9by5keW5DYWxsX2ppPShpLGUpPT4ocHQ9by5keW5DYWxsX2ppPXYuSmQpKGksZSksZ3Q9by5keW5DYWxsX3ZpaWlpaWlpaWY9KGksZSxyLHQsYSxuLGwscyxkLGYpPT4oZ3Q9by5keW5DYWxsX3ZpaWlpaWlpaWY9di5LZCkoaSxlLHIsdCxhLG4sbCxzLGQsZiksbXQ9by5keW5DYWxsX3ZpaWo9KGksZSxyLHQsYSk9PihtdD1vLmR5bkNhbGxfdmlpaj12LkxkKShpLGUscix0LGEpLEN0PW8uZHluQ2FsbF92aWlpaWlpaWlpaWZpaT0oaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCxiKT0+KEN0PW8uZHluQ2FsbF92aWlpaWlpaWlpaWZpaT12Lk1kKShpLGUscix0LGEsbixsLHMsZCxmLGMseSxoLGIpLHd0PW8uZHluQ2FsbF92aWlpaWlpZj0oaSxlLHIsdCxhLG4sbCxzKT0+KHd0PW8uZHluQ2FsbF92aWlpaWlpZj12Lk5kKShpLGUscix0LGEsbixsLHMpLGJ0PW8uZHluQ2FsbF92aWlpaWlpaWZpaWlpPShpLGUscix0LGEsbixsLHMsZCxmLGMseSxoKT0+KGJ0PW8uZHluQ2FsbF92aWlpaWlpaWZpaWlpPXYuT2QpKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgpLFR0PW8uZHluQ2FsbF92aWZmZmY9KGksZSxyLHQsYSxuKT0+KFR0PW8uZHluQ2FsbF92aWZmZmY9di5QZCkoaSxlLHIsdCxhLG4pLFN0PW8uZHluQ2FsbF92aWlpaWlpaWlpaWk9KGksZSxyLHQsYSxuLGwscyxkLGYsYyx5KT0+KFN0PW8uZHluQ2FsbF92aWlpaWlpaWlpaWk9di5RZCkoaSxlLHIsdCxhLG4sbCxzLGQsZixjLHkpLCR0PW8uZHluQ2FsbF92aWlpaWlpaWlpaWY9KGksZSxyLHQsYSxuLGwscyxkLGYsYyx5KT0+KCR0PW8uZHluQ2FsbF92aWlpaWlpaWlpaWY9di5SZCkoaSxlLHIsdCxhLG4sbCxzLGQsZixjLHkpLGt0PW8uZHluQ2FsbF92aWlpaWlmZj0oaSxlLHIsdCxhLG4sbCxzKT0+KGt0PW8uZHluQ2FsbF92aWlpaWlmZj12LlNkKShpLGUscix0LGEsbixsLHMpLFB0PW8uZHluQ2FsbF92aWlpaWlpaWlpaWZmPShpLGUscix0LGEsbixsLHMsZCxmLGMseSxoKT0+KFB0PW8uZHluQ2FsbF92aWlpaWlpaWlpaWZmPXYuVGQpKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgpLE10PW8uZHluQ2FsbF9paWlpaWlpZj0oaSxlLHIsdCxhLG4sbCxzKT0+KE10PW8uZHluQ2FsbF9paWlpaWlpZj12LlVkKShpLGUscix0LGEsbixsLHMpLEF0PW8uZHluQ2FsbF92aWlpaWlpaWlpaWZpPShpLGUscix0LGEsbixsLHMsZCxmLGMseSxoKT0+KEF0PW8uZHluQ2FsbF92aWlpaWlpaWlpaWZpPXYuVmQpKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgpLFJ0PW8uZHluQ2FsbF92aWlpaWlpaWlpaWlpaWY9KGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYixUKT0+KFJ0PW8uZHluQ2FsbF92aWlpaWlpaWlpaWlpaWY9di5XZCkoaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCxiLFQpLEZ0PW8uZHluQ2FsbF92aWlpaWlpaWlmaT0oaSxlLHIsdCxhLG4sbCxzLGQsZixjKT0+KEZ0PW8uZHluQ2FsbF92aWlpaWlpaWlmaT12LlhkKShpLGUscix0LGEsbixsLHMsZCxmLGMpLFZ0PW8uZHluQ2FsbF9paWlpaWlpaWlpaT0oaSxlLHIsdCxhLG4sbCxzLGQsZixjKT0+KFZ0PW8uZHluQ2FsbF9paWlpaWlpaWlpaT12LllkKShpLGUscix0LGEsbixsLHMsZCxmLGMpLEJ0PW8uZHluQ2FsbF92aWlpZmZmPShpLGUscix0LGEsbixsKT0+KEJ0PW8uZHluQ2FsbF92aWlpZmZmPXYuWmQpKGksZSxyLHQsYSxuLGwpLER0PW8uZHluQ2FsbF92aWlmZmk9KGksZSxyLHQsYSxuKT0+KER0PW8uZHluQ2FsbF92aWlmZmk9di5fZCkoaSxlLHIsdCxhLG4pLEV0PW8uZHluQ2FsbF92aWlpZGRpPShpLGUscix0LGEsbixsKT0+KEV0PW8uZHluQ2FsbF92aWlpZGRpPXYuJGQpKGksZSxyLHQsYSxuLGwpLEl0PW8uZHluQ2FsbF92aWlpZj0oaSxlLHIsdCxhKT0+KEl0PW8uZHluQ2FsbF92aWlpZj12LmFlKShpLGUscix0LGEpLE90PW8uZHluQ2FsbF92aWlpaWRpaWlpPShpLGUscix0LGEsbixsLHMsZCxmKT0+KE90PW8uZHluQ2FsbF92aWlpaWRpaWlpPXYuYmUpKGksZSxyLHQsYSxuLGwscyxkLGYpLHh0PW8uZHluQ2FsbF92aWlpaWlkaT0oaSxlLHIsdCxhLG4sbCxzKT0+KHh0PW8uZHluQ2FsbF92aWlpaWlkaT12LmNlKShpLGUscix0LGEsbixsLHMpLGp0PW8uZHluQ2FsbF9kZGk9KGksZSxyKT0+KGp0PW8uZHluQ2FsbF9kZGk9di5kZSkoaSxlLHIpLFV0PW8uZHluQ2FsbF92aWlpZGRkaWlpaT0oaSxlLHIsdCxhLG4sbCxzLGQsZixjKT0+KFV0PW8uZHluQ2FsbF92aWlpZGRkaWlpaT12LmVlKShpLGUscix0LGEsbixsLHMsZCxmLGMpLFd0PW8uZHluQ2FsbF9maWlpaWY9KGksZSxyLHQsYSxuKT0+KFd0PW8uZHluQ2FsbF9maWlpaWY9di5mZSkoaSxlLHIsdCxhLG4pLEh0PW8uZHluQ2FsbF92aWlpaWZpPShpLGUscix0LGEsbixsKT0+KEh0PW8uZHluQ2FsbF92aWlpaWZpPXYuZ2UpKGksZSxyLHQsYSxuLGwpLEd0PW8uZHluQ2FsbF92aWlpaWlpamo9KGksZSxyLHQsYSxuLGwscyxkLGYsYyk9PihHdD1vLmR5bkNhbGxfdmlpaWlpaWpqPXYuaGUpKGksZSxyLHQsYSxuLGwscyxkLGYsYyk7by5keW5DYWxsX3ZpaWlpaWlpaWlkZD0oaSxlLHIsdCxhLG4sbCxzLGQsZixjLHkpPT4oby5keW5DYWxsX3ZpaWlpaWlpaWlkZD12LmllKShpLGUscix0LGEsbixsLHMsZCxmLGMseSksby5keW5DYWxsX3ZpaWlkPShpLGUscix0LGEpPT4oby5keW5DYWxsX3ZpaWlkPXYuamUpKGksZSxyLHQsYSksby5keW5DYWxsX3ZpaWlpaWlpaWlpZGRpPShpLGUscix0LGEsbixsLHMsZCxmLGMseSxoLGIpPT4oby5keW5DYWxsX3ZpaWlpaWlpaWlpZGRpPXYua2UpKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYiksby5keW5DYWxsX3ZpaWlpaWlpZGRpPShpLGUscix0LGEsbixsLHMsZCxmLGMpPT4oby5keW5DYWxsX3ZpaWlpaWlpZGRpPXYubGUpKGksZSxyLHQsYSxuLGwscyxkLGYsYyksby5keW5DYWxsX3ZpaWlpZD0oaSxlLHIsdCxhLG4pPT4oby5keW5DYWxsX3ZpaWlpZD12Lm1lKShpLGUscix0LGEsbiksby5keW5DYWxsX3ZpZGlpPShpLGUscix0LGEpPT4oby5keW5DYWxsX3ZpZGlpPXYubmUpKGksZSxyLHQsYSksby5keW5DYWxsX2ppamk9KGksZSxyLHQsYSk9PihvLmR5bkNhbGxfamlqaT12Lm9lKShpLGUscix0LGEpLG8uZHluQ2FsbF9paWRpaWlpPShpLGUscix0LGEsbixsKT0+KG8uZHluQ2FsbF9paWRpaWlpPXYucGUpKGksZSxyLHQsYSxuLGwpO3ZhciB6dD1vLmR5bkNhbGxfaj1pPT4oenQ9by5keW5DYWxsX2o9di5xZSkoaSksWXQ9by5keW5DYWxsX2lpaWlpaj0oaSxlLHIsdCxhLG4sbCk9PihZdD1vLmR5bkNhbGxfaWlpaWlqPXYucmUpKGksZSxyLHQsYSxuLGwpLEx0PW8uZHluQ2FsbF9paWlpaWQ9KGksZSxyLHQsYSxuKT0+KEx0PW8uZHluQ2FsbF9paWlpaWQ9di5zZSkoaSxlLHIsdCxhLG4pLE50PW8uZHluQ2FsbF9qaWlpaT0oaSxlLHIsdCxhKT0+KE50PW8uZHluQ2FsbF9qaWlpaT12LnRlKShpLGUscix0LGEpO28uZHluQ2FsbF9paWlpaWlpaWlpaWlpPShpLGUscix0LGEsbixsLHMsZCxmLGMseSxoKT0+KG8uZHluQ2FsbF9paWlpaWlpaWlpaWlpPXYudWUpKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgpLG8uZHluQ2FsbF9paWlpaWpqPShpLGUscix0LGEsbixsLHMsZCk9PihvLmR5bkNhbGxfaWlpaWlqaj12LnZlKShpLGUscix0LGEsbixsLHMsZCksby5keW5DYWxsX2lpaWlpaWpqPShpLGUscix0LGEsbixsLHMsZCxmKT0+KG8uZHluQ2FsbF9paWlpaWlqaj12LndlKShpLGUscix0LGEsbixsLHMsZCxmKTt2YXIgcXQ9aT0+KHF0PXYueGUpKGkpLEp0PSgpPT4oSnQ9di55ZSkoKSxYdD1pPT4oWHQ9di56ZSkoaSksWnQ9KCk9PihadD12LkFlKSgpO28uX19fc3RhcnRfZW1fanM9NDE4Mzk2LG8uX19fc3RvcF9lbV9qcz00MjAyMDc7ZnVuY3Rpb24gT2woaSxlKXt2YXIgcj1nKCk7dHJ5e2VyKGksZSl9Y2F0Y2godCl7aWYobShyKSx0IT09dCswKXRocm93IHQ7cCgxLDApfX1mdW5jdGlvbiB4bChpLGUpe3ZhciByPWcoKTt0cnl7cmV0dXJuIHRyKGksZSl9Y2F0Y2godCl7aWYobShyKSx0IT09dCswKXRocm93IHQ7cCgxLDApfX1mdW5jdGlvbiBqbChpLGUscil7dmFyIHQ9ZygpO3RyeXtyZXR1cm4gbnIoaSxlLHIpfWNhdGNoKGEpe2lmKG0odCksYSE9PWErMCl0aHJvdyBhO3AoMSwwKX19ZnVuY3Rpb24gVWwoaSxlLHIsdCl7dmFyIGE9ZygpO3RyeXtyZXR1cm4gbHIoaSxlLHIsdCl9Y2F0Y2gobil7aWYobShhKSxuIT09biswKXRocm93IG47cCgxLDApfX1mdW5jdGlvbiBXbChpLGUscil7dmFyIHQ9ZygpO3RyeXtzcihpLGUscil9Y2F0Y2goYSl7aWYobSh0KSxhIT09YSswKXRocm93IGE7cCgxLDApfX1mdW5jdGlvbiBIbChpKXt2YXIgZT1nKCk7dHJ5e3JyKGkpfWNhdGNoKHIpe2lmKG0oZSksciE9PXIrMCl0aHJvdyByO3AoMSwwKX19ZnVuY3Rpb24gR2woaSxlLHIsdCxhLG4pe3ZhciBsPWcoKTt0cnl7Y3IoaSxlLHIsdCxhLG4pfWNhdGNoKHMpe2lmKG0obCkscyE9PXMrMCl0aHJvdyBzO3AoMSwwKX19ZnVuY3Rpb24gemwoaSxlLHIsdCxhLG4sbCxzKXt2YXIgZD1nKCk7dHJ5e3ZyKGksZSxyLHQsYSxuLGwscyl9Y2F0Y2goZil7aWYobShkKSxmIT09ZiswKXRocm93IGY7cCgxLDApfX1mdW5jdGlvbiBZbChpKXt2YXIgZT1nKCk7dHJ5e3JldHVybiBhcihpKX1jYXRjaChyKXtpZihtKGUpLHIhPT1yKzApdGhyb3cgcjtwKDEsMCl9fWZ1bmN0aW9uIExsKGksZSxyLHQpe3ZhciBhPWcoKTt0cnl7b3IoaSxlLHIsdCl9Y2F0Y2gobil7aWYobShhKSxuIT09biswKXRocm93IG47cCgxLDApfX1mdW5jdGlvbiBObChpLGUscix0LGEpe3ZhciBuPWcoKTt0cnl7cHIoaSxlLHIsdCxhKX1jYXRjaChsKXtpZihtKG4pLGwhPT1sKzApdGhyb3cgbDtwKDEsMCl9fWZ1bmN0aW9uIHFsKGksZSxyLHQsYSxuLGwscyxkKXt2YXIgZj1nKCk7dHJ5e3lyKGksZSxyLHQsYSxuLGwscyxkKX1jYXRjaChjKXtpZihtKGYpLGMhPT1jKzApdGhyb3cgYztwKDEsMCl9fWZ1bmN0aW9uIEpsKGksZSxyLHQsYSxuKXt2YXIgbD1nKCk7dHJ5e3JldHVybiBncihpLGUscix0LGEsbil9Y2F0Y2gocyl7aWYobShsKSxzIT09cyswKXRocm93IHM7cCgxLDApfX1mdW5jdGlvbiBYbChpLGUscix0KXt2YXIgYT1nKCk7dHJ5e3JldHVybiBtcihpLGUscix0KX1jYXRjaChuKXtpZihtKGEpLG4hPT1uKzApdGhyb3cgbjtwKDEsMCl9fWZ1bmN0aW9uIFpsKGksZSxyLHQsYSxuLGwscyxkLGYpe3ZhciBjPWcoKTt0cnl7d3IoaSxlLHIsdCxhLG4sbCxzLGQsZil9Y2F0Y2goeSl7aWYobShjKSx5IT09eSswKXRocm93IHk7cCgxLDApfX1mdW5jdGlvbiBLbChpLGUscix0LGEsbixsKXt2YXIgcz1nKCk7dHJ5e3JldHVybiBDcihpLGUscix0LGEsbixsKX1jYXRjaChkKXtpZihtKHMpLGQhPT1kKzApdGhyb3cgZDtwKDEsMCl9fWZ1bmN0aW9uIFFsKGksZSxyLHQsYSl7dmFyIG49ZygpO3RyeXtyZXR1cm4gYnIoaSxlLHIsdCxhKX1jYXRjaChsKXtpZihtKG4pLGwhPT1sKzApdGhyb3cgbDtwKDEsMCl9fWZ1bmN0aW9uIGlvKGksZSxyLHQsYSxuKXt2YXIgbD1nKCk7dHJ5e3JldHVybiBUcihpLGUscix0LGEsbil9Y2F0Y2gocyl7aWYobShsKSxzIT09cyswKXRocm93IHM7cCgxLDApfX1mdW5jdGlvbiBlbyhpLGUscix0KXt2YXIgYT1nKCk7dHJ5e2hyKGksZSxyLHQpfWNhdGNoKG4pe2lmKG0oYSksbiE9PW4rMCl0aHJvdyBuO3AoMSwwKX19ZnVuY3Rpb24gcm8oaSxlLHIsdCxhLG4sbCxzLGQsZixjKXt2YXIgeT1nKCk7dHJ5e1NyKGksZSxyLHQsYSxuLGwscyxkLGYsYyl9Y2F0Y2goaCl7aWYobSh5KSxoIT09aCswKXRocm93IGg7cCgxLDApfX1mdW5jdGlvbiB0byhpLGUscix0LGEsbixsLHMsZCl7dmFyIGY9ZygpO3RyeXskcihpLGUscix0LGEsbixsLHMsZCl9Y2F0Y2goYyl7aWYobShmKSxjIT09YyswKXRocm93IGM7cCgxLDApfX1mdW5jdGlvbiBhbyhpLGUscix0LGEsbixsKXt2YXIgcz1nKCk7dHJ5e2tyKGksZSxyLHQsYSxuLGwpfWNhdGNoKGQpe2lmKG0ocyksZCE9PWQrMCl0aHJvdyBkO3AoMSwwKX19ZnVuY3Rpb24gbm8oaSxlLHIsdCxhLG4sbCl7dmFyIHM9ZygpO3RyeXt1cihpLGUscix0LGEsbixsKX1jYXRjaChkKXtpZihtKHMpLGQhPT1kKzApdGhyb3cgZDtwKDEsMCl9fWZ1bmN0aW9uIGxvKGksZSxyLHQpe3ZhciBhPWcoKTt0cnl7ZnIoaSxlLHIsdCl9Y2F0Y2gobil7aWYobShhKSxuIT09biswKXRocm93IG47cCgxLDApfX1mdW5jdGlvbiBvbyhpLGUscix0LGEsbixsLHMpe3ZhciBkPWcoKTt0cnl7TXIoaSxlLHIsdCxhLG4sbCxzKX1jYXRjaChmKXtpZihtKGQpLGYhPT1mKzApdGhyb3cgZjtwKDEsMCl9fWZ1bmN0aW9uIHNvKGksZSxyLHQpe3ZhciBhPWcoKTt0cnl7cmV0dXJuIFByKGksZSxyLHQpfWNhdGNoKG4pe2lmKG0oYSksbiE9PW4rMCl0aHJvdyBuO3AoMSwwKX19ZnVuY3Rpb24gZm8oaSxlLHIsdCxhKXt2YXIgbj1nKCk7dHJ5e3JldHVybiBBcihpLGUscix0LGEpfWNhdGNoKGwpe2lmKG0obiksbCE9PWwrMCl0aHJvdyBsO3AoMSwwKX19ZnVuY3Rpb24gY28oaSxlLHIsdCxhKXt2YXIgbj1nKCk7dHJ5e1JyKGksZSxyLHQsYSl9Y2F0Y2gobCl7aWYobShuKSxsIT09bCswKXRocm93IGw7cCgxLDApfX1mdW5jdGlvbiB1byhpLGUscil7dmFyIHQ9ZygpO3RyeXtyZXR1cm4gRnIoaSxlLHIpfWNhdGNoKGEpe2lmKG0odCksYSE9PWErMCl0aHJvdyBhO3AoMSwwKX19ZnVuY3Rpb24gdm8oaSxlLHIsdCxhLG4sbCxzKXt2YXIgZD1nKCk7dHJ5e3JldHVybiB4cihpLGUscix0LGEsbixsLHMpfWNhdGNoKGYpe2lmKG0oZCksZiE9PWYrMCl0aHJvdyBmO3AoMSwwKX19ZnVuY3Rpb24geW8oaSxlLHIsdCxhLG4sbCxzLGQsZixjLHkpe3ZhciBoPWcoKTt0cnl7cmV0dXJuIEpyKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5KX1jYXRjaChiKXtpZihtKGgpLGIhPT1iKzApdGhyb3cgYjtwKDEsMCl9fWZ1bmN0aW9uIF9vKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYixULE0sQil7dmFyIHg9ZygpO3RyeXtyZXR1cm4gZHQoaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCxiLFQsTSxCKX1jYXRjaChDKXtpZihtKHgpLEMhPT1DKzApdGhyb3cgQztwKDEsMCl9fWZ1bmN0aW9uIGhvKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYixULE0sQil7dmFyIHg9ZygpO3RyeXtEcihpLGUscix0LGEsbixsLHMsZCxmLGMseSxoLGIsVCxNLEIpfWNhdGNoKEMpe2lmKG0oeCksQyE9PUMrMCl0aHJvdyBDO3AoMSwwKX19ZnVuY3Rpb24gcG8oaSxlLHIsdCl7dmFyIGE9ZygpO3RyeXtWcihpLGUscix0KX1jYXRjaChuKXtpZihtKGEpLG4hPT1uKzApdGhyb3cgbjtwKDEsMCl9fWZ1bmN0aW9uIGdvKGksZSxyKXt2YXIgdD1nKCk7dHJ5e3JldHVybiBCcihpLGUscil9Y2F0Y2goYSl7aWYobSh0KSxhIT09YSswKXRocm93IGE7cCgxLDApfX1mdW5jdGlvbiBtbyhpLGUscix0LGEsbixsLHMsZCxmLGMseSxoLGIsVCxNKXt2YXIgQj1nKCk7dHJ5e0VyKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYixULE0pfWNhdGNoKHgpe2lmKG0oQikseCE9PXgrMCl0aHJvdyB4O3AoMSwwKX19ZnVuY3Rpb24gQ28oaSxlLHIsdCxhLG4sbCxzLGQsZil7dmFyIGM9ZygpO3RyeXtyZXR1cm4gSXIoaSxlLHIsdCxhLG4sbCxzLGQsZil9Y2F0Y2goeSl7aWYobShjKSx5IT09eSswKXRocm93IHk7cCgxLDApfX1mdW5jdGlvbiB3byhpLGUscix0LGEsbixsLHMsZCl7dmFyIGY9ZygpO3RyeXtyZXR1cm4gT3IoaSxlLHIsdCxhLG4sbCxzLGQpfWNhdGNoKGMpe2lmKG0oZiksYyE9PWMrMCl0aHJvdyBjO3AoMSwwKX19ZnVuY3Rpb24gYm8oaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCl7dmFyIGI9ZygpO3RyeXtqcihpLGUscix0LGEsbixsLHMsZCxmLGMseSxoKX1jYXRjaChUKXtpZihtKGIpLFQhPT1UKzApdGhyb3cgVDtwKDEsMCl9fWZ1bmN0aW9uIFRvKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYil7dmFyIFQ9ZygpO3RyeXtVcihpLGUscix0LGEsbixsLHMsZCxmLGMseSxoLGIpfWNhdGNoKE0pe2lmKG0oVCksTSE9PU0rMCl0aHJvdyBNO3AoMSwwKX19ZnVuY3Rpb24gU28oaSxlLHIsdCxhLG4sbCxzKXt2YXIgZD1nKCk7dHJ5e1dyKGksZSxyLHQsYSxuLGwscyl9Y2F0Y2goZil7aWYobShkKSxmIT09ZiswKXRocm93IGY7cCgxLDApfX1mdW5jdGlvbiAkbyhpLGUscil7dmFyIHQ9ZygpO3RyeXtyZXR1cm4gcnQoaSxlLHIpfWNhdGNoKGEpe2lmKG0odCksYSE9PWErMCl0aHJvdyBhO3AoMSwwKX19ZnVuY3Rpb24ga28oaSxlLHIpe3ZhciB0PWcoKTt0cnl7SHIoaSxlLHIpfWNhdGNoKGEpe2lmKG0odCksYSE9PWErMCl0aHJvdyBhO3AoMSwwKX19ZnVuY3Rpb24gUG8oaSxlLHIsdCxhLG4pe3ZhciBsPWcoKTt0cnl7VHQoaSxlLHIsdCxhLG4pfWNhdGNoKHMpe2lmKG0obCkscyE9PXMrMCl0aHJvdyBzO3AoMSwwKX19ZnVuY3Rpb24gTW8oaSxlLHIsdCxhLG4sbCl7dmFyIHM9ZygpO3RyeXtFdChpLGUscix0LGEsbixsKX1jYXRjaChkKXtpZihtKHMpLGQhPT1kKzApdGhyb3cgZDtwKDEsMCl9fWZ1bmN0aW9uIEFvKGksZSxyLHQsYSxuKXt2YXIgbD1nKCk7dHJ5e1FyKGksZSxyLHQsYSxuKX1jYXRjaChzKXtpZihtKGwpLHMhPT1zKzApdGhyb3cgcztwKDEsMCl9fWZ1bmN0aW9uIFJvKGksZSxyLHQsYSl7dmFyIG49ZygpO3RyeXtJdChpLGUscix0LGEpfWNhdGNoKGwpe2lmKG0obiksbCE9PWwrMCl0aHJvdyBsO3AoMSwwKX19ZnVuY3Rpb24gRm8oaSxlLHIsdCxhKXt2YXIgbj1nKCk7dHJ5e3JldHVybiBHcihpLGUscix0LGEpfWNhdGNoKGwpe2lmKG0obiksbCE9PWwrMCl0aHJvdyBsO3AoMSwwKX19ZnVuY3Rpb24gVm8oaSxlLHIsdCl7dmFyIGE9ZygpO3RyeXt5dChpLGUscix0KX1jYXRjaChuKXtpZihtKGEpLG4hPT1uKzApdGhyb3cgbjtwKDEsMCl9fWZ1bmN0aW9uIEJvKGksZSxyLHQsYSxuKXt2YXIgbD1nKCk7dHJ5e3pyKGksZSxyLHQsYSxuKX1jYXRjaChzKXtpZihtKGwpLHMhPT1zKzApdGhyb3cgcztwKDEsMCl9fWZ1bmN0aW9uIERvKGksZSxyKXt2YXIgdD1nKCk7dHJ5e3JldHVybiBfcihpLGUscil9Y2F0Y2goYSl7aWYobSh0KSxhIT09YSswKXRocm93IGE7cCgxLDApfX1mdW5jdGlvbiBFbyhpLGUscix0LGEpe3ZhciBuPWcoKTt0cnl7TnIoaSxlLHIsdCxhKX1jYXRjaChsKXtpZihtKG4pLGwhPT1sKzApdGhyb3cgbDtwKDEsMCl9fWZ1bmN0aW9uIElvKGksZSxyLHQsYSxuKXt2YXIgbD1nKCk7dHJ5e3FyKGksZSxyLHQsYSxuKX1jYXRjaChzKXtpZihtKGwpLHMhPT1zKzApdGhyb3cgcztwKDEsMCl9fWZ1bmN0aW9uIE9vKGksZSxyLHQpe3ZhciBhPWcoKTt0cnl7cmV0dXJuIGl0KGksZSxyLHQpfWNhdGNoKG4pe2lmKG0oYSksbiE9PW4rMCl0aHJvdyBuO3AoMSwwKX19ZnVuY3Rpb24geG8oaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCxiKXt2YXIgVD1nKCk7dHJ5e1hyKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYil9Y2F0Y2goTSl7aWYobShUKSxNIT09TSswKXRocm93IE07cCgxLDApfX1mdW5jdGlvbiBqbyhpLGUpe3ZhciByPWcoKTt0cnl7cmV0dXJuIFpyKGksZSl9Y2F0Y2godCl7aWYobShyKSx0IT09dCswKXRocm93IHQ7cCgxLDApfX1mdW5jdGlvbiBVbyhpLGUscix0KXt2YXIgYT1nKCk7dHJ5e3JldHVybiBLcihpLGUscix0KX1jYXRjaChuKXtpZihtKGEpLG4hPT1uKzApdGhyb3cgbjtwKDEsMCl9fWZ1bmN0aW9uIFdvKGksZSxyLHQsYSxuLGwscyl7dmFyIGQ9ZygpO3RyeXtMcihpLGUscix0LGEsbixsLHMpfWNhdGNoKGYpe2lmKG0oZCksZiE9PWYrMCl0aHJvdyBmO3AoMSwwKX19ZnVuY3Rpb24gSG8oaSxlLHIpe3ZhciB0PWcoKTt0cnl7dHQoaSxlLHIpfWNhdGNoKGEpe2lmKG0odCksYSE9PWErMCl0aHJvdyBhO3AoMSwwKX19ZnVuY3Rpb24gR28oaSxlKXt2YXIgcj1nKCk7dHJ5e3JldHVybiBhdChpLGUpfWNhdGNoKHQpe2lmKG0ociksdCE9PXQrMCl0aHJvdyB0O3AoMSwwKX19ZnVuY3Rpb24gem8oaSxlLHIpe3ZhciB0PWcoKTt0cnl7cmV0dXJuIGRyKGksZSxyKX1jYXRjaChhKXtpZihtKHQpLGEhPT1hKzApdGhyb3cgYTtwKDEsMCl9fWZ1bmN0aW9uIFlvKGksZSl7dmFyIHI9ZygpO3RyeXtyZXR1cm4gY3QoaSxlKX1jYXRjaCh0KXtpZihtKHIpLHQhPT10KzApdGhyb3cgdDtwKDEsMCl9fWZ1bmN0aW9uIExvKGksZSxyLHQpe3ZhciBhPWcoKTt0cnl7bnQoaSxlLHIsdCl9Y2F0Y2gobil7aWYobShhKSxuIT09biswKXRocm93IG47cCgxLDApfX1mdW5jdGlvbiBObyhpLGUscix0LGEsbil7dmFyIGw9ZygpO3RyeXtsdChpLGUscix0LGEsbil9Y2F0Y2gocyl7aWYobShsKSxzIT09cyswKXRocm93IHM7cCgxLDApfX1mdW5jdGlvbiBxbyhpLGUscix0LGEsbil7dmFyIGw9ZygpO3RyeXtyZXR1cm4gb3QoaSxlLHIsdCxhLG4pfWNhdGNoKHMpe2lmKG0obCkscyE9PXMrMCl0aHJvdyBzO3AoMSwwKX19ZnVuY3Rpb24gSm8oaSxlLHIsdCxhLG4pe3ZhciBsPWcoKTt0cnl7ZnQoaSxlLHIsdCxhLG4pfWNhdGNoKHMpe2lmKG0obCkscyE9PXMrMCl0aHJvdyBzO3AoMSwwKX19ZnVuY3Rpb24gWG8oaSxlLHIsdCxhLG4pe3ZhciBsPWcoKTt0cnl7cmV0dXJuIF90KGksZSxyLHQsYSxuKX1jYXRjaChzKXtpZihtKGwpLHMhPT1zKzApdGhyb3cgcztwKDEsMCl9fWZ1bmN0aW9uIFpvKGksZSxyLHQsYSl7dmFyIG49ZygpO3RyeXtodChpLGUscix0LGEpfWNhdGNoKGwpe2lmKG0obiksbCE9PWwrMCl0aHJvdyBsO3AoMSwwKX19ZnVuY3Rpb24gS28oaSxlLHIsdCxhLG4sbCxzLGQsZil7dmFyIGM9ZygpO3RyeXtndChpLGUscix0LGEsbixsLHMsZCxmKX1jYXRjaCh5KXtpZihtKGMpLHkhPT15KzApdGhyb3cgeTtwKDEsMCl9fWZ1bmN0aW9uIFFvKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYil7dmFyIFQ9ZygpO3RyeXtDdChpLGUscix0LGEsbixsLHMsZCxmLGMseSxoLGIpfWNhdGNoKE0pe2lmKG0oVCksTSE9PU0rMCl0aHJvdyBNO3AoMSwwKX19ZnVuY3Rpb24gaXMoaSxlLHIsdCxhLG4sbCxzKXt2YXIgZD1nKCk7dHJ5e3d0KGksZSxyLHQsYSxuLGwscyl9Y2F0Y2goZil7aWYobShkKSxmIT09ZiswKXRocm93IGY7cCgxLDApfX1mdW5jdGlvbiBlcyhpLGUscix0LGEsbixsLHMsZCxmLGMseSxoKXt2YXIgYj1nKCk7dHJ5e2J0KGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgpfWNhdGNoKFQpe2lmKG0oYiksVCE9PVQrMCl0aHJvdyBUO3AoMSwwKX19ZnVuY3Rpb24gcnMoaSxlLHIsdCxhLG4pe3ZhciBsPWcoKTt0cnl7ZXQoaSxlLHIsdCxhLG4pfWNhdGNoKHMpe2lmKG0obCkscyE9PXMrMCl0aHJvdyBzO3AoMSwwKX19ZnVuY3Rpb24gdHMoaSxlLHIsdCxhLG4sbCxzLGQsZixjLHkpe3ZhciBoPWcoKTt0cnl7U3QoaSxlLHIsdCxhLG4sbCxzLGQsZixjLHkpfWNhdGNoKGIpe2lmKG0oaCksYiE9PWIrMCl0aHJvdyBiO3AoMSwwKX19ZnVuY3Rpb24gYXMoaSxlLHIsdCxhLG4sbCxzKXt2YXIgZD1nKCk7dHJ5e3JldHVybiBNdChpLGUscix0LGEsbixsLHMpfWNhdGNoKGYpe2lmKG0oZCksZiE9PWYrMCl0aHJvdyBmO3AoMSwwKX19ZnVuY3Rpb24gbnMoaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCl7dmFyIGI9ZygpO3RyeXtQdChpLGUscix0LGEsbixsLHMsZCxmLGMseSxoKX1jYXRjaChUKXtpZihtKGIpLFQhPT1UKzApdGhyb3cgVDtwKDEsMCl9fWZ1bmN0aW9uIGxzKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5KXt2YXIgaD1nKCk7dHJ5eyR0KGksZSxyLHQsYSxuLGwscyxkLGYsYyx5KX1jYXRjaChiKXtpZihtKGgpLGIhPT1iKzApdGhyb3cgYjtwKDEsMCl9fWZ1bmN0aW9uIG9zKGksZSxyLHQsYSxuLGwscyl7dmFyIGQ9ZygpO3RyeXtrdChpLGUscix0LGEsbixsLHMpfWNhdGNoKGYpe2lmKG0oZCksZiE9PWYrMCl0aHJvdyBmO3AoMSwwKX19ZnVuY3Rpb24gc3MoaSxlLHIsdCxhLG4sbCxzLGQsZixjLHksaCl7dmFyIGI9ZygpO3RyeXtBdChpLGUscix0LGEsbixsLHMsZCxmLGMseSxoKX1jYXRjaChUKXtpZihtKGIpLFQhPT1UKzApdGhyb3cgVDtwKDEsMCl9fWZ1bmN0aW9uIGRzKGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYixUKXt2YXIgTT1nKCk7dHJ5e1J0KGksZSxyLHQsYSxuLGwscyxkLGYsYyx5LGgsYixUKX1jYXRjaChCKXtpZihtKE0pLEIhPT1CKzApdGhyb3cgQjtwKDEsMCl9fWZ1bmN0aW9uIGZzKGksZSxyLHQsYSxuLGwscyxkLGYsYyl7dmFyIHk9ZygpO3RyeXtGdChpLGUscix0LGEsbixsLHMsZCxmLGMpfWNhdGNoKGgpe2lmKG0oeSksaCE9PWgrMCl0aHJvdyBoO3AoMSwwKX19ZnVuY3Rpb24gY3MoaSxlLHIsdCxhLG4sbCxzLGQsZixjKXt2YXIgeT1nKCk7dHJ5e3JldHVybiBWdChpLGUscix0LGEsbixsLHMsZCxmLGMpfWNhdGNoKGgpe2lmKG0oeSksaCE9PWgrMCl0aHJvdyBoO3AoMSwwKX19ZnVuY3Rpb24gdXMoaSxlLHIsdCxhLG4sbCxzLGQsZil7dmFyIGM9ZygpO3RyeXtPdChpLGUscix0LGEsbixsLHMsZCxmKX1jYXRjaCh5KXtpZihtKGMpLHkhPT15KzApdGhyb3cgeTtwKDEsMCl9fWZ1bmN0aW9uIHZzKGksZSxyLHQsYSxuLGwpe3ZhciBzPWcoKTt0cnl7QnQoaSxlLHIsdCxhLG4sbCl9Y2F0Y2goZCl7aWYobShzKSxkIT09ZCswKXRocm93IGQ7cCgxLDApfX1mdW5jdGlvbiB5cyhpLGUscix0LGEsbil7dmFyIGw9ZygpO3RyeXtEdChpLGUscix0LGEsbil9Y2F0Y2gocyl7aWYobShsKSxzIT09cyswKXRocm93IHM7cCgxLDApfX1mdW5jdGlvbiBfcyhpLGUscix0LGEsbixsLHMpe3ZhciBkPWcoKTt0cnl7eHQoaSxlLHIsdCxhLG4sbCxzKX1jYXRjaChmKXtpZihtKGQpLGYhPT1mKzApdGhyb3cgZjtwKDEsMCl9fWZ1bmN0aW9uIGhzKGksZSxyKXt2YXIgdD1nKCk7dHJ5e3JldHVybiBqdChpLGUscil9Y2F0Y2goYSl7aWYobSh0KSxhIT09YSswKXRocm93IGE7cCgxLDApfX1mdW5jdGlvbiBwcyhpLGUscix0LGEsbixsLHMsZCxmLGMpe3ZhciB5PWcoKTt0cnl7VXQoaSxlLHIsdCxhLG4sbCxzLGQsZixjKX1jYXRjaChoKXtpZihtKHkpLGghPT1oKzApdGhyb3cgaDtwKDEsMCl9fWZ1bmN0aW9uIGdzKGksZSxyLHQsYSxuKXt2YXIgbD1nKCk7dHJ5e3JldHVybiBXdChpLGUscix0LGEsbil9Y2F0Y2gocyl7aWYobShsKSxzIT09cyswKXRocm93IHM7cCgxLDApfX1mdW5jdGlvbiBtcyhpLGUscix0LGEsbixsKXt2YXIgcz1nKCk7dHJ5e0h0KGksZSxyLHQsYSxuLGwpfWNhdGNoKGQpe2lmKG0ocyksZCE9PWQrMCl0aHJvdyBkO3AoMSwwKX19ZnVuY3Rpb24gQ3MoaSxlLHIsdCxhLG4pe3ZhciBsPWcoKTt0cnl7cmV0dXJuIEx0KGksZSxyLHQsYSxuKX1jYXRjaChzKXtpZihtKGwpLHMhPT1zKzApdGhyb3cgcztwKDEsMCl9fWZ1bmN0aW9uIHdzKGksZSxyLHQsYSl7dmFyIG49ZygpO3RyeXtyZXR1cm4gWXIoaSxlLHIsdCxhKX1jYXRjaChsKXtpZihtKG4pLGwhPT1sKzApdGhyb3cgbDtwKDEsMCl9fWZ1bmN0aW9uIGJzKGksZSl7dmFyIHI9ZygpO3RyeXtyZXR1cm4gcHQoaSxlKX1jYXRjaCh0KXtpZihtKHIpLHQhPT10KzApdGhyb3cgdDtwKDEsMCl9fWZ1bmN0aW9uIFRzKGksZSxyLHQpe3ZhciBhPWcoKTt0cnl7dXQoaSxlLHIsdCl9Y2F0Y2gobil7aWYobShhKSxuIT09biswKXRocm93IG47cCgxLDApfX1mdW5jdGlvbiBTcyhpLGUscix0KXt2YXIgYT1nKCk7dHJ5e3JldHVybiB2dChpLGUscix0KX1jYXRjaChuKXtpZihtKGEpLG4hPT1uKzApdGhyb3cgbjtwKDEsMCl9fWZ1bmN0aW9uICRzKGksZSxyLHQsYSl7dmFyIG49ZygpO3RyeXttdChpLGUscix0LGEpfWNhdGNoKGwpe2lmKG0obiksbCE9PWwrMCl0aHJvdyBsO3AoMSwwKX19ZnVuY3Rpb24ga3MoaSxlLHIsdCxhLG4sbCxzLGQsZixjKXt2YXIgeT1nKCk7dHJ5e0d0KGksZSxyLHQsYSxuLGwscyxkLGYsYyl9Y2F0Y2goaCl7aWYobSh5KSxoIT09aCswKXRocm93IGg7cCgxLDApfX1mdW5jdGlvbiBQcyhpKXt2YXIgZT1nKCk7dHJ5e3JldHVybiB6dChpKX1jYXRjaChyKXtpZihtKGUpLHIhPT1yKzApdGhyb3cgcjtwKDEsMCl9fWZ1bmN0aW9uIE1zKGksZSxyLHQsYSxuLGwpe3ZhciBzPWcoKTt0cnl7c3QoaSxlLHIsdCxhLG4sbCl9Y2F0Y2goZCl7aWYobShzKSxkIT09ZCswKXRocm93IGQ7cCgxLDApfX1mdW5jdGlvbiBBcyhpLGUscix0LGEsbixsKXt2YXIgcz1nKCk7dHJ5e3JldHVybiBZdChpLGUscix0LGEsbixsKX1jYXRjaChkKXtpZihtKHMpLGQhPT1kKzApdGhyb3cgZDtwKDEsMCl9fWZ1bmN0aW9uIFJzKGksZSxyLHQsYSl7dmFyIG49ZygpO3RyeXtyZXR1cm4gTnQoaSxlLHIsdCxhKX1jYXRjaChsKXtpZihtKG4pLGwhPT1sKzApdGhyb3cgbDtwKDEsMCl9fXZhciB6aTtUaT1mdW5jdGlvbiBpKCl7eml8fEt0KCkseml8fChUaT1pKX07ZnVuY3Rpb24gS3QoKXtpZih5aT4wfHwoX2EoKSx5aT4wKSlyZXR1cm47ZnVuY3Rpb24gaSgpe3ppfHwoemk9ITAsby5jYWxsZWRSdW49ITAsIUomJihoYSgpLF8obyksby5vblJ1bnRpbWVJbml0aWFsaXplZCYmby5vblJ1bnRpbWVJbml0aWFsaXplZCgpLHBhKCkpKX1vLnNldFN0YXR1cz8oby5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe28uc2V0U3RhdHVzKCIiKX0sMSksaSgpfSwxKSk6aSgpfWlmKG8ucHJlSW5pdClmb3IodHlwZW9mIG8ucHJlSW5pdD09ImZ1bmN0aW9uIiYmKG8ucHJlSW5pdD1bby5wcmVJbml0XSk7by5wcmVJbml0Lmxlbmd0aD4wOylvLnByZUluaXQucG9wKCkoKTtyZXR1cm4gS3QoKSx1LnJlYWR5fX0pKCksaWE9UXQsTGk9bnVsbCxjaT1udWxsO2Z1bmN0aW9uIE4oKXtyZXR1cm4gTGk9PT1udWxsJiYoTGk9aWEoe2xvY2F0ZUZpbGUodyx1KXtpZih3LmVuZHNXaXRoKCIud2FzbSIpJiZjaSE9PW51bGwpe2NvbnNvbGUubG9nKCJ0cnlpbmcgdG8gbG9hZCB3YXNtIHdpdGggcHJlZml4ICIrdSsiIGFuZCBwYXRoICIrdysiIGFuZCBjb3JlIHBhdGggIitjaSk7dHJ5e25ldyBVUkwoY2kpfWNhdGNoe2NvbnN0IF89bmV3IFVSTChjaSx1KTtyZXR1cm4gY29uc29sZS5sb2coInJldHVybmluZyAiK18uaHJlZiksXy5ocmVmfXJldHVybiBjb25zb2xlLmxvZygicmV0dXJuaW5nICIrY2kpLGNpfXJldHVybiB1K3d9fSkpLExpfWZ1bmN0aW9uIGVhKHcpe2NpPXd9Y2xhc3MgTml7Y29uc3RydWN0b3IodSxvLF8sayxELFIsTyl7dGhpcy5nYXJtZW50TWFzaz11LHRoaXMuZ2FybWVudE1lc2g9byx0aGlzLmdhcm1lbnRCYWNrc2lkZU1lc2g9Xyx0aGlzLmdhcm1lbnRGcm9udHNpZGVTaGFkb3dUZXh0dXJlTWVzaFRvVVZUcmFuc2Zvcm1hdGlvbj1rLHRoaXMuZ2FybWVudEJhY2tzaWRlU2hhZG93VGV4dHVyZU1lc2hUb1VWVHJhbnNmb3JtYXRpb249RCx0aGlzLmdhcm1lbnRGcm9udHNpZGVTaGFkb3dUZXh0dXJlSW1hZ2U9Uix0aGlzLmdhcm1lbnRCYWNrc2lkZVNoYWRvd1RleHR1cmVJbWFnZT1PfX1jbGFzcyBsZXtjb25zdHJ1Y3Rvcih1LG8sXyxrKXt0aGlzLmZpdHRlZEdhcm1lbnRzPXUsdGhpcy5hdmF0YXJPdmVybGFwQ29ycmVjdGlvbk1hc2s9byx0aGlzLmF2YXRhclNoYWRvd1RleHR1cmVVVlRyYW5zZm9ybWF0aW9uPV8sdGhpcy5hdmF0YXJTaGFkb3dUZXh0dXJlSW1hZ2U9a319Y2xhc3MgcmF7Y29uc3RydWN0b3IodSl7dGhpcy5maXR0ZWRHYXJtZW50cz11fX1mdW5jdGlvbiBGcyh3KXtyZXR1cm4gd31hc3luYyBmdW5jdGlvbiB0YSh3LHUsbyxfLGssRCl7dmFyIFI9RGF0ZS5ub3coKSxPPWF3YWl0IE4oKSxBPU8sUD1uZXcgQS5SUlRyeU9uMkRXcmFwcGVyO3RyeXtQLmF2YXRhckJsb2JWYWw9dztjb25zdCBLPVtdO2Zvcih2YXIgRT0wO0U8dS5sZW5ndGg7KytFKUsucHVzaCh1W0VdKTtpZihQLmdhcm1lbnRCbG9iVmFscz1LLFAuZG9Ta2lubmluZz1fLFAuY29tcHV0ZVNoYWRvd3M9ayxQLnJldHVybkdhcm1lbnRNZXNoVmVydGV4QnVmZmVyT25seT1ELCFhd2FpdCBQLnRyeU9uMkQobykpcmV0dXJuIG51bGw7bGV0IHE9bnVsbDtQLnJlc3VsdEF2YXRhck1hc2shPT1udWxsJiYocT1QLnJlc3VsdEF2YXRhck1hc2spO2Zvcih2YXIgaWk9W10sRT0wO0U8dS5sZW5ndGg7KytFKXtsZXQgaj1udWxsO2NvbnN0IHJpPVAucmVzdWx0R2FybWVudE1lc2hlc1tFXSxvaT1QLnJlc3VsdEdhcm1lbnRCYWNrc2lkZU1lc2hlc1tFXTtQLnJlc3VsdEdhcm1lbnRNYXNrc1tFXSE9PW51bGwmJihqPVAucmVzdWx0R2FybWVudE1hc2tzW0VdKTtjb25zdCBVPVAucmVzdWx0R2FybWVudEZyb250c2lkZVNoYWRvd1RleHR1cmVNZXNoVG9VVlRyYW5zZm9ybWF0aW9uc1tFXSxWPVAucmVzdWx0R2FybWVudEJhY2tzaWRlU2hhZG93VGV4dHVyZU1lc2hUb1VWVHJhbnNmb3JtYXRpb25zW0VdO2xldCBzaT1udWxsO1AucmVzdWx0R2FybWVudEZyb250c2lkZVNoYWRvd1RleHR1cmVJbWFnZXNbRV0hPT1udWxsJiYoc2k9UC5yZXN1bHRHYXJtZW50RnJvbnRzaWRlU2hhZG93VGV4dHVyZUltYWdlc1tFXSk7bGV0IGJpPW51bGw7UC5yZXN1bHRHYXJtZW50QmFja3NpZGVTaGFkb3dUZXh0dXJlSW1hZ2VzW0VdIT09bnVsbCYmKGJpPVAucmVzdWx0R2FybWVudEJhY2tzaWRlU2hhZG93VGV4dHVyZUltYWdlc1tFXSk7dmFyIGxpPW5ldyBOaShqLHJpLG9pLFUsVixzaSxiaSk7aWkucHVzaChsaSl9bGV0IEo9bnVsbDtQLnJlc3VsdEF2YXRhclNoYWRvd1RleHR1cmVJbWFnZSE9PW51bGwmJihKPVAucmVzdWx0QXZhdGFyU2hhZG93VGV4dHVyZUltYWdlKTtjb25zdCB2aT1QLnJlc3VsdEF2YXRhclNoYWRvd1RleHR1cmVVVlRyYW5zZm9ybWF0aW9uO3ZhciBlaT1uZXcgbGUoaWkscSx2aSxKKTtyZXR1cm4gY29uc29sZS5sb2coYFdhc20gZG9UcnlPbigpIHRvb2s6ICR7RGF0ZS5ub3coKS1SfWApLGVpfWZpbmFsbHl7UC5kZWxldGUoKX19YXN5bmMgZnVuY3Rpb24gYWEodyx1KXt2YXIgbz1hd2FpdCBOKCksXz1vLGs9bmV3IF8uUlJUcnlPbjJEV3JhcHBlcjt0cnl7ay5hdmF0YXJCbG9iVmFsPXc7Y29uc3QgRD11O3JldHVybiBrLmdhcm1lbnRCbG9iVmFscz1bRF0sYXdhaXQgay5jb21wdXRlRml0KCk/e21lc2g6ay5yZXN1bHRGaXR0ZWRHYXJtZW50QmxvYixyaWdpZFRyYW5zZm9ybWF0aW9uOmsucmVzdWx0Rml0dGVkR2FybWVudFJpZ2lkVHJhbnNmb3JtYXRpb259Oihjb25zb2xlLmxvZygiY29tcHV0ZSBmaXQgZmFpbGVkLiIpLG51bGwpfWZpbmFsbHl7ay5kZWxldGUoKX19YXN5bmMgZnVuY3Rpb24gbmEodyx1LG8sXyxrLEQpe3ZhciBSPWF3YWl0IE4oKSxPPVIsQT1uZXcgTy5SUlRyeU9uMkRXcmFwcGVyO3RyeXtBLmF2YXRhckJsb2JWYWw9dztjb25zdCBlaT1bXTtmb3IodmFyIFA9MDtQPHUubGVuZ3RoOysrUCllaS5wdXNoKHVbUF0pO2lmKEEuZ2FybWVudEJsb2JWYWxzPWVpLEEuZml0dGVkR2FybWVudERhdGE9byxBLmRvU2tpbm5pbmc9XyxBLmNvbXB1dGVTaGFkb3dzPWssQS5yZXR1cm5HYXJtZW50TWVzaFZlcnRleEJ1ZmZlck9ubHk9RCwhYXdhaXQgQS50cnlPbjJEV2l0aEZpdHRlZEdhcm1lbnRzKCkpcmV0dXJuIG51bGw7bGV0IFo9bnVsbDtBLnJlc3VsdEF2YXRhck1hc2shPT1udWxsJiYoWj1BLnJlc3VsdEF2YXRhck1hc2spO2Zvcih2YXIgRT1bXSxQPTA7UDx1Lmxlbmd0aDsrK1Ape2xldCBZPW51bGw7Y29uc3Qgaj1BLnJlc3VsdEdhcm1lbnRNZXNoZXNbUF0scmk9QS5yZXN1bHRHYXJtZW50QmFja3NpZGVNZXNoZXNbUF07QS5yZXN1bHRHYXJtZW50TWFza3NbUF0hPT1udWxsJiYoWT1BLnJlc3VsdEdhcm1lbnRNYXNrc1tQXSk7Y29uc3Qgb2k9QS5yZXN1bHRHYXJtZW50RnJvbnRzaWRlU2hhZG93VGV4dHVyZU1lc2hUb1VWVHJhbnNmb3JtYXRpb25zW1BdLFU9QS5yZXN1bHRHYXJtZW50QmFja3NpZGVTaGFkb3dUZXh0dXJlTWVzaFRvVVZUcmFuc2Zvcm1hdGlvbnNbUF07bGV0IFY9bnVsbDtBLnJlc3VsdEdhcm1lbnRGcm9udHNpZGVTaGFkb3dUZXh0dXJlSW1hZ2VzW1BdIT09bnVsbCYmKFY9QS5yZXN1bHRHYXJtZW50RnJvbnRzaWRlU2hhZG93VGV4dHVyZUltYWdlc1tQXSk7bGV0IHNpPW51bGw7QS5yZXN1bHRHYXJtZW50QmFja3NpZGVTaGFkb3dUZXh0dXJlSW1hZ2VzW1BdIT09bnVsbCYmKHNpPUEucmVzdWx0R2FybWVudEJhY2tzaWRlU2hhZG93VGV4dHVyZUltYWdlc1tQXSk7dmFyIGlpPW5ldyBOaShZLGoscmksb2ksVSxWLHNpKTtFLnB1c2goaWkpfWxldCBxPW51bGw7QS5yZXN1bHRBdmF0YXJTaGFkb3dUZXh0dXJlSW1hZ2UhPT1udWxsJiYocT1BLnJlc3VsdEF2YXRhclNoYWRvd1RleHR1cmVJbWFnZSk7Y29uc3QgSj1BLnJlc3VsdEF2YXRhclNoYWRvd1RleHR1cmVVVlRyYW5zZm9ybWF0aW9uO3ZhciBsaT1uZXcgbGUoRSxaLEoscSk7cmV0dXJuIGxpfWZpbmFsbHl7QS5kZWxldGUoKX19YXN5bmMgZnVuY3Rpb24gbGEodyx1LG8pe3ZhciBfPURhdGUubm93KCksaz1hd2FpdCBOKCksRD1rLFI9bmV3IEQuUlJUcnlPbjJEV3JhcHBlcjt0cnl7Ui5hdmF0YXJCbG9iVmFsPXc7Y29uc3QgaWk9W107Zm9yKHZhciBPPTA7Tzx1Lmxlbmd0aDsrK08paWkucHVzaCh1W09dKTtpZihSLmdhcm1lbnRCbG9iVmFscz1paSxSLmRvU2tpbm5pbmc9bywhYXdhaXQgUi5jb21wdXRlUmlnaWRGaXR0ZWRHYXJtZW50cygpKXJldHVybiBudWxsO3ZhciBBPVtdO2NvbnN0IGVpPVsxLDAsMCwwLDEsMCwwLDAsMV07Zm9yKHZhciBPPTA7Tzx1Lmxlbmd0aDsrK08pe2NvbnN0IFo9Ui5yZXN1bHRHYXJtZW50TWVzaGVzW09dLHE9Ui5yZXN1bHRHYXJtZW50QmFja3NpZGVNZXNoZXNbT107dmFyIFA9bmV3IE5pKG51bGwsWixxLGVpLGVpLG51bGwsbnVsbCk7QS5wdXNoKFApfXZhciBFPW5ldyByYShBKTtyZXR1cm4gY29uc29sZS5sb2coYFdhc20gY29tcHV0ZVJpZ2lkRml0dGVkR2FybWVudHMoKSB0b29rOiAke0RhdGUubm93KCktX31gKSxFfWZpbmFsbHl7Ui5kZWxldGUoKX19YXN5bmMgZnVuY3Rpb24gb2Eodyx1KXt2YXIgbz1hd2FpdCBOKCk7bGV0IF89bmV3IG8uUlJPYmplY3REYXRhUHJvdmlkZXJCbG9iQ2FsbGJhY2tzO3JldHVybiBfLmlkVG9DYWxsYmFjaz17REFaX0dlbmVzaXM4TWFsZV9kZWZhdWx0OmFzeW5jKCk9Pntjb25zdCBrPWF3YWl0IHUoKTtyZXR1cm4ga30sREFaX0dlbmVzaXM4RmVtYWxlX2RlZmF1bHQ6YXN5bmMoKT0+e2NvbnN0IGs9YXdhaXQgdygpO3JldHVybiBrfX0sX31hc3luYyBmdW5jdGlvbiBzYSh3LHUsbyl7bGV0IF89YXdhaXQgTigpO3ZhciBrPW5ldyBfLlJSU2l6ZVJlY29tbWVuZGF0aW9uV3JhcHBlcjt0cnl7cmV0dXJuIGsuZ2FybWVudEJsb2JWYWw9dyxrLnNpemVUYWJsZUNyZWF0aW9uQ29uZmlnQmxvYlZhbD11LGsuZml0TW9kZWxzQmxvYlZhbD1vLGF3YWl0IGsuZ2V0R2FybWVudDJEU2l6ZXMoKT9bLi4uay5hdmFpbGFibGVTaXplc106W119ZmluYWxseXtrLmRlbGV0ZSgpfX1hc3luYyBmdW5jdGlvbiBkYSh3LHUpe3ZhciBvPWF3YWl0IE4oKSxfPW5ldyBvLlJSU2l6ZVJlY29tbWVuZGF0aW9uV3JhcHBlcjt0cnl7Xy5hdmF0YXJCbG9iVmFsPXUuYXZhdGFyQmxvYixfLmdhcm1lbnRCbG9iVmFsPXUuZ2FybWVudEJsb2IsdS5zaXplIT09bnVsbCYmKF8ucmVxdWVzdGVkU2l6ZT11LnNpemUpLF8uc2l6ZVRhYmxlQmxvYlZhbD11LnNpemVUYWJsZSxfLm1lYXN1cmVtZW50c0NvbmZpZ0Jsb2JWYWw9dS5tZWFzdXJlbWVudHNDb25maWcsXy5zaXplVGFibGVDcmVhdGlvbkNvbmZpZ0Jsb2JWYWw9dS5zaXplVGFibGVDcmVhdGlvbkNvbmZpZyxfLmZpdE1vZGVsc0Jsb2JWYWw9dS5maXRNb2RlbHMsXy5jb21wdXRlVmlzdWFsaXphdGlvbj11LmNvbXB1dGVWaXN1YWxpemF0aW9uLHUuYXZhaWxhYmxlU2l6ZXMhPT1udWxsJiYoXy5hdmFpbGFibGVTaXplcz1bLi4udS5hdmFpbGFibGVTaXplc10pLGF3YWl0IF8uY29tcHV0ZVNpemVSZWNvbW1lbmRhdGlvbih3KTt2YXIgaz17Zml0SW5mb3JtYXRpb246Xy5maXRJbmZvcm1hdGlvbixyZWNvbW1lbmRlZFNpemU6Xy5yZXN1bHRTaXplfTtyZXR1cm4ga31maW5hbGx5e18uZGVsZXRlKCl9fWFzeW5jIGZ1bmN0aW9uIGZhKHcsdSxvLF8pe2xldCBrPWF3YWl0IE4oKTtjb25zdCBEPW5ldyBrLlJSQXZhdGFyQ3JlYXRvcldyYXBwZXIodyk7dHJ5e2lmKHUgaW5zdGFuY2VvZiBCbG9iKUQuYm9keU1vZGVsU3RhdGVCbG9iVmFsPXU7ZWxzZSBpZih1IT1udWxsKUQucGJtSWQ9dTtlbHNlIGlmKF8hPW51bGwpe2NvbnN0IFI9bmV3IGsuUlJCbGVuZGVkSGVhZEF2YXRhcldyYXBwZXIodyk7dHJ5e1IudmlzdWFsUmVwcmVzZW50YXRpb25CbG9iVmFsPV8sYXdhaXQgUi5leHRyYWN0VmlzdWFsUmVwcmVzZW50YXRpb25EYXRhKCksRC5ib2R5TW9kZWxTdGF0ZUJsb2JWYWw9Ui5ib2R5TW9kZWxTdGF0ZUJsb2JWYWx9ZmluYWxseXtSLmRlbGV0ZSgpfX1yZXR1cm4gbyE9PW51bGwmJihELmNvbmZpZ0Jsb2JWYWw9byksWy4uLmF3YWl0IEQuZ2V0SW5wdXRNZWFzdXJlbWVudHMoKV19ZmluYWxseXtELmRlbGV0ZSgpfX1hc3luYyBmdW5jdGlvbiBjYSh3LHUpe2xldCBvPWF3YWl0IE4oKTtjb25zdCBfPW5ldyBvLlJSQXZhdGFyQ3JlYXRvcldyYXBwZXIodyk7dHJ5e3UuYm9keW1vZGVsIGluc3RhbmNlb2YgQmxvYj9fLmJvZHlNb2RlbFN0YXRlQmxvYlZhbD11LmJvZHltb2RlbDpfLnBibUlkPXUuYm9keW1vZGVsLHUuY29uZmlnIT09bnVsbCYmKF8uY29uZmlnQmxvYlZhbD11LmNvbmZpZyksdS5hcHBlYXJhbmNlTW9kZWwhPT1udWxsJiYoXy5hcHBlYXJhbmNlTW9kZWxCbG9iVmFsPXUuYXBwZWFyYW5jZU1vZGVsKSx1LmN1c3RvbVNoYXBlIT09bnVsbCYmKF8uY3VzdG9tU2hhcGVCbG9iVmFsPXUuY3VzdG9tU2hhcGUpLF8uYmFzZVNoYXBlVHlwZT11LmJhc2VTaGFwZVR5cGUsXy5tZWFzdXJlbWVudFRhcmdldHM9dS5tZWFzdXJlbWVudFRhcmdldHMsdS5wb3NlIT09bnVsbD8oXy5wb3NlQmxvYlZhbD11LnBvc2UsXy5wb3NlVHlwZT11LnBvc2VUeXBlKTpfLnBvc2VUeXBlPSIiLF8ucmVzcG9uc2VNZXNoRm9ybWF0PXUucmVzcG9uc2VNZXNoRm9ybWF0LF8ubGVhcm5pbmdSYXRlPXUubGVhcm5pbmdSYXRlLF8ubWF4SXRlcmF0aW9ucz11Lm1heEl0ZXJhdGlvbnMsXy5mYWN0b3JUaHJlc2hvbGQ9dS5mYWN0b3JUaHJlc2hvbGQsYXdhaXQgXy5jcmVhdGVNYW5uZXF1aW4oKTtsZXQgaz1udWxsLEQ9bnVsbCxSPW51bGw7cmV0dXJuIF8ucmVzdWx0TW9kZWwhPT1udWxsJiYoaz1fLnJlc3VsdE1vZGVsKSxfLnJlc3VsdFN0YXRlIT09bnVsbCYmKEQ9Xy5yZXN1bHRTdGF0ZSksXy5yZXN1bHRWUiE9PW51bGwmJihSPV8ucmVzdWx0VlIpLHtyZXN1bHRTdGF0ZTpELHJlc3VsdE1vZGVsOmsscmVzdWx0VlI6Un19ZmluYWxseXtfLmRlbGV0ZSgpfX1hc3luYyBmdW5jdGlvbiB1YSh3LHUpe2xldCBvPWF3YWl0IE4oKTtjb25zdCBfPW5ldyBvLlJSSW50ZXJhY3RpdmVBdmF0YXJFZGl0aW5nV3JhcHBlcih3KTt0cnl7aWYoXy5lZGl0aW5nSW5mb0Jsb2JWYWw9dS5lZGl0aW5nSW5mbyx1LmJvZHltb2RlbCBpbnN0YW5jZW9mIEJsb2I/Xy5ib2R5TW9kZWxTdGF0ZUJsb2JWYWw9dS5ib2R5bW9kZWw6dS5ib2R5bW9kZWwhPW51bGwmJihfLnBibUlkPXUuYm9keW1vZGVsKSxfLnZpc3VhbFJlcHJlc2VudGF0aW9uQmxvYlZhbD11LnZpc3VhbFJlcHJlc2VudGF0aW9uLF8uYXBwZWFyYW5jZU1vZGVsQmxvYlZhbD11LmFwcGVhcmFuY2VNb2RlbCx1Lm1vcnBoRmFjdG9yT3ZlcnJpZGVzIT1udWxsKXtjb25zdCBrPW5ldyBBcnJheTt1Lm1vcnBoRmFjdG9yT3ZlcnJpZGVzLmZvckVhY2goKEQsUik9PntrLnB1c2goe2lkOlIsdmFsdWU6RH0pfSksXy5hZGFwdGVkVmlydHVhbE1vcnBoVmFsdWVzPWt9aWYoYXdhaXQgXy5pbml0QXZhdGFyRWRpdGluZygpLCEoXy5yZXN1bHRNb2RlbCBpbnN0YW5jZW9mIEJsb2IpKXRocm93IEVycm9yKCJObyByZXN1bHQgbW9kZWwhIik7cmV0dXJue3Jlc3VsdE1vZGVsOl8ucmVzdWx0TW9kZWwsaGVhZFRyYW5zZm9ybTpfLnJlc3VsdEhlYWRUcmFuc2Zvcm0/P251bGwscmVzdWx0RWRpdGluZ0luZm86Xy5yZXN1bHRFZGl0aW5nSW5mb0Jsb2JWYWw/P251bGwsbW9ycGhGYWN0b3JzSnNvbjpfLnJlc3VsdFZpcnR1YWxNb3JwaHNKc29ufX1maW5hbGx5e18uZGVsZXRlKCl9fWFzeW5jIGZ1bmN0aW9uIHZhKHcsdSl7bGV0IG89YXdhaXQgTigpO2NvbnN0IF89bmV3IG8uUlJBdmF0YXJDcmVhdG9yV3JhcHBlcih3KTt0cnl7aWYodS5ib2R5bW9kZWwgaW5zdGFuY2VvZiBCbG9iKV8uYm9keU1vZGVsU3RhdGVCbG9iVmFsPXUuYm9keW1vZGVsO2Vsc2UgaWYodS5ib2R5bW9kZWwhPW51bGwpXy5wYm1JZD11LmJvZHltb2RlbDtlbHNlIGlmKHUudmlzdWFsUmVwcmVzZW50YXRpb24hPW51bGwpe2NvbnN0IEE9bmV3IG8uUlJCbGVuZGVkSGVhZEF2YXRhcldyYXBwZXIodyk7dHJ5e0EudmlzdWFsUmVwcmVzZW50YXRpb25CbG9iVmFsPXUudmlzdWFsUmVwcmVzZW50YXRpb24sYXdhaXQgQS5leHRyYWN0VmlzdWFsUmVwcmVzZW50YXRpb25EYXRhKCksXy5ib2R5TW9kZWxTdGF0ZUJsb2JWYWw9QS5ib2R5TW9kZWxTdGF0ZUJsb2JWYWwsXy5oZWFkQWxpZ25tZW50RGF0YUJsb2JWYWw9QS5oZWFkQWxpZ25tZW50RGF0YUJsb2JWYWwsXy51dkxheW91dEJsb2JWYWw9QS51dkxheW91dEJsb2JWYWx9ZmluYWxseXtBLmRlbGV0ZSgpfX11LmNvbmZpZyE9PW51bGwmJihfLmNvbmZpZ0Jsb2JWYWw9dS5jb25maWcpLHUuYXBwZWFyYW5jZU1vZGVsIT09bnVsbCYmKF8uYXBwZWFyYW5jZU1vZGVsQmxvYlZhbD11LmFwcGVhcmFuY2VNb2RlbCksdS5jdXN0b21TaGFwZSE9PW51bGwmJihfLmN1c3RvbVNoYXBlQmxvYlZhbD11LmN1c3RvbVNoYXBlKSxfLmJhc2VTaGFwZVR5cGU9dS5iYXNlU2hhcGVUeXBlLF8ubWVhc3VyZW1lbnRUYXJnZXRzPXUubWVhc3VyZW1lbnRUYXJnZXRzLHUucG9zZSE9PW51bGw/KF8ucG9zZUJsb2JWYWw9dS5wb3NlLF8ucG9zZVR5cGU9dS5wb3NlVHlwZSk6Xy5wb3NlVHlwZT0iIixfLnJlc3BvbnNlTWVzaEZvcm1hdD11LnJlc3BvbnNlTWVzaEZvcm1hdCxfLmxlYXJuaW5nUmF0ZT11LmxlYXJuaW5nUmF0ZSxfLm1heEl0ZXJhdGlvbnM9dS5tYXhJdGVyYXRpb25zLF8uZmFjdG9yVGhyZXNob2xkPXUuZmFjdG9yVGhyZXNob2xkLGF3YWl0IF8uY3JlYXRlTWFubmVxdWluKCk7bGV0IGs9bnVsbCxEPW51bGwsUj1udWxsLE89bnVsbDtyZXR1cm4gXy5yZXN1bHRNb2RlbCE9PW51bGwmJihrPV8ucmVzdWx0TW9kZWwpLF8ucmVzdWx0U3RhdGUhPT1udWxsJiYoRD1fLnJlc3VsdFN0YXRlKSxfLnJlc3VsdFZSIT09bnVsbCYmKFI9Xy5yZXN1bHRWUiksXy5yZXN1bHRIZWFkVHJhbnNmb3JtLmxlbmd0aCE9MCYmKE89Xy5yZXN1bHRIZWFkVHJhbnNmb3JtKSx7cmVzdWx0U3RhdGU6RCxyZXN1bHRNb2RlbDprLHJlc3VsdFZSOlIsaGVhZFRyYW5zZm9ybTpPfX1maW5hbGx5e18uZGVsZXRlKCl9fWFzeW5jIGZ1bmN0aW9uIHlhKHcsdSl7bGV0IG89YXdhaXQgTigpO2NvbnN0IF89bmV3IG8uUlJBdmF0YXJDb252ZXJ0ZXJXcmFwcGVyKGF3YWl0IHcpO3RyeXtjb25zdCBrPXUubWFubmVxdWluUmVuZGVyaW5nO3UuY29udmVyc2lvbkNvbmZpZyBpbnN0YW5jZW9mIEJsb2ImJihfLmNvbnZlcnNpb25Db25maWdCbG9iVmFsPXUuY29udmVyc2lvbkNvbmZpZyksXy5wb3NpdGlvbj11LmNhbWVyYVByb3BlcnRpZXMucG9zaXRpb24sXy5kaXJlY3Rpb249dS5jYW1lcmFQcm9wZXJ0aWVzLmRpcmVjdGlvbixfLnVwPXUuY2FtZXJhUHJvcGVydGllcy51cCxfLmZvdj11LmNhbWVyYVByb3BlcnRpZXMuZmllbGRPZlZpZXcsXy5uZWFyUGxhbmU9dS5jYW1lcmFQcm9wZXJ0aWVzLm5lYXJQbGFuZSxfLmZhclBsYW5lPXUuY2FtZXJhUHJvcGVydGllcy5mYXJQbGFuZSxfLnJldHVybk5vbk1pbmlmaWVkQXZhdGFyPXUucmV0dXJuTm9uTWluaWZpZWRBdmF0YXIsXy5yZXR1cm5UcnlPbjJERmlsZXM9dS5yZXR1cm5UcnlPbjJERmlsZXMsdS5yZXR1cm5UcnlPbjJERmlsZXMmJihfLnJlc3BvbnNlTWVzaEZvcm1hdD11LnJlc3BvbnNlTWVzaEZvcm1hdCk7bGV0IEQ7aWYodS52aXJ0dWFsTW9ycGhGYWN0b3JzJiYoRD1uZXcgQXJyYXksdS52aXJ0dWFsTW9ycGhGYWN0b3JzLmZvckVhY2goKE8sQSk9PntELnB1c2goe2lkOkEsdmFsdWU6T30pfSkpLHUuYm9keU1vZGVsU3RhdGVCbG9iIT1udWxsKXtjb25zdCBPPXUuYm9keU1vZGVsU3RhdGVCbG9iO2F3YWl0IF8uY29udmVydFRvMkQoTyxrLHUuZWRpdGluZ0luZm8sRCl9ZWxzZXtjb25zdCBPPXUudmlzdWFsUmVwcmVzZW50YXRpb25CbG9iLEE9dS5oZWFkTWVzaEJsb2IsUD11LmZhY2VNZXNoQmxvYjthd2FpdCBfLmNvbnZlcnRIZWFkQXZhdGFyVG8yRChPLEEsUCxrLHUuZWRpdGluZ0luZm8sRCl9Y29uc3QgUj1bXTtyZXR1cm4gdS5yZXR1cm5Ob25NaW5pZmllZEF2YXRhciYmUi5wdXNoKHtrZXk6ImF2YXRhciIsYmxvYjpfLnJlc3VsdEF2YXRhcn0pLHUucmV0dXJuVHJ5T24yREZpbGVzJiYoUi5wdXNoKHtrZXk6ImRpZmZ1c2VUZXh0dXJlIixibG9iOl8ucmVzdWx0RGlmZnVzZVRleHR1cmV9KSxSLnB1c2goe2tleToib3BhY2l0eVRleHR1cmUiLGJsb2I6Xy5yZXN1bHRPcGFjaXR5VGV4dHVyZX0pLFIucHVzaCh7a2V5OiJiYWNrc2lkZVRleHR1cmUiLGJsb2I6Xy5yZXN1bHRCYWNrc2lkZVRleHR1cmV9KSxSLnB1c2goe2tleToiYXZhdGFyTWluaWZpZWQiLGJsb2I6Xy5yZXN1bHRBdmF0YXJNaW5pZmllZH0pLFIucHVzaCh7a2V5OiJ1cHNhbXBsZWRNZXNoIixibG9iOl8ucmVzdWx0VXBzYW1wbGVkTWVzaH0pKSxSfWZpbmFsbHl7Xy5kZWxldGUoKX19dmFyIHVpPW51bGw7c2VsZi5vbm1lc3NhZ2U9YXN5bmMgdz0+e3RyeXtpZihjb25zb2xlLmxvZygid29ya2VyIHByb2Nlc3NlcyBtZXNzYWdlIHdpdGggY29tbWFuZCAiK3cuZGF0YS5jb21tYW5kKSx3LmRhdGEuY29tbWFuZD09Ry5TZXRXYXNtUGF0aCl7Y29uc3QgdT13LmRhdGEucGFyYW07ZWEodSksc2VsZi5wb3N0TWVzc2FnZSgiZG9uZSIpfWVsc2UgaWYody5kYXRhLmNvbW1hbmQ9PUcuU2V0UGJtQmxvYnMpe2NvbnN0IHU9dy5kYXRhLnBhcmFtO3VpPW9hKGFzeW5jKCk9PnUuZmVtYWxlQmxvYixhc3luYygpPT51Lm1hbGVCbG9iKSxzZWxmLnBvc3RNZXNzYWdlKCJkb25lIil9ZWxzZSBpZih3LmRhdGEuY29tbWFuZD09Ry5Eb1RyeU9uKXtjb25zdCB1PXcuZGF0YS5wYXJhbSxvPWF3YWl0IHRhKHUuYXZhdGFyQmxvYix1Lmdhcm1lbnRCbG9icyxudWxsLHUuZG9Ta2lubmluZyx1LmNvbXB1dGVTaGFkb3dzLHUucmV0dXJuR2FybWVudE1lc2hWZXJ0ZXhCdWZmZXJPbmx5KTtzZWxmLnBvc3RNZXNzYWdlKG8pfWVsc2UgaWYody5kYXRhLmNvbW1hbmQ9PUcuQ29tcHV0ZUZpdCl7Y29uc3QgdT13LmRhdGEucGFyYW0sbz1hd2FpdCBhYSh1LmF2YXRhckJsb2IsdS5nYXJtZW50QmxvYik7c2VsZi5wb3N0TWVzc2FnZShvKX1lbHNlIGlmKHcuZGF0YS5jb21tYW5kPT1HLlRyeU9uRml0dGVkR2FybWVudHMpe2NvbnN0IHU9dy5kYXRhLnBhcmFtLG89YXdhaXQgbmEodS5hdmF0YXJCbG9iLHUuZ2FybWVudEJsb2JzLHUuZml0dGVkR2FybWVudERhdGEsdS5kb1NraW5uaW5nLHUuY29tcHV0ZVNoYWRvd3MsdS5yZXR1cm5HYXJtZW50TWVzaFZlcnRleEJ1ZmZlck9ubHkpO3NlbGYucG9zdE1lc3NhZ2Uobyl9ZWxzZSBpZih3LmRhdGEuY29tbWFuZD09Ry5Db21wdXRlUmlnaWRGaXR0ZWRHYXJtZW50cyl7Y29uc3QgdT13LmRhdGEucGFyYW0sbz1hd2FpdCBsYSh1LmF2YXRhckJsb2IsdS5nYXJtZW50QmxvYnMsdS5kb1NraW5uaW5nKTtzZWxmLnBvc3RNZXNzYWdlKG8pfWVsc2UgaWYody5kYXRhLmNvbW1hbmQ9PUcuR2V0R2FybWVudDJEU2l6ZXMpe2NvbnN0IHU9dy5kYXRhLnBhcmFtLG89YXdhaXQgc2EodS5nYXJtZW50QmxvYix1LnNpemVUYWJsZUNyZWF0aW9uQ29uZmlnLHUuZml0TW9kZWxzKTtzZWxmLnBvc3RNZXNzYWdlKG8pfWVsc2UgaWYody5kYXRhLmNvbW1hbmQ9PUcuR2V0QXZhdGFyQ3JlYXRpb25JbnB1dE1lYXN1cmVtZW50cyl7Y29uc3QgdT13LmRhdGEucGFyYW0sbz1hd2FpdCBmYShhd2FpdCB1aSx1LmJvZHltb2RlbCx1LmNvbmZpZyx1LnZpc3VhbFJlcHJlc2VudGF0aW9uKTtzZWxmLnBvc3RNZXNzYWdlKG8pfWVsc2UgaWYody5kYXRhLmNvbW1hbmQ9PUcuUmVjb21tZW5kU2l6ZSl7Y29uc3QgdT1hd2FpdCBkYShhd2FpdCB1aSx3LmRhdGEucGFyYW0pO3NlbGYucG9zdE1lc3NhZ2UodSl9ZWxzZSBpZih3LmRhdGEuY29tbWFuZD09Ry5DcmVhdGVNYW5uZXF1aW4pe2NvbnN0IHU9YXdhaXQgY2EoYXdhaXQgdWksdy5kYXRhLnBhcmFtKTtzZWxmLnBvc3RNZXNzYWdlKHUpfWVsc2UgaWYody5kYXRhLmNvbW1hbmQ9PUcuRWRpdEF2YXRhcil7Y29uc3QgdT1hd2FpdCB2YShhd2FpdCB1aSx3LmRhdGEucGFyYW0pO3NlbGYucG9zdE1lc3NhZ2UodSl9ZWxzZSBpZih3LmRhdGEuY29tbWFuZD09Ry5Db252ZXJ0QXZhdGFyKXtjb25zdCB1PWF3YWl0IHlhKGF3YWl0IHVpLHcuZGF0YS5wYXJhbSk7c2VsZi5wb3N0TWVzc2FnZSh1KX1lbHNlIGlmKHcuZGF0YS5jb21tYW5kPT1HLkluaXRJbnRlcmFjdGl2ZUF2YXRhckVkaXRpbmcpe2NvbnN0IHU9YXdhaXQgdWEoYXdhaXQgdWksdy5kYXRhLnBhcmFtKTtzZWxmLnBvc3RNZXNzYWdlKHUpfX1jYXRjaCh1KXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgdX0pfX19KSgpOwo=\", $t = typeof window < \"u\" && window.Blob && new Blob([atob(le)], { type: \"text/javascript;charset=utf-8\" });\nfunction qt() {\n let v;\n try {\n if (v = $t && (window.URL || window.webkitURL).createObjectURL($t), !v)\n throw \"\";\n return new Worker(v);\n } catch {\n return new Worker(\"data:application/javascript;base64,\" + le);\n } finally {\n v && (window.URL || window.webkitURL).revokeObjectURL(v);\n }\n}\nvar O = /* @__PURE__ */ ((v) => (v[v.SetWasmPath = 1] = \"SetWasmPath\", v[v.SetPbmBlobs = 2] = \"SetPbmBlobs\", v[v.DoTryOn = 3] = \"DoTryOn\", v[v.RecommendSize = 4] = \"RecommendSize\", v[v.GetGarment2DSizes = 5] = \"GetGarment2DSizes\", v[v.GetAvatarCreationInputMeasurements = 6] = \"GetAvatarCreationInputMeasurements\", v[v.CreateMannequin = 7] = \"CreateMannequin\", v[v.EditAvatar = 8] = \"EditAvatar\", v[v.ConvertAvatar = 9] = \"ConvertAvatar\", v[v.ComputeFit = 10] = \"ComputeFit\", v[v.TryOnFittedGarments = 11] = \"TryOnFittedGarments\", v[v.ComputeRigidFittedGarments = 12] = \"ComputeRigidFittedGarments\", v[v.InitInteractiveAvatarEditing = 13] = \"InitInteractiveAvatarEditing\", v[v.InteractiveAvatarEditing = 14] = \"InteractiveAvatarEditing\", v[v.ApplyInteractiveAvatarEditing = 15] = \"ApplyInteractiveAvatarEditing\", v))(O || {});\nclass B {\n constructor() {\n this._dataLength = 0, this._bufferLength = 0, this._state = new Int32Array(4), this._buffer = new ArrayBuffer(68), this._buffer8 = new Uint8Array(this._buffer, 0, 68), this._buffer32 = new Uint32Array(this._buffer, 0, 17), this.start();\n }\n static hashStr(G, s = !1) {\n return this.onePassHasher.start().appendStr(G).end(s);\n }\n static hashAsciiStr(G, s = !1) {\n return this.onePassHasher.start().appendAsciiStr(G).end(s);\n }\n static _hex(G) {\n const s = B.hexChars, c = B.hexOut;\n let b, h, Z, I;\n for (I = 0; I < 4; I += 1)\n for (h = I * 8, b = G[I], Z = 0; Z < 8; Z += 2)\n c[h + 1 + Z] = s.charAt(b & 15), b >>>= 4, c[h + 0 + Z] = s.charAt(b & 15), b >>>= 4;\n return c.join(\"\");\n }\n static _md5cycle(G, s) {\n let c = G[0], b = G[1], h = G[2], Z = G[3];\n c += (b & h | ~b & Z) + s[0] - 680876936 | 0, c = (c << 7 | c >>> 25) + b | 0, Z += (c & b | ~c & h) + s[1] - 389564586 | 0, Z = (Z << 12 | Z >>> 20) + c | 0, h += (Z & c | ~Z & b) + s[2] + 606105819 | 0, h = (h << 17 | h >>> 15) + Z | 0, b += (h & Z | ~h & c) + s[3] - 1044525330 | 0, b = (b << 22 | b >>> 10) + h | 0, c += (b & h | ~b & Z) + s[4] - 176418897 | 0, c = (c << 7 | c >>> 25) + b | 0, Z += (c & b | ~c & h) + s[5] + 1200080426 | 0, Z = (Z << 12 | Z >>> 20) + c | 0, h += (Z & c | ~Z & b) + s[6] - 1473231341 | 0, h = (h << 17 | h >>> 15) + Z | 0, b += (h & Z | ~h & c) + s[7] - 45705983 | 0, b = (b << 22 | b >>> 10) + h | 0, c += (b & h | ~b & Z) + s[8] + 1770035416 | 0, c = (c << 7 | c >>> 25) + b | 0, Z += (c & b | ~c & h) + s[9] - 1958414417 | 0, Z = (Z << 12 | Z >>> 20) + c | 0, h += (Z & c | ~Z & b) + s[10] - 42063 | 0, h = (h << 17 | h >>> 15) + Z | 0, b += (h & Z | ~h & c) + s[11] - 1990404162 | 0, b = (b << 22 | b >>> 10) + h | 0, c += (b & h | ~b & Z) + s[12] + 1804603682 | 0, c = (c << 7 | c >>> 25) + b | 0, Z += (c & b | ~c & h) + s[13] - 40341101 | 0, Z = (Z << 12 | Z >>> 20) + c | 0, h += (Z & c | ~Z & b) + s[14] - 1502002290 | 0, h = (h << 17 | h >>> 15) + Z | 0, b += (h & Z | ~h & c) + s[15] + 1236535329 | 0, b = (b << 22 | b >>> 10) + h | 0, c += (b & Z | h & ~Z) + s[1] - 165796510 | 0, c = (c << 5 | c >>> 27) + b | 0, Z += (c & h | b & ~h) + s[6] - 1069501632 | 0, Z = (Z << 9 | Z >>> 23) + c | 0, h += (Z & b | c & ~b) + s[11] + 643717713 | 0, h = (h << 14 | h >>> 18) + Z | 0, b += (h & c | Z & ~c) + s[0] - 373897302 | 0, b = (b << 20 | b >>> 12) + h | 0, c += (b & Z | h & ~Z) + s[5] - 701558691 | 0, c = (c << 5 | c >>> 27) + b | 0, Z += (c & h | b & ~h) + s[10] + 38016083 | 0, Z = (Z << 9 | Z >>> 23) + c | 0, h += (Z & b | c & ~b) + s[15] - 660478335 | 0, h = (h << 14 | h >>> 18) + Z | 0, b += (h & c | Z & ~c) + s[4] - 405537848 | 0, b = (b << 20 | b >>> 12) + h | 0, c += (b & Z | h & ~Z) + s[9] + 568446438 | 0, c = (c << 5 | c >>> 27) + b | 0, Z += (c & h | b & ~h) + s[14] - 1019803690 | 0, Z = (Z << 9 | Z >>> 23) + c | 0, h += (Z & b | c & ~b) + s[3] - 187363961 | 0, h = (h << 14 | h >>> 18) + Z | 0, b += (h & c | Z & ~c) + s[8] + 1163531501 | 0, b = (b << 20 | b >>> 12) + h | 0, c += (b & Z | h & ~Z) + s[13] - 1444681467 | 0, c = (c << 5 | c >>> 27) + b | 0, Z += (c & h | b & ~h) + s[2] - 51403784 | 0, Z = (Z << 9 | Z >>> 23) + c | 0, h += (Z & b | c & ~b) + s[7] + 1735328473 | 0, h = (h << 14 | h >>> 18) + Z | 0, b += (h & c | Z & ~c) + s[12] - 1926607734 | 0, b = (b << 20 | b >>> 12) + h | 0, c += (b ^ h ^ Z) + s[5] - 378558 | 0, c = (c << 4 | c >>> 28) + b | 0, Z += (c ^ b ^ h) + s[8] - 2022574463 | 0, Z = (Z << 11 | Z >>> 21) + c | 0, h += (Z ^ c ^ b) + s[11] + 1839030562 | 0, h = (h << 16 | h >>> 16) + Z | 0, b += (h ^ Z ^ c) + s[14] - 35309556 | 0, b = (b << 23 | b >>> 9) + h | 0, c += (b ^ h ^ Z) + s[1] - 1530992060 | 0, c = (c << 4 | c >>> 28) + b | 0, Z += (c ^ b ^ h) + s[4] + 1272893353 | 0, Z = (Z << 11 | Z >>> 21) + c | 0, h += (Z ^ c ^ b) + s[7] - 155497632 | 0, h = (h << 16 | h >>> 16) + Z | 0, b += (h ^ Z ^ c) + s[10] - 1094730640 | 0, b = (b << 23 | b >>> 9) + h | 0, c += (b ^ h ^ Z) + s[13] + 681279174 | 0, c = (c << 4 | c >>> 28) + b | 0, Z += (c ^ b ^ h) + s[0] - 358537222 | 0, Z = (Z << 11 | Z >>> 21) + c | 0, h += (Z ^ c ^ b) + s[3] - 722521979 | 0, h = (h << 16 | h >>> 16) + Z | 0, b += (h ^ Z ^ c) + s[6] + 76029189 | 0, b = (b << 23 | b >>> 9) + h | 0, c += (b ^ h ^ Z) + s[9] - 640364487 | 0, c = (c << 4 | c >>> 28) + b | 0, Z += (c ^ b ^ h) + s[12] - 421815835 | 0, Z = (Z << 11 | Z >>> 21) + c | 0, h += (Z ^ c ^ b) + s[15] + 530742520 | 0, h = (h << 16 | h >>> 16) + Z | 0, b += (h ^ Z ^ c) + s[2] - 995338651 | 0, b = (b << 23 | b >>> 9) + h | 0, c += (h ^ (b | ~Z)) + s[0] - 198630844 | 0, c = (c << 6 | c >>> 26) + b | 0, Z += (b ^ (c | ~h)) + s[7] + 1126891415 | 0, Z = (Z << 10 | Z >>> 22) + c | 0, h += (c ^ (Z | ~b)) + s[14] - 1416354905 | 0, h = (h << 15 | h >>> 17) + Z | 0, b += (Z ^ (h | ~c)) + s[5] - 57434055 | 0, b = (b << 21 | b >>> 11) + h | 0, c += (h ^ (b | ~Z)) + s[12] + 1700485571 | 0, c = (c << 6 | c >>> 26) + b | 0, Z += (b ^ (c | ~h)) + s[3] - 1894986606 | 0, Z = (Z << 10 | Z >>> 22) + c | 0, h += (c ^ (Z | ~b)) + s[10] - 1051523 | 0, h = (h << 15 | h >>> 17) + Z | 0, b += (Z ^ (h | ~c)) + s[1] - 2054922799 | 0, b = (b << 21 | b >>> 11) + h | 0, c += (h ^ (b | ~Z)) + s[8] + 1873313359 | 0, c = (c << 6 | c >>> 26) + b | 0, Z += (b ^ (c | ~h)) + s[15] - 30611744 | 0, Z = (Z << 10 | Z >>> 22) + c | 0, h += (c ^ (Z | ~b)) + s[6] - 1560198380 | 0, h = (h << 15 | h >>> 17) + Z | 0, b += (Z ^ (h | ~c)) + s[13] + 1309151649 | 0, b = (b << 21 | b >>> 11) + h | 0, c += (h ^ (b | ~Z)) + s[4] - 145523070 | 0, c = (c << 6 | c >>> 26) + b | 0, Z += (b ^ (c | ~h)) + s[11] - 1120210379 | 0, Z = (Z << 10 | Z >>> 22) + c | 0, h += (c ^ (Z | ~b)) + s[2] + 718787259 | 0, h = (h << 15 | h >>> 17) + Z | 0, b += (Z ^ (h | ~c)) + s[9] - 343485551 | 0, b = (b << 21 | b >>> 11) + h | 0, G[0] = c + G[0] | 0, G[1] = b + G[1] | 0, G[2] = h + G[2] | 0, G[3] = Z + G[3] | 0;\n }\n /**\n * Initialise buffer to be hashed\n */\n start() {\n return this._dataLength = 0, this._bufferLength = 0, this._state.set(B.stateIdentity), this;\n }\n // Char to code point to to array conversion:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n // #Example.3A_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_unknown\n /**\n * Append a UTF-8 string to the hash buffer\n * @param str String to append\n */\n appendStr(G) {\n const s = this._buffer8, c = this._buffer32;\n let b = this._bufferLength, h, Z;\n for (Z = 0; Z < G.length; Z += 1) {\n if (h = G.charCodeAt(Z), h < 128)\n s[b++] = h;\n else if (h < 2048)\n s[b++] = (h >>> 6) + 192, s[b++] = h & 63 | 128;\n else if (h < 55296 || h > 56319)\n s[b++] = (h >>> 12) + 224, s[b++] = h >>> 6 & 63 | 128, s[b++] = h & 63 | 128;\n else {\n if (h = (h - 55296) * 1024 + (G.charCodeAt(++Z) - 56320) + 65536, h > 1114111)\n throw new Error(\"Unicode standard supports code points up to U+10FFFF\");\n s[b++] = (h >>> 18) + 240, s[b++] = h >>> 12 & 63 | 128, s[b++] = h >>> 6 & 63 | 128, s[b++] = h & 63 | 128;\n }\n b >= 64 && (this._dataLength += 64, B._md5cycle(this._state, c), b -= 64, c[0] = c[16]);\n }\n return this._bufferLength = b, this;\n }\n /**\n * Append an ASCII string to the hash buffer\n * @param str String to append\n */\n appendAsciiStr(G) {\n const s = this._buffer8, c = this._buffer32;\n let b = this._bufferLength, h, Z = 0;\n for (; ; ) {\n for (h = Math.min(G.length - Z, 64 - b); h--; )\n s[b++] = G.charCodeAt(Z++);\n if (b < 64)\n break;\n this._dataLength += 64, B._md5cycle(this._state, c), b = 0;\n }\n return this._bufferLength = b, this;\n }\n /**\n * Append a byte array to the hash buffer\n * @param input array to append\n */\n appendByteArray(G) {\n const s = this._buffer8, c = this._buffer32;\n let b = this._bufferLength, h, Z = 0;\n for (; ; ) {\n for (h = Math.min(G.length - Z, 64 - b); h--; )\n s[b++] = G[Z++];\n if (b < 64)\n break;\n this._dataLength += 64, B._md5cycle(this._state, c), b = 0;\n }\n return this._bufferLength = b, this;\n }\n /**\n * Get the state of the hash buffer\n */\n getState() {\n const G = this._state;\n return {\n buffer: String.fromCharCode.apply(null, Array.from(this._buffer8)),\n buflen: this._bufferLength,\n length: this._dataLength,\n state: [G[0], G[1], G[2], G[3]]\n };\n }\n /**\n * Override the current state of the hash buffer\n * @param state New hash buffer state\n */\n setState(G) {\n const s = G.buffer, c = G.state, b = this._state;\n let h;\n for (this._dataLength = G.length, this._bufferLength = G.buflen, b[0] = c[0], b[1] = c[1], b[2] = c[2], b[3] = c[3], h = 0; h < s.length; h += 1)\n this._buffer8[h] = s.charCodeAt(h);\n }\n /**\n * Hash the current state of the hash buffer and return the result\n * @param raw Whether to return the value as an `Int32Array`\n */\n end(G = !1) {\n const s = this._bufferLength, c = this._buffer8, b = this._buffer32, h = (s >> 2) + 1;\n this._dataLength += s;\n const Z = this._dataLength * 8;\n if (c[s] = 128, c[s + 1] = c[s + 2] = c[s + 3] = 0, b.set(B.buffer32Identity.subarray(h), h), s > 55 && (B._md5cycle(this._state, b), b.set(B.buffer32Identity)), Z <= 4294967295)\n b[14] = Z;\n else {\n const I = Z.toString(16).match(/(.*?)(.{0,8})$/);\n if (I === null)\n return;\n const R = parseInt(I[2], 16), V = parseInt(I[1], 16) || 0;\n b[14] = R, b[15] = V;\n }\n return B._md5cycle(this._state, b), G ? this._state : B._hex(this._state);\n }\n}\nB.stateIdentity = new Int32Array([1732584193, -271733879, -1732584194, 271733878]);\nB.buffer32Identity = new Int32Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\nB.hexChars = \"0123456789abcdef\";\nB.hexOut = [];\nB.onePassHasher = new B();\nif (B.hashStr(\"hello\") !== \"5d41402abc4b2a76b9719d911017c592\")\n throw new Error(\"Md5 self test failed.\");\nclass xd {\n constructor() {\n this._mutex = Promise.resolve(), this._isLocked = !1;\n }\n lock() {\n let G = () => {\n };\n return this._mutex = this._mutex.then(() => new Promise(G)), new Promise((s) => {\n G = s;\n });\n }\n get isLocked() {\n return this._isLocked;\n }\n async dispatch(G) {\n const s = await this.lock();\n this._isLocked = !0;\n try {\n return await Promise.resolve(G());\n } finally {\n s(), this._isLocked = !1;\n }\n }\n}\nclass Fd {\n constructor() {\n this._mutex = new xd(), this._worker = new qt(), this._tryOnPool = [], this._tryOnPoolInUse = !1, this._wasmPath = \"\", this._poolAbortController = null;\n }\n callSpecificWorker(G, s, { signal: c }) {\n return new Promise((h, Z) => {\n c.aborted && (console.log(\"'callSpecificWorker': aborted at beginning\"), Z(new DOMException(\"WASM worker aborted\", \"AbortError\"))), c.addEventListener(\"abort\", () => {\n console.log(\"'callSpecificWorker': abort event\"), Z(c.reason);\n }), G.onmessage = (I) => {\n h(I.data);\n }, G.onerror = (I) => {\n console.log(\"Worker error\"), Z(I);\n }, G.onmessageerror = (I) => {\n console.log(\"Worker messageerror\"), Z(I);\n }, G.onunhandledrejection = (I) => {\n console.log(\"Worker unhandledrejection\"), Z(I);\n }, console.log(\"calling worker with command \" + s.command), G.postMessage(s);\n });\n }\n async callWorker(G) {\n return this._mutex.dispatch(async () => {\n const s = new AbortController();\n return await this.callSpecificWorker(this._worker, G, { signal: s.signal });\n });\n }\n async recommendSize(G) {\n return await this.callWorker({\n command: O.RecommendSize,\n param: G\n });\n }\n async setPbmBlobs(G, s) {\n await this.callWorker({ command: O.SetPbmBlobs, param: { femaleBlob: G, maleBlob: s } });\n }\n // This method needs to be called externally when changing the number of workers or switching to terminating workers.\n // The flag for the try-on pool being in use does not work properly if computeFit is called multiple times. If we\n // want to do so, we need to improve this protection mechanism.\n terminateTryOnWorkers() {\n if (this._tryOnPoolInUse)\n return !1;\n const G = this._tryOnPool;\n return this._tryOnPool = [], Promise.all(G.map((s) => s === null ? Promise.resolve() : s.then((c) => {\n c !== this._worker && c.terminate();\n }))).then();\n }\n async doTryOn(G, s, c, b, h, Z, I, R, V) {\n const H = Date.now();\n if (this._poolAbortController && (this._poolAbortController.abort(), this._poolAbortController = null, console.log(\"aborted previous 'doTryOn' call.\"), this.terminateTryOnWorkers()), R && V == 1 && Z === void 0)\n return await this.callWorker({ command: O.DoTryOn, param: {\n avatarBlob: G,\n garmentBlobs: s,\n doSkinning: c,\n computeShadows: b,\n returnGarmentMeshVertexBufferOnly: h\n } });\n this._poolAbortController = new AbortController();\n const N = this._poolAbortController, M = await this.computeFit(G, s, N, Z, I, R, V), A = await this.tryOnFittedGarments(G, s, M, c, b, h, N);\n if (N.signal.aborted)\n throw N.signal.reason;\n return this._poolAbortController = null, console.log(`Wasm doTryOn() took: ${Date.now() - H}`), A;\n }\n async computeFit(G, s, c, b, h, Z, I) {\n if (c.signal.aborted)\n throw c.signal.reason;\n c.signal.addEventListener(\"abort\", () => {\n }), I = I ?? 4, h = h ?? !1, Z = Z ?? !0;\n let R = \"\";\n if (b) {\n const N = new B(), M = await G.arrayBuffer();\n N.appendByteArray(new Uint8Array(M)), R = N.end(!1);\n }\n let V = 0;\n const H = h ? [] : this._tryOnPool;\n this._tryOnPoolInUse = !0;\n try {\n for (Z && H.length == 0 && this._worker !== null && H.push(Promise.resolve(this._worker)); H.length < I; )\n H.push(null);\n const N = s.map((A, ei) => A.arrayBuffer().then((ii) => {\n let z = \"\";\n if (b) {\n const Q = new B();\n Q.appendByteArray(new Uint8Array(ii)), z = Q.end(!1);\n }\n const $ = () => {\n if (c.signal.aborted)\n throw c.signal.reason;\n const Q = V % I;\n if (V++, H[Q] === null) {\n if (c.signal.aborted)\n throw c.signal.reason;\n H[Q] = new Promise((j) => {\n const ai = new qt();\n this.callSpecificWorker(ai, { command: O.SetWasmPath, param: this._wasmPath }, { signal: c.signal }).then(() => j(ai)).catch((U) => {\n console.log(\"failed to set WASM path for worker.\"), j(ai);\n });\n });\n }\n const E = H[Q], J = E.then((j) => j !== this._worker ? this.callSpecificWorker(j, { command: O.ComputeFit, param: { avatarBlob: G, garmentBlob: A } }, { signal: c.signal }) : this.callWorker({ command: O.ComputeFit, param: { avatarBlob: G, garmentBlob: A } }));\n return H[Q] = J.then(() => E), b && J.then((j) => {\n b.set(z + R, j);\n }).catch((j) => {\n if (!(j instanceof Error) || j.name !== \"AbortError\")\n throw j;\n }), J;\n };\n return b ? b.get(z + R).then((Q) => Q ? Promise.resolve(Q) : $()) : $();\n }));\n return await Promise.all(N);\n } finally {\n if (this._tryOnPoolInUse = !1, h) {\n for (const N of H)\n if (N !== null) {\n const M = await N;\n M != this._worker && M.terminate();\n }\n }\n }\n }\n async tryOnFittedGarments(G, s, c, b, h, Z, I) {\n if (I.signal.aborted)\n throw I.signal.reason;\n return await this.callWorker({ command: O.TryOnFittedGarments, param: {\n avatarBlob: G,\n garmentBlobs: s,\n fittedGarmentData: c,\n doSkinning: b,\n computeShadows: h,\n returnGarmentMeshVertexBufferOnly: Z\n } });\n }\n async computeRigidFittedGarments(G, s, c) {\n return await this.callWorker({ command: O.ComputeRigidFittedGarments, param: {\n avatarBlob: G,\n garmentBlobs: s,\n doSkinning: c\n } });\n }\n async getGarment2DSizes(G, s, c) {\n return await this.callWorker({ command: O.GetGarment2DSizes, param: {\n garmentBlob: G,\n sizeTableCreationConfig: s,\n fitModels: c\n } });\n }\n async getAvatarCreationInputMeasurements(G, s, c) {\n return await this.callWorker({ command: O.GetAvatarCreationInputMeasurements, param: { bodymodel: G, config: s, visualRepresentation: c } });\n }\n async createMannequin(G) {\n return await this.callWorker({ command: O.CreateMannequin, param: G });\n }\n async editAvatar(G) {\n return await this.callWorker({ command: O.EditAvatar, param: G });\n }\n async initInteractiveAvatarEditing(G) {\n return await this.callWorker({ command: O.InitInteractiveAvatarEditing, param: G });\n }\n async convertAvatar(G) {\n return await this.callWorker({ command: O.ConvertAvatar, param: G });\n }\n async setWasmPath(G) {\n this._wasmPath = G, await this.callWorker({ command: O.SetWasmPath, param: this._wasmPath });\n }\n convertWasmPath(G) {\n return G.replace(Xd, \"6.4.2\");\n }\n}\nconst Pd = \"6.4.2\";\nexport {\n Fd as CoreWorkerProxy,\n Wd as RigidFittingResult,\n ie as TryOnResult,\n Pd as VERSION,\n Xd as VERSION_INDICATOR_STRING,\n kd as computeFit,\n Vd as computeRigidFittedGarments,\n Td as convertAvatar,\n Hd as createMannequin,\n Kd as createProvider,\n vd as doTryOn,\n fd as doTryOnWithFittedGarments,\n gd as editAvatar,\n Cd as getAvatarCreationInputMeasurements,\n Id as getGarment2DSizes,\n Rd as recommendSize,\n Yd as setWasmPath\n};\n","const e=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,t=Object.keys,n=Array.isArray;function r(e,n){return\"object\"!=typeof n||t(n).forEach((function(t){e[t]=n[t]})),e}\"undefined\"==typeof Promise||e.Promise||(e.Promise=Promise);const s=Object.getPrototypeOf,i={}.hasOwnProperty;function o(e,t){return i.call(e,t)}function a(e,n){\"function\"==typeof n&&(n=n(s(e))),(\"undefined\"==typeof Reflect?t:Reflect.ownKeys)(n).forEach((t=>{l(e,t,n[t])}))}const u=Object.defineProperty;function l(e,t,n,s){u(e,t,r(n&&o(n,\"get\")&&\"function\"==typeof n.get?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},s))}function c(e){return{from:function(t){return e.prototype=Object.create(t.prototype),l(e.prototype,\"constructor\",e),{extend:a.bind(null,e.prototype)}}}}const h=Object.getOwnPropertyDescriptor;function d(e,t){let n;return h(e,t)||(n=s(e))&&d(n,t)}const f=[].slice;function p(e,t,n){return f.call(e,t,n)}function y(e,t){return t(e)}function m(e){if(!e)throw new Error(\"Assertion Failed\")}function v(t){e.setImmediate?setImmediate(t):setTimeout(t,0)}function g(e,t){return e.reduce(((e,n,r)=>{var s=t(n,r);return s&&(e[s[0]]=s[1]),e}),{})}function b(e,t){if(\"string\"==typeof t&&o(e,t))return e[t];if(!t)return e;if(\"string\"!=typeof t){for(var n=[],r=0,s=t.length;r[\"Int\",\"Uint\",\"Float\"].map((t=>t+e+\"Array\")))))).filter((t=>e[t])),P=E.map((t=>e[t]));g(E,(e=>[e,!0]));let K=null;function O(e){K=\"undefined\"!=typeof WeakMap&&new WeakMap;const t=S(e);return K=null,t}function S(e){if(!e||\"object\"!=typeof e)return e;let t=K&&K.get(e);if(t)return t;if(n(e)){t=[],K&&K.set(e,t);for(var r=0,i=e.length;r=0)t=e;else{const n=s(e);for(var a in t=n===Object.prototype?{}:Object.create(n),K&&K.set(e,t),e)o(e,a)&&(t[a]=S(e[a]))}return t}const{toString:A}={};function C(e){return A.call(e).slice(8,-1)}const j=\"undefined\"!=typeof Symbol?Symbol.iterator:\"@@iterator\",D=\"symbol\"==typeof j?function(e){var t;return null!=e&&(t=e[j])&&t.apply(e)}:function(){return null},I={};function B(e){var t,r,s,i;if(1===arguments.length){if(n(e))return e.slice();if(this===I&&\"string\"==typeof e)return[e];if(i=D(e)){for(r=[];!(s=i.next()).done;)r.push(s.value);return r}if(null==e)return[e];if(\"number\"==typeof(t=e.length)){for(r=new Array(t);t--;)r[t]=e[t];return r}return[e]}for(t=arguments.length,r=new Array(t);t--;)r[t]=arguments[t];return r}const T=\"undefined\"!=typeof Symbol?e=>\"AsyncFunction\"===e[Symbol.toStringTag]:()=>!1;var R=\"undefined\"!=typeof location&&/^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);function F(e,t){R=e,M=t}var M=()=>!0;const N=!new Error(\"\").stack;function q(){if(N)try{throw q.arguments,new Error}catch(e){return e}return new Error}function $(e,t){var n=e.stack;return n?(t=t||0,0===n.indexOf(e.name)&&(t+=(e.name+e.message).split(\"\\n\").length),n.split(\"\\n\").slice(t).filter(M).map((e=>\"\\n\"+e)).join(\"\")):\"\"}var U=[\"Unknown\",\"Constraint\",\"Data\",\"TransactionInactive\",\"ReadOnly\",\"Version\",\"NotFound\",\"InvalidState\",\"InvalidAccess\",\"Abort\",\"Timeout\",\"QuotaExceeded\",\"Syntax\",\"DataClone\"],L=[\"Modify\",\"Bulk\",\"OpenFailed\",\"VersionChange\",\"Schema\",\"Upgrade\",\"InvalidTable\",\"MissingAPI\",\"NoSuchDatabase\",\"InvalidArgument\",\"SubTransaction\",\"Unsupported\",\"Internal\",\"DatabaseClosed\",\"PrematureCommit\",\"ForeignAwait\"].concat(U),V={VersionChanged:\"Database version changed by other database connection\",DatabaseClosed:\"Database has been closed\",Abort:\"Transaction aborted\",TransactionInactive:\"Transaction has already completed or failed\",MissingAPI:\"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"};function W(e,t){this._e=q(),this.name=e,this.message=t}function Y(e,t){return e+\". Errors: \"+Object.keys(t).map((e=>t[e].toString())).filter(((e,t,n)=>n.indexOf(e)===t)).join(\"\\n\")}function z(e,t,n,r){this._e=q(),this.failures=t,this.failedKeys=r,this.successCount=n,this.message=Y(e,t)}function G(e,t){this._e=q(),this.name=\"BulkError\",this.failures=Object.keys(t).map((e=>t[e])),this.failuresByPos=t,this.message=Y(e,t)}c(W).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+\": \"+this.message+$(this._e,2))}},toString:function(){return this.name+\": \"+this.message}}),c(z).from(W),c(G).from(W);var H=L.reduce(((e,t)=>(e[t]=t+\"Error\",e)),{});const Q=W;var X=L.reduce(((e,t)=>{var n=t+\"Error\";function r(e,r){this._e=q(),this.name=n,e?\"string\"==typeof e?(this.message=`${e}${r?\"\\n \"+r:\"\"}`,this.inner=r||null):\"object\"==typeof e&&(this.message=`${e.name} ${e.message}`,this.inner=e):(this.message=V[t]||n,this.inner=null)}return c(r).from(Q),e[t]=r,e}),{});X.Syntax=SyntaxError,X.Type=TypeError,X.Range=RangeError;var J=U.reduce(((e,t)=>(e[t+\"Error\"]=X[t],e)),{});var Z=L.reduce(((e,t)=>(-1===[\"Syntax\",\"Type\",\"Range\"].indexOf(t)&&(e[t+\"Error\"]=X[t]),e)),{});function ee(){}function te(e){return e}function ne(e,t){return null==e||e===te?t:function(n){return t(e(n))}}function re(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function se(e,t){return e===ee?t:function(){var n=e.apply(this,arguments);void 0!==n&&(arguments[0]=n);var r=this.onsuccess,s=this.onerror;this.onsuccess=null,this.onerror=null;var i=t.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?re(r,this.onsuccess):r),s&&(this.onerror=this.onerror?re(s,this.onerror):s),void 0!==i?i:n}}function ie(e,t){return e===ee?t:function(){e.apply(this,arguments);var n=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,t.apply(this,arguments),n&&(this.onsuccess=this.onsuccess?re(n,this.onsuccess):n),r&&(this.onerror=this.onerror?re(r,this.onerror):r)}}function oe(e,t){return e===ee?t:function(n){var s=e.apply(this,arguments);r(n,s);var i=this.onsuccess,o=this.onerror;this.onsuccess=null,this.onerror=null;var a=t.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?re(i,this.onsuccess):i),o&&(this.onerror=this.onerror?re(o,this.onerror):o),void 0===s?void 0===a?void 0:a:r(s,a)}}function ae(e,t){return e===ee?t:function(){return!1!==t.apply(this,arguments)&&e.apply(this,arguments)}}function ue(e,t){return e===ee?t:function(){var n=e.apply(this,arguments);if(n&&\"function\"==typeof n.then){for(var r=this,s=arguments.length,i=new Array(s);s--;)i[s]=arguments[s];return n.then((function(){return t.apply(r,i)}))}return t.apply(this,arguments)}}Z.ModifyError=z,Z.DexieError=W,Z.BulkError=G;var le={};const ce=100,[he,de,fe]=\"undefined\"==typeof Promise?[]:(()=>{let e=Promise.resolve();if(\"undefined\"==typeof crypto||!crypto.subtle)return[e,s(e),e];const t=crypto.subtle.digest(\"SHA-512\",new Uint8Array([0]));return[t,s(t),e]})(),pe=de&&de.then,ye=he&&he.constructor,me=!!fe;var ve=!1,ge=fe?()=>{fe.then($e)}:e.setImmediate?setImmediate.bind(null,$e):e.MutationObserver?()=>{var e=document.createElement(\"div\");new MutationObserver((()=>{$e(),e=null})).observe(e,{attributes:!0}),e.setAttribute(\"i\",\"1\")}:()=>{setTimeout($e,0)},be=function(e,t){Se.push([e,t]),we&&(ge(),we=!1)},_e=!0,we=!0,xe=[],ke=[],Ee=null,Pe=te,Ke={id:\"global\",global:!0,ref:0,unhandleds:[],onunhandled:dt,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach((e=>{try{dt(e[0],e[1])}catch(e){}}))}},Oe=Ke,Se=[],Ae=0,Ce=[];function je(e){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");this._listeners=[],this.onuncatched=ee,this._lib=!1;var t=this._PSD=Oe;if(R&&(this._stackHolder=q(),this._prev=null,this._numPrev=0),\"function\"!=typeof e){if(e!==le)throw new TypeError(\"Not a function\");return this._state=arguments[1],this._value=arguments[2],void(!1===this._state&&Te(this,this._value))}this._state=null,this._value=null,++t.ref,Be(this,e)}const De={get:function(){var e=Oe,t=Xe;function n(n,r){var s=!e.global&&(e!==Oe||t!==Xe);const i=s&&!tt();var o=new je(((t,o)=>{Fe(this,new Ie(lt(n,e,s,i),lt(r,e,s,i),t,o,e))}));return R&&qe(o,this),o}return n.prototype=le,n},set:function(e){l(this,\"then\",e&&e.prototype===le?De:{get:function(){return e},set:De.set})}};function Ie(e,t,n,r,s){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.resolve=n,this.reject=r,this.psd=s}function Be(e,t){try{t((t=>{if(null===e._state){if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");var n=e._lib&&Ue();t&&\"function\"==typeof t.then?Be(e,((e,n)=>{t instanceof je?t._then(e,n):t.then(e,n)})):(e._state=!0,e._value=t,Re(e)),n&&Le()}}),Te.bind(null,e))}catch(t){Te(e,t)}}function Te(e,t){if(ke.push(t),null===e._state){var n=e._lib&&Ue();t=Pe(t),e._state=!1,e._value=t,R&&null!==t&&\"object\"==typeof t&&!t._promise&&function(e,t,n){try{e.apply(null,n)}catch(e){t&&t(e)}}((()=>{var n=d(t,\"stack\");t._promise=e,l(t,\"stack\",{get:()=>ve?n&&(n.get?n.get.apply(t):n.value):e.stack})})),function(e){xe.some((t=>t._value===e._value))||xe.push(e)}(e),Re(e),n&&Le()}}function Re(e){var t=e._listeners;e._listeners=[];for(var n=0,r=t.length;n{0==--Ae&&Ve()}),[]))}function Fe(e,t){if(null!==e._state){var n=e._state?t.onFulfilled:t.onRejected;if(null===n)return(e._state?t.resolve:t.reject)(e._value);++t.psd.ref,++Ae,be(Me,[n,e,t])}else e._listeners.push(t)}function Me(e,t,n){try{Ee=t;var r,s=t._value;t._state?r=e(s):(ke.length&&(ke=[]),r=e(s),-1===ke.indexOf(s)&&function(e){var t=xe.length;for(;t;)if(xe[--t]._value===e._value)return void xe.splice(t,1)}(t)),n.resolve(r)}catch(e){n.reject(e)}finally{Ee=null,0==--Ae&&Ve(),--n.psd.ref||n.psd.finalize()}}function Ne(e,t,n){if(t.length===n)return t;var r=\"\";if(!1===e._state){var s,i,o=e._value;null!=o?(s=o.name||\"Error\",i=o.message||o,r=$(o,0)):(s=o,i=\"\"),t.push(s+(i?\": \"+i:\"\")+r)}return R&&((r=$(e._stackHolder,2))&&-1===t.indexOf(r)&&t.push(r),e._prev&&Ne(e._prev,t,n)),t}function qe(e,t){var n=t?t._numPrev+1:0;n<100&&(e._prev=t,e._numPrev=n)}function $e(){Ue()&&Le()}function Ue(){var e=_e;return _e=!1,we=!1,e}function Le(){var e,t,n;do{for(;Se.length>0;)for(e=Se,Se=[],n=e.length,t=0;t0);_e=!0,we=!0}function Ve(){var e=xe;xe=[],e.forEach((e=>{e._PSD.onunhandled.call(null,e._value,e)}));for(var t=Ce.slice(0),n=t.length;n;)t[--n]()}function We(e){return new je(le,!1,e)}function Ye(e,t){var n=Oe;return function(){var r=Ue(),s=Oe;try{return it(n,!0),e.apply(this,arguments)}catch(e){t&&t(e)}finally{it(s,!1),r&&Le()}}}a(je.prototype,{then:De,_then:function(e,t){Fe(this,new Ie(null,null,e,t,Oe))},catch:function(e){if(1===arguments.length)return this.then(null,e);var t=arguments[0],n=arguments[1];return\"function\"==typeof t?this.then(null,(e=>e instanceof t?n(e):We(e))):this.then(null,(e=>e&&e.name===t?n(e):We(e)))},finally:function(e){return this.then((t=>(e(),t)),(t=>(e(),We(t))))},stack:{get:function(){if(this._stack)return this._stack;try{ve=!0;var e=Ne(this,[],20).join(\"\\nFrom previous: \");return null!==this._state&&(this._stack=e),e}finally{ve=!1}}},timeout:function(e,t){return e<1/0?new je(((n,r)=>{var s=setTimeout((()=>r(new X.Timeout(t))),e);this.then(n,r).finally(clearTimeout.bind(null,s))})):this}}),\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&l(je.prototype,Symbol.toStringTag,\"Dexie.Promise\"),Ke.env=ot(),a(je,{all:function(){var e=B.apply(null,arguments).map(nt);return new je((function(t,n){0===e.length&&t([]);var r=e.length;e.forEach(((s,i)=>je.resolve(s).then((n=>{e[i]=n,--r||t(e)}),n)))}))},resolve:e=>{if(e instanceof je)return e;if(e&&\"function\"==typeof e.then)return new je(((t,n)=>{e.then(t,n)}));var t=new je(le,!0,e);return qe(t,Ee),t},reject:We,race:function(){var e=B.apply(null,arguments).map(nt);return new je(((t,n)=>{e.map((e=>je.resolve(e).then(t,n)))}))},PSD:{get:()=>Oe,set:e=>Oe=e},totalEchoes:{get:()=>Xe},newPSD:Ze,usePSD:at,scheduler:{get:()=>be,set:e=>{be=e}},rejectionMapper:{get:()=>Pe,set:e=>{Pe=e}},follow:(e,t)=>new je(((n,r)=>Ze(((t,n)=>{var r=Oe;r.unhandleds=[],r.onunhandled=n,r.finalize=re((function(){!function(e){function t(){e(),Ce.splice(Ce.indexOf(t),1)}Ce.push(t),++Ae,be((()=>{0==--Ae&&Ve()}),[])}((()=>{0===this.unhandleds.length?t():n(this.unhandleds[0])}))}),r.finalize),e()}),t,n,r)))}),ye&&(ye.allSettled&&l(je,\"allSettled\",(function(){const e=B.apply(null,arguments).map(nt);return new je((t=>{0===e.length&&t([]);let n=e.length;const r=new Array(n);e.forEach(((e,s)=>je.resolve(e).then((e=>r[s]={status:\"fulfilled\",value:e}),(e=>r[s]={status:\"rejected\",reason:e})).then((()=>--n||t(r)))))}))})),ye.any&&\"undefined\"!=typeof AggregateError&&l(je,\"any\",(function(){const e=B.apply(null,arguments).map(nt);return new je(((t,n)=>{0===e.length&&n(new AggregateError([]));let r=e.length;const s=new Array(r);e.forEach(((e,i)=>je.resolve(e).then((e=>t(e)),(e=>{s[i]=e,--r||n(new AggregateError(s))}))))}))})));const ze={awaits:0,echoes:0,id:0};var Ge=0,He=[],Qe=0,Xe=0,Je=0;function Ze(e,t,n,s){var i=Oe,o=Object.create(i);o.parent=i,o.ref=0,o.global=!1,o.id=++Je;var a=Ke.env;o.env=me?{Promise:je,PromiseProp:{value:je,configurable:!0,writable:!0},all:je.all,race:je.race,allSettled:je.allSettled,any:je.any,resolve:je.resolve,reject:je.reject,nthen:ct(a.nthen,o),gthen:ct(a.gthen,o)}:{},t&&r(o,t),++i.ref,o.finalize=function(){--this.parent.ref||this.parent.finalize()};var u=at(o,e,n,s);return 0===o.ref&&o.finalize(),u}function et(){return ze.id||(ze.id=++Ge),++ze.awaits,ze.echoes+=ce,ze.id}function tt(){return!!ze.awaits&&(0==--ze.awaits&&(ze.id=0),ze.echoes=ze.awaits*ce,!0)}function nt(e){return ze.echoes&&e&&e.constructor===ye?(et(),e.then((e=>(tt(),e)),(e=>(tt(),ft(e))))):e}function rt(e){++Xe,ze.echoes&&0!=--ze.echoes||(ze.echoes=ze.id=0),He.push(Oe),it(e,!0)}function st(){var e=He[He.length-1];He.pop(),it(e,!1)}function it(t,n){var r=Oe;if((n?!ze.echoes||Qe++&&t===Oe:!Qe||--Qe&&t===Oe)||ut(n?rt.bind(null,t):st),t!==Oe&&(Oe=t,r===Ke&&(Ke.env=ot()),me)){var s=Ke.env.Promise,i=t.env;de.then=i.nthen,s.prototype.then=i.gthen,(r.global||t.global)&&(Object.defineProperty(e,\"Promise\",i.PromiseProp),s.all=i.all,s.race=i.race,s.resolve=i.resolve,s.reject=i.reject,i.allSettled&&(s.allSettled=i.allSettled),i.any&&(s.any=i.any))}}function ot(){var t=e.Promise;return me?{Promise:t,PromiseProp:Object.getOwnPropertyDescriptor(e,\"Promise\"),all:t.all,race:t.race,allSettled:t.allSettled,any:t.any,resolve:t.resolve,reject:t.reject,nthen:de.then,gthen:t.prototype.then}:{}}function at(e,t,n,r,s){var i=Oe;try{return it(e,!0),t(n,r,s)}finally{it(i,!1)}}function ut(e){pe.call(he,e)}function lt(e,t,n,r){return\"function\"!=typeof e?e:function(){var s=Oe;n&&et(),it(t,!0);try{return e.apply(this,arguments)}finally{it(s,!1),r&&ut(tt)}}}function ct(e,t){return function(n,r){return e.call(this,lt(n,t),lt(r,t))}}-1===(\"\"+pe).indexOf(\"[native code]\")&&(et=tt=ee);const ht=\"unhandledrejection\";function dt(t,n){var s;try{s=n.onuncatched(t)}catch(e){}if(!1!==s)try{var i,o={promise:n,reason:t};if(e.document&&document.createEvent?((i=document.createEvent(\"Event\")).initEvent(ht,!0,!0),r(i,o)):e.CustomEvent&&r(i=new CustomEvent(ht,{detail:o}),o),i&&e.dispatchEvent&&(dispatchEvent(i),!e.PromiseRejectionEvent&&e.onunhandledrejection))try{e.onunhandledrejection(i)}catch(e){}R&&i&&!i.defaultPrevented&&console.warn(`Unhandled rejection: ${t.stack||t}`)}catch(e){}}var ft=je.reject;function pt(e,t,n,r){if(e.idbdb&&(e._state.openComplete||Oe.letThrough||e._vip)){var s=e._createTransaction(t,n,e._dbSchema);try{s.create(),e._state.PR1398_maxLoop=3}catch(s){return s.name===H.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(\"Dexie: Need to reopen db\"),e._close(),e.open().then((()=>pt(e,t,n,r)))):ft(s)}return s._promise(t,((e,t)=>Ze((()=>(Oe.trans=s,r(e,t,s)))))).then((e=>s._completion.then((()=>e))))}if(e._state.openComplete)return ft(new X.DatabaseClosed(e._state.dbOpenError));if(!e._state.isBeingOpened){if(!e._options.autoOpen)return ft(new X.DatabaseClosed);e.open().catch(ee)}return e._state.dbReadyPromise.then((()=>pt(e,t,n,r)))}const yt=\"3.2.7\",mt=String.fromCharCode(65535),vt=-1/0,gt=\"Invalid key provided. Keys must be of type string, number, Date or Array.\",bt=\"String expected.\",_t=[],wt=\"undefined\"!=typeof navigator&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),xt=wt,kt=wt,Et=e=>!/(dexie\\.js|dexie\\.min\\.js)/.test(e),Pt=\"__dbnames\",Kt=\"readonly\",Ot=\"readwrite\";function St(e,t){return e?t?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:e:t}const At={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function Ct(e){return\"string\"!=typeof e||/\\./.test(e)?e=>e:t=>(void 0===t[e]&&e in t&&delete(t=O(t))[e],t)}class jt{_trans(e,t,n){const r=this._tx||Oe.trans,s=this.name;function i(e,n,r){if(!r.schema[s])throw new X.NotFound(\"Table \"+s+\" not part of transaction\");return t(r.idbtrans,r)}const o=Ue();try{return r&&r.db===this.db?r===Oe.trans?r._promise(e,i,n):Ze((()=>r._promise(e,i,n)),{trans:r,transless:Oe.transless||Oe}):pt(this.db,e,[this.name],i)}finally{o&&Le()}}get(e,t){return e&&e.constructor===Object?this.where(e).first(t):this._trans(\"readonly\",(t=>this.core.get({trans:t,key:e}).then((e=>this.hook.reading.fire(e))))).then(t)}where(e){if(\"string\"==typeof e)return new this.db.WhereClause(this,e);if(n(e))return new this.db.WhereClause(this,`[${e.join(\"+\")}]`);const r=t(e);if(1===r.length)return this.where(r[0]).equals(e[r[0]]);const s=this.schema.indexes.concat(this.schema.primKey).filter((e=>{if(e.compound&&r.every((t=>e.keyPath.indexOf(t)>=0))){for(let t=0;te.keyPath.length-t.keyPath.length))[0];if(s&&this.db._maxKey!==mt){const t=s.keyPath.slice(0,r.length);return this.where(t).equals(t.map((t=>e[t])))}!s&&R&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${r.join(\"+\")}]`);const{idxByName:i}=this.schema,o=this.db._deps.indexedDB;function a(e,t){try{return 0===o.cmp(e,t)}catch(e){return!1}}const[u,l]=r.reduce((([t,r],s)=>{const o=i[s],u=e[s];return[t||o,t||!o?St(r,o&&o.multi?e=>{const t=b(e,s);return n(t)&&t.some((e=>a(u,e)))}:e=>a(u,b(e,s))):r]}),[null,null]);return u?this.where(u.name).equals(e[u.keyPath]).filter(l):s?this.filter(l):this.where(r).equals(\"\")}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,n(e)?`[${e.join(\"+\")}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;const t=t=>{if(!t)return t;const n=Object.create(e.prototype);for(var r in t)if(o(t,r))try{n[r]=t[r]}catch(e){}return n};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=t,this.hook(\"reading\",t),e}defineClass(){return this.mapToClass((function(e){r(this,e)}))}add(e,t){const{auto:n,keyPath:r}=this.schema.primKey;let s=e;return r&&n&&(s=Ct(r)(e)),this._trans(\"readwrite\",(e=>this.core.mutate({trans:e,type:\"add\",keys:null!=t?[t]:null,values:[s]}))).then((e=>e.numFailures?je.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{_(e,r,t)}catch(e){}return t}))}update(e,r){if(\"object\"!=typeof e||n(e))return this.where(\":id\").equals(e).modify(r);{const n=b(e,this.schema.primKey.keyPath);if(void 0===n)return ft(new X.InvalidArgument(\"Given object does not contain its primary key\"));try{\"function\"!=typeof r?t(r).forEach((t=>{_(e,t,r[t])})):r(e,{value:e,primKey:n})}catch(e){}return this.where(\":id\").equals(n).modify(r)}}put(e,t){const{auto:n,keyPath:r}=this.schema.primKey;let s=e;return r&&n&&(s=Ct(r)(e)),this._trans(\"readwrite\",(e=>this.core.mutate({trans:e,type:\"put\",values:[s],keys:null!=t?[t]:null}))).then((e=>e.numFailures?je.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{_(e,r,t)}catch(e){}return t}))}delete(e){return this._trans(\"readwrite\",(t=>this.core.mutate({trans:t,type:\"delete\",keys:[e]}))).then((e=>e.numFailures?je.reject(e.failures[0]):void 0))}clear(){return this._trans(\"readwrite\",(e=>this.core.mutate({trans:e,type:\"deleteRange\",range:At}))).then((e=>e.numFailures?je.reject(e.failures[0]):void 0))}bulkGet(e){return this._trans(\"readonly\",(t=>this.core.getMany({keys:e,trans:t}).then((e=>e.map((e=>this.hook.reading.fire(e)))))))}bulkAdd(e,t,n){const r=Array.isArray(t)?t:void 0,s=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(\"readwrite\",(t=>{const{auto:n,keyPath:i}=this.schema.primKey;if(i&&r)throw new X.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");if(r&&r.length!==e.length)throw new X.InvalidArgument(\"Arguments objects and keys must have the same length\");const o=e.length;let a=i&&n?e.map(Ct(i)):e;return this.core.mutate({trans:t,type:\"add\",keys:r,values:a,wantResults:s}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(0===e)return s?t:n;throw new G(`${this.name}.bulkAdd(): ${e} of ${o} operations failed`,r)}))}))}bulkPut(e,t,n){const r=Array.isArray(t)?t:void 0,s=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(\"readwrite\",(t=>{const{auto:n,keyPath:i}=this.schema.primKey;if(i&&r)throw new X.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");if(r&&r.length!==e.length)throw new X.InvalidArgument(\"Arguments objects and keys must have the same length\");const o=e.length;let a=i&&n?e.map(Ct(i)):e;return this.core.mutate({trans:t,type:\"put\",keys:r,values:a,wantResults:s}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(0===e)return s?t:n;throw new G(`${this.name}.bulkPut(): ${e} of ${o} operations failed`,r)}))}))}bulkDelete(e){const t=e.length;return this._trans(\"readwrite\",(t=>this.core.mutate({trans:t,type:\"delete\",keys:e}))).then((({numFailures:e,lastResult:n,failures:r})=>{if(0===e)return n;throw new G(`${this.name}.bulkDelete(): ${e} of ${t} operations failed`,r)}))}}function Dt(e){var r={},s=function(t,n){if(n){for(var s=arguments.length,i=new Array(s-1);--s;)i[s-1]=arguments[s];return r[t].subscribe.apply(null,i),e}if(\"string\"==typeof t)return r[t]};s.addEventType=a;for(var i=1,o=arguments.length;iSt(r(),t()):t,e.justLimit=n&&!r}function Ft(e,t){if(e.isPrimKey)return t.primaryKey;const n=t.getIndexByKeyPath(e.index);if(!n)throw new X.Schema(\"KeyPath \"+e.index+\" on object store \"+t.name+\" is not indexed\");return n}function Mt(e,t,n){const r=Ft(e,t.schema);return t.openCursor({trans:n,values:!e.keysOnly,reverse:\"prev\"===e.dir,unique:!!e.unique,query:{index:r,range:e.range}})}function Nt(e,t,n,r){const s=e.replayFilter?St(e.filter,e.replayFilter()):e.filter;if(e.or){const i={},a=(e,n,r)=>{if(!s||s(n,r,(e=>n.stop(e)),(e=>n.fail(e)))){var a=n.primaryKey,u=\"\"+a;\"[object ArrayBuffer]\"===u&&(u=\"\"+new Uint8Array(a)),o(i,u)||(i[u]=!0,t(e,n,r))}};return Promise.all([e.or._iterate(a,n),qt(Mt(e,r,n),e.algorithm,a,!e.keysOnly&&e.valueMapper)])}return qt(Mt(e,r,n),St(e.algorithm,s),t,!e.keysOnly&&e.valueMapper)}function qt(e,t,n,r){var s=Ye(r?(e,t,s)=>n(r(e),t,s):n);return e.then((e=>{if(e)return e.start((()=>{var n=()=>e.continue();t&&!t(e,(e=>n=e),(t=>{e.stop(t),n=ee}),(t=>{e.fail(t),n=ee}))||s(e.value,e,(e=>n=e)),n()}))}))}function $t(e,t){try{const n=Ut(e),r=Ut(t);if(n!==r)return\"Array\"===n?1:\"Array\"===r?-1:\"binary\"===n?1:\"binary\"===r?-1:\"string\"===n?1:\"string\"===r?-1:\"Date\"===n?1:\"Date\"!==r?NaN:-1;switch(n){case\"number\":case\"Date\":case\"string\":return e>t?1:eNt(t,e,n,t.table.core)))}count(e){return this._read((e=>{const t=this._ctx,n=t.table.core;if(Bt(t,!0))return n.count({trans:e,query:{index:Ft(t,n.schema),range:t.range}}).then((e=>Math.min(e,t.limit)));var r=0;return Nt(t,(()=>(++r,!1)),e,n).then((()=>r))})).then(e)}sortBy(e,t){const n=e.split(\".\").reverse(),r=n[0],s=n.length-1;function i(e,t){return t?i(e[n[t]],t-1):e[r]}var o=\"next\"===this._ctx.dir?1:-1;function a(e,t){var n=i(e,s),r=i(t,s);return nr?o:0}return this.toArray((function(e){return e.sort(a)})).then(t)}toArray(e){return this._read((e=>{var t=this._ctx;if(\"next\"===t.dir&&Bt(t,!0)&&t.limit>0){const{valueMapper:n}=t,r=Ft(t,t.table.core.schema);return t.table.core.query({trans:e,limit:t.limit,values:!0,query:{index:r,range:t.range}}).then((({result:e})=>n?e.map(n):e))}{const n=[];return Nt(t,(e=>n.push(e)),e,t.table.core).then((()=>n))}}),e)}offset(e){var t=this._ctx;return e<=0||(t.offset+=e,Bt(t)?Rt(t,(()=>{var t=e;return(e,n)=>0===t||(1===t?(--t,!1):(n((()=>{e.advance(t),t=0})),!1))})):Rt(t,(()=>{var t=e;return()=>--t<0}))),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),Rt(this._ctx,(()=>{var t=e;return function(e,n,r){return--t<=0&&n(r),t>=0}}),!0),this}until(e,t){return Tt(this._ctx,(function(n,r,s){return!e(n.value)||(r(s),t)})),this}first(e){return this.limit(1).toArray((function(e){return e[0]})).then(e)}last(e){return this.reverse().first(e)}filter(e){var t,n;return Tt(this._ctx,(function(t){return e(t.value)})),t=this._ctx,n=e,t.isMatch=St(t.isMatch,n),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=\"prev\"===this._ctx.dir?\"next\":\"prev\",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.key,n)}))}eachUniqueKey(e){return this._ctx.unique=\"unique\",this.eachKey(e)}eachPrimaryKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.primaryKey,n)}))}keys(e){var t=this._ctx;t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.key)})).then((function(){return n})).then(e)}primaryKeys(e){var t=this._ctx;if(\"next\"===t.dir&&Bt(t,!0)&&t.limit>0)return this._read((e=>{var n=Ft(t,t.table.core.schema);return t.table.core.query({trans:e,values:!1,limit:t.limit,query:{index:n,range:t.range}})})).then((({result:e})=>e)).then(e);t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.primaryKey)})).then((function(){return n})).then(e)}uniqueKeys(e){return this._ctx.unique=\"unique\",this.keys(e)}firstKey(e){return this.limit(1).keys((function(e){return e[0]})).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,t=e.index&&e.table.schema.idxByName[e.index];if(!t||!t.multi)return this;var n={};return Tt(this._ctx,(function(e){var t=e.primaryKey.toString(),r=o(n,t);return n[t]=!0,!r})),this}modify(e){var n=this._ctx;return this._write((r=>{var s;if(\"function\"==typeof e)s=e;else{var i=t(e),o=i.length;s=function(t){for(var n=!1,r=0;r{const{failures:r,numFailures:s}=n;d+=e-s;for(let e of t(r))h.push(r[e])};return this.clone().primaryKeys().then((t=>{const i=o=>{const h=Math.min(c,t.length-o);return a.getMany({trans:r,keys:t.slice(o,o+h),cache:\"immutable\"}).then((d=>{const f=[],y=[],m=u?[]:null,v=[];for(let e=0;e0&&a.mutate({trans:r,type:\"add\",values:f}).then((e=>{for(let t in e.failures)v.splice(parseInt(t),1);p(f.length,e)}))).then((()=>(y.length>0||g&&\"object\"==typeof e)&&a.mutate({trans:r,type:\"put\",keys:m,values:y,criteria:g,changeSpec:\"function\"!=typeof e&&e}).then((e=>p(y.length,e))))).then((()=>(v.length>0||g&&e===Wt)&&a.mutate({trans:r,type:\"delete\",keys:v,criteria:g}).then((e=>p(v.length,e))))).then((()=>t.length>o+h&&i(o+c)))}))};return i(0).then((()=>{if(h.length>0)throw new z(\"Error modifying one or more objects\",h,d,f);return t.length}))}))}))}delete(){var e=this._ctx,t=e.range;return Bt(e)&&(e.isPrimKey&&!kt||3===t.type)?this._write((n=>{const{primaryKey:r}=e.table.core.schema,s=t;return e.table.core.count({trans:n,query:{index:r,range:s}}).then((t=>e.table.core.mutate({trans:n,type:\"deleteRange\",range:s}).then((({failures:e,lastResult:n,results:r,numFailures:s})=>{if(s)throw new z(\"Could not delete some values\",Object.keys(e).map((t=>e[t])),t-s);return t-s}))))})):this.modify(Wt)}}const Wt=(e,t)=>t.value=null;function Yt(e,t){return et?-1:e===t?0:1}function Gt(e,t,n){var r=e instanceof en?new e.Collection(e):e;return r._ctx.error=n?new n(t):new TypeError(t),r}function Ht(e){return new e.Collection(e,(()=>Zt(\"\"))).limit(0)}function Qt(e,t,n,r,s,i){for(var o=Math.min(e.length,r.length),a=-1,u=0;u=0?e.substr(0,a)+t[a]+n.substr(a+1):null;s(e[u],l)<0&&(a=u)}return o\"string\"==typeof e)))return Gt(e,bt);function d(e){s=function(e){return\"next\"===e?e=>e.toUpperCase():e=>e.toLowerCase()}(e),i=function(e){return\"next\"===e?e=>e.toLowerCase():e=>e.toUpperCase()}(e),o=\"next\"===e?Yt:zt;var t=n.map((function(e){return{lower:i(e),upper:s(e)}})).sort((function(e,t){return o(e.lower,t.lower)}));a=t.map((function(e){return e.upper})),u=t.map((function(e){return e.lower})),l=e,c=\"next\"===e?\"\":r}d(\"next\");var f=new e.Collection(e,(()=>Jt(a[0],u[h-1]+r)));f._ondirectionchange=function(e){d(e)};var p=0;return f._addAlgorithm((function(e,n,r){var s=e.key;if(\"string\"!=typeof s)return!1;var d=i(s);if(t(d,u,p))return!0;for(var f=null,y=p;y0)&&(f=m)}return n(null!==f?function(){e.continue(f+c)}:r),!1})),f}function Jt(e,t,n,r){return{type:2,lower:e,upper:t,lowerOpen:n,upperOpen:r}}function Zt(e){return{type:1,lower:e,upper:e}}class en{get Collection(){return this._ctx.table.db.Collection}between(e,t,n,r){n=!1!==n,r=!0===r;try{return this._cmp(e,t)>0||0===this._cmp(e,t)&&(n||r)&&(!n||!r)?Ht(this):new this.Collection(this,(()=>Jt(e,t,!n,!r)))}catch(e){return Gt(this,gt)}}equals(e){return null==e?Gt(this,gt):new this.Collection(this,(()=>Zt(e)))}above(e){return null==e?Gt(this,gt):new this.Collection(this,(()=>Jt(e,void 0,!0)))}aboveOrEqual(e){return null==e?Gt(this,gt):new this.Collection(this,(()=>Jt(e,void 0,!1)))}below(e){return null==e?Gt(this,gt):new this.Collection(this,(()=>Jt(void 0,e,!1,!0)))}belowOrEqual(e){return null==e?Gt(this,gt):new this.Collection(this,(()=>Jt(void 0,e)))}startsWith(e){return\"string\"!=typeof e?Gt(this,bt):this.between(e,e+mt,!0,!0)}startsWithIgnoreCase(e){return\"\"===e?this.startsWith(e):Xt(this,((e,t)=>0===e.indexOf(t[0])),[e],mt)}equalsIgnoreCase(e){return Xt(this,((e,t)=>e===t[0]),[e],\"\")}anyOfIgnoreCase(){var e=B.apply(I,arguments);return 0===e.length?Ht(this):Xt(this,((e,t)=>-1!==t.indexOf(e)),e,\"\")}startsWithAnyOfIgnoreCase(){var e=B.apply(I,arguments);return 0===e.length?Ht(this):Xt(this,((e,t)=>t.some((t=>0===e.indexOf(t)))),e,mt)}anyOf(){const e=B.apply(I,arguments);let t=this._cmp;try{e.sort(t)}catch(e){return Gt(this,gt)}if(0===e.length)return Ht(this);const n=new this.Collection(this,(()=>Jt(e[0],e[e.length-1])));n._ondirectionchange=n=>{t=\"next\"===n?this._ascending:this._descending,e.sort(t)};let r=0;return n._addAlgorithm(((n,s,i)=>{const o=n.key;for(;t(o,e[r])>0;)if(++r,r===e.length)return s(i),!1;return 0===t(o,e[r])||(s((()=>{n.continue(e[r])})),!1)})),n}notEqual(e){return this.inAnyRange([[vt,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){const e=B.apply(I,arguments);if(0===e.length)return new this.Collection(this);try{e.sort(this._ascending)}catch(e){return Gt(this,gt)}const t=e.reduce(((e,t)=>e?e.concat([[e[e.length-1][1],t]]):[[vt,t]]),null);return t.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(t,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,t){const n=this._cmp,r=this._ascending,s=this._descending,i=this._min,o=this._max;if(0===e.length)return Ht(this);if(!e.every((e=>void 0!==e[0]&&void 0!==e[1]&&r(e[0],e[1])<=0)))return Gt(this,\"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\",X.InvalidArgument);const a=!t||!1!==t.includeLowers,u=t&&!0===t.includeUppers;let l,c=r;function h(e,t){return c(e[0],t[0])}try{l=e.reduce((function(e,t){let r=0,s=e.length;for(;r0){s[0]=i(s[0],t[0]),s[1]=o(s[1],t[1]);break}}return r===s&&e.push(t),e}),[]),l.sort(h)}catch(e){return Gt(this,gt)}let d=0;const f=u?e=>r(e,l[d][1])>0:e=>r(e,l[d][1])>=0,p=a?e=>s(e,l[d][0])>0:e=>s(e,l[d][0])>=0;let y=f;const m=new this.Collection(this,(()=>Jt(l[0][0],l[l.length-1][1],!a,!u)));return m._ondirectionchange=e=>{\"next\"===e?(y=f,c=r):(y=p,c=s),l.sort(h)},m._addAlgorithm(((e,t,n)=>{for(var s=e.key;y(s);)if(++d,d===l.length)return t(n),!1;return!!function(e){return!f(e)&&!p(e)}(s)||(0===this._cmp(s,l[d][1])||0===this._cmp(s,l[d][0])||t((()=>{c===r?e.continue(l[d][0]):e.continue(l[d][1])})),!1)})),m}startsWithAnyOf(){const e=B.apply(I,arguments);return e.every((e=>\"string\"==typeof e))?0===e.length?Ht(this):this.inAnyRange(e.map((e=>[e,e+mt]))):Gt(this,\"startsWithAnyOf() only works with strings\")}}function tn(e){return Ye((function(t){return nn(t),e(t.target.error),!1}))}function nn(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault()}const rn=\"storagemutated\",sn=\"x-storagemutated-1\",on=Dt(null,rn);class an{_lock(){return m(!Oe.global),++this._reculock,1!==this._reculock||Oe.global||(Oe.lockOwnerFor=this),this}_unlock(){if(m(!Oe.global),0==--this._reculock)for(Oe.global||(Oe.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{at(e[1],e[0])}catch(e){}}return this}_locked(){return this._reculock&&Oe.lockOwnerFor!==this}create(e){if(!this.mode)return this;const t=this.db.idbdb,n=this.db._state.dbOpenError;if(m(!this.idbtrans),!e&&!t)switch(n&&n.name){case\"DatabaseClosedError\":throw new X.DatabaseClosed(n);case\"MissingAPIError\":throw new X.MissingAPI(n.message,n);default:throw new X.OpenFailed(n)}if(!this.active)throw new X.TransactionInactive;return m(null===this._completion._state),(e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):t.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=Ye((t=>{nn(t),this._reject(e.error)})),e.onabort=Ye((t=>{nn(t),this.active&&this._reject(new X.Abort(e.error)),this.active=!1,this.on(\"abort\").fire(t)})),e.oncomplete=Ye((()=>{this.active=!1,this._resolve(),\"mutatedParts\"in e&&on.storagemutated.fire(e.mutatedParts)})),this}_promise(e,t,n){if(\"readwrite\"===e&&\"readwrite\"!==this.mode)return ft(new X.ReadOnly(\"Transaction is readonly\"));if(!this.active)return ft(new X.TransactionInactive);if(this._locked())return new je(((r,s)=>{this._blockedFuncs.push([()=>{this._promise(e,t,n).then(r,s)},Oe])}));if(n)return Ze((()=>{var e=new je(((e,n)=>{this._lock();const r=t(e,n,this);r&&r.then&&r.then(e,n)}));return e.finally((()=>this._unlock())),e._lib=!0,e}));var r=new je(((e,n)=>{var r=t(e,n,this);r&&r.then&&r.then(e,n)}));return r._lib=!0,r}_root(){return this.parent?this.parent._root():this}waitFor(e){var t=this._root();const n=je.resolve(e);if(t._waitingFor)t._waitingFor=t._waitingFor.then((()=>n));else{t._waitingFor=n,t._waitingQueue=[];var r=t.idbtrans.objectStore(t.storeNames[0]);!function e(){for(++t._spinCount;t._waitingQueue.length;)t._waitingQueue.shift()();t._waitingFor&&(r.get(-1/0).onsuccess=e)}()}var s=t._waitingFor;return new je(((e,r)=>{n.then((n=>t._waitingQueue.push(Ye(e.bind(null,n)))),(e=>t._waitingQueue.push(Ye(r.bind(null,e))))).finally((()=>{t._waitingFor===s&&(t._waitingFor=null)}))}))}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new X.Abort))}table(e){const t=this._memoizedTables||(this._memoizedTables={});if(o(t,e))return t[e];const n=this.schema[e];if(!n)throw new X.NotFound(\"Table \"+e+\" not part of transaction\");const r=new this.db.Table(e,n,this);return r.core=this.db.core.table(e),t[e]=r,r}}function un(e,t,n,r,s,i,o){return{name:e,keyPath:t,unique:n,multi:r,auto:s,compound:i,src:(n&&!o?\"&\":\"\")+(r?\"*\":\"\")+(s?\"++\":\"\")+ln(t)}}function ln(e){return\"string\"==typeof e?e:e?\"[\"+[].join.call(e,\"+\")+\"]\":\"\"}function cn(e,t,n){return{name:e,primKey:t,indexes:n,mappedClass:null,idxByName:g(n,(e=>[e.name,e]))}}let hn=e=>{try{return e.only([[]]),hn=()=>[[]],[[]]}catch(e){return hn=()=>mt,mt}};function dn(e){return null==e?()=>{}:\"string\"==typeof e?function(e){const t=e.split(\".\");return 1===t.length?t=>t[e]:t=>b(t,e)}(e):t=>b(t,e)}function fn(e){return[].slice.call(e)}let pn=0;function yn(e){return null==e?\":id\":\"string\"==typeof e?e:`[${e.join(\"+\")}]`}function mn(e,t,r){function s(e){if(3===e.type)return null;if(4===e.type)throw new Error(\"Cannot convert never type to IDBKeyRange\");const{lower:n,upper:r,lowerOpen:s,upperOpen:i}=e;return void 0===n?void 0===r?null:t.upperBound(r,!!i):void 0===r?t.lowerBound(n,!!s):t.bound(n,r,!!s,!!i)}const{schema:i,hasGetAll:o}=function(e,t){const r=fn(e.objectStoreNames);return{schema:{name:e.name,tables:r.map((e=>t.objectStore(e))).map((e=>{const{keyPath:t,autoIncrement:r}=e,s=n(t),i=null==t,o={},a={name:e.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:i,compound:s,keyPath:t,autoIncrement:r,unique:!0,extractKey:dn(t)},indexes:fn(e.indexNames).map((t=>e.index(t))).map((e=>{const{name:t,unique:r,multiEntry:s,keyPath:i}=e,a={name:t,compound:n(i),keyPath:i,unique:r,multiEntry:s,extractKey:dn(i)};return o[yn(i)]=a,a})),getIndexByKeyPath:e=>o[yn(e)]};return o[\":id\"]=a.primaryKey,null!=t&&(o[yn(t)]=a.primaryKey),a}))},hasGetAll:r.length>0&&\"getAll\"in t.objectStore(r[0])&&!(\"undefined\"!=typeof navigator&&/Safari/.test(navigator.userAgent)&&!/(Chrome\\/|Edge\\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1]<604)}}(e,r),a=i.tables.map((e=>function(e){const t=e.name;return{name:t,schema:e,mutate:function({trans:e,type:n,keys:r,values:i,range:o}){return new Promise(((a,u)=>{a=Ye(a);const l=e.objectStore(t),c=null==l.keyPath,h=\"put\"===n||\"add\"===n;if(!h&&\"delete\"!==n&&\"deleteRange\"!==n)throw new Error(\"Invalid operation type: \"+n);const{length:d}=r||i||{length:1};if(r&&i&&r.length!==i.length)throw new Error(\"Given keys array must have same length as given values array.\");if(0===d)return a({numFailures:0,failures:{},results:[],lastResult:void 0});let f;const p=[],y=[];let m=0;const v=e=>{++m,nn(e)};if(\"deleteRange\"===n){if(4===o.type)return a({numFailures:m,failures:y,results:[],lastResult:void 0});3===o.type?p.push(f=l.clear()):p.push(f=l.delete(s(o)))}else{const[e,t]=h?c?[i,r]:[i,null]:[r,null];if(h)for(let r=0;r{const t=e.target.result;p.forEach(((e,t)=>null!=e.error&&(y[t]=e.error))),a({numFailures:m,failures:y,results:\"delete\"===n?r:p.map((e=>e.result)),lastResult:t})};f.onerror=e=>{v(e),g(e)},f.onsuccess=g}))},getMany:({trans:e,keys:n})=>new Promise(((r,s)=>{r=Ye(r);const i=e.objectStore(t),o=n.length,a=new Array(o);let u,l=0,c=0;const h=e=>{const t=e.target;a[t._pos]=t.result,++c===l&&r(a)},d=tn(s);for(let e=0;enew Promise(((r,s)=>{r=Ye(r);const i=e.objectStore(t).get(n);i.onsuccess=e=>r(e.target.result),i.onerror=tn(s)})),query:function(e){return n=>new Promise(((r,i)=>{r=Ye(r);const{trans:o,values:a,limit:u,query:l}=n,c=u===1/0?void 0:u,{index:h,range:d}=l,f=o.objectStore(t),p=h.isPrimaryKey?f:f.index(h.name),y=s(d);if(0===u)return r({result:[]});if(e){const e=a?p.getAll(y,c):p.getAllKeys(y,c);e.onsuccess=e=>r({result:e.target.result}),e.onerror=tn(i)}else{let e=0;const t=a||!(\"openKeyCursor\"in p)?p.openCursor(y):p.openKeyCursor(y),n=[];t.onsuccess=s=>{const i=t.result;return i?(n.push(a?i.value:i.primaryKey),++e===u?r({result:n}):void i.continue()):r({result:n})},t.onerror=tn(i)}}))}(o),openCursor:function({trans:e,values:n,query:r,reverse:i,unique:o}){return new Promise(((a,u)=>{a=Ye(a);const{index:l,range:c}=r,h=e.objectStore(t),d=l.isPrimaryKey?h:h.index(l.name),f=i?o?\"prevunique\":\"prev\":o?\"nextunique\":\"next\",p=n||!(\"openKeyCursor\"in d)?d.openCursor(s(c),f):d.openKeyCursor(s(c),f);p.onerror=tn(u),p.onsuccess=Ye((t=>{const n=p.result;if(!n)return void a(null);n.___id=++pn,n.done=!1;const r=n.continue.bind(n);let s=n.continuePrimaryKey;s&&(s=s.bind(n));const i=n.advance.bind(n),o=()=>{throw new Error(\"Cursor not stopped\")};n.trans=e,n.stop=n.continue=n.continuePrimaryKey=n.advance=()=>{throw new Error(\"Cursor not started\")},n.fail=Ye(u),n.next=function(){let e=1;return this.start((()=>e--?this.continue():this.stop())).then((()=>this))},n.start=e=>{const t=new Promise(((e,t)=>{e=Ye(e),p.onerror=tn(t),n.fail=t,n.stop=t=>{n.stop=n.continue=n.continuePrimaryKey=n.advance=o,e(t)}})),a=()=>{if(p.result)try{e()}catch(e){n.fail(e)}else n.done=!0,n.start=()=>{throw new Error(\"Cursor behind last entry\")},n.stop()};return p.onsuccess=Ye((e=>{p.onsuccess=a,a()})),n.continue=r,n.continuePrimaryKey=s,n.advance=i,a(),t},a(n)}),u)}))},count({query:e,trans:n}){const{index:r,range:i}=e;return new Promise(((e,o)=>{const a=n.objectStore(t),u=r.isPrimaryKey?a:a.index(r.name),l=s(i),c=l?u.count(l):u.count();c.onsuccess=Ye((t=>e(t.target.result))),c.onerror=tn(o)}))}}}(e))),u={};return a.forEach((e=>u[e.name]=e)),{stack:\"dbcore\",transaction:e.transaction.bind(e),table(e){if(!u[e])throw new Error(`Table '${e}' not found`);return u[e]},MIN_KEY:-1/0,MAX_KEY:hn(t),schema:i}}function vn({_novip:e},t){const n=t.db,r=function(e,t,{IDBKeyRange:n,indexedDB:r},s){const i=function(e,t){return t.reduce(((e,{create:t})=>({...e,...t(e)})),e)}(mn(t,n,s),e.dbcore);return{dbcore:i}}(e._middlewares,n,e._deps,t);e.core=r.dbcore,e.tables.forEach((t=>{const n=t.name;e.core.schema.tables.some((e=>e.name===n))&&(t.core=e.core.table(n),e[n]instanceof e.Table&&(e[n].core=t.core))}))}function gn({_novip:e},t,n,r){n.forEach((n=>{const s=r[n];t.forEach((t=>{const r=d(t,n);(!r||\"value\"in r&&void 0===r.value)&&(t===e.Transaction.prototype||t instanceof e.Transaction?l(t,n,{get(){return this.table(n)},set(e){u(this,n,{value:e,writable:!0,configurable:!0,enumerable:!0})}}):t[n]=new e.Table(n,s))}))}))}function bn({_novip:e},t){t.forEach((t=>{for(let n in t)t[n]instanceof e.Table&&delete t[n]}))}function _n(e,t){return e._cfg.version-t._cfg.version}function wn(e,n,r,s){const i=e._dbSchema,o=e._createTransaction(\"readwrite\",e._storeNames,i);o.create(r),o._completion.catch(s);const a=o._reject.bind(o),u=Oe.transless||Oe;Ze((()=>{Oe.trans=o,Oe.transless=u,0===n?(t(i).forEach((e=>{kn(r,e,i[e].primKey,i[e].indexes)})),vn(e,r),je.follow((()=>e.on.populate.fire(o))).catch(a)):function({_novip:e},n,r,s){const i=[],o=e._versions;let a=e._dbSchema=Pn(e,e.idbdb,s),u=!1;const l=o.filter((e=>e._cfg.version>=n));function c(){return i.length?je.resolve(i.shift()(r.idbtrans)).then(c):je.resolve()}return l.forEach((o=>{i.push((()=>{const i=a,l=o._cfg.dbschema;Kn(e,i,s),Kn(e,l,s),a=e._dbSchema=l;const c=xn(i,l);c.add.forEach((e=>{kn(s,e[0],e[1].primKey,e[1].indexes)})),c.change.forEach((e=>{if(e.recreate)throw new X.Upgrade(\"Not yet support for changing primary key\");{const t=s.objectStore(e.name);e.add.forEach((e=>En(t,e))),e.change.forEach((e=>{t.deleteIndex(e.name),En(t,e)})),e.del.forEach((e=>t.deleteIndex(e)))}}));const h=o._cfg.contentUpgrade;if(h&&o._cfg.version>n){vn(e,s),r._memoizedTables={},u=!0;let n=w(l);c.del.forEach((e=>{n[e]=i[e]})),bn(e,[e.Transaction.prototype]),gn(e,[e.Transaction.prototype],t(n),n),r.schema=n;const o=T(h);let a;o&&et();const d=je.follow((()=>{if(a=h(r),a&&o){var e=tt.bind(null,null);a.then(e,e)}}));return a&&\"function\"==typeof a.then?je.resolve(a):d.then((()=>a))}})),i.push((t=>{if(!u||!xt){!function(e,t){[].slice.call(t.db.objectStoreNames).forEach((n=>null==e[n]&&t.db.deleteObjectStore(n)))}(o._cfg.dbschema,t)}bn(e,[e.Transaction.prototype]),gn(e,[e.Transaction.prototype],e._storeNames,e._dbSchema),r.schema=e._dbSchema}))})),c().then((()=>{var e,n;n=s,t(e=a).forEach((t=>{n.db.objectStoreNames.contains(t)||kn(n,t,e[t].primKey,e[t].indexes)}))}))}(e,n,o,r).catch(a)}))}function xn(e,t){const n={del:[],add:[],change:[]};let r;for(r in e)t[r]||n.del.push(r);for(r in t){const s=e[r],i=t[r];if(s){const e={name:r,def:i,recreate:!1,del:[],add:[],change:[]};if(\"\"+(s.primKey.keyPath||\"\")!=\"\"+(i.primKey.keyPath||\"\")||s.primKey.auto!==i.primKey.auto&&!wt)e.recreate=!0,n.change.push(e);else{const t=s.idxByName,r=i.idxByName;let o;for(o in t)r[o]||e.del.push(o);for(o in r){const n=t[o],s=r[o];n?n.src!==s.src&&e.change.push(s):e.add.push(s)}(e.del.length>0||e.add.length>0||e.change.length>0)&&n.change.push(e)}}else n.add.push([r,i])}return n}function kn(e,t,n,r){const s=e.db.createObjectStore(t,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach((e=>En(s,e))),s}function En(e,t){e.createIndex(t.name,t.keyPath,{unique:t.unique,multiEntry:t.multi})}function Pn(e,t,n){const r={};return p(t.objectStoreNames,0).forEach((e=>{const t=n.objectStore(e);let s=t.keyPath;const i=un(ln(s),s||\"\",!1,!1,!!t.autoIncrement,s&&\"string\"!=typeof s,!0),o=[];for(let e=0;e{if(null!==e[t]){var s=e[t].split(\",\").map(((e,t)=>{const r=(e=e.trim()).replace(/([&*]|\\+\\+)/g,\"\"),s=/^\\[/.test(r)?r.match(/^\\[(.*)\\]$/)[1].split(\"+\"):r;return un(r,s||null,/\\&/.test(e),/\\*/.test(e),/\\+\\+/.test(e),n(s),0===t)})),i=s.shift();if(i.multi)throw new X.Schema(\"Primary key cannot be multi-valued\");s.forEach((e=>{if(e.auto)throw new X.Schema(\"Only primary key can be marked as autoIncrement (++)\");if(!e.keyPath)throw new X.Schema(\"Index must have a name and cannot be an empty string\")})),r[t]=cn(t,i,s)}}))}stores(e){const n=this.db;this._cfg.storesSource=this._cfg.storesSource?r(this._cfg.storesSource,e):e;const s=n._versions,i={};let o={};return s.forEach((e=>{r(i,e._cfg.storesSource),o=e._cfg.dbschema={},e._parseStoresSpec(i,o)})),n._dbSchema=o,bn(n,[n._allTables,n,n.Transaction.prototype]),gn(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],t(o),o),n._storeNames=t(o),this}upgrade(e){return this._cfg.contentUpgrade=ue(this._cfg.contentUpgrade||ee,e),this}}function Sn(e,t){let n=e._dbNamesDB;return n||(n=e._dbNamesDB=new Xn(Pt,{addons:[],indexedDB:e,IDBKeyRange:t}),n.version(1).stores({dbnames:\"name\"})),n.table(\"dbnames\")}function An(e){return e&&\"function\"==typeof e.databases}function Cn(e){return Ze((function(){return Oe.letThrough=!0,e()}))}function jn(){var e;return!navigator.userAgentData&&/Safari\\//.test(navigator.userAgent)&&!/Chrom(e|ium)\\//.test(navigator.userAgent)&&indexedDB.databases?new Promise((function(t){var n=function(){return indexedDB.databases().finally(t)};e=setInterval(n,100),n()})).finally((function(){return clearInterval(e)})):Promise.resolve()}function Dn(e){const n=e._state,{indexedDB:r}=e._deps;if(n.isBeingOpened||e.idbdb)return n.dbReadyPromise.then((()=>n.dbOpenError?ft(n.dbOpenError):e));R&&(n.openCanceller._stackHolder=q()),n.isBeingOpened=!0,n.dbOpenError=null,n.openComplete=!1;const s=n.openCanceller;function i(){if(n.openCanceller!==s)throw new X.DatabaseClosed(\"db.open() was cancelled\")}let o=n.dbReadyResolve,a=null,u=!1;const l=()=>new je(((s,o)=>{if(i(),!r)throw new X.MissingAPI;const l=e.name,c=n.autoSchema?r.open(l):r.open(l,Math.round(10*e.verno));if(!c)throw new X.MissingAPI;c.onerror=tn(o),c.onblocked=Ye(e._fireOnBlocked),c.onupgradeneeded=Ye((t=>{if(a=c.transaction,n.autoSchema&&!e._options.allowEmptyDB){c.onerror=nn,a.abort(),c.result.close();const e=r.deleteDatabase(l);e.onsuccess=e.onerror=Ye((()=>{o(new X.NoSuchDatabase(`Database ${l} doesnt exist`))}))}else{a.onerror=tn(o);var s=t.oldVersion>Math.pow(2,62)?0:t.oldVersion;u=s<1,e._novip.idbdb=c.result,wn(e,s/10,a,o)}}),o),c.onsuccess=Ye((()=>{a=null;const r=e._novip.idbdb=c.result,i=p(r.objectStoreNames);if(i.length>0)try{const s=r.transaction(1===(o=i).length?o[0]:o,\"readonly\");n.autoSchema?function({_novip:e},n,r){e.verno=n.version/10;const s=e._dbSchema=Pn(0,n,r);e._storeNames=p(n.objectStoreNames,0),gn(e,[e._allTables],t(s),s)}(e,r,s):(Kn(e,e._dbSchema,s),function(e,t){const n=xn(Pn(0,e.idbdb,t),e._dbSchema);return!(n.add.length||n.change.some((e=>e.add.length||e.change.length)))}(e,s)||console.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.\")),vn(e,s)}catch(e){}var o;_t.push(e),r.onversionchange=Ye((t=>{n.vcFired=!0,e.on(\"versionchange\").fire(t)})),r.onclose=Ye((t=>{e.on(\"close\").fire(t)})),u&&function({indexedDB:e,IDBKeyRange:t},n){!An(e)&&n!==Pt&&Sn(e,t).put({name:n}).catch(ee)}(e._deps,l),s()}),o)})).catch((e=>e&&\"UnknownError\"===e.name&&n.PR1398_maxLoop>0?(n.PR1398_maxLoop--,console.warn(\"Dexie: Workaround for Chrome UnknownError on open()\"),l()):je.reject(e)));return je.race([s,(\"undefined\"==typeof navigator?je.resolve():jn()).then(l)]).then((()=>(i(),n.onReadyBeingFired=[],je.resolve(Cn((()=>e.on.ready.fire(e.vip)))).then((function t(){if(n.onReadyBeingFired.length>0){let r=n.onReadyBeingFired.reduce(ue,ee);return n.onReadyBeingFired=[],je.resolve(Cn((()=>r(e.vip)))).then(t)}}))))).finally((()=>{n.onReadyBeingFired=null,n.isBeingOpened=!1})).then((()=>e)).catch((t=>{n.dbOpenError=t;try{a&&a.abort()}catch(e){}return s===n.openCanceller&&e._close(),ft(t)})).finally((()=>{n.openComplete=!0,o()}))}function In(e){var t=t=>e.next(t),r=i(t),s=i((t=>e.throw(t)));function i(e){return t=>{var i=e(t),o=i.value;return i.done?o:o&&\"function\"==typeof o.then?o.then(r,s):n(o)?Promise.all(o).then(r,s):r(o)}}return i(t)()}function Bn(e,t,n){var r=arguments.length;if(r<2)throw new X.InvalidArgument(\"Too few arguments\");for(var s=new Array(r-1);--r;)s[r-1]=arguments[r];return n=s.pop(),[e,k(s),n]}function Tn(e,t,n,r,s){return je.resolve().then((()=>{const i=Oe.transless||Oe,o=e._createTransaction(t,n,e._dbSchema,r),a={trans:o,transless:i};if(r)o.idbtrans=r.idbtrans;else try{o.create(),e._state.PR1398_maxLoop=3}catch(r){return r.name===H.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(\"Dexie: Need to reopen db\"),e._close(),e.open().then((()=>Tn(e,t,n,null,s)))):ft(r)}const u=T(s);let l;u&&et();const c=je.follow((()=>{if(l=s.call(o,o),l)if(u){var e=tt.bind(null,null);l.then(e,e)}else\"function\"==typeof l.next&&\"function\"==typeof l.throw&&(l=In(l))}),a);return(l&&\"function\"==typeof l.then?je.resolve(l).then((e=>o.active?e:ft(new X.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\")))):c.then((()=>l))).then((e=>(r&&o._resolve(),o._completion.then((()=>e))))).catch((e=>(o._reject(e),ft(e))))}))}function Rn(e,t,r){const s=n(e)?e.slice():[e];for(let e=0;e0,c={...n,isVirtual:l,keyTail:t,keyLength:u,extractKey:dn(e),unique:!l&&n.unique};if(a.push(c),c.isPrimaryKey||i.push(c),u>1){o(2===u?e[0]:e.slice(0,u-1),t+1,n)}return a.sort(((e,t)=>e.keyTail-t.keyTail)),c}const a=o(r.primaryKey.keyPath,0,r.primaryKey);s[\":id\"]=[a];for(const e of r.indexes)o(e.keyPath,0,e);function u(t){const n=t.query.index;return n.isVirtual?{...t,query:{index:n,range:(r=t.query.range,s=n.keyTail,{type:1===r.type?2:r.type,lower:Rn(r.lower,r.lowerOpen?e.MAX_KEY:e.MIN_KEY,s),lowerOpen:!0,upper:Rn(r.upper,r.upperOpen?e.MIN_KEY:e.MAX_KEY,s),upperOpen:!0})}}:t;var r,s}const l={...n,schema:{...r,primaryKey:a,indexes:i,getIndexByKeyPath:function(e){const t=s[yn(e)];return t&&t[0]}},count:e=>n.count(u(e)),query:e=>n.query(u(e)),openCursor(t){const{keyTail:r,isVirtual:s,keyLength:i}=t.query.index;if(!s)return n.openCursor(t);return n.openCursor(u(t)).then((n=>n&&function(n){const s=Object.create(n,{continue:{value:function(s){null!=s?n.continue(Rn(s,t.reverse?e.MAX_KEY:e.MIN_KEY,r)):t.unique?n.continue(n.key.slice(0,i).concat(t.reverse?e.MIN_KEY:e.MAX_KEY,r)):n.continue()}},continuePrimaryKey:{value(t,s){n.continuePrimaryKey(Rn(t,e.MAX_KEY,r),s)}},primaryKey:{get:()=>n.primaryKey},key:{get(){const e=n.key;return 1===i?e[0]:e.slice(0,i)}},value:{get:()=>n.value}});return s}(n)))}};return l}}}};function Mn(e,n,r,s){return r=r||{},s=s||\"\",t(e).forEach((t=>{if(o(n,t)){var i=e[t],a=n[t];if(\"object\"==typeof i&&\"object\"==typeof a&&i&&a){const e=C(i);e!==C(a)?r[s+t]=n[t]:\"Object\"===e?Mn(i,a,r,s+t+\".\"):i!==a&&(r[s+t]=n[t])}else i!==a&&(r[s+t]=n[t])}else r[s+t]=void 0})),t(n).forEach((t=>{o(e,t)||(r[s+t]=n[t])})),r}const Nn={stack:\"dbcore\",name:\"HooksMiddleware\",level:2,create:e=>({...e,table(t){const n=e.table(t),{primaryKey:r}=n.schema,s={...n,mutate(e){const s=Oe.trans,{deleting:i,creating:a,updating:u}=s.table(t).hook;switch(e.type){case\"add\":if(a.fire===ee)break;return s._promise(\"readwrite\",(()=>l(e)),!0);case\"put\":if(a.fire===ee&&u.fire===ee)break;return s._promise(\"readwrite\",(()=>l(e)),!0);case\"delete\":if(i.fire===ee)break;return s._promise(\"readwrite\",(()=>l(e)),!0);case\"deleteRange\":if(i.fire===ee)break;return s._promise(\"readwrite\",(()=>function(e){return c(e.trans,e.range,1e4)}(e)),!0)}return n.mutate(e);function l(e){const t=Oe.trans,s=e.keys||function(e,t){return\"delete\"===t.type?t.keys:t.keys||t.values.map(e.extractKey)}(r,e);if(!s)throw new Error(\"Keys missing\");return\"delete\"!==(e=\"add\"===e.type||\"put\"===e.type?{...e,keys:s}:{...e}).type&&(e.values=[...e.values]),e.keys&&(e.keys=[...e.keys]),function(e,t,n){return\"add\"===t.type?Promise.resolve([]):e.getMany({trans:t.trans,keys:n,cache:\"immutable\"})}(n,e,s).then((l=>{const c=s.map(((n,s)=>{const c=l[s],h={onerror:null,onsuccess:null};if(\"delete\"===e.type)i.fire.call(h,n,c,t);else if(\"add\"===e.type||void 0===c){const i=a.fire.call(h,n,e.values[s],t);null==n&&null!=i&&(n=i,e.keys[s]=n,r.outbound||_(e.values[s],r.keyPath,n))}else{const r=Mn(c,e.values[s]),i=u.fire.call(h,r,n,c,t);if(i){const t=e.values[s];Object.keys(i).forEach((e=>{o(t,e)?t[e]=i[e]:_(t,e,i[e])}))}}return h}));return n.mutate(e).then((({failures:t,results:n,numFailures:r,lastResult:i})=>{for(let r=0;r(c.forEach((t=>t.onerror&&t.onerror(e))),Promise.reject(e))))}))}function c(e,t,s){return n.query({trans:e,values:!1,query:{index:r,range:t},limit:s}).then((({result:n})=>l({type:\"delete\",keys:n,trans:e}).then((r=>r.numFailures>0?Promise.reject(r.failures[0]):n.length({table:t=>{const n=e.table(t);return{...n,getMany:e=>{if(!e.cache)return n.getMany(e);const t=qn(e.keys,e.trans._cache,\"clone\"===e.cache);return t?je.resolve(t):n.getMany(e).then((t=>(e.trans._cache={keys:e.keys,values:\"clone\"===e.cache?O(t):t},t)))},mutate:e=>(\"add\"!==e.type&&(e.trans._cache=null),n.mutate(e))}}})};function Un(e){return!(\"from\"in e)}const Ln=function(e,t){if(!this){const t=new Ln;return e&&\"d\"in e&&r(t,e),t}r(this,arguments.length?{d:1,from:e,to:arguments.length>1?t:e}:{d:0})};function Vn(e,t,n){const s=$t(t,n);if(isNaN(s))return;if(s>0)throw RangeError();if(Un(e))return r(e,{from:t,to:n,d:1});const i=e.l,o=e.r;if($t(n,e.from)<0)return i?Vn(i,t,n):e.l={from:t,to:n,d:1,l:null,r:null},Gn(e);if($t(t,e.to)>0)return o?Vn(o,t,n):e.r={from:t,to:n,d:1,l:null,r:null},Gn(e);$t(t,e.from)<0&&(e.from=t,e.l=null,e.d=o?o.d+1:1),$t(n,e.to)>0&&(e.to=n,e.r=null,e.d=e.l?e.l.d+1:1);const a=!e.r;i&&!e.l&&Wn(e,i),o&&a&&Wn(e,o)}function Wn(e,t){Un(t)||function e(t,{from:n,to:r,l:s,r:i}){Vn(t,n,r),s&&e(t,s),i&&e(t,i)}(e,t)}function Yn(e,t){const n=zn(t);let r=n.next();if(r.done)return!1;let s=r.value;const i=zn(e);let o=i.next(s.from),a=o.value;for(;!r.done&&!o.done;){if($t(a.from,s.to)<=0&&$t(a.to,s.from)>=0)return!0;$t(s.from,a.from)<0?s=(r=n.next(a.from)).value:a=(o=i.next(s.from)).value}return!1}function zn(e){let t=Un(e)?null:{s:0,n:e};return{next(e){const n=arguments.length>0;for(;t;)switch(t.s){case 0:if(t.s=1,n)for(;t.n.l&&$t(e,t.n.from)<0;)t={up:t,n:t.n.l,s:1};else for(;t.n.l;)t={up:t,n:t.n.l,s:1};case 1:if(t.s=2,!n||$t(e,t.n.to)<=0)return{value:t.n,done:!1};case 2:if(t.n.r){t.s=3,t={up:t,n:t.n.r,s:0};continue}case 3:t=t.up}return{done:!0}}}}function Gn(e){var t,n;const r=((null===(t=e.r)||void 0===t?void 0:t.d)||0)-((null===(n=e.l)||void 0===n?void 0:n.d)||0),s=r>1?\"r\":r<-1?\"l\":\"\";if(s){const t=\"r\"===s?\"l\":\"r\",n={...e},r=e[s];e.from=r.from,e.to=r.to,e[s]=r[s],n[s]=r[t],e[t]=n,n.d=Hn(n)}e.d=Hn(e)}function Hn({r:e,l:t}){return(e?t?Math.max(e.d,t.d):e.d:t?t.d:0)+1}a(Ln.prototype,{add(e){return Wn(this,e),this},addKey(e){return Vn(this,e,e),this},addKeys(e){return e.forEach((e=>Vn(this,e,e))),this},[j](){return zn(this)}});const Qn={stack:\"dbcore\",level:0,create:e=>{const r=e.schema.name,s=new Ln(e.MIN_KEY,e.MAX_KEY);return{...e,table:i=>{const o=e.table(i),{schema:a}=o,{primaryKey:u}=a,{extractKey:l,outbound:c}=u,h={...o,mutate:e=>{const t=e.trans,u=t.mutatedParts||(t.mutatedParts={}),l=e=>{const t=`idb://${r}/${i}/${e}`;return u[t]||(u[t]=new Ln)},c=l(\"\"),h=l(\":dels\"),{type:d}=e;let[f,p]=\"deleteRange\"===e.type?[e.range]:\"delete\"===e.type?[e.keys]:e.values.length<50?[[],e.values]:[];const y=e.trans._cache;return o.mutate(e).then((e=>{if(n(f)){\"delete\"!==d&&(f=e.results),c.addKeys(f);const t=qn(f,y);t||\"add\"===d||h.addKeys(f),(t||p)&&function(e,t,r,s){function i(t){const i=e(t.name||\"\");function o(e){return null!=e?t.extractKey(e):null}const a=e=>t.multiEntry&&n(e)?e.forEach((e=>i.addKey(e))):i.addKey(e);(r||s).forEach(((e,t)=>{const n=r&&o(r[t]),i=s&&o(s[t]);0!==$t(n,i)&&(null!=n&&a(n),null!=i&&a(i))}))}t.indexes.forEach(i)}(l,a,t,p)}else if(f){const e={from:f.lower,to:f.upper};h.add(e),c.add(e)}else c.add(s),h.add(s),a.indexes.forEach((e=>l(e.name).add(s)));return e}))}},d=({query:{index:t,range:n}})=>{var r,s;return[t,new Ln(null!==(r=n.lower)&&void 0!==r?r:e.MIN_KEY,null!==(s=n.upper)&&void 0!==s?s:e.MAX_KEY)]},f={get:e=>[u,new Ln(e.key)],getMany:e=>[u,(new Ln).addKeys(e.keys)],count:d,query:d,openCursor:d};return t(f).forEach((e=>{h[e]=function(t){const{subscr:n}=Oe;if(n){const a=e=>{const t=`idb://${r}/${i}/${e}`;return n[t]||(n[t]=new Ln)},u=a(\"\"),h=a(\":dels\"),[d,p]=f[e](t);if(a(d.name||\"\").add(p),!d.isPrimaryKey){if(\"count\"!==e){const n=\"query\"===e&&c&&t.values&&o.query({...t,values:!1});return o[e].apply(this,arguments).then((r=>{if(\"query\"===e){if(c&&t.values)return n.then((({result:e})=>(u.addKeys(e),r)));const e=t.values?r.result.map(l):r.result;t.values?u.addKeys(e):h.addKeys(e)}else if(\"openCursor\"===e){const e=r,n=t.values;return e&&Object.create(e,{key:{get:()=>(h.addKey(e.primaryKey),e.key)},primaryKey:{get(){const t=e.primaryKey;return h.addKey(t),t}},value:{get:()=>(n&&u.addKey(e.primaryKey),e.value)}})}return r}))}h.add(s)}}return o[e].apply(this,arguments)}})),h}}}};class Xn{constructor(e,t){this._middlewares={},this.verno=0;const n=Xn.dependencies;this._options=t={addons:Xn.addons,autoOpen:!0,indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange,...t},this._deps={indexedDB:t.indexedDB,IDBKeyRange:t.IDBKeyRange};const{addons:r}=t;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;const s={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:ee,dbReadyPromise:null,cancelOpen:ee,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var i;s.dbReadyPromise=new je((e=>{s.dbReadyResolve=e})),s.openCanceller=new je(((e,t)=>{s.cancelOpen=t})),this._state=s,this.name=e,this.on=Dt(this,\"populate\",\"blocked\",\"versionchange\",\"close\",{ready:[ue,ee]}),this.on.ready.subscribe=y(this.on.ready.subscribe,(e=>(t,n)=>{Xn.vip((()=>{const r=this._state;if(r.openComplete)r.dbOpenError||je.resolve().then(t),n&&e(t);else if(r.onReadyBeingFired)r.onReadyBeingFired.push(t),n&&e(t);else{e(t);const r=this;n||e((function e(){r.on.ready.unsubscribe(t),r.on.ready.unsubscribe(e)}))}}))})),this.Collection=(i=this,It(Vt.prototype,(function(e,t){this.db=i;let n=At,r=null;if(t)try{n=t()}catch(e){r=e}const s=e._ctx,o=s.table,a=o.hook.reading.fire;this._ctx={table:o,index:s.index,isPrimKey:!s.index||o.schema.primKey.keyPath&&s.index===o.schema.primKey.name,range:n,keysOnly:!1,dir:\"next\",unique:\"\",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:r,or:s.or,valueMapper:a!==te?a:null}}))),this.Table=function(e){return It(jt.prototype,(function(t,n,r){this.db=e,this._tx=r,this.name=t,this.schema=n,this.hook=e._allTables[t]?e._allTables[t].hook:Dt(null,{creating:[se,ee],reading:[ne,te],updating:[oe,ee],deleting:[ie,ee]})}))}(this),this.Transaction=function(e){return It(an.prototype,(function(t,n,r,s,i){this.db=e,this.mode=t,this.storeNames=n,this.schema=r,this.chromeTransactionDurability=s,this.idbtrans=null,this.on=Dt(this,\"complete\",\"error\",\"abort\"),this.parent=i||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new je(((e,t)=>{this._resolve=e,this._reject=t})),this._completion.then((()=>{this.active=!1,this.on.complete.fire()}),(e=>{var t=this.active;return this.active=!1,this.on.error.fire(e),this.parent?this.parent._reject(e):t&&this.idbtrans&&this.idbtrans.abort(),ft(e)}))}))}(this),this.Version=function(e){return It(On.prototype,(function(t){this.db=e,this._cfg={version:t,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}}))}(this),this.WhereClause=function(e){return It(en.prototype,(function(t,n,r){this.db=e,this._ctx={table:t,index:\":id\"===n?null:n,or:r};const s=e._deps.indexedDB;if(!s)throw new X.MissingAPI;this._cmp=this._ascending=s.cmp.bind(s),this._descending=(e,t)=>s.cmp(t,e),this._max=(e,t)=>s.cmp(e,t)>0?e:t,this._min=(e,t)=>s.cmp(e,t)<0?e:t,this._IDBKeyRange=e._deps.IDBKeyRange}))}(this),this.on(\"versionchange\",(e=>{e.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()})),this.on(\"blocked\",(e=>{!e.newVersion||e.newVersionnew this.Transaction(e,t,n,this._options.chromeTransactionDurability,r),this._fireOnBlocked=e=>{this.on(\"blocked\").fire(e),_t.filter((e=>e.name===this.name&&e!==this&&!e._state.vcFired)).map((t=>t.on(\"versionchange\").fire(e)))},this.use(Fn),this.use(Nn),this.use(Qn),this.use($n),this.vip=Object.create(this,{_vip:{value:!0}}),r.forEach((e=>e(this)))}version(e){if(isNaN(e)||e<.1)throw new X.Type(\"Given version is not a positive number\");if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new X.Schema(\"Cannot add version when database is open\");this.verno=Math.max(this.verno,e);const t=this._versions;var n=t.filter((t=>t._cfg.version===e))[0];return n||(n=new this.Version(e),t.push(n),t.sort(_n),n.stores({}),this._state.autoSchema=!1,n)}_whenReady(e){return this.idbdb&&(this._state.openComplete||Oe.letThrough||this._vip)?e():new je(((e,t)=>{if(this._state.openComplete)return t(new X.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void t(new X.DatabaseClosed);this.open().catch(ee)}this._state.dbReadyPromise.then(e,t)})).then(e)}use({stack:e,create:t,level:n,name:r}){r&&this.unuse({stack:e,name:r});const s=this._middlewares[e]||(this._middlewares[e]=[]);return s.push({stack:e,create:t,level:null==n?10:n,name:r}),s.sort(((e,t)=>e.level-t.level)),this}unuse({stack:e,name:t,create:n}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter((e=>n?e.create!==n:!!t&&e.name!==t))),this}open(){return Dn(this)}_close(){const e=this._state,t=_t.indexOf(this);if(t>=0&&_t.splice(t,1),this.idbdb){try{this.idbdb.close()}catch(e){}this._novip.idbdb=null}e.dbReadyPromise=new je((t=>{e.dbReadyResolve=t})),e.openCanceller=new je(((t,n)=>{e.cancelOpen=n}))}close(){this._close();const e=this._state;this._options.autoOpen=!1,e.dbOpenError=new X.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){const e=arguments.length>0,t=this._state;return new je(((n,r)=>{const s=()=>{this.close();var e=this._deps.indexedDB.deleteDatabase(this.name);e.onsuccess=Ye((()=>{!function({indexedDB:e,IDBKeyRange:t},n){!An(e)&&n!==Pt&&Sn(e,t).delete(n).catch(ee)}(this._deps,this.name),n()})),e.onerror=tn(r),e.onblocked=this._fireOnBlocked};if(e)throw new X.InvalidArgument(\"Arguments not allowed in db.delete()\");t.isBeingOpened?t.dbReadyPromise.then(s):s()}))}backendDB(){return this.idbdb}isOpen(){return null!==this.idbdb}hasBeenClosed(){const e=this._state.dbOpenError;return e&&\"DatabaseClosed\"===e.name}hasFailed(){return null!==this._state.dbOpenError}dynamicallyOpened(){return this._state.autoSchema}get tables(){return t(this._allTables).map((e=>this._allTables[e]))}transaction(){const e=Bn.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,t,n){let r=Oe.trans;r&&r.db===this&&-1===e.indexOf(\"!\")||(r=null);const s=-1!==e.indexOf(\"?\");let i,o;e=e.replace(\"!\",\"\").replace(\"?\",\"\");try{if(o=t.map((e=>{var t=e instanceof this.Table?e.name:e;if(\"string\"!=typeof t)throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");return t})),\"r\"==e||e===Kt)i=Kt;else{if(\"rw\"!=e&&e!=Ot)throw new X.InvalidArgument(\"Invalid transaction mode: \"+e);i=Ot}if(r){if(r.mode===Kt&&i===Ot){if(!s)throw new X.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");r=null}r&&o.forEach((e=>{if(r&&-1===r.storeNames.indexOf(e)){if(!s)throw new X.SubTransaction(\"Table \"+e+\" not included in parent transaction.\");r=null}})),s&&r&&!r.active&&(r=null)}}catch(e){return r?r._promise(null,((t,n)=>{n(e)})):ft(e)}const a=Tn.bind(null,this,i,o,r,n);return r?r._promise(i,a,\"lock\"):Oe.trans?at(Oe.transless,(()=>this._whenReady(a))):this._whenReady(a)}table(e){if(!o(this._allTables,e))throw new X.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}}const Jn=\"undefined\"!=typeof Symbol&&\"observable\"in Symbol?Symbol.observable:\"@@observable\";class Zn{constructor(e){this._subscribe=e}subscribe(e,t,n){return this._subscribe(e&&\"function\"!=typeof e?e:{next:e,error:t,complete:n})}[Jn](){return this}}function er(e,n){return t(n).forEach((t=>{Wn(e[t]||(e[t]=new Ln),n[t])})),e}function tr(e){let n,r=!1;const s=new Zn((s=>{const i=T(e);let o=!1,a={},u={};const l={get closed(){return o},unsubscribe:()=>{o=!0,on.storagemutated.unsubscribe(f)}};s.start&&s.start(l);let c=!1,h=!1;function d(){return t(u).some((e=>a[e]&&Yn(a[e],u[e])))}const f=e=>{er(a,e),d()&&p()},p=()=>{if(c||o)return;a={};const t={},y=function(t){i&&et();const n=()=>Ze(e,{subscr:t,trans:null}),r=Oe.trans?at(Oe.transless,n):n();return i&&r.then(tt,tt),r}(t);h||(on(rn,f),h=!0),c=!0,Promise.resolve(y).then((e=>{r=!0,n=e,c=!1,o||(d()?p():(a={},u=t,s.next&&s.next(e)))}),(e=>{c=!1,r=!1,s.error&&s.error(e),l.unsubscribe()}))};return p(),l}));return s.hasValue=()=>r,s.getValue=()=>n,s}let nr;try{nr={indexedDB:e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB,IDBKeyRange:e.IDBKeyRange||e.webkitIDBKeyRange}}catch(e){nr={indexedDB:null,IDBKeyRange:null}}const rr=Xn;function sr(e){let t=ir;try{ir=!0,on.storagemutated.fire(e)}finally{ir=t}}a(rr,{...Z,delete:e=>new rr(e,{addons:[]}).delete(),exists:e=>new rr(e,{addons:[]}).open().then((e=>(e.close(),!0))).catch(\"NoSuchDatabaseError\",(()=>!1)),getDatabaseNames(e){try{return function({indexedDB:e,IDBKeyRange:t}){return An(e)?Promise.resolve(e.databases()).then((e=>e.map((e=>e.name)).filter((e=>e!==Pt)))):Sn(e,t).toCollection().primaryKeys()}(rr.dependencies).then(e)}catch(e){return ft(new X.MissingAPI)}},defineClass:()=>function(e){r(this,e)},ignoreTransaction:e=>Oe.trans?at(Oe.transless,e):e(),vip:Cn,async:function(e){return function(){try{var t=In(e.apply(this,arguments));return t&&\"function\"==typeof t.then?t:je.resolve(t)}catch(e){return ft(e)}}},spawn:function(e,t,n){try{var r=In(e.apply(n,t||[]));return r&&\"function\"==typeof r.then?r:je.resolve(r)}catch(e){return ft(e)}},currentTransaction:{get:()=>Oe.trans||null},waitFor:function(e,t){const n=je.resolve(\"function\"==typeof e?rr.ignoreTransaction(e):e).timeout(t||6e4);return Oe.trans?Oe.trans.waitFor(n):n},Promise:je,debug:{get:()=>R,set:e=>{F(e,\"dexie\"===e?()=>!0:Et)}},derive:c,extend:r,props:a,override:y,Events:Dt,on:on,liveQuery:tr,extendObservabilitySet:er,getByKeyPath:b,setByKeyPath:_,delByKeyPath:function(e,t){\"string\"==typeof t?_(e,t,void 0):\"length\"in t&&[].map.call(t,(function(t){_(e,t,void 0)}))},shallowClone:w,deepClone:O,getObjectDiff:Mn,cmp:$t,asap:v,minKey:vt,addons:[],connections:_t,errnames:H,dependencies:nr,semVer:yt,version:yt.split(\".\").map((e=>parseInt(e))).reduce(((e,t,n)=>e+t/Math.pow(10,2*n)))}),rr.maxKey=hn(rr.dependencies.IDBKeyRange),\"undefined\"!=typeof dispatchEvent&&\"undefined\"!=typeof addEventListener&&(on(rn,(e=>{if(!ir){let t;wt?(t=document.createEvent(\"CustomEvent\"),t.initCustomEvent(sn,!0,!0,e)):t=new CustomEvent(sn,{detail:e}),ir=!0,dispatchEvent(t),ir=!1}})),addEventListener(sn,(({detail:e})=>{ir||sr(e)})));let ir=!1;if(\"undefined\"!=typeof BroadcastChannel){const e=new BroadcastChannel(sn);\"function\"==typeof e.unref&&e.unref(),on(rn,(t=>{ir||e.postMessage(t)})),e.onmessage=e=>{e.data&&sr(e.data)}}else if(\"undefined\"!=typeof self&&\"undefined\"!=typeof navigator){on(rn,(e=>{try{ir||(\"undefined\"!=typeof localStorage&&localStorage.setItem(sn,JSON.stringify({trig:Math.random(),changedParts:e})),\"object\"==typeof self.clients&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:sn,changedParts:e}))))}catch(e){}})),\"undefined\"!=typeof addEventListener&&addEventListener(\"storage\",(e=>{if(e.key===sn){const t=JSON.parse(e.newValue);t&&sr(t.changedParts)}}));const e=self.document&&navigator.serviceWorker;e&&e.addEventListener(\"message\",(function({data:e}){e&&e.type===sn&&sr(e.changedParts)}))}je.rejectionMapper=function(e,t){if(!e||e instanceof W||e instanceof TypeError||e instanceof SyntaxError||!e.name||!J[e.name])return e;var n=new J[e.name](t||e.message,e);return\"stack\"in e&&l(n,\"stack\",{get:function(){return this.inner.stack}}),n},F(R,Et);export{Xn as Dexie,Ln as RangeSet,Xn as default,tr as liveQuery,Wn as mergeRanges,Yn as rangesOverlap};\n","import{MaterialPluginBase as e}from\"@babylonjs/core/Materials/materialPluginBase\";class s extends e{get screenspaceZOffset(){return this._screenspaceZOffset}set screenspaceZOffset(e){this._screenspaceZOffset=e}isValid(){return!0}constructor(e){super(e,\"HeadAvatar3DMaterialPlugin\",200,{HEAD_AVATAR_3D_PLUGIN:!1},!0,!0),this._screenspaceZOffset=0}getClassName(){return\"HeadAvatar3DMaterialPlugin\"}prepareDefines(e,s,t){e.HEAD_AVATAR_3D_PLUGIN=this.isValid()}getUniforms(){return{ubo:[{name:\"uScreenspaceZOffset\",size:1,type:\"float\"}],vertex:\"\\n #ifdef HEAD_AVATAR_3D_PLUGIN\\n uniform float uScreenspaceZOffset;\\n #endif\\n \"}}bindForSubMesh(e,s,t,n){e.updateFloat(\"uScreenspaceZOffset\",this._screenspaceZOffset)}getCustomCode(e){return\"vertex\"===e?{CUSTOM_VERTEX_MAIN_END:\"\\n #ifdef HEAD_AVATAR_3D_PLUGIN\\n // layering handling since we cannot modify the projection matrix without major performance hits on mobile\\n gl_Position.z += uScreenspaceZOffset * gl_Position.w;\\n #endif\\n \"}:null}}export{s as HeadAvatar3DMaterialPlugin};\n","import { Action } from \"./action.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\n/**\n * This defines an action helpful to play a defined sound on a triggered action.\n */\nexport class PlaySoundAction extends Action {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param sound defines the sound to play\n * @param condition defines the trigger related conditions\n */\n constructor(triggerOptions, sound, condition) {\n super(triggerOptions, condition);\n this._sound = sound;\n }\n /** @internal */\n _prepare() { }\n /**\n * Execute the action and play the sound.\n */\n execute() {\n if (this._sound !== undefined) {\n this._sound.play();\n }\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(parent) {\n return super._serialize({\n name: \"PlaySoundAction\",\n properties: [{ name: \"sound\", value: this._sound.name }],\n }, parent);\n }\n}\n/**\n * This defines an action helpful to stop a defined sound on a triggered action.\n */\nexport class StopSoundAction extends Action {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param sound defines the sound to stop\n * @param condition defines the trigger related conditions\n */\n constructor(triggerOptions, sound, condition) {\n super(triggerOptions, condition);\n this._sound = sound;\n }\n /** @internal */\n _prepare() { }\n /**\n * Execute the action and stop the sound.\n */\n execute() {\n if (this._sound !== undefined) {\n this._sound.stop();\n }\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(parent) {\n return super._serialize({\n name: \"StopSoundAction\",\n properties: [{ name: \"sound\", value: this._sound.name }],\n }, parent);\n }\n}\nRegisterClass(\"BABYLON.PlaySoundAction\", PlaySoundAction);\nRegisterClass(\"BABYLON.StopSoundAction\", StopSoundAction);\n","import { Action } from \"./action.js\";\nimport { Logger } from \"../Misc/logger.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { Color3 } from \"../Maths/math.color.js\";\nimport { Vector3, Matrix, Quaternion } from \"../Maths/math.vector.js\";\nimport { Animation } from \"../Animations/animation.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\n/**\n * This defines an action responsible to change the value of a property\n * by interpolating between its current value and the newly set one once triggered.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions\n */\nexport class InterpolateValueAction extends Action {\n /**\n * Instantiate the action\n * @param triggerOptions defines the trigger options\n * @param target defines the object containing the value to interpolate\n * @param propertyPath defines the path to the property in the target object\n * @param value defines the target value at the end of the interpolation\n * @param duration defines the time it will take for the property to interpolate to the value.\n * @param condition defines the trigger related conditions\n * @param stopOtherAnimations defines if the other scene animations should be stopped when the action has been triggered\n * @param onInterpolationDone defines a callback raised once the interpolation animation has been done\n */\n constructor(triggerOptions, target, propertyPath, value, duration = 1000, condition, stopOtherAnimations, onInterpolationDone) {\n super(triggerOptions, condition);\n /**\n * Defines the time it will take for the property to interpolate to the value.\n */\n this.duration = 1000;\n /**\n * Observable triggered once the interpolation animation has been done.\n */\n this.onInterpolationDoneObservable = new Observable();\n this.propertyPath = propertyPath;\n this.value = value;\n this.duration = duration;\n this.stopOtherAnimations = stopOtherAnimations;\n this.onInterpolationDone = onInterpolationDone;\n this._target = this._effectiveTarget = target;\n }\n /** @internal */\n _prepare() {\n this._effectiveTarget = this._getEffectiveTarget(this._effectiveTarget, this.propertyPath);\n this._property = this._getProperty(this.propertyPath);\n }\n /**\n * Execute the action starts the value interpolation.\n */\n execute() {\n const scene = this._actionManager.getScene();\n const keys = [\n {\n frame: 0,\n value: this._effectiveTarget[this._property],\n },\n {\n frame: 100,\n value: this.value,\n },\n ];\n let dataType;\n if (typeof this.value === \"number\") {\n dataType = Animation.ANIMATIONTYPE_FLOAT;\n }\n else if (this.value instanceof Color3) {\n dataType = Animation.ANIMATIONTYPE_COLOR3;\n }\n else if (this.value instanceof Vector3) {\n dataType = Animation.ANIMATIONTYPE_VECTOR3;\n }\n else if (this.value instanceof Matrix) {\n dataType = Animation.ANIMATIONTYPE_MATRIX;\n }\n else if (this.value instanceof Quaternion) {\n dataType = Animation.ANIMATIONTYPE_QUATERNION;\n }\n else {\n Logger.Warn(\"InterpolateValueAction: Unsupported type (\" + typeof this.value + \")\");\n return;\n }\n const animation = new Animation(\"InterpolateValueAction\", this._property, 100 * (1000.0 / this.duration), dataType, Animation.ANIMATIONLOOPMODE_CONSTANT);\n animation.setKeys(keys);\n if (this.stopOtherAnimations) {\n scene.stopAnimation(this._effectiveTarget);\n }\n const wrapper = () => {\n this.onInterpolationDoneObservable.notifyObservers(this);\n if (this.onInterpolationDone) {\n this.onInterpolationDone();\n }\n };\n scene.beginDirectAnimation(this._effectiveTarget, [animation], 0, 100, false, 1, wrapper);\n }\n /**\n * Serializes the actions and its related information.\n * @param parent defines the object to serialize in\n * @returns the serialized object\n */\n serialize(parent) {\n return super._serialize({\n name: \"InterpolateValueAction\",\n properties: [\n Action._GetTargetProperty(this._target),\n { name: \"propertyPath\", value: this.propertyPath },\n { name: \"value\", value: Action._SerializeValueAsString(this.value) },\n { name: \"duration\", value: Action._SerializeValueAsString(this.duration) },\n { name: \"stopOtherAnimations\", value: Action._SerializeValueAsString(this.stopOtherAnimations) || false },\n ],\n }, parent);\n }\n}\nRegisterClass(\"BABYLON.InterpolateValueAction\", InterpolateValueAction);\n","import { __decorate } from \"../tslib.es6.js\";\nimport { serialize, expandToProperty, serializeAsTexture } from \"../Misc/decorators.js\";\nimport { Vector4 } from \"../Maths/math.vector.js\";\nimport { EngineStore } from \"../Engines/engineStore.js\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization.js\";\n/**\n * This class is used to animate meshes using a baked vertex animation texture\n * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/baked_texture_animations\n * @since 5.0\n */\nexport class BakedVertexAnimationManager {\n /**\n * Creates a new BakedVertexAnimationManager\n * @param scene defines the current scene\n */\n constructor(scene) {\n this._texture = null;\n this._isEnabled = true;\n /**\n * Enable or disable the vertex animation manager\n */\n this.isEnabled = true;\n /**\n * The time counter, to pick the correct animation frame.\n */\n this.time = 0;\n scene = scene || EngineStore.LastCreatedScene;\n if (!scene) {\n return;\n }\n this._scene = scene;\n this.animationParameters = new Vector4(0, 0, 0, 30);\n }\n /** @internal */\n _markSubMeshesAsAttributesDirty() {\n for (const mesh of this._scene.meshes) {\n if (mesh.bakedVertexAnimationManager === this) {\n mesh._markSubMeshesAsAttributesDirty();\n }\n }\n }\n /**\n * Binds to the effect.\n * @param effect The effect to bind to.\n * @param useInstances True when it's an instance.\n */\n bind(effect, useInstances = false) {\n if (!this._texture || !this._isEnabled) {\n return;\n }\n const size = this._texture.getSize();\n effect.setFloat2(\"bakedVertexAnimationTextureSizeInverted\", 1.0 / size.width, 1.0 / size.height);\n effect.setFloat(\"bakedVertexAnimationTime\", this.time);\n if (!useInstances) {\n effect.setVector4(\"bakedVertexAnimationSettings\", this.animationParameters);\n }\n effect.setTexture(\"bakedVertexAnimationTexture\", this._texture);\n }\n /**\n * Clone the current manager\n * @returns a new BakedVertexAnimationManager\n */\n clone() {\n const copy = new BakedVertexAnimationManager(this._scene);\n this.copyTo(copy);\n return copy;\n }\n /**\n * Sets animation parameters.\n * @param startFrame The first frame of the animation.\n * @param endFrame The last frame of the animation.\n * @param offset The offset when starting the animation.\n * @param speedFramesPerSecond The frame rate.\n */\n setAnimationParameters(startFrame, endFrame, offset = 0, speedFramesPerSecond = 30) {\n this.animationParameters = new Vector4(startFrame, endFrame, offset, speedFramesPerSecond);\n }\n /**\n * Disposes the resources of the manager.\n * @param forceDisposeTextures - Forces the disposal of all textures.\n */\n dispose(forceDisposeTextures) {\n if (forceDisposeTextures) {\n this._texture?.dispose();\n }\n }\n /**\n * Get the current class name useful for serialization or dynamic coding.\n * @returns \"BakedVertexAnimationManager\"\n */\n getClassName() {\n return \"BakedVertexAnimationManager\";\n }\n /**\n * Makes a duplicate of the current instance into another one.\n * @param vatMap define the instance where to copy the info\n */\n copyTo(vatMap) {\n SerializationHelper.Clone(() => vatMap, this);\n }\n /**\n * Serializes this vertex animation instance\n * @returns - An object with the serialized instance.\n */\n serialize() {\n return SerializationHelper.Serialize(this);\n }\n /**\n * Parses a vertex animation setting from a serialized object.\n * @param source - Serialized object.\n * @param scene Defines the scene we are parsing for\n * @param rootUrl Defines the rootUrl to load from\n */\n parse(source, scene, rootUrl) {\n SerializationHelper.Parse(() => this, source, scene, rootUrl);\n }\n}\n__decorate([\n serializeAsTexture(),\n expandToProperty(\"_markSubMeshesAsAttributesDirty\")\n], BakedVertexAnimationManager.prototype, \"texture\", void 0);\n__decorate([\n serialize(),\n expandToProperty(\"_markSubMeshesAsAttributesDirty\")\n], BakedVertexAnimationManager.prototype, \"isEnabled\", void 0);\n__decorate([\n serialize()\n], BakedVertexAnimationManager.prototype, \"animationParameters\", void 0);\n__decorate([\n serialize()\n], BakedVertexAnimationManager.prototype, \"time\", void 0);\n","import { Vector3, Quaternion, Matrix } from \"../Maths/math.vector.js\";\nimport { Logger } from \"../Misc/logger.js\";\n/**\n * Class used to apply inverse kinematics to bones\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/bonesSkeletons#boneikcontroller\n */\nexport class BoneIKController {\n /**\n * Gets or sets maximum allowed angle\n */\n get maxAngle() {\n return this._maxAngle;\n }\n set maxAngle(value) {\n this._setMaxAngle(value);\n }\n /**\n * Creates a new BoneIKController\n * @param mesh defines the TransformNode to control\n * @param bone defines the bone to control. The bone needs to have a parent bone. It also needs to have a length greater than 0 or a children we can use to infer its length.\n * @param options defines options to set up the controller\n * @param options.targetMesh\n * @param options.poleTargetMesh\n * @param options.poleTargetBone\n * @param options.poleTargetLocalOffset\n * @param options.poleAngle\n * @param options.bendAxis\n * @param options.maxAngle\n * @param options.slerpAmount\n */\n constructor(mesh, bone, options) {\n /**\n * Gets or sets the target position\n */\n this.targetPosition = Vector3.Zero();\n /**\n * Gets or sets the pole target position\n */\n this.poleTargetPosition = Vector3.Zero();\n /**\n * Gets or sets the pole target local offset\n */\n this.poleTargetLocalOffset = Vector3.Zero();\n /**\n * Gets or sets the pole angle\n */\n this.poleAngle = 0;\n /**\n * The amount to slerp (spherical linear interpolation) to the target. Set this to a value between 0 and 1 (a value of 1 disables slerp)\n */\n this.slerpAmount = 1;\n this._bone1Quat = Quaternion.Identity();\n this._bone1Mat = Matrix.Identity();\n this._bone2Ang = Math.PI;\n this._maxAngle = Math.PI;\n this._rightHandedSystem = false;\n this._bendAxis = Vector3.Right();\n this._slerping = false;\n this._adjustRoll = 0;\n this._notEnoughInformation = false;\n this._bone2 = bone;\n const bone1 = bone.getParent();\n if (!bone1) {\n this._notEnoughInformation = true;\n Logger.Error(\"BoneIKController: bone must have a parent for IK to work.\");\n return;\n }\n this._bone1 = bone1;\n if (this._bone2.children.length === 0 && !this._bone2.length) {\n this._notEnoughInformation = true;\n Logger.Error(\"BoneIKController: bone must not be a leaf or it should have a length for IK to work.\");\n return;\n }\n this.mesh = mesh;\n bone.getSkeleton().computeAbsoluteMatrices();\n const bonePos = bone.getPosition();\n if (bone.getAbsoluteMatrix().determinant() > 0) {\n this._rightHandedSystem = true;\n this._bendAxis.x = 0;\n this._bendAxis.y = 0;\n this._bendAxis.z = -1;\n if (bonePos.x > bonePos.y && bonePos.x > bonePos.z) {\n this._adjustRoll = Math.PI * 0.5;\n this._bendAxis.z = 1;\n }\n }\n if (this._bone1.length && this._bone2.length) {\n const boneScale1 = this._bone1.getScale();\n const boneScale2 = this._bone2.getScale();\n this._bone1Length = this._bone1.length * boneScale1.y * this.mesh.scaling.y;\n this._bone2Length = this._bone2.length * boneScale2.y * this.mesh.scaling.y;\n }\n else if (this._bone2.children[0]) {\n mesh.computeWorldMatrix(true);\n const pos1 = this._bone2.children[0].getAbsolutePosition(mesh);\n const pos2 = this._bone2.getAbsolutePosition(mesh);\n const pos3 = this._bone1.getAbsolutePosition(mesh);\n this._bone2Length = Vector3.Distance(pos1, pos2);\n this._bone1Length = Vector3.Distance(pos2, pos3);\n }\n else {\n mesh.computeWorldMatrix(true);\n const boneScale2 = this._bone2.getScale();\n this._bone2Length = this._bone2.length * boneScale2.y * this.mesh.scaling.y;\n const pos2 = this._bone2.getAbsolutePosition(mesh);\n const pos3 = this._bone1.getAbsolutePosition(mesh);\n this._bone1Length = Vector3.Distance(pos2, pos3);\n }\n this._bone1.getRotationMatrixToRef(1 /* Space.WORLD */, mesh, this._bone1Mat);\n this.maxAngle = Math.PI;\n if (options) {\n if (options.targetMesh) {\n this.targetMesh = options.targetMesh;\n this.targetMesh.computeWorldMatrix(true);\n }\n if (options.poleTargetMesh) {\n this.poleTargetMesh = options.poleTargetMesh;\n this.poleTargetMesh.computeWorldMatrix(true);\n }\n else if (options.poleTargetBone) {\n this.poleTargetBone = options.poleTargetBone;\n }\n else if (this._bone1.getParent()) {\n this.poleTargetBone = this._bone1.getParent();\n }\n if (options.poleTargetLocalOffset) {\n this.poleTargetLocalOffset.copyFrom(options.poleTargetLocalOffset);\n }\n if (options.poleAngle) {\n this.poleAngle = options.poleAngle;\n }\n if (options.bendAxis) {\n this._bendAxis.copyFrom(options.bendAxis);\n }\n if (options.maxAngle) {\n this.maxAngle = options.maxAngle;\n }\n if (options.slerpAmount) {\n this.slerpAmount = options.slerpAmount;\n }\n }\n }\n _setMaxAngle(ang) {\n if (ang < 0) {\n ang = 0;\n }\n if (ang > Math.PI || ang == undefined) {\n ang = Math.PI;\n }\n this._maxAngle = ang;\n const a = this._bone1Length;\n const b = this._bone2Length;\n this._maxReach = Math.sqrt(a * a + b * b - 2 * a * b * Math.cos(ang));\n }\n /**\n * Force the controller to update the bones\n */\n update() {\n if (this._notEnoughInformation) {\n return;\n }\n const target = this.targetPosition;\n const poleTarget = this.poleTargetPosition;\n const mat1 = BoneIKController._TmpMats[0];\n const mat2 = BoneIKController._TmpMats[1];\n if (this.targetMesh) {\n target.copyFrom(this.targetMesh.getAbsolutePosition());\n }\n if (this.poleTargetBone) {\n this.poleTargetBone.getAbsolutePositionFromLocalToRef(this.poleTargetLocalOffset, this.mesh, poleTarget);\n }\n else if (this.poleTargetMesh) {\n Vector3.TransformCoordinatesToRef(this.poleTargetLocalOffset, this.poleTargetMesh.getWorldMatrix(), poleTarget);\n }\n const bonePos = BoneIKController._TmpVecs[0];\n const zaxis = BoneIKController._TmpVecs[1];\n const xaxis = BoneIKController._TmpVecs[2];\n const yaxis = BoneIKController._TmpVecs[3];\n const upAxis = BoneIKController._TmpVecs[4];\n const tmpQuat = BoneIKController._TmpQuat;\n this._bone1.getAbsolutePositionToRef(this.mesh, bonePos);\n poleTarget.subtractToRef(bonePos, upAxis);\n if (upAxis.x == 0 && upAxis.y == 0 && upAxis.z == 0) {\n upAxis.y = 1;\n }\n else {\n upAxis.normalize();\n }\n target.subtractToRef(bonePos, yaxis);\n yaxis.normalize();\n Vector3.CrossToRef(yaxis, upAxis, zaxis);\n zaxis.normalize();\n Vector3.CrossToRef(yaxis, zaxis, xaxis);\n xaxis.normalize();\n Matrix.FromXYZAxesToRef(xaxis, yaxis, zaxis, mat1);\n const a = this._bone1Length;\n const b = this._bone2Length;\n let c = Vector3.Distance(bonePos, target);\n if (this._maxReach > 0) {\n c = Math.min(this._maxReach, c);\n }\n let acosa = (b * b + c * c - a * a) / (2 * b * c);\n let acosb = (c * c + a * a - b * b) / (2 * c * a);\n if (acosa > 1) {\n acosa = 1;\n }\n if (acosb > 1) {\n acosb = 1;\n }\n if (acosa < -1) {\n acosa = -1;\n }\n if (acosb < -1) {\n acosb = -1;\n }\n const angA = Math.acos(acosa);\n const angB = Math.acos(acosb);\n let angC = -angA - angB;\n if (this._rightHandedSystem) {\n Matrix.RotationYawPitchRollToRef(0, 0, this._adjustRoll, mat2);\n mat2.multiplyToRef(mat1, mat1);\n Matrix.RotationAxisToRef(this._bendAxis, angB, mat2);\n mat2.multiplyToRef(mat1, mat1);\n }\n else {\n const _tmpVec = BoneIKController._TmpVecs[5];\n _tmpVec.copyFrom(this._bendAxis);\n _tmpVec.x *= -1;\n Matrix.RotationAxisToRef(_tmpVec, -angB, mat2);\n mat2.multiplyToRef(mat1, mat1);\n }\n if (this.poleAngle) {\n Matrix.RotationAxisToRef(yaxis, this.poleAngle, mat2);\n mat1.multiplyToRef(mat2, mat1);\n }\n if (this._bone1) {\n if (this.slerpAmount < 1) {\n if (!this._slerping) {\n Quaternion.FromRotationMatrixToRef(this._bone1Mat, this._bone1Quat);\n }\n Quaternion.FromRotationMatrixToRef(mat1, tmpQuat);\n Quaternion.SlerpToRef(this._bone1Quat, tmpQuat, this.slerpAmount, this._bone1Quat);\n angC = this._bone2Ang * (1.0 - this.slerpAmount) + angC * this.slerpAmount;\n this._bone1.setRotationQuaternion(this._bone1Quat, 1 /* Space.WORLD */, this.mesh);\n this._slerping = true;\n }\n else {\n this._bone1.setRotationMatrix(mat1, 1 /* Space.WORLD */, this.mesh);\n this._bone1Mat.copyFrom(mat1);\n this._slerping = false;\n }\n this._updateLinkedTransformRotation(this._bone1);\n }\n this._bone2.setAxisAngle(this._bendAxis, angC, 0 /* Space.LOCAL */);\n this._updateLinkedTransformRotation(this._bone2);\n this._bone2Ang = angC;\n }\n _updateLinkedTransformRotation(bone) {\n if (bone._linkedTransformNode) {\n if (!bone._linkedTransformNode.rotationQuaternion) {\n bone._linkedTransformNode.rotationQuaternion = new Quaternion();\n }\n bone.getRotationQuaternionToRef(0 /* Space.LOCAL */, null, bone._linkedTransformNode.rotationQuaternion);\n }\n }\n}\nBoneIKController._TmpVecs = [Vector3.Zero(), Vector3.Zero(), Vector3.Zero(), Vector3.Zero(), Vector3.Zero(), Vector3.Zero()];\nBoneIKController._TmpQuat = Quaternion.Identity();\nBoneIKController._TmpMats = [Matrix.Identity(), Matrix.Identity()];\n","import { BuildArray } from \"../Misc/arrayTools.js\";\nimport { Vector3, Quaternion, Matrix } from \"../Maths/math.vector.js\";\nimport { Axis } from \"../Maths/math.axis.js\";\n/**\n * Class used to make a bone look toward a point in space\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/bonesSkeletons#bonelookcontroller\n */\nexport class BoneLookController {\n /**\n * Gets or sets the minimum yaw angle that the bone can look to\n */\n get minYaw() {\n return this._minYaw;\n }\n set minYaw(value) {\n this._minYaw = value;\n this._minYawSin = Math.sin(value);\n this._minYawCos = Math.cos(value);\n if (this._maxYaw != null) {\n this._midYawConstraint = this._getAngleDiff(this._minYaw, this._maxYaw) * 0.5 + this._minYaw;\n this._yawRange = this._maxYaw - this._minYaw;\n }\n }\n /**\n * Gets or sets the maximum yaw angle that the bone can look to\n */\n get maxYaw() {\n return this._maxYaw;\n }\n set maxYaw(value) {\n this._maxYaw = value;\n this._maxYawSin = Math.sin(value);\n this._maxYawCos = Math.cos(value);\n if (this._minYaw != null) {\n this._midYawConstraint = this._getAngleDiff(this._minYaw, this._maxYaw) * 0.5 + this._minYaw;\n this._yawRange = this._maxYaw - this._minYaw;\n }\n }\n /**\n * Gets or sets the minimum pitch angle that the bone can look to\n */\n get minPitch() {\n return this._minPitch;\n }\n set minPitch(value) {\n this._minPitch = value;\n this._minPitchTan = Math.tan(value);\n }\n /**\n * Gets or sets the maximum pitch angle that the bone can look to\n */\n get maxPitch() {\n return this._maxPitch;\n }\n set maxPitch(value) {\n this._maxPitch = value;\n this._maxPitchTan = Math.tan(value);\n }\n /**\n * Create a BoneLookController\n * @param mesh the TransformNode that the bone belongs to\n * @param bone the bone that will be looking to the target\n * @param target the target Vector3 to look at\n * @param options optional settings:\n * * maxYaw: the maximum angle the bone will yaw to\n * * minYaw: the minimum angle the bone will yaw to\n * * maxPitch: the maximum angle the bone will pitch to\n * * minPitch: the minimum angle the bone will yaw to\n * * slerpAmount: set the between 0 and 1 to make the bone slerp to the target.\n * * upAxis: the up axis of the coordinate system\n * * upAxisSpace: the space that the up axis is in - Space.BONE, Space.LOCAL (default), or Space.WORLD.\n * * yawAxis: set yawAxis if the bone does not yaw on the y axis\n * * pitchAxis: set pitchAxis if the bone does not pitch on the x axis\n * * adjustYaw: used to make an adjustment to the yaw of the bone\n * * adjustPitch: used to make an adjustment to the pitch of the bone\n * * adjustRoll: used to make an adjustment to the roll of the bone\n * @param options.maxYaw\n * @param options.minYaw\n * @param options.maxPitch\n * @param options.minPitch\n * @param options.slerpAmount\n * @param options.upAxis\n * @param options.upAxisSpace\n * @param options.yawAxis\n * @param options.pitchAxis\n * @param options.adjustYaw\n * @param options.adjustPitch\n * @param options.adjustRoll\n **/\n constructor(mesh, bone, target, options) {\n /**\n * The up axis of the coordinate system that is used when the bone is rotated\n */\n this.upAxis = Vector3.Up();\n /**\n * The space that the up axis is in - Space.BONE, Space.LOCAL (default), or Space.WORLD\n */\n this.upAxisSpace = 0 /* Space.LOCAL */;\n /**\n * Used to make an adjustment to the yaw of the bone\n */\n this.adjustYaw = 0;\n /**\n * Used to make an adjustment to the pitch of the bone\n */\n this.adjustPitch = 0;\n /**\n * Used to make an adjustment to the roll of the bone\n */\n this.adjustRoll = 0;\n /**\n * The amount to slerp (spherical linear interpolation) to the target. Set this to a value between 0 and 1 (a value of 1 disables slerp)\n */\n this.slerpAmount = 1;\n this._boneQuat = Quaternion.Identity();\n this._slerping = false;\n this._firstFrameSkipped = false;\n this._fowardAxis = Vector3.Forward();\n /**\n * Use the absolute value for yaw when checking the min/max constraints\n */\n this.useAbsoluteValueForYaw = false;\n this.mesh = mesh;\n this.bone = bone;\n this.target = target;\n if (options) {\n if (options.adjustYaw) {\n this.adjustYaw = options.adjustYaw;\n }\n if (options.adjustPitch) {\n this.adjustPitch = options.adjustPitch;\n }\n if (options.adjustRoll) {\n this.adjustRoll = options.adjustRoll;\n }\n if (options.maxYaw != null) {\n this.maxYaw = options.maxYaw;\n }\n else {\n this.maxYaw = Math.PI;\n }\n if (options.minYaw != null) {\n this.minYaw = options.minYaw;\n }\n else {\n this.minYaw = -Math.PI;\n }\n if (options.maxPitch != null) {\n this.maxPitch = options.maxPitch;\n }\n else {\n this.maxPitch = Math.PI;\n }\n if (options.minPitch != null) {\n this.minPitch = options.minPitch;\n }\n else {\n this.minPitch = -Math.PI;\n }\n if (options.slerpAmount != null) {\n this.slerpAmount = options.slerpAmount;\n }\n if (options.upAxis != null) {\n this.upAxis = options.upAxis;\n }\n if (options.upAxisSpace != null) {\n this.upAxisSpace = options.upAxisSpace;\n }\n if (options.yawAxis != null || options.pitchAxis != null) {\n let newYawAxis = Axis.Y;\n let newPitchAxis = Axis.X;\n if (options.yawAxis != null) {\n newYawAxis = options.yawAxis.clone();\n newYawAxis.normalize();\n }\n if (options.pitchAxis != null) {\n newPitchAxis = options.pitchAxis.clone();\n newPitchAxis.normalize();\n }\n const newRollAxis = Vector3.Cross(newPitchAxis, newYawAxis);\n this._transformYawPitch = Matrix.Identity();\n Matrix.FromXYZAxesToRef(newPitchAxis, newYawAxis, newRollAxis, this._transformYawPitch);\n this._transformYawPitchInv = this._transformYawPitch.clone();\n this._transformYawPitch.invert();\n }\n if (options.useAbsoluteValueForYaw !== undefined) {\n this.useAbsoluteValueForYaw = options.useAbsoluteValueForYaw;\n }\n }\n if (!bone.getParent() && this.upAxisSpace == 2 /* Space.BONE */) {\n this.upAxisSpace = 0 /* Space.LOCAL */;\n }\n }\n /**\n * Update the bone to look at the target. This should be called before the scene is rendered (use scene.registerBeforeRender())\n */\n update() {\n //skip the first frame when slerping so that the TransformNode rotation is correct\n if (this.slerpAmount < 1 && !this._firstFrameSkipped) {\n this._firstFrameSkipped = true;\n return;\n }\n const bone = this.bone;\n const bonePos = BoneLookController._TmpVecs[0];\n bone.getAbsolutePositionToRef(this.mesh, bonePos);\n let target = this.target;\n const _tmpMat1 = BoneLookController._TmpMats[0];\n const _tmpMat2 = BoneLookController._TmpMats[1];\n const mesh = this.mesh;\n const parentBone = bone.getParent();\n const upAxis = BoneLookController._TmpVecs[1];\n upAxis.copyFrom(this.upAxis);\n if (this.upAxisSpace == 2 /* Space.BONE */ && parentBone) {\n if (this._transformYawPitch) {\n Vector3.TransformCoordinatesToRef(upAxis, this._transformYawPitchInv, upAxis);\n }\n parentBone.getDirectionToRef(upAxis, this.mesh, upAxis);\n }\n else if (this.upAxisSpace == 0 /* Space.LOCAL */) {\n mesh.getDirectionToRef(upAxis, upAxis);\n if (mesh.scaling.x != 1 || mesh.scaling.y != 1 || mesh.scaling.z != 1) {\n upAxis.normalize();\n }\n }\n let checkYaw = false;\n let checkPitch = false;\n if (this._maxYaw != Math.PI || this._minYaw != -Math.PI) {\n checkYaw = true;\n }\n if (this._maxPitch != Math.PI || this._minPitch != -Math.PI) {\n checkPitch = true;\n }\n if (checkYaw || checkPitch) {\n const spaceMat = BoneLookController._TmpMats[2];\n const spaceMatInv = BoneLookController._TmpMats[3];\n if (this.upAxisSpace == 2 /* Space.BONE */ && upAxis.y == 1 && parentBone) {\n parentBone.getRotationMatrixToRef(1 /* Space.WORLD */, this.mesh, spaceMat);\n }\n else if (this.upAxisSpace == 0 /* Space.LOCAL */ && upAxis.y == 1 && !parentBone) {\n spaceMat.copyFrom(mesh.getWorldMatrix());\n }\n else {\n let forwardAxis = BoneLookController._TmpVecs[2];\n forwardAxis.copyFrom(this._fowardAxis);\n if (this._transformYawPitch) {\n Vector3.TransformCoordinatesToRef(forwardAxis, this._transformYawPitchInv, forwardAxis);\n }\n if (parentBone) {\n parentBone.getDirectionToRef(forwardAxis, this.mesh, forwardAxis);\n }\n else {\n mesh.getDirectionToRef(forwardAxis, forwardAxis);\n }\n const rightAxis = Vector3.Cross(upAxis, forwardAxis);\n rightAxis.normalize();\n forwardAxis = Vector3.Cross(rightAxis, upAxis);\n Matrix.FromXYZAxesToRef(rightAxis, upAxis, forwardAxis, spaceMat);\n }\n spaceMat.invertToRef(spaceMatInv);\n let xzlen = null;\n if (checkPitch) {\n const localTarget = BoneLookController._TmpVecs[3];\n target.subtractToRef(bonePos, localTarget);\n Vector3.TransformCoordinatesToRef(localTarget, spaceMatInv, localTarget);\n xzlen = Math.sqrt(localTarget.x * localTarget.x + localTarget.z * localTarget.z);\n const pitch = Math.atan2(localTarget.y, xzlen);\n let newPitch = pitch;\n if (pitch > this._maxPitch) {\n localTarget.y = this._maxPitchTan * xzlen;\n newPitch = this._maxPitch;\n }\n else if (pitch < this._minPitch) {\n localTarget.y = this._minPitchTan * xzlen;\n newPitch = this._minPitch;\n }\n if (pitch != newPitch) {\n Vector3.TransformCoordinatesToRef(localTarget, spaceMat, localTarget);\n localTarget.addInPlace(bonePos);\n target = localTarget;\n }\n }\n if (checkYaw) {\n const localTarget = BoneLookController._TmpVecs[4];\n target.subtractToRef(bonePos, localTarget);\n Vector3.TransformCoordinatesToRef(localTarget, spaceMatInv, localTarget);\n const yaw = Math.atan2(localTarget.x, localTarget.z);\n const yawCheck = this.useAbsoluteValueForYaw ? Math.abs(yaw) : yaw;\n let newYaw = yaw;\n if (yawCheck > this._maxYaw || yawCheck < this._minYaw) {\n if (xzlen == null) {\n xzlen = Math.sqrt(localTarget.x * localTarget.x + localTarget.z * localTarget.z);\n }\n if (this._yawRange > Math.PI) {\n if (this._isAngleBetween(yaw, this._maxYaw, this._midYawConstraint)) {\n localTarget.z = this._maxYawCos * xzlen;\n localTarget.x = this._maxYawSin * xzlen;\n newYaw = this._maxYaw;\n }\n else if (this._isAngleBetween(yaw, this._midYawConstraint, this._minYaw)) {\n localTarget.z = this._minYawCos * xzlen;\n localTarget.x = this._minYawSin * xzlen;\n newYaw = this._minYaw;\n }\n }\n else {\n if (yawCheck > this._maxYaw) {\n localTarget.z = this._maxYawCos * xzlen;\n localTarget.x = this._maxYawSin * xzlen;\n if (yaw < 0 && this.useAbsoluteValueForYaw) {\n localTarget.x *= -1;\n }\n newYaw = this._maxYaw;\n }\n else if (yawCheck < this._minYaw) {\n localTarget.z = this._minYawCos * xzlen;\n localTarget.x = this._minYawSin * xzlen;\n if (yaw < 0 && this.useAbsoluteValueForYaw) {\n localTarget.x *= -1;\n }\n newYaw = this._minYaw;\n }\n }\n }\n if (this._slerping && this._yawRange > Math.PI) {\n //are we going to be crossing into the min/max region?\n const boneFwd = BoneLookController._TmpVecs[8];\n boneFwd.copyFrom(Axis.Z);\n if (this._transformYawPitch) {\n Vector3.TransformCoordinatesToRef(boneFwd, this._transformYawPitchInv, boneFwd);\n }\n const boneRotMat = BoneLookController._TmpMats[4];\n this._boneQuat.toRotationMatrix(boneRotMat);\n this.mesh.getWorldMatrix().multiplyToRef(boneRotMat, boneRotMat);\n Vector3.TransformCoordinatesToRef(boneFwd, boneRotMat, boneFwd);\n Vector3.TransformCoordinatesToRef(boneFwd, spaceMatInv, boneFwd);\n const boneYaw = Math.atan2(boneFwd.x, boneFwd.z);\n const angBtwTar = this._getAngleBetween(boneYaw, yaw);\n const angBtwMidYaw = this._getAngleBetween(boneYaw, this._midYawConstraint);\n if (angBtwTar > angBtwMidYaw) {\n if (xzlen == null) {\n xzlen = Math.sqrt(localTarget.x * localTarget.x + localTarget.z * localTarget.z);\n }\n const angBtwMax = this._getAngleBetween(boneYaw, this._maxYaw);\n const angBtwMin = this._getAngleBetween(boneYaw, this._minYaw);\n if (angBtwMin < angBtwMax) {\n newYaw = boneYaw + Math.PI * 0.75;\n localTarget.z = Math.cos(newYaw) * xzlen;\n localTarget.x = Math.sin(newYaw) * xzlen;\n }\n else {\n newYaw = boneYaw - Math.PI * 0.75;\n localTarget.z = Math.cos(newYaw) * xzlen;\n localTarget.x = Math.sin(newYaw) * xzlen;\n }\n }\n }\n if (yaw != newYaw) {\n Vector3.TransformCoordinatesToRef(localTarget, spaceMat, localTarget);\n localTarget.addInPlace(bonePos);\n target = localTarget;\n }\n }\n }\n const zaxis = BoneLookController._TmpVecs[5];\n const xaxis = BoneLookController._TmpVecs[6];\n const yaxis = BoneLookController._TmpVecs[7];\n const tmpQuat = BoneLookController._TmpQuat;\n const boneScaling = BoneLookController._TmpVecs[9];\n target.subtractToRef(bonePos, zaxis);\n zaxis.normalize();\n Vector3.CrossToRef(upAxis, zaxis, xaxis);\n xaxis.normalize();\n Vector3.CrossToRef(zaxis, xaxis, yaxis);\n yaxis.normalize();\n Matrix.FromXYZAxesToRef(xaxis, yaxis, zaxis, _tmpMat1);\n if (xaxis.x === 0 && xaxis.y === 0 && xaxis.z === 0) {\n return;\n }\n if (yaxis.x === 0 && yaxis.y === 0 && yaxis.z === 0) {\n return;\n }\n if (zaxis.x === 0 && zaxis.y === 0 && zaxis.z === 0) {\n return;\n }\n if (this.adjustYaw || this.adjustPitch || this.adjustRoll) {\n Matrix.RotationYawPitchRollToRef(this.adjustYaw, this.adjustPitch, this.adjustRoll, _tmpMat2);\n _tmpMat2.multiplyToRef(_tmpMat1, _tmpMat1);\n }\n boneScaling.copyFrom(this.bone.getScale());\n if (this.slerpAmount < 1) {\n if (!this._slerping) {\n this.bone.getRotationQuaternionToRef(1 /* Space.WORLD */, this.mesh, this._boneQuat);\n }\n if (this._transformYawPitch) {\n this._transformYawPitch.multiplyToRef(_tmpMat1, _tmpMat1);\n }\n Quaternion.FromRotationMatrixToRef(_tmpMat1, tmpQuat);\n Quaternion.SlerpToRef(this._boneQuat, tmpQuat, this.slerpAmount, this._boneQuat);\n this.bone.setRotationQuaternion(this._boneQuat, 1 /* Space.WORLD */, this.mesh);\n this._slerping = true;\n }\n else {\n if (this._transformYawPitch) {\n this._transformYawPitch.multiplyToRef(_tmpMat1, _tmpMat1);\n }\n this.bone.setRotationMatrix(_tmpMat1, 1 /* Space.WORLD */, this.mesh);\n this._slerping = false;\n }\n this.bone.setScale(boneScaling);\n this._updateLinkedTransformRotation();\n }\n _getAngleDiff(ang1, ang2) {\n let angDiff = ang2 - ang1;\n angDiff %= Math.PI * 2;\n if (angDiff > Math.PI) {\n angDiff -= Math.PI * 2;\n }\n else if (angDiff < -Math.PI) {\n angDiff += Math.PI * 2;\n }\n return angDiff;\n }\n _getAngleBetween(ang1, ang2) {\n ang1 %= 2 * Math.PI;\n ang1 = ang1 < 0 ? ang1 + 2 * Math.PI : ang1;\n ang2 %= 2 * Math.PI;\n ang2 = ang2 < 0 ? ang2 + 2 * Math.PI : ang2;\n let ab = 0;\n if (ang1 < ang2) {\n ab = ang2 - ang1;\n }\n else {\n ab = ang1 - ang2;\n }\n if (ab > Math.PI) {\n ab = Math.PI * 2 - ab;\n }\n return ab;\n }\n _isAngleBetween(ang, ang1, ang2) {\n ang %= 2 * Math.PI;\n ang = ang < 0 ? ang + 2 * Math.PI : ang;\n ang1 %= 2 * Math.PI;\n ang1 = ang1 < 0 ? ang1 + 2 * Math.PI : ang1;\n ang2 %= 2 * Math.PI;\n ang2 = ang2 < 0 ? ang2 + 2 * Math.PI : ang2;\n if (ang1 < ang2) {\n if (ang > ang1 && ang < ang2) {\n return true;\n }\n }\n else {\n if (ang > ang2 && ang < ang1) {\n return true;\n }\n }\n return false;\n }\n _updateLinkedTransformRotation() {\n const bone = this.bone;\n if (bone._linkedTransformNode) {\n if (!bone._linkedTransformNode.rotationQuaternion) {\n bone._linkedTransformNode.rotationQuaternion = new Quaternion();\n }\n bone.getRotationQuaternionToRef(0 /* Space.LOCAL */, null, bone._linkedTransformNode.rotationQuaternion);\n }\n }\n}\nBoneLookController._TmpVecs = BuildArray(10, Vector3.Zero);\nBoneLookController._TmpQuat = Quaternion.Identity();\nBoneLookController._TmpMats = BuildArray(5, Matrix.Identity);\n","import { Buffer, VertexBuffer } from \"./buffer.js\";\nconst isLittleEndian = (() => {\n const array = new Uint8Array(4);\n const view = new Uint32Array(array.buffer);\n return !!((view[0] = 1) & array[0]);\n})();\nObject.defineProperty(VertexBuffer.prototype, \"effectiveByteStride\", {\n get: function () {\n return (this._alignedBuffer && this._alignedBuffer.byteStride) || this.byteStride;\n },\n enumerable: true,\n configurable: true,\n});\nObject.defineProperty(VertexBuffer.prototype, \"effectiveByteOffset\", {\n get: function () {\n return this._alignedBuffer ? 0 : this.byteOffset;\n },\n enumerable: true,\n configurable: true,\n});\nObject.defineProperty(VertexBuffer.prototype, \"effectiveBuffer\", {\n get: function () {\n return (this._alignedBuffer && this._alignedBuffer.getBuffer()) || this._buffer.getBuffer();\n },\n enumerable: true,\n configurable: true,\n});\nVertexBuffer.prototype._rebuild = function () {\n this._buffer?._rebuild();\n this._alignedBuffer?._rebuild();\n};\nVertexBuffer.prototype.dispose = function () {\n if (this._ownsBuffer) {\n this._buffer.dispose();\n }\n this._alignedBuffer?.dispose();\n this._alignedBuffer = undefined;\n this._isDisposed = true;\n};\nVertexBuffer.prototype.getWrapperBuffer = function () {\n return this._alignedBuffer || this._buffer;\n};\nVertexBuffer.prototype._alignBuffer = function () {\n const data = this._buffer.getData();\n if (!this.engine._features.forceVertexBufferStrideAndOffsetMultiple4Bytes || (this.byteStride % 4 === 0 && this.byteOffset % 4 === 0) || !data) {\n return;\n }\n const typeByteLength = VertexBuffer.GetTypeByteLength(this.type);\n const alignedByteStride = (this.byteStride + 3) & ~3;\n const alignedSize = alignedByteStride / typeByteLength;\n const totalVertices = this._maxVerticesCount;\n const totalByteLength = totalVertices * alignedByteStride;\n const totalLength = totalByteLength / typeByteLength;\n let sourceData;\n if (Array.isArray(data)) {\n const sourceDataAsFloat = new Float32Array(data);\n sourceData = new DataView(sourceDataAsFloat.buffer, sourceDataAsFloat.byteOffset, sourceDataAsFloat.byteLength);\n }\n else if (data instanceof ArrayBuffer) {\n sourceData = new DataView(data, 0, data.byteLength);\n }\n else {\n sourceData = new DataView(data.buffer, data.byteOffset, data.byteLength);\n }\n let alignedData;\n if (this.type === VertexBuffer.BYTE) {\n alignedData = new Int8Array(totalLength);\n }\n else if (this.type === VertexBuffer.UNSIGNED_BYTE) {\n alignedData = new Uint8Array(totalLength);\n }\n else if (this.type === VertexBuffer.SHORT) {\n alignedData = new Int16Array(totalLength);\n }\n else if (this.type === VertexBuffer.UNSIGNED_SHORT) {\n alignedData = new Uint16Array(totalLength);\n }\n else if (this.type === VertexBuffer.INT) {\n alignedData = new Int32Array(totalLength);\n }\n else if (this.type === VertexBuffer.UNSIGNED_INT) {\n alignedData = new Uint32Array(totalLength);\n }\n else {\n alignedData = new Float32Array(totalLength);\n }\n const numComponents = this.getSize();\n let sourceOffset = this.byteOffset;\n for (let i = 0; i < totalVertices; ++i) {\n for (let j = 0; j < numComponents; ++j) {\n switch (this.type) {\n case VertexBuffer.BYTE:\n alignedData[i * alignedSize + j] = sourceData.getInt8(sourceOffset + j);\n break;\n case VertexBuffer.UNSIGNED_BYTE:\n alignedData[i * alignedSize + j] = sourceData.getUint8(sourceOffset + j);\n break;\n case VertexBuffer.SHORT:\n alignedData[i * alignedSize + j] = sourceData.getInt16(sourceOffset + j * 2, isLittleEndian);\n break;\n case VertexBuffer.UNSIGNED_SHORT:\n alignedData[i * alignedSize + j] = sourceData.getUint16(sourceOffset + j * 2, isLittleEndian);\n break;\n case VertexBuffer.INT:\n alignedData[i * alignedSize + j] = sourceData.getInt32(sourceOffset + j * 4, isLittleEndian);\n break;\n case VertexBuffer.UNSIGNED_INT:\n alignedData[i * alignedSize + j] = sourceData.getUint32(sourceOffset + j * 4, isLittleEndian);\n break;\n case VertexBuffer.FLOAT:\n alignedData[i * alignedSize + j] = sourceData.getFloat32(sourceOffset + j * 4, isLittleEndian);\n break;\n }\n }\n sourceOffset += this.byteStride;\n }\n this._alignedBuffer?.dispose();\n this._alignedBuffer = new Buffer(this.engine, alignedData, false, alignedByteStride, false, this.getIsInstanced(), true, this.instanceDivisor, (this._label ?? \"VertexBuffer\") + \"_aligned\");\n};\n","import { CameraInputTypes } from \"../../Cameras/cameraInputsManager.js\";\nimport { ArcRotateCameraInputsManager } from \"../../Cameras/arcRotateCameraInputsManager.js\";\nimport { Tools } from \"../../Misc/tools.js\";\n/**\n * Add orientation input support to the input manager.\n * @returns the current input manager\n */\nArcRotateCameraInputsManager.prototype.addVRDeviceOrientation = function () {\n this.add(new ArcRotateCameraVRDeviceOrientationInput());\n return this;\n};\n/**\n * Manage the device orientation inputs (gyroscope) to control an arc rotate camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class ArcRotateCameraVRDeviceOrientationInput {\n /**\n * Instantiate a new ArcRotateCameraVRDeviceOrientationInput.\n */\n constructor() {\n /**\n * Defines a correction factor applied on the alpha value retrieved from the orientation events.\n */\n this.alphaCorrection = 1;\n /**\n * Defines a correction factor applied on the gamma value retrieved from the orientation events.\n */\n this.gammaCorrection = 1;\n this._alpha = 0;\n this._gamma = 0;\n this._dirty = false;\n this._deviceOrientationHandler = (evt) => this._onOrientationEvent(evt);\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(noPreventDefault) {\n // eslint-disable-next-line prefer-rest-params\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\n this.camera.attachControl(noPreventDefault);\n const hostWindow = this.camera.getScene().getEngine().getHostWindow();\n if (hostWindow) {\n // check iOS 13+ support\n if (typeof DeviceOrientationEvent !== \"undefined\" && typeof DeviceOrientationEvent.requestPermission === \"function\") {\n DeviceOrientationEvent\n .requestPermission()\n .then((response) => {\n if (response === \"granted\") {\n hostWindow.addEventListener(\"deviceorientation\", this._deviceOrientationHandler);\n }\n else {\n Tools.Warn(\"Permission not granted.\");\n }\n })\n .catch((error) => {\n Tools.Error(error);\n });\n }\n else {\n hostWindow.addEventListener(\"deviceorientation\", this._deviceOrientationHandler);\n }\n }\n }\n /**\n * @internal\n */\n _onOrientationEvent(evt) {\n if (evt.alpha !== null) {\n this._alpha = (+evt.alpha | 0) * this.alphaCorrection;\n }\n if (evt.gamma !== null) {\n this._gamma = (+evt.gamma | 0) * this.gammaCorrection;\n }\n this._dirty = true;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this._dirty) {\n this._dirty = false;\n if (this._gamma < 0) {\n this._gamma = 180 + this._gamma;\n }\n this.camera.alpha = (((-this._alpha / 180.0) * Math.PI) % Math.PI) * 2;\n this.camera.beta = (this._gamma / 180.0) * Math.PI;\n }\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n window.removeEventListener(\"deviceorientation\", this._deviceOrientationHandler);\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCameraVRDeviceOrientationInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"VRDeviceOrientation\";\n }\n}\nCameraInputTypes[\"ArcRotateCameraVRDeviceOrientationInput\"] = ArcRotateCameraVRDeviceOrientationInput;\n","import { __decorate } from \"../../tslib.es6.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager.js\";\nimport { KeyboardEventTypes } from \"../../Events/keyboardEvents.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Tools } from \"../../Misc/tools.js\";\n/**\n * Listen to keyboard events to control the camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class FlyCameraKeyboardInput {\n constructor() {\n /**\n * The list of keyboard keys used to control the forward move of the camera.\n */\n this.keysForward = [87];\n /**\n * The list of keyboard keys used to control the backward move of the camera.\n */\n this.keysBackward = [83];\n /**\n * The list of keyboard keys used to control the forward move of the camera.\n */\n this.keysUp = [69];\n /**\n * The list of keyboard keys used to control the backward move of the camera.\n */\n this.keysDown = [81];\n /**\n * The list of keyboard keys used to control the right strafe move of the camera.\n */\n this.keysRight = [68];\n /**\n * The list of keyboard keys used to control the left strafe move of the camera.\n */\n this.keysLeft = [65];\n this._keys = new Array();\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(noPreventDefault) {\n // eslint-disable-next-line prefer-rest-params\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\n if (this._onCanvasBlurObserver) {\n return;\n }\n this._scene = this.camera.getScene();\n this._engine = this._scene.getEngine();\n this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(() => {\n this._keys.length = 0;\n });\n this._onKeyboardObserver = this._scene.onKeyboardObservable.add((info) => {\n const evt = info.event;\n if (info.type === KeyboardEventTypes.KEYDOWN) {\n if (this.keysForward.indexOf(evt.keyCode) !== -1 ||\n this.keysBackward.indexOf(evt.keyCode) !== -1 ||\n this.keysUp.indexOf(evt.keyCode) !== -1 ||\n this.keysDown.indexOf(evt.keyCode) !== -1 ||\n this.keysLeft.indexOf(evt.keyCode) !== -1 ||\n this.keysRight.indexOf(evt.keyCode) !== -1) {\n const index = this._keys.indexOf(evt.keyCode);\n if (index === -1) {\n this._keys.push(evt.keyCode);\n }\n if (!noPreventDefault) {\n evt.preventDefault();\n }\n }\n }\n else {\n if (this.keysForward.indexOf(evt.keyCode) !== -1 ||\n this.keysBackward.indexOf(evt.keyCode) !== -1 ||\n this.keysUp.indexOf(evt.keyCode) !== -1 ||\n this.keysDown.indexOf(evt.keyCode) !== -1 ||\n this.keysLeft.indexOf(evt.keyCode) !== -1 ||\n this.keysRight.indexOf(evt.keyCode) !== -1) {\n const index = this._keys.indexOf(evt.keyCode);\n if (index >= 0) {\n this._keys.splice(index, 1);\n }\n if (!noPreventDefault) {\n evt.preventDefault();\n }\n }\n }\n });\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n if (this._scene) {\n if (this._onKeyboardObserver) {\n this._scene.onKeyboardObservable.remove(this._onKeyboardObserver);\n }\n if (this._onCanvasBlurObserver) {\n this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver);\n }\n this._onKeyboardObserver = null;\n this._onCanvasBlurObserver = null;\n }\n this._keys.length = 0;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FlyCameraKeyboardInput\";\n }\n /**\n * @internal\n */\n _onLostFocus() {\n this._keys.length = 0;\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"keyboard\";\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this._onKeyboardObserver) {\n const camera = this.camera;\n // Keyboard\n for (let index = 0; index < this._keys.length; index++) {\n const keyCode = this._keys[index];\n const speed = camera._computeLocalCameraSpeed();\n if (this.keysForward.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, speed);\n }\n else if (this.keysBackward.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, -speed);\n }\n else if (this.keysUp.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, speed, 0);\n }\n else if (this.keysDown.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, -speed, 0);\n }\n else if (this.keysRight.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(speed, 0, 0);\n }\n else if (this.keysLeft.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(-speed, 0, 0);\n }\n if (camera.getScene().useRightHandedSystem) {\n camera._localDirection.z *= -1;\n }\n camera.getViewMatrix().invertToRef(camera._cameraTransformMatrix);\n Vector3.TransformNormalToRef(camera._localDirection, camera._cameraTransformMatrix, camera._transformedDirection);\n camera.cameraDirection.addInPlace(camera._transformedDirection);\n }\n }\n }\n}\n__decorate([\n serialize()\n], FlyCameraKeyboardInput.prototype, \"keysForward\", void 0);\n__decorate([\n serialize()\n], FlyCameraKeyboardInput.prototype, \"keysBackward\", void 0);\n__decorate([\n serialize()\n], FlyCameraKeyboardInput.prototype, \"keysUp\", void 0);\n__decorate([\n serialize()\n], FlyCameraKeyboardInput.prototype, \"keysDown\", void 0);\n__decorate([\n serialize()\n], FlyCameraKeyboardInput.prototype, \"keysRight\", void 0);\n__decorate([\n serialize()\n], FlyCameraKeyboardInput.prototype, \"keysLeft\", void 0);\nCameraInputTypes[\"FlyCameraKeyboardInput\"] = FlyCameraKeyboardInput;\n","import { __decorate } from \"../../tslib.es6.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager.js\";\nimport { PointerEventTypes } from \"../../Events/pointerEvents.js\";\nimport { Quaternion } from \"../../Maths/math.vector.js\";\nimport { Axis } from \"../../Maths/math.axis.js\";\nimport { Tools } from \"../../Misc/tools.js\";\n/**\n * Listen to mouse events to control the camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class FlyCameraMouseInput {\n /**\n * Listen to mouse events to control the camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\n constructor() {\n /**\n * Defines the buttons associated with the input to handle camera rotation.\n */\n this.buttons = [0, 1, 2];\n /**\n * Assign buttons for Yaw control.\n */\n this.buttonsYaw = [-1, 0, 1];\n /**\n * Assign buttons for Pitch control.\n */\n this.buttonsPitch = [-1, 0, 1];\n /**\n * Assign buttons for Roll control.\n */\n this.buttonsRoll = [2];\n /**\n * Detect if any button is being pressed while mouse is moved.\n * -1 = Mouse locked.\n * 0 = Left button.\n * 1 = Middle Button.\n * 2 = Right Button.\n */\n this.activeButton = -1;\n /**\n * Defines the pointer's angular sensibility, to control the camera rotation speed.\n * Higher values reduce its sensitivity.\n */\n this.angularSensibility = 1000.0;\n this._previousPosition = null;\n }\n /**\n * Attach the mouse control to the HTML DOM element.\n * @param noPreventDefault Defines whether events caught by the controls should call preventdefault().\n */\n attachControl(noPreventDefault) {\n // eslint-disable-next-line prefer-rest-params\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\n this._noPreventDefault = noPreventDefault;\n this._observer = this.camera.getScene()._inputManager._addCameraPointerObserver((p) => {\n this._pointerInput(p);\n }, PointerEventTypes.POINTERDOWN | PointerEventTypes.POINTERUP | PointerEventTypes.POINTERMOVE);\n // Correct Roll by rate, if enabled.\n this._rollObserver = this.camera.getScene().onBeforeRenderObservable.add(() => {\n if (this.camera.rollCorrect) {\n this.camera.restoreRoll(this.camera.rollCorrect);\n }\n });\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n if (this._observer) {\n this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer);\n this.camera.getScene().onBeforeRenderObservable.remove(this._rollObserver);\n this._observer = null;\n this._rollObserver = null;\n this._previousPosition = null;\n this._noPreventDefault = undefined;\n }\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name.\n */\n getClassName() {\n return \"FlyCameraMouseInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input's friendly name.\n */\n getSimpleName() {\n return \"mouse\";\n }\n // Track mouse movement, when the pointer is not locked.\n _pointerInput(p) {\n const e = p.event;\n const camera = this.camera;\n const engine = camera.getEngine();\n if (!this.touchEnabled && e.pointerType === \"touch\") {\n return;\n }\n // Mouse is moved but an unknown mouse button is pressed.\n if (p.type !== PointerEventTypes.POINTERMOVE && this.buttons.indexOf(e.button) === -1) {\n return;\n }\n const srcElement = e.target;\n // Mouse down.\n if (p.type === PointerEventTypes.POINTERDOWN) {\n try {\n srcElement?.setPointerCapture(e.pointerId);\n }\n catch (e) {\n // Nothing to do with the error. Execution continues.\n }\n this._previousPosition = {\n x: e.clientX,\n y: e.clientY,\n };\n this.activeButton = e.button;\n if (!this._noPreventDefault) {\n e.preventDefault();\n }\n // This is required to move while pointer button is down\n if (engine.isPointerLock) {\n this._onMouseMove(p.event);\n }\n }\n // Mouse up.\n else if (p.type === PointerEventTypes.POINTERUP) {\n try {\n srcElement?.releasePointerCapture(e.pointerId);\n }\n catch (e) {\n // Nothing to do with the error. Execution continues.\n }\n this.activeButton = -1;\n this._previousPosition = null;\n if (!this._noPreventDefault) {\n e.preventDefault();\n }\n }\n // Mouse move.\n else if (p.type === PointerEventTypes.POINTERMOVE) {\n if (!this._previousPosition) {\n if (engine.isPointerLock) {\n this._onMouseMove(p.event);\n }\n return;\n }\n const offsetX = e.clientX - this._previousPosition.x;\n const offsetY = e.clientY - this._previousPosition.y;\n this._rotateCamera(offsetX, offsetY);\n this._previousPosition = {\n x: e.clientX,\n y: e.clientY,\n };\n if (!this._noPreventDefault) {\n e.preventDefault();\n }\n }\n }\n // Track mouse movement, when pointer is locked.\n _onMouseMove(e) {\n const camera = this.camera;\n const engine = camera.getEngine();\n if (!engine.isPointerLock) {\n return;\n }\n const offsetX = e.movementX;\n const offsetY = e.movementY;\n this._rotateCamera(offsetX, offsetY);\n this._previousPosition = null;\n if (!this._noPreventDefault) {\n e.preventDefault();\n }\n }\n /**\n * Rotate camera by mouse offset.\n * @param offsetX\n * @param offsetY\n */\n _rotateCamera(offsetX, offsetY) {\n const camera = this.camera;\n const handednessMultiplier = camera._calculateHandednessMultiplier();\n offsetX *= handednessMultiplier;\n const x = offsetX / this.angularSensibility;\n const y = offsetY / this.angularSensibility;\n // Initialize to current rotation.\n const currentRotation = Quaternion.RotationYawPitchRoll(camera.rotation.y, camera.rotation.x, camera.rotation.z);\n let rotationChange;\n // Pitch.\n if (this.buttonsPitch.some((v) => {\n return v === this.activeButton;\n })) {\n // Apply change in Radians to vector Angle.\n rotationChange = Quaternion.RotationAxis(Axis.X, y);\n // Apply Pitch to quaternion.\n currentRotation.multiplyInPlace(rotationChange);\n }\n // Yaw.\n if (this.buttonsYaw.some((v) => {\n return v === this.activeButton;\n })) {\n // Apply change in Radians to vector Angle.\n rotationChange = Quaternion.RotationAxis(Axis.Y, x);\n // Apply Yaw to quaternion.\n currentRotation.multiplyInPlace(rotationChange);\n // Add Roll, if banked turning is enabled, within Roll limit.\n const limit = camera.bankedTurnLimit + camera._trackRoll; // Defaults to 90° plus manual roll.\n if (camera.bankedTurn && -limit < camera.rotation.z && camera.rotation.z < limit) {\n const bankingDelta = camera.bankedTurnMultiplier * -x;\n // Apply change in Radians to vector Angle.\n rotationChange = Quaternion.RotationAxis(Axis.Z, bankingDelta);\n // Apply Yaw to quaternion.\n currentRotation.multiplyInPlace(rotationChange);\n }\n }\n // Roll.\n if (this.buttonsRoll.some((v) => {\n return v === this.activeButton;\n })) {\n // Apply change in Radians to vector Angle.\n rotationChange = Quaternion.RotationAxis(Axis.Z, -x);\n // Track Rolling.\n camera._trackRoll -= x;\n // Apply Pitch to quaternion.\n currentRotation.multiplyInPlace(rotationChange);\n }\n // Apply rotationQuaternion to Euler camera.rotation.\n currentRotation.toEulerAnglesToRef(camera.rotation);\n }\n}\n__decorate([\n serialize()\n], FlyCameraMouseInput.prototype, \"buttons\", void 0);\n__decorate([\n serialize()\n], FlyCameraMouseInput.prototype, \"angularSensibility\", void 0);\nCameraInputTypes[\"FlyCameraMouseInput\"] = FlyCameraMouseInput;\n","import { __decorate } from \"../../tslib.es6.js\";\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { KeyboardEventTypes } from \"../../Events/keyboardEvents.js\";\nimport { Tools } from \"../../Misc/tools.js\";\n/**\n * Manage the keyboard inputs to control the movement of a follow camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class FollowCameraKeyboardMoveInput {\n constructor() {\n /**\n * Defines the list of key codes associated with the up action (increase heightOffset)\n */\n this.keysHeightOffsetIncr = [38];\n /**\n * Defines the list of key codes associated with the down action (decrease heightOffset)\n */\n this.keysHeightOffsetDecr = [40];\n /**\n * Defines whether the Alt modifier key is required to move up/down (alter heightOffset)\n */\n this.keysHeightOffsetModifierAlt = false;\n /**\n * Defines whether the Ctrl modifier key is required to move up/down (alter heightOffset)\n */\n this.keysHeightOffsetModifierCtrl = false;\n /**\n * Defines whether the Shift modifier key is required to move up/down (alter heightOffset)\n */\n this.keysHeightOffsetModifierShift = false;\n /**\n * Defines the list of key codes associated with the left action (increase rotationOffset)\n */\n this.keysRotationOffsetIncr = [37];\n /**\n * Defines the list of key codes associated with the right action (decrease rotationOffset)\n */\n this.keysRotationOffsetDecr = [39];\n /**\n * Defines whether the Alt modifier key is required to move left/right (alter rotationOffset)\n */\n this.keysRotationOffsetModifierAlt = false;\n /**\n * Defines whether the Ctrl modifier key is required to move left/right (alter rotationOffset)\n */\n this.keysRotationOffsetModifierCtrl = false;\n /**\n * Defines whether the Shift modifier key is required to move left/right (alter rotationOffset)\n */\n this.keysRotationOffsetModifierShift = false;\n /**\n * Defines the list of key codes associated with the zoom-in action (decrease radius)\n */\n this.keysRadiusIncr = [40];\n /**\n * Defines the list of key codes associated with the zoom-out action (increase radius)\n */\n this.keysRadiusDecr = [38];\n /**\n * Defines whether the Alt modifier key is required to zoom in/out (alter radius value)\n */\n this.keysRadiusModifierAlt = true;\n /**\n * Defines whether the Ctrl modifier key is required to zoom in/out (alter radius value)\n */\n this.keysRadiusModifierCtrl = false;\n /**\n * Defines whether the Shift modifier key is required to zoom in/out (alter radius value)\n */\n this.keysRadiusModifierShift = false;\n /**\n * Defines the rate of change of heightOffset.\n */\n this.heightSensibility = 1;\n /**\n * Defines the rate of change of rotationOffset.\n */\n this.rotationSensibility = 1;\n /**\n * Defines the rate of change of radius.\n */\n this.radiusSensibility = 1;\n this._keys = new Array();\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(noPreventDefault) {\n // eslint-disable-next-line prefer-rest-params\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\n if (this._onCanvasBlurObserver) {\n return;\n }\n this._scene = this.camera.getScene();\n this._engine = this._scene.getEngine();\n this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(() => {\n this._keys.length = 0;\n });\n this._onKeyboardObserver = this._scene.onKeyboardObservable.add((info) => {\n const evt = info.event;\n if (!evt.metaKey) {\n if (info.type === KeyboardEventTypes.KEYDOWN) {\n this._ctrlPressed = evt.ctrlKey;\n this._altPressed = evt.altKey;\n this._shiftPressed = evt.shiftKey;\n if (this.keysHeightOffsetIncr.indexOf(evt.keyCode) !== -1 ||\n this.keysHeightOffsetDecr.indexOf(evt.keyCode) !== -1 ||\n this.keysRotationOffsetIncr.indexOf(evt.keyCode) !== -1 ||\n this.keysRotationOffsetDecr.indexOf(evt.keyCode) !== -1 ||\n this.keysRadiusIncr.indexOf(evt.keyCode) !== -1 ||\n this.keysRadiusDecr.indexOf(evt.keyCode) !== -1) {\n const index = this._keys.indexOf(evt.keyCode);\n if (index === -1) {\n this._keys.push(evt.keyCode);\n }\n if (evt.preventDefault) {\n if (!noPreventDefault) {\n evt.preventDefault();\n }\n }\n }\n }\n else {\n if (this.keysHeightOffsetIncr.indexOf(evt.keyCode) !== -1 ||\n this.keysHeightOffsetDecr.indexOf(evt.keyCode) !== -1 ||\n this.keysRotationOffsetIncr.indexOf(evt.keyCode) !== -1 ||\n this.keysRotationOffsetDecr.indexOf(evt.keyCode) !== -1 ||\n this.keysRadiusIncr.indexOf(evt.keyCode) !== -1 ||\n this.keysRadiusDecr.indexOf(evt.keyCode) !== -1) {\n const index = this._keys.indexOf(evt.keyCode);\n if (index >= 0) {\n this._keys.splice(index, 1);\n }\n if (evt.preventDefault) {\n if (!noPreventDefault) {\n evt.preventDefault();\n }\n }\n }\n }\n }\n });\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n if (this._scene) {\n if (this._onKeyboardObserver) {\n this._scene.onKeyboardObservable.remove(this._onKeyboardObserver);\n }\n if (this._onCanvasBlurObserver) {\n this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver);\n }\n this._onKeyboardObserver = null;\n this._onCanvasBlurObserver = null;\n }\n this._keys.length = 0;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this._onKeyboardObserver) {\n this._keys.forEach((keyCode) => {\n if (this.keysHeightOffsetIncr.indexOf(keyCode) !== -1 && this._modifierHeightOffset()) {\n this.camera.heightOffset += this.heightSensibility;\n }\n else if (this.keysHeightOffsetDecr.indexOf(keyCode) !== -1 && this._modifierHeightOffset()) {\n this.camera.heightOffset -= this.heightSensibility;\n }\n else if (this.keysRotationOffsetIncr.indexOf(keyCode) !== -1 && this._modifierRotationOffset()) {\n this.camera.rotationOffset += this.rotationSensibility;\n this.camera.rotationOffset %= 360;\n }\n else if (this.keysRotationOffsetDecr.indexOf(keyCode) !== -1 && this._modifierRotationOffset()) {\n this.camera.rotationOffset -= this.rotationSensibility;\n this.camera.rotationOffset %= 360;\n }\n else if (this.keysRadiusIncr.indexOf(keyCode) !== -1 && this._modifierRadius()) {\n this.camera.radius += this.radiusSensibility;\n }\n else if (this.keysRadiusDecr.indexOf(keyCode) !== -1 && this._modifierRadius()) {\n this.camera.radius -= this.radiusSensibility;\n }\n });\n }\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FollowCameraKeyboardMoveInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"keyboard\";\n }\n /**\n * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to\n * allow modification of the heightOffset value.\n * @returns true if modifier keys match\n */\n _modifierHeightOffset() {\n return (this.keysHeightOffsetModifierAlt === this._altPressed &&\n this.keysHeightOffsetModifierCtrl === this._ctrlPressed &&\n this.keysHeightOffsetModifierShift === this._shiftPressed);\n }\n /**\n * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to\n * allow modification of the rotationOffset value.\n * @returns true if modifier keys match\n */\n _modifierRotationOffset() {\n return (this.keysRotationOffsetModifierAlt === this._altPressed &&\n this.keysRotationOffsetModifierCtrl === this._ctrlPressed &&\n this.keysRotationOffsetModifierShift === this._shiftPressed);\n }\n /**\n * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to\n * allow modification of the radius value.\n * @returns true if modifier keys match\n */\n _modifierRadius() {\n return this.keysRadiusModifierAlt === this._altPressed && this.keysRadiusModifierCtrl === this._ctrlPressed && this.keysRadiusModifierShift === this._shiftPressed;\n }\n}\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysHeightOffsetIncr\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysHeightOffsetDecr\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysHeightOffsetModifierAlt\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysHeightOffsetModifierCtrl\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysHeightOffsetModifierShift\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysRotationOffsetIncr\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysRotationOffsetDecr\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysRotationOffsetModifierAlt\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysRotationOffsetModifierCtrl\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysRotationOffsetModifierShift\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysRadiusIncr\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysRadiusDecr\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysRadiusModifierAlt\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysRadiusModifierCtrl\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"keysRadiusModifierShift\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"heightSensibility\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"rotationSensibility\", void 0);\n__decorate([\n serialize()\n], FollowCameraKeyboardMoveInput.prototype, \"radiusSensibility\", void 0);\nCameraInputTypes[\"FollowCameraKeyboardMoveInput\"] = FollowCameraKeyboardMoveInput;\n","import { __decorate } from \"../../tslib.es6.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager.js\";\nimport { PointerEventTypes } from \"../../Events/pointerEvents.js\";\nimport { Tools } from \"../../Misc/tools.js\";\nimport { Logger } from \"../../Misc/logger.js\";\n/**\n * Manage the mouse wheel inputs to control a follow camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class FollowCameraMouseWheelInput {\n constructor() {\n /**\n * Moue wheel controls zoom. (Mouse wheel modifies camera.radius value.)\n */\n this.axisControlRadius = true;\n /**\n * Moue wheel controls height. (Mouse wheel modifies camera.heightOffset value.)\n */\n this.axisControlHeight = false;\n /**\n * Moue wheel controls angle. (Mouse wheel modifies camera.rotationOffset value.)\n */\n this.axisControlRotation = false;\n /**\n * Gets or Set the mouse wheel precision or how fast is the camera moves in\n * relation to mouseWheel events.\n */\n this.wheelPrecision = 3.0;\n /**\n * wheelDeltaPercentage will be used instead of wheelPrecision if different from 0.\n * It defines the percentage of current camera.radius to use as delta when wheel is used.\n */\n this.wheelDeltaPercentage = 0;\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(noPreventDefault) {\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\n this._wheel = (p) => {\n // sanity check - this should be a PointerWheel event.\n if (p.type !== PointerEventTypes.POINTERWHEEL) {\n return;\n }\n const event = p.event;\n let delta = 0;\n const wheelDelta = Math.max(-1, Math.min(1, event.deltaY));\n if (this.wheelDeltaPercentage) {\n if (+this.axisControlRadius + +this.axisControlHeight + +this.axisControlRotation) {\n Logger.Warn(\"wheelDeltaPercentage only usable when mouse wheel \" +\n \"controls ONE axis. \" +\n \"Currently enabled: \" +\n \"axisControlRadius: \" +\n this.axisControlRadius +\n \", axisControlHeightOffset: \" +\n this.axisControlHeight +\n \", axisControlRotationOffset: \" +\n this.axisControlRotation);\n }\n if (this.axisControlRadius) {\n delta = wheelDelta * 0.01 * this.wheelDeltaPercentage * this.camera.radius;\n }\n else if (this.axisControlHeight) {\n delta = wheelDelta * 0.01 * this.wheelDeltaPercentage * this.camera.heightOffset;\n }\n else if (this.axisControlRotation) {\n delta = wheelDelta * 0.01 * this.wheelDeltaPercentage * this.camera.rotationOffset;\n }\n }\n else {\n delta = wheelDelta * this.wheelPrecision;\n }\n if (delta) {\n if (this.axisControlRadius) {\n this.camera.radius += delta;\n }\n else if (this.axisControlHeight) {\n this.camera.heightOffset -= delta;\n }\n else if (this.axisControlRotation) {\n this.camera.rotationOffset -= delta;\n }\n }\n if (event.preventDefault) {\n if (!noPreventDefault) {\n event.preventDefault();\n }\n }\n };\n this._observer = this.camera.getScene()._inputManager._addCameraPointerObserver(this._wheel, PointerEventTypes.POINTERWHEEL);\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n if (this._observer) {\n this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer);\n this._observer = null;\n this._wheel = null;\n }\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCameraMouseWheelInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"mousewheel\";\n }\n}\n__decorate([\n serialize()\n], FollowCameraMouseWheelInput.prototype, \"axisControlRadius\", void 0);\n__decorate([\n serialize()\n], FollowCameraMouseWheelInput.prototype, \"axisControlHeight\", void 0);\n__decorate([\n serialize()\n], FollowCameraMouseWheelInput.prototype, \"axisControlRotation\", void 0);\n__decorate([\n serialize()\n], FollowCameraMouseWheelInput.prototype, \"wheelPrecision\", void 0);\n__decorate([\n serialize()\n], FollowCameraMouseWheelInput.prototype, \"wheelDeltaPercentage\", void 0);\nCameraInputTypes[\"FollowCameraMouseWheelInput\"] = FollowCameraMouseWheelInput;\n","import { __decorate } from \"../../tslib.es6.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager.js\";\nimport { BaseCameraPointersInput } from \"../../Cameras/Inputs/BaseCameraPointersInput.js\";\nimport { Logger } from \"../../Misc/logger.js\";\n/**\n * Manage the pointers inputs to control an follow camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class FollowCameraPointersInput extends BaseCameraPointersInput {\n constructor() {\n super(...arguments);\n /**\n * Defines the pointer angular sensibility along the X axis or how fast is\n * the camera rotating.\n * A negative number will reverse the axis direction.\n */\n this.angularSensibilityX = 1;\n /**\n * Defines the pointer angular sensibility along the Y axis or how fast is\n * the camera rotating.\n * A negative number will reverse the axis direction.\n */\n this.angularSensibilityY = 1;\n /**\n * Defines the pointer pinch precision or how fast is the camera zooming.\n * A negative number will reverse the axis direction.\n */\n this.pinchPrecision = 10000.0;\n /**\n * pinchDeltaPercentage will be used instead of pinchPrecision if different\n * from 0.\n * It defines the percentage of current camera.radius to use as delta when\n * pinch zoom is used.\n */\n this.pinchDeltaPercentage = 0;\n /**\n * Pointer X axis controls zoom. (X axis modifies camera.radius value.)\n */\n this.axisXControlRadius = false;\n /**\n * Pointer X axis controls height. (X axis modifies camera.heightOffset value.)\n */\n this.axisXControlHeight = false;\n /**\n * Pointer X axis controls angle. (X axis modifies camera.rotationOffset value.)\n */\n this.axisXControlRotation = true;\n /**\n * Pointer Y axis controls zoom. (Y axis modifies camera.radius value.)\n */\n this.axisYControlRadius = false;\n /**\n * Pointer Y axis controls height. (Y axis modifies camera.heightOffset value.)\n */\n this.axisYControlHeight = true;\n /**\n * Pointer Y axis controls angle. (Y axis modifies camera.rotationOffset value.)\n */\n this.axisYControlRotation = false;\n /**\n * Pinch controls zoom. (Pinch modifies camera.radius value.)\n */\n this.axisPinchControlRadius = true;\n /**\n * Pinch controls height. (Pinch modifies camera.heightOffset value.)\n */\n this.axisPinchControlHeight = false;\n /**\n * Pinch controls angle. (Pinch modifies camera.rotationOffset value.)\n */\n this.axisPinchControlRotation = false;\n /**\n * Log error messages if basic misconfiguration has occurred.\n */\n this.warningEnable = true;\n /* Check for obvious misconfiguration. */\n this._warningCounter = 0;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FollowCameraPointersInput\";\n }\n onTouch(pointA, offsetX, offsetY) {\n this._warning();\n if (this.axisXControlRotation) {\n this.camera.rotationOffset += offsetX / this.angularSensibilityX;\n }\n else if (this.axisYControlRotation) {\n this.camera.rotationOffset += offsetY / this.angularSensibilityX;\n }\n if (this.axisXControlHeight) {\n this.camera.heightOffset += offsetX / this.angularSensibilityY;\n }\n else if (this.axisYControlHeight) {\n this.camera.heightOffset += offsetY / this.angularSensibilityY;\n }\n if (this.axisXControlRadius) {\n this.camera.radius -= offsetX / this.angularSensibilityY;\n }\n else if (this.axisYControlRadius) {\n this.camera.radius -= offsetY / this.angularSensibilityY;\n }\n }\n onMultiTouch(pointA, pointB, previousPinchSquaredDistance, pinchSquaredDistance, previousMultiTouchPanPosition, multiTouchPanPosition) {\n if (previousPinchSquaredDistance === 0 && previousMultiTouchPanPosition === null) {\n // First time this method is called for new pinch.\n // Next time this is called there will be a\n // previousPinchSquaredDistance and pinchSquaredDistance to compare.\n return;\n }\n if (pinchSquaredDistance === 0 && multiTouchPanPosition === null) {\n // Last time this method is called at the end of a pinch.\n return;\n }\n let pinchDelta = (pinchSquaredDistance - previousPinchSquaredDistance) / ((this.pinchPrecision * (this.angularSensibilityX + this.angularSensibilityY)) / 2);\n if (this.pinchDeltaPercentage) {\n pinchDelta *= 0.01 * this.pinchDeltaPercentage;\n if (this.axisPinchControlRotation) {\n this.camera.rotationOffset += pinchDelta * this.camera.rotationOffset;\n }\n if (this.axisPinchControlHeight) {\n this.camera.heightOffset += pinchDelta * this.camera.heightOffset;\n }\n if (this.axisPinchControlRadius) {\n this.camera.radius -= pinchDelta * this.camera.radius;\n }\n }\n else {\n if (this.axisPinchControlRotation) {\n this.camera.rotationOffset += pinchDelta;\n }\n if (this.axisPinchControlHeight) {\n this.camera.heightOffset += pinchDelta;\n }\n if (this.axisPinchControlRadius) {\n this.camera.radius -= pinchDelta;\n }\n }\n }\n _warning() {\n if (!this.warningEnable || this._warningCounter++ % 100 !== 0) {\n return;\n }\n const warn = \"It probably only makes sense to control ONE camera \" + \"property with each pointer axis. Set 'warningEnable = false' \" + \"if you are sure. Currently enabled: \";\n if (+this.axisXControlRotation + +this.axisXControlHeight + +this.axisXControlRadius <= 1) {\n Logger.Warn(warn +\n \"axisXControlRotation: \" +\n this.axisXControlRotation +\n \", axisXControlHeight: \" +\n this.axisXControlHeight +\n \", axisXControlRadius: \" +\n this.axisXControlRadius);\n }\n if (+this.axisYControlRotation + +this.axisYControlHeight + +this.axisYControlRadius <= 1) {\n Logger.Warn(warn +\n \"axisYControlRotation: \" +\n this.axisYControlRotation +\n \", axisYControlHeight: \" +\n this.axisYControlHeight +\n \", axisYControlRadius: \" +\n this.axisYControlRadius);\n }\n if (+this.axisPinchControlRotation + +this.axisPinchControlHeight + +this.axisPinchControlRadius <= 1) {\n Logger.Warn(warn +\n \"axisPinchControlRotation: \" +\n this.axisPinchControlRotation +\n \", axisPinchControlHeight: \" +\n this.axisPinchControlHeight +\n \", axisPinchControlRadius: \" +\n this.axisPinchControlRadius);\n }\n }\n}\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"angularSensibilityX\", void 0);\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"angularSensibilityY\", void 0);\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"pinchPrecision\", void 0);\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"pinchDeltaPercentage\", void 0);\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"axisXControlRadius\", void 0);\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"axisXControlHeight\", void 0);\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"axisXControlRotation\", void 0);\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"axisYControlRadius\", void 0);\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"axisYControlHeight\", void 0);\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"axisYControlRotation\", void 0);\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"axisPinchControlRadius\", void 0);\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"axisPinchControlHeight\", void 0);\n__decorate([\n serialize()\n], FollowCameraPointersInput.prototype, \"axisPinchControlRotation\", void 0);\nCameraInputTypes[\"FollowCameraPointersInput\"] = FollowCameraPointersInput;\n","import { Vector3, Vector2 } from \"../Maths/math.vector.js\";\nimport { StringDictionary } from \"./stringDictionary.js\";\n// Mainly based on these 2 articles :\n// Creating an universal virtual touch joystick working for all Touch models thanks to Hand.JS : http://blogs.msdn.com/b/davrous/archive/2013/02/22/creating-an-universal-virtual-touch-joystick-working-for-all-touch-models-thanks-to-hand-js.aspx\n// & on Seb Lee-Delisle original work: http://seb.ly/2011/04/multi-touch-game-controller-in-javascripthtml5-for-ipad/\n/**\n * Defines the potential axis of a Joystick\n */\nexport var JoystickAxis;\n(function (JoystickAxis) {\n /** X axis */\n JoystickAxis[JoystickAxis[\"X\"] = 0] = \"X\";\n /** Y axis */\n JoystickAxis[JoystickAxis[\"Y\"] = 1] = \"Y\";\n /** Z axis */\n JoystickAxis[JoystickAxis[\"Z\"] = 2] = \"Z\";\n})(JoystickAxis || (JoystickAxis = {}));\n/**\n * Class used to define virtual joystick (used in touch mode)\n */\nexport class VirtualJoystick {\n static _GetDefaultOptions() {\n return {\n puckSize: 40,\n containerSize: 60,\n color: \"cyan\",\n puckImage: undefined,\n containerImage: undefined,\n position: undefined,\n alwaysVisible: false,\n limitToContainer: false,\n };\n }\n /**\n * Creates a new virtual joystick\n * @param leftJoystick defines that the joystick is for left hand (false by default)\n * @param customizations Defines the options we want to customize the VirtualJoystick\n */\n constructor(leftJoystick, customizations) {\n this._released = false;\n const options = {\n ...VirtualJoystick._GetDefaultOptions(),\n ...customizations,\n };\n if (leftJoystick) {\n this._leftJoystick = true;\n }\n else {\n this._leftJoystick = false;\n }\n VirtualJoystick._GlobalJoystickIndex++;\n // By default left & right arrow keys are moving the X\n // and up & down keys are moving the Y\n this._axisTargetedByLeftAndRight = 0 /* JoystickAxis.X */;\n this._axisTargetedByUpAndDown = 1 /* JoystickAxis.Y */;\n this.reverseLeftRight = false;\n this.reverseUpDown = false;\n // collections of pointers\n this._touches = new StringDictionary();\n this.deltaPosition = Vector3.Zero();\n this._joystickSensibility = 25;\n this._inversedSensibility = 1 / (this._joystickSensibility / 1000);\n this._onResize = () => {\n VirtualJoystick._VJCanvasWidth = window.innerWidth;\n VirtualJoystick._VJCanvasHeight = window.innerHeight;\n if (VirtualJoystick.Canvas) {\n VirtualJoystick.Canvas.width = VirtualJoystick._VJCanvasWidth;\n VirtualJoystick.Canvas.height = VirtualJoystick._VJCanvasHeight;\n }\n VirtualJoystick._HalfWidth = VirtualJoystick._VJCanvasWidth / 2;\n };\n // injecting a canvas element on top of the canvas 3D game\n if (!VirtualJoystick.Canvas) {\n window.addEventListener(\"resize\", this._onResize, false);\n VirtualJoystick.Canvas = document.createElement(\"canvas\");\n VirtualJoystick._VJCanvasWidth = window.innerWidth;\n VirtualJoystick._VJCanvasHeight = window.innerHeight;\n VirtualJoystick.Canvas.width = window.innerWidth;\n VirtualJoystick.Canvas.height = window.innerHeight;\n VirtualJoystick.Canvas.style.width = \"100%\";\n VirtualJoystick.Canvas.style.height = \"100%\";\n VirtualJoystick.Canvas.style.position = \"absolute\";\n VirtualJoystick.Canvas.style.backgroundColor = \"transparent\";\n VirtualJoystick.Canvas.style.top = \"0px\";\n VirtualJoystick.Canvas.style.left = \"0px\";\n VirtualJoystick.Canvas.style.zIndex = \"5\";\n VirtualJoystick.Canvas.style.touchAction = \"none\"; // fix https://forum.babylonjs.com/t/virtualjoystick-needs-to-set-style-touch-action-none-explicitly/9562\n // Support for jQuery PEP polyfill\n VirtualJoystick.Canvas.setAttribute(\"touch-action\", \"none\");\n const context = VirtualJoystick.Canvas.getContext(\"2d\");\n if (!context) {\n throw new Error(\"Unable to create canvas for virtual joystick\");\n }\n VirtualJoystick._VJCanvasContext = context;\n VirtualJoystick._VJCanvasContext.strokeStyle = \"#ffffff\";\n VirtualJoystick._VJCanvasContext.lineWidth = 2;\n document.body.appendChild(VirtualJoystick.Canvas);\n }\n VirtualJoystick._HalfWidth = VirtualJoystick.Canvas.width / 2;\n this.pressed = false;\n this.limitToContainer = options.limitToContainer;\n // default joystick color\n this._joystickColor = options.color;\n // default joystick size\n this.containerSize = options.containerSize;\n this.puckSize = options.puckSize;\n if (options.position) {\n this.setPosition(options.position.x, options.position.y);\n }\n if (options.puckImage) {\n this.setPuckImage(options.puckImage);\n }\n if (options.containerImage) {\n this.setContainerImage(options.containerImage);\n }\n if (options.alwaysVisible) {\n VirtualJoystick._AlwaysVisibleSticks++;\n }\n // must come after position potentially set\n this.alwaysVisible = options.alwaysVisible;\n this._joystickPointerId = -1;\n // current joystick position\n this._joystickPointerPos = new Vector2(0, 0);\n this._joystickPreviousPointerPos = new Vector2(0, 0);\n // origin joystick position\n this._joystickPointerStartPos = new Vector2(0, 0);\n this._deltaJoystickVector = new Vector2(0, 0);\n this._onPointerDownHandlerRef = (evt) => {\n this._onPointerDown(evt);\n };\n this._onPointerMoveHandlerRef = (evt) => {\n this._onPointerMove(evt);\n };\n this._onPointerUpHandlerRef = (evt) => {\n this._onPointerUp(evt);\n };\n VirtualJoystick.Canvas.addEventListener(\"pointerdown\", this._onPointerDownHandlerRef, false);\n VirtualJoystick.Canvas.addEventListener(\"pointermove\", this._onPointerMoveHandlerRef, false);\n VirtualJoystick.Canvas.addEventListener(\"pointerup\", this._onPointerUpHandlerRef, false);\n VirtualJoystick.Canvas.addEventListener(\"pointerout\", this._onPointerUpHandlerRef, false);\n VirtualJoystick.Canvas.addEventListener(\"contextmenu\", (evt) => {\n evt.preventDefault(); // Disables system menu\n }, false);\n requestAnimationFrame(() => {\n this._drawVirtualJoystick();\n });\n }\n /**\n * Defines joystick sensibility (ie. the ratio between a physical move and virtual joystick position change)\n * @param newJoystickSensibility defines the new sensibility\n */\n setJoystickSensibility(newJoystickSensibility) {\n this._joystickSensibility = newJoystickSensibility;\n this._inversedSensibility = 1 / (this._joystickSensibility / 1000);\n }\n _onPointerDown(e) {\n let positionOnScreenCondition;\n e.preventDefault();\n if (this._leftJoystick === true) {\n positionOnScreenCondition = e.clientX < VirtualJoystick._HalfWidth;\n }\n else {\n positionOnScreenCondition = e.clientX > VirtualJoystick._HalfWidth;\n }\n if (positionOnScreenCondition && this._joystickPointerId < 0) {\n // First contact will be dedicated to the virtual joystick\n this._joystickPointerId = e.pointerId;\n if (this._joystickPosition) {\n this._joystickPointerStartPos = this._joystickPosition.clone();\n this._joystickPointerPos = this._joystickPosition.clone();\n this._joystickPreviousPointerPos = this._joystickPosition.clone();\n // in case the user only clicks down && doesn't move:\n // this ensures the delta is properly set\n this._onPointerMove(e);\n }\n else {\n this._joystickPointerStartPos.x = e.clientX;\n this._joystickPointerStartPos.y = e.clientY;\n this._joystickPointerPos = this._joystickPointerStartPos.clone();\n this._joystickPreviousPointerPos = this._joystickPointerStartPos.clone();\n }\n this._deltaJoystickVector.x = 0;\n this._deltaJoystickVector.y = 0;\n this.pressed = true;\n this._touches.add(e.pointerId.toString(), e);\n }\n else {\n // You can only trigger the action buttons with a joystick declared\n if (VirtualJoystick._GlobalJoystickIndex < 2 && this._action) {\n this._action();\n this._touches.add(e.pointerId.toString(), { x: e.clientX, y: e.clientY, prevX: e.clientX, prevY: e.clientY });\n }\n }\n }\n _onPointerMove(e) {\n // If the current pointer is the one associated to the joystick (first touch contact)\n if (this._joystickPointerId == e.pointerId) {\n // limit to container if need be\n if (this.limitToContainer) {\n const vector = new Vector2(e.clientX - this._joystickPointerStartPos.x, e.clientY - this._joystickPointerStartPos.y);\n const distance = vector.length();\n if (distance > this.containerSize) {\n vector.scaleInPlace(this.containerSize / distance);\n }\n this._joystickPointerPos.x = this._joystickPointerStartPos.x + vector.x;\n this._joystickPointerPos.y = this._joystickPointerStartPos.y + vector.y;\n }\n else {\n this._joystickPointerPos.x = e.clientX;\n this._joystickPointerPos.y = e.clientY;\n }\n // create delta vector\n this._deltaJoystickVector = this._joystickPointerPos.clone();\n this._deltaJoystickVector = this._deltaJoystickVector.subtract(this._joystickPointerStartPos);\n // if a joystick is always visible, there will be clipping issues if\n // you drag the puck from one over the container of the other\n if (0 < VirtualJoystick._AlwaysVisibleSticks) {\n if (this._leftJoystick) {\n this._joystickPointerPos.x = Math.min(VirtualJoystick._HalfWidth, this._joystickPointerPos.x);\n }\n else {\n this._joystickPointerPos.x = Math.max(VirtualJoystick._HalfWidth, this._joystickPointerPos.x);\n }\n }\n const directionLeftRight = this.reverseLeftRight ? -1 : 1;\n const deltaJoystickX = (directionLeftRight * this._deltaJoystickVector.x) / this._inversedSensibility;\n switch (this._axisTargetedByLeftAndRight) {\n case 0 /* JoystickAxis.X */:\n this.deltaPosition.x = Math.min(1, Math.max(-1, deltaJoystickX));\n break;\n case 1 /* JoystickAxis.Y */:\n this.deltaPosition.y = Math.min(1, Math.max(-1, deltaJoystickX));\n break;\n case 2 /* JoystickAxis.Z */:\n this.deltaPosition.z = Math.min(1, Math.max(-1, deltaJoystickX));\n break;\n }\n const directionUpDown = this.reverseUpDown ? 1 : -1;\n const deltaJoystickY = (directionUpDown * this._deltaJoystickVector.y) / this._inversedSensibility;\n switch (this._axisTargetedByUpAndDown) {\n case 0 /* JoystickAxis.X */:\n this.deltaPosition.x = Math.min(1, Math.max(-1, deltaJoystickY));\n break;\n case 1 /* JoystickAxis.Y */:\n this.deltaPosition.y = Math.min(1, Math.max(-1, deltaJoystickY));\n break;\n case 2 /* JoystickAxis.Z */:\n this.deltaPosition.z = Math.min(1, Math.max(-1, deltaJoystickY));\n break;\n }\n }\n else {\n const data = this._touches.get(e.pointerId.toString());\n if (data) {\n data.x = e.clientX;\n data.y = e.clientY;\n }\n }\n }\n _onPointerUp(e) {\n if (this._joystickPointerId == e.pointerId) {\n this._clearPreviousDraw();\n this._joystickPointerId = -1;\n this.pressed = false;\n }\n else {\n const touch = this._touches.get(e.pointerId.toString());\n if (touch) {\n VirtualJoystick._VJCanvasContext.clearRect(touch.prevX - 44, touch.prevY - 44, 88, 88);\n }\n }\n this._deltaJoystickVector.x = 0;\n this._deltaJoystickVector.y = 0;\n this._touches.remove(e.pointerId.toString());\n }\n /**\n * Change the color of the virtual joystick\n * @param newColor a string that must be a CSS color value (like \"red\") or the hexa value (like \"#FF0000\")\n */\n setJoystickColor(newColor) {\n this._joystickColor = newColor;\n }\n /**\n * Size of the joystick's container\n */\n set containerSize(newSize) {\n this._joystickContainerSize = newSize;\n this._clearContainerSize = ~~(this._joystickContainerSize * 2.1);\n this._clearContainerSizeOffset = ~~(this._clearContainerSize / 2);\n }\n get containerSize() {\n return this._joystickContainerSize;\n }\n /**\n * Size of the joystick's puck\n */\n set puckSize(newSize) {\n this._joystickPuckSize = newSize;\n this._clearPuckSize = ~~(this._joystickPuckSize * 2.1);\n this._clearPuckSizeOffset = ~~(this._clearPuckSize / 2);\n }\n get puckSize() {\n return this._joystickPuckSize;\n }\n /**\n * Clears the set position of the joystick\n */\n clearPosition() {\n this.alwaysVisible = false;\n this._joystickPosition = null;\n }\n /**\n * Defines whether or not the joystick container is always visible\n */\n set alwaysVisible(value) {\n if (this._alwaysVisible === value) {\n return;\n }\n if (value && this._joystickPosition) {\n VirtualJoystick._AlwaysVisibleSticks++;\n this._alwaysVisible = true;\n }\n else {\n VirtualJoystick._AlwaysVisibleSticks--;\n this._alwaysVisible = false;\n }\n }\n get alwaysVisible() {\n return this._alwaysVisible;\n }\n /**\n * Sets the constant position of the Joystick container\n * @param x X axis coordinate\n * @param y Y axis coordinate\n */\n setPosition(x, y) {\n // just in case position is moved while the container is visible\n if (this._joystickPointerStartPos) {\n this._clearPreviousDraw();\n }\n this._joystickPosition = new Vector2(x, y);\n }\n /**\n * Defines a callback to call when the joystick is touched\n * @param action defines the callback\n */\n setActionOnTouch(action) {\n this._action = action;\n }\n /**\n * Defines which axis you'd like to control for left & right\n * @param axis defines the axis to use\n */\n setAxisForLeftRight(axis) {\n switch (axis) {\n case 0 /* JoystickAxis.X */:\n case 1 /* JoystickAxis.Y */:\n case 2 /* JoystickAxis.Z */:\n this._axisTargetedByLeftAndRight = axis;\n break;\n default:\n this._axisTargetedByLeftAndRight = 0 /* JoystickAxis.X */;\n break;\n }\n }\n /**\n * Defines which axis you'd like to control for up & down\n * @param axis defines the axis to use\n */\n setAxisForUpDown(axis) {\n switch (axis) {\n case 0 /* JoystickAxis.X */:\n case 1 /* JoystickAxis.Y */:\n case 2 /* JoystickAxis.Z */:\n this._axisTargetedByUpAndDown = axis;\n break;\n default:\n this._axisTargetedByUpAndDown = 1 /* JoystickAxis.Y */;\n break;\n }\n }\n /**\n * Clears the canvas from the previous puck / container draw\n */\n _clearPreviousDraw() {\n const jp = this._joystickPosition || this._joystickPointerStartPos;\n // clear container pixels\n VirtualJoystick._VJCanvasContext.clearRect(jp.x - this._clearContainerSizeOffset, jp.y - this._clearContainerSizeOffset, this._clearContainerSize, this._clearContainerSize);\n // clear puck pixels + 1 pixel for the change made before it moved\n VirtualJoystick._VJCanvasContext.clearRect(this._joystickPreviousPointerPos.x - this._clearPuckSizeOffset - 1, this._joystickPreviousPointerPos.y - this._clearPuckSizeOffset - 1, this._clearPuckSize + 2, this._clearPuckSize + 2);\n }\n /**\n * Loads `urlPath` to be used for the container's image\n * @param urlPath defines the urlPath of an image to use\n */\n setContainerImage(urlPath) {\n const image = new Image();\n image.src = urlPath;\n image.onload = () => (this._containerImage = image);\n }\n /**\n * Loads `urlPath` to be used for the puck's image\n * @param urlPath defines the urlPath of an image to use\n */\n setPuckImage(urlPath) {\n const image = new Image();\n image.src = urlPath;\n image.onload = () => (this._puckImage = image);\n }\n /**\n * Draws the Virtual Joystick's container\n */\n _drawContainer() {\n const jp = this._joystickPosition || this._joystickPointerStartPos;\n this._clearPreviousDraw();\n if (this._containerImage) {\n VirtualJoystick._VJCanvasContext.drawImage(this._containerImage, jp.x - this.containerSize, jp.y - this.containerSize, this.containerSize * 2, this.containerSize * 2);\n }\n else {\n // outer container\n VirtualJoystick._VJCanvasContext.beginPath();\n VirtualJoystick._VJCanvasContext.strokeStyle = this._joystickColor;\n VirtualJoystick._VJCanvasContext.lineWidth = 2;\n VirtualJoystick._VJCanvasContext.arc(jp.x, jp.y, this.containerSize, 0, Math.PI * 2, true);\n VirtualJoystick._VJCanvasContext.stroke();\n VirtualJoystick._VJCanvasContext.closePath();\n // inner container\n VirtualJoystick._VJCanvasContext.beginPath();\n VirtualJoystick._VJCanvasContext.lineWidth = 6;\n VirtualJoystick._VJCanvasContext.strokeStyle = this._joystickColor;\n VirtualJoystick._VJCanvasContext.arc(jp.x, jp.y, this.puckSize, 0, Math.PI * 2, true);\n VirtualJoystick._VJCanvasContext.stroke();\n VirtualJoystick._VJCanvasContext.closePath();\n }\n }\n /**\n * Draws the Virtual Joystick's puck\n */\n _drawPuck() {\n if (this._puckImage) {\n VirtualJoystick._VJCanvasContext.drawImage(this._puckImage, this._joystickPointerPos.x - this.puckSize, this._joystickPointerPos.y - this.puckSize, this.puckSize * 2, this.puckSize * 2);\n }\n else {\n VirtualJoystick._VJCanvasContext.beginPath();\n VirtualJoystick._VJCanvasContext.strokeStyle = this._joystickColor;\n VirtualJoystick._VJCanvasContext.lineWidth = 2;\n VirtualJoystick._VJCanvasContext.arc(this._joystickPointerPos.x, this._joystickPointerPos.y, this.puckSize, 0, Math.PI * 2, true);\n VirtualJoystick._VJCanvasContext.stroke();\n VirtualJoystick._VJCanvasContext.closePath();\n }\n }\n _drawVirtualJoystick() {\n // canvas released? don't continue iterating\n if (this._released) {\n return;\n }\n if (this.alwaysVisible) {\n this._drawContainer();\n }\n if (this.pressed) {\n this._touches.forEach((key, touch) => {\n if (touch.pointerId === this._joystickPointerId) {\n if (!this.alwaysVisible) {\n this._drawContainer();\n }\n this._drawPuck();\n // store current pointer for next clear\n this._joystickPreviousPointerPos = this._joystickPointerPos.clone();\n }\n else {\n VirtualJoystick._VJCanvasContext.clearRect(touch.prevX - 44, touch.prevY - 44, 88, 88);\n VirtualJoystick._VJCanvasContext.beginPath();\n VirtualJoystick._VJCanvasContext.fillStyle = \"white\";\n VirtualJoystick._VJCanvasContext.beginPath();\n VirtualJoystick._VJCanvasContext.strokeStyle = \"red\";\n VirtualJoystick._VJCanvasContext.lineWidth = 6;\n VirtualJoystick._VJCanvasContext.arc(touch.x, touch.y, 40, 0, Math.PI * 2, true);\n VirtualJoystick._VJCanvasContext.stroke();\n VirtualJoystick._VJCanvasContext.closePath();\n touch.prevX = touch.x;\n touch.prevY = touch.y;\n }\n });\n }\n requestAnimationFrame(() => {\n this._drawVirtualJoystick();\n });\n }\n /**\n * Release internal HTML canvas\n */\n releaseCanvas() {\n if (VirtualJoystick.Canvas) {\n VirtualJoystick.Canvas.removeEventListener(\"pointerdown\", this._onPointerDownHandlerRef);\n VirtualJoystick.Canvas.removeEventListener(\"pointermove\", this._onPointerMoveHandlerRef);\n VirtualJoystick.Canvas.removeEventListener(\"pointerup\", this._onPointerUpHandlerRef);\n VirtualJoystick.Canvas.removeEventListener(\"pointerout\", this._onPointerUpHandlerRef);\n window.removeEventListener(\"resize\", this._onResize);\n document.body.removeChild(VirtualJoystick.Canvas);\n VirtualJoystick.Canvas = null;\n }\n this._released = true;\n }\n}\n// Used to draw the virtual joystick inside a 2D canvas on top of the WebGL rendering canvas\nVirtualJoystick._GlobalJoystickIndex = 0;\nVirtualJoystick._AlwaysVisibleSticks = 0;\n","import { VirtualJoystick } from \"../../Misc/virtualJoystick.js\";\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager.js\";\nimport { Matrix, Vector3 } from \"../../Maths/math.vector.js\";\nimport { FreeCameraInputsManager } from \"../../Cameras/freeCameraInputsManager.js\";\n/**\n * Add virtual joystick input support to the input manager.\n * @returns the current input manager\n */\nFreeCameraInputsManager.prototype.addVirtualJoystick = function () {\n this.add(new FreeCameraVirtualJoystickInput());\n return this;\n};\n/**\n * Manage the Virtual Joystick inputs to control the movement of a free camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class FreeCameraVirtualJoystickInput {\n /**\n * Gets the left stick of the virtual joystick.\n * @returns The virtual Joystick\n */\n getLeftJoystick() {\n return this._leftjoystick;\n }\n /**\n * Gets the right stick of the virtual joystick.\n * @returns The virtual Joystick\n */\n getRightJoystick() {\n return this._rightjoystick;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this._leftjoystick) {\n const camera = this.camera;\n const speed = camera._computeLocalCameraSpeed() * 50;\n const cameraTransform = Matrix.RotationYawPitchRoll(camera.rotation.y, camera.rotation.x, 0);\n const deltaTransform = Vector3.TransformCoordinates(new Vector3(this._leftjoystick.deltaPosition.x * speed, this._leftjoystick.deltaPosition.y * speed, this._leftjoystick.deltaPosition.z * speed), cameraTransform);\n camera.cameraDirection = camera.cameraDirection.add(deltaTransform);\n camera.cameraRotation = camera.cameraRotation.addVector3(this._rightjoystick.deltaPosition);\n if (!this._leftjoystick.pressed) {\n this._leftjoystick.deltaPosition = this._leftjoystick.deltaPosition.scale(0.9);\n }\n if (!this._rightjoystick.pressed) {\n this._rightjoystick.deltaPosition = this._rightjoystick.deltaPosition.scale(0.9);\n }\n }\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n */\n attachControl() {\n this._leftjoystick = new VirtualJoystick(true);\n this._leftjoystick.setAxisForUpDown(2 /* JoystickAxis.Z */);\n this._leftjoystick.setAxisForLeftRight(0 /* JoystickAxis.X */);\n this._leftjoystick.setJoystickSensibility(0.15);\n this._rightjoystick = new VirtualJoystick(false);\n this._rightjoystick.setAxisForUpDown(0 /* JoystickAxis.X */);\n this._rightjoystick.setAxisForLeftRight(1 /* JoystickAxis.Y */);\n this._rightjoystick.reverseUpDown = true;\n this._rightjoystick.setJoystickSensibility(0.05);\n this._rightjoystick.setJoystickColor(\"yellow\");\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this._leftjoystick.releaseCanvas();\n this._rightjoystick.releaseCanvas();\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FreeCameraVirtualJoystickInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"virtualJoystick\";\n }\n}\nCameraInputTypes[\"FreeCameraVirtualJoystickInput\"] = FreeCameraVirtualJoystickInput;\n","import { CameraInputsManager } from \"./cameraInputsManager.js\";\nimport { FlyCameraMouseInput } from \"../Cameras/Inputs/flyCameraMouseInput.js\";\nimport { FlyCameraKeyboardInput } from \"../Cameras/Inputs/flyCameraKeyboardInput.js\";\n/**\n * Default Inputs manager for the FlyCamera.\n * It groups all the default supported inputs for ease of use.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class FlyCameraInputsManager extends CameraInputsManager {\n /**\n * Instantiates a new FlyCameraInputsManager.\n * @param camera Defines the camera the inputs belong to.\n */\n constructor(camera) {\n super(camera);\n }\n /**\n * Add keyboard input support to the input manager.\n * @returns the new FlyCameraKeyboardMoveInput().\n */\n addKeyboard() {\n this.add(new FlyCameraKeyboardInput());\n return this;\n }\n /**\n * Add mouse input support to the input manager.\n * @returns the new FlyCameraMouseInput().\n */\n addMouse() {\n this.add(new FlyCameraMouseInput());\n return this;\n }\n}\n","import { __decorate } from \"../tslib.es6.js\";\nimport { serialize, serializeAsVector3 } from \"../Misc/decorators.js\";\nimport { Vector3 } from \"../Maths/math.vector.js\";\nimport { TargetCamera } from \"./targetCamera.js\";\nimport { FlyCameraInputsManager } from \"./flyCameraInputsManager.js\";\nimport { Tools } from \"../Misc/tools.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { AbstractEngine } from \"../Engines/abstractEngine.js\";\n/**\n * This is a flying camera, designed for 3D movement and rotation in all directions,\n * such as in a 3D Space Shooter or a Flight Simulator.\n */\nexport class FlyCamera extends TargetCamera {\n /**\n * Gets the input sensibility for mouse input.\n * Higher values reduce sensitivity.\n */\n get angularSensibility() {\n const mouse = this.inputs.attached[\"mouse\"];\n if (mouse) {\n return mouse.angularSensibility;\n }\n return 0;\n }\n /**\n * Sets the input sensibility for a mouse input.\n * Higher values reduce sensitivity.\n */\n set angularSensibility(value) {\n const mouse = this.inputs.attached[\"mouse\"];\n if (mouse) {\n mouse.angularSensibility = value;\n }\n }\n /**\n * Get the keys for camera movement forward.\n */\n get keysForward() {\n const keyboard = this.inputs.attached[\"keyboard\"];\n if (keyboard) {\n return keyboard.keysForward;\n }\n return [];\n }\n /**\n * Set the keys for camera movement forward.\n */\n set keysForward(value) {\n const keyboard = this.inputs.attached[\"keyboard\"];\n if (keyboard) {\n keyboard.keysForward = value;\n }\n }\n /**\n * Get the keys for camera movement backward.\n */\n get keysBackward() {\n const keyboard = this.inputs.attached[\"keyboard\"];\n if (keyboard) {\n return keyboard.keysBackward;\n }\n return [];\n }\n set keysBackward(value) {\n const keyboard = this.inputs.attached[\"keyboard\"];\n if (keyboard) {\n keyboard.keysBackward = value;\n }\n }\n /**\n * Get the keys for camera movement up.\n */\n get keysUp() {\n const keyboard = this.inputs.attached[\"keyboard\"];\n if (keyboard) {\n return keyboard.keysUp;\n }\n return [];\n }\n /**\n * Set the keys for camera movement up.\n */\n set keysUp(value) {\n const keyboard = this.inputs.attached[\"keyboard\"];\n if (keyboard) {\n keyboard.keysUp = value;\n }\n }\n /**\n * Get the keys for camera movement down.\n */\n get keysDown() {\n const keyboard = this.inputs.attached[\"keyboard\"];\n if (keyboard) {\n return keyboard.keysDown;\n }\n return [];\n }\n /**\n * Set the keys for camera movement down.\n */\n set keysDown(value) {\n const keyboard = this.inputs.attached[\"keyboard\"];\n if (keyboard) {\n keyboard.keysDown = value;\n }\n }\n /**\n * Get the keys for camera movement left.\n */\n get keysLeft() {\n const keyboard = this.inputs.attached[\"keyboard\"];\n if (keyboard) {\n return keyboard.keysLeft;\n }\n return [];\n }\n /**\n * Set the keys for camera movement left.\n */\n set keysLeft(value) {\n const keyboard = this.inputs.attached[\"keyboard\"];\n if (keyboard) {\n keyboard.keysLeft = value;\n }\n }\n /**\n * Set the keys for camera movement right.\n */\n get keysRight() {\n const keyboard = this.inputs.attached[\"keyboard\"];\n if (keyboard) {\n return keyboard.keysRight;\n }\n return [];\n }\n /**\n * Set the keys for camera movement right.\n */\n set keysRight(value) {\n const keyboard = this.inputs.attached[\"keyboard\"];\n if (keyboard) {\n keyboard.keysRight = value;\n }\n }\n /**\n * Instantiates a FlyCamera.\n * This is a flying camera, designed for 3D movement and rotation in all directions,\n * such as in a 3D Space Shooter or a Flight Simulator.\n * @param name Define the name of the camera in the scene.\n * @param position Define the starting position of the camera in the scene.\n * @param scene Define the scene the camera belongs to.\n * @param setActiveOnSceneIfNoneActive Defines whether the camera should be marked as active, if no other camera has been defined as active.\n */\n constructor(name, position, scene, setActiveOnSceneIfNoneActive = true) {\n super(name, position, scene, setActiveOnSceneIfNoneActive);\n /**\n * Define the collision ellipsoid of the camera.\n * This is helpful for simulating a camera body, like a player's body.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_collisions#arcrotatecamera\n */\n this.ellipsoid = new Vector3(1, 1, 1);\n /**\n * Define an offset for the position of the ellipsoid around the camera.\n * This can be helpful if the camera is attached away from the player's body center,\n * such as at its head.\n */\n this.ellipsoidOffset = new Vector3(0, 0, 0);\n /**\n * Enable or disable collisions of the camera with the rest of the scene objects.\n */\n this.checkCollisions = false;\n /**\n * Enable or disable gravity on the camera.\n */\n this.applyGravity = false;\n /**\n * Define the current direction the camera is moving to.\n */\n this.cameraDirection = Vector3.Zero();\n /**\n * Track Roll to maintain the wanted Rolling when looking around.\n */\n this._trackRoll = 0;\n /**\n * Slowly correct the Roll to its original value after a Pitch+Yaw rotation.\n */\n this.rollCorrect = 100;\n /**\n * Mimic a banked turn, Rolling the camera when Yawing.\n * It's recommended to use rollCorrect = 10 for faster banking correction.\n */\n this.bankedTurn = false;\n /**\n * Limit in radians for how much Roll banking will add. (Default: 90°)\n */\n this.bankedTurnLimit = Math.PI / 2;\n /**\n * Value of 0 disables the banked Roll.\n * Value of 1 is equal to the Yaw angle in radians.\n */\n this.bankedTurnMultiplier = 1;\n this._needMoveForGravity = false;\n this._oldPosition = Vector3.Zero();\n this._diffPosition = Vector3.Zero();\n this._newPosition = Vector3.Zero();\n // Collisions.\n this._collisionMask = -1;\n /**\n * @internal\n */\n this._onCollisionPositionChange = (collisionId, newPosition, collidedMesh = null) => {\n const updatePosition = (newPos) => {\n this._newPosition.copyFrom(newPos);\n this._newPosition.subtractToRef(this._oldPosition, this._diffPosition);\n if (this._diffPosition.length() > AbstractEngine.CollisionsEpsilon) {\n this.position.addInPlace(this._diffPosition);\n if (this.onCollide && collidedMesh) {\n this.onCollide(collidedMesh);\n }\n }\n };\n updatePosition(newPosition);\n };\n this.inputs = new FlyCameraInputsManager(this);\n this.inputs.addKeyboard().addMouse();\n }\n /**\n * Attached controls to the current camera.\n * @param ignored defines an ignored parameter kept for backward compatibility.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(ignored, noPreventDefault) {\n // eslint-disable-next-line prefer-rest-params\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\n this.inputs.attachElement(noPreventDefault);\n }\n /**\n * Detach a control from the HTML DOM element.\n * The camera will stop reacting to that input.\n */\n detachControl() {\n this.inputs.detachElement();\n this.cameraDirection = new Vector3(0, 0, 0);\n }\n /**\n * Get the mask that the camera ignores in collision events.\n */\n get collisionMask() {\n return this._collisionMask;\n }\n /**\n * Set the mask that the camera ignores in collision events.\n */\n set collisionMask(mask) {\n this._collisionMask = !isNaN(mask) ? mask : -1;\n }\n /**\n * @internal\n */\n _collideWithWorld(displacement) {\n let globalPosition;\n if (this.parent) {\n globalPosition = Vector3.TransformCoordinates(this.position, this.parent.getWorldMatrix());\n }\n else {\n globalPosition = this.position;\n }\n globalPosition.subtractFromFloatsToRef(0, this.ellipsoid.y, 0, this._oldPosition);\n this._oldPosition.addInPlace(this.ellipsoidOffset);\n const coordinator = this.getScene().collisionCoordinator;\n if (!this._collider) {\n this._collider = coordinator.createCollider();\n }\n this._collider._radius = this.ellipsoid;\n this._collider.collisionMask = this._collisionMask;\n // No need for clone, as long as gravity is not on.\n let actualDisplacement = displacement;\n // Add gravity to direction to prevent dual-collision checking.\n if (this.applyGravity) {\n // This prevents mending with cameraDirection, a global variable of the fly camera class.\n actualDisplacement = displacement.add(this.getScene().gravity);\n }\n coordinator.getNewPosition(this._oldPosition, actualDisplacement, this._collider, 3, null, this._onCollisionPositionChange, this.uniqueId);\n }\n /** @internal */\n _checkInputs() {\n if (!this._localDirection) {\n this._localDirection = Vector3.Zero();\n this._transformedDirection = Vector3.Zero();\n }\n this.inputs.checkInputs();\n super._checkInputs();\n }\n /**\n * Enable movement without a user input. This allows gravity to always be applied.\n */\n set needMoveForGravity(value) {\n this._needMoveForGravity = value;\n }\n /**\n * When true, gravity is applied whether there is user input or not.\n */\n get needMoveForGravity() {\n return this._needMoveForGravity;\n }\n /** @internal */\n _decideIfNeedsToMove() {\n return this._needMoveForGravity || Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0;\n }\n /** @internal */\n _updatePosition() {\n if (this.checkCollisions && this.getScene().collisionsEnabled) {\n this._collideWithWorld(this.cameraDirection);\n }\n else {\n super._updatePosition();\n }\n }\n /**\n * Restore the Roll to its target value at the rate specified.\n * @param rate - Higher means slower restoring.\n * @internal\n */\n restoreRoll(rate) {\n const limit = this._trackRoll; // Target Roll.\n const z = this.rotation.z; // Current Roll.\n const delta = limit - z; // Difference in Roll.\n const minRad = 0.001; // Tenth of a radian is a barely noticable difference.\n // If the difference is noticable, restore the Roll.\n if (Math.abs(delta) >= minRad) {\n // Change Z rotation towards the target Roll.\n this.rotation.z += delta / rate;\n // Match when near enough.\n if (Math.abs(limit - this.rotation.z) <= minRad) {\n this.rotation.z = limit;\n }\n }\n }\n /**\n * Destroy the camera and release the current resources held by it.\n */\n dispose() {\n this.inputs.clear();\n super.dispose();\n }\n /**\n * Get the current object class name.\n * @returns the class name.\n */\n getClassName() {\n return \"FlyCamera\";\n }\n}\n__decorate([\n serializeAsVector3()\n], FlyCamera.prototype, \"ellipsoid\", void 0);\n__decorate([\n serializeAsVector3()\n], FlyCamera.prototype, \"ellipsoidOffset\", void 0);\n__decorate([\n serialize()\n], FlyCamera.prototype, \"checkCollisions\", void 0);\n__decorate([\n serialize()\n], FlyCamera.prototype, \"applyGravity\", void 0);\n// Register Class Name\nRegisterClass(\"BABYLON.FlyCamera\", FlyCamera);\n","import { Logger } from \"../Misc/logger.js\";\nimport { CameraInputsManager } from \"./cameraInputsManager.js\";\nimport { FollowCameraKeyboardMoveInput } from \"./Inputs/followCameraKeyboardMoveInput.js\";\nimport { FollowCameraMouseWheelInput } from \"./Inputs/followCameraMouseWheelInput.js\";\nimport { FollowCameraPointersInput } from \"./Inputs/followCameraPointersInput.js\";\n/**\n * Default Inputs manager for the FollowCamera.\n * It groups all the default supported inputs for ease of use.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class FollowCameraInputsManager extends CameraInputsManager {\n /**\n * Instantiates a new FollowCameraInputsManager.\n * @param camera Defines the camera the inputs belong to\n */\n constructor(camera) {\n super(camera);\n }\n /**\n * Add keyboard input support to the input manager.\n * @returns the current input manager\n */\n addKeyboard() {\n this.add(new FollowCameraKeyboardMoveInput());\n return this;\n }\n /**\n * Add mouse wheel input support to the input manager.\n * @returns the current input manager\n */\n addMouseWheel() {\n this.add(new FollowCameraMouseWheelInput());\n return this;\n }\n /**\n * Add pointers input support to the input manager.\n * @returns the current input manager\n */\n addPointers() {\n this.add(new FollowCameraPointersInput());\n return this;\n }\n /**\n * Add orientation input support to the input manager.\n * @returns the current input manager\n */\n addVRDeviceOrientation() {\n Logger.Warn(\"DeviceOrientation support not yet implemented for FollowCamera.\");\n return this;\n }\n}\n","import { __decorate } from \"../tslib.es6.js\";\nimport { serialize, serializeAsMeshReference } from \"../Misc/decorators.js\";\nimport { Tools } from \"../Misc/tools.js\";\nimport { TargetCamera } from \"./targetCamera.js\";\nimport { TmpVectors, Vector3 } from \"../Maths/math.vector.js\";\nimport { Node } from \"../node.js\";\nimport { FollowCameraInputsManager } from \"./followCameraInputsManager.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nNode.AddNodeConstructor(\"FollowCamera\", (name, scene) => {\n return () => new FollowCamera(name, Vector3.Zero(), scene);\n});\nNode.AddNodeConstructor(\"ArcFollowCamera\", (name, scene) => {\n return () => new ArcFollowCamera(name, 0, 0, 1.0, null, scene);\n});\n/**\n * A follow camera takes a mesh as a target and follows it as it moves. Both a free camera version followCamera and\n * an arc rotate version arcFollowCamera are available.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n */\nexport class FollowCamera extends TargetCamera {\n /**\n * Instantiates the follow camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n * @param name Define the name of the camera in the scene\n * @param position Define the position of the camera\n * @param scene Define the scene the camera belong to\n * @param lockedTarget Define the target of the camera\n */\n constructor(name, position, scene, lockedTarget = null) {\n super(name, position, scene);\n /**\n * Distance the follow camera should follow an object at\n */\n this.radius = 12;\n /**\n * Minimum allowed distance of the camera to the axis of rotation\n * (The camera can not get closer).\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.lowerRadiusLimit = null;\n /**\n * Maximum allowed distance of the camera to the axis of rotation\n * (The camera can not get further).\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.upperRadiusLimit = null;\n /**\n * Define a rotation offset between the camera and the object it follows\n */\n this.rotationOffset = 0;\n /**\n * Minimum allowed angle to camera position relative to target object.\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.lowerRotationOffsetLimit = null;\n /**\n * Maximum allowed angle to camera position relative to target object.\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.upperRotationOffsetLimit = null;\n /**\n * Define a height offset between the camera and the object it follows.\n * It can help following an object from the top (like a car chasing a plane)\n */\n this.heightOffset = 4;\n /**\n * Minimum allowed height of camera position relative to target object.\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.lowerHeightOffsetLimit = null;\n /**\n * Maximum allowed height of camera position relative to target object.\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.upperHeightOffsetLimit = null;\n /**\n * Define how fast the camera can accelerate to follow it s target.\n */\n this.cameraAcceleration = 0.05;\n /**\n * Define the speed limit of the camera following an object.\n */\n this.maxCameraSpeed = 20;\n this.lockedTarget = lockedTarget;\n this.inputs = new FollowCameraInputsManager(this);\n this.inputs.addKeyboard().addMouseWheel().addPointers();\n // Uncomment the following line when the relevant handlers have been implemented.\n // this.inputs.addKeyboard().addMouseWheel().addPointers().addVRDeviceOrientation();\n }\n _follow(cameraTarget) {\n if (!cameraTarget) {\n return;\n }\n const rotMatrix = TmpVectors.Matrix[0];\n cameraTarget.absoluteRotationQuaternion.toRotationMatrix(rotMatrix);\n const yRotation = Math.atan2(rotMatrix.m[8], rotMatrix.m[10]);\n const radians = Tools.ToRadians(this.rotationOffset) + yRotation;\n const targetPosition = cameraTarget.getAbsolutePosition();\n const targetX = targetPosition.x + Math.sin(radians) * this.radius;\n const targetZ = targetPosition.z + Math.cos(radians) * this.radius;\n const dx = targetX - this.position.x;\n const dy = targetPosition.y + this.heightOffset - this.position.y;\n const dz = targetZ - this.position.z;\n let vx = dx * this.cameraAcceleration * 2; //this is set to .05\n let vy = dy * this.cameraAcceleration;\n let vz = dz * this.cameraAcceleration * 2;\n if (vx > this.maxCameraSpeed || vx < -this.maxCameraSpeed) {\n vx = vx < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed;\n }\n if (vy > this.maxCameraSpeed || vy < -this.maxCameraSpeed) {\n vy = vy < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed;\n }\n if (vz > this.maxCameraSpeed || vz < -this.maxCameraSpeed) {\n vz = vz < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed;\n }\n this.position = new Vector3(this.position.x + vx, this.position.y + vy, this.position.z + vz);\n this.setTarget(targetPosition);\n }\n /**\n * Attached controls to the current camera.\n * @param ignored defines an ignored parameter kept for backward compatibility.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(ignored, noPreventDefault) {\n // eslint-disable-next-line prefer-rest-params\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\n this.inputs.attachElement(noPreventDefault);\n this._reset = () => { };\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this.inputs.detachElement();\n if (this._reset) {\n this._reset();\n }\n }\n /** @internal */\n _checkInputs() {\n this.inputs.checkInputs();\n this._checkLimits();\n super._checkInputs();\n if (this.lockedTarget) {\n this._follow(this.lockedTarget);\n }\n }\n _checkLimits() {\n if (this.lowerRadiusLimit !== null && this.radius < this.lowerRadiusLimit) {\n this.radius = this.lowerRadiusLimit;\n }\n if (this.upperRadiusLimit !== null && this.radius > this.upperRadiusLimit) {\n this.radius = this.upperRadiusLimit;\n }\n if (this.lowerHeightOffsetLimit !== null && this.heightOffset < this.lowerHeightOffsetLimit) {\n this.heightOffset = this.lowerHeightOffsetLimit;\n }\n if (this.upperHeightOffsetLimit !== null && this.heightOffset > this.upperHeightOffsetLimit) {\n this.heightOffset = this.upperHeightOffsetLimit;\n }\n if (this.lowerRotationOffsetLimit !== null && this.rotationOffset < this.lowerRotationOffsetLimit) {\n this.rotationOffset = this.lowerRotationOffsetLimit;\n }\n if (this.upperRotationOffsetLimit !== null && this.rotationOffset > this.upperRotationOffsetLimit) {\n this.rotationOffset = this.upperRotationOffsetLimit;\n }\n }\n /**\n * Gets the camera class name.\n * @returns the class name\n */\n getClassName() {\n return \"FollowCamera\";\n }\n}\n__decorate([\n serialize()\n], FollowCamera.prototype, \"radius\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"lowerRadiusLimit\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"upperRadiusLimit\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"rotationOffset\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"lowerRotationOffsetLimit\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"upperRotationOffsetLimit\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"heightOffset\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"lowerHeightOffsetLimit\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"upperHeightOffsetLimit\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"cameraAcceleration\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"maxCameraSpeed\", void 0);\n__decorate([\n serializeAsMeshReference(\"lockedTargetId\")\n], FollowCamera.prototype, \"lockedTarget\", void 0);\n/**\n * Arc Rotate version of the follow camera.\n * It still follows a Defined mesh but in an Arc Rotate Camera fashion.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n */\nexport class ArcFollowCamera extends TargetCamera {\n /**\n * Instantiates a new ArcFollowCamera\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n * @param name Define the name of the camera\n * @param alpha Define the rotation angle of the camera around the longitudinal axis\n * @param beta Define the rotation angle of the camera around the elevation axis\n * @param radius Define the radius of the camera from its target point\n * @param target Define the target of the camera\n * @param scene Define the scene the camera belongs to\n */\n constructor(name, \n /** The longitudinal angle of the camera */\n alpha, \n /** The latitudinal angle of the camera */\n beta, \n /** The radius of the camera from its target */\n radius, \n /** Define the camera target (the mesh it should follow) */\n target, scene) {\n super(name, Vector3.Zero(), scene);\n this.alpha = alpha;\n this.beta = beta;\n this.radius = radius;\n this._cartesianCoordinates = Vector3.Zero();\n this.setMeshTarget(target);\n }\n /**\n * Sets the mesh to follow with this camera.\n * @param target the target to follow\n */\n setMeshTarget(target) {\n this._meshTarget = target;\n this._follow();\n }\n _follow() {\n if (!this._meshTarget) {\n return;\n }\n this._cartesianCoordinates.x = this.radius * Math.cos(this.alpha) * Math.cos(this.beta);\n this._cartesianCoordinates.y = this.radius * Math.sin(this.beta);\n this._cartesianCoordinates.z = this.radius * Math.sin(this.alpha) * Math.cos(this.beta);\n const targetPosition = this._meshTarget.getAbsolutePosition();\n this.position = targetPosition.add(this._cartesianCoordinates);\n this.setTarget(targetPosition);\n }\n /** @internal */\n _checkInputs() {\n super._checkInputs();\n this._follow();\n }\n /**\n * Returns the class name of the object.\n * It is mostly used internally for serialization purposes.\n * @returns the class name\n */\n getClassName() {\n return \"ArcFollowCamera\";\n }\n}\n// Register Class Name\nRegisterClass(\"BABYLON.FollowCamera\", FollowCamera);\nRegisterClass(\"BABYLON.ArcFollowCamera\", ArcFollowCamera);\n","import { UniversalCamera } from \"./universalCamera.js\";\nimport { Vector3 } from \"../Maths/math.vector.js\";\nimport { Node } from \"../node.js\";\nNode.AddNodeConstructor(\"GamepadCamera\", (name, scene) => {\n return () => new GamepadCamera(name, Vector3.Zero(), scene);\n});\n/**\n * This represents a FPS type of camera. This is only here for back compat purpose.\n * Please use the UniversalCamera instead as both are identical.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#universal-camera\n */\nexport class GamepadCamera extends UniversalCamera {\n /**\n * Instantiates a new Gamepad Camera\n * This represents a FPS type of camera. This is only here for back compat purpose.\n * Please use the UniversalCamera instead as both are identical.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#universal-camera\n * @param name Define the name of the camera in the scene\n * @param position Define the start position of the camera in the scene\n * @param scene Define the scene the camera belongs to\n */\n constructor(name, position, scene) {\n super(name, position, scene);\n }\n /**\n * Gets the current object class name.\n * @returns the class name\n */\n getClassName() {\n return \"GamepadCamera\";\n }\n}\n","import { PostProcess } from \"./postProcess.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\n/**\n * Postprocess used to generate anaglyphic rendering\n */\nexport class AnaglyphPostProcess extends PostProcess {\n /**\n * Gets a string identifying the name of the class\n * @returns \"AnaglyphPostProcess\" string\n */\n getClassName() {\n return \"AnaglyphPostProcess\";\n }\n /**\n * Creates a new AnaglyphPostProcess\n * @param name defines postprocess name\n * @param options defines creation options or target ratio scale\n * @param rigCameras defines cameras using this postprocess\n * @param samplingMode defines required sampling mode (BABYLON.Texture.NEAREST_SAMPLINGMODE by default)\n * @param engine defines hosting engine\n * @param reusable defines if the postprocess will be reused multiple times per frame\n */\n constructor(name, options, rigCameras, samplingMode, engine, reusable) {\n super(name, \"anaglyph\", null, [\"leftSampler\"], options, rigCameras[1], samplingMode, engine, reusable);\n this._passedProcess = rigCameras[0]._rigPostProcess;\n this.onApplyObservable.add((effect) => {\n effect.setTextureFromPostProcess(\"leftSampler\", this._passedProcess);\n });\n }\n _gatherImports(useWebGPU, list) {\n if (useWebGPU) {\n this._webGPUReady = true;\n list.push(import(\"../ShadersWGSL/anaglyph.fragment.js\"));\n }\n else {\n list.push(import(\"../Shaders/anaglyph.fragment.js\"));\n }\n super._gatherImports(useWebGPU, list);\n }\n}\nRegisterClass(\"BABYLON.AnaglyphPostProcess\", AnaglyphPostProcess);\n","import { PassPostProcess } from \"../../PostProcesses/passPostProcess.js\";\nimport { AnaglyphPostProcess } from \"../../PostProcesses/anaglyphPostProcess.js\";\n/**\n * @internal\n */\nexport function setStereoscopicAnaglyphRigMode(camera) {\n camera._rigCameras[0]._rigPostProcess = new PassPostProcess(camera.name + \"_passthru\", 1.0, camera._rigCameras[0]);\n camera._rigCameras[1]._rigPostProcess = new AnaglyphPostProcess(camera.name + \"_anaglyph\", 1.0, camera._rigCameras);\n}\n","import { Camera } from \"../../Cameras/camera.js\";\nimport { ArcRotateCamera } from \"../../Cameras/arcRotateCamera.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Node } from \"../../node.js\";\nimport { setStereoscopicAnaglyphRigMode } from \"../RigModes/stereoscopicAnaglyphRigMode.js\";\nNode.AddNodeConstructor(\"AnaglyphArcRotateCamera\", (name, scene, options) => {\n return () => new AnaglyphArcRotateCamera(name, 0, 0, 1.0, Vector3.Zero(), options.interaxial_distance, scene);\n});\n/**\n * Camera used to simulate anaglyphic rendering (based on ArcRotateCamera)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#anaglyph-cameras\n */\nexport class AnaglyphArcRotateCamera extends ArcRotateCamera {\n /**\n * Creates a new AnaglyphArcRotateCamera\n * @param name defines camera name\n * @param alpha defines alpha angle (in radians)\n * @param beta defines beta angle (in radians)\n * @param radius defines radius\n * @param target defines camera target\n * @param interaxialDistance defines distance between each color axis\n * @param scene defines the hosting scene\n */\n constructor(name, alpha, beta, radius, target, interaxialDistance, scene) {\n super(name, alpha, beta, radius, target, scene);\n this._setRigMode = () => setStereoscopicAnaglyphRigMode(this);\n this.interaxialDistance = interaxialDistance;\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: interaxialDistance });\n }\n /**\n * Gets camera class name\n * @returns AnaglyphArcRotateCamera\n */\n getClassName() {\n return \"AnaglyphArcRotateCamera\";\n }\n}\n","import { Camera } from \"../../Cameras/camera.js\";\nimport { FreeCamera } from \"../../Cameras/freeCamera.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Node } from \"../../node.js\";\nimport { setStereoscopicAnaglyphRigMode } from \"../RigModes/stereoscopicAnaglyphRigMode.js\";\nNode.AddNodeConstructor(\"AnaglyphFreeCamera\", (name, scene, options) => {\n return () => new AnaglyphFreeCamera(name, Vector3.Zero(), options.interaxial_distance, scene);\n});\n/**\n * Camera used to simulate anaglyphic rendering (based on FreeCamera)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#anaglyph-cameras\n */\nexport class AnaglyphFreeCamera extends FreeCamera {\n /**\n * Creates a new AnaglyphFreeCamera\n * @param name defines camera name\n * @param position defines initial position\n * @param interaxialDistance defines distance between each color axis\n * @param scene defines the hosting scene\n */\n constructor(name, position, interaxialDistance, scene) {\n super(name, position, scene);\n this._setRigMode = () => setStereoscopicAnaglyphRigMode(this);\n this.interaxialDistance = interaxialDistance;\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: interaxialDistance });\n }\n /**\n * Gets camera class name\n * @returns AnaglyphFreeCamera\n */\n getClassName() {\n return \"AnaglyphFreeCamera\";\n }\n}\n","import { Camera } from \"../../Cameras/camera.js\";\nimport { GamepadCamera } from \"../../Cameras/gamepadCamera.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Node } from \"../../node.js\";\nimport { setStereoscopicAnaglyphRigMode } from \"../RigModes/stereoscopicAnaglyphRigMode.js\";\nNode.AddNodeConstructor(\"AnaglyphGamepadCamera\", (name, scene, options) => {\n return () => new AnaglyphGamepadCamera(name, Vector3.Zero(), options.interaxial_distance, scene);\n});\n/**\n * Camera used to simulate anaglyphic rendering (based on GamepadCamera)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#anaglyph-cameras\n */\nexport class AnaglyphGamepadCamera extends GamepadCamera {\n /**\n * Creates a new AnaglyphGamepadCamera\n * @param name defines camera name\n * @param position defines initial position\n * @param interaxialDistance defines distance between each color axis\n * @param scene defines the hosting scene\n */\n constructor(name, position, interaxialDistance, scene) {\n super(name, position, scene);\n this._setRigMode = () => setStereoscopicAnaglyphRigMode(this);\n this.interaxialDistance = interaxialDistance;\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: interaxialDistance });\n }\n /**\n * Gets camera class name\n * @returns AnaglyphGamepadCamera\n */\n getClassName() {\n return \"AnaglyphGamepadCamera\";\n }\n}\n","import { Camera } from \"../../Cameras/camera.js\";\nimport { UniversalCamera } from \"../../Cameras/universalCamera.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Node } from \"../../node.js\";\nimport { setStereoscopicAnaglyphRigMode } from \"../RigModes/stereoscopicAnaglyphRigMode.js\";\nNode.AddNodeConstructor(\"AnaglyphUniversalCamera\", (name, scene, options) => {\n return () => new AnaglyphUniversalCamera(name, Vector3.Zero(), options.interaxial_distance, scene);\n});\n/**\n * Camera used to simulate anaglyphic rendering (based on UniversalCamera)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#anaglyph-cameras\n */\nexport class AnaglyphUniversalCamera extends UniversalCamera {\n /**\n * Creates a new AnaglyphUniversalCamera\n * @param name defines camera name\n * @param position defines initial position\n * @param interaxialDistance defines distance between each color axis\n * @param scene defines the hosting scene\n */\n constructor(name, position, interaxialDistance, scene) {\n super(name, position, scene);\n this._setRigMode = () => setStereoscopicAnaglyphRigMode(this);\n this.interaxialDistance = interaxialDistance;\n this.setCameraRigMode(Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH, { interaxialDistance: interaxialDistance });\n }\n /**\n * Gets camera class name\n * @returns AnaglyphUniversalCamera\n */\n getClassName() {\n return \"AnaglyphUniversalCamera\";\n }\n}\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"stereoscopicInterlacePixelShader\";\nconst shader = `const vec3 TWO=vec3(2.0,2.0,2.0);varying vec2 vUV;uniform sampler2D camASampler;uniform sampler2D textureSampler;uniform vec2 stepSize;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{bool useCamA;bool useCamB;vec2 texCoord1;vec2 texCoord2;vec3 frag1;vec3 frag2;\n#ifdef IS_STEREOSCOPIC_HORIZ\nuseCamB=vUV.x>0.5;useCamA=!useCamB;texCoord1=vec2(useCamB ? (vUV.x-0.5)*2.0 : vUV.x*2.0,vUV.y);texCoord2=vec2(texCoord1.x+stepSize.x,vUV.y);\n#else\n#ifdef IS_STEREOSCOPIC_INTERLACED\nfloat rowNum=floor(vUV.y/stepSize.y);useCamA=mod(rowNum,2.0)==1.0;useCamB=mod(rowNum,2.0)==0.0;texCoord1=vec2(vUV.x,vUV.y);texCoord2=vec2(vUV.x,vUV.y);\n#else\nuseCamB=vUV.y>0.5;useCamA=!useCamB;texCoord1=vec2(vUV.x,useCamB ? (vUV.y-0.5)*2.0 : vUV.y*2.0);texCoord2=vec2(vUV.x,texCoord1.y+stepSize.y);\n#endif\n#endif\nif (useCamB){frag1=texture2D(textureSampler,texCoord1).rgb;frag2=texture2D(textureSampler,texCoord2).rgb;}else if (useCamA){frag1=texture2D(camASampler ,texCoord1).rgb;frag2=texture2D(camASampler ,texCoord2).rgb;}else {discard;}\ngl_FragColor=vec4((frag1+frag2)/TWO,1.0);}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const stereoscopicInterlacePixelShader = { name, shader };\n","import { Vector2 } from \"../Maths/math.vector.js\";\nimport { PostProcess } from \"./postProcess.js\";\nimport \"../Shaders/stereoscopicInterlace.fragment.js\";\n/**\n * StereoscopicInterlacePostProcessI used to render stereo views from a rigged camera with support for alternate line interlacing\n */\nexport class StereoscopicInterlacePostProcessI extends PostProcess {\n /**\n * Gets a string identifying the name of the class\n * @returns \"StereoscopicInterlacePostProcessI\" string\n */\n getClassName() {\n return \"StereoscopicInterlacePostProcessI\";\n }\n /**\n * Initializes a StereoscopicInterlacePostProcessI\n * @param name The name of the effect.\n * @param rigCameras The rig cameras to be applied to the post process\n * @param isStereoscopicHoriz If the rendered results are horizontal or vertical\n * @param isStereoscopicInterlaced If the rendered results are alternate line interlaced\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(name, rigCameras, isStereoscopicHoriz, isStereoscopicInterlaced, samplingMode, engine, reusable) {\n super(name, \"stereoscopicInterlace\", [\"stepSize\"], [\"camASampler\"], 1, rigCameras[1], samplingMode, engine, reusable, isStereoscopicInterlaced ? \"#define IS_STEREOSCOPIC_INTERLACED 1\" : isStereoscopicHoriz ? \"#define IS_STEREOSCOPIC_HORIZ 1\" : undefined);\n this._passedProcess = rigCameras[0]._rigPostProcess;\n this._stepSize = new Vector2(1 / this.width, 1 / this.height);\n this.onSizeChangedObservable.add(() => {\n this._stepSize = new Vector2(1 / this.width, 1 / this.height);\n });\n this.onApplyObservable.add((effect) => {\n effect.setTextureFromPostProcess(\"camASampler\", this._passedProcess);\n effect.setFloat2(\"stepSize\", this._stepSize.x, this._stepSize.y);\n });\n }\n}\n/**\n * StereoscopicInterlacePostProcess used to render stereo views from a rigged camera\n */\nexport class StereoscopicInterlacePostProcess extends PostProcess {\n /**\n * Gets a string identifying the name of the class\n * @returns \"StereoscopicInterlacePostProcess\" string\n */\n getClassName() {\n return \"StereoscopicInterlacePostProcess\";\n }\n /**\n * Initializes a StereoscopicInterlacePostProcess\n * @param name The name of the effect.\n * @param rigCameras The rig cameras to be applied to the post process\n * @param isStereoscopicHoriz If the rendered results are horizontal or vertical\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(name, rigCameras, isStereoscopicHoriz, samplingMode, engine, reusable) {\n super(name, \"stereoscopicInterlace\", [\"stepSize\"], [\"camASampler\"], 1, rigCameras[1], samplingMode, engine, reusable, isStereoscopicHoriz ? \"#define IS_STEREOSCOPIC_HORIZ 1\" : undefined);\n this._passedProcess = rigCameras[0]._rigPostProcess;\n this._stepSize = new Vector2(1 / this.width, 1 / this.height);\n this.onSizeChangedObservable.add(() => {\n this._stepSize = new Vector2(1 / this.width, 1 / this.height);\n });\n this.onApplyObservable.add((effect) => {\n effect.setTextureFromPostProcess(\"camASampler\", this._passedProcess);\n effect.setFloat2(\"stepSize\", this._stepSize.x, this._stepSize.y);\n });\n }\n}\n","import { Camera } from \"../camera.js\";\nimport { Viewport } from \"../../Maths/math.viewport.js\";\nimport { PassPostProcess } from \"../../PostProcesses/passPostProcess.js\";\nimport { StereoscopicInterlacePostProcessI } from \"../../PostProcesses/stereoscopicInterlacePostProcess.js\";\n/**\n * @internal\n */\nexport function setStereoscopicRigMode(camera) {\n const isStereoscopicHoriz = camera.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL || camera.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED;\n const isCrossEye = camera.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED;\n const isInterlaced = camera.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_INTERLACED;\n // Use post-processors for interlacing\n if (isInterlaced) {\n camera._rigCameras[0]._rigPostProcess = new PassPostProcess(camera.name + \"_passthru\", 1.0, camera._rigCameras[0]);\n camera._rigCameras[1]._rigPostProcess = new StereoscopicInterlacePostProcessI(camera.name + \"_stereoInterlace\", camera._rigCameras, false, true);\n }\n // Otherwise, create appropriate viewports\n else {\n camera._rigCameras[isCrossEye ? 1 : 0].viewport = new Viewport(0, 0, isStereoscopicHoriz ? 0.5 : 1.0, isStereoscopicHoriz ? 1.0 : 0.5);\n camera._rigCameras[isCrossEye ? 0 : 1].viewport = new Viewport(isStereoscopicHoriz ? 0.5 : 0, isStereoscopicHoriz ? 0 : 0.5, isStereoscopicHoriz ? 0.5 : 1.0, isStereoscopicHoriz ? 1.0 : 0.5);\n }\n}\n","import { Camera } from \"../../Cameras/camera.js\";\nimport { ArcRotateCamera } from \"../../Cameras/arcRotateCamera.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Node } from \"../../node.js\";\nimport { setStereoscopicRigMode } from \"../RigModes/stereoscopicRigMode.js\";\nNode.AddNodeConstructor(\"StereoscopicArcRotateCamera\", (name, scene, options) => {\n return () => new StereoscopicArcRotateCamera(name, 0, 0, 1.0, Vector3.Zero(), options.interaxial_distance, options.isStereoscopicSideBySide, scene);\n});\n/**\n * Camera used to simulate stereoscopic rendering (based on ArcRotateCamera)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras\n */\nexport class StereoscopicArcRotateCamera extends ArcRotateCamera {\n /**\n * Creates a new StereoscopicArcRotateCamera\n * @param name defines camera name\n * @param alpha defines alpha angle (in radians)\n * @param beta defines beta angle (in radians)\n * @param radius defines radius\n * @param target defines camera target\n * @param interaxialDistance defines distance between each color axis\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\n * @param scene defines the hosting scene\n */\n constructor(name, alpha, beta, radius, target, interaxialDistance, isStereoscopicSideBySide, scene) {\n super(name, alpha, beta, radius, target, scene);\n this._setRigMode = () => setStereoscopicRigMode(this);\n this.interaxialDistance = interaxialDistance;\n this.isStereoscopicSideBySide = isStereoscopicSideBySide;\n this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, {\n interaxialDistance: interaxialDistance,\n });\n }\n /**\n * Gets camera class name\n * @returns StereoscopicArcRotateCamera\n */\n getClassName() {\n return \"StereoscopicArcRotateCamera\";\n }\n}\n","import { Camera } from \"../../Cameras/camera.js\";\nimport { FreeCamera } from \"../../Cameras/freeCamera.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Node } from \"../../node.js\";\nimport { setStereoscopicRigMode } from \"../RigModes/stereoscopicRigMode.js\";\nNode.AddNodeConstructor(\"StereoscopicFreeCamera\", (name, scene, options) => {\n return () => new StereoscopicFreeCamera(name, Vector3.Zero(), options.interaxial_distance, options.isStereoscopicSideBySide, scene);\n});\n/**\n * Camera used to simulate stereoscopic rendering (based on FreeCamera)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras\n */\nexport class StereoscopicFreeCamera extends FreeCamera {\n /**\n * Creates a new StereoscopicFreeCamera\n * @param name defines camera name\n * @param position defines initial position\n * @param interaxialDistance defines distance between each color axis\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\n * @param scene defines the hosting scene\n */\n constructor(name, position, interaxialDistance, isStereoscopicSideBySide, scene) {\n super(name, position, scene);\n this._setRigMode = () => setStereoscopicRigMode(this);\n this.interaxialDistance = interaxialDistance;\n this.isStereoscopicSideBySide = isStereoscopicSideBySide;\n this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, {\n interaxialDistance: interaxialDistance,\n });\n }\n /**\n * Gets camera class name\n * @returns StereoscopicFreeCamera\n */\n getClassName() {\n return \"StereoscopicFreeCamera\";\n }\n}\n","import { Camera } from \"../../Cameras/camera.js\";\nimport { GamepadCamera } from \"../../Cameras/gamepadCamera.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Node } from \"../../node.js\";\nimport { setStereoscopicRigMode } from \"../RigModes/stereoscopicRigMode.js\";\nNode.AddNodeConstructor(\"StereoscopicGamepadCamera\", (name, scene, options) => {\n return () => new StereoscopicGamepadCamera(name, Vector3.Zero(), options.interaxial_distance, options.isStereoscopicSideBySide, scene);\n});\n/**\n * Camera used to simulate stereoscopic rendering (based on GamepadCamera)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras\n */\nexport class StereoscopicGamepadCamera extends GamepadCamera {\n /**\n * Creates a new StereoscopicGamepadCamera\n * @param name defines camera name\n * @param position defines initial position\n * @param interaxialDistance defines distance between each color axis\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\n * @param scene defines the hosting scene\n */\n constructor(name, position, interaxialDistance, isStereoscopicSideBySide, scene) {\n super(name, position, scene);\n this._setRigMode = () => setStereoscopicRigMode(this);\n this.interaxialDistance = interaxialDistance;\n this.isStereoscopicSideBySide = isStereoscopicSideBySide;\n this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, {\n interaxialDistance: interaxialDistance,\n });\n }\n /**\n * Gets camera class name\n * @returns StereoscopicGamepadCamera\n */\n getClassName() {\n return \"StereoscopicGamepadCamera\";\n }\n}\n","import { Camera } from \"../../Cameras/camera.js\";\nimport { UniversalCamera } from \"../../Cameras/universalCamera.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Node } from \"../../node.js\";\nimport { setStereoscopicRigMode } from \"../RigModes/stereoscopicRigMode.js\";\nNode.AddNodeConstructor(\"StereoscopicFreeCamera\", (name, scene, options) => {\n return () => new StereoscopicUniversalCamera(name, Vector3.Zero(), options.interaxial_distance, options.isStereoscopicSideBySide, scene);\n});\n/**\n * Camera used to simulate stereoscopic rendering (based on UniversalCamera)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras\n */\nexport class StereoscopicUniversalCamera extends UniversalCamera {\n /**\n * Creates a new StereoscopicUniversalCamera\n * @param name defines camera name\n * @param position defines initial position\n * @param interaxialDistance defines distance between each color axis\n * @param isStereoscopicSideBySide defines is stereoscopic is done side by side or over under\n * @param scene defines the hosting scene\n */\n constructor(name, position, interaxialDistance, isStereoscopicSideBySide, scene) {\n super(name, position, scene);\n this._setRigMode = () => setStereoscopicRigMode(this);\n this.interaxialDistance = interaxialDistance;\n this.isStereoscopicSideBySide = isStereoscopicSideBySide;\n this.setCameraRigMode(isStereoscopicSideBySide ? Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL : Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER, {\n interaxialDistance: interaxialDistance,\n });\n }\n /**\n * Gets camera class name\n * @returns StereoscopicUniversalCamera\n */\n getClassName() {\n return \"StereoscopicUniversalCamera\";\n }\n}\n","import { FreeCamera } from \"./freeCamera.js\";\nimport { Vector3 } from \"../Maths/math.vector.js\";\nimport { Node } from \"../node.js\";\nimport \"./Inputs/freeCameraVirtualJoystickInput.js\";\nNode.AddNodeConstructor(\"VirtualJoysticksCamera\", (name, scene) => {\n return () => new VirtualJoysticksCamera(name, Vector3.Zero(), scene);\n});\n/**\n * This represents a free type of camera. It can be useful in First Person Shooter game for instance.\n * It is identical to the Free Camera and simply adds by default a virtual joystick.\n * Virtual Joysticks are on-screen 2D graphics that are used to control the camera or other scene items.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#virtual-joysticks-camera\n */\nexport class VirtualJoysticksCamera extends FreeCamera {\n /**\n * Instantiates a VirtualJoysticksCamera. It can be useful in First Person Shooter game for instance.\n * It is identical to the Free Camera and simply adds by default a virtual joystick.\n * Virtual Joysticks are on-screen 2D graphics that are used to control the camera or other scene items.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#virtual-joysticks-camera\n * @param name Define the name of the camera in the scene\n * @param position Define the start position of the camera in the scene\n * @param scene Define the scene the camera belongs to\n */\n constructor(name, position, scene) {\n super(name, position, scene);\n this.inputs.addVirtualJoystick();\n }\n /**\n * Gets the current object class name.\n * @returns the class name\n */\n getClassName() {\n return \"VirtualJoysticksCamera\";\n }\n}\n","import { Camera } from \"../../Cameras/camera.js\";\nimport { ArcRotateCamera } from \"../../Cameras/arcRotateCamera.js\";\nimport { VRCameraMetrics } from \"./vrCameraMetrics.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Node } from \"../../node.js\";\nimport { setVRRigMode } from \"../RigModes/vrRigMode.js\";\nimport \"../Inputs/arcRotateCameraVRDeviceOrientationInput.js\";\nNode.AddNodeConstructor(\"VRDeviceOrientationArcRotateCamera\", (name, scene) => {\n return () => new VRDeviceOrientationArcRotateCamera(name, 0, 0, 1.0, Vector3.Zero(), scene);\n});\n/**\n * Camera used to simulate VR rendering (based on ArcRotateCamera)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#vr-device-orientation-cameras\n */\nexport class VRDeviceOrientationArcRotateCamera extends ArcRotateCamera {\n /**\n * Creates a new VRDeviceOrientationArcRotateCamera\n * @param name defines camera name\n * @param alpha defines the camera rotation along the longitudinal axis\n * @param beta defines the camera rotation along the latitudinal axis\n * @param radius defines the camera distance from its target\n * @param target defines the camera target\n * @param scene defines the scene the camera belongs to\n * @param compensateDistortion defines if the camera needs to compensate the lens distortion\n * @param vrCameraMetrics defines the vr metrics associated to the camera\n */\n constructor(name, alpha, beta, radius, target, scene, compensateDistortion = true, vrCameraMetrics = VRCameraMetrics.GetDefault()) {\n super(name, alpha, beta, radius, target, scene);\n this._setRigMode = (rigParams) => setVRRigMode(this, rigParams);\n vrCameraMetrics.compensateDistortion = compensateDistortion;\n this.setCameraRigMode(Camera.RIG_MODE_VR, { vrCameraMetrics: vrCameraMetrics });\n this.inputs.addVRDeviceOrientation();\n }\n /**\n * Gets camera class name\n * @returns VRDeviceOrientationArcRotateCamera\n */\n getClassName() {\n return \"VRDeviceOrientationArcRotateCamera\";\n }\n}\n","import { VRDeviceOrientationFreeCamera } from \"./vrDeviceOrientationFreeCamera.js\";\nimport { VRCameraMetrics } from \"./vrCameraMetrics.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Node } from \"../../node.js\";\nimport { setVRRigMode } from \"../RigModes/vrRigMode.js\";\nimport \"../../Gamepads/gamepadSceneComponent.js\";\nNode.AddNodeConstructor(\"VRDeviceOrientationGamepadCamera\", (name, scene) => {\n return () => new VRDeviceOrientationGamepadCamera(name, Vector3.Zero(), scene);\n});\n/**\n * Camera used to simulate VR rendering (based on VRDeviceOrientationFreeCamera)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#vr-device-orientation-cameras\n */\nexport class VRDeviceOrientationGamepadCamera extends VRDeviceOrientationFreeCamera {\n /**\n * Creates a new VRDeviceOrientationGamepadCamera\n * @param name defines camera name\n * @param position defines the start position of the camera\n * @param scene defines the scene the camera belongs to\n * @param compensateDistortion defines if the camera needs to compensate the lens distortion\n * @param vrCameraMetrics defines the vr metrics associated to the camera\n */\n constructor(name, position, scene, compensateDistortion = true, vrCameraMetrics = VRCameraMetrics.GetDefault()) {\n super(name, position, scene, compensateDistortion, vrCameraMetrics);\n this._setRigMode = (rigParams) => setVRRigMode(this, rigParams);\n this.inputs.addGamepad();\n }\n /**\n * Gets camera class name\n * @returns VRDeviceOrientationGamepadCamera\n */\n getClassName() {\n return \"VRDeviceOrientationGamepadCamera\";\n }\n}\n","import { Vector3 } from \"../Maths/math.vector.js\";\nimport { Plane } from \"../Maths/math.plane.js\";\nconst intersectBoxAASphere = (boxMin, boxMax, sphereCenter, sphereRadius) => {\n if (boxMin.x > sphereCenter.x + sphereRadius) {\n return false;\n }\n if (sphereCenter.x - sphereRadius > boxMax.x) {\n return false;\n }\n if (boxMin.y > sphereCenter.y + sphereRadius) {\n return false;\n }\n if (sphereCenter.y - sphereRadius > boxMax.y) {\n return false;\n }\n if (boxMin.z > sphereCenter.z + sphereRadius) {\n return false;\n }\n if (sphereCenter.z - sphereRadius > boxMax.z) {\n return false;\n }\n return true;\n};\nconst getLowestRoot = (function () {\n const result = { root: 0, found: false };\n return function (a, b, c, maxR) {\n result.root = 0;\n result.found = false;\n const determinant = b * b - 4.0 * a * c;\n if (determinant < 0) {\n return result;\n }\n const sqrtD = Math.sqrt(determinant);\n let r1 = (-b - sqrtD) / (2.0 * a);\n let r2 = (-b + sqrtD) / (2.0 * a);\n if (r1 > r2) {\n const temp = r2;\n r2 = r1;\n r1 = temp;\n }\n if (r1 > 0 && r1 < maxR) {\n result.root = r1;\n result.found = true;\n return result;\n }\n if (r2 > 0 && r2 < maxR) {\n result.root = r2;\n result.found = true;\n return result;\n }\n return result;\n };\n})();\n/** @internal */\nexport class Collider {\n constructor() {\n // Implementation of the \"Improved Collision detection and Response\" algorithm proposed by Kasper Fauerby\n // https://www.peroxide.dk/papers/collision/collision.pdf\n this._collisionPoint = Vector3.Zero();\n this._planeIntersectionPoint = Vector3.Zero();\n this._tempVector = Vector3.Zero();\n this._tempVector2 = Vector3.Zero();\n this._tempVector3 = Vector3.Zero();\n this._tempVector4 = Vector3.Zero();\n this._edge = Vector3.Zero();\n this._baseToVertex = Vector3.Zero();\n this._destinationPoint = Vector3.Zero();\n this._slidePlaneNormal = Vector3.Zero();\n this._displacementVector = Vector3.Zero();\n /** @internal */\n this._radius = Vector3.One();\n /** @internal */\n this._retry = 0;\n /** @internal */\n this._basePointWorld = Vector3.Zero();\n this._velocityWorld = Vector3.Zero();\n this._normalizedVelocity = Vector3.Zero();\n this._collisionMask = -1;\n }\n get collisionMask() {\n return this._collisionMask;\n }\n set collisionMask(mask) {\n this._collisionMask = !isNaN(mask) ? mask : -1;\n }\n /**\n * Gets the plane normal used to compute the sliding response (in local space)\n */\n get slidePlaneNormal() {\n return this._slidePlaneNormal;\n }\n // Methods\n /**\n * @internal\n */\n _initialize(source, dir, e) {\n this._velocity = dir;\n this._velocitySquaredLength = this._velocity.lengthSquared();\n const len = Math.sqrt(this._velocitySquaredLength);\n if (len === 0 || len === 1.0) {\n this._normalizedVelocity.copyFromFloats(dir._x, dir._y, dir._z);\n }\n else {\n dir.scaleToRef(1.0 / len, this._normalizedVelocity);\n }\n this._basePoint = source;\n source.multiplyToRef(this._radius, this._basePointWorld);\n dir.multiplyToRef(this._radius, this._velocityWorld);\n this._velocityWorldLength = this._velocityWorld.length();\n this._epsilon = e;\n this.collisionFound = false;\n }\n /**\n * @internal\n */\n _checkPointInTriangle(point, pa, pb, pc, n) {\n pa.subtractToRef(point, this._tempVector);\n pb.subtractToRef(point, this._tempVector2);\n Vector3.CrossToRef(this._tempVector, this._tempVector2, this._tempVector4);\n let d = Vector3.Dot(this._tempVector4, n);\n if (d < 0) {\n return false;\n }\n pc.subtractToRef(point, this._tempVector3);\n Vector3.CrossToRef(this._tempVector2, this._tempVector3, this._tempVector4);\n d = Vector3.Dot(this._tempVector4, n);\n if (d < 0) {\n return false;\n }\n Vector3.CrossToRef(this._tempVector3, this._tempVector, this._tempVector4);\n d = Vector3.Dot(this._tempVector4, n);\n return d >= 0;\n }\n /**\n * @internal\n */\n _canDoCollision(sphereCenter, sphereRadius, vecMin, vecMax) {\n const distance = Vector3.Distance(this._basePointWorld, sphereCenter);\n const max = Math.max(this._radius.x, this._radius.y, this._radius.z);\n if (distance > this._velocityWorldLength + max + sphereRadius) {\n return false;\n }\n if (!intersectBoxAASphere(vecMin, vecMax, this._basePointWorld, this._velocityWorldLength + max)) {\n return false;\n }\n return true;\n }\n /**\n * @internal\n */\n _testTriangle(faceIndex, trianglePlaneArray, p1, p2, p3, hasMaterial, hostMesh) {\n let t0;\n let embeddedInPlane = false;\n //defensive programming, actually not needed.\n if (!trianglePlaneArray) {\n trianglePlaneArray = [];\n }\n if (!trianglePlaneArray[faceIndex]) {\n trianglePlaneArray[faceIndex] = new Plane(0, 0, 0, 0);\n trianglePlaneArray[faceIndex].copyFromPoints(p1, p2, p3);\n }\n const trianglePlane = trianglePlaneArray[faceIndex];\n if (!hasMaterial && !trianglePlane.isFrontFacingTo(this._normalizedVelocity, 0)) {\n return;\n }\n const signedDistToTrianglePlane = trianglePlane.signedDistanceTo(this._basePoint);\n const normalDotVelocity = Vector3.Dot(trianglePlane.normal, this._velocity);\n // if DoubleSidedCheck is false(default), a double sided face will be consided 2 times.\n // if true, it discard the faces having normal not facing velocity\n if (Collider.DoubleSidedCheck && normalDotVelocity > 0.0001) {\n return;\n }\n if (normalDotVelocity == 0) {\n if (Math.abs(signedDistToTrianglePlane) >= 1.0) {\n return;\n }\n embeddedInPlane = true;\n t0 = 0;\n }\n else {\n t0 = (-1.0 - signedDistToTrianglePlane) / normalDotVelocity;\n let t1 = (1.0 - signedDistToTrianglePlane) / normalDotVelocity;\n if (t0 > t1) {\n const temp = t1;\n t1 = t0;\n t0 = temp;\n }\n if (t0 > 1.0 || t1 < 0.0) {\n return;\n }\n if (t0 < 0) {\n t0 = 0;\n }\n if (t0 > 1.0) {\n t0 = 1.0;\n }\n }\n this._collisionPoint.copyFromFloats(0, 0, 0);\n let found = false;\n let t = 1.0;\n if (!embeddedInPlane) {\n this._basePoint.subtractToRef(trianglePlane.normal, this._planeIntersectionPoint);\n this._velocity.scaleToRef(t0, this._tempVector);\n this._planeIntersectionPoint.addInPlace(this._tempVector);\n if (this._checkPointInTriangle(this._planeIntersectionPoint, p1, p2, p3, trianglePlane.normal)) {\n found = true;\n t = t0;\n this._collisionPoint.copyFrom(this._planeIntersectionPoint);\n }\n }\n if (!found) {\n let a = this._velocitySquaredLength;\n this._basePoint.subtractToRef(p1, this._tempVector);\n let b = 2.0 * Vector3.Dot(this._velocity, this._tempVector);\n let c = this._tempVector.lengthSquared() - 1.0;\n let lowestRoot = getLowestRoot(a, b, c, t);\n if (lowestRoot.found) {\n t = lowestRoot.root;\n found = true;\n this._collisionPoint.copyFrom(p1);\n }\n this._basePoint.subtractToRef(p2, this._tempVector);\n b = 2.0 * Vector3.Dot(this._velocity, this._tempVector);\n c = this._tempVector.lengthSquared() - 1.0;\n lowestRoot = getLowestRoot(a, b, c, t);\n if (lowestRoot.found) {\n t = lowestRoot.root;\n found = true;\n this._collisionPoint.copyFrom(p2);\n }\n this._basePoint.subtractToRef(p3, this._tempVector);\n b = 2.0 * Vector3.Dot(this._velocity, this._tempVector);\n c = this._tempVector.lengthSquared() - 1.0;\n lowestRoot = getLowestRoot(a, b, c, t);\n if (lowestRoot.found) {\n t = lowestRoot.root;\n found = true;\n this._collisionPoint.copyFrom(p3);\n }\n p2.subtractToRef(p1, this._edge);\n p1.subtractToRef(this._basePoint, this._baseToVertex);\n let edgeSquaredLength = this._edge.lengthSquared();\n let edgeDotVelocity = Vector3.Dot(this._edge, this._velocity);\n let edgeDotBaseToVertex = Vector3.Dot(this._edge, this._baseToVertex);\n a = edgeSquaredLength * -this._velocitySquaredLength + edgeDotVelocity * edgeDotVelocity;\n b = 2 * (edgeSquaredLength * Vector3.Dot(this._velocity, this._baseToVertex) - edgeDotVelocity * edgeDotBaseToVertex);\n c = edgeSquaredLength * (1.0 - this._baseToVertex.lengthSquared()) + edgeDotBaseToVertex * edgeDotBaseToVertex;\n lowestRoot = getLowestRoot(a, b, c, t);\n if (lowestRoot.found) {\n const f = (edgeDotVelocity * lowestRoot.root - edgeDotBaseToVertex) / edgeSquaredLength;\n if (f >= 0.0 && f <= 1.0) {\n t = lowestRoot.root;\n found = true;\n this._edge.scaleInPlace(f);\n p1.addToRef(this._edge, this._collisionPoint);\n }\n }\n p3.subtractToRef(p2, this._edge);\n p2.subtractToRef(this._basePoint, this._baseToVertex);\n edgeSquaredLength = this._edge.lengthSquared();\n edgeDotVelocity = Vector3.Dot(this._edge, this._velocity);\n edgeDotBaseToVertex = Vector3.Dot(this._edge, this._baseToVertex);\n a = edgeSquaredLength * -this._velocitySquaredLength + edgeDotVelocity * edgeDotVelocity;\n b = 2 * (edgeSquaredLength * Vector3.Dot(this._velocity, this._baseToVertex) - edgeDotVelocity * edgeDotBaseToVertex);\n c = edgeSquaredLength * (1.0 - this._baseToVertex.lengthSquared()) + edgeDotBaseToVertex * edgeDotBaseToVertex;\n lowestRoot = getLowestRoot(a, b, c, t);\n if (lowestRoot.found) {\n const f = (edgeDotVelocity * lowestRoot.root - edgeDotBaseToVertex) / edgeSquaredLength;\n if (f >= 0.0 && f <= 1.0) {\n t = lowestRoot.root;\n found = true;\n this._edge.scaleInPlace(f);\n p2.addToRef(this._edge, this._collisionPoint);\n }\n }\n p1.subtractToRef(p3, this._edge);\n p3.subtractToRef(this._basePoint, this._baseToVertex);\n edgeSquaredLength = this._edge.lengthSquared();\n edgeDotVelocity = Vector3.Dot(this._edge, this._velocity);\n edgeDotBaseToVertex = Vector3.Dot(this._edge, this._baseToVertex);\n a = edgeSquaredLength * -this._velocitySquaredLength + edgeDotVelocity * edgeDotVelocity;\n b = 2 * (edgeSquaredLength * Vector3.Dot(this._velocity, this._baseToVertex) - edgeDotVelocity * edgeDotBaseToVertex);\n c = edgeSquaredLength * (1.0 - this._baseToVertex.lengthSquared()) + edgeDotBaseToVertex * edgeDotBaseToVertex;\n lowestRoot = getLowestRoot(a, b, c, t);\n if (lowestRoot.found) {\n const f = (edgeDotVelocity * lowestRoot.root - edgeDotBaseToVertex) / edgeSquaredLength;\n if (f >= 0.0 && f <= 1.0) {\n t = lowestRoot.root;\n found = true;\n this._edge.scaleInPlace(f);\n p3.addToRef(this._edge, this._collisionPoint);\n }\n }\n }\n if (found) {\n const distToCollisionSquared = t * t * this._velocitySquaredLength;\n if (!this.collisionFound || distToCollisionSquared < this._nearestDistanceSquared) {\n // if collisionResponse is false, collision is not found but the collidedMesh is set anyway.\n // onCollide observable are triggered if collideMesh is set\n // this allow trigger volumes to be created.\n if (hostMesh.collisionResponse) {\n if (!this.intersectionPoint) {\n this.intersectionPoint = this._collisionPoint.clone();\n }\n else {\n this.intersectionPoint.copyFrom(this._collisionPoint);\n }\n this._nearestDistanceSquared = distToCollisionSquared;\n this._nearestDistance = Math.sqrt(distToCollisionSquared);\n this.collisionFound = true;\n }\n this.collidedMesh = hostMesh;\n }\n }\n }\n /**\n * @internal\n */\n _collide(trianglePlaneArray, pts, indices, indexStart, indexEnd, decal, hasMaterial, hostMesh, invertTriangles, triangleStrip = false) {\n if (triangleStrip) {\n if (!indices || indices.length === 0) {\n for (let i = 0; i < pts.length - 2; i += 1) {\n const p1 = pts[i];\n const p2 = pts[i + 1];\n const p3 = pts[i + 2];\n // stay defensive and don't check against undefined positions.\n if (!p1 || !p2 || !p3) {\n continue;\n }\n // Handles strip faces one on two is reversed\n if ((invertTriangles ? 1 : 0) ^ i % 2) {\n this._testTriangle(i, trianglePlaneArray, p1, p2, p3, hasMaterial, hostMesh);\n }\n else {\n this._testTriangle(i, trianglePlaneArray, p2, p1, p3, hasMaterial, hostMesh);\n }\n }\n }\n else {\n for (let i = indexStart; i < indexEnd - 2; i += 1) {\n const indexA = indices[i];\n const indexB = indices[i + 1];\n const indexC = indices[i + 2];\n if (indexC === 0xffffffff) {\n i += 2;\n continue;\n }\n const p1 = pts[indexA];\n const p2 = pts[indexB];\n const p3 = pts[indexC];\n // stay defensive and don't check against undefined positions.\n if (!p1 || !p2 || !p3) {\n continue;\n }\n // Handles strip faces one on two is reversed\n if ((invertTriangles ? 1 : 0) ^ i % 2) {\n this._testTriangle(i, trianglePlaneArray, p1, p2, p3, hasMaterial, hostMesh);\n }\n else {\n this._testTriangle(i, trianglePlaneArray, p2, p1, p3, hasMaterial, hostMesh);\n }\n }\n }\n }\n else if (!indices || indices.length === 0) {\n for (let i = 0; i < pts.length; i += 3) {\n const p1 = pts[i];\n const p2 = pts[i + 1];\n const p3 = pts[i + 2];\n if (invertTriangles) {\n this._testTriangle(i, trianglePlaneArray, p1, p2, p3, hasMaterial, hostMesh);\n }\n else {\n this._testTriangle(i, trianglePlaneArray, p3, p2, p1, hasMaterial, hostMesh);\n }\n }\n }\n else {\n for (let i = indexStart; i < indexEnd; i += 3) {\n const p1 = pts[indices[i] - decal];\n const p2 = pts[indices[i + 1] - decal];\n const p3 = pts[indices[i + 2] - decal];\n if (invertTriangles) {\n this._testTriangle(i, trianglePlaneArray, p1, p2, p3, hasMaterial, hostMesh);\n }\n else {\n this._testTriangle(i, trianglePlaneArray, p3, p2, p1, hasMaterial, hostMesh);\n }\n }\n }\n }\n /**\n * @internal\n */\n _getResponse(pos, vel) {\n pos.addToRef(vel, this._destinationPoint);\n vel.scaleInPlace(this._nearestDistance / vel.length());\n this._basePoint.addToRef(vel, pos);\n pos.subtractToRef(this.intersectionPoint, this._slidePlaneNormal);\n this._slidePlaneNormal.normalize();\n this._slidePlaneNormal.scaleToRef(this._epsilon, this._displacementVector);\n pos.addInPlace(this._displacementVector);\n this.intersectionPoint.addInPlace(this._displacementVector);\n this._slidePlaneNormal.scaleInPlace(Plane.SignedDistanceToPlaneFromPositionAndNormal(this.intersectionPoint, this._slidePlaneNormal, this._destinationPoint));\n this._destinationPoint.subtractInPlace(this._slidePlaneNormal);\n this._destinationPoint.subtractToRef(this.intersectionPoint, vel);\n }\n}\n/**\n * If true, it check for double sided faces and only returns 1 collision instead of 2\n */\nCollider.DoubleSidedCheck = false;\n","import { Scene } from \"../scene.js\";\nimport { Vector3 } from \"../Maths/math.vector.js\";\nimport { Collider } from \"./collider.js\";\nimport { AbstractEngine } from \"../Engines/abstractEngine.js\";\n/** @internal */\nexport class DefaultCollisionCoordinator {\n constructor() {\n this._scaledPosition = Vector3.Zero();\n this._scaledVelocity = Vector3.Zero();\n this._finalPosition = Vector3.Zero();\n }\n getNewPosition(position, displacement, collider, maximumRetry, excludedMesh, onNewPosition, collisionIndex) {\n position.divideToRef(collider._radius, this._scaledPosition);\n displacement.divideToRef(collider._radius, this._scaledVelocity);\n collider.collidedMesh = null;\n collider._retry = 0;\n collider._initialVelocity = this._scaledVelocity;\n collider._initialPosition = this._scaledPosition;\n this._collideWithWorld(this._scaledPosition, this._scaledVelocity, collider, maximumRetry, this._finalPosition, excludedMesh);\n this._finalPosition.multiplyInPlace(collider._radius);\n //run the callback\n onNewPosition(collisionIndex, this._finalPosition, collider.collidedMesh);\n }\n createCollider() {\n return new Collider();\n }\n init(scene) {\n this._scene = scene;\n }\n _collideWithWorld(position, velocity, collider, maximumRetry, finalPosition, excludedMesh = null) {\n const closeDistance = AbstractEngine.CollisionsEpsilon * 10.0;\n if (collider._retry >= maximumRetry) {\n finalPosition.copyFrom(position);\n return;\n }\n // Check if this is a mesh else camera or -1\n const collisionMask = excludedMesh ? excludedMesh.collisionMask : collider.collisionMask;\n collider._initialize(position, velocity, closeDistance);\n // Check if collision detection should happen against specified list of meshes or,\n // if not specified, against all meshes in the scene\n const meshes = (excludedMesh && excludedMesh.surroundingMeshes) || this._scene.meshes;\n for (let index = 0; index < meshes.length; index++) {\n const mesh = meshes[index];\n if (mesh.isEnabled() && mesh.checkCollisions && mesh.subMeshes && mesh !== excludedMesh && (collisionMask & mesh.collisionGroup) !== 0) {\n mesh._checkCollision(collider);\n }\n }\n if (!collider.collisionFound) {\n position.addToRef(velocity, finalPosition);\n return;\n }\n if (velocity.x !== 0 || velocity.y !== 0 || velocity.z !== 0) {\n collider._getResponse(position, velocity);\n }\n if (velocity.length() <= closeDistance) {\n finalPosition.copyFrom(position);\n return;\n }\n collider._retry++;\n this._collideWithWorld(position, velocity, collider, maximumRetry, finalPosition, excludedMesh);\n }\n}\nScene.CollisionCoordinatorFactory = () => {\n return new DefaultCollisionCoordinator();\n};\n","import { Logger } from \"../Misc/logger.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { GetDOMTextContent, IsWindowObjectExist } from \"../Misc/domManagement.js\";\nimport { Finalize, Initialize, PreProcess } from \"../Engines/Processors/shaderProcessor.js\";\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\n/**\n * Effect wrapping a compute shader and let execute (dispatch) the shader\n */\nexport class ComputeEffect {\n /**\n * Creates a compute effect that can be used to execute a compute shader\n * @param baseName Name of the effect\n * @param options Set of all options to create the effect\n * @param engine The engine the effect is created for\n * @param key Effect Key identifying uniquely compiled shader variants\n */\n constructor(baseName, options, engine, key = \"\") {\n /**\n * String container all the define statements that should be set on the shader.\n */\n this.defines = \"\";\n /**\n * Callback that will be called when the shader is compiled.\n */\n this.onCompiled = null;\n /**\n * Callback that will be called if an error occurs during shader compilation.\n */\n this.onError = null;\n /**\n * Unique ID of the effect.\n */\n this.uniqueId = 0;\n /**\n * Observable that will be called when the shader is compiled.\n * It is recommended to use executeWhenCompile() or to make sure that scene.isReady() is called to get this observable raised.\n */\n this.onCompileObservable = new Observable();\n /**\n * Observable that will be called if an error occurs during shader compilation.\n */\n this.onErrorObservable = new Observable();\n /**\n * Observable that will be called when effect is bound.\n */\n this.onBindObservable = new Observable();\n /**\n * @internal\n * Specifies if the effect was previously ready\n */\n this._wasPreviouslyReady = false;\n this._isReady = false;\n this._compilationError = \"\";\n /** @internal */\n this._key = \"\";\n this._computeSourceCodeOverride = \"\";\n /** @internal */\n this._pipelineContext = null;\n /** @internal */\n this._computeSourceCode = \"\";\n this._rawComputeSourceCode = \"\";\n this._shaderLanguage = 1 /* ShaderLanguage.WGSL */;\n this.name = baseName;\n this._key = key;\n this._engine = engine;\n this.uniqueId = ComputeEffect._UniqueIdSeed++;\n this.defines = options.defines ?? \"\";\n this.onError = options.onError;\n this.onCompiled = options.onCompiled;\n this._entryPoint = options.entryPoint ?? \"main\";\n this._shaderStore = ShaderStore.GetShadersStore(this._shaderLanguage);\n this._shaderRepository = ShaderStore.GetShadersRepository(this._shaderLanguage);\n this._includeShaderStore = ShaderStore.GetIncludesShadersStore(this._shaderLanguage);\n let computeSource;\n const hostDocument = IsWindowObjectExist() ? this._engine.getHostDocument() : null;\n if (typeof baseName === \"string\") {\n computeSource = baseName;\n }\n else if (baseName.computeSource) {\n computeSource = \"source:\" + baseName.computeSource;\n }\n else if (baseName.computeElement) {\n computeSource = hostDocument?.getElementById(baseName.computeElement) || baseName.computeElement;\n }\n else {\n computeSource = baseName.compute || baseName;\n }\n const processorOptions = {\n defines: this.defines.split(\"\\n\"),\n indexParameters: undefined,\n isFragment: false,\n shouldUseHighPrecisionShader: false,\n processor: null,\n supportsUniformBuffers: this._engine.supportsUniformBuffers,\n shadersRepository: this._shaderRepository,\n includesShadersStore: this._includeShaderStore,\n version: (this._engine.version * 100).toString(),\n platformName: this._engine.shaderPlatformName,\n processingContext: null,\n isNDCHalfZRange: this._engine.isNDCHalfZRange,\n useReverseDepthBuffer: this._engine.useReverseDepthBuffer,\n processCodeAfterIncludes: (shaderType, code, defines) => {\n if (!defines) {\n return code;\n }\n // We need to convert #define key value to a const\n for (const define of defines) {\n const keyValue = define.replace(\"#define\", \"\").replace(\";\", \"\").trim();\n const split = keyValue.split(\" \");\n if (split.length === 2) {\n const key = split[0];\n const value = split[1];\n if (!isNaN(parseInt(value)) || !isNaN(parseFloat(value))) {\n code = `const ${key} = ${value};\\n` + code;\n }\n }\n }\n return code;\n },\n };\n this._loadShader(computeSource, \"Compute\", \"\", (computeCode) => {\n Initialize(processorOptions);\n PreProcess(computeCode, processorOptions, (migratedComputeCode) => {\n this._rawComputeSourceCode = computeCode;\n if (options.processFinalCode) {\n migratedComputeCode = options.processFinalCode(migratedComputeCode);\n }\n const finalShaders = Finalize(migratedComputeCode, \"\", processorOptions);\n this._useFinalCode(finalShaders.vertexCode, baseName);\n }, this._engine);\n });\n }\n _useFinalCode(migratedCommputeCode, baseName) {\n if (baseName) {\n const compute = baseName.computeElement || baseName.compute || baseName.spectorName || baseName;\n this._computeSourceCode = \"//#define SHADER_NAME compute:\" + compute + \"\\n\" + migratedCommputeCode;\n }\n else {\n this._computeSourceCode = migratedCommputeCode;\n }\n this._prepareEffect();\n }\n /**\n * Unique key for this effect\n */\n get key() {\n return this._key;\n }\n /**\n * If the effect has been compiled and prepared.\n * @returns if the effect is compiled and prepared.\n */\n isReady() {\n try {\n return this._isReadyInternal();\n }\n catch {\n return false;\n }\n }\n _isReadyInternal() {\n if (this._isReady) {\n return true;\n }\n if (this._pipelineContext) {\n return this._pipelineContext.isReady;\n }\n return false;\n }\n /**\n * The engine the effect was initialized with.\n * @returns the engine.\n */\n getEngine() {\n return this._engine;\n }\n /**\n * The pipeline context for this effect\n * @returns the associated pipeline context\n */\n getPipelineContext() {\n return this._pipelineContext;\n }\n /**\n * The error from the last compilation.\n * @returns the error string.\n */\n getCompilationError() {\n return this._compilationError;\n }\n /**\n * Adds a callback to the onCompiled observable and call the callback immediately if already ready.\n * @param func The callback to be used.\n */\n executeWhenCompiled(func) {\n if (this.isReady()) {\n func(this);\n return;\n }\n this.onCompileObservable.add((effect) => {\n func(effect);\n });\n if (!this._pipelineContext || this._pipelineContext.isAsync) {\n setTimeout(() => {\n this._checkIsReady(null);\n }, 16);\n }\n }\n _checkIsReady(previousPipelineContext) {\n try {\n if (this._isReadyInternal()) {\n return;\n }\n }\n catch (e) {\n this._processCompilationErrors(e, previousPipelineContext);\n return;\n }\n setTimeout(() => {\n this._checkIsReady(previousPipelineContext);\n }, 16);\n }\n _loadShader(shader, key, optionalKey, callback) {\n if (typeof HTMLElement !== \"undefined\") {\n // DOM element ?\n if (shader instanceof HTMLElement) {\n const shaderCode = GetDOMTextContent(shader);\n callback(shaderCode);\n return;\n }\n }\n // Direct source ?\n if (shader.substring(0, 7) === \"source:\") {\n callback(shader.substring(7));\n return;\n }\n // Base64 encoded ?\n if (shader.substring(0, 7) === \"base64:\") {\n const shaderBinary = window.atob(shader.substring(7));\n callback(shaderBinary);\n return;\n }\n // Is in local store ?\n if (this._shaderStore[shader + key + \"Shader\"]) {\n callback(this._shaderStore[shader + key + \"Shader\"]);\n return;\n }\n if (optionalKey && this._shaderStore[shader + optionalKey + \"Shader\"]) {\n callback(this._shaderStore[shader + optionalKey + \"Shader\"]);\n return;\n }\n let shaderUrl;\n if (shader[0] === \".\" || shader[0] === \"/\" || shader.indexOf(\"http\") > -1) {\n shaderUrl = shader;\n }\n else {\n shaderUrl = this._shaderRepository + shader;\n }\n this._engine._loadFile(shaderUrl + \".\" + key.toLowerCase() + \".fx\", callback);\n }\n /**\n * Gets the compute shader source code of this effect\n */\n get computeSourceCode() {\n return this._computeSourceCodeOverride ? this._computeSourceCodeOverride : (this._pipelineContext?._getComputeShaderCode() ?? this._computeSourceCode);\n }\n /**\n * Gets the compute shader source code before it has been processed by the preprocessor\n */\n get rawComputeSourceCode() {\n return this._rawComputeSourceCode;\n }\n /**\n * Prepares the effect\n * @internal\n */\n _prepareEffect() {\n const defines = this.defines;\n const previousPipelineContext = this._pipelineContext;\n this._isReady = false;\n try {\n const engine = this._engine;\n this._pipelineContext = engine.createComputePipelineContext();\n this._pipelineContext._name = this._key;\n engine._prepareComputePipelineContext(this._pipelineContext, this._computeSourceCodeOverride ? this._computeSourceCodeOverride : this._computeSourceCode, this._rawComputeSourceCode, this._computeSourceCodeOverride ? null : defines, this._entryPoint);\n engine._executeWhenComputeStateIsCompiled(this._pipelineContext, (messages) => {\n if (messages && messages.numErrors > 0) {\n this._processCompilationErrors(messages, previousPipelineContext);\n return;\n }\n this._compilationError = \"\";\n this._isReady = true;\n if (this.onCompiled) {\n this.onCompiled(this);\n }\n this.onCompileObservable.notifyObservers(this);\n this.onCompileObservable.clear();\n if (previousPipelineContext) {\n this.getEngine()._deleteComputePipelineContext(previousPipelineContext);\n }\n });\n if (this._pipelineContext.isAsync) {\n this._checkIsReady(previousPipelineContext);\n }\n }\n catch (e) {\n this._processCompilationErrors(e, previousPipelineContext);\n }\n }\n _processCompilationErrors(e, previousPipelineContext = null) {\n this._compilationError = \"\";\n Logger.Error(\"Unable to compile compute effect:\");\n if (this.defines) {\n Logger.Error(\"Defines:\\n\" + this.defines);\n }\n if (ComputeEffect.LogShaderCodeOnCompilationError) {\n const code = this._pipelineContext?._getComputeShaderCode();\n if (code) {\n Logger.Error(\"Compute code:\");\n Logger.Error(code);\n }\n }\n if (typeof e === \"string\") {\n this._compilationError = e;\n Logger.Error(\"Error: \" + this._compilationError);\n }\n else {\n for (const message of e.messages) {\n let msg = \"\";\n if (message.line !== undefined) {\n msg += \"Line \" + message.line + \", \";\n }\n if (message.offset !== undefined) {\n msg += \"Offset \" + message.offset + \", \";\n }\n if (message.length !== undefined) {\n msg += \"Length \" + message.length + \", \";\n }\n msg += message.type + \": \" + message.text;\n if (this._compilationError) {\n this._compilationError += \"\\n\";\n }\n this._compilationError += msg;\n Logger.Error(msg);\n }\n }\n if (previousPipelineContext) {\n this._pipelineContext = previousPipelineContext;\n this._isReady = true;\n }\n if (this.onError) {\n this.onError(this, this._compilationError);\n }\n this.onErrorObservable.notifyObservers(this);\n }\n /**\n * Release all associated resources.\n **/\n dispose() {\n if (this._pipelineContext) {\n this._pipelineContext.dispose();\n }\n this._engine._releaseComputeEffect(this);\n }\n /**\n * This function will add a new compute shader to the shader store\n * @param name the name of the shader\n * @param computeShader compute shader content\n */\n static RegisterShader(name, computeShader) {\n ShaderStore.GetShadersStore(1 /* ShaderLanguage.WGSL */)[`${name}ComputeShader`] = computeShader;\n }\n}\nComputeEffect._UniqueIdSeed = 0;\n/**\n * Enable logging of the shader code when a compilation error occurs\n */\nComputeEffect.LogShaderCodeOnCompilationError = true;\n","import { Vector3 } from \"../../Maths/math.vector.js\";\nimport { BoundingBox } from \"../../Culling/boundingBox.js\";\n/**\n * Class used to store a cell in an octree\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimizeOctrees\n */\nexport class OctreeBlock {\n /**\n * Creates a new block\n * @param minPoint defines the minimum vector (in world space) of the block's bounding box\n * @param maxPoint defines the maximum vector (in world space) of the block's bounding box\n * @param capacity defines the maximum capacity of this block (if capacity is reached the block will be split into sub blocks)\n * @param depth defines the current depth of this block in the octree\n * @param maxDepth defines the maximal depth allowed (beyond this value, the capacity is ignored)\n * @param creationFunc defines a callback to call when an element is added to the block\n */\n constructor(minPoint, maxPoint, capacity, depth, maxDepth, creationFunc) {\n /**\n * Gets the content of the current block\n */\n this.entries = [];\n this._boundingVectors = new Array();\n this._capacity = capacity;\n this._depth = depth;\n this._maxDepth = maxDepth;\n this._creationFunc = creationFunc;\n this._minPoint = minPoint;\n this._maxPoint = maxPoint;\n this._boundingVectors.push(minPoint.clone());\n this._boundingVectors.push(maxPoint.clone());\n this._boundingVectors.push(minPoint.clone());\n this._boundingVectors[2].x = maxPoint.x;\n this._boundingVectors.push(minPoint.clone());\n this._boundingVectors[3].y = maxPoint.y;\n this._boundingVectors.push(minPoint.clone());\n this._boundingVectors[4].z = maxPoint.z;\n this._boundingVectors.push(maxPoint.clone());\n this._boundingVectors[5].z = minPoint.z;\n this._boundingVectors.push(maxPoint.clone());\n this._boundingVectors[6].x = minPoint.x;\n this._boundingVectors.push(maxPoint.clone());\n this._boundingVectors[7].y = minPoint.y;\n }\n // Property\n /**\n * Gets the maximum capacity of this block (if capacity is reached the block will be split into sub blocks)\n */\n get capacity() {\n return this._capacity;\n }\n /**\n * Gets the minimum vector (in world space) of the block's bounding box\n */\n get minPoint() {\n return this._minPoint;\n }\n /**\n * Gets the maximum vector (in world space) of the block's bounding box\n */\n get maxPoint() {\n return this._maxPoint;\n }\n // Methods\n /**\n * Add a new element to this block\n * @param entry defines the element to add\n */\n addEntry(entry) {\n if (this.blocks) {\n for (let index = 0; index < this.blocks.length; index++) {\n const block = this.blocks[index];\n block.addEntry(entry);\n }\n return;\n }\n this._creationFunc(entry, this);\n if (this.entries.length > this.capacity && this._depth < this._maxDepth) {\n this.createInnerBlocks();\n }\n }\n /**\n * Remove an element from this block\n * @param entry defines the element to remove\n */\n removeEntry(entry) {\n if (this.blocks) {\n for (let index = 0; index < this.blocks.length; index++) {\n const block = this.blocks[index];\n block.removeEntry(entry);\n }\n return;\n }\n const entryIndex = this.entries.indexOf(entry);\n if (entryIndex > -1) {\n this.entries.splice(entryIndex, 1);\n }\n }\n /**\n * Add an array of elements to this block\n * @param entries defines the array of elements to add\n */\n addEntries(entries) {\n for (let index = 0; index < entries.length; index++) {\n const mesh = entries[index];\n this.addEntry(mesh);\n }\n }\n /**\n * Test if the current block intersects the frustum planes and if yes, then add its content to the selection array\n * @param frustumPlanes defines the frustum planes to test\n * @param selection defines the array to store current content if selection is positive\n * @param allowDuplicate defines if the selection array can contains duplicated entries\n */\n select(frustumPlanes, selection, allowDuplicate) {\n if (BoundingBox.IsInFrustum(this._boundingVectors, frustumPlanes)) {\n if (this.blocks) {\n for (let index = 0; index < this.blocks.length; index++) {\n const block = this.blocks[index];\n block.select(frustumPlanes, selection, allowDuplicate);\n }\n return;\n }\n if (allowDuplicate) {\n selection.concat(this.entries);\n }\n else {\n selection.concatWithNoDuplicate(this.entries);\n }\n }\n }\n /**\n * Test if the current block intersect with the given bounding sphere and if yes, then add its content to the selection array\n * @param sphereCenter defines the bounding sphere center\n * @param sphereRadius defines the bounding sphere radius\n * @param selection defines the array to store current content if selection is positive\n * @param allowDuplicate defines if the selection array can contains duplicated entries\n */\n intersects(sphereCenter, sphereRadius, selection, allowDuplicate) {\n if (BoundingBox.IntersectsSphere(this._minPoint, this._maxPoint, sphereCenter, sphereRadius)) {\n if (this.blocks) {\n for (let index = 0; index < this.blocks.length; index++) {\n const block = this.blocks[index];\n block.intersects(sphereCenter, sphereRadius, selection, allowDuplicate);\n }\n return;\n }\n if (allowDuplicate) {\n selection.concat(this.entries);\n }\n else {\n selection.concatWithNoDuplicate(this.entries);\n }\n }\n }\n /**\n * Test if the current block intersect with the given ray and if yes, then add its content to the selection array\n * @param ray defines the ray to test with\n * @param selection defines the array to store current content if selection is positive\n */\n intersectsRay(ray, selection) {\n if (ray.intersectsBoxMinMax(this._minPoint, this._maxPoint)) {\n if (this.blocks) {\n for (let index = 0; index < this.blocks.length; index++) {\n const block = this.blocks[index];\n block.intersectsRay(ray, selection);\n }\n return;\n }\n selection.concatWithNoDuplicate(this.entries);\n }\n }\n /**\n * Subdivide the content into child blocks (this block will then be empty)\n */\n createInnerBlocks() {\n OctreeBlock._CreateBlocks(this._minPoint, this._maxPoint, this.entries, this._capacity, this._depth, this._maxDepth, this, this._creationFunc);\n this.entries.splice(0);\n }\n /**\n * @internal\n */\n static _CreateBlocks(worldMin, worldMax, entries, maxBlockCapacity, currentDepth, maxDepth, target, creationFunc) {\n target.blocks = new Array();\n const blockSize = new Vector3((worldMax.x - worldMin.x) / 2, (worldMax.y - worldMin.y) / 2, (worldMax.z - worldMin.z) / 2);\n // Segmenting space\n for (let x = 0; x < 2; x++) {\n for (let y = 0; y < 2; y++) {\n for (let z = 0; z < 2; z++) {\n const localMin = worldMin.add(blockSize.multiplyByFloats(x, y, z));\n const localMax = worldMin.add(blockSize.multiplyByFloats(x + 1, y + 1, z + 1));\n const block = new OctreeBlock(localMin, localMax, maxBlockCapacity, currentDepth + 1, maxDepth, creationFunc);\n block.addEntries(entries);\n target.blocks.push(block);\n }\n }\n }\n }\n}\n","import { SmartArrayNoDuplicate } from \"../../Misc/smartArray.js\";\nimport { OctreeBlock } from \"./octreeBlock.js\";\n/**\n * Octrees are a really powerful data structure that can quickly select entities based on space coordinates.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimizeOctrees\n */\nexport class Octree {\n /**\n * Creates a octree\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimizeOctrees\n * @param creationFunc function to be used to instantiate the octree\n * @param maxBlockCapacity defines the maximum number of meshes you want on your octree's leaves (default: 64)\n * @param maxDepth defines the maximum depth (sub-levels) for your octree. Default value is 2, which means 8 8 8 = 512 blocks :) (This parameter takes precedence over capacity.)\n */\n constructor(creationFunc, maxBlockCapacity, \n /** [2] Defines the maximum depth (sub-levels) for your octree. Default value is 2, which means 8 8 8 = 512 blocks :) (This parameter takes precedence over capacity.) */\n maxDepth = 2) {\n this.maxDepth = maxDepth;\n /**\n * Content stored in the octree\n */\n this.dynamicContent = [];\n this._maxBlockCapacity = maxBlockCapacity || 64;\n this._selectionContent = new SmartArrayNoDuplicate(1024);\n this._creationFunc = creationFunc;\n }\n // Methods\n /**\n * Updates the octree by adding blocks for the passed in meshes within the min and max world parameters\n * @param worldMin worldMin for the octree blocks var blockSize = new Vector3((worldMax.x - worldMin.x) / 2, (worldMax.y - worldMin.y) / 2, (worldMax.z - worldMin.z) / 2);\n * @param worldMax worldMax for the octree blocks var blockSize = new Vector3((worldMax.x - worldMin.x) / 2, (worldMax.y - worldMin.y) / 2, (worldMax.z - worldMin.z) / 2);\n * @param entries meshes to be added to the octree blocks\n */\n update(worldMin, worldMax, entries) {\n OctreeBlock._CreateBlocks(worldMin, worldMax, entries, this._maxBlockCapacity, 0, this.maxDepth, this, this._creationFunc);\n }\n /**\n * Adds a mesh to the octree\n * @param entry Mesh to add to the octree\n */\n addMesh(entry) {\n for (let index = 0; index < this.blocks.length; index++) {\n const block = this.blocks[index];\n block.addEntry(entry);\n }\n }\n /**\n * Remove an element from the octree\n * @param entry defines the element to remove\n */\n removeMesh(entry) {\n for (let index = 0; index < this.blocks.length; index++) {\n const block = this.blocks[index];\n block.removeEntry(entry);\n }\n }\n /**\n * Selects an array of meshes within the frustum\n * @param frustumPlanes The frustum planes to use which will select all meshes within it\n * @param allowDuplicate If duplicate objects are allowed in the resulting object array\n * @returns array of meshes within the frustum\n */\n select(frustumPlanes, allowDuplicate) {\n this._selectionContent.reset();\n for (let index = 0; index < this.blocks.length; index++) {\n const block = this.blocks[index];\n block.select(frustumPlanes, this._selectionContent, allowDuplicate);\n }\n if (allowDuplicate) {\n this._selectionContent.concat(this.dynamicContent);\n }\n else {\n this._selectionContent.concatWithNoDuplicate(this.dynamicContent);\n }\n return this._selectionContent;\n }\n /**\n * Test if the octree intersect with the given bounding sphere and if yes, then add its content to the selection array\n * @param sphereCenter defines the bounding sphere center\n * @param sphereRadius defines the bounding sphere radius\n * @param allowDuplicate defines if the selection array can contains duplicated entries\n * @returns an array of objects that intersect the sphere\n */\n intersects(sphereCenter, sphereRadius, allowDuplicate) {\n this._selectionContent.reset();\n for (let index = 0; index < this.blocks.length; index++) {\n const block = this.blocks[index];\n block.intersects(sphereCenter, sphereRadius, this._selectionContent, allowDuplicate);\n }\n if (allowDuplicate) {\n this._selectionContent.concat(this.dynamicContent);\n }\n else {\n this._selectionContent.concatWithNoDuplicate(this.dynamicContent);\n }\n return this._selectionContent;\n }\n /**\n * Test if the octree intersect with the given ray and if yes, then add its content to resulting array\n * @param ray defines the ray to test with\n * @returns array of intersected objects\n */\n intersectsRay(ray) {\n this._selectionContent.reset();\n for (let index = 0; index < this.blocks.length; index++) {\n const block = this.blocks[index];\n block.intersectsRay(ray, this._selectionContent);\n }\n this._selectionContent.concatWithNoDuplicate(this.dynamicContent);\n return this._selectionContent;\n }\n}\n/**\n * Adds a mesh into the octree block if it intersects the block\n * @param entry defines the mesh to try to add to the block\n * @param block defines the block where the mesh should be added\n */\nOctree.CreationFuncForMeshes = (entry, block) => {\n const boundingInfo = entry.getBoundingInfo();\n if (!entry.isBlocked && boundingInfo.boundingBox.intersectsMinMax(block.minPoint, block.maxPoint)) {\n block.entries.push(entry);\n }\n};\n/**\n * Adds a submesh into the octree block if it intersects the block\n * @param entry defines the submesh to try to add to the block\n * @param block defines the block where the submesh should be added\n */\nOctree.CreationFuncForSubMeshes = (entry, block) => {\n const boundingInfo = entry.getBoundingInfo();\n if (boundingInfo.boundingBox.intersectsMinMax(block.minPoint, block.maxPoint)) {\n block.entries.push(entry);\n }\n};\n","import { Scene } from \"../../scene.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { AbstractMesh } from \"../../Meshes/abstractMesh.js\";\nimport { Ray } from \"../../Culling/ray.js\";\nimport { SceneComponentConstants } from \"../../sceneComponent.js\";\nimport { Octree } from \"./octree.js\";\nimport { EngineStore } from \"../../Engines/engineStore.js\";\nScene.prototype.createOrUpdateSelectionOctree = function (maxCapacity = 64, maxDepth = 2) {\n let component = this._getComponent(SceneComponentConstants.NAME_OCTREE);\n if (!component) {\n component = new OctreeSceneComponent(this);\n this._addComponent(component);\n }\n if (!this._selectionOctree) {\n this._selectionOctree = new Octree(Octree.CreationFuncForMeshes, maxCapacity, maxDepth);\n }\n const worldExtends = this.getWorldExtends();\n // Update octree\n this._selectionOctree.update(worldExtends.min, worldExtends.max, this.meshes);\n return this._selectionOctree;\n};\nObject.defineProperty(Scene.prototype, \"selectionOctree\", {\n get: function () {\n return this._selectionOctree;\n },\n enumerable: true,\n configurable: true,\n});\n/**\n * This function will create an octree to help to select the right submeshes for rendering, picking and collision computations.\n * Please note that you must have a decent number of submeshes to get performance improvements when using an octree\n * @param maxCapacity defines the maximum size of each block (64 by default)\n * @param maxDepth defines the maximum depth to use (no more than 2 levels by default)\n * @returns the new octree\n * @see https://www.babylonjs-playground.com/#NA4OQ#12\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimizeOctrees\n */\nAbstractMesh.prototype.createOrUpdateSubmeshesOctree = function (maxCapacity = 64, maxDepth = 2) {\n const scene = this.getScene();\n let component = scene._getComponent(SceneComponentConstants.NAME_OCTREE);\n if (!component) {\n component = new OctreeSceneComponent(scene);\n scene._addComponent(component);\n }\n if (!this._submeshesOctree) {\n this._submeshesOctree = new Octree(Octree.CreationFuncForSubMeshes, maxCapacity, maxDepth);\n }\n this.computeWorldMatrix(true);\n const boundingInfo = this.getBoundingInfo();\n // Update octree\n const bbox = boundingInfo.boundingBox;\n this._submeshesOctree.update(bbox.minimumWorld, bbox.maximumWorld, this.subMeshes);\n return this._submeshesOctree;\n};\n/**\n * Defines the octree scene component responsible to manage any octrees\n * in a given scene.\n */\nexport class OctreeSceneComponent {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(scene) {\n /**\n * The component name help to identify the component in the list of scene components.\n */\n this.name = SceneComponentConstants.NAME_OCTREE;\n /**\n * Indicates if the meshes have been checked to make sure they are isEnabled()\n */\n this.checksIsEnabled = true;\n this._tempRay = new Ray(Vector3.Zero(), new Vector3(1, 1, 1));\n scene = scene || EngineStore.LastCreatedScene;\n if (!scene) {\n return;\n }\n this.scene = scene;\n this.scene.getActiveMeshCandidates = () => this.getActiveMeshCandidates();\n this.scene.getActiveSubMeshCandidates = (mesh) => this.getActiveSubMeshCandidates(mesh);\n this.scene.getCollidingSubMeshCandidates = (mesh, collider) => this.getCollidingSubMeshCandidates(mesh, collider);\n this.scene.getIntersectingSubMeshCandidates = (mesh, localRay) => this.getIntersectingSubMeshCandidates(mesh, localRay);\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene.onMeshRemovedObservable.add((mesh) => {\n const sceneOctree = this.scene.selectionOctree;\n if (sceneOctree !== undefined && sceneOctree !== null) {\n const index = sceneOctree.dynamicContent.indexOf(mesh);\n if (index !== -1) {\n sceneOctree.dynamicContent.splice(index, 1);\n }\n }\n });\n this.scene.onMeshImportedObservable.add((mesh) => {\n const sceneOctree = this.scene.selectionOctree;\n if (sceneOctree !== undefined && sceneOctree !== null) {\n sceneOctree.addMesh(mesh);\n }\n });\n }\n /**\n * Return the list of active meshes\n * @returns the list of active meshes\n */\n getActiveMeshCandidates() {\n return this.scene._selectionOctree?.select(this.scene.frustumPlanes) || this.scene._getDefaultMeshCandidates();\n }\n /**\n * Return the list of active sub meshes\n * @param mesh The mesh to get the candidates sub meshes from\n * @returns the list of active sub meshes\n */\n getActiveSubMeshCandidates(mesh) {\n if (mesh._submeshesOctree && mesh.useOctreeForRenderingSelection) {\n const intersections = mesh._submeshesOctree.select(this.scene.frustumPlanes);\n return intersections;\n }\n return this.scene._getDefaultSubMeshCandidates(mesh);\n }\n /**\n * Return the list of sub meshes intersecting with a given local ray\n * @param mesh defines the mesh to find the submesh for\n * @param localRay defines the ray in local space\n * @returns the list of intersecting sub meshes\n */\n getIntersectingSubMeshCandidates(mesh, localRay) {\n if (mesh._submeshesOctree && mesh.useOctreeForPicking) {\n Ray.TransformToRef(localRay, mesh.getWorldMatrix(), this._tempRay);\n const intersections = mesh._submeshesOctree.intersectsRay(this._tempRay);\n return intersections;\n }\n return this.scene._getDefaultSubMeshCandidates(mesh);\n }\n /**\n * Return the list of sub meshes colliding with a collider\n * @param mesh defines the mesh to find the submesh for\n * @param collider defines the collider to evaluate the collision against\n * @returns the list of colliding sub meshes\n */\n getCollidingSubMeshCandidates(mesh, collider) {\n if (mesh._submeshesOctree && mesh.useOctreeForCollisions) {\n const radius = collider._velocityWorldLength + Math.max(collider._radius.x, collider._radius.y, collider._radius.z);\n const intersections = mesh._submeshesOctree.intersects(collider._basePointWorld, radius);\n return intersections;\n }\n return this.scene._getDefaultSubMeshCandidates(mesh);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n // Nothing to do here.\n }\n /**\n * Disposes the component and the associated resources.\n */\n dispose() {\n // Nothing to do here.\n }\n}\n","import { Tools } from \"../Misc/tools.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { Scene } from \"../scene.js\";\nimport { EngineStore } from \"../Engines/engineStore.js\";\nimport { AbstractEngine } from \"../Engines/abstractEngine.js\";\nObject.defineProperty(Scene.prototype, \"debugLayer\", {\n get: function () {\n if (!this._debugLayer) {\n this._debugLayer = new DebugLayer(this);\n }\n return this._debugLayer;\n },\n enumerable: true,\n configurable: true,\n});\n/**\n * Enum of inspector action tab\n */\nexport var DebugLayerTab;\n(function (DebugLayerTab) {\n /**\n * Properties tag (default)\n */\n DebugLayerTab[DebugLayerTab[\"Properties\"] = 0] = \"Properties\";\n /**\n * Debug tab\n */\n DebugLayerTab[DebugLayerTab[\"Debug\"] = 1] = \"Debug\";\n /**\n * Statistics tab\n */\n DebugLayerTab[DebugLayerTab[\"Statistics\"] = 2] = \"Statistics\";\n /**\n * Tools tab\n */\n DebugLayerTab[DebugLayerTab[\"Tools\"] = 3] = \"Tools\";\n /**\n * Settings tab\n */\n DebugLayerTab[DebugLayerTab[\"Settings\"] = 4] = \"Settings\";\n})(DebugLayerTab || (DebugLayerTab = {}));\n/**\n * The debug layer (aka Inspector) is the go to tool in order to better understand\n * what is happening in your scene\n * @see https://doc.babylonjs.com/toolsAndResources/inspector\n */\nexport class DebugLayer {\n /**\n * Observable triggered when a property is changed through the inspector.\n */\n get onPropertyChangedObservable() {\n if (this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector) {\n return this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable;\n }\n if (!this._onPropertyChangedObservable) {\n this._onPropertyChangedObservable = new Observable();\n }\n return this._onPropertyChangedObservable;\n }\n /**\n * Observable triggered when the selection is changed through the inspector.\n */\n get onSelectionChangedObservable() {\n if (this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector) {\n return this.BJSINSPECTOR.Inspector.OnSelectionChangeObservable;\n }\n if (!this._onSelectionChangedObservable) {\n this._onSelectionChangedObservable = new Observable();\n }\n return this._onSelectionChangedObservable;\n }\n /**\n * Instantiates a new debug layer.\n * The debug layer (aka Inspector) is the go to tool in order to better understand\n * what is happening in your scene\n * @see https://doc.babylonjs.com/toolsAndResources/inspector\n * @param scene Defines the scene to inspect\n */\n constructor(scene) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this.BJSINSPECTOR = this._getGlobalInspector();\n this._scene = scene || EngineStore.LastCreatedScene;\n if (!this._scene) {\n return;\n }\n this._scene.onDisposeObservable.add(() => {\n // Debug layer\n if (this._scene._debugLayer) {\n this._scene._debugLayer.hide();\n }\n });\n }\n /**\n * Creates the inspector window.\n * @param config\n */\n _createInspector(config) {\n if (this.isVisible()) {\n return;\n }\n if (this._onPropertyChangedObservable) {\n for (const observer of this._onPropertyChangedObservable.observers) {\n this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable.add(observer);\n }\n this._onPropertyChangedObservable.clear();\n this._onPropertyChangedObservable = undefined;\n }\n if (this._onSelectionChangedObservable) {\n for (const observer of this._onSelectionChangedObservable.observers) {\n this.BJSINSPECTOR.Inspector.OnSelectionChangedObservable.add(observer);\n }\n this._onSelectionChangedObservable.clear();\n this._onSelectionChangedObservable = undefined;\n }\n const userOptions = {\n ...DebugLayer.Config,\n ...config,\n };\n this.BJSINSPECTOR = this.BJSINSPECTOR || this._getGlobalInspector();\n this.BJSINSPECTOR.Inspector.Show(this._scene, userOptions);\n }\n /**\n * Select a specific entity in the scene explorer and highlight a specific block in that entity property grid\n * @param entity defines the entity to select\n * @param lineContainerTitles defines the specific blocks to highlight (could be a string or an array of strings)\n */\n select(entity, lineContainerTitles) {\n if (this.BJSINSPECTOR) {\n if (lineContainerTitles) {\n if (Object.prototype.toString.call(lineContainerTitles) == \"[object String]\") {\n this.BJSINSPECTOR.Inspector.MarkLineContainerTitleForHighlighting(lineContainerTitles);\n }\n else {\n this.BJSINSPECTOR.Inspector.MarkMultipleLineContainerTitlesForHighlighting(lineContainerTitles);\n }\n }\n this.BJSINSPECTOR.Inspector.OnSelectionChangeObservable.notifyObservers(entity);\n }\n }\n /**\n * Get the inspector from bundle or global\n * @returns the inspector instance if found otherwise, null\n */\n _getGlobalInspector() {\n // UMD Global name detection from Webpack Bundle UMD Name.\n if (typeof INSPECTOR !== \"undefined\") {\n return INSPECTOR;\n }\n // In case of module let s check the global emitted from the Inspector entry point.\n if (typeof BABYLON !== \"undefined\" && typeof BABYLON.Inspector !== \"undefined\") {\n return BABYLON;\n }\n return undefined;\n }\n /**\n * Get if the inspector is visible or not.\n * @returns true if visible otherwise, false\n */\n isVisible() {\n return this.BJSINSPECTOR && this.BJSINSPECTOR.Inspector.IsVisible;\n }\n /**\n * Hide the inspector and close its window.\n */\n hide() {\n if (this.BJSINSPECTOR) {\n this.BJSINSPECTOR.Inspector.Hide();\n }\n }\n /**\n * Update the scene in the inspector\n */\n setAsActiveScene() {\n if (this.BJSINSPECTOR) {\n this.BJSINSPECTOR.Inspector._SetNewScene(this._scene);\n }\n }\n popupSceneExplorer() {\n if (this.BJSINSPECTOR) {\n this.BJSINSPECTOR.Inspector.PopupSceneExplorer();\n }\n }\n popupInspector() {\n if (this.BJSINSPECTOR) {\n this.BJSINSPECTOR.Inspector.PopupInspector();\n }\n }\n popupEmbed() {\n if (this.BJSINSPECTOR) {\n this.BJSINSPECTOR.Inspector.PopupEmbed();\n }\n }\n /**\n * Launch the debugLayer.\n * @param config Define the configuration of the inspector\n * @returns a promise fulfilled when the debug layer is visible\n */\n show(config) {\n return new Promise((resolve) => {\n if (typeof this.BJSINSPECTOR == \"undefined\") {\n const inspectorUrl = config && config.inspectorURL ? config.inspectorURL : DebugLayer.InspectorURL;\n // Load inspector and add it to the DOM\n Tools.LoadBabylonScript(inspectorUrl, () => {\n this._createInspector(config);\n resolve(this);\n });\n }\n else {\n // Otherwise creates the inspector\n this._createInspector(config);\n resolve(this);\n }\n });\n }\n}\n/**\n * Define the url to get the inspector script from.\n * By default it uses the babylonjs CDN.\n * @ignoreNaming\n */\nDebugLayer.InspectorURL = `${Tools._DefaultCdnUrl}/v${AbstractEngine.Version}/inspector/babylon.inspector.bundle.js`;\n/**\n * The default configuration of the inspector\n */\nDebugLayer.Config = {\n overlay: false,\n showExplorer: true,\n showInspector: true,\n embedMode: false,\n handleResize: true,\n enablePopup: true,\n};\n","import { AbstractMesh } from \"../../Meshes/abstractMesh.js\";\nimport { AbstractEngine } from \"../abstractEngine.js\";\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class _OcclusionDataStorage {\n constructor() {\n /** @internal */\n this.occlusionInternalRetryCounter = 0;\n /** @internal */\n this.isOcclusionQueryInProgress = false;\n /** @internal */\n this.isOccluded = false;\n /** @internal */\n this.occlusionRetryCount = -1;\n /** @internal */\n this.occlusionType = AbstractMesh.OCCLUSION_TYPE_NONE;\n /** @internal */\n this.occlusionQueryAlgorithmType = AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE;\n /** @internal */\n this.forceRenderingWhenOccluded = false;\n }\n}\nAbstractEngine.prototype.getGPUFrameTimeCounter = function () {\n return null;\n};\nAbstractEngine.prototype.captureGPUFrameTime = function (value) {\n // Do nothing. Must be implemented by child classes\n};\nAbstractEngine.prototype.createQuery = function () {\n return null;\n};\nAbstractEngine.prototype.deleteQuery = function (query) {\n // Do nothing. Must be implemented by child classes\n return this;\n};\nAbstractEngine.prototype.isQueryResultAvailable = function (query) {\n // Do nothing. Must be implemented by child classes\n return false;\n};\nAbstractEngine.prototype.getQueryResult = function (query) {\n // Do nothing. Must be implemented by child classes\n return 0;\n};\nAbstractEngine.prototype.beginOcclusionQuery = function (algorithmType, query) {\n // Do nothing. Must be implemented by child classes\n return false;\n};\nAbstractEngine.prototype.endOcclusionQuery = function (algorithmType) {\n // Do nothing. Must be implemented by child classes\n return this;\n};\nObject.defineProperty(AbstractMesh.prototype, \"isOcclusionQueryInProgress\", {\n get: function () {\n return this._occlusionDataStorage.isOcclusionQueryInProgress;\n },\n set: function (value) {\n this._occlusionDataStorage.isOcclusionQueryInProgress = value;\n },\n enumerable: false,\n configurable: true,\n});\nObject.defineProperty(AbstractMesh.prototype, \"_occlusionDataStorage\", {\n get: function () {\n if (!this.__occlusionDataStorage) {\n this.__occlusionDataStorage = new _OcclusionDataStorage();\n }\n return this.__occlusionDataStorage;\n },\n enumerable: false,\n configurable: true,\n});\nObject.defineProperty(AbstractMesh.prototype, \"isOccluded\", {\n get: function () {\n return this._occlusionDataStorage.isOccluded;\n },\n set: function (value) {\n this._occlusionDataStorage.isOccluded = value;\n },\n enumerable: true,\n configurable: true,\n});\nObject.defineProperty(AbstractMesh.prototype, \"occlusionQueryAlgorithmType\", {\n get: function () {\n return this._occlusionDataStorage.occlusionQueryAlgorithmType;\n },\n set: function (value) {\n this._occlusionDataStorage.occlusionQueryAlgorithmType = value;\n },\n enumerable: true,\n configurable: true,\n});\nObject.defineProperty(AbstractMesh.prototype, \"occlusionType\", {\n get: function () {\n return this._occlusionDataStorage.occlusionType;\n },\n set: function (value) {\n this._occlusionDataStorage.occlusionType = value;\n },\n enumerable: true,\n configurable: true,\n});\nObject.defineProperty(AbstractMesh.prototype, \"occlusionRetryCount\", {\n get: function () {\n return this._occlusionDataStorage.occlusionRetryCount;\n },\n set: function (value) {\n this._occlusionDataStorage.occlusionRetryCount = value;\n },\n enumerable: true,\n configurable: true,\n});\nObject.defineProperty(AbstractMesh.prototype, \"forceRenderingWhenOccluded\", {\n get: function () {\n return this._occlusionDataStorage.forceRenderingWhenOccluded;\n },\n set: function (value) {\n this._occlusionDataStorage.forceRenderingWhenOccluded = value;\n },\n enumerable: true,\n configurable: true,\n});\n// We also need to update AbstractMesh as there is a portion of the code there\nAbstractMesh.prototype._checkOcclusionQuery = function () {\n const dataStorage = this._occlusionDataStorage;\n if (dataStorage.occlusionType === AbstractMesh.OCCLUSION_TYPE_NONE) {\n dataStorage.isOccluded = false;\n return false;\n }\n const engine = this.getEngine();\n if (!engine.getCaps().supportOcclusionQuery) {\n dataStorage.isOccluded = false;\n return false;\n }\n if (!engine.isQueryResultAvailable) {\n // Occlusion query where not referenced\n dataStorage.isOccluded = false;\n return false;\n }\n if (this.isOcclusionQueryInProgress && this._occlusionQuery !== null && this._occlusionQuery !== undefined) {\n const isOcclusionQueryAvailable = engine.isQueryResultAvailable(this._occlusionQuery);\n if (isOcclusionQueryAvailable) {\n const occlusionQueryResult = engine.getQueryResult(this._occlusionQuery);\n dataStorage.isOcclusionQueryInProgress = false;\n dataStorage.occlusionInternalRetryCounter = 0;\n dataStorage.isOccluded = occlusionQueryResult > 0 ? false : true;\n }\n else {\n dataStorage.occlusionInternalRetryCounter++;\n if (dataStorage.occlusionRetryCount !== -1 && dataStorage.occlusionInternalRetryCounter > dataStorage.occlusionRetryCount) {\n dataStorage.isOcclusionQueryInProgress = false;\n dataStorage.occlusionInternalRetryCounter = 0;\n // if optimistic set isOccluded to false regardless of the status of isOccluded. (Render in the current render loop)\n // if strict continue the last state of the object.\n dataStorage.isOccluded = dataStorage.occlusionType === AbstractMesh.OCCLUSION_TYPE_OPTIMISTIC ? false : dataStorage.isOccluded;\n }\n else {\n return dataStorage.occlusionType === AbstractMesh.OCCLUSION_TYPE_OPTIMISTIC ? false : dataStorage.isOccluded;\n }\n }\n }\n const scene = this.getScene();\n if (scene.getBoundingBoxRenderer) {\n const occlusionBoundingBoxRenderer = scene.getBoundingBoxRenderer();\n if (this._occlusionQuery === null) {\n this._occlusionQuery = engine.createQuery();\n }\n if (this._occlusionQuery && engine.beginOcclusionQuery(dataStorage.occlusionQueryAlgorithmType, this._occlusionQuery)) {\n occlusionBoundingBoxRenderer.renderOcclusionBoundingBox(this);\n engine.endOcclusionQuery(dataStorage.occlusionQueryAlgorithmType);\n this._occlusionDataStorage.isOcclusionQueryInProgress = true;\n }\n }\n return dataStorage.isOccluded;\n};\n","import { Observable } from \"../../Misc/observable.js\";\nimport { AbstractEngine } from \"../abstractEngine.js\";\n/**\n * Class used to define an additional view for the engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/multiCanvas\n */\nexport class EngineView {\n}\nconst _onBeforeViewRenderObservable = new Observable();\nconst _onAfterViewRenderObservable = new Observable();\nObject.defineProperty(AbstractEngine.prototype, \"onBeforeViewRenderObservable\", {\n get: function () {\n return _onBeforeViewRenderObservable;\n },\n});\nObject.defineProperty(AbstractEngine.prototype, \"onAfterViewRenderObservable\", {\n get: function () {\n return _onAfterViewRenderObservable;\n },\n});\nObject.defineProperty(AbstractEngine.prototype, \"inputElement\", {\n get: function () {\n return this._inputElement;\n },\n set: function (value) {\n if (this._inputElement !== value) {\n this._inputElement = value;\n this._onEngineViewChanged?.();\n }\n },\n});\nAbstractEngine.prototype.getInputElement = function () {\n return this.inputElement || this.getRenderingCanvas();\n};\nAbstractEngine.prototype.registerView = function (canvas, camera, clearBeforeCopy) {\n if (!this.views) {\n this.views = [];\n }\n for (const view of this.views) {\n if (view.target === canvas) {\n return view;\n }\n }\n const masterCanvas = this.getRenderingCanvas();\n if (masterCanvas) {\n canvas.width = masterCanvas.width;\n canvas.height = masterCanvas.height;\n }\n const newView = { target: canvas, camera, clearBeforeCopy, enabled: true, id: (Math.random() * 100000).toFixed() };\n this.views.push(newView);\n if (camera && !Array.isArray(camera)) {\n camera.onDisposeObservable.add(() => {\n this.unRegisterView(canvas);\n });\n }\n return newView;\n};\nAbstractEngine.prototype.unRegisterView = function (canvas) {\n if (!this.views || this.views.length === 0) {\n return this;\n }\n for (const view of this.views) {\n if (view.target === canvas) {\n const index = this.views.indexOf(view);\n if (index !== -1) {\n this.views.splice(index, 1);\n }\n break;\n }\n }\n return this;\n};\nAbstractEngine.prototype._renderViewStep = function (view) {\n const canvas = view.target;\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return true;\n }\n const parent = this.getRenderingCanvas();\n _onBeforeViewRenderObservable.notifyObservers(view);\n const camera = view.camera;\n let previewCamera = null;\n let previewCameras = null;\n let scene = null;\n if (camera) {\n scene = Array.isArray(camera) ? camera[0].getScene() : camera.getScene();\n previewCamera = scene.activeCamera;\n previewCameras = scene.activeCameras;\n if (Array.isArray(camera)) {\n scene.activeCameras = camera;\n }\n else {\n scene.activeCamera = camera;\n scene.activeCameras = null;\n }\n }\n this.activeView = view;\n if (view.customResize) {\n view.customResize(canvas);\n }\n else {\n // Set sizes\n const width = Math.floor(canvas.clientWidth / this._hardwareScalingLevel);\n const height = Math.floor(canvas.clientHeight / this._hardwareScalingLevel);\n const dimsChanged = width !== canvas.width || parent.width !== canvas.width || height !== canvas.height || parent.height !== canvas.height;\n if (canvas.clientWidth && canvas.clientHeight && dimsChanged) {\n canvas.width = width;\n canvas.height = height;\n this.setSize(width, height);\n }\n }\n if (!parent.width || !parent.height) {\n return false;\n }\n // Render the frame\n this._renderFrame();\n this.flushFramebuffer();\n // Copy to target\n if (view.clearBeforeCopy) {\n context.clearRect(0, 0, parent.width, parent.height);\n }\n context.drawImage(parent, 0, 0);\n // Restore\n if (scene) {\n scene.activeCameras = previewCameras;\n scene.activeCamera = previewCamera;\n }\n _onAfterViewRenderObservable.notifyObservers(view);\n return true;\n};\nAbstractEngine.prototype._renderViews = function () {\n if (!this.views || this.views.length === 0) {\n return false;\n }\n const parent = this.getRenderingCanvas();\n if (!parent) {\n return false;\n }\n let inputElementView;\n for (const view of this.views) {\n if (!view.enabled) {\n continue;\n }\n const canvas = view.target;\n // Always render the view correspondent to the inputElement for last\n if (canvas === this.inputElement) {\n inputElementView = view;\n continue;\n }\n if (!this._renderViewStep(view)) {\n return false;\n }\n }\n if (inputElementView) {\n if (!this._renderViewStep(inputElementView)) {\n return false;\n }\n }\n this.activeView = null;\n return true;\n};\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { AbstractEngine } from \"../../Engines/abstractEngine.js\";\nAbstractEngine.prototype._debugPushGroup = function (groupName, targetObject) { };\nAbstractEngine.prototype._debugPopGroup = function (targetObject) { };\nAbstractEngine.prototype._debugInsertMarker = function (text, targetObject) { };\nAbstractEngine.prototype._debugFlushPendingCommands = function () { };\n","/**\n * @internal\n **/\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class _TimeToken {\n constructor() {\n this._timeElapsedQueryEnded = false;\n }\n}\n","import { Engine } from \"../engine.js\";\nfunction transformTextureUrl(url) {\n const excludeFn = (entry) => {\n const strRegExPattern = \"\\\\b\" + entry + \"\\\\b\";\n return url && (url === entry || url.match(new RegExp(strRegExPattern, \"g\")));\n };\n if (this._excludedCompressedTextures && this._excludedCompressedTextures.some(excludeFn)) {\n return url;\n }\n const lastDot = url.lastIndexOf(\".\");\n const lastQuestionMark = url.lastIndexOf(\"?\");\n const querystring = lastQuestionMark > -1 ? url.substring(lastQuestionMark, url.length) : \"\";\n return (lastDot > -1 ? url.substring(0, lastDot) : url) + this._textureFormatInUse + querystring;\n}\nObject.defineProperty(Engine.prototype, \"texturesSupported\", {\n get: function () {\n // Intelligently add supported compressed formats in order to check for.\n // Check for ASTC support first as it is most powerful and to be very cross platform.\n // Next PVRTC & DXT, which are probably superior to ETC1/2.\n // Likely no hardware which supports both PVR & DXT, so order matters little.\n // ETC2 is newer and handles ETC1 (no alpha capability), so check for first.\n const texturesSupported = [];\n if (this._caps.astc) {\n texturesSupported.push(\"-astc.ktx\");\n }\n if (this._caps.s3tc) {\n texturesSupported.push(\"-dxt.ktx\");\n }\n if (this._caps.pvrtc) {\n texturesSupported.push(\"-pvrtc.ktx\");\n }\n if (this._caps.etc2) {\n texturesSupported.push(\"-etc2.ktx\");\n }\n if (this._caps.etc1) {\n texturesSupported.push(\"-etc1.ktx\");\n }\n return texturesSupported;\n },\n enumerable: true,\n configurable: true,\n});\nObject.defineProperty(Engine.prototype, \"textureFormatInUse\", {\n get: function () {\n return this._textureFormatInUse || null;\n },\n enumerable: true,\n configurable: true,\n});\nEngine.prototype.setCompressedTextureExclusions = function (skippedFiles) {\n this._excludedCompressedTextures = skippedFiles;\n};\nEngine.prototype.setTextureFormatToUse = function (formatsAvailable) {\n const texturesSupported = this.texturesSupported;\n for (let i = 0, len1 = texturesSupported.length; i < len1; i++) {\n for (let j = 0, len2 = formatsAvailable.length; j < len2; j++) {\n if (texturesSupported[i] === formatsAvailable[j].toLowerCase()) {\n this._transformTextureUrl = transformTextureUrl.bind(this);\n return (this._textureFormatInUse = texturesSupported[i]);\n }\n }\n }\n // actively set format to nothing, to allow this to be called more than once\n // and possibly fail the 2nd time\n this._textureFormatInUse = \"\";\n this._transformTextureUrl = null;\n return null;\n};\n","import { Engine } from \"../../Engines/engine.js\";\nimport { AbstractMesh } from \"../../Meshes/abstractMesh.js\";\nimport { _TimeToken } from \"../../Instrumentation/timeToken.js\";\nimport { PerfCounter } from \"../../Misc/perfCounter.js\";\nimport \"../AbstractEngine/abstractEngine.query.js\";\nEngine.prototype.createQuery = function () {\n const query = this._gl.createQuery();\n if (!query) {\n throw new Error(\"Unable to create Occlusion Query\");\n }\n return query;\n};\nEngine.prototype.deleteQuery = function (query) {\n this._gl.deleteQuery(query);\n return this;\n};\nEngine.prototype.isQueryResultAvailable = function (query) {\n return this._gl.getQueryParameter(query, this._gl.QUERY_RESULT_AVAILABLE);\n};\nEngine.prototype.getQueryResult = function (query) {\n return this._gl.getQueryParameter(query, this._gl.QUERY_RESULT);\n};\nEngine.prototype.beginOcclusionQuery = function (algorithmType, query) {\n const glAlgorithm = this._getGlAlgorithmType(algorithmType);\n this._gl.beginQuery(glAlgorithm, query);\n return true;\n};\nEngine.prototype.endOcclusionQuery = function (algorithmType) {\n const glAlgorithm = this._getGlAlgorithmType(algorithmType);\n this._gl.endQuery(glAlgorithm);\n return this;\n};\nEngine.prototype._createTimeQuery = function () {\n const timerQuery = this.getCaps().timerQuery;\n if (timerQuery.createQueryEXT) {\n return timerQuery.createQueryEXT();\n }\n return this.createQuery();\n};\nEngine.prototype._deleteTimeQuery = function (query) {\n const timerQuery = this.getCaps().timerQuery;\n if (timerQuery.deleteQueryEXT) {\n timerQuery.deleteQueryEXT(query);\n return;\n }\n this.deleteQuery(query);\n};\nEngine.prototype._getTimeQueryResult = function (query) {\n const timerQuery = this.getCaps().timerQuery;\n if (timerQuery.getQueryObjectEXT) {\n return timerQuery.getQueryObjectEXT(query, timerQuery.QUERY_RESULT_EXT);\n }\n return this.getQueryResult(query);\n};\nEngine.prototype._getTimeQueryAvailability = function (query) {\n const timerQuery = this.getCaps().timerQuery;\n if (timerQuery.getQueryObjectEXT) {\n return timerQuery.getQueryObjectEXT(query, timerQuery.QUERY_RESULT_AVAILABLE_EXT);\n }\n return this.isQueryResultAvailable(query);\n};\nEngine.prototype.startTimeQuery = function () {\n const caps = this.getCaps();\n const timerQuery = caps.timerQuery;\n if (!timerQuery) {\n return null;\n }\n const token = new _TimeToken();\n this._gl.getParameter(timerQuery.GPU_DISJOINT_EXT);\n if (caps.canUseTimestampForTimerQuery) {\n token._startTimeQuery = this._createTimeQuery();\n if (token._startTimeQuery) {\n timerQuery.queryCounterEXT(token._startTimeQuery, timerQuery.TIMESTAMP_EXT);\n }\n }\n else {\n if (this._currentNonTimestampToken) {\n return this._currentNonTimestampToken;\n }\n token._timeElapsedQuery = this._createTimeQuery();\n if (token._timeElapsedQuery) {\n if (timerQuery.beginQueryEXT) {\n timerQuery.beginQueryEXT(timerQuery.TIME_ELAPSED_EXT, token._timeElapsedQuery);\n }\n else {\n this._gl.beginQuery(timerQuery.TIME_ELAPSED_EXT, token._timeElapsedQuery);\n }\n }\n this._currentNonTimestampToken = token;\n }\n return token;\n};\nEngine.prototype.endTimeQuery = function (token) {\n const caps = this.getCaps();\n const timerQuery = caps.timerQuery;\n if (!timerQuery || !token) {\n return -1;\n }\n if (caps.canUseTimestampForTimerQuery) {\n if (!token._startTimeQuery) {\n return -1;\n }\n if (!token._endTimeQuery) {\n token._endTimeQuery = this._createTimeQuery();\n if (token._endTimeQuery) {\n timerQuery.queryCounterEXT(token._endTimeQuery, timerQuery.TIMESTAMP_EXT);\n }\n }\n }\n else if (!token._timeElapsedQueryEnded) {\n if (!token._timeElapsedQuery) {\n return -1;\n }\n if (timerQuery.endQueryEXT) {\n timerQuery.endQueryEXT(timerQuery.TIME_ELAPSED_EXT);\n }\n else {\n this._gl.endQuery(timerQuery.TIME_ELAPSED_EXT);\n this._currentNonTimestampToken = null;\n }\n token._timeElapsedQueryEnded = true;\n }\n const disjoint = this._gl.getParameter(timerQuery.GPU_DISJOINT_EXT);\n let available = false;\n if (token._endTimeQuery) {\n available = this._getTimeQueryAvailability(token._endTimeQuery);\n }\n else if (token._timeElapsedQuery) {\n available = this._getTimeQueryAvailability(token._timeElapsedQuery);\n }\n if (available && !disjoint) {\n let result = 0;\n if (caps.canUseTimestampForTimerQuery) {\n if (!token._startTimeQuery || !token._endTimeQuery) {\n return -1;\n }\n const timeStart = this._getTimeQueryResult(token._startTimeQuery);\n const timeEnd = this._getTimeQueryResult(token._endTimeQuery);\n result = timeEnd - timeStart;\n this._deleteTimeQuery(token._startTimeQuery);\n this._deleteTimeQuery(token._endTimeQuery);\n token._startTimeQuery = null;\n token._endTimeQuery = null;\n }\n else {\n if (!token._timeElapsedQuery) {\n return -1;\n }\n result = this._getTimeQueryResult(token._timeElapsedQuery);\n this._deleteTimeQuery(token._timeElapsedQuery);\n token._timeElapsedQuery = null;\n token._timeElapsedQueryEnded = false;\n }\n return result;\n }\n return -1;\n};\nEngine.prototype._captureGPUFrameTime = false;\nEngine.prototype._gpuFrameTime = new PerfCounter();\nEngine.prototype.getGPUFrameTimeCounter = function () {\n return this._gpuFrameTime;\n};\nEngine.prototype.captureGPUFrameTime = function (value) {\n if (value === this._captureGPUFrameTime) {\n return;\n }\n this._captureGPUFrameTime = value;\n if (value) {\n this._onBeginFrameObserver = this.onBeginFrameObservable.add(() => {\n if (!this._gpuFrameTimeToken) {\n this._gpuFrameTimeToken = this.startTimeQuery();\n }\n });\n this._onEndFrameObserver = this.onEndFrameObservable.add(() => {\n if (!this._gpuFrameTimeToken) {\n return;\n }\n const time = this.endTimeQuery(this._gpuFrameTimeToken);\n if (time > -1) {\n this._gpuFrameTimeToken = null;\n this._gpuFrameTime.fetchNewFrame();\n this._gpuFrameTime.addCount(time, true);\n }\n });\n }\n else {\n this.onBeginFrameObservable.remove(this._onBeginFrameObserver);\n this._onBeginFrameObserver = null;\n this.onEndFrameObservable.remove(this._onEndFrameObserver);\n this._onEndFrameObserver = null;\n }\n};\nEngine.prototype._getGlAlgorithmType = function (algorithmType) {\n return algorithmType === AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE ? this._gl.ANY_SAMPLES_PASSED_CONSERVATIVE : this._gl.ANY_SAMPLES_PASSED;\n};\n","import { Engine } from \"../../Engines/engine.js\";\n/** @internal */\n// eslint-disable-next-line no-var\nexport var _forceTransformFeedbackToBundle = true;\nEngine.prototype.createTransformFeedback = function () {\n const transformFeedback = this._gl.createTransformFeedback();\n if (!transformFeedback) {\n throw new Error(\"Unable to create Transform Feedback\");\n }\n return transformFeedback;\n};\nEngine.prototype.deleteTransformFeedback = function (value) {\n this._gl.deleteTransformFeedback(value);\n};\nEngine.prototype.bindTransformFeedback = function (value) {\n this._gl.bindTransformFeedback(this._gl.TRANSFORM_FEEDBACK, value);\n};\nEngine.prototype.beginTransformFeedback = function (usePoints = true) {\n this._gl.beginTransformFeedback(usePoints ? this._gl.POINTS : this._gl.TRIANGLES);\n};\nEngine.prototype.endTransformFeedback = function () {\n this._gl.endTransformFeedback();\n};\nEngine.prototype.setTranformFeedbackVaryings = function (program, value) {\n this._gl.transformFeedbackVaryings(program, value, this._gl.INTERLEAVED_ATTRIBS);\n};\nEngine.prototype.bindTransformFeedbackBuffer = function (value) {\n this._gl.bindBufferBase(this._gl.TRANSFORM_FEEDBACK_BUFFER, 0, value ? value.underlyingResource : null);\n};\nEngine.prototype.readTransformFeedbackBuffer = function (target) {\n this._gl.getBufferSubData(this._gl.TRANSFORM_FEEDBACK_BUFFER, 0, target);\n};\n","import { ThinEngine } from \"../../Engines/thinEngine.js\";\n\nThinEngine.prototype.updateVideoTexture = function (texture, video, invertY) {\n if (!texture || texture._isDisabled) {\n return;\n }\n const glformat = this._getInternalFormat(texture.format);\n const internalFormat = this._getRGBABufferInternalSizedFormat(0, texture.format);\n const wasPreviouslyBound = this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n this._unpackFlipY(!invertY); // Video are upside down by default\n try {\n // Testing video texture support\n if (this._videoTextureSupported === undefined) {\n // clear old errors just in case.\n this._gl.getError();\n this._gl.texImage2D(this._gl.TEXTURE_2D, 0, internalFormat, glformat, this._gl.UNSIGNED_BYTE, video);\n if (this._gl.getError() !== 0) {\n this._videoTextureSupported = false;\n }\n else {\n this._videoTextureSupported = true;\n }\n }\n // Copy video through the current working canvas if video texture is not supported\n if (!this._videoTextureSupported) {\n if (!texture._workingCanvas) {\n texture._workingCanvas = this.createCanvas(texture.width, texture.height);\n const context = texture._workingCanvas.getContext(\"2d\");\n if (!context) {\n throw new Error(\"Unable to get 2d context\");\n }\n texture._workingContext = context;\n texture._workingCanvas.width = texture.width;\n texture._workingCanvas.height = texture.height;\n }\n texture._workingContext.clearRect(0, 0, texture.width, texture.height);\n texture._workingContext.drawImage(video, 0, 0, video.videoWidth, video.videoHeight, 0, 0, texture.width, texture.height);\n this._gl.texImage2D(this._gl.TEXTURE_2D, 0, internalFormat, glformat, this._gl.UNSIGNED_BYTE, texture._workingCanvas);\n }\n else {\n this._gl.texImage2D(this._gl.TEXTURE_2D, 0, internalFormat, glformat, this._gl.UNSIGNED_BYTE, video);\n }\n if (texture.generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_2D);\n }\n if (!wasPreviouslyBound) {\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n }\n // this.resetTextureCache();\n texture.isReady = true;\n }\n catch (ex) {\n // Something unexpected\n // Let's disable the texture\n texture._isDisabled = true;\n }\n};\n","import { InternalTexture } from \"../../Materials/Textures/internalTexture.js\";\nimport { Logger } from \"../../Misc/logger.js\";\n\nimport { ThinEngine } from \"../thinEngine.js\";\nThinEngine.prototype.restoreSingleAttachment = function () {\n const gl = this._gl;\n this.bindAttachments([gl.BACK]);\n};\nThinEngine.prototype.restoreSingleAttachmentForRenderTarget = function () {\n const gl = this._gl;\n this.bindAttachments([gl.COLOR_ATTACHMENT0]);\n};\nThinEngine.prototype.buildTextureLayout = function (textureStatus) {\n const gl = this._gl;\n const result = [];\n for (let i = 0; i < textureStatus.length; i++) {\n if (textureStatus[i]) {\n result.push(gl[\"COLOR_ATTACHMENT\" + i]);\n }\n else {\n result.push(gl.NONE);\n }\n }\n return result;\n};\nThinEngine.prototype.bindAttachments = function (attachments) {\n const gl = this._gl;\n gl.drawBuffers(attachments);\n};\nThinEngine.prototype.unBindMultiColorAttachmentFramebuffer = function (rtWrapper, disableGenerateMipMaps = false, onBeforeUnbind) {\n this._currentRenderTarget = null;\n // If MSAA, we need to bitblt back to main texture\n const gl = this._gl;\n const attachments = rtWrapper._attachments;\n const count = attachments.length;\n if (rtWrapper._MSAAFramebuffer) {\n gl.bindFramebuffer(gl.READ_FRAMEBUFFER, rtWrapper._MSAAFramebuffer);\n gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, rtWrapper._framebuffer);\n for (let i = 0; i < count; i++) {\n const texture = rtWrapper.textures[i];\n for (let j = 0; j < count; j++) {\n attachments[j] = gl.NONE;\n }\n attachments[i] = gl[this.webGLVersion > 1 ? \"COLOR_ATTACHMENT\" + i : \"COLOR_ATTACHMENT\" + i + \"_WEBGL\"];\n gl.readBuffer(attachments[i]);\n gl.drawBuffers(attachments);\n gl.blitFramebuffer(0, 0, texture.width, texture.height, 0, 0, texture.width, texture.height, gl.COLOR_BUFFER_BIT, gl.NEAREST);\n }\n for (let i = 0; i < count; i++) {\n attachments[i] = gl[this.webGLVersion > 1 ? \"COLOR_ATTACHMENT\" + i : \"COLOR_ATTACHMENT\" + i + \"_WEBGL\"];\n }\n gl.drawBuffers(attachments);\n }\n for (let i = 0; i < count; i++) {\n const texture = rtWrapper.textures[i];\n if (texture?.generateMipMaps && !disableGenerateMipMaps && !texture?.isCube && !texture?.is3D) {\n this._bindTextureDirectly(gl.TEXTURE_2D, texture, true);\n gl.generateMipmap(gl.TEXTURE_2D);\n this._bindTextureDirectly(gl.TEXTURE_2D, null);\n }\n }\n if (onBeforeUnbind) {\n if (rtWrapper._MSAAFramebuffer) {\n // Bind the correct framebuffer\n this._bindUnboundFramebuffer(rtWrapper._framebuffer);\n }\n onBeforeUnbind();\n }\n this._bindUnboundFramebuffer(null);\n};\nThinEngine.prototype.createMultipleRenderTarget = function (size, options, initializeBuffers = true) {\n let generateMipMaps = false;\n let generateDepthBuffer = true;\n let generateStencilBuffer = false;\n let generateDepthTexture = false;\n let depthTextureFormat = 15;\n let textureCount = 1;\n let samples = 1;\n const defaultType = 0;\n const defaultSamplingMode = 3;\n const defaultUseSRGBBuffer = false;\n const defaultFormat = 5;\n const defaultTarget = 3553;\n let types = [];\n let samplingModes = [];\n let useSRGBBuffers = [];\n let formats = [];\n let targets = [];\n let faceIndex = [];\n let layerIndex = [];\n let layers = [];\n let labels = [];\n const rtWrapper = this._createHardwareRenderTargetWrapper(true, false, size);\n if (options !== undefined) {\n generateMipMaps = options.generateMipMaps === undefined ? false : options.generateMipMaps;\n generateDepthBuffer = options.generateDepthBuffer === undefined ? true : options.generateDepthBuffer;\n generateStencilBuffer = options.generateStencilBuffer === undefined ? false : options.generateStencilBuffer;\n generateDepthTexture = options.generateDepthTexture === undefined ? false : options.generateDepthTexture;\n textureCount = options.textureCount ?? 1;\n samples = options.samples ?? samples;\n types = options.types || types;\n samplingModes = options.samplingModes || samplingModes;\n useSRGBBuffers = options.useSRGBBuffers || useSRGBBuffers;\n formats = options.formats || formats;\n targets = options.targetTypes || targets;\n faceIndex = options.faceIndex || faceIndex;\n layerIndex = options.layerIndex || layerIndex;\n layers = options.layerCounts || layers;\n labels = options.labels || labels;\n if (this.webGLVersion > 1 &&\n (options.depthTextureFormat === 13 ||\n options.depthTextureFormat === 17 ||\n options.depthTextureFormat === 16 ||\n options.depthTextureFormat === 14 ||\n options.depthTextureFormat === 18)) {\n depthTextureFormat = options.depthTextureFormat;\n }\n }\n const gl = this._gl;\n // Create the framebuffer\n const framebuffer = gl.createFramebuffer();\n this._bindUnboundFramebuffer(framebuffer);\n const width = size.width ?? size;\n const height = size.height ?? size;\n const textures = [];\n const attachments = [];\n const useStencilTexture = this.webGLVersion > 1 &&\n (depthTextureFormat === 13 ||\n depthTextureFormat === 17 ||\n depthTextureFormat === 18);\n rtWrapper.label = options?.label ?? \"MultiRenderTargetWrapper\";\n rtWrapper._framebuffer = framebuffer;\n rtWrapper._generateDepthBuffer = generateDepthTexture || generateDepthBuffer;\n rtWrapper._generateStencilBuffer = generateDepthTexture ? useStencilTexture : generateStencilBuffer;\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(rtWrapper._generateStencilBuffer, rtWrapper._generateDepthBuffer, width, height, 1, depthTextureFormat);\n rtWrapper._attachments = attachments;\n for (let i = 0; i < textureCount; i++) {\n let samplingMode = samplingModes[i] || defaultSamplingMode;\n let type = types[i] || defaultType;\n let useSRGBBuffer = useSRGBBuffers[i] || defaultUseSRGBBuffer;\n const format = formats[i] || defaultFormat;\n const target = targets[i] || defaultTarget;\n const layerCount = layers[i] ?? 1;\n if (type === 1 && !this._caps.textureFloatLinearFiltering) {\n // if floating point linear (gl.FLOAT) then force to NEAREST_SAMPLINGMODE\n samplingMode = 1;\n }\n else if (type === 2 && !this._caps.textureHalfFloatLinearFiltering) {\n // if floating point linear (HALF_FLOAT) then force to NEAREST_SAMPLINGMODE\n samplingMode = 1;\n }\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n if (type === 1 && !this._caps.textureFloat) {\n type = 0;\n Logger.Warn(\"Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type\");\n }\n useSRGBBuffer = useSRGBBuffer && this._caps.supportSRGBBuffers && (this.webGLVersion > 1 || this.isWebGPU);\n const isWebGL2 = this.webGLVersion > 1;\n const attachment = gl[isWebGL2 ? \"COLOR_ATTACHMENT\" + i : \"COLOR_ATTACHMENT\" + i + \"_WEBGL\"];\n attachments.push(attachment);\n if (target === -1) {\n continue;\n }\n const texture = new InternalTexture(this, 6 /* InternalTextureSource.MultiRenderTarget */);\n textures[i] = texture;\n gl.activeTexture(gl[\"TEXTURE\" + i]);\n gl.bindTexture(target, texture._hardwareTexture.underlyingResource);\n gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, filters.mag);\n gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, filters.min);\n gl.texParameteri(target, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(target, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n const internalSizedFormat = this._getRGBABufferInternalSizedFormat(type, format, useSRGBBuffer);\n const internalFormat = this._getInternalFormat(format);\n const webGLTextureType = this._getWebGLTextureType(type);\n if (isWebGL2 && (target === 35866 || target === 32879)) {\n if (target === 35866) {\n texture.is2DArray = true;\n }\n else {\n texture.is3D = true;\n }\n texture.baseDepth = texture.depth = layerCount;\n gl.texImage3D(target, 0, internalSizedFormat, width, height, layerCount, 0, internalFormat, webGLTextureType, null);\n }\n else if (target === 34067) {\n // We have to generate all faces to complete the framebuffer\n for (let i = 0; i < 6; i++) {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, internalSizedFormat, width, height, 0, internalFormat, webGLTextureType, null);\n }\n texture.isCube = true;\n }\n else {\n gl.texImage2D(gl.TEXTURE_2D, 0, internalSizedFormat, width, height, 0, internalFormat, webGLTextureType, null);\n }\n if (generateMipMaps) {\n gl.generateMipmap(target);\n }\n // Unbind\n this._bindTextureDirectly(target, null);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.width = width;\n texture.height = height;\n texture.isReady = true;\n texture.samples = 1;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.type = type;\n texture._useSRGBBuffer = useSRGBBuffer;\n texture.format = format;\n texture.label = labels[i] ?? rtWrapper.label + \"-Texture\" + i;\n this._internalTexturesCache.push(texture);\n }\n if (generateDepthTexture && this._caps.depthTextureExtension) {\n // Depth texture\n const depthTexture = new InternalTexture(this, 14 /* InternalTextureSource.Depth */);\n let depthTextureType = 5;\n let glDepthTextureInternalFormat = gl.DEPTH_COMPONENT16;\n let glDepthTextureFormat = gl.DEPTH_COMPONENT;\n let glDepthTextureType = gl.UNSIGNED_SHORT;\n let glDepthTextureAttachment = gl.DEPTH_ATTACHMENT;\n if (this.webGLVersion < 2) {\n glDepthTextureInternalFormat = gl.DEPTH_COMPONENT;\n }\n else {\n if (depthTextureFormat === 14) {\n depthTextureType = 1;\n glDepthTextureType = gl.FLOAT;\n glDepthTextureInternalFormat = gl.DEPTH_COMPONENT32F;\n }\n else if (depthTextureFormat === 18) {\n depthTextureType = 0;\n glDepthTextureType = gl.FLOAT_32_UNSIGNED_INT_24_8_REV;\n glDepthTextureInternalFormat = gl.DEPTH32F_STENCIL8;\n glDepthTextureFormat = gl.DEPTH_STENCIL;\n glDepthTextureAttachment = gl.DEPTH_STENCIL_ATTACHMENT;\n }\n else if (depthTextureFormat === 16) {\n depthTextureType = 0;\n glDepthTextureType = gl.UNSIGNED_INT;\n glDepthTextureInternalFormat = gl.DEPTH_COMPONENT24;\n glDepthTextureAttachment = gl.DEPTH_ATTACHMENT;\n }\n else if (depthTextureFormat === 13 || depthTextureFormat === 17) {\n depthTextureType = 12;\n glDepthTextureType = gl.UNSIGNED_INT_24_8;\n glDepthTextureInternalFormat = gl.DEPTH24_STENCIL8;\n glDepthTextureFormat = gl.DEPTH_STENCIL;\n glDepthTextureAttachment = gl.DEPTH_STENCIL_ATTACHMENT;\n }\n }\n this._bindTextureDirectly(gl.TEXTURE_2D, depthTexture, true);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texImage2D(gl.TEXTURE_2D, 0, glDepthTextureInternalFormat, width, height, 0, glDepthTextureFormat, glDepthTextureType, null);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, glDepthTextureAttachment, gl.TEXTURE_2D, depthTexture._hardwareTexture.underlyingResource, 0);\n this._bindTextureDirectly(gl.TEXTURE_2D, null);\n rtWrapper._depthStencilTexture = depthTexture;\n rtWrapper._depthStencilTextureWithStencil = useStencilTexture;\n depthTexture.baseWidth = width;\n depthTexture.baseHeight = height;\n depthTexture.width = width;\n depthTexture.height = height;\n depthTexture.isReady = true;\n depthTexture.samples = 1;\n depthTexture.generateMipMaps = generateMipMaps;\n depthTexture.samplingMode = 1;\n depthTexture.format = depthTextureFormat;\n depthTexture.type = depthTextureType;\n depthTexture.label = rtWrapper.label + \"-DepthStencil\";\n textures[textureCount] = depthTexture;\n this._internalTexturesCache.push(depthTexture);\n }\n rtWrapper.setTextures(textures);\n if (initializeBuffers) {\n gl.drawBuffers(attachments);\n }\n this._bindUnboundFramebuffer(null);\n rtWrapper.setLayerAndFaceIndices(layerIndex, faceIndex);\n this.resetTextureCache();\n this.updateMultipleRenderTargetTextureSampleCount(rtWrapper, samples, initializeBuffers);\n return rtWrapper;\n};\nThinEngine.prototype.updateMultipleRenderTargetTextureSampleCount = function (rtWrapper, samples, initializeBuffers = true) {\n if (this.webGLVersion < 2 || !rtWrapper) {\n return 1;\n }\n if (rtWrapper.samples === samples) {\n return samples;\n }\n const gl = this._gl;\n samples = Math.min(samples, this.getCaps().maxMSAASamples);\n // Dispose previous render buffers\n if (rtWrapper._depthStencilBuffer) {\n gl.deleteRenderbuffer(rtWrapper._depthStencilBuffer);\n rtWrapper._depthStencilBuffer = null;\n }\n if (rtWrapper._MSAAFramebuffer) {\n gl.deleteFramebuffer(rtWrapper._MSAAFramebuffer);\n rtWrapper._MSAAFramebuffer = null;\n }\n const count = rtWrapper._attachments.length; // We do it this way instead of rtWrapper.textures.length to avoid taking into account the depth/stencil texture, in case it has been created\n for (let i = 0; i < count; i++) {\n const texture = rtWrapper.textures[i];\n const hardwareTexture = texture._hardwareTexture;\n hardwareTexture?.releaseMSAARenderBuffers();\n }\n if (samples > 1 && typeof gl.renderbufferStorageMultisample === \"function\") {\n const framebuffer = gl.createFramebuffer();\n if (!framebuffer) {\n throw new Error(\"Unable to create multi sampled framebuffer\");\n }\n rtWrapper._MSAAFramebuffer = framebuffer;\n this._bindUnboundFramebuffer(framebuffer);\n const attachments = [];\n for (let i = 0; i < count; i++) {\n const texture = rtWrapper.textures[i];\n const hardwareTexture = texture._hardwareTexture;\n const attachment = gl[this.webGLVersion > 1 ? \"COLOR_ATTACHMENT\" + i : \"COLOR_ATTACHMENT\" + i + \"_WEBGL\"];\n const colorRenderbuffer = this._createRenderBuffer(texture.width, texture.height, samples, -1 /* not used */, this._getRGBABufferInternalSizedFormat(texture.type, texture.format, texture._useSRGBBuffer), attachment);\n if (!colorRenderbuffer) {\n throw new Error(\"Unable to create multi sampled framebuffer\");\n }\n hardwareTexture.addMSAARenderBuffer(colorRenderbuffer);\n texture.samples = samples;\n attachments.push(attachment);\n }\n if (initializeBuffers) {\n gl.drawBuffers(attachments);\n }\n }\n else {\n this._bindUnboundFramebuffer(rtWrapper._framebuffer);\n }\n const depthFormat = rtWrapper._depthStencilTexture ? rtWrapper._depthStencilTexture.format : undefined;\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(rtWrapper._generateStencilBuffer, rtWrapper._generateDepthBuffer, rtWrapper.width, rtWrapper.height, samples, depthFormat);\n this._bindUnboundFramebuffer(null);\n rtWrapper._samples = samples;\n return samples;\n};\n","import { ThinEngine } from \"../../Engines/thinEngine.js\";\nimport { AbstractEngine } from \"../abstractEngine.js\";\n/** @internal */\nexport var ComputeBindingType;\n(function (ComputeBindingType) {\n ComputeBindingType[ComputeBindingType[\"Texture\"] = 0] = \"Texture\";\n ComputeBindingType[ComputeBindingType[\"StorageTexture\"] = 1] = \"StorageTexture\";\n ComputeBindingType[ComputeBindingType[\"UniformBuffer\"] = 2] = \"UniformBuffer\";\n ComputeBindingType[ComputeBindingType[\"StorageBuffer\"] = 3] = \"StorageBuffer\";\n ComputeBindingType[ComputeBindingType[\"TextureWithoutSampler\"] = 4] = \"TextureWithoutSampler\";\n ComputeBindingType[ComputeBindingType[\"Sampler\"] = 5] = \"Sampler\";\n ComputeBindingType[ComputeBindingType[\"ExternalTexture\"] = 6] = \"ExternalTexture\";\n ComputeBindingType[ComputeBindingType[\"DataBuffer\"] = 7] = \"DataBuffer\";\n})(ComputeBindingType || (ComputeBindingType = {}));\nThinEngine.prototype.createComputeEffect = function (baseName, options) {\n throw new Error(\"createComputeEffect: This engine does not support compute shaders!\");\n};\nThinEngine.prototype.createComputePipelineContext = function () {\n throw new Error(\"createComputePipelineContext: This engine does not support compute shaders!\");\n};\nThinEngine.prototype.createComputeContext = function () {\n return undefined;\n};\nThinEngine.prototype.computeDispatch = function (effect, context, bindings, x, y, z, bindingsMapping) {\n throw new Error(\"computeDispatch: This engine does not support compute shaders!\");\n};\nThinEngine.prototype.computeDispatchIndirect = function (effect, context, bindings, buffer, offset, bindingsMapping) {\n throw new Error(\"computeDispatchIndirect: This engine does not support compute shaders!\");\n};\nThinEngine.prototype.areAllComputeEffectsReady = function () {\n return true;\n};\nThinEngine.prototype.releaseComputeEffects = function () { };\nThinEngine.prototype._prepareComputePipelineContext = function (pipelineContext, computeSourceCode, rawComputeSourceCode, defines, entryPoint) { };\nThinEngine.prototype._rebuildComputeEffects = function () { };\nAbstractEngine.prototype._executeWhenComputeStateIsCompiled = function (pipelineContext, action) {\n action(null);\n};\nThinEngine.prototype._releaseComputeEffect = function (effect) { };\nThinEngine.prototype._deleteComputePipelineContext = function (pipelineContext) { };\n","/** @internal */\nexport class NativeDataStream {\n constructor() {\n const buffer = new ArrayBuffer(NativeDataStream.DEFAULT_BUFFER_SIZE);\n this._uint32s = new Uint32Array(buffer);\n this._int32s = new Int32Array(buffer);\n this._float32s = new Float32Array(buffer);\n this._length = NativeDataStream.DEFAULT_BUFFER_SIZE / 4;\n this._position = 0;\n this._nativeDataStream = new _native.NativeDataStream(() => {\n this._flush();\n });\n }\n /**\n * Writes a uint32 to the stream\n * @param value the value to write\n */\n writeUint32(value) {\n this._flushIfNecessary(1);\n this._uint32s[this._position++] = value;\n }\n /**\n * Writes an int32 to the stream\n * @param value the value to write\n */\n writeInt32(value) {\n this._flushIfNecessary(1);\n this._int32s[this._position++] = value;\n }\n /**\n * Writes a float32 to the stream\n * @param value the value to write\n */\n writeFloat32(value) {\n this._flushIfNecessary(1);\n this._float32s[this._position++] = value;\n }\n /**\n * Writes a uint32 array to the stream\n * @param values the values to write\n */\n writeUint32Array(values) {\n this._flushIfNecessary(1 + values.length);\n this._uint32s[this._position++] = values.length;\n this._uint32s.set(values, this._position);\n this._position += values.length;\n }\n /**\n * Writes an int32 array to the stream\n * @param values the values to write\n */\n writeInt32Array(values) {\n this._flushIfNecessary(1 + values.length);\n this._uint32s[this._position++] = values.length;\n this._int32s.set(values, this._position);\n this._position += values.length;\n }\n /**\n * Writes a float32 array to the stream\n * @param values the values to write\n */\n writeFloat32Array(values) {\n this._flushIfNecessary(1 + values.length);\n this._uint32s[this._position++] = values.length;\n this._float32s.set(values, this._position);\n this._position += values.length;\n }\n /**\n * Writes native data to the stream\n * @param handle the handle to the native data\n */\n writeNativeData(handle) {\n this._flushIfNecessary(handle.length);\n this._uint32s.set(handle, this._position);\n this._position += handle.length;\n }\n /**\n * Writes a boolean to the stream\n * @param value the value to write\n */\n writeBoolean(value) {\n this.writeUint32(value ? 1 : 0);\n }\n _flushIfNecessary(required) {\n if (this._position + required > this._length) {\n this._flush();\n }\n }\n _flush() {\n this._nativeDataStream.writeBuffer(this._uint32s.buffer, this._position);\n this._position = 0;\n }\n}\n// Must be multiple of 4!\n// eslint-disable-next-line @typescript-eslint/naming-convention\nNativeDataStream.DEFAULT_BUFFER_SIZE = 65536;\n","/**\n * Extracts the characters between two markers (for eg, between \"(\" and \")\"). The function handles nested markers as well as markers inside strings (delimited by \", ' or `) and comments\n * @param markerOpen opening marker\n * @param markerClose closing marker\n * @param block code block to parse\n * @param startIndex starting index in block where the extraction must start. The character at block[startIndex] should be the markerOpen character!\n * @returns index of the last character for the extraction (or -1 if the string is invalid - no matching closing marker found). The string to extract (without the markers) is the string between startIndex + 1 and the returned value (exclusive)\n */\nexport function ExtractBetweenMarkers(markerOpen, markerClose, block, startIndex) {\n let currPos = startIndex, openMarkers = 0, waitForChar = \"\";\n while (currPos < block.length) {\n const currChar = block.charAt(currPos);\n if (!waitForChar) {\n switch (currChar) {\n case markerOpen:\n openMarkers++;\n break;\n case markerClose:\n openMarkers--;\n break;\n case '\"':\n case \"'\":\n case \"`\":\n waitForChar = currChar;\n break;\n case \"/\":\n if (currPos + 1 < block.length) {\n const nextChar = block.charAt(currPos + 1);\n if (nextChar === \"/\") {\n waitForChar = \"\\n\";\n }\n else if (nextChar === \"*\") {\n waitForChar = \"*/\";\n }\n }\n break;\n }\n }\n else {\n if (currChar === waitForChar) {\n if (waitForChar === '\"' || waitForChar === \"'\") {\n block.charAt(currPos - 1) !== \"\\\\\" && (waitForChar = \"\");\n }\n else {\n waitForChar = \"\";\n }\n }\n else if (waitForChar === \"*/\" && currChar === \"*\" && currPos + 1 < block.length) {\n block.charAt(currPos + 1) === \"/\" && (waitForChar = \"\");\n if (waitForChar === \"\") {\n currPos++;\n }\n }\n }\n currPos++;\n if (openMarkers === 0) {\n break;\n }\n }\n return openMarkers === 0 ? currPos - 1 : -1;\n}\n/**\n * Parses a string and skip whitespaces\n * @param s string to parse\n * @param index index where to start parsing\n * @returns the index after all whitespaces have been skipped\n */\nexport function SkipWhitespaces(s, index) {\n while (index < s.length) {\n const c = s[index];\n if (c !== \" \" && c !== \"\\n\" && c !== \"\\r\" && c !== \"\\t\" && c !== \"\\u000a\" && c !== \"\\u00a0\") {\n break;\n }\n index++;\n }\n return index;\n}\n/**\n * Checks if a character is an identifier character (meaning, if it is 0-9, A-Z, a-z or _)\n * @param c character to check\n * @returns true if the character is an identifier character\n */\nexport function IsIdentifierChar(c) {\n const v = c.charCodeAt(0);\n return ((v >= 48 && v <= 57) || // 0-9\n (v >= 65 && v <= 90) || // A-Z\n (v >= 97 && v <= 122) || // a-z\n v == 95); // _\n}\n/**\n * Removes the comments of a code block\n * @param block code block to parse\n * @returns block with the comments removed\n */\nexport function RemoveComments(block) {\n let currPos = 0, waitForChar = \"\", inComments = false;\n const s = [];\n while (currPos < block.length) {\n const currChar = block.charAt(currPos);\n if (!waitForChar) {\n switch (currChar) {\n case '\"':\n case \"'\":\n case \"`\":\n waitForChar = currChar;\n break;\n case \"/\":\n if (currPos + 1 < block.length) {\n const nextChar = block.charAt(currPos + 1);\n if (nextChar === \"/\") {\n waitForChar = \"\\n\";\n inComments = true;\n }\n else if (nextChar === \"*\") {\n waitForChar = \"*/\";\n inComments = true;\n }\n }\n break;\n }\n if (!inComments) {\n s.push(currChar);\n }\n }\n else {\n if (currChar === waitForChar) {\n if (waitForChar === '\"' || waitForChar === \"'\") {\n block.charAt(currPos - 1) !== \"\\\\\" && (waitForChar = \"\");\n s.push(currChar);\n }\n else {\n waitForChar = \"\";\n inComments = false;\n }\n }\n else if (waitForChar === \"*/\" && currChar === \"*\" && currPos + 1 < block.length) {\n block.charAt(currPos + 1) === \"/\" && (waitForChar = \"\");\n if (waitForChar === \"\") {\n inComments = false;\n currPos++;\n }\n }\n else {\n if (!inComments) {\n s.push(currChar);\n }\n }\n }\n currPos++;\n }\n return s.join(\"\");\n}\n/**\n * Finds the first occurrence of a character in a string going backward\n * @param s the string to parse\n * @param index starting index in the string\n * @param c the character to find\n * @param c2 an optional second character to find\n * @returns the index of the character if found, else -1\n */\nexport function FindBackward(s, index, c, c2) {\n while (index >= 0 && s.charAt(index) !== c && (!c2 || s.charAt(index) !== c2)) {\n index--;\n }\n return index;\n}\n/**\n * Escapes a string so that it is usable as a regular expression\n * @param s string to escape\n * @returns escaped string\n */\nexport function EscapeRegExp(s) {\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n/**\n * Injects code at the beginning and/or end of a function.\n * The function is identified by \"mainFuncDecl\". The starting code is injected just after the first \"\\{\" found after the mainFuncDecl.\n * The ending code is injected just before the last \"\\}\" of the whole block of code (so, it is assumed that the function is the last of the block of code).\n * @param code code to inject into\n * @param mainFuncDecl Function declaration to find in the code (for eg: \"void main\")\n * @param startingCode The code to inject at the beginning of the function\n * @param endingCode The code to inject at the end of the function\n * @returns The code with the injected code\n */\nexport function InjectStartingAndEndingCode(code, mainFuncDecl, startingCode, endingCode) {\n let idx = code.indexOf(mainFuncDecl);\n if (idx < 0) {\n return code;\n }\n if (startingCode) {\n // eslint-disable-next-line no-empty\n while (idx++ < code.length && code.charAt(idx) != \"{\") { }\n if (idx < code.length) {\n const part1 = code.substring(0, idx + 1);\n const part2 = code.substring(idx + 1);\n code = part1 + startingCode + part2;\n }\n }\n if (endingCode) {\n const lastClosingCurly = code.lastIndexOf(\"}\");\n code = code.substring(0, lastClosingCurly);\n code += endingCode + \"\\n}\";\n }\n return code;\n}\n","import { Logger } from \"../../Misc/logger.js\";\nimport { EscapeRegExp, ExtractBetweenMarkers, FindBackward, IsIdentifierChar, RemoveComments, SkipWhitespaces } from \"../../Misc/codeStringParsingTools.js\";\n/**\n * Class used to inline functions in shader code\n */\nexport class ShaderCodeInliner {\n /** Gets the code after the inlining process */\n get code() {\n return this._sourceCode;\n }\n /**\n * Initializes the inliner\n * @param sourceCode shader code source to inline\n * @param numMaxIterations maximum number of iterations (used to detect recursive calls)\n */\n constructor(sourceCode, numMaxIterations = 20) {\n /** Gets or sets the debug mode */\n this.debug = false;\n this._sourceCode = sourceCode;\n this._numMaxIterations = numMaxIterations;\n this._functionDescr = [];\n this.inlineToken = \"#define inline\";\n }\n /**\n * Start the processing of the shader code\n */\n processCode() {\n if (this.debug) {\n Logger.Log(`Start inlining process (code size=${this._sourceCode.length})...`);\n }\n this._collectFunctions();\n this._processInlining(this._numMaxIterations);\n if (this.debug) {\n Logger.Log(\"End of inlining process.\");\n }\n }\n _collectFunctions() {\n let startIndex = 0;\n while (startIndex < this._sourceCode.length) {\n // locate the function to inline and extract its name\n const inlineTokenIndex = this._sourceCode.indexOf(this.inlineToken, startIndex);\n if (inlineTokenIndex < 0) {\n break;\n }\n const funcParamsStartIndex = this._sourceCode.indexOf(\"(\", inlineTokenIndex + this.inlineToken.length);\n if (funcParamsStartIndex < 0) {\n if (this.debug) {\n Logger.Warn(`Could not find the opening parenthesis after the token. startIndex=${startIndex}`);\n }\n startIndex = inlineTokenIndex + this.inlineToken.length;\n continue;\n }\n const funcNameMatch = ShaderCodeInliner._RegexpFindFunctionNameAndType.exec(this._sourceCode.substring(inlineTokenIndex + this.inlineToken.length, funcParamsStartIndex));\n if (!funcNameMatch) {\n if (this.debug) {\n Logger.Warn(`Could not extract the name/type of the function from: ${this._sourceCode.substring(inlineTokenIndex + this.inlineToken.length, funcParamsStartIndex)}`);\n }\n startIndex = inlineTokenIndex + this.inlineToken.length;\n continue;\n }\n const [funcType, funcName] = [funcNameMatch[3], funcNameMatch[4]];\n // extract the parameters of the function as a whole string (without the leading / trailing parenthesis)\n const funcParamsEndIndex = ExtractBetweenMarkers(\"(\", \")\", this._sourceCode, funcParamsStartIndex);\n if (funcParamsEndIndex < 0) {\n if (this.debug) {\n Logger.Warn(`Could not extract the parameters the function '${funcName}' (type=${funcType}). funcParamsStartIndex=${funcParamsStartIndex}`);\n }\n startIndex = inlineTokenIndex + this.inlineToken.length;\n continue;\n }\n const funcParams = this._sourceCode.substring(funcParamsStartIndex + 1, funcParamsEndIndex);\n // extract the body of the function (with the curly brackets)\n const funcBodyStartIndex = SkipWhitespaces(this._sourceCode, funcParamsEndIndex + 1);\n if (funcBodyStartIndex === this._sourceCode.length) {\n if (this.debug) {\n Logger.Warn(`Could not extract the body of the function '${funcName}' (type=${funcType}). funcParamsEndIndex=${funcParamsEndIndex}`);\n }\n startIndex = inlineTokenIndex + this.inlineToken.length;\n continue;\n }\n const funcBodyEndIndex = ExtractBetweenMarkers(\"{\", \"}\", this._sourceCode, funcBodyStartIndex);\n if (funcBodyEndIndex < 0) {\n if (this.debug) {\n Logger.Warn(`Could not extract the body of the function '${funcName}' (type=${funcType}). funcBodyStartIndex=${funcBodyStartIndex}`);\n }\n startIndex = inlineTokenIndex + this.inlineToken.length;\n continue;\n }\n const funcBody = this._sourceCode.substring(funcBodyStartIndex, funcBodyEndIndex + 1);\n // process the parameters: extract each names\n const params = RemoveComments(funcParams).split(\",\");\n const paramNames = [];\n for (let p = 0; p < params.length; ++p) {\n const param = params[p].trim();\n const idx = param.lastIndexOf(\" \");\n if (idx >= 0) {\n paramNames.push(param.substring(idx + 1));\n }\n }\n if (funcType !== \"void\") {\n // for functions that return a value, we will replace \"return\" by \"tempvarname = \", tempvarname being a unique generated name\n paramNames.push(\"return\");\n }\n // collect the function\n this._functionDescr.push({\n name: funcName,\n type: funcType,\n parameters: paramNames,\n body: funcBody,\n callIndex: 0,\n });\n startIndex = funcBodyEndIndex + 1;\n // remove the function from the source code\n const partBefore = inlineTokenIndex > 0 ? this._sourceCode.substring(0, inlineTokenIndex) : \"\";\n const partAfter = funcBodyEndIndex + 1 < this._sourceCode.length - 1 ? this._sourceCode.substring(funcBodyEndIndex + 1) : \"\";\n this._sourceCode = partBefore + partAfter;\n startIndex -= funcBodyEndIndex + 1 - inlineTokenIndex;\n }\n if (this.debug) {\n Logger.Log(`Collect functions: ${this._functionDescr.length} functions found. functionDescr=${this._functionDescr}`);\n }\n }\n _processInlining(numMaxIterations = 20) {\n while (numMaxIterations-- >= 0) {\n if (!this._replaceFunctionCallsByCode()) {\n break;\n }\n }\n if (this.debug) {\n Logger.Log(`numMaxIterations is ${numMaxIterations} after inlining process`);\n }\n return numMaxIterations >= 0;\n }\n _replaceFunctionCallsByCode() {\n let doAgain = false;\n for (const func of this._functionDescr) {\n const { name, type, parameters, body } = func;\n let startIndex = 0;\n while (startIndex < this._sourceCode.length) {\n // Look for the function name in the source code\n const functionCallIndex = this._sourceCode.indexOf(name, startIndex);\n if (functionCallIndex < 0) {\n break;\n }\n // Make sure \"name\" is not part of a bigger string\n if (functionCallIndex === 0 || IsIdentifierChar(this._sourceCode.charAt(functionCallIndex - 1))) {\n startIndex = functionCallIndex + name.length;\n continue;\n }\n // Find the opening parenthesis\n const callParamsStartIndex = SkipWhitespaces(this._sourceCode, functionCallIndex + name.length);\n if (callParamsStartIndex === this._sourceCode.length || this._sourceCode.charAt(callParamsStartIndex) !== \"(\") {\n startIndex = functionCallIndex + name.length;\n continue;\n }\n // extract the parameters of the function call as a whole string (without the leading / trailing parenthesis)\n const callParamsEndIndex = ExtractBetweenMarkers(\"(\", \")\", this._sourceCode, callParamsStartIndex);\n if (callParamsEndIndex < 0) {\n if (this.debug) {\n Logger.Warn(`Could not extract the parameters of the function call. Function '${name}' (type=${type}). callParamsStartIndex=${callParamsStartIndex}`);\n }\n startIndex = functionCallIndex + name.length;\n continue;\n }\n const callParams = this._sourceCode.substring(callParamsStartIndex + 1, callParamsEndIndex);\n // process the parameter call: extract each names\n // this function split the parameter list used in the function call at ',' boundaries by taking care of potential parenthesis like in:\n // myfunc(a, vec2(1., 0.), 4.)\n const splitParameterCall = (s) => {\n const parameters = [];\n let curIdx = 0, startParamIdx = 0;\n while (curIdx < s.length) {\n if (s.charAt(curIdx) === \"(\") {\n const idx2 = ExtractBetweenMarkers(\"(\", \")\", s, curIdx);\n if (idx2 < 0) {\n return null;\n }\n curIdx = idx2;\n }\n else if (s.charAt(curIdx) === \",\") {\n parameters.push(s.substring(startParamIdx, curIdx));\n startParamIdx = curIdx + 1;\n }\n curIdx++;\n }\n if (startParamIdx < curIdx) {\n parameters.push(s.substring(startParamIdx, curIdx));\n }\n return parameters;\n };\n const params = splitParameterCall(RemoveComments(callParams));\n if (params === null) {\n if (this.debug) {\n Logger.Warn(`Invalid function call: can't extract the parameters of the function call. Function '${name}' (type=${type}). callParamsStartIndex=${callParamsStartIndex}, callParams=` +\n callParams);\n }\n startIndex = functionCallIndex + name.length;\n continue;\n }\n const paramNames = [];\n for (let p = 0; p < params.length; ++p) {\n const param = params[p].trim();\n paramNames.push(param);\n }\n const retParamName = type !== \"void\" ? name + \"_\" + func.callIndex++ : null;\n if (retParamName) {\n paramNames.push(retParamName + \" =\");\n }\n if (paramNames.length !== parameters.length) {\n if (this.debug) {\n Logger.Warn(`Invalid function call: not the same number of parameters for the call than the number expected by the function. Function '${name}' (type=${type}). function parameters=${parameters}, call parameters=${paramNames}`);\n }\n startIndex = functionCallIndex + name.length;\n continue;\n }\n startIndex = callParamsEndIndex + 1;\n // replace the function call by the body function\n const funcBody = this._replaceNames(body, parameters, paramNames);\n let partBefore = functionCallIndex > 0 ? this._sourceCode.substring(0, functionCallIndex) : \"\";\n const partAfter = callParamsEndIndex + 1 < this._sourceCode.length - 1 ? this._sourceCode.substring(callParamsEndIndex + 1) : \"\";\n if (retParamName) {\n // case where the function returns a value. We generate:\n // FUNCTYPE retParamName;\n // {function body}\n // and replace the function call by retParamName\n const injectDeclarationIndex = FindBackward(this._sourceCode, functionCallIndex - 1, \"\\n\", \"{\");\n partBefore = this._sourceCode.substring(0, injectDeclarationIndex + 1);\n const partBetween = this._sourceCode.substring(injectDeclarationIndex + 1, functionCallIndex);\n this._sourceCode = partBefore + type + \" \" + retParamName + \";\\n\" + funcBody + \"\\n\" + partBetween + retParamName + partAfter;\n if (this.debug) {\n Logger.Log(`Replace function call by code. Function '${name}' (type=${type}). injectDeclarationIndex=${injectDeclarationIndex}, call parameters=${paramNames}`);\n }\n }\n else {\n // simple case where the return value of the function is \"void\"\n this._sourceCode = partBefore + funcBody + partAfter;\n startIndex += funcBody.length - (callParamsEndIndex + 1 - functionCallIndex);\n if (this.debug) {\n Logger.Log(`Replace function call by code. Function '${name}' (type=${type}). functionCallIndex=${functionCallIndex}, call parameters=${paramNames}`);\n }\n }\n doAgain = true;\n }\n }\n return doAgain;\n }\n _replaceNames(code, sources, destinations) {\n for (let i = 0; i < sources.length; ++i) {\n const source = new RegExp(EscapeRegExp(sources[i]), \"g\"), sourceLen = sources[i].length, destination = destinations[i];\n code = code.replace(source, (match, ...args) => {\n const offset = args[0];\n // Make sure \"source\" is not part of a bigger identifier (for eg, if source=view and we matched it with viewDirection)\n if (IsIdentifierChar(code.charAt(offset - 1)) || IsIdentifierChar(code.charAt(offset + sourceLen))) {\n return sources[i];\n }\n return destination;\n });\n }\n return code;\n }\n}\nShaderCodeInliner._RegexpFindFunctionNameAndType = /((\\s+?)(\\w+)\\s+(\\w+)\\s*?)$/;\n","import { InjectStartingAndEndingCode } from \"../../Misc/codeStringParsingTools.js\";\nconst varyingRegex = /(flat\\s)?\\s*varying\\s*.*/;\n/** @internal */\nexport class NativeShaderProcessor {\n constructor() {\n this.shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n }\n initializeShaders(processingContext) {\n this._nativeProcessingContext = processingContext;\n if (this._nativeProcessingContext) {\n this._nativeProcessingContext.remappedAttributeNames = {};\n this._nativeProcessingContext.injectInVertexMain = \"\";\n }\n }\n attributeProcessor(attribute) {\n if (!this._nativeProcessingContext) {\n return attribute.replace(\"attribute\", \"in\");\n }\n const attribRegex = /\\s*(?:attribute|in)\\s+(\\S+)\\s+(\\S+)\\s*;/gm;\n const match = attribRegex.exec(attribute);\n if (match !== null) {\n const attributeType = match[1];\n const name = match[2];\n const numComponents = this._nativeProcessingContext.vertexBufferKindToNumberOfComponents[name];\n if (numComponents !== undefined) {\n // Special case for an int/ivecX vertex buffer that is used as a float/vecX attribute in the shader.\n const newType = numComponents < 0 ? (numComponents === -1 ? \"int\" : \"ivec\" + -numComponents) : numComponents === 1 ? \"uint\" : \"uvec\" + numComponents;\n const newName = `_int_${name}_`;\n attribute = attribute.replace(match[0], `in ${newType} ${newName}; ${attributeType} ${name};`);\n this._nativeProcessingContext.injectInVertexMain += `${name} = ${attributeType}(${newName});\\n`;\n this._nativeProcessingContext.remappedAttributeNames[name] = newName;\n }\n else {\n attribute = attribute.replace(match[0], `in ${attributeType} ${name};`);\n }\n }\n return attribute;\n }\n varyingCheck(varying, _isFragment) {\n return varyingRegex.test(varying);\n }\n varyingProcessor(varying, isFragment) {\n return varying.replace(\"varying\", isFragment ? \"in\" : \"out\");\n }\n postProcessor(code, defines, isFragment) {\n const hasDrawBuffersExtension = code.search(/#extension.+GL_EXT_draw_buffers.+require/) !== -1;\n // Remove extensions\n const regex = /#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g;\n code = code.replace(regex, \"\");\n // Replace instructions\n code = code.replace(/texture2D\\s*\\(/g, \"texture(\");\n if (isFragment) {\n const hasOutput = code.search(/layout *\\(location *= *0\\) *out/g) !== -1;\n code = code.replace(/texture2DLodEXT\\s*\\(/g, \"textureLod(\");\n code = code.replace(/textureCubeLodEXT\\s*\\(/g, \"textureLod(\");\n code = code.replace(/textureCube\\s*\\(/g, \"texture(\");\n code = code.replace(/gl_FragDepthEXT/g, \"gl_FragDepth\");\n code = code.replace(/gl_FragColor/g, \"glFragColor\");\n code = code.replace(/gl_FragData/g, \"glFragData\");\n code = code.replace(/void\\s+?main\\s*\\(/g, (hasDrawBuffersExtension || hasOutput ? \"\" : \"layout(location = 0) out vec4 glFragColor;\\n\") + \"void main(\");\n }\n else {\n if (this._nativeProcessingContext?.injectInVertexMain) {\n code = InjectStartingAndEndingCode(code, \"void main\", this._nativeProcessingContext.injectInVertexMain);\n }\n const hasMultiviewExtension = defines.indexOf(\"#define MULTIVIEW\") !== -1;\n if (hasMultiviewExtension) {\n return \"#extension GL_OVR_multiview2 : require\\nlayout (num_views = 2) in;\\n\" + code;\n }\n }\n return code;\n }\n}\n","export class NativePipelineContext {\n get isReady() {\n if (this.compilationError) {\n const message = this.compilationError.message;\n throw new Error(\"SHADER ERROR\" + (typeof message === \"string\" ? \"\\n\" + message : \"\"));\n }\n return this.isCompiled;\n }\n _getVertexShaderCode() {\n return null;\n }\n _getFragmentShaderCode() {\n return null;\n }\n constructor(engine, isAsync, shaderProcessingContext) {\n this.isCompiled = false;\n this.vertexBufferKindToType = {};\n this._valueCache = {};\n this._engine = engine;\n this.isAsync = isAsync;\n this.shaderProcessingContext = shaderProcessingContext;\n }\n _fillEffectInformation(effect, uniformBuffersNames, uniformsNames, uniforms, samplerList, samplers, attributesNames, attributes) {\n const engine = this._engine;\n if (engine.supportsUniformBuffers) {\n for (const name in uniformBuffersNames) {\n effect.bindUniformBlock(name, uniformBuffersNames[name]);\n }\n }\n const effectAvailableUniforms = this._engine.getUniforms(this, uniformsNames);\n effectAvailableUniforms.forEach((uniform, index) => {\n uniforms[uniformsNames[index]] = uniform;\n });\n this._uniforms = uniforms;\n let index;\n for (index = 0; index < samplerList.length; index++) {\n const sampler = effect.getUniform(samplerList[index]);\n if (sampler == null) {\n samplerList.splice(index, 1);\n index--;\n }\n }\n samplerList.forEach((name, index) => {\n samplers[name] = index;\n });\n attributes.push(...engine.getAttributes(this, attributesNames));\n }\n setEngine(engine) {\n this._engine = engine;\n }\n /**\n * Release all associated resources.\n **/\n dispose() {\n this._uniforms = {};\n }\n /**\n * @internal\n */\n _cacheMatrix(uniformName, matrix) {\n const cache = this._valueCache[uniformName];\n const flag = matrix.updateFlag;\n if (cache !== undefined && cache === flag) {\n return false;\n }\n this._valueCache[uniformName] = flag;\n return true;\n }\n /**\n * @internal\n */\n _cacheFloat2(uniformName, x, y) {\n let cache = this._valueCache[uniformName];\n if (!cache) {\n cache = [x, y];\n this._valueCache[uniformName] = cache;\n return true;\n }\n let changed = false;\n if (cache[0] !== x) {\n cache[0] = x;\n changed = true;\n }\n if (cache[1] !== y) {\n cache[1] = y;\n changed = true;\n }\n return changed;\n }\n /**\n * @internal\n */\n _cacheFloat3(uniformName, x, y, z) {\n let cache = this._valueCache[uniformName];\n if (!cache) {\n cache = [x, y, z];\n this._valueCache[uniformName] = cache;\n return true;\n }\n let changed = false;\n if (cache[0] !== x) {\n cache[0] = x;\n changed = true;\n }\n if (cache[1] !== y) {\n cache[1] = y;\n changed = true;\n }\n if (cache[2] !== z) {\n cache[2] = z;\n changed = true;\n }\n return changed;\n }\n /**\n * @internal\n */\n _cacheFloat4(uniformName, x, y, z, w) {\n let cache = this._valueCache[uniformName];\n if (!cache) {\n cache = [x, y, z, w];\n this._valueCache[uniformName] = cache;\n return true;\n }\n let changed = false;\n if (cache[0] !== x) {\n cache[0] = x;\n changed = true;\n }\n if (cache[1] !== y) {\n cache[1] = y;\n changed = true;\n }\n if (cache[2] !== z) {\n cache[2] = z;\n changed = true;\n }\n if (cache[3] !== w) {\n cache[3] = w;\n changed = true;\n }\n return changed;\n }\n /**\n * Sets an integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setInt(uniformName, value) {\n const cache = this._valueCache[uniformName];\n if (cache !== undefined && cache === value) {\n return;\n }\n if (this._engine.setInt(this._uniforms[uniformName], value)) {\n this._valueCache[uniformName] = value;\n }\n }\n /**\n * Sets a int2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int2.\n * @param y Second int in int2.\n */\n setInt2(uniformName, x, y) {\n if (this._cacheFloat2(uniformName, x, y)) {\n if (!this._engine.setInt2(this._uniforms[uniformName], x, y)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a int3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int3.\n * @param y Second int in int3.\n * @param z Third int in int3.\n */\n setInt3(uniformName, x, y, z) {\n if (this._cacheFloat3(uniformName, x, y, z)) {\n if (!this._engine.setInt3(this._uniforms[uniformName], x, y, z)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a int4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int4.\n * @param y Second int in int4.\n * @param z Third int in int4.\n * @param w Fourth int in int4.\n */\n setInt4(uniformName, x, y, z, w) {\n if (this._cacheFloat4(uniformName, x, y, z, w)) {\n if (!this._engine.setInt4(this._uniforms[uniformName], x, y, z, w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets an int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setIntArray(this._uniforms[uniformName], array);\n }\n /**\n * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray2(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setIntArray2(this._uniforms[uniformName], array);\n }\n /**\n * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray3(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setIntArray3(this._uniforms[uniformName], array);\n }\n /**\n * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray4(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setIntArray4(this._uniforms[uniformName], array);\n }\n /**\n * Sets an unsigned integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setUInt(uniformName, value) {\n const cache = this._valueCache[uniformName];\n if (cache !== undefined && cache === value) {\n return;\n }\n if (this._engine.setUInt(this._uniforms[uniformName], value)) {\n this._valueCache[uniformName] = value;\n }\n }\n /**\n * Sets a unsigned int2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint2.\n * @param y Second unsigned int in uint2.\n */\n setUInt2(uniformName, x, y) {\n if (this._cacheFloat2(uniformName, x, y)) {\n if (!this._engine.setUInt2(this._uniforms[uniformName], x, y)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a unsigned int3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint3.\n * @param y Second unsigned int in uint3.\n * @param z Third unsigned int in uint3.\n */\n setUInt3(uniformName, x, y, z) {\n if (this._cacheFloat3(uniformName, x, y, z)) {\n if (!this._engine.setUInt3(this._uniforms[uniformName], x, y, z)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a unsigned int4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint4.\n * @param y Second unsigned int in uint4.\n * @param z Third unsigned int in uint4.\n * @param w Fourth unsigned int in uint4.\n */\n setUInt4(uniformName, x, y, z, w) {\n if (this._cacheFloat4(uniformName, x, y, z, w)) {\n if (!this._engine.setUInt4(this._uniforms[uniformName], x, y, z, w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets an unsigned int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setUIntArray(this._uniforms[uniformName], array);\n }\n /**\n * Sets an unsigned int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray2(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setUIntArray2(this._uniforms[uniformName], array);\n }\n /**\n * Sets an unsigned int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray3(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setUIntArray3(this._uniforms[uniformName], array);\n }\n /**\n * Sets an unsigned int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray4(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setUIntArray4(this._uniforms[uniformName], array);\n }\n /**\n * Sets an float array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setFloatArray(this._uniforms[uniformName], array);\n }\n /**\n * Sets an float array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray2(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setFloatArray2(this._uniforms[uniformName], array);\n }\n /**\n * Sets an float array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray3(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setFloatArray3(this._uniforms[uniformName], array);\n }\n /**\n * Sets an float array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray4(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setFloatArray4(this._uniforms[uniformName], array);\n }\n /**\n * Sets an array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setArray(this._uniforms[uniformName], array);\n }\n /**\n * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray2(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setArray2(this._uniforms[uniformName], array);\n }\n /**\n * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray3(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setArray3(this._uniforms[uniformName], array);\n }\n /**\n * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray4(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setArray4(this._uniforms[uniformName], array);\n }\n /**\n * Sets matrices on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrices matrices to be set.\n */\n setMatrices(uniformName, matrices) {\n if (!matrices) {\n return;\n }\n this._valueCache[uniformName] = null;\n this._engine.setMatrices(this._uniforms[uniformName], matrices);\n }\n /**\n * Sets matrix on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix(uniformName, matrix) {\n if (this._cacheMatrix(uniformName, matrix)) {\n if (!this._engine.setMatrices(this._uniforms[uniformName], matrix.asArray())) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a 3x3 matrix on a uniform variable. (Specified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix3x3(uniformName, matrix) {\n this._valueCache[uniformName] = null;\n this._engine.setMatrix3x3(this._uniforms[uniformName], matrix);\n }\n /**\n * Sets a 2x2 matrix on a uniform variable. (Specified as [1,2,3,4] will result in [1,2][3,4] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix2x2(uniformName, matrix) {\n this._valueCache[uniformName] = null;\n this._engine.setMatrix2x2(this._uniforms[uniformName], matrix);\n }\n /**\n * Sets a float on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value value to be set.\n */\n setFloat(uniformName, value) {\n const cache = this._valueCache[uniformName];\n if (cache !== undefined && cache === value) {\n return;\n }\n if (this._engine.setFloat(this._uniforms[uniformName], value)) {\n this._valueCache[uniformName] = value;\n }\n }\n /**\n * Sets a boolean on a uniform variable.\n * @param uniformName Name of the variable.\n * @param bool value to be set.\n */\n setBool(uniformName, bool) {\n const cache = this._valueCache[uniformName];\n if (cache !== undefined && cache === bool) {\n return;\n }\n if (this._engine.setInt(this._uniforms[uniformName], bool ? 1 : 0)) {\n this._valueCache[uniformName] = bool ? 1 : 0;\n }\n }\n /**\n * Sets a Vector2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector2 vector2 to be set.\n */\n setVector2(uniformName, vector2) {\n if (this._cacheFloat2(uniformName, vector2.x, vector2.y)) {\n if (!this._engine.setFloat2(this._uniforms[uniformName], vector2.x, vector2.y)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a float2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float2.\n * @param y Second float in float2.\n */\n setFloat2(uniformName, x, y) {\n if (this._cacheFloat2(uniformName, x, y)) {\n if (!this._engine.setFloat2(this._uniforms[uniformName], x, y)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Vector3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector3 Value to be set.\n */\n setVector3(uniformName, vector3) {\n if (this._cacheFloat3(uniformName, vector3.x, vector3.y, vector3.z)) {\n if (!this._engine.setFloat3(this._uniforms[uniformName], vector3.x, vector3.y, vector3.z)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a float3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float3.\n * @param y Second float in float3.\n * @param z Third float in float3.\n */\n setFloat3(uniformName, x, y, z) {\n if (this._cacheFloat3(uniformName, x, y, z)) {\n if (!this._engine.setFloat3(this._uniforms[uniformName], x, y, z)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Vector4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector4 Value to be set.\n */\n setVector4(uniformName, vector4) {\n if (this._cacheFloat4(uniformName, vector4.x, vector4.y, vector4.z, vector4.w)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], vector4.x, vector4.y, vector4.z, vector4.w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Quaternion on a uniform variable.\n * @param uniformName Name of the variable.\n * @param quaternion Value to be set.\n */\n setQuaternion(uniformName, quaternion) {\n if (this._cacheFloat4(uniformName, quaternion.x, quaternion.y, quaternion.z, quaternion.w)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], quaternion.x, quaternion.y, quaternion.z, quaternion.w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a float4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float4.\n * @param y Second float in float4.\n * @param z Third float in float4.\n * @param w Fourth float in float4.\n */\n setFloat4(uniformName, x, y, z, w) {\n if (this._cacheFloat4(uniformName, x, y, z, w)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], x, y, z, w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Color3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n */\n setColor3(uniformName, color3) {\n if (this._cacheFloat3(uniformName, color3.r, color3.g, color3.b)) {\n if (!this._engine.setFloat3(this._uniforms[uniformName], color3.r, color3.g, color3.b)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Color4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n * @param alpha Alpha value to be set.\n */\n setColor4(uniformName, color3, alpha) {\n if (this._cacheFloat4(uniformName, color3.r, color3.g, color3.b, alpha)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], color3.r, color3.g, color3.b, alpha)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Color4 on a uniform variable\n * @param uniformName defines the name of the variable\n * @param color4 defines the value to be set\n */\n setDirectColor4(uniformName, color4) {\n if (this._cacheFloat4(uniformName, color4.r, color4.g, color4.b, color4.a)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], color4.r, color4.g, color4.b, color4.a)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n}\n","import { RenderTargetWrapper } from \"../renderTargetWrapper.js\";\nexport class NativeRenderTargetWrapper extends RenderTargetWrapper {\n get _framebuffer() {\n return this.__framebuffer;\n }\n set _framebuffer(framebuffer) {\n if (this.__framebuffer) {\n this._engine._releaseFramebufferObjects(this.__framebuffer);\n }\n this.__framebuffer = framebuffer;\n }\n get _framebufferDepthStencil() {\n return this.__framebufferDepthStencil;\n }\n set _framebufferDepthStencil(framebufferDepthStencil) {\n if (this.__framebufferDepthStencil) {\n this._engine._releaseFramebufferObjects(this.__framebufferDepthStencil);\n }\n this.__framebufferDepthStencil = framebufferDepthStencil;\n }\n constructor(isMulti, isCube, size, engine) {\n super(isMulti, isCube, size, engine);\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this.__framebuffer = null;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this.__framebufferDepthStencil = null;\n this._engine = engine;\n }\n dispose(disposeOnlyFramebuffers = false) {\n this._framebuffer = null;\n this._framebufferDepthStencil = null;\n super.dispose(disposeOnlyFramebuffers);\n }\n}\n","/** @internal */\nexport class NativeHardwareTexture {\n get underlyingResource() {\n return this._nativeTexture;\n }\n constructor(existingTexture, engine) {\n this._engine = engine;\n this.set(existingTexture);\n }\n setUsage() { }\n set(hardwareTexture) {\n this._nativeTexture = hardwareTexture;\n }\n reset() {\n this._nativeTexture = null;\n }\n release() {\n if (this._nativeTexture) {\n this._engine.deleteTexture(this._nativeTexture);\n }\n this.reset();\n }\n}\n","import { ErrorCodes, RuntimeError } from \"../../Misc/error.js\";\n\nimport { VertexBuffer } from \"../../Buffers/buffer.js\";\nexport function getNativeTextureFormat(format, type) {\n switch (format) {\n // Depth (type is ignored)\n case 15:\n return _native.Engine.TEXTURE_FORMAT_D16;\n case 16:\n return _native.Engine.TEXTURE_FORMAT_D24;\n case 13:\n return _native.Engine.TEXTURE_FORMAT_D24S8;\n case 14:\n return _native.Engine.TEXTURE_FORMAT_D32F;\n // Compressed (type is ignored)\n case 36492:\n return _native.Engine.TEXTURE_FORMAT_BC7;\n case 36494:\n return _native.Engine.TEXTURE_FORMAT_BC6H;\n case 33779:\n return _native.Engine.TEXTURE_FORMAT_BC3;\n case 33778:\n return _native.Engine.TEXTURE_FORMAT_BC2;\n case 33777:\n return _native.Engine.TEXTURE_FORMAT_BC1;\n case 33776:\n return _native.Engine.TEXTURE_FORMAT_BC1;\n case 37808:\n return _native.Engine.TEXTURE_FORMAT_ASTC4x4;\n case 36196:\n return _native.Engine.TEXTURE_FORMAT_ETC1;\n case 37492:\n return _native.Engine.TEXTURE_FORMAT_ETC2;\n case 37496:\n return _native.Engine.TEXTURE_FORMAT_ETC2A;\n case 4: {\n switch (type) {\n case 0:\n return _native.Engine.TEXTURE_FORMAT_RGB8;\n case 3:\n return _native.Engine.TEXTURE_FORMAT_RGB8S;\n case 6:\n return _native.Engine.TEXTURE_FORMAT_RGB8I;\n case 7:\n return _native.Engine.TEXTURE_FORMAT_RGB8U;\n }\n break;\n }\n case 5: {\n switch (type) {\n case 0:\n return _native.Engine.TEXTURE_FORMAT_RGBA8;\n case 1:\n return _native.Engine.TEXTURE_FORMAT_RGBA32F;\n case 2:\n return _native.Engine.TEXTURE_FORMAT_RGBA16F;\n case 3:\n return _native.Engine.TEXTURE_FORMAT_RGBA8S;\n case 4:\n return _native.Engine.TEXTURE_FORMAT_RGBA16I;\n case 5:\n return _native.Engine.TEXTURE_FORMAT_RGBA16U;\n case 6:\n return _native.Engine.TEXTURE_FORMAT_RGBA32I;\n case 7:\n return _native.Engine.TEXTURE_FORMAT_RGBA32U;\n }\n break;\n }\n case 6: {\n switch (type) {\n case 0:\n return _native.Engine.TEXTURE_FORMAT_R8;\n case 1:\n return _native.Engine.TEXTURE_FORMAT_R32F;\n case 2:\n return _native.Engine.TEXTURE_FORMAT_R16F;\n case 3:\n return _native.Engine.TEXTURE_FORMAT_R8S;\n case 4:\n return _native.Engine.TEXTURE_FORMAT_R16S;\n case 5:\n return _native.Engine.TEXTURE_FORMAT_R16U;\n case 6:\n return _native.Engine.TEXTURE_FORMAT_R32I;\n case 7:\n return _native.Engine.TEXTURE_FORMAT_R32U;\n }\n break;\n }\n case 7: {\n switch (type) {\n case 0:\n return _native.Engine.TEXTURE_FORMAT_RG8;\n case 1:\n return _native.Engine.TEXTURE_FORMAT_RG32F;\n case 2:\n return _native.Engine.TEXTURE_FORMAT_RG16F;\n case 3:\n return _native.Engine.TEXTURE_FORMAT_RG8S;\n case 4:\n return _native.Engine.TEXTURE_FORMAT_RG16S;\n case 5:\n return _native.Engine.TEXTURE_FORMAT_RG16U;\n case 6:\n return _native.Engine.TEXTURE_FORMAT_RG32I;\n case 7:\n return _native.Engine.TEXTURE_FORMAT_RG32U;\n }\n break;\n }\n case 12: {\n switch (type) {\n case 0:\n return _native.Engine.TEXTURE_FORMAT_BGRA8;\n }\n break;\n }\n }\n throw new RuntimeError(`Unsupported texture format or type: format ${format}, type ${type}.`, ErrorCodes.UnsupportedTextureError);\n}\nexport function getNativeSamplingMode(samplingMode) {\n switch (samplingMode) {\n case 1:\n return _native.Engine.TEXTURE_NEAREST_NEAREST;\n case 2:\n return _native.Engine.TEXTURE_LINEAR_LINEAR;\n case 3:\n return _native.Engine.TEXTURE_LINEAR_LINEAR_MIPLINEAR;\n case 4:\n return _native.Engine.TEXTURE_NEAREST_NEAREST_MIPNEAREST;\n case 5:\n return _native.Engine.TEXTURE_NEAREST_LINEAR_MIPNEAREST;\n case 6:\n return _native.Engine.TEXTURE_NEAREST_LINEAR_MIPLINEAR;\n case 7:\n return _native.Engine.TEXTURE_NEAREST_LINEAR;\n case 8:\n return _native.Engine.TEXTURE_NEAREST_NEAREST_MIPLINEAR;\n case 9:\n return _native.Engine.TEXTURE_LINEAR_NEAREST_MIPNEAREST;\n case 10:\n return _native.Engine.TEXTURE_LINEAR_NEAREST_MIPLINEAR;\n case 11:\n return _native.Engine.TEXTURE_LINEAR_LINEAR_MIPNEAREST;\n case 12:\n return _native.Engine.TEXTURE_LINEAR_NEAREST;\n default:\n throw new Error(`Unsupported sampling mode: ${samplingMode}.`);\n }\n}\nexport function getNativeAddressMode(wrapMode) {\n switch (wrapMode) {\n case 1:\n return _native.Engine.ADDRESS_MODE_WRAP;\n case 0:\n return _native.Engine.ADDRESS_MODE_CLAMP;\n case 2:\n return _native.Engine.ADDRESS_MODE_MIRROR;\n default:\n throw new Error(\"Unexpected wrap mode: \" + wrapMode + \".\");\n }\n}\nexport function getNativeStencilFunc(func) {\n switch (func) {\n case 513:\n return _native.Engine.STENCIL_TEST_LESS;\n case 515:\n return _native.Engine.STENCIL_TEST_LEQUAL;\n case 514:\n return _native.Engine.STENCIL_TEST_EQUAL;\n case 518:\n return _native.Engine.STENCIL_TEST_GEQUAL;\n case 516:\n return _native.Engine.STENCIL_TEST_GREATER;\n case 517:\n return _native.Engine.STENCIL_TEST_NOTEQUAL;\n case 512:\n return _native.Engine.STENCIL_TEST_NEVER;\n case 519:\n return _native.Engine.STENCIL_TEST_ALWAYS;\n default:\n throw new Error(`Unsupported stencil func mode: ${func}.`);\n }\n}\nexport function getNativeStencilOpFail(opFail) {\n switch (opFail) {\n case 7680:\n return _native.Engine.STENCIL_OP_FAIL_S_KEEP;\n case 0:\n return _native.Engine.STENCIL_OP_FAIL_S_ZERO;\n case 7681:\n return _native.Engine.STENCIL_OP_FAIL_S_REPLACE;\n case 7682:\n return _native.Engine.STENCIL_OP_FAIL_S_INCR;\n case 7683:\n return _native.Engine.STENCIL_OP_FAIL_S_DECR;\n case 5386:\n return _native.Engine.STENCIL_OP_FAIL_S_INVERT;\n case 34055:\n return _native.Engine.STENCIL_OP_FAIL_S_INCRSAT;\n case 34056:\n return _native.Engine.STENCIL_OP_FAIL_S_DECRSAT;\n default:\n throw new Error(`Unsupported stencil OpFail mode: ${opFail}.`);\n }\n}\nexport function getNativeStencilDepthFail(depthFail) {\n switch (depthFail) {\n case 7680:\n return _native.Engine.STENCIL_OP_FAIL_Z_KEEP;\n case 0:\n return _native.Engine.STENCIL_OP_FAIL_Z_ZERO;\n case 7681:\n return _native.Engine.STENCIL_OP_FAIL_Z_REPLACE;\n case 7682:\n return _native.Engine.STENCIL_OP_FAIL_Z_INCR;\n case 7683:\n return _native.Engine.STENCIL_OP_FAIL_Z_DECR;\n case 5386:\n return _native.Engine.STENCIL_OP_FAIL_Z_INVERT;\n case 34055:\n return _native.Engine.STENCIL_OP_FAIL_Z_INCRSAT;\n case 34056:\n return _native.Engine.STENCIL_OP_FAIL_Z_DECRSAT;\n default:\n throw new Error(`Unsupported stencil depthFail mode: ${depthFail}.`);\n }\n}\nexport function getNativeStencilDepthPass(opPass) {\n switch (opPass) {\n case 7680:\n return _native.Engine.STENCIL_OP_PASS_Z_KEEP;\n case 0:\n return _native.Engine.STENCIL_OP_PASS_Z_ZERO;\n case 7681:\n return _native.Engine.STENCIL_OP_PASS_Z_REPLACE;\n case 7682:\n return _native.Engine.STENCIL_OP_PASS_Z_INCR;\n case 7683:\n return _native.Engine.STENCIL_OP_PASS_Z_DECR;\n case 5386:\n return _native.Engine.STENCIL_OP_PASS_Z_INVERT;\n case 34055:\n return _native.Engine.STENCIL_OP_PASS_Z_INCRSAT;\n case 34056:\n return _native.Engine.STENCIL_OP_PASS_Z_DECRSAT;\n default:\n throw new Error(`Unsupported stencil opPass mode: ${opPass}.`);\n }\n}\nexport function getNativeAlphaMode(mode) {\n switch (mode) {\n case 0:\n return _native.Engine.ALPHA_DISABLE;\n case 1:\n return _native.Engine.ALPHA_ADD;\n case 2:\n return _native.Engine.ALPHA_COMBINE;\n case 3:\n return _native.Engine.ALPHA_SUBTRACT;\n case 4:\n return _native.Engine.ALPHA_MULTIPLY;\n case 5:\n return _native.Engine.ALPHA_MAXIMIZED;\n case 6:\n return _native.Engine.ALPHA_ONEONE;\n case 7:\n return _native.Engine.ALPHA_PREMULTIPLIED;\n case 8:\n return _native.Engine.ALPHA_PREMULTIPLIED_PORTERDUFF;\n case 9:\n return _native.Engine.ALPHA_INTERPOLATE;\n case 10:\n return _native.Engine.ALPHA_SCREENMODE;\n default:\n throw new Error(`Unsupported alpha mode: ${mode}.`);\n }\n}\nexport function getNativeAttribType(type) {\n switch (type) {\n case VertexBuffer.BYTE:\n return _native.Engine.ATTRIB_TYPE_INT8;\n case VertexBuffer.UNSIGNED_BYTE:\n return _native.Engine.ATTRIB_TYPE_UINT8;\n case VertexBuffer.SHORT:\n return _native.Engine.ATTRIB_TYPE_INT16;\n case VertexBuffer.UNSIGNED_SHORT:\n return _native.Engine.ATTRIB_TYPE_UINT16;\n case VertexBuffer.FLOAT:\n return _native.Engine.ATTRIB_TYPE_FLOAT;\n default:\n throw new Error(`Unsupported attribute type: ${type}.`);\n }\n}\n","import { VertexBuffer } from \"../Meshes/buffer.js\";\nconst vertexBufferKindForNonFloatProcessing = {\n [VertexBuffer.PositionKind]: true,\n [VertexBuffer.NormalKind]: true,\n [VertexBuffer.TangentKind]: true,\n [VertexBuffer.UVKind]: true,\n [VertexBuffer.UV2Kind]: true,\n [VertexBuffer.UV3Kind]: true,\n [VertexBuffer.UV4Kind]: true,\n [VertexBuffer.UV5Kind]: true,\n [VertexBuffer.UV6Kind]: true,\n [VertexBuffer.ColorKind]: true,\n [VertexBuffer.ColorInstanceKind]: true,\n [VertexBuffer.MatricesIndicesKind]: true,\n [VertexBuffer.MatricesWeightsKind]: true,\n [VertexBuffer.MatricesIndicesExtraKind]: true,\n [VertexBuffer.MatricesWeightsExtraKind]: true,\n};\n/**\n * Indicates if the type is a signed or unsigned type\n * @param type Type to check\n * @returns True if it is a signed type\n */\nfunction isSignedType(type) {\n switch (type) {\n case VertexBuffer.BYTE:\n case VertexBuffer.SHORT:\n case VertexBuffer.INT:\n case VertexBuffer.FLOAT:\n return true;\n case VertexBuffer.UNSIGNED_BYTE:\n case VertexBuffer.UNSIGNED_SHORT:\n case VertexBuffer.UNSIGNED_INT:\n return false;\n default:\n throw new Error(`Invalid type '${type}'`);\n }\n}\n/**\n * Checks whether some vertex buffers that should be of type float are of a different type (int, byte...).\n * If so, trigger a shader recompilation to give the shader processor the opportunity to update the code accordingly.\n * @param vertexBuffers List of vertex buffers to check\n * @param effect The effect (shaders) that should be recompiled if needed\n */\nexport function checkNonFloatVertexBuffers(vertexBuffers, effect) {\n const engine = effect.getEngine();\n const pipelineContext = effect._pipelineContext;\n if (!pipelineContext?.vertexBufferKindToType) {\n return;\n }\n let shaderProcessingContext = null;\n for (const kind in vertexBuffers) {\n const currentVertexBuffer = vertexBuffers[kind];\n if (!currentVertexBuffer || !vertexBufferKindForNonFloatProcessing[kind]) {\n continue;\n }\n const currentVertexBufferType = currentVertexBuffer.normalized ? VertexBuffer.FLOAT : currentVertexBuffer.type;\n const vertexBufferType = pipelineContext.vertexBufferKindToType[kind];\n if ((currentVertexBufferType !== VertexBuffer.FLOAT && vertexBufferType === undefined) ||\n (vertexBufferType !== undefined && vertexBufferType !== currentVertexBufferType)) {\n if (!shaderProcessingContext) {\n shaderProcessingContext = engine._getShaderProcessingContext(effect.shaderLanguage, false);\n }\n pipelineContext.vertexBufferKindToType[kind] = currentVertexBufferType;\n if (currentVertexBufferType !== VertexBuffer.FLOAT) {\n shaderProcessingContext.vertexBufferKindToNumberOfComponents[kind] = VertexBuffer.DeduceStride(kind);\n if (isSignedType(currentVertexBufferType)) {\n shaderProcessingContext.vertexBufferKindToNumberOfComponents[kind] *= -1;\n }\n }\n }\n }\n if (shaderProcessingContext) {\n // We temporarily disable parallel compilation of shaders because we want new shaders to be compiled after the _processShaderCode call, so that they are in effect for the rest of the frame.\n // There is no additional call to async so the _processShaderCodeAsync will execute synchronously.\n const parallelShaderCompile = engine._caps.parallelShaderCompile;\n engine._caps.parallelShaderCompile = undefined;\n effect._processShaderCodeAsync(null, engine._features._checkNonFloatVertexBuffersDontRecreatePipelineContext, shaderProcessingContext);\n engine._caps.parallelShaderCompile = parallelShaderCompile;\n }\n}\n","/**\n * @internal\n */\nexport class NativeShaderProcessingContext {\n constructor() {\n this.vertexBufferKindToNumberOfComponents = {};\n this.remappedAttributeNames = {};\n this.injectInVertexMain = \"\";\n }\n}\n","import { Engine } from \"../Engines/engine.js\";\nimport { InternalTexture } from \"../Materials/Textures/internalTexture.js\";\nimport { Texture } from \"../Materials/Textures/texture.js\";\nimport { DataBuffer } from \"../Buffers/dataBuffer.js\";\nimport { Tools } from \"../Misc/tools.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { CreateImageDataArrayBufferViews, GetEnvInfo, UploadEnvSpherical } from \"../Misc/environmentTextureTools.js\";\nimport { Logger } from \"../Misc/logger.js\";\n\nimport { ThinEngine } from \"./thinEngine.js\";\nimport { EngineStore } from \"./engineStore.js\";\nimport { ShaderCodeInliner } from \"./Processors/shaderCodeInliner.js\";\nimport { NativeShaderProcessor } from \"./Native/nativeShaderProcessors.js\";\nimport { NativeDataStream } from \"./Native/nativeDataStream.js\";\nimport { NativePipelineContext } from \"./Native/nativePipelineContext.js\";\nimport { NativeRenderTargetWrapper } from \"./Native/nativeRenderTargetWrapper.js\";\nimport { NativeHardwareTexture } from \"./Native/nativeHardwareTexture.js\";\nimport { getNativeAlphaMode, getNativeAttribType, getNativeSamplingMode, getNativeTextureFormat, getNativeStencilDepthFail, getNativeStencilDepthPass, getNativeStencilFunc, getNativeStencilOpFail, getNativeAddressMode, } from \"./Native/nativeHelpers.js\";\nimport { checkNonFloatVertexBuffers } from \"../Buffers/buffer.nonFloatVertexBuffers.js\";\nimport { NativeShaderProcessingContext } from \"./Native/nativeShaderProcessingContext.js\";\nimport \"../Buffers/buffer.align.js\";\nimport { _GetCompatibleTextureLoader } from \"../Materials/Textures/Loaders/textureLoaderManager.js\";\nconst onNativeObjectInitialized = new Observable();\nif (typeof self !== \"undefined\" && !Object.prototype.hasOwnProperty.call(self, \"_native\")) {\n let __native;\n Object.defineProperty(self, \"_native\", {\n get: () => __native,\n set: (value) => {\n __native = value;\n if (__native) {\n onNativeObjectInitialized.notifyObservers(__native);\n }\n },\n });\n}\n/**\n * Returns _native only after it has been defined by BabylonNative.\n * @internal\n */\nexport function AcquireNativeObjectAsync() {\n return new Promise((resolve) => {\n if (typeof _native === \"undefined\") {\n onNativeObjectInitialized.addOnce((nativeObject) => resolve(nativeObject));\n }\n else {\n resolve(_native);\n }\n });\n}\n/**\n * Registers a constructor on the _native object. See NativeXRFrame for an example.\n * @internal\n */\nexport async function RegisterNativeTypeAsync(typeName, constructor) {\n (await AcquireNativeObjectAsync())[typeName] = constructor;\n}\n/**\n * Container for accessors for natively-stored mesh data buffers.\n */\nclass NativeDataBuffer extends DataBuffer {\n}\n/** @internal */\nclass CommandBufferEncoder {\n constructor(_engine) {\n this._engine = _engine;\n this._pending = new Array();\n this._isCommandBufferScopeActive = false;\n this._commandStream = NativeEngine._createNativeDataStream();\n this._engine.setCommandDataStream(this._commandStream);\n }\n beginCommandScope() {\n if (this._isCommandBufferScopeActive) {\n throw new Error(\"Command scope already active.\");\n }\n this._isCommandBufferScopeActive = true;\n }\n endCommandScope() {\n if (!this._isCommandBufferScopeActive) {\n throw new Error(\"Command scope is not active.\");\n }\n this._isCommandBufferScopeActive = false;\n this._submit();\n }\n startEncodingCommand(command) {\n this._commandStream.writeNativeData(command);\n }\n encodeCommandArgAsUInt32(commandArg) {\n this._commandStream.writeUint32(commandArg);\n }\n encodeCommandArgAsUInt32s(commandArg) {\n this._commandStream.writeUint32Array(commandArg);\n }\n encodeCommandArgAsInt32(commandArg) {\n this._commandStream.writeInt32(commandArg);\n }\n encodeCommandArgAsInt32s(commandArg) {\n this._commandStream.writeInt32Array(commandArg);\n }\n encodeCommandArgAsFloat32(commandArg) {\n this._commandStream.writeFloat32(commandArg);\n }\n encodeCommandArgAsFloat32s(commandArg) {\n this._commandStream.writeFloat32Array(commandArg);\n }\n encodeCommandArgAsNativeData(commandArg) {\n this._commandStream.writeNativeData(commandArg);\n this._pending.push(commandArg);\n }\n finishEncodingCommand() {\n if (!this._isCommandBufferScopeActive) {\n this._submit();\n }\n }\n _submit() {\n this._engine.submitCommands();\n this._pending.length = 0;\n }\n}\nconst remappedAttributesNames = [];\n/** @internal */\nexport class NativeEngine extends Engine {\n setHardwareScalingLevel(level) {\n super.setHardwareScalingLevel(level);\n this._engine.setHardwareScalingLevel(level);\n }\n constructor(options = {}) {\n super(null, false, undefined, options.adaptToDeviceRatio);\n this._engine = new _native.Engine({\n version: Engine.Version,\n nonFloatVertexBuffers: true,\n });\n this._camera = _native.Camera ? new _native.Camera() : null;\n this._commandBufferEncoder = new CommandBufferEncoder(this._engine);\n this._boundBuffersVertexArray = null;\n this._currentDepthTest = _native.Engine.DEPTH_TEST_LEQUAL;\n this._stencilTest = false;\n this._stencilMask = 255;\n this._stencilFunc = 519;\n this._stencilFuncRef = 0;\n this._stencilFuncMask = 255;\n this._stencilOpStencilFail = 7680;\n this._stencilOpDepthFail = 7680;\n this._stencilOpStencilDepthPass = 7681;\n this._zOffset = 0;\n this._zOffsetUnits = 0;\n this._depthWrite = true;\n // warning for non supported fill mode has already been displayed\n this._fillModeWarningDisplayed = false;\n if (_native.Engine.PROTOCOL_VERSION !== NativeEngine.PROTOCOL_VERSION) {\n throw new Error(`Protocol version mismatch: ${_native.Engine.PROTOCOL_VERSION} (Native) !== ${NativeEngine.PROTOCOL_VERSION} (JS)`);\n }\n if (this._engine.setDeviceLostCallback) {\n this._engine.setDeviceLostCallback(() => {\n this.onContextLostObservable.notifyObservers(this);\n this._contextWasLost = true;\n this._restoreEngineAfterContextLost();\n });\n }\n this._webGLVersion = 2;\n this.disableUniformBuffers = true;\n this._shaderPlatformName = \"NATIVE\";\n // TODO: Initialize this more correctly based on the hardware capabilities.\n // Init caps\n this._caps = {\n maxTexturesImageUnits: 16,\n maxVertexTextureImageUnits: 16,\n maxCombinedTexturesImageUnits: 32,\n maxTextureSize: _native.Engine.CAPS_LIMITS_MAX_TEXTURE_SIZE,\n maxCubemapTextureSize: 512,\n maxRenderTextureSize: 512,\n maxVertexAttribs: 16,\n maxVaryingVectors: 16,\n maxDrawBuffers: 8,\n maxFragmentUniformVectors: 16,\n maxVertexUniformVectors: 16,\n standardDerivatives: true,\n astc: null,\n pvrtc: null,\n etc1: null,\n etc2: null,\n bptc: null,\n maxAnisotropy: 16, // TODO: Retrieve this smartly. Currently set to D3D11 maximum allowable value.\n uintIndices: true,\n fragmentDepthSupported: false,\n highPrecisionShaderSupported: true,\n colorBufferFloat: false,\n supportFloatTexturesResolve: false,\n rg11b10ufColorRenderable: false,\n textureFloat: true,\n textureFloatLinearFiltering: true,\n textureFloatRender: true,\n textureHalfFloat: true,\n textureHalfFloatLinearFiltering: true,\n textureHalfFloatRender: true,\n textureLOD: true,\n texelFetch: false,\n drawBuffersExtension: false,\n depthTextureExtension: false,\n vertexArrayObject: true,\n instancedArrays: true,\n supportOcclusionQuery: false,\n canUseTimestampForTimerQuery: false,\n blendMinMax: false,\n maxMSAASamples: 16,\n canUseGLInstanceID: true,\n canUseGLVertexID: true,\n supportComputeShaders: false,\n supportSRGBBuffers: true,\n supportTransformFeedbacks: false,\n textureMaxLevel: false,\n texture2DArrayMaxLayerCount: _native.Engine.CAPS_LIMITS_MAX_TEXTURE_LAYERS,\n disableMorphTargetTexture: false,\n parallelShaderCompile: { COMPLETION_STATUS_KHR: 0 },\n };\n this._features = {\n forceBitmapOverHTMLImageElement: true,\n supportRenderAndCopyToLodForFloatTextures: false,\n supportDepthStencilTexture: false,\n supportShadowSamplers: false,\n uniformBufferHardCheckMatrix: false,\n allowTexturePrefiltering: false,\n trackUbosInFrame: false,\n checkUbosContentBeforeUpload: false,\n supportCSM: false,\n basisNeedsPOT: false,\n support3DTextures: false,\n needTypeSuffixInShaderConstants: false,\n supportMSAA: true,\n supportSSAO2: false,\n supportIBLShadows: false,\n supportExtendedTextureFormats: false,\n supportSwitchCaseInShader: false,\n supportSyncTextureRead: false,\n needsInvertingBitmap: true,\n useUBOBindingCache: true,\n needShaderCodeInlining: true,\n needToAlwaysBindUniformBuffers: false,\n supportRenderPasses: true,\n supportSpriteInstancing: false,\n forceVertexBufferStrideAndOffsetMultiple4Bytes: true,\n _checkNonFloatVertexBuffersDontRecreatePipelineContext: false,\n _collectUbosUpdatedInFrame: false,\n };\n Tools.Log(\"Babylon Native (v\" + Engine.Version + \") launched\");\n Tools.LoadScript = function (scriptUrl, onSuccess, onError, scriptId) {\n Tools.LoadFile(scriptUrl, (data) => {\n Function(data).apply(null);\n if (onSuccess) {\n onSuccess();\n }\n }, undefined, undefined, false, (request, exception) => {\n if (onError) {\n onError(\"LoadScript Error\", exception);\n }\n });\n };\n // Wrappers\n if (typeof URL === \"undefined\") {\n window.URL = {\n createObjectURL: function () { },\n revokeObjectURL: function () { },\n };\n }\n if (typeof Blob === \"undefined\") {\n window.Blob = function (v) {\n return v;\n };\n }\n // polyfill for Chakra\n if (!Array.prototype.flat) {\n Object.defineProperty(Array.prototype, \"flat\", {\n configurable: true,\n value: function flat() {\n const depth = isNaN(arguments[0]) ? 1 : Number(arguments[0]);\n return depth\n ? Array.prototype.reduce.call(this, function (acc, cur) {\n if (Array.isArray(cur)) {\n acc.push.apply(acc, flat.call(cur, depth - 1));\n }\n else {\n acc.push(cur);\n }\n return acc;\n }, [])\n : Array.prototype.slice.call(this);\n },\n writable: true,\n });\n }\n // Currently we do not fully configure the ThinEngine on construction of NativeEngine.\n // Setup resolution scaling based on display settings.\n const devicePixelRatio = window ? window.devicePixelRatio || 1.0 : 1.0;\n this._hardwareScalingLevel = options.adaptToDeviceRatio ? 1.0 / devicePixelRatio : 1.0;\n this._engine.setHardwareScalingLevel(this._hardwareScalingLevel);\n this._lastDevicePixelRatio = devicePixelRatio;\n this.resize();\n const currentDepthFunction = this.getDepthFunction();\n if (currentDepthFunction) {\n this.setDepthFunction(currentDepthFunction);\n }\n // Shader processor\n this._shaderProcessor = new NativeShaderProcessor();\n this.onNewSceneAddedObservable.add((scene) => {\n const originalRender = scene.render;\n scene.render = (...args) => {\n this._commandBufferEncoder.beginCommandScope();\n originalRender.apply(scene, args);\n this._commandBufferEncoder.endCommandScope();\n };\n });\n }\n dispose() {\n super.dispose();\n if (this._boundBuffersVertexArray) {\n this._deleteVertexArray(this._boundBuffersVertexArray);\n }\n this._engine.dispose();\n }\n /** @internal */\n static _createNativeDataStream() {\n return new NativeDataStream();\n }\n /**\n * Can be used to override the current requestAnimationFrame requester.\n * @internal\n */\n _queueNewFrame(bindedRenderFunction, requester) {\n // Use the provided requestAnimationFrame, unless the requester is the window. In that case, we will default to the Babylon Native version of requestAnimationFrame.\n if (requester.requestAnimationFrame && requester !== window) {\n requester.requestAnimationFrame(bindedRenderFunction);\n }\n else {\n this._engine.requestAnimationFrame(bindedRenderFunction);\n }\n return 0;\n }\n _restoreEngineAfterContextLost() {\n this._clearEmptyResources();\n const depthTest = this._depthCullingState.depthTest; // backup those values because the call to initEngine / wipeCaches will reset them\n const depthFunc = this._depthCullingState.depthFunc;\n const depthMask = this._depthCullingState.depthMask;\n const stencilTest = this._stencilState.stencilTest;\n this._rebuildGraphicsResources();\n this._depthCullingState.depthTest = depthTest;\n this._depthCullingState.depthFunc = depthFunc;\n this._depthCullingState.depthMask = depthMask;\n this._stencilState.stencilTest = stencilTest;\n this._flagContextRestored();\n }\n /**\n * Override default engine behavior.\n * @param framebuffer\n */\n _bindUnboundFramebuffer(framebuffer) {\n if (this._currentFramebuffer !== framebuffer) {\n if (this._currentFramebuffer) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_UNBINDFRAMEBUFFER);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(this._currentFramebuffer);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n if (framebuffer) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_BINDFRAMEBUFFER);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(framebuffer);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n this._currentFramebuffer = framebuffer;\n }\n }\n /**\n * Gets host document\n * @returns the host document object\n */\n getHostDocument() {\n return null;\n }\n clear(color, backBuffer, depth, stencil = false) {\n if (this.useReverseDepthBuffer) {\n throw new Error(\"reverse depth buffer is not currently implemented\");\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_CLEAR);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(backBuffer && color ? 1 : 0);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(color ? color.r : 0);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(color ? color.g : 0);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(color ? color.b : 0);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(color ? color.a : 1);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(depth ? 1 : 0);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(1);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(stencil ? 1 : 0);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(0);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n createIndexBuffer(indices, updateable, _label) {\n const data = this._normalizeIndexData(indices);\n const buffer = new NativeDataBuffer();\n buffer.references = 1;\n buffer.is32Bits = data.BYTES_PER_ELEMENT === 4;\n if (data.byteLength) {\n buffer.nativeIndexBuffer = this._engine.createIndexBuffer(data.buffer, data.byteOffset, data.byteLength, buffer.is32Bits, updateable ?? false);\n }\n return buffer;\n }\n createVertexBuffer(vertices, updateable, _label) {\n const data = ArrayBuffer.isView(vertices) ? vertices : new Float32Array(vertices);\n const buffer = new NativeDataBuffer();\n buffer.references = 1;\n if (data.byteLength) {\n buffer.nativeVertexBuffer = this._engine.createVertexBuffer(data.buffer, data.byteOffset, data.byteLength, updateable ?? false);\n }\n return buffer;\n }\n _recordVertexArrayObject(vertexArray, vertexBuffers, indexBuffer, effect, overrideVertexBuffers) {\n if (!effect._checkedNonFloatVertexBuffers) {\n checkNonFloatVertexBuffers(vertexBuffers, effect);\n effect._checkedNonFloatVertexBuffers = true;\n }\n if (indexBuffer) {\n this._engine.recordIndexBuffer(vertexArray, indexBuffer.nativeIndexBuffer);\n }\n const attributes = effect.getAttributesNames();\n for (let index = 0; index < attributes.length; index++) {\n const location = effect.getAttributeLocation(index);\n if (location >= 0) {\n const kind = attributes[index];\n let vertexBuffer = null;\n if (overrideVertexBuffers) {\n vertexBuffer = overrideVertexBuffers[kind];\n }\n if (!vertexBuffer) {\n vertexBuffer = vertexBuffers[kind];\n }\n if (vertexBuffer) {\n const buffer = vertexBuffer.effectiveBuffer;\n if (buffer && buffer.nativeVertexBuffer) {\n this._engine.recordVertexBuffer(vertexArray, buffer.nativeVertexBuffer, location, vertexBuffer.effectiveByteOffset, vertexBuffer.effectiveByteStride, vertexBuffer.getSize(), getNativeAttribType(vertexBuffer.type), vertexBuffer.normalized, vertexBuffer.getInstanceDivisor());\n }\n }\n }\n }\n }\n bindBuffers(vertexBuffers, indexBuffer, effect) {\n if (this._boundBuffersVertexArray) {\n this._deleteVertexArray(this._boundBuffersVertexArray);\n }\n this._boundBuffersVertexArray = this._engine.createVertexArray();\n this._recordVertexArrayObject(this._boundBuffersVertexArray, vertexBuffers, indexBuffer, effect);\n this.bindVertexArrayObject(this._boundBuffersVertexArray);\n }\n recordVertexArrayObject(vertexBuffers, indexBuffer, effect, overrideVertexBuffers) {\n const vertexArray = this._engine.createVertexArray();\n this._recordVertexArrayObject(vertexArray, vertexBuffers, indexBuffer, effect, overrideVertexBuffers);\n return vertexArray;\n }\n _deleteVertexArray(vertexArray) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEVERTEXARRAY);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(vertexArray);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n bindVertexArrayObject(vertexArray) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_BINDVERTEXARRAY);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(vertexArray);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n releaseVertexArrayObject(vertexArray) {\n this._deleteVertexArray(vertexArray);\n }\n getAttributes(pipelineContext, attributesNames) {\n const nativePipelineContext = pipelineContext;\n const nativeShaderProcessingContext = nativePipelineContext.shaderProcessingContext;\n remappedAttributesNames.length = 0;\n for (let index = 0; index < attributesNames.length; index++) {\n const origAttributeName = attributesNames[index];\n const attributeName = nativeShaderProcessingContext.remappedAttributeNames[origAttributeName] ?? origAttributeName;\n remappedAttributesNames[index] = attributeName;\n }\n return this._engine.getAttributes(nativePipelineContext.program, remappedAttributesNames);\n }\n /**\n * Triangle Fan and Line Loop are not supported by modern rendering API\n * @param fillMode defines the primitive to use\n * @returns true if supported\n */\n _checkSupportedFillMode(fillMode) {\n if (fillMode == 5 || fillMode == 8) {\n if (!this._fillModeWarningDisplayed) {\n Logger.Warn(\"Line Loop and Triangle Fan are not supported fill modes with Babylon Native. Elements with these fill mode will not be visible.\");\n this._fillModeWarningDisplayed = true;\n }\n return false;\n }\n return true;\n }\n /**\n * Draw a list of indexed primitives\n * @param fillMode defines the primitive to use\n * @param indexStart defines the starting index\n * @param indexCount defines the number of index to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n drawElementsType(fillMode, indexStart, indexCount, instancesCount) {\n if (!this._checkSupportedFillMode(fillMode)) {\n return;\n }\n // Apply states\n this._drawCalls.addCount(1, false);\n if (instancesCount && _native.Engine.COMMAND_DRAWINDEXEDINSTANCED) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DRAWINDEXEDINSTANCED);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(fillMode);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(indexStart);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(indexCount);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(instancesCount);\n }\n else {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DRAWINDEXED);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(fillMode);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(indexStart);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(indexCount);\n }\n this._commandBufferEncoder.finishEncodingCommand();\n // }\n }\n /**\n * Draw a list of unindexed primitives\n * @param fillMode defines the primitive to use\n * @param verticesStart defines the index of first vertex to draw\n * @param verticesCount defines the count of vertices to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n drawArraysType(fillMode, verticesStart, verticesCount, instancesCount) {\n if (!this._checkSupportedFillMode(fillMode)) {\n return;\n }\n // Apply states\n this._drawCalls.addCount(1, false);\n if (instancesCount && _native.Engine.COMMAND_DRAWINSTANCED) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DRAWINSTANCED);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(fillMode);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(verticesStart);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(verticesCount);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(instancesCount);\n }\n else {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DRAW);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(fillMode);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(verticesStart);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(verticesCount);\n }\n this._commandBufferEncoder.finishEncodingCommand();\n // }\n }\n createPipelineContext(shaderProcessingContext) {\n const isAsync = !!(this._caps.parallelShaderCompile && this._engine.createProgramAsync);\n return new NativePipelineContext(this, isAsync, shaderProcessingContext);\n }\n createMaterialContext() {\n return undefined;\n }\n createDrawContext() {\n return undefined;\n }\n /**\n * @internal\n */\n _preparePipelineContext(pipelineContext, vertexSourceCode, fragmentSourceCode, createAsRaw, _rawVertexSourceCode, _rawFragmentSourceCode, _rebuildRebind, defines, _transformFeedbackVaryings, _key, onReady) {\n if (createAsRaw) {\n this.createRawShaderProgram();\n }\n else {\n this.createShaderProgram(pipelineContext, vertexSourceCode, fragmentSourceCode, defines);\n }\n onReady();\n }\n /**\n * @internal\n */\n _getShaderProcessingContext(_shaderLanguage) {\n return new NativeShaderProcessingContext();\n }\n /**\n * @internal\n */\n _executeWhenRenderingStateIsCompiled(pipelineContext, action) {\n const nativePipelineContext = pipelineContext;\n if (nativePipelineContext.isAsync) {\n if (nativePipelineContext.onCompiled) {\n const oldHandler = nativePipelineContext.onCompiled;\n nativePipelineContext.onCompiled = () => {\n oldHandler();\n action();\n };\n }\n else {\n nativePipelineContext.onCompiled = action;\n }\n }\n else {\n action();\n }\n }\n createRawShaderProgram() {\n throw new Error(\"Not Supported\");\n }\n createShaderProgram(pipelineContext, vertexCode, fragmentCode, defines) {\n const nativePipelineContext = pipelineContext;\n this.onBeforeShaderCompilationObservable.notifyObservers(this);\n const vertexInliner = new ShaderCodeInliner(vertexCode);\n vertexInliner.processCode();\n vertexCode = vertexInliner.code;\n const fragmentInliner = new ShaderCodeInliner(fragmentCode);\n fragmentInliner.processCode();\n fragmentCode = fragmentInliner.code;\n vertexCode = ThinEngine._ConcatenateShader(vertexCode, defines);\n fragmentCode = ThinEngine._ConcatenateShader(fragmentCode, defines);\n const onSuccess = () => {\n nativePipelineContext.isCompiled = true;\n nativePipelineContext.onCompiled?.();\n this.onAfterShaderCompilationObservable.notifyObservers(this);\n };\n if (pipelineContext.isAsync) {\n nativePipelineContext.program = this._engine.createProgramAsync(vertexCode, fragmentCode, onSuccess, (error) => {\n nativePipelineContext.compilationError = error;\n });\n }\n else {\n try {\n nativePipelineContext.program = this._engine.createProgram(vertexCode, fragmentCode);\n onSuccess();\n }\n catch (e) {\n const message = e?.message;\n throw new Error(\"SHADER ERROR\" + (typeof message === \"string\" ? \"\\n\" + message : \"\"));\n }\n }\n return nativePipelineContext.program;\n }\n /**\n * Inline functions in shader code that are marked to be inlined\n * @param code code to inline\n * @returns inlined code\n */\n inlineShaderCode(code) {\n const sci = new ShaderCodeInliner(code);\n sci.debug = false;\n sci.processCode();\n return sci.code;\n }\n _setProgram(program) {\n if (this._currentProgram !== program) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETPROGRAM);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(program);\n this._commandBufferEncoder.finishEncodingCommand();\n this._currentProgram = program;\n }\n }\n _deletePipelineContext(pipelineContext) {\n const nativePipelineContext = pipelineContext;\n if (nativePipelineContext && nativePipelineContext.program) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEPROGRAM);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(nativePipelineContext.program);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n }\n getUniforms(pipelineContext, uniformsNames) {\n const nativePipelineContext = pipelineContext;\n return this._engine.getUniforms(nativePipelineContext.program, uniformsNames);\n }\n bindUniformBlock(pipelineContext, blockName, index) {\n // TODO\n throw new Error(\"Not Implemented\");\n }\n bindSamplers(effect) {\n const nativePipelineContext = effect.getPipelineContext();\n this._setProgram(nativePipelineContext.program);\n // TODO: share this with engine?\n const samplers = effect.getSamplers();\n for (let index = 0; index < samplers.length; index++) {\n const uniform = effect.getUniform(samplers[index]);\n if (uniform) {\n this._boundUniforms[index] = uniform;\n }\n }\n this._currentEffect = null;\n }\n getRenderWidth(useScreen = false) {\n if (!useScreen && this._currentRenderTarget) {\n return this._currentRenderTarget.width;\n }\n return this._engine.getRenderWidth();\n }\n getRenderHeight(useScreen = false) {\n if (!useScreen && this._currentRenderTarget) {\n return this._currentRenderTarget.height;\n }\n return this._engine.getRenderHeight();\n }\n setViewport(viewport, requiredWidth, requiredHeight) {\n this._cachedViewport = viewport;\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETVIEWPORT);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(viewport.x);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(viewport.y);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(viewport.width);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(viewport.height);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n enableScissor(x, y, width, height) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETSCISSOR);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(x);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(y);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(width);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(height);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n disableScissor() {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETSCISSOR);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(0);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(0);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(0);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(0);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n setState(culling, zOffset = 0, force, reverseSide = false, cullBackFaces, stencil, zOffsetUnits = 0) {\n this._zOffset = zOffset;\n this._zOffsetUnits = zOffsetUnits;\n if (this._zOffset !== 0) {\n Tools.Warn(\"zOffset is not supported in Native engine.\");\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETSTATE);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(culling ? 1 : 0);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(zOffset);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(zOffsetUnits);\n this._commandBufferEncoder.encodeCommandArgAsUInt32((this.cullBackFaces ?? cullBackFaces ?? true) ? 1 : 0);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(reverseSide ? 1 : 0);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Gets the client rect of native canvas. Needed for InputManager.\n * @returns a client rectangle\n */\n getInputElementClientRect() {\n const rect = {\n bottom: this.getRenderHeight(),\n height: this.getRenderHeight(),\n left: 0,\n right: this.getRenderWidth(),\n top: 0,\n width: this.getRenderWidth(),\n x: 0,\n y: 0,\n toJSON: () => { },\n };\n return rect;\n }\n /**\n * Set the z offset Factor to apply to current rendering\n * @param value defines the offset to apply\n */\n setZOffset(value) {\n if (value !== this._zOffset) {\n this._zOffset = value;\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETZOFFSET);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(this.useReverseDepthBuffer ? -value : value);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n }\n /**\n * Gets the current value of the zOffset Factor\n * @returns the current zOffset Factor state\n */\n getZOffset() {\n return this._zOffset;\n }\n /**\n * Set the z offset Units to apply to current rendering\n * @param value defines the offset to apply\n */\n setZOffsetUnits(value) {\n if (value !== this._zOffsetUnits) {\n this._zOffsetUnits = value;\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETZOFFSETUNITS);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(this.useReverseDepthBuffer ? -value : value);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n }\n /**\n * Gets the current value of the zOffset Units\n * @returns the current zOffset Units state\n */\n getZOffsetUnits() {\n return this._zOffsetUnits;\n }\n /**\n * Enable or disable depth buffering\n * @param enable defines the state to set\n */\n setDepthBuffer(enable) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETDEPTHTEST);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(enable ? this._currentDepthTest : _native.Engine.DEPTH_TEST_ALWAYS);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Gets a boolean indicating if depth writing is enabled\n * @returns the current depth writing state\n */\n getDepthWrite() {\n return this._depthWrite;\n }\n getDepthFunction() {\n switch (this._currentDepthTest) {\n case _native.Engine.DEPTH_TEST_NEVER:\n return 512;\n case _native.Engine.DEPTH_TEST_ALWAYS:\n return 519;\n case _native.Engine.DEPTH_TEST_GREATER:\n return 516;\n case _native.Engine.DEPTH_TEST_GEQUAL:\n return 518;\n case _native.Engine.DEPTH_TEST_NOTEQUAL:\n return 517;\n case _native.Engine.DEPTH_TEST_EQUAL:\n return 514;\n case _native.Engine.DEPTH_TEST_LESS:\n return 513;\n case _native.Engine.DEPTH_TEST_LEQUAL:\n return 515;\n }\n return null;\n }\n setDepthFunction(depthFunc) {\n let nativeDepthFunc = 0;\n switch (depthFunc) {\n case 512:\n nativeDepthFunc = _native.Engine.DEPTH_TEST_NEVER;\n break;\n case 519:\n nativeDepthFunc = _native.Engine.DEPTH_TEST_ALWAYS;\n break;\n case 516:\n nativeDepthFunc = _native.Engine.DEPTH_TEST_GREATER;\n break;\n case 518:\n nativeDepthFunc = _native.Engine.DEPTH_TEST_GEQUAL;\n break;\n case 517:\n nativeDepthFunc = _native.Engine.DEPTH_TEST_NOTEQUAL;\n break;\n case 514:\n nativeDepthFunc = _native.Engine.DEPTH_TEST_EQUAL;\n break;\n case 513:\n nativeDepthFunc = _native.Engine.DEPTH_TEST_LESS;\n break;\n case 515:\n nativeDepthFunc = _native.Engine.DEPTH_TEST_LEQUAL;\n break;\n }\n this._currentDepthTest = nativeDepthFunc;\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETDEPTHTEST);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(this._currentDepthTest);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Enable or disable depth writing\n * @param enable defines the state to set\n */\n setDepthWrite(enable) {\n this._depthWrite = enable;\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETDEPTHWRITE);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(Number(enable));\n this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Enable or disable color writing\n * @param enable defines the state to set\n */\n setColorWrite(enable) {\n this._colorWrite = enable;\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETCOLORWRITE);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(Number(enable));\n this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Gets a boolean indicating if color writing is enabled\n * @returns the current color writing state\n */\n getColorWrite() {\n return this._colorWrite;\n }\n applyStencil() {\n this._setStencil(this._stencilMask, getNativeStencilOpFail(this._stencilOpStencilFail), getNativeStencilDepthFail(this._stencilOpDepthFail), getNativeStencilDepthPass(this._stencilOpStencilDepthPass), getNativeStencilFunc(this._stencilFunc), this._stencilFuncRef);\n }\n _setStencil(mask, stencilOpFail, depthOpFail, depthOpPass, func, ref) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETSTENCIL);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(mask);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(stencilOpFail);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(depthOpFail);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(depthOpPass);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(func);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(ref);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n /**\n * Enable or disable the stencil buffer\n * @param enable defines if the stencil buffer must be enabled or disabled\n */\n setStencilBuffer(enable) {\n this._stencilTest = enable;\n if (enable) {\n this.applyStencil();\n }\n else {\n this._setStencil(255, _native.Engine.STENCIL_OP_FAIL_S_KEEP, _native.Engine.STENCIL_OP_FAIL_Z_KEEP, _native.Engine.STENCIL_OP_PASS_Z_KEEP, _native.Engine.STENCIL_TEST_ALWAYS, 0);\n }\n }\n /**\n * Gets a boolean indicating if stencil buffer is enabled\n * @returns the current stencil buffer state\n */\n getStencilBuffer() {\n return this._stencilTest;\n }\n /**\n * Gets the current stencil operation when stencil passes\n * @returns a number defining stencil operation to use when stencil passes\n */\n getStencilOperationPass() {\n return this._stencilOpStencilDepthPass;\n }\n /**\n * Sets the stencil operation to use when stencil passes\n * @param operation defines the stencil operation to use when stencil passes\n */\n setStencilOperationPass(operation) {\n this._stencilOpStencilDepthPass = operation;\n this.applyStencil();\n }\n /**\n * Sets the current stencil mask\n * @param mask defines the new stencil mask to use\n */\n setStencilMask(mask) {\n this._stencilMask = mask;\n this.applyStencil();\n }\n /**\n * Sets the current stencil function\n * @param stencilFunc defines the new stencil function to use\n */\n setStencilFunction(stencilFunc) {\n this._stencilFunc = stencilFunc;\n this.applyStencil();\n }\n /**\n * Sets the current stencil reference\n * @param reference defines the new stencil reference to use\n */\n setStencilFunctionReference(reference) {\n this._stencilFuncRef = reference;\n this.applyStencil();\n }\n /**\n * Sets the current stencil mask\n * @param mask defines the new stencil mask to use\n */\n setStencilFunctionMask(mask) {\n this._stencilFuncMask = mask;\n }\n /**\n * Sets the stencil operation to use when stencil fails\n * @param operation defines the stencil operation to use when stencil fails\n */\n setStencilOperationFail(operation) {\n this._stencilOpStencilFail = operation;\n this.applyStencil();\n }\n /**\n * Sets the stencil operation to use when depth fails\n * @param operation defines the stencil operation to use when depth fails\n */\n setStencilOperationDepthFail(operation) {\n this._stencilOpDepthFail = operation;\n this.applyStencil();\n }\n /**\n * Gets the current stencil mask\n * @returns a number defining the new stencil mask to use\n */\n getStencilMask() {\n return this._stencilMask;\n }\n /**\n * Gets the current stencil function\n * @returns a number defining the stencil function to use\n */\n getStencilFunction() {\n return this._stencilFunc;\n }\n /**\n * Gets the current stencil reference value\n * @returns a number defining the stencil reference value to use\n */\n getStencilFunctionReference() {\n return this._stencilFuncRef;\n }\n /**\n * Gets the current stencil mask\n * @returns a number defining the stencil mask to use\n */\n getStencilFunctionMask() {\n return this._stencilFuncMask;\n }\n /**\n * Gets the current stencil operation when stencil fails\n * @returns a number defining stencil operation to use when stencil fails\n */\n getStencilOperationFail() {\n return this._stencilOpStencilFail;\n }\n /**\n * Gets the current stencil operation when depth fails\n * @returns a number defining stencil operation to use when depth fails\n */\n getStencilOperationDepthFail() {\n return this._stencilOpDepthFail;\n }\n /**\n * Sets alpha constants used by some alpha blending modes\n * @param r defines the red component\n * @param g defines the green component\n * @param b defines the blue component\n * @param a defines the alpha component\n */\n setAlphaConstants(r, g, b, a) {\n throw new Error(\"Setting alpha blend constant color not yet implemented.\");\n }\n /**\n * Sets the current alpha mode\n * @param mode defines the mode to use (one of the BABYLON.undefined)\n * @param noDepthWriteChange defines if depth writing state should remains unchanged (false by default)\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/advanced/transparent_rendering\n */\n setAlphaMode(mode, noDepthWriteChange = false) {\n if (this._alphaMode === mode) {\n return;\n }\n const nativeMode = getNativeAlphaMode(mode);\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETBLENDMODE);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(nativeMode);\n this._commandBufferEncoder.finishEncodingCommand();\n if (!noDepthWriteChange) {\n this.setDepthWrite(mode === 0);\n }\n this._alphaMode = mode;\n }\n setInt(uniform, int) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINT);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsInt32(int);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setIntArray(uniform, array) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINTARRAY);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsInt32s(array);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setIntArray2(uniform, array) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINTARRAY2);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsInt32s(array);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setIntArray3(uniform, array) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINTARRAY3);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsInt32s(array);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setIntArray4(uniform, array) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETINTARRAY4);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsInt32s(array);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setFloatArray(uniform, array) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOATARRAY);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsFloat32s(array);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setFloatArray2(uniform, array) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOATARRAY2);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsFloat32s(array);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setFloatArray3(uniform, array) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOATARRAY3);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsFloat32s(array);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setFloatArray4(uniform, array) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOATARRAY4);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsFloat32s(array);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setArray(uniform, array) {\n if (!uniform) {\n return false;\n }\n return this.setFloatArray(uniform, new Float32Array(array));\n }\n setArray2(uniform, array) {\n if (!uniform) {\n return false;\n }\n return this.setFloatArray2(uniform, new Float32Array(array));\n }\n setArray3(uniform, array) {\n if (!uniform) {\n return false;\n }\n return this.setFloatArray3(uniform, new Float32Array(array));\n }\n setArray4(uniform, array) {\n if (!uniform) {\n return false;\n }\n return this.setFloatArray4(uniform, new Float32Array(array));\n }\n setMatrices(uniform, matrices) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETMATRICES);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsFloat32s(matrices);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setMatrix3x3(uniform, matrix) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETMATRIX3X3);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsFloat32s(matrix);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setMatrix2x2(uniform, matrix) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETMATRIX2X2);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsFloat32s(matrix);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setFloat(uniform, value) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOAT);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(value);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setFloat2(uniform, x, y) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOAT2);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(x);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(y);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setFloat3(uniform, x, y, z) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOAT3);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(x);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(y);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(z);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setFloat4(uniform, x, y, z, w) {\n if (!uniform) {\n return false;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETFLOAT4);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(x);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(y);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(z);\n this._commandBufferEncoder.encodeCommandArgAsFloat32(w);\n this._commandBufferEncoder.finishEncodingCommand();\n return true;\n }\n setColor3(uniform, color3) {\n if (!uniform) {\n return false;\n }\n this.setFloat3(uniform, color3.r, color3.g, color3.b);\n return true;\n }\n setColor4(uniform, color3, alpha) {\n if (!uniform) {\n return false;\n }\n this.setFloat4(uniform, color3.r, color3.g, color3.b, alpha);\n return true;\n }\n wipeCaches(bruteForce) {\n if (this.preventCacheWipeBetweenFrames) {\n return;\n }\n this.resetTextureCache();\n this._currentEffect = null;\n if (bruteForce) {\n this._currentProgram = null;\n this._stencilStateComposer.reset();\n this._depthCullingState.reset();\n this._alphaState.reset();\n }\n this._cachedVertexBuffers = null;\n this._cachedIndexBuffer = null;\n this._cachedEffectForVertexBuffers = null;\n }\n _createTexture() {\n return this._engine.createTexture();\n }\n _deleteTexture(texture) {\n if (texture) {\n this._engine.deleteTexture(texture.underlyingResource);\n }\n }\n /**\n * Update the content of a dynamic texture\n * @param texture defines the texture to update\n * @param canvas defines the canvas containing the source\n * @param invertY defines if data must be stored with Y axis inverted\n * @param premulAlpha defines if alpha is stored as premultiplied\n * @param format defines the format of the data\n */\n updateDynamicTexture(texture, canvas, invertY, premulAlpha = false, format) {\n if (premulAlpha === void 0) {\n premulAlpha = false;\n }\n if (!!texture && !!texture._hardwareTexture) {\n const source = canvas.getCanvasTexture();\n const destination = texture._hardwareTexture.underlyingResource;\n this._engine.copyTexture(destination, source);\n texture.isReady = true;\n }\n }\n createDynamicTexture(width, height, generateMipMaps, samplingMode) {\n // it's not possible to create 0x0 texture sized. Many bgfx methods assume texture size is at least 1x1(best case).\n // Worst case is getting a crash/assert.\n width = Math.max(width, 1);\n height = Math.max(height, 1);\n return this.createRawTexture(new Uint8Array(width * height * 4), width, height, 5, false, false, samplingMode);\n }\n createVideoElement(constraints) {\n // create native object depending on stream. Only NativeCamera is supported for now.\n if (this._camera) {\n return this._camera.createVideo(constraints);\n }\n return null;\n }\n updateVideoTexture(texture, video, invertY) {\n if (texture && texture._hardwareTexture && this._camera) {\n const webGLTexture = texture._hardwareTexture.underlyingResource;\n this._camera.updateVideoTexture(webGLTexture, video, invertY);\n }\n }\n createRawTexture(data, width, height, format, generateMipMaps, invertY, samplingMode, compression = null, type = 0, creationFlags = 0, useSRGBBuffer = false) {\n const texture = new InternalTexture(this, 3 /* InternalTextureSource.Raw */);\n texture.format = format;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.invertY = invertY;\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.width = texture.baseWidth;\n texture.height = texture.baseHeight;\n texture._compression = compression;\n texture.type = type;\n texture._useSRGBBuffer = this._getUseSRGBBuffer(useSRGBBuffer, !generateMipMaps);\n this.updateRawTexture(texture, data, format, invertY, compression, type, texture._useSRGBBuffer);\n if (texture._hardwareTexture) {\n const webGLTexture = texture._hardwareTexture.underlyingResource;\n const filter = getNativeSamplingMode(samplingMode);\n this._setTextureSampling(webGLTexture, filter);\n }\n this._internalTexturesCache.push(texture);\n return texture;\n }\n createRawTexture2DArray(data, width, height, depth, format, generateMipMaps, invertY, samplingMode, compression = null, textureType = 0) {\n const texture = new InternalTexture(this, 11 /* InternalTextureSource.Raw2DArray */);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.baseDepth = depth;\n texture.width = width;\n texture.height = height;\n texture.depth = depth;\n texture.format = format;\n texture.type = textureType;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.is2DArray = true;\n if (texture._hardwareTexture) {\n const nativeTexture = texture._hardwareTexture.underlyingResource;\n this._engine.loadRawTexture2DArray(nativeTexture, data, width, height, depth, getNativeTextureFormat(format, textureType), generateMipMaps, invertY);\n const filter = getNativeSamplingMode(samplingMode);\n this._setTextureSampling(nativeTexture, filter);\n }\n texture.isReady = true;\n this._internalTexturesCache.push(texture);\n return texture;\n }\n updateRawTexture(texture, bufferView, format, invertY, compression = null, type = 0, useSRGBBuffer = false) {\n if (!texture) {\n return;\n }\n if (bufferView && texture._hardwareTexture) {\n const underlyingResource = texture._hardwareTexture.underlyingResource;\n this._engine.loadRawTexture(underlyingResource, bufferView, texture.width, texture.height, getNativeTextureFormat(format, type), texture.generateMipMaps, texture.invertY);\n }\n texture.isReady = true;\n }\n // TODO: Refactor to share more logic with babylon.engine.ts version.\n /**\n * Usually called from Texture.ts.\n * Passed information to create a NativeTexture\n * @param url defines a value which contains one of the following:\n * * A conventional http URL, e.g. 'http://...' or 'file://...'\n * * A base64 string of in-line texture data, e.g. 'data:image/jpg;base64,/...'\n * * An indicator that data being passed using the buffer parameter, e.g. 'data:mytexture.jpg'\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated. Ignored for compressed textures. They must be in the file\n * @param invertY when true, image is flipped when loaded. You probably want true. Certain compressed textures may invert this if their default is inverted (eg. ktx)\n * @param scene needed for loading to the correct scene\n * @param samplingMode mode with should be used sample / access the texture (Default: Texture.TRILINEAR_SAMPLINGMODE)\n * @param onLoad optional callback to be called upon successful completion\n * @param onError optional callback to be called upon failure\n * @param buffer a source of a file previously fetched as either a base64 string, an ArrayBuffer (compressed or image format), HTMLImageElement (image format), or a Blob\n * @param fallback an internal argument in case the function must be called again, due to etc1 not having alpha capabilities\n * @param format internal format. Default: RGB when extension is '.jpg' else RGBA. Ignored for compressed textures\n * @param forcedExtension defines the extension to use to pick the right loader\n * @param mimeType defines an optional mime type\n * @param loaderOptions options to be passed to the loader\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns a InternalTexture for assignment back into BABYLON.Texture\n */\n createTexture(url, noMipmap, invertY, scene, samplingMode = 3, onLoad = null, onError = null, buffer = null, fallback = null, format = null, forcedExtension = null, mimeType, loaderOptions, creationFlags, useSRGBBuffer = false) {\n url = url || \"\";\n const fromData = url.substring(0, 5) === \"data:\";\n //const fromBlob = url.substring(0, 5) === \"blob:\";\n const isBase64 = fromData && url.indexOf(\";base64,\") !== -1;\n const texture = fallback ? fallback : new InternalTexture(this, 1 /* InternalTextureSource.Url */);\n const originalUrl = url;\n if (this._transformTextureUrl && !isBase64 && !fallback && !buffer) {\n url = this._transformTextureUrl(url);\n }\n // establish the file extension, if possible\n const lastDot = url.lastIndexOf(\".\");\n const extension = forcedExtension ? forcedExtension : lastDot > -1 ? url.substring(lastDot).toLowerCase() : \"\";\n // some formats are already supported by bimg, no need to try to load them with JS\n // leaving TextureLoader extension check for future use\n let loaderPromise = null;\n if (extension.endsWith(\".basis\") || extension.endsWith(\".ktx\") || extension.endsWith(\".ktx2\") || mimeType === \"image/ktx\" || mimeType === \"image/ktx2\") {\n loaderPromise = _GetCompatibleTextureLoader(extension);\n }\n if (scene) {\n scene.addPendingData(texture);\n }\n texture.url = url;\n texture.generateMipMaps = !noMipmap;\n texture.samplingMode = samplingMode;\n texture.invertY = invertY;\n texture._useSRGBBuffer = this._getUseSRGBBuffer(useSRGBBuffer, noMipmap);\n if (!this.doNotHandleContextLost) {\n // Keep a link to the buffer only if we plan to handle context lost\n texture._buffer = buffer;\n }\n let onLoadObserver = null;\n if (onLoad && !fallback) {\n onLoadObserver = texture.onLoadedObservable.add(onLoad);\n }\n if (!fallback) {\n this._internalTexturesCache.push(texture);\n }\n const onInternalError = (message, exception) => {\n if (scene) {\n scene.removePendingData(texture);\n }\n if (url === originalUrl) {\n if (onLoadObserver) {\n texture.onLoadedObservable.remove(onLoadObserver);\n }\n if (EngineStore.UseFallbackTexture) {\n this.createTexture(EngineStore.FallbackTexture, noMipmap, texture.invertY, scene, samplingMode, null, onError, buffer, texture);\n }\n if (onError) {\n onError((message || \"Unknown error\") + (EngineStore.UseFallbackTexture ? \" - Fallback texture was used\" : \"\"), exception);\n }\n }\n else {\n // fall back to the original url if the transformed url fails to load\n Logger.Warn(`Failed to load ${url}, falling back to ${originalUrl}`);\n this.createTexture(originalUrl, noMipmap, texture.invertY, scene, samplingMode, onLoad, onError, buffer, texture, format, forcedExtension, mimeType, loaderOptions);\n }\n };\n // processing for non-image formats\n if (loaderPromise) {\n throw new Error(\"Loading textures from IInternalTextureLoader not yet implemented.\");\n }\n else {\n const onload = (data) => {\n if (!texture._hardwareTexture) {\n if (scene) {\n scene.removePendingData(texture);\n }\n return;\n }\n const underlyingResource = texture._hardwareTexture.underlyingResource;\n this._engine.loadTexture(underlyingResource, data, !noMipmap, invertY, texture._useSRGBBuffer, () => {\n texture.baseWidth = this._engine.getTextureWidth(underlyingResource);\n texture.baseHeight = this._engine.getTextureHeight(underlyingResource);\n texture.width = texture.baseWidth;\n texture.height = texture.baseHeight;\n texture.isReady = true;\n const filter = getNativeSamplingMode(samplingMode);\n this._setTextureSampling(underlyingResource, filter);\n if (scene) {\n scene.removePendingData(texture);\n }\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n }, () => {\n throw new Error(\"Could not load a native texture.\");\n });\n };\n if (fromData && buffer) {\n if (buffer instanceof ArrayBuffer) {\n onload(new Uint8Array(buffer));\n }\n else if (ArrayBuffer.isView(buffer)) {\n onload(buffer);\n }\n else if (typeof buffer === \"string\") {\n onload(new Uint8Array(Tools.DecodeBase64(buffer)));\n }\n else {\n throw new Error(\"Unsupported buffer type\");\n }\n }\n else {\n if (isBase64) {\n onload(new Uint8Array(Tools.DecodeBase64(url)));\n }\n else {\n this._loadFile(url, (data) => onload(new Uint8Array(data)), undefined, undefined, true, (request, exception) => {\n onInternalError(\"Unable to load \" + (request ? request.responseURL : url, exception));\n });\n }\n }\n }\n return texture;\n }\n /**\n * Wraps an external native texture in a Babylon texture.\n * @param texture defines the external texture\n * @param hasMipMaps defines whether the external texture has mip maps\n * @param samplingMode defines the sampling mode for the external texture (default: 3)\n * @returns the babylon internal texture\n */\n wrapNativeTexture(texture, hasMipMaps = false, samplingMode = 3) {\n const hardwareTexture = new NativeHardwareTexture(texture, this._engine);\n const internalTexture = new InternalTexture(this, 0 /* InternalTextureSource.Unknown */, true);\n internalTexture._hardwareTexture = hardwareTexture;\n internalTexture.baseWidth = this._engine.getTextureWidth(texture);\n internalTexture.baseHeight = this._engine.getTextureHeight(texture);\n internalTexture.width = internalTexture.baseWidth;\n internalTexture.height = internalTexture.baseHeight;\n internalTexture.isReady = true;\n internalTexture.useMipMaps = hasMipMaps;\n this.updateTextureSamplingMode(samplingMode, internalTexture);\n return internalTexture;\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Wraps an external web gl texture in a Babylon texture.\n * @returns the babylon internal texture\n */\n wrapWebGLTexture() {\n throw new Error(\"wrapWebGLTexture is not supported, use wrapNativeTexture instead.\");\n }\n _createDepthStencilTexture(size, options, rtWrapper) {\n // TODO: handle other options?\n const generateStencil = options.generateStencil || false;\n const samples = options.samples || 1;\n const nativeRTWrapper = rtWrapper;\n const texture = new InternalTexture(this, 12 /* InternalTextureSource.DepthStencil */);\n const width = size.width ?? size;\n const height = size.height ?? size;\n const framebuffer = this._engine.createFrameBuffer(texture._hardwareTexture.underlyingResource, width, height, generateStencil, true, samples);\n nativeRTWrapper._framebufferDepthStencil = framebuffer;\n return texture;\n }\n /**\n * @internal\n */\n _releaseFramebufferObjects(framebuffer) {\n if (framebuffer) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEFRAMEBUFFER);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(framebuffer);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n }\n /**\n * @internal Engine abstraction for loading and creating an image bitmap from a given source string.\n * @param imageSource source to load the image from.\n * @param options An object that sets options for the image's extraction.\n * @returns ImageBitmap\n */\n _createImageBitmapFromSource(imageSource, options) {\n const promise = new Promise((resolve, reject) => {\n const image = this.createCanvasImage();\n image.onload = () => {\n try {\n const imageBitmap = this._engine.createImageBitmap(image);\n resolve(imageBitmap);\n }\n catch (error) {\n reject(`Error loading image ${image.src} with exception: ${error}`);\n }\n };\n image.onerror = (error) => {\n reject(`Error loading image ${image.src} with exception: ${error}`);\n };\n image.src = imageSource;\n });\n return promise;\n }\n /**\n * Engine abstraction for createImageBitmap\n * @param image source for image\n * @param options An object that sets options for the image's extraction.\n * @returns ImageBitmap\n */\n createImageBitmap(image, options) {\n return new Promise((resolve, reject) => {\n if (Array.isArray(image)) {\n const arr = image;\n if (arr.length) {\n const image = this._engine.createImageBitmap(arr[0]);\n if (image) {\n resolve(image);\n return;\n }\n }\n }\n reject(`Unsupported data for createImageBitmap.`);\n });\n }\n /**\n * Resize an image and returns the image data as an uint8array\n * @param image image to resize\n * @param bufferWidth destination buffer width\n * @param bufferHeight destination buffer height\n * @returns an uint8array containing RGBA values of bufferWidth * bufferHeight size\n */\n resizeImageBitmap(image, bufferWidth, bufferHeight) {\n return this._engine.resizeImageBitmap(image, bufferWidth, bufferHeight);\n }\n /**\n * Creates a cube texture\n * @param rootUrl defines the url where the files to load is located\n * @param scene defines the current scene\n * @param files defines the list of files to load (1 per face)\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated (false by default)\n * @param onLoad defines an optional callback raised when the texture is loaded\n * @param onError defines an optional callback raised if there is an issue to load the texture\n * @param format defines the format of the data\n * @param forcedExtension defines the extension to use to pick the right loader\n * @param createPolynomials if a polynomial sphere should be created for the cube texture\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\n * @param fallback defines texture to use while falling back when (compressed) texture file not found.\n * @param loaderOptions options to be passed to the loader\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @param buffer defines the data buffer to load instead of loading the rootUrl\n * @returns the cube texture as an InternalTexture\n */\n createCubeTexture(rootUrl, scene, files, noMipmap, onLoad = null, onError = null, format, forcedExtension = null, createPolynomials = false, lodScale = 0, lodOffset = 0, fallback = null, loaderOptions, useSRGBBuffer = false, buffer = null) {\n const texture = fallback ? fallback : new InternalTexture(this, 7 /* InternalTextureSource.Cube */);\n texture.isCube = true;\n texture.url = rootUrl;\n texture.generateMipMaps = !noMipmap;\n texture._lodGenerationScale = lodScale;\n texture._lodGenerationOffset = lodOffset;\n texture._useSRGBBuffer = this._getUseSRGBBuffer(useSRGBBuffer, !!noMipmap);\n if (!this._doNotHandleContextLost) {\n texture._extension = forcedExtension;\n texture._files = files;\n texture._buffer = buffer;\n }\n const lastDot = rootUrl.lastIndexOf(\".\");\n const extension = forcedExtension ? forcedExtension : lastDot > -1 ? rootUrl.substring(lastDot).toLowerCase() : \"\";\n // TODO: use texture loader to load env files?\n if (extension === \".env\") {\n const onloaddata = (data) => {\n const info = GetEnvInfo(data);\n texture.width = info.width;\n texture.height = info.width;\n UploadEnvSpherical(texture, info);\n const specularInfo = info.specular;\n if (!specularInfo) {\n throw new Error(`Nothing else parsed so far`);\n }\n texture._lodGenerationScale = specularInfo.lodGenerationScale;\n const imageData = CreateImageDataArrayBufferViews(data, info);\n texture.format = 5;\n texture.type = 0;\n texture.generateMipMaps = true;\n texture.getEngine().updateTextureSamplingMode(Texture.TRILINEAR_SAMPLINGMODE, texture);\n texture._isRGBD = true;\n texture.invertY = true;\n this._engine.loadCubeTextureWithMips(texture._hardwareTexture.underlyingResource, imageData, false, texture._useSRGBBuffer, () => {\n texture.isReady = true;\n if (onLoad) {\n onLoad();\n }\n }, () => {\n throw new Error(\"Could not load a native cube texture.\");\n });\n };\n if (buffer) {\n onloaddata(buffer);\n }\n else if (files && files.length === 6) {\n throw new Error(`Multi-file loading not allowed on env files.`);\n }\n else {\n const onInternalError = (request, exception) => {\n if (onError && request) {\n onError(request.status + \" \" + request.statusText, exception);\n }\n };\n this._loadFile(rootUrl, (data) => {\n onloaddata(new Uint8Array(data, 0, data.byteLength));\n }, undefined, undefined, true, onInternalError);\n }\n }\n else {\n if (!files || files.length !== 6) {\n throw new Error(\"Cannot load cubemap because 6 files were not defined\");\n }\n // Reorder from [+X, +Y, +Z, -X, -Y, -Z] to [+X, -X, +Y, -Y, +Z, -Z].\n const reorderedFiles = [files[0], files[3], files[1], files[4], files[2], files[5]];\n Promise.all(reorderedFiles.map((file) => this._loadFileAsync(file, undefined, true).then((data) => new Uint8Array(data, 0, data.byteLength))))\n .then((data) => {\n return new Promise((resolve, reject) => {\n this._engine.loadCubeTexture(texture._hardwareTexture.underlyingResource, data, !noMipmap, true, texture._useSRGBBuffer, resolve, reject);\n });\n })\n .then(() => {\n texture.isReady = true;\n if (onLoad) {\n onLoad();\n }\n }, (error) => {\n if (onError) {\n onError(`Failed to load cubemap: ${error.message}`, error);\n }\n });\n }\n this._internalTexturesCache.push(texture);\n return texture;\n }\n /** @internal */\n _createHardwareTexture() {\n return new NativeHardwareTexture(this._createTexture(), this._engine);\n }\n /** @internal */\n _createHardwareRenderTargetWrapper(isMulti, isCube, size) {\n const rtWrapper = new NativeRenderTargetWrapper(isMulti, isCube, size, this);\n this._renderTargetWrapperCache.push(rtWrapper);\n return rtWrapper;\n }\n /** @internal */\n _createInternalTexture(size, options, _delayGPUTextureCreation = true, source = 0 /* InternalTextureSource.Unknown */) {\n let generateMipMaps = false;\n let type = 0;\n let samplingMode = 3;\n let format = 5;\n let useSRGBBuffer = false;\n let samples = 1;\n let label;\n if (options !== undefined && typeof options === \"object\") {\n generateMipMaps = !!options.generateMipMaps;\n type = options.type === undefined ? 0 : options.type;\n samplingMode = options.samplingMode === undefined ? 3 : options.samplingMode;\n format = options.format === undefined ? 5 : options.format;\n useSRGBBuffer = options.useSRGBBuffer === undefined ? false : options.useSRGBBuffer;\n samples = options.samples ?? 1;\n label = options.label;\n }\n else {\n generateMipMaps = !!options;\n }\n useSRGBBuffer = this._getUseSRGBBuffer(useSRGBBuffer, !generateMipMaps);\n if (type === 1 && !this._caps.textureFloatLinearFiltering) {\n // if floating point linear (gl.FLOAT) then force to NEAREST_SAMPLINGMODE\n samplingMode = 1;\n }\n else if (type === 2 && !this._caps.textureHalfFloatLinearFiltering) {\n // if floating point linear (HALF_FLOAT) then force to NEAREST_SAMPLINGMODE\n samplingMode = 1;\n }\n if (type === 1 && !this._caps.textureFloat) {\n type = 0;\n Logger.Warn(\"Float textures are not supported. Type forced to TEXTURETYPE_UNSIGNED_BYTE\");\n }\n const texture = new InternalTexture(this, source);\n const width = size.width ?? size;\n const height = size.height ?? size;\n const layers = size.layers || 0;\n if (layers !== 0) {\n throw new Error(\"Texture layers are not supported in Babylon Native\");\n }\n const nativeTexture = texture._hardwareTexture.underlyingResource;\n const nativeTextureFormat = getNativeTextureFormat(format, type);\n // REVIEW: We are always setting the renderTarget flag as we don't know whether the texture will be used as a render target.\n this._engine.initializeTexture(nativeTexture, width, height, generateMipMaps, nativeTextureFormat, true, useSRGBBuffer, samples);\n this._setTextureSampling(nativeTexture, getNativeSamplingMode(samplingMode));\n texture._useSRGBBuffer = useSRGBBuffer;\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.width = width;\n texture.height = height;\n texture.depth = layers;\n texture.isReady = true;\n texture.samples = samples;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.type = type;\n texture.format = format;\n texture.label = label;\n this._internalTexturesCache.push(texture);\n return texture;\n }\n createRenderTargetTexture(size, options) {\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, size);\n let generateDepthBuffer = true;\n let generateStencilBuffer = false;\n let noColorAttachment = false;\n let colorAttachment = undefined;\n let samples = 1;\n if (options !== undefined && typeof options === \"object\") {\n generateDepthBuffer = options.generateDepthBuffer ?? true;\n generateStencilBuffer = !!options.generateStencilBuffer;\n noColorAttachment = !!options.noColorAttachment;\n colorAttachment = options.colorAttachment;\n samples = options.samples ?? 1;\n }\n const texture = colorAttachment || (noColorAttachment ? null : this._createInternalTexture(size, options, true, 5 /* InternalTextureSource.RenderTarget */));\n const width = size.width ?? size;\n const height = size.height ?? size;\n const framebuffer = this._engine.createFrameBuffer(texture ? texture._hardwareTexture.underlyingResource : null, width, height, generateStencilBuffer, generateDepthBuffer, samples);\n rtWrapper._framebuffer = framebuffer;\n rtWrapper._generateDepthBuffer = generateDepthBuffer;\n rtWrapper._generateStencilBuffer = generateStencilBuffer;\n rtWrapper._samples = samples;\n rtWrapper.setTextures(texture);\n return rtWrapper;\n }\n updateRenderTargetTextureSampleCount(rtWrapper, samples) {\n Logger.Warn(\"Updating render target sample count is not currently supported\");\n return rtWrapper.samples;\n }\n updateTextureSamplingMode(samplingMode, texture) {\n if (texture._hardwareTexture) {\n const filter = getNativeSamplingMode(samplingMode);\n this._setTextureSampling(texture._hardwareTexture.underlyingResource, filter);\n }\n texture.samplingMode = samplingMode;\n }\n bindFramebuffer(texture, faceIndex, requiredWidth, requiredHeight, forceFullscreenViewport) {\n const nativeRTWrapper = texture;\n if (this._currentRenderTarget) {\n this.unBindFramebuffer(this._currentRenderTarget);\n }\n this._currentRenderTarget = texture;\n if (faceIndex) {\n throw new Error(\"Cuboid frame buffers are not yet supported in NativeEngine.\");\n }\n if (requiredWidth || requiredHeight) {\n throw new Error(\"Required width/height for frame buffers not yet supported in NativeEngine.\");\n }\n if (nativeRTWrapper._framebufferDepthStencil) {\n this._bindUnboundFramebuffer(nativeRTWrapper._framebufferDepthStencil);\n }\n else {\n this._bindUnboundFramebuffer(nativeRTWrapper._framebuffer);\n }\n }\n unBindFramebuffer(texture, disableGenerateMipMaps = false, onBeforeUnbind) {\n // NOTE: Disabling mipmap generation is not yet supported in NativeEngine.\n this._currentRenderTarget = null;\n if (onBeforeUnbind) {\n onBeforeUnbind();\n }\n this._bindUnboundFramebuffer(null);\n }\n createDynamicVertexBuffer(data) {\n return this.createVertexBuffer(data, true);\n }\n updateDynamicIndexBuffer(indexBuffer, indices, offset = 0) {\n const buffer = indexBuffer;\n const data = this._normalizeIndexData(indices);\n buffer.is32Bits = data.BYTES_PER_ELEMENT === 4;\n this._engine.updateDynamicIndexBuffer(buffer.nativeIndexBuffer, data.buffer, data.byteOffset, data.byteLength, offset);\n }\n updateDynamicVertexBuffer(vertexBuffer, data, byteOffset = 0, byteLength) {\n const buffer = vertexBuffer;\n const dataView = data instanceof Array ? new Float32Array(data) : data instanceof ArrayBuffer ? new Uint8Array(data) : data;\n const byteView = new Uint8Array(dataView.buffer, dataView.byteOffset, byteLength ?? dataView.byteLength);\n this._engine.updateDynamicVertexBuffer(buffer.nativeVertexBuffer, byteView.buffer, byteView.byteOffset, byteView.byteLength, byteOffset);\n }\n // TODO: Refactor to share more logic with base Engine implementation.\n /**\n * @internal\n */\n _setTexture(channel, texture, isPartOfTextureArray = false, depthStencilTexture = false) {\n const uniform = this._boundUniforms[channel];\n if (!uniform) {\n return false;\n }\n // Not ready?\n if (!texture) {\n if (this._boundTexturesCache[channel] != null) {\n this._activeChannel = channel;\n this._boundTexturesCache[channel] = null;\n this._unsetNativeTexture(uniform);\n }\n return false;\n }\n // Video\n if (texture.video) {\n this._activeChannel = channel;\n texture.update();\n }\n else if (texture.delayLoadState === 4) {\n // Delay loading\n texture.delayLoad();\n return false;\n }\n let internalTexture;\n if (depthStencilTexture) {\n internalTexture = texture.depthStencilTexture;\n }\n else if (texture.isReady()) {\n internalTexture = texture.getInternalTexture();\n }\n else if (texture.isCube) {\n internalTexture = this.emptyCubeTexture;\n }\n else if (texture.is3D) {\n internalTexture = this.emptyTexture3D;\n }\n else if (texture.is2DArray) {\n internalTexture = this.emptyTexture2DArray;\n }\n else {\n internalTexture = this.emptyTexture;\n }\n this._activeChannel = channel;\n if (!internalTexture || !internalTexture._hardwareTexture) {\n return false;\n }\n this._setTextureWrapMode(internalTexture._hardwareTexture.underlyingResource, getNativeAddressMode(texture.wrapU), getNativeAddressMode(texture.wrapV), getNativeAddressMode(texture.wrapR));\n this._updateAnisotropicLevel(texture);\n this._setNativeTexture(uniform, internalTexture._hardwareTexture.underlyingResource);\n return true;\n }\n // filter is a NativeFilter.XXXX value.\n _setTextureSampling(texture, filter) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETTEXTURESAMPLING);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(texture);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(filter);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n // addressModes are NativeAddressMode.XXXX values.\n _setTextureWrapMode(texture, addressModeU, addressModeV, addressModeW) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETTEXTUREWRAPMODE);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(texture);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(addressModeU);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(addressModeV);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(addressModeW);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n _setNativeTexture(uniform, texture) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETTEXTURE);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(texture);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n _unsetNativeTexture(uniform) {\n if (!_native.Engine.COMMAND_UNSETTEXTURE) {\n return;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_UNSETTEXTURE);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(uniform);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n // TODO: Share more of this logic with the base implementation.\n // TODO: Rename to match naming in base implementation once refactoring allows different parameters.\n _updateAnisotropicLevel(texture) {\n const internalTexture = texture.getInternalTexture();\n const value = texture.anisotropicFilteringLevel;\n if (!internalTexture || !internalTexture._hardwareTexture) {\n return;\n }\n if (internalTexture._cachedAnisotropicFilteringLevel !== value) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_SETTEXTUREANISOTROPICLEVEL);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(internalTexture._hardwareTexture.underlyingResource);\n this._commandBufferEncoder.encodeCommandArgAsUInt32(value);\n this._commandBufferEncoder.finishEncodingCommand();\n internalTexture._cachedAnisotropicFilteringLevel = value;\n }\n }\n /**\n * @internal\n */\n _bindTexture(channel, texture) {\n const uniform = this._boundUniforms[channel];\n if (!uniform) {\n return;\n }\n if (texture && texture._hardwareTexture) {\n const underlyingResource = texture._hardwareTexture.underlyingResource;\n this._setNativeTexture(uniform, underlyingResource);\n }\n else {\n this._unsetNativeTexture(uniform);\n }\n }\n /**\n * Unbind all textures\n */\n unbindAllTextures() {\n if (!_native.Engine.COMMAND_DISCARDALLTEXTURES) {\n return;\n }\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DISCARDALLTEXTURES);\n this._commandBufferEncoder.finishEncodingCommand();\n }\n _deleteBuffer(buffer) {\n if (buffer.nativeIndexBuffer) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEINDEXBUFFER);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(buffer.nativeIndexBuffer);\n this._commandBufferEncoder.finishEncodingCommand();\n delete buffer.nativeIndexBuffer;\n }\n if (buffer.nativeVertexBuffer) {\n this._commandBufferEncoder.startEncodingCommand(_native.Engine.COMMAND_DELETEVERTEXBUFFER);\n this._commandBufferEncoder.encodeCommandArgAsNativeData(buffer.nativeVertexBuffer);\n this._commandBufferEncoder.finishEncodingCommand();\n delete buffer.nativeVertexBuffer;\n }\n }\n /**\n * Create a canvas\n * @param width width\n * @param height height\n * @returns ICanvas interface\n */\n createCanvas(width, height) {\n if (!_native.Canvas) {\n throw new Error(\"Native Canvas plugin not available.\");\n }\n const canvas = new _native.Canvas();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n /**\n * Create an image to use with canvas\n * @returns IImage interface\n */\n createCanvasImage() {\n if (!_native.Canvas) {\n throw new Error(\"Native Canvas plugin not available.\");\n }\n const image = new _native.Image();\n return image;\n }\n /**\n * Update a portion of an internal texture\n * @param texture defines the texture to update\n * @param imageData defines the data to store into the texture\n * @param xOffset defines the x coordinates of the update rectangle\n * @param yOffset defines the y coordinates of the update rectangle\n * @param width defines the width of the update rectangle\n * @param height defines the height of the update rectangle\n * @param faceIndex defines the face index if texture is a cube (0 by default)\n * @param lod defines the lod level to update (0 by default)\n * @param generateMipMaps defines whether to generate mipmaps or not\n */\n updateTextureData(texture, imageData, xOffset, yOffset, width, height, faceIndex = 0, lod = 0, generateMipMaps = false) {\n throw new Error(\"updateTextureData not implemented.\");\n }\n /**\n * @internal\n */\n _uploadCompressedDataToTextureDirectly(texture, internalFormat, width, height, data, faceIndex = 0, lod = 0) {\n throw new Error(\"_uploadCompressedDataToTextureDirectly not implemented.\");\n }\n /**\n * @internal\n */\n _uploadDataToTextureDirectly(texture, imageData, faceIndex = 0, lod = 0) {\n throw new Error(\"_uploadDataToTextureDirectly not implemented.\");\n }\n /**\n * @internal\n */\n _uploadArrayBufferViewToTexture(texture, imageData, faceIndex = 0, lod = 0) {\n throw new Error(\"_uploadArrayBufferViewToTexture not implemented.\");\n }\n /**\n * @internal\n */\n _uploadImageToTexture(texture, image, faceIndex = 0, lod = 0) {\n throw new Error(\"_uploadArrayBufferViewToTexture not implemented.\");\n }\n getFontOffset(font) {\n // TODO\n const result = { ascent: 0, height: 0, descent: 0 };\n return result;\n }\n /**\n * No equivalent for native. Do nothing.\n */\n flushFramebuffer() { }\n _readTexturePixels(texture, width, height, faceIndex, level, buffer, _flushRenderer, _noDataConversion, x, y) {\n if (faceIndex !== undefined && faceIndex !== -1) {\n throw new Error(`Reading cubemap faces is not supported, but faceIndex is ${faceIndex}.`);\n }\n return this._engine\n .readTexture(texture._hardwareTexture?.underlyingResource, level ?? 0, x ?? 0, y ?? 0, width, height, buffer?.buffer ?? null, buffer?.byteOffset ?? 0, buffer?.byteLength ?? 0)\n .then((rawBuffer) => {\n if (!buffer) {\n buffer = new Uint8Array(rawBuffer);\n }\n return buffer;\n });\n }\n}\n// This must match the protocol version in NativeEngine.cpp\nNativeEngine.PROTOCOL_VERSION = 8;\n","import { NativeEngine } from \"../nativeEngine.js\";\nimport { NativeDataStream } from \"./nativeDataStream.js\";\nNativeEngine._createNativeDataStream = function () {\n if (_native.NativeDataStream.VALIDATION_ENABLED) {\n return new ValidatedNativeDataStream();\n }\n else {\n return new NativeDataStream();\n }\n};\n/**\n * Validated Native Data Stream\n */\nexport class ValidatedNativeDataStream extends NativeDataStream {\n constructor() {\n super();\n }\n writeUint32(value) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_UINT_32);\n super.writeUint32(value);\n }\n writeInt32(value) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_INT_32);\n super.writeInt32(value);\n }\n writeFloat32(value) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_FLOAT_32);\n super.writeFloat32(value);\n }\n writeUint32Array(values) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_UINT_32_ARRAY);\n super.writeUint32Array(values);\n }\n writeInt32Array(values) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_INT_32_ARRAY);\n super.writeInt32Array(values);\n }\n writeFloat32Array(values) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_FLOAT_32_ARRAY);\n super.writeFloat32Array(values);\n }\n writeNativeData(handle) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_NATIVE_DATA);\n super.writeNativeData(handle);\n }\n writeBoolean(value) {\n super.writeUint32(_native.NativeDataStream.VALIDATION_BOOLEAN);\n super.writeBoolean(value);\n }\n}\n","import { ILog2 } from \"../../Maths/math.scalar.functions.js\";\n\n/** @internal */\nexport class WebGPUTextureHelper {\n static ComputeNumMipmapLevels(width, height) {\n return ILog2(Math.max(width, height)) + 1;\n }\n static GetTextureTypeFromFormat(format) {\n switch (format) {\n // One Component = 8 bits unsigned\n case \"r8unorm\" /* WebGPUConstants.TextureFormat.R8Unorm */:\n case \"r8uint\" /* WebGPUConstants.TextureFormat.R8Uint */:\n case \"rg8unorm\" /* WebGPUConstants.TextureFormat.RG8Unorm */:\n case \"rg8uint\" /* WebGPUConstants.TextureFormat.RG8Uint */:\n case \"rgba8unorm\" /* WebGPUConstants.TextureFormat.RGBA8Unorm */:\n case \"rgba8unorm-srgb\" /* WebGPUConstants.TextureFormat.RGBA8UnormSRGB */:\n case \"rgba8uint\" /* WebGPUConstants.TextureFormat.RGBA8Uint */:\n case \"bgra8unorm\" /* WebGPUConstants.TextureFormat.BGRA8Unorm */:\n case \"bgra8unorm-srgb\" /* WebGPUConstants.TextureFormat.BGRA8UnormSRGB */:\n case \"rgb10a2uint\" /* WebGPUConstants.TextureFormat.RGB10A2UINT */: // composite format - let's say it's byte...\n case \"rgb10a2unorm\" /* WebGPUConstants.TextureFormat.RGB10A2Unorm */: // composite format - let's say it's byte...\n case \"rgb9e5ufloat\" /* WebGPUConstants.TextureFormat.RGB9E5UFloat */: // composite format - let's say it's byte...\n case \"rg11b10ufloat\" /* WebGPUConstants.TextureFormat.RG11B10UFloat */: // composite format - let's say it's byte...\n case \"bc7-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC7RGBAUnorm */:\n case \"bc7-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB */:\n case \"bc6h-rgb-ufloat\" /* WebGPUConstants.TextureFormat.BC6HRGBUFloat */:\n case \"bc5-rg-unorm\" /* WebGPUConstants.TextureFormat.BC5RGUnorm */:\n case \"bc3-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC3RGBAUnorm */:\n case \"bc3-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB */:\n case \"bc2-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC2RGBAUnorm */:\n case \"bc2-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB */:\n case \"bc4-r-unorm\" /* WebGPUConstants.TextureFormat.BC4RUnorm */:\n case \"bc1-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC1RGBAUnorm */:\n case \"bc1-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB */:\n case \"etc2-rgb8unorm\" /* WebGPUConstants.TextureFormat.ETC2RGB8Unorm */:\n case \"etc2-rgb8unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB */:\n case \"etc2-rgb8a1unorm\" /* WebGPUConstants.TextureFormat.ETC2RGB8A1Unorm */:\n case \"etc2-rgb8a1unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGB8A1UnormSRGB */:\n case \"etc2-rgba8unorm\" /* WebGPUConstants.TextureFormat.ETC2RGBA8Unorm */:\n case \"etc2-rgba8unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB */:\n case \"eac-r11unorm\" /* WebGPUConstants.TextureFormat.EACR11Unorm */:\n case \"eac-rg11unorm\" /* WebGPUConstants.TextureFormat.EACRG11Unorm */:\n case \"astc-4x4-unorm\" /* WebGPUConstants.TextureFormat.ASTC4x4Unorm */:\n case \"astc-4x4-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB */:\n case \"astc-5x4-unorm\" /* WebGPUConstants.TextureFormat.ASTC5x4Unorm */:\n case \"astc-5x4-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC5x4UnormSRGB */:\n case \"astc-5x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC5x5Unorm */:\n case \"astc-5x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC5x5UnormSRGB */:\n case \"astc-6x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC6x5Unorm */:\n case \"astc-6x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC6x5UnormSRGB */:\n case \"astc-6x6-unorm\" /* WebGPUConstants.TextureFormat.ASTC6x6Unorm */:\n case \"astc-6x6-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC6x6UnormSRGB */:\n case \"astc-8x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC8x5Unorm */:\n case \"astc-8x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC8x5UnormSRGB */:\n case \"astc-8x6-unorm\" /* WebGPUConstants.TextureFormat.ASTC8x6Unorm */:\n case \"astc-8x6-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC8x6UnormSRGB */:\n case \"astc-8x8-unorm\" /* WebGPUConstants.TextureFormat.ASTC8x8Unorm */:\n case \"astc-8x8-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC8x8UnormSRGB */:\n case \"astc-10x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x5Unorm */:\n case \"astc-10x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x5UnormSRGB */:\n case \"astc-10x6-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x6Unorm */:\n case \"astc-10x6-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x6UnormSRGB */:\n case \"astc-10x8-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x8Unorm */:\n case \"astc-10x8-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x8UnormSRGB */:\n case \"astc-10x10-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x10Unorm */:\n case \"astc-10x10-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x10UnormSRGB */:\n case \"astc-12x10-unorm\" /* WebGPUConstants.TextureFormat.ASTC12x10Unorm */:\n case \"astc-12x10-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC12x10UnormSRGB */:\n case \"astc-12x12-unorm\" /* WebGPUConstants.TextureFormat.ASTC12x12Unorm */:\n case \"astc-12x12-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB */:\n case \"stencil8\" /* WebGPUConstants.TextureFormat.Stencil8 */:\n return 0;\n // One Component = 8 bits signed\n case \"r8snorm\" /* WebGPUConstants.TextureFormat.R8Snorm */:\n case \"r8sint\" /* WebGPUConstants.TextureFormat.R8Sint */:\n case \"rg8snorm\" /* WebGPUConstants.TextureFormat.RG8Snorm */:\n case \"rg8sint\" /* WebGPUConstants.TextureFormat.RG8Sint */:\n case \"rgba8snorm\" /* WebGPUConstants.TextureFormat.RGBA8Snorm */:\n case \"rgba8sint\" /* WebGPUConstants.TextureFormat.RGBA8Sint */:\n case \"bc6h-rgb-float\" /* WebGPUConstants.TextureFormat.BC6HRGBFloat */:\n case \"bc5-rg-snorm\" /* WebGPUConstants.TextureFormat.BC5RGSnorm */:\n case \"bc4-r-snorm\" /* WebGPUConstants.TextureFormat.BC4RSnorm */:\n case \"eac-r11snorm\" /* WebGPUConstants.TextureFormat.EACR11Snorm */:\n case \"eac-rg11snorm\" /* WebGPUConstants.TextureFormat.EACRG11Snorm */:\n return 3;\n // One component = 16 bits unsigned\n case \"r16uint\" /* WebGPUConstants.TextureFormat.R16Uint */:\n case \"rg16uint\" /* WebGPUConstants.TextureFormat.RG16Uint */:\n case \"rgba16uint\" /* WebGPUConstants.TextureFormat.RGBA16Uint */:\n case \"depth16unorm\" /* WebGPUConstants.TextureFormat.Depth16Unorm */:\n return 5;\n // One component = 16 bits signed\n case \"r16sint\" /* WebGPUConstants.TextureFormat.R16Sint */:\n case \"rg16sint\" /* WebGPUConstants.TextureFormat.RG16Sint */:\n case \"rgba16sint\" /* WebGPUConstants.TextureFormat.RGBA16Sint */:\n return 4;\n case \"r16float\" /* WebGPUConstants.TextureFormat.R16Float */:\n case \"rg16float\" /* WebGPUConstants.TextureFormat.RG16Float */:\n case \"rgba16float\" /* WebGPUConstants.TextureFormat.RGBA16Float */:\n return 2;\n // One component = 32 bits unsigned\n case \"r32uint\" /* WebGPUConstants.TextureFormat.R32Uint */:\n case \"rg32uint\" /* WebGPUConstants.TextureFormat.RG32Uint */:\n case \"rgba32uint\" /* WebGPUConstants.TextureFormat.RGBA32Uint */:\n return 7;\n // One component = 32 bits signed\n case \"r32sint\" /* WebGPUConstants.TextureFormat.R32Sint */:\n case \"rg32sint\" /* WebGPUConstants.TextureFormat.RG32Sint */:\n case \"rgba32sint\" /* WebGPUConstants.TextureFormat.RGBA32Sint */:\n return 7;\n case \"r32float\" /* WebGPUConstants.TextureFormat.R32Float */:\n case \"rg32float\" /* WebGPUConstants.TextureFormat.RG32Float */:\n case \"rgba32float\" /* WebGPUConstants.TextureFormat.RGBA32Float */:\n case \"depth32float\" /* WebGPUConstants.TextureFormat.Depth32Float */:\n case \"depth32float-stencil8\" /* WebGPUConstants.TextureFormat.Depth32FloatStencil8 */:\n case \"depth24plus\" /* WebGPUConstants.TextureFormat.Depth24Plus */:\n case \"depth24plus-stencil8\" /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */:\n return 1;\n }\n return 0;\n }\n static GetBlockInformationFromFormat(format) {\n switch (format) {\n // 8 bits formats\n case \"r8unorm\" /* WebGPUConstants.TextureFormat.R8Unorm */:\n case \"r8snorm\" /* WebGPUConstants.TextureFormat.R8Snorm */:\n case \"r8uint\" /* WebGPUConstants.TextureFormat.R8Uint */:\n case \"r8sint\" /* WebGPUConstants.TextureFormat.R8Sint */:\n return { width: 1, height: 1, length: 1 };\n // 16 bits formats\n case \"r16uint\" /* WebGPUConstants.TextureFormat.R16Uint */:\n case \"r16sint\" /* WebGPUConstants.TextureFormat.R16Sint */:\n case \"r16float\" /* WebGPUConstants.TextureFormat.R16Float */:\n case \"rg8unorm\" /* WebGPUConstants.TextureFormat.RG8Unorm */:\n case \"rg8snorm\" /* WebGPUConstants.TextureFormat.RG8Snorm */:\n case \"rg8uint\" /* WebGPUConstants.TextureFormat.RG8Uint */:\n case \"rg8sint\" /* WebGPUConstants.TextureFormat.RG8Sint */:\n return { width: 1, height: 1, length: 2 };\n // 32 bits formats\n case \"r32uint\" /* WebGPUConstants.TextureFormat.R32Uint */:\n case \"r32sint\" /* WebGPUConstants.TextureFormat.R32Sint */:\n case \"r32float\" /* WebGPUConstants.TextureFormat.R32Float */:\n case \"rg16uint\" /* WebGPUConstants.TextureFormat.RG16Uint */:\n case \"rg16sint\" /* WebGPUConstants.TextureFormat.RG16Sint */:\n case \"rg16float\" /* WebGPUConstants.TextureFormat.RG16Float */:\n case \"rgba8unorm\" /* WebGPUConstants.TextureFormat.RGBA8Unorm */:\n case \"rgba8unorm-srgb\" /* WebGPUConstants.TextureFormat.RGBA8UnormSRGB */:\n case \"rgba8snorm\" /* WebGPUConstants.TextureFormat.RGBA8Snorm */:\n case \"rgba8uint\" /* WebGPUConstants.TextureFormat.RGBA8Uint */:\n case \"rgba8sint\" /* WebGPUConstants.TextureFormat.RGBA8Sint */:\n case \"bgra8unorm\" /* WebGPUConstants.TextureFormat.BGRA8Unorm */:\n case \"bgra8unorm-srgb\" /* WebGPUConstants.TextureFormat.BGRA8UnormSRGB */:\n case \"rgb9e5ufloat\" /* WebGPUConstants.TextureFormat.RGB9E5UFloat */:\n case \"rgb10a2uint\" /* WebGPUConstants.TextureFormat.RGB10A2UINT */:\n case \"rgb10a2unorm\" /* WebGPUConstants.TextureFormat.RGB10A2Unorm */:\n case \"rg11b10ufloat\" /* WebGPUConstants.TextureFormat.RG11B10UFloat */:\n return { width: 1, height: 1, length: 4 };\n // 64 bits formats\n case \"rg32uint\" /* WebGPUConstants.TextureFormat.RG32Uint */:\n case \"rg32sint\" /* WebGPUConstants.TextureFormat.RG32Sint */:\n case \"rg32float\" /* WebGPUConstants.TextureFormat.RG32Float */:\n case \"rgba16uint\" /* WebGPUConstants.TextureFormat.RGBA16Uint */:\n case \"rgba16sint\" /* WebGPUConstants.TextureFormat.RGBA16Sint */:\n case \"rgba16float\" /* WebGPUConstants.TextureFormat.RGBA16Float */:\n return { width: 1, height: 1, length: 8 };\n // 128 bits formats\n case \"rgba32uint\" /* WebGPUConstants.TextureFormat.RGBA32Uint */:\n case \"rgba32sint\" /* WebGPUConstants.TextureFormat.RGBA32Sint */:\n case \"rgba32float\" /* WebGPUConstants.TextureFormat.RGBA32Float */:\n return { width: 1, height: 1, length: 16 };\n // Depth and stencil formats\n case \"stencil8\" /* WebGPUConstants.TextureFormat.Stencil8 */:\n // eslint-disable-next-line no-throw-literal\n throw \"No fixed size for Stencil8 format!\";\n case \"depth16unorm\" /* WebGPUConstants.TextureFormat.Depth16Unorm */:\n return { width: 1, height: 1, length: 2 };\n case \"depth24plus\" /* WebGPUConstants.TextureFormat.Depth24Plus */:\n // eslint-disable-next-line no-throw-literal\n throw \"No fixed size for Depth24Plus format!\";\n case \"depth24plus-stencil8\" /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */:\n // eslint-disable-next-line no-throw-literal\n throw \"No fixed size for Depth24PlusStencil8 format!\";\n case \"depth32float\" /* WebGPUConstants.TextureFormat.Depth32Float */:\n return { width: 1, height: 1, length: 4 };\n case \"depth32float-stencil8\" /* WebGPUConstants.TextureFormat.Depth32FloatStencil8 */:\n return { width: 1, height: 1, length: 5 };\n // BC compressed formats usable if \"texture-compression-bc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n case \"bc7-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC7RGBAUnorm */:\n case \"bc7-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB */:\n case \"bc6h-rgb-ufloat\" /* WebGPUConstants.TextureFormat.BC6HRGBUFloat */:\n case \"bc6h-rgb-float\" /* WebGPUConstants.TextureFormat.BC6HRGBFloat */:\n case \"bc5-rg-unorm\" /* WebGPUConstants.TextureFormat.BC5RGUnorm */:\n case \"bc5-rg-snorm\" /* WebGPUConstants.TextureFormat.BC5RGSnorm */:\n case \"bc3-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC3RGBAUnorm */:\n case \"bc3-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB */:\n case \"bc2-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC2RGBAUnorm */:\n case \"bc2-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB */:\n return { width: 4, height: 4, length: 16 };\n case \"bc4-r-unorm\" /* WebGPUConstants.TextureFormat.BC4RUnorm */:\n case \"bc4-r-snorm\" /* WebGPUConstants.TextureFormat.BC4RSnorm */:\n case \"bc1-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC1RGBAUnorm */:\n case \"bc1-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB */:\n return { width: 4, height: 4, length: 8 };\n // ETC2 compressed formats usable if \"texture-compression-etc2\" is both\n // supported by the device/user agent and enabled in requestDevice.\n case \"etc2-rgb8unorm\" /* WebGPUConstants.TextureFormat.ETC2RGB8Unorm */:\n case \"etc2-rgb8unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB */:\n case \"etc2-rgb8a1unorm\" /* WebGPUConstants.TextureFormat.ETC2RGB8A1Unorm */:\n case \"etc2-rgb8a1unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGB8A1UnormSRGB */:\n case \"eac-r11unorm\" /* WebGPUConstants.TextureFormat.EACR11Unorm */:\n case \"eac-r11snorm\" /* WebGPUConstants.TextureFormat.EACR11Snorm */:\n return { width: 4, height: 4, length: 8 };\n case \"etc2-rgba8unorm\" /* WebGPUConstants.TextureFormat.ETC2RGBA8Unorm */:\n case \"etc2-rgba8unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB */:\n case \"eac-rg11unorm\" /* WebGPUConstants.TextureFormat.EACRG11Unorm */:\n case \"eac-rg11snorm\" /* WebGPUConstants.TextureFormat.EACRG11Snorm */:\n return { width: 4, height: 4, length: 16 };\n // ASTC compressed formats usable if \"texture-compression-astc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n case \"astc-4x4-unorm\" /* WebGPUConstants.TextureFormat.ASTC4x4Unorm */:\n case \"astc-4x4-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB */:\n return { width: 4, height: 4, length: 16 };\n case \"astc-5x4-unorm\" /* WebGPUConstants.TextureFormat.ASTC5x4Unorm */:\n case \"astc-5x4-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC5x4UnormSRGB */:\n return { width: 5, height: 4, length: 16 };\n case \"astc-5x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC5x5Unorm */:\n case \"astc-5x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC5x5UnormSRGB */:\n return { width: 5, height: 5, length: 16 };\n case \"astc-6x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC6x5Unorm */:\n case \"astc-6x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC6x5UnormSRGB */:\n return { width: 6, height: 5, length: 16 };\n case \"astc-6x6-unorm\" /* WebGPUConstants.TextureFormat.ASTC6x6Unorm */:\n case \"astc-6x6-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC6x6UnormSRGB */:\n return { width: 6, height: 6, length: 16 };\n case \"astc-8x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC8x5Unorm */:\n case \"astc-8x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC8x5UnormSRGB */:\n return { width: 8, height: 5, length: 16 };\n case \"astc-8x6-unorm\" /* WebGPUConstants.TextureFormat.ASTC8x6Unorm */:\n case \"astc-8x6-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC8x6UnormSRGB */:\n return { width: 8, height: 6, length: 16 };\n case \"astc-8x8-unorm\" /* WebGPUConstants.TextureFormat.ASTC8x8Unorm */:\n case \"astc-8x8-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC8x8UnormSRGB */:\n return { width: 8, height: 8, length: 16 };\n case \"astc-10x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x5Unorm */:\n case \"astc-10x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x5UnormSRGB */:\n return { width: 10, height: 5, length: 16 };\n case \"astc-10x6-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x6Unorm */:\n case \"astc-10x6-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x6UnormSRGB */:\n return { width: 10, height: 6, length: 16 };\n case \"astc-10x8-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x8Unorm */:\n case \"astc-10x8-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x8UnormSRGB */:\n return { width: 10, height: 8, length: 16 };\n case \"astc-10x10-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x10Unorm */:\n case \"astc-10x10-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x10UnormSRGB */:\n return { width: 10, height: 10, length: 16 };\n case \"astc-12x10-unorm\" /* WebGPUConstants.TextureFormat.ASTC12x10Unorm */:\n case \"astc-12x10-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC12x10UnormSRGB */:\n return { width: 12, height: 10, length: 16 };\n case \"astc-12x12-unorm\" /* WebGPUConstants.TextureFormat.ASTC12x12Unorm */:\n case \"astc-12x12-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB */:\n return { width: 12, height: 12, length: 16 };\n }\n return { width: 1, height: 1, length: 4 };\n }\n static IsHardwareTexture(texture) {\n return !!texture.release;\n }\n static IsInternalTexture(texture) {\n return !!texture.dispose;\n }\n static IsImageBitmap(imageBitmap) {\n return imageBitmap.close !== undefined;\n }\n static IsImageBitmapArray(imageBitmap) {\n return Array.isArray(imageBitmap) && imageBitmap[0].close !== undefined;\n }\n static IsCompressedFormat(format) {\n switch (format) {\n case \"bc7-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB */:\n case \"bc7-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC7RGBAUnorm */:\n case \"bc6h-rgb-float\" /* WebGPUConstants.TextureFormat.BC6HRGBFloat */:\n case \"bc6h-rgb-ufloat\" /* WebGPUConstants.TextureFormat.BC6HRGBUFloat */:\n case \"bc5-rg-snorm\" /* WebGPUConstants.TextureFormat.BC5RGSnorm */:\n case \"bc5-rg-unorm\" /* WebGPUConstants.TextureFormat.BC5RGUnorm */:\n case \"bc4-r-snorm\" /* WebGPUConstants.TextureFormat.BC4RSnorm */:\n case \"bc4-r-unorm\" /* WebGPUConstants.TextureFormat.BC4RUnorm */:\n case \"bc3-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB */:\n case \"bc3-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC3RGBAUnorm */:\n case \"bc2-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB */:\n case \"bc2-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC2RGBAUnorm */:\n case \"bc1-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB */:\n case \"bc1-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC1RGBAUnorm */:\n case \"etc2-rgb8unorm\" /* WebGPUConstants.TextureFormat.ETC2RGB8Unorm */:\n case \"etc2-rgb8unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB */:\n case \"etc2-rgb8a1unorm\" /* WebGPUConstants.TextureFormat.ETC2RGB8A1Unorm */:\n case \"etc2-rgb8a1unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGB8A1UnormSRGB */:\n case \"etc2-rgba8unorm\" /* WebGPUConstants.TextureFormat.ETC2RGBA8Unorm */:\n case \"etc2-rgba8unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB */:\n case \"eac-r11unorm\" /* WebGPUConstants.TextureFormat.EACR11Unorm */:\n case \"eac-r11snorm\" /* WebGPUConstants.TextureFormat.EACR11Snorm */:\n case \"eac-rg11unorm\" /* WebGPUConstants.TextureFormat.EACRG11Unorm */:\n case \"eac-rg11snorm\" /* WebGPUConstants.TextureFormat.EACRG11Snorm */:\n case \"astc-4x4-unorm\" /* WebGPUConstants.TextureFormat.ASTC4x4Unorm */:\n case \"astc-4x4-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB */:\n case \"astc-5x4-unorm\" /* WebGPUConstants.TextureFormat.ASTC5x4Unorm */:\n case \"astc-5x4-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC5x4UnormSRGB */:\n case \"astc-5x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC5x5Unorm */:\n case \"astc-5x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC5x5UnormSRGB */:\n case \"astc-6x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC6x5Unorm */:\n case \"astc-6x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC6x5UnormSRGB */:\n case \"astc-6x6-unorm\" /* WebGPUConstants.TextureFormat.ASTC6x6Unorm */:\n case \"astc-6x6-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC6x6UnormSRGB */:\n case \"astc-8x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC8x5Unorm */:\n case \"astc-8x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC8x5UnormSRGB */:\n case \"astc-8x6-unorm\" /* WebGPUConstants.TextureFormat.ASTC8x6Unorm */:\n case \"astc-8x6-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC8x6UnormSRGB */:\n case \"astc-8x8-unorm\" /* WebGPUConstants.TextureFormat.ASTC8x8Unorm */:\n case \"astc-8x8-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC8x8UnormSRGB */:\n case \"astc-10x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x5Unorm */:\n case \"astc-10x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x5UnormSRGB */:\n case \"astc-10x6-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x6Unorm */:\n case \"astc-10x6-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x6UnormSRGB */:\n case \"astc-10x8-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x8Unorm */:\n case \"astc-10x8-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x8UnormSRGB */:\n case \"astc-10x10-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x10Unorm */:\n case \"astc-10x10-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x10UnormSRGB */:\n case \"astc-12x10-unorm\" /* WebGPUConstants.TextureFormat.ASTC12x10Unorm */:\n case \"astc-12x10-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC12x10UnormSRGB */:\n case \"astc-12x12-unorm\" /* WebGPUConstants.TextureFormat.ASTC12x12Unorm */:\n case \"astc-12x12-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB */:\n return true;\n }\n return false;\n }\n static GetWebGPUTextureFormat(type, format, useSRGBBuffer = false) {\n switch (format) {\n case 15:\n return \"depth16unorm\" /* WebGPUConstants.TextureFormat.Depth16Unorm */;\n case 16:\n return \"depth24plus\" /* WebGPUConstants.TextureFormat.Depth24Plus */;\n case 13:\n return \"depth24plus-stencil8\" /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */;\n case 14:\n return \"depth32float\" /* WebGPUConstants.TextureFormat.Depth32Float */;\n case 18:\n return \"depth32float-stencil8\" /* WebGPUConstants.TextureFormat.Depth32FloatStencil8 */;\n case 19:\n return \"stencil8\" /* WebGPUConstants.TextureFormat.Stencil8 */;\n case 36492:\n return useSRGBBuffer ? \"bc7-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB */ : \"bc7-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC7RGBAUnorm */;\n case 36495:\n return \"bc6h-rgb-ufloat\" /* WebGPUConstants.TextureFormat.BC6HRGBUFloat */;\n case 36494:\n return \"bc6h-rgb-float\" /* WebGPUConstants.TextureFormat.BC6HRGBFloat */;\n case 33779:\n return useSRGBBuffer ? \"bc3-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB */ : \"bc3-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC3RGBAUnorm */;\n case 33778:\n return useSRGBBuffer ? \"bc2-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB */ : \"bc2-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC2RGBAUnorm */;\n case 33777:\n case 33776:\n return useSRGBBuffer ? \"bc1-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB */ : \"bc1-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC1RGBAUnorm */;\n case 37808:\n return useSRGBBuffer ? \"astc-4x4-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB */ : \"astc-4x4-unorm\" /* WebGPUConstants.TextureFormat.ASTC4x4Unorm */;\n case 36196:\n case 37492:\n return useSRGBBuffer ? \"etc2-rgb8unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB */ : \"etc2-rgb8unorm\" /* WebGPUConstants.TextureFormat.ETC2RGB8Unorm */;\n case 37496:\n return useSRGBBuffer ? \"etc2-rgba8unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB */ : \"etc2-rgba8unorm\" /* WebGPUConstants.TextureFormat.ETC2RGBA8Unorm */;\n }\n switch (type) {\n case 3:\n switch (format) {\n case 6:\n return \"r8snorm\" /* WebGPUConstants.TextureFormat.R8Snorm */;\n case 7:\n return \"rg8snorm\" /* WebGPUConstants.TextureFormat.RG8Snorm */;\n case 4:\n // eslint-disable-next-line no-throw-literal\n throw \"RGB format not supported in WebGPU\";\n case 8:\n return \"r8sint\" /* WebGPUConstants.TextureFormat.R8Sint */;\n case 9:\n return \"rg8sint\" /* WebGPUConstants.TextureFormat.RG8Sint */;\n case 10:\n // eslint-disable-next-line no-throw-literal\n throw \"RGB_INTEGER format not supported in WebGPU\";\n case 11:\n return \"rgba8sint\" /* WebGPUConstants.TextureFormat.RGBA8Sint */;\n default:\n return \"rgba8snorm\" /* WebGPUConstants.TextureFormat.RGBA8Snorm */;\n }\n case 0:\n switch (format) {\n case 6:\n return \"r8unorm\" /* WebGPUConstants.TextureFormat.R8Unorm */;\n case 7:\n return \"rg8unorm\" /* WebGPUConstants.TextureFormat.RG8Unorm */;\n case 4:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTUREFORMAT_RGB format not supported in WebGPU\";\n case 5:\n return useSRGBBuffer ? \"rgba8unorm-srgb\" /* WebGPUConstants.TextureFormat.RGBA8UnormSRGB */ : \"rgba8unorm\" /* WebGPUConstants.TextureFormat.RGBA8Unorm */;\n case 12:\n return useSRGBBuffer ? \"bgra8unorm-srgb\" /* WebGPUConstants.TextureFormat.BGRA8UnormSRGB */ : \"bgra8unorm\" /* WebGPUConstants.TextureFormat.BGRA8Unorm */;\n case 8:\n return \"r8uint\" /* WebGPUConstants.TextureFormat.R8Uint */;\n case 9:\n return \"rg8uint\" /* WebGPUConstants.TextureFormat.RG8Uint */;\n case 10:\n // eslint-disable-next-line no-throw-literal\n throw \"RGB_INTEGER format not supported in WebGPU\";\n case 11:\n return \"rgba8uint\" /* WebGPUConstants.TextureFormat.RGBA8Uint */;\n case 0:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTUREFORMAT_ALPHA format not supported in WebGPU\";\n case 1:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTUREFORMAT_LUMINANCE format not supported in WebGPU\";\n case 2:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTUREFORMAT_LUMINANCE_ALPHA format not supported in WebGPU\";\n default:\n return \"rgba8unorm\" /* WebGPUConstants.TextureFormat.RGBA8Unorm */;\n }\n case 4:\n switch (format) {\n case 8:\n return \"r16sint\" /* WebGPUConstants.TextureFormat.R16Sint */;\n case 9:\n return \"rg16sint\" /* WebGPUConstants.TextureFormat.RG16Sint */;\n case 10:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\n case 11:\n return \"rgba16sint\" /* WebGPUConstants.TextureFormat.RGBA16Sint */;\n default:\n return \"rgba16sint\" /* WebGPUConstants.TextureFormat.RGBA16Sint */;\n }\n case 5:\n switch (format) {\n case 8:\n return \"r16uint\" /* WebGPUConstants.TextureFormat.R16Uint */;\n case 9:\n return \"rg16uint\" /* WebGPUConstants.TextureFormat.RG16Uint */;\n case 10:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\n case 11:\n return \"rgba16uint\" /* WebGPUConstants.TextureFormat.RGBA16Uint */;\n default:\n return \"rgba16uint\" /* WebGPUConstants.TextureFormat.RGBA16Uint */;\n }\n case 6:\n switch (format) {\n case 8:\n return \"r32sint\" /* WebGPUConstants.TextureFormat.R32Sint */;\n case 9:\n return \"rg32sint\" /* WebGPUConstants.TextureFormat.RG32Sint */;\n case 10:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\n case 11:\n return \"rgba32sint\" /* WebGPUConstants.TextureFormat.RGBA32Sint */;\n default:\n return \"rgba32sint\" /* WebGPUConstants.TextureFormat.RGBA32Sint */;\n }\n case 7: // Refers to UNSIGNED_INT\n switch (format) {\n case 8:\n return \"r32uint\" /* WebGPUConstants.TextureFormat.R32Uint */;\n case 9:\n return \"rg32uint\" /* WebGPUConstants.TextureFormat.RG32Uint */;\n case 10:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU\";\n case 11:\n return \"rgba32uint\" /* WebGPUConstants.TextureFormat.RGBA32Uint */;\n default:\n return \"rgba32uint\" /* WebGPUConstants.TextureFormat.RGBA32Uint */;\n }\n case 1:\n switch (format) {\n case 6:\n return \"r32float\" /* WebGPUConstants.TextureFormat.R32Float */; // By default. Other possibility is R16Float.\n case 7:\n return \"rg32float\" /* WebGPUConstants.TextureFormat.RG32Float */; // By default. Other possibility is RG16Float.\n case 4:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTUREFORMAT_RGB format not supported in WebGPU\";\n case 5:\n return \"rgba32float\" /* WebGPUConstants.TextureFormat.RGBA32Float */; // By default. Other possibility is RGBA16Float.\n default:\n return \"rgba32float\" /* WebGPUConstants.TextureFormat.RGBA32Float */;\n }\n case 2:\n switch (format) {\n case 6:\n return \"r16float\" /* WebGPUConstants.TextureFormat.R16Float */;\n case 7:\n return \"rg16float\" /* WebGPUConstants.TextureFormat.RG16Float */;\n case 4:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTUREFORMAT_RGB format not supported in WebGPU\";\n case 5:\n return \"rgba16float\" /* WebGPUConstants.TextureFormat.RGBA16Float */;\n default:\n return \"rgba16float\" /* WebGPUConstants.TextureFormat.RGBA16Float */;\n }\n case 10:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTURETYPE_UNSIGNED_SHORT_5_6_5 format not supported in WebGPU\";\n case 13:\n switch (format) {\n case 5:\n return \"rg11b10ufloat\" /* WebGPUConstants.TextureFormat.RG11B10UFloat */;\n case 11:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV\";\n default:\n return \"rg11b10ufloat\" /* WebGPUConstants.TextureFormat.RG11B10UFloat */;\n }\n case 14:\n switch (format) {\n case 5:\n return \"rgb9e5ufloat\" /* WebGPUConstants.TextureFormat.RGB9E5UFloat */;\n case 11:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV\";\n default:\n return \"rgb9e5ufloat\" /* WebGPUConstants.TextureFormat.RGB9E5UFloat */;\n }\n case 8:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 format not supported in WebGPU\";\n case 9:\n // eslint-disable-next-line no-throw-literal\n throw \"TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 format not supported in WebGPU\";\n case 11:\n switch (format) {\n case 5:\n return \"rgb10a2unorm\" /* WebGPUConstants.TextureFormat.RGB10A2Unorm */;\n case 11:\n return \"rgb10a2uint\" /* WebGPUConstants.TextureFormat.RGB10A2UINT */;\n default:\n return \"rgb10a2unorm\" /* WebGPUConstants.TextureFormat.RGB10A2Unorm */;\n }\n }\n return useSRGBBuffer ? \"rgba8unorm-srgb\" /* WebGPUConstants.TextureFormat.RGBA8UnormSRGB */ : \"rgba8unorm\" /* WebGPUConstants.TextureFormat.RGBA8Unorm */;\n }\n static GetNumChannelsFromWebGPUTextureFormat(format) {\n switch (format) {\n case \"r8unorm\" /* WebGPUConstants.TextureFormat.R8Unorm */:\n case \"r8snorm\" /* WebGPUConstants.TextureFormat.R8Snorm */:\n case \"r8uint\" /* WebGPUConstants.TextureFormat.R8Uint */:\n case \"r8sint\" /* WebGPUConstants.TextureFormat.R8Sint */:\n case \"bc4-r-unorm\" /* WebGPUConstants.TextureFormat.BC4RUnorm */:\n case \"bc4-r-snorm\" /* WebGPUConstants.TextureFormat.BC4RSnorm */:\n case \"r16uint\" /* WebGPUConstants.TextureFormat.R16Uint */:\n case \"r16sint\" /* WebGPUConstants.TextureFormat.R16Sint */:\n case \"depth16unorm\" /* WebGPUConstants.TextureFormat.Depth16Unorm */:\n case \"r16float\" /* WebGPUConstants.TextureFormat.R16Float */:\n case \"r32uint\" /* WebGPUConstants.TextureFormat.R32Uint */:\n case \"r32sint\" /* WebGPUConstants.TextureFormat.R32Sint */:\n case \"r32float\" /* WebGPUConstants.TextureFormat.R32Float */:\n case \"depth32float\" /* WebGPUConstants.TextureFormat.Depth32Float */:\n case \"stencil8\" /* WebGPUConstants.TextureFormat.Stencil8 */:\n case \"depth24plus\" /* WebGPUConstants.TextureFormat.Depth24Plus */:\n case \"eac-r11unorm\" /* WebGPUConstants.TextureFormat.EACR11Unorm */:\n case \"eac-r11snorm\" /* WebGPUConstants.TextureFormat.EACR11Snorm */:\n return 1;\n case \"rg8unorm\" /* WebGPUConstants.TextureFormat.RG8Unorm */:\n case \"rg8snorm\" /* WebGPUConstants.TextureFormat.RG8Snorm */:\n case \"rg8uint\" /* WebGPUConstants.TextureFormat.RG8Uint */:\n case \"rg8sint\" /* WebGPUConstants.TextureFormat.RG8Sint */:\n case \"depth32float-stencil8\" /* WebGPUConstants.TextureFormat.Depth32FloatStencil8 */:\n case \"bc5-rg-unorm\" /* WebGPUConstants.TextureFormat.BC5RGUnorm */:\n case \"bc5-rg-snorm\" /* WebGPUConstants.TextureFormat.BC5RGSnorm */:\n case \"rg16uint\" /* WebGPUConstants.TextureFormat.RG16Uint */:\n case \"rg16sint\" /* WebGPUConstants.TextureFormat.RG16Sint */:\n case \"rg16float\" /* WebGPUConstants.TextureFormat.RG16Float */:\n case \"rg32uint\" /* WebGPUConstants.TextureFormat.RG32Uint */:\n case \"rg32sint\" /* WebGPUConstants.TextureFormat.RG32Sint */:\n case \"rg32float\" /* WebGPUConstants.TextureFormat.RG32Float */:\n case \"depth24plus-stencil8\" /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */:\n case \"eac-rg11unorm\" /* WebGPUConstants.TextureFormat.EACRG11Unorm */:\n case \"eac-rg11snorm\" /* WebGPUConstants.TextureFormat.EACRG11Snorm */:\n return 2;\n case \"rgb9e5ufloat\" /* WebGPUConstants.TextureFormat.RGB9E5UFloat */:\n case \"rg11b10ufloat\" /* WebGPUConstants.TextureFormat.RG11B10UFloat */:\n case \"bc6h-rgb-ufloat\" /* WebGPUConstants.TextureFormat.BC6HRGBUFloat */:\n case \"bc6h-rgb-float\" /* WebGPUConstants.TextureFormat.BC6HRGBFloat */:\n case \"etc2-rgb8unorm\" /* WebGPUConstants.TextureFormat.ETC2RGB8Unorm */:\n case \"etc2-rgb8unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGB8UnormSRGB */:\n return 3;\n case \"rgba8unorm\" /* WebGPUConstants.TextureFormat.RGBA8Unorm */:\n case \"rgba8unorm-srgb\" /* WebGPUConstants.TextureFormat.RGBA8UnormSRGB */:\n case \"rgba8snorm\" /* WebGPUConstants.TextureFormat.RGBA8Snorm */:\n case \"rgba8uint\" /* WebGPUConstants.TextureFormat.RGBA8Uint */:\n case \"rgba8sint\" /* WebGPUConstants.TextureFormat.RGBA8Sint */:\n case \"bgra8unorm\" /* WebGPUConstants.TextureFormat.BGRA8Unorm */:\n case \"bgra8unorm-srgb\" /* WebGPUConstants.TextureFormat.BGRA8UnormSRGB */:\n case \"rgb10a2uint\" /* WebGPUConstants.TextureFormat.RGB10A2UINT */:\n case \"rgb10a2unorm\" /* WebGPUConstants.TextureFormat.RGB10A2Unorm */:\n case \"bc7-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC7RGBAUnorm */:\n case \"bc7-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC7RGBAUnormSRGB */:\n case \"bc3-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC3RGBAUnorm */:\n case \"bc3-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC3RGBAUnormSRGB */:\n case \"bc2-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC2RGBAUnorm */:\n case \"bc2-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC2RGBAUnormSRGB */:\n case \"bc1-rgba-unorm\" /* WebGPUConstants.TextureFormat.BC1RGBAUnorm */:\n case \"bc1-rgba-unorm-srgb\" /* WebGPUConstants.TextureFormat.BC1RGBAUnormSRGB */:\n case \"rgba16uint\" /* WebGPUConstants.TextureFormat.RGBA16Uint */:\n case \"rgba16sint\" /* WebGPUConstants.TextureFormat.RGBA16Sint */:\n case \"rgba16float\" /* WebGPUConstants.TextureFormat.RGBA16Float */:\n case \"rgba32uint\" /* WebGPUConstants.TextureFormat.RGBA32Uint */:\n case \"rgba32sint\" /* WebGPUConstants.TextureFormat.RGBA32Sint */:\n case \"rgba32float\" /* WebGPUConstants.TextureFormat.RGBA32Float */:\n case \"etc2-rgb8a1unorm\" /* WebGPUConstants.TextureFormat.ETC2RGB8A1Unorm */:\n case \"etc2-rgb8a1unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGB8A1UnormSRGB */:\n case \"etc2-rgba8unorm\" /* WebGPUConstants.TextureFormat.ETC2RGBA8Unorm */:\n case \"etc2-rgba8unorm-srgb\" /* WebGPUConstants.TextureFormat.ETC2RGBA8UnormSRGB */:\n case \"astc-4x4-unorm\" /* WebGPUConstants.TextureFormat.ASTC4x4Unorm */:\n case \"astc-4x4-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC4x4UnormSRGB */:\n case \"astc-5x4-unorm\" /* WebGPUConstants.TextureFormat.ASTC5x4Unorm */:\n case \"astc-5x4-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC5x4UnormSRGB */:\n case \"astc-5x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC5x5Unorm */:\n case \"astc-5x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC5x5UnormSRGB */:\n case \"astc-6x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC6x5Unorm */:\n case \"astc-6x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC6x5UnormSRGB */:\n case \"astc-6x6-unorm\" /* WebGPUConstants.TextureFormat.ASTC6x6Unorm */:\n case \"astc-6x6-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC6x6UnormSRGB */:\n case \"astc-8x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC8x5Unorm */:\n case \"astc-8x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC8x5UnormSRGB */:\n case \"astc-8x6-unorm\" /* WebGPUConstants.TextureFormat.ASTC8x6Unorm */:\n case \"astc-8x6-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC8x6UnormSRGB */:\n case \"astc-8x8-unorm\" /* WebGPUConstants.TextureFormat.ASTC8x8Unorm */:\n case \"astc-8x8-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC8x8UnormSRGB */:\n case \"astc-10x5-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x5Unorm */:\n case \"astc-10x5-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x5UnormSRGB */:\n case \"astc-10x6-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x6Unorm */:\n case \"astc-10x6-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x6UnormSRGB */:\n case \"astc-10x8-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x8Unorm */:\n case \"astc-10x8-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x8UnormSRGB */:\n case \"astc-10x10-unorm\" /* WebGPUConstants.TextureFormat.ASTC10x10Unorm */:\n case \"astc-10x10-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC10x10UnormSRGB */:\n case \"astc-12x10-unorm\" /* WebGPUConstants.TextureFormat.ASTC12x10Unorm */:\n case \"astc-12x10-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC12x10UnormSRGB */:\n case \"astc-12x12-unorm\" /* WebGPUConstants.TextureFormat.ASTC12x12Unorm */:\n case \"astc-12x12-unorm-srgb\" /* WebGPUConstants.TextureFormat.ASTC12x12UnormSRGB */:\n return 4;\n }\n // eslint-disable-next-line no-throw-literal\n throw `Unknown format ${format}!`;\n }\n static HasStencilAspect(format) {\n switch (format) {\n case \"stencil8\" /* WebGPUConstants.TextureFormat.Stencil8 */:\n case \"depth32float-stencil8\" /* WebGPUConstants.TextureFormat.Depth32FloatStencil8 */:\n case \"depth24plus-stencil8\" /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */:\n return true;\n }\n return false;\n }\n static HasDepthAndStencilAspects(format) {\n switch (format) {\n case \"depth32float-stencil8\" /* WebGPUConstants.TextureFormat.Depth32FloatStencil8 */:\n case \"depth24plus-stencil8\" /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */:\n return true;\n }\n return false;\n }\n static GetDepthFormatOnly(format) {\n switch (format) {\n case \"depth16unorm\" /* WebGPUConstants.TextureFormat.Depth16Unorm */:\n return \"depth16unorm\" /* WebGPUConstants.TextureFormat.Depth16Unorm */;\n case \"depth24plus\" /* WebGPUConstants.TextureFormat.Depth24Plus */:\n return \"depth24plus\" /* WebGPUConstants.TextureFormat.Depth24Plus */;\n case \"depth24plus-stencil8\" /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */:\n return \"depth24plus\" /* WebGPUConstants.TextureFormat.Depth24Plus */;\n case \"depth32float\" /* WebGPUConstants.TextureFormat.Depth32Float */:\n return \"depth32float\" /* WebGPUConstants.TextureFormat.Depth32Float */;\n case \"depth32float-stencil8\" /* WebGPUConstants.TextureFormat.Depth32FloatStencil8 */:\n return \"depth32float\" /* WebGPUConstants.TextureFormat.Depth32Float */;\n }\n return format;\n }\n static GetSample(sampleCount) {\n // WebGPU only supports 1 or 4\n return sampleCount > 1 ? 4 : 1;\n }\n}\n","import { AbstractEngine } from \"./abstractEngine.js\";\nimport { Logger } from \"../Misc/logger.js\";\nimport { WebGPUTextureHelper } from \"./WebGPU/webgpuTextureHelper.js\";\nimport { WebGPUPerfCounter } from \"./WebGPU/webgpuPerfCounter.js\";\n\n/**\n * The base engine class for WebGPU\n */\nexport class ThinWebGPUEngine extends AbstractEngine {\n constructor() {\n super(...arguments);\n // TODO WEBGPU remove those variables when code stabilized\n /** @internal */\n this.dbgShowShaderCode = false;\n /** @internal */\n this.dbgSanityChecks = true;\n /** @internal */\n this.dbgVerboseLogsNumFrames = 10;\n /** @internal */\n this.dbgLogIfNotDrawWrapper = true;\n /** @internal */\n this.dbgShowEmptyEnableEffectCalls = true;\n /** @internal */\n this.dbgVerboseLogsForFirstFrames = false;\n /** @internal */\n this._currentRenderPass = null;\n this._snapshotRenderingMode = 0;\n /** @internal */\n this._timestampIndex = 0;\n }\n /**\n * Enables or disables GPU timing measurements.\n * Note that this is only supported if the \"timestamp-query\" extension is enabled in the options.\n */\n get enableGPUTimingMeasurements() {\n return this._timestampQuery.enable;\n }\n set enableGPUTimingMeasurements(enable) {\n if (this._timestampQuery.enable === enable) {\n return;\n }\n this.gpuTimeInFrameForMainPass = enable ? new WebGPUPerfCounter() : undefined;\n this._timestampQuery.enable = enable;\n }\n _currentPassIsMainPass() {\n return this._currentRenderTarget === null;\n }\n /** @internal */\n _endCurrentRenderPass() {\n if (!this._currentRenderPass) {\n return 0;\n }\n const currentPassIndex = this._currentPassIsMainPass() ? 2 : 1;\n if (!this._snapshotRendering.endRenderPass(this._currentRenderPass) && !this.compatibilityMode) {\n this._bundleList.run(this._currentRenderPass);\n this._bundleList.reset();\n }\n this._currentRenderPass.end();\n this._timestampQuery.endPass(this._timestampIndex, (this._currentRenderTarget && this._currentRenderTarget.gpuTimeInFrame\n ? this._currentRenderTarget.gpuTimeInFrame\n : this.gpuTimeInFrameForMainPass));\n this._timestampIndex += 2;\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {\n Logger.Log(\"frame #\" +\n this._count +\n \" - \" +\n (currentPassIndex === 2 ? \"main\" : \"render target\") +\n \" end pass\" +\n (currentPassIndex === 1 ? \" - internalTexture.uniqueId=\" + this._currentRenderTarget?.texture?.uniqueId : \"\"));\n }\n }\n this._debugPopGroup?.(0);\n this._currentRenderPass = null;\n return currentPassIndex;\n }\n /**\n * @internal\n */\n _generateMipmaps(texture, commandEncoder) {\n commandEncoder = commandEncoder ?? this._renderEncoder;\n const gpuHardwareTexture = texture._hardwareTexture;\n if (!gpuHardwareTexture) {\n return;\n }\n if (commandEncoder === this._renderEncoder) {\n // We must close the current pass (if any) because we are going to use the render encoder to generate the mipmaps (so, we are going to create a new render pass)\n this._endCurrentRenderPass();\n }\n const format = texture._hardwareTexture.format;\n const mipmapCount = WebGPUTextureHelper.ComputeNumMipmapLevels(texture.width, texture.height);\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {\n Logger.Log(\"frame #\" +\n this._count +\n \" - generate mipmaps - width=\" +\n texture.width +\n \", height=\" +\n texture.height +\n \", isCube=\" +\n texture.isCube +\n \", command encoder=\" +\n (commandEncoder === this._renderEncoder ? \"render\" : \"copy\"));\n }\n }\n if (texture.isCube) {\n this._textureHelper.generateCubeMipmaps(gpuHardwareTexture, format, mipmapCount, commandEncoder);\n }\n else {\n this._textureHelper.generateMipmaps(gpuHardwareTexture, format, mipmapCount, 0, texture.is3D, commandEncoder);\n }\n }\n}\n","import { AbstractEngine } from \"../../abstractEngine.js\";\n\nimport \"../../AbstractEngine/abstractEngine.alpha.js\";\nimport { ThinWebGPUEngine } from \"../../thinWebGPUEngine.js\";\nThinWebGPUEngine.prototype.setAlphaMode = function (mode, noDepthWriteChange = false) {\n if (this._alphaMode === mode && ((mode === 0 && !this._alphaState.alphaBlend) || (mode !== 0 && this._alphaState.alphaBlend))) {\n if (!noDepthWriteChange) {\n // Make sure we still have the correct depth mask according to the alpha mode (a transparent material could have forced writting to the depth buffer, for instance)\n const depthMask = mode === 0;\n if (this.depthCullingState.depthMask !== depthMask) {\n this.setDepthWrite(depthMask);\n this._cacheRenderPipeline.setDepthWriteEnabled(depthMask);\n }\n }\n return;\n }\n switch (mode) {\n case 0:\n this._alphaState.alphaBlend = false;\n break;\n case 7:\n this._alphaState.setAlphaBlendFunctionParameters(1, 771, 1, 1);\n this._alphaState.alphaBlend = true;\n break;\n case 8:\n this._alphaState.setAlphaBlendFunctionParameters(1, 771, 1, 771);\n this._alphaState.alphaBlend = true;\n break;\n case 2:\n this._alphaState.setAlphaBlendFunctionParameters(770, 771, 1, 1);\n this._alphaState.alphaBlend = true;\n break;\n case 6:\n this._alphaState.setAlphaBlendFunctionParameters(1, 1, 0, 1);\n this._alphaState.alphaBlend = true;\n break;\n case 1:\n this._alphaState.setAlphaBlendFunctionParameters(770, 1, 0, 1);\n this._alphaState.alphaBlend = true;\n break;\n case 3:\n this._alphaState.setAlphaBlendFunctionParameters(0, 769, 1, 1);\n this._alphaState.alphaBlend = true;\n break;\n case 4:\n this._alphaState.setAlphaBlendFunctionParameters(774, 0, 1, 1);\n this._alphaState.alphaBlend = true;\n break;\n case 5:\n this._alphaState.setAlphaBlendFunctionParameters(770, 769, 1, 1);\n this._alphaState.alphaBlend = true;\n break;\n case 9:\n this._alphaState.setAlphaBlendFunctionParameters(32769, 32770, 32771, 32772);\n this._alphaState.alphaBlend = true;\n break;\n case 10:\n this._alphaState.setAlphaBlendFunctionParameters(1, 769, 1, 771);\n this._alphaState.alphaBlend = true;\n break;\n case 11:\n this._alphaState.setAlphaBlendFunctionParameters(1, 1, 1, 1);\n this._alphaState.alphaBlend = true;\n break;\n case 12:\n this._alphaState.setAlphaBlendFunctionParameters(772, 1, 0, 0);\n this._alphaState.alphaBlend = true;\n break;\n case 13:\n this._alphaState.setAlphaBlendFunctionParameters(775, 769, 773, 771);\n this._alphaState.alphaBlend = true;\n break;\n case 14:\n this._alphaState.setAlphaBlendFunctionParameters(1, 771, 1, 771);\n this._alphaState.alphaBlend = true;\n break;\n case 15:\n this._alphaState.setAlphaBlendFunctionParameters(1, 1, 1, 0);\n this._alphaState.alphaBlend = true;\n break;\n case 16:\n this._alphaState.setAlphaBlendFunctionParameters(775, 769, 0, 1);\n this._alphaState.alphaBlend = true;\n break;\n case 17:\n // Same as ALPHA_COMBINE but accumulates (1 - alpha) values in the alpha channel for a later readout in order independant transparency\n this._alphaState.setAlphaBlendFunctionParameters(770, 771, 1, 771);\n this._alphaState.alphaBlend = true;\n break;\n }\n if (!noDepthWriteChange) {\n this.setDepthWrite(mode === 0);\n this._cacheRenderPipeline.setDepthWriteEnabled(mode === 0);\n }\n this._alphaMode = mode;\n this._cacheRenderPipeline.setAlphaBlendEnabled(this._alphaState.alphaBlend);\n this._cacheRenderPipeline.setAlphaBlendFactors(this._alphaState._blendFunctionParameters, this._alphaState._blendEquationParameters);\n};\nThinWebGPUEngine.prototype.setAlphaEquation = function (equation) {\n AbstractEngine.prototype.setAlphaEquation.call(this, equation);\n this._cacheRenderPipeline.setAlphaBlendFactors(this._alphaState._blendFunctionParameters, this._alphaState._blendEquationParameters);\n};\n","/** @internal */\n// eslint-disable-next-line import/export\nexport var PowerPreference;\n(function (PowerPreference) {\n PowerPreference[\"LowPower\"] = \"low-power\";\n PowerPreference[\"HighPerformance\"] = \"high-performance\";\n})(PowerPreference || (PowerPreference = {}));\n/** @internal */\nexport var FeatureName;\n(function (FeatureName) {\n FeatureName[\"DepthClipControl\"] = \"depth-clip-control\";\n FeatureName[\"Depth32FloatStencil8\"] = \"depth32float-stencil8\";\n FeatureName[\"TextureCompressionBC\"] = \"texture-compression-bc\";\n FeatureName[\"TextureCompressionBCSliced3D\"] = \"texture-compression-bc-sliced-3d\";\n FeatureName[\"TextureCompressionETC2\"] = \"texture-compression-etc2\";\n FeatureName[\"TextureCompressionASTC\"] = \"texture-compression-astc\";\n FeatureName[\"TextureCompressionASTCSliced3D\"] = \"texture-compression-astc-sliced-3d\";\n FeatureName[\"TimestampQuery\"] = \"timestamp-query\";\n FeatureName[\"IndirectFirstInstance\"] = \"indirect-first-instance\";\n FeatureName[\"ShaderF16\"] = \"shader-f16\";\n FeatureName[\"RG11B10UFloatRenderable\"] = \"rg11b10ufloat-renderable\";\n FeatureName[\"BGRA8UnormStorage\"] = \"bgra8unorm-storage\";\n FeatureName[\"Float32Filterable\"] = \"float32-filterable\";\n FeatureName[\"Float32Blendable\"] = \"float32-blendable\";\n FeatureName[\"ClipDistances\"] = \"clip-distances\";\n FeatureName[\"DualSourceBlending\"] = \"dual-source-blending\";\n})(FeatureName || (FeatureName = {}));\n/** @internal */\nexport var BufferMapState;\n(function (BufferMapState) {\n BufferMapState[\"Unmapped\"] = \"unmapped\";\n BufferMapState[\"Pending\"] = \"pending\";\n BufferMapState[\"Mapped\"] = \"mapped\";\n})(BufferMapState || (BufferMapState = {}));\n/** @internal */\nexport var BufferUsage;\n(function (BufferUsage) {\n BufferUsage[BufferUsage[\"MapRead\"] = 1] = \"MapRead\";\n BufferUsage[BufferUsage[\"MapWrite\"] = 2] = \"MapWrite\";\n BufferUsage[BufferUsage[\"CopySrc\"] = 4] = \"CopySrc\";\n BufferUsage[BufferUsage[\"CopyDst\"] = 8] = \"CopyDst\";\n BufferUsage[BufferUsage[\"Index\"] = 16] = \"Index\";\n BufferUsage[BufferUsage[\"Vertex\"] = 32] = \"Vertex\";\n BufferUsage[BufferUsage[\"Uniform\"] = 64] = \"Uniform\";\n BufferUsage[BufferUsage[\"Storage\"] = 128] = \"Storage\";\n BufferUsage[BufferUsage[\"Indirect\"] = 256] = \"Indirect\";\n BufferUsage[BufferUsage[\"QueryResolve\"] = 512] = \"QueryResolve\";\n})(BufferUsage || (BufferUsage = {}));\n/** @internal */\nexport var MapMode;\n(function (MapMode) {\n MapMode[MapMode[\"Read\"] = 1] = \"Read\";\n MapMode[MapMode[\"Write\"] = 2] = \"Write\";\n})(MapMode || (MapMode = {}));\n/** @internal */\nexport var TextureDimension;\n(function (TextureDimension) {\n TextureDimension[\"E1d\"] = \"1d\";\n TextureDimension[\"E2d\"] = \"2d\";\n TextureDimension[\"E3d\"] = \"3d\";\n})(TextureDimension || (TextureDimension = {}));\n/** @internal */\nexport var TextureUsage;\n(function (TextureUsage) {\n TextureUsage[TextureUsage[\"CopySrc\"] = 1] = \"CopySrc\";\n TextureUsage[TextureUsage[\"CopyDst\"] = 2] = \"CopyDst\";\n TextureUsage[TextureUsage[\"TextureBinding\"] = 4] = \"TextureBinding\";\n TextureUsage[TextureUsage[\"StorageBinding\"] = 8] = \"StorageBinding\";\n TextureUsage[TextureUsage[\"RenderAttachment\"] = 16] = \"RenderAttachment\";\n})(TextureUsage || (TextureUsage = {}));\n/** @internal */\nexport var TextureViewDimension;\n(function (TextureViewDimension) {\n TextureViewDimension[\"E1d\"] = \"1d\";\n TextureViewDimension[\"E2d\"] = \"2d\";\n TextureViewDimension[\"E2dArray\"] = \"2d-array\";\n TextureViewDimension[\"Cube\"] = \"cube\";\n TextureViewDimension[\"CubeArray\"] = \"cube-array\";\n TextureViewDimension[\"E3d\"] = \"3d\";\n})(TextureViewDimension || (TextureViewDimension = {}));\n/** @internal */\nexport var TextureAspect;\n(function (TextureAspect) {\n TextureAspect[\"All\"] = \"all\";\n TextureAspect[\"StencilOnly\"] = \"stencil-only\";\n TextureAspect[\"DepthOnly\"] = \"depth-only\";\n})(TextureAspect || (TextureAspect = {}));\n/**\n * Comments taken from https://github.com/gfx-rs/wgpu/blob/master/wgpu-types/src/lib.rs\n * @internal\n */\nexport var TextureFormat;\n(function (TextureFormat) {\n // 8-bit formats\n TextureFormat[\"R8Unorm\"] = \"r8unorm\";\n TextureFormat[\"R8Snorm\"] = \"r8snorm\";\n TextureFormat[\"R8Uint\"] = \"r8uint\";\n TextureFormat[\"R8Sint\"] = \"r8sint\";\n // 16-bit formats\n TextureFormat[\"R16Uint\"] = \"r16uint\";\n TextureFormat[\"R16Sint\"] = \"r16sint\";\n TextureFormat[\"R16Float\"] = \"r16float\";\n TextureFormat[\"RG8Unorm\"] = \"rg8unorm\";\n TextureFormat[\"RG8Snorm\"] = \"rg8snorm\";\n TextureFormat[\"RG8Uint\"] = \"rg8uint\";\n TextureFormat[\"RG8Sint\"] = \"rg8sint\";\n // 32-bit formats\n TextureFormat[\"R32Uint\"] = \"r32uint\";\n TextureFormat[\"R32Sint\"] = \"r32sint\";\n TextureFormat[\"R32Float\"] = \"r32float\";\n TextureFormat[\"RG16Uint\"] = \"rg16uint\";\n TextureFormat[\"RG16Sint\"] = \"rg16sint\";\n TextureFormat[\"RG16Float\"] = \"rg16float\";\n TextureFormat[\"RGBA8Unorm\"] = \"rgba8unorm\";\n TextureFormat[\"RGBA8UnormSRGB\"] = \"rgba8unorm-srgb\";\n TextureFormat[\"RGBA8Snorm\"] = \"rgba8snorm\";\n TextureFormat[\"RGBA8Uint\"] = \"rgba8uint\";\n TextureFormat[\"RGBA8Sint\"] = \"rgba8sint\";\n TextureFormat[\"BGRA8Unorm\"] = \"bgra8unorm\";\n TextureFormat[\"BGRA8UnormSRGB\"] = \"bgra8unorm-srgb\";\n // Packed 32-bit formats\n TextureFormat[\"RGB9E5UFloat\"] = \"rgb9e5ufloat\";\n TextureFormat[\"RGB10A2UINT\"] = \"rgb10a2uint\";\n TextureFormat[\"RGB10A2Unorm\"] = \"rgb10a2unorm\";\n TextureFormat[\"RG11B10UFloat\"] = \"rg11b10ufloat\";\n // 64-bit formats\n TextureFormat[\"RG32Uint\"] = \"rg32uint\";\n TextureFormat[\"RG32Sint\"] = \"rg32sint\";\n TextureFormat[\"RG32Float\"] = \"rg32float\";\n TextureFormat[\"RGBA16Uint\"] = \"rgba16uint\";\n TextureFormat[\"RGBA16Sint\"] = \"rgba16sint\";\n TextureFormat[\"RGBA16Float\"] = \"rgba16float\";\n // 128-bit formats\n TextureFormat[\"RGBA32Uint\"] = \"rgba32uint\";\n TextureFormat[\"RGBA32Sint\"] = \"rgba32sint\";\n TextureFormat[\"RGBA32Float\"] = \"rgba32float\";\n // Depth and stencil formats\n TextureFormat[\"Stencil8\"] = \"stencil8\";\n TextureFormat[\"Depth16Unorm\"] = \"depth16unorm\";\n TextureFormat[\"Depth24Plus\"] = \"depth24plus\";\n TextureFormat[\"Depth24PlusStencil8\"] = \"depth24plus-stencil8\";\n TextureFormat[\"Depth32Float\"] = \"depth32float\";\n // BC compressed formats usable if \"texture-compression-bc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n TextureFormat[\"BC1RGBAUnorm\"] = \"bc1-rgba-unorm\";\n TextureFormat[\"BC1RGBAUnormSRGB\"] = \"bc1-rgba-unorm-srgb\";\n TextureFormat[\"BC2RGBAUnorm\"] = \"bc2-rgba-unorm\";\n TextureFormat[\"BC2RGBAUnormSRGB\"] = \"bc2-rgba-unorm-srgb\";\n TextureFormat[\"BC3RGBAUnorm\"] = \"bc3-rgba-unorm\";\n TextureFormat[\"BC3RGBAUnormSRGB\"] = \"bc3-rgba-unorm-srgb\";\n TextureFormat[\"BC4RUnorm\"] = \"bc4-r-unorm\";\n TextureFormat[\"BC4RSnorm\"] = \"bc4-r-snorm\";\n TextureFormat[\"BC5RGUnorm\"] = \"bc5-rg-unorm\";\n TextureFormat[\"BC5RGSnorm\"] = \"bc5-rg-snorm\";\n TextureFormat[\"BC6HRGBUFloat\"] = \"bc6h-rgb-ufloat\";\n TextureFormat[\"BC6HRGBFloat\"] = \"bc6h-rgb-float\";\n TextureFormat[\"BC7RGBAUnorm\"] = \"bc7-rgba-unorm\";\n TextureFormat[\"BC7RGBAUnormSRGB\"] = \"bc7-rgba-unorm-srgb\";\n // ETC2 compressed formats usable if \"texture-compression-etc2\" is both\n // supported by the device/user agent and enabled in requestDevice.\n TextureFormat[\"ETC2RGB8Unorm\"] = \"etc2-rgb8unorm\";\n TextureFormat[\"ETC2RGB8UnormSRGB\"] = \"etc2-rgb8unorm-srgb\";\n TextureFormat[\"ETC2RGB8A1Unorm\"] = \"etc2-rgb8a1unorm\";\n TextureFormat[\"ETC2RGB8A1UnormSRGB\"] = \"etc2-rgb8a1unorm-srgb\";\n TextureFormat[\"ETC2RGBA8Unorm\"] = \"etc2-rgba8unorm\";\n TextureFormat[\"ETC2RGBA8UnormSRGB\"] = \"etc2-rgba8unorm-srgb\";\n TextureFormat[\"EACR11Unorm\"] = \"eac-r11unorm\";\n TextureFormat[\"EACR11Snorm\"] = \"eac-r11snorm\";\n TextureFormat[\"EACRG11Unorm\"] = \"eac-rg11unorm\";\n TextureFormat[\"EACRG11Snorm\"] = \"eac-rg11snorm\";\n // ASTC compressed formats usable if \"texture-compression-astc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n TextureFormat[\"ASTC4x4Unorm\"] = \"astc-4x4-unorm\";\n TextureFormat[\"ASTC4x4UnormSRGB\"] = \"astc-4x4-unorm-srgb\";\n TextureFormat[\"ASTC5x4Unorm\"] = \"astc-5x4-unorm\";\n TextureFormat[\"ASTC5x4UnormSRGB\"] = \"astc-5x4-unorm-srgb\";\n TextureFormat[\"ASTC5x5Unorm\"] = \"astc-5x5-unorm\";\n TextureFormat[\"ASTC5x5UnormSRGB\"] = \"astc-5x5-unorm-srgb\";\n TextureFormat[\"ASTC6x5Unorm\"] = \"astc-6x5-unorm\";\n TextureFormat[\"ASTC6x5UnormSRGB\"] = \"astc-6x5-unorm-srgb\";\n TextureFormat[\"ASTC6x6Unorm\"] = \"astc-6x6-unorm\";\n TextureFormat[\"ASTC6x6UnormSRGB\"] = \"astc-6x6-unorm-srgb\";\n TextureFormat[\"ASTC8x5Unorm\"] = \"astc-8x5-unorm\";\n TextureFormat[\"ASTC8x5UnormSRGB\"] = \"astc-8x5-unorm-srgb\";\n TextureFormat[\"ASTC8x6Unorm\"] = \"astc-8x6-unorm\";\n TextureFormat[\"ASTC8x6UnormSRGB\"] = \"astc-8x6-unorm-srgb\";\n TextureFormat[\"ASTC8x8Unorm\"] = \"astc-8x8-unorm\";\n TextureFormat[\"ASTC8x8UnormSRGB\"] = \"astc-8x8-unorm-srgb\";\n TextureFormat[\"ASTC10x5Unorm\"] = \"astc-10x5-unorm\";\n TextureFormat[\"ASTC10x5UnormSRGB\"] = \"astc-10x5-unorm-srgb\";\n TextureFormat[\"ASTC10x6Unorm\"] = \"astc-10x6-unorm\";\n TextureFormat[\"ASTC10x6UnormSRGB\"] = \"astc-10x6-unorm-srgb\";\n TextureFormat[\"ASTC10x8Unorm\"] = \"astc-10x8-unorm\";\n TextureFormat[\"ASTC10x8UnormSRGB\"] = \"astc-10x8-unorm-srgb\";\n TextureFormat[\"ASTC10x10Unorm\"] = \"astc-10x10-unorm\";\n TextureFormat[\"ASTC10x10UnormSRGB\"] = \"astc-10x10-unorm-srgb\";\n TextureFormat[\"ASTC12x10Unorm\"] = \"astc-12x10-unorm\";\n TextureFormat[\"ASTC12x10UnormSRGB\"] = \"astc-12x10-unorm-srgb\";\n TextureFormat[\"ASTC12x12Unorm\"] = \"astc-12x12-unorm\";\n TextureFormat[\"ASTC12x12UnormSRGB\"] = \"astc-12x12-unorm-srgb\";\n // \"depth32float-stencil8\" feature\n TextureFormat[\"Depth32FloatStencil8\"] = \"depth32float-stencil8\";\n})(TextureFormat || (TextureFormat = {}));\n/** @internal */\nexport var AddressMode;\n(function (AddressMode) {\n AddressMode[\"ClampToEdge\"] = \"clamp-to-edge\";\n AddressMode[\"Repeat\"] = \"repeat\";\n AddressMode[\"MirrorRepeat\"] = \"mirror-repeat\";\n})(AddressMode || (AddressMode = {}));\n/** @internal */\nexport var FilterMode;\n(function (FilterMode) {\n FilterMode[\"Nearest\"] = \"nearest\";\n FilterMode[\"Linear\"] = \"linear\";\n})(FilterMode || (FilterMode = {}));\n/** @internal */\nexport var MipmapFilterMode;\n(function (MipmapFilterMode) {\n MipmapFilterMode[\"Nearest\"] = \"nearest\";\n MipmapFilterMode[\"Linear\"] = \"linear\";\n})(MipmapFilterMode || (MipmapFilterMode = {}));\n/** @internal */\nexport var CompareFunction;\n(function (CompareFunction) {\n CompareFunction[\"Never\"] = \"never\";\n CompareFunction[\"Less\"] = \"less\";\n CompareFunction[\"Equal\"] = \"equal\";\n CompareFunction[\"LessEqual\"] = \"less-equal\";\n CompareFunction[\"Greater\"] = \"greater\";\n CompareFunction[\"NotEqual\"] = \"not-equal\";\n CompareFunction[\"GreaterEqual\"] = \"greater-equal\";\n CompareFunction[\"Always\"] = \"always\";\n})(CompareFunction || (CompareFunction = {}));\n/** @internal */\nexport var ShaderStage;\n(function (ShaderStage) {\n ShaderStage[ShaderStage[\"Vertex\"] = 1] = \"Vertex\";\n ShaderStage[ShaderStage[\"Fragment\"] = 2] = \"Fragment\";\n ShaderStage[ShaderStage[\"Compute\"] = 4] = \"Compute\";\n})(ShaderStage || (ShaderStage = {}));\n/** @internal */\nexport var BufferBindingType;\n(function (BufferBindingType) {\n BufferBindingType[\"Uniform\"] = \"uniform\";\n BufferBindingType[\"Storage\"] = \"storage\";\n BufferBindingType[\"ReadOnlyStorage\"] = \"read-only-storage\";\n})(BufferBindingType || (BufferBindingType = {}));\n/** @internal */\nexport var SamplerBindingType;\n(function (SamplerBindingType) {\n SamplerBindingType[\"Filtering\"] = \"filtering\";\n SamplerBindingType[\"NonFiltering\"] = \"non-filtering\";\n SamplerBindingType[\"Comparison\"] = \"comparison\";\n})(SamplerBindingType || (SamplerBindingType = {}));\n/** @internal */\nexport var TextureSampleType;\n(function (TextureSampleType) {\n TextureSampleType[\"Float\"] = \"float\";\n TextureSampleType[\"UnfilterableFloat\"] = \"unfilterable-float\";\n TextureSampleType[\"Depth\"] = \"depth\";\n TextureSampleType[\"Sint\"] = \"sint\";\n TextureSampleType[\"Uint\"] = \"uint\";\n})(TextureSampleType || (TextureSampleType = {}));\n/** @internal */\nexport var StorageTextureAccess;\n(function (StorageTextureAccess) {\n StorageTextureAccess[\"WriteOnly\"] = \"write-only\";\n StorageTextureAccess[\"ReadOnly\"] = \"read-only\";\n StorageTextureAccess[\"ReadWrite\"] = \"read-write\";\n})(StorageTextureAccess || (StorageTextureAccess = {}));\n/** @internal */\nexport var CompilationMessageType;\n(function (CompilationMessageType) {\n CompilationMessageType[\"Error\"] = \"error\";\n CompilationMessageType[\"Warning\"] = \"warning\";\n CompilationMessageType[\"Info\"] = \"info\";\n})(CompilationMessageType || (CompilationMessageType = {}));\n/** @internal */\nexport var PipelineErrorReason;\n(function (PipelineErrorReason) {\n PipelineErrorReason[\"Validation\"] = \"validation\";\n PipelineErrorReason[\"Internal\"] = \"internal\";\n})(PipelineErrorReason || (PipelineErrorReason = {}));\n/** @internal */\nexport var AutoLayoutMode;\n(function (AutoLayoutMode) {\n AutoLayoutMode[\"Auto\"] = \"auto\";\n})(AutoLayoutMode || (AutoLayoutMode = {}));\n/** @internal */\nexport var PrimitiveTopology;\n(function (PrimitiveTopology) {\n PrimitiveTopology[\"PointList\"] = \"point-list\";\n PrimitiveTopology[\"LineList\"] = \"line-list\";\n PrimitiveTopology[\"LineStrip\"] = \"line-strip\";\n PrimitiveTopology[\"TriangleList\"] = \"triangle-list\";\n PrimitiveTopology[\"TriangleStrip\"] = \"triangle-strip\";\n})(PrimitiveTopology || (PrimitiveTopology = {}));\n/** @internal */\nexport var FrontFace;\n(function (FrontFace) {\n FrontFace[\"CCW\"] = \"ccw\";\n FrontFace[\"CW\"] = \"cw\";\n})(FrontFace || (FrontFace = {}));\n/** @internal */\nexport var CullMode;\n(function (CullMode) {\n CullMode[\"None\"] = \"none\";\n CullMode[\"Front\"] = \"front\";\n CullMode[\"Back\"] = \"back\";\n})(CullMode || (CullMode = {}));\n/** @internal */\nexport var ColorWrite;\n(function (ColorWrite) {\n ColorWrite[ColorWrite[\"Red\"] = 1] = \"Red\";\n ColorWrite[ColorWrite[\"Green\"] = 2] = \"Green\";\n ColorWrite[ColorWrite[\"Blue\"] = 4] = \"Blue\";\n ColorWrite[ColorWrite[\"Alpha\"] = 8] = \"Alpha\";\n ColorWrite[ColorWrite[\"All\"] = 15] = \"All\";\n})(ColorWrite || (ColorWrite = {}));\n/** @internal */\nexport var BlendFactor;\n(function (BlendFactor) {\n BlendFactor[\"Zero\"] = \"zero\";\n BlendFactor[\"One\"] = \"one\";\n BlendFactor[\"Src\"] = \"src\";\n BlendFactor[\"OneMinusSrc\"] = \"one-minus-src\";\n BlendFactor[\"SrcAlpha\"] = \"src-alpha\";\n BlendFactor[\"OneMinusSrcAlpha\"] = \"one-minus-src-alpha\";\n BlendFactor[\"Dst\"] = \"dst\";\n BlendFactor[\"OneMinusDst\"] = \"one-minus-dst\";\n BlendFactor[\"DstAlpha\"] = \"dst-alpha\";\n BlendFactor[\"OneMinusDstAlpha\"] = \"one-minus-dst-alpha\";\n BlendFactor[\"SrcAlphaSaturated\"] = \"src-alpha-saturated\";\n BlendFactor[\"Constant\"] = \"constant\";\n BlendFactor[\"OneMinusConstant\"] = \"one-minus-constant\";\n BlendFactor[\"Src1\"] = \"src1\";\n BlendFactor[\"OneMinusSrc1\"] = \"one-minus-src1\";\n BlendFactor[\"Src1Alpha\"] = \"src1-alpha\";\n BlendFactor[\"OneMinusSrc1Alpha\"] = \"one-minus-src1-alpha\";\n})(BlendFactor || (BlendFactor = {}));\n/** @internal */\nexport var BlendOperation;\n(function (BlendOperation) {\n BlendOperation[\"Add\"] = \"add\";\n BlendOperation[\"Subtract\"] = \"subtract\";\n BlendOperation[\"ReverseSubtract\"] = \"reverse-subtract\";\n BlendOperation[\"Min\"] = \"min\";\n BlendOperation[\"Max\"] = \"max\";\n})(BlendOperation || (BlendOperation = {}));\n/** @internal */\nexport var StencilOperation;\n(function (StencilOperation) {\n StencilOperation[\"Keep\"] = \"keep\";\n StencilOperation[\"Zero\"] = \"zero\";\n StencilOperation[\"Replace\"] = \"replace\";\n StencilOperation[\"Invert\"] = \"invert\";\n StencilOperation[\"IncrementClamp\"] = \"increment-clamp\";\n StencilOperation[\"DecrementClamp\"] = \"decrement-clamp\";\n StencilOperation[\"IncrementWrap\"] = \"increment-wrap\";\n StencilOperation[\"DecrementWrap\"] = \"decrement-wrap\";\n})(StencilOperation || (StencilOperation = {}));\n/** @internal */\nexport var IndexFormat;\n(function (IndexFormat) {\n IndexFormat[\"Uint16\"] = \"uint16\";\n IndexFormat[\"Uint32\"] = \"uint32\";\n})(IndexFormat || (IndexFormat = {}));\n/** @internal */\nexport var VertexFormat;\n(function (VertexFormat) {\n VertexFormat[\"Uint8x2\"] = \"uint8x2\";\n VertexFormat[\"Uint8x4\"] = \"uint8x4\";\n VertexFormat[\"Sint8x2\"] = \"sint8x2\";\n VertexFormat[\"Sint8x4\"] = \"sint8x4\";\n VertexFormat[\"Unorm8x2\"] = \"unorm8x2\";\n VertexFormat[\"Unorm8x4\"] = \"unorm8x4\";\n VertexFormat[\"Snorm8x2\"] = \"snorm8x2\";\n VertexFormat[\"Snorm8x4\"] = \"snorm8x4\";\n VertexFormat[\"Uint16x2\"] = \"uint16x2\";\n VertexFormat[\"Uint16x4\"] = \"uint16x4\";\n VertexFormat[\"Sint16x2\"] = \"sint16x2\";\n VertexFormat[\"Sint16x4\"] = \"sint16x4\";\n VertexFormat[\"Unorm16x2\"] = \"unorm16x2\";\n VertexFormat[\"Unorm16x4\"] = \"unorm16x4\";\n VertexFormat[\"Snorm16x2\"] = \"snorm16x2\";\n VertexFormat[\"Snorm16x4\"] = \"snorm16x4\";\n VertexFormat[\"Float16x2\"] = \"float16x2\";\n VertexFormat[\"Float16x4\"] = \"float16x4\";\n VertexFormat[\"Float32\"] = \"float32\";\n VertexFormat[\"Float32x2\"] = \"float32x2\";\n VertexFormat[\"Float32x3\"] = \"float32x3\";\n VertexFormat[\"Float32x4\"] = \"float32x4\";\n VertexFormat[\"Uint32\"] = \"uint32\";\n VertexFormat[\"Uint32x2\"] = \"uint32x2\";\n VertexFormat[\"Uint32x3\"] = \"uint32x3\";\n VertexFormat[\"Uint32x4\"] = \"uint32x4\";\n VertexFormat[\"Sint32\"] = \"sint32\";\n VertexFormat[\"Sint32x2\"] = \"sint32x2\";\n VertexFormat[\"Sint32x3\"] = \"sint32x3\";\n VertexFormat[\"Sint32x4\"] = \"sint32x4\";\n VertexFormat[\"UNORM10x10x10x2\"] = \"unorm10-10-10-2\";\n})(VertexFormat || (VertexFormat = {}));\n/** @internal */\nexport var VertexStepMode;\n(function (VertexStepMode) {\n VertexStepMode[\"Vertex\"] = \"vertex\";\n VertexStepMode[\"Instance\"] = \"instance\";\n})(VertexStepMode || (VertexStepMode = {}));\n/** @internal */\nexport var ComputePassTimestampLocation;\n(function (ComputePassTimestampLocation) {\n ComputePassTimestampLocation[\"Beginning\"] = \"beginning\";\n ComputePassTimestampLocation[\"End\"] = \"end\";\n})(ComputePassTimestampLocation || (ComputePassTimestampLocation = {}));\n/** @internal */\nexport var RenderPassTimestampLocation;\n(function (RenderPassTimestampLocation) {\n RenderPassTimestampLocation[\"Beginning\"] = \"beginning\";\n RenderPassTimestampLocation[\"End\"] = \"end\";\n})(RenderPassTimestampLocation || (RenderPassTimestampLocation = {}));\n/** @internal */\nexport var LoadOp;\n(function (LoadOp) {\n LoadOp[\"Load\"] = \"load\";\n LoadOp[\"Clear\"] = \"clear\";\n})(LoadOp || (LoadOp = {}));\n/** @internal */\nexport var StoreOp;\n(function (StoreOp) {\n StoreOp[\"Store\"] = \"store\";\n StoreOp[\"Discard\"] = \"discard\";\n})(StoreOp || (StoreOp = {}));\n/** @internal */\nexport var QueryType;\n(function (QueryType) {\n QueryType[\"Occlusion\"] = \"occlusion\";\n QueryType[\"Timestamp\"] = \"timestamp\";\n})(QueryType || (QueryType = {}));\n/** @internal */\nexport var CanvasAlphaMode;\n(function (CanvasAlphaMode) {\n CanvasAlphaMode[\"Opaque\"] = \"opaque\";\n CanvasAlphaMode[\"Premultiplied\"] = \"premultiplied\";\n})(CanvasAlphaMode || (CanvasAlphaMode = {}));\n/** @internal */\nexport var CanvasToneMappingMode;\n(function (CanvasToneMappingMode) {\n CanvasToneMappingMode[\"Standard\"] = \"standard\";\n CanvasToneMappingMode[\"Extended\"] = \"extended\";\n})(CanvasToneMappingMode || (CanvasToneMappingMode = {}));\n/** @internal */\nexport var DeviceLostReason;\n(function (DeviceLostReason) {\n DeviceLostReason[\"Unknown\"] = \"unknown\";\n DeviceLostReason[\"Destroyed\"] = \"destroyed\";\n})(DeviceLostReason || (DeviceLostReason = {}));\n/** @internal */\nexport var ErrorFilter;\n(function (ErrorFilter) {\n ErrorFilter[\"Validation\"] = \"validation\";\n ErrorFilter[\"OutOfMemory\"] = \"out-of-memory\";\n ErrorFilter[\"Internal\"] = \"internal\";\n})(ErrorFilter || (ErrorFilter = {}));\n","/** @internal */\nexport class WebGPUShaderProcessor {\n constructor() {\n this.shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n }\n _addUniformToLeftOverUBO(name, uniformType, preProcessors) {\n let length = 0;\n [name, uniformType, length] = this._getArraySize(name, uniformType, preProcessors);\n for (let i = 0; i < this._webgpuProcessingContext.leftOverUniforms.length; i++) {\n if (this._webgpuProcessingContext.leftOverUniforms[i].name === name) {\n return;\n }\n }\n this._webgpuProcessingContext.leftOverUniforms.push({\n name,\n type: uniformType,\n length,\n });\n }\n _buildLeftOverUBO() {\n if (!this._webgpuProcessingContext.leftOverUniforms.length) {\n return \"\";\n }\n const name = WebGPUShaderProcessor.LeftOvertUBOName;\n let availableUBO = this._webgpuProcessingContext.availableBuffers[name];\n if (!availableUBO) {\n availableUBO = {\n binding: this._webgpuProcessingContext.getNextFreeUBOBinding(),\n };\n this._webgpuProcessingContext.availableBuffers[name] = availableUBO;\n this._addBufferBindingDescription(name, availableUBO, \"uniform\" /* WebGPUConstants.BufferBindingType.Uniform */, true);\n this._addBufferBindingDescription(name, availableUBO, \"uniform\" /* WebGPUConstants.BufferBindingType.Uniform */, false);\n }\n return this._generateLeftOverUBOCode(name, availableUBO);\n }\n _collectBindingNames() {\n // collect all the binding names for faster processing in WebGPUCacheBindGroup\n for (let i = 0; i < this._webgpuProcessingContext.bindGroupLayoutEntries.length; i++) {\n const setDefinition = this._webgpuProcessingContext.bindGroupLayoutEntries[i];\n if (setDefinition === undefined) {\n this._webgpuProcessingContext.bindGroupLayoutEntries[i] = [];\n continue;\n }\n for (let j = 0; j < setDefinition.length; j++) {\n const entry = this._webgpuProcessingContext.bindGroupLayoutEntries[i][j];\n const name = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[i][entry.binding].name;\n const nameInArrayOfTexture = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[i][entry.binding].nameInArrayOfTexture;\n if (entry) {\n if (entry.texture || entry.externalTexture || entry.storageTexture) {\n this._webgpuProcessingContext.textureNames.push(nameInArrayOfTexture);\n }\n else if (entry.sampler) {\n this._webgpuProcessingContext.samplerNames.push(name);\n }\n else if (entry.buffer) {\n this._webgpuProcessingContext.bufferNames.push(name);\n }\n }\n }\n }\n }\n _preCreateBindGroupEntries() {\n const bindGroupEntries = this._webgpuProcessingContext.bindGroupEntries;\n for (let i = 0; i < this._webgpuProcessingContext.bindGroupLayoutEntries.length; i++) {\n const setDefinition = this._webgpuProcessingContext.bindGroupLayoutEntries[i];\n const entries = [];\n for (let j = 0; j < setDefinition.length; j++) {\n const entry = this._webgpuProcessingContext.bindGroupLayoutEntries[i][j];\n if (entry.sampler || entry.texture || entry.storageTexture || entry.externalTexture) {\n entries.push({\n binding: entry.binding,\n resource: undefined,\n });\n }\n else if (entry.buffer) {\n entries.push({\n binding: entry.binding,\n resource: {\n buffer: undefined,\n offset: 0,\n size: 0,\n },\n });\n }\n }\n bindGroupEntries[i] = entries;\n }\n }\n _addTextureBindingDescription(name, textureInfo, textureIndex, dimension, format, isVertex) {\n // eslint-disable-next-line prefer-const\n let { groupIndex, bindingIndex } = textureInfo.textures[textureIndex];\n if (!this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex]) {\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex] = [];\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex] = [];\n }\n if (!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex]) {\n let len;\n if (dimension === null) {\n len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\n binding: bindingIndex,\n visibility: 0,\n externalTexture: {},\n });\n }\n else if (format) {\n len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\n binding: bindingIndex,\n visibility: 0,\n storageTexture: {\n access: \"write-only\" /* WebGPUConstants.StorageTextureAccess.WriteOnly */,\n format,\n viewDimension: dimension,\n },\n });\n }\n else {\n len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\n binding: bindingIndex,\n visibility: 0,\n texture: {\n sampleType: textureInfo.sampleType,\n viewDimension: dimension,\n multisampled: false,\n },\n });\n }\n const textureName = textureInfo.isTextureArray ? name + textureIndex : name;\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex] = { name, index: len - 1, nameInArrayOfTexture: textureName };\n }\n bindingIndex = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex].index;\n if (isVertex) {\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= 1 /* WebGPUConstants.ShaderStage.Vertex */;\n }\n else {\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= 2 /* WebGPUConstants.ShaderStage.Fragment */;\n }\n }\n _addSamplerBindingDescription(name, samplerInfo, isVertex) {\n // eslint-disable-next-line prefer-const\n let { groupIndex, bindingIndex } = samplerInfo.binding;\n if (!this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex]) {\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex] = [];\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex] = [];\n }\n if (!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex]) {\n const len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\n binding: bindingIndex,\n visibility: 0,\n sampler: {\n type: samplerInfo.type,\n },\n });\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex] = { name, index: len - 1 };\n }\n bindingIndex = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex].index;\n if (isVertex) {\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= 1 /* WebGPUConstants.ShaderStage.Vertex */;\n }\n else {\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= 2 /* WebGPUConstants.ShaderStage.Fragment */;\n }\n }\n _addBufferBindingDescription(name, uniformBufferInfo, bufferType, isVertex) {\n // eslint-disable-next-line prefer-const\n let { groupIndex, bindingIndex } = uniformBufferInfo.binding;\n if (!this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex]) {\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex] = [];\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex] = [];\n }\n if (!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex]) {\n const len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\n binding: bindingIndex,\n visibility: 0,\n buffer: {\n type: bufferType,\n },\n });\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex] = { name, index: len - 1 };\n }\n bindingIndex = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex].index;\n if (isVertex) {\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= 1 /* WebGPUConstants.ShaderStage.Vertex */;\n }\n else {\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= 2 /* WebGPUConstants.ShaderStage.Fragment */;\n }\n }\n}\nWebGPUShaderProcessor.LeftOvertUBOName = \"LeftOver\";\nWebGPUShaderProcessor.InternalsUBOName = \"Internals\";\nWebGPUShaderProcessor.UniformSizes = {\n // GLSL types\n bool: 1,\n int: 1,\n float: 1,\n vec2: 2,\n ivec2: 2,\n uvec2: 2,\n vec3: 3,\n ivec3: 3,\n uvec3: 3,\n vec4: 4,\n ivec4: 4,\n uvec4: 4,\n mat2: 4,\n mat3: 12,\n mat4: 16,\n // WGSL types\n i32: 1,\n u32: 1,\n f32: 1,\n mat2x2: 4,\n mat3x3: 12,\n mat4x4: 16,\n mat2x2f: 4,\n mat3x3f: 12,\n mat4x4f: 16,\n vec2i: 2,\n vec3i: 3,\n vec4i: 4,\n vec2u: 2,\n vec3u: 3,\n vec4u: 4,\n vec2f: 2,\n vec3f: 3,\n vec4f: 4,\n vec2h: 1,\n vec3h: 2,\n vec4h: 2,\n};\n// eslint-disable-next-line @typescript-eslint/naming-convention\nWebGPUShaderProcessor._SamplerFunctionByWebGLSamplerType = {\n sampler2D: \"sampler2D\",\n sampler2DArray: \"sampler2DArray\",\n sampler2DShadow: \"sampler2DShadow\",\n sampler2DArrayShadow: \"sampler2DArrayShadow\",\n samplerCube: \"samplerCube\",\n sampler3D: \"sampler3D\",\n};\n// eslint-disable-next-line @typescript-eslint/naming-convention\nWebGPUShaderProcessor._TextureTypeByWebGLSamplerType = {\n sampler2D: \"texture2D\",\n sampler2DArray: \"texture2DArray\",\n sampler2DShadow: \"texture2D\",\n sampler2DArrayShadow: \"texture2DArray\",\n samplerCube: \"textureCube\",\n samplerCubeArray: \"textureCubeArray\",\n sampler3D: \"texture3D\",\n};\n// eslint-disable-next-line @typescript-eslint/naming-convention\nWebGPUShaderProcessor._GpuTextureViewDimensionByWebGPUTextureType = {\n textureCube: \"cube\" /* WebGPUConstants.TextureViewDimension.Cube */,\n textureCubeArray: \"cube-array\" /* WebGPUConstants.TextureViewDimension.CubeArray */,\n texture2D: \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n texture2DArray: \"2d-array\" /* WebGPUConstants.TextureViewDimension.E2dArray */,\n texture3D: \"3d\" /* WebGPUConstants.TextureViewDimension.E3d */,\n};\n// if the webgl sampler type is not listed in this array, \"sampler\" is taken by default\n// eslint-disable-next-line @typescript-eslint/naming-convention\nWebGPUShaderProcessor._SamplerTypeByWebGLSamplerType = {\n sampler2DShadow: \"samplerShadow\",\n sampler2DArrayShadow: \"samplerShadow\",\n};\n// eslint-disable-next-line @typescript-eslint/naming-convention\nWebGPUShaderProcessor._IsComparisonSamplerByWebGPUSamplerType = {\n samplerShadow: true,\n samplerArrayShadow: true,\n sampler: false,\n};\n","import { UniformBuffer } from \"../../Materials/uniformBuffer.js\";\nimport { WebGPUShaderProcessor } from \"./webgpuShaderProcessor.js\";\n/** @internal */\nexport class WebGPUPipelineContext {\n get isAsync() {\n return false;\n }\n get isReady() {\n if (this.stages) {\n return true;\n }\n return false;\n }\n constructor(shaderProcessingContext, engine) {\n // The field is indexed by textureState. See @WebGPUMaterialContext.textureState for more information.\n this.bindGroupLayouts = {};\n this._name = \"unnamed\";\n this.shaderProcessingContext = shaderProcessingContext;\n this._leftOverUniformsByName = {};\n this.engine = engine;\n this.vertexBufferKindToType = {};\n }\n _handlesSpectorRebuildCallback() {\n // Nothing to do yet for spector.\n }\n _fillEffectInformation(effect, uniformBuffersNames, uniformsNames, uniforms, samplerList, samplers, attributesNames, attributes) {\n const engine = this.engine;\n if (engine._doNotHandleContextLost) {\n effect._fragmentSourceCode = \"\";\n effect._vertexSourceCode = \"\";\n }\n const foundSamplers = this.shaderProcessingContext.availableTextures;\n let index;\n for (index = 0; index < samplerList.length; index++) {\n const name = samplerList[index];\n const sampler = foundSamplers[samplerList[index]];\n if (sampler == null || sampler == undefined) {\n samplerList.splice(index, 1);\n index--;\n }\n else {\n samplers[name] = index;\n }\n }\n for (const attr of engine.getAttributes(this, attributesNames)) {\n attributes.push(attr);\n }\n // Build the uniform layout for the left over uniforms.\n this.buildUniformLayout();\n const attributeNamesFromEffect = [];\n const attributeLocationsFromEffect = [];\n for (index = 0; index < attributesNames.length; index++) {\n const location = attributes[index];\n if (location >= 0) {\n attributeNamesFromEffect.push(attributesNames[index]);\n attributeLocationsFromEffect.push(location);\n }\n }\n this.shaderProcessingContext.attributeNamesFromEffect = attributeNamesFromEffect;\n this.shaderProcessingContext.attributeLocationsFromEffect = attributeLocationsFromEffect;\n }\n /** @internal */\n /**\n * Build the uniform buffer used in the material.\n */\n buildUniformLayout() {\n if (!this.shaderProcessingContext.leftOverUniforms.length) {\n return;\n }\n this.uniformBuffer?.dispose();\n this.uniformBuffer = new UniformBuffer(this.engine, undefined, undefined, \"leftOver-\" + this._name);\n for (const leftOverUniform of this.shaderProcessingContext.leftOverUniforms) {\n const type = leftOverUniform.type.replace(/^(.*?)(<.*>)?$/, \"$1\");\n const size = WebGPUShaderProcessor.UniformSizes[type];\n this.uniformBuffer.addUniform(leftOverUniform.name, size, leftOverUniform.length);\n this._leftOverUniformsByName[leftOverUniform.name] = leftOverUniform.type;\n }\n this.uniformBuffer.create();\n }\n setEngine(engine) {\n this.engine = engine;\n }\n /**\n * Release all associated resources.\n **/\n dispose() {\n if (this.uniformBuffer) {\n this.uniformBuffer.dispose();\n }\n }\n /**\n * Sets an integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setInt(uniformName, value) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateInt(uniformName, value);\n }\n /**\n * Sets an int2 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int2.\n * @param y Second int in int2.\n */\n setInt2(uniformName, x, y) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateInt2(uniformName, x, y);\n }\n /**\n * Sets an int3 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int3.\n * @param y Second int in int3.\n * @param z Third int in int3.\n */\n setInt3(uniformName, x, y, z) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateInt3(uniformName, x, y, z);\n }\n /**\n * Sets an int4 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int4.\n * @param y Second int in int4.\n * @param z Third int in int4.\n * @param w Fourth int in int4.\n */\n setInt4(uniformName, x, y, z, w) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateInt4(uniformName, x, y, z, w);\n }\n /**\n * Sets an int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray(uniformName, array) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateIntArray(uniformName, array);\n }\n /**\n * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray2(uniformName, array) {\n this.setIntArray(uniformName, array);\n }\n /**\n * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray3(uniformName, array) {\n this.setIntArray(uniformName, array);\n }\n /**\n * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray4(uniformName, array) {\n this.setIntArray(uniformName, array);\n }\n /**\n * Sets an unsigned integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setUInt(uniformName, value) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateUInt(uniformName, value);\n }\n /**\n * Sets an unsigned int2 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint2.\n * @param y Second unsigned int in uint2.\n */\n setUInt2(uniformName, x, y) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateUInt2(uniformName, x, y);\n }\n /**\n * Sets an unsigned int3 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint3.\n * @param y Second unsigned int in uint3.\n * @param z Third unsigned int in uint3.\n */\n setUInt3(uniformName, x, y, z) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateUInt3(uniformName, x, y, z);\n }\n /**\n * Sets an unsigned int4 value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint4.\n * @param y Second unsigned int in uint4.\n * @param z Third unsigned int in uint4.\n * @param w Fourth unsigned int in uint4.\n */\n setUInt4(uniformName, x, y, z, w) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateUInt4(uniformName, x, y, z, w);\n }\n /**\n * Sets an unsigned int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray(uniformName, array) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateUIntArray(uniformName, array);\n }\n /**\n * Sets an unsigned int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray2(uniformName, array) {\n this.setUIntArray(uniformName, array);\n }\n /**\n * Sets an unsigned int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray3(uniformName, array) {\n this.setUIntArray(uniformName, array);\n }\n /**\n * Sets an unsigned int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray4(uniformName, array) {\n this.setUIntArray(uniformName, array);\n }\n /**\n * Sets an array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray(uniformName, array) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateArray(uniformName, array);\n }\n /**\n * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray2(uniformName, array) {\n this.setArray(uniformName, array);\n }\n /**\n * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray3(uniformName, array) {\n this.setArray(uniformName, array);\n }\n /**\n * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray4(uniformName, array) {\n this.setArray(uniformName, array);\n }\n /**\n * Sets matrices on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrices matrices to be set.\n */\n setMatrices(uniformName, matrices) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateMatrices(uniformName, matrices);\n }\n /**\n * Sets matrix on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix(uniformName, matrix) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateMatrix(uniformName, matrix);\n }\n /**\n * Sets a 3x3 matrix on a uniform variable. (Specified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix3x3(uniformName, matrix) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateMatrix3x3(uniformName, matrix);\n }\n /**\n * Sets a 2x2 matrix on a uniform variable. (Specified as [1,2,3,4] will result in [1,2][3,4] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix2x2(uniformName, matrix) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateMatrix2x2(uniformName, matrix);\n }\n /**\n * Sets a float on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value value to be set.\n */\n setFloat(uniformName, value) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateFloat(uniformName, value);\n }\n /**\n * Sets a Vector2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector2 vector2 to be set.\n */\n setVector2(uniformName, vector2) {\n this.setFloat2(uniformName, vector2.x, vector2.y);\n }\n /**\n * Sets a float2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float2.\n * @param y Second float in float2.\n */\n setFloat2(uniformName, x, y) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateFloat2(uniformName, x, y);\n }\n /**\n * Sets a Vector3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector3 Value to be set.\n */\n setVector3(uniformName, vector3) {\n this.setFloat3(uniformName, vector3.x, vector3.y, vector3.z);\n }\n /**\n * Sets a float3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float3.\n * @param y Second float in float3.\n * @param z Third float in float3.\n */\n setFloat3(uniformName, x, y, z) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateFloat3(uniformName, x, y, z);\n }\n /**\n * Sets a Vector4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector4 Value to be set.\n */\n setVector4(uniformName, vector4) {\n this.setFloat4(uniformName, vector4.x, vector4.y, vector4.z, vector4.w);\n }\n /**\n * Sets a Quaternion on a uniform variable.\n * @param uniformName Name of the variable.\n * @param quaternion Value to be set.\n */\n setQuaternion(uniformName, quaternion) {\n this.setFloat4(uniformName, quaternion.x, quaternion.y, quaternion.z, quaternion.w);\n }\n /**\n * Sets a float4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float4.\n * @param y Second float in float4.\n * @param z Third float in float4.\n * @param w Fourth float in float4.\n */\n setFloat4(uniformName, x, y, z, w) {\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\n return;\n }\n this.uniformBuffer.updateFloat4(uniformName, x, y, z, w);\n }\n /**\n * Sets a Color3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n */\n setColor3(uniformName, color3) {\n this.setFloat3(uniformName, color3.r, color3.g, color3.b);\n }\n /**\n * Sets a Color4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n * @param alpha Alpha value to be set.\n */\n setColor4(uniformName, color3, alpha) {\n this.setFloat4(uniformName, color3.r, color3.g, color3.b, alpha);\n }\n /**\n * Sets a Color4 on a uniform variable\n * @param uniformName defines the name of the variable\n * @param color4 defines the value to be set\n */\n setDirectColor4(uniformName, color4) {\n this.setFloat4(uniformName, color4.r, color4.g, color4.b, color4.a);\n }\n _getVertexShaderCode() {\n return this.sources?.vertex;\n }\n _getFragmentShaderCode() {\n return this.sources?.fragment;\n }\n}\n","const _maxGroups = 4;\nconst _maxBindingsPerGroup = 1 << 16;\n// all types not listed are assumed to consume 1 location\nconst _typeToLocationSize = {\n // GLSL types\n mat2: 2,\n mat3: 3,\n mat4: 4,\n // WGSL types\n mat2x2: 2,\n mat3x3: 3,\n mat4x4: 4,\n};\n/**\n * @internal\n */\nexport class WebGPUShaderProcessingContext {\n static get KnownUBOs() {\n return WebGPUShaderProcessingContext._SimplifiedKnownBindings ? WebGPUShaderProcessingContext._SimplifiedKnownUBOs : WebGPUShaderProcessingContext._KnownUBOs;\n }\n constructor(shaderLanguage, pureMode = false) {\n this.vertexBufferKindToNumberOfComponents = {};\n this.shaderLanguage = shaderLanguage;\n this._attributeNextLocation = 0;\n this._varyingNextLocation = 0;\n this.freeGroupIndex = 0;\n this.freeBindingIndex = 0;\n this.availableVaryings = {};\n this.availableAttributes = {};\n this.availableBuffers = {};\n this.availableTextures = {};\n this.availableSamplers = {};\n this.orderedAttributes = [];\n this.bindGroupLayoutEntries = [];\n this.bindGroupLayoutEntryInfo = [];\n this.bindGroupEntries = [];\n this.bufferNames = [];\n this.textureNames = [];\n this.samplerNames = [];\n this.leftOverUniforms = [];\n if (!pureMode) {\n this._findStartingGroupBinding();\n }\n }\n _findStartingGroupBinding() {\n const knownUBOs = WebGPUShaderProcessingContext.KnownUBOs;\n const groups = [];\n for (const name in knownUBOs) {\n const binding = knownUBOs[name].binding;\n if (binding.groupIndex === -1) {\n continue;\n }\n if (groups[binding.groupIndex] === undefined) {\n groups[binding.groupIndex] = binding.bindingIndex;\n }\n else {\n groups[binding.groupIndex] = Math.max(groups[binding.groupIndex], binding.bindingIndex);\n }\n }\n this.freeGroupIndex = groups.length - 1;\n if (this.freeGroupIndex === 0) {\n this.freeGroupIndex++;\n this.freeBindingIndex = 0;\n }\n else {\n this.freeBindingIndex = groups[groups.length - 1] + 1;\n }\n }\n getAttributeNextLocation(dataType, arrayLength = 0) {\n const index = this._attributeNextLocation;\n this._attributeNextLocation += (_typeToLocationSize[dataType] ?? 1) * (arrayLength || 1);\n return index;\n }\n getVaryingNextLocation(dataType, arrayLength = 0) {\n const index = this._varyingNextLocation;\n this._varyingNextLocation += (_typeToLocationSize[dataType] ?? 1) * (arrayLength || 1);\n return index;\n }\n getNextFreeUBOBinding() {\n return this._getNextFreeBinding(1);\n }\n _getNextFreeBinding(bindingCount) {\n if (this.freeBindingIndex > _maxBindingsPerGroup - bindingCount) {\n this.freeGroupIndex++;\n this.freeBindingIndex = 0;\n }\n if (this.freeGroupIndex === _maxGroups) {\n // eslint-disable-next-line no-throw-literal\n throw \"Too many textures or UBOs have been declared and it is not supported in WebGPU.\";\n }\n const returnValue = {\n groupIndex: this.freeGroupIndex,\n bindingIndex: this.freeBindingIndex,\n };\n this.freeBindingIndex += bindingCount;\n return returnValue;\n }\n}\n/** @internal */\nWebGPUShaderProcessingContext._SimplifiedKnownBindings = true; // if true, use only group=0,binding=0 as a known group/binding for the Scene ubo and use group=1,binding=X for all other bindings\n// if false, see _KnownUBOs for the known groups/bindings used\nWebGPUShaderProcessingContext._SimplifiedKnownUBOs = {\n Scene: { binding: { groupIndex: 0, bindingIndex: 0 } },\n Light0: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light1: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light2: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light3: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light4: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light5: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light6: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light7: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light8: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light9: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light10: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light11: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light12: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light13: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light14: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light15: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light16: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light17: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light18: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light19: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light20: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light21: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light22: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light23: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light24: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light25: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light26: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light27: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light28: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light29: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light30: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Light31: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Material: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Mesh: { binding: { groupIndex: -1, bindingIndex: -1 } },\n Internals: { binding: { groupIndex: -1, bindingIndex: -1 } },\n};\nWebGPUShaderProcessingContext._KnownUBOs = {\n Scene: { binding: { groupIndex: 0, bindingIndex: 0 } },\n Light0: { binding: { groupIndex: 1, bindingIndex: 0 } },\n Light1: { binding: { groupIndex: 1, bindingIndex: 1 } },\n Light2: { binding: { groupIndex: 1, bindingIndex: 2 } },\n Light3: { binding: { groupIndex: 1, bindingIndex: 3 } },\n Light4: { binding: { groupIndex: 1, bindingIndex: 4 } },\n Light5: { binding: { groupIndex: 1, bindingIndex: 5 } },\n Light6: { binding: { groupIndex: 1, bindingIndex: 6 } },\n Light7: { binding: { groupIndex: 1, bindingIndex: 7 } },\n Light8: { binding: { groupIndex: 1, bindingIndex: 8 } },\n Light9: { binding: { groupIndex: 1, bindingIndex: 9 } },\n Light10: { binding: { groupIndex: 1, bindingIndex: 10 } },\n Light11: { binding: { groupIndex: 1, bindingIndex: 11 } },\n Light12: { binding: { groupIndex: 1, bindingIndex: 12 } },\n Light13: { binding: { groupIndex: 1, bindingIndex: 13 } },\n Light14: { binding: { groupIndex: 1, bindingIndex: 14 } },\n Light15: { binding: { groupIndex: 1, bindingIndex: 15 } },\n Light16: { binding: { groupIndex: 1, bindingIndex: 16 } },\n Light17: { binding: { groupIndex: 1, bindingIndex: 17 } },\n Light18: { binding: { groupIndex: 1, bindingIndex: 18 } },\n Light19: { binding: { groupIndex: 1, bindingIndex: 19 } },\n Light20: { binding: { groupIndex: 1, bindingIndex: 20 } },\n Light21: { binding: { groupIndex: 1, bindingIndex: 21 } },\n Light22: { binding: { groupIndex: 1, bindingIndex: 22 } },\n Light23: { binding: { groupIndex: 1, bindingIndex: 23 } },\n Light24: { binding: { groupIndex: 1, bindingIndex: 24 } },\n Light25: { binding: { groupIndex: 1, bindingIndex: 25 } },\n Light26: { binding: { groupIndex: 1, bindingIndex: 26 } },\n Light27: { binding: { groupIndex: 1, bindingIndex: 27 } },\n Light28: { binding: { groupIndex: 1, bindingIndex: 28 } },\n Light29: { binding: { groupIndex: 1, bindingIndex: 29 } },\n Light30: { binding: { groupIndex: 1, bindingIndex: 30 } },\n Light31: { binding: { groupIndex: 1, bindingIndex: 31 } },\n Material: { binding: { groupIndex: 2, bindingIndex: 0 } },\n Mesh: { binding: { groupIndex: 2, bindingIndex: 1 } },\n Internals: { binding: { groupIndex: 2, bindingIndex: 2 } },\n};\n","import { WebGPUShaderProcessingContext } from \"./webgpuShaderProcessingContext.js\";\nimport { Logger } from \"../../Misc/logger.js\";\nimport { WebGPUShaderProcessor } from \"./webgpuShaderProcessor.js\";\nimport { InjectStartingAndEndingCode } from \"../../Misc/codeStringParsingTools.js\";\n\n/** @internal */\nexport class WebGPUShaderProcessorGLSL extends WebGPUShaderProcessor {\n constructor() {\n super(...arguments);\n this._missingVaryings = [];\n this._textureArrayProcessing = [];\n this._vertexIsGLES3 = false;\n this._fragmentIsGLES3 = false;\n this.shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this.parseGLES3 = true;\n }\n _getArraySize(name, type, preProcessors) {\n let length = 0;\n const startArray = name.indexOf(\"[\");\n const endArray = name.indexOf(\"]\");\n if (startArray > 0 && endArray > 0) {\n const lengthInString = name.substring(startArray + 1, endArray);\n length = +lengthInString;\n if (isNaN(length)) {\n length = +preProcessors[lengthInString.trim()];\n }\n name = name.substring(0, startArray);\n }\n return [name, type, length];\n }\n initializeShaders(processingContext) {\n this._webgpuProcessingContext = processingContext;\n this._missingVaryings.length = 0;\n this._textureArrayProcessing.length = 0;\n this.attributeKeywordName = undefined;\n this.varyingVertexKeywordName = undefined;\n this.varyingFragmentKeywordName = undefined;\n }\n preProcessShaderCode(code, isFragment) {\n const ubDeclaration = `// Internals UBO\\nuniform ${WebGPUShaderProcessor.InternalsUBOName} {\\nfloat yFactor_;\\nfloat textureOutputHeight_;\\n};\\n`;\n const alreadyInjected = code.indexOf(\"// Internals UBO\") !== -1;\n if (isFragment) {\n this._fragmentIsGLES3 = code.indexOf(\"#version 3\") !== -1;\n if (this._fragmentIsGLES3) {\n this.varyingFragmentKeywordName = \"in\";\n }\n return alreadyInjected ? code : ubDeclaration + \"##INJECTCODE##\\n\" + code;\n }\n this._vertexIsGLES3 = code.indexOf(\"#version 3\") !== -1;\n if (this._vertexIsGLES3) {\n this.attributeKeywordName = \"in\";\n this.varyingVertexKeywordName = \"out\";\n }\n return alreadyInjected ? code : ubDeclaration + code;\n }\n varyingCheck(varying, isFragment) {\n const outRegex = /(flat\\s)?\\s*\\bout\\b/;\n const inRegex = /(flat\\s)?\\s*\\bin\\b/;\n const varyingRegex = /(flat\\s)?\\s*\\bvarying\\b/;\n const regex = isFragment && this._fragmentIsGLES3 ? inRegex : !isFragment && this._vertexIsGLES3 ? outRegex : varyingRegex;\n return regex.test(varying);\n }\n varyingProcessor(varying, isFragment, preProcessors) {\n this._preProcessors = preProcessors;\n const outRegex = /\\s*(flat)?\\s*out\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/gm;\n const inRegex = /\\s*(flat)?\\s*in\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/gm;\n const varyingRegex = /\\s*(flat)?\\s*varying\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/gm;\n const regex = isFragment && this._fragmentIsGLES3 ? inRegex : !isFragment && this._vertexIsGLES3 ? outRegex : varyingRegex;\n const match = regex.exec(varying);\n if (match !== null) {\n const interpolationQualifier = match[1] ?? \"\";\n const varyingType = match[2];\n const name = match[3];\n let location;\n if (isFragment) {\n location = this._webgpuProcessingContext.availableVaryings[name];\n this._missingVaryings[location] = \"\";\n if (location === undefined) {\n Logger.Warn(`Invalid fragment shader: The varying named \"${name}\" is not declared in the vertex shader! This declaration will be ignored.`);\n }\n }\n else {\n location = this._webgpuProcessingContext.getVaryingNextLocation(varyingType, this._getArraySize(name, varyingType, preProcessors)[2]);\n this._webgpuProcessingContext.availableVaryings[name] = location;\n this._missingVaryings[location] = `layout(location = ${location}) ${interpolationQualifier} in ${varyingType} ${name};`;\n }\n varying = varying.replace(match[0], location === undefined ? \"\" : `layout(location = ${location}) ${interpolationQualifier} ${isFragment ? \"in\" : \"out\"} ${varyingType} ${name};`);\n }\n return varying;\n }\n attributeProcessor(attribute, preProcessors) {\n this._preProcessors = preProcessors;\n const inRegex = /\\s*in\\s+(\\S+)\\s+(\\S+)\\s*;/gm;\n const attribRegex = /\\s*attribute\\s+(\\S+)\\s+(\\S+)\\s*;/gm;\n const regex = this._vertexIsGLES3 ? inRegex : attribRegex;\n const match = regex.exec(attribute);\n if (match !== null) {\n const attributeType = match[1];\n const name = match[2];\n const location = this._webgpuProcessingContext.getAttributeNextLocation(attributeType, this._getArraySize(name, attributeType, preProcessors)[2]);\n this._webgpuProcessingContext.availableAttributes[name] = location;\n this._webgpuProcessingContext.orderedAttributes[location] = name;\n const numComponents = this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents[name];\n if (numComponents !== undefined) {\n // Special case for an int/ivecX vertex buffer that is used as a float/vecX attribute in the shader.\n const newType = numComponents < 0 ? (numComponents === -1 ? \"int\" : \"ivec\" + -numComponents) : numComponents === 1 ? \"uint\" : \"uvec\" + numComponents;\n const newName = `_int_${name}_`;\n attribute = attribute.replace(match[0], `layout(location = ${location}) in ${newType} ${newName}; ${attributeType} ${name} = ${attributeType}(${newName});`);\n }\n else {\n attribute = attribute.replace(match[0], `layout(location = ${location}) in ${attributeType} ${name};`);\n }\n }\n return attribute;\n }\n uniformProcessor(uniform, isFragment, preProcessors) {\n this._preProcessors = preProcessors;\n const uniformRegex = /\\s*uniform\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s+(\\S+)\\s*;/gm;\n const match = uniformRegex.exec(uniform);\n if (match !== null) {\n let uniformType = match[1];\n let name = match[2];\n if (uniformType.indexOf(\"sampler\") === 0 || uniformType.indexOf(\"sampler\") === 1) {\n let arraySize = 0; // 0 means the texture is not declared as an array\n [name, uniformType, arraySize] = this._getArraySize(name, uniformType, preProcessors);\n let textureInfo = this._webgpuProcessingContext.availableTextures[name];\n if (!textureInfo) {\n textureInfo = {\n autoBindSampler: true,\n isTextureArray: arraySize > 0,\n isStorageTexture: false,\n textures: [],\n sampleType: \"float\" /* WebGPUConstants.TextureSampleType.Float */,\n };\n for (let i = 0; i < (arraySize || 1); ++i) {\n textureInfo.textures.push(this._webgpuProcessingContext.getNextFreeUBOBinding());\n }\n }\n const samplerType = WebGPUShaderProcessor._SamplerTypeByWebGLSamplerType[uniformType] ?? \"sampler\";\n const isComparisonSampler = !!WebGPUShaderProcessor._IsComparisonSamplerByWebGPUSamplerType[samplerType];\n const samplerBindingType = isComparisonSampler ? \"comparison\" /* WebGPUConstants.SamplerBindingType.Comparison */ : \"filtering\" /* WebGPUConstants.SamplerBindingType.Filtering */;\n const samplerName = name + `Sampler`;\n let samplerInfo = this._webgpuProcessingContext.availableSamplers[samplerName];\n if (!samplerInfo) {\n samplerInfo = {\n binding: this._webgpuProcessingContext.getNextFreeUBOBinding(),\n type: samplerBindingType,\n };\n }\n const componentType = uniformType.charAt(0) === \"u\" ? \"u\" : uniformType.charAt(0) === \"i\" ? \"i\" : \"\";\n if (componentType) {\n uniformType = uniformType.substring(1);\n }\n const sampleType = isComparisonSampler\n ? \"depth\" /* WebGPUConstants.TextureSampleType.Depth */\n : componentType === \"u\"\n ? \"uint\" /* WebGPUConstants.TextureSampleType.Uint */\n : componentType === \"i\"\n ? \"sint\" /* WebGPUConstants.TextureSampleType.Sint */\n : \"float\" /* WebGPUConstants.TextureSampleType.Float */;\n textureInfo.sampleType = sampleType;\n const isTextureArray = arraySize > 0;\n const samplerGroupIndex = samplerInfo.binding.groupIndex;\n const samplerBindingIndex = samplerInfo.binding.bindingIndex;\n const samplerFunction = WebGPUShaderProcessor._SamplerFunctionByWebGLSamplerType[uniformType];\n const textureType = WebGPUShaderProcessor._TextureTypeByWebGLSamplerType[uniformType];\n const textureDimension = WebGPUShaderProcessor._GpuTextureViewDimensionByWebGPUTextureType[textureType];\n // Manage textures and samplers.\n if (!isTextureArray) {\n arraySize = 1;\n uniform = `layout(set = ${samplerGroupIndex}, binding = ${samplerBindingIndex}) uniform ${samplerType} ${samplerName};\r\n layout(set = ${textureInfo.textures[0].groupIndex}, binding = ${textureInfo.textures[0].bindingIndex}) uniform ${componentType}${textureType} ${name}Texture;\r\n #define ${name} ${componentType}${samplerFunction}(${name}Texture, ${samplerName})`;\n }\n else {\n const layouts = [];\n layouts.push(`layout(set = ${samplerGroupIndex}, binding = ${samplerBindingIndex}) uniform ${componentType}${samplerType} ${samplerName};`);\n uniform = `\\n`;\n for (let i = 0; i < arraySize; ++i) {\n const textureSetIndex = textureInfo.textures[i].groupIndex;\n const textureBindingIndex = textureInfo.textures[i].bindingIndex;\n layouts.push(`layout(set = ${textureSetIndex}, binding = ${textureBindingIndex}) uniform ${textureType} ${name}Texture${i};`);\n uniform += `${i > 0 ? \"\\n\" : \"\"}#define ${name}${i} ${componentType}${samplerFunction}(${name}Texture${i}, ${samplerName})`;\n }\n uniform = layouts.join(\"\\n\") + uniform;\n this._textureArrayProcessing.push(name);\n }\n this._webgpuProcessingContext.availableTextures[name] = textureInfo;\n this._webgpuProcessingContext.availableSamplers[samplerName] = samplerInfo;\n this._addSamplerBindingDescription(samplerName, samplerInfo, !isFragment);\n for (let i = 0; i < arraySize; ++i) {\n this._addTextureBindingDescription(name, textureInfo, i, textureDimension, null, !isFragment);\n }\n }\n else {\n this._addUniformToLeftOverUBO(name, uniformType, preProcessors);\n uniform = \"\";\n }\n }\n return uniform;\n }\n uniformBufferProcessor(uniformBuffer, isFragment) {\n const uboRegex = /uniform\\s+(\\w+)/gm;\n const match = uboRegex.exec(uniformBuffer);\n if (match !== null) {\n const name = match[1];\n let uniformBufferInfo = this._webgpuProcessingContext.availableBuffers[name];\n if (!uniformBufferInfo) {\n const knownUBO = WebGPUShaderProcessingContext.KnownUBOs[name];\n let binding;\n if (knownUBO && knownUBO.binding.groupIndex !== -1) {\n binding = knownUBO.binding;\n }\n else {\n binding = this._webgpuProcessingContext.getNextFreeUBOBinding();\n }\n uniformBufferInfo = { binding };\n this._webgpuProcessingContext.availableBuffers[name] = uniformBufferInfo;\n }\n this._addBufferBindingDescription(name, uniformBufferInfo, \"uniform\" /* WebGPUConstants.BufferBindingType.Uniform */, !isFragment);\n uniformBuffer = uniformBuffer.replace(\"uniform\", `layout(set = ${uniformBufferInfo.binding.groupIndex}, binding = ${uniformBufferInfo.binding.bindingIndex}) uniform`);\n }\n return uniformBuffer;\n }\n postProcessor(code, defines, isFragment, _processingContext, _parameters) {\n const hasDrawBuffersExtension = code.search(/#extension.+GL_EXT_draw_buffers.+require/) !== -1;\n // Remove extensions\n const regex = /#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g;\n code = code.replace(regex, \"\");\n // Replace instructions\n code = code.replace(/texture2D\\s*\\(/g, \"texture(\");\n if (isFragment) {\n const hasFragCoord = code.indexOf(\"gl_FragCoord\") >= 0;\n const fragCoordCode = `\r\n glFragCoord_ = gl_FragCoord;\r\n if (yFactor_ == 1.) {\r\n glFragCoord_.y = textureOutputHeight_ - glFragCoord_.y;\r\n }\r\n `;\n const injectCode = hasFragCoord ? \"vec4 glFragCoord_;\\n\" : \"\";\n const hasOutput = code.search(/layout *\\(location *= *0\\) *out/g) !== -1;\n code = code.replace(/texture2DLodEXT\\s*\\(/g, \"textureLod(\");\n code = code.replace(/textureCubeLodEXT\\s*\\(/g, \"textureLod(\");\n code = code.replace(/textureCube\\s*\\(/g, \"texture(\");\n code = code.replace(/gl_FragDepthEXT/g, \"gl_FragDepth\");\n code = code.replace(/gl_FragColor/g, \"glFragColor\");\n code = code.replace(/gl_FragData/g, \"glFragData\");\n code = code.replace(/gl_FragCoord/g, \"glFragCoord_\");\n if (!this._fragmentIsGLES3) {\n code = code.replace(/void\\s+?main\\s*\\(/g, (hasDrawBuffersExtension || hasOutput ? \"\" : \"layout(location = 0) out vec4 glFragColor;\\n\") + \"void main(\");\n }\n else {\n const match = /^\\s*out\\s+\\S+\\s+\\S+\\s*;/gm.exec(code);\n if (match !== null) {\n code = code.substring(0, match.index) + \"layout(location = 0) \" + code.substring(match.index);\n }\n }\n code = code.replace(/dFdy/g, \"(-yFactor_)*dFdy\"); // will also handle dFdyCoarse and dFdyFine\n code = code.replace(\"##INJECTCODE##\", injectCode);\n if (hasFragCoord) {\n code = InjectStartingAndEndingCode(code, \"void main\", fragCoordCode);\n }\n }\n else {\n code = code.replace(/gl_InstanceID/g, \"gl_InstanceIndex\");\n code = code.replace(/gl_VertexID/g, \"gl_VertexIndex\");\n const hasMultiviewExtension = defines.indexOf(\"#define MULTIVIEW\") !== -1;\n if (hasMultiviewExtension) {\n return \"#extension GL_OVR_multiview2 : require\\nlayout (num_views = 2) in;\\n\" + code;\n }\n }\n // Flip Y + convert z range from [-1,1] to [0,1]\n if (!isFragment) {\n const lastClosingCurly = code.lastIndexOf(\"}\");\n code = code.substring(0, lastClosingCurly);\n code += \"gl_Position.y *= yFactor_;\\n\";\n // isNDCHalfZRange is always true in WebGPU\n code += \"}\";\n }\n return code;\n }\n _applyTextureArrayProcessing(code, name) {\n // Replaces the occurrences of name[XX] by nameXX\n const regex = new RegExp(name + \"\\\\s*\\\\[(.+)?\\\\]\", \"gm\");\n let match = regex.exec(code);\n while (match !== null) {\n const index = match[1];\n let iindex = +index;\n if (this._preProcessors && isNaN(iindex)) {\n iindex = +this._preProcessors[index.trim()];\n }\n code = code.replace(match[0], name + iindex);\n match = regex.exec(code);\n }\n return code;\n }\n _generateLeftOverUBOCode(name, uniformBufferDescription) {\n let ubo = `layout(set = ${uniformBufferDescription.binding.groupIndex}, binding = ${uniformBufferDescription.binding.bindingIndex}) uniform ${name} {\\n `;\n for (const leftOverUniform of this._webgpuProcessingContext.leftOverUniforms) {\n if (leftOverUniform.length > 0) {\n ubo += ` ${leftOverUniform.type} ${leftOverUniform.name}[${leftOverUniform.length}];\\n`;\n }\n else {\n ubo += ` ${leftOverUniform.type} ${leftOverUniform.name};\\n`;\n }\n }\n ubo += \"};\\n\\n\";\n return ubo;\n }\n finalizeShaders(vertexCode, fragmentCode) {\n // make replacements for texture names in the texture array case\n for (let i = 0; i < this._textureArrayProcessing.length; ++i) {\n const name = this._textureArrayProcessing[i];\n vertexCode = this._applyTextureArrayProcessing(vertexCode, name);\n fragmentCode = this._applyTextureArrayProcessing(fragmentCode, name);\n }\n // inject the missing varying in the fragment shader\n for (let i = 0; i < this._missingVaryings.length; ++i) {\n const decl = this._missingVaryings[i];\n if (decl && decl.length > 0) {\n fragmentCode = decl + \"\\n\" + fragmentCode;\n }\n }\n // Builds the leftover UBOs.\n const leftOverUBO = this._buildLeftOverUBO();\n vertexCode = leftOverUBO + vertexCode;\n fragmentCode = leftOverUBO + fragmentCode;\n this._collectBindingNames();\n this._preCreateBindGroupEntries();\n this._preProcessors = null;\n this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents = {};\n return { vertexCode, fragmentCode };\n }\n}\n","import { WebGPUShaderProcessingContext } from \"./webgpuShaderProcessingContext.js\";\nimport { Logger } from \"../../Misc/logger.js\";\nimport { WebGPUShaderProcessor } from \"./webgpuShaderProcessor.js\";\nimport { RemoveComments, InjectStartingAndEndingCode } from \"../../Misc/codeStringParsingTools.js\";\n\nimport \"../../ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js\";\nimport \"../../ShadersWGSL/ShadersInclude/bakedVertexAnimation.js\";\nimport \"../../ShadersWGSL/ShadersInclude/instancesDeclaration.js\";\nimport \"../../ShadersWGSL/ShadersInclude/instancesVertex.js\";\nimport \"../../ShadersWGSL/ShadersInclude/helperFunctions.js\";\nimport \"../../ShadersWGSL/ShadersInclude/fresnelFunction.js\";\nimport \"../../ShadersWGSL/ShadersInclude/meshUboDeclaration.js\";\nimport \"../../ShadersWGSL/ShadersInclude/sceneUboDeclaration.js\";\nimport \"../../ShadersWGSL/ShadersInclude/decalFragment.js\";\nconst builtInName_frag_depth = \"fragmentOutputs.fragDepth\";\nconst leftOverVarName = \"uniforms\";\nconst internalsVarName = \"internals\";\nconst gpuTextureViewDimensionByWebGPUTextureFunction = {\n texture_1d: \"1d\" /* WebGPUConstants.TextureViewDimension.E1d */,\n texture_2d: \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n texture_2d_array: \"2d-array\" /* WebGPUConstants.TextureViewDimension.E2dArray */,\n texture_3d: \"3d\" /* WebGPUConstants.TextureViewDimension.E3d */,\n texture_cube: \"cube\" /* WebGPUConstants.TextureViewDimension.Cube */,\n texture_cube_array: \"cube-array\" /* WebGPUConstants.TextureViewDimension.CubeArray */,\n texture_multisampled_2d: \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n texture_depth_2d: \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n texture_depth_2d_array: \"2d-array\" /* WebGPUConstants.TextureViewDimension.E2dArray */,\n texture_depth_cube: \"cube\" /* WebGPUConstants.TextureViewDimension.Cube */,\n texture_depth_cube_array: \"cube-array\" /* WebGPUConstants.TextureViewDimension.CubeArray */,\n texture_depth_multisampled_2d: \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n texture_storage_1d: \"1d\" /* WebGPUConstants.TextureViewDimension.E1d */,\n texture_storage_2d: \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n texture_storage_2d_array: \"2d-array\" /* WebGPUConstants.TextureViewDimension.E2dArray */,\n texture_storage_3d: \"3d\" /* WebGPUConstants.TextureViewDimension.E3d */,\n texture_external: null,\n};\n/** @internal */\nexport class WebGPUShaderProcessorWGSL extends WebGPUShaderProcessor {\n constructor() {\n super(...arguments);\n this.shaderLanguage = 1 /* ShaderLanguage.WGSL */;\n this.uniformRegexp = /uniform\\s+(\\w+)\\s*:\\s*(.+)\\s*;/;\n this.textureRegexp = /var\\s+(\\w+)\\s*:\\s*((array<\\s*)?(texture_\\w+)\\s*(<\\s*(.+)\\s*>)?\\s*(,\\s*\\w+\\s*>\\s*)?);/;\n this.noPrecision = true;\n this.pureMode = false;\n }\n preProcessor(code, defines, preProcessors, isFragment, processingContext) {\n // Convert defines into const\n for (const key in preProcessors) {\n if (key === \"__VERSION__\") {\n continue;\n }\n const value = preProcessors[key];\n if (!isNaN(parseInt(value)) || !isNaN(parseFloat(value))) {\n code = `const ${key} = ${value};\\n` + code;\n }\n }\n return code;\n }\n _getArraySize(name, uniformType, preProcessors) {\n let length = 0;\n const endArray = uniformType.lastIndexOf(\">\");\n if (uniformType.indexOf(\"array\") >= 0 && endArray > 0) {\n let startArray = endArray;\n while (startArray > 0 && uniformType.charAt(startArray) !== \" \" && uniformType.charAt(startArray) !== \",\") {\n startArray--;\n }\n const lengthInString = uniformType.substring(startArray + 1, endArray);\n length = +lengthInString;\n if (isNaN(length)) {\n length = +preProcessors[lengthInString.trim()];\n }\n while (startArray > 0 && (uniformType.charAt(startArray) === \" \" || uniformType.charAt(startArray) === \",\")) {\n startArray--;\n }\n uniformType = uniformType.substring(uniformType.indexOf(\"<\") + 1, startArray + 1);\n }\n return [name, uniformType, length];\n }\n initializeShaders(processingContext) {\n this._webgpuProcessingContext = processingContext;\n this._attributesInputWGSL = [];\n this._attributesWGSL = [];\n this._attributesConversionCodeWGSL = [];\n this._hasNonFloatAttribute = false;\n this._varyingsWGSL = [];\n this._varyingNamesWGSL = [];\n this._stridedUniformArrays = [];\n }\n preProcessShaderCode(code) {\n // Same check as in webgpuShaderProcessorsGLSL to avoid same ubDelcaration to be injected twice.\n const ubDeclaration = this.pureMode\n ? \"\"\n : `struct ${WebGPUShaderProcessor.InternalsUBOName} {\\n yFactor_: f32,\\n textureOutputHeight_: f32,\\n};\\nvar ${internalsVarName} : ${WebGPUShaderProcessor.InternalsUBOName};\\n`;\n const alreadyInjected = code.indexOf(ubDeclaration) !== -1;\n return alreadyInjected ? code : ubDeclaration + RemoveComments(code);\n }\n varyingCheck(varying) {\n const regex = /(flat|linear|perspective)?\\s*(center|centroid|sample)?\\s*\\bvarying\\b/;\n return regex.test(varying);\n }\n varyingProcessor(varying, isFragment, preProcessors) {\n const varyingRegex = /\\s*(flat|linear|perspective)?\\s*(center|centroid|sample)?\\s*varying\\s+(?:(?:highp)?|(?:lowp)?)\\s*(\\S+)\\s*:\\s*(.+)\\s*;/gm;\n const match = varyingRegex.exec(varying);\n if (match !== null) {\n const interpolationType = match[1] ?? \"perspective\";\n const interpolationSampling = match[2] ?? \"center\";\n const varyingType = match[4];\n const name = match[3];\n const interpolation = interpolationType === \"flat\" ? `@interpolate(${interpolationType})` : `@interpolate(${interpolationType}, ${interpolationSampling})`;\n let location;\n if (isFragment) {\n location = this._webgpuProcessingContext.availableVaryings[name];\n if (location === undefined) {\n Logger.Warn(`Invalid fragment shader: The varying named \"${name}\" is not declared in the vertex shader! This declaration will be ignored.`);\n }\n }\n else {\n location = this._webgpuProcessingContext.getVaryingNextLocation(varyingType, this._getArraySize(name, varyingType, preProcessors)[2]);\n this._webgpuProcessingContext.availableVaryings[name] = location;\n this._varyingsWGSL.push(` @location(${location}) ${interpolation} ${name} : ${varyingType},`);\n this._varyingNamesWGSL.push(name);\n }\n varying = \"\";\n }\n return varying;\n }\n attributeProcessor(attribute, preProcessors) {\n const attribRegex = /\\s*attribute\\s+(\\S+)\\s*:\\s*(.+)\\s*;/gm;\n const match = attribRegex.exec(attribute);\n if (match !== null) {\n const attributeType = match[2];\n const name = match[1];\n const location = this._webgpuProcessingContext.getAttributeNextLocation(attributeType, this._getArraySize(name, attributeType, preProcessors)[2]);\n this._webgpuProcessingContext.availableAttributes[name] = location;\n this._webgpuProcessingContext.orderedAttributes[location] = name;\n const numComponents = this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents[name];\n if (numComponents !== undefined) {\n // Special case for an int/ivecX vertex buffer that is used as a float/vecX attribute in the shader.\n const newType = numComponents < 0 ? (numComponents === -1 ? \"i32\" : \"vec\" + -numComponents + \"\") : numComponents === 1 ? \"u32\" : \"vec\" + numComponents + \"\";\n const newName = `_int_${name}_`;\n this._attributesInputWGSL.push(`@location(${location}) ${newName} : ${newType},`);\n this._attributesWGSL.push(`${name} : ${attributeType},`);\n this._attributesConversionCodeWGSL.push(`vertexInputs.${name} = ${attributeType}(vertexInputs_.${newName});`);\n this._hasNonFloatAttribute = true;\n }\n else {\n this._attributesInputWGSL.push(`@location(${location}) ${name} : ${attributeType},`);\n this._attributesWGSL.push(`${name} : ${attributeType},`);\n this._attributesConversionCodeWGSL.push(`vertexInputs.${name} = vertexInputs_.${name};`);\n }\n attribute = \"\";\n }\n return attribute;\n }\n uniformProcessor(uniform, isFragment, preProcessors) {\n const match = this.uniformRegexp.exec(uniform);\n if (match !== null) {\n const uniformType = match[2];\n const name = match[1];\n this._addUniformToLeftOverUBO(name, uniformType, preProcessors);\n uniform = \"\";\n }\n return uniform;\n }\n textureProcessor(texture, isFragment, preProcessors) {\n const match = this.textureRegexp.exec(texture);\n if (match !== null) {\n const name = match[1]; // name of the variable\n const type = match[2]; // texture_2d or array, 5> for eg\n const isArrayOfTexture = !!match[3];\n const textureFunc = match[4]; // texture_2d, texture_depth_2d, etc\n const isStorageTexture = textureFunc.indexOf(\"storage\") > 0;\n const componentType = match[6]; // f32 or i32 or u32 or undefined\n const storageTextureFormat = isStorageTexture ? componentType.substring(0, componentType.indexOf(\",\")).trim() : null;\n let arraySize = isArrayOfTexture ? this._getArraySize(name, type, preProcessors)[2] : 0;\n let textureInfo = this._webgpuProcessingContext.availableTextures[name];\n if (!textureInfo) {\n textureInfo = {\n isTextureArray: arraySize > 0,\n isStorageTexture,\n textures: [],\n sampleType: \"float\" /* WebGPUConstants.TextureSampleType.Float */,\n };\n arraySize = arraySize || 1;\n for (let i = 0; i < arraySize; ++i) {\n textureInfo.textures.push(this._webgpuProcessingContext.getNextFreeUBOBinding());\n }\n }\n else {\n arraySize = textureInfo.textures.length;\n }\n this._webgpuProcessingContext.availableTextures[name] = textureInfo;\n const isDepthTexture = textureFunc.indexOf(\"depth\") > 0;\n const textureDimension = gpuTextureViewDimensionByWebGPUTextureFunction[textureFunc];\n const sampleType = isDepthTexture\n ? \"depth\" /* WebGPUConstants.TextureSampleType.Depth */\n : componentType === \"u32\"\n ? \"uint\" /* WebGPUConstants.TextureSampleType.Uint */\n : componentType === \"i32\"\n ? \"sint\" /* WebGPUConstants.TextureSampleType.Sint */\n : \"float\" /* WebGPUConstants.TextureSampleType.Float */;\n textureInfo.sampleType = sampleType;\n if (textureDimension === undefined) {\n // eslint-disable-next-line no-throw-literal\n throw `Can't get the texture dimension corresponding to the texture function \"${textureFunc}\"!`;\n }\n for (let i = 0; i < arraySize; ++i) {\n const { groupIndex, bindingIndex } = textureInfo.textures[i];\n if (i === 0) {\n texture = `@group(${groupIndex}) @binding(${bindingIndex}) ${texture}`;\n }\n this._addTextureBindingDescription(name, textureInfo, i, textureDimension, storageTextureFormat, !isFragment);\n }\n }\n return texture;\n }\n // We need to process defines which are directly in the files themselves\n postProcessor(code) {\n const definePattern = /#define (.+?) (.+?)$/gm;\n let match;\n while ((match = definePattern.exec(code)) !== null) {\n code = code.replace(new RegExp(match[1], \"g\"), match[2]);\n }\n return code;\n }\n finalizeShaders(vertexCode, fragmentCode) {\n const fragCoordCode = fragmentCode.indexOf(\"fragmentInputs.position\") >= 0 && !this.pureMode\n ? `\r\n if (internals.yFactor_ == 1.) {\r\n fragmentInputs.position.y = internals.textureOutputHeight_ - fragmentInputs.position.y;\r\n }\r\n `\n : \"\";\n // Add the group/binding info to the sampler declaration (var xxx: sampler|sampler_comparison)\n vertexCode = this._processSamplers(vertexCode, true);\n fragmentCode = this._processSamplers(fragmentCode, false);\n // Add the group/binding info to the uniform/storage buffer declarations (var XXX:YYY or var XXX:YYY)\n vertexCode = this._processCustomBuffers(vertexCode, true);\n fragmentCode = this._processCustomBuffers(fragmentCode, false);\n // Builds the leftover UBOs.\n const leftOverUBO = this._buildLeftOverUBO();\n vertexCode = leftOverUBO + vertexCode;\n fragmentCode = leftOverUBO + fragmentCode;\n // Vertex code\n vertexCode = vertexCode.replace(/#define (\\w+)\\s+(\\d+\\.?\\d*)/g, \"const $1 = $2;\");\n vertexCode = vertexCode.replace(/#define /g, \"//#define \");\n vertexCode = this._processStridedUniformArrays(vertexCode);\n let vertexInputs = \"struct VertexInputs {\\n @builtin(vertex_index) vertexIndex : u32,\\n @builtin(instance_index) instanceIndex : u32,\\n\";\n if (this._attributesInputWGSL.length > 0) {\n vertexInputs += this._attributesInputWGSL.join(\"\\n\");\n }\n vertexInputs += \"\\n};\\nvar vertexInputs\" + (this._hasNonFloatAttribute ? \"_\" : \"\") + \" : VertexInputs;\\n\";\n if (this._hasNonFloatAttribute) {\n vertexInputs += \"struct VertexInputs_ {\\n vertexIndex : u32, instanceIndex : u32,\\n\";\n vertexInputs += this._attributesWGSL.join(\"\\n\");\n vertexInputs += \"\\n};\\nvar vertexInputs : VertexInputs_;\\n\";\n }\n let vertexOutputs = \"struct FragmentInputs {\\n @builtin(position) position : vec4,\\n\";\n if (this._varyingsWGSL.length > 0) {\n vertexOutputs += this._varyingsWGSL.join(\"\\n\");\n }\n vertexOutputs += \"\\n};\\nvar vertexOutputs : FragmentInputs;\\n\";\n vertexCode = vertexInputs + vertexOutputs + vertexCode;\n let vertexMainStartingCode = `\\n vertexInputs${this._hasNonFloatAttribute ? \"_\" : \"\"} = input;\\n`;\n if (this._hasNonFloatAttribute) {\n vertexMainStartingCode += \"vertexInputs.vertexIndex = vertexInputs_.vertexIndex;\\nvertexInputs.instanceIndex = vertexInputs_.instanceIndex;\\n\";\n vertexMainStartingCode += this._attributesConversionCodeWGSL.join(\"\\n\");\n vertexMainStartingCode += \"\\n\";\n }\n const vertexMainEndingCode = this.pureMode\n ? ` return vertexOutputs;`\n : ` vertexOutputs.position.y = vertexOutputs.position.y * internals.yFactor_;\\n return vertexOutputs;`;\n let needDiagnosticOff = vertexCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) !== -1;\n vertexCode =\n (needDiagnosticOff ? \"diagnostic(off, derivative_uniformity);\\n\" : \"\") +\n \"diagnostic(off, chromium.unreachable_code);\\n\" +\n InjectStartingAndEndingCode(vertexCode, \"fn main\", vertexMainStartingCode, vertexMainEndingCode);\n // fragment code\n fragmentCode = fragmentCode.replace(/#define (\\w+)\\s+(\\d+\\.?\\d*)/g, \"const $1 = $2;\");\n fragmentCode = fragmentCode.replace(/#define /g, \"//#define \");\n fragmentCode = this._processStridedUniformArrays(fragmentCode);\n if (!this.pureMode) {\n fragmentCode = fragmentCode.replace(/dpdy/g, \"(-internals.yFactor_)*dpdy\"); // will also handle dpdyCoarse and dpdyFine\n }\n let fragmentInputs = \"struct FragmentInputs {\\n @builtin(position) position : vec4,\\n @builtin(front_facing) frontFacing : bool,\\n\";\n if (this._varyingsWGSL.length > 0) {\n fragmentInputs += this._varyingsWGSL.join(\"\\n\");\n }\n fragmentInputs += \"\\n};\\nvar fragmentInputs : FragmentInputs;\\n\";\n let fragmentOutputs = \"struct FragmentOutputs {\\n\";\n // Adding fragData output locations\n const regexRoot = \"fragmentOutputs\\\\.fragData\";\n let match = fragmentCode.match(new RegExp(regexRoot + \"0\", \"g\"));\n let indexLocation = 0;\n if (match) {\n fragmentOutputs += ` @location(${indexLocation}) fragData0 : vec4,\\n`;\n indexLocation++;\n for (let index = 1; index < 8; index++) {\n match = fragmentCode.match(new RegExp(regexRoot + index, \"g\"));\n if (match) {\n fragmentOutputs += ` @location(${indexLocation}) fragData${indexLocation} : vec4,\\n`;\n indexLocation++;\n }\n }\n if (fragmentCode.indexOf(\"MRT_AND_COLOR\") !== -1) {\n fragmentOutputs += ` @location(${indexLocation}) color : vec4,\\n`;\n indexLocation++;\n }\n }\n // Adding fragData output locations\n const regex = /oitDepthSampler/;\n match = fragmentCode.match(regex);\n if (match) {\n fragmentOutputs += ` @location(${indexLocation++}) depth : vec2,\\n`;\n fragmentOutputs += ` @location(${indexLocation++}) frontColor : vec4,\\n`;\n fragmentOutputs += ` @location(${indexLocation++}) backColor : vec4,\\n`;\n }\n if (indexLocation === 0) {\n fragmentOutputs += \" @location(0) color : vec4,\\n\";\n indexLocation++;\n }\n // FragDepth\n let hasFragDepth = false;\n let idx = 0;\n while (!hasFragDepth) {\n idx = fragmentCode.indexOf(builtInName_frag_depth, idx);\n if (idx < 0) {\n break;\n }\n const saveIndex = idx;\n hasFragDepth = true;\n while (idx > 1 && fragmentCode.charAt(idx) !== \"\\n\") {\n if (fragmentCode.charAt(idx) === \"/\" && fragmentCode.charAt(idx - 1) === \"/\") {\n hasFragDepth = false;\n break;\n }\n idx--;\n }\n idx = saveIndex + builtInName_frag_depth.length;\n }\n if (hasFragDepth) {\n fragmentOutputs += \" @builtin(frag_depth) fragDepth: f32,\\n\";\n }\n fragmentOutputs += \"};\\nvar fragmentOutputs : FragmentOutputs;\\n\";\n fragmentCode = fragmentInputs + fragmentOutputs + fragmentCode;\n const fragmentStartingCode = \" fragmentInputs = input;\\n \" + fragCoordCode;\n const fragmentEndingCode = \" return fragmentOutputs;\";\n needDiagnosticOff = fragmentCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) !== -1;\n fragmentCode =\n (needDiagnosticOff ? \"diagnostic(off, derivative_uniformity);\\n\" : \"\") +\n \"diagnostic(off, chromium.unreachable_code);\\n\" +\n InjectStartingAndEndingCode(fragmentCode, \"fn main\", fragmentStartingCode, fragmentEndingCode);\n this._collectBindingNames();\n this._preCreateBindGroupEntries();\n this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents = {};\n return { vertexCode, fragmentCode };\n }\n _generateLeftOverUBOCode(name, uniformBufferDescription) {\n let stridedArrays = \"\";\n let ubo = `struct ${name} {\\n`;\n for (const leftOverUniform of this._webgpuProcessingContext.leftOverUniforms) {\n const type = leftOverUniform.type.replace(/^(.*?)(<.*>)?$/, \"$1\");\n const size = WebGPUShaderProcessor.UniformSizes[type];\n if (leftOverUniform.length > 0) {\n if (size <= 2) {\n const stridedArrayType = `${name}_${this._stridedUniformArrays.length}_strided_arr`;\n stridedArrays += `struct ${stridedArrayType} {\r\n @size(16)\r\n el: ${type},\r\n }`;\n this._stridedUniformArrays.push(leftOverUniform.name);\n ubo += ` @align(16) ${leftOverUniform.name} : array<${stridedArrayType}, ${leftOverUniform.length}>,\\n`;\n }\n else {\n ubo += ` ${leftOverUniform.name} : array<${leftOverUniform.type}, ${leftOverUniform.length}>,\\n`;\n }\n }\n else {\n ubo += ` ${leftOverUniform.name} : ${leftOverUniform.type},\\n`;\n }\n }\n ubo += \"};\\n\";\n ubo = `${stridedArrays}\\n${ubo}`;\n ubo += `@group(${uniformBufferDescription.binding.groupIndex}) @binding(${uniformBufferDescription.binding.bindingIndex}) var ${leftOverVarName} : ${name};\\n`;\n return ubo;\n }\n _processSamplers(code, isVertex) {\n const samplerRegexp = /var\\s+(\\w+Sampler)\\s*:\\s*(sampler|sampler_comparison)\\s*;/gm;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const match = samplerRegexp.exec(code);\n if (match === null) {\n break;\n }\n const name = match[1]; // name of the variable\n const samplerType = match[2]; // sampler or sampler_comparison\n const suffixLessLength = name.length - `Sampler`.length;\n const textureName = name.lastIndexOf(`Sampler`) === suffixLessLength ? name.substring(0, suffixLessLength) : null;\n const samplerBindingType = samplerType === \"sampler_comparison\" ? \"comparison\" /* WebGPUConstants.SamplerBindingType.Comparison */ : \"filtering\" /* WebGPUConstants.SamplerBindingType.Filtering */;\n if (textureName) {\n const textureInfo = this._webgpuProcessingContext.availableTextures[textureName];\n if (textureInfo) {\n textureInfo.autoBindSampler = true;\n }\n }\n let samplerInfo = this._webgpuProcessingContext.availableSamplers[name];\n if (!samplerInfo) {\n samplerInfo = {\n binding: this._webgpuProcessingContext.getNextFreeUBOBinding(),\n type: samplerBindingType,\n };\n this._webgpuProcessingContext.availableSamplers[name] = samplerInfo;\n }\n this._addSamplerBindingDescription(name, samplerInfo, isVertex);\n const part1 = code.substring(0, match.index);\n const insertPart = `@group(${samplerInfo.binding.groupIndex}) @binding(${samplerInfo.binding.bindingIndex}) `;\n const part2 = code.substring(match.index);\n code = part1 + insertPart + part2;\n samplerRegexp.lastIndex += insertPart.length;\n }\n return code;\n }\n _processCustomBuffers(code, isVertex) {\n const instantiateBufferRegexp = /var<\\s*(uniform|storage)\\s*(,\\s*(read|read_write)\\s*)?>\\s+(\\S+)\\s*:\\s*(\\S+)\\s*;/gm;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const match = instantiateBufferRegexp.exec(code);\n if (match === null) {\n break;\n }\n const type = match[1];\n const decoration = match[3];\n let name = match[4];\n const structName = match[5];\n let bufferInfo = this._webgpuProcessingContext.availableBuffers[name];\n if (!bufferInfo) {\n const knownUBO = type === \"uniform\" ? WebGPUShaderProcessingContext.KnownUBOs[structName] : null;\n let binding;\n if (knownUBO) {\n name = structName;\n binding = knownUBO.binding;\n if (binding.groupIndex === -1) {\n binding = this._webgpuProcessingContext.availableBuffers[name]?.binding;\n if (!binding) {\n binding = this._webgpuProcessingContext.getNextFreeUBOBinding();\n }\n }\n }\n else {\n binding = this._webgpuProcessingContext.getNextFreeUBOBinding();\n }\n bufferInfo = { binding };\n this._webgpuProcessingContext.availableBuffers[name] = bufferInfo;\n }\n this._addBufferBindingDescription(name, this._webgpuProcessingContext.availableBuffers[name], decoration === \"read_write\"\n ? \"storage\" /* WebGPUConstants.BufferBindingType.Storage */\n : type === \"storage\"\n ? \"read-only-storage\" /* WebGPUConstants.BufferBindingType.ReadOnlyStorage */\n : \"uniform\" /* WebGPUConstants.BufferBindingType.Uniform */, isVertex);\n const groupIndex = bufferInfo.binding.groupIndex;\n const bindingIndex = bufferInfo.binding.bindingIndex;\n const part1 = code.substring(0, match.index);\n const insertPart = `@group(${groupIndex}) @binding(${bindingIndex}) `;\n const part2 = code.substring(match.index);\n code = part1 + insertPart + part2;\n instantiateBufferRegexp.lastIndex += insertPart.length;\n }\n return code;\n }\n _processStridedUniformArrays(code) {\n for (const uniformArrayName of this._stridedUniformArrays) {\n code = code.replace(new RegExp(`${uniformArrayName}\\\\s*\\\\[(.*?)\\\\]`, \"g\"), `${uniformArrayName}[$1].el`);\n }\n return code;\n }\n}\n","import { ILog2 } from \"../../Maths/math.scalar.functions.js\";\nimport { WebGPUTextureHelper } from \"./webgpuTextureHelper.js\";\n/** @internal */\nexport class WebGPUHardwareTexture {\n get underlyingResource() {\n return this._webgpuTexture;\n }\n getMSAATexture(index) {\n return this._webgpuMSAATexture?.[index] ?? null;\n }\n setMSAATexture(texture, index) {\n if (!this._webgpuMSAATexture) {\n this._webgpuMSAATexture = [];\n }\n this._webgpuMSAATexture[index] = texture;\n }\n releaseMSAATexture(index) {\n if (this._webgpuMSAATexture) {\n if (index) {\n this._webgpuMSAATexture[index]?.destroy();\n delete this._webgpuMSAATexture[index];\n }\n else {\n for (const texture of this._webgpuMSAATexture) {\n texture?.destroy();\n }\n this._webgpuMSAATexture = null;\n }\n }\n }\n constructor(existingTexture = null) {\n /** @internal */\n this._originalFormatIsRGB = false;\n this.format = \"rgba8unorm\" /* WebGPUConstants.TextureFormat.RGBA8Unorm */;\n this.textureUsages = 0;\n this.textureAdditionalUsages = 0;\n this._webgpuTexture = existingTexture;\n this._webgpuMSAATexture = null;\n this.view = null;\n this.viewForWriting = null;\n }\n set(hardwareTexture) {\n this._webgpuTexture = hardwareTexture;\n }\n setUsage(_textureSource, generateMipMaps, is2DArray, isCube, is3D, width, height, depth) {\n let viewDimension = \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */;\n let arrayLayerCount = 1;\n if (isCube) {\n viewDimension = is2DArray ? \"cube-array\" /* WebGPUConstants.TextureViewDimension.CubeArray */ : \"cube\" /* WebGPUConstants.TextureViewDimension.Cube */;\n arrayLayerCount = 6 * (depth || 1);\n }\n else if (is3D) {\n viewDimension = \"3d\" /* WebGPUConstants.TextureViewDimension.E3d */;\n arrayLayerCount = 1;\n }\n else if (is2DArray) {\n viewDimension = \"2d-array\" /* WebGPUConstants.TextureViewDimension.E2dArray */;\n arrayLayerCount = depth;\n }\n const format = WebGPUTextureHelper.GetDepthFormatOnly(this.format);\n const aspect = WebGPUTextureHelper.HasDepthAndStencilAspects(this.format) ? \"depth-only\" /* WebGPUConstants.TextureAspect.DepthOnly */ : \"all\" /* WebGPUConstants.TextureAspect.All */;\n this.createView({\n label: `TextureView${is3D ? \"3D\" : isCube ? \"Cube\" : \"2D\"}${is2DArray ? \"_Array\" + arrayLayerCount : \"\"}_${width}x${height}_${generateMipMaps ? \"wmips\" : \"womips\"}_${this.format}_${viewDimension}`,\n format,\n dimension: viewDimension,\n mipLevelCount: generateMipMaps ? ILog2(Math.max(width, height)) + 1 : 1,\n baseArrayLayer: 0,\n baseMipLevel: 0,\n arrayLayerCount,\n aspect,\n });\n }\n createView(descriptor, createViewForWriting = false) {\n this.view = this._webgpuTexture.createView(descriptor);\n if (createViewForWriting && descriptor) {\n const saveNumMipMaps = descriptor.mipLevelCount;\n descriptor.mipLevelCount = 1;\n this.viewForWriting = this._webgpuTexture.createView(descriptor);\n descriptor.mipLevelCount = saveNumMipMaps;\n }\n }\n reset() {\n this._webgpuTexture = null;\n this._webgpuMSAATexture = null;\n this.view = null;\n this.viewForWriting = null;\n }\n release() {\n this._webgpuTexture?.destroy();\n this.releaseMSAATexture();\n this._copyInvertYTempTexture?.destroy();\n this.reset();\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable babylonjs/available */\n/* eslint-disable jsdoc/require-jsdoc */\n// License for the mipmap generation code:\n//\n// Copyright 2020 Brandon Jones\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\nimport * as WebGPUConstants from \"./webgpuConstants.js\";\n\nimport { WebGPUHardwareTexture } from \"./webgpuHardwareTexture.js\";\nimport { WebGPUTextureHelper } from \"./webgpuTextureHelper.js\";\nimport { Finalize, Initialize, Process } from \"../Processors/shaderProcessor.js\";\n// TODO WEBGPU improve mipmap generation by using compute shaders\nconst mipmapVertexSource = `\r\n const pos = array, 4>( vec2f(-1.0f, 1.0f), vec2f(1.0f, 1.0f), vec2f(-1.0f, -1.0f), vec2f(1.0f, -1.0f));\r\n const tex = array, 4>( vec2f(0.0f, 0.0f), vec2f(1.0f, 0.0f), vec2f(0.0f, 1.0f), vec2f(1.0f, 1.0f));\r\n\r\n varying vTex: vec2f;\r\n\r\n @vertex\r\n fn main(input : VertexInputs) -> FragmentInputs {\r\n vertexOutputs.vTex = tex[input.vertexIndex];\r\n vertexOutputs.position = vec4f(pos[input.vertexIndex], 0.0, 1.0);\r\n }\r\n `;\nconst mipmapFragmentSource = `\r\n var imgSampler: sampler;\r\n var img: texture_2d;\r\n\r\n varying vTex: vec2f;\r\n\r\n @fragment\r\n fn main(input: FragmentInputs) -> FragmentOutputs {\r\n fragmentOutputs.color = textureSample(img, imgSampler, input.vTex);\r\n }\r\n `;\nconst invertYPreMultiplyAlphaVertexSource = `\r\n const pos = array, 4>( vec2f(-1.0f, 1.0f), vec2f(1.0f, 1.0f), vec2f(-1.0f, -1.0f), vec2f(1.0f, -1.0f));\r\n const tex = array, 4>( vec2f(0.0f, 0.0f), vec2f(1.0f, 0.0f), vec2f(0.0f, 1.0f), vec2f(1.0f, 1.0f));\r\n\r\n var img: texture_2d;\r\n\r\n #ifdef INVERTY\r\n varying vTextureSize: vec2f;\r\n #endif\r\n\r\n @vertex\r\n fn main(input : VertexInputs) -> FragmentInputs {\r\n #ifdef INVERTY\r\n vertexOutputs.vTextureSize = vec2f(textureDimensions(img, 0));\r\n #endif\r\n vertexOutputs.position = vec4f(pos[input.vertexIndex], 0.0, 1.0);\r\n }\r\n `;\nconst invertYPreMultiplyAlphaFragmentSource = `\r\n var img: texture_2d;\r\n\r\n #ifdef INVERTY\r\n varying vTextureSize: vec2f;\r\n #endif\r\n\r\n @fragment\r\n fn main(input: FragmentInputs) -> FragmentOutputs {\r\n #ifdef INVERTY\r\n var color: vec4f = textureLoad(img, vec2i(i32(input.position.x), i32(input.vTextureSize.y - input.position.y)), 0);\r\n #else\r\n var color: vec4f = textureLoad(img, vec2i(input.position.xy), 0);\r\n #endif\r\n #ifdef PREMULTIPLYALPHA\r\n fragmentOutputs.color = vec4f(color.rgb * color.a, color.a);\r\n #endif\r\n fragmentOutputs.color = color;\r\n }\r\n `;\nconst invertYPreMultiplyAlphaWithOfstVertexSource = invertYPreMultiplyAlphaVertexSource;\nconst invertYPreMultiplyAlphaWithOfstFragmentSource = `\r\n var img: texture_2d;\r\n uniform ofstX: f32;\r\n uniform ofstY: f32;\r\n uniform width: f32;\r\n uniform height: f32;\r\n\r\n #ifdef INVERTY\r\n varying vTextureSize: vec2f;\r\n #endif\r\n\r\n @fragment\r\n fn main(input: FragmentInputs) -> FragmentOutputs {\r\n if (input.position.x < uniforms.ofstX || input.position.x >= uniforms.ofstX + uniforms.width) {\r\n discard;\r\n }\r\n if (input.position.y < uniforms.ofstY || input.position.y >= uniforms.ofstY + uniforms.height) {\r\n discard;\r\n }\r\n #ifdef INVERTY\r\n var color: vec4f = textureLoad(img, vec2i(i32(input.position.x), i32(uniforms.ofstY + uniforms.height - (input.position.y - uniforms.ofstY))), 0);\r\n #else\r\n var color: vec4f = textureLoad(img, vec2i(input.position.xy), 0);\r\n #endif\r\n #ifdef PREMULTIPLYALPHA\r\n color = vec4f(color.rgb * color.a, color.a);\r\n #endif\r\n fragmentOutputs.color = color;\r\n }\r\n `;\nconst clearVertexSource = `\r\n const pos = array, 4>( vec2f(-1.0f, 1.0f), vec2f(1.0f, 1.0f), vec2f(-1.0f, -1.0f), vec2f(1.0f, -1.0f));\r\n\r\n @vertex\r\n fn main(input : VertexInputs) -> FragmentInputs {\r\n vertexOutputs.position = vec4f(pos[input.vertexIndex], 0.0, 1.0);\r\n }\r\n `;\nconst clearFragmentSource = `\r\n uniform color: vec4f;\r\n\r\n\r\n @fragment\r\n fn main(input: FragmentInputs) -> FragmentOutputs {\r\n fragmentOutputs.color = uniforms.color;\r\n }\r\n `;\nconst copyVideoToTextureVertexSource = `\r\n struct VertexOutput {\r\n @builtin(position) Position : vec4,\r\n @location(0) fragUV : vec2\r\n }\r\n\r\n @vertex\r\n fn main(\r\n @builtin(vertex_index) VertexIndex : u32\r\n ) -> VertexOutput {\r\n var pos = array, 4>(\r\n vec2(-1.0, 1.0),\r\n vec2( 1.0, 1.0),\r\n vec2(-1.0, -1.0),\r\n vec2( 1.0, -1.0)\r\n );\r\n var tex = array, 4>(\r\n vec2(0.0, 0.0),\r\n vec2(1.0, 0.0),\r\n vec2(0.0, 1.0),\r\n vec2(1.0, 1.0)\r\n );\r\n\r\n var output: VertexOutput;\r\n\r\n output.Position = vec4(pos[VertexIndex], 0.0, 1.0);\r\n output.fragUV = tex[VertexIndex];\r\n\r\n return output;\r\n }\r\n `;\nconst copyVideoToTextureFragmentSource = `\r\n @group(0) @binding(0) var videoSampler: sampler;\r\n @group(0) @binding(1) var videoTexture: texture_external;\r\n\r\n @fragment\r\n fn main(\r\n @location(0) fragUV: vec2\r\n ) -> @location(0) vec4 {\r\n return textureSampleBaseClampToEdge(videoTexture, videoSampler, fragUV);\r\n }\r\n `;\nconst copyVideoToTextureInvertYFragmentSource = `\r\n @group(0) @binding(0) var videoSampler: sampler;\r\n @group(0) @binding(1) var videoTexture: texture_external;\r\n\r\n @fragment\r\n fn main(\r\n @location(0) fragUV: vec2\r\n ) -> @location(0) vec4 {\r\n return textureSampleBaseClampToEdge(videoTexture, videoSampler, vec2(fragUV.x, 1.0 - fragUV.y));\r\n }\r\n `;\nvar PipelineType;\n(function (PipelineType) {\n PipelineType[PipelineType[\"MipMap\"] = 0] = \"MipMap\";\n PipelineType[PipelineType[\"InvertYPremultiplyAlpha\"] = 1] = \"InvertYPremultiplyAlpha\";\n PipelineType[PipelineType[\"Clear\"] = 2] = \"Clear\";\n PipelineType[PipelineType[\"InvertYPremultiplyAlphaWithOfst\"] = 3] = \"InvertYPremultiplyAlphaWithOfst\";\n})(PipelineType || (PipelineType = {}));\nvar VideoPipelineType;\n(function (VideoPipelineType) {\n VideoPipelineType[VideoPipelineType[\"DontInvertY\"] = 0] = \"DontInvertY\";\n VideoPipelineType[VideoPipelineType[\"InvertY\"] = 1] = \"InvertY\";\n})(VideoPipelineType || (VideoPipelineType = {}));\nconst shadersForPipelineType = [\n { vertex: mipmapVertexSource, fragment: mipmapFragmentSource },\n { vertex: invertYPreMultiplyAlphaVertexSource, fragment: invertYPreMultiplyAlphaFragmentSource },\n { vertex: clearVertexSource, fragment: clearFragmentSource },\n { vertex: invertYPreMultiplyAlphaWithOfstVertexSource, fragment: invertYPreMultiplyAlphaWithOfstFragmentSource },\n];\n/**\n * Map a (renderable) texture format (GPUTextureFormat) to an index for fast lookup (in caches for eg)\n * The number of entries should not go over 64! Else, the code in WebGPUCacheRenderPipeline.setMRT should be updated\n */\nexport const renderableTextureFormatToIndex = {\n \"\": 0,\n r8unorm: 1,\n r8uint: 2,\n r8sint: 3,\n r16uint: 4,\n r16sint: 5,\n r16float: 6,\n rg8unorm: 7,\n rg8uint: 8,\n rg8sint: 9,\n r32uint: 10,\n r32sint: 11,\n r32float: 12,\n rg16uint: 13,\n rg16sint: 14,\n rg16float: 15,\n rgba8unorm: 16,\n \"rgba8unorm-srgb\": 17,\n rgba8uint: 18,\n rgba8sint: 19,\n bgra8unorm: 20,\n \"bgra8unorm-srgb\": 21,\n rgb10a2uint: 22,\n rgb10a2unorm: 23,\n /* rg11b10ufloat: this entry is dynamically added if the \"RG11B10UFloatRenderable\" extension is supported */\n rg32uint: 24,\n rg32sint: 25,\n rg32float: 26,\n rgba16uint: 27,\n rgba16sint: 28,\n rgba16float: 29,\n rgba32uint: 30,\n rgba32sint: 31,\n rgba32float: 32,\n stencil8: 33,\n depth16unorm: 34,\n depth24plus: 35,\n \"depth24plus-stencil8\": 36,\n depth32float: 37,\n \"depth32float-stencil8\": 38,\n};\n/** @internal */\nexport class WebGPUTextureManager {\n //------------------------------------------------------------------------------\n // Initialization / Helpers\n //------------------------------------------------------------------------------\n constructor(engine, device, bufferManager, enabledExtensions) {\n this._pipelines = {};\n this._compiledShaders = [];\n this._videoPipelines = {};\n this._videoCompiledShaders = [];\n this._deferredReleaseTextures = [];\n this._engine = engine;\n this._device = device;\n this._bufferManager = bufferManager;\n if (enabledExtensions.indexOf(\"rg11b10ufloat-renderable\" /* WebGPUConstants.FeatureName.RG11B10UFloatRenderable */) !== -1) {\n const keys = Object.keys(renderableTextureFormatToIndex);\n renderableTextureFormatToIndex[\"rg11b10ufloat\" /* WebGPUConstants.TextureFormat.RG11B10UFloat */] = renderableTextureFormatToIndex[keys[keys.length - 1]] + 1;\n }\n this._mipmapSampler = device.createSampler({ minFilter: \"linear\" /* WebGPUConstants.FilterMode.Linear */ });\n this._videoSampler = device.createSampler({ minFilter: \"linear\" /* WebGPUConstants.FilterMode.Linear */ });\n this._ubCopyWithOfst = this._bufferManager.createBuffer(4 * 4, WebGPUConstants.BufferUsage.Uniform | WebGPUConstants.BufferUsage.CopyDst, \"UBCopyWithOffset\").underlyingResource;\n this._getPipeline(\"rgba8unorm\" /* WebGPUConstants.TextureFormat.RGBA8Unorm */);\n this._getVideoPipeline(\"rgba8unorm\" /* WebGPUConstants.TextureFormat.RGBA8Unorm */);\n }\n _getPipeline(format, type = PipelineType.MipMap, params) {\n const index = type === PipelineType.MipMap\n ? 1 << 0\n : type === PipelineType.InvertYPremultiplyAlpha\n ? ((params.invertY ? 1 : 0) << 1) + ((params.premultiplyAlpha ? 1 : 0) << 2)\n : type === PipelineType.Clear\n ? 1 << 3\n : type === PipelineType.InvertYPremultiplyAlphaWithOfst\n ? ((params.invertY ? 1 : 0) << 4) + ((params.premultiplyAlpha ? 1 : 0) << 5)\n : 0;\n if (!this._pipelines[format]) {\n this._pipelines[format] = [];\n }\n let pipelineAndBGL = this._pipelines[format][index];\n if (!pipelineAndBGL) {\n let defines = \"\";\n if (type === PipelineType.InvertYPremultiplyAlpha || type === PipelineType.InvertYPremultiplyAlphaWithOfst) {\n if (params.invertY) {\n defines += \"#define INVERTY\\n\";\n }\n if (params.premultiplyAlpha) {\n defines += \"#define PREMULTIPLYALPHA\\n\";\n }\n }\n let modules = this._compiledShaders[index];\n if (!modules) {\n let vertexCode = shadersForPipelineType[type].vertex;\n let fragmentCode = shadersForPipelineType[type].fragment;\n const processorOptions = {\n defines: defines.split(\"\\n\"),\n indexParameters: null,\n isFragment: false,\n shouldUseHighPrecisionShader: true,\n processor: this._engine._getShaderProcessor(1 /* ShaderLanguage.WGSL */),\n supportsUniformBuffers: true,\n shadersRepository: \"\",\n includesShadersStore: {},\n version: (this._engine.version * 100).toString(),\n platformName: this._engine.shaderPlatformName,\n processingContext: this._engine._getShaderProcessingContext(1 /* ShaderLanguage.WGSL */, true),\n isNDCHalfZRange: this._engine.isNDCHalfZRange,\n useReverseDepthBuffer: this._engine.useReverseDepthBuffer,\n };\n Initialize(processorOptions);\n // Disable special additions not needed here\n processorOptions.processor.pureMode = true;\n Process(vertexCode, processorOptions, (migratedVertexCode) => {\n vertexCode = migratedVertexCode;\n }, this._engine);\n processorOptions.isFragment = true;\n Process(fragmentCode, processorOptions, (migratedFragmentCode) => {\n fragmentCode = migratedFragmentCode;\n }, this._engine);\n const final = Finalize(vertexCode, fragmentCode, processorOptions);\n // Restore\n processorOptions.processor.pureMode = false;\n const vertexModule = this._device.createShaderModule({\n code: final.vertexCode,\n });\n const fragmentModule = this._device.createShaderModule({\n code: final.fragmentCode,\n });\n modules = this._compiledShaders[index] = [vertexModule, fragmentModule];\n }\n const pipeline = this._device.createRenderPipeline({\n layout: \"auto\" /* WebGPUConstants.AutoLayoutMode.Auto */,\n vertex: {\n module: modules[0],\n entryPoint: \"main\",\n },\n fragment: {\n module: modules[1],\n entryPoint: \"main\",\n targets: [\n {\n format,\n },\n ],\n },\n primitive: {\n topology: \"triangle-strip\" /* WebGPUConstants.PrimitiveTopology.TriangleStrip */,\n stripIndexFormat: \"uint16\" /* WebGPUConstants.IndexFormat.Uint16 */,\n },\n });\n pipelineAndBGL = this._pipelines[format][index] = [pipeline, pipeline.getBindGroupLayout(0)];\n }\n return pipelineAndBGL;\n }\n _getVideoPipeline(format, type = VideoPipelineType.DontInvertY) {\n const index = type === VideoPipelineType.InvertY ? 1 << 0 : 0;\n if (!this._videoPipelines[format]) {\n this._videoPipelines[format] = [];\n }\n let pipelineAndBGL = this._videoPipelines[format][index];\n if (!pipelineAndBGL) {\n let modules = this._videoCompiledShaders[index];\n if (!modules) {\n const vertexModule = this._device.createShaderModule({\n code: copyVideoToTextureVertexSource,\n });\n const fragmentModule = this._device.createShaderModule({\n code: index === 0 ? copyVideoToTextureFragmentSource : copyVideoToTextureInvertYFragmentSource,\n });\n modules = this._videoCompiledShaders[index] = [vertexModule, fragmentModule];\n }\n const pipeline = this._device.createRenderPipeline({\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_CopyVideoToTexture_${format}_${index === 0 ? \"DontInvertY\" : \"InvertY\"}`,\n layout: \"auto\" /* WebGPUConstants.AutoLayoutMode.Auto */,\n vertex: {\n module: modules[0],\n entryPoint: \"main\",\n },\n fragment: {\n module: modules[1],\n entryPoint: \"main\",\n targets: [\n {\n format,\n },\n ],\n },\n primitive: {\n topology: \"triangle-strip\" /* WebGPUConstants.PrimitiveTopology.TriangleStrip */,\n stripIndexFormat: \"uint16\" /* WebGPUConstants.IndexFormat.Uint16 */,\n },\n });\n pipelineAndBGL = this._videoPipelines[format][index] = [pipeline, pipeline.getBindGroupLayout(0)];\n }\n return pipelineAndBGL;\n }\n setCommandEncoder(encoder) {\n this._commandEncoderForCreation = encoder;\n }\n copyVideoToTexture(video, texture, format, invertY = false, commandEncoder) {\n const useOwnCommandEncoder = commandEncoder === undefined;\n const [pipeline, bindGroupLayout] = this._getVideoPipeline(format, invertY ? VideoPipelineType.InvertY : VideoPipelineType.DontInvertY);\n if (useOwnCommandEncoder) {\n commandEncoder = this._device.createCommandEncoder({});\n }\n commandEncoder.pushDebugGroup?.(`copy video to texture - invertY=${invertY}`);\n const webgpuHardwareTexture = texture._hardwareTexture;\n const renderPassDescriptor = {\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_copyVideoToTexture_${format}_${invertY ? \"InvertY\" : \"DontInvertY\"}${texture.label ? \"_\" + texture.label : \"\"}`,\n colorAttachments: [\n {\n view: webgpuHardwareTexture.underlyingResource.createView({\n format,\n dimension: \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n mipLevelCount: 1,\n baseArrayLayer: 0,\n baseMipLevel: 0,\n arrayLayerCount: 1,\n aspect: \"all\" /* WebGPUConstants.TextureAspect.All */,\n }),\n loadOp: \"load\" /* WebGPUConstants.LoadOp.Load */,\n storeOp: \"store\" /* WebGPUConstants.StoreOp.Store */,\n },\n ],\n };\n const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);\n const descriptor = {\n layout: bindGroupLayout,\n entries: [\n {\n binding: 0,\n resource: this._videoSampler,\n },\n {\n binding: 1,\n resource: this._device.importExternalTexture({\n source: video.underlyingResource,\n }),\n },\n ],\n };\n const bindGroup = this._device.createBindGroup(descriptor);\n passEncoder.setPipeline(pipeline);\n passEncoder.setBindGroup(0, bindGroup);\n passEncoder.draw(4, 1, 0, 0);\n passEncoder.end();\n commandEncoder.popDebugGroup?.();\n if (useOwnCommandEncoder) {\n this._device.queue.submit([commandEncoder.finish()]);\n commandEncoder = null;\n }\n }\n invertYPreMultiplyAlpha(gpuOrHdwTexture, width, height, format, invertY = false, premultiplyAlpha = false, faceIndex = 0, mipLevel = 0, layers = 1, ofstX = 0, ofstY = 0, rectWidth = 0, rectHeight = 0, commandEncoder, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n allowGPUOptimization) {\n const useRect = rectWidth !== 0;\n const useOwnCommandEncoder = commandEncoder === undefined;\n const [pipeline, bindGroupLayout] = this._getPipeline(format, useRect ? PipelineType.InvertYPremultiplyAlphaWithOfst : PipelineType.InvertYPremultiplyAlpha, {\n invertY,\n premultiplyAlpha,\n });\n faceIndex = Math.max(faceIndex, 0);\n if (useOwnCommandEncoder) {\n commandEncoder = this._device.createCommandEncoder({});\n }\n commandEncoder.pushDebugGroup?.(`internal process texture - invertY=${invertY} premultiplyAlpha=${premultiplyAlpha}`);\n let gpuTexture;\n if (WebGPUTextureHelper.IsHardwareTexture(gpuOrHdwTexture)) {\n gpuTexture = gpuOrHdwTexture.underlyingResource;\n if (!(invertY && !premultiplyAlpha && layers === 1 && faceIndex === 0)) {\n // we optimize only for the most likely case (invertY=true, premultiplyAlpha=false, layers=1, faceIndex=0) to avoid dealing with big caches\n gpuOrHdwTexture = undefined;\n }\n }\n else {\n gpuTexture = gpuOrHdwTexture;\n gpuOrHdwTexture = undefined;\n }\n if (!gpuTexture) {\n return;\n }\n if (useRect) {\n this._bufferManager.setRawData(this._ubCopyWithOfst, 0, new Float32Array([ofstX, ofstY, rectWidth, rectHeight]), 0, 4 * 4);\n }\n const webgpuHardwareTexture = gpuOrHdwTexture;\n const outputTexture = webgpuHardwareTexture?._copyInvertYTempTexture ??\n this.createTexture({ width, height, layers: 1 }, false, false, false, false, false, format, 1, commandEncoder, 1 /* WebGPUConstants.TextureUsage.CopySrc */ | 16 /* WebGPUConstants.TextureUsage.RenderAttachment */ | 4 /* WebGPUConstants.TextureUsage.TextureBinding */, undefined, \"TempTextureForCopyWithInvertY\");\n const renderPassDescriptor = webgpuHardwareTexture?._copyInvertYRenderPassDescr ?? {\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_invertYPreMultiplyAlpha_${format}_${invertY ? \"InvertY\" : \"DontInvertY\"}_${premultiplyAlpha ? \"PremultiplyAlpha\" : \"DontPremultiplyAlpha\"}`,\n colorAttachments: [\n {\n view: outputTexture.createView({\n format,\n dimension: \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n baseMipLevel: 0,\n mipLevelCount: 1,\n arrayLayerCount: 1,\n baseArrayLayer: 0,\n }),\n loadOp: \"load\" /* WebGPUConstants.LoadOp.Load */,\n storeOp: \"store\" /* WebGPUConstants.StoreOp.Store */,\n },\n ],\n };\n const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);\n let bindGroup = useRect ? webgpuHardwareTexture?._copyInvertYBindGroupWithOfst : webgpuHardwareTexture?._copyInvertYBindGroup;\n if (!bindGroup) {\n const descriptor = {\n layout: bindGroupLayout,\n entries: [\n {\n binding: 0,\n resource: gpuTexture.createView({\n format,\n dimension: \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n baseMipLevel: mipLevel,\n mipLevelCount: 1,\n arrayLayerCount: layers,\n baseArrayLayer: faceIndex,\n }),\n },\n ],\n };\n if (useRect) {\n descriptor.entries.push({\n binding: 1,\n resource: {\n buffer: this._ubCopyWithOfst,\n },\n });\n }\n bindGroup = this._device.createBindGroup(descriptor);\n }\n passEncoder.setPipeline(pipeline);\n passEncoder.setBindGroup(0, bindGroup);\n passEncoder.draw(4, 1, 0, 0);\n passEncoder.end();\n commandEncoder.copyTextureToTexture({\n texture: outputTexture,\n }, {\n texture: gpuTexture,\n mipLevel,\n origin: {\n x: 0,\n y: 0,\n z: faceIndex,\n },\n }, {\n width,\n height,\n depthOrArrayLayers: 1,\n });\n if (webgpuHardwareTexture) {\n webgpuHardwareTexture._copyInvertYTempTexture = outputTexture;\n webgpuHardwareTexture._copyInvertYRenderPassDescr = renderPassDescriptor;\n if (useRect) {\n webgpuHardwareTexture._copyInvertYBindGroupWithOfst = bindGroup;\n }\n else {\n webgpuHardwareTexture._copyInvertYBindGroup = bindGroup;\n }\n }\n else {\n this._deferredReleaseTextures.push([outputTexture, null]);\n }\n commandEncoder.popDebugGroup?.();\n if (useOwnCommandEncoder) {\n this._device.queue.submit([commandEncoder.finish()]);\n commandEncoder = null;\n }\n }\n copyWithInvertY(srcTextureView, format, renderPassDescriptor, commandEncoder) {\n const useOwnCommandEncoder = commandEncoder === undefined;\n const [pipeline, bindGroupLayout] = this._getPipeline(format, PipelineType.InvertYPremultiplyAlpha, { invertY: true, premultiplyAlpha: false });\n if (useOwnCommandEncoder) {\n commandEncoder = this._device.createCommandEncoder({});\n }\n commandEncoder.pushDebugGroup?.(`internal copy texture with invertY`);\n const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);\n const bindGroup = this._device.createBindGroup({\n layout: bindGroupLayout,\n entries: [\n {\n binding: 0,\n resource: srcTextureView,\n },\n ],\n });\n passEncoder.setPipeline(pipeline);\n passEncoder.setBindGroup(0, bindGroup);\n passEncoder.draw(4, 1, 0, 0);\n passEncoder.end();\n commandEncoder.popDebugGroup?.();\n if (useOwnCommandEncoder) {\n this._device.queue.submit([commandEncoder.finish()]);\n commandEncoder = null;\n }\n }\n //------------------------------------------------------------------------------\n // Creation\n //------------------------------------------------------------------------------\n createTexture(imageBitmap, hasMipmaps = false, generateMipmaps = false, invertY = false, premultiplyAlpha = false, is3D = false, format = \"rgba8unorm\" /* WebGPUConstants.TextureFormat.RGBA8Unorm */, sampleCount = 1, commandEncoder, usage = -1, additionalUsages = 0, label) {\n sampleCount = WebGPUTextureHelper.GetSample(sampleCount);\n const layerCount = imageBitmap.layers || 1;\n const textureSize = {\n width: imageBitmap.width,\n height: imageBitmap.height,\n depthOrArrayLayers: layerCount,\n };\n const renderAttachmentFlag = renderableTextureFormatToIndex[format] ? 16 /* WebGPUConstants.TextureUsage.RenderAttachment */ : 0;\n const isCompressedFormat = WebGPUTextureHelper.IsCompressedFormat(format);\n const mipLevelCount = hasMipmaps ? WebGPUTextureHelper.ComputeNumMipmapLevels(imageBitmap.width, imageBitmap.height) : 1;\n const usages = usage >= 0 ? usage : 1 /* WebGPUConstants.TextureUsage.CopySrc */ | 2 /* WebGPUConstants.TextureUsage.CopyDst */ | 4 /* WebGPUConstants.TextureUsage.TextureBinding */;\n additionalUsages |= hasMipmaps && !isCompressedFormat ? 1 /* WebGPUConstants.TextureUsage.CopySrc */ | renderAttachmentFlag : 0;\n if (!isCompressedFormat && !is3D) {\n // we don't know in advance if the texture will be updated with copyExternalImageToTexture (which requires to have those flags), so we need to force the flags all the times\n additionalUsages |= renderAttachmentFlag | 2 /* WebGPUConstants.TextureUsage.CopyDst */;\n }\n const gpuTexture = this._device.createTexture({\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_Texture${is3D ? \"3D\" : \"2D\"}_${label ? label + \"_\" : \"\"}${textureSize.width}x${textureSize.height}x${textureSize.depthOrArrayLayers}_${hasMipmaps ? \"wmips\" : \"womips\"}_${format}_samples${sampleCount}`,\n size: textureSize,\n dimension: is3D ? \"3d\" /* WebGPUConstants.TextureDimension.E3d */ : \"2d\" /* WebGPUConstants.TextureDimension.E2d */,\n format,\n usage: usages | additionalUsages,\n sampleCount,\n mipLevelCount,\n });\n if (WebGPUTextureHelper.IsImageBitmap(imageBitmap)) {\n this.updateTexture(imageBitmap, gpuTexture, imageBitmap.width, imageBitmap.height, layerCount, format, 0, 0, invertY, premultiplyAlpha, 0, 0);\n if (hasMipmaps && generateMipmaps) {\n this.generateMipmaps(gpuTexture, format, mipLevelCount, 0, is3D, commandEncoder);\n }\n }\n return gpuTexture;\n }\n createCubeTexture(imageBitmaps, hasMipmaps = false, generateMipmaps = false, invertY = false, premultiplyAlpha = false, format = \"rgba8unorm\" /* WebGPUConstants.TextureFormat.RGBA8Unorm */, sampleCount = 1, commandEncoder, usage = -1, additionalUsages = 0, label) {\n sampleCount = WebGPUTextureHelper.GetSample(sampleCount);\n const width = WebGPUTextureHelper.IsImageBitmapArray(imageBitmaps) ? imageBitmaps[0].width : imageBitmaps.width;\n const height = WebGPUTextureHelper.IsImageBitmapArray(imageBitmaps) ? imageBitmaps[0].height : imageBitmaps.height;\n const renderAttachmentFlag = renderableTextureFormatToIndex[format] ? 16 /* WebGPUConstants.TextureUsage.RenderAttachment */ : 0;\n const isCompressedFormat = WebGPUTextureHelper.IsCompressedFormat(format);\n const mipLevelCount = hasMipmaps ? WebGPUTextureHelper.ComputeNumMipmapLevels(width, height) : 1;\n const usages = usage >= 0 ? usage : 1 /* WebGPUConstants.TextureUsage.CopySrc */ | 2 /* WebGPUConstants.TextureUsage.CopyDst */ | 4 /* WebGPUConstants.TextureUsage.TextureBinding */;\n additionalUsages |= hasMipmaps && !isCompressedFormat ? 1 /* WebGPUConstants.TextureUsage.CopySrc */ | renderAttachmentFlag : 0;\n if (!isCompressedFormat) {\n // we don't know in advance if the texture will be updated with copyExternalImageToTexture (which requires to have those flags), so we need to force the flags all the times\n additionalUsages |= renderAttachmentFlag | 2 /* WebGPUConstants.TextureUsage.CopyDst */;\n }\n const gpuTexture = this._device.createTexture({\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_TextureCube_${label ? label + \"_\" : \"\"}${width}x${height}x6_${hasMipmaps ? \"wmips\" : \"womips\"}_${format}_samples${sampleCount}`,\n size: {\n width,\n height,\n depthOrArrayLayers: 6,\n },\n dimension: \"2d\" /* WebGPUConstants.TextureDimension.E2d */,\n format,\n usage: usages | additionalUsages,\n sampleCount,\n mipLevelCount,\n });\n if (WebGPUTextureHelper.IsImageBitmapArray(imageBitmaps)) {\n this.updateCubeTextures(imageBitmaps, gpuTexture, width, height, format, invertY, premultiplyAlpha, 0, 0);\n if (hasMipmaps && generateMipmaps) {\n this.generateCubeMipmaps(gpuTexture, format, mipLevelCount, commandEncoder);\n }\n }\n return gpuTexture;\n }\n generateCubeMipmaps(gpuTexture, format, mipLevelCount, commandEncoder) {\n const useOwnCommandEncoder = commandEncoder === undefined;\n if (useOwnCommandEncoder) {\n commandEncoder = this._device.createCommandEncoder({});\n }\n commandEncoder.pushDebugGroup?.(`create cube mipmaps - ${mipLevelCount} levels`);\n for (let f = 0; f < 6; ++f) {\n this.generateMipmaps(gpuTexture, format, mipLevelCount, f, false, commandEncoder);\n }\n commandEncoder.popDebugGroup?.();\n if (useOwnCommandEncoder) {\n this._device.queue.submit([commandEncoder.finish()]);\n commandEncoder = null;\n }\n }\n generateMipmaps(gpuOrHdwTexture, format, mipLevelCount, faceIndex = 0, is3D = false, commandEncoder) {\n const useOwnCommandEncoder = commandEncoder === undefined;\n const [pipeline, bindGroupLayout] = this._getPipeline(format);\n faceIndex = Math.max(faceIndex, 0);\n if (useOwnCommandEncoder) {\n commandEncoder = this._device.createCommandEncoder({});\n }\n commandEncoder.pushDebugGroup?.(`create mipmaps for face #${faceIndex} - ${mipLevelCount} levels`);\n let gpuTexture;\n if (WebGPUTextureHelper.IsHardwareTexture(gpuOrHdwTexture)) {\n gpuTexture = gpuOrHdwTexture.underlyingResource;\n gpuOrHdwTexture._mipmapGenRenderPassDescr = gpuOrHdwTexture._mipmapGenRenderPassDescr || [];\n gpuOrHdwTexture._mipmapGenBindGroup = gpuOrHdwTexture._mipmapGenBindGroup || [];\n }\n else {\n gpuTexture = gpuOrHdwTexture;\n gpuOrHdwTexture = undefined;\n }\n if (!gpuTexture) {\n return;\n }\n const webgpuHardwareTexture = gpuOrHdwTexture;\n for (let i = 1; i < mipLevelCount; ++i) {\n const renderPassDescriptor = webgpuHardwareTexture?._mipmapGenRenderPassDescr[faceIndex]?.[i - 1] ?? {\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_generateMipmaps_${format}_faceIndex${faceIndex}_level${i}`,\n colorAttachments: [\n {\n view: gpuTexture.createView({\n format,\n dimension: is3D ? \"3d\" /* WebGPUConstants.TextureViewDimension.E3d */ : \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n baseMipLevel: i,\n mipLevelCount: 1,\n arrayLayerCount: 1,\n baseArrayLayer: faceIndex,\n }),\n loadOp: \"load\" /* WebGPUConstants.LoadOp.Load */,\n storeOp: \"store\" /* WebGPUConstants.StoreOp.Store */,\n },\n ],\n };\n if (webgpuHardwareTexture) {\n webgpuHardwareTexture._mipmapGenRenderPassDescr[faceIndex] = webgpuHardwareTexture._mipmapGenRenderPassDescr[faceIndex] || [];\n webgpuHardwareTexture._mipmapGenRenderPassDescr[faceIndex][i - 1] = renderPassDescriptor;\n }\n const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);\n const bindGroup = webgpuHardwareTexture?._mipmapGenBindGroup[faceIndex]?.[i - 1] ??\n this._device.createBindGroup({\n layout: bindGroupLayout,\n entries: [\n {\n binding: 0,\n resource: gpuTexture.createView({\n format,\n dimension: is3D ? \"3d\" /* WebGPUConstants.TextureViewDimension.E3d */ : \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n baseMipLevel: i - 1,\n mipLevelCount: 1,\n arrayLayerCount: 1,\n baseArrayLayer: faceIndex,\n }),\n },\n {\n binding: 1,\n resource: this._mipmapSampler,\n },\n ],\n });\n if (webgpuHardwareTexture) {\n webgpuHardwareTexture._mipmapGenBindGroup[faceIndex] = webgpuHardwareTexture._mipmapGenBindGroup[faceIndex] || [];\n webgpuHardwareTexture._mipmapGenBindGroup[faceIndex][i - 1] = bindGroup;\n }\n passEncoder.setPipeline(pipeline);\n passEncoder.setBindGroup(0, bindGroup);\n passEncoder.draw(4, 1, 0, 0);\n passEncoder.end();\n }\n commandEncoder.popDebugGroup?.();\n if (useOwnCommandEncoder) {\n this._device.queue.submit([commandEncoder.finish()]);\n commandEncoder = null;\n }\n }\n createGPUTextureForInternalTexture(texture, width, height, depth, creationFlags, dontCreateMSAATexture) {\n if (!texture._hardwareTexture) {\n texture._hardwareTexture = new WebGPUHardwareTexture();\n }\n if (width === undefined) {\n width = texture.width;\n }\n if (height === undefined) {\n height = texture.height;\n }\n if (depth === undefined) {\n depth = texture.depth;\n }\n const gpuTextureWrapper = texture._hardwareTexture;\n const isStorageTexture = ((creationFlags ?? 0) & 1) !== 0;\n gpuTextureWrapper.format = WebGPUTextureHelper.GetWebGPUTextureFormat(texture.type, texture.format, texture._useSRGBBuffer);\n gpuTextureWrapper.textureUsages =\n texture._source === 5 /* InternalTextureSource.RenderTarget */ || texture.source === 6 /* InternalTextureSource.MultiRenderTarget */\n ? 4 /* WebGPUConstants.TextureUsage.TextureBinding */ | 1 /* WebGPUConstants.TextureUsage.CopySrc */ | 16 /* WebGPUConstants.TextureUsage.RenderAttachment */\n : texture._source === 12 /* InternalTextureSource.DepthStencil */\n ? 4 /* WebGPUConstants.TextureUsage.TextureBinding */ | 16 /* WebGPUConstants.TextureUsage.RenderAttachment */\n : -1;\n gpuTextureWrapper.textureAdditionalUsages = isStorageTexture ? 8 /* WebGPUConstants.TextureUsage.StorageBinding */ : 0;\n const hasMipMaps = texture.generateMipMaps;\n const layerCount = depth || 1;\n let mipmapCount;\n if (texture._maxLodLevel !== null) {\n mipmapCount = texture._maxLodLevel;\n }\n else {\n mipmapCount = hasMipMaps ? WebGPUTextureHelper.ComputeNumMipmapLevels(width, height) : 1;\n }\n if (texture.isCube) {\n const gpuTexture = this.createCubeTexture({ width, height }, texture.generateMipMaps, texture.generateMipMaps, texture.invertY, false, gpuTextureWrapper.format, 1, this._commandEncoderForCreation, gpuTextureWrapper.textureUsages, gpuTextureWrapper.textureAdditionalUsages, texture.label);\n gpuTextureWrapper.set(gpuTexture);\n const arrayLayerCount = texture.is3D ? 1 : layerCount;\n const format = WebGPUTextureHelper.GetDepthFormatOnly(gpuTextureWrapper.format);\n const aspect = WebGPUTextureHelper.HasDepthAndStencilAspects(gpuTextureWrapper.format) ? \"depth-only\" /* WebGPUConstants.TextureAspect.DepthOnly */ : \"all\" /* WebGPUConstants.TextureAspect.All */;\n const dimension = texture.is2DArray ? \"cube-array\" /* WebGPUConstants.TextureViewDimension.CubeArray */ : \"cube\" /* WebGPUConstants.TextureViewDimension.Cube */;\n gpuTextureWrapper.createView({\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_TextureViewCube${texture.is2DArray ? \"_Array\" + arrayLayerCount : \"\"}_${width}x${height}_${hasMipMaps ? \"wmips\" : \"womips\"}_${format}_${dimension}_${aspect}_${texture.label ?? \"noname\"}`,\n format,\n dimension,\n mipLevelCount: mipmapCount,\n baseArrayLayer: 0,\n baseMipLevel: 0,\n arrayLayerCount: 6,\n aspect,\n }, isStorageTexture);\n }\n else {\n const gpuTexture = this.createTexture({ width, height, layers: layerCount }, texture.generateMipMaps, texture.generateMipMaps, texture.invertY, false, texture.is3D, gpuTextureWrapper.format, 1, this._commandEncoderForCreation, gpuTextureWrapper.textureUsages, gpuTextureWrapper.textureAdditionalUsages, texture.label);\n gpuTextureWrapper.set(gpuTexture);\n const arrayLayerCount = texture.is3D ? 1 : layerCount;\n const format = WebGPUTextureHelper.GetDepthFormatOnly(gpuTextureWrapper.format);\n const aspect = WebGPUTextureHelper.HasDepthAndStencilAspects(gpuTextureWrapper.format) ? \"depth-only\" /* WebGPUConstants.TextureAspect.DepthOnly */ : \"all\" /* WebGPUConstants.TextureAspect.All */;\n const dimension = texture.is2DArray\n ? \"2d-array\" /* WebGPUConstants.TextureViewDimension.E2dArray */\n : texture.is3D\n ? \"3d\" /* WebGPUConstants.TextureDimension.E3d */\n : \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */;\n gpuTextureWrapper.createView({\n label: `BabylonWebGPUDevice${this._engine.uniqueId}_TextureView${texture.is3D ? \"3D\" : \"2D\"}${texture.is2DArray ? \"_Array\" + arrayLayerCount : \"\"}_${width}x${height}${texture.is3D ? \"x\" + layerCount : \"\"}_${hasMipMaps ? \"wmips\" : \"womips\"}_${format}_${dimension}_${aspect}_${texture.label ?? \"noname\"}`,\n format,\n dimension,\n mipLevelCount: mipmapCount,\n baseArrayLayer: 0,\n baseMipLevel: 0,\n arrayLayerCount,\n aspect,\n }, isStorageTexture);\n }\n texture.width = texture.baseWidth = width;\n texture.height = texture.baseHeight = height;\n texture.depth = texture.baseDepth = depth;\n if (!dontCreateMSAATexture) {\n this.createMSAATexture(texture, texture.samples);\n }\n return gpuTextureWrapper;\n }\n createMSAATexture(texture, samples, releaseExisting = true, index = 0) {\n const gpuTextureWrapper = texture._hardwareTexture;\n if (releaseExisting) {\n gpuTextureWrapper?.releaseMSAATexture();\n }\n if (!gpuTextureWrapper || (samples ?? 1) <= 1) {\n return;\n }\n const width = texture.width;\n const height = texture.height;\n const gpuMSAATexture = this.createTexture({ width, height, layers: 1 }, false, false, false, false, false, gpuTextureWrapper.format, samples, this._commandEncoderForCreation, 16 /* WebGPUConstants.TextureUsage.RenderAttachment */, 0, texture.label ? \"MSAA\" + texture.label : undefined);\n gpuTextureWrapper.setMSAATexture(gpuMSAATexture, index);\n }\n //------------------------------------------------------------------------------\n // Update\n //------------------------------------------------------------------------------\n updateCubeTextures(imageBitmaps, gpuTexture, width, height, format, invertY = false, premultiplyAlpha = false, offsetX = 0, offsetY = 0) {\n const faces = [0, 3, 1, 4, 2, 5];\n for (let f = 0; f < faces.length; ++f) {\n const imageBitmap = imageBitmaps[faces[f]];\n this.updateTexture(imageBitmap, gpuTexture, width, height, 1, format, f, 0, invertY, premultiplyAlpha, offsetX, offsetY);\n }\n }\n // TODO WEBGPU handle data source not being in the same format than the destination texture?\n updateTexture(imageBitmap, texture, width, height, layers, format, faceIndex = 0, mipLevel = 0, invertY = false, premultiplyAlpha = false, offsetX = 0, offsetY = 0, allowGPUOptimization) {\n const gpuTexture = WebGPUTextureHelper.IsInternalTexture(texture) ? texture._hardwareTexture.underlyingResource : texture;\n const blockInformation = WebGPUTextureHelper.GetBlockInformationFromFormat(format);\n const gpuOrHdwTexture = WebGPUTextureHelper.IsInternalTexture(texture) ? texture._hardwareTexture : texture;\n const textureCopyView = {\n texture: gpuTexture,\n origin: {\n x: offsetX,\n y: offsetY,\n z: Math.max(faceIndex, 0),\n },\n mipLevel: mipLevel,\n premultipliedAlpha: premultiplyAlpha,\n };\n const textureExtent = {\n width: Math.ceil(width / blockInformation.width) * blockInformation.width,\n height: Math.ceil(height / blockInformation.height) * blockInformation.height,\n depthOrArrayLayers: layers || 1,\n };\n if (imageBitmap.byteLength !== undefined) {\n imageBitmap = imageBitmap;\n const bytesPerRow = Math.ceil(width / blockInformation.width) * blockInformation.length;\n const aligned = Math.ceil(bytesPerRow / 256) * 256 === bytesPerRow;\n if (aligned) {\n const commandEncoder = this._device.createCommandEncoder({});\n const buffer = this._bufferManager.createRawBuffer(imageBitmap.byteLength, WebGPUConstants.BufferUsage.MapWrite | WebGPUConstants.BufferUsage.CopySrc, true, \"TempBufferForUpdateTexture\" + (gpuTexture ? \"_\" + gpuTexture.label : \"\"));\n const arrayBuffer = buffer.getMappedRange();\n new Uint8Array(arrayBuffer).set(imageBitmap);\n buffer.unmap();\n commandEncoder.copyBufferToTexture({\n buffer: buffer,\n offset: 0,\n bytesPerRow,\n rowsPerImage: height,\n }, textureCopyView, textureExtent);\n this._device.queue.submit([commandEncoder.finish()]);\n this._bufferManager.releaseBuffer(buffer);\n }\n else {\n this._device.queue.writeTexture(textureCopyView, imageBitmap, {\n offset: 0,\n bytesPerRow,\n rowsPerImage: height,\n }, textureExtent);\n }\n if (invertY || premultiplyAlpha) {\n if (WebGPUTextureHelper.IsInternalTexture(texture)) {\n const dontUseRect = offsetX === 0 && offsetY === 0 && width === texture.width && height === texture.height;\n this.invertYPreMultiplyAlpha(gpuOrHdwTexture, texture.width, texture.height, format, invertY, premultiplyAlpha, faceIndex, mipLevel, layers || 1, offsetX, offsetY, dontUseRect ? 0 : width, dontUseRect ? 0 : height, undefined, allowGPUOptimization);\n }\n else {\n // we should never take this code path\n // eslint-disable-next-line no-throw-literal\n throw \"updateTexture: Can't process the texture data because a GPUTexture was provided instead of an InternalTexture!\";\n }\n }\n }\n else {\n imageBitmap = imageBitmap;\n if (invertY) {\n textureCopyView.premultipliedAlpha = false; // we are going to handle premultiplyAlpha ourselves\n // we must preprocess the image\n if (WebGPUTextureHelper.IsInternalTexture(texture) && offsetX === 0 && offsetY === 0 && width === texture.width && height === texture.height) {\n // optimization when the source image is the same size than the destination texture and offsets X/Y == 0:\n // we simply copy the source to the destination and we apply the preprocessing on the destination\n this._device.queue.copyExternalImageToTexture({ source: imageBitmap }, textureCopyView, textureExtent);\n this.invertYPreMultiplyAlpha(gpuOrHdwTexture, width, height, format, invertY, premultiplyAlpha, faceIndex, mipLevel, layers || 1, 0, 0, 0, 0, undefined, allowGPUOptimization);\n }\n else {\n // we must apply the preprocessing on the source image before copying it into the destination texture\n const commandEncoder = this._device.createCommandEncoder({});\n // create a temp texture and copy the image to it\n const srcTexture = this.createTexture({ width, height, layers: 1 }, false, false, false, false, false, format, 1, commandEncoder, 1 /* WebGPUConstants.TextureUsage.CopySrc */ | 4 /* WebGPUConstants.TextureUsage.TextureBinding */, undefined, \"TempTextureForUpdateTexture\");\n this._deferredReleaseTextures.push([srcTexture, null]);\n textureExtent.depthOrArrayLayers = 1;\n this._device.queue.copyExternalImageToTexture({ source: imageBitmap }, { texture: srcTexture }, textureExtent);\n textureExtent.depthOrArrayLayers = layers || 1;\n // apply the preprocessing to this temp texture\n this.invertYPreMultiplyAlpha(srcTexture, width, height, format, invertY, premultiplyAlpha, faceIndex, mipLevel, layers || 1, 0, 0, 0, 0, commandEncoder, allowGPUOptimization);\n // copy the temp texture to the destination texture\n commandEncoder.copyTextureToTexture({ texture: srcTexture }, textureCopyView, textureExtent);\n this._device.queue.submit([commandEncoder.finish()]);\n }\n }\n else {\n // no preprocessing: direct copy to destination texture\n this._device.queue.copyExternalImageToTexture({ source: imageBitmap }, textureCopyView, textureExtent);\n }\n }\n }\n readPixels(texture, x, y, width, height, format, faceIndex = 0, mipLevel = 0, buffer = null, noDataConversion = false) {\n const blockInformation = WebGPUTextureHelper.GetBlockInformationFromFormat(format);\n const bytesPerRow = Math.ceil(width / blockInformation.width) * blockInformation.length;\n const bytesPerRowAligned = Math.ceil(bytesPerRow / 256) * 256;\n const size = bytesPerRowAligned * height;\n const gpuBuffer = this._bufferManager.createRawBuffer(size, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, \"TempBufferForReadPixels\" + (texture.label ? \"_\" + texture.label : \"\"));\n const commandEncoder = this._device.createCommandEncoder({});\n commandEncoder.copyTextureToBuffer({\n texture,\n mipLevel,\n origin: {\n x,\n y,\n z: Math.max(faceIndex, 0),\n },\n }, {\n buffer: gpuBuffer,\n offset: 0,\n bytesPerRow: bytesPerRowAligned,\n }, {\n width,\n height,\n depthOrArrayLayers: 1,\n });\n this._device.queue.submit([commandEncoder.finish()]);\n return this._bufferManager.readDataFromBuffer(gpuBuffer, size, width, height, bytesPerRow, bytesPerRowAligned, WebGPUTextureHelper.GetTextureTypeFromFormat(format), 0, buffer, true, noDataConversion);\n }\n //------------------------------------------------------------------------------\n // Dispose\n //------------------------------------------------------------------------------\n releaseTexture(texture) {\n if (WebGPUTextureHelper.IsInternalTexture(texture)) {\n const hardwareTexture = texture._hardwareTexture;\n const irradianceTexture = texture._irradianceTexture;\n // We can't destroy the objects just now because they could be used in the current frame - we delay the destroying after the end of the frame\n this._deferredReleaseTextures.push([hardwareTexture, irradianceTexture]);\n }\n else {\n this._deferredReleaseTextures.push([texture, null]);\n }\n }\n destroyDeferredTextures() {\n for (let i = 0; i < this._deferredReleaseTextures.length; ++i) {\n const [hardwareTexture, irradianceTexture] = this._deferredReleaseTextures[i];\n if (hardwareTexture) {\n if (WebGPUTextureHelper.IsHardwareTexture(hardwareTexture)) {\n hardwareTexture.release();\n }\n else {\n hardwareTexture.destroy();\n }\n }\n irradianceTexture?.dispose();\n }\n this._deferredReleaseTextures.length = 0;\n }\n}\n","import { DataBuffer } from \"../../Buffers/dataBuffer.js\";\n/** @internal */\nexport class WebGPUDataBuffer extends DataBuffer {\n set buffer(buffer) {\n this._buffer = buffer;\n }\n constructor(resource, capacity = 0) {\n super();\n // Used to make sure the buffer is not recreated twice after a context loss/restoration\n this.engineId = -1;\n this.capacity = capacity;\n if (resource) {\n this._buffer = resource;\n }\n }\n get underlyingResource() {\n return this._buffer;\n }\n}\n","import { WebGPUDataBuffer } from \"../../Meshes/WebGPU/webgpuDataBuffer.js\";\nimport { FromHalfFloat } from \"../../Misc/textureTools.js\";\nimport { allocateAndCopyTypedBuffer } from \"../abstractEngine.functions.js\";\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nimport * as WebGPUConstants from \"./webgpuConstants.js\";\n/** @internal */\nexport class WebGPUBufferManager {\n static _IsGPUBuffer(buffer) {\n return buffer.underlyingResource === undefined;\n }\n static _FlagsToString(flags, suffix = \"\") {\n let result = suffix;\n for (let i = 0; i <= 9; ++i) {\n if (flags & (1 << i)) {\n if (result) {\n result += \"_\";\n }\n result += WebGPUConstants.BufferUsage[1 << i];\n }\n }\n return result;\n }\n constructor(engine, device) {\n this._deferredReleaseBuffers = [];\n this._engine = engine;\n this._device = device;\n }\n createRawBuffer(viewOrSize, flags, mappedAtCreation = false, label) {\n const alignedLength = viewOrSize.byteLength !== undefined ? (viewOrSize.byteLength + 3) & ~3 : (viewOrSize + 3) & ~3; // 4 bytes alignments (because of the upload which requires this)\n const verticesBufferDescriptor = {\n label: \"BabylonWebGPUDevice\" + this._engine.uniqueId + \"_\" + WebGPUBufferManager._FlagsToString(flags, label ?? \"Buffer\") + \"_size\" + alignedLength,\n mappedAtCreation,\n size: alignedLength,\n usage: flags,\n };\n return this._device.createBuffer(verticesBufferDescriptor);\n }\n createBuffer(viewOrSize, flags, label) {\n const isView = viewOrSize.byteLength !== undefined;\n const dataBuffer = new WebGPUDataBuffer();\n const labelId = \"DataBufferUniqueId=\" + dataBuffer.uniqueId;\n dataBuffer.buffer = this.createRawBuffer(viewOrSize, flags, undefined, label ? labelId + \"-\" + label : labelId);\n dataBuffer.references = 1;\n dataBuffer.capacity = isView ? viewOrSize.byteLength : viewOrSize;\n dataBuffer.engineId = this._engine.uniqueId;\n if (isView) {\n this.setSubData(dataBuffer, 0, viewOrSize);\n }\n return dataBuffer;\n }\n setRawData(buffer, dstByteOffset, src, srcByteOffset, byteLength) {\n this._device.queue.writeBuffer(buffer, dstByteOffset, src.buffer, srcByteOffset, byteLength);\n }\n setSubData(dataBuffer, dstByteOffset, src, srcByteOffset = 0, byteLength = 0) {\n const buffer = dataBuffer.underlyingResource;\n byteLength = byteLength || src.byteLength;\n byteLength = Math.min(byteLength, dataBuffer.capacity - dstByteOffset);\n // After Migration to Canary\n let chunkStart = src.byteOffset + srcByteOffset;\n let chunkEnd = chunkStart + byteLength;\n // 4 bytes alignments for upload\n const alignedLength = (byteLength + 3) & ~3;\n if (alignedLength !== byteLength) {\n const tempView = new Uint8Array(src.buffer.slice(chunkStart, chunkEnd));\n src = new Uint8Array(alignedLength);\n src.set(tempView);\n srcByteOffset = 0;\n chunkStart = 0;\n chunkEnd = alignedLength;\n byteLength = alignedLength;\n }\n // Chunk\n const maxChunk = 1024 * 1024 * 15;\n let offset = 0;\n while (chunkEnd - (chunkStart + offset) > maxChunk) {\n this._device.queue.writeBuffer(buffer, dstByteOffset + offset, src.buffer, chunkStart + offset, maxChunk);\n offset += maxChunk;\n }\n this._device.queue.writeBuffer(buffer, dstByteOffset + offset, src.buffer, chunkStart + offset, byteLength - offset);\n }\n _getHalfFloatAsFloatRGBAArrayBuffer(dataLength, arrayBuffer, destArray) {\n if (!destArray) {\n destArray = new Float32Array(dataLength);\n }\n const srcData = new Uint16Array(arrayBuffer);\n while (dataLength--) {\n destArray[dataLength] = FromHalfFloat(srcData[dataLength]);\n }\n return destArray;\n }\n readDataFromBuffer(gpuBuffer, size, width, height, bytesPerRow, bytesPerRowAligned, type = 0, offset = 0, buffer = null, destroyBuffer = true, noDataConversion = false) {\n const floatFormat = type === 1 ? 2 : type === 2 ? 1 : 0;\n const engineId = this._engine.uniqueId;\n return new Promise((resolve, reject) => {\n gpuBuffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */, offset, size).then(() => {\n const copyArrayBuffer = gpuBuffer.getMappedRange(offset, size);\n let data = buffer;\n if (noDataConversion) {\n if (data === null) {\n data = allocateAndCopyTypedBuffer(type, size, true, copyArrayBuffer);\n }\n else {\n data = allocateAndCopyTypedBuffer(type, data.buffer, undefined, copyArrayBuffer);\n }\n }\n else {\n if (data === null) {\n switch (floatFormat) {\n case 0: // byte format\n data = new Uint8Array(size);\n data.set(new Uint8Array(copyArrayBuffer));\n break;\n case 1: // half float\n // TODO WEBGPU use computer shaders (or render pass) to make the conversion?\n data = this._getHalfFloatAsFloatRGBAArrayBuffer(size / 2, copyArrayBuffer);\n break;\n case 2: // float\n data = new Float32Array(size / 4);\n data.set(new Float32Array(copyArrayBuffer));\n break;\n }\n }\n else {\n switch (floatFormat) {\n case 0: // byte format\n data = new Uint8Array(data.buffer);\n data.set(new Uint8Array(copyArrayBuffer));\n break;\n case 1: // half float\n // TODO WEBGPU use computer shaders (or render pass) to make the conversion?\n data = this._getHalfFloatAsFloatRGBAArrayBuffer(size / 2, copyArrayBuffer, buffer);\n break;\n case 2: // float\n data = new Float32Array(data.buffer);\n data.set(new Float32Array(copyArrayBuffer));\n break;\n }\n }\n }\n if (bytesPerRow !== bytesPerRowAligned) {\n // TODO WEBGPU use computer shaders (or render pass) to build the final buffer data?\n if (floatFormat === 1 && !noDataConversion) {\n // half float have been converted to float above\n bytesPerRow *= 2;\n bytesPerRowAligned *= 2;\n }\n const data2 = new Uint8Array(data.buffer);\n let offset = bytesPerRow, offset2 = 0;\n for (let y = 1; y < height; ++y) {\n offset2 = y * bytesPerRowAligned;\n for (let x = 0; x < bytesPerRow; ++x) {\n data2[offset++] = data2[offset2++];\n }\n }\n if (floatFormat !== 0 && !noDataConversion) {\n data = new Float32Array(data2.buffer, 0, offset / 4);\n }\n else {\n data = new Uint8Array(data2.buffer, 0, offset);\n }\n }\n gpuBuffer.unmap();\n if (destroyBuffer) {\n this.releaseBuffer(gpuBuffer);\n }\n resolve(data);\n }, (reason) => {\n if (this._engine.isDisposed || this._engine.uniqueId !== engineId) {\n // The engine was disposed while waiting for the promise, or a context loss/restoration has occurred: don't reject\n resolve(new Uint8Array());\n }\n else {\n reject(reason);\n }\n });\n });\n }\n releaseBuffer(buffer) {\n if (WebGPUBufferManager._IsGPUBuffer(buffer)) {\n this._deferredReleaseBuffers.push(buffer);\n return true;\n }\n buffer.references--;\n if (buffer.references === 0) {\n this._deferredReleaseBuffers.push(buffer.underlyingResource);\n return true;\n }\n return false;\n }\n destroyDeferredBuffers() {\n for (let i = 0; i < this._deferredReleaseBuffers.length; ++i) {\n this._deferredReleaseBuffers[i].destroy();\n }\n this._deferredReleaseBuffers.length = 0;\n }\n}\n","\nconst filterToBits = [\n 0 | (0 << 1) | (0 << 2), // not used\n 0 | (0 << 1) | (0 << 2), // TEXTURE_NEAREST_SAMPLINGMODE / TEXTURE_NEAREST_NEAREST\n 1 | (1 << 1) | (0 << 2), // TEXTURE_BILINEAR_SAMPLINGMODE / TEXTURE_LINEAR_LINEAR\n 1 | (1 << 1) | (1 << 2), // TEXTURE_TRILINEAR_SAMPLINGMODE / TEXTURE_LINEAR_LINEAR_MIPLINEAR\n 0 | (0 << 1) | (0 << 2), // TEXTURE_NEAREST_NEAREST_MIPNEAREST\n 0 | (1 << 1) | (0 << 2), // TEXTURE_NEAREST_LINEAR_MIPNEAREST\n 0 | (1 << 1) | (1 << 2), // TEXTURE_NEAREST_LINEAR_MIPLINEAR\n 0 | (1 << 1) | (0 << 2), // TEXTURE_NEAREST_LINEAR\n 0 | (0 << 1) | (1 << 2), // TEXTURE_NEAREST_NEAREST_MIPLINEAR\n 1 | (0 << 1) | (0 << 2), // TEXTURE_LINEAR_NEAREST_MIPNEAREST\n 1 | (0 << 1) | (1 << 2), // TEXTURE_LINEAR_NEAREST_MIPLINEAR\n 1 | (1 << 1) | (0 << 2), // TEXTURE_LINEAR_LINEAR_MIPNEAREST\n 1 | (0 << 1) | (0 << 2), // TEXTURE_LINEAR_NEAREST\n];\n// subtract 0x01FF from the comparison function value before indexing this array!\nconst comparisonFunctionToBits = [\n (0 << 3) | (0 << 4) | (0 << 5) | (0 << 6), // undefined\n (0 << 3) | (0 << 4) | (0 << 5) | (1 << 6), // NEVER\n (0 << 3) | (0 << 4) | (1 << 5) | (0 << 6), // LESS\n (0 << 3) | (0 << 4) | (1 << 5) | (1 << 6), // EQUAL\n (0 << 3) | (1 << 4) | (0 << 5) | (0 << 6), // LEQUAL\n (0 << 3) | (1 << 4) | (0 << 5) | (1 << 6), // GREATER\n (0 << 3) | (1 << 4) | (1 << 5) | (0 << 6), // NOTEQUAL\n (0 << 3) | (1 << 4) | (1 << 5) | (1 << 6), // GEQUAL\n (1 << 3) | (0 << 4) | (0 << 5) | (0 << 6), // ALWAYS\n];\nconst filterNoMipToBits = [\n 0 << 7, // not used\n 1 << 7, // TEXTURE_NEAREST_SAMPLINGMODE / TEXTURE_NEAREST_NEAREST\n 1 << 7, // TEXTURE_BILINEAR_SAMPLINGMODE / TEXTURE_LINEAR_LINEAR\n 0 << 7, // TEXTURE_TRILINEAR_SAMPLINGMODE / TEXTURE_LINEAR_LINEAR_MIPLINEAR\n 0 << 7, // TEXTURE_NEAREST_NEAREST_MIPNEAREST\n 0 << 7, // TEXTURE_NEAREST_LINEAR_MIPNEAREST\n 0 << 7, // TEXTURE_NEAREST_LINEAR_MIPLINEAR\n 1 << 7, // TEXTURE_NEAREST_LINEAR\n 0 << 7, // TEXTURE_NEAREST_NEAREST_MIPLINEAR\n 0 << 7, // TEXTURE_LINEAR_NEAREST_MIPNEAREST\n 0 << 7, // TEXTURE_LINEAR_NEAREST_MIPLINEAR\n 0 << 7, // TEXTURE_LINEAR_LINEAR_MIPNEAREST\n 1 << 7, // TEXTURE_LINEAR_NEAREST\n];\n/** @internal */\nexport class WebGPUCacheSampler {\n constructor(device) {\n this._samplers = {};\n this._device = device;\n this.disabled = false;\n }\n static GetSamplerHashCode(sampler) {\n // The WebGPU spec currently only allows values 1 and 4 for anisotropy\n const anisotropy = sampler._cachedAnisotropicFilteringLevel ? sampler._cachedAnisotropicFilteringLevel : 1;\n const code = filterToBits[sampler.samplingMode] +\n comparisonFunctionToBits[(sampler._comparisonFunction || 0x0202) - 0x0200 + 1] +\n filterNoMipToBits[sampler.samplingMode] + // handle the lodMinClamp = lodMaxClamp = 0 case when no filter used for mip mapping\n ((sampler._cachedWrapU ?? 1) << 8) +\n ((sampler._cachedWrapV ?? 1) << 10) +\n ((sampler._cachedWrapR ?? 1) << 12) +\n ((sampler.useMipMaps ? 1 : 0) << 14) + // need to factor this in because _getSamplerFilterDescriptor depends on samplingMode AND useMipMaps!\n (anisotropy << 15);\n return code;\n }\n static _GetSamplerFilterDescriptor(sampler, anisotropy) {\n let magFilter, minFilter, mipmapFilter, lodMinClamp, lodMaxClamp;\n const useMipMaps = sampler.useMipMaps;\n switch (sampler.samplingMode) {\n case 11:\n magFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n minFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n if (!useMipMaps) {\n lodMinClamp = lodMaxClamp = 0;\n }\n break;\n case 3:\n case 3:\n magFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n minFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n if (!useMipMaps) {\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n lodMinClamp = lodMaxClamp = 0;\n }\n else {\n mipmapFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n }\n break;\n case 8:\n magFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n minFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n if (!useMipMaps) {\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n lodMinClamp = lodMaxClamp = 0;\n }\n else {\n mipmapFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n }\n break;\n case 4:\n magFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n minFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n if (!useMipMaps) {\n lodMinClamp = lodMaxClamp = 0;\n }\n break;\n case 5:\n magFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n minFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n if (!useMipMaps) {\n lodMinClamp = lodMaxClamp = 0;\n }\n break;\n case 6:\n magFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n minFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n if (!useMipMaps) {\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n lodMinClamp = lodMaxClamp = 0;\n }\n else {\n mipmapFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n }\n break;\n case 7:\n magFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n minFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n lodMinClamp = lodMaxClamp = 0;\n break;\n case 1:\n case 1:\n magFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n minFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n lodMinClamp = lodMaxClamp = 0;\n break;\n case 9:\n magFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n minFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n if (!useMipMaps) {\n lodMinClamp = lodMaxClamp = 0;\n }\n break;\n case 10:\n magFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n minFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n if (!useMipMaps) {\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n lodMinClamp = lodMaxClamp = 0;\n }\n else {\n mipmapFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n }\n break;\n case 2:\n case 2:\n magFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n minFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n lodMinClamp = lodMaxClamp = 0;\n break;\n case 12:\n magFilter = \"linear\" /* WebGPUConstants.FilterMode.Linear */;\n minFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n lodMinClamp = lodMaxClamp = 0;\n break;\n default:\n magFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n minFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n mipmapFilter = \"nearest\" /* WebGPUConstants.FilterMode.Nearest */;\n lodMinClamp = lodMaxClamp = 0;\n break;\n }\n if (anisotropy > 1 && (lodMinClamp !== 0 || lodMaxClamp !== 0) && mipmapFilter !== \"nearest\" /* WebGPUConstants.FilterMode.Nearest */) {\n return {\n magFilter: \"linear\" /* WebGPUConstants.FilterMode.Linear */,\n minFilter: \"linear\" /* WebGPUConstants.FilterMode.Linear */,\n mipmapFilter: \"linear\" /* WebGPUConstants.FilterMode.Linear */,\n anisotropyEnabled: true,\n };\n }\n return {\n magFilter,\n minFilter,\n mipmapFilter,\n lodMinClamp,\n lodMaxClamp,\n };\n }\n static _GetWrappingMode(mode) {\n switch (mode) {\n case 1:\n return \"repeat\" /* WebGPUConstants.AddressMode.Repeat */;\n case 0:\n return \"clamp-to-edge\" /* WebGPUConstants.AddressMode.ClampToEdge */;\n case 2:\n return \"mirror-repeat\" /* WebGPUConstants.AddressMode.MirrorRepeat */;\n }\n return \"repeat\" /* WebGPUConstants.AddressMode.Repeat */;\n }\n static _GetSamplerWrappingDescriptor(sampler) {\n return {\n addressModeU: this._GetWrappingMode(sampler._cachedWrapU),\n addressModeV: this._GetWrappingMode(sampler._cachedWrapV),\n addressModeW: this._GetWrappingMode(sampler._cachedWrapR),\n };\n }\n static _GetSamplerDescriptor(sampler, label) {\n const anisotropy = sampler.useMipMaps && sampler._cachedAnisotropicFilteringLevel ? sampler._cachedAnisotropicFilteringLevel : 1;\n const filterDescriptor = this._GetSamplerFilterDescriptor(sampler, anisotropy);\n return {\n label,\n ...filterDescriptor,\n ...this._GetSamplerWrappingDescriptor(sampler),\n compare: sampler._comparisonFunction ? WebGPUCacheSampler.GetCompareFunction(sampler._comparisonFunction) : undefined,\n maxAnisotropy: filterDescriptor.anisotropyEnabled ? anisotropy : 1,\n };\n }\n static GetCompareFunction(compareFunction) {\n switch (compareFunction) {\n case 519:\n return \"always\" /* WebGPUConstants.CompareFunction.Always */;\n case 514:\n return \"equal\" /* WebGPUConstants.CompareFunction.Equal */;\n case 516:\n return \"greater\" /* WebGPUConstants.CompareFunction.Greater */;\n case 518:\n return \"greater-equal\" /* WebGPUConstants.CompareFunction.GreaterEqual */;\n case 513:\n return \"less\" /* WebGPUConstants.CompareFunction.Less */;\n case 515:\n return \"less-equal\" /* WebGPUConstants.CompareFunction.LessEqual */;\n case 512:\n return \"never\" /* WebGPUConstants.CompareFunction.Never */;\n case 517:\n return \"not-equal\" /* WebGPUConstants.CompareFunction.NotEqual */;\n default:\n return \"less\" /* WebGPUConstants.CompareFunction.Less */;\n }\n }\n getSampler(sampler, bypassCache = false, hash = 0, label) {\n if (this.disabled) {\n return this._device.createSampler(WebGPUCacheSampler._GetSamplerDescriptor(sampler, label));\n }\n if (bypassCache) {\n hash = 0;\n }\n else if (hash === 0) {\n hash = WebGPUCacheSampler.GetSamplerHashCode(sampler);\n }\n let gpuSampler = bypassCache ? undefined : this._samplers[hash];\n if (!gpuSampler) {\n gpuSampler = this._device.createSampler(WebGPUCacheSampler._GetSamplerDescriptor(sampler, label));\n if (!bypassCache) {\n this._samplers[hash] = gpuSampler;\n }\n }\n return gpuSampler;\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable babylonjs/available */\n/* eslint-disable jsdoc/require-jsdoc */\n\nimport { VertexBuffer } from \"../../Buffers/buffer.js\";\nimport { WebGPUTextureHelper } from \"./webgpuTextureHelper.js\";\nimport { renderableTextureFormatToIndex } from \"./webgpuTextureManager.js\";\nimport { checkNonFloatVertexBuffers } from \"../../Buffers/buffer.nonFloatVertexBuffers.js\";\nvar StatePosition;\n(function (StatePosition) {\n StatePosition[StatePosition[\"StencilReadMask\"] = 0] = \"StencilReadMask\";\n StatePosition[StatePosition[\"StencilWriteMask\"] = 1] = \"StencilWriteMask\";\n //DepthBiasClamp = 1, // not used, so remove it to improve perf\n StatePosition[StatePosition[\"DepthBias\"] = 2] = \"DepthBias\";\n StatePosition[StatePosition[\"DepthBiasSlopeScale\"] = 3] = \"DepthBiasSlopeScale\";\n StatePosition[StatePosition[\"DepthStencilState\"] = 4] = \"DepthStencilState\";\n StatePosition[StatePosition[\"MRTAttachments1\"] = 5] = \"MRTAttachments1\";\n StatePosition[StatePosition[\"MRTAttachments2\"] = 6] = \"MRTAttachments2\";\n StatePosition[StatePosition[\"RasterizationState\"] = 7] = \"RasterizationState\";\n StatePosition[StatePosition[\"ColorStates\"] = 8] = \"ColorStates\";\n StatePosition[StatePosition[\"ShaderStage\"] = 9] = \"ShaderStage\";\n StatePosition[StatePosition[\"TextureStage\"] = 10] = \"TextureStage\";\n StatePosition[StatePosition[\"VertexState\"] = 11] = \"VertexState\";\n StatePosition[StatePosition[\"NumStates\"] = 12] = \"NumStates\";\n})(StatePosition || (StatePosition = {}));\nconst alphaBlendFactorToIndex = {\n 0: 1, // Zero\n 1: 2, // One\n 0x0300: 3, // SrcColor\n 0x0301: 4, // OneMinusSrcColor\n 0x0302: 5, // SrcAlpha\n 0x0303: 6, // OneMinusSrcAlpha\n 0x0304: 7, // DstAlpha\n 0x0305: 8, // OneMinusDstAlpha\n 0x0306: 9, // DstColor\n 0x0307: 10, // OneMinusDstColor\n 0x0308: 11, // SrcAlphaSaturated\n 0x8001: 12, // BlendColor\n 0x8002: 13, // OneMinusBlendColor\n 0x8003: 12, // BlendColor (alpha)\n 0x8004: 13, // OneMinusBlendColor (alpha)\n};\nconst stencilOpToIndex = {\n 0x0000: 0, // ZERO\n 0x1e00: 1, // KEEP\n 0x1e01: 2, // REPLACE\n 0x1e02: 3, // INCR\n 0x1e03: 4, // DECR\n 0x150a: 5, // INVERT\n 0x8507: 6, // INCR_WRAP\n 0x8508: 7, // DECR_WRAP\n};\n/** @internal */\nexport class WebGPUCacheRenderPipeline {\n constructor(device, emptyVertexBuffer) {\n this.mrtTextureCount = 0;\n this._device = device;\n this._useTextureStage = true; // we force usage because we must handle depth textures with \"float\" filtering, which can't be fixed by a caps (like \"textureFloatLinearFiltering\" can for float textures)\n this._states = new Array(30); // pre-allocate enough room so that no new allocation will take place afterwards\n this._statesLength = 0;\n this._stateDirtyLowestIndex = 0;\n this._emptyVertexBuffer = emptyVertexBuffer;\n this._mrtFormats = [];\n this._parameter = { token: undefined, pipeline: null };\n this.disabled = false;\n this.vertexBuffers = [];\n this._kMaxVertexBufferStride = device.limits.maxVertexBufferArrayStride || 2048;\n this.reset();\n }\n reset() {\n this._isDirty = true;\n this.vertexBuffers.length = 0;\n this.setAlphaToCoverage(false);\n this.resetDepthCullingState();\n this.setClampDepth(false);\n this.setDepthBias(0);\n //this.setDepthBiasClamp(0);\n this._webgpuColorFormat = [\"bgra8unorm\" /* WebGPUConstants.TextureFormat.BGRA8Unorm */];\n this.setColorFormat(\"bgra8unorm\" /* WebGPUConstants.TextureFormat.BGRA8Unorm */);\n this.setMRT([]);\n this.setAlphaBlendEnabled(false);\n this.setAlphaBlendFactors([null, null, null, null], [null, null]);\n this.setWriteMask(0xf);\n this.setDepthStencilFormat(\"depth24plus-stencil8\" /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */);\n this.setStencilEnabled(false);\n this.resetStencilState();\n this.setBuffers(null, null, null);\n this._setTextureState(0);\n }\n get colorFormats() {\n return this._mrtAttachments1 > 0 ? this._mrtFormats : this._webgpuColorFormat;\n }\n getRenderPipeline(fillMode, effect, sampleCount, textureState = 0) {\n sampleCount = WebGPUTextureHelper.GetSample(sampleCount);\n if (this.disabled) {\n const topology = WebGPUCacheRenderPipeline._GetTopology(fillMode);\n this._setVertexState(effect); // to fill this.vertexBuffers with correct data\n this._setTextureState(textureState);\n this._parameter.pipeline = this._createRenderPipeline(effect, topology, sampleCount);\n WebGPUCacheRenderPipeline.NumCacheMiss++;\n WebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame++;\n return this._parameter.pipeline;\n }\n this._setShaderStage(effect.uniqueId);\n this._setRasterizationState(fillMode, sampleCount);\n this._setColorStates();\n this._setDepthStencilState();\n this._setVertexState(effect);\n this._setTextureState(textureState);\n this.lastStateDirtyLowestIndex = this._stateDirtyLowestIndex;\n if (!this._isDirty && this._parameter.pipeline) {\n this._stateDirtyLowestIndex = this._statesLength;\n WebGPUCacheRenderPipeline.NumCacheHitWithoutHash++;\n return this._parameter.pipeline;\n }\n this._getRenderPipeline(this._parameter);\n this._isDirty = false;\n this._stateDirtyLowestIndex = this._statesLength;\n if (this._parameter.pipeline) {\n WebGPUCacheRenderPipeline.NumCacheHitWithHash++;\n return this._parameter.pipeline;\n }\n const topology = WebGPUCacheRenderPipeline._GetTopology(fillMode);\n this._parameter.pipeline = this._createRenderPipeline(effect, topology, sampleCount);\n this._setRenderPipeline(this._parameter);\n WebGPUCacheRenderPipeline.NumCacheMiss++;\n WebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame++;\n return this._parameter.pipeline;\n }\n endFrame() {\n WebGPUCacheRenderPipeline.NumPipelineCreationLastFrame = WebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame;\n WebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame = 0;\n }\n setAlphaToCoverage(enabled) {\n this._alphaToCoverageEnabled = enabled;\n }\n setFrontFace(frontFace) {\n this._frontFace = frontFace;\n }\n setCullEnabled(enabled) {\n this._cullEnabled = enabled;\n }\n setCullFace(cullFace) {\n this._cullFace = cullFace;\n }\n setClampDepth(clampDepth) {\n this._clampDepth = clampDepth;\n }\n resetDepthCullingState() {\n this.setDepthCullingState(false, 2, 1, 0, 0, true, true, 519);\n }\n setDepthCullingState(cullEnabled, frontFace, cullFace, zOffset, zOffsetUnits, depthTestEnabled, depthWriteEnabled, depthCompare) {\n this._depthWriteEnabled = depthWriteEnabled;\n this._depthTestEnabled = depthTestEnabled;\n this._depthCompare = (depthCompare ?? 519) - 0x0200;\n this._cullFace = cullFace;\n this._cullEnabled = cullEnabled;\n this._frontFace = frontFace;\n this.setDepthBiasSlopeScale(zOffset);\n this.setDepthBias(zOffsetUnits);\n }\n setDepthBias(depthBias) {\n if (this._depthBias !== depthBias) {\n this._depthBias = depthBias;\n this._states[StatePosition.DepthBias] = depthBias;\n this._isDirty = true;\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.DepthBias);\n }\n }\n /*public setDepthBiasClamp(depthBiasClamp: number): void {\n if (this._depthBiasClamp !== depthBiasClamp) {\n this._depthBiasClamp = depthBiasClamp;\n this._states[StatePosition.DepthBiasClamp] = depthBiasClamp.toString();\n this._isDirty = true;\n }\n }*/\n setDepthBiasSlopeScale(depthBiasSlopeScale) {\n if (this._depthBiasSlopeScale !== depthBiasSlopeScale) {\n this._depthBiasSlopeScale = depthBiasSlopeScale;\n this._states[StatePosition.DepthBiasSlopeScale] = depthBiasSlopeScale;\n this._isDirty = true;\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.DepthBiasSlopeScale);\n }\n }\n setColorFormat(format) {\n this._webgpuColorFormat[0] = format;\n this._colorFormat = renderableTextureFormatToIndex[format ?? \"\"];\n }\n setMRTAttachments(attachments) {\n this.mrtAttachments = attachments;\n let mask = 0;\n for (let i = 0; i < attachments.length; ++i) {\n if (attachments[i] !== 0) {\n mask += 1 << i;\n }\n }\n if (this._mrtEnabledMask !== mask) {\n this._mrtEnabledMask = mask;\n this._isDirty = true;\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.MRTAttachments1);\n }\n }\n setMRT(textureArray, textureCount) {\n textureCount = textureCount ?? textureArray.length;\n if (textureCount > 10) {\n // If we want more than 10 attachments we need to change this method (and the StatePosition enum) but 10 seems plenty: note that WebGPU only supports 8 at the time (2021/12/13)!\n // As we need ~39 different values we are using 6 bits to encode a texture format, meaning we can encode 5 texture formats in 32 bits\n // We are using 2x32 bit values to handle 10 textures\n // eslint-disable-next-line no-throw-literal\n throw \"Can't handle more than 10 attachments for a MRT in cache render pipeline!\";\n }\n this.mrtTextureArray = textureArray;\n this.mrtTextureCount = textureCount;\n this._mrtEnabledMask = 0xffff; // all textures are enabled at start (meaning we can write to them). Calls to setMRTAttachments may disable some\n const bits = [0, 0];\n let indexBits = 0, mask = 0, numRT = 0;\n for (let i = 0; i < textureCount; ++i) {\n const texture = textureArray[i];\n const gpuWrapper = texture?._hardwareTexture;\n this._mrtFormats[numRT] = gpuWrapper?.format ?? this._webgpuColorFormat[0];\n bits[indexBits] += renderableTextureFormatToIndex[this._mrtFormats[numRT] ?? \"\"] << mask;\n mask += 6;\n numRT++;\n if (mask >= 32) {\n mask = 0;\n indexBits++;\n }\n }\n this._mrtFormats.length = numRT;\n if (this._mrtAttachments1 !== bits[0] || this._mrtAttachments2 !== bits[1]) {\n this._mrtAttachments1 = bits[0];\n this._mrtAttachments2 = bits[1];\n this._states[StatePosition.MRTAttachments1] = bits[0];\n this._states[StatePosition.MRTAttachments2] = bits[1];\n this._isDirty = true;\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.MRTAttachments1);\n }\n }\n setAlphaBlendEnabled(enabled) {\n this._alphaBlendEnabled = enabled;\n }\n setAlphaBlendFactors(factors, operations) {\n this._alphaBlendFuncParams = factors;\n this._alphaBlendEqParams = operations;\n }\n setWriteMask(mask) {\n this._writeMask = mask;\n }\n setDepthStencilFormat(format) {\n this._webgpuDepthStencilFormat = format;\n this._depthStencilFormat = format === undefined ? 0 : renderableTextureFormatToIndex[format];\n }\n setDepthTestEnabled(enabled) {\n this._depthTestEnabled = enabled;\n }\n setDepthWriteEnabled(enabled) {\n this._depthWriteEnabled = enabled;\n }\n setDepthCompare(func) {\n this._depthCompare = (func ?? 519) - 0x0200;\n }\n setStencilEnabled(enabled) {\n this._stencilEnabled = enabled;\n }\n setStencilCompare(func) {\n this._stencilFrontCompare = (func ?? 519) - 0x0200;\n }\n setStencilDepthFailOp(op) {\n this._stencilFrontDepthFailOp = op === null ? 1 /* KEEP */ : stencilOpToIndex[op];\n }\n setStencilPassOp(op) {\n this._stencilFrontPassOp = op === null ? 2 /* REPLACE */ : stencilOpToIndex[op];\n }\n setStencilFailOp(op) {\n this._stencilFrontFailOp = op === null ? 1 /* KEEP */ : stencilOpToIndex[op];\n }\n setStencilReadMask(mask) {\n if (this._stencilReadMask !== mask) {\n this._stencilReadMask = mask;\n this._states[StatePosition.StencilReadMask] = mask;\n this._isDirty = true;\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.StencilReadMask);\n }\n }\n setStencilWriteMask(mask) {\n if (this._stencilWriteMask !== mask) {\n this._stencilWriteMask = mask;\n this._states[StatePosition.StencilWriteMask] = mask;\n this._isDirty = true;\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.StencilWriteMask);\n }\n }\n resetStencilState() {\n this.setStencilState(false, 519, 7680, 7681, 7680, 0xff, 0xff);\n }\n setStencilState(stencilEnabled, compare, depthFailOp, passOp, failOp, readMask, writeMask) {\n this._stencilEnabled = stencilEnabled;\n this._stencilFrontCompare = (compare ?? 519) - 0x0200;\n this._stencilFrontDepthFailOp = depthFailOp === null ? 1 /* KEEP */ : stencilOpToIndex[depthFailOp];\n this._stencilFrontPassOp = passOp === null ? 2 /* REPLACE */ : stencilOpToIndex[passOp];\n this._stencilFrontFailOp = failOp === null ? 1 /* KEEP */ : stencilOpToIndex[failOp];\n this.setStencilReadMask(readMask);\n this.setStencilWriteMask(writeMask);\n }\n setBuffers(vertexBuffers, indexBuffer, overrideVertexBuffers) {\n this._vertexBuffers = vertexBuffers;\n this._overrideVertexBuffers = overrideVertexBuffers;\n this._indexBuffer = indexBuffer;\n }\n static _GetTopology(fillMode) {\n switch (fillMode) {\n // Triangle views\n case 0:\n return \"triangle-list\" /* WebGPUConstants.PrimitiveTopology.TriangleList */;\n case 2:\n return \"point-list\" /* WebGPUConstants.PrimitiveTopology.PointList */;\n case 1:\n return \"line-list\" /* WebGPUConstants.PrimitiveTopology.LineList */;\n // Draw modes\n case 3:\n return \"point-list\" /* WebGPUConstants.PrimitiveTopology.PointList */;\n case 4:\n return \"line-list\" /* WebGPUConstants.PrimitiveTopology.LineList */;\n case 5:\n // return this._gl.LINE_LOOP;\n // TODO WEBGPU. Line Loop Mode Fallback at buffer load time.\n // eslint-disable-next-line no-throw-literal\n throw \"LineLoop is an unsupported fillmode in WebGPU\";\n case 6:\n return \"line-strip\" /* WebGPUConstants.PrimitiveTopology.LineStrip */;\n case 7:\n return \"triangle-strip\" /* WebGPUConstants.PrimitiveTopology.TriangleStrip */;\n case 8:\n // return this._gl.TRIANGLE_FAN;\n // TODO WEBGPU. Triangle Fan Mode Fallback at buffer load time.\n // eslint-disable-next-line no-throw-literal\n throw \"TriangleFan is an unsupported fillmode in WebGPU\";\n default:\n return \"triangle-list\" /* WebGPUConstants.PrimitiveTopology.TriangleList */;\n }\n }\n static _GetAphaBlendOperation(operation) {\n switch (operation) {\n case 32774:\n return \"add\" /* WebGPUConstants.BlendOperation.Add */;\n case 32778:\n return \"subtract\" /* WebGPUConstants.BlendOperation.Subtract */;\n case 32779:\n return \"reverse-subtract\" /* WebGPUConstants.BlendOperation.ReverseSubtract */;\n case 32775:\n return \"min\" /* WebGPUConstants.BlendOperation.Min */;\n case 32776:\n return \"max\" /* WebGPUConstants.BlendOperation.Max */;\n default:\n return \"add\" /* WebGPUConstants.BlendOperation.Add */;\n }\n }\n static _GetAphaBlendFactor(factor) {\n switch (factor) {\n case 0:\n return \"zero\" /* WebGPUConstants.BlendFactor.Zero */;\n case 1:\n return \"one\" /* WebGPUConstants.BlendFactor.One */;\n case 768:\n return \"src\" /* WebGPUConstants.BlendFactor.Src */;\n case 769:\n return \"one-minus-src\" /* WebGPUConstants.BlendFactor.OneMinusSrc */;\n case 770:\n return \"src-alpha\" /* WebGPUConstants.BlendFactor.SrcAlpha */;\n case 771:\n return \"one-minus-src-alpha\" /* WebGPUConstants.BlendFactor.OneMinusSrcAlpha */;\n case 772:\n return \"dst-alpha\" /* WebGPUConstants.BlendFactor.DstAlpha */;\n case 773:\n return \"one-minus-dst-alpha\" /* WebGPUConstants.BlendFactor.OneMinusDstAlpha */;\n case 774:\n return \"dst\" /* WebGPUConstants.BlendFactor.Dst */;\n case 775:\n return \"one-minus-dst\" /* WebGPUConstants.BlendFactor.OneMinusDst */;\n case 776:\n return \"src-alpha-saturated\" /* WebGPUConstants.BlendFactor.SrcAlphaSaturated */;\n case 32769:\n return \"constant\" /* WebGPUConstants.BlendFactor.Constant */;\n case 32770:\n return \"one-minus-constant\" /* WebGPUConstants.BlendFactor.OneMinusConstant */;\n case 32771:\n return \"constant\" /* WebGPUConstants.BlendFactor.Constant */;\n case 32772:\n return \"one-minus-constant\" /* WebGPUConstants.BlendFactor.OneMinusConstant */;\n case 35065:\n return \"src1\" /* WebGPUConstants.BlendFactor.Src1 */;\n case 35066:\n return \"one-minus-src1\" /* WebGPUConstants.BlendFactor.OneMinusSrc1 */;\n case 34185:\n return \"src1-alpha\" /* WebGPUConstants.BlendFactor.Src1Alpha */;\n case 35067:\n return \"one-minus-src1-alpha\" /* WebGPUConstants.BlendFactor.OneMinusSrc1Alpha */;\n default:\n return \"one\" /* WebGPUConstants.BlendFactor.One */;\n }\n }\n static _GetCompareFunction(compareFunction) {\n switch (compareFunction) {\n case 0: // NEVER\n return \"never\" /* WebGPUConstants.CompareFunction.Never */;\n case 1: // LESS\n return \"less\" /* WebGPUConstants.CompareFunction.Less */;\n case 2: // EQUAL\n return \"equal\" /* WebGPUConstants.CompareFunction.Equal */;\n case 3: // LEQUAL\n return \"less-equal\" /* WebGPUConstants.CompareFunction.LessEqual */;\n case 4: // GREATER\n return \"greater\" /* WebGPUConstants.CompareFunction.Greater */;\n case 5: // NOTEQUAL\n return \"not-equal\" /* WebGPUConstants.CompareFunction.NotEqual */;\n case 6: // GEQUAL\n return \"greater-equal\" /* WebGPUConstants.CompareFunction.GreaterEqual */;\n case 7: // ALWAYS\n return \"always\" /* WebGPUConstants.CompareFunction.Always */;\n }\n return \"never\" /* WebGPUConstants.CompareFunction.Never */;\n }\n static _GetStencilOpFunction(operation) {\n switch (operation) {\n case 0:\n return \"zero\" /* WebGPUConstants.StencilOperation.Zero */;\n case 1:\n return \"keep\" /* WebGPUConstants.StencilOperation.Keep */;\n case 2:\n return \"replace\" /* WebGPUConstants.StencilOperation.Replace */;\n case 3:\n return \"increment-clamp\" /* WebGPUConstants.StencilOperation.IncrementClamp */;\n case 4:\n return \"decrement-clamp\" /* WebGPUConstants.StencilOperation.DecrementClamp */;\n case 5:\n return \"invert\" /* WebGPUConstants.StencilOperation.Invert */;\n case 6:\n return \"increment-wrap\" /* WebGPUConstants.StencilOperation.IncrementWrap */;\n case 7:\n return \"decrement-wrap\" /* WebGPUConstants.StencilOperation.DecrementWrap */;\n }\n return \"keep\" /* WebGPUConstants.StencilOperation.Keep */;\n }\n static _GetVertexInputDescriptorFormat(vertexBuffer) {\n const type = vertexBuffer.type;\n const normalized = vertexBuffer.normalized;\n const size = vertexBuffer.getSize();\n switch (type) {\n case VertexBuffer.BYTE:\n switch (size) {\n case 1:\n case 2:\n return normalized ? \"snorm8x2\" /* WebGPUConstants.VertexFormat.Snorm8x2 */ : \"sint8x2\" /* WebGPUConstants.VertexFormat.Sint8x2 */;\n case 3:\n case 4:\n return normalized ? \"snorm8x4\" /* WebGPUConstants.VertexFormat.Snorm8x4 */ : \"sint8x4\" /* WebGPUConstants.VertexFormat.Sint8x4 */;\n }\n break;\n case VertexBuffer.UNSIGNED_BYTE:\n switch (size) {\n case 1:\n case 2:\n return normalized ? \"unorm8x2\" /* WebGPUConstants.VertexFormat.Unorm8x2 */ : \"uint8x2\" /* WebGPUConstants.VertexFormat.Uint8x2 */;\n case 3:\n case 4:\n return normalized ? \"unorm8x4\" /* WebGPUConstants.VertexFormat.Unorm8x4 */ : \"uint8x4\" /* WebGPUConstants.VertexFormat.Uint8x4 */;\n }\n break;\n case VertexBuffer.SHORT:\n switch (size) {\n case 1:\n case 2:\n return normalized ? \"snorm16x2\" /* WebGPUConstants.VertexFormat.Snorm16x2 */ : \"sint16x2\" /* WebGPUConstants.VertexFormat.Sint16x2 */;\n case 3:\n case 4:\n return normalized ? \"snorm16x4\" /* WebGPUConstants.VertexFormat.Snorm16x4 */ : \"sint16x4\" /* WebGPUConstants.VertexFormat.Sint16x4 */;\n }\n break;\n case VertexBuffer.UNSIGNED_SHORT:\n switch (size) {\n case 1:\n case 2:\n return normalized ? \"unorm16x2\" /* WebGPUConstants.VertexFormat.Unorm16x2 */ : \"uint16x2\" /* WebGPUConstants.VertexFormat.Uint16x2 */;\n case 3:\n case 4:\n return normalized ? \"unorm16x4\" /* WebGPUConstants.VertexFormat.Unorm16x4 */ : \"uint16x4\" /* WebGPUConstants.VertexFormat.Uint16x4 */;\n }\n break;\n case VertexBuffer.INT:\n switch (size) {\n case 1:\n return \"sint32\" /* WebGPUConstants.VertexFormat.Sint32 */;\n case 2:\n return \"sint32x2\" /* WebGPUConstants.VertexFormat.Sint32x2 */;\n case 3:\n return \"sint32x3\" /* WebGPUConstants.VertexFormat.Sint32x3 */;\n case 4:\n return \"sint32x4\" /* WebGPUConstants.VertexFormat.Sint32x4 */;\n }\n break;\n case VertexBuffer.UNSIGNED_INT:\n switch (size) {\n case 1:\n return \"uint32\" /* WebGPUConstants.VertexFormat.Uint32 */;\n case 2:\n return \"uint32x2\" /* WebGPUConstants.VertexFormat.Uint32x2 */;\n case 3:\n return \"uint32x3\" /* WebGPUConstants.VertexFormat.Uint32x3 */;\n case 4:\n return \"uint32x4\" /* WebGPUConstants.VertexFormat.Uint32x4 */;\n }\n break;\n case VertexBuffer.FLOAT:\n switch (size) {\n case 1:\n return \"float32\" /* WebGPUConstants.VertexFormat.Float32 */;\n case 2:\n return \"float32x2\" /* WebGPUConstants.VertexFormat.Float32x2 */;\n case 3:\n return \"float32x3\" /* WebGPUConstants.VertexFormat.Float32x3 */;\n case 4:\n return \"float32x4\" /* WebGPUConstants.VertexFormat.Float32x4 */;\n }\n break;\n }\n throw new Error(`Invalid Format '${vertexBuffer.getKind()}' - type=${type}, normalized=${normalized}, size=${size}`);\n }\n _getAphaBlendState() {\n if (!this._alphaBlendEnabled) {\n return null;\n }\n return {\n srcFactor: WebGPUCacheRenderPipeline._GetAphaBlendFactor(this._alphaBlendFuncParams[2]),\n dstFactor: WebGPUCacheRenderPipeline._GetAphaBlendFactor(this._alphaBlendFuncParams[3]),\n operation: WebGPUCacheRenderPipeline._GetAphaBlendOperation(this._alphaBlendEqParams[1]),\n };\n }\n _getColorBlendState() {\n if (!this._alphaBlendEnabled) {\n return null;\n }\n return {\n srcFactor: WebGPUCacheRenderPipeline._GetAphaBlendFactor(this._alphaBlendFuncParams[0]),\n dstFactor: WebGPUCacheRenderPipeline._GetAphaBlendFactor(this._alphaBlendFuncParams[1]),\n operation: WebGPUCacheRenderPipeline._GetAphaBlendOperation(this._alphaBlendEqParams[0]),\n };\n }\n _setShaderStage(id) {\n if (this._shaderId !== id) {\n this._shaderId = id;\n this._states[StatePosition.ShaderStage] = id;\n this._isDirty = true;\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.ShaderStage);\n }\n }\n _setRasterizationState(topology, sampleCount) {\n const frontFace = this._frontFace;\n const cullMode = this._cullEnabled ? this._cullFace : 0;\n const clampDepth = this._clampDepth ? 1 : 0;\n const alphaToCoverage = this._alphaToCoverageEnabled ? 1 : 0;\n const rasterizationState = frontFace - 1 + (cullMode << 1) + (clampDepth << 3) + (alphaToCoverage << 4) + (topology << 5) + (sampleCount << 8);\n if (this._rasterizationState !== rasterizationState) {\n this._rasterizationState = rasterizationState;\n this._states[StatePosition.RasterizationState] = this._rasterizationState;\n this._isDirty = true;\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.RasterizationState);\n }\n }\n _setColorStates() {\n let colorStates = ((this._writeMask ? 1 : 0) << 22) + (this._colorFormat << 23) + ((this._depthWriteEnabled ? 1 : 0) << 29); // this state has been moved from depthStencilState here because alpha and depth are related (generally when alpha is on, depth write is off and the other way around)\n if (this._alphaBlendEnabled) {\n colorStates +=\n ((this._alphaBlendFuncParams[0] === null ? 2 : alphaBlendFactorToIndex[this._alphaBlendFuncParams[0]]) << 0) +\n ((this._alphaBlendFuncParams[1] === null ? 2 : alphaBlendFactorToIndex[this._alphaBlendFuncParams[1]]) << 4) +\n ((this._alphaBlendFuncParams[2] === null ? 2 : alphaBlendFactorToIndex[this._alphaBlendFuncParams[2]]) << 8) +\n ((this._alphaBlendFuncParams[3] === null ? 2 : alphaBlendFactorToIndex[this._alphaBlendFuncParams[3]]) << 12) +\n ((this._alphaBlendEqParams[0] === null ? 1 : this._alphaBlendEqParams[0] - 0x8005) << 16) +\n ((this._alphaBlendEqParams[1] === null ? 1 : this._alphaBlendEqParams[1] - 0x8005) << 19);\n }\n if (colorStates !== this._colorStates) {\n this._colorStates = colorStates;\n this._states[StatePosition.ColorStates] = this._colorStates;\n this._isDirty = true;\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.ColorStates);\n }\n }\n _setDepthStencilState() {\n const stencilState = !this._stencilEnabled\n ? 7 /* ALWAYS */ + (1 /* KEEP */ << 3) + (1 /* KEEP */ << 6) + (1 /* KEEP */ << 9)\n : this._stencilFrontCompare + (this._stencilFrontDepthFailOp << 3) + (this._stencilFrontPassOp << 6) + (this._stencilFrontFailOp << 9);\n const depthStencilState = this._depthStencilFormat + ((this._depthTestEnabled ? this._depthCompare : 7) /* ALWAYS */ << 6) + (stencilState << 10); // stencil front - stencil back is the same\n if (this._depthStencilState !== depthStencilState) {\n this._depthStencilState = depthStencilState;\n this._states[StatePosition.DepthStencilState] = this._depthStencilState;\n this._isDirty = true;\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.DepthStencilState);\n }\n }\n _setVertexState(effect) {\n const currStateLen = this._statesLength;\n let newNumStates = StatePosition.VertexState;\n const webgpuPipelineContext = effect._pipelineContext;\n const attributes = webgpuPipelineContext.shaderProcessingContext.attributeNamesFromEffect;\n const locations = webgpuPipelineContext.shaderProcessingContext.attributeLocationsFromEffect;\n let currentGPUBuffer;\n let numVertexBuffers = 0;\n for (let index = 0; index < attributes.length; index++) {\n const location = locations[index];\n let vertexBuffer = (this._overrideVertexBuffers && this._overrideVertexBuffers[attributes[index]]) ?? this._vertexBuffers[attributes[index]];\n if (!vertexBuffer) {\n // In WebGL it's valid to not bind a vertex buffer to an attribute, but it's not valid in WebGPU\n // So we must bind a dummy buffer when we are not given one for a specific attribute\n vertexBuffer = this._emptyVertexBuffer;\n }\n const buffer = vertexBuffer.effectiveBuffer?.underlyingResource;\n // We optimize usage of GPUVertexBufferLayout: we will create a single GPUVertexBufferLayout for all the attributes which follow each other and which use the same GPU buffer\n // However, there are some constraints in the attribute.offset value range, so we must check for them before being able to reuse the same GPUVertexBufferLayout\n // See _getVertexInputDescriptor() below\n if (vertexBuffer._validOffsetRange === undefined) {\n const offset = vertexBuffer.effectiveByteOffset;\n const formatSize = vertexBuffer.getSize(true);\n const byteStride = vertexBuffer.effectiveByteStride;\n vertexBuffer._validOffsetRange =\n (offset + formatSize <= this._kMaxVertexBufferStride && byteStride === 0) || (byteStride !== 0 && offset + formatSize <= byteStride);\n }\n if (!(currentGPUBuffer && currentGPUBuffer === buffer && vertexBuffer._validOffsetRange)) {\n // we can't combine the previous vertexBuffer with the current one\n this.vertexBuffers[numVertexBuffers++] = vertexBuffer;\n currentGPUBuffer = vertexBuffer._validOffsetRange ? buffer : null;\n }\n const vid = vertexBuffer.hashCode + (location << 7);\n this._isDirty = this._isDirty || this._states[newNumStates] !== vid;\n this._states[newNumStates++] = vid;\n }\n this.vertexBuffers.length = numVertexBuffers;\n this._statesLength = newNumStates;\n this._isDirty = this._isDirty || newNumStates !== currStateLen;\n if (this._isDirty) {\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.VertexState);\n }\n }\n _setTextureState(textureState) {\n if (this._textureState !== textureState) {\n this._textureState = textureState;\n this._states[StatePosition.TextureStage] = this._textureState;\n this._isDirty = true;\n this._stateDirtyLowestIndex = Math.min(this._stateDirtyLowestIndex, StatePosition.TextureStage);\n }\n }\n _createPipelineLayout(webgpuPipelineContext) {\n if (this._useTextureStage) {\n return this._createPipelineLayoutWithTextureStage(webgpuPipelineContext);\n }\n const bindGroupLayouts = [];\n const bindGroupLayoutEntries = webgpuPipelineContext.shaderProcessingContext.bindGroupLayoutEntries;\n for (let i = 0; i < bindGroupLayoutEntries.length; i++) {\n const setDefinition = bindGroupLayoutEntries[i];\n bindGroupLayouts[i] = this._device.createBindGroupLayout({\n entries: setDefinition,\n });\n }\n webgpuPipelineContext.bindGroupLayouts[0] = bindGroupLayouts;\n return this._device.createPipelineLayout({ bindGroupLayouts });\n }\n _createPipelineLayoutWithTextureStage(webgpuPipelineContext) {\n const shaderProcessingContext = webgpuPipelineContext.shaderProcessingContext;\n const bindGroupLayoutEntries = shaderProcessingContext.bindGroupLayoutEntries;\n let bitVal = 1;\n for (let i = 0; i < bindGroupLayoutEntries.length; i++) {\n const setDefinition = bindGroupLayoutEntries[i];\n for (let j = 0; j < setDefinition.length; j++) {\n const entry = bindGroupLayoutEntries[i][j];\n if (entry.texture) {\n const name = shaderProcessingContext.bindGroupLayoutEntryInfo[i][entry.binding].name;\n const textureInfo = shaderProcessingContext.availableTextures[name];\n const samplerInfo = textureInfo.autoBindSampler ? shaderProcessingContext.availableSamplers[name + `Sampler`] : null;\n let sampleType = textureInfo.sampleType;\n let samplerType = samplerInfo?.type ?? \"filtering\" /* WebGPUConstants.SamplerBindingType.Filtering */;\n if (this._textureState & bitVal && sampleType !== \"depth\" /* WebGPUConstants.TextureSampleType.Depth */) {\n // The texture is a 32 bits float texture but the system does not support linear filtering for them OR the texture is a depth texture with \"float\" filtering:\n // we set the sampler to \"non-filtering\" and the texture sample type to \"unfilterable-float\"\n if (textureInfo.autoBindSampler) {\n samplerType = \"non-filtering\" /* WebGPUConstants.SamplerBindingType.NonFiltering */;\n }\n sampleType = \"unfilterable-float\" /* WebGPUConstants.TextureSampleType.UnfilterableFloat */;\n }\n entry.texture.sampleType = sampleType;\n if (samplerInfo) {\n const binding = shaderProcessingContext.bindGroupLayoutEntryInfo[samplerInfo.binding.groupIndex][samplerInfo.binding.bindingIndex].index;\n bindGroupLayoutEntries[samplerInfo.binding.groupIndex][binding].sampler.type = samplerType;\n }\n bitVal = bitVal << 1;\n }\n }\n }\n const bindGroupLayouts = [];\n for (let i = 0; i < bindGroupLayoutEntries.length; ++i) {\n bindGroupLayouts[i] = this._device.createBindGroupLayout({\n entries: bindGroupLayoutEntries[i],\n });\n }\n webgpuPipelineContext.bindGroupLayouts[this._textureState] = bindGroupLayouts;\n return this._device.createPipelineLayout({ bindGroupLayouts });\n }\n _getVertexInputDescriptor(effect) {\n const descriptors = [];\n const webgpuPipelineContext = effect._pipelineContext;\n const attributes = webgpuPipelineContext.shaderProcessingContext.attributeNamesFromEffect;\n const locations = webgpuPipelineContext.shaderProcessingContext.attributeLocationsFromEffect;\n let currentGPUBuffer;\n let currentGPUAttributes;\n for (let index = 0; index < attributes.length; index++) {\n const location = locations[index];\n let vertexBuffer = (this._overrideVertexBuffers && this._overrideVertexBuffers[attributes[index]]) ?? this._vertexBuffers[attributes[index]];\n if (!vertexBuffer) {\n // In WebGL it's valid to not bind a vertex buffer to an attribute, but it's not valid in WebGPU\n // So we must bind a dummy buffer when we are not given one for a specific attribute\n vertexBuffer = this._emptyVertexBuffer;\n }\n let buffer = vertexBuffer.effectiveBuffer?.underlyingResource;\n // We reuse the same GPUVertexBufferLayout for all attributes that use the same underlying GPU buffer (and for attributes that follow each other in the attributes array)\n let offset = vertexBuffer.effectiveByteOffset;\n const invalidOffsetRange = !vertexBuffer._validOffsetRange;\n if (!(currentGPUBuffer && currentGPUAttributes && currentGPUBuffer === buffer) || invalidOffsetRange) {\n const vertexBufferDescriptor = {\n arrayStride: vertexBuffer.effectiveByteStride,\n stepMode: vertexBuffer.getIsInstanced() ? \"instance\" /* WebGPUConstants.VertexStepMode.Instance */ : \"vertex\" /* WebGPUConstants.VertexStepMode.Vertex */,\n attributes: [],\n };\n descriptors.push(vertexBufferDescriptor);\n currentGPUAttributes = vertexBufferDescriptor.attributes;\n if (invalidOffsetRange) {\n offset = 0; // the offset will be set directly in the setVertexBuffer call\n buffer = null; // buffer can't be reused\n }\n }\n currentGPUAttributes.push({\n shaderLocation: location,\n offset,\n format: WebGPUCacheRenderPipeline._GetVertexInputDescriptorFormat(vertexBuffer),\n });\n currentGPUBuffer = buffer;\n }\n return descriptors;\n }\n _createRenderPipeline(effect, topology, sampleCount) {\n const webgpuPipelineContext = effect._pipelineContext;\n const inputStateDescriptor = this._getVertexInputDescriptor(effect);\n const pipelineLayout = this._createPipelineLayout(webgpuPipelineContext);\n const colorStates = [];\n const alphaBlend = this._getAphaBlendState();\n const colorBlend = this._getColorBlendState();\n if (this._vertexBuffers) {\n checkNonFloatVertexBuffers(this._vertexBuffers, effect);\n }\n if (this._mrtAttachments1 > 0) {\n for (let i = 0; i < this._mrtFormats.length; ++i) {\n const format = this._mrtFormats[i];\n if (format) {\n const descr = {\n format,\n writeMask: (this._mrtEnabledMask & (1 << i)) !== 0 ? this._writeMask : 0,\n };\n if (alphaBlend && colorBlend) {\n descr.blend = {\n alpha: alphaBlend,\n color: colorBlend,\n };\n }\n colorStates.push(descr);\n }\n else {\n colorStates.push(null);\n }\n }\n }\n else {\n if (this._webgpuColorFormat[0]) {\n const descr = {\n format: this._webgpuColorFormat[0],\n writeMask: this._writeMask,\n };\n if (alphaBlend && colorBlend) {\n descr.blend = {\n alpha: alphaBlend,\n color: colorBlend,\n };\n }\n colorStates.push(descr);\n }\n else {\n colorStates.push(null);\n }\n }\n const stencilFrontBack = {\n compare: WebGPUCacheRenderPipeline._GetCompareFunction(this._stencilEnabled ? this._stencilFrontCompare : 7 /* ALWAYS */),\n depthFailOp: WebGPUCacheRenderPipeline._GetStencilOpFunction(this._stencilEnabled ? this._stencilFrontDepthFailOp : 1 /* KEEP */),\n failOp: WebGPUCacheRenderPipeline._GetStencilOpFunction(this._stencilEnabled ? this._stencilFrontFailOp : 1 /* KEEP */),\n passOp: WebGPUCacheRenderPipeline._GetStencilOpFunction(this._stencilEnabled ? this._stencilFrontPassOp : 1 /* KEEP */),\n };\n let stripIndexFormat = undefined;\n if (topology === \"line-strip\" /* WebGPUConstants.PrimitiveTopology.LineStrip */ || topology === \"triangle-strip\" /* WebGPUConstants.PrimitiveTopology.TriangleStrip */) {\n stripIndexFormat = !this._indexBuffer || this._indexBuffer.is32Bits ? \"uint32\" /* WebGPUConstants.IndexFormat.Uint32 */ : \"uint16\" /* WebGPUConstants.IndexFormat.Uint16 */;\n }\n const depthStencilFormatHasStencil = this._webgpuDepthStencilFormat ? WebGPUTextureHelper.HasStencilAspect(this._webgpuDepthStencilFormat) : false;\n return this._device.createRenderPipeline({\n label: `RenderPipeline_${colorStates[0]?.format ?? \"nooutput\"}_${this._webgpuDepthStencilFormat ?? \"nodepth\"}_samples${sampleCount}_textureState${this._textureState}`,\n layout: pipelineLayout,\n vertex: {\n module: webgpuPipelineContext.stages.vertexStage.module,\n entryPoint: webgpuPipelineContext.stages.vertexStage.entryPoint,\n buffers: inputStateDescriptor,\n },\n primitive: {\n topology,\n stripIndexFormat,\n frontFace: this._frontFace === 1 ? \"ccw\" /* WebGPUConstants.FrontFace.CCW */ : \"cw\" /* WebGPUConstants.FrontFace.CW */,\n cullMode: !this._cullEnabled ? \"none\" /* WebGPUConstants.CullMode.None */ : this._cullFace === 2 ? \"front\" /* WebGPUConstants.CullMode.Front */ : \"back\" /* WebGPUConstants.CullMode.Back */,\n },\n fragment: !webgpuPipelineContext.stages.fragmentStage\n ? undefined\n : {\n module: webgpuPipelineContext.stages.fragmentStage.module,\n entryPoint: webgpuPipelineContext.stages.fragmentStage.entryPoint,\n targets: colorStates,\n },\n multisample: {\n count: sampleCount,\n /*mask,\n alphaToCoverageEnabled,*/\n },\n depthStencil: this._webgpuDepthStencilFormat === undefined\n ? undefined\n : {\n depthWriteEnabled: this._depthWriteEnabled,\n depthCompare: this._depthTestEnabled ? WebGPUCacheRenderPipeline._GetCompareFunction(this._depthCompare) : \"always\" /* WebGPUConstants.CompareFunction.Always */,\n format: this._webgpuDepthStencilFormat,\n stencilFront: this._stencilEnabled && depthStencilFormatHasStencil ? stencilFrontBack : undefined,\n stencilBack: this._stencilEnabled && depthStencilFormatHasStencil ? stencilFrontBack : undefined,\n stencilReadMask: this._stencilEnabled && depthStencilFormatHasStencil ? this._stencilReadMask : undefined,\n stencilWriteMask: this._stencilEnabled && depthStencilFormatHasStencil ? this._stencilWriteMask : undefined,\n depthBias: this._depthBias,\n depthBiasClamp: this._depthBiasClamp,\n depthBiasSlopeScale: this._depthBiasSlopeScale,\n },\n });\n }\n}\nWebGPUCacheRenderPipeline.NumCacheHitWithoutHash = 0;\nWebGPUCacheRenderPipeline.NumCacheHitWithHash = 0;\nWebGPUCacheRenderPipeline.NumCacheMiss = 0;\nWebGPUCacheRenderPipeline.NumPipelineCreationLastFrame = 0;\nWebGPUCacheRenderPipeline._NumPipelineCreationCurrentFrame = 0;\n","import { WebGPUCacheRenderPipeline } from \"./webgpuCacheRenderPipeline.js\";\n/** @internal */\nclass NodeState {\n constructor() {\n this.values = {};\n }\n count() {\n let countNode = 0, countPipeline = this.pipeline ? 1 : 0;\n for (const value in this.values) {\n const node = this.values[value];\n const [childCountNodes, childCoundPipeline] = node.count();\n countNode += childCountNodes;\n countPipeline += childCoundPipeline;\n countNode++;\n }\n return [countNode, countPipeline];\n }\n}\n/** @internal */\nexport class WebGPUCacheRenderPipelineTree extends WebGPUCacheRenderPipeline {\n static GetNodeCounts() {\n const counts = WebGPUCacheRenderPipelineTree._Cache.count();\n return { nodeCount: counts[0], pipelineCount: counts[1] };\n }\n static _GetPipelines(node, pipelines, curPath, curPathLen) {\n if (node.pipeline) {\n const path = curPath.slice();\n path.length = curPathLen;\n pipelines.push(path);\n }\n for (const value in node.values) {\n const nnode = node.values[value];\n curPath[curPathLen] = parseInt(value);\n WebGPUCacheRenderPipelineTree._GetPipelines(nnode, pipelines, curPath, curPathLen + 1);\n }\n }\n static GetPipelines() {\n const pipelines = [];\n WebGPUCacheRenderPipelineTree._GetPipelines(WebGPUCacheRenderPipelineTree._Cache, pipelines, [], 0);\n return pipelines;\n }\n static ResetCache() {\n WebGPUCacheRenderPipelineTree._Cache = new NodeState();\n }\n reset() {\n this._nodeStack = [];\n this._nodeStack[0] = WebGPUCacheRenderPipelineTree._Cache;\n super.reset();\n }\n _getRenderPipeline(param) {\n let node = this._nodeStack[this._stateDirtyLowestIndex];\n for (let i = this._stateDirtyLowestIndex; i < this._statesLength; ++i) {\n let nn = node.values[this._states[i]];\n if (!nn) {\n nn = new NodeState();\n node.values[this._states[i]] = nn;\n }\n node = nn;\n this._nodeStack[i + 1] = node;\n }\n param.token = node;\n param.pipeline = node.pipeline;\n }\n _setRenderPipeline(param) {\n param.token.pipeline = param.pipeline;\n }\n}\nWebGPUCacheRenderPipelineTree._Cache = new NodeState();\n","import { StencilStateComposer } from \"../../States/stencilStateComposer.js\";\n/**\n * @internal\n **/\nexport class WebGPUStencilStateComposer extends StencilStateComposer {\n constructor(cache) {\n super(false);\n this._cache = cache;\n this.reset();\n }\n get func() {\n return this._func;\n }\n set func(value) {\n if (this._func === value) {\n return;\n }\n this._func = value;\n this._cache.setStencilCompare(value);\n }\n get funcMask() {\n return this._funcMask;\n }\n set funcMask(value) {\n if (this._funcMask === value) {\n return;\n }\n this._funcMask = value;\n this._cache.setStencilReadMask(value);\n }\n get opStencilFail() {\n return this._opStencilFail;\n }\n set opStencilFail(value) {\n if (this._opStencilFail === value) {\n return;\n }\n this._opStencilFail = value;\n this._cache.setStencilFailOp(value);\n }\n get opDepthFail() {\n return this._opDepthFail;\n }\n set opDepthFail(value) {\n if (this._opDepthFail === value) {\n return;\n }\n this._opDepthFail = value;\n this._cache.setStencilDepthFailOp(value);\n }\n get opStencilDepthPass() {\n return this._opStencilDepthPass;\n }\n set opStencilDepthPass(value) {\n if (this._opStencilDepthPass === value) {\n return;\n }\n this._opStencilDepthPass = value;\n this._cache.setStencilPassOp(value);\n }\n get mask() {\n return this._mask;\n }\n set mask(value) {\n if (this._mask === value) {\n return;\n }\n this._mask = value;\n this._cache.setStencilWriteMask(value);\n }\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n if (this._enabled === value) {\n return;\n }\n this._enabled = value;\n this._cache.setStencilEnabled(value);\n }\n reset() {\n super.reset();\n this._cache.resetStencilState();\n }\n apply() {\n const stencilMaterialEnabled = this.stencilMaterial?.enabled;\n this.enabled = stencilMaterialEnabled ? this.stencilMaterial.enabled : this.stencilGlobal.enabled;\n if (!this.enabled) {\n return;\n }\n this.func = stencilMaterialEnabled ? this.stencilMaterial.func : this.stencilGlobal.func;\n this.funcRef = stencilMaterialEnabled ? this.stencilMaterial.funcRef : this.stencilGlobal.funcRef;\n this.funcMask = stencilMaterialEnabled ? this.stencilMaterial.funcMask : this.stencilGlobal.funcMask;\n this.opStencilFail = stencilMaterialEnabled ? this.stencilMaterial.opStencilFail : this.stencilGlobal.opStencilFail;\n this.opDepthFail = stencilMaterialEnabled ? this.stencilMaterial.opDepthFail : this.stencilGlobal.opDepthFail;\n this.opStencilDepthPass = stencilMaterialEnabled ? this.stencilMaterial.opStencilDepthPass : this.stencilGlobal.opStencilDepthPass;\n this.mask = stencilMaterialEnabled ? this.stencilMaterial.mask : this.stencilGlobal.mask;\n }\n}\n","import { DepthCullingState } from \"../../States/depthCullingState.js\";\n/**\n * @internal\n **/\nexport class WebGPUDepthCullingState extends DepthCullingState {\n /**\n * Initializes the state.\n * @param cache\n */\n constructor(cache) {\n super(false);\n this._cache = cache;\n this.reset();\n }\n get zOffset() {\n return this._zOffset;\n }\n set zOffset(value) {\n if (this._zOffset === value) {\n return;\n }\n this._zOffset = value;\n this._isZOffsetDirty = true;\n this._cache.setDepthBiasSlopeScale(value);\n }\n get zOffsetUnits() {\n return this._zOffsetUnits;\n }\n set zOffsetUnits(value) {\n if (this._zOffsetUnits === value) {\n return;\n }\n this._zOffsetUnits = value;\n this._isZOffsetDirty = true;\n this._cache.setDepthBias(value);\n }\n get cullFace() {\n return this._cullFace;\n }\n set cullFace(value) {\n if (this._cullFace === value) {\n return;\n }\n this._cullFace = value;\n this._isCullFaceDirty = true;\n this._cache.setCullFace(value ?? 1);\n }\n get cull() {\n return this._cull;\n }\n set cull(value) {\n if (this._cull === value) {\n return;\n }\n this._cull = value;\n this._isCullDirty = true;\n this._cache.setCullEnabled(!!value);\n }\n get depthFunc() {\n return this._depthFunc;\n }\n set depthFunc(value) {\n if (this._depthFunc === value) {\n return;\n }\n this._depthFunc = value;\n this._isDepthFuncDirty = true;\n this._cache.setDepthCompare(value);\n }\n get depthMask() {\n return this._depthMask;\n }\n set depthMask(value) {\n if (this._depthMask === value) {\n return;\n }\n this._depthMask = value;\n this._isDepthMaskDirty = true;\n this._cache.setDepthWriteEnabled(value);\n }\n get depthTest() {\n return this._depthTest;\n }\n set depthTest(value) {\n if (this._depthTest === value) {\n return;\n }\n this._depthTest = value;\n this._isDepthTestDirty = true;\n this._cache.setDepthTestEnabled(value);\n }\n get frontFace() {\n return this._frontFace;\n }\n set frontFace(value) {\n if (this._frontFace === value) {\n return;\n }\n this._frontFace = value;\n this._isFrontFaceDirty = true;\n this._cache.setFrontFace(value ?? 2);\n }\n reset() {\n super.reset();\n this._cache.resetDepthCullingState();\n }\n apply() {\n // nothing to do\n }\n}\n","\nimport { InternalTexture } from \"./internalTexture.js\";\n/**\n * Class used to store an external texture (like GPUExternalTexture in WebGPU)\n */\nexport class ExternalTexture {\n /**\n * Checks if a texture is an external or internal texture\n * @param texture the external or internal texture\n * @returns true if the texture is an external texture, else false\n */\n static IsExternalTexture(texture) {\n return texture.underlyingResource !== undefined;\n }\n /**\n * Get the class name of the texture.\n * @returns \"ExternalTexture\"\n */\n getClassName() {\n return \"ExternalTexture\";\n }\n /**\n * Gets the underlying texture object\n */\n get underlyingResource() {\n return this._video;\n }\n /**\n * Constructs the texture\n * @param video The video the texture should be wrapped around\n */\n constructor(video) {\n /**\n * Gets a boolean indicating if the texture uses mipmaps\n */\n this.useMipMaps = false;\n /**\n * The type of the underlying texture is implementation dependent, so return \"UNDEFINED\" for the type\n */\n this.type = 16;\n /**\n * The format of the underlying texture is implementation dependent, so return \"UNDEFINED\" for the format\n */\n this.format = 4294967295;\n this._video = video;\n this.uniqueId = InternalTexture._Counter++;\n }\n /**\n * Get if the texture is ready to be used (downloaded, converted, mip mapped...).\n * @returns true if fully ready\n */\n isReady() {\n return this._video.readyState >= this._video.HAVE_CURRENT_DATA;\n }\n /**\n * Dispose the texture and release its associated resources.\n */\n dispose() { }\n}\n","/* eslint-disable babylonjs/available */\n/* eslint-disable jsdoc/require-jsdoc */\nimport { ExternalTexture } from \"../../Materials/Textures/externalTexture.js\";\n\nimport { WebGPUCacheSampler } from \"./webgpuCacheSampler.js\";\n/** @internal */\nexport class WebGPUMaterialContext {\n get forceBindGroupCreation() {\n // If there is at least one external texture to bind, we must recreate the bind groups each time\n // because we need to retrieve a new texture each frame (by calling device.importExternalTexture)\n return this._numExternalTextures > 0;\n }\n get hasFloatOrDepthTextures() {\n return this._numFloatOrDepthTextures > 0;\n }\n constructor() {\n this.uniqueId = WebGPUMaterialContext._Counter++;\n this.updateId = 0;\n this.textureState = 0;\n this.reset();\n }\n reset() {\n this.samplers = {};\n this.textures = {};\n this.isDirty = true;\n this._numFloatOrDepthTextures = 0;\n this._numExternalTextures = 0;\n }\n setSampler(name, sampler) {\n let samplerCache = this.samplers[name];\n let currentHashCode = -1;\n if (!samplerCache) {\n this.samplers[name] = samplerCache = { sampler, hashCode: 0 };\n }\n else {\n currentHashCode = samplerCache.hashCode;\n }\n samplerCache.sampler = sampler;\n samplerCache.hashCode = sampler ? WebGPUCacheSampler.GetSamplerHashCode(sampler) : 0;\n const isDirty = currentHashCode !== samplerCache.hashCode;\n if (isDirty) {\n this.updateId++;\n }\n this.isDirty || (this.isDirty = isDirty);\n }\n setTexture(name, texture) {\n let textureCache = this.textures[name];\n let currentTextureId = -1;\n if (!textureCache) {\n this.textures[name] = textureCache = { texture, isFloatOrDepthTexture: false, isExternalTexture: false };\n }\n else {\n currentTextureId = textureCache.texture?.uniqueId ?? -1;\n }\n if (textureCache.isExternalTexture) {\n this._numExternalTextures--;\n }\n if (textureCache.isFloatOrDepthTexture) {\n this._numFloatOrDepthTextures--;\n }\n if (texture) {\n textureCache.isFloatOrDepthTexture =\n texture.type === 1 ||\n (texture.format >= 13 && texture.format <= 18);\n textureCache.isExternalTexture = ExternalTexture.IsExternalTexture(texture);\n if (textureCache.isFloatOrDepthTexture) {\n this._numFloatOrDepthTextures++;\n }\n if (textureCache.isExternalTexture) {\n this._numExternalTextures++;\n }\n }\n else {\n textureCache.isFloatOrDepthTexture = false;\n textureCache.isExternalTexture = false;\n }\n textureCache.texture = texture;\n const isDirty = currentTextureId !== (texture?.uniqueId ?? -1);\n if (isDirty) {\n this.updateId++;\n }\n this.isDirty || (this.isDirty = isDirty);\n }\n}\nWebGPUMaterialContext._Counter = 0;\n","import * as WebGPUConstants from \"./webgpuConstants.js\";\n/** @internal */\nexport class WebGPUDrawContext {\n isDirty(materialContextUpdateId) {\n return this._isDirty || this._materialContextUpdateId !== materialContextUpdateId;\n }\n resetIsDirty(materialContextUpdateId) {\n this._isDirty = false;\n this._materialContextUpdateId = materialContextUpdateId;\n }\n get useInstancing() {\n return this._useInstancing;\n }\n set useInstancing(use) {\n if (this._useInstancing === use) {\n return;\n }\n if (!use) {\n if (this.indirectDrawBuffer) {\n this._bufferManager.releaseBuffer(this.indirectDrawBuffer);\n }\n this.indirectDrawBuffer = undefined;\n this._indirectDrawData = undefined;\n }\n else {\n this.indirectDrawBuffer = this._bufferManager.createRawBuffer(20, WebGPUConstants.BufferUsage.CopyDst | WebGPUConstants.BufferUsage.Indirect | WebGPUConstants.BufferUsage.Storage, undefined, \"IndirectDrawBuffer\");\n this._indirectDrawData = new Uint32Array(5);\n this._indirectDrawData[3] = 0;\n this._indirectDrawData[4] = 0;\n }\n this._useInstancing = use;\n this._currentInstanceCount = -1;\n }\n constructor(bufferManager) {\n this._bufferManager = bufferManager;\n this.uniqueId = WebGPUDrawContext._Counter++;\n this._useInstancing = false;\n this._currentInstanceCount = 0;\n this.reset();\n }\n reset() {\n this.buffers = {};\n this._isDirty = true;\n this._materialContextUpdateId = 0;\n this.fastBundle = undefined;\n this.bindGroups = undefined;\n }\n setBuffer(name, buffer) {\n this._isDirty || (this._isDirty = buffer?.uniqueId !== this.buffers[name]?.uniqueId);\n this.buffers[name] = buffer;\n }\n setIndirectData(indexOrVertexCount, instanceCount, firstIndexOrVertex) {\n if (instanceCount === this._currentInstanceCount || !this.indirectDrawBuffer || !this._indirectDrawData) {\n // The current buffer is already up to date so do nothing\n // Note that we only check for instanceCount and not indexOrVertexCount nor firstIndexOrVertex because those values\n // are supposed to not change during the lifetime of a draw context\n return;\n }\n this._currentInstanceCount = instanceCount;\n this._indirectDrawData[0] = indexOrVertexCount;\n this._indirectDrawData[1] = instanceCount;\n this._indirectDrawData[2] = firstIndexOrVertex;\n this._bufferManager.setRawData(this.indirectDrawBuffer, 0, this._indirectDrawData, 0, 20);\n }\n dispose() {\n if (this.indirectDrawBuffer) {\n this._bufferManager.releaseBuffer(this.indirectDrawBuffer);\n this.indirectDrawBuffer = undefined;\n this._indirectDrawData = undefined;\n }\n this.fastBundle = undefined;\n this.bindGroups = undefined;\n this.buffers = undefined;\n }\n}\nWebGPUDrawContext._Counter = 0;\n","/* eslint-disable babylonjs/available */\n/* eslint-disable jsdoc/require-jsdoc */\nimport { Logger } from \"../../Misc/logger.js\";\n/**\n * Sampler hash codes are 19 bits long, so using a start value of 2^20 for buffer ids will ensure we can't have any collision with the sampler hash codes\n */\nconst bufferIdStart = 1 << 20;\n/**\n * textureIdStart is added to texture ids to ensure we can't have any collision with the buffer ids / sampler hash codes.\n * 2^35 for textureIdStart means we can have:\n * - 2^(35-20) = 2^15 = 32768 possible buffer ids\n * - 2^(53-35) = 2^18 = 524288 possible texture ids\n */\nconst textureIdStart = 2 ** 35;\nclass WebGPUBindGroupCacheNode {\n constructor() {\n this.values = {};\n }\n}\n/** @internal */\nexport class WebGPUCacheBindGroups {\n static get Statistics() {\n return {\n totalCreated: WebGPUCacheBindGroups.NumBindGroupsCreatedTotal,\n lastFrameCreated: WebGPUCacheBindGroups.NumBindGroupsCreatedLastFrame,\n lookupLastFrame: WebGPUCacheBindGroups.NumBindGroupsLookupLastFrame,\n noLookupLastFrame: WebGPUCacheBindGroups.NumBindGroupsNoLookupLastFrame,\n };\n }\n static ResetCache() {\n WebGPUCacheBindGroups._Cache = new WebGPUBindGroupCacheNode();\n WebGPUCacheBindGroups.NumBindGroupsCreatedTotal = 0;\n WebGPUCacheBindGroups.NumBindGroupsCreatedLastFrame = 0;\n WebGPUCacheBindGroups.NumBindGroupsLookupLastFrame = 0;\n WebGPUCacheBindGroups.NumBindGroupsNoLookupLastFrame = 0;\n WebGPUCacheBindGroups._NumBindGroupsCreatedCurrentFrame = 0;\n WebGPUCacheBindGroups._NumBindGroupsLookupCurrentFrame = 0;\n WebGPUCacheBindGroups._NumBindGroupsNoLookupCurrentFrame = 0;\n }\n constructor(device, cacheSampler, engine) {\n this.disabled = false;\n this._device = device;\n this._cacheSampler = cacheSampler;\n this._engine = engine;\n }\n endFrame() {\n WebGPUCacheBindGroups.NumBindGroupsCreatedLastFrame = WebGPUCacheBindGroups._NumBindGroupsCreatedCurrentFrame;\n WebGPUCacheBindGroups.NumBindGroupsLookupLastFrame = WebGPUCacheBindGroups._NumBindGroupsLookupCurrentFrame;\n WebGPUCacheBindGroups.NumBindGroupsNoLookupLastFrame = WebGPUCacheBindGroups._NumBindGroupsNoLookupCurrentFrame;\n WebGPUCacheBindGroups._NumBindGroupsCreatedCurrentFrame = 0;\n WebGPUCacheBindGroups._NumBindGroupsLookupCurrentFrame = 0;\n WebGPUCacheBindGroups._NumBindGroupsNoLookupCurrentFrame = 0;\n }\n /**\n * Cache is currently based on the uniform/storage buffers, samplers and textures used by the binding groups.\n * Note that all uniform buffers have an offset of 0 in Babylon and we don't have a use case where we would have the same buffer used with different capacity values:\n * that means we don't need to factor in the offset/size of the buffer in the cache, only the id\n * @param webgpuPipelineContext\n * @param drawContext\n * @param materialContext\n * @returns a bind group array\n */\n getBindGroups(webgpuPipelineContext, drawContext, materialContext) {\n let bindGroups = undefined;\n let node = WebGPUCacheBindGroups._Cache;\n const cacheIsDisabled = this.disabled || materialContext.forceBindGroupCreation;\n if (!cacheIsDisabled) {\n if (!drawContext.isDirty(materialContext.updateId) && !materialContext.isDirty) {\n WebGPUCacheBindGroups._NumBindGroupsNoLookupCurrentFrame++;\n return drawContext.bindGroups;\n }\n for (const bufferName of webgpuPipelineContext.shaderProcessingContext.bufferNames) {\n const uboId = (drawContext.buffers[bufferName]?.uniqueId ?? 0) + bufferIdStart;\n let nextNode = node.values[uboId];\n if (!nextNode) {\n nextNode = new WebGPUBindGroupCacheNode();\n node.values[uboId] = nextNode;\n }\n node = nextNode;\n }\n for (const samplerName of webgpuPipelineContext.shaderProcessingContext.samplerNames) {\n const samplerHashCode = materialContext.samplers[samplerName]?.hashCode ?? 0;\n let nextNode = node.values[samplerHashCode];\n if (!nextNode) {\n nextNode = new WebGPUBindGroupCacheNode();\n node.values[samplerHashCode] = nextNode;\n }\n node = nextNode;\n }\n for (const textureName of webgpuPipelineContext.shaderProcessingContext.textureNames) {\n const textureId = (materialContext.textures[textureName]?.texture?.uniqueId ?? 0) + textureIdStart;\n let nextNode = node.values[textureId];\n if (!nextNode) {\n nextNode = new WebGPUBindGroupCacheNode();\n node.values[textureId] = nextNode;\n }\n node = nextNode;\n }\n bindGroups = node.bindGroups;\n }\n drawContext.resetIsDirty(materialContext.updateId);\n materialContext.isDirty = false;\n if (bindGroups) {\n drawContext.bindGroups = bindGroups;\n WebGPUCacheBindGroups._NumBindGroupsLookupCurrentFrame++;\n return bindGroups;\n }\n bindGroups = [];\n drawContext.bindGroups = bindGroups;\n if (!cacheIsDisabled) {\n node.bindGroups = bindGroups;\n }\n WebGPUCacheBindGroups.NumBindGroupsCreatedTotal++;\n WebGPUCacheBindGroups._NumBindGroupsCreatedCurrentFrame++;\n const bindGroupLayouts = webgpuPipelineContext.bindGroupLayouts[materialContext.textureState];\n for (let i = 0; i < webgpuPipelineContext.shaderProcessingContext.bindGroupLayoutEntries.length; i++) {\n const setDefinition = webgpuPipelineContext.shaderProcessingContext.bindGroupLayoutEntries[i];\n const entries = webgpuPipelineContext.shaderProcessingContext.bindGroupEntries[i];\n for (let j = 0; j < setDefinition.length; j++) {\n const entry = webgpuPipelineContext.shaderProcessingContext.bindGroupLayoutEntries[i][j];\n const entryInfo = webgpuPipelineContext.shaderProcessingContext.bindGroupLayoutEntryInfo[i][entry.binding];\n const name = entryInfo.nameInArrayOfTexture ?? entryInfo.name;\n if (entry.sampler) {\n const bindingInfo = materialContext.samplers[name];\n if (bindingInfo) {\n const sampler = bindingInfo.sampler;\n if (!sampler) {\n if (this._engine.dbgSanityChecks) {\n Logger.Error(`Trying to bind a null sampler! entry=${JSON.stringify(entry)}, name=${name}, bindingInfo=${JSON.stringify(bindingInfo, (key, value) => (key === \"texture\" ? \"\" : value))}, materialContext.uniqueId=${materialContext.uniqueId}`, 50);\n }\n continue;\n }\n entries[j].resource = this._cacheSampler.getSampler(sampler, false, bindingInfo.hashCode, sampler.label);\n }\n else {\n Logger.Error(`Sampler \"${name}\" could not be bound. entry=${JSON.stringify(entry)}, materialContext=${JSON.stringify(materialContext, (key, value) => key === \"texture\" || key === \"sampler\" ? \"\" : value)}`, 50);\n }\n }\n else if (entry.texture || entry.storageTexture) {\n const bindingInfo = materialContext.textures[name];\n if (bindingInfo) {\n if (this._engine.dbgSanityChecks && bindingInfo.texture === null) {\n Logger.Error(`Trying to bind a null texture! entry=${JSON.stringify(entry)}, bindingInfo=${JSON.stringify(bindingInfo, (key, value) => key === \"texture\" ? \"\" : value)}, materialContext.uniqueId=${materialContext.uniqueId}`, 50);\n continue;\n }\n const hardwareTexture = bindingInfo.texture._hardwareTexture;\n if (this._engine.dbgSanityChecks &&\n (!hardwareTexture || (entry.texture && !hardwareTexture.view) || (entry.storageTexture && !hardwareTexture.viewForWriting))) {\n Logger.Error(`Trying to bind a null gpu texture or view! entry=${JSON.stringify(entry)}, name=${name}, bindingInfo=${JSON.stringify(bindingInfo, (key, value) => (key === \"texture\" ? \"\" : value))}, isReady=${bindingInfo.texture?.isReady}, materialContext.uniqueId=${materialContext.uniqueId}`, 50);\n continue;\n }\n entries[j].resource = entry.storageTexture ? hardwareTexture.viewForWriting : hardwareTexture.view;\n }\n else {\n Logger.Error(`Texture \"${name}\" could not be bound. entry=${JSON.stringify(entry)}, materialContext=${JSON.stringify(materialContext, (key, value) => key === \"texture\" || key === \"sampler\" ? \"\" : value)}`, 50);\n }\n }\n else if (entry.externalTexture) {\n const bindingInfo = materialContext.textures[name];\n if (bindingInfo) {\n if (this._engine.dbgSanityChecks && bindingInfo.texture === null) {\n Logger.Error(`Trying to bind a null external texture! entry=${JSON.stringify(entry)}, name=${name}, bindingInfo=${JSON.stringify(bindingInfo, (key, value) => (key === \"texture\" ? \"\" : value))}, materialContext.uniqueId=${materialContext.uniqueId}`, 50);\n continue;\n }\n const externalTexture = bindingInfo.texture.underlyingResource;\n if (this._engine.dbgSanityChecks && !externalTexture) {\n Logger.Error(`Trying to bind a null gpu external texture! entry=${JSON.stringify(entry)}, name=${name}, bindingInfo=${JSON.stringify(bindingInfo, (key, value) => (key === \"texture\" ? \"\" : value))}, isReady=${bindingInfo.texture?.isReady}, materialContext.uniqueId=${materialContext.uniqueId}`, 50);\n continue;\n }\n entries[j].resource = this._device.importExternalTexture({ source: externalTexture });\n }\n else {\n Logger.Error(`Texture \"${name}\" could not be bound. entry=${JSON.stringify(entry)}, materialContext=${JSON.stringify(materialContext, (key, value) => key === \"texture\" || key === \"sampler\" ? \"\" : value)}`, 50);\n }\n }\n else if (entry.buffer) {\n const dataBuffer = drawContext.buffers[name];\n if (dataBuffer) {\n const webgpuBuffer = dataBuffer.underlyingResource;\n entries[j].resource.buffer = webgpuBuffer;\n entries[j].resource.size = dataBuffer.capacity;\n }\n else {\n Logger.Error(`Can't find buffer \"${name}\". entry=${JSON.stringify(entry)}, buffers=${JSON.stringify(drawContext.buffers)}, drawContext.uniqueId=${drawContext.uniqueId}`, 50);\n }\n }\n }\n const groupLayout = bindGroupLayouts[i];\n bindGroups[i] = this._device.createBindGroup({\n layout: groupLayout,\n entries,\n });\n }\n return bindGroups;\n }\n}\nWebGPUCacheBindGroups.NumBindGroupsCreatedTotal = 0;\nWebGPUCacheBindGroups.NumBindGroupsCreatedLastFrame = 0;\nWebGPUCacheBindGroups.NumBindGroupsLookupLastFrame = 0;\nWebGPUCacheBindGroups.NumBindGroupsNoLookupLastFrame = 0;\nWebGPUCacheBindGroups._Cache = new WebGPUBindGroupCacheNode();\nWebGPUCacheBindGroups._NumBindGroupsCreatedCurrentFrame = 0;\nWebGPUCacheBindGroups._NumBindGroupsLookupCurrentFrame = 0;\nWebGPUCacheBindGroups._NumBindGroupsNoLookupCurrentFrame = 0;\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"clearQuadVertexShader\";\nconst shader = `uniform depthValue: f32;const pos=array(\nvec2f(-1.0,1.0),\nvec2f(1.0,1.0),\nvec2f(-1.0,-1.0),\nvec2f(1.0,-1.0)\n);\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvertexOutputs.position=vec4f(pos[input.vertexIndex],uniforms.depthValue,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const clearQuadVertexShaderWGSL = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"clearQuadPixelShader\";\nconst shader = `uniform color: vec4f;@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=uniforms.color;}\n`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const clearQuadPixelShaderWGSL = { name, shader };\n","\nimport { WebGPUCacheRenderPipelineTree } from \"./webgpuCacheRenderPipelineTree.js\";\nimport { WebGPUShaderProcessingContext } from \"./webgpuShaderProcessingContext.js\";\nimport { WebGPUTextureHelper } from \"./webgpuTextureHelper.js\";\nimport { renderableTextureFormatToIndex } from \"./webgpuTextureManager.js\";\nimport \"../../ShadersWGSL/clearQuad.vertex.js\";\nimport \"../../ShadersWGSL/clearQuad.fragment.js\";\n/** @internal */\nexport class WebGPUClearQuad {\n setDepthStencilFormat(format) {\n this._depthTextureFormat = format;\n this._cacheRenderPipeline.setDepthStencilFormat(format);\n }\n setColorFormat(format) {\n this._cacheRenderPipeline.setColorFormat(format);\n }\n setMRTAttachments(attachments, textureArray, textureCount) {\n this._cacheRenderPipeline.setMRT(textureArray, textureCount);\n this._cacheRenderPipeline.setMRTAttachments(attachments);\n }\n constructor(device, engine, emptyVertexBuffer) {\n this._bindGroups = {};\n this._bundleCache = {};\n this._keyTemp = [];\n this._device = device;\n this._engine = engine;\n this._cacheRenderPipeline = new WebGPUCacheRenderPipelineTree(this._device, emptyVertexBuffer);\n this._cacheRenderPipeline.setDepthTestEnabled(false);\n this._cacheRenderPipeline.setStencilReadMask(0xff);\n this._effect = engine.createEffect(\"clearQuad\", [], [\"color\", \"depthValue\"], undefined, undefined, undefined, undefined, undefined, undefined, 1 /* ShaderLanguage.WGSL */);\n }\n clear(renderPass, clearColor, clearDepth, clearStencil, sampleCount = 1) {\n let renderPass2;\n let bundle = null;\n let bundleKey;\n const isRTTPass = !!this._engine._currentRenderTarget;\n if (renderPass) {\n renderPass2 = renderPass;\n }\n else {\n let idx = 0;\n this._keyTemp.length = 0;\n for (let i = 0; i < this._cacheRenderPipeline.colorFormats.length; ++i) {\n this._keyTemp[idx++] = renderableTextureFormatToIndex[this._cacheRenderPipeline.colorFormats[i] ?? \"\"];\n }\n const depthStencilFormatIndex = renderableTextureFormatToIndex[this._depthTextureFormat ?? 0];\n this._keyTemp[idx] =\n (clearColor ? clearColor.r + clearColor.g * 256 + clearColor.b * 256 * 256 + clearColor.a * 256 * 256 * 256 : 0) +\n (clearDepth ? 2 ** 32 : 0) +\n (clearStencil ? 2 ** 33 : 0) +\n (this._engine.useReverseDepthBuffer ? 2 ** 34 : 0) +\n (isRTTPass ? 2 ** 35 : 0) +\n (sampleCount > 1 ? 2 ** 36 : 0) +\n depthStencilFormatIndex * 2 ** 37;\n bundleKey = this._keyTemp.join(\"_\");\n bundle = this._bundleCache[bundleKey];\n if (bundle) {\n return bundle;\n }\n renderPass2 = this._device.createRenderBundleEncoder({\n label: \"clearQuadRenderBundle\",\n colorFormats: this._cacheRenderPipeline.colorFormats,\n depthStencilFormat: this._depthTextureFormat,\n sampleCount: WebGPUTextureHelper.GetSample(sampleCount),\n });\n }\n this._cacheRenderPipeline.setDepthWriteEnabled(!!clearDepth);\n this._cacheRenderPipeline.setStencilEnabled(!!clearStencil && !!this._depthTextureFormat && WebGPUTextureHelper.HasStencilAspect(this._depthTextureFormat));\n this._cacheRenderPipeline.setStencilWriteMask(clearStencil ? 0xff : 0);\n this._cacheRenderPipeline.setStencilCompare(clearStencil ? 519 : 512);\n this._cacheRenderPipeline.setStencilPassOp(clearStencil ? 7681 : 7680);\n this._cacheRenderPipeline.setWriteMask(clearColor ? 0xf : 0);\n const pipeline = this._cacheRenderPipeline.getRenderPipeline(7, this._effect, sampleCount);\n const webgpuPipelineContext = this._effect._pipelineContext;\n if (clearColor) {\n this._effect.setDirectColor4(\"color\", clearColor);\n }\n this._effect.setFloat(\"depthValue\", this._engine.useReverseDepthBuffer ? this._engine._clearReverseDepthValue : this._engine._clearDepthValue);\n webgpuPipelineContext.uniformBuffer.update();\n const bufferInternals = isRTTPass ? this._engine._ubInvertY : this._engine._ubDontInvertY;\n const bufferLeftOver = webgpuPipelineContext.uniformBuffer.getBuffer();\n const key = bufferLeftOver.uniqueId + \"-\" + bufferInternals.uniqueId;\n let bindGroups = this._bindGroups[key];\n if (!bindGroups) {\n const bindGroupLayouts = webgpuPipelineContext.bindGroupLayouts[0];\n bindGroups = this._bindGroups[key] = [];\n bindGroups.push(this._device.createBindGroup({\n label: `clearQuadBindGroup0-${key}`,\n layout: bindGroupLayouts[0],\n entries: [],\n }));\n if (!WebGPUShaderProcessingContext._SimplifiedKnownBindings) {\n bindGroups.push(this._device.createBindGroup({\n label: `clearQuadBindGroup1-${key}`,\n layout: bindGroupLayouts[1],\n entries: [],\n }));\n }\n bindGroups.push(this._device.createBindGroup({\n label: `clearQuadBindGroup${WebGPUShaderProcessingContext._SimplifiedKnownBindings ? 1 : 2}-${key}`,\n layout: bindGroupLayouts[WebGPUShaderProcessingContext._SimplifiedKnownBindings ? 1 : 2],\n entries: [\n {\n binding: 0,\n resource: {\n buffer: bufferInternals.underlyingResource,\n size: bufferInternals.capacity,\n },\n },\n {\n binding: 1,\n resource: {\n buffer: bufferLeftOver.underlyingResource,\n size: bufferLeftOver.capacity,\n },\n },\n ],\n }));\n }\n renderPass2.setPipeline(pipeline);\n for (let i = 0; i < bindGroups.length; ++i) {\n renderPass2.setBindGroup(i, bindGroups[i]);\n }\n renderPass2.draw(4, 1, 0, 0);\n if (!renderPass) {\n bundle = renderPass2.finish();\n this._bundleCache[bundleKey] = bundle;\n }\n return bundle;\n }\n}\n","import { WebGPUTextureHelper } from \"./webgpuTextureHelper.js\";\n/** @internal */\nexport class WebGPURenderItemViewport {\n constructor(x, y, w, h) {\n this.x = Math.floor(x);\n this.y = Math.floor(y);\n this.w = Math.floor(w);\n this.h = Math.floor(h);\n }\n run(renderPass) {\n renderPass.setViewport(this.x, this.y, this.w, this.h, 0, 1);\n }\n clone() {\n return new WebGPURenderItemViewport(this.x, this.y, this.w, this.h);\n }\n}\n/** @internal */\nexport class WebGPURenderItemScissor {\n constructor(x, y, w, h) {\n this.x = x;\n this.y = y;\n this.w = w;\n this.h = h;\n }\n run(renderPass) {\n renderPass.setScissorRect(this.x, this.y, this.w, this.h);\n }\n clone() {\n return new WebGPURenderItemScissor(this.x, this.y, this.w, this.h);\n }\n}\n/** @internal */\nexport class WebGPURenderItemStencilRef {\n constructor(ref) {\n this.ref = ref;\n }\n run(renderPass) {\n renderPass.setStencilReference(this.ref);\n }\n clone() {\n return new WebGPURenderItemStencilRef(this.ref);\n }\n}\n/** @internal */\nexport class WebGPURenderItemBlendColor {\n constructor(color) {\n this.color = color;\n }\n run(renderPass) {\n renderPass.setBlendConstant(this.color);\n }\n clone() {\n return new WebGPURenderItemBlendColor(this.color);\n }\n}\n/** @internal */\nexport class WebGPURenderItemBeginOcclusionQuery {\n constructor(query) {\n this.query = query;\n }\n run(renderPass) {\n renderPass.beginOcclusionQuery(this.query);\n }\n clone() {\n return new WebGPURenderItemBeginOcclusionQuery(this.query);\n }\n}\n/** @internal */\nexport class WebGPURenderItemEndOcclusionQuery {\n constructor() { }\n run(renderPass) {\n renderPass.endOcclusionQuery();\n }\n clone() {\n return new WebGPURenderItemEndOcclusionQuery();\n }\n}\nclass WebGPURenderItemBundles {\n constructor() {\n this.bundles = [];\n }\n run(renderPass) {\n renderPass.executeBundles(this.bundles);\n }\n clone() {\n const cloned = new WebGPURenderItemBundles();\n cloned.bundles = this.bundles;\n return cloned;\n }\n}\n/** @internal */\nexport class WebGPUBundleList {\n constructor(device) {\n this.numDrawCalls = 0;\n this._device = device;\n this._list = new Array(10);\n this._listLength = 0;\n }\n addBundle(bundle) {\n if (!this._currentItemIsBundle) {\n const item = new WebGPURenderItemBundles();\n this._list[this._listLength++] = item;\n this._currentBundleList = item.bundles;\n this._currentItemIsBundle = true;\n }\n if (bundle) {\n this._currentBundleList.push(bundle);\n }\n }\n _finishBundle() {\n if (this._currentItemIsBundle && this._bundleEncoder) {\n this._currentBundleList.push(this._bundleEncoder.finish());\n this._bundleEncoder = undefined;\n this._currentItemIsBundle = false;\n }\n }\n addItem(item) {\n this._finishBundle();\n this._list[this._listLength++] = item;\n this._currentItemIsBundle = false;\n }\n getBundleEncoder(colorFormats, depthStencilFormat, sampleCount) {\n if (!this._currentItemIsBundle) {\n this.addBundle();\n this._bundleEncoder = this._device.createRenderBundleEncoder({\n colorFormats,\n depthStencilFormat,\n sampleCount: WebGPUTextureHelper.GetSample(sampleCount),\n });\n }\n return this._bundleEncoder;\n }\n close() {\n this._finishBundle();\n }\n run(renderPass) {\n this.close();\n for (let i = 0; i < this._listLength; ++i) {\n this._list[i].run(renderPass);\n }\n }\n reset() {\n this._listLength = 0;\n this._currentItemIsBundle = false;\n this.numDrawCalls = 0;\n }\n clone() {\n this.close();\n const cloned = new WebGPUBundleList(this._device);\n cloned._list = new Array(this._listLength);\n cloned._listLength = this._listLength;\n cloned.numDrawCalls = this.numDrawCalls;\n for (let i = 0; i < this._listLength; ++i) {\n cloned._list[i] = this._list[i].clone();\n }\n return cloned;\n }\n}\n","import * as WebGPUConstants from \"./webgpuConstants.js\";\n/** @internal */\nexport class WebGPUQuerySet {\n get querySet() {\n return this._querySet;\n }\n constructor(engine, count, type, device, bufferManager, canUseMultipleBuffers = true, label) {\n this._dstBuffers = [];\n this._engine = engine;\n this._device = device;\n this._bufferManager = bufferManager;\n this._count = count;\n this._canUseMultipleBuffers = canUseMultipleBuffers;\n this._querySet = device.createQuerySet({\n label: label ?? \"QuerySet\",\n type,\n count,\n });\n this._queryBuffer = bufferManager.createRawBuffer(8 * count, WebGPUConstants.BufferUsage.QueryResolve | WebGPUConstants.BufferUsage.CopySrc, undefined, \"QueryBuffer\");\n if (!canUseMultipleBuffers) {\n this._dstBuffers.push(this._bufferManager.createRawBuffer(8 * this._count, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, \"QueryBufferNoMultipleBuffers\"));\n }\n }\n _getBuffer(firstQuery, queryCount) {\n if (!this._canUseMultipleBuffers && this._dstBuffers.length === 0) {\n return null;\n }\n const encoderResult = this._device.createCommandEncoder();\n let buffer;\n if (this._dstBuffers.length === 0) {\n buffer = this._bufferManager.createRawBuffer(8 * this._count, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, \"QueryBufferAdditionalBuffer\");\n }\n else {\n buffer = this._dstBuffers[this._dstBuffers.length - 1];\n this._dstBuffers.length--;\n }\n encoderResult.resolveQuerySet(this._querySet, firstQuery, queryCount, this._queryBuffer, 0);\n encoderResult.copyBufferToBuffer(this._queryBuffer, 0, buffer, 0, 8 * queryCount);\n this._device.queue.submit([encoderResult.finish()]);\n return buffer;\n }\n async readValues(firstQuery = 0, queryCount = 1) {\n const buffer = this._getBuffer(firstQuery, queryCount);\n if (buffer === null) {\n return null;\n }\n const engineId = this._engine.uniqueId;\n return buffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */).then(() => {\n const arrayBuf = new BigUint64Array(buffer.getMappedRange()).slice();\n buffer.unmap();\n this._dstBuffers[this._dstBuffers.length] = buffer;\n return arrayBuf;\n }, (err) => {\n if (this._engine.isDisposed || this._engine.uniqueId !== engineId) {\n // Engine disposed or context loss/restoration\n return null;\n }\n throw err;\n });\n }\n async readValue(firstQuery = 0) {\n const buffer = this._getBuffer(firstQuery, 1);\n if (buffer === null) {\n return null;\n }\n const engineId = this._engine.uniqueId;\n return buffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */).then(() => {\n const arrayBuf = new BigUint64Array(buffer.getMappedRange());\n const value = Number(arrayBuf[0]);\n buffer.unmap();\n this._dstBuffers[this._dstBuffers.length] = buffer;\n return value;\n }, (err) => {\n if (this._engine.isDisposed || this._engine.uniqueId !== engineId) {\n // Engine disposed or context loss/restoration\n return 0;\n }\n throw err;\n });\n }\n async readTwoValuesAndSubtract(firstQuery = 0) {\n const buffer = this._getBuffer(firstQuery, 2);\n if (buffer === null) {\n return null;\n }\n const engineId = this._engine.uniqueId;\n return buffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */).then(() => {\n const arrayBuf = new BigUint64Array(buffer.getMappedRange());\n const value = Number(arrayBuf[1] - arrayBuf[0]);\n buffer.unmap();\n this._dstBuffers[this._dstBuffers.length] = buffer;\n return value;\n }, (err) => {\n if (this._engine.isDisposed || this._engine.uniqueId !== engineId) {\n // Engine disposed or context loss/restoration\n return 0;\n }\n throw err;\n });\n }\n dispose() {\n this._querySet.destroy();\n this._bufferManager.releaseBuffer(this._queryBuffer);\n for (let i = 0; i < this._dstBuffers.length; ++i) {\n this._bufferManager.releaseBuffer(this._dstBuffers[i]);\n }\n }\n}\n","import { PerfCounter } from \"../../Misc/perfCounter.js\";\nimport { WebGPUQuerySet } from \"./webgpuQuerySet.js\";\nimport { Logger } from \"../../Misc/logger.js\";\n/** @internal */\nexport class WebGPUTimestampQuery {\n get gpuFrameTimeCounter() {\n return this._gpuFrameTimeCounter;\n }\n constructor(engine, device, bufferManager) {\n this._enabled = false;\n this._gpuFrameTimeCounter = new PerfCounter();\n this._measureDurationState = 0;\n this._engine = engine;\n this._device = device;\n this._bufferManager = bufferManager;\n }\n get enable() {\n return this._enabled;\n }\n set enable(value) {\n if (this._enabled === value) {\n return;\n }\n this._enabled = value;\n this._measureDurationState = 0;\n if (value) {\n try {\n this._measureDuration = new WebGPUDurationMeasure(this._engine, this._device, this._bufferManager, 2000, \"QuerySet_TimestampQuery\");\n }\n catch (e) {\n this._enabled = false;\n Logger.Error(\"Could not create a WebGPUDurationMeasure!\\nError: \" + e.message + \"\\nMake sure timestamp query is supported and enabled in your browser.\");\n return;\n }\n }\n else {\n this._measureDuration.dispose();\n }\n }\n startFrame(commandEncoder) {\n if (this._enabled && this._measureDurationState === 0) {\n this._measureDuration.start(commandEncoder);\n this._measureDurationState = 1;\n }\n }\n endFrame(commandEncoder) {\n if (this._measureDurationState === 1) {\n this._measureDurationState = 2;\n this._measureDuration.stop(commandEncoder).then((duration) => {\n if (duration !== null && duration >= 0) {\n this._gpuFrameTimeCounter.fetchNewFrame();\n this._gpuFrameTimeCounter.addCount(duration, true);\n }\n this._measureDurationState = 0;\n });\n }\n }\n startPass(descriptor, index) {\n if (this._enabled) {\n this._measureDuration.startPass(descriptor, index);\n }\n else {\n descriptor.timestampWrites = undefined;\n }\n }\n endPass(index, gpuPerfCounter) {\n if (!this._enabled || !gpuPerfCounter) {\n return;\n }\n const currentFrameId = this._engine.frameId;\n this._measureDuration.stopPass(index).then((duration_) => {\n gpuPerfCounter._addDuration(currentFrameId, duration_ !== null && duration_ > 0 ? duration_ : 0);\n });\n }\n dispose() {\n this._measureDuration?.dispose();\n }\n}\n/** @internal */\nexport class WebGPUDurationMeasure {\n constructor(engine, device, bufferManager, count = 2, querySetLabel) {\n this._count = count;\n this._querySet = new WebGPUQuerySet(engine, count, \"timestamp\" /* WebGPUConstants.QueryType.Timestamp */, device, bufferManager, true, querySetLabel);\n }\n start(encoder) {\n encoder.writeTimestamp?.(this._querySet.querySet, 0);\n }\n async stop(encoder) {\n encoder.writeTimestamp?.(this._querySet.querySet, 1);\n return encoder.writeTimestamp ? this._querySet.readTwoValuesAndSubtract(0) : 0;\n }\n startPass(descriptor, index) {\n if (index + 3 > this._count) {\n throw new Error(\"WebGPUDurationMeasure: index out of range (\" + index + \")\");\n }\n descriptor.timestampWrites = {\n querySet: this._querySet.querySet,\n beginningOfPassWriteIndex: index + 2,\n endOfPassWriteIndex: index + 3,\n };\n }\n async stopPass(index) {\n return this._querySet.readTwoValuesAndSubtract(index + 2);\n }\n dispose() {\n this._querySet.dispose();\n }\n}\n","import { WebGPUQuerySet } from \"./webgpuQuerySet.js\";\n/** @internal */\nexport class WebGPUOcclusionQuery {\n get querySet() {\n return this._querySet.querySet;\n }\n get hasQueries() {\n return this._currentTotalIndices !== this._availableIndices.length;\n }\n canBeginQuery(index) {\n if (this._frameQuerySetIsDirty === this._engine.frameId || this._queryFrameId[index] === this._engine.frameId) {\n return false;\n }\n const canBegin = this._engine._getCurrentRenderPassWrapper().renderPassDescriptor.occlusionQuerySet !== undefined;\n if (canBegin) {\n this._queryFrameId[index] = this._engine.frameId;\n }\n return canBegin;\n }\n constructor(engine, device, bufferManager, startCount = 50, incrementCount = 100) {\n this._availableIndices = [];\n this._frameQuerySetIsDirty = -1;\n this._queryFrameId = [];\n this._engine = engine;\n this._device = device;\n this._bufferManager = bufferManager;\n this._frameLastBuffer = -1;\n this._currentTotalIndices = 0;\n this._countIncrement = incrementCount;\n this._allocateNewIndices(startCount);\n }\n createQuery() {\n if (this._availableIndices.length === 0) {\n this._allocateNewIndices();\n }\n const index = this._availableIndices[this._availableIndices.length - 1];\n this._availableIndices.length--;\n return index;\n }\n deleteQuery(index) {\n this._availableIndices[this._availableIndices.length] = index;\n }\n isQueryResultAvailable(index) {\n this._retrieveQueryBuffer();\n return !!this._lastBuffer && index < this._lastBuffer.length;\n }\n getQueryResult(index) {\n return Number(this._lastBuffer?.[index] ?? -1);\n }\n _retrieveQueryBuffer() {\n if (this._lastBuffer && this._frameLastBuffer === this._engine.frameId) {\n return;\n }\n if (this._frameLastBuffer !== this._engine.frameId) {\n this._frameLastBuffer = this._engine.frameId;\n this._querySet.readValues(0, this._currentTotalIndices).then((arrayBuffer) => {\n this._lastBuffer = arrayBuffer;\n });\n }\n }\n _allocateNewIndices(numIndices) {\n numIndices = numIndices ?? this._countIncrement;\n this._delayQuerySetDispose();\n for (let i = 0; i < numIndices; ++i) {\n this._availableIndices.push(this._currentTotalIndices + i);\n }\n this._currentTotalIndices += numIndices;\n this._querySet = new WebGPUQuerySet(this._engine, this._currentTotalIndices, \"occlusion\" /* WebGPUConstants.QueryType.Occlusion */, this._device, this._bufferManager, false, \"QuerySet_OcclusionQuery_count_\" + this._currentTotalIndices);\n this._frameQuerySetIsDirty = this._engine.frameId;\n }\n _delayQuerySetDispose() {\n const querySet = this._querySet;\n if (querySet) {\n // Wait a bit before disposing of the queryset, in case some queries are still running for it\n setTimeout(() => querySet.dispose, 1000);\n }\n }\n dispose() {\n this._querySet?.dispose();\n this._availableIndices.length = 0;\n }\n}\n","import { Logger } from \"../../Misc/logger.js\";\nimport { Tools } from \"../../Misc/tools.js\";\n/** @internal */\nexport class WebGPUTintWASM {\n async initTwgsl(twgslOptions) {\n if (WebGPUTintWASM._Twgsl) {\n return;\n }\n twgslOptions = twgslOptions || {};\n twgslOptions = {\n ...WebGPUTintWASM._TWgslDefaultOptions,\n ...twgslOptions,\n };\n if (twgslOptions.twgsl) {\n WebGPUTintWASM._Twgsl = twgslOptions.twgsl;\n return Promise.resolve();\n }\n if (twgslOptions.jsPath && twgslOptions.wasmPath) {\n await Tools.LoadBabylonScriptAsync(twgslOptions.jsPath);\n }\n if (self.twgsl) {\n WebGPUTintWASM._Twgsl = await self.twgsl(Tools.GetBabylonScriptURL(twgslOptions.wasmPath));\n return Promise.resolve();\n }\n return Promise.reject(\"twgsl is not available.\");\n }\n convertSpirV2WGSL(code, disableUniformityAnalysis = false) {\n const ccode = WebGPUTintWASM._Twgsl.convertSpirV2WGSL(code, WebGPUTintWASM.DisableUniformityAnalysis || disableUniformityAnalysis);\n if (WebGPUTintWASM.ShowWGSLShaderCode) {\n Logger.Log(ccode);\n Logger.Log(\"***********************************************\");\n }\n return WebGPUTintWASM.DisableUniformityAnalysis || disableUniformityAnalysis ? \"diagnostic(off, derivative_uniformity);\\n\" + ccode : ccode;\n }\n}\n// Default twgsl options.\nWebGPUTintWASM._TWgslDefaultOptions = {\n jsPath: `${Tools._DefaultCdnUrl}/twgsl/twgsl.js`,\n wasmPath: `${Tools._DefaultCdnUrl}/twgsl/twgsl.wasm`,\n};\nWebGPUTintWASM.ShowWGSLShaderCode = false;\nWebGPUTintWASM.DisableUniformityAnalysis = false;\nWebGPUTintWASM._Twgsl = null;\n","\n/** @internal */\nexport class WebGPUSnapshotRendering {\n constructor(engine, renderingMode, bundleList) {\n this._record = false;\n this._play = false;\n this._playBundleListIndex = 0;\n this._allBundleLists = [];\n this._enabled = false;\n this._engine = engine;\n this._mode = renderingMode;\n this._bundleList = bundleList;\n }\n get enabled() {\n return this._enabled;\n }\n get play() {\n return this._play;\n }\n get record() {\n return this._record;\n }\n set enabled(activate) {\n this._allBundleLists.length = 0;\n this._record = this._enabled = activate;\n this._play = false;\n if (activate) {\n this._modeSaved = this._mode;\n this._mode = 0; // need to reset to standard for the recording pass to avoid some code being bypassed\n }\n }\n get mode() {\n return this._mode;\n }\n set mode(mode) {\n if (this._record) {\n this._modeSaved = mode;\n }\n else {\n this._mode = mode;\n }\n }\n endRenderPass(currentRenderPass) {\n if (!this._record && !this._play) {\n // Snapshot rendering mode is not enabled\n return false;\n }\n let bundleList;\n if (this._record) {\n bundleList = this._bundleList.clone();\n this._allBundleLists.push(bundleList);\n this._bundleList.reset();\n }\n else {\n // We are playing the snapshot\n if (this._playBundleListIndex >= this._allBundleLists.length) {\n throw new Error(`Invalid playBundleListIndex! Your snapshot is no longer valid for the current frame, you should recreate a new one. playBundleListIndex=${this._playBundleListIndex}, allBundleLists.length=${this._allBundleLists.length}}`);\n }\n bundleList = this._allBundleLists[this._playBundleListIndex++];\n }\n bundleList.run(currentRenderPass);\n if (this._mode === 1) {\n this._engine._reportDrawCall(bundleList.numDrawCalls);\n }\n return true;\n }\n endFrame() {\n if (this._record) {\n // We stop recording and switch to replay mode for the next frames\n this._record = false;\n this._play = true;\n this._mode = this._modeSaved;\n }\n this._playBundleListIndex = 0;\n }\n reset() {\n if (this._record) {\n this._mode = this._modeSaved;\n }\n this.enabled = false;\n this.enabled = true;\n }\n}\n","import { ExternalTexture } from \"../../Materials/Textures/externalTexture.js\";\n/**\n * Nothing specific to WebGPU in this class, but the spec is not final yet so let's remove it later on\n * if it is not needed\n * @internal\n **/\nexport class WebGPUExternalTexture extends ExternalTexture {\n constructor(video) {\n super(video);\n }\n}\n","import { InternalTexture } from \"../../../Materials/Textures/internalTexture.js\";\n\nimport { Logger } from \"../../../Misc/logger.js\";\nimport { ThinWebGPUEngine } from \"../../thinWebGPUEngine.js\";\nThinWebGPUEngine.prototype.createRawTexture = function (data, width, height, format, generateMipMaps, invertY, samplingMode, compression = null, type = 0, creationFlags = 0, useSRGBBuffer = false) {\n const texture = new InternalTexture(this, 3 /* InternalTextureSource.Raw */);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.width = width;\n texture.height = height;\n texture.format = format;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.invertY = invertY;\n texture._compression = compression;\n texture.type = type;\n texture._creationFlags = creationFlags;\n texture._useSRGBBuffer = useSRGBBuffer;\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n }\n this._textureHelper.createGPUTextureForInternalTexture(texture, width, height, undefined, creationFlags);\n this.updateRawTexture(texture, data, format, invertY, compression, type, useSRGBBuffer);\n this._internalTexturesCache.push(texture);\n return texture;\n};\nThinWebGPUEngine.prototype.updateRawTexture = function (texture, bufferView, format, invertY, compression = null, type = 0, useSRGBBuffer = false) {\n if (!texture) {\n return;\n }\n if (!this._doNotHandleContextLost) {\n texture._bufferView = bufferView;\n texture.invertY = invertY;\n texture._compression = compression;\n texture._useSRGBBuffer = useSRGBBuffer;\n }\n if (bufferView) {\n const gpuTextureWrapper = texture._hardwareTexture;\n const needConversion = format === 4;\n if (needConversion) {\n bufferView = _convertRGBtoRGBATextureData(bufferView, texture.width, texture.height, type);\n }\n const data = new Uint8Array(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);\n this._textureHelper.updateTexture(data, texture, texture.width, texture.height, texture.depth, gpuTextureWrapper.format, 0, 0, invertY, false, 0, 0);\n if (texture.generateMipMaps) {\n this._generateMipmaps(texture, this._uploadEncoder);\n }\n }\n texture.isReady = true;\n};\nThinWebGPUEngine.prototype.createRawCubeTexture = function (data, size, format, type, generateMipMaps, invertY, samplingMode, compression = null) {\n const texture = new InternalTexture(this, 8 /* InternalTextureSource.CubeRaw */);\n if (type === 1 && !this._caps.textureFloatLinearFiltering) {\n generateMipMaps = false;\n samplingMode = 1;\n Logger.Warn(\"Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\");\n }\n else if (type === 2 && !this._caps.textureHalfFloatLinearFiltering) {\n generateMipMaps = false;\n samplingMode = 1;\n Logger.Warn(\"Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\");\n }\n else if (type === 1 && !this._caps.textureFloatRender) {\n generateMipMaps = false;\n Logger.Warn(\"Render to float textures is not supported. Mipmap generation forced to false.\");\n }\n else if (type === 2 && !this._caps.colorBufferFloat) {\n generateMipMaps = false;\n Logger.Warn(\"Render to half float textures is not supported. Mipmap generation forced to false.\");\n }\n texture.isCube = true;\n texture._originalFormat = format;\n texture.format = format === 4 ? 5 : format;\n texture.type = type;\n texture.generateMipMaps = generateMipMaps;\n texture.width = size;\n texture.height = size;\n texture.samplingMode = samplingMode;\n if (!this._doNotHandleContextLost) {\n texture._bufferViewArray = data;\n }\n texture.invertY = invertY;\n texture._compression = compression;\n texture._cachedWrapU = 0;\n texture._cachedWrapV = 0;\n this._textureHelper.createGPUTextureForInternalTexture(texture);\n if (format === 4) {\n const gpuTextureWrapper = texture._hardwareTexture;\n gpuTextureWrapper._originalFormatIsRGB = true;\n }\n if (data) {\n this.updateRawCubeTexture(texture, data, format, type, invertY, compression);\n }\n texture.isReady = true;\n return texture;\n};\nThinWebGPUEngine.prototype.updateRawCubeTexture = function (texture, bufferView, _format, type, invertY, compression = null) {\n texture._bufferViewArray = bufferView;\n texture.invertY = invertY;\n texture._compression = compression;\n const gpuTextureWrapper = texture._hardwareTexture;\n const needConversion = gpuTextureWrapper._originalFormatIsRGB;\n const faces = [0, 2, 4, 1, 3, 5];\n const data = [];\n for (let i = 0; i < bufferView.length; ++i) {\n let faceData = bufferView[faces[i]];\n if (needConversion) {\n faceData = _convertRGBtoRGBATextureData(faceData, texture.width, texture.height, type);\n }\n data.push(new Uint8Array(faceData.buffer, faceData.byteOffset, faceData.byteLength));\n }\n this._textureHelper.updateCubeTextures(data, gpuTextureWrapper.underlyingResource, texture.width, texture.height, gpuTextureWrapper.format, invertY, false, 0, 0);\n if (texture.generateMipMaps) {\n this._generateMipmaps(texture, this._uploadEncoder);\n }\n texture.isReady = true;\n};\nThinWebGPUEngine.prototype.createRawCubeTextureFromUrl = function (url, scene, size, format, type, noMipmap, callback, mipmapGenerator, onLoad = null, onError = null, samplingMode = 3, invertY = false) {\n const texture = this.createRawCubeTexture(null, size, format, type, !noMipmap, invertY, samplingMode, null);\n scene?.addPendingData(texture);\n texture.url = url;\n texture.isReady = false;\n this._internalTexturesCache.push(texture);\n const onerror = (request, exception) => {\n scene?.removePendingData(texture);\n if (onError && request) {\n onError(request.status + \" \" + request.statusText, exception);\n }\n };\n const internalCallback = (data) => {\n const width = texture.width;\n const faceDataArrays = callback(data);\n if (!faceDataArrays) {\n return;\n }\n if (mipmapGenerator) {\n const needConversion = format === 4;\n const mipData = mipmapGenerator(faceDataArrays);\n const gpuTextureWrapper = texture._hardwareTexture;\n const faces = [0, 1, 2, 3, 4, 5];\n for (let level = 0; level < mipData.length; level++) {\n const mipSize = width >> level;\n const allFaces = [];\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n let mipFaceData = mipData[level][faces[faceIndex]];\n if (needConversion) {\n mipFaceData = _convertRGBtoRGBATextureData(mipFaceData, mipSize, mipSize, type);\n }\n allFaces.push(new Uint8Array(mipFaceData.buffer, mipFaceData.byteOffset, mipFaceData.byteLength));\n }\n this._textureHelper.updateCubeTextures(allFaces, gpuTextureWrapper.underlyingResource, mipSize, mipSize, gpuTextureWrapper.format, invertY, false, 0, 0);\n }\n }\n else {\n this.updateRawCubeTexture(texture, faceDataArrays, format, type, invertY);\n }\n texture.isReady = true;\n scene?.removePendingData(texture);\n if (onLoad) {\n onLoad();\n }\n };\n this._loadFile(url, (data) => {\n internalCallback(data);\n }, undefined, scene?.offlineProvider, true, onerror);\n return texture;\n};\nThinWebGPUEngine.prototype.createRawTexture3D = function (data, width, height, depth, format, generateMipMaps, invertY, samplingMode, compression = null, textureType = 0, creationFlags = 0) {\n const source = 10 /* InternalTextureSource.Raw3D */;\n const texture = new InternalTexture(this, source);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.baseDepth = depth;\n texture.width = width;\n texture.height = height;\n texture.depth = depth;\n texture.format = format;\n texture.type = textureType;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.is3D = true;\n texture._creationFlags = creationFlags;\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n }\n this._textureHelper.createGPUTextureForInternalTexture(texture, width, height, undefined, creationFlags);\n this.updateRawTexture3D(texture, data, format, invertY, compression, textureType);\n this._internalTexturesCache.push(texture);\n return texture;\n};\nThinWebGPUEngine.prototype.updateRawTexture3D = function (texture, bufferView, format, invertY, compression = null, textureType = 0) {\n if (!this._doNotHandleContextLost) {\n texture._bufferView = bufferView;\n texture.format = format;\n texture.invertY = invertY;\n texture._compression = compression;\n }\n if (bufferView) {\n const gpuTextureWrapper = texture._hardwareTexture;\n const needConversion = format === 4;\n if (needConversion) {\n bufferView = _convertRGBtoRGBATextureData(bufferView, texture.width, texture.height, textureType);\n }\n const data = new Uint8Array(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);\n this._textureHelper.updateTexture(data, texture, texture.width, texture.height, texture.depth, gpuTextureWrapper.format, 0, 0, invertY, false, 0, 0);\n if (texture.generateMipMaps) {\n this._generateMipmaps(texture, this._uploadEncoder);\n }\n }\n texture.isReady = true;\n};\nThinWebGPUEngine.prototype.createRawTexture2DArray = function (data, width, height, depth, format, generateMipMaps, invertY, samplingMode, compression = null, textureType = 0, creationFlags = 0) {\n const source = 11 /* InternalTextureSource.Raw2DArray */;\n const texture = new InternalTexture(this, source);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.baseDepth = depth;\n texture.width = width;\n texture.height = height;\n texture.depth = depth;\n texture.format = format;\n texture.type = textureType;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.is2DArray = true;\n texture._creationFlags = creationFlags;\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n }\n this._textureHelper.createGPUTextureForInternalTexture(texture, width, height, depth, creationFlags);\n this.updateRawTexture2DArray(texture, data, format, invertY, compression, textureType);\n this._internalTexturesCache.push(texture);\n return texture;\n};\nThinWebGPUEngine.prototype.updateRawTexture2DArray = function (texture, bufferView, format, invertY, compression = null, textureType = 0) {\n if (!this._doNotHandleContextLost) {\n texture._bufferView = bufferView;\n texture.format = format;\n texture.invertY = invertY;\n texture._compression = compression;\n }\n if (bufferView) {\n const gpuTextureWrapper = texture._hardwareTexture;\n const needConversion = format === 4;\n if (needConversion) {\n bufferView = _convertRGBtoRGBATextureData(bufferView, texture.width, texture.height, textureType);\n }\n const data = new Uint8Array(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);\n this._textureHelper.updateTexture(data, texture, texture.width, texture.height, texture.depth, gpuTextureWrapper.format, 0, 0, invertY, false, 0, 0);\n if (texture.generateMipMaps) {\n this._generateMipmaps(texture, this._uploadEncoder);\n }\n }\n texture.isReady = true;\n};\n/**\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _convertRGBtoRGBATextureData(rgbData, width, height, textureType) {\n // Create new RGBA data container.\n let rgbaData;\n let val1 = 1;\n if (textureType === 1) {\n rgbaData = new Float32Array(width * height * 4);\n }\n else if (textureType === 2) {\n rgbaData = new Uint16Array(width * height * 4);\n val1 = 15360; // 15360 is the encoding of 1 in half float\n }\n else if (textureType === 7) {\n rgbaData = new Uint32Array(width * height * 4);\n }\n else {\n rgbaData = new Uint8Array(width * height * 4);\n }\n // Convert each pixel.\n for (let x = 0; x < width; x++) {\n for (let y = 0; y < height; y++) {\n const index = (y * width + x) * 3;\n const newIndex = (y * width + x) * 4;\n // Map Old Value to new value.\n rgbaData[newIndex + 0] = rgbData[index + 0];\n rgbaData[newIndex + 1] = rgbData[index + 1];\n rgbaData[newIndex + 2] = rgbData[index + 2];\n // Add fully opaque alpha channel.\n rgbaData[newIndex + 3] = val1;\n }\n }\n return rgbaData;\n}\n","import { ThinWebGPUEngine } from \"../../thinWebGPUEngine.js\";\nThinWebGPUEngine.prototype._readTexturePixels = function (texture, width, height, faceIndex = -1, level = 0, buffer = null, flushRenderer = true, noDataConversion = false, x = 0, y = 0) {\n const gpuTextureWrapper = texture._hardwareTexture;\n if (flushRenderer) {\n this.flushFramebuffer();\n }\n return this._textureHelper.readPixels(gpuTextureWrapper.underlyingResource, x, y, width, height, gpuTextureWrapper.format, faceIndex, level, buffer, noDataConversion);\n};\nThinWebGPUEngine.prototype._readTexturePixelsSync = function () {\n // eslint-disable-next-line no-throw-literal\n throw \"_readTexturePixelsSync is unsupported in WebGPU!\";\n};\n","import { InternalTexture } from \"../../../Materials/Textures/internalTexture.js\";\n\nimport { WebGPUTextureHelper } from \"../webgpuTextureHelper.js\";\nimport { ThinWebGPUEngine } from \"../../thinWebGPUEngine.js\";\nThinWebGPUEngine.prototype._createDepthStencilCubeTexture = function (size, options) {\n const internalTexture = new InternalTexture(this, options.generateStencil ? 12 /* InternalTextureSource.DepthStencil */ : 14 /* InternalTextureSource.Depth */);\n internalTexture.isCube = true;\n internalTexture.label = options.label;\n const internalOptions = {\n bilinearFiltering: false,\n comparisonFunction: 0,\n generateStencil: false,\n samples: 1,\n depthTextureFormat: options.generateStencil ? 13 : 14,\n ...options,\n };\n internalTexture.format = internalOptions.depthTextureFormat;\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.bilinearFiltering, internalOptions.comparisonFunction, internalOptions.samples);\n this._textureHelper.createGPUTextureForInternalTexture(internalTexture);\n // Now that the hardware texture is created, we can retrieve the GPU format and set the right type to the internal texture\n const gpuTextureWrapper = internalTexture._hardwareTexture;\n internalTexture.type = WebGPUTextureHelper.GetTextureTypeFromFormat(gpuTextureWrapper.format);\n this._internalTexturesCache.push(internalTexture);\n return internalTexture;\n};\nThinWebGPUEngine.prototype.createCubeTexture = function (rootUrl, scene, files, noMipmap, onLoad = null, onError = null, format, forcedExtension = null, createPolynomials = false, lodScale = 0, lodOffset = 0, fallback = null, loaderOptions, useSRGBBuffer = false, buffer = null) {\n return this.createCubeTextureBase(rootUrl, scene, files, !!noMipmap, onLoad, onError, format, forcedExtension, createPolynomials, lodScale, lodOffset, fallback, null, (texture, imgs) => {\n const imageBitmaps = imgs; // we will always get an ImageBitmap array in WebGPU\n const width = imageBitmaps[0].width;\n const height = width;\n this._setCubeMapTextureParams(texture, !noMipmap);\n texture.format = format ?? -1;\n const gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, width, height);\n this._textureHelper.updateCubeTextures(imageBitmaps, gpuTextureWrapper.underlyingResource, width, height, gpuTextureWrapper.format, false, false, 0, 0);\n if (!noMipmap) {\n this._generateMipmaps(texture, this._uploadEncoder);\n }\n texture.isReady = true;\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n }, !!useSRGBBuffer, buffer);\n};\nThinWebGPUEngine.prototype._setCubeMapTextureParams = function (texture, loadMipmap, maxLevel) {\n texture.samplingMode = loadMipmap ? 3 : 2;\n texture._cachedWrapU = 0;\n texture._cachedWrapV = 0;\n if (maxLevel) {\n texture._maxLodLevel = maxLevel;\n }\n};\nThinWebGPUEngine.prototype.generateMipMapsForCubemap = function (texture) {\n if (texture.generateMipMaps) {\n const gpuTexture = texture._hardwareTexture?.underlyingResource;\n if (!gpuTexture) {\n this._textureHelper.createGPUTextureForInternalTexture(texture);\n }\n this._generateMipmaps(texture);\n }\n};\n","import { RenderTargetWrapper } from \"../renderTargetWrapper.js\";\nimport { WebGPUPerfCounter } from \"./webgpuPerfCounter.js\";\n/**\n * Specialized class used to store a render target of a WebGPU engine\n */\nexport class WebGPURenderTargetWrapper extends RenderTargetWrapper {\n /**\n * Initializes the render target wrapper\n * @param isMulti true if the wrapper is a multi render target\n * @param isCube true if the wrapper should render to a cube texture\n * @param size size of the render target (width/height/layers)\n * @param engine engine used to create the render target\n * @param label defines the label to use for the wrapper (for debugging purpose only)\n */\n constructor(isMulti, isCube, size, engine, label) {\n super(isMulti, isCube, size, engine, label);\n if (engine.enableGPUTimingMeasurements) {\n this.gpuTimeInFrame = new WebGPUPerfCounter();\n }\n }\n}\n","import { InternalTexture } from \"../../../Materials/Textures/internalTexture.js\";\n\nimport { WebGPURenderTargetWrapper } from \"../webgpuRenderTargetWrapper.js\";\nimport { WebGPUTextureHelper } from \"../webgpuTextureHelper.js\";\nimport \"../../AbstractEngine/abstractEngine.texture.js\";\nimport { ThinWebGPUEngine } from \"../../thinWebGPUEngine.js\";\nThinWebGPUEngine.prototype._createHardwareRenderTargetWrapper = function (isMulti, isCube, size) {\n const rtWrapper = new WebGPURenderTargetWrapper(isMulti, isCube, size, this);\n this._renderTargetWrapperCache.push(rtWrapper);\n return rtWrapper;\n};\nThinWebGPUEngine.prototype.createRenderTargetTexture = function (size, options) {\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, size);\n const fullOptions = {};\n if (options !== undefined && typeof options === \"object\") {\n fullOptions.generateMipMaps = options.generateMipMaps;\n fullOptions.generateDepthBuffer = options.generateDepthBuffer === undefined ? true : options.generateDepthBuffer;\n fullOptions.generateStencilBuffer = fullOptions.generateDepthBuffer && options.generateStencilBuffer;\n fullOptions.samplingMode = options.samplingMode === undefined ? 3 : options.samplingMode;\n fullOptions.creationFlags = options.creationFlags ?? 0;\n fullOptions.noColorAttachment = !!options.noColorAttachment;\n fullOptions.colorAttachment = options.colorAttachment;\n fullOptions.samples = options.samples;\n fullOptions.label = options.label;\n fullOptions.format = options.format;\n fullOptions.type = options.type;\n }\n else {\n fullOptions.generateMipMaps = options;\n fullOptions.generateDepthBuffer = true;\n fullOptions.generateStencilBuffer = false;\n fullOptions.samplingMode = 3;\n fullOptions.creationFlags = 0;\n fullOptions.noColorAttachment = false;\n }\n const texture = fullOptions.colorAttachment || (fullOptions.noColorAttachment ? null : this._createInternalTexture(size, fullOptions, true, 5 /* InternalTextureSource.RenderTarget */));\n rtWrapper.label = fullOptions.label ?? \"RenderTargetWrapper\";\n rtWrapper._samples = fullOptions.colorAttachment?.samples ?? fullOptions.samples ?? 1;\n rtWrapper._generateDepthBuffer = fullOptions.generateDepthBuffer;\n rtWrapper._generateStencilBuffer = fullOptions.generateStencilBuffer ? true : false;\n rtWrapper.setTextures(texture);\n if (rtWrapper._generateDepthBuffer || rtWrapper._generateStencilBuffer) {\n rtWrapper.createDepthStencilTexture(0, false, // force false as filtering is not supported for depth textures\n rtWrapper._generateStencilBuffer, rtWrapper.samples, fullOptions.generateStencilBuffer ? 13 : 14, fullOptions.label ? fullOptions.label + \"-DepthStencil\" : undefined);\n }\n if (texture && !fullOptions.colorAttachment) {\n if (options !== undefined && typeof options === \"object\" && options.createMipMaps && !fullOptions.generateMipMaps) {\n texture.generateMipMaps = true;\n }\n this._textureHelper.createGPUTextureForInternalTexture(texture, undefined, undefined, undefined, fullOptions.creationFlags);\n if (options !== undefined && typeof options === \"object\" && options.createMipMaps && !fullOptions.generateMipMaps) {\n texture.generateMipMaps = false;\n }\n }\n return rtWrapper;\n};\nThinWebGPUEngine.prototype._createDepthStencilTexture = function (size, options, wrapper) {\n const internalOptions = {\n bilinearFiltering: false,\n comparisonFunction: 0,\n generateStencil: false,\n samples: 1,\n depthTextureFormat: options.generateStencil ? 13 : 14,\n ...options,\n };\n const hasStencil = internalOptions.depthTextureFormat === 17 ||\n internalOptions.depthTextureFormat === 13 ||\n internalOptions.depthTextureFormat === 18;\n wrapper._depthStencilTextureWithStencil = hasStencil;\n const internalTexture = new InternalTexture(this, hasStencil ? 12 /* InternalTextureSource.DepthStencil */ : 14 /* InternalTextureSource.Depth */);\n internalTexture.label = options.label;\n internalTexture.format = internalOptions.depthTextureFormat;\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.bilinearFiltering, internalOptions.comparisonFunction, internalOptions.samples);\n this._textureHelper.createGPUTextureForInternalTexture(internalTexture);\n // Now that the hardware texture is created, we can retrieve the GPU format and set the right type to the internal texture\n const gpuTextureWrapper = internalTexture._hardwareTexture;\n internalTexture.type = WebGPUTextureHelper.GetTextureTypeFromFormat(gpuTextureWrapper.format);\n this._internalTexturesCache.push(internalTexture);\n return internalTexture;\n};\nThinWebGPUEngine.prototype._setupDepthStencilTexture = function (internalTexture, size, bilinearFiltering, comparisonFunction, samples = 1) {\n const width = size.width ?? size;\n const height = size.height ?? size;\n const layers = size.layers || 0;\n const depth = size.depth || 0;\n internalTexture.baseWidth = width;\n internalTexture.baseHeight = height;\n internalTexture.width = width;\n internalTexture.height = height;\n internalTexture.is2DArray = layers > 0;\n internalTexture.is3D = depth > 0;\n internalTexture.depth = layers || depth;\n internalTexture.isReady = true;\n internalTexture.samples = samples;\n internalTexture.generateMipMaps = false;\n internalTexture.samplingMode = bilinearFiltering ? 2 : 1;\n internalTexture.type = 1; // the right type will be set later\n internalTexture._comparisonFunction = comparisonFunction;\n internalTexture._cachedWrapU = 0;\n internalTexture._cachedWrapV = 0;\n};\nThinWebGPUEngine.prototype.updateRenderTargetTextureSampleCount = function (rtWrapper, samples) {\n if (!rtWrapper || !rtWrapper.texture || rtWrapper.samples === samples) {\n return samples;\n }\n samples = Math.min(samples, this.getCaps().maxMSAASamples);\n this._textureHelper.createMSAATexture(rtWrapper.texture, samples);\n if (rtWrapper._depthStencilTexture) {\n this._textureHelper.createMSAATexture(rtWrapper._depthStencilTexture, samples);\n rtWrapper._depthStencilTexture.samples = samples;\n }\n rtWrapper._samples = samples;\n rtWrapper.texture.samples = samples;\n return samples;\n};\n","import { ThinWebGPUEngine } from \"../../thinWebGPUEngine.js\";\nThinWebGPUEngine.prototype.setDepthStencilTexture = function (channel, uniform, texture, name) {\n if (!texture || !texture.depthStencilTexture) {\n this._setTexture(channel, null, undefined, undefined, name);\n }\n else {\n this._setTexture(channel, texture, false, true, name);\n }\n};\n","import { ThinWebGPUEngine } from \"../../thinWebGPUEngine.js\";\nimport { InternalTexture } from \"../../../Materials/Textures/internalTexture.js\";\n\nThinWebGPUEngine.prototype.createRenderTargetCubeTexture = function (size, options) {\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, true, size);\n const fullOptions = {\n generateMipMaps: true,\n generateDepthBuffer: true,\n generateStencilBuffer: false,\n type: 0,\n samplingMode: 3,\n format: 5,\n samples: 1,\n ...options,\n };\n fullOptions.generateStencilBuffer = fullOptions.generateDepthBuffer && fullOptions.generateStencilBuffer;\n rtWrapper.label = fullOptions.label ?? \"RenderTargetWrapper\";\n rtWrapper._generateDepthBuffer = fullOptions.generateDepthBuffer;\n rtWrapper._generateStencilBuffer = fullOptions.generateStencilBuffer;\n const texture = new InternalTexture(this, 5 /* InternalTextureSource.RenderTarget */);\n texture.width = size;\n texture.height = size;\n texture.depth = 0;\n texture.isReady = true;\n texture.isCube = true;\n texture.samples = fullOptions.samples;\n texture.generateMipMaps = fullOptions.generateMipMaps;\n texture.samplingMode = fullOptions.samplingMode;\n texture.type = fullOptions.type;\n texture.format = fullOptions.format;\n this._internalTexturesCache.push(texture);\n rtWrapper.setTextures(texture);\n if (rtWrapper._generateDepthBuffer || rtWrapper._generateStencilBuffer) {\n rtWrapper.createDepthStencilTexture(0, fullOptions.samplingMode === undefined ||\n fullOptions.samplingMode === 2 ||\n fullOptions.samplingMode === 2 ||\n fullOptions.samplingMode === 3 ||\n fullOptions.samplingMode === 3 ||\n fullOptions.samplingMode === 5 ||\n fullOptions.samplingMode === 6 ||\n fullOptions.samplingMode === 7 ||\n fullOptions.samplingMode === 11, rtWrapper._generateStencilBuffer, rtWrapper.samples);\n }\n if (options && options.createMipMaps && !fullOptions.generateMipMaps) {\n texture.generateMipMaps = true;\n }\n this._textureHelper.createGPUTextureForInternalTexture(texture);\n if (options && options.createMipMaps && !fullOptions.generateMipMaps) {\n texture.generateMipMaps = false;\n }\n return rtWrapper;\n};\n","import { ThinWebGPUEngine } from \"../../thinWebGPUEngine.js\";\nimport { WebGPURenderItemBeginOcclusionQuery, WebGPURenderItemEndOcclusionQuery } from \"../webgpuBundleList.js\";\nimport \"../../../Engines/AbstractEngine/abstractEngine.query.js\";\nThinWebGPUEngine.prototype.getGPUFrameTimeCounter = function () {\n return this._timestampQuery.gpuFrameTimeCounter;\n};\nThinWebGPUEngine.prototype.captureGPUFrameTime = function (value) {\n this._timestampQuery.enable = value && !!this._caps.timerQuery;\n};\nThinWebGPUEngine.prototype.createQuery = function () {\n return this._occlusionQuery.createQuery();\n};\nThinWebGPUEngine.prototype.deleteQuery = function (query) {\n this._occlusionQuery.deleteQuery(query);\n return this;\n};\nThinWebGPUEngine.prototype.isQueryResultAvailable = function (query) {\n return this._occlusionQuery.isQueryResultAvailable(query);\n};\nThinWebGPUEngine.prototype.getQueryResult = function (query) {\n return this._occlusionQuery.getQueryResult(query);\n};\nThinWebGPUEngine.prototype.beginOcclusionQuery = function (algorithmType, query) {\n if (this.compatibilityMode) {\n if (this._occlusionQuery.canBeginQuery(query)) {\n this._currentRenderPass?.beginOcclusionQuery(query);\n return true;\n }\n }\n else {\n this._bundleList.addItem(new WebGPURenderItemBeginOcclusionQuery(query));\n return true;\n }\n return false;\n};\nThinWebGPUEngine.prototype.endOcclusionQuery = function () {\n if (this.compatibilityMode) {\n this._currentRenderPass?.endOcclusionQuery();\n }\n else {\n this._bundleList.addItem(new WebGPURenderItemEndOcclusionQuery());\n }\n return this;\n};\n","/* eslint-disable babylonjs/available */\nimport { Logger } from \"../Misc/logger.js\";\nimport { ThinWebGPUEngine } from \"./thinWebGPUEngine.js\";\nimport { Color4 } from \"../Maths/math.js\";\nimport { InternalTexture } from \"../Materials/Textures/internalTexture.js\";\nimport { Effect } from \"../Materials/effect.js\";\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nimport * as WebGPUConstants from \"./WebGPU/webgpuConstants.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { WebGPUPipelineContext } from \"./WebGPU/webgpuPipelineContext.js\";\nimport { WebGPUShaderProcessorGLSL } from \"./WebGPU/webgpuShaderProcessorsGLSL.js\";\nimport { WebGPUShaderProcessorWGSL } from \"./WebGPU/webgpuShaderProcessorsWGSL.js\";\nimport { WebGPUShaderProcessingContext } from \"./WebGPU/webgpuShaderProcessingContext.js\";\nimport { Tools } from \"../Misc/tools.js\";\nimport { WebGPUTextureHelper } from \"./WebGPU/webgpuTextureHelper.js\";\nimport { WebGPUTextureManager } from \"./WebGPU/webgpuTextureManager.js\";\nimport { AbstractEngine } from \"./abstractEngine.js\";\nimport { WebGPUBufferManager } from \"./WebGPU/webgpuBufferManager.js\";\nimport { WebGPUHardwareTexture } from \"./WebGPU/webgpuHardwareTexture.js\";\nimport { UniformBuffer } from \"../Materials/uniformBuffer.js\";\nimport { WebGPUCacheSampler } from \"./WebGPU/webgpuCacheSampler.js\";\nimport { WebGPUCacheRenderPipelineTree } from \"./WebGPU/webgpuCacheRenderPipelineTree.js\";\nimport { WebGPUStencilStateComposer } from \"./WebGPU/webgpuStencilStateComposer.js\";\nimport { WebGPUDepthCullingState } from \"./WebGPU/webgpuDepthCullingState.js\";\nimport { WebGPUMaterialContext } from \"./WebGPU/webgpuMaterialContext.js\";\nimport { WebGPUDrawContext } from \"./WebGPU/webgpuDrawContext.js\";\nimport { WebGPUCacheBindGroups } from \"./WebGPU/webgpuCacheBindGroups.js\";\nimport { WebGPUClearQuad } from \"./WebGPU/webgpuClearQuad.js\";\nimport { WebGPURenderItemBlendColor, WebGPURenderItemScissor, WebGPURenderItemStencilRef, WebGPURenderItemViewport, WebGPUBundleList } from \"./WebGPU/webgpuBundleList.js\";\nimport { WebGPUTimestampQuery } from \"./WebGPU/webgpuTimestampQuery.js\";\nimport { WebGPUOcclusionQuery } from \"./WebGPU/webgpuOcclusionQuery.js\";\nimport { ShaderCodeInliner } from \"./Processors/shaderCodeInliner.js\";\nimport { WebGPUTintWASM } from \"./WebGPU/webgpuTintWASM.js\";\nimport { WebGPUShaderProcessor } from \"./WebGPU/webgpuShaderProcessor.js\";\nimport { WebGPUSnapshotRendering } from \"./WebGPU/webgpuSnapshotRendering.js\";\nimport \"../Buffers/buffer.align.js\";\nimport { SphericalPolynomial } from \"../Maths/sphericalPolynomial.js\";\nimport { PerformanceMonitor } from \"../Misc/performanceMonitor.js\";\nimport { CreateImageBitmapFromSource, ExitFullscreen, ExitPointerlock, GetFontOffset, RequestFullscreen, RequestPointerlock, ResizeImageBitmap, _CommonDispose, _CommonInit, } from \"./engine.common.js\";\nimport { IsWrapper } from \"../Materials/drawWrapper.functions.js\";\nimport { PerfCounter } from \"../Misc/perfCounter.js\";\nimport \"./AbstractEngine/abstractEngine.loadingScreen.js\";\nimport \"./AbstractEngine/abstractEngine.dom.js\";\nimport \"./AbstractEngine/abstractEngine.states.js\";\nimport \"./AbstractEngine/abstractEngine.renderPass.js\";\nimport \"../Audio/audioEngine.js\";\nimport { resetCachedPipeline } from \"../Materials/effect.functions.js\";\nimport { WebGPUExternalTexture } from \"./WebGPU/webgpuExternalTexture.js\";\nimport \"./WebGPU/Extensions/engine.alpha.js\";\nimport \"./WebGPU/Extensions/engine.rawTexture.js\";\nimport \"./WebGPU/Extensions/engine.readTexture.js\";\nimport \"./WebGPU/Extensions/engine.cubeTexture.js\";\nimport \"./WebGPU/Extensions/engine.renderTarget.js\";\nimport \"./WebGPU/Extensions/engine.renderTargetTexture.js\";\nimport \"./WebGPU/Extensions/engine.renderTargetCube.js\";\nimport \"./WebGPU/Extensions/engine.query.js\";\nconst viewDescriptorSwapChainAntialiasing = {\n label: `TextureView_SwapChain_ResolveTarget`,\n dimension: \"2d\" /* WebGPUConstants.TextureDimension.E2d */,\n format: undefined, // will be updated with the right value\n mipLevelCount: 1,\n arrayLayerCount: 1,\n};\nconst viewDescriptorSwapChain = {\n label: `TextureView_SwapChain`,\n dimension: \"2d\" /* WebGPUConstants.TextureDimension.E2d */,\n format: undefined, // will be updated with the right value\n mipLevelCount: 1,\n arrayLayerCount: 1,\n};\nconst tempColor4 = new Color4();\n/**\n * The web GPU engine class provides support for WebGPU version of babylon.js.\n * @since 5.0.0\n */\nexport class WebGPUEngine extends ThinWebGPUEngine {\n /**\n * Gets or sets the snapshot rendering mode\n */\n get snapshotRenderingMode() {\n return this._snapshotRendering.mode;\n }\n set snapshotRenderingMode(mode) {\n this._snapshotRendering.mode = mode;\n }\n /**\n * Creates a new snapshot at the next frame using the current snapshotRenderingMode\n */\n snapshotRenderingReset() {\n this._snapshotRendering.reset();\n }\n /**\n * Enables or disables the snapshot rendering mode\n * Note that the WebGL engine does not support snapshot rendering so setting the value won't have any effect for this engine\n */\n get snapshotRendering() {\n return this._snapshotRendering.enabled;\n }\n set snapshotRendering(activate) {\n this._snapshotRendering.enabled = activate;\n }\n /**\n * Sets this to true to disable the cache for the samplers. You should do it only for testing purpose!\n */\n get disableCacheSamplers() {\n return this._cacheSampler ? this._cacheSampler.disabled : false;\n }\n set disableCacheSamplers(disable) {\n if (this._cacheSampler) {\n this._cacheSampler.disabled = disable;\n }\n }\n /**\n * Sets this to true to disable the cache for the render pipelines. You should do it only for testing purpose!\n */\n get disableCacheRenderPipelines() {\n return this._cacheRenderPipeline ? this._cacheRenderPipeline.disabled : false;\n }\n set disableCacheRenderPipelines(disable) {\n if (this._cacheRenderPipeline) {\n this._cacheRenderPipeline.disabled = disable;\n }\n }\n /**\n * Sets this to true to disable the cache for the bind groups. You should do it only for testing purpose!\n */\n get disableCacheBindGroups() {\n return this._cacheBindGroups ? this._cacheBindGroups.disabled : false;\n }\n set disableCacheBindGroups(disable) {\n if (this._cacheBindGroups) {\n this._cacheBindGroups.disabled = disable;\n }\n }\n /**\n * Gets a boolean indicating if all created effects are ready\n * @returns true if all effects are ready\n */\n areAllEffectsReady() {\n return true;\n }\n /**\n * Get Font size information\n * @param font font name\n * @returns an object containing ascent, height and descent\n */\n getFontOffset(font) {\n return GetFontOffset(font);\n }\n /**\n * Gets a Promise indicating if the engine can be instantiated (ie. if a WebGPU context can be found)\n */\n static get IsSupportedAsync() {\n return !navigator.gpu\n ? Promise.resolve(false)\n : navigator.gpu\n .requestAdapter()\n .then((adapter) => !!adapter, () => false)\n .catch(() => false);\n }\n /**\n * Not supported by WebGPU, you should call IsSupportedAsync instead!\n */\n static get IsSupported() {\n Logger.Warn(\"You must call IsSupportedAsync for WebGPU!\");\n return false;\n }\n /**\n * Gets a boolean indicating that the engine supports uniform buffers\n */\n get supportsUniformBuffers() {\n return true;\n }\n /** Gets the supported extensions by the WebGPU adapter */\n get supportedExtensions() {\n return this._adapterSupportedExtensions;\n }\n /** Gets the currently enabled extensions on the WebGPU device */\n get enabledExtensions() {\n return this._deviceEnabledExtensions;\n }\n /** Gets the supported limits by the WebGPU adapter */\n get supportedLimits() {\n return this._adapterSupportedLimits;\n }\n /** Gets the current limits of the WebGPU device */\n get currentLimits() {\n return this._deviceLimits;\n }\n /**\n * Returns a string describing the current engine\n */\n get description() {\n const description = this.name + this.version;\n return description;\n }\n /**\n * Returns the version of the engine\n */\n get version() {\n return 1;\n }\n /**\n * Gets an object containing information about the current engine context\n * @returns an object containing the vendor, the renderer and the version of the current engine context\n */\n getInfo() {\n return {\n vendor: this._adapterInfo.vendor || \"unknown vendor\",\n renderer: this._adapterInfo.architecture || \"unknown renderer\",\n version: this._adapterInfo.description || \"unknown version\",\n };\n }\n /**\n * (WebGPU only) True (default) to be in compatibility mode, meaning rendering all existing scenes without artifacts (same rendering than WebGL).\n * Setting the property to false will improve performances but may not work in some scenes if some precautions are not taken.\n * See https://doc.babylonjs.com/setup/support/webGPU/webGPUOptimization/webGPUNonCompatibilityMode for more details\n */\n get compatibilityMode() {\n return this._compatibilityMode;\n }\n set compatibilityMode(mode) {\n this._compatibilityMode = mode;\n }\n /** @internal */\n get currentSampleCount() {\n return this._currentRenderTarget ? this._currentRenderTarget.samples : this._mainPassSampleCount;\n }\n /**\n * Create a new instance of the gpu engine asynchronously\n * @param canvas Defines the canvas to use to display the result\n * @param options Defines the options passed to the engine to create the GPU context dependencies\n * @returns a promise that resolves with the created engine\n */\n static CreateAsync(canvas, options = {}) {\n const engine = new WebGPUEngine(canvas, options);\n return new Promise((resolve) => {\n engine.initAsync(options.glslangOptions, options.twgslOptions).then(() => resolve(engine));\n });\n }\n /**\n * Create a new instance of the gpu engine.\n * @param canvas Defines the canvas to use to display the result\n * @param options Defines the options passed to the engine to create the GPU context dependencies\n */\n constructor(canvas, options = {}) {\n super(options.antialias ?? true, options);\n /** A unique id to identify this instance */\n this.uniqueId = -1;\n // Page Life cycle and constants\n this._uploadEncoderDescriptor = { label: \"upload\" };\n this._renderEncoderDescriptor = { label: \"render\" };\n /** @internal */\n this._clearDepthValue = 1;\n /** @internal */\n this._clearReverseDepthValue = 0;\n /** @internal */\n this._clearStencilValue = 0;\n this._defaultSampleCount = 4; // Only supported value for now.\n this._glslang = null;\n this._tintWASM = null;\n this._glslangAndTintAreFullyLoaded = false;\n this._adapterInfo = {\n vendor: \"\",\n architecture: \"\",\n device: \"\",\n description: \"\",\n };\n /** @internal */\n this._compiledComputeEffects = {};\n /** @internal */\n this._counters = {\n numEnableEffects: 0,\n numEnableDrawWrapper: 0,\n numBundleCreationNonCompatMode: 0,\n numBundleReuseNonCompatMode: 0,\n };\n /**\n * Counters from last frame\n */\n this.countersLastFrame = {\n numEnableEffects: 0,\n numEnableDrawWrapper: 0,\n numBundleCreationNonCompatMode: 0,\n numBundleReuseNonCompatMode: 0,\n };\n /**\n * Max number of uncaptured error messages to log\n */\n this.numMaxUncapturedErrors = 20;\n /**\n * Gets the list of created scenes\n */\n this.scenes = [];\n /** @internal */\n this._virtualScenes = new Array();\n this._commandBuffers = [null, null];\n // Frame Buffer Life Cycle (recreated for each render target pass)\n this._mainRenderPassWrapper = {\n renderPassDescriptor: null,\n colorAttachmentViewDescriptor: null,\n depthAttachmentViewDescriptor: null,\n colorAttachmentGPUTextures: [],\n depthTextureFormat: undefined,\n };\n this._rttRenderPassWrapper = {\n renderPassDescriptor: null,\n colorAttachmentViewDescriptor: null,\n depthAttachmentViewDescriptor: null,\n colorAttachmentGPUTextures: [],\n depthTextureFormat: undefined,\n };\n /** @internal */\n this._pendingDebugCommands = [];\n /** @internal */\n this._debugStackRenderPass = [];\n this._currentOverrideVertexBuffers = null;\n this._currentIndexBuffer = null;\n this._colorWriteLocal = true;\n this._forceEnableEffect = false;\n /**\n * Indicates if the z range in NDC space is 0..1 (value: true) or -1..1 (value: false)\n */\n this.isNDCHalfZRange = true;\n /**\n * Indicates that the origin of the texture/framebuffer space is the bottom left corner. If false, the origin is top left\n */\n this.hasOriginBottomLeft = false;\n //------------------------------------------------------------------------------\n // Initialization\n //------------------------------------------------------------------------------\n this._workingGlslangAndTintPromise = null;\n //------------------------------------------------------------------------------\n // Dynamic WebGPU States\n //------------------------------------------------------------------------------\n // index 0 is for main render pass, 1 for RTT render pass\n this._viewportsCurrent = { x: 0, y: 0, w: 0, h: 0 };\n this._scissorsCurrent = { x: 0, y: 0, w: 0, h: 0 };\n this._scissorCached = { x: 0, y: 0, z: 0, w: 0 };\n this._stencilRefsCurrent = -1;\n this._blendColorsCurrent = [null, null, null, null];\n this._performanceMonitor = new PerformanceMonitor();\n this._name = \"WebGPU\";\n this._drawCalls = new PerfCounter();\n options.deviceDescriptor = options.deviceDescriptor || {};\n options.enableGPUDebugMarkers = options.enableGPUDebugMarkers ?? false;\n Logger.Log(`Babylon.js v${AbstractEngine.Version} - ${this.description} engine`);\n if (!navigator.gpu) {\n Logger.Error(\"WebGPU is not supported by your browser.\");\n return;\n }\n options.swapChainFormat = options.swapChainFormat || navigator.gpu.getPreferredCanvasFormat();\n this._isWebGPU = true;\n this._shaderPlatformName = \"WEBGPU\";\n this._renderingCanvas = canvas;\n this._options = options;\n this._mainPassSampleCount = options.antialias ? this._defaultSampleCount : 1;\n if (navigator && navigator.userAgent) {\n this._setupMobileChecks();\n }\n this._sharedInit(this._renderingCanvas);\n this._shaderProcessor = new WebGPUShaderProcessorGLSL();\n this._shaderProcessorWGSL = new WebGPUShaderProcessorWGSL();\n }\n /**\n * Load the glslang and tintWASM libraries and prepare them for use.\n * @returns a promise that resolves when the engine is ready to use the glslang and tintWASM\n */\n prepareGlslangAndTintAsync() {\n if (!this._workingGlslangAndTintPromise) {\n this._workingGlslangAndTintPromise = new Promise((resolve) => {\n this._initGlslang(this._glslangOptions ?? this._options?.glslangOptions).then((glslang) => {\n this._glslang = glslang;\n this._tintWASM = new WebGPUTintWASM();\n this._tintWASM.initTwgsl(this._twgslOptions ?? this._options?.twgslOptions).then(() => {\n this._glslangAndTintAreFullyLoaded = true;\n resolve();\n });\n });\n });\n }\n return this._workingGlslangAndTintPromise;\n }\n /**\n * Initializes the WebGPU context and dependencies.\n * @param glslangOptions Defines the GLSLang compiler options if necessary\n * @param twgslOptions Defines the Twgsl compiler options if necessary\n * @returns a promise notifying the readiness of the engine.\n */\n initAsync(glslangOptions, twgslOptions) {\n this.uniqueId = WebGPUEngine._InstanceId++;\n this._glslangOptions = glslangOptions;\n this._twgslOptions = twgslOptions;\n return navigator\n .gpu.requestAdapter(this._options)\n .then((adapter) => {\n if (!adapter) {\n // eslint-disable-next-line no-throw-literal\n throw \"Could not retrieve a WebGPU adapter (adapter is null).\";\n }\n else {\n this._adapter = adapter;\n this._adapterSupportedExtensions = [];\n this._adapter.features?.forEach((feature) => this._adapterSupportedExtensions.push(feature));\n this._adapterSupportedLimits = this._adapter.limits;\n this._adapterInfo = this._adapter.info;\n const deviceDescriptor = this._options.deviceDescriptor ?? {};\n const requiredFeatures = deviceDescriptor?.requiredFeatures ?? (this._options.enableAllFeatures ? this._adapterSupportedExtensions : undefined);\n if (requiredFeatures) {\n const requestedExtensions = requiredFeatures;\n const validExtensions = [];\n for (const extension of requestedExtensions) {\n if (this._adapterSupportedExtensions.indexOf(extension) !== -1) {\n validExtensions.push(extension);\n }\n }\n deviceDescriptor.requiredFeatures = validExtensions;\n }\n if (this._options.setMaximumLimits && !deviceDescriptor.requiredLimits) {\n deviceDescriptor.requiredLimits = {};\n for (const name in this._adapterSupportedLimits) {\n if (name === \"minSubgroupSize\" || name === \"maxSubgroupSize\") {\n // Chrome exposes these limits in \"webgpu developer\" mode, but these can't be set on the device.\n continue;\n }\n deviceDescriptor.requiredLimits[name] = this._adapterSupportedLimits[name];\n }\n }\n deviceDescriptor.label = `BabylonWebGPUDevice${this.uniqueId}`;\n return this._adapter.requestDevice(deviceDescriptor);\n }\n })\n .then((device) => {\n this._device = device;\n this._deviceEnabledExtensions = [];\n this._device.features?.forEach((feature) => this._deviceEnabledExtensions.push(feature));\n this._deviceLimits = device.limits;\n let numUncapturedErrors = -1;\n this._device.addEventListener(\"uncapturederror\", (event) => {\n if (++numUncapturedErrors < this.numMaxUncapturedErrors) {\n Logger.Warn(`WebGPU uncaptured error (${numUncapturedErrors + 1}): ${event.error} - ${event.error.message}`);\n }\n else if (numUncapturedErrors++ === this.numMaxUncapturedErrors) {\n Logger.Warn(`WebGPU uncaptured error: too many warnings (${this.numMaxUncapturedErrors}), no more warnings will be reported to the console for this engine.`);\n }\n });\n if (!this._doNotHandleContextLost) {\n this._device.lost?.then((info) => {\n if (this._isDisposed) {\n return;\n }\n this._contextWasLost = true;\n Logger.Warn(\"WebGPU context lost. \" + info);\n this.onContextLostObservable.notifyObservers(this);\n this._restoreEngineAfterContextLost(async () => {\n const snapshotRenderingMode = this.snapshotRenderingMode;\n const snapshotRendering = this.snapshotRendering;\n const disableCacheSamplers = this.disableCacheSamplers;\n const disableCacheRenderPipelines = this.disableCacheRenderPipelines;\n const disableCacheBindGroups = this.disableCacheBindGroups;\n const enableGPUTimingMeasurements = this.enableGPUTimingMeasurements;\n await this.initAsync(this._glslangOptions ?? this._options?.glslangOptions, this._twgslOptions ?? this._options?.twgslOptions);\n this.snapshotRenderingMode = snapshotRenderingMode;\n this.snapshotRendering = snapshotRendering;\n this.disableCacheSamplers = disableCacheSamplers;\n this.disableCacheRenderPipelines = disableCacheRenderPipelines;\n this.disableCacheBindGroups = disableCacheBindGroups;\n this.enableGPUTimingMeasurements = enableGPUTimingMeasurements;\n this._currentRenderPass = null;\n });\n });\n }\n })\n .then(() => {\n this._initializeLimits();\n this._bufferManager = new WebGPUBufferManager(this, this._device);\n this._textureHelper = new WebGPUTextureManager(this, this._device, this._bufferManager, this._deviceEnabledExtensions);\n this._cacheSampler = new WebGPUCacheSampler(this._device);\n this._cacheBindGroups = new WebGPUCacheBindGroups(this._device, this._cacheSampler, this);\n this._timestampQuery = new WebGPUTimestampQuery(this, this._device, this._bufferManager);\n this._occlusionQuery = this._device.createQuerySet ? new WebGPUOcclusionQuery(this, this._device, this._bufferManager) : undefined;\n this._bundleList = new WebGPUBundleList(this._device);\n this._snapshotRendering = new WebGPUSnapshotRendering(this, this._snapshotRenderingMode, this._bundleList);\n this._ubInvertY = this._bufferManager.createBuffer(new Float32Array([-1, 0]), WebGPUConstants.BufferUsage.Uniform | WebGPUConstants.BufferUsage.CopyDst, \"UBInvertY\");\n this._ubDontInvertY = this._bufferManager.createBuffer(new Float32Array([1, 0]), WebGPUConstants.BufferUsage.Uniform | WebGPUConstants.BufferUsage.CopyDst, \"UBDontInvertY\");\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n Logger.Log([\"%c frame #\" + this._count + \" - begin\", \"background: #ffff00\"]);\n }\n }\n this._uploadEncoder = this._device.createCommandEncoder(this._uploadEncoderDescriptor);\n this._renderEncoder = this._device.createCommandEncoder(this._renderEncoderDescriptor);\n this._emptyVertexBuffer = new VertexBuffer(this, [0], \"\", {\n stride: 1,\n offset: 0,\n size: 1,\n label: \"EmptyVertexBuffer\",\n });\n this._cacheRenderPipeline = new WebGPUCacheRenderPipelineTree(this._device, this._emptyVertexBuffer);\n this._depthCullingState = new WebGPUDepthCullingState(this._cacheRenderPipeline);\n this._stencilStateComposer = new WebGPUStencilStateComposer(this._cacheRenderPipeline);\n this._stencilStateComposer.stencilGlobal = this._stencilState;\n this._depthCullingState.depthTest = true;\n this._depthCullingState.depthFunc = 515;\n this._depthCullingState.depthMask = true;\n this._textureHelper.setCommandEncoder(this._uploadEncoder);\n this._clearQuad = new WebGPUClearQuad(this._device, this, this._emptyVertexBuffer);\n this._defaultDrawContext = this.createDrawContext();\n this._currentDrawContext = this._defaultDrawContext;\n this._defaultMaterialContext = this.createMaterialContext();\n this._currentMaterialContext = this._defaultMaterialContext;\n this._initializeContextAndSwapChain();\n this._initializeMainAttachments();\n this.resize();\n })\n .catch((e) => {\n Logger.Error(\"A fatal error occurred during WebGPU creation/initialization.\");\n throw e;\n });\n }\n _initGlslang(glslangOptions) {\n glslangOptions = glslangOptions || {};\n glslangOptions = {\n ...WebGPUEngine._GlslangDefaultOptions,\n ...glslangOptions,\n };\n if (glslangOptions.glslang) {\n return Promise.resolve(glslangOptions.glslang);\n }\n if (self.glslang) {\n return self.glslang(glslangOptions.wasmPath);\n }\n if (glslangOptions.jsPath && glslangOptions.wasmPath) {\n return Tools.LoadBabylonScriptAsync(glslangOptions.jsPath).then(() => {\n return self.glslang(Tools.GetBabylonScriptURL(glslangOptions.wasmPath));\n });\n }\n return Promise.reject(\"gslang is not available.\");\n }\n _initializeLimits() {\n // Init caps\n // TODO WEBGPU Real Capability check once limits will be working.\n this._caps = {\n maxTexturesImageUnits: this._deviceLimits.maxSampledTexturesPerShaderStage,\n maxVertexTextureImageUnits: this._deviceLimits.maxSampledTexturesPerShaderStage,\n maxCombinedTexturesImageUnits: this._deviceLimits.maxSampledTexturesPerShaderStage * 2,\n maxTextureSize: this._deviceLimits.maxTextureDimension2D,\n maxCubemapTextureSize: this._deviceLimits.maxTextureDimension2D,\n maxRenderTextureSize: this._deviceLimits.maxTextureDimension2D,\n maxVertexAttribs: this._deviceLimits.maxVertexAttributes,\n maxDrawBuffers: 8,\n maxVaryingVectors: this._deviceLimits.maxInterStageShaderVariables,\n maxFragmentUniformVectors: Math.floor(this._deviceLimits.maxUniformBufferBindingSize / 4),\n maxVertexUniformVectors: Math.floor(this._deviceLimits.maxUniformBufferBindingSize / 4),\n standardDerivatives: true,\n astc: (this._deviceEnabledExtensions.indexOf(\"texture-compression-astc\" /* WebGPUConstants.FeatureName.TextureCompressionASTC */) >= 0 ? true : undefined),\n s3tc: (this._deviceEnabledExtensions.indexOf(\"texture-compression-bc\" /* WebGPUConstants.FeatureName.TextureCompressionBC */) >= 0 ? true : undefined),\n pvrtc: null,\n etc1: null,\n etc2: (this._deviceEnabledExtensions.indexOf(\"texture-compression-etc2\" /* WebGPUConstants.FeatureName.TextureCompressionETC2 */) >= 0 ? true : undefined),\n bptc: this._deviceEnabledExtensions.indexOf(\"texture-compression-bc\" /* WebGPUConstants.FeatureName.TextureCompressionBC */) >= 0 ? true : undefined,\n maxAnisotropy: 16, // Most implementations support maxAnisotropy values in range between 1 and 16, inclusive. The used value of maxAnisotropy will be clamped to the maximum value that the platform supports.\n uintIndices: true,\n fragmentDepthSupported: true,\n highPrecisionShaderSupported: true,\n colorBufferFloat: true,\n supportFloatTexturesResolve: false, // See https://github.com/gpuweb/gpuweb/issues/3844\n rg11b10ufColorRenderable: this._deviceEnabledExtensions.indexOf(\"rg11b10ufloat-renderable\" /* WebGPUConstants.FeatureName.RG11B10UFloatRenderable */) >= 0,\n textureFloat: true,\n textureFloatLinearFiltering: this._deviceEnabledExtensions.indexOf(\"float32-filterable\" /* WebGPUConstants.FeatureName.Float32Filterable */) >= 0,\n textureFloatRender: true,\n textureHalfFloat: true,\n textureHalfFloatLinearFiltering: true,\n textureHalfFloatRender: true,\n textureLOD: true,\n texelFetch: true,\n drawBuffersExtension: true,\n depthTextureExtension: true,\n vertexArrayObject: false,\n instancedArrays: true,\n timerQuery: typeof BigUint64Array !== \"undefined\" && this._deviceEnabledExtensions.indexOf(\"timestamp-query\" /* WebGPUConstants.FeatureName.TimestampQuery */) !== -1 ? true : undefined,\n supportOcclusionQuery: typeof BigUint64Array !== \"undefined\",\n canUseTimestampForTimerQuery: true,\n multiview: false,\n oculusMultiview: false,\n parallelShaderCompile: undefined,\n blendMinMax: true,\n maxMSAASamples: 4, // the spec only supports values of 1 and 4\n canUseGLInstanceID: true,\n canUseGLVertexID: true,\n supportComputeShaders: true,\n supportSRGBBuffers: true,\n supportTransformFeedbacks: false,\n textureMaxLevel: true,\n texture2DArrayMaxLayerCount: this._deviceLimits.maxTextureArrayLayers,\n disableMorphTargetTexture: false,\n };\n this._features = {\n forceBitmapOverHTMLImageElement: true,\n supportRenderAndCopyToLodForFloatTextures: true,\n supportDepthStencilTexture: true,\n supportShadowSamplers: true,\n uniformBufferHardCheckMatrix: false,\n allowTexturePrefiltering: true,\n trackUbosInFrame: true,\n checkUbosContentBeforeUpload: true,\n supportCSM: true,\n basisNeedsPOT: false,\n support3DTextures: true,\n needTypeSuffixInShaderConstants: true,\n supportMSAA: true,\n supportSSAO2: true,\n supportIBLShadows: true,\n supportExtendedTextureFormats: true,\n supportSwitchCaseInShader: true,\n supportSyncTextureRead: false,\n needsInvertingBitmap: false,\n useUBOBindingCache: false,\n needShaderCodeInlining: true,\n needToAlwaysBindUniformBuffers: true,\n supportRenderPasses: true,\n supportSpriteInstancing: true,\n forceVertexBufferStrideAndOffsetMultiple4Bytes: true,\n _checkNonFloatVertexBuffersDontRecreatePipelineContext: true,\n _collectUbosUpdatedInFrame: false,\n };\n }\n _initializeContextAndSwapChain() {\n if (!this._renderingCanvas) {\n // eslint-disable-next-line no-throw-literal\n throw \"The rendering canvas has not been set!\";\n }\n this._context = this._renderingCanvas.getContext(\"webgpu\");\n this._configureContext();\n this._colorFormat = this._options.swapChainFormat;\n this._mainRenderPassWrapper.colorAttachmentGPUTextures = [new WebGPUHardwareTexture()];\n this._mainRenderPassWrapper.colorAttachmentGPUTextures[0].format = this._colorFormat;\n this._setColorFormat(this._mainRenderPassWrapper);\n }\n // Set default values as WebGL with depth and stencil attachment for the broadest Compat.\n _initializeMainAttachments() {\n if (!this._bufferManager) {\n return;\n }\n this.flushFramebuffer();\n this._mainTextureExtends = {\n width: this.getRenderWidth(true),\n height: this.getRenderHeight(true),\n depthOrArrayLayers: 1,\n };\n const bufferDataUpdate = new Float32Array([this.getRenderHeight(true)]);\n this._bufferManager.setSubData(this._ubInvertY, 4, bufferDataUpdate);\n this._bufferManager.setSubData(this._ubDontInvertY, 4, bufferDataUpdate);\n let mainColorAttachments;\n if (this._options.antialias) {\n const mainTextureDescriptor = {\n label: `Texture_MainColor_${this._mainTextureExtends.width}x${this._mainTextureExtends.height}_antialiasing`,\n size: this._mainTextureExtends,\n mipLevelCount: 1,\n sampleCount: this._mainPassSampleCount,\n dimension: \"2d\" /* WebGPUConstants.TextureDimension.E2d */,\n format: this._options.swapChainFormat,\n usage: 16 /* WebGPUConstants.TextureUsage.RenderAttachment */,\n };\n if (this._mainTexture) {\n this._textureHelper.releaseTexture(this._mainTexture);\n }\n this._mainTexture = this._device.createTexture(mainTextureDescriptor);\n mainColorAttachments = [\n {\n view: this._mainTexture.createView({\n label: \"TextureView_MainColor_antialiasing\",\n dimension: \"2d\" /* WebGPUConstants.TextureDimension.E2d */,\n format: this._options.swapChainFormat,\n mipLevelCount: 1,\n arrayLayerCount: 1,\n }),\n clearValue: new Color4(0, 0, 0, 1),\n loadOp: \"clear\" /* WebGPUConstants.LoadOp.Clear */,\n storeOp: \"store\" /* WebGPUConstants.StoreOp.Store */, // don't use StoreOp.Discard, else using several cameras with different viewports or using scissors will fail because we call beginRenderPass / endPass several times for the same color attachment!\n },\n ];\n }\n else {\n mainColorAttachments = [\n {\n view: undefined,\n clearValue: new Color4(0, 0, 0, 1),\n loadOp: \"clear\" /* WebGPUConstants.LoadOp.Clear */,\n storeOp: \"store\" /* WebGPUConstants.StoreOp.Store */,\n },\n ];\n }\n this._mainRenderPassWrapper.depthTextureFormat = this.isStencilEnable ? \"depth24plus-stencil8\" /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */ : \"depth32float\" /* WebGPUConstants.TextureFormat.Depth32Float */;\n this._setDepthTextureFormat(this._mainRenderPassWrapper);\n this._setColorFormat(this._mainRenderPassWrapper);\n const depthTextureDescriptor = {\n label: `Texture_MainDepthStencil_${this._mainTextureExtends.width}x${this._mainTextureExtends.height}`,\n size: this._mainTextureExtends,\n mipLevelCount: 1,\n sampleCount: this._mainPassSampleCount,\n dimension: \"2d\" /* WebGPUConstants.TextureDimension.E2d */,\n format: this._mainRenderPassWrapper.depthTextureFormat,\n usage: 16 /* WebGPUConstants.TextureUsage.RenderAttachment */,\n };\n if (this._depthTexture) {\n this._textureHelper.releaseTexture(this._depthTexture);\n }\n this._depthTexture = this._device.createTexture(depthTextureDescriptor);\n const mainDepthAttachment = {\n view: this._depthTexture.createView({\n label: `TextureView_MainDepthStencil_${this._mainTextureExtends.width}x${this._mainTextureExtends.height}`,\n dimension: \"2d\" /* WebGPUConstants.TextureDimension.E2d */,\n format: this._depthTexture.format,\n mipLevelCount: 1,\n arrayLayerCount: 1,\n }),\n depthClearValue: this._clearDepthValue,\n depthLoadOp: \"clear\" /* WebGPUConstants.LoadOp.Clear */,\n depthStoreOp: \"store\" /* WebGPUConstants.StoreOp.Store */,\n stencilClearValue: this._clearStencilValue,\n stencilLoadOp: !this.isStencilEnable ? undefined : \"clear\" /* WebGPUConstants.LoadOp.Clear */,\n stencilStoreOp: !this.isStencilEnable ? undefined : \"store\" /* WebGPUConstants.StoreOp.Store */,\n };\n this._mainRenderPassWrapper.renderPassDescriptor = {\n label: \"MainRenderPass\",\n colorAttachments: mainColorAttachments,\n depthStencilAttachment: mainDepthAttachment,\n };\n }\n /**\n * Shared initialization across engines types.\n * @param canvas The canvas associated with this instance of the engine.\n */\n _sharedInit(canvas) {\n super._sharedInit(canvas);\n _CommonInit(this, canvas, this._creationOptions);\n }\n _configureContext() {\n this._context.configure({\n device: this._device,\n format: this._options.swapChainFormat,\n usage: 16 /* WebGPUConstants.TextureUsage.RenderAttachment */ | 1 /* WebGPUConstants.TextureUsage.CopySrc */,\n alphaMode: this.premultipliedAlpha ? \"premultiplied\" /* WebGPUConstants.CanvasAlphaMode.Premultiplied */ : \"opaque\" /* WebGPUConstants.CanvasAlphaMode.Opaque */,\n });\n }\n /**\n * Resize an image and returns the image data as an uint8array\n * @param image image to resize\n * @param bufferWidth destination buffer width\n * @param bufferHeight destination buffer height\n * @returns an uint8array containing RGBA values of bufferWidth * bufferHeight size\n */\n resizeImageBitmap(image, bufferWidth, bufferHeight) {\n return ResizeImageBitmap(this, image, bufferWidth, bufferHeight);\n }\n /**\n * Engine abstraction for loading and creating an image bitmap from a given source string.\n * @param imageSource source to load the image from.\n * @param options An object that sets options for the image's extraction.\n * @returns ImageBitmap\n */\n _createImageBitmapFromSource(imageSource, options) {\n return CreateImageBitmapFromSource(this, imageSource, options);\n }\n /**\n * Toggle full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n switchFullscreen(requestPointerLock) {\n if (this.isFullscreen) {\n this.exitFullscreen();\n }\n else {\n this.enterFullscreen(requestPointerLock);\n }\n }\n /**\n * Enters full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n enterFullscreen(requestPointerLock) {\n if (!this.isFullscreen) {\n this._pointerLockRequested = requestPointerLock;\n if (this._renderingCanvas) {\n RequestFullscreen(this._renderingCanvas);\n }\n }\n }\n /**\n * Exits full screen mode\n */\n exitFullscreen() {\n if (this.isFullscreen) {\n ExitFullscreen();\n }\n }\n /**\n * Enters Pointerlock mode\n */\n enterPointerlock() {\n if (this._renderingCanvas) {\n RequestPointerlock(this._renderingCanvas);\n }\n }\n /**\n * Exits Pointerlock mode\n */\n exitPointerlock() {\n ExitPointerlock();\n }\n _rebuildBuffers() {\n super._rebuildBuffers();\n for (const storageBuffer of this._storageBuffers) {\n // The buffer can already be rebuilt by the call to _rebuildGeometries(), which recreates the storage buffers for the ComputeShaderParticleSystem\n if (storageBuffer.getBuffer().engineId !== this.uniqueId) {\n storageBuffer._rebuild();\n }\n }\n }\n _restoreEngineAfterContextLost(initEngine) {\n WebGPUCacheRenderPipelineTree.ResetCache();\n WebGPUCacheBindGroups.ResetCache();\n // Clear the draw wrappers and material contexts\n const cleanScenes = (scenes) => {\n for (const scene of scenes) {\n for (const mesh of scene.meshes) {\n const subMeshes = mesh.subMeshes;\n if (!subMeshes) {\n continue;\n }\n for (const subMesh of subMeshes) {\n subMesh._drawWrappers = [];\n }\n }\n for (const material of scene.materials) {\n material._materialContext?.reset();\n }\n }\n };\n cleanScenes(this.scenes);\n cleanScenes(this._virtualScenes);\n // The leftOver uniform buffers are removed from the list because they will be recreated when we rebuild the effects\n const uboList = [];\n for (const uniformBuffer of this._uniformBuffers) {\n if (uniformBuffer.name.indexOf(\"leftOver\") < 0) {\n uboList.push(uniformBuffer);\n }\n }\n this._uniformBuffers = uboList;\n super._restoreEngineAfterContextLost(initEngine);\n }\n /**\n * Force a specific size of the canvas\n * @param width defines the new canvas' width\n * @param height defines the new canvas' height\n * @param forceSetSize true to force setting the sizes of the underlying canvas\n * @returns true if the size was changed\n */\n setSize(width, height, forceSetSize = false) {\n if (!super.setSize(width, height, forceSetSize)) {\n return false;\n }\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {\n Logger.Log([\"frame #\" + this._count + \" - setSize -\", width, height]);\n }\n }\n this._initializeMainAttachments();\n if (this.snapshotRendering) {\n // reset snapshot rendering so that the next frame will record a new list of bundles\n this.snapshotRenderingReset();\n }\n return true;\n }\n /**\n * @internal\n */\n _getShaderProcessor(shaderLanguage) {\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n return this._shaderProcessorWGSL;\n }\n return this._shaderProcessor;\n }\n /**\n * @internal\n */\n _getShaderProcessingContext(shaderLanguage, pureMode) {\n return new WebGPUShaderProcessingContext(shaderLanguage, pureMode);\n }\n _getCurrentRenderPass() {\n if (this._currentRenderTarget && !this._currentRenderPass) {\n // delayed creation of the render target pass, but we now need to create it as we are requested the render pass\n this._startRenderTargetRenderPass(this._currentRenderTarget, false, null, false, false);\n }\n else if (!this._currentRenderPass) {\n this._startMainRenderPass(false);\n }\n return this._currentRenderPass;\n }\n /** @internal */\n _getCurrentRenderPassWrapper() {\n return this._currentRenderTarget ? this._rttRenderPassWrapper : this._mainRenderPassWrapper;\n }\n //------------------------------------------------------------------------------\n // Static Pipeline WebGPU States\n //------------------------------------------------------------------------------\n /** @internal */\n applyStates() {\n this._stencilStateComposer.apply();\n this._cacheRenderPipeline.setAlphaBlendEnabled(this._alphaState.alphaBlend);\n }\n /**\n * Force the entire cache to be cleared\n * You should not have to use this function unless your engine needs to share the WebGPU context with another engine\n * @param bruteForce defines a boolean to force clearing ALL caches (including stencil, detoh and alpha states)\n */\n wipeCaches(bruteForce) {\n if (this.preventCacheWipeBetweenFrames && !bruteForce) {\n return;\n }\n //this._currentEffect = null; // can't reset _currentEffect, else some crashes can occur (for eg in ProceduralTexture which calls bindFrameBuffer (which calls wipeCaches) after having called enableEffect and before drawing into the texture)\n // _forceEnableEffect = true assumes the role of _currentEffect = null\n this._forceEnableEffect = true;\n this._currentIndexBuffer = null;\n this._currentOverrideVertexBuffers = null;\n this._cacheRenderPipeline.setBuffers(null, null, null);\n if (bruteForce) {\n this._stencilStateComposer.reset();\n this._depthCullingState.reset();\n this._depthCullingState.depthFunc = 515;\n this._alphaState.reset();\n this._alphaMode = 1;\n this._alphaEquation = 0;\n this._cacheRenderPipeline.setAlphaBlendFactors(this._alphaState._blendFunctionParameters, this._alphaState._blendEquationParameters);\n this._cacheRenderPipeline.setAlphaBlendEnabled(false);\n this.setColorWrite(true);\n }\n this._cachedVertexBuffers = null;\n this._cachedIndexBuffer = null;\n this._cachedEffectForVertexBuffers = null;\n }\n /**\n * Enable or disable color writing\n * @param enable defines the state to set\n */\n setColorWrite(enable) {\n this._colorWriteLocal = enable;\n this._cacheRenderPipeline.setWriteMask(enable ? 0xf : 0);\n }\n /**\n * Gets a boolean indicating if color writing is enabled\n * @returns the current color writing state\n */\n getColorWrite() {\n return this._colorWriteLocal;\n }\n _mustUpdateViewport() {\n const x = this._viewportCached.x, y = this._viewportCached.y, w = this._viewportCached.z, h = this._viewportCached.w;\n const update = this._viewportsCurrent.x !== x || this._viewportsCurrent.y !== y || this._viewportsCurrent.w !== w || this._viewportsCurrent.h !== h;\n if (update) {\n this._viewportsCurrent.x = this._viewportCached.x;\n this._viewportsCurrent.y = this._viewportCached.y;\n this._viewportsCurrent.w = this._viewportCached.z;\n this._viewportsCurrent.h = this._viewportCached.w;\n }\n return update;\n }\n _applyViewport(bundleList) {\n const x = Math.floor(this._viewportCached.x);\n const w = Math.floor(this._viewportCached.z);\n const h = Math.floor(this._viewportCached.w);\n let y = Math.floor(this._viewportCached.y);\n if (!this._currentRenderTarget) {\n y = this.getRenderHeight(true) - y - h;\n }\n if (bundleList) {\n bundleList.addItem(new WebGPURenderItemViewport(x, y, w, h));\n }\n else {\n this._getCurrentRenderPass().setViewport(x, y, w, h, 0, 1);\n }\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {\n Logger.Log([\n \"frame #\" + this._count + \" - viewport applied - (\",\n this._viewportCached.x,\n this._viewportCached.y,\n this._viewportCached.z,\n this._viewportCached.w,\n \") current pass is main pass=\" + this._currentPassIsMainPass(),\n ]);\n }\n }\n }\n /**\n * @internal\n */\n _viewport(x, y, width, height) {\n this._viewportCached.x = x;\n this._viewportCached.y = y;\n this._viewportCached.z = width;\n this._viewportCached.w = height;\n }\n _mustUpdateScissor() {\n const x = this._scissorCached.x, y = this._scissorCached.y, w = this._scissorCached.z, h = this._scissorCached.w;\n const update = this._scissorsCurrent.x !== x || this._scissorsCurrent.y !== y || this._scissorsCurrent.w !== w || this._scissorsCurrent.h !== h;\n if (update) {\n this._scissorsCurrent.x = this._scissorCached.x;\n this._scissorsCurrent.y = this._scissorCached.y;\n this._scissorsCurrent.w = this._scissorCached.z;\n this._scissorsCurrent.h = this._scissorCached.w;\n }\n return update;\n }\n _applyScissor(bundleList) {\n const y = this._currentRenderTarget ? this._scissorCached.y : this.getRenderHeight() - this._scissorCached.w - this._scissorCached.y;\n if (bundleList) {\n bundleList.addItem(new WebGPURenderItemScissor(this._scissorCached.x, y, this._scissorCached.z, this._scissorCached.w));\n }\n else {\n this._getCurrentRenderPass().setScissorRect(this._scissorCached.x, y, this._scissorCached.z, this._scissorCached.w);\n }\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {\n Logger.Log([\n \"frame #\" + this._count + \" - scissor applied - (\",\n this._scissorCached.x,\n this._scissorCached.y,\n this._scissorCached.z,\n this._scissorCached.w,\n \") current pass is main pass=\" + this._currentPassIsMainPass(),\n ]);\n }\n }\n }\n _scissorIsActive() {\n return this._scissorCached.x !== 0 || this._scissorCached.y !== 0 || this._scissorCached.z !== 0 || this._scissorCached.w !== 0;\n }\n enableScissor(x, y, width, height) {\n this._scissorCached.x = x;\n this._scissorCached.y = y;\n this._scissorCached.z = width;\n this._scissorCached.w = height;\n }\n disableScissor() {\n this._scissorCached.x = this._scissorCached.y = this._scissorCached.z = this._scissorCached.w = 0;\n this._scissorsCurrent.x = this._scissorsCurrent.y = this._scissorsCurrent.w = this._scissorsCurrent.h = 0;\n }\n _mustUpdateStencilRef() {\n const update = this._stencilStateComposer.funcRef !== this._stencilRefsCurrent;\n if (update) {\n this._stencilRefsCurrent = this._stencilStateComposer.funcRef;\n }\n return update;\n }\n _applyStencilRef(bundleList) {\n if (bundleList) {\n bundleList.addItem(new WebGPURenderItemStencilRef(this._stencilStateComposer.funcRef ?? 0));\n }\n else {\n this._getCurrentRenderPass().setStencilReference(this._stencilStateComposer.funcRef ?? 0);\n }\n }\n _mustUpdateBlendColor() {\n const colorBlend = this._alphaState._blendConstants;\n const update = colorBlend[0] !== this._blendColorsCurrent[0] ||\n colorBlend[1] !== this._blendColorsCurrent[1] ||\n colorBlend[2] !== this._blendColorsCurrent[2] ||\n colorBlend[3] !== this._blendColorsCurrent[3];\n if (update) {\n this._blendColorsCurrent[0] = colorBlend[0];\n this._blendColorsCurrent[1] = colorBlend[1];\n this._blendColorsCurrent[2] = colorBlend[2];\n this._blendColorsCurrent[3] = colorBlend[3];\n }\n return update;\n }\n _applyBlendColor(bundleList) {\n if (bundleList) {\n bundleList.addItem(new WebGPURenderItemBlendColor(this._alphaState._blendConstants.slice()));\n }\n else {\n this._getCurrentRenderPass().setBlendConstant(this._alphaState._blendConstants);\n }\n }\n _resetRenderPassStates() {\n this._viewportsCurrent.x = this._viewportsCurrent.y = this._viewportsCurrent.w = this._viewportsCurrent.h = 0;\n this._scissorsCurrent.x = this._scissorsCurrent.y = this._scissorsCurrent.w = this._scissorsCurrent.h = 0;\n this._stencilRefsCurrent = -1;\n this._blendColorsCurrent[0] = this._blendColorsCurrent[1] = this._blendColorsCurrent[2] = this._blendColorsCurrent[3] = null;\n }\n /**\n * Clear the current render buffer or the current render target (if any is set up)\n * @param color defines the color to use\n * @param backBuffer defines if the back buffer must be cleared\n * @param depth defines if the depth buffer must be cleared\n * @param stencil defines if the stencil buffer must be cleared\n */\n clear(color, backBuffer, depth, stencil = false) {\n // Some PGs are using color3...\n if (color && color.a === undefined) {\n color.a = 1;\n }\n const hasScissor = this._scissorIsActive();\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {\n Logger.Log([\"frame #\" + this._count + \" - clear - backBuffer=\", backBuffer, \" depth=\", depth, \" stencil=\", stencil, \" scissor is active=\", hasScissor]);\n }\n }\n // We need to recreate the render pass so that the new parameters for clear color / depth / stencil are taken into account\n if (this._currentRenderTarget) {\n if (hasScissor) {\n if (!this._currentRenderPass) {\n this._startRenderTargetRenderPass(this._currentRenderTarget, false, backBuffer ? color : null, depth, stencil);\n }\n this._applyScissor(!this.compatibilityMode ? this._bundleList : null);\n this._clearFullQuad(backBuffer ? color : null, depth, stencil);\n }\n else {\n if (this._currentRenderPass) {\n this._endCurrentRenderPass();\n }\n this._startRenderTargetRenderPass(this._currentRenderTarget, true, backBuffer ? color : null, depth, stencil);\n }\n }\n else {\n if (!this._currentRenderPass || !hasScissor) {\n this._startMainRenderPass(!hasScissor, backBuffer ? color : null, depth, stencil);\n }\n if (hasScissor) {\n this._applyScissor(!this.compatibilityMode ? this._bundleList : null);\n this._clearFullQuad(backBuffer ? color : null, depth, stencil);\n }\n }\n }\n _clearFullQuad(clearColor, clearDepth, clearStencil) {\n const renderPass = !this.compatibilityMode ? null : this._getCurrentRenderPass();\n this._clearQuad.setColorFormat(this._colorFormat);\n this._clearQuad.setDepthStencilFormat(this._depthTextureFormat);\n this._clearQuad.setMRTAttachments(this._cacheRenderPipeline.mrtAttachments ?? [], this._cacheRenderPipeline.mrtTextureArray ?? [], this._cacheRenderPipeline.mrtTextureCount);\n if (!this.compatibilityMode) {\n this._bundleList.addItem(new WebGPURenderItemStencilRef(this._clearStencilValue));\n }\n else {\n renderPass.setStencilReference(this._clearStencilValue);\n }\n const bundle = this._clearQuad.clear(renderPass, clearColor, clearDepth, clearStencil, this.currentSampleCount);\n if (!this.compatibilityMode) {\n this._bundleList.addBundle(bundle);\n this._applyStencilRef(this._bundleList);\n this._reportDrawCall();\n }\n else {\n this._applyStencilRef(null);\n }\n }\n //------------------------------------------------------------------------------\n // Vertex/Index/Storage Buffers\n //------------------------------------------------------------------------------\n /**\n * Creates a vertex buffer\n * @param data the data or the size for the vertex buffer\n * @param _updatable whether the buffer should be created as updatable\n * @param label defines the label of the buffer (for debug purpose)\n * @returns the new buffer\n */\n createVertexBuffer(data, _updatable, label) {\n let view;\n if (data instanceof Array) {\n view = new Float32Array(data);\n }\n else if (data instanceof ArrayBuffer) {\n view = new Uint8Array(data);\n }\n else {\n view = data;\n }\n const dataBuffer = this._bufferManager.createBuffer(view, WebGPUConstants.BufferUsage.Vertex | WebGPUConstants.BufferUsage.CopyDst, label);\n return dataBuffer;\n }\n /**\n * Creates a vertex buffer\n * @param data the data for the dynamic vertex buffer\n * @param label defines the label of the buffer (for debug purpose)\n * @returns the new buffer\n */\n createDynamicVertexBuffer(data, label) {\n return this.createVertexBuffer(data, undefined, label);\n }\n /**\n * Creates a new index buffer\n * @param indices defines the content of the index buffer\n * @param _updatable defines if the index buffer must be updatable\n * @param label defines the label of the buffer (for debug purpose)\n * @returns a new buffer\n */\n createIndexBuffer(indices, _updatable, label) {\n let is32Bits = true;\n let view;\n if (indices instanceof Uint32Array || indices instanceof Int32Array) {\n view = indices;\n }\n else if (indices instanceof Uint16Array) {\n view = indices;\n is32Bits = false;\n }\n else {\n if (indices.length > 65535) {\n view = new Uint32Array(indices);\n }\n else {\n view = new Uint16Array(indices);\n is32Bits = false;\n }\n }\n const dataBuffer = this._bufferManager.createBuffer(view, WebGPUConstants.BufferUsage.Index | WebGPUConstants.BufferUsage.CopyDst, label);\n dataBuffer.is32Bits = is32Bits;\n return dataBuffer;\n }\n /**\n * Update a dynamic index buffer\n * @param indexBuffer defines the target index buffer\n * @param indices defines the data to update\n * @param offset defines the offset in the target index buffer where update should start\n */\n updateDynamicIndexBuffer(indexBuffer, indices, offset = 0) {\n const gpuBuffer = indexBuffer;\n let view;\n if (indexBuffer.is32Bits) {\n view = indices instanceof Uint32Array ? indices : new Uint32Array(indices);\n }\n else {\n view = indices instanceof Uint16Array ? indices : new Uint16Array(indices);\n }\n this._bufferManager.setSubData(gpuBuffer, offset, view);\n }\n /**\n * Updates a dynamic vertex buffer.\n * @param vertexBuffer the vertex buffer to update\n * @param data the data used to update the vertex buffer\n * @param byteOffset the byte offset of the data\n * @param byteLength the byte length of the data\n */\n updateDynamicVertexBuffer(vertexBuffer, data, byteOffset, byteLength) {\n const dataBuffer = vertexBuffer;\n if (byteOffset === undefined) {\n byteOffset = 0;\n }\n let view;\n if (byteLength === undefined) {\n if (data instanceof Array) {\n view = new Float32Array(data);\n }\n else if (data instanceof ArrayBuffer) {\n view = new Uint8Array(data);\n }\n else {\n view = data;\n }\n byteLength = view.byteLength;\n }\n else {\n if (data instanceof Array) {\n view = new Float32Array(data);\n }\n else if (data instanceof ArrayBuffer) {\n view = new Uint8Array(data);\n }\n else {\n view = data;\n }\n }\n this._bufferManager.setSubData(dataBuffer, byteOffset, view, 0, byteLength);\n }\n /**\n * @internal\n */\n _createBuffer(data, creationFlags, label) {\n let view;\n if (data instanceof Array) {\n view = new Float32Array(data);\n }\n else if (data instanceof ArrayBuffer) {\n view = new Uint8Array(data);\n }\n else {\n view = data;\n }\n let flags = 0;\n if (creationFlags & 1) {\n flags |= WebGPUConstants.BufferUsage.CopySrc;\n }\n if (creationFlags & 2) {\n flags |= WebGPUConstants.BufferUsage.CopyDst;\n }\n if (creationFlags & 4) {\n flags |= WebGPUConstants.BufferUsage.Uniform;\n }\n if (creationFlags & 8) {\n flags |= WebGPUConstants.BufferUsage.Vertex;\n }\n if (creationFlags & 16) {\n flags |= WebGPUConstants.BufferUsage.Index;\n }\n if (creationFlags & 32) {\n flags |= WebGPUConstants.BufferUsage.Storage;\n }\n if (creationFlags & 64) {\n flags |= WebGPUConstants.BufferUsage.Indirect;\n }\n return this._bufferManager.createBuffer(view, flags, label);\n }\n /**\n * @internal\n */\n bindBuffersDirectly() {\n // eslint-disable-next-line no-throw-literal\n throw \"Not implemented on WebGPU\";\n }\n /**\n * @internal\n */\n updateAndBindInstancesBuffer() {\n // eslint-disable-next-line no-throw-literal\n throw \"Not implemented on WebGPU\";\n }\n /**\n * Unbind all instance attributes\n */\n unbindInstanceAttributes() {\n // Does nothing\n }\n /**\n * Bind a list of vertex buffers with the engine\n * @param vertexBuffers defines the list of vertex buffers to bind\n * @param indexBuffer defines the index buffer to bind\n * @param effect defines the effect associated with the vertex buffers\n * @param overrideVertexBuffers defines optional list of avertex buffers that overrides the entries in vertexBuffers\n */\n bindBuffers(vertexBuffers, indexBuffer, effect, overrideVertexBuffers) {\n this._currentIndexBuffer = indexBuffer;\n this._currentOverrideVertexBuffers = overrideVertexBuffers ?? null;\n this._cacheRenderPipeline.setBuffers(vertexBuffers, indexBuffer, this._currentOverrideVertexBuffers);\n }\n /**\n * @internal\n */\n _releaseBuffer(buffer) {\n return this._bufferManager.releaseBuffer(buffer);\n }\n //------------------------------------------------------------------------------\n // Uniform Buffers\n //------------------------------------------------------------------------------\n /**\n * Create an uniform buffer\n * @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets\n * @param elements defines the content of the uniform buffer\n * @param label defines a name for the buffer (for debugging purpose)\n * @returns the webGL uniform buffer\n */\n createUniformBuffer(elements, label) {\n let view;\n if (elements instanceof Array) {\n view = new Float32Array(elements);\n }\n else {\n view = elements;\n }\n const dataBuffer = this._bufferManager.createBuffer(view, WebGPUConstants.BufferUsage.Uniform | WebGPUConstants.BufferUsage.CopyDst, label);\n return dataBuffer;\n }\n /**\n * Create a dynamic uniform buffer (no different from a non dynamic uniform buffer in WebGPU)\n * @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets\n * @param elements defines the content of the uniform buffer\n * @param label defines a name for the buffer (for debugging purpose)\n * @returns the webGL uniform buffer\n */\n createDynamicUniformBuffer(elements, label) {\n return this.createUniformBuffer(elements, label);\n }\n /**\n * Update an existing uniform buffer\n * @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets\n * @param uniformBuffer defines the target uniform buffer\n * @param elements defines the content to update\n * @param offset defines the offset in the uniform buffer where update should start\n * @param count defines the size of the data to update\n */\n updateUniformBuffer(uniformBuffer, elements, offset, count) {\n if (offset === undefined) {\n offset = 0;\n }\n const dataBuffer = uniformBuffer;\n let view;\n if (count === undefined) {\n if (elements instanceof Float32Array) {\n view = elements;\n }\n else {\n view = new Float32Array(elements);\n }\n count = view.byteLength;\n }\n else {\n if (elements instanceof Float32Array) {\n view = elements;\n }\n else {\n view = new Float32Array(elements);\n }\n }\n this._bufferManager.setSubData(dataBuffer, offset, view, 0, count);\n }\n /**\n * Bind a buffer to the current draw context\n * @param buffer defines the buffer to bind\n * @param _location not used in WebGPU\n * @param name Name of the uniform variable to bind\n */\n bindUniformBufferBase(buffer, _location, name) {\n this._currentDrawContext.setBuffer(name, buffer);\n }\n /**\n * Unused in WebGPU\n */\n bindUniformBlock() { }\n //------------------------------------------------------------------------------\n // Effects\n //------------------------------------------------------------------------------\n /**\n * Create a new effect (used to store vertex/fragment shaders)\n * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)\n * @param attributesNamesOrOptions defines either a list of attribute names or an IEffectCreationOptions object\n * @param uniformsNamesOrEngine defines either a list of uniform names or the engine to use\n * @param samplers defines an array of string used to represent textures\n * @param defines defines the string containing the defines to use to compile the shaders\n * @param fallbacks defines the list of potential fallbacks to use if shader compilation fails\n * @param onCompiled defines a function to call when the effect creation is successful\n * @param onError defines a function to call when the effect creation has failed\n * @param indexParameters defines an object containing the index values to use to compile shaders (like the maximum number of simultaneous lights)\n * @param shaderLanguage the language the shader is written in (default: GLSL)\n * @param extraInitializationsAsync additional async code to run before preparing the effect\n * @returns the new Effect\n */\n createEffect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, defines, fallbacks, onCompiled, onError, indexParameters, shaderLanguage = 0 /* ShaderLanguage.GLSL */, extraInitializationsAsync) {\n const vertex = typeof baseName === \"string\" ? baseName : baseName.vertexToken || baseName.vertexSource || baseName.vertexElement || baseName.vertex;\n const fragment = typeof baseName === \"string\" ? baseName : baseName.fragmentToken || baseName.fragmentSource || baseName.fragmentElement || baseName.fragment;\n const globalDefines = this._getGlobalDefines();\n let fullDefines = defines ?? attributesNamesOrOptions.defines ?? \"\";\n if (globalDefines) {\n fullDefines += \"\\n\" + globalDefines;\n }\n const name = vertex + \"+\" + fragment + \"@\" + fullDefines;\n if (this._compiledEffects[name]) {\n const compiledEffect = this._compiledEffects[name];\n if (onCompiled && compiledEffect.isReady()) {\n onCompiled(compiledEffect);\n }\n compiledEffect._refCount++;\n return compiledEffect;\n }\n const effect = new Effect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, this, defines, fallbacks, onCompiled, onError, indexParameters, name, attributesNamesOrOptions.shaderLanguage ?? shaderLanguage, attributesNamesOrOptions.extraInitializationsAsync ?? extraInitializationsAsync);\n this._compiledEffects[name] = effect;\n return effect;\n }\n _compileRawShaderToSpirV(source, type) {\n return this._glslang.compileGLSL(source, type);\n }\n _compileShaderToSpirV(source, type, defines, shaderVersion) {\n return this._compileRawShaderToSpirV(shaderVersion + (defines ? defines + \"\\n\" : \"\") + source, type);\n }\n _getWGSLShader(source, type, defines) {\n if (defines) {\n defines = \"//\" + defines.split(\"\\n\").join(\"\\n//\") + \"\\n\";\n }\n else {\n defines = \"\";\n }\n return defines + source;\n }\n _createPipelineStageDescriptor(vertexShader, fragmentShader, shaderLanguage, disableUniformityAnalysisInVertex, disableUniformityAnalysisInFragment) {\n if (this._tintWASM && shaderLanguage === 0 /* ShaderLanguage.GLSL */) {\n vertexShader = this._tintWASM.convertSpirV2WGSL(vertexShader, disableUniformityAnalysisInVertex);\n fragmentShader = this._tintWASM.convertSpirV2WGSL(fragmentShader, disableUniformityAnalysisInFragment);\n }\n return {\n vertexStage: {\n module: this._device.createShaderModule({\n label: \"vertex\",\n code: vertexShader,\n }),\n entryPoint: \"main\",\n },\n fragmentStage: {\n module: this._device.createShaderModule({\n label: \"fragment\",\n code: fragmentShader,\n }),\n entryPoint: \"main\",\n },\n };\n }\n _compileRawPipelineStageDescriptor(vertexCode, fragmentCode, shaderLanguage) {\n const disableUniformityAnalysisInVertex = vertexCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) >= 0;\n const disableUniformityAnalysisInFragment = fragmentCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) >= 0;\n const vertexShader = shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? this._compileRawShaderToSpirV(vertexCode, \"vertex\") : vertexCode;\n const fragmentShader = shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? this._compileRawShaderToSpirV(fragmentCode, \"fragment\") : fragmentCode;\n return this._createPipelineStageDescriptor(vertexShader, fragmentShader, shaderLanguage, disableUniformityAnalysisInVertex, disableUniformityAnalysisInFragment);\n }\n _compilePipelineStageDescriptor(vertexCode, fragmentCode, defines, shaderLanguage) {\n this.onBeforeShaderCompilationObservable.notifyObservers(this);\n const disableUniformityAnalysisInVertex = vertexCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) >= 0;\n const disableUniformityAnalysisInFragment = fragmentCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) >= 0;\n const shaderVersion = \"#version 450\\n\";\n const vertexShader = shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? this._compileShaderToSpirV(vertexCode, \"vertex\", defines, shaderVersion) : this._getWGSLShader(vertexCode, \"vertex\", defines);\n const fragmentShader = shaderLanguage === 0 /* ShaderLanguage.GLSL */\n ? this._compileShaderToSpirV(fragmentCode, \"fragment\", defines, shaderVersion)\n : this._getWGSLShader(fragmentCode, \"fragment\", defines);\n const program = this._createPipelineStageDescriptor(vertexShader, fragmentShader, shaderLanguage, disableUniformityAnalysisInVertex, disableUniformityAnalysisInFragment);\n this.onAfterShaderCompilationObservable.notifyObservers(this);\n return program;\n }\n /**\n * @internal\n */\n createRawShaderProgram() {\n // eslint-disable-next-line no-throw-literal\n throw \"Not available on WebGPU\";\n }\n /**\n * @internal\n */\n createShaderProgram() {\n // eslint-disable-next-line no-throw-literal\n throw \"Not available on WebGPU\";\n }\n /**\n * Inline functions in shader code that are marked to be inlined\n * @param code code to inline\n * @returns inlined code\n */\n inlineShaderCode(code) {\n const sci = new ShaderCodeInliner(code);\n sci.debug = false;\n sci.processCode();\n return sci.code;\n }\n /**\n * Creates a new pipeline context\n * @param shaderProcessingContext defines the shader processing context used during the processing if available\n * @returns the new pipeline\n */\n createPipelineContext(shaderProcessingContext) {\n return new WebGPUPipelineContext(shaderProcessingContext, this);\n }\n /**\n * Creates a new material context\n * @returns the new context\n */\n createMaterialContext() {\n return new WebGPUMaterialContext();\n }\n /**\n * Creates a new draw context\n * @returns the new context\n */\n createDrawContext() {\n return new WebGPUDrawContext(this._bufferManager);\n }\n /**\n * @internal\n */\n async _preparePipelineContext(pipelineContext, vertexSourceCode, fragmentSourceCode, createAsRaw, rawVertexSourceCode, rawFragmentSourceCode, _rebuildRebind, defines, _transformFeedbackVaryings, _key, onReady) {\n const webGpuContext = pipelineContext;\n const shaderLanguage = webGpuContext.shaderProcessingContext.shaderLanguage;\n if (shaderLanguage === 0 /* ShaderLanguage.GLSL */ && !this._glslangAndTintAreFullyLoaded) {\n await this.prepareGlslangAndTintAsync();\n }\n if (this.dbgShowShaderCode) {\n Logger.Log([\"defines\", defines]);\n Logger.Log(vertexSourceCode);\n Logger.Log(fragmentSourceCode);\n Logger.Log(\"***********************************************\");\n }\n webGpuContext.sources = {\n fragment: fragmentSourceCode,\n vertex: vertexSourceCode,\n rawVertex: rawVertexSourceCode,\n rawFragment: rawFragmentSourceCode,\n };\n if (createAsRaw) {\n webGpuContext.stages = this._compileRawPipelineStageDescriptor(vertexSourceCode, fragmentSourceCode, shaderLanguage);\n }\n else {\n webGpuContext.stages = this._compilePipelineStageDescriptor(vertexSourceCode, fragmentSourceCode, defines, shaderLanguage);\n }\n onReady();\n }\n /**\n * Gets the list of active attributes for a given WebGPU program\n * @param pipelineContext defines the pipeline context to use\n * @param attributesNames defines the list of attribute names to get\n * @returns an array of indices indicating the offset of each attribute\n */\n getAttributes(pipelineContext, attributesNames) {\n const results = new Array(attributesNames.length);\n const gpuPipelineContext = pipelineContext;\n for (let i = 0; i < attributesNames.length; i++) {\n const attributeName = attributesNames[i];\n const attributeLocation = gpuPipelineContext.shaderProcessingContext.availableAttributes[attributeName];\n if (attributeLocation === undefined) {\n continue;\n }\n results[i] = attributeLocation;\n }\n return results;\n }\n /**\n * Activates an effect, making it the current one (ie. the one used for rendering)\n * @param effect defines the effect to activate\n */\n enableEffect(effect) {\n if (!effect) {\n return;\n }\n if (!IsWrapper(effect)) {\n this._currentEffect = effect;\n this._currentMaterialContext = this._defaultMaterialContext;\n this._currentDrawContext = this._defaultDrawContext;\n this._counters.numEnableEffects++;\n if (this.dbgLogIfNotDrawWrapper) {\n Logger.Warn(`enableEffect has been called with an Effect and not a Wrapper! effect.uniqueId=${effect.uniqueId}, effect.name=${effect.name}, effect.name.vertex=${typeof effect.name === \"string\" ? \"\" : effect.name.vertex}, effect.name.fragment=${typeof effect.name === \"string\" ? \"\" : effect.name.fragment}`, 10);\n }\n }\n else if (!effect.effect ||\n (effect.effect === this._currentEffect &&\n effect.materialContext === this._currentMaterialContext &&\n effect.drawContext === this._currentDrawContext &&\n !this._forceEnableEffect)) {\n if (!effect.effect && this.dbgShowEmptyEnableEffectCalls) {\n Logger.Log([\"drawWrapper=\", effect]);\n // eslint-disable-next-line no-throw-literal\n throw \"Invalid call to enableEffect: the effect property is empty!\";\n }\n return;\n }\n else {\n this._currentEffect = effect.effect;\n this._currentMaterialContext = effect.materialContext;\n this._currentDrawContext = effect.drawContext;\n this._counters.numEnableDrawWrapper++;\n if (!this._currentMaterialContext) {\n Logger.Log([\"drawWrapper=\", effect]);\n // eslint-disable-next-line no-throw-literal\n throw `Invalid call to enableEffect: the materialContext property is empty!`;\n }\n }\n this._stencilStateComposer.stencilMaterial = undefined;\n this._forceEnableEffect = false;\n if (this._currentEffect.onBind) {\n this._currentEffect.onBind(this._currentEffect);\n }\n if (this._currentEffect._onBindObservable) {\n this._currentEffect._onBindObservable.notifyObservers(this._currentEffect);\n }\n }\n /**\n * @internal\n */\n _releaseEffect(effect) {\n if (this._compiledEffects[effect._key]) {\n delete this._compiledEffects[effect._key];\n this._deletePipelineContext(effect.getPipelineContext());\n }\n }\n /**\n * Force the engine to release all cached effects. This means that next effect compilation will have to be done completely even if a similar effect was already compiled\n */\n releaseEffects() {\n for (const name in this._compiledEffects) {\n const webGPUPipelineContext = this._compiledEffects[name].getPipelineContext();\n this._deletePipelineContext(webGPUPipelineContext);\n }\n this._compiledEffects = {};\n }\n _deletePipelineContext(pipelineContext) {\n const webgpuPipelineContext = pipelineContext;\n if (webgpuPipelineContext) {\n resetCachedPipeline(webgpuPipelineContext);\n }\n }\n //------------------------------------------------------------------------------\n // Textures\n //------------------------------------------------------------------------------\n /**\n * Gets a boolean indicating that only power of 2 textures are supported\n * Please note that you can still use non power of 2 textures but in this case the engine will forcefully convert them\n */\n get needPOTTextures() {\n return false;\n }\n /** @internal */\n _createHardwareTexture() {\n return new WebGPUHardwareTexture();\n }\n /**\n * @internal\n */\n _releaseTexture(texture) {\n const index = this._internalTexturesCache.indexOf(texture);\n if (index !== -1) {\n this._internalTexturesCache.splice(index, 1);\n }\n this._textureHelper.releaseTexture(texture);\n }\n /**\n * @internal\n */\n _getRGBABufferInternalSizedFormat() {\n return 5;\n }\n updateTextureComparisonFunction(texture, comparisonFunction) {\n texture._comparisonFunction = comparisonFunction;\n }\n /**\n * Creates an internal texture without binding it to a framebuffer\n * @internal\n * @param size defines the size of the texture\n * @param options defines the options used to create the texture\n * @param delayGPUTextureCreation true to delay the texture creation the first time it is really needed. false to create it right away\n * @param source source type of the texture\n * @returns a new internal texture\n */\n _createInternalTexture(size, options, delayGPUTextureCreation = true, source = 0 /* InternalTextureSource.Unknown */) {\n const fullOptions = {};\n if (options !== undefined && typeof options === \"object\") {\n fullOptions.generateMipMaps = options.generateMipMaps;\n fullOptions.type = options.type === undefined ? 0 : options.type;\n fullOptions.samplingMode = options.samplingMode === undefined ? 3 : options.samplingMode;\n fullOptions.format = options.format === undefined ? 5 : options.format;\n fullOptions.samples = options.samples ?? 1;\n fullOptions.creationFlags = options.creationFlags ?? 0;\n fullOptions.useSRGBBuffer = options.useSRGBBuffer ?? false;\n fullOptions.label = options.label;\n }\n else {\n fullOptions.generateMipMaps = options;\n fullOptions.type = 0;\n fullOptions.samplingMode = 3;\n fullOptions.format = 5;\n fullOptions.samples = 1;\n fullOptions.creationFlags = 0;\n fullOptions.useSRGBBuffer = false;\n }\n if (fullOptions.type === 1 && !this._caps.textureFloatLinearFiltering) {\n fullOptions.samplingMode = 1;\n }\n else if (fullOptions.type === 2 && !this._caps.textureHalfFloatLinearFiltering) {\n fullOptions.samplingMode = 1;\n }\n if (fullOptions.type === 1 && !this._caps.textureFloat) {\n fullOptions.type = 0;\n Logger.Warn(\"Float textures are not supported. Type forced to TEXTURETYPE_UNSIGNED_BYTE\");\n }\n const texture = new InternalTexture(this, source);\n const width = size.width || size;\n const height = size.height || size;\n const depth = size.depth || 0;\n const layers = size.layers || 0;\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.width = width;\n texture.height = height;\n texture.depth = depth || layers;\n texture.isReady = true;\n texture.samples = fullOptions.samples;\n texture.generateMipMaps = fullOptions.generateMipMaps ? true : false;\n texture.samplingMode = fullOptions.samplingMode;\n texture.type = fullOptions.type;\n texture.format = fullOptions.format;\n texture.is2DArray = layers > 0;\n texture.is3D = depth > 0;\n texture._cachedWrapU = 0;\n texture._cachedWrapV = 0;\n texture._useSRGBBuffer = fullOptions.useSRGBBuffer;\n texture.label = fullOptions.label;\n this._internalTexturesCache.push(texture);\n if (!delayGPUTextureCreation) {\n this._textureHelper.createGPUTextureForInternalTexture(texture, width, height, layers || 1, fullOptions.creationFlags);\n }\n return texture;\n }\n /**\n * Usually called from Texture.ts.\n * Passed information to create a hardware texture\n * @param url defines a value which contains one of the following:\n * * A conventional http URL, e.g. 'http://...' or 'file://...'\n * * A base64 string of in-line texture data, e.g. 'data:image/jpg;base64,/...'\n * * An indicator that data being passed using the buffer parameter, e.g. 'data:mytexture.jpg'\n * @param noMipmap defines a boolean indicating that no mipmaps shall be generated. Ignored for compressed textures. They must be in the file\n * @param invertY when true, image is flipped when loaded. You probably want true. Certain compressed textures may invert this if their default is inverted (eg. ktx)\n * @param scene needed for loading to the correct scene\n * @param samplingMode mode with should be used sample / access the texture (Default: Texture.TRILINEAR_SAMPLINGMODE)\n * @param onLoad optional callback to be called upon successful completion\n * @param onError optional callback to be called upon failure\n * @param buffer a source of a file previously fetched as either a base64 string, an ArrayBuffer (compressed or image format), HTMLImageElement (image format), or a Blob\n * @param fallback an internal argument in case the function must be called again, due to etc1 not having alpha capabilities\n * @param format internal format. Default: RGB when extension is '.jpg' else RGBA. Ignored for compressed textures\n * @param forcedExtension defines the extension to use to pick the right loader\n * @param mimeType defines an optional mime type\n * @param loaderOptions options to be passed to the loader\n * @param creationFlags specific flags to use when creating the texture (1 for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns a InternalTexture for assignment back into BABYLON.Texture\n */\n createTexture(url, noMipmap, invertY, scene, samplingMode = 3, onLoad = null, onError = null, buffer = null, fallback = null, format = null, forcedExtension = null, mimeType, loaderOptions, creationFlags, useSRGBBuffer) {\n return this._createTextureBase(url, noMipmap, invertY, scene, samplingMode, onLoad, onError, (texture, extension, scene, img, invertY, noMipmap, isCompressed, processFunction) => {\n const imageBitmap = img; // we will never get an HTMLImageElement in WebGPU\n texture.baseWidth = imageBitmap.width;\n texture.baseHeight = imageBitmap.height;\n texture.width = imageBitmap.width;\n texture.height = imageBitmap.height;\n texture.format = texture.format !== -1 ? texture.format : (format ?? 5);\n texture.type = texture.type !== -1 ? texture.type : 0;\n texture._creationFlags = creationFlags ?? 0;\n processFunction(texture.width, texture.height, imageBitmap, extension, texture, () => { });\n if (!texture._hardwareTexture?.underlyingResource) {\n // the texture could have been created before reaching this point so don't recreate it if already existing\n const gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, imageBitmap.width, imageBitmap.height, undefined, creationFlags);\n if (WebGPUTextureHelper.IsImageBitmap(imageBitmap)) {\n this._textureHelper.updateTexture(imageBitmap, texture, imageBitmap.width, imageBitmap.height, texture.depth, gpuTextureWrapper.format, 0, 0, invertY, false, 0, 0);\n if (!noMipmap && !isCompressed) {\n this._generateMipmaps(texture, this._uploadEncoder);\n }\n }\n }\n else if (!noMipmap && !isCompressed) {\n this._generateMipmaps(texture, this._uploadEncoder);\n }\n if (scene) {\n scene.removePendingData(texture);\n }\n texture.isReady = true;\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n }, () => false, buffer, fallback, format, forcedExtension, mimeType, loaderOptions, useSRGBBuffer);\n }\n /**\n * Wraps an external web gpu texture in a Babylon texture.\n * @param texture defines the external texture\n * @returns the babylon internal texture\n */\n wrapWebGPUTexture(texture) {\n const hardwareTexture = new WebGPUHardwareTexture(texture);\n const internalTexture = new InternalTexture(this, 0 /* InternalTextureSource.Unknown */, true);\n internalTexture._hardwareTexture = hardwareTexture;\n internalTexture.isReady = true;\n return internalTexture;\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Wraps an external web gl texture in a Babylon texture.\n * @returns the babylon internal texture\n */\n wrapWebGLTexture() {\n throw new Error(\"wrapWebGLTexture is not supported, use wrapWebGPUTexture instead.\");\n }\n /**\n * @internal\n */\n _getUseSRGBBuffer(useSRGBBuffer, noMipmap) {\n return useSRGBBuffer && this._caps.supportSRGBBuffers;\n }\n /**\n * @internal\n */\n _unpackFlipY(value) { }\n /**\n * Update the sampling mode of a given texture\n * @param samplingMode defines the required sampling mode\n * @param texture defines the texture to update\n * @param generateMipMaps defines whether to generate mipmaps for the texture\n */\n updateTextureSamplingMode(samplingMode, texture, generateMipMaps = false) {\n if (generateMipMaps) {\n texture.generateMipMaps = true;\n this._generateMipmaps(texture);\n }\n texture.samplingMode = samplingMode;\n }\n /**\n * Update the sampling mode of a given texture\n * @param texture defines the texture to update\n * @param wrapU defines the texture wrap mode of the u coordinates\n * @param wrapV defines the texture wrap mode of the v coordinates\n * @param wrapR defines the texture wrap mode of the r coordinates\n */\n updateTextureWrappingMode(texture, wrapU, wrapV = null, wrapR = null) {\n if (wrapU !== null) {\n texture._cachedWrapU = wrapU;\n }\n if (wrapV !== null) {\n texture._cachedWrapV = wrapV;\n }\n if ((texture.is2DArray || texture.is3D) && wrapR !== null) {\n texture._cachedWrapR = wrapR;\n }\n }\n /**\n * Update the dimensions of a texture\n * @param texture texture to update\n * @param width new width of the texture\n * @param height new height of the texture\n * @param depth new depth of the texture\n */\n updateTextureDimensions(texture, width, height, depth = 1) {\n if (!texture._hardwareTexture) {\n // the gpu texture is not created yet, so when it is it will be created with the right dimensions\n return;\n }\n if (texture.width === width && texture.height === height && texture.depth === depth) {\n return;\n }\n const additionalUsages = texture._hardwareTexture.textureAdditionalUsages;\n texture._hardwareTexture.release(); // don't defer the releasing! Else we will release at the end of this frame the gpu texture we are about to create in the next line...\n this._textureHelper.createGPUTextureForInternalTexture(texture, width, height, depth, additionalUsages);\n }\n /**\n * @internal\n */\n _setInternalTexture(name, texture, baseName) {\n baseName = baseName ?? name;\n if (this._currentEffect) {\n const webgpuPipelineContext = this._currentEffect._pipelineContext;\n const availableTexture = webgpuPipelineContext.shaderProcessingContext.availableTextures[baseName];\n this._currentMaterialContext.setTexture(name, texture);\n if (availableTexture && availableTexture.autoBindSampler) {\n const samplerName = baseName + `Sampler`;\n this._currentMaterialContext.setSampler(samplerName, texture); // we can safely cast to InternalTexture because ExternalTexture always has autoBindSampler = false\n }\n }\n }\n /**\n * Create a cube texture from prefiltered data (ie. the mipmaps contain ready to use data for PBR reflection)\n * @param rootUrl defines the url where the file to load is located\n * @param scene defines the current scene\n * @param lodScale defines scale to apply to the mip map selection\n * @param lodOffset defines offset to apply to the mip map selection\n * @param onLoad defines an optional callback raised when the texture is loaded\n * @param onError defines an optional callback raised if there is an issue to load the texture\n * @param format defines the format of the data\n * @param forcedExtension defines the extension to use to pick the right loader\n * @param createPolynomials defines wheter or not to create polynomails harmonics for the texture\n * @returns the cube texture as an InternalTexture\n */\n createPrefilteredCubeTexture(rootUrl, scene, lodScale, lodOffset, onLoad = null, onError = null, format, forcedExtension = null, createPolynomials = true) {\n const callback = (loadData) => {\n if (!loadData) {\n if (onLoad) {\n onLoad(null);\n }\n return;\n }\n const texture = loadData.texture;\n if (!createPolynomials) {\n texture._sphericalPolynomial = new SphericalPolynomial();\n }\n else if (loadData.info.sphericalPolynomial) {\n texture._sphericalPolynomial = loadData.info.sphericalPolynomial;\n }\n texture._source = 9 /* InternalTextureSource.CubePrefiltered */;\n if (onLoad) {\n onLoad(texture);\n }\n };\n return this.createCubeTexture(rootUrl, scene, null, false, callback, onError, format, forcedExtension, createPolynomials, lodScale, lodOffset);\n }\n /**\n * Sets a texture to the according uniform.\n * @param channel The texture channel\n * @param unused unused parameter\n * @param texture The texture to apply\n * @param name The name of the uniform in the effect\n */\n setTexture(channel, unused, texture, name) {\n this._setTexture(channel, texture, false, false, name, name);\n }\n /**\n * Sets an array of texture to the WebGPU context\n * @param channel defines the channel where the texture array must be set\n * @param unused unused parameter\n * @param textures defines the array of textures to bind\n * @param name name of the channel\n */\n setTextureArray(channel, unused, textures, name) {\n for (let index = 0; index < textures.length; index++) {\n this._setTexture(-1, textures[index], true, false, name + index.toString(), name);\n }\n }\n /**\n * @internal\n */\n _setTexture(channel, texture, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isPartOfTextureArray = false, depthStencilTexture = false, name = \"\", baseName) {\n // name == baseName for a texture that is not part of a texture array\n // Else, name is something like 'myTexture0' / 'myTexture1' / ... and baseName is 'myTexture'\n // baseName is used to look up the texture in the shaderProcessingContext.availableTextures map\n // name is used to look up the texture in the _currentMaterialContext.textures map\n baseName = baseName ?? name;\n if (this._currentEffect) {\n if (!texture) {\n this._currentMaterialContext.setTexture(name, null);\n return false;\n }\n // Video\n if (texture.video) {\n texture.update();\n }\n else if (texture.delayLoadState === 4) {\n // Delay loading\n texture.delayLoad();\n return false;\n }\n let internalTexture = null;\n if (depthStencilTexture) {\n internalTexture = texture.depthStencilTexture;\n }\n else if (texture.isReady()) {\n internalTexture = texture.getInternalTexture();\n }\n else if (texture.isCube) {\n internalTexture = this.emptyCubeTexture;\n }\n else if (texture.is3D) {\n internalTexture = this.emptyTexture3D;\n }\n else if (texture.is2DArray) {\n internalTexture = this.emptyTexture2DArray;\n }\n else {\n internalTexture = this.emptyTexture;\n }\n if (internalTexture && !internalTexture.isMultiview) {\n // CUBIC_MODE and SKYBOX_MODE both require CLAMP_TO_EDGE. All other modes use REPEAT.\n if (internalTexture.isCube && internalTexture._cachedCoordinatesMode !== texture.coordinatesMode) {\n internalTexture._cachedCoordinatesMode = texture.coordinatesMode;\n const textureWrapMode = texture.coordinatesMode !== 3 && texture.coordinatesMode !== 5\n ? 1\n : 0;\n texture.wrapU = textureWrapMode;\n texture.wrapV = textureWrapMode;\n }\n internalTexture._cachedWrapU = texture.wrapU;\n internalTexture._cachedWrapV = texture.wrapV;\n if (internalTexture.is3D) {\n internalTexture._cachedWrapR = texture.wrapR;\n }\n this._setAnisotropicLevel(0, internalTexture, texture.anisotropicFilteringLevel);\n }\n this._setInternalTexture(name, internalTexture, baseName);\n }\n else {\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {\n Logger.Log([\"frame #\" + this._count + \" - _setTexture called with a null _currentEffect! texture=\", texture]);\n }\n }\n }\n return true;\n }\n /**\n * @internal\n */\n _setAnisotropicLevel(target, internalTexture, anisotropicFilteringLevel) {\n if (internalTexture._cachedAnisotropicFilteringLevel !== anisotropicFilteringLevel) {\n internalTexture._cachedAnisotropicFilteringLevel = Math.min(anisotropicFilteringLevel, this._caps.maxAnisotropy);\n }\n }\n /**\n * @internal\n */\n _bindTexture(channel, texture, name) {\n if (channel === undefined) {\n return;\n }\n this._setInternalTexture(name, texture);\n }\n /**\n * Generates the mipmaps for a texture\n * @param texture texture to generate the mipmaps for\n */\n generateMipmaps(texture) {\n this._generateMipmaps(texture);\n }\n /**\n * Update a portion of an internal texture\n * @param texture defines the texture to update\n * @param imageData defines the data to store into the texture\n * @param xOffset defines the x coordinates of the update rectangle\n * @param yOffset defines the y coordinates of the update rectangle\n * @param width defines the width of the update rectangle\n * @param height defines the height of the update rectangle\n * @param faceIndex defines the face index if texture is a cube (0 by default)\n * @param lod defines the lod level to update (0 by default)\n * @param generateMipMaps defines whether to generate mipmaps or not\n */\n updateTextureData(texture, imageData, xOffset, yOffset, width, height, faceIndex = 0, lod = 0, generateMipMaps = false) {\n let gpuTextureWrapper = texture._hardwareTexture;\n if (!texture._hardwareTexture?.underlyingResource) {\n gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture);\n }\n const data = new Uint8Array(imageData.buffer, imageData.byteOffset, imageData.byteLength);\n this._textureHelper.updateTexture(data, texture, width, height, texture.depth, gpuTextureWrapper.format, faceIndex, lod, texture.invertY, false, xOffset, yOffset);\n if (generateMipMaps) {\n this._generateMipmaps(texture);\n }\n }\n /**\n * @internal\n */\n _uploadCompressedDataToTextureDirectly(texture, internalFormat, width, height, imageData, faceIndex = 0, lod = 0) {\n let gpuTextureWrapper = texture._hardwareTexture;\n if (!texture._hardwareTexture?.underlyingResource) {\n texture.format = internalFormat;\n gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, width, height);\n }\n const data = new Uint8Array(imageData.buffer, imageData.byteOffset, imageData.byteLength);\n this._textureHelper.updateTexture(data, texture, width, height, texture.depth, gpuTextureWrapper.format, faceIndex, lod, false, false, 0, 0);\n }\n /**\n * @internal\n */\n _uploadDataToTextureDirectly(texture, imageData, faceIndex = 0, lod = 0, babylonInternalFormat, useTextureWidthAndHeight = false) {\n const lodMaxWidth = Math.round(Math.log(texture.width) * Math.LOG2E);\n const lodMaxHeight = Math.round(Math.log(texture.height) * Math.LOG2E);\n const width = useTextureWidthAndHeight ? texture.width : Math.pow(2, Math.max(lodMaxWidth - lod, 0));\n const height = useTextureWidthAndHeight ? texture.height : Math.pow(2, Math.max(lodMaxHeight - lod, 0));\n let gpuTextureWrapper = texture._hardwareTexture;\n if (!texture._hardwareTexture?.underlyingResource) {\n gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, width, height);\n }\n const data = new Uint8Array(imageData.buffer, imageData.byteOffset, imageData.byteLength);\n this._textureHelper.updateTexture(data, texture, width, height, texture.depth, gpuTextureWrapper.format, faceIndex, lod, texture.invertY, false, 0, 0);\n }\n /**\n * @internal\n */\n _uploadArrayBufferViewToTexture(texture, imageData, faceIndex = 0, lod = 0) {\n this._uploadDataToTextureDirectly(texture, imageData, faceIndex, lod);\n }\n /**\n * @internal\n */\n _uploadImageToTexture(texture, image, faceIndex = 0, lod = 0) {\n let gpuTextureWrapper = texture._hardwareTexture;\n if (!texture._hardwareTexture?.underlyingResource) {\n gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture);\n }\n if (image instanceof HTMLImageElement) {\n // eslint-disable-next-line no-throw-literal\n throw \"WebGPU engine: HTMLImageElement not supported in _uploadImageToTexture!\";\n }\n const bitmap = image; // in WebGPU we will always get an ImageBitmap, not an HTMLImageElement\n const width = Math.ceil(texture.width / (1 << lod));\n const height = Math.ceil(texture.height / (1 << lod));\n this._textureHelper.updateTexture(bitmap, texture, width, height, texture.depth, gpuTextureWrapper.format, faceIndex, lod, texture.invertY, false, 0, 0);\n }\n /**\n * Reads pixels from the current frame buffer. Please note that this function can be slow\n * @param x defines the x coordinate of the rectangle where pixels must be read\n * @param y defines the y coordinate of the rectangle where pixels must be read\n * @param width defines the width of the rectangle where pixels must be read\n * @param height defines the height of the rectangle where pixels must be read\n * @param hasAlpha defines whether the output should have alpha or not (defaults to true)\n * @param flushRenderer true to flush the renderer from the pending commands before reading the pixels\n * @returns a ArrayBufferView promise (Uint8Array) containing RGBA colors\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n readPixels(x, y, width, height, hasAlpha = true, flushRenderer = true) {\n const renderPassWrapper = this._getCurrentRenderPassWrapper();\n const hardwareTexture = renderPassWrapper.colorAttachmentGPUTextures[0];\n if (!hardwareTexture) {\n // we are calling readPixels for a render pass with no color texture bound\n return Promise.resolve(new Uint8Array(0));\n }\n const gpuTexture = hardwareTexture.underlyingResource;\n const gpuTextureFormat = hardwareTexture.format;\n if (!gpuTexture) {\n // we are calling readPixels before startMainRenderPass has been called and no RTT is bound, so swapChainTexture is not setup yet!\n return Promise.resolve(new Uint8Array(0));\n }\n if (flushRenderer) {\n this.flushFramebuffer();\n }\n return this._textureHelper.readPixels(gpuTexture, x, y, width, height, gpuTextureFormat);\n }\n //------------------------------------------------------------------------------\n // Frame management\n //------------------------------------------------------------------------------\n _measureFps() {\n this._performanceMonitor.sampleFrame();\n this._fps = this._performanceMonitor.averageFPS;\n this._deltaTime = this._performanceMonitor.instantaneousFrameTime || 0;\n }\n /**\n * Gets the performance monitor attached to this engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#engineinstrumentation\n */\n get performanceMonitor() {\n return this._performanceMonitor;\n }\n /**\n * Begin a new frame\n */\n beginFrame() {\n this._measureFps();\n super.beginFrame();\n }\n /**\n * End the current frame\n */\n endFrame() {\n this._endCurrentRenderPass();\n this._snapshotRendering.endFrame();\n this._timestampQuery.endFrame(this._renderEncoder);\n this._timestampIndex = 0;\n this.flushFramebuffer();\n this._textureHelper.destroyDeferredTextures();\n this._bufferManager.destroyDeferredBuffers();\n if (this._features._collectUbosUpdatedInFrame) {\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {\n const list = [];\n for (const name in UniformBuffer._UpdatedUbosInFrame) {\n list.push(name + \":\" + UniformBuffer._UpdatedUbosInFrame[name]);\n }\n Logger.Log([\"frame #\" + this._count + \" - updated ubos -\", list.join(\", \")]);\n }\n }\n UniformBuffer._UpdatedUbosInFrame = {};\n }\n this.countersLastFrame.numEnableEffects = this._counters.numEnableEffects;\n this.countersLastFrame.numEnableDrawWrapper = this._counters.numEnableDrawWrapper;\n this.countersLastFrame.numBundleCreationNonCompatMode = this._counters.numBundleCreationNonCompatMode;\n this.countersLastFrame.numBundleReuseNonCompatMode = this._counters.numBundleReuseNonCompatMode;\n this._counters.numEnableEffects = 0;\n this._counters.numEnableDrawWrapper = 0;\n this._counters.numBundleCreationNonCompatMode = 0;\n this._counters.numBundleReuseNonCompatMode = 0;\n this._cacheRenderPipeline.endFrame();\n this._cacheBindGroups.endFrame();\n this._pendingDebugCommands.length = 0;\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (this._count < this.dbgVerboseLogsNumFrames) {\n Logger.Log([\"%c frame #\" + this._count + \" - end\", \"background: #ffff00\"]);\n }\n if (this._count < this.dbgVerboseLogsNumFrames) {\n this._count++;\n if (this._count !== this.dbgVerboseLogsNumFrames) {\n Logger.Log([\"%c frame #\" + this._count + \" - begin\", \"background: #ffff00\"]);\n }\n }\n }\n super.endFrame();\n }\n /**Gets driver info if available */\n extractDriverInfo() {\n return \"\";\n }\n /**\n * Force a WebGPU flush (ie. a flush of all waiting commands)\n */\n flushFramebuffer() {\n // we need to end the current render pass (main or rtt) if any as we are not allowed to submit the command buffers when being in a pass\n this._endCurrentRenderPass();\n this._commandBuffers[0] = this._uploadEncoder.finish();\n this._commandBuffers[1] = this._renderEncoder.finish();\n this._device.queue.submit(this._commandBuffers);\n this._uploadEncoder = this._device.createCommandEncoder(this._uploadEncoderDescriptor);\n this._renderEncoder = this._device.createCommandEncoder(this._renderEncoderDescriptor);\n this._timestampQuery.startFrame(this._uploadEncoder);\n this._textureHelper.setCommandEncoder(this._uploadEncoder);\n this._bundleList.reset();\n }\n /** @internal */\n _currentFrameBufferIsDefaultFrameBuffer() {\n return this._currentPassIsMainPass();\n }\n //------------------------------------------------------------------------------\n // Render Pass\n //------------------------------------------------------------------------------\n _startRenderTargetRenderPass(renderTargetWrapper, setClearStates, clearColor, clearDepth, clearStencil) {\n this._endCurrentRenderPass();\n const rtWrapper = renderTargetWrapper;\n const depthStencilTexture = rtWrapper._depthStencilTexture;\n const gpuDepthStencilWrapper = depthStencilTexture?._hardwareTexture;\n const gpuDepthStencilTexture = gpuDepthStencilWrapper?.underlyingResource;\n const gpuDepthStencilMSAATexture = gpuDepthStencilWrapper?.getMSAATexture(0);\n const depthTextureView = gpuDepthStencilTexture?.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor);\n const depthMSAATextureView = gpuDepthStencilMSAATexture?.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor);\n const depthTextureHasStencil = gpuDepthStencilWrapper ? WebGPUTextureHelper.HasStencilAspect(gpuDepthStencilWrapper.format) : false;\n const colorAttachments = [];\n if (this.useReverseDepthBuffer) {\n this.setDepthFunctionToGreaterOrEqual();\n }\n const clearColorForIntegerRT = tempColor4;\n if (clearColor) {\n clearColorForIntegerRT.r = clearColor.r * 255;\n clearColorForIntegerRT.g = clearColor.g * 255;\n clearColorForIntegerRT.b = clearColor.b * 255;\n clearColorForIntegerRT.a = clearColor.a * 255;\n }\n const mustClearColor = setClearStates && clearColor;\n const mustClearDepth = setClearStates && clearDepth;\n const mustClearStencil = setClearStates && clearStencil;\n if (rtWrapper._attachments && rtWrapper.isMulti) {\n // multi render targets\n if (!this._mrtAttachments || this._mrtAttachments.length === 0) {\n this._mrtAttachments = rtWrapper._defaultAttachments;\n }\n for (let i = 0; i < this._mrtAttachments.length; ++i) {\n const index = this._mrtAttachments[i]; // if index == 0 it means the texture should not be written to => at render pass creation time, it means we should not clear it\n const mrtTexture = rtWrapper.textures[i];\n const gpuMRTWrapper = mrtTexture?._hardwareTexture;\n const gpuMRTTexture = gpuMRTWrapper?.underlyingResource;\n if (gpuMRTWrapper && gpuMRTTexture) {\n const baseArrayLayer = rtWrapper.getBaseArrayLayer(i);\n const gpuMSAATexture = gpuMRTWrapper.getMSAATexture(baseArrayLayer);\n const viewDescriptor = {\n ...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,\n dimension: mrtTexture.is3D ? \"3d\" /* WebGPUConstants.TextureViewDimension.E3d */ : \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n format: gpuMRTWrapper.format,\n baseArrayLayer,\n };\n const msaaViewDescriptor = {\n ...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,\n dimension: mrtTexture.is3D ? \"3d\" /* WebGPUConstants.TextureViewDimension.E3d */ : \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n format: gpuMRTWrapper.format,\n baseArrayLayer: 0,\n };\n const isRTInteger = mrtTexture.type === 7 || mrtTexture.type === 5;\n const colorTextureView = gpuMRTTexture.createView(viewDescriptor);\n const colorMSAATextureView = gpuMSAATexture?.createView(msaaViewDescriptor);\n colorAttachments.push({\n view: colorMSAATextureView ? colorMSAATextureView : colorTextureView,\n resolveTarget: gpuMSAATexture ? colorTextureView : undefined,\n depthSlice: mrtTexture.is3D ? (rtWrapper.layerIndices?.[i] ?? 0) : undefined,\n clearValue: index !== 0 && mustClearColor ? (isRTInteger ? clearColorForIntegerRT : clearColor) : undefined,\n loadOp: index !== 0 && mustClearColor ? \"clear\" /* WebGPUConstants.LoadOp.Clear */ : \"load\" /* WebGPUConstants.LoadOp.Load */,\n storeOp: \"store\" /* WebGPUConstants.StoreOp.Store */,\n });\n }\n }\n this._cacheRenderPipeline.setMRT(rtWrapper.textures, this._mrtAttachments.length);\n this._cacheRenderPipeline.setMRTAttachments(this._mrtAttachments);\n }\n else {\n // single render target\n const internalTexture = rtWrapper.texture;\n if (internalTexture) {\n const gpuWrapper = internalTexture._hardwareTexture;\n const gpuTexture = gpuWrapper.underlyingResource;\n let depthSlice = undefined;\n if (rtWrapper.is3D) {\n depthSlice = this._rttRenderPassWrapper.colorAttachmentViewDescriptor.baseArrayLayer;\n this._rttRenderPassWrapper.colorAttachmentViewDescriptor.baseArrayLayer = 0;\n }\n const gpuMSAATexture = gpuWrapper.getMSAATexture(0);\n const colorTextureView = gpuTexture.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor);\n const colorMSAATextureView = gpuMSAATexture?.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor);\n const isRTInteger = internalTexture.type === 7 || internalTexture.type === 5;\n colorAttachments.push({\n view: colorMSAATextureView ? colorMSAATextureView : colorTextureView,\n resolveTarget: gpuMSAATexture ? colorTextureView : undefined,\n depthSlice,\n clearValue: mustClearColor ? (isRTInteger ? clearColorForIntegerRT : clearColor) : undefined,\n loadOp: mustClearColor ? \"clear\" /* WebGPUConstants.LoadOp.Clear */ : \"load\" /* WebGPUConstants.LoadOp.Load */,\n storeOp: \"store\" /* WebGPUConstants.StoreOp.Store */,\n });\n }\n else {\n colorAttachments.push(null);\n }\n }\n this._debugPushGroup?.(\"render target pass\" + (renderTargetWrapper.label ? \" (\" + renderTargetWrapper.label + \")\" : \"\"), 0);\n this._rttRenderPassWrapper.renderPassDescriptor = {\n label: (renderTargetWrapper.label ?? \"RTT\") + \" - RenderPass\",\n colorAttachments,\n depthStencilAttachment: depthStencilTexture && gpuDepthStencilTexture\n ? {\n view: depthMSAATextureView ? depthMSAATextureView : depthTextureView,\n depthClearValue: mustClearDepth ? (this.useReverseDepthBuffer ? this._clearReverseDepthValue : this._clearDepthValue) : undefined,\n depthLoadOp: mustClearDepth ? \"clear\" /* WebGPUConstants.LoadOp.Clear */ : \"load\" /* WebGPUConstants.LoadOp.Load */,\n depthStoreOp: \"store\" /* WebGPUConstants.StoreOp.Store */,\n stencilClearValue: rtWrapper._depthStencilTextureWithStencil && mustClearStencil ? this._clearStencilValue : undefined,\n stencilLoadOp: !depthTextureHasStencil\n ? undefined\n : rtWrapper._depthStencilTextureWithStencil && mustClearStencil\n ? \"clear\" /* WebGPUConstants.LoadOp.Clear */\n : \"load\" /* WebGPUConstants.LoadOp.Load */,\n stencilStoreOp: !depthTextureHasStencil ? undefined : \"store\" /* WebGPUConstants.StoreOp.Store */,\n }\n : undefined,\n occlusionQuerySet: this._occlusionQuery?.hasQueries ? this._occlusionQuery.querySet : undefined,\n };\n this._timestampQuery.startPass(this._rttRenderPassWrapper.renderPassDescriptor, this._timestampIndex);\n this._currentRenderPass = this._renderEncoder.beginRenderPass(this._rttRenderPassWrapper.renderPassDescriptor);\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {\n const internalTexture = rtWrapper.texture;\n Logger.Log([\n \"frame #\" +\n this._count +\n \" - render target begin pass - rtt name=\" +\n renderTargetWrapper.label +\n \", internalTexture.uniqueId=\" +\n internalTexture.uniqueId +\n \", width=\" +\n internalTexture.width +\n \", height=\" +\n internalTexture.height +\n \", setClearStates=\" +\n setClearStates,\n \"renderPassDescriptor=\",\n this._rttRenderPassWrapper.renderPassDescriptor,\n ]);\n }\n }\n this._debugFlushPendingCommands?.();\n this._resetRenderPassStates();\n if (!gpuDepthStencilWrapper || !WebGPUTextureHelper.HasStencilAspect(gpuDepthStencilWrapper.format)) {\n this._stencilStateComposer.enabled = false;\n }\n }\n _startMainRenderPass(setClearStates, clearColor, clearDepth, clearStencil) {\n this._endCurrentRenderPass();\n if (this.useReverseDepthBuffer) {\n this.setDepthFunctionToGreaterOrEqual();\n }\n const mustClearColor = setClearStates && clearColor;\n const mustClearDepth = setClearStates && clearDepth;\n const mustClearStencil = setClearStates && clearStencil;\n this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].clearValue = mustClearColor ? clearColor : undefined;\n this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].loadOp = mustClearColor ? \"clear\" /* WebGPUConstants.LoadOp.Clear */ : \"load\" /* WebGPUConstants.LoadOp.Load */;\n this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.depthClearValue = mustClearDepth\n ? this.useReverseDepthBuffer\n ? this._clearReverseDepthValue\n : this._clearDepthValue\n : undefined;\n this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.depthLoadOp = mustClearDepth ? \"clear\" /* WebGPUConstants.LoadOp.Clear */ : \"load\" /* WebGPUConstants.LoadOp.Load */;\n this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.stencilClearValue = mustClearStencil ? this._clearStencilValue : undefined;\n this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.stencilLoadOp = !this.isStencilEnable\n ? undefined\n : mustClearStencil\n ? \"clear\" /* WebGPUConstants.LoadOp.Clear */\n : \"load\" /* WebGPUConstants.LoadOp.Load */;\n this._mainRenderPassWrapper.renderPassDescriptor.occlusionQuerySet = this._occlusionQuery?.hasQueries ? this._occlusionQuery.querySet : undefined;\n const swapChainTexture = this._context.getCurrentTexture();\n this._mainRenderPassWrapper.colorAttachmentGPUTextures[0].set(swapChainTexture);\n // Resolve in case of MSAA\n if (this._options.antialias) {\n viewDescriptorSwapChainAntialiasing.format = swapChainTexture.format;\n this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].resolveTarget = swapChainTexture.createView(viewDescriptorSwapChainAntialiasing);\n }\n else {\n viewDescriptorSwapChain.format = swapChainTexture.format;\n this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].view = swapChainTexture.createView(viewDescriptorSwapChain);\n }\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {\n Logger.Log([\n \"frame #\" + this._count + \" - main begin pass - texture width=\" + this._mainTextureExtends.width,\n \" height=\" + this._mainTextureExtends.height + \", setClearStates=\" + setClearStates,\n \"renderPassDescriptor=\",\n this._mainRenderPassWrapper.renderPassDescriptor,\n ]);\n }\n }\n this._debugPushGroup?.(\"main pass\", 0);\n this._timestampQuery.startPass(this._mainRenderPassWrapper.renderPassDescriptor, this._timestampIndex);\n this._currentRenderPass = this._renderEncoder.beginRenderPass(this._mainRenderPassWrapper.renderPassDescriptor);\n this._setDepthTextureFormat(this._mainRenderPassWrapper);\n this._setColorFormat(this._mainRenderPassWrapper);\n this._debugFlushPendingCommands?.();\n this._resetRenderPassStates();\n if (!this._isStencilEnable) {\n this._stencilStateComposer.enabled = false;\n }\n }\n /**\n * Binds the frame buffer to the specified texture.\n * @param texture The render target wrapper to render to\n * @param faceIndex The face of the texture to render to in case of cube texture\n * @param requiredWidth The width of the target to render to\n * @param requiredHeight The height of the target to render to\n * @param forceFullscreenViewport Forces the viewport to be the entire texture/screen if true\n * @param lodLevel defines the lod level to bind to the frame buffer\n * @param layer defines the 2d array index to bind to frame buffer to\n */\n bindFramebuffer(texture, faceIndex = 0, requiredWidth, requiredHeight, forceFullscreenViewport, lodLevel = 0, layer = 0) {\n const hardwareTexture = texture.texture?._hardwareTexture;\n if (this._currentRenderTarget) {\n this.unBindFramebuffer(this._currentRenderTarget);\n }\n else {\n this._endCurrentRenderPass();\n }\n this._currentRenderTarget = texture;\n const depthStencilTexture = this._currentRenderTarget._depthStencilTexture;\n this._rttRenderPassWrapper.colorAttachmentGPUTextures[0] = hardwareTexture;\n this._rttRenderPassWrapper.depthTextureFormat = depthStencilTexture ? WebGPUTextureHelper.GetWebGPUTextureFormat(-1, depthStencilTexture.format) : undefined;\n this._setDepthTextureFormat(this._rttRenderPassWrapper);\n this._setColorFormat(this._rttRenderPassWrapper);\n this._rttRenderPassWrapper.colorAttachmentViewDescriptor = {\n format: this._colorFormat,\n dimension: texture.is3D ? \"3d\" /* WebGPUConstants.TextureViewDimension.E3d */ : \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n mipLevelCount: 1,\n baseArrayLayer: texture.isCube ? layer * 6 + faceIndex : layer,\n baseMipLevel: lodLevel,\n arrayLayerCount: 1,\n aspect: \"all\" /* WebGPUConstants.TextureAspect.All */,\n };\n this._rttRenderPassWrapper.depthAttachmentViewDescriptor = {\n format: this._depthTextureFormat,\n dimension: depthStencilTexture && depthStencilTexture.is3D ? \"3d\" /* WebGPUConstants.TextureViewDimension.E3d */ : \"2d\" /* WebGPUConstants.TextureViewDimension.E2d */,\n mipLevelCount: 1,\n baseArrayLayer: depthStencilTexture ? (depthStencilTexture.isCube ? layer * 6 + faceIndex : layer) : 0,\n baseMipLevel: 0,\n arrayLayerCount: 1,\n aspect: \"all\" /* WebGPUConstants.TextureAspect.All */,\n };\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {\n Logger.Log([\n \"frame #\" +\n this._count +\n \" - bindFramebuffer - rtt name=\" +\n texture.label +\n \", internalTexture.uniqueId=\" +\n texture.texture?.uniqueId +\n \", face=\" +\n faceIndex +\n \", lodLevel=\" +\n lodLevel +\n \", layer=\" +\n layer,\n \"colorAttachmentViewDescriptor=\",\n this._rttRenderPassWrapper.colorAttachmentViewDescriptor,\n \"depthAttachmentViewDescriptor=\",\n this._rttRenderPassWrapper.depthAttachmentViewDescriptor,\n ]);\n }\n }\n // We don't create the render pass just now, we do a lazy creation of the render pass, hoping the render pass will be created by a call to clear()...\n if (this._cachedViewport && !forceFullscreenViewport) {\n this.setViewport(this._cachedViewport, requiredWidth, requiredHeight);\n }\n else {\n if (!requiredWidth) {\n requiredWidth = texture.width;\n if (lodLevel) {\n requiredWidth = requiredWidth / Math.pow(2, lodLevel);\n }\n }\n if (!requiredHeight) {\n requiredHeight = texture.height;\n if (lodLevel) {\n requiredHeight = requiredHeight / Math.pow(2, lodLevel);\n }\n }\n this._viewport(0, 0, requiredWidth, requiredHeight);\n }\n this.wipeCaches();\n }\n /**\n * Unbind the current render target texture from the WebGPU context\n * @param texture defines the render target wrapper to unbind\n * @param disableGenerateMipMaps defines a boolean indicating that mipmaps must not be generated\n * @param onBeforeUnbind defines a function which will be called before the effective unbind\n */\n unBindFramebuffer(texture, disableGenerateMipMaps = false, onBeforeUnbind) {\n const saveCRT = this._currentRenderTarget;\n this._currentRenderTarget = null; // to be iso with abstractEngine, this._currentRenderTarget must be null when onBeforeUnbind is called\n if (onBeforeUnbind) {\n onBeforeUnbind();\n }\n this._currentRenderTarget = saveCRT;\n this._endCurrentRenderPass();\n if (texture.texture?.generateMipMaps && !disableGenerateMipMaps && !texture.isCube) {\n this._generateMipmaps(texture.texture);\n }\n this._currentRenderTarget = null;\n if (this.dbgVerboseLogsForFirstFrames) {\n if (this._count === undefined) {\n this._count = 0;\n }\n if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {\n Logger.Log(\"frame #\" + this._count + \" - unBindFramebuffer - rtt name=\" + texture.label + \", internalTexture.uniqueId=\", texture.texture?.uniqueId);\n }\n }\n this._mrtAttachments = [];\n this._cacheRenderPipeline.setMRT([]);\n this._cacheRenderPipeline.setMRTAttachments(this._mrtAttachments);\n }\n /**\n * Unbind the current render target and bind the default framebuffer\n */\n restoreDefaultFramebuffer() {\n if (this._currentRenderTarget) {\n this.unBindFramebuffer(this._currentRenderTarget);\n }\n else if (!this._currentRenderPass) {\n this._startMainRenderPass(false);\n }\n if (this._cachedViewport) {\n this.setViewport(this._cachedViewport);\n }\n this.wipeCaches();\n }\n //------------------------------------------------------------------------------\n // Render\n //------------------------------------------------------------------------------\n /**\n * @internal\n */\n _setColorFormat(wrapper) {\n const format = wrapper.colorAttachmentGPUTextures[0]?.format ?? null;\n this._cacheRenderPipeline.setColorFormat(format);\n if (this._colorFormat === format) {\n return;\n }\n this._colorFormat = format;\n }\n /**\n * @internal\n */\n _setDepthTextureFormat(wrapper) {\n this._cacheRenderPipeline.setDepthStencilFormat(wrapper.depthTextureFormat);\n if (this._depthTextureFormat === wrapper.depthTextureFormat) {\n return;\n }\n this._depthTextureFormat = wrapper.depthTextureFormat;\n }\n setDitheringState() {\n // Does not exist in WebGPU\n }\n setRasterizerState() {\n // Does not exist in WebGPU\n }\n /**\n * @internal\n */\n _executeWhenRenderingStateIsCompiled(pipelineContext, action) {\n // No parallel shader compilation.\n // No Async, so direct launch\n action();\n }\n /**\n * @internal\n */\n bindSamplers() { }\n /** @internal */\n _getUnpackAlignement() {\n return 1;\n }\n /**\n * @internal\n */\n _bindTextureDirectly() {\n return false;\n }\n /**\n * Set various states to the webGL context\n * @param culling defines culling state: true to enable culling, false to disable it\n * @param zOffset defines the value to apply to zOffset (0 by default)\n * @param force defines if states must be applied even if cache is up to date\n * @param reverseSide defines if culling must be reversed (CCW if false, CW if true)\n * @param cullBackFaces true to cull back faces, false to cull front faces (if culling is enabled)\n * @param stencil stencil states to set\n * @param zOffsetUnits defines the value to apply to zOffsetUnits (0 by default)\n */\n setState(culling, zOffset = 0, force, reverseSide = false, cullBackFaces, stencil, zOffsetUnits = 0) {\n // Culling\n if (this._depthCullingState.cull !== culling || force) {\n this._depthCullingState.cull = culling;\n }\n // Cull face\n const cullFace = (this.cullBackFaces ?? cullBackFaces ?? true) ? 1 : 2;\n if (this._depthCullingState.cullFace !== cullFace || force) {\n this._depthCullingState.cullFace = cullFace;\n }\n // Z offset\n this.setZOffset(zOffset);\n this.setZOffsetUnits(zOffsetUnits);\n // Front face\n const frontFace = reverseSide ? (this._currentRenderTarget ? 1 : 2) : this._currentRenderTarget ? 2 : 1;\n if (this._depthCullingState.frontFace !== frontFace || force) {\n this._depthCullingState.frontFace = frontFace;\n }\n this._stencilStateComposer.stencilMaterial = stencil;\n }\n _applyRenderPassChanges(bundleList) {\n const mustUpdateStencilRef = !this._stencilStateComposer.enabled ? false : this._mustUpdateStencilRef();\n const mustUpdateBlendColor = !this._alphaState.alphaBlend ? false : this._mustUpdateBlendColor();\n if (this._mustUpdateViewport()) {\n this._applyViewport(bundleList);\n }\n if (this._mustUpdateScissor()) {\n this._applyScissor(bundleList);\n }\n if (mustUpdateStencilRef) {\n this._applyStencilRef(bundleList);\n }\n if (mustUpdateBlendColor) {\n this._applyBlendColor(bundleList);\n }\n }\n _draw(drawType, fillMode, start, count, instancesCount) {\n const renderPass = this._getCurrentRenderPass();\n const bundleList = this._bundleList;\n this.applyStates();\n const webgpuPipelineContext = this._currentEffect._pipelineContext;\n this.bindUniformBufferBase(this._currentRenderTarget ? this._ubInvertY : this._ubDontInvertY, 0, WebGPUShaderProcessor.InternalsUBOName);\n if (webgpuPipelineContext.uniformBuffer) {\n webgpuPipelineContext.uniformBuffer.update();\n this.bindUniformBufferBase(webgpuPipelineContext.uniformBuffer.getBuffer(), 0, WebGPUShaderProcessor.LeftOvertUBOName);\n }\n if (this._snapshotRendering.play) {\n this._reportDrawCall();\n return;\n }\n if (!this.compatibilityMode &&\n (this._currentDrawContext.isDirty(this._currentMaterialContext.updateId) || this._currentMaterialContext.isDirty || this._currentMaterialContext.forceBindGroupCreation)) {\n this._currentDrawContext.fastBundle = undefined;\n }\n const useFastPath = !this.compatibilityMode && this._currentDrawContext.fastBundle;\n let renderPass2 = renderPass;\n if (useFastPath || this._snapshotRendering.record) {\n this._applyRenderPassChanges(bundleList);\n if (!this._snapshotRendering.record) {\n this._counters.numBundleReuseNonCompatMode++;\n if (this._currentDrawContext.indirectDrawBuffer) {\n this._currentDrawContext.setIndirectData(count, instancesCount || 1, start);\n }\n bundleList.addBundle(this._currentDrawContext.fastBundle);\n this._reportDrawCall();\n return;\n }\n renderPass2 = bundleList.getBundleEncoder(this._cacheRenderPipeline.colorFormats, this._depthTextureFormat, this.currentSampleCount); // for snapshot recording mode\n bundleList.numDrawCalls++;\n }\n let textureState = 0;\n if (this._currentMaterialContext.hasFloatOrDepthTextures) {\n let bitVal = 1;\n for (let i = 0; i < webgpuPipelineContext.shaderProcessingContext.textureNames.length; ++i) {\n const textureName = webgpuPipelineContext.shaderProcessingContext.textureNames[i];\n const texture = this._currentMaterialContext.textures[textureName]?.texture;\n const textureIsDepth = texture && texture.format >= 13 && texture.format <= 18;\n if ((texture?.type === 1 && !this._caps.textureFloatLinearFiltering) || textureIsDepth) {\n textureState |= bitVal;\n }\n bitVal = bitVal << 1;\n }\n }\n this._currentMaterialContext.textureState = textureState;\n const pipeline = this._cacheRenderPipeline.getRenderPipeline(fillMode, this._currentEffect, this.currentSampleCount, textureState);\n const bindGroups = this._cacheBindGroups.getBindGroups(webgpuPipelineContext, this._currentDrawContext, this._currentMaterialContext);\n if (!this._snapshotRendering.record) {\n this._applyRenderPassChanges(!this.compatibilityMode ? bundleList : null);\n if (!this.compatibilityMode) {\n this._counters.numBundleCreationNonCompatMode++;\n renderPass2 = this._device.createRenderBundleEncoder({\n colorFormats: this._cacheRenderPipeline.colorFormats,\n depthStencilFormat: this._depthTextureFormat,\n sampleCount: WebGPUTextureHelper.GetSample(this.currentSampleCount),\n });\n }\n }\n // bind pipeline\n renderPass2.setPipeline(pipeline);\n // bind index/vertex buffers\n if (this._currentIndexBuffer) {\n renderPass2.setIndexBuffer(this._currentIndexBuffer.underlyingResource, this._currentIndexBuffer.is32Bits ? \"uint32\" /* WebGPUConstants.IndexFormat.Uint32 */ : \"uint16\" /* WebGPUConstants.IndexFormat.Uint16 */, 0);\n }\n const vertexBuffers = this._cacheRenderPipeline.vertexBuffers;\n for (let index = 0; index < vertexBuffers.length; index++) {\n const vertexBuffer = vertexBuffers[index];\n const buffer = vertexBuffer.effectiveBuffer;\n if (buffer) {\n renderPass2.setVertexBuffer(index, buffer.underlyingResource, vertexBuffer._validOffsetRange ? 0 : vertexBuffer.byteOffset);\n }\n }\n // bind bind groups\n for (let i = 0; i < bindGroups.length; i++) {\n renderPass2.setBindGroup(i, bindGroups[i]);\n }\n // draw\n const nonCompatMode = !this.compatibilityMode && !this._snapshotRendering.record;\n if (nonCompatMode && this._currentDrawContext.indirectDrawBuffer) {\n this._currentDrawContext.setIndirectData(count, instancesCount || 1, start);\n if (drawType === 0) {\n renderPass2.drawIndexedIndirect(this._currentDrawContext.indirectDrawBuffer, 0);\n }\n else {\n renderPass2.drawIndirect(this._currentDrawContext.indirectDrawBuffer, 0);\n }\n }\n else if (drawType === 0) {\n renderPass2.drawIndexed(count, instancesCount || 1, start, 0, 0);\n }\n else {\n renderPass2.draw(count, instancesCount || 1, start, 0);\n }\n if (nonCompatMode) {\n this._currentDrawContext.fastBundle = renderPass2.finish();\n bundleList.addBundle(this._currentDrawContext.fastBundle);\n }\n this._reportDrawCall();\n }\n /**\n * Draw a list of indexed primitives\n * @param fillMode defines the primitive to use\n * @param indexStart defines the starting index\n * @param indexCount defines the number of index to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n drawElementsType(fillMode, indexStart, indexCount, instancesCount = 1) {\n this._draw(0, fillMode, indexStart, indexCount, instancesCount);\n }\n /**\n * Draw a list of unindexed primitives\n * @param fillMode defines the primitive to use\n * @param verticesStart defines the index of first vertex to draw\n * @param verticesCount defines the count of vertices to draw\n * @param instancesCount defines the number of instances to draw (if instantiation is enabled)\n */\n drawArraysType(fillMode, verticesStart, verticesCount, instancesCount = 1) {\n this._currentIndexBuffer = null;\n this._draw(1, fillMode, verticesStart, verticesCount, instancesCount);\n }\n //------------------------------------------------------------------------------\n // Dispose\n //------------------------------------------------------------------------------\n /**\n * Dispose and release all associated resources\n */\n dispose() {\n this._isDisposed = true;\n this.hideLoadingUI();\n this._timestampQuery.dispose();\n this._mainTexture?.destroy();\n this._depthTexture?.destroy();\n this._textureHelper.destroyDeferredTextures();\n this._bufferManager.destroyDeferredBuffers();\n this._device.destroy();\n _CommonDispose(this, this._renderingCanvas);\n super.dispose();\n }\n //------------------------------------------------------------------------------\n // Misc\n //------------------------------------------------------------------------------\n /**\n * Gets the current render width\n * @param useScreen defines if screen size must be used (or the current render target if any)\n * @returns a number defining the current render width\n */\n getRenderWidth(useScreen = false) {\n if (!useScreen && this._currentRenderTarget) {\n return this._currentRenderTarget.width;\n }\n return this._renderingCanvas?.width ?? 0;\n }\n /**\n * Gets the current render height\n * @param useScreen defines if screen size must be used (or the current render target if any)\n * @returns a number defining the current render height\n */\n getRenderHeight(useScreen = false) {\n if (!useScreen && this._currentRenderTarget) {\n return this._currentRenderTarget.height;\n }\n return this._renderingCanvas?.height ?? 0;\n }\n //------------------------------------------------------------------------------\n // Errors\n //------------------------------------------------------------------------------\n /**\n * Get the current error code of the WebGPU context\n * @returns the error code\n */\n getError() {\n // TODO WEBGPU. from the webgpu errors.\n return 0;\n }\n //------------------------------------------------------------------------------\n // External Textures\n //------------------------------------------------------------------------------\n /**\n * Creates an external texture\n * @param video video element\n * @returns the external texture, or null if external textures are not supported by the engine\n */\n createExternalTexture(video) {\n const texture = new WebGPUExternalTexture(video);\n return texture;\n }\n /**\n * Sets an internal texture to the according uniform.\n * @param name The name of the uniform in the effect\n * @param texture The texture to apply\n */\n setExternalTexture(name, texture) {\n if (!texture) {\n this._currentMaterialContext.setTexture(name, null);\n return;\n }\n this._setInternalTexture(name, texture);\n }\n //------------------------------------------------------------------------------\n // Samplers\n //------------------------------------------------------------------------------\n /**\n * Sets a texture sampler to the according uniform.\n * @param name The name of the uniform in the effect\n * @param sampler The sampler to apply\n */\n setTextureSampler(name, sampler) {\n this._currentMaterialContext?.setSampler(name, sampler);\n }\n //------------------------------------------------------------------------------\n // Storage Buffers\n //------------------------------------------------------------------------------\n /**\n * Creates a storage buffer\n * @param data the data for the storage buffer or the size of the buffer\n * @param creationFlags flags to use when creating the buffer (see undefined). The BUFFER_CREATIONFLAG_STORAGE flag will be automatically added\n * @param label defines the label of the buffer (for debug purpose)\n * @returns the new buffer\n */\n createStorageBuffer(data, creationFlags, label) {\n return this._createBuffer(data, creationFlags | 32, label);\n }\n /**\n * Updates a storage buffer\n * @param buffer the storage buffer to update\n * @param data the data used to update the storage buffer\n * @param byteOffset the byte offset of the data\n * @param byteLength the byte length of the data\n */\n updateStorageBuffer(buffer, data, byteOffset, byteLength) {\n const dataBuffer = buffer;\n if (byteOffset === undefined) {\n byteOffset = 0;\n }\n let view;\n if (byteLength === undefined) {\n if (data instanceof Array) {\n view = new Float32Array(data);\n }\n else if (data instanceof ArrayBuffer) {\n view = new Uint8Array(data);\n }\n else {\n view = data;\n }\n byteLength = view.byteLength;\n }\n else {\n if (data instanceof Array) {\n view = new Float32Array(data);\n }\n else if (data instanceof ArrayBuffer) {\n view = new Uint8Array(data);\n }\n else {\n view = data;\n }\n }\n this._bufferManager.setSubData(dataBuffer, byteOffset, view, 0, byteLength);\n }\n _readFromGPUBuffer(gpuBuffer, size, buffer, noDelay) {\n return new Promise((resolve, reject) => {\n const readFromBuffer = () => {\n gpuBuffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */, 0, size).then(() => {\n const copyArrayBuffer = gpuBuffer.getMappedRange(0, size);\n let data = buffer;\n if (data === undefined) {\n data = new Uint8Array(size);\n data.set(new Uint8Array(copyArrayBuffer));\n }\n else {\n const ctor = data.constructor; // we want to create result data with the same type as buffer (Uint8Array, Float32Array, ...)\n data = new ctor(data.buffer);\n data.set(new ctor(copyArrayBuffer));\n }\n gpuBuffer.unmap();\n this._bufferManager.releaseBuffer(gpuBuffer);\n resolve(data);\n }, (reason) => {\n if (this.isDisposed) {\n resolve(new Uint8Array());\n }\n else {\n reject(reason);\n }\n });\n };\n if (noDelay) {\n this.flushFramebuffer();\n readFromBuffer();\n }\n else {\n // we are using onEndFrameObservable because we need to map the gpuBuffer AFTER the command buffers\n // have been submitted, else we get the error: \"Buffer used in a submit while mapped\"\n this.onEndFrameObservable.addOnce(() => {\n readFromBuffer();\n });\n }\n });\n }\n /**\n * Read data from a storage buffer\n * @param storageBuffer The storage buffer to read from\n * @param offset The offset in the storage buffer to start reading from (default: 0)\n * @param size The number of bytes to read from the storage buffer (default: capacity of the buffer)\n * @param buffer The buffer to write the data we have read from the storage buffer to (optional)\n * @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately and not in engine.onEndFrameObservable. This can speed up data retrieval, at the cost of a small perf penalty (default: false).\n * @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer\n */\n readFromStorageBuffer(storageBuffer, offset, size, buffer, noDelay) {\n size = size || storageBuffer.capacity;\n const gpuBuffer = this._bufferManager.createRawBuffer(size, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, \"TempReadFromStorageBuffer\");\n this._renderEncoder.copyBufferToBuffer(storageBuffer.underlyingResource, offset ?? 0, gpuBuffer, 0, size);\n return this._readFromGPUBuffer(gpuBuffer, size, buffer, noDelay);\n }\n /**\n * Read data from multiple storage buffers\n * @param storageBuffers The list of storage buffers to read from\n * @param offset The offset in the storage buffer to start reading from (default: 0). This is the same offset for all storage buffers!\n * @param size The number of bytes to read from each storage buffer (default: capacity of the first buffer)\n * @param buffer The buffer to write the data we have read from the storage buffers to (optional). If provided, the buffer should be large enough to hold the data from all storage buffers!\n * @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately and not in engine.onEndFrameObservable. This can speed up data retrieval, at the cost of a small perf penalty (default: false).\n * @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer\n */\n readFromMultipleStorageBuffers(storageBuffers, offset, size, buffer, noDelay) {\n size = size || storageBuffers[0].capacity;\n const gpuBuffer = this._bufferManager.createRawBuffer(size * storageBuffers.length, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, \"TempReadFromMultipleStorageBuffers\");\n for (let i = 0; i < storageBuffers.length; i++) {\n this._renderEncoder.copyBufferToBuffer(storageBuffers[i].underlyingResource, offset ?? 0, gpuBuffer, i * size, size);\n }\n return this._readFromGPUBuffer(gpuBuffer, size * storageBuffers.length, buffer, noDelay);\n }\n /**\n * Sets a storage buffer in the shader\n * @param name Defines the name of the storage buffer as defined in the shader\n * @param buffer Defines the value to give to the uniform\n */\n setStorageBuffer(name, buffer) {\n this._currentDrawContext?.setBuffer(name, buffer?.getBuffer() ?? null);\n }\n}\n// Default glslang options.\nWebGPUEngine._GlslangDefaultOptions = {\n jsPath: `${Tools._DefaultCdnUrl}/glslang/glslang.js`,\n wasmPath: `${Tools._DefaultCdnUrl}/glslang/glslang.wasm`,\n};\nWebGPUEngine._InstanceId = 0;\n","import { Logger } from \"../../Misc/logger.js\";\n/** @internal */\nexport class WebGPUComputeContext {\n getBindGroups(bindings, computePipeline, bindingsMapping) {\n if (!bindingsMapping) {\n throw new Error(\"WebGPUComputeContext.getBindGroups: bindingsMapping is required until browsers support reflection for wgsl shaders!\");\n }\n if (this._bindGroups.length === 0) {\n const bindGroupEntriesExist = this._bindGroupEntries.length > 0;\n for (const key in bindings) {\n const binding = bindings[key], location = bindingsMapping[key], group = location.group, index = location.binding, type = binding.type, object = binding.object;\n let indexInGroupEntries = binding.indexInGroupEntries;\n let entries = this._bindGroupEntries[group];\n if (!entries) {\n entries = this._bindGroupEntries[group] = [];\n }\n switch (type) {\n case 5 /* ComputeBindingType.Sampler */: {\n const sampler = object;\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\n entries[indexInGroupEntries].resource = this._cacheSampler.getSampler(sampler);\n }\n else {\n binding.indexInGroupEntries = entries.length;\n entries.push({\n binding: index,\n resource: this._cacheSampler.getSampler(sampler),\n });\n }\n break;\n }\n case 0 /* ComputeBindingType.Texture */:\n case 4 /* ComputeBindingType.TextureWithoutSampler */: {\n const texture = object;\n const hardwareTexture = texture._texture._hardwareTexture;\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\n if (type === 0 /* ComputeBindingType.Texture */) {\n entries[indexInGroupEntries++].resource = this._cacheSampler.getSampler(texture._texture);\n }\n entries[indexInGroupEntries].resource = hardwareTexture.view;\n }\n else {\n binding.indexInGroupEntries = entries.length;\n if (type === 0 /* ComputeBindingType.Texture */) {\n entries.push({\n binding: index - 1,\n resource: this._cacheSampler.getSampler(texture._texture),\n });\n }\n entries.push({\n binding: index,\n resource: hardwareTexture.view,\n });\n }\n break;\n }\n case 1 /* ComputeBindingType.StorageTexture */: {\n const texture = object;\n const hardwareTexture = texture._texture._hardwareTexture;\n if ((hardwareTexture.textureAdditionalUsages & 8 /* WebGPUConstants.TextureUsage.StorageBinding */) === 0) {\n Logger.Error(`computeDispatch: The texture (name=${texture.name}, uniqueId=${texture.uniqueId}) is not a storage texture!`, 50);\n }\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\n entries[indexInGroupEntries].resource = hardwareTexture.viewForWriting;\n }\n else {\n binding.indexInGroupEntries = entries.length;\n entries.push({\n binding: index,\n resource: hardwareTexture.viewForWriting,\n });\n }\n break;\n }\n case 6 /* ComputeBindingType.ExternalTexture */: {\n const texture = object;\n const externalTexture = texture.underlyingResource;\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\n entries[indexInGroupEntries].resource = this._device.importExternalTexture({ source: externalTexture });\n }\n else {\n binding.indexInGroupEntries = entries.length;\n entries.push({\n binding: index,\n resource: this._device.importExternalTexture({ source: externalTexture }),\n });\n }\n break;\n }\n case 2 /* ComputeBindingType.UniformBuffer */:\n case 3 /* ComputeBindingType.StorageBuffer */:\n case 7 /* ComputeBindingType.DataBuffer */: {\n const dataBuffer = type === 7 /* ComputeBindingType.DataBuffer */\n ? object\n : type === 2 /* ComputeBindingType.UniformBuffer */\n ? object.getBuffer()\n : object.getBuffer();\n const webgpuBuffer = dataBuffer.underlyingResource;\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\n entries[indexInGroupEntries].resource.buffer = webgpuBuffer;\n entries[indexInGroupEntries].resource.size = dataBuffer.capacity;\n }\n else {\n binding.indexInGroupEntries = entries.length;\n entries.push({\n binding: index,\n resource: {\n buffer: webgpuBuffer,\n offset: 0,\n size: dataBuffer.capacity,\n },\n });\n }\n break;\n }\n }\n }\n for (let i = 0; i < this._bindGroupEntries.length; ++i) {\n const entries = this._bindGroupEntries[i];\n if (!entries) {\n this._bindGroups[i] = undefined;\n continue;\n }\n this._bindGroups[i] = this._device.createBindGroup({\n layout: computePipeline.getBindGroupLayout(i),\n entries,\n });\n }\n this._bindGroups.length = this._bindGroupEntries.length;\n }\n return this._bindGroups;\n }\n constructor(device, cacheSampler) {\n this._device = device;\n this._cacheSampler = cacheSampler;\n this.uniqueId = WebGPUComputeContext._Counter++;\n this._bindGroupEntries = [];\n this.clear();\n }\n clear() {\n this._bindGroups = [];\n // Don't reset _bindGroupEntries if they have already been created, they are still ok even if we have to clear _bindGroups (the layout of the compute shader can't change once created)\n }\n}\nWebGPUComputeContext._Counter = 0;\n","/** @internal */\nexport class WebGPUComputePipelineContext {\n get isAsync() {\n return false;\n }\n get isReady() {\n if (this.isAsync) {\n // When async mode is implemented, this should return true if the pipeline is ready\n return false;\n }\n // In synchronous mode, we return false, the readiness being determined by ComputeEffect\n return false;\n }\n constructor(engine) {\n this._name = \"unnamed\";\n this.engine = engine;\n }\n _getComputeShaderCode() {\n return this.sources?.compute;\n }\n dispose() { }\n}\n","import { Logger } from \"../../../Misc/logger.js\";\nimport { ComputeEffect } from \"../../../Compute/computeEffect.js\";\nimport { WebGPUEngine } from \"../../webgpuEngine.js\";\nimport { WebGPUComputeContext } from \"../webgpuComputeContext.js\";\nimport { WebGPUComputePipelineContext } from \"../webgpuComputePipelineContext.js\";\nconst computePassDescriptor = {};\nWebGPUEngine.prototype.createComputeContext = function () {\n return new WebGPUComputeContext(this._device, this._cacheSampler);\n};\nWebGPUEngine.prototype.createComputeEffect = function (baseName, options) {\n const compute = typeof baseName === \"string\" ? baseName : baseName.computeToken || baseName.computeSource || baseName.computeElement || baseName.compute;\n const name = compute + \"@\" + options.defines;\n if (this._compiledComputeEffects[name]) {\n const compiledEffect = this._compiledComputeEffects[name];\n if (options.onCompiled && compiledEffect.isReady()) {\n options.onCompiled(compiledEffect);\n }\n return compiledEffect;\n }\n const effect = new ComputeEffect(baseName, options, this, name);\n this._compiledComputeEffects[name] = effect;\n return effect;\n};\nWebGPUEngine.prototype.createComputePipelineContext = function () {\n return new WebGPUComputePipelineContext(this);\n};\nWebGPUEngine.prototype.areAllComputeEffectsReady = function () {\n for (const key in this._compiledComputeEffects) {\n const effect = this._compiledComputeEffects[key];\n if (!effect.isReady()) {\n return false;\n }\n }\n return true;\n};\nWebGPUEngine.prototype.computeDispatch = function (effect, context, bindings, x, y = 1, z = 1, bindingsMapping, gpuPerfCounter) {\n this._computeDispatch(effect, context, bindings, x, y, z, undefined, undefined, bindingsMapping, gpuPerfCounter);\n};\nWebGPUEngine.prototype.computeDispatchIndirect = function (effect, context, bindings, buffer, offset = 0, bindingsMapping, gpuPerfCounter) {\n this._computeDispatch(effect, context, bindings, undefined, undefined, undefined, buffer, offset, bindingsMapping, gpuPerfCounter);\n};\nWebGPUEngine.prototype._computeDispatch = function (effect, context, bindings, x, y, z, buffer, offset, bindingsMapping, gpuPerfCounter) {\n this._endCurrentRenderPass();\n const contextPipeline = effect._pipelineContext;\n const computeContext = context;\n if (!contextPipeline.computePipeline) {\n contextPipeline.computePipeline = this._device.createComputePipeline({\n layout: \"auto\" /* WebGPUConstants.AutoLayoutMode.Auto */,\n compute: contextPipeline.stage,\n });\n }\n if (gpuPerfCounter) {\n this._timestampQuery.startPass(computePassDescriptor, this._timestampIndex);\n }\n const computePass = this._renderEncoder.beginComputePass(computePassDescriptor);\n computePass.setPipeline(contextPipeline.computePipeline);\n const bindGroups = computeContext.getBindGroups(bindings, contextPipeline.computePipeline, bindingsMapping);\n for (let i = 0; i < bindGroups.length; ++i) {\n const bindGroup = bindGroups[i];\n if (!bindGroup) {\n continue;\n }\n computePass.setBindGroup(i, bindGroup);\n }\n if (buffer !== undefined) {\n computePass.dispatchWorkgroupsIndirect(buffer.underlyingResource, offset);\n }\n else {\n if (x + y + z > 0) {\n computePass.dispatchWorkgroups(x, y, z);\n }\n }\n computePass.end();\n if (gpuPerfCounter) {\n this._timestampQuery.endPass(this._timestampIndex, gpuPerfCounter);\n this._timestampIndex += 2;\n }\n};\nWebGPUEngine.prototype.releaseComputeEffects = function () {\n for (const name in this._compiledComputeEffects) {\n const webGPUPipelineContextCompute = this._compiledComputeEffects[name].getPipelineContext();\n this._deleteComputePipelineContext(webGPUPipelineContextCompute);\n }\n this._compiledComputeEffects = {};\n};\nWebGPUEngine.prototype._prepareComputePipelineContext = function (pipelineContext, computeSourceCode, rawComputeSourceCode, defines, entryPoint) {\n const webGpuContext = pipelineContext;\n if (this.dbgShowShaderCode) {\n Logger.Log(defines);\n Logger.Log(computeSourceCode);\n }\n webGpuContext.sources = {\n compute: computeSourceCode,\n rawCompute: rawComputeSourceCode,\n };\n webGpuContext.stage = this._createComputePipelineStageDescriptor(computeSourceCode, defines, entryPoint);\n};\nWebGPUEngine.prototype._releaseComputeEffect = function (effect) {\n if (this._compiledComputeEffects[effect._key]) {\n delete this._compiledComputeEffects[effect._key];\n this._deleteComputePipelineContext(effect.getPipelineContext());\n }\n};\nWebGPUEngine.prototype._rebuildComputeEffects = function () {\n for (const key in this._compiledComputeEffects) {\n const effect = this._compiledComputeEffects[key];\n effect._pipelineContext = null;\n effect._wasPreviouslyReady = false;\n effect._prepareEffect();\n }\n};\nWebGPUEngine.prototype._executeWhenComputeStateIsCompiled = function (pipelineContext, action) {\n pipelineContext.stage.module.getCompilationInfo().then((info) => {\n const compilationMessages = {\n numErrors: 0,\n messages: [],\n };\n for (const message of info.messages) {\n if (message.type === \"error\") {\n compilationMessages.numErrors++;\n }\n compilationMessages.messages.push({\n type: message.type,\n text: message.message,\n line: message.lineNum,\n column: message.linePos,\n length: message.length,\n offset: message.offset,\n });\n }\n action(compilationMessages);\n });\n};\nWebGPUEngine.prototype._deleteComputePipelineContext = function (pipelineContext) {\n const webgpuPipelineContext = pipelineContext;\n if (webgpuPipelineContext) {\n pipelineContext.dispose();\n }\n};\nWebGPUEngine.prototype._createComputePipelineStageDescriptor = function (computeShader, defines, entryPoint) {\n if (defines) {\n defines = \"//\" + defines.split(\"\\n\").join(\"\\n//\") + \"\\n\";\n }\n else {\n defines = \"\";\n }\n return {\n module: this._device.createShaderModule({\n code: defines + computeShader,\n }),\n entryPoint,\n };\n};\n","import { WebGPUEngine } from \"../../webgpuEngine.js\";\nWebGPUEngine.prototype._debugPushGroup = function (groupName, targetObject) {\n if (!this._options.enableGPUDebugMarkers) {\n return;\n }\n if (targetObject === 0 || targetObject === 1) {\n if (targetObject === 1) {\n if (this._currentRenderTarget) {\n this.unBindFramebuffer(this._currentRenderTarget);\n }\n else {\n this._endCurrentRenderPass();\n }\n }\n this._renderEncoder.pushDebugGroup(groupName);\n }\n else if (this._currentRenderPass) {\n this._currentRenderPass.pushDebugGroup(groupName);\n this._debugStackRenderPass.push(groupName);\n }\n else {\n this._pendingDebugCommands.push([\"push\", groupName, targetObject]);\n }\n};\nWebGPUEngine.prototype._debugPopGroup = function (targetObject) {\n if (!this._options.enableGPUDebugMarkers) {\n return;\n }\n if (targetObject === 0 || targetObject === 1) {\n if (targetObject === 1) {\n if (this._currentRenderTarget) {\n this.unBindFramebuffer(this._currentRenderTarget);\n }\n else {\n this._endCurrentRenderPass();\n }\n }\n this._renderEncoder.popDebugGroup();\n }\n else if (this._currentRenderPass) {\n this._currentRenderPass.popDebugGroup();\n this._debugStackRenderPass.pop();\n }\n else {\n this._pendingDebugCommands.push([\"pop\", null, targetObject]);\n }\n};\nWebGPUEngine.prototype._debugInsertMarker = function (text, targetObject) {\n if (!this._options.enableGPUDebugMarkers) {\n return;\n }\n if (targetObject === 0 || targetObject === 1) {\n if (targetObject === 1) {\n if (this._currentRenderTarget) {\n this.unBindFramebuffer(this._currentRenderTarget);\n }\n else {\n this._endCurrentRenderPass();\n }\n }\n this._renderEncoder.insertDebugMarker(text);\n }\n else if (this._currentRenderPass) {\n this._currentRenderPass.insertDebugMarker(text);\n }\n else {\n this._pendingDebugCommands.push([\"insert\", text, targetObject]);\n }\n};\nWebGPUEngine.prototype._debugFlushPendingCommands = function () {\n if (this._debugStackRenderPass.length !== 0) {\n const currentDebugStack = this._debugStackRenderPass.slice();\n this._debugStackRenderPass.length = 0;\n for (let i = 0; i < currentDebugStack.length; ++i) {\n this._debugPushGroup(currentDebugStack[i], 2);\n }\n }\n for (let i = 0; i < this._pendingDebugCommands.length; ++i) {\n const [name, param, targetObject] = this._pendingDebugCommands[i];\n switch (name) {\n case \"push\":\n this._debugPushGroup(param, targetObject);\n break;\n case \"pop\":\n this._debugPopGroup(targetObject);\n break;\n case \"insert\":\n this._debugInsertMarker(param, targetObject);\n break;\n }\n }\n this._pendingDebugCommands.length = 0;\n};\n","import { InternalTexture } from \"../../../Materials/Textures/internalTexture.js\";\nimport { WebGPUEngine } from \"../../webgpuEngine.js\";\nimport { GetExponentOfTwo } from \"../../../Misc/tools.functions.js\";\nWebGPUEngine.prototype.createDynamicTexture = function (width, height, generateMipMaps, samplingMode) {\n const texture = new InternalTexture(this, 4 /* InternalTextureSource.Dynamic */);\n texture.baseWidth = width;\n texture.baseHeight = height;\n if (generateMipMaps) {\n width = this.needPOTTextures ? GetExponentOfTwo(width, this._caps.maxTextureSize) : width;\n height = this.needPOTTextures ? GetExponentOfTwo(height, this._caps.maxTextureSize) : height;\n }\n texture.width = width;\n texture.height = height;\n texture.isReady = false;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n this.updateTextureSamplingMode(samplingMode, texture);\n this._internalTexturesCache.push(texture);\n if (width && height) {\n this._textureHelper.createGPUTextureForInternalTexture(texture, width, height);\n }\n return texture;\n};\nWebGPUEngine.prototype.updateDynamicTexture = function (texture, source, invertY, premulAlpha = false, format, forceBindTexture, allowGPUOptimization) {\n if (!texture) {\n return;\n }\n const width = source.width, height = source.height;\n let gpuTextureWrapper = texture._hardwareTexture;\n if (!texture._hardwareTexture?.underlyingResource) {\n gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, width, height);\n }\n this._textureHelper.updateTexture(source, texture, width, height, texture.depth, gpuTextureWrapper.format, 0, 0, invertY, premulAlpha, 0, 0, allowGPUOptimization);\n if (texture.generateMipMaps) {\n this._generateMipmaps(texture);\n }\n texture._dynamicTextureSource = source;\n texture._premulAlpha = premulAlpha;\n texture.invertY = invertY || false;\n texture.isReady = true;\n};\n","import { InternalTexture } from \"../../../Materials/Textures/internalTexture.js\";\nimport { Logger } from \"../../../Misc/logger.js\";\n\nimport { WebGPUEngine } from \"../../webgpuEngine.js\";\nWebGPUEngine.prototype.unBindMultiColorAttachmentFramebuffer = function (rtWrapper, disableGenerateMipMaps = false, onBeforeUnbind) {\n if (onBeforeUnbind) {\n onBeforeUnbind();\n }\n const attachments = rtWrapper._attachments;\n const count = attachments.length;\n this._endCurrentRenderPass();\n for (let i = 0; i < count; i++) {\n const texture = rtWrapper.textures[i];\n if (texture.generateMipMaps && !disableGenerateMipMaps && !texture.isCube && !texture.is3D) {\n this._generateMipmaps(texture);\n }\n }\n this._currentRenderTarget = null;\n this._mrtAttachments = [];\n this._cacheRenderPipeline.setMRT([]);\n this._cacheRenderPipeline.setMRTAttachments(this._mrtAttachments);\n};\nWebGPUEngine.prototype.createMultipleRenderTarget = function (size, options, initializeBuffers) {\n let generateMipMaps = false;\n let generateDepthBuffer = true;\n let generateStencilBuffer = false;\n let generateDepthTexture = false;\n let depthTextureFormat = 15;\n let textureCount = 1;\n let samples = 1;\n const defaultType = 0;\n const defaultSamplingMode = 3;\n const defaultUseSRGBBuffer = false;\n const defaultFormat = 5;\n const defaultTarget = 3553;\n let types = [];\n let samplingModes = [];\n let useSRGBBuffers = [];\n let formats = [];\n let targets = [];\n let faceIndex = [];\n let layerIndex = [];\n let layers = [];\n let labels = [];\n let creationFlags = [];\n const rtWrapper = this._createHardwareRenderTargetWrapper(true, false, size);\n if (options !== undefined) {\n generateMipMaps = options.generateMipMaps ?? false;\n generateDepthBuffer = options.generateDepthBuffer ?? true;\n generateStencilBuffer = options.generateStencilBuffer ?? false;\n generateDepthTexture = options.generateDepthTexture ?? false;\n textureCount = options.textureCount ?? 1;\n depthTextureFormat = options.depthTextureFormat ?? 15;\n types = options.types || types;\n samplingModes = options.samplingModes || samplingModes;\n useSRGBBuffers = options.useSRGBBuffers || useSRGBBuffers;\n formats = options.formats || formats;\n targets = options.targetTypes || targets;\n faceIndex = options.faceIndex || faceIndex;\n layerIndex = options.layerIndex || layerIndex;\n layers = options.layerCounts || layers;\n labels = options.labels || labels;\n creationFlags = options.creationFlags || creationFlags;\n samples = options.samples ?? samples;\n }\n const width = size.width ?? size;\n const height = size.height ?? size;\n const textures = [];\n const attachments = [];\n const defaultAttachments = [];\n rtWrapper.label = options?.label ?? \"MultiRenderTargetWrapper\";\n rtWrapper._generateDepthBuffer = generateDepthBuffer;\n rtWrapper._generateStencilBuffer = generateStencilBuffer;\n rtWrapper._attachments = attachments;\n rtWrapper._defaultAttachments = defaultAttachments;\n let depthStencilTexture = null;\n if (generateDepthBuffer || generateStencilBuffer || generateDepthTexture) {\n if (!generateDepthTexture) {\n // The caller doesn't want a depth texture, so we are free to use the depth texture format we want.\n // So, we will align with what the WebGL engine does\n if (generateDepthBuffer && generateStencilBuffer) {\n depthTextureFormat = 13;\n }\n else if (generateDepthBuffer) {\n depthTextureFormat = 14;\n }\n else {\n depthTextureFormat = 19;\n }\n }\n depthStencilTexture = rtWrapper.createDepthStencilTexture(0, false, generateStencilBuffer, 1, depthTextureFormat, rtWrapper.label + \"-DepthStencil\");\n }\n const mipmapsCreationOnly = options !== undefined && typeof options === \"object\" && options.createMipMaps && !generateMipMaps;\n for (let i = 0; i < textureCount; i++) {\n let samplingMode = samplingModes[i] || defaultSamplingMode;\n let type = types[i] || defaultType;\n const format = formats[i] || defaultFormat;\n const useSRGBBuffer = (useSRGBBuffers[i] || defaultUseSRGBBuffer) && this._caps.supportSRGBBuffers;\n const target = targets[i] || defaultTarget;\n const layerCount = layers[i] ?? 1;\n const creationFlag = creationFlags[i];\n if (type === 1 && !this._caps.textureFloatLinearFiltering) {\n // if floating point linear (FLOAT) then force to NEAREST_SAMPLINGMODE\n samplingMode = 1;\n }\n else if (type === 2 && !this._caps.textureHalfFloatLinearFiltering) {\n // if floating point linear (HALF_FLOAT) then force to NEAREST_SAMPLINGMODE\n samplingMode = 1;\n }\n if (type === 1 && !this._caps.textureFloat) {\n type = 0;\n Logger.Warn(\"Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type\");\n }\n attachments.push(i + 1);\n defaultAttachments.push(initializeBuffers ? i + 1 : i === 0 ? 1 : 0);\n if (target === -1) {\n continue;\n }\n const texture = new InternalTexture(this, 6 /* InternalTextureSource.MultiRenderTarget */);\n textures[i] = texture;\n switch (target) {\n case 34067:\n texture.isCube = true;\n break;\n case 32879:\n texture.is3D = true;\n texture.baseDepth = texture.depth = layerCount;\n break;\n case 35866:\n texture.is2DArray = true;\n texture.baseDepth = texture.depth = layerCount;\n break;\n }\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.width = width;\n texture.height = height;\n texture.isReady = true;\n texture.samples = 1;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.type = type;\n texture._cachedWrapU = 0;\n texture._cachedWrapV = 0;\n texture._useSRGBBuffer = useSRGBBuffer;\n texture.format = format;\n texture.label = labels[i] ?? rtWrapper.label + \"-Texture\" + i;\n this._internalTexturesCache.push(texture);\n if (mipmapsCreationOnly) {\n // createGPUTextureForInternalTexture will only create a texture with mipmaps if generateMipMaps is true, as InternalTexture has no createMipMaps property, separate from generateMipMaps.\n texture.generateMipMaps = true;\n }\n this._textureHelper.createGPUTextureForInternalTexture(texture, undefined, undefined, undefined, creationFlag, true);\n if (mipmapsCreationOnly) {\n texture.generateMipMaps = false;\n }\n }\n if (depthStencilTexture) {\n depthStencilTexture.incrementReferences();\n textures[textureCount] = depthStencilTexture;\n this._internalTexturesCache.push(depthStencilTexture);\n }\n rtWrapper.setTextures(textures);\n rtWrapper.setLayerAndFaceIndices(layerIndex, faceIndex);\n this.updateMultipleRenderTargetTextureSampleCount(rtWrapper, samples);\n return rtWrapper;\n};\nWebGPUEngine.prototype.updateMultipleRenderTargetTextureSampleCount = function (rtWrapper, samples) {\n if (!rtWrapper || !rtWrapper.textures || rtWrapper.textures[0].samples === samples) {\n return samples;\n }\n const count = rtWrapper.textures.length;\n if (count === 0) {\n return 1;\n }\n samples = Math.min(samples, this.getCaps().maxMSAASamples);\n for (let i = 0; i < count; ++i) {\n const texture = rtWrapper.textures[i];\n const gpuTextureWrapper = texture._hardwareTexture;\n gpuTextureWrapper?.releaseMSAATexture(rtWrapper.getBaseArrayLayer(i));\n }\n // Note that rtWrapper.textures can't have null textures, lastTextureIsDepthTexture can't be true if rtWrapper._depthStencilTexture is null\n const lastTextureIsDepthTexture = rtWrapper._depthStencilTexture === rtWrapper.textures[count - 1];\n for (let i = 0; i < count; ++i) {\n const texture = rtWrapper.textures[i];\n this._textureHelper.createMSAATexture(texture, samples, false, rtWrapper.getBaseArrayLayer(i));\n texture.samples = samples;\n }\n // Note that the last texture of textures is the depth texture if the depth texture has been generated by the MRT class and so the MSAA texture\n // will be recreated for this texture by the loop above: in that case, there's no need to create the MSAA texture for rtWrapper._depthStencilTexture\n // because rtWrapper._depthStencilTexture is the same texture than the depth texture\n if (rtWrapper._depthStencilTexture && !lastTextureIsDepthTexture) {\n this._textureHelper.createMSAATexture(rtWrapper._depthStencilTexture, samples);\n rtWrapper._depthStencilTexture.samples = samples;\n }\n rtWrapper._samples = samples;\n return samples;\n};\nWebGPUEngine.prototype.bindAttachments = function (attachments) {\n if (attachments.length === 0 || !this._currentRenderTarget) {\n return;\n }\n this._mrtAttachments = attachments;\n if (this._currentRenderPass) {\n // the render pass has already been created, we need to call setMRTAttachments to update the state of the attachments\n this._cacheRenderPipeline.setMRTAttachments(attachments);\n }\n else {\n // the render pass is not created yet so we don't need to call setMRTAttachments: it will be called as part of the render pass creation (see WebGPUEngine._startRenderTargetRenderPass)\n }\n};\nWebGPUEngine.prototype.buildTextureLayout = function (textureStatus) {\n const result = [];\n for (let i = 0; i < textureStatus.length; i++) {\n if (textureStatus[i]) {\n result.push(i + 1);\n }\n else {\n result.push(0);\n }\n }\n return result;\n};\nWebGPUEngine.prototype.restoreSingleAttachment = function () {\n // not sure what to do, probably nothing... This function and restoreSingleAttachmentForRenderTarget are not called in Babylon.js so it's hard to know the use case\n};\nWebGPUEngine.prototype.restoreSingleAttachmentForRenderTarget = function () {\n // not sure what to do, probably nothing... This function and restoreSingleAttachment are not called in Babylon.js so it's hard to know the use case\n};\n","import { WebGPUEngine } from \"../../webgpuEngine.js\";\nfunction IsExternalTexture(texture) {\n return texture && texture.underlyingResource !== undefined ? true : false;\n}\nWebGPUEngine.prototype.updateVideoTexture = function (texture, video, invertY) {\n if (!texture || texture._isDisabled) {\n return;\n }\n if (this._videoTextureSupported === undefined) {\n this._videoTextureSupported = true;\n }\n let gpuTextureWrapper = texture._hardwareTexture;\n if (!texture._hardwareTexture?.underlyingResource) {\n gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture);\n }\n if (IsExternalTexture(video)) {\n if (video.isReady()) {\n try {\n this._textureHelper.copyVideoToTexture(video, texture, gpuTextureWrapper.format, !invertY);\n if (texture.generateMipMaps) {\n this._generateMipmaps(texture);\n }\n }\n catch (e) {\n // WebGPU doesn't support video element who are not playing so far\n // Ignore this error ensures we can start a video texture in a paused state\n }\n texture.isReady = true;\n }\n }\n else if (video) {\n this.createImageBitmap(video)\n .then((bitmap) => {\n this._textureHelper.updateTexture(bitmap, texture, texture.width, texture.height, texture.depth, gpuTextureWrapper.format, 0, 0, !invertY, false, 0, 0);\n if (texture.generateMipMaps) {\n this._generateMipmaps(texture);\n }\n texture.isReady = true;\n })\n .catch(() => {\n // Sometimes createImageBitmap(video) fails with \"Failed to execute 'createImageBitmap' on 'Window': The provided element's player has no current data.\"\n // Just keep going on\n texture.isReady = true;\n });\n }\n};\n","import { RichTypeBoolean } from \"../../../flowGraphRichTypes.js\";\nimport { FlowGraphExecutionBlock } from \"../../../flowGraphExecutionBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * @experimental\n * A block that evaluates a condition and executes one of two branches.\n */\nexport class FlowGraphBranchBlock extends FlowGraphExecutionBlock {\n constructor(config) {\n super(config);\n this.condition = this.registerDataInput(\"condition\", RichTypeBoolean);\n this.onTrue = this._registerSignalOutput(\"onTrue\");\n this.onFalse = this._registerSignalOutput(\"onFalse\");\n }\n _execute(context) {\n if (this.condition.getValue(context)) {\n this.onTrue._activateSignal(context);\n }\n else {\n this.onFalse._activateSignal(context);\n }\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGBranchBlock\";\n }\n}\nRegisterClass(\"FGBranchBlock\", FlowGraphBranchBlock);\n","import { FlowGraphExecutionBlockWithOutSignal } from \"../../../flowGraphExecutionBlockWithOutSignal.js\";\nimport { RichTypeNumber } from \"../../../flowGraphRichTypes.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * @experimental\n * Block that executes an action in a loop.\n */\nexport class FlowGraphForLoopBlock extends FlowGraphExecutionBlockWithOutSignal {\n constructor(config) {\n super(config);\n this.startIndex = this.registerDataInput(\"startIndex\", RichTypeNumber);\n this.endIndex = this.registerDataInput(\"endIndex\", RichTypeNumber);\n this.step = this.registerDataInput(\"step\", RichTypeNumber);\n this.index = this.registerDataOutput(\"index\", RichTypeNumber);\n this.onLoop = this._registerSignalOutput(\"onLoop\");\n }\n _executeLoop(context) {\n let index = context._getExecutionVariable(this, \"index\");\n const endIndex = context._getExecutionVariable(this, \"endIndex\");\n if (index < endIndex) {\n this.index.setValue(index, context);\n this.onLoop._activateSignal(context);\n const step = context._getExecutionVariable(this, \"step\", 1);\n index += step;\n context._setExecutionVariable(this, \"index\", index);\n this._executeLoop(context);\n }\n else {\n this.out._activateSignal(context);\n }\n }\n /**\n * @internal\n */\n _execute(context) {\n const index = this.startIndex.getValue(context);\n const endIndex = this.endIndex.getValue(context);\n const step = this.step.getValue(context);\n context._setExecutionVariable(this, \"index\", index);\n context._setExecutionVariable(this, \"endIndex\", endIndex);\n context._setExecutionVariable(this, \"step\", step);\n this._executeLoop(context);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGForLoopBlock\";\n }\n}\nRegisterClass(\"FGForLoopBlock\", FlowGraphForLoopBlock);\n","import { RichTypeNumber } from \"../../../flowGraphRichTypes.js\";\nimport { FlowGraphExecutionBlockWithOutSignal } from \"../../../flowGraphExecutionBlockWithOutSignal.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * @experimental\n * A block that throttles the execution of its output flow.\n */\nexport class FlowGraphThrottleBlock extends FlowGraphExecutionBlockWithOutSignal {\n constructor(config) {\n super(config);\n this.reset = this._registerSignalInput(\"reset\");\n this.duration = this.registerDataInput(\"duration\", RichTypeNumber);\n this.timeRemaining = this.registerDataOutput(\"timeRemaining\", RichTypeNumber);\n }\n _execute(context, callingSignal) {\n const lastExecutedTime = context._getExecutionVariable(this, \"lastExecutedTime\");\n const durationValue = this.duration.getValue(context);\n const currentTime = Date.now();\n if (callingSignal === this.reset || lastExecutedTime === undefined || currentTime - lastExecutedTime > durationValue) {\n //activate the output flow\n this.timeRemaining.setValue(0, context);\n this.out._activateSignal(context);\n context._setExecutionVariable(this, \"lastExecutedTime\", currentTime);\n }\n else {\n //activate the output flow after the remaining time\n const remaining = durationValue - (currentTime - lastExecutedTime);\n this.timeRemaining.setValue(remaining, context);\n }\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGThrottleBlock\";\n }\n}\nRegisterClass(\"FGThrottleBlock\", FlowGraphThrottleBlock);\n","import { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { FlowGraphExecutionBlock } from \"../../../flowGraphExecutionBlock.js\";\nimport { RichTypeNumber } from \"../../../flowGraphRichTypes.js\";\n/**\n * @experimental\n * A block that has an input flow and routes it to any potential output flows, randomly or sequentially\n * @see https://docs.google.com/document/d/1MT7gL-IEn_PUw-4XGBazMxsyqsxqgAVGYcNeC4Cj_9Q/edit#heading=h.i2sn85fbjo60\n */\nexport class FlowGraphMultiGateBlock extends FlowGraphExecutionBlock {\n constructor(\n /**\n * the configuration of the block\n */\n config) {\n super(config);\n this.config = config;\n this._cachedUnusedIndexes = [];\n this.reset = this._registerSignalInput(\"reset\");\n this.currentIndex = this.registerDataOutput(\"currentIndex\", RichTypeNumber);\n this.config.startIndex = this.config.startIndex !== undefined ? this.config.startIndex : 0;\n this.config.startIndex = Math.max(0, Math.min(this.config.startIndex, this.config.numberOutputFlows - 1));\n this.outFlows = [];\n for (let i = 0; i < this.config.numberOutputFlows; i++) {\n this.outFlows.push(this._registerSignalOutput(`out${i}`));\n }\n }\n _getUnusedIndexes(context) {\n const result = this._cachedUnusedIndexes;\n result.length = 0;\n if (!context._hasExecutionVariable(this, \"unusedIndexes\")) {\n for (let i = 0; i < this.config.numberOutputFlows; i++) {\n result.push(i);\n }\n }\n else {\n const contextUnusedIndexes = context._getExecutionVariable(this, \"unusedIndexes\");\n for (let i = 0; i < contextUnusedIndexes.length; i++) {\n result.push(contextUnusedIndexes[i]);\n }\n }\n return result;\n }\n _getNextOutput(currentIndex, unusedIndexes) {\n if (this.config.isRandom) {\n const nextIndex = Math.floor(Math.random() * unusedIndexes.length);\n return unusedIndexes[nextIndex];\n }\n else {\n return currentIndex + 1;\n }\n }\n _execute(context, callingSignal) {\n const currentIndex = context._getExecutionVariable(this, \"currentIndex\") ?? this.config.startIndex - 1;\n let unusedIndexes = this._getUnusedIndexes(context);\n if (callingSignal === this.reset) {\n context._deleteExecutionVariable(this, \"currentIndex\");\n context._deleteExecutionVariable(this, \"unusedIndexes\");\n return;\n }\n let nextIndex = this._getNextOutput(currentIndex, unusedIndexes);\n if (nextIndex >= this.config.numberOutputFlows && this.config.loop) {\n nextIndex = 0;\n }\n else if (nextIndex >= this.config.numberOutputFlows && !this.config.loop) {\n return;\n }\n unusedIndexes = unusedIndexes.filter((i) => i !== nextIndex);\n if (unusedIndexes.length === 0) {\n for (let i = 0; i < this.config.numberOutputFlows; i++) {\n unusedIndexes.push(i);\n }\n }\n context._setExecutionVariable(this, \"unusedIndexes\", unusedIndexes);\n context._setExecutionVariable(this, \"currentIndex\", nextIndex);\n this.currentIndex.setValue(nextIndex, context);\n this.outFlows[nextIndex]._activateSignal(context);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGMultiGateBlock\";\n }\n /**\n * Serializes the block.\n * @param serializationObject the object to serialize to.\n */\n serialize(serializationObject) {\n super.serialize(serializationObject);\n serializationObject.config.numberOutputFlows = this.config.numberOutputFlows;\n serializationObject.config.isRandom = this.config.isRandom;\n serializationObject.config.loop = this.config.loop;\n serializationObject.config.startIndex = this.config.startIndex;\n }\n}\nRegisterClass(\"FGMultiGateBlock\", FlowGraphMultiGateBlock);\n","import { FlowGraphExecutionBlock } from \"../../../flowGraphExecutionBlock.js\";\nimport { RichTypeAny } from \"../../../flowGraphRichTypes.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * @experimental\n * A block that executes a branch based on a selection.\n */\nexport class FlowGraphSwitchBlock extends FlowGraphExecutionBlock {\n constructor(\n /**\n * the configuration of the block\n */\n config) {\n super(config);\n this.config = config;\n this.selection = this.registerDataInput(\"selection\", RichTypeAny);\n this.outputFlows = [];\n for (let i = 0; i <= this.config.cases.length; i++) {\n this.outputFlows.push(this._registerSignalOutput(`out${i}`));\n }\n }\n _execute(context, _callingSignal) {\n const selectionValue = this.selection.getValue(context);\n for (let i = 0; i < this.config.cases.length; i++) {\n if (selectionValue === this.config.cases[i]) {\n this.outputFlows[i]._activateSignal(context);\n return;\n }\n }\n // default case\n this.outputFlows[this.outputFlows.length - 1]._activateSignal(context);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGSwitchBlock\";\n }\n /**\n * Serialize the block to a JSON representation.\n * @param serializationObject the object to serialize to.\n */\n serialize(serializationObject) {\n super.serialize(serializationObject);\n serializationObject.cases = this.config.cases;\n }\n}\nRegisterClass(\"FGSwitchBlock\", FlowGraphSwitchBlock);\n","import { FlowGraphExecutionBlockWithOutSignal } from \"../../../flowGraphExecutionBlockWithOutSignal.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * @experimental\n * A block that waits for all input flows to be activated before activating its output flow.\n */\nexport class FlowGraphWaitAllBlock extends FlowGraphExecutionBlockWithOutSignal {\n constructor(\n /**\n * the configuration of the block\n */\n config) {\n super(config);\n this.config = config;\n /**\n * Input connection: The 2nd to nth input flows (the first is named onStart)\n */\n this.inFlows = [];\n this._cachedActivationState = [];\n this.reset = this._registerSignalInput(\"reset\");\n // The first inFlow is the default input signal all execution blocks have\n for (let i = 1; i < this.config.numberInputFlows; i++) {\n this.inFlows.push(this._registerSignalInput(`in${i}`));\n }\n }\n _getCurrentActivationState(context) {\n const activationState = this._cachedActivationState;\n activationState.length = 0;\n if (!context._hasExecutionVariable(this, \"activationState\")) {\n for (let i = 0; i < this.config.numberInputFlows; i++) {\n activationState.push(false);\n }\n }\n else {\n const contextActivationState = context._getExecutionVariable(this, \"activationState\");\n for (let i = 0; i < contextActivationState.length; i++) {\n activationState.push(contextActivationState[i]);\n }\n }\n return activationState;\n }\n _execute(context, callingSignal) {\n const activationState = this._getCurrentActivationState(context);\n if (callingSignal === this.reset) {\n for (let i = 0; i < this.config.numberInputFlows; i++) {\n activationState[i] = false;\n }\n }\n else if (callingSignal === this.in) {\n activationState[0] = true;\n }\n else {\n const index = this.inFlows.indexOf(callingSignal);\n if (index >= 0) {\n activationState[index + 1] = true;\n }\n }\n context._setExecutionVariable(this, \"activationState\", activationState.slice());\n if (activationState.every((value) => value)) {\n this.out._activateSignal(context);\n for (let i = 0; i < this.config.numberInputFlows; i++) {\n activationState[i] = false;\n }\n }\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGWaitAllBlock\";\n }\n /**\n * Serializes this block into a object\n * @param serializationObject the object to serialize to\n */\n serialize(serializationObject) {\n super.serialize(serializationObject);\n serializationObject.config.numberInputFlows = this.config.numberInputFlows;\n }\n}\nRegisterClass(\"FGWaitAllBlock\", FlowGraphWaitAllBlock);\n","import { RichTypeNumber } from \"../../../flowGraphRichTypes.js\";\nimport { FlowGraphExecutionBlockWithOutSignal } from \"../../../flowGraphExecutionBlockWithOutSignal.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * @experimental\n * A block that counts the number of times it has been called.\n */\nexport class FlowGraphCounterBlock extends FlowGraphExecutionBlockWithOutSignal {\n constructor(config) {\n super(config);\n this.count = this.registerDataOutput(\"count\", RichTypeNumber);\n this.reset = this._registerSignalInput(\"reset\");\n }\n _execute(context, callingSignal) {\n if (callingSignal === this.reset) {\n context._setExecutionVariable(this, \"count\", 0);\n this.count.setValue(0, context);\n return;\n }\n const countValue = (context._getExecutionVariable(this, \"count\") ?? 0) + 1;\n context._setExecutionVariable(this, \"count\", countValue);\n this.count.setValue(countValue, context);\n this.out._activateSignal(context);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGCounterBlock\";\n }\n}\nRegisterClass(\"FGCounterBlock\", FlowGraphCounterBlock);\n","import { RichTypeNumber } from \"../../../flowGraphRichTypes.js\";\nimport { FlowGraphExecutionBlockWithOutSignal } from \"../../../flowGraphExecutionBlockWithOutSignal.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * @experimental\n * This block debounces the execution of a input, i.e. ensures that the input is only executed once every X times\n */\nexport class FlowGraphDebounceBlock extends FlowGraphExecutionBlockWithOutSignal {\n constructor(config) {\n super(config);\n this.count = this.registerDataInput(\"count\", RichTypeNumber);\n this.reset = this._registerSignalInput(\"reset\");\n this.currentCount = this.registerDataOutput(\"currentCount\", RichTypeNumber);\n }\n _execute(context, callingSignal) {\n if (callingSignal === this.reset) {\n context._setExecutionVariable(this, \"debounceCount\", 0);\n return;\n }\n const count = this.count.getValue(context);\n const currentCount = context._getExecutionVariable(this, \"debounceCount\", 0);\n const newCount = currentCount + 1;\n this.currentCount.setValue(newCount, context);\n context._setExecutionVariable(this, \"debounceCount\", newCount);\n if (newCount >= count) {\n this.out._activateSignal(context);\n context._setExecutionVariable(this, \"debounceCount\", 0);\n }\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGDebounceBlock\";\n }\n}\nRegisterClass(\"FGDebounceBlock\", FlowGraphDebounceBlock);\n","import { FlowGraphExecutionBlock } from \"../../../flowGraphExecutionBlock.js\";\nimport { RichTypeBoolean } from \"../../../flowGraphRichTypes.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * @experimental\n * This block flip flops between two outputs.\n */\nexport class FlowGraphFlipFlopBlock extends FlowGraphExecutionBlock {\n constructor(config) {\n super(config);\n this.onOn = this._registerSignalOutput(\"onOn\");\n this.onOff = this._registerSignalOutput(\"onOff\");\n this.isOn = this.registerDataOutput(\"isOn\", RichTypeBoolean);\n }\n _execute(context, _callingSignal) {\n let value = context._getExecutionVariable(this, \"value\", false);\n value = !value;\n context._setExecutionVariable(this, \"value\", value);\n this.isOn.setValue(value, context);\n if (value) {\n this.onOn._activateSignal(context);\n }\n else {\n this.onOff._activateSignal(context);\n }\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGFlipFlopBlock\";\n }\n}\nRegisterClass(\"FGFlipFlopBlock\", FlowGraphFlipFlopBlock);\n","import { FlowGraphAsyncExecutionBlock } from \"../../../flowGraphAsyncExecutionBlock.js\";\nimport { RichTypeAny, RichTypeNumber, RichTypeBoolean } from \"../../../flowGraphRichTypes.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { FlowGraphPathConverterComponent } from \"../../../flowGraphPathConverterComponent.js\";\n/**\n * @experimental\n * A block that plays an animation on an animatable object.\n */\nexport class FlowGraphPlayAnimationBlock extends FlowGraphAsyncExecutionBlock {\n constructor(\n /**\n * the configuration of the block\n */\n config) {\n super(config);\n this.config = config;\n this.templateTargetComponent = new FlowGraphPathConverterComponent(config.targetPath, this);\n this.templateAnimationComponent = new FlowGraphPathConverterComponent(config.animationPath, this);\n this.speed = this.registerDataInput(\"speed\", RichTypeNumber);\n this.loop = this.registerDataInput(\"loop\", RichTypeBoolean);\n this.from = this.registerDataInput(\"from\", RichTypeNumber);\n this.to = this.registerDataInput(\"to\", RichTypeNumber);\n this.runningAnimatable = this.registerDataOutput(\"runningAnimatable\", RichTypeAny);\n }\n /**\n * @internal\n * @param context\n */\n _preparePendingTasks(context) {\n const targetAccessor = this.templateTargetComponent.getAccessor(this.config.pathConverter, context);\n const targetValue = targetAccessor.info.getObject(targetAccessor.object);\n const animationAccessor = this.templateAnimationComponent.getAccessor(this.config.pathConverter, context);\n const animationValue = animationAccessor.info.get(animationAccessor.object);\n if (!targetValue || !animationValue) {\n throw new Error(\"Cannot play animation without target or animation\");\n }\n const contextAnimatables = context._getExecutionVariable(this, \"runningAnimatables\") ?? [];\n // was an animation started on this target already and was just paused? if so, we can unpause it.\n const existingAnimatable = this.runningAnimatable.getValue(context);\n if (existingAnimatable && existingAnimatable.paused) {\n existingAnimatable.restart();\n }\n else {\n const scene = context.configuration.scene;\n const animatable = scene.beginDirectAnimation(targetValue, [animationValue], this.from.getValue(context), this.to.getValue(context), this.loop.getValue(context), this.speed.getValue(context), () => this._onAnimationEnd(animatable, context));\n this.runningAnimatable.setValue(animatable, context);\n contextAnimatables.push(animatable);\n }\n context._setExecutionVariable(this, \"runningAnimatables\", contextAnimatables);\n }\n _execute(context) {\n this._startPendingTasks(context);\n this.out._activateSignal(context);\n }\n _onAnimationEnd(animatable, context) {\n const contextAnims = context._getExecutionVariable(this, \"runningAnimatables\") ?? [];\n const index = contextAnims.indexOf(animatable);\n if (index !== -1) {\n contextAnims.splice(index, 1);\n }\n context._removePendingBlock(this);\n this.done._activateSignal(context);\n }\n /**\n * @internal\n * Stop any currently running animations.\n */\n _cancelPendingTasks(context) {\n const contextAnims = context._getExecutionVariable(this, \"runningAnimatables\") ?? [];\n for (const anim of contextAnims) {\n anim.stop();\n }\n context._deleteExecutionVariable(this, \"runningAnimatables\");\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return FlowGraphPlayAnimationBlock.ClassName;\n }\n /**\n * Serializes the block to a JSON object.\n * @param serializationObject the object to serialize to.\n */\n serialize(serializationObject = {}) {\n super.serialize(serializationObject);\n serializationObject.config.targetPath = this.config.targetPath;\n serializationObject.config.animationPath = this.config.animationPath;\n }\n}\n/**\n * Class name of the block.\n */\nFlowGraphPlayAnimationBlock.ClassName = \"FGPlayAnimationBlock\";\nRegisterClass(FlowGraphPlayAnimationBlock.ClassName, FlowGraphPlayAnimationBlock);\n","import { FlowGraphExecutionBlockWithOutSignal } from \"../../../flowGraphExecutionBlockWithOutSignal.js\";\nimport { RichTypeAny } from \"../../../flowGraphRichTypes.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * @experimental\n * Block that stops a running animation\n */\nexport class FlowGraphStopAnimationBlock extends FlowGraphExecutionBlockWithOutSignal {\n constructor(config) {\n super(config);\n this.animationToStop = this.registerDataInput(\"animationToStop\", RichTypeAny);\n }\n _execute(context) {\n const animationToStopValue = this.animationToStop.getValue(context);\n animationToStopValue.stop();\n this.out._activateSignal(context);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGStopAnimationBlock\";\n }\n}\nRegisterClass(\"FGStopAnimationBlock\", FlowGraphStopAnimationBlock);\n","import { FlowGraphExecutionBlockWithOutSignal } from \"../../../flowGraphExecutionBlockWithOutSignal.js\";\nimport { RichTypeAny } from \"../../../flowGraphRichTypes.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * @experimental\n * Block that pauses a running animation\n */\nexport class FlowGraphPauseAnimationBlock extends FlowGraphExecutionBlockWithOutSignal {\n constructor(config) {\n super(config);\n this.animationToPause = this.registerDataInput(\"animationToPause\", RichTypeAny);\n }\n _execute(context) {\n const animationToPauseValue = this.animationToPause.getValue(context);\n animationToPauseValue.pause();\n this.out._activateSignal(context);\n }\n /**\n * @returns class name of the block.\n */\n getClassName() {\n return \"FGPauseAnimationBlock\";\n }\n}\nRegisterClass(\"FGPauseAnimationBlock\", FlowGraphPauseAnimationBlock);\n","import { FlowGraphBlock } from \"../../flowGraphBlock.js\";\nimport { RichTypeBoolean, RichTypeAny } from \"../../flowGraphRichTypes.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * @experimental\n * Block that returns a value based on a condition.\n */\nexport class FlowGraphConditionalDataBlock extends FlowGraphBlock {\n constructor(config) {\n super(config);\n this.condition = this.registerDataInput(\"condition\", RichTypeBoolean);\n this.trueValue = this.registerDataInput(\"trueValue\", RichTypeAny);\n this.falseValue = this.registerDataInput(\"falseValue\", RichTypeAny);\n this.output = this.registerDataOutput(\"output\", RichTypeAny);\n }\n /**\n * @internal\n */\n _updateOutputs(context) {\n this.output.setValue(this.condition.getValue(context) ? this.trueValue.getValue(context) : this.falseValue.getValue(context), context);\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return \"FGConditionalDataBlock\";\n }\n}\nRegisterClass(\"FGConditionalDataBlock\", FlowGraphConditionalDataBlock);\n","import { FlowGraphBlock } from \"../../flowGraphBlock.js\";\nimport { RichTypeAny, RichTypeVector3 } from \"../../flowGraphRichTypes.js\";\nimport { TmpVectors, Vector3 } from \"../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * @experimental\n * This blocks transforms a vector from one coordinate system to another.\n */\nexport class FlowGraphCoordinateTransformBlock extends FlowGraphBlock {\n /**\n * Creates a new FlowGraphCoordinateTransformBlock\n * @param config optional configuration for this block\n */\n constructor(config) {\n super(config);\n this.sourceSystem = this.registerDataInput(\"sourceSystem\", RichTypeAny);\n this.destinationSystem = this.registerDataInput(\"destinationSystem\", RichTypeAny);\n this.inputCoordinates = this.registerDataInput(\"inputCoordinates\", RichTypeVector3);\n this.outputCoordinates = this.registerDataOutput(\"outputCoordinates\", RichTypeVector3);\n }\n _updateOutputs(_context) {\n const sourceSystemValue = this.sourceSystem.getValue(_context);\n const destinationSystemValue = this.destinationSystem.getValue(_context);\n const inputCoordinatesValue = this.inputCoordinates.getValue(_context);\n // takes coordinates from source space to world space\n const sourceWorld = sourceSystemValue.getWorldMatrix();\n // takes coordinates from destination space to world space\n const destinationWorld = destinationSystemValue.getWorldMatrix();\n const destinationWorldInverse = TmpVectors.Matrix[0].copyFrom(destinationWorld);\n // takes coordinates from world space to destination space\n destinationWorldInverse.invert();\n const sourceToDestination = TmpVectors.Matrix[1];\n // takes coordinates from source space to world space to destination space\n destinationWorldInverse.multiplyToRef(sourceWorld, sourceToDestination);\n const outputCoordinatesValue = this.outputCoordinates.getValue(_context);\n Vector3.TransformCoordinatesToRef(inputCoordinatesValue, sourceToDestination, outputCoordinatesValue);\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return \"FGCoordinateTransformBlock\";\n }\n}\nRegisterClass(\"FGCoordinateTransformBlock\", FlowGraphCoordinateTransformBlock);\n","import { FlowGraphBlock } from \"../../flowGraphBlock.js\";\nimport { getRichTypeFromValue } from \"../../flowGraphRichTypes.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { defaultValueSerializationFunction } from \"../../serialization.js\";\n/**\n * @experimental\n * Block that returns a constant value.\n */\nexport class FlowGraphConstantBlock extends FlowGraphBlock {\n constructor(\n /**\n * the configuration of the block\n */\n config) {\n super(config);\n this.config = config;\n this.output = this.registerDataOutput(\"output\", getRichTypeFromValue(config.value));\n }\n _updateOutputs(context) {\n this.output.setValue(this.config.value, context);\n }\n /**\n * Gets the class name of this block\n * @returns the class name\n */\n getClassName() {\n return \"FGConstantBlock\";\n }\n /**\n * Serializes this block\n * @param serializationObject the object to serialize to\n * @param valueSerializeFunction the function to use to serialize the value\n */\n serialize(serializationObject = {}, valueSerializeFunction = defaultValueSerializationFunction) {\n super.serialize(serializationObject);\n valueSerializeFunction(\"value\", this.config.value, serializationObject.config);\n }\n}\nRegisterClass(\"FGConstantBlock\", FlowGraphConstantBlock);\n","import { RichTypeBoolean } from \"../../../flowGraphRichTypes.js\";\nimport { FlowGraphBinaryOperationBlock } from \"../flowGraphBinaryOperationBlock.js\";\nimport { FlowGraphUnaryOperationBlock } from \"../flowGraphUnaryOperationBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nconst PREFIX = \"FGLogic\";\nconst AND = \"AndBlock\";\nconst OR = \"OrBlock\";\nconst NOT = \"NotBlock\";\n/**\n * Performs an AND operation on two boolean values.\n * @experimental\n */\nexport class FlowGraphLogicAndBlock extends FlowGraphBinaryOperationBlock {\n constructor(config) {\n super(RichTypeBoolean, RichTypeBoolean, RichTypeBoolean, (left, right) => left && right, `${PREFIX}${AND}`, config);\n }\n}\nRegisterClass(`${PREFIX}${AND}`, FlowGraphLogicAndBlock);\n/**\n * Performs an OR operation on two boolean values.\n * @experimental\n */\nexport class FlowGraphLogicOrBlock extends FlowGraphBinaryOperationBlock {\n constructor(config) {\n super(RichTypeBoolean, RichTypeBoolean, RichTypeBoolean, (left, right) => left || right, `${PREFIX}${OR}`, config);\n }\n}\nRegisterClass(`${PREFIX}${OR}`, FlowGraphLogicOrBlock);\n/**\n * Performs a NOT operation on a boolean value\n * @experimental\n */\nexport class FlowGraphLogicNotBlock extends FlowGraphUnaryOperationBlock {\n constructor(config) {\n super(RichTypeBoolean, RichTypeBoolean, (value) => !value, `${PREFIX}${NOT}`, config);\n }\n}\nRegisterClass(`${PREFIX}${NOT}`, FlowGraphLogicNotBlock);\n","import { backbufferColorTextureHandle } from \"../../frameGraphTypes.js\";\nimport { FrameGraphTask } from \"../../frameGraphTask.js\";\n/**\n * Task which copies a texture to the backbuffer color texture.\n */\nexport class FrameGraphCopyToBackbufferColorTask extends FrameGraphTask {\n record() {\n if (this.sourceTexture === undefined) {\n throw new Error(`FrameGraphCopyToBackbufferColorTask \"${this.name}\": sourceTexture is required`);\n }\n const pass = this._frameGraph.addRenderPass(this.name);\n pass.setRenderTarget(backbufferColorTextureHandle);\n pass.setExecuteFunc((context) => {\n if (!context.isBackbuffer(this.sourceTexture)) {\n context.copyTexture(this.sourceTexture);\n }\n });\n const passDisabled = this._frameGraph.addRenderPass(this.name + \"_disabled\", true);\n passDisabled.setRenderTarget(backbufferColorTextureHandle);\n passDisabled.setExecuteFunc((_context) => { });\n }\n}\n","/**\n * Represents a texture handle for the backbuffer color texture.\n */\nexport const backbufferColorTextureHandle = 0;\n/**\n * Represents a texture handle for the backbuffer depth/stencil texture.\n */\nexport const backbufferDepthStencilTextureHandle = 1;\n","import { NodeRenderGraphBlock } from \"../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../Types/nodeRenderGraphTypes.js\";\nimport { FrameGraphCopyToBackbufferColorTask } from \"../../Tasks/Texture/copyToBackbufferColorTask.js\";\n/**\n * Block used to generate the final graph\n */\nexport class NodeRenderGraphOutputBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphOutputBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n this._isUnique = true;\n this.registerInput(\"texture\", NodeRenderGraphBlockConnectionPointTypes.Texture);\n this.texture.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAll);\n this._frameGraphTask = new FrameGraphCopyToBackbufferColorTask(name, frameGraph);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphOutputBlock\";\n }\n /**\n * Gets the texture input component\n */\n get texture() {\n return this._inputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._frameGraphTask.name = this.name;\n const textureConnectedPoint = this.texture.connectedPoint;\n if (textureConnectedPoint) {\n this._frameGraphTask.sourceTexture = textureConnectedPoint.value;\n }\n }\n}\nRegisterClass(\"BABYLON.NodeRenderGraphOutputBlock\", NodeRenderGraphOutputBlock);\n","import { EffectRenderer, EffectWrapper } from \"../Materials/effectRenderer.js\";\n\n/**\n * Conversion modes available when copying a texture into another one\n */\nexport var ConversionMode;\n(function (ConversionMode) {\n ConversionMode[ConversionMode[\"None\"] = 0] = \"None\";\n ConversionMode[ConversionMode[\"ToLinearSpace\"] = 1] = \"ToLinearSpace\";\n ConversionMode[ConversionMode[\"ToGammaSpace\"] = 2] = \"ToGammaSpace\";\n})(ConversionMode || (ConversionMode = {}));\n/**\n * Class used for fast copy from one texture to another\n */\nexport class CopyTextureToTexture {\n /**\n * Gets the shader language\n */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n _textureIsInternal(texture) {\n return texture.getInternalTexture === undefined;\n }\n /**\n * Constructs a new instance of the class\n * @param engine The engine to use for the copy\n * @param isDepthTexture True means that we should write (using gl_FragDepth) into the depth texture attached to the destination (default: false)\n */\n constructor(engine, isDepthTexture = false) {\n /** Shader language used */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this._shadersLoaded = false;\n this._engine = engine;\n this._isDepthTexture = isDepthTexture;\n this._renderer = new EffectRenderer(engine);\n this._initShaderSourceAsync(isDepthTexture);\n }\n async _initShaderSourceAsync(isDepthTexture) {\n const engine = this._engine;\n if (engine.isWebGPU) {\n this._shaderLanguage = 1 /* ShaderLanguage.WGSL */;\n await import(\"../ShadersWGSL/copyTextureToTexture.fragment.js\");\n }\n else {\n await import(\"../Shaders/copyTextureToTexture.fragment.js\");\n }\n this._shadersLoaded = true;\n this._effectWrapper = new EffectWrapper({\n engine: engine,\n name: \"CopyTextureToTexture\",\n fragmentShader: \"copyTextureToTexture\",\n useShaderStore: true,\n uniformNames: [\"conversion\"],\n samplerNames: [\"textureSampler\"],\n defines: isDepthTexture ? [\"#define DEPTH_TEXTURE\"] : [],\n shaderLanguage: this._shaderLanguage,\n });\n this._effectWrapper.onApplyObservable.add(() => {\n if (isDepthTexture) {\n engine.setState(false);\n engine.setDepthBuffer(true);\n engine.depthCullingState.depthMask = true;\n engine.depthCullingState.depthFunc = 519;\n }\n else {\n engine.depthCullingState.depthMask = false;\n // other states are already set by EffectRenderer.applyEffectWrapper\n }\n if (this._textureIsInternal(this._source)) {\n this._effectWrapper.effect._bindTexture(\"textureSampler\", this._source);\n }\n else {\n this._effectWrapper.effect.setTexture(\"textureSampler\", this._source);\n }\n this._effectWrapper.effect.setFloat(\"conversion\", this._conversion);\n });\n }\n /**\n * Indicates if the effect is ready to be used for the copy\n * @returns true if \"copy\" can be called without delay, else false\n */\n isReady() {\n return this._shadersLoaded && this._effectWrapper.effect.isReady();\n }\n /**\n * Copy one texture into another\n * @param source The source texture\n * @param destination The destination texture. If null, copy the source to the currently bound framebuffer\n * @param conversion The conversion mode that should be applied when copying\n * @returns\n */\n copy(source, destination = null, conversion = 0 /* ConversionMode.None */) {\n if (!this.isReady()) {\n return false;\n }\n this._source = source;\n this._conversion = conversion;\n const engineDepthFunc = this._engine.getDepthFunction();\n const engineDepthMask = this._engine.getDepthWrite(); // for some reasons, depthWrite is not restored by EffectRenderer.restoreStates\n this._renderer.render(this._effectWrapper, destination);\n this._engine.setDepthWrite(engineDepthMask);\n if (this._isDepthTexture && engineDepthFunc) {\n this._engine.setDepthFunction(engineDepthFunc);\n }\n return true;\n }\n /**\n * Releases all the resources used by the class\n */\n dispose() {\n this._effectWrapper?.dispose();\n this._renderer.dispose();\n }\n}\n","/**\n * Base class for frame graph context.\n */\nexport class FrameGraphContext {\n}\n","\nimport { EffectRenderer } from \"../Materials/effectRenderer.js\";\nimport { CopyTextureToTexture } from \"../Misc/copyTextureToTexture.js\";\nimport { FrameGraphContext } from \"./frameGraphContext.js\";\nimport { backbufferColorTextureHandle, backbufferDepthStencilTextureHandle } from \"./frameGraphTypes.js\";\n/**\n * Frame graph context used render passes.\n * @experimental\n */\nexport class FrameGraphRenderContext extends FrameGraphContext {\n static _IsObjectRenderer(value) {\n return value.initRender !== undefined;\n }\n /** @internal */\n constructor(_engine, _textureManager, _scene) {\n super();\n this._engine = _engine;\n this._textureManager = _textureManager;\n this._scene = _scene;\n this._debugMessageHasBeenPushed = false;\n this._renderTargetIsBound = true;\n this._effectRenderer = new EffectRenderer(this._engine);\n this._copyTexture = new CopyTextureToTexture(this._engine);\n this._currentRenderTargetHandle = backbufferColorTextureHandle;\n }\n /**\n * Checks whether a texture handle points to the backbuffer's color or depth texture\n * @param handle The handle to check\n * @returns True if the handle points to the backbuffer's color or depth texture, otherwise false\n */\n isBackbuffer(handle) {\n return this._textureManager.isBackbuffer(handle);\n }\n /**\n * Checks whether a texture handle points to the backbuffer's color texture\n * @param handle The handle to check\n * @returns True if the handle points to the backbuffer's color texture, otherwise false\n */\n isBackbufferColor(handle) {\n return this._textureManager.isBackbufferColor(handle);\n }\n /**\n * Checks whether a texture handle points to the backbuffer's depth texture\n * @param handle The handle to check\n * @returns True if the handle points to the backbuffer's depth texture, otherwise false\n */\n isBackbufferDepthStencil(handle) {\n return this._textureManager.isBackbufferDepthStencil(handle);\n }\n /**\n * Clears the current render buffer or the current render target (if any is set up)\n * @param color Defines the color to use\n * @param backBuffer Defines if the back buffer must be cleared\n * @param depth Defines if the depth buffer must be cleared\n * @param stencil Defines if the stencil buffer must be cleared\n */\n clear(color, backBuffer, depth, stencil) {\n this._applyRenderTarget();\n this._engine.clear(color, backBuffer, depth, stencil);\n }\n /**\n * Clears the color attachments of the current render target\n * @param color Defines the color to use\n * @param attachments The attachments to clear\n */\n clearColorAttachments(color, attachments) {\n this._applyRenderTarget();\n this._engine.bindAttachments(attachments);\n this._engine.clear(color, true, false, false);\n }\n /**\n * Binds the attachments to the current render target\n * @param attachments The attachments to bind\n */\n bindAttachments(attachments) {\n this._applyRenderTarget();\n this._engine.bindAttachments(attachments);\n }\n /**\n * Generates mipmaps for the current render target\n */\n generateMipMaps() {\n const texture = this._textureManager.getTextureFromHandle(this._currentRenderTargetHandle);\n if (!texture) {\n // Texture is backbuffer, no need to generate mipmaps\n return;\n }\n if (this._renderTargetIsBound) {\n // we can't generate the mipmaps if the texture is bound as a render target\n this._flushDebugMessages();\n this._engine.unBindFramebuffer(texture);\n this._renderTargetIsBound = false;\n }\n this._engine.generateMipmaps(texture.texture);\n }\n /**\n * Sets the texture sampling mode for a given texture handle\n * @param handle Handle of the texture to set the sampling mode for\n * @param samplingMode Sampling mode to set\n */\n setTextureSamplingMode(handle, samplingMode) {\n const internalTexture = this._textureManager.getTextureFromHandle(handle)?.texture;\n if (internalTexture && internalTexture.samplingMode !== samplingMode) {\n this._engine.updateTextureSamplingMode(samplingMode, internalTexture);\n }\n }\n /**\n * Binds a texture handle to a given effect (resolves the handle to a texture and binds it to the effect)\n * @param effect The effect to bind the texture to\n * @param name The name of the texture in the effect\n * @param handle The handle of the texture to bind\n */\n bindTextureHandle(effect, name, handle) {\n const texture = this._textureManager.getTextureFromHandle(handle);\n if (texture) {\n effect._bindTexture(name, texture.texture);\n }\n }\n /**\n * Sets the depth states for the current render target\n * @param depthTest If true, depth testing is enabled\n * @param depthWrite If true, depth writing is enabled\n */\n setDepthStates(depthTest, depthWrite) {\n this._engine.setDepthBuffer(depthTest);\n this._engine.setDepthWrite(depthWrite);\n }\n /**\n * Applies a full-screen effect to the current render target\n * @param drawWrapper The draw wrapper containing the effect to apply\n * @param customBindings The custom bindings to use when applying the effect (optional)\n * @returns True if the effect was applied, otherwise false (effect not ready)\n */\n applyFullScreenEffect(drawWrapper, customBindings) {\n if (!drawWrapper.effect?.isReady()) {\n return false;\n }\n this._applyRenderTarget();\n const engineDepthMask = this._engine.getDepthWrite(); // for some reasons, depthWrite is not restored by EffectRenderer.restoreStates\n this._effectRenderer.saveStates();\n this._effectRenderer.setViewport();\n this._engine.enableEffect(drawWrapper);\n this._engine.setState(false);\n this._engine.setDepthBuffer(false);\n this._engine.setDepthWrite(false);\n this._effectRenderer.bindBuffers(drawWrapper.effect);\n customBindings?.();\n this._effectRenderer.draw();\n this._effectRenderer.restoreStates();\n this._engine.setDepthWrite(engineDepthMask);\n this._engine.setAlphaMode(0);\n return true;\n }\n /**\n * Copies a texture to the current render target\n * @param sourceTexture The source texture to copy from\n * @param forceCopyToBackbuffer If true, the copy will be done to the back buffer regardless of the current render target\n */\n copyTexture(sourceTexture, forceCopyToBackbuffer = false) {\n if (forceCopyToBackbuffer) {\n this.bindRenderTarget();\n }\n this._applyRenderTarget();\n this._copyTexture.copy(this._textureManager.getTextureFromHandle(sourceTexture).texture);\n }\n /**\n * Renders a RenderTargetTexture or a layer\n * @param object The RenderTargetTexture/Layer to render\n * @param viewportWidth The width of the viewport (optional for Layer, but mandatory for ObjectRenderer)\n * @param viewportHeight The height of the viewport (optional for Layer, but mandatory for ObjectRenderer)\n */\n render(object, viewportWidth, viewportHeight) {\n if (FrameGraphRenderContext._IsObjectRenderer(object)) {\n if (object.shouldRender()) {\n this._scene?.incrementRenderId();\n this._scene?.resetCachedMaterial();\n object.prepareRenderList();\n object.initRender(viewportWidth, viewportHeight);\n this._applyRenderTarget();\n object.render();\n object.finishRender();\n }\n }\n else {\n this._applyRenderTarget();\n object.render();\n }\n }\n /**\n * Binds a render target texture so that upcoming draw calls will render to it\n * Note: it is a lazy operation, so the render target will only be bound when needed. This way, it is possible to call\n * this method several times with different render targets without incurring the cost of binding if no draw calls are made\n * @param renderTargetHandle The handle of the render target texture to bind (default: backbufferColorTextureHandle)\n * @param debugMessage Optional debug message to display when the render target is bound (visible in PIX, for example)\n */\n bindRenderTarget(renderTargetHandle = backbufferColorTextureHandle, debugMessage) {\n if (renderTargetHandle === this._currentRenderTargetHandle) {\n this._flushDebugMessages();\n if (debugMessage !== undefined) {\n this._engine._debugPushGroup?.(debugMessage, 2);\n this._debugMessageWhenTargetBound = undefined;\n this._debugMessageHasBeenPushed = true;\n }\n return;\n }\n this._currentRenderTargetHandle = renderTargetHandle;\n this._debugMessageWhenTargetBound = debugMessage;\n this._renderTargetIsBound = false;\n }\n /** @internal */\n _flushDebugMessages() {\n if (this._debugMessageHasBeenPushed) {\n this._engine._debugPopGroup?.(2);\n this._debugMessageHasBeenPushed = false;\n }\n }\n /** @internal */\n _shareDepth(srcRenderTargetHandle, dstRenderTargetHandle) {\n const srcTexture = this._textureManager.getTextureFromHandle(srcRenderTargetHandle);\n const dstTexture = this._textureManager.getTextureFromHandle(dstRenderTargetHandle);\n if (srcTexture && dstTexture) {\n srcTexture.shareDepth(dstTexture);\n }\n }\n _applyRenderTarget() {\n if (this._renderTargetIsBound) {\n return;\n }\n const handle = this._currentRenderTargetHandle;\n const textureSlot = this._textureManager._textures.get(handle);\n let renderTarget = textureSlot.texture;\n if (textureSlot.creationOptions.isHistoryTexture) {\n const historyEntry = this._textureManager._historyTextures.get(textureSlot.refHandle ?? handle);\n renderTarget = historyEntry.textures[historyEntry.index];\n }\n this._flushDebugMessages();\n if (!renderTarget) {\n if (handle === backbufferColorTextureHandle || textureSlot.refHandle === backbufferColorTextureHandle) {\n this._engine.restoreDefaultFramebuffer();\n }\n else if (handle === backbufferDepthStencilTextureHandle || textureSlot.refHandle === backbufferDepthStencilTextureHandle) {\n this._engine.restoreDefaultFramebuffer();\n }\n }\n else {\n this._engine.bindFramebuffer(renderTarget);\n }\n if (this._debugMessageWhenTargetBound !== undefined) {\n this._engine._debugPushGroup?.(this._debugMessageWhenTargetBound, 2);\n this._debugMessageWhenTargetBound = undefined;\n this._debugMessageHasBeenPushed = true;\n }\n this._renderTargetIsBound = true;\n }\n /** @internal */\n _dispose() {\n this._effectRenderer.dispose();\n this._copyTexture.dispose();\n }\n}\n","/**\n * Check if a TextureSize is an object\n * @param size The TextureSize to check\n * @returns True if the TextureSize is an object\n */\nexport function textureSizeIsObject(size) {\n // eslint-disable-next-line jsdoc/require-jsdoc\n return size.width !== undefined;\n}\n/**\n * Get the width/height dimensions from a TextureSize\n * @param size The TextureSize to get the dimensions from\n * @returns The width and height as an object\n */\nexport function getDimensionsFromTextureSize(size) {\n if (textureSizeIsObject(size)) {\n return { width: size.width, height: size.height };\n }\n return { width: size, height: size };\n}\n","import { getDimensionsFromTextureSize } from \"../Materials/Textures/textureCreationOptions.js\";\nimport { Texture } from \"../Materials/Textures/texture.js\";\nimport { backbufferColorTextureHandle, backbufferDepthStencilTextureHandle } from \"./frameGraphTypes.js\";\n\nvar FrameGraphTextureNamespace;\n(function (FrameGraphTextureNamespace) {\n FrameGraphTextureNamespace[FrameGraphTextureNamespace[\"Task\"] = 0] = \"Task\";\n FrameGraphTextureNamespace[FrameGraphTextureNamespace[\"Graph\"] = 1] = \"Graph\";\n FrameGraphTextureNamespace[FrameGraphTextureNamespace[\"External\"] = 2] = \"External\";\n})(FrameGraphTextureNamespace || (FrameGraphTextureNamespace = {}));\n/**\n * @experimental\n * @internal\n */\nexport class FrameGraphTextureManager {\n constructor(_engine, _debugTextures = false, _scene) {\n this._engine = _engine;\n this._debugTextures = _debugTextures;\n this._scene = _scene;\n this._textures = new Map();\n this._historyTextures = new Map();\n this._addSystemTextures();\n }\n isBackbuffer(handle) {\n if (handle === backbufferColorTextureHandle || handle === backbufferDepthStencilTextureHandle) {\n return true;\n }\n const textureEntry = this._textures.get(handle);\n if (!textureEntry) {\n return false;\n }\n return textureEntry.refHandle === backbufferColorTextureHandle || textureEntry.refHandle === backbufferDepthStencilTextureHandle;\n }\n isBackbufferColor(handle) {\n if (handle === backbufferColorTextureHandle) {\n return true;\n }\n const textureEntry = this._textures.get(handle);\n if (!textureEntry) {\n return false;\n }\n return textureEntry.refHandle === backbufferColorTextureHandle;\n }\n isBackbufferDepthStencil(handle) {\n if (handle === backbufferDepthStencilTextureHandle) {\n return true;\n }\n const textureEntry = this._textures.get(handle);\n if (!textureEntry) {\n return false;\n }\n return textureEntry.refHandle === backbufferDepthStencilTextureHandle;\n }\n getTextureCreationOptions(handle) {\n return this._textures.get(handle).creationOptions;\n }\n getTextureFromHandle(handle) {\n const historyEntry = this._historyTextures.get(handle);\n if (historyEntry) {\n return historyEntry.textures[historyEntry.index ^ 1]; // get the read texture\n }\n return this._textures.get(handle).texture;\n }\n importTexture(name, texture, handle) {\n const internalTexture = texture.texture;\n if (!internalTexture) {\n throw new Error(\"importTexture: Texture must have an internal texture to be imported\");\n }\n if (handle !== undefined) {\n this._freeEntry(handle);\n }\n const creationOptions = {\n size: { width: texture.width, height: texture.height },\n options: {\n generateMipMaps: internalTexture.generateMipMaps,\n generateDepthBuffer: texture._generateDepthBuffer,\n generateStencilBuffer: texture._generateStencilBuffer,\n samples: internalTexture.samples,\n label: internalTexture.label,\n types: [internalTexture.type],\n samplingModes: [internalTexture.samplingMode],\n formats: [internalTexture.format],\n targetTypes: [\n internalTexture.isCube\n ? 34067\n : internalTexture.is3D\n ? 32879\n : internalTexture.is2DArray\n ? 35866\n : 3553,\n ],\n useSRGBBuffers: [internalTexture._useSRGBBuffer],\n labels: internalTexture.label ? [internalTexture.label] : undefined,\n },\n sizeIsPercentage: false,\n };\n return this._createHandleForTexture(name, texture, creationOptions, FrameGraphTextureNamespace.External, false, handle);\n }\n createRenderTargetTexture(name, taskNamespace, creationOptions, multiTargetMode = false, handle) {\n return this._createHandleForTexture(name, null, creationOptions, taskNamespace ? FrameGraphTextureNamespace.Task : FrameGraphTextureNamespace.Graph, multiTargetMode, handle);\n }\n getAbsoluteDimensions(size, screenWidth = this._engine.getRenderWidth(true), screenHeight = this._engine.getRenderHeight(true)) {\n const { width, height } = getDimensionsFromTextureSize(size);\n return {\n width: Math.floor((width * screenWidth) / 100),\n height: Math.floor((height * screenHeight) / 100),\n };\n }\n updateHistoryTextures() {\n this._historyTextures.forEach((entry) => {\n entry.index = entry.index ^ 1;\n for (const refHandle of entry.refHandles) {\n const textureEntry = this._textures.get(refHandle);\n textureEntry.texture = entry.textures[entry.index];\n }\n });\n }\n dispose() {\n this.releaseTextures();\n }\n allocateTextures() {\n this._textures.forEach((entry) => {\n if (!entry.texture) {\n if (entry.refHandle !== undefined) {\n const refEntry = this._textures.get(entry.refHandle);\n entry.texture = refEntry.texture;\n entry.texture?.texture?.incrementReferences();\n if (refEntry.refHandle === backbufferColorTextureHandle) {\n entry.refHandle = backbufferColorTextureHandle;\n }\n if (refEntry.refHandle === backbufferDepthStencilTextureHandle) {\n entry.refHandle = backbufferDepthStencilTextureHandle;\n }\n }\n else if (entry.namespace !== FrameGraphTextureNamespace.External) {\n if (entry.parentHandle !== undefined) {\n const creationOptions = entry.creationOptions;\n const size = creationOptions.sizeIsPercentage ? this.getAbsoluteDimensions(creationOptions.size) : creationOptions.size;\n const parentEntry = this._textures.get(entry.parentHandle);\n const parentInternalTexture = parentEntry.texture.textures[entry.parentTextureIndex];\n const creationOptionsForTexture = {\n createMipMaps: creationOptions.options.createMipMaps,\n generateMipMaps: creationOptions.options.generateMipMaps,\n generateDepthBuffer: creationOptions.options.generateDepthBuffer,\n generateStencilBuffer: creationOptions.options.generateStencilBuffer,\n samples: creationOptions.options.samples,\n type: creationOptions.options.types[0],\n format: creationOptions.options.formats[0],\n useSRGBBuffer: creationOptions.options.useSRGBBuffers[0],\n colorAttachment: parentInternalTexture,\n label: creationOptions.options.label,\n };\n entry.texture = this._engine.createRenderTargetTexture(size, creationOptionsForTexture);\n parentInternalTexture.incrementReferences();\n }\n else {\n const creationOptions = entry.creationOptions;\n const size = creationOptions.sizeIsPercentage ? this.getAbsoluteDimensions(creationOptions.size) : creationOptions.size;\n entry.texture = this._engine.createMultipleRenderTarget(size, creationOptions.options, false);\n }\n }\n }\n if (entry.texture && entry.refHandle === undefined) {\n entry.debug?.dispose();\n entry.debug = this._createDebugTexture(entry.name, entry.texture);\n }\n });\n this._historyTextures.forEach((entry) => {\n for (let i = 0; i < entry.handles.length; i++) {\n entry.textures[i] = this._textures.get(entry.handles[i]).texture;\n }\n });\n }\n createDanglingHandle() {\n return FrameGraphTextureManager._Counter++;\n }\n resolveDanglingHandle(danglingHandle, handle) {\n const textureEntry = this._textures.get(handle);\n if (textureEntry === undefined) {\n throw new Error(`resolveDanglingHandle: Handle ${handle} does not exist!`);\n }\n this._textures.set(danglingHandle, {\n texture: textureEntry.texture,\n refHandle: handle,\n name: textureEntry.name,\n creationOptions: {\n size: { ...textureEntry.creationOptions.size },\n options: { ...textureEntry.creationOptions.options, label: textureEntry.name },\n sizeIsPercentage: textureEntry.creationOptions.sizeIsPercentage,\n isHistoryTexture: false,\n },\n namespace: textureEntry.namespace,\n parentHandle: textureEntry.parentHandle,\n parentTextureIndex: textureEntry.parentTextureIndex,\n });\n const historyEntry = this._historyTextures.get(handle);\n if (historyEntry) {\n historyEntry.refHandles.push(danglingHandle);\n }\n }\n releaseTextures(releaseAll = true) {\n this._textures.forEach((entry, handle) => {\n if (releaseAll || entry.namespace !== FrameGraphTextureNamespace.External) {\n entry.debug?.dispose();\n entry.debug = undefined;\n }\n if (entry.namespace === FrameGraphTextureNamespace.External) {\n return;\n }\n entry.texture?.dispose();\n entry.texture = null;\n if (releaseAll || entry.namespace === FrameGraphTextureNamespace.Task) {\n this._textures.delete(handle);\n }\n });\n this._historyTextures.forEach((entry) => {\n for (let i = 0; i < entry.handles.length; i++) {\n entry.textures[i] = null;\n }\n });\n if (releaseAll) {\n this._textures.clear();\n this._historyTextures.clear();\n this._addSystemTextures();\n }\n }\n _addSystemTextures() {\n const size = { width: this._engine.getRenderWidth(true), height: this._engine.getRenderHeight(true) };\n this._textures.set(backbufferColorTextureHandle, {\n name: \"backbuffer color\",\n texture: null,\n creationOptions: {\n size,\n options: {},\n sizeIsPercentage: false,\n },\n namespace: FrameGraphTextureNamespace.External,\n });\n this._textures.set(backbufferDepthStencilTextureHandle, {\n name: \"backbuffer depth/stencil\",\n texture: null,\n creationOptions: {\n size,\n options: {},\n sizeIsPercentage: false,\n },\n namespace: FrameGraphTextureNamespace.External,\n });\n }\n _createDebugTexture(name, texture) {\n if (!this._debugTextures || !this._scene) {\n return;\n }\n const textureDebug = new Texture(null, this._scene);\n textureDebug.name = name;\n textureDebug._texture = texture.texture || texture._depthStencilTexture;\n textureDebug._texture.incrementReferences();\n return textureDebug;\n }\n _freeEntry(handle) {\n const entry = this._textures.get(handle);\n if (entry) {\n entry.debug?.dispose();\n this._textures.delete(handle);\n }\n }\n _createHandleForTexture(name, texture, creationOptions, namespace, multiTargetMode = false, handle, parentHandle, parentTextureIndex) {\n handle = handle ?? FrameGraphTextureManager._Counter++;\n const textureName = creationOptions.isHistoryTexture ? `${name} - ping` : name;\n const textureEntry = {\n texture,\n name: textureName,\n creationOptions: {\n size: getDimensionsFromTextureSize(creationOptions.size),\n options: { ...creationOptions.options, label: textureName },\n sizeIsPercentage: creationOptions.sizeIsPercentage,\n isHistoryTexture: creationOptions.isHistoryTexture,\n },\n namespace,\n parentHandle,\n parentTextureIndex,\n };\n this._textures.set(handle, textureEntry);\n if (namespace === FrameGraphTextureNamespace.External) {\n return handle;\n }\n if (creationOptions.isHistoryTexture) {\n const pongCreationOptions = {\n size: { ...textureEntry.creationOptions.size },\n options: { ...textureEntry.creationOptions.options },\n sizeIsPercentage: textureEntry.creationOptions.sizeIsPercentage,\n isHistoryTexture: false,\n };\n const pongTexture = this._createHandleForTexture(`${name} - pong`, null, pongCreationOptions, namespace, false);\n this._historyTextures.set(handle, { textures: [null, null], handles: [handle, pongTexture], index: 0, refHandles: [] });\n return handle;\n }\n if (multiTargetMode) {\n const textureCount = creationOptions.options.textureCount ?? 1;\n for (let i = 0; i < textureCount; i++) {\n const label = creationOptions.options.labels?.[i] ?? `${i}`;\n const textureName = `${name} - ${label}`;\n const creationOptionsForTexture = {\n size: getDimensionsFromTextureSize(creationOptions.size),\n options: {\n ...creationOptions.options,\n formats: [creationOptions.options.formats[i]],\n types: [creationOptions.options.types[i]],\n textureCount: 1,\n },\n sizeIsPercentage: creationOptions.sizeIsPercentage,\n };\n this._createHandleForTexture(textureName, null, creationOptionsForTexture, namespace, false, handle + i + 1, handle, i);\n }\n FrameGraphTextureManager._Counter += textureCount;\n }\n return handle;\n }\n}\nFrameGraphTextureManager._Counter = 2; // 0 and 1 are reserved for backbuffer textures\n","import { FrameGraphPass } from \"./Passes/pass.js\";\nimport { FrameGraphRenderPass } from \"./Passes/renderPass.js\";\nimport { FrameGraphCullPass } from \"./Passes/cullPass.js\";\nimport { FrameGraphRenderContext } from \"./frameGraphRenderContext.js\";\nimport { FrameGraphContext } from \"./frameGraphContext.js\";\nimport { FrameGraphTextureManager } from \"./frameGraphTextureManager.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { getDimensionsFromTextureSize, textureSizeIsObject } from \"../Materials/Textures/textureCreationOptions.js\";\nvar FrameGraphPassType;\n(function (FrameGraphPassType) {\n FrameGraphPassType[FrameGraphPassType[\"Render\"] = 0] = \"Render\";\n FrameGraphPassType[FrameGraphPassType[\"Cull\"] = 1] = \"Cull\";\n FrameGraphPassType[FrameGraphPassType[\"Compute\"] = 2] = \"Compute\";\n})(FrameGraphPassType || (FrameGraphPassType = {}));\n/**\n * Class used to implement a frame graph\n * @experimental\n */\nexport class FrameGraph {\n /**\n * Gets the engine used by the frame graph\n */\n get engine() {\n return this._engine;\n }\n /**\n * Constructs the frame graph\n * @param engine defines the hosting engine\n * @param debugTextures defines a boolean indicating that textures created by the frame graph should be visible in the inspector\n * @param scene defines the scene in which debugging textures are to be created\n */\n constructor(engine, debugTextures = false, scene) {\n this._tasks = [];\n this._currentProcessedTask = null;\n /**\n * Observable raised when the node render graph is built\n */\n this.onBuildObservable = new Observable();\n this._engine = engine;\n this._textureManager = new FrameGraphTextureManager(this._engine, debugTextures, scene);\n this._passContext = new FrameGraphContext();\n this._renderContext = new FrameGraphRenderContext(this._engine, this._textureManager);\n }\n /**\n * Gets a task by name\n * @param name Name of the task to get\n * @returns The task or undefined if not found\n */\n getTaskByName(name) {\n return this._tasks.find((t) => t.name === name);\n }\n /**\n * Adds a task to the frame graph\n * @param task Task to add\n */\n addTask(task) {\n if (this._currentProcessedTask !== null) {\n throw new Error(`FrameGraph.addTask: Can't add the task \"${task.name}\" while another task is currently building (task: ${this._currentProcessedTask.name}).`);\n }\n this._tasks.push(task);\n }\n /**\n * Adds a render pass to a task. This method can only be called during a Task.record execution.\n * @param name The name of the pass\n * @param whenTaskDisabled If true, the pass will be added to the list of passes to execute when the task is disabled (default is false)\n * @returns The render pass created\n */\n addRenderPass(name, whenTaskDisabled = false) {\n return this._addPass(name, FrameGraphPassType.Render, whenTaskDisabled);\n }\n /**\n * Adds a cull pass to a task. This method can only be called during a Task.record execution.\n * @param name The name of the pass\n * @param whenTaskDisabled If true, the pass will be added to the list of passes to execute when the task is disabled (default is false)\n * @returns The cull pass created\n */\n addCullPass(name, whenTaskDisabled = false) {\n return this._addPass(name, FrameGraphPassType.Cull, whenTaskDisabled);\n }\n _addPass(name, passType, whenTaskDisabled = false) {\n if (!this._currentProcessedTask) {\n throw new Error(\"FrameGraph: A pass must be created during a Task.record execution only.\");\n }\n let pass;\n switch (passType) {\n case FrameGraphPassType.Render:\n pass = new FrameGraphRenderPass(name, this._currentProcessedTask, this._renderContext, this._engine);\n break;\n case FrameGraphPassType.Cull:\n pass = new FrameGraphCullPass(name, this._currentProcessedTask, this._passContext, this._engine);\n break;\n default:\n pass = new FrameGraphPass(name, this._currentProcessedTask, this._passContext);\n break;\n }\n this._currentProcessedTask._addPass(pass, whenTaskDisabled);\n return pass;\n }\n /**\n * Builds the frame graph.\n * This method should be called after all tasks have been added to the frame graph (FrameGraph.addTask) and before the graph is executed (FrameGraph.execute).\n */\n build() {\n this._textureManager.releaseTextures(false);\n for (const task of this._tasks) {\n task._reset();\n this._currentProcessedTask = task;\n task.record();\n this._currentProcessedTask = null;\n }\n this._textureManager.allocateTextures();\n for (const task of this._tasks) {\n task._checkTask();\n }\n this.onBuildObservable.notifyObservers(this);\n }\n /**\n * Returns a promise that resolves when the frame graph is ready to be executed\n * This method must be called after the graph has been built (FrameGraph.build called)!\n * @param timeout Timeout in ms between retries (default is 16)\n * @returns The promise that resolves when the graph is ready\n */\n whenReadyAsync(timeout = 16) {\n return new Promise((resolve) => {\n const checkReady = () => {\n let ready = true;\n for (const task of this._tasks) {\n ready && (ready = task.isReady());\n }\n if (ready) {\n resolve();\n }\n else {\n setTimeout(checkReady, timeout);\n }\n };\n checkReady();\n });\n }\n /**\n * Executes the frame graph.\n */\n execute() {\n this._renderContext.bindRenderTarget();\n this._textureManager.updateHistoryTextures();\n for (const task of this._tasks) {\n const passes = task._getPasses();\n for (const pass of passes) {\n pass._execute();\n }\n }\n }\n /**\n * Imports a texture into the frame graph\n * @param name Name of the texture\n * @param texture Texture to import\n * @param handle Existing handle to use for the texture. If not provided (default), a new handle will be created.\n * @returns The handle to the texture\n */\n importTexture(name, texture, handle) {\n return this._textureManager.importTexture(name, texture, handle);\n }\n /**\n * Gets the creation options of a texture\n * @param handle Handle of the texture\n * @param cloneOptions If true, the options will be cloned before being returned (default is false)\n * @returns The creation options of the texture\n */\n getTextureCreationOptions(handle, cloneOptions = false) {\n const creationOptions = this._textureManager.getTextureCreationOptions(handle);\n return cloneOptions\n ? {\n size: getDimensionsFromTextureSize(creationOptions.size),\n options: { ...creationOptions.options },\n sizeIsPercentage: creationOptions.sizeIsPercentage,\n }\n : creationOptions;\n }\n /**\n * Gets the description of a texture\n * @param handle Handle of the texture\n * @returns The description of the texture\n */\n getTextureDescription(handle) {\n const creationOptions = this.getTextureCreationOptions(handle);\n const size = !creationOptions.sizeIsPercentage\n ? textureSizeIsObject(creationOptions.size)\n ? { width: creationOptions.size.width, height: creationOptions.size.height }\n : { width: creationOptions.size, height: creationOptions.size }\n : this._textureManager.getAbsoluteDimensions(creationOptions.size);\n return {\n size,\n options: { ...creationOptions.options },\n };\n }\n /**\n * Gets a texture handle or creates a new texture if the handle is not provided.\n * @param handle If provided, will simply return the handle\n * @param newTextureName Name of the new texture to create\n * @param creationOptions Options to use when creating the new texture\n * @returns The handle to the texture. If handle is not provided, newTextureName and creationOptions must be provided.\n */\n getTextureHandleOrCreateTexture(handle, newTextureName, creationOptions) {\n if (handle === undefined) {\n if (newTextureName === undefined || creationOptions === undefined) {\n throw new Error(\"getTextureHandleOrCreateTexture: Either handle or newTextureName and creationOptions must be provided.\");\n }\n return this.createRenderTargetTexture(newTextureName, creationOptions);\n }\n return handle;\n }\n /**\n * Gets a texture from a handle\n * @param handle The handle of the texture\n * @returns The texture or null if not found\n */\n getTexture(handle) {\n return this._textureManager.getTextureFromHandle(handle);\n }\n /**\n * Creates a new render target texture\n * @param name Name of the texture\n * @param creationOptions Options to use when creating the texture\n * @param multiTargetMode If true, the texture will be created in multi target mode (default is false). In this mode, a handle is created for each target separately, in addition to the handle created for the main render target texture itself.\n * @returns The handle to the texture\n */\n createRenderTargetTexture(name, creationOptions, multiTargetMode = false) {\n return this._textureManager.createRenderTargetTexture(name, !!this._currentProcessedTask, creationOptions, multiTargetMode);\n }\n /**\n * Creates a handle which is not associated with any texture.\n * Call resolveDanglingHandle to associate the handle with a valid texture handle.\n * @returns The dangling handle\n */\n createDanglingHandle() {\n return this._textureManager.createDanglingHandle();\n }\n /**\n * Associates a texture with a dangling handle\n * @param danglingHandle The dangling handle\n * @param handle The handle to associate with the dangling handle (if not provided, a new texture handle will be created)\n * @param newTextureName The name of the new texture to create (if handle is not provided)\n * @param creationOptions The options to use when creating the new texture (if handle is not provided)\n */\n resolveDanglingHandle(danglingHandle, handle, newTextureName, creationOptions) {\n if (handle === undefined) {\n if (newTextureName === undefined || creationOptions === undefined) {\n throw new Error(\"resolveDanglingHandle: Either handle or newTextureName and creationOptions must be provided.\");\n }\n this._textureManager.createRenderTargetTexture(newTextureName, !!this._currentProcessedTask, creationOptions, false, danglingHandle);\n return;\n }\n this._textureManager.resolveDanglingHandle(danglingHandle, handle);\n }\n /**\n * Checks if a handle is a history texture (or points to a history texture, for a dangling handle)\n * @param handle The handle to check\n * @returns True if the handle is a history texture, otherwise false\n */\n isHistoryTexture(handle) {\n const entry = this._textureManager._textures.get(handle);\n if (!entry) {\n return false;\n }\n handle = entry.refHandle ?? handle;\n return this._textureManager._historyTextures.has(handle);\n }\n /**\n * Clears the frame graph (remove the tasks and release the textures).\n * The frame graph can be built again after this method is called.\n */\n clear() {\n for (const task of this._tasks) {\n task._reset();\n }\n this._tasks.length = 0;\n this._textureManager.releaseTextures();\n this._currentProcessedTask = null;\n }\n /**\n * Disposes the frame graph\n */\n dispose() {\n this.clear();\n this._textureManager.dispose();\n this._renderContext._dispose();\n }\n}\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { Observable } from \"../../../Misc/observable.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../Types/nodeRenderGraphTypes.js\";\nimport { NodeRenderGraphBlock } from \"../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\nimport { backbufferColorTextureHandle, backbufferDepthStencilTextureHandle } from \"../../../FrameGraph/frameGraphTypes.js\";\n\n/**\n * Block used to expose an input value\n */\nexport class NodeRenderGraphInputBlock extends NodeRenderGraphBlock {\n /**\n * Gets or sets the connection point type (default is Undefined)\n */\n get type() {\n return this._type;\n }\n /**\n * Creates a new NodeRenderGraphInputBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n * @param type defines the type of the input (can be set to NodeRenderGraphBlockConnectionPointTypes.Undefined)\n */\n constructor(name, frameGraph, scene, type = NodeRenderGraphBlockConnectionPointTypes.Undefined) {\n super(name, frameGraph, scene);\n this._storedValue = null;\n this._type = NodeRenderGraphBlockConnectionPointTypes.Undefined;\n /** Gets an observable raised when the value is changed */\n this.onValueChangedObservable = new Observable();\n /** Indicates that the input is externally managed */\n this.isExternal = false;\n this._type = type;\n this._isInput = true;\n this.registerOutput(\"output\", type);\n this.setDefaultValue();\n }\n /**\n * Set the input block to its default value (based on its type)\n */\n setDefaultValue() {\n switch (this.type) {\n case NodeRenderGraphBlockConnectionPointTypes.Texture:\n case NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth:\n case NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth:\n case NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal:\n case NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal:\n case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo:\n case NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity:\n case NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition:\n case NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition:\n case NodeRenderGraphBlockConnectionPointTypes.TextureVelocity:\n case NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity:\n case NodeRenderGraphBlockConnectionPointTypes.TextureIrradiance:\n case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedoSqrt: {\n const options = {\n size: { width: 100, height: 100 },\n options: {\n createMipMaps: false,\n generateMipMaps: false,\n types: [0],\n formats: [5],\n samples: 1,\n useSRGBBuffers: [false],\n generateDepthBuffer: false,\n },\n sizeIsPercentage: true,\n };\n this.creationOptions = options;\n break;\n }\n case NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment: {\n const options = {\n size: { width: 100, height: 100 },\n options: {\n createMipMaps: false,\n generateMipMaps: false,\n depthTextureFormat: 13,\n textureCount: 0,\n samples: 1,\n generateDepthTexture: true,\n generateDepthBuffer: true,\n generateStencilBuffer: true,\n },\n sizeIsPercentage: true,\n };\n this.creationOptions = options;\n break;\n }\n case NodeRenderGraphBlockConnectionPointTypes.ObjectList:\n this.value = { meshes: [], particleSystems: [] };\n this.isExternal = true;\n break;\n case NodeRenderGraphBlockConnectionPointTypes.Camera:\n this.value = this._scene.cameras[0];\n this.isExternal = true;\n break;\n default:\n this.isExternal = true;\n }\n }\n /**\n * Gets or sets the value of that point.\n */\n get value() {\n return this._storedValue;\n }\n set value(value) {\n this._storedValue = value;\n this.output.value = undefined;\n this.onValueChangedObservable.notifyObservers(this);\n }\n /**\n * Gets the value as a specific type\n * @returns the value as a specific type\n */\n getTypedValue() {\n return this._storedValue;\n }\n /**\n * Gets the value as a render target wrapper\n * @returns The value as a render target wrapper if it is a render target wrapper, otherwise undefined\n */\n getValueAsRenderTargetWrapper() {\n if (this._storedValue.shareDepth) {\n return this._storedValue;\n }\n return null;\n }\n /**\n * Gets the value as a render target wrapper\n * @returns The internal texture stored in value if value is a render target wrapper or a thin texture, otherwise null\n */\n getInternalTextureFromValue() {\n if (this._storedValue.shareDepth) {\n return this._storedValue.texture;\n }\n return null;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphInputBlock\";\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Check if the block is a texture of any type\n * @returns true if the block is a texture\n */\n isAnyTexture() {\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureAll) !== 0;\n }\n /**\n * Gets a boolean indicating that the connection point is the back buffer texture\n * @returns true if the connection point is the back buffer texture\n */\n isBackBuffer() {\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureBackBuffer) !== 0;\n }\n /**\n * Gets a boolean indicating that the connection point is a depth/stencil attachment texture\n * @returns true if the connection point is a depth/stencil attachment texture\n */\n isBackBufferDepthStencilAttachment() {\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment) !== 0;\n }\n /**\n * Check if the block is a camera\n * @returns true if the block is a camera\n */\n isCamera() {\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.Camera) !== 0;\n }\n /**\n * Check if the block is an object list\n * @returns true if the block is an object list\n */\n isObjectList() {\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.ObjectList) !== 0;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (this.isExternal) {\n if (this.isBackBuffer()) {\n this.output.value = backbufferColorTextureHandle;\n }\n else if (this.isBackBufferDepthStencilAttachment()) {\n this.output.value = backbufferDepthStencilTextureHandle;\n }\n else if (this.isCamera()) {\n this.output.value = this.getTypedValue();\n }\n else if (this.isObjectList()) {\n this.output.value = this.getTypedValue();\n }\n else {\n if (this._storedValue === undefined || this._storedValue === null) {\n throw new Error(`NodeRenderGraphInputBlock: External input \"${this.name}\" is not set`);\n }\n const texture = this.getValueAsRenderTargetWrapper();\n if (texture) {\n this.output.value = this._frameGraph.importTexture(this.name, texture, this.output.value);\n }\n }\n return;\n }\n if ((this.type & NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer) !== 0) {\n const textureCreateOptions = this.creationOptions;\n if (!textureCreateOptions) {\n throw new Error(`NodeRenderGraphInputBlock: Creation options are missing for texture \"${this.name}\"`);\n }\n this.output.value = this._frameGraph.createRenderTargetTexture(this.name, textureCreateOptions);\n }\n }\n dispose() {\n this._storedValue = null;\n this.onValueChangedObservable.clear();\n super.dispose();\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.isExternal = ${this.isExternal};`);\n if (this.isAnyTexture()) {\n if (!this.isExternal) {\n codes.push(`${this._codeVariableName}.creationOptions = ${JSON.stringify(this.creationOptions)};`);\n }\n else {\n codes.push(`${this._codeVariableName}.value = EXTERNAL_TEXTURE; // TODO: set the external texture`);\n }\n }\n else if (this.isCamera()) {\n codes.push(`${this._codeVariableName}.value = EXTERNAL_CAMERA; // TODO: set the external camera`);\n }\n else if (this.isObjectList()) {\n codes.push(`${this._codeVariableName}.value = EXTERNAL_OBJECT_LIST; // TODO: set the external object list`);\n }\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.type = this.type;\n serializationObject.isExternal = this.isExternal;\n if (this.creationOptions) {\n serializationObject.creationOptions = this.creationOptions;\n }\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this._type = serializationObject.type;\n this.output.type = this._type;\n this.isExternal = serializationObject.isExternal;\n if (serializationObject.creationOptions) {\n this.creationOptions = serializationObject.creationOptions;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Is external\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphInputBlock.prototype, \"isExternal\", void 0);\nRegisterClass(\"BABYLON.NodeRenderGraphInputBlock\", NodeRenderGraphInputBlock);\n","import { Color4 } from \"../../../Maths/math.color.js\";\nimport { FrameGraphTask } from \"../../frameGraphTask.js\";\n/**\n * Task used to clear a texture.\n */\nexport class FrameGraphClearTextureTask extends FrameGraphTask {\n constructor(name, frameGraph) {\n super(name, frameGraph);\n /**\n * The color to clear the texture with.\n */\n this.color = new Color4(0.2, 0.2, 0.3, 1);\n /**\n * If the color should be cleared.\n */\n this.clearColor = true;\n /**\n * If the depth should be cleared.\n */\n this.clearDepth = false;\n /**\n * If the stencil should be cleared.\n */\n this.clearStencil = false;\n this.outputTexture = this._frameGraph.createDanglingHandle();\n }\n record() {\n if (this.destinationTexture === undefined) {\n throw new Error(`FrameGraphClearTextureTask ${this.name}: destinationTexture is required`);\n }\n this._frameGraph.resolveDanglingHandle(this.outputTexture, this.destinationTexture);\n const pass = this._frameGraph.addRenderPass(this.name);\n pass.setRenderTarget(this.destinationTexture);\n pass.setExecuteFunc((context) => {\n context.clear(this.color, !!this.clearColor, !!this.clearDepth, !!this.clearStencil);\n });\n const passDisabled = this._frameGraph.addRenderPass(this.name + \"_disabled\", true);\n passDisabled.setRenderTarget(this.destinationTexture);\n passDisabled.setExecuteFunc((_context) => { });\n }\n}\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { Color4 } from \"../../../../Maths/math.color.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { FrameGraphClearTextureTask } from \"../../../Tasks/Texture/clearTextureTask.js\";\n/**\n * Block used to clear a texture\n */\nexport class NodeRenderGraphClearBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphClearBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n this.registerInput(\"texture\", NodeRenderGraphBlockConnectionPointTypes.Texture);\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.texture.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAll);\n this.output._typeConnectionSource = this.texture;\n this._frameGraphTask = new FrameGraphClearTextureTask(name, frameGraph);\n }\n /** Gets or sets the clear color */\n get color() {\n return this._frameGraphTask.color;\n }\n set color(value) {\n this._frameGraphTask.color = value;\n }\n /** Gets or sets a boolean indicating whether the color part of the texture should be cleared. */\n get clearColor() {\n return !!this._frameGraphTask.clearColor;\n }\n set clearColor(value) {\n this._frameGraphTask.clearColor = value;\n }\n /** Gets or sets a boolean indicating whether the depth part of the texture should be cleared. */\n get clearDepth() {\n return !!this._frameGraphTask.clearDepth;\n }\n set clearDepth(value) {\n this._frameGraphTask.clearDepth = value;\n }\n /** Gets or sets a boolean indicating whether the stencil part of the texture should be cleared. */\n get clearStencil() {\n return !!this._frameGraphTask.clearStencil;\n }\n set clearStencil(value) {\n this._frameGraphTask.clearStencil = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphClearBlock\";\n }\n /**\n * Gets the texture input component\n */\n get texture() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._frameGraphTask.name = this.name;\n this._propagateInputValueToOutput(this.texture, this.output);\n const textureConnectedPoint = this.texture.connectedPoint;\n if (textureConnectedPoint) {\n this._frameGraphTask.destinationTexture = textureConnectedPoint.value;\n }\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.color = new BABYLON.Color4(${this.color.r}, ${this.color.g}, ${this.color.b}, ${this.color.a});`);\n codes.push(`${this._codeVariableName}.clearColor = ${this.clearColor};`);\n codes.push(`${this._codeVariableName}.clearDepth = ${this.clearDepth};`);\n codes.push(`${this._codeVariableName}.clearStencil = ${this.clearStencil};`);\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.color = this.color.asArray();\n serializationObject.clearColor = this.clearColor;\n serializationObject.clearDepth = this.clearDepth;\n serializationObject.clearStencil = this.clearStencil;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.color = Color4.FromArray(serializationObject.color);\n this.clearColor = serializationObject.clearColor;\n this.clearDepth = serializationObject.clearDepth;\n this.clearStencil = serializationObject.clearStencil;\n }\n}\n__decorate([\n editableInPropertyPage(\"Color\", 5 /* PropertyTypeForEdition.Color4 */)\n], NodeRenderGraphClearBlock.prototype, \"color\", null);\n__decorate([\n editableInPropertyPage(\"Clear color\", 0 /* PropertyTypeForEdition.Boolean */, undefined, { embedded: true })\n], NodeRenderGraphClearBlock.prototype, \"clearColor\", null);\n__decorate([\n editableInPropertyPage(\"Clear depth\", 0 /* PropertyTypeForEdition.Boolean */, undefined, { embedded: true })\n], NodeRenderGraphClearBlock.prototype, \"clearDepth\", null);\n__decorate([\n editableInPropertyPage(\"Clear stencil\", 0 /* PropertyTypeForEdition.Boolean */, undefined, { embedded: true })\n], NodeRenderGraphClearBlock.prototype, \"clearStencil\", null);\nRegisterClass(\"BABYLON.NodeRenderGraphClearBlock\", NodeRenderGraphClearBlock);\n","import { Logger } from \"../../Misc/logger.js\";\n/**\n * Class used to store node based render graph build state\n */\nexport class NodeRenderGraphBuildState {\n constructor() {\n /** Gets or sets a boolean indicating that verbose mode is on */\n this.verbose = false;\n /**\n * Gets or sets the list of non connected mandatory inputs\n * @internal\n */\n this._notConnectedNonOptionalInputs = [];\n }\n /**\n * Emits console errors and exceptions if there is a failing check\n * @param errorObservable defines an Observable to send the error message\n * @returns true if all checks pass\n */\n emitErrors(errorObservable = null) {\n let errorMessage = \"\";\n for (const notConnectedInput of this._notConnectedNonOptionalInputs) {\n errorMessage += `input \"${notConnectedInput.name}\" from block \"${notConnectedInput.ownerBlock.name}\"[${notConnectedInput.ownerBlock.getClassName()}] is not connected and is not optional.\\n`;\n }\n if (errorMessage) {\n if (errorObservable) {\n errorObservable.notifyObservers(errorMessage);\n }\n Logger.Error(\"Build of node render graph failed:\\n\" + errorMessage);\n return false;\n }\n return true;\n }\n}\n","import { __decorate } from \"../../tslib.es6.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { NodeRenderGraphOutputBlock } from \"./Blocks/outputBlock.js\";\nimport { FrameGraph } from \"../frameGraph.js\";\nimport { GetClass } from \"../../Misc/typeStore.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { SerializationHelper } from \"../../Misc/decorators.serialization.js\";\n\nimport { WebRequest } from \"../../Misc/webRequest.js\";\nimport { NodeRenderGraphInputBlock } from \"./Blocks/inputBlock.js\";\nimport { Tools } from \"../../Misc/tools.js\";\nimport { Engine } from \"../../Engines/engine.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"./Types/nodeRenderGraphTypes.js\";\nimport { NodeRenderGraphClearBlock } from \"./Blocks/Textures/clearBlock.js\";\nimport { NodeRenderGraphBuildState } from \"./nodeRenderGraphBuildState.js\";\n/**\n * Defines a node render graph\n */\nexport class NodeRenderGraph {\n /** @returns the inspector from bundle or global */\n _getGlobalNodeRenderGraphEditor() {\n // UMD Global name detection from Webpack Bundle UMD Name.\n if (typeof NODERENDERGRAPHEDITOR !== \"undefined\") {\n return NODERENDERGRAPHEDITOR;\n }\n // In case of module let's check the global emitted from the editor entry point.\n if (typeof BABYLON !== \"undefined\" && typeof BABYLON.NodeRenderGraphEditor !== \"undefined\") {\n return BABYLON;\n }\n return undefined;\n }\n /**\n * Gets the frame graph used by this node render graph\n */\n get frameGraph() {\n return this._frameGraph;\n }\n /**\n * Gets the scene used by this node render graph\n * @returns the scene used by this node render graph\n */\n getScene() {\n return this._scene;\n }\n /**\n * Creates a new node render graph\n * @param name defines the name of the node render graph\n * @param scene defines the scene to use to execute the graph\n * @param options defines the options to use when creating the graph\n */\n constructor(name, scene, options) {\n this._buildId = NodeRenderGraph._BuildIdGenerator++;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this.BJSNODERENDERGRAPHEDITOR = this._getGlobalNodeRenderGraphEditor();\n /**\n * Gets or sets data used by visual editor\n * @see https://nrge.babylonjs.com\n */\n this.editorData = null;\n /**\n * Gets an array of blocks that needs to be serialized even if they are not yet connected\n */\n this.attachedBlocks = [];\n /**\n * Observable raised when the node render graph is built\n */\n this.onBuildObservable = new Observable();\n /**\n * Observable raised when an error is detected\n */\n this.onBuildErrorObservable = new Observable();\n /** Gets or sets the RenderGraphOutputBlock used to gather the final node render graph data */\n this.outputBlock = null;\n this._resizeObserver = null;\n this.name = name;\n this._scene = scene;\n this._engine = scene.getEngine();\n options = {\n debugTextures: false,\n autoConfigure: false,\n verbose: false,\n rebuildGraphOnEngineResize: true,\n autoFillExternalInputs: true,\n ...options,\n };\n this._options = options;\n this._frameGraph = new FrameGraph(this._engine, options.debugTextures, this._scene);\n if (options.rebuildGraphOnEngineResize) {\n this._resizeObserver = this._engine.onResizeObservable.add(() => {\n this.build();\n });\n }\n }\n /**\n * Gets the current class name (\"NodeRenderGraph\")\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraph\";\n }\n /**\n * Gets a block by its name\n * @param name defines the name of the block to retrieve\n * @returns the required block or null if not found\n */\n getBlockByName(name) {\n let result = null;\n for (const block of this.attachedBlocks) {\n if (block.name === name) {\n if (!result) {\n result = block;\n }\n else {\n Tools.Warn(\"More than one block was found with the name `\" + name + \"`\");\n return result;\n }\n }\n }\n return result;\n }\n /**\n * Get a block using a predicate\n * @param predicate defines the predicate used to find the good candidate\n * @returns the required block or null if not found\n */\n getBlockByPredicate(predicate) {\n for (const block of this.attachedBlocks) {\n if (predicate(block)) {\n return block;\n }\n }\n return null;\n }\n /**\n * Get all blocks that match a predicate\n * @param predicate defines the predicate used to find the good candidate(s)\n * @returns the list of blocks found\n */\n getBlocksByPredicate(predicate) {\n const blocks = [];\n for (const block of this.attachedBlocks) {\n if (predicate(block)) {\n blocks.push(block);\n }\n }\n return blocks;\n }\n /**\n * Gets the list of input blocks attached to this material\n * @returns an array of InputBlocks\n */\n getInputBlocks() {\n const blocks = [];\n for (const block of this.attachedBlocks) {\n if (block.isInput) {\n blocks.push(block);\n }\n }\n return blocks;\n }\n /**\n * Launch the node render graph editor\n * @param config Define the configuration of the editor\n * @returns a promise fulfilled when the node editor is visible\n */\n edit(config) {\n return new Promise((resolve) => {\n this.BJSNODERENDERGRAPHEDITOR = this.BJSNODERENDERGRAPHEDITOR || this._getGlobalNodeRenderGraphEditor();\n if (typeof this.BJSNODERENDERGRAPHEDITOR == \"undefined\") {\n const editorUrl = config && config.editorURL ? config.editorURL : NodeRenderGraph.EditorURL;\n // Load editor and add it to the DOM\n Tools.LoadBabylonScript(editorUrl, () => {\n this.BJSNODERENDERGRAPHEDITOR = this.BJSNODERENDERGRAPHEDITOR || this._getGlobalNodeRenderGraphEditor();\n this._createNodeEditor(config?.nodeRenderGraphEditorConfig);\n resolve();\n });\n }\n else {\n // Otherwise creates the editor\n this._createNodeEditor(config?.nodeRenderGraphEditorConfig);\n resolve();\n }\n });\n }\n /**\n * Creates the node editor window.\n * @param additionalConfig Additional configuration for the FGE\n */\n _createNodeEditor(additionalConfig) {\n const nodeEditorConfig = {\n nodeRenderGraph: this,\n ...additionalConfig,\n };\n this.BJSNODERENDERGRAPHEDITOR.NodeRenderGraphEditor.Show(nodeEditorConfig);\n }\n /**\n * Build the final list of blocks that will be executed by the \"execute\" method\n */\n build() {\n if (!this.outputBlock) {\n throw new Error(\"You must define the outputBlock property before building the node render graph\");\n }\n this._initializeBlock(this.outputBlock);\n this._frameGraph.clear();\n const state = new NodeRenderGraphBuildState();\n state.buildId = this._buildId;\n state.verbose = this._options.verbose;\n if (this._options.autoFillExternalInputs) {\n this._autoFillExternalInputs();\n }\n this.outputBlock.build(state);\n this._frameGraph.build();\n this._buildId = NodeRenderGraph._BuildIdGenerator++;\n if (state.emitErrors(this.onBuildErrorObservable)) {\n this.onBuildObservable.notifyObservers(this);\n }\n }\n _autoFillExternalInputs() {\n const allInputs = this.getInputBlocks();\n let cameraIndex = 0;\n for (const input of allInputs) {\n if (!input.isExternal) {\n continue;\n }\n if (!input.isAnAncestorOfType(\"NodeRenderGraphOutputBlock\")) {\n continue;\n }\n if ((input.type & NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer) !== 0) {\n // nothing to do\n }\n else if (input.isCamera()) {\n const camera = this._scene.cameras[cameraIndex++] || this._scene.cameras[0];\n if (!this._scene.cameraToUseForPointers) {\n this._scene.cameraToUseForPointers = camera;\n }\n input.value = camera;\n }\n else if (input.isObjectList()) {\n input.value = { meshes: this._scene.meshes, particleSystems: this._scene.particleSystems };\n }\n }\n }\n /**\n * Returns a promise that resolves when the node render graph is ready to be executed\n * This method must be called after the graph has been built (NodeRenderGraph.build called)!\n * @param timeout Timeout in ms between retries (default is 16)\n * @returns The promise that resolves when the graph is ready\n */\n whenReadyAsync(timeout = 16) {\n return this._frameGraph.whenReadyAsync(timeout);\n }\n /**\n * Execute the graph (the graph must have been built before!)\n */\n execute() {\n this._frameGraph.execute();\n }\n _initializeBlock(node) {\n node.initialize();\n if (this._options.autoConfigure) {\n node.autoConfigure();\n }\n if (this.attachedBlocks.indexOf(node) === -1) {\n this.attachedBlocks.push(node);\n }\n for (const input of node.inputs) {\n const connectedPoint = input.connectedPoint;\n if (connectedPoint) {\n const block = connectedPoint.ownerBlock;\n if (block !== node) {\n this._initializeBlock(block);\n }\n }\n }\n }\n /**\n * Clear the current graph\n */\n clear() {\n this.outputBlock = null;\n this.attachedBlocks.length = 0;\n }\n /**\n * Remove a block from the current graph\n * @param block defines the block to remove\n */\n removeBlock(block) {\n const attachedBlockIndex = this.attachedBlocks.indexOf(block);\n if (attachedBlockIndex > -1) {\n this.attachedBlocks.splice(attachedBlockIndex, 1);\n }\n if (block === this.outputBlock) {\n this.outputBlock = null;\n }\n }\n /**\n * Clear the current graph and load a new one from a serialization object\n * @param source defines the JSON representation of the graph\n * @param merge defines whether or not the source must be merged or replace the current content\n */\n parseSerializedObject(source, merge = false) {\n if (!merge) {\n this.clear();\n }\n const map = {};\n // Create blocks\n for (const parsedBlock of source.blocks) {\n const blockType = GetClass(parsedBlock.customType);\n if (blockType) {\n const additionalConstructionParameters = parsedBlock.additionalConstructionParameters;\n const block = additionalConstructionParameters\n ? new blockType(\"\", this._frameGraph, this._scene, ...additionalConstructionParameters)\n : new blockType(\"\", this._frameGraph, this._scene);\n block._deserialize(parsedBlock);\n map[parsedBlock.id] = block;\n this.attachedBlocks.push(block);\n }\n }\n // Reconnect teleportation\n for (const block of this.attachedBlocks) {\n if (block.isTeleportOut) {\n const teleportOut = block;\n const id = teleportOut._tempEntryPointUniqueId;\n if (id) {\n const source = map[id];\n if (source) {\n source.attachToEndpoint(teleportOut);\n }\n }\n }\n }\n // Connections - Starts with input blocks only (except if in \"merge\" mode where we scan all blocks)\n for (let blockIndex = 0; blockIndex < source.blocks.length; blockIndex++) {\n const parsedBlock = source.blocks[blockIndex];\n const block = map[parsedBlock.id];\n if (!block) {\n continue;\n }\n if (block.inputs.length && parsedBlock.inputs.some((i) => i.targetConnectionName) && !merge) {\n continue;\n }\n this._restoreConnections(block, source, map);\n }\n // Outputs\n if (source.outputNodeId) {\n this.outputBlock = map[source.outputNodeId];\n }\n // UI related info\n if (source.locations || (source.editorData && source.editorData.locations)) {\n const locations = source.locations || source.editorData.locations;\n for (const location of locations) {\n if (map[location.blockId]) {\n location.blockId = map[location.blockId].uniqueId;\n }\n }\n if (merge && this.editorData && this.editorData.locations) {\n locations.concat(this.editorData.locations);\n }\n if (source.locations) {\n this.editorData = {\n locations: locations,\n };\n }\n else {\n this.editorData = source.editorData;\n this.editorData.locations = locations;\n }\n const blockMap = [];\n for (const key in map) {\n blockMap[key] = map[key].uniqueId;\n }\n this.editorData.map = blockMap;\n }\n this.comment = source.comment;\n }\n _restoreConnections(block, source, map) {\n for (const outputPoint of block.outputs) {\n for (const candidate of source.blocks) {\n const target = map[candidate.id];\n if (!target) {\n continue;\n }\n for (const input of candidate.inputs) {\n if (map[input.targetBlockId] === block && input.targetConnectionName === outputPoint.name) {\n const inputPoint = target.getInputByName(input.inputName);\n if (!inputPoint || inputPoint.isConnected) {\n continue;\n }\n outputPoint.connectTo(inputPoint, true);\n this._restoreConnections(target, source, map);\n continue;\n }\n }\n }\n }\n }\n /**\n * Generate a string containing the code declaration required to create an equivalent of this node render graph\n * @returns a string\n */\n generateCode() {\n let alreadyDumped = [];\n const blocks = [];\n const uniqueNames = [\"const\", \"var\", \"let\"];\n // Gets active blocks\n if (this.outputBlock) {\n this._gatherBlocks(this.outputBlock, blocks);\n }\n // Generate\n const options = JSON.stringify(this._options);\n let codeString = `let nodeRenderGraph = new BABYLON.NodeRenderGraph(\"${this.name || \"render graph\"}\", scene, ${options});\\n`;\n for (const node of blocks) {\n if (node.isInput && alreadyDumped.indexOf(node) === -1) {\n codeString += node._dumpCode(uniqueNames, alreadyDumped) + \"\\n\";\n }\n }\n if (this.outputBlock) {\n // Connections\n alreadyDumped = [];\n codeString += \"// Connections\\n\";\n codeString += this.outputBlock._dumpCodeForOutputConnections(alreadyDumped);\n // Output nodes\n codeString += \"// Output nodes\\n\";\n codeString += `nodeRenderGraph.outputBlock = ${this.outputBlock._codeVariableName};\\n`;\n codeString += `nodeRenderGraph.build();\\n`;\n }\n return codeString;\n }\n _gatherBlocks(rootNode, list) {\n if (list.indexOf(rootNode) !== -1) {\n return;\n }\n list.push(rootNode);\n for (const input of rootNode.inputs) {\n const connectedPoint = input.connectedPoint;\n if (connectedPoint) {\n const block = connectedPoint.ownerBlock;\n if (block !== rootNode) {\n this._gatherBlocks(block, list);\n }\n }\n }\n // Teleportation\n if (rootNode.isTeleportOut) {\n const block = rootNode;\n if (block.entryPoint) {\n this._gatherBlocks(block.entryPoint, list);\n }\n }\n }\n /**\n * Clear the current graph and set it to a default state\n */\n setToDefault() {\n this.clear();\n this.editorData = null;\n // Source\n const backBuffer = new NodeRenderGraphInputBlock(\"BackBuffer color\", this._frameGraph, this._scene, NodeRenderGraphBlockConnectionPointTypes.TextureBackBuffer);\n // Clear texture\n const clear = new NodeRenderGraphClearBlock(\"Clear\", this._frameGraph, this._scene);\n backBuffer.output.connectTo(clear.texture);\n // Final output\n const output = new NodeRenderGraphOutputBlock(\"Output\", this._frameGraph, this._scene);\n clear.output.connectTo(output.texture);\n this.outputBlock = output;\n }\n /**\n * Makes a duplicate of the current node render graph.\n * @param name defines the name to use for the new node render graph\n * @returns the new node render graph\n */\n clone(name) {\n const serializationObject = this.serialize();\n const clone = SerializationHelper.Clone(() => new NodeRenderGraph(name, this._scene), this);\n clone.name = name;\n clone.parseSerializedObject(serializationObject);\n clone._buildId = this._buildId;\n clone.build();\n return clone;\n }\n /**\n * Serializes this node render graph in a JSON representation\n * @param selectedBlocks defines the list of blocks to save (if null the whole node render graph will be saved)\n * @returns the serialized node render graph object\n */\n serialize(selectedBlocks) {\n const serializationObject = selectedBlocks ? {} : SerializationHelper.Serialize(this);\n serializationObject.editorData = JSON.parse(JSON.stringify(this.editorData)); // Copy\n let blocks = [];\n if (selectedBlocks) {\n blocks = selectedBlocks;\n }\n else {\n serializationObject.customType = \"BABYLON.NodeRenderGraph\";\n if (this.outputBlock) {\n serializationObject.outputNodeId = this.outputBlock.uniqueId;\n }\n }\n // Blocks\n serializationObject.blocks = [];\n for (const block of blocks) {\n serializationObject.blocks.push(block.serialize());\n }\n if (!selectedBlocks) {\n for (const block of this.attachedBlocks) {\n if (blocks.indexOf(block) !== -1) {\n continue;\n }\n serializationObject.blocks.push(block.serialize());\n }\n }\n return serializationObject;\n }\n /**\n * Disposes the ressources\n */\n dispose() {\n for (const block of this.attachedBlocks) {\n block.dispose();\n }\n this._frameGraph.dispose();\n this._frameGraph = undefined;\n this._engine.onResizeObservable.remove(this._resizeObserver);\n this._resizeObserver = null;\n this.attachedBlocks.length = 0;\n this.onBuildObservable.clear();\n this.onBuildErrorObservable.clear();\n }\n /**\n * Creates a new node render graph set to default basic configuration\n * @param name defines the name of the node render graph\n * @param scene defines the scene to use\n * @param nodeRenderGraphOptions defines options to use when creating the node render graph\n * @returns a new NodeRenderGraph\n */\n static CreateDefault(name, scene, nodeRenderGraphOptions) {\n const renderGraph = new NodeRenderGraph(name, scene, nodeRenderGraphOptions);\n renderGraph.setToDefault();\n renderGraph.build();\n return renderGraph;\n }\n /**\n * Creates a node render graph from parsed graph data\n * @param source defines the JSON representation of the node render graph\n * @param scene defines the scene to use\n * @param nodeRenderGraphOptions defines options to use when creating the node render\n * @param skipBuild defines whether to skip building the node render graph (default is true)\n * @returns a new node render graph\n */\n static Parse(source, scene, nodeRenderGraphOptions, skipBuild = true) {\n const renderGraph = SerializationHelper.Parse(() => new NodeRenderGraph(source.name, scene, nodeRenderGraphOptions), source, null);\n renderGraph.parseSerializedObject(source);\n if (!skipBuild) {\n renderGraph.build();\n }\n return renderGraph;\n }\n /**\n * Creates a node render graph from a snippet saved by the node render graph editor\n * @param snippetId defines the snippet to load\n * @param scene defines the scene to use\n * @param nodeRenderGraphOptions defines options to use when creating the node render graph\n * @param nodeRenderGraph defines a node render graph to update (instead of creating a new one)\n * @param skipBuild defines whether to skip building the node render graph (default is true)\n * @returns a promise that will resolve to the new node render graph\n */\n static ParseFromSnippetAsync(snippetId, scene, nodeRenderGraphOptions, nodeRenderGraph, skipBuild = true) {\n if (snippetId === \"_BLANK\") {\n return Promise.resolve(NodeRenderGraph.CreateDefault(\"blank\", scene, nodeRenderGraphOptions));\n }\n return new Promise((resolve, reject) => {\n const request = new WebRequest();\n request.addEventListener(\"readystatechange\", () => {\n if (request.readyState == 4) {\n if (request.status == 200) {\n const snippet = JSON.parse(JSON.parse(request.responseText).jsonPayload);\n const serializationObject = JSON.parse(snippet.nodeRenderGraph);\n if (!nodeRenderGraph) {\n nodeRenderGraph = SerializationHelper.Parse(() => new NodeRenderGraph(snippetId, scene, nodeRenderGraphOptions), serializationObject, null);\n }\n nodeRenderGraph.parseSerializedObject(serializationObject);\n nodeRenderGraph.snippetId = snippetId;\n try {\n if (!skipBuild) {\n nodeRenderGraph.build();\n }\n resolve(nodeRenderGraph);\n }\n catch (err) {\n reject(err);\n }\n }\n else {\n reject(\"Unable to load the snippet \" + snippetId);\n }\n }\n });\n request.open(\"GET\", this.SnippetUrl + \"/\" + snippetId.replace(/#/g, \"/\"));\n request.send();\n });\n }\n}\nNodeRenderGraph._BuildIdGenerator = 0;\n/** Define the Url to load node editor script */\nNodeRenderGraph.EditorURL = `${Tools._DefaultCdnUrl}/v${Engine.Version}/NodeRenderGraph/babylon.nodeRenderGraph.js`;\n/** Define the Url to load snippets */\nNodeRenderGraph.SnippetUrl = `https://snippet.babylonjs.com`;\n__decorate([\n serialize()\n], NodeRenderGraph.prototype, \"name\", void 0);\n__decorate([\n serialize(\"comment\")\n], NodeRenderGraph.prototype, \"comment\", void 0);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../Types/nodeRenderGraphTypes.js\";\nimport { NodeRenderGraphBlock } from \"../nodeRenderGraphBlock.js\";\n/**\n * Block used as a pass through\n */\nexport class NodeRenderGraphElbowBlock extends NodeRenderGraphBlock {\n /**\n * Creates a new NodeRenderGraphElbowBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n this.registerInput(\"input\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphElbowBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const input = this._inputs[0];\n this._propagateInputValueToOutput(input, output);\n }\n}\nRegisterClass(\"BABYLON.NodeRenderGraphElbowBlock\", NodeRenderGraphElbowBlock);\n","import { EffectWrapper } from \"../Materials/effectRenderer.js\";\nimport { Engine } from \"../Engines/engine.js\";\n/**\n * Post process used to render in black and white\n */\nexport class ThinBlackAndWhitePostProcess extends EffectWrapper {\n _gatherImports(useWebGPU, list) {\n if (useWebGPU) {\n this._webGPUReady = true;\n list.push(import(\"../ShadersWGSL/blackAndWhite.fragment.js\"));\n }\n else {\n list.push(import(\"../Shaders/blackAndWhite.fragment.js\"));\n }\n }\n /**\n * Constructs a new black and white post process\n * @param name Name of the effect\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\n * @param options Options to configure the effect\n */\n constructor(name, engine = null, options) {\n super({\n ...options,\n name,\n engine: engine || Engine.LastCreatedEngine,\n useShaderStore: true,\n useAsPostProcess: true,\n fragmentShader: ThinBlackAndWhitePostProcess.FragmentUrl,\n uniforms: ThinBlackAndWhitePostProcess.Uniforms,\n });\n /**\n * Effect intensity (default: 1)\n */\n this.degree = 1;\n }\n bind() {\n super.bind();\n this._drawWrapper.effect.setFloat(\"degree\", this.degree);\n }\n}\n/**\n * The fragment shader url\n */\nThinBlackAndWhitePostProcess.FragmentUrl = \"blackAndWhite\";\n/**\n * The list of uniforms used by the effect\n */\nThinBlackAndWhitePostProcess.Uniforms = [\"degree\"];\n","\nimport { FrameGraphTask } from \"../../frameGraphTask.js\";\n/**\n * Task which applies a post process.\n */\nexport class FrameGraphPostProcessTask extends FrameGraphTask {\n /**\n * Constructs a new post process task.\n * @param name Name of the task.\n * @param frameGraph The frame graph this task is associated with.\n * @param postProcess The post process to apply.\n */\n constructor(name, frameGraph, postProcess) {\n super(name, frameGraph);\n /**\n * The sampling mode to use for the source texture.\n */\n this.sourceSamplingMode = 2;\n this.postProcess = postProcess;\n this._postProcessDrawWrapper = this.postProcess.drawWrapper;\n this.outputTexture = this._frameGraph.createDanglingHandle();\n }\n isReady() {\n return this.postProcess.isReady();\n }\n record(skipCreationOfDisabledPasses = false, additionalExecute, additionalBindings) {\n if (this.sourceTexture === undefined) {\n throw new Error(`FrameGraphPostProcessTask \"${this.name}\": sourceTexture is required`);\n }\n const sourceTextureCreationOptions = this._frameGraph.getTextureCreationOptions(this.sourceTexture, true);\n sourceTextureCreationOptions.options.generateDepthBuffer = false;\n sourceTextureCreationOptions.options.generateStencilBuffer = false;\n sourceTextureCreationOptions.options.samples = 1;\n this._frameGraph.resolveDanglingHandle(this.outputTexture, this.destinationTexture, this.name, sourceTextureCreationOptions);\n const outputTextureDescription = this._frameGraph.getTextureDescription(this.outputTexture);\n this._outputWidth = outputTextureDescription.size.width;\n this._outputHeight = outputTextureDescription.size.height;\n const pass = this._frameGraph.addRenderPass(this.name);\n pass.useTexture(this.sourceTexture);\n pass.setRenderTarget(this.outputTexture);\n pass.setExecuteFunc((context) => {\n context.setTextureSamplingMode(this.sourceTexture, this.sourceSamplingMode);\n additionalExecute?.(context);\n context.applyFullScreenEffect(this._postProcessDrawWrapper, () => {\n context.bindTextureHandle(this._postProcessDrawWrapper.effect, \"textureSampler\", this.sourceTexture);\n additionalBindings?.(context);\n this.postProcess.bind();\n });\n });\n if (!skipCreationOfDisabledPasses) {\n const passDisabled = this._frameGraph.addRenderPass(this.name + \"_disabled\", true);\n passDisabled.setRenderTarget(this.outputTexture);\n passDisabled.setExecuteFunc((context) => {\n context.copyTexture(this.sourceTexture);\n });\n }\n return pass;\n }\n dispose() {\n this.postProcess.dispose();\n super.dispose();\n }\n}\n","import { ThinBlackAndWhitePostProcess } from \"../../../PostProcesses/thinBlackAndWhitePostProcess.js\";\nimport { FrameGraphPostProcessTask } from \"./postProcessTask.js\";\n/**\n * Task which applies a black and white post process.\n */\nexport class FrameGraphBlackAndWhiteTask extends FrameGraphPostProcessTask {\n /**\n * Constructs a new black and white task.\n * @param name The name of the task.\n * @param frameGraph The frame graph this task is associated with.\n * @param thinPostProcess The thin post process to use for the black and white effect. If not provided, a new one will be created.\n */\n constructor(name, frameGraph, thinPostProcess) {\n super(name, frameGraph, thinPostProcess || new ThinBlackAndWhitePostProcess(name, frameGraph.engine));\n }\n}\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { FrameGraphBlackAndWhiteTask } from \"../../../Tasks/PostProcesses/blackAndWhiteTask.js\";\nimport { ThinBlackAndWhitePostProcess } from \"../../../../PostProcesses/thinBlackAndWhitePostProcess.js\";\n/**\n * Block that implements the black and white post process\n */\nexport class NodeRenderGraphBlackAndWhitePostProcessBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new BlackAndWhitePostProcessBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n this.registerInput(\"source\", NodeRenderGraphBlockConnectionPointTypes.Texture);\n this.registerInput(\"destination\", NodeRenderGraphBlockConnectionPointTypes.Texture, true);\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.source.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\n this.destination.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAll);\n this.output._typeConnectionSource = () => {\n return this.destination.isConnected ? this.destination : this.source;\n };\n this._frameGraphTask = new FrameGraphBlackAndWhiteTask(this.name, frameGraph, new ThinBlackAndWhitePostProcess(name, scene.getEngine()));\n }\n /** Sampling mode used to sample from the source texture */\n get sourceSamplingMode() {\n return this._frameGraphTask.sourceSamplingMode;\n }\n set sourceSamplingMode(value) {\n this._frameGraphTask.sourceSamplingMode = value;\n }\n /** Degree of conversion to black and white (default: 1 - full b&w conversion) */\n get degree() {\n return this._frameGraphTask.postProcess.degree;\n }\n set degree(value) {\n this._frameGraphTask.postProcess.degree = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphBlackAndWhitePostProcessBlock\";\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[0];\n }\n /**\n * Gets the destination input component\n */\n get destination() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._frameGraphTask.name = this.name;\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\n const sourceConnectedPoint = this.source.connectedPoint;\n if (sourceConnectedPoint) {\n this._frameGraphTask.sourceTexture = sourceConnectedPoint.value;\n }\n const destinationConnectedPoint = this.destination.connectedPoint;\n if (destinationConnectedPoint) {\n this._frameGraphTask.destinationTexture = destinationConnectedPoint.value;\n }\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.degree = ${this.degree};`);\n codes.push(`${this._codeVariableName}.sourceSamplingMode = ${this.sourceSamplingMode};`);\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.degree = this.degree;\n serializationObject.sourceSamplingMode = this.sourceSamplingMode;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.degree = serializationObject.degree;\n this.sourceSamplingMode = serializationObject.sourceSamplingMode;\n }\n}\n__decorate([\n editableInPropertyPage(\"Source sampling mode\", 6 /* PropertyTypeForEdition.SamplingMode */, \"PROPERTIES\")\n], NodeRenderGraphBlackAndWhitePostProcessBlock.prototype, \"sourceSamplingMode\", null);\n__decorate([\n editableInPropertyPage(\"Degree\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\", { min: 0, max: 1 })\n], NodeRenderGraphBlackAndWhitePostProcessBlock.prototype, \"degree\", null);\nRegisterClass(\"BABYLON.NodeRenderGraphBlackAndWhitePostProcessBlock\", NodeRenderGraphBlackAndWhitePostProcessBlock);\n","import { ThinBloomMergePostProcess } from \"../../../PostProcesses/thinBloomMergePostProcess.js\";\nimport { FrameGraphPostProcessTask } from \"./postProcessTask.js\";\n/**\n * @internal\n */\nexport class FrameGraphBloomMergeTask extends FrameGraphPostProcessTask {\n constructor(name, frameGraph, thinPostProcess) {\n super(name, frameGraph, thinPostProcess || new ThinBloomMergePostProcess(name, frameGraph.engine));\n }\n record(skipCreationOfDisabledPasses = false) {\n if (this.sourceTexture === undefined || this.blurTexture === undefined) {\n throw new Error(`FrameGraphBloomMergeTask \"${this.name}\": sourceTexture and blurTexture are required`);\n }\n const pass = super.record(skipCreationOfDisabledPasses, undefined, (context) => {\n context.bindTextureHandle(this._postProcessDrawWrapper.effect, \"bloomBlur\", this.blurTexture);\n });\n pass.useTexture(this.blurTexture);\n return pass;\n }\n}\n","import { ThinExtractHighlightsPostProcess } from \"../../../PostProcesses/thinExtractHighlightsPostProcess.js\";\nimport { FrameGraphPostProcessTask } from \"./postProcessTask.js\";\n/**\n * Task used to extract highlights from a scene.\n */\nexport class FrameGraphExtractHighlightsTask extends FrameGraphPostProcessTask {\n /**\n * Constructs a new extract highlights task.\n * @param name The name of the task.\n * @param frameGraph The frame graph the task belongs to.\n * @param thinPostProcess The thin post process to use for the task. If not provided, a new one will be created.\n */\n constructor(name, frameGraph, thinPostProcess) {\n super(name, frameGraph, thinPostProcess || new ThinExtractHighlightsPostProcess(name, frameGraph.engine));\n }\n}\n","import { ThinBlurPostProcess } from \"../../../PostProcesses/thinBlurPostProcess.js\";\nimport { FrameGraphPostProcessTask } from \"./postProcessTask.js\";\nimport { Vector2 } from \"../../../Maths/math.vector.js\";\n/**\n * Task which applies a blur post process.\n */\nexport class FrameGraphBlurTask extends FrameGraphPostProcessTask {\n /**\n * Constructs a new blur task.\n * @param name Name of the task.\n * @param frameGraph Frame graph this task is associated with.\n * @param thinPostProcess The thin post process to use for the blur effect.\n */\n constructor(name, frameGraph, thinPostProcess) {\n super(name, frameGraph, thinPostProcess || new ThinBlurPostProcess(name, frameGraph.engine, new Vector2(1, 0), 10));\n }\n record(skipCreationOfDisabledPasses = false, additionalExecute, additionalBindings) {\n const pass = super.record(skipCreationOfDisabledPasses, additionalExecute, additionalBindings);\n this.postProcess.textureWidth = this._outputWidth;\n this.postProcess.textureHeight = this._outputHeight;\n return pass;\n }\n}\n","\nimport { FrameGraphBloomMergeTask } from \"./bloomMergeTask.js\";\nimport { FrameGraphTask } from \"../../frameGraphTask.js\";\nimport { ThinBloomEffect } from \"../../../PostProcesses/thinBloomEffect.js\";\nimport { FrameGraphExtractHighlightsTask } from \"./extractHighlightsTask.js\";\nimport { FrameGraphBlurTask } from \"./blurTask.js\";\n/**\n * Task which applies a bloom render effect.\n */\nexport class FrameGraphBloomTask extends FrameGraphTask {\n /**\n * Constructs a new bloom task.\n * @param name Name of the task.\n * @param frameGraph The frame graph this task is associated with.\n * @param engine The engine to use for the bloom effect.\n * @param weight Weight of the bloom effect.\n * @param kernel Kernel size of the bloom effect.\n * @param threshold Threshold of the bloom effect.\n * @param hdr Whether the bloom effect is HDR.\n * @param bloomScale The scale of the bloom effect. This value is multiplied by the source texture size to determine the bloom texture size.\n */\n constructor(name, frameGraph, engine, weight, kernel, threshold, hdr = false, bloomScale = 0.5) {\n super(name, frameGraph);\n /**\n * The sampling mode to use for the source texture.\n */\n this.sourceSamplingMode = 2;\n this.hdr = hdr;\n this._defaultPipelineTextureType = 0;\n if (hdr) {\n const caps = engine.getCaps();\n if (caps.textureHalfFloatRender) {\n this._defaultPipelineTextureType = 2;\n }\n else if (caps.textureFloatRender) {\n this._defaultPipelineTextureType = 1;\n }\n }\n this.bloom = new ThinBloomEffect(name, engine, bloomScale);\n this.bloom.threshold = threshold;\n this.bloom.kernel = kernel;\n this.bloom.weight = weight;\n this._downscale = new FrameGraphExtractHighlightsTask(`${name} Downscale`, this._frameGraph, this.bloom._downscale);\n this._blurX = new FrameGraphBlurTask(`${name} Blur X`, this._frameGraph, this.bloom._blurX);\n this._blurY = new FrameGraphBlurTask(`${name} Blur Y`, this._frameGraph, this.bloom._blurY);\n this._merge = new FrameGraphBloomMergeTask(`${name} Merge`, this._frameGraph, this.bloom._merge);\n this.outputTexture = this._frameGraph.createDanglingHandle();\n }\n isReady() {\n return this.bloom.isReady();\n }\n record() {\n if (this.sourceTexture === undefined) {\n throw new Error(\"FrameGraphBloomTask: sourceTexture is required\");\n }\n const sourceTextureDescription = this._frameGraph.getTextureDescription(this.sourceTexture);\n const textureCreationOptions = {\n size: {\n width: Math.floor(sourceTextureDescription.size.width * this.bloom.scale),\n height: Math.floor(sourceTextureDescription.size.height * this.bloom.scale),\n },\n options: {\n createMipMaps: false,\n generateMipMaps: false,\n types: [this._defaultPipelineTextureType],\n samplingModes: [2],\n formats: [5],\n samples: 1,\n useSRGBBuffers: [false],\n generateDepthBuffer: false,\n generateStencilBuffer: false,\n label: \"\",\n },\n sizeIsPercentage: false,\n };\n const downscaleTextureHandle = this._frameGraph.createRenderTargetTexture(this._downscale.name, textureCreationOptions);\n this._downscale.sourceTexture = this.sourceTexture;\n this._downscale.sourceSamplingMode = 2;\n this._downscale.destinationTexture = downscaleTextureHandle;\n this._downscale.record(true);\n const blurXTextureHandle = this._frameGraph.createRenderTargetTexture(this._blurX.name, textureCreationOptions);\n this._blurX.sourceTexture = downscaleTextureHandle;\n this._blurX.sourceSamplingMode = 2;\n this._blurX.destinationTexture = blurXTextureHandle;\n this._blurX.record(true);\n const blurYTextureHandle = this._frameGraph.createRenderTargetTexture(this._blurY.name, textureCreationOptions);\n this._blurY.sourceTexture = blurXTextureHandle;\n this._blurY.sourceSamplingMode = 2;\n this._blurY.destinationTexture = blurYTextureHandle;\n this._blurY.record(true);\n const sourceTextureCreationOptions = this._frameGraph.getTextureCreationOptions(this.sourceTexture, true);\n sourceTextureCreationOptions.options.generateDepthBuffer = false;\n sourceTextureCreationOptions.options.generateStencilBuffer = false;\n this._frameGraph.resolveDanglingHandle(this.outputTexture, this.destinationTexture, this._merge.name, sourceTextureCreationOptions);\n this._merge.sourceTexture = this.sourceTexture;\n this._merge.sourceSamplingMode = this.sourceSamplingMode;\n this._merge.blurTexture = blurYTextureHandle;\n this._merge.destinationTexture = this.outputTexture;\n this._merge.record(true);\n const passDisabled = this._frameGraph.addRenderPass(this.name + \"_disabled\", true);\n passDisabled.setRenderTarget(this.outputTexture);\n passDisabled.setExecuteFunc((context) => {\n context.copyTexture(this.sourceTexture);\n });\n }\n dispose() {\n this._downscale.dispose();\n this._blurX.dispose();\n this._blurY.dispose();\n this._merge.dispose();\n super.dispose();\n }\n}\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { FrameGraphBloomTask } from \"../../../Tasks/PostProcesses/bloomTask.js\";\n/**\n * Block that implements the bloom post process\n */\nexport class NodeRenderGraphBloomPostProcessBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphBloomPostProcessBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n * @param hdr If high dynamic range textures should be used (default: false)\n * @param bloomScale The scale of the bloom effect (default: 0.5)\n */\n constructor(name, frameGraph, scene, hdr = false, bloomScale = 0.5) {\n super(name, frameGraph, scene);\n this._additionalConstructionParameters = [hdr, bloomScale];\n this.registerInput(\"source\", NodeRenderGraphBlockConnectionPointTypes.Texture);\n this.registerInput(\"destination\", NodeRenderGraphBlockConnectionPointTypes.Texture, true);\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.source.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\n this.destination.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAll);\n this.output._typeConnectionSource = () => {\n return this.destination.isConnected ? this.destination : this.source;\n };\n this._frameGraphTask = new FrameGraphBloomTask(this.name, frameGraph, scene.getEngine(), 0.75, 64, 0.2, hdr, bloomScale);\n }\n _createTask(bloomScale, hdr) {\n const sourceSamplingMode = this._frameGraphTask.sourceSamplingMode;\n const threshold = this._frameGraphTask.bloom.threshold;\n const weight = this._frameGraphTask.bloom.weight;\n const kernel = this._frameGraphTask.bloom.kernel;\n this._frameGraphTask.dispose();\n this._frameGraphTask = new FrameGraphBloomTask(this.name, this._frameGraph, this._scene.getEngine(), weight, kernel, threshold, hdr, bloomScale);\n this._frameGraphTask.sourceSamplingMode = sourceSamplingMode;\n this._additionalConstructionParameters = [hdr, bloomScale];\n }\n /** The quality of the blur effect */\n get bloomScale() {\n return this._frameGraphTask.bloom.scale;\n }\n set bloomScale(value) {\n this._createTask(value, this._frameGraphTask.hdr);\n }\n /** If high dynamic range textures should be used */\n get hdr() {\n return this._frameGraphTask.hdr;\n }\n set hdr(value) {\n this._createTask(this._frameGraphTask.bloom.scale, value);\n }\n /** Sampling mode used to sample from the source texture */\n get sourceSamplingMode() {\n return this._frameGraphTask.sourceSamplingMode;\n }\n set sourceSamplingMode(value) {\n this._frameGraphTask.sourceSamplingMode = value;\n }\n /** The luminance threshold to find bright areas of the image to bloom. */\n get threshold() {\n return this._frameGraphTask.bloom.threshold;\n }\n set threshold(value) {\n this._frameGraphTask.bloom.threshold = value;\n }\n /** The strength of the bloom. */\n get weight() {\n return this._frameGraphTask.bloom.weight;\n }\n set weight(value) {\n this._frameGraphTask.bloom.weight = value;\n }\n /** Specifies the size of the bloom blur kernel, relative to the final output size */\n get kernel() {\n return this._frameGraphTask.bloom.kernel;\n }\n set kernel(value) {\n this._frameGraphTask.bloom.kernel = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphBloomPostProcessBlock\";\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[0];\n }\n /**\n * Gets the destination input component\n */\n get destination() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._frameGraphTask.name = this.name;\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\n const sourceConnectedPoint = this.source.connectedPoint;\n if (sourceConnectedPoint) {\n this._frameGraphTask.sourceTexture = sourceConnectedPoint.value;\n }\n const destinationConnectedPoint = this.destination.connectedPoint;\n if (destinationConnectedPoint) {\n this._frameGraphTask.destinationTexture = destinationConnectedPoint.value;\n }\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.threshold = ${this.threshold};`);\n codes.push(`${this._codeVariableName}.weight = ${this.weight};`);\n codes.push(`${this._codeVariableName}.kernel = ${this.kernel};`);\n codes.push(`${this._codeVariableName}.sourceSamplingMode = ${this.sourceSamplingMode};`);\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.threshold = this.threshold;\n serializationObject.weight = this.weight;\n serializationObject.kernel = this.kernel;\n serializationObject.sourceSamplingMode = this.sourceSamplingMode;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.threshold = serializationObject.threshold;\n this.weight = serializationObject.weight;\n this.kernel = serializationObject.kernel;\n this.sourceSamplingMode = serializationObject.sourceSamplingMode;\n }\n}\n__decorate([\n editableInPropertyPage(\"Bloom scale\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\")\n], NodeRenderGraphBloomPostProcessBlock.prototype, \"bloomScale\", null);\n__decorate([\n editableInPropertyPage(\"HDR\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphBloomPostProcessBlock.prototype, \"hdr\", null);\n__decorate([\n editableInPropertyPage(\"Source sampling mode\", 6 /* PropertyTypeForEdition.SamplingMode */)\n], NodeRenderGraphBloomPostProcessBlock.prototype, \"sourceSamplingMode\", null);\n__decorate([\n editableInPropertyPage(\"Threshold\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\", { min: 0, max: 2 })\n], NodeRenderGraphBloomPostProcessBlock.prototype, \"threshold\", null);\n__decorate([\n editableInPropertyPage(\"Weight\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\", { min: 0, max: 3 })\n], NodeRenderGraphBloomPostProcessBlock.prototype, \"weight\", null);\n__decorate([\n editableInPropertyPage(\"Kernel\", 2 /* PropertyTypeForEdition.Int */, \"PROPERTIES\", { min: 1, max: 128 })\n], NodeRenderGraphBloomPostProcessBlock.prototype, \"kernel\", null);\nRegisterClass(\"BABYLON.NodeRenderGraphBloomPostProcessBlock\", NodeRenderGraphBloomPostProcessBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { FrameGraphBlurTask } from \"../../../Tasks/PostProcesses/blurTask.js\";\nimport { ThinBlurPostProcess } from \"../../../../PostProcesses/thinBlurPostProcess.js\";\nimport { Vector2 } from \"../../../../Maths/math.vector.js\";\n/**\n * Block that implements the blur post process\n */\nexport class NodeRenderGraphBlurPostProcessBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphBlurPostProcessBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n this.registerInput(\"source\", NodeRenderGraphBlockConnectionPointTypes.Texture);\n this.registerInput(\"destination\", NodeRenderGraphBlockConnectionPointTypes.Texture, true);\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.source.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\n this.destination.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAll);\n this.output._typeConnectionSource = () => {\n return this.destination.isConnected ? this.destination : this.source;\n };\n this._frameGraphTask = new FrameGraphBlurTask(this.name, frameGraph, new ThinBlurPostProcess(name, scene.getEngine(), new Vector2(1, 0), 32));\n }\n /** Sampling mode used to sample from the source texture */\n get sourceSamplingMode() {\n return this._frameGraphTask.sourceSamplingMode;\n }\n set sourceSamplingMode(value) {\n this._frameGraphTask.sourceSamplingMode = value;\n }\n /** The direction in which to blur the image */\n get direction() {\n return this._frameGraphTask.postProcess.direction;\n }\n set direction(value) {\n this._frameGraphTask.postProcess.direction = value;\n }\n /** Length in pixels of the blur sample region */\n get kernel() {\n return this._frameGraphTask.postProcess.kernel;\n }\n set kernel(value) {\n this._frameGraphTask.postProcess.kernel = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphBlurPostProcessBlock\";\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[0];\n }\n /**\n * Gets the destination input component\n */\n get destination() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._frameGraphTask.name = this.name;\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\n const sourceConnectedPoint = this.source.connectedPoint;\n if (sourceConnectedPoint) {\n this._frameGraphTask.sourceTexture = sourceConnectedPoint.value;\n }\n const destinationConnectedPoint = this.destination.connectedPoint;\n if (destinationConnectedPoint) {\n this._frameGraphTask.destinationTexture = destinationConnectedPoint.value;\n }\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.direction = new BABYLON.Vector2(${this.direction.x}, ${this.direction.y});`);\n codes.push(`${this._codeVariableName}.kernel = ${this.kernel};`);\n codes.push(`${this._codeVariableName}.sourceSamplingMode = ${this.sourceSamplingMode};`);\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.direction = this.direction.asArray();\n serializationObject.kernel = this.kernel;\n serializationObject.sourceSamplingMode = this.sourceSamplingMode;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.direction.fromArray(serializationObject.direction);\n this.kernel = serializationObject.kernel;\n this.sourceSamplingMode = serializationObject.sourceSamplingMode;\n }\n}\n__decorate([\n editableInPropertyPage(\"Source sampling mode\", 6 /* PropertyTypeForEdition.SamplingMode */, \"PROPERTIES\")\n], NodeRenderGraphBlurPostProcessBlock.prototype, \"sourceSamplingMode\", null);\n__decorate([\n editableInPropertyPage(\"Direction\", 3 /* PropertyTypeForEdition.Vector2 */, \"PROPERTIES\")\n], NodeRenderGraphBlurPostProcessBlock.prototype, \"direction\", null);\n__decorate([\n editableInPropertyPage(\"Kernel\", 2 /* PropertyTypeForEdition.Int */, \"PROPERTIES\", { min: 1, max: 256 })\n], NodeRenderGraphBlurPostProcessBlock.prototype, \"kernel\", null);\nRegisterClass(\"BABYLON.NodeRenderGraphBlurPostProcessBlock\", NodeRenderGraphBlurPostProcessBlock);\n","import { FrameGraphPostProcessTask } from \"./postProcessTask.js\";\n\nimport { ThinCircleOfConfusionPostProcess } from \"../../../PostProcesses/thinCircleOfConfusionPostProcess.js\";\n/**\n * Task which applies a circle of confusion post process.\n */\nexport class FrameGraphCircleOfConfusionTask extends FrameGraphPostProcessTask {\n /**\n * Constructs a new circle of confusion task.\n * @param name The name of the task.\n * @param frameGraph The frame graph this task belongs to.\n * @param thinPostProcess The thin post process to use for the task. If not provided, a new one will be created.\n */\n constructor(name, frameGraph, thinPostProcess) {\n super(name, frameGraph, thinPostProcess || new ThinCircleOfConfusionPostProcess(name, frameGraph.engine));\n /**\n * The sampling mode to use for the depth texture.\n */\n this.depthSamplingMode = 2;\n }\n record(skipCreationOfDisabledPasses = false) {\n if (this.sourceTexture === undefined || this.depthTexture === undefined || this.camera === undefined) {\n throw new Error(`FrameGraphCircleOfConfusionTask \"${this.name}\": sourceTexture, depthTexture and camera are required`);\n }\n const pass = super.record(skipCreationOfDisabledPasses, (context) => {\n context.setTextureSamplingMode(this.depthTexture, this.depthSamplingMode);\n }, (context) => {\n this.postProcess.camera = this.camera;\n context.bindTextureHandle(this._postProcessDrawWrapper.effect, \"depthSampler\", this.depthTexture);\n });\n pass.useTexture(this.depthTexture);\n return pass;\n }\n}\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { FrameGraphCircleOfConfusionTask } from \"../../../Tasks/PostProcesses/circleOfConfusionTask.js\";\nimport { ThinCircleOfConfusionPostProcess } from \"../../../../PostProcesses/thinCircleOfConfusionPostProcess.js\";\n/**\n * Block that implements the circle of confusion post process\n */\nexport class NodeRenderGraphCircleOfConfusionPostProcessBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphCircleOfConfusionPostProcessBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n this.registerInput(\"source\", NodeRenderGraphBlockConnectionPointTypes.Texture);\n this.registerInput(\"geomViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\n this.registerInput(\"destination\", NodeRenderGraphBlockConnectionPointTypes.Texture, true);\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.source.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\n this.destination.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAll);\n this.output._typeConnectionSource = () => {\n return this.destination.isConnected ? this.destination : this.source;\n };\n this._frameGraphTask = new FrameGraphCircleOfConfusionTask(this.name, frameGraph, new ThinCircleOfConfusionPostProcess(name, scene.getEngine(), { depthNotNormalized: true }));\n }\n /** Sampling mode used to sample from the source texture */\n get sourceSamplingMode() {\n return this._frameGraphTask.sourceSamplingMode;\n }\n set sourceSamplingMode(value) {\n this._frameGraphTask.sourceSamplingMode = value;\n }\n /** Sampling mode used to sample from the depth texture */\n get depthSamplingMode() {\n return this._frameGraphTask.depthSamplingMode;\n }\n set depthSamplingMode(value) {\n this._frameGraphTask.depthSamplingMode = value;\n }\n /** Max lens size in scene units/1000 (eg. millimeter). Standard cameras are 50mm. The diameter of the resulting aperture can be computed by lensSize/fStop. */\n get lensSize() {\n return this._frameGraphTask.postProcess.lensSize;\n }\n set lensSize(value) {\n this._frameGraphTask.postProcess.lensSize = value;\n }\n /** F-Stop of the effect's camera. The diameter of the resulting aperture can be computed by lensSize/fStop */\n get fStop() {\n return this._frameGraphTask.postProcess.fStop;\n }\n set fStop(value) {\n this._frameGraphTask.postProcess.fStop = value;\n }\n /** Distance away from the camera to focus on in scene units/1000 (eg. millimeter) */\n get focusDistance() {\n return this._frameGraphTask.postProcess.focusDistance;\n }\n set focusDistance(value) {\n this._frameGraphTask.postProcess.focusDistance = value;\n }\n /** Focal length of the effect's camera in scene units/1000 (eg. millimeter) */\n get focalLength() {\n return this._frameGraphTask.postProcess.focalLength;\n }\n set focalLength(value) {\n this._frameGraphTask.postProcess.focalLength = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphCircleOfConfusionPostProcessBlock\";\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[0];\n }\n /**\n * Gets the geometry view depth input component\n */\n get geomViewDepth() {\n return this._inputs[1];\n }\n /**\n * Gets the destination input component\n */\n get destination() {\n return this._inputs[2];\n }\n /**\n * Gets the camera input component\n */\n get camera() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._frameGraphTask.name = this.name;\n this.output.value = this._frameGraphTask.outputTexture;\n const sourceConnectedPoint = this.source.connectedPoint;\n if (sourceConnectedPoint) {\n this._frameGraphTask.sourceTexture = sourceConnectedPoint.value;\n }\n const geomViewDepthConnectedPoint = this.geomViewDepth.connectedPoint;\n if (geomViewDepthConnectedPoint) {\n this._frameGraphTask.depthTexture = geomViewDepthConnectedPoint.value;\n }\n const destinationConnectedPoint = this.destination.connectedPoint;\n if (destinationConnectedPoint) {\n this._frameGraphTask.destinationTexture = destinationConnectedPoint.value;\n }\n const cameraConnectedPoint = this.camera.connectedPoint;\n if (cameraConnectedPoint) {\n this._frameGraphTask.camera = cameraConnectedPoint.value;\n }\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.lensSize = ${this.lensSize};`);\n codes.push(`${this._codeVariableName}.fStop = ${this.fStop};`);\n codes.push(`${this._codeVariableName}.focusDistance = ${this.focusDistance};`);\n codes.push(`${this._codeVariableName}.focalLength = ${this.focalLength};`);\n codes.push(`${this._codeVariableName}.sourceSamplingMode = ${this.sourceSamplingMode};`);\n codes.push(`${this._codeVariableName}.depthSamplingMode = ${this.depthSamplingMode};`);\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.lensSize = this.lensSize;\n serializationObject.fStop = this.fStop;\n serializationObject.focusDistance = this.focusDistance;\n serializationObject.focalLength = this.focalLength;\n serializationObject.sourceSamplingMode = this.sourceSamplingMode;\n serializationObject.depthSamplingMode = this.depthSamplingMode;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.lensSize = serializationObject.lensSize;\n this.fStop = serializationObject.fStop;\n this.focusDistance = serializationObject.focusDistance;\n this.focalLength = serializationObject.focalLength;\n this.sourceSamplingMode = serializationObject.sourceSamplingMode;\n this.depthSamplingMode = serializationObject.depthSamplingMode;\n }\n}\n__decorate([\n editableInPropertyPage(\"Source sampling mode\", 6 /* PropertyTypeForEdition.SamplingMode */, \"PROPERTIES\")\n], NodeRenderGraphCircleOfConfusionPostProcessBlock.prototype, \"sourceSamplingMode\", null);\n__decorate([\n editableInPropertyPage(\"Depth sampling mode\", 6 /* PropertyTypeForEdition.SamplingMode */, \"PROPERTIES\")\n], NodeRenderGraphCircleOfConfusionPostProcessBlock.prototype, \"depthSamplingMode\", null);\n__decorate([\n editableInPropertyPage(\"Lens size\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\")\n], NodeRenderGraphCircleOfConfusionPostProcessBlock.prototype, \"lensSize\", null);\n__decorate([\n editableInPropertyPage(\"F-Stop\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\")\n], NodeRenderGraphCircleOfConfusionPostProcessBlock.prototype, \"fStop\", null);\n__decorate([\n editableInPropertyPage(\"Focus distance\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\")\n], NodeRenderGraphCircleOfConfusionPostProcessBlock.prototype, \"focusDistance\", null);\n__decorate([\n editableInPropertyPage(\"Focal length\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\")\n], NodeRenderGraphCircleOfConfusionPostProcessBlock.prototype, \"focalLength\", null);\nRegisterClass(\"BABYLON.NodeRenderGraphCircleOfConfusionPostProcessBlock\", NodeRenderGraphCircleOfConfusionPostProcessBlock);\n","import { ThinDepthOfFieldMergePostProcess } from \"../../../PostProcesses/thinDepthOfFieldMergePostProcess.js\";\nimport { FrameGraphPostProcessTask } from \"./postProcessTask.js\";\n/**\n * @internal\n */\nexport class FrameGraphDepthOfFieldMergeTask extends FrameGraphPostProcessTask {\n constructor(name, frameGraph, thinPostProcess) {\n super(name, frameGraph, thinPostProcess || new ThinDepthOfFieldMergePostProcess(name, frameGraph.engine));\n this.blurSteps = [];\n }\n record(skipCreationOfDisabledPasses = false) {\n if (this.sourceTexture === undefined || this.circleOfConfusionTexture === undefined || this.blurSteps.length === 0) {\n throw new Error(`FrameGraphBloomMergeTask \"${this.name}\": sourceTexture, circleOfConfusionTexture and blurSteps are required`);\n }\n this.postProcess.updateEffect(\"#define BLUR_LEVEL \" + (this.blurSteps.length - 1) + \"\\n\");\n const pass = super.record(skipCreationOfDisabledPasses, undefined, (context) => {\n context.bindTextureHandle(this._postProcessDrawWrapper.effect, \"circleOfConfusionSampler\", this.circleOfConfusionTexture);\n this.blurSteps.forEach((handle, index) => {\n context.bindTextureHandle(this._postProcessDrawWrapper.effect, \"blurStep\" + (this.blurSteps.length - index - 1), handle);\n });\n });\n pass.useTexture(this.circleOfConfusionTexture);\n for (const handle of this.blurSteps) {\n pass.useTexture(handle);\n }\n return pass;\n }\n}\n","import { ThinBlurPostProcess } from \"./thinBlurPostProcess.js\";\n/**\n * @internal\n */\nexport class ThinDepthOfFieldBlurPostProcess extends ThinBlurPostProcess {\n constructor(name, engine = null, direction, kernel, options) {\n super(name, engine, direction, kernel, {\n ...options,\n defines: `#define DOF 1\\n`,\n });\n }\n}\n","\nimport { FrameGraphBlurTask } from \"./blurTask.js\";\nimport { ThinDepthOfFieldBlurPostProcess } from \"../../../PostProcesses/thinDepthOfFieldBlurPostProcess.js\";\nimport { Vector2 } from \"../../../Maths/math.vector.js\";\n/**\n * @internal\n */\nexport class FrameGraphDepthOfFieldBlurTask extends FrameGraphBlurTask {\n constructor(name, frameGraph, thinPostProcess) {\n super(name, frameGraph, thinPostProcess || new ThinDepthOfFieldBlurPostProcess(name, frameGraph.engine, new Vector2(1, 0), 10));\n this.circleOfConfusionSamplingMode = 2;\n }\n record(skipCreationOfDisabledPasses = false) {\n if (this.sourceTexture === undefined || this.circleOfConfusionTexture === undefined) {\n throw new Error(`FrameGraphDepthOfFieldBlurTask \"${this.name}\": sourceTexture and circleOfConfusionTexture are required`);\n }\n const pass = super.record(skipCreationOfDisabledPasses, (context) => {\n context.setTextureSamplingMode(this.circleOfConfusionTexture, this.circleOfConfusionSamplingMode);\n }, (context) => {\n context.bindTextureHandle(this._postProcessDrawWrapper.effect, \"circleOfConfusionSampler\", this.circleOfConfusionTexture);\n });\n pass.useTexture(this.circleOfConfusionTexture);\n return pass;\n }\n}\n","\nimport { FrameGraphTask } from \"../../frameGraphTask.js\";\nimport { FrameGraphDepthOfFieldMergeTask } from \"./depthOfFieldMergeTask.js\";\nimport { FrameGraphCircleOfConfusionTask } from \"./circleOfConfusionTask.js\";\nimport { FrameGraphDepthOfFieldBlurTask } from \"./depthOfFieldBlurTask.js\";\nimport { ThinDepthOfFieldEffect } from \"../../../PostProcesses/thinDepthOfFieldEffect.js\";\n/**\n * Task which applies a depth of field effect.\n */\nexport class FrameGraphDepthOfFieldTask extends FrameGraphTask {\n /**\n * Constructs a depth of field task.\n * @param name The name of the task.\n * @param frameGraph The frame graph this task belongs to.\n * @param engine The engine to use for the depth of field effect.\n * @param blurLevel The blur level of the depth of field effect (default: ThinDepthOfFieldEffectBlurLevel.Low).\n * @param hdr Whether the depth of field effect is HDR.\n */\n constructor(name, frameGraph, engine, blurLevel = 0 /* ThinDepthOfFieldEffectBlurLevel.Low */, hdr = false) {\n super(name, frameGraph);\n /**\n * The sampling mode to use for the source texture.\n */\n this.sourceSamplingMode = 2;\n /**\n * The sampling mode to use for the depth texture.\n */\n this.depthSamplingMode = 2;\n this._blurX = [];\n this._blurY = [];\n this._engine = engine;\n this.hdr = hdr;\n this._defaultPipelineTextureType = 0;\n if (hdr) {\n const caps = engine.getCaps();\n if (caps.textureHalfFloatRender) {\n this._defaultPipelineTextureType = 2;\n }\n else if (caps.textureFloatRender) {\n this._defaultPipelineTextureType = 1;\n }\n }\n this.depthOfField = new ThinDepthOfFieldEffect(name, engine, blurLevel, true);\n this._circleOfConfusion = new FrameGraphCircleOfConfusionTask(`${name} Circle of Confusion`, this._frameGraph, this.depthOfField._circleOfConfusion);\n const blurCount = this.depthOfField._depthOfFieldBlurX.length;\n for (let i = 0; i < blurCount; i++) {\n this._blurX.push(new FrameGraphDepthOfFieldBlurTask(`${name} Blur X`, this._frameGraph, this.depthOfField._depthOfFieldBlurX[i][0]));\n this._blurY.push(new FrameGraphDepthOfFieldBlurTask(`${name} Blur Y`, this._frameGraph, this.depthOfField._depthOfFieldBlurY[i][0]));\n }\n this._merge = new FrameGraphDepthOfFieldMergeTask(`${name} Merge`, this._frameGraph, this.depthOfField._dofMerge);\n this.outputTexture = this._frameGraph.createDanglingHandle();\n }\n isReady() {\n return this.depthOfField.isReady();\n }\n record() {\n if (this.sourceTexture === undefined || this.depthTexture === undefined || this.camera === undefined) {\n throw new Error(\"FrameGraphDepthOfFieldTask: sourceTexture, depthTexture and camera are required\");\n }\n const sourceTextureDescription = this._frameGraph.getTextureDescription(this.sourceTexture);\n const textureSize = {\n width: sourceTextureDescription.size.width,\n height: sourceTextureDescription.size.height,\n };\n const circleOfConfusionTextureFormat = this._engine.isWebGPU || this._engine.version > 1 ? 6 : 5;\n const textureCreationOptions = {\n size: textureSize,\n options: {\n createMipMaps: false,\n generateMipMaps: false,\n types: [this._defaultPipelineTextureType],\n formats: [circleOfConfusionTextureFormat],\n samples: 1,\n useSRGBBuffers: [false],\n generateDepthBuffer: false,\n generateStencilBuffer: false,\n label: \"\",\n },\n sizeIsPercentage: false,\n };\n const circleOfConfusionTextureHandle = this._frameGraph.createRenderTargetTexture(this._circleOfConfusion.name, textureCreationOptions);\n this._circleOfConfusion.sourceTexture = this.sourceTexture; // texture not used by the CoC shader\n this._circleOfConfusion.depthTexture = this.depthTexture;\n this._circleOfConfusion.depthSamplingMode = this.depthSamplingMode;\n this._circleOfConfusion.camera = this.camera;\n this._circleOfConfusion.destinationTexture = circleOfConfusionTextureHandle;\n this._circleOfConfusion.record(true);\n textureCreationOptions.options.formats = [5];\n const blurSteps = [];\n for (let i = 0; i < this._blurX.length; i++) {\n const ratio = this.depthOfField._depthOfFieldBlurX[i][1];\n textureSize.width = Math.floor(sourceTextureDescription.size.width * ratio);\n textureSize.height = Math.floor(sourceTextureDescription.size.height * ratio);\n const blurYTextureHandle = this._frameGraph.createRenderTargetTexture(this._blurY[i].name, textureCreationOptions);\n this._blurY[i].sourceTexture = i === 0 ? this.sourceTexture : this._blurX[i - 1].outputTexture;\n this._blurY[i].sourceSamplingMode = 2;\n this._blurY[i].circleOfConfusionTexture = circleOfConfusionTextureHandle;\n this._blurY[i].destinationTexture = blurYTextureHandle;\n this._blurY[i].record(true);\n const blurXTextureHandle = this._frameGraph.createRenderTargetTexture(this._blurX[i].name, textureCreationOptions);\n this._blurX[i].sourceTexture = this._blurY[i].outputTexture;\n this._blurX[i].sourceSamplingMode = 2;\n this._blurX[i].circleOfConfusionTexture = circleOfConfusionTextureHandle;\n this._blurX[i].destinationTexture = blurXTextureHandle;\n this._blurX[i].record(true);\n blurSteps.push(blurXTextureHandle);\n }\n const sourceTextureCreationOptions = this._frameGraph.getTextureCreationOptions(this.sourceTexture, true);\n sourceTextureCreationOptions.options.generateDepthBuffer = false;\n sourceTextureCreationOptions.options.generateStencilBuffer = false;\n this._frameGraph.resolveDanglingHandle(this.outputTexture, this.destinationTexture, this._merge.name, sourceTextureCreationOptions);\n this._merge.sourceTexture = this.sourceTexture;\n this._merge.sourceSamplingMode = this.sourceSamplingMode;\n this._merge.circleOfConfusionTexture = circleOfConfusionTextureHandle;\n this._merge.blurSteps = blurSteps;\n this._merge.destinationTexture = this.outputTexture;\n this._merge.record(true);\n const passDisabled = this._frameGraph.addRenderPass(this.name + \"_disabled\", true);\n passDisabled.setRenderTarget(this.outputTexture);\n passDisabled.setExecuteFunc((context) => {\n context.copyTexture(this.sourceTexture);\n });\n }\n dispose() {\n this._circleOfConfusion.dispose();\n for (let i = 0; i < this._blurX.length; i++) {\n this._blurX[i].dispose();\n this._blurY[i].dispose();\n }\n this._merge.dispose();\n super.dispose();\n }\n}\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { FrameGraphDepthOfFieldTask } from \"../../../Tasks/PostProcesses/depthOfFieldTask.js\";\n/**\n * Block that implements the depth of field post process\n */\nexport class NodeRenderGraphDepthOfFieldPostProcessBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphDepthOfFieldPostProcessBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n * @param blurLevel The quality of the depth of field effect (default: ThinDepthOfFieldEffectBlurLevel.Low)\n * @param hdr If high dynamic range textures should be used (default: false)\n */\n constructor(name, frameGraph, scene, blurLevel = 0 /* ThinDepthOfFieldEffectBlurLevel.Low */, hdr = false) {\n super(name, frameGraph, scene);\n this._additionalConstructionParameters = [blurLevel, hdr];\n this.registerInput(\"source\", NodeRenderGraphBlockConnectionPointTypes.Texture);\n this.registerInput(\"geomViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\n this.registerInput(\"destination\", NodeRenderGraphBlockConnectionPointTypes.Texture, true);\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.source.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\n this.destination.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAll);\n this.output._typeConnectionSource = () => {\n return this.destination.isConnected ? this.destination : this.source;\n };\n this._frameGraphTask = new FrameGraphDepthOfFieldTask(this.name, frameGraph, scene.getEngine(), blurLevel, hdr);\n }\n _createTask(blurLevel, hdr) {\n const sourceSamplingMode = this._frameGraphTask.sourceSamplingMode;\n const depthSamplingMode = this._frameGraphTask.depthSamplingMode;\n const focalLength = this._frameGraphTask.depthOfField.focalLength;\n const fStop = this._frameGraphTask.depthOfField.fStop;\n const focusDistance = this._frameGraphTask.depthOfField.focusDistance;\n const lensSize = this._frameGraphTask.depthOfField.lensSize;\n this._frameGraphTask.dispose();\n this._frameGraphTask = new FrameGraphDepthOfFieldTask(this.name, this._frameGraph, this._scene.getEngine(), blurLevel, hdr);\n this._frameGraphTask.sourceSamplingMode = sourceSamplingMode;\n this._frameGraphTask.depthSamplingMode = depthSamplingMode;\n this._frameGraphTask.depthOfField.focalLength = focalLength;\n this._frameGraphTask.depthOfField.fStop = fStop;\n this._frameGraphTask.depthOfField.focusDistance = focusDistance;\n this._frameGraphTask.depthOfField.lensSize = lensSize;\n this._additionalConstructionParameters = [blurLevel, hdr];\n }\n /** The quality of the blur effect */\n get blurLevel() {\n return this._frameGraphTask.depthOfField.blurLevel;\n }\n set blurLevel(value) {\n this._createTask(value, this._frameGraphTask.hdr);\n }\n /** If high dynamic range textures should be used */\n get hdr() {\n return this._frameGraphTask.hdr;\n }\n set hdr(value) {\n this._createTask(this._frameGraphTask.depthOfField.blurLevel, value);\n }\n /** Sampling mode used to sample from the source texture */\n get sourceSamplingMode() {\n return this._frameGraphTask.sourceSamplingMode;\n }\n set sourceSamplingMode(value) {\n this._frameGraphTask.sourceSamplingMode = value;\n }\n /** Sampling mode used to sample from the depth texture */\n get depthSamplingMode() {\n return this._frameGraphTask.depthSamplingMode;\n }\n set depthSamplingMode(value) {\n this._frameGraphTask.depthSamplingMode = value;\n }\n /** The focal the length of the camera used in the effect in scene units/1000 (eg. millimeter). */\n get focalLength() {\n return this._frameGraphTask.depthOfField.focalLength;\n }\n set focalLength(value) {\n this._frameGraphTask.depthOfField.focalLength = value;\n }\n /** F-Stop of the effect's camera. The diameter of the resulting aperture can be computed by lensSize/fStop. */\n get fStop() {\n return this._frameGraphTask.depthOfField.fStop;\n }\n set fStop(value) {\n this._frameGraphTask.depthOfField.fStop = value;\n }\n /** Distance away from the camera to focus on in scene units/1000 (eg. millimeter). */\n get focusDistance() {\n return this._frameGraphTask.depthOfField.focusDistance;\n }\n set focusDistance(value) {\n this._frameGraphTask.depthOfField.focusDistance = value;\n }\n /** Max lens size in scene units/1000 (eg. millimeter). Standard cameras are 50mm. The diameter of the resulting aperture can be computed by lensSize/fStop. */\n get lensSize() {\n return this._frameGraphTask.depthOfField.lensSize;\n }\n set lensSize(value) {\n this._frameGraphTask.depthOfField.lensSize = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphDepthOfFieldPostProcessBlock\";\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[0];\n }\n /**\n * Gets the geometry view depth input component\n */\n get geomViewDepth() {\n return this._inputs[1];\n }\n /**\n * Gets the destination input component\n */\n get destination() {\n return this._inputs[2];\n }\n /**\n * Gets the camera input component\n */\n get camera() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._frameGraphTask.name = this.name;\n this.output.value = this._frameGraphTask.outputTexture;\n const sourceConnectedPoint = this.source.connectedPoint;\n if (sourceConnectedPoint) {\n this._frameGraphTask.sourceTexture = sourceConnectedPoint.value;\n }\n const geomViewDepthConnectedPoint = this.geomViewDepth.connectedPoint;\n if (geomViewDepthConnectedPoint) {\n this._frameGraphTask.depthTexture = geomViewDepthConnectedPoint.value;\n }\n const destinationConnectedPoint = this.destination.connectedPoint;\n if (destinationConnectedPoint) {\n this._frameGraphTask.destinationTexture = destinationConnectedPoint.value;\n }\n const cameraConnectedPoint = this.camera.connectedPoint;\n if (cameraConnectedPoint) {\n this._frameGraphTask.camera = cameraConnectedPoint.value;\n }\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.lensSize = ${this.lensSize};`);\n codes.push(`${this._codeVariableName}.fStop = ${this.fStop};`);\n codes.push(`${this._codeVariableName}.focusDistance = ${this.focusDistance};`);\n codes.push(`${this._codeVariableName}.focalLength = ${this.focalLength};`);\n codes.push(`${this._codeVariableName}.sourceSamplingMode = ${this.sourceSamplingMode};`);\n codes.push(`${this._codeVariableName}.depthSamplingMode = ${this.depthSamplingMode};`);\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.lensSize = this.lensSize;\n serializationObject.fStop = this.fStop;\n serializationObject.focusDistance = this.focusDistance;\n serializationObject.focalLength = this.focalLength;\n serializationObject.sourceSamplingMode = this.sourceSamplingMode;\n serializationObject.depthSamplingMode = this.depthSamplingMode;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.lensSize = serializationObject.lensSize;\n this.fStop = serializationObject.fStop;\n this.focusDistance = serializationObject.focusDistance;\n this.focalLength = serializationObject.focalLength;\n this.sourceSamplingMode = serializationObject.sourceSamplingMode;\n this.depthSamplingMode = serializationObject.depthSamplingMode;\n }\n}\n__decorate([\n editableInPropertyPage(\"Blur level\", 4 /* PropertyTypeForEdition.List */, \"PROPERTIES\", {\n options: [\n { label: \"Low\", value: 0 /* ThinDepthOfFieldEffectBlurLevel.Low */ },\n { label: \"Medium\", value: 1 /* ThinDepthOfFieldEffectBlurLevel.Medium */ },\n { label: \"High\", value: 2 /* ThinDepthOfFieldEffectBlurLevel.High */ },\n ],\n })\n], NodeRenderGraphDepthOfFieldPostProcessBlock.prototype, \"blurLevel\", null);\n__decorate([\n editableInPropertyPage(\"HDR\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphDepthOfFieldPostProcessBlock.prototype, \"hdr\", null);\n__decorate([\n editableInPropertyPage(\"Source sampling mode\", 6 /* PropertyTypeForEdition.SamplingMode */, \"PROPERTIES\")\n], NodeRenderGraphDepthOfFieldPostProcessBlock.prototype, \"sourceSamplingMode\", null);\n__decorate([\n editableInPropertyPage(\"Depth sampling mode\", 6 /* PropertyTypeForEdition.SamplingMode */, \"PROPERTIES\")\n], NodeRenderGraphDepthOfFieldPostProcessBlock.prototype, \"depthSamplingMode\", null);\n__decorate([\n editableInPropertyPage(\"Focal length\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\")\n], NodeRenderGraphDepthOfFieldPostProcessBlock.prototype, \"focalLength\", null);\n__decorate([\n editableInPropertyPage(\"F-Stop\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\")\n], NodeRenderGraphDepthOfFieldPostProcessBlock.prototype, \"fStop\", null);\n__decorate([\n editableInPropertyPage(\"Focus distance\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\")\n], NodeRenderGraphDepthOfFieldPostProcessBlock.prototype, \"focusDistance\", null);\n__decorate([\n editableInPropertyPage(\"Lens size\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\")\n], NodeRenderGraphDepthOfFieldPostProcessBlock.prototype, \"lensSize\", null);\nRegisterClass(\"BABYLON.NodeRenderGraphDepthOfFieldPostProcessBlock\", NodeRenderGraphDepthOfFieldPostProcessBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { FrameGraphExtractHighlightsTask } from \"../../../Tasks/PostProcesses/extractHighlightsTask.js\";\nimport { ThinExtractHighlightsPostProcess } from \"../../../../PostProcesses/thinExtractHighlightsPostProcess.js\";\n/**\n * Block that implements the extract highlights post process\n */\nexport class NodeRenderGraphExtractHighlightsPostProcessBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new ExtractHighlightsPostProcessBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n this.registerInput(\"source\", NodeRenderGraphBlockConnectionPointTypes.Texture);\n this.registerInput(\"destination\", NodeRenderGraphBlockConnectionPointTypes.Texture, true);\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.source.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\n this.destination.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAll);\n this.output._typeConnectionSource = () => {\n return this.destination.isConnected ? this.destination : this.source;\n };\n this._frameGraphTask = new FrameGraphExtractHighlightsTask(this.name, frameGraph, new ThinExtractHighlightsPostProcess(name, scene.getEngine()));\n }\n /** Sampling mode used to sample from the source texture */\n get sourceSamplingMode() {\n return this._frameGraphTask.sourceSamplingMode;\n }\n set sourceSamplingMode(value) {\n this._frameGraphTask.sourceSamplingMode = value;\n }\n /** The luminance threshold, pixels below this value will be set to black. */\n get threshold() {\n return this._frameGraphTask.postProcess.threshold;\n }\n set threshold(value) {\n this._frameGraphTask.postProcess.threshold = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphExtractHighlightsPostProcessBlock\";\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[0];\n }\n /**\n * Gets the destination input component\n */\n get destination() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._frameGraphTask.name = this.name;\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\n const sourceConnectedPoint = this.source.connectedPoint;\n if (sourceConnectedPoint) {\n this._frameGraphTask.sourceTexture = sourceConnectedPoint.value;\n }\n const destinationConnectedPoint = this.destination.connectedPoint;\n if (destinationConnectedPoint) {\n this._frameGraphTask.destinationTexture = destinationConnectedPoint.value;\n }\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.threshold = ${this.threshold};`);\n codes.push(`${this._codeVariableName}.sourceSamplingMode = ${this.sourceSamplingMode};`);\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.threshold = this.threshold;\n serializationObject.sourceSamplingMode = this.sourceSamplingMode;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.threshold = serializationObject.threshold;\n this.sourceSamplingMode = serializationObject.sourceSamplingMode;\n }\n}\n__decorate([\n editableInPropertyPage(\"Source sampling mode\", 6 /* PropertyTypeForEdition.SamplingMode */, \"PROPERTIES\")\n], NodeRenderGraphExtractHighlightsPostProcessBlock.prototype, \"sourceSamplingMode\", null);\n__decorate([\n editableInPropertyPage(\"Threshold\", 1 /* PropertyTypeForEdition.Float */, \"PROPERTIES\", { min: 0, max: 1 })\n], NodeRenderGraphExtractHighlightsPostProcessBlock.prototype, \"threshold\", null);\nRegisterClass(\"BABYLON.NodeRenderGraphExtractHighlightsPostProcessBlock\", NodeRenderGraphExtractHighlightsPostProcessBlock);\n","import { FrameGraphTask } from \"../../frameGraphTask.js\";\n/**\n * Task used to cull objects that are not visible.\n */\nexport class FrameGraphCullObjectsTask extends FrameGraphTask {\n /**\n * Creates a new cull objects task.\n * @param name The name of the task.\n * @param frameGraph The frame graph the task belongs to.\n * @param scene The scene to cull objects from.\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph);\n this._scene = scene;\n this.outputObjectList = {\n meshes: [],\n particleSystems: [],\n };\n }\n record() {\n if (this.objectList === undefined || this.camera === undefined) {\n throw new Error(`FrameGraphCullObjectsTask ${this.name}: objectList and camera are required`);\n }\n const pass = this._frameGraph.addCullPass(this.name);\n pass.setObjectList(this.outputObjectList);\n pass.setExecuteFunc((_context) => {\n this.outputObjectList.meshes = [];\n this.camera._updateFrustumPlanes();\n const frustumPlanes = this.camera._frustumPlanes;\n const meshes = this.objectList.meshes || this._scene.meshes;\n for (let i = 0; i < meshes.length; i++) {\n const mesh = meshes[i];\n if (mesh.isBlocked || !mesh.isReady() || !mesh.isEnabled() || mesh.scaling.hasAZeroComponent) {\n continue;\n }\n if (mesh.isVisible &&\n mesh.visibility > 0 &&\n (mesh.layerMask & this.camera.layerMask) !== 0 &&\n (this._scene.skipFrustumClipping || mesh.alwaysSelectAsActiveMesh || mesh.isInFrustum(frustumPlanes))) {\n this.outputObjectList.meshes.push(mesh);\n }\n }\n });\n const passDisabled = this._frameGraph.addCullPass(this.name + \"_disabled\", true);\n passDisabled.setObjectList(this.outputObjectList);\n passDisabled.setExecuteFunc((_context) => {\n this.outputObjectList.meshes = this.objectList.meshes;\n this.outputObjectList.particleSystems = this.objectList.particleSystems;\n });\n }\n}\n","import { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { FrameGraphCullObjectsTask } from \"../../../Tasks/Rendering/cullObjectsTask.js\";\n/**\n * Block that culls a list of objects\n */\nexport class NodeRenderGraphCullObjectsBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphCullObjectsBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\n this._frameGraphTask = new FrameGraphCullObjectsTask(this.name, frameGraph, scene);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphCullObjectsBlock\";\n }\n /**\n * Gets the camera input component\n */\n get camera() {\n return this._inputs[0];\n }\n /**\n * Gets the objects input component\n */\n get objects() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._frameGraphTask.name = this.name;\n this.output.value = this._frameGraphTask.outputObjectList;\n const cameraConnectedPoint = this.camera.connectedPoint;\n if (cameraConnectedPoint) {\n this._frameGraphTask.camera = cameraConnectedPoint.value;\n }\n const objectsConnectedPoint = this.objects.connectedPoint;\n if (objectsConnectedPoint) {\n this._frameGraphTask.objectList = objectsConnectedPoint.value;\n }\n }\n _dumpPropertiesCode() {\n const codes = [];\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n }\n}\nRegisterClass(\"BABYLON.NodeRenderGraphCullObjectsBlock\", NodeRenderGraphCullObjectsBlock);\n","import { backbufferDepthStencilTextureHandle } from \"../../frameGraphTypes.js\";\nimport { Color4 } from \"../../../Maths/math.color.js\";\nimport { MaterialHelperGeometryRendering } from \"../../../Materials/materialHelper.geometryrendering.js\";\n\nimport { FrameGraphTask } from \"../../frameGraphTask.js\";\nimport { ObjectRenderer } from \"../../../Rendering/objectRenderer.js\";\nconst clearColors = [new Color4(0, 0, 0, 0), new Color4(1, 1, 1, 1), new Color4(1e8, 1e8, 1e8, 1e8)];\n/**\n * Task used to render geometry to a set of textures.\n */\nexport class FrameGraphGeometryRendererTask extends FrameGraphTask {\n /**\n * Gets or sets the camera used for rendering.\n */\n get camera() {\n return this._camera;\n }\n set camera(camera) {\n this._camera = camera;\n this._renderer.activeCamera = this.camera;\n }\n /**\n * The object renderer used by the geometry renderer task.\n */\n get objectRenderer() {\n return this._renderer;\n }\n /**\n * Gets or sets the name of the task.\n */\n get name() {\n return this._name;\n }\n set name(value) {\n this._name = value;\n if (this._renderer) {\n this._renderer.name = value;\n }\n }\n /**\n * Constructs a new geometry renderer task.\n * @param name The name of the task.\n * @param frameGraph The frame graph the task belongs to.\n * @param scene The scene the frame graph is associated with.\n * @param options The options of the object renderer.\n */\n constructor(name, frameGraph, scene, options) {\n super(name, frameGraph);\n /**\n * Whether depth testing is enabled (default is true).\n */\n this.depthTest = true;\n /**\n * Whether depth writing is enabled (default is true).\n */\n this.depthWrite = true;\n /**\n * The size of the output textures (default is 100% of the back buffer texture size).\n */\n this.size = { width: 100, height: 100 };\n /**\n * Whether the size is a percentage of the back buffer size (default is true).\n */\n this.sizeIsPercentage = true;\n /**\n * The number of samples to use for the output textures (default is 1).\n */\n this.samples = 1;\n /**\n * The list of texture descriptions used by the geometry renderer task.\n */\n this.textureDescriptions = [];\n this._scene = scene;\n this._engine = this._scene.getEngine();\n this._renderer = new ObjectRenderer(name, scene, options);\n this._renderer.renderSprites = false;\n this._renderer.renderParticles = false;\n this._renderer.onBeforeRenderingManagerRenderObservable.add(() => {\n if (!this._renderer.options.doNotChangeAspectRatio) {\n scene.updateTransformMatrix(true);\n }\n });\n this.name = name;\n this._clearAttachmentsLayout = new Map();\n this._allAttachmentsLayout = [];\n this.outputDepthTexture = this._frameGraph.createDanglingHandle();\n this.geometryViewDepthTexture = this._frameGraph.createDanglingHandle();\n this.geometryScreenDepthTexture = this._frameGraph.createDanglingHandle();\n this.geometryViewNormalTexture = this._frameGraph.createDanglingHandle();\n this.geometryWorldNormalTexture = this._frameGraph.createDanglingHandle();\n this.geometryLocalPositionTexture = this._frameGraph.createDanglingHandle();\n this.geometryWorldPositionTexture = this._frameGraph.createDanglingHandle();\n this.geometryAlbedoTexture = this._frameGraph.createDanglingHandle();\n this.geometryReflectivityTexture = this._frameGraph.createDanglingHandle();\n this.geometryVelocityTexture = this._frameGraph.createDanglingHandle();\n this.geometryLinearVelocityTexture = this._frameGraph.createDanglingHandle();\n }\n /**\n * Gets the list of excluded meshes from the velocity texture.\n */\n get excludedSkinnedMeshFromVelocityTexture() {\n return MaterialHelperGeometryRendering.GetConfiguration(this._renderer.renderPassId).excludedSkinnedMesh;\n }\n isReady() {\n return this._renderer.isReadyForRendering(this._textureWidth, this._textureHeight);\n }\n record() {\n if (this.textureDescriptions.length === 0 || this.objectList === undefined) {\n throw new Error(`FrameGraphGeometryRendererTask ${this.name}: object list and at least one geometry texture description must be provided`);\n }\n const outputTextureHandle = this._createMultiRenderTargetTexture();\n const depthEnabled = this._checkDepthTextureCompatibility();\n this._buildClearAttachmentsLayout();\n this._registerForRenderPassId(this._renderer.renderPassId);\n const outputTextureDescription = this._frameGraph.getTextureDescription(outputTextureHandle);\n this._textureWidth = outputTextureDescription.size.width;\n this._textureHeight = outputTextureDescription.size.height;\n // Create pass\n MaterialHelperGeometryRendering.MarkAsDirty(this._renderer.renderPassId, this.objectList.meshes || this._scene.meshes);\n const pass = this._frameGraph.addRenderPass(this.name);\n pass.setRenderTarget(outputTextureHandle);\n let handle = outputTextureHandle + 1;\n for (let i = 0; i < this.textureDescriptions.length; i++) {\n const description = this.textureDescriptions[i];\n const index = MaterialHelperGeometryRendering.GeometryTextureDescriptions.findIndex((f) => f.type === description.type);\n const geometryDescription = MaterialHelperGeometryRendering.GeometryTextureDescriptions[index];\n switch (geometryDescription.type) {\n case 5:\n this._frameGraph.resolveDanglingHandle(this.geometryViewDepthTexture, handle++);\n break;\n case 10:\n this._frameGraph.resolveDanglingHandle(this.geometryScreenDepthTexture, handle++);\n break;\n case 6:\n this._frameGraph.resolveDanglingHandle(this.geometryViewNormalTexture, handle++);\n break;\n case 8:\n this._frameGraph.resolveDanglingHandle(this.geometryWorldNormalTexture, handle++);\n break;\n case 9:\n this._frameGraph.resolveDanglingHandle(this.geometryLocalPositionTexture, handle++);\n break;\n case 1:\n this._frameGraph.resolveDanglingHandle(this.geometryWorldPositionTexture, handle++);\n break;\n case 12:\n this._frameGraph.resolveDanglingHandle(this.geometryAlbedoTexture, handle++);\n break;\n case 3:\n this._frameGraph.resolveDanglingHandle(this.geometryReflectivityTexture, handle++);\n break;\n case 2:\n this._frameGraph.resolveDanglingHandle(this.geometryVelocityTexture, handle++);\n break;\n case 11:\n this._frameGraph.resolveDanglingHandle(this.geometryLinearVelocityTexture, handle++);\n break;\n }\n }\n if (this.depthTexture !== undefined) {\n pass.setRenderTargetDepth(this.depthTexture);\n }\n pass.setExecuteFunc((context) => {\n this._renderer.renderList = this.objectList.meshes;\n this._renderer.particleSystemList = this.objectList.particleSystems;\n context.setDepthStates(this.depthTest && depthEnabled, this.depthWrite && depthEnabled);\n this._clearAttachmentsLayout.forEach((layout, clearType) => {\n context.clearColorAttachments(clearColors[clearType], layout);\n });\n context.bindAttachments(this._allAttachmentsLayout);\n context.render(this._renderer, this._textureWidth, this._textureHeight);\n });\n }\n dispose() {\n MaterialHelperGeometryRendering.DeleteConfiguration(this._renderer.renderPassId);\n this._renderer.dispose();\n super.dispose();\n }\n _createMultiRenderTargetTexture() {\n const types = [];\n const formats = [];\n const labels = [];\n const useSRGBBuffers = [];\n for (let i = 0; i < this.textureDescriptions.length; i++) {\n const description = this.textureDescriptions[i];\n const index = MaterialHelperGeometryRendering.GeometryTextureDescriptions.findIndex((f) => f.type === description.type);\n if (index === -1) {\n throw new Error(`FrameGraphGeometryRendererTask ${this.name}: unknown texture type ${description.type}`);\n }\n types[i] = description.textureType;\n formats[i] = description.textureFormat;\n labels[i] = MaterialHelperGeometryRendering.GeometryTextureDescriptions[index].name;\n useSRGBBuffers[i] = false;\n }\n return this._frameGraph.createRenderTargetTexture(this.name, {\n size: this.size,\n sizeIsPercentage: this.sizeIsPercentage,\n options: {\n createMipMaps: false,\n generateDepthBuffer: false,\n textureCount: this.textureDescriptions.length,\n samples: this.samples,\n types,\n formats,\n useSRGBBuffers,\n labels,\n },\n }, true);\n }\n _checkDepthTextureCompatibility() {\n let depthEnabled = false;\n if (this.depthTexture !== undefined) {\n if (this.depthTexture === backbufferDepthStencilTextureHandle) {\n throw new Error(`FrameGraphGeometryRendererTask ${this.name}: the depth/stencil back buffer is not allowed as a depth texture`);\n }\n const depthTextureDescription = this._frameGraph.getTextureDescription(this.depthTexture);\n if (depthTextureDescription.options.samples !== this.samples) {\n throw new Error(`FrameGraphGeometryRendererTask ${this.name}: the depth texture and the output texture must have the same number of samples`);\n }\n this._frameGraph.resolveDanglingHandle(this.outputDepthTexture, this.depthTexture);\n depthEnabled = true;\n }\n return depthEnabled;\n }\n _buildClearAttachmentsLayout() {\n const clearAttachmentsLayout = new Map();\n const allAttachmentsLayout = [];\n for (let i = 0; i < this.textureDescriptions.length; i++) {\n const description = this.textureDescriptions[i];\n const index = MaterialHelperGeometryRendering.GeometryTextureDescriptions.findIndex((f) => f.type === description.type);\n const geometryDescription = MaterialHelperGeometryRendering.GeometryTextureDescriptions[index];\n let layout = clearAttachmentsLayout.get(geometryDescription.clearType);\n if (layout === undefined) {\n layout = [];\n clearAttachmentsLayout.set(geometryDescription.clearType, layout);\n for (let j = 0; j < i; j++) {\n layout[j] = false;\n }\n }\n clearAttachmentsLayout.forEach((layout, clearType) => {\n layout.push(clearType === geometryDescription.clearType);\n });\n allAttachmentsLayout.push(true);\n }\n this._clearAttachmentsLayout = new Map();\n clearAttachmentsLayout.forEach((layout, clearType) => {\n this._clearAttachmentsLayout.set(clearType, this._engine.buildTextureLayout(layout));\n });\n this._allAttachmentsLayout = this._engine.buildTextureLayout(allAttachmentsLayout);\n }\n _registerForRenderPassId(renderPassId) {\n const configuration = MaterialHelperGeometryRendering.CreateConfiguration(renderPassId);\n for (let i = 0; i < this.textureDescriptions.length; i++) {\n const description = this.textureDescriptions[i];\n const index = MaterialHelperGeometryRendering.GeometryTextureDescriptions.findIndex((f) => f.type === description.type);\n const geometryDescription = MaterialHelperGeometryRendering.GeometryTextureDescriptions[index];\n configuration.defines[geometryDescription.defineIndex] = i;\n }\n }\n}\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { FrameGraphGeometryRendererTask } from \"../../../Tasks/Rendering/geometryRendererTask.js\";\n\n/**\n * Block that render geometry of objects to a multi render target\n */\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphGeometryRendererBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n * @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\n */\n constructor(name, frameGraph, scene, doNotChangeAspectRatio = true) {\n super(name, frameGraph, scene);\n // View depth\n this.viewDepthFormat = 6;\n this.viewDepthType = 2;\n // Screen depth\n this.screenDepthFormat = 6;\n this.screenDepthType = 2;\n // View normal\n this.viewNormalFormat = 5;\n this.viewNormalType = 0;\n // World normal\n this.worldNormalFormat = 5;\n this.worldNormalType = 0;\n // Local position\n this.localPositionFormat = 5;\n this.localPositionType = 2;\n // World Position\n this.worldPositionFormat = 5;\n this.worldPositionType = 2;\n // Albedo\n this.albedoFormat = 5;\n this.albedoType = 0;\n // Reflectivity\n this.reflectivityFormat = 5;\n this.reflectivityType = 0;\n // Velocity\n this.velocityFormat = 5;\n this.velocityType = 0;\n // Linear velocity\n this.linearVelocityFormat = 5;\n this.linearVelocityType = 0;\n this._additionalConstructionParameters = [doNotChangeAspectRatio];\n this.registerInput(\"depth\", NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment, true);\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.registerOutput(\"geomViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\n this.registerOutput(\"geomScreenDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth);\n this.registerOutput(\"geomViewNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\n this.registerOutput(\"geomWorldNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\n this.registerOutput(\"geomLocalPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition);\n this.registerOutput(\"geomWorldPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition);\n this.registerOutput(\"geomAlbedo\", NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo);\n this.registerOutput(\"geomReflectivity\", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);\n this.registerOutput(\"geomVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);\n this.registerOutput(\"geomLinearVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);\n this.depth.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment);\n this.outputDepth._typeConnectionSource = this.depth;\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio });\n }\n /** Indicates if depth testing must be enabled or disabled */\n get depthTest() {\n return this._frameGraphTask.depthTest;\n }\n set depthTest(value) {\n this._frameGraphTask.depthTest = value;\n }\n /** Indicates if depth writing must be enabled or disabled */\n get depthWrite() {\n return this._frameGraphTask.depthWrite;\n }\n set depthWrite(value) {\n this._frameGraphTask.depthWrite = value;\n }\n /** True (default) to not change the aspect ratio of the scene in the RTT */\n get doNotChangeAspectRatio() {\n return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;\n }\n set doNotChangeAspectRatio(value) {\n this._frameGraphTask.dispose();\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, { doNotChangeAspectRatio: value });\n this._additionalConstructionParameters = [value];\n }\n /** Width of the geometry texture */\n get width() {\n return this._frameGraphTask.size.width;\n }\n set width(value) {\n this._frameGraphTask.size.width = value;\n }\n /** Height of the geometry texture */\n get height() {\n return this._frameGraphTask.size.height;\n }\n set height(value) {\n this._frameGraphTask.size.height = value;\n }\n /** Indicates if the geometry texture width and height are percentages or absolute values */\n get sizeInPercentage() {\n return this._frameGraphTask.sizeIsPercentage;\n }\n set sizeInPercentage(value) {\n this._frameGraphTask.sizeIsPercentage = value;\n }\n /** Number of samples of the geometry texture */\n get samples() {\n return this._frameGraphTask.samples;\n }\n set samples(value) {\n this._frameGraphTask.samples = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphGeometryRendererBlock\";\n }\n /**\n * Gets the depth texture input component\n */\n get depth() {\n return this._inputs[0];\n }\n /**\n * Gets the camera input component\n */\n get camera() {\n return this._inputs[1];\n }\n /**\n * Gets the objects input component\n */\n get objects() {\n return this._inputs[2];\n }\n /**\n * Gets the output depth component\n */\n get outputDepth() {\n return this._outputs[0];\n }\n /**\n * Gets the geometry view depth component\n */\n get geomViewDepth() {\n return this._outputs[1];\n }\n /**\n * Gets the geometry screen depth component\n */\n get geomScreenDepth() {\n return this._outputs[2];\n }\n /**\n * Gets the geometry view normal component\n */\n get geomViewNormal() {\n return this._outputs[3];\n }\n /**\n * Gets the world geometry normal component\n */\n get geomWorldNormal() {\n return this._outputs[4];\n }\n /**\n * Gets the geometry local position component\n */\n get geomLocalPosition() {\n return this._outputs[5];\n }\n /**\n * Gets the geometry world position component\n */\n get geomWorldPosition() {\n return this._outputs[6];\n }\n /**\n * Gets the geometry albedo component\n */\n get geomAlbedo() {\n return this._outputs[7];\n }\n /**\n * Gets the geometry reflectivity component\n */\n get geomReflectivity() {\n return this._outputs[8];\n }\n /**\n * Gets the geometry velocity component\n */\n get geomVelocity() {\n return this._outputs[9];\n }\n /**\n * Gets the geometry linear velocity component\n */\n get geomLinearVelocity() {\n return this._outputs[10];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const textureActivation = [\n this.geomViewDepth.isConnected,\n this.geomScreenDepth.isConnected,\n this.geomViewNormal.isConnected,\n this.geomWorldNormal.isConnected,\n this.geomLocalPosition.isConnected,\n this.geomWorldPosition.isConnected,\n this.geomAlbedo.isConnected,\n this.geomReflectivity.isConnected,\n this.geomVelocity.isConnected,\n this.geomLinearVelocity.isConnected,\n ];\n if (textureActivation.every((t) => !t)) {\n throw new Error(\"NodeRenderGraphGeometryRendererBlock: At least one output geometry buffer must be connected\");\n }\n this._frameGraphTask.name = this.name;\n this.outputDepth.value = this._frameGraphTask.outputDepthTexture;\n this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;\n this.geomScreenDepth.value = this._frameGraphTask.geometryScreenDepthTexture;\n this.geomViewNormal.value = this._frameGraphTask.geometryViewNormalTexture;\n this.geomWorldNormal.value = this._frameGraphTask.geometryWorldNormalTexture;\n this.geomLocalPosition.value = this._frameGraphTask.geometryLocalPositionTexture;\n this.geomWorldPosition.value = this._frameGraphTask.geometryWorldPositionTexture;\n this.geomAlbedo.value = this._frameGraphTask.geometryAlbedoTexture;\n this.geomReflectivity.value = this._frameGraphTask.geometryReflectivityTexture;\n this.geomVelocity.value = this._frameGraphTask.geometryVelocityTexture;\n this.geomLinearVelocity.value = this._frameGraphTask.geometryLinearVelocityTexture;\n const depthConnectedPoint = this.depth.connectedPoint;\n if (depthConnectedPoint) {\n this._frameGraphTask.depthTexture = depthConnectedPoint.value;\n }\n const cameraConnectedPoint = this.camera.connectedPoint;\n if (cameraConnectedPoint) {\n this._frameGraphTask.camera = cameraConnectedPoint.value;\n }\n const objectsConnectedPoint = this.objects.connectedPoint;\n if (objectsConnectedPoint) {\n this._frameGraphTask.objectList = objectsConnectedPoint.value;\n }\n this._frameGraphTask.textureDescriptions = [];\n const textureFormats = [\n this.viewDepthFormat,\n this.screenDepthFormat,\n this.viewNormalFormat,\n this.worldNormalFormat,\n this.localPositionFormat,\n this.worldPositionFormat,\n this.albedoFormat,\n this.reflectivityFormat,\n this.velocityFormat,\n this.linearVelocityFormat,\n ];\n const textureTypes = [\n this.viewDepthType,\n this.screenDepthType,\n this.viewNormalType,\n this.worldNormalType,\n this.localPositionType,\n this.worldPositionType,\n this.albedoType,\n this.reflectivityType,\n this.velocityType,\n this.linearVelocityType,\n ];\n const bufferTypes = [\n 5,\n 10,\n 6,\n 8,\n 9,\n 1,\n 12,\n 3,\n 2,\n 11,\n ];\n for (let i = 0; i < textureActivation.length; i++) {\n if (textureActivation[i]) {\n this._frameGraphTask.textureDescriptions.push({\n textureFormat: textureFormats[i],\n textureType: textureTypes[i],\n type: bufferTypes[i],\n });\n }\n }\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`);\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\n codes.push(`${this._codeVariableName}.samples = ${this.samples};`);\n codes.push(`${this._codeVariableName}.viewDepthFormat = ${this.viewDepthFormat};`);\n codes.push(`${this._codeVariableName}.viewDepthType = ${this.viewDepthType};`);\n codes.push(`${this._codeVariableName}.screenDepthFormat = ${this.screenDepthFormat};`);\n codes.push(`${this._codeVariableName}.screenDepthType = ${this.screenDepthType};`);\n codes.push(`${this._codeVariableName}.localPositionFormat = ${this.localPositionFormat};`);\n codes.push(`${this._codeVariableName}.localPositionType = ${this.localPositionType};`);\n codes.push(`${this._codeVariableName}.worldPositionFormat = ${this.worldPositionFormat};`);\n codes.push(`${this._codeVariableName}.worldPositionType = ${this.worldPositionType};`);\n codes.push(`${this._codeVariableName}.viewNormalFormat = ${this.viewNormalFormat};`);\n codes.push(`${this._codeVariableName}.viewNormalType = ${this.viewNormalType};`);\n codes.push(`${this._codeVariableName}.worldNormalFormat = ${this.worldNormalFormat};`);\n codes.push(`${this._codeVariableName}.worldNormalType = ${this.worldNormalType};`);\n codes.push(`${this._codeVariableName}.albedoFormat = ${this.albedoFormat};`);\n codes.push(`${this._codeVariableName}.albedoType = ${this.albedoType};`);\n codes.push(`${this._codeVariableName}.reflectivityFormat = ${this.reflectivityFormat};`);\n codes.push(`${this._codeVariableName}.reflectivityType = ${this.reflectivityType};`);\n codes.push(`${this._codeVariableName}.velocityFormat = ${this.velocityFormat};`);\n codes.push(`${this._codeVariableName}.velocityType = ${this.velocityType};`);\n codes.push(`${this._codeVariableName}.linearVelocityFormat = ${this.linearVelocityFormat};`);\n codes.push(`${this._codeVariableName}.linearVelocityType = ${this.linearVelocityType};`);\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.depthTest = this.depthTest;\n serializationObject.depthWrite = this.depthWrite;\n serializationObject.samples = this.samples;\n serializationObject.viewDepthFormat = this.viewDepthFormat;\n serializationObject.viewDepthType = this.viewDepthType;\n serializationObject.screenDepthFormat = this.screenDepthFormat;\n serializationObject.screenDepthType = this.screenDepthType;\n serializationObject.localPositionFormat = this.localPositionFormat;\n serializationObject.localPositionType = this.localPositionType;\n serializationObject.worldPositionFormat = this.worldPositionFormat;\n serializationObject.worldPositionType = this.worldPositionType;\n serializationObject.viewNormalFormat = this.viewNormalFormat;\n serializationObject.viewNormalType = this.viewNormalType;\n serializationObject.worldNormalFormat = this.worldNormalFormat;\n serializationObject.worldNormalType = this.worldNormalType;\n serializationObject.albedoFormat = this.albedoFormat;\n serializationObject.albedoType = this.albedoType;\n serializationObject.reflectivityFormat = this.reflectivityFormat;\n serializationObject.reflectivityType = this.reflectivityType;\n serializationObject.velocityFormat = this.velocityFormat;\n serializationObject.velocityType = this.velocityType;\n serializationObject.linearVelocityFormat = this.linearVelocityFormat;\n serializationObject.linearVelocityType = this.linearVelocityType;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.depthTest = serializationObject.depthTest;\n this.depthWrite = serializationObject.depthWrite;\n this.samples = serializationObject.samples;\n this.viewDepthFormat = serializationObject.viewDepthFormat;\n this.viewDepthType = serializationObject.viewDepthType;\n this.screenDepthFormat = serializationObject.screenDepthFormat;\n this.screenDepthType = serializationObject.screenDepthType;\n this.localPositionFormat = serializationObject.localPositionFormat;\n this.localPositionType = serializationObject.localPositionType;\n this.worldPositionFormat = serializationObject.worldPositionFormat;\n this.worldPositionType = serializationObject.worldPositionType;\n this.viewNormalFormat = serializationObject.viewNormalFormat;\n this.viewNormalType = serializationObject.viewNormalType;\n this.worldNormalFormat = serializationObject.worldNormalFormat;\n this.worldNormalType = serializationObject.worldNormalType;\n this.albedoFormat = serializationObject.albedoFormat;\n this.albedoType = serializationObject.albedoType;\n this.reflectivityFormat = serializationObject.reflectivityFormat;\n this.reflectivityType = serializationObject.reflectivityType;\n this.velocityFormat = serializationObject.velocityFormat;\n this.velocityType = serializationObject.velocityType;\n this.linearVelocityFormat = serializationObject.linearVelocityFormat;\n this.linearVelocityType = serializationObject.linearVelocityType;\n }\n}\n__decorate([\n editableInPropertyPage(\"Depth test\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"depthTest\", null);\n__decorate([\n editableInPropertyPage(\"Depth write\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"depthWrite\", null);\n__decorate([\n editableInPropertyPage(\"Do not change aspect ratio\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"doNotChangeAspectRatio\", null);\n__decorate([\n editableInPropertyPage(\"Texture width\", 2 /* PropertyTypeForEdition.Int */, \"PROPERTIES\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"width\", null);\n__decorate([\n editableInPropertyPage(\"Texture height\", 2 /* PropertyTypeForEdition.Int */, \"PROPERTIES\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"height\", null);\n__decorate([\n editableInPropertyPage(\"Size is in percentage\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"sizeInPercentage\", null);\n__decorate([\n editableInPropertyPage(\"Samples\", 2 /* PropertyTypeForEdition.Int */, \"PROPERTIES\", { min: 1, max: 8 })\n], NodeRenderGraphGeometryRendererBlock.prototype, \"samples\", null);\n__decorate([\n editableInPropertyPage(\"View depth format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"viewDepthFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"View depth type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"viewDepthType\", void 0);\n__decorate([\n editableInPropertyPage(\"Screen depth format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"screenDepthFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"Screen depth type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"screenDepthType\", void 0);\n__decorate([\n editableInPropertyPage(\"View normal format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"viewNormalFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"View normal type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"viewNormalType\", void 0);\n__decorate([\n editableInPropertyPage(\"World normal format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"worldNormalFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"World normal type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"worldNormalType\", void 0);\n__decorate([\n editableInPropertyPage(\"Local position format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"localPositionFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"Local position type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"localPositionType\", void 0);\n__decorate([\n editableInPropertyPage(\"World position format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"worldPositionFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"World position type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"worldPositionType\", void 0);\n__decorate([\n editableInPropertyPage(\"Albedo format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"albedoFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"Albedo type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"albedoType\", void 0);\n__decorate([\n editableInPropertyPage(\"Reflectivity format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"reflectivityFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"Reflectivity type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"reflectivityType\", void 0);\n__decorate([\n editableInPropertyPage(\"Velocity format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"velocityFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"Velocity type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"velocityType\", void 0);\n__decorate([\n editableInPropertyPage(\"Linear velocity format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"linearVelocityFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"Linear velocity type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"linearVelocityType\", void 0);\nRegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);\n","import { backbufferColorTextureHandle, backbufferDepthStencilTextureHandle } from \"../../frameGraphTypes.js\";\nimport { FrameGraphTask } from \"../../frameGraphTask.js\";\nimport { ObjectRenderer } from \"../../../Rendering/objectRenderer.js\";\n/**\n * Task used to render objects to a texture.\n */\nexport class FrameGraphObjectRendererTask extends FrameGraphTask {\n /**\n * Gets or sets the camera used to render the objects.\n */\n get camera() {\n return this._camera;\n }\n set camera(camera) {\n this._camera = camera;\n this._renderer.activeCamera = this.camera;\n }\n /**\n * The object renderer used to render the objects.\n */\n get objectRenderer() {\n return this._renderer;\n }\n get name() {\n return this._name;\n }\n set name(value) {\n this._name = value;\n if (this._renderer) {\n this._renderer.name = value;\n }\n }\n /**\n * Constructs a new object renderer task.\n * @param name The name of the task.\n * @param frameGraph The frame graph the task belongs to.\n * @param scene The scene the frame graph is associated with.\n * @param options The options of the object renderer.\n */\n constructor(name, frameGraph, scene, options) {\n super(name, frameGraph);\n /**\n * The dependencies of the task (optional).\n */\n this.dependencies = [];\n /**\n * If depth testing should be enabled (default is true).\n */\n this.depthTest = true;\n /**\n * If depth writing should be enabled (default is true).\n */\n this.depthWrite = true;\n this._scene = scene;\n this._renderer = new ObjectRenderer(name, scene, options);\n this.name = name;\n this._renderer.onBeforeRenderingManagerRenderObservable.add(() => {\n if (!this._renderer.options.doNotChangeAspectRatio) {\n scene.updateTransformMatrix(true);\n }\n });\n this.outputTexture = this._frameGraph.createDanglingHandle();\n this.outputDepthTexture = this._frameGraph.createDanglingHandle();\n }\n isReady() {\n return this._renderer.isReadyForRendering(this._textureWidth, this._textureHeight);\n }\n record(skipCreationOfDisabledPasses = false, additionalExecute) {\n if (this.destinationTexture === undefined || this.objectList === undefined) {\n throw new Error(`FrameGraphObjectRendererTask ${this.name}: destinationTexture and objectList are required`);\n }\n const outputTextureDescription = this._frameGraph.getTextureDescription(this.destinationTexture);\n let depthEnabled = false;\n if (this.depthTexture !== undefined) {\n if (this.depthTexture === backbufferDepthStencilTextureHandle && this.destinationTexture !== backbufferColorTextureHandle) {\n throw new Error(`FrameGraphObjectRendererTask ${this.name}: the back buffer color texture is the only color texture allowed when the depth is the back buffer depth/stencil`);\n }\n if (this.depthTexture !== backbufferDepthStencilTextureHandle && this.destinationTexture === backbufferColorTextureHandle) {\n throw new Error(`FrameGraphObjectRendererTask ${this.name}: the back buffer depth/stencil texture is the only depth texture allowed when the destination is the back buffer color`);\n }\n const depthTextureDescription = this._frameGraph.getTextureDescription(this.depthTexture);\n if (depthTextureDescription.options.samples !== outputTextureDescription.options.samples) {\n throw new Error(`FrameGraphObjectRendererTask ${this.name}: the depth texture and the output texture must have the same number of samples`);\n }\n depthEnabled = true;\n }\n this._frameGraph.resolveDanglingHandle(this.outputTexture, this.destinationTexture);\n if (this.depthTexture !== undefined) {\n this._frameGraph.resolveDanglingHandle(this.outputDepthTexture, this.depthTexture);\n }\n this._textureWidth = outputTextureDescription.size.width;\n this._textureHeight = outputTextureDescription.size.height;\n const pass = this._frameGraph.addRenderPass(this.name);\n pass.setRenderTarget(this.destinationTexture);\n if (this.depthTexture !== undefined) {\n pass.setRenderTargetDepth(this.depthTexture);\n }\n pass.setExecuteFunc((context) => {\n this._renderer.renderList = this.objectList.meshes;\n this._renderer.particleSystemList = this.objectList.particleSystems;\n context.setDepthStates(this.depthTest && depthEnabled, this.depthWrite && depthEnabled);\n context.render(this._renderer, this._textureWidth, this._textureHeight);\n additionalExecute?.(context);\n });\n if (this.dependencies !== undefined) {\n for (const handle of this.dependencies) {\n pass.useTexture(handle);\n }\n }\n if (!skipCreationOfDisabledPasses) {\n const passDisabled = this._frameGraph.addRenderPass(this.name + \"_disabled\", true);\n passDisabled.setRenderTarget(this.destinationTexture);\n if (this.depthTexture !== undefined) {\n passDisabled.setRenderTargetDepth(this.depthTexture);\n }\n passDisabled.setExecuteFunc((_context) => { });\n if (this.dependencies !== undefined) {\n for (const handle of this.dependencies) {\n passDisabled.useTexture(handle);\n }\n }\n }\n }\n dispose() {\n this._renderer.dispose();\n super.dispose();\n }\n}\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * @internal\n */\nexport class NodeRenderGraphBaseObjectRendererBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphBaseObjectRendererBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n this.registerInput(\"destination\", NodeRenderGraphBlockConnectionPointTypes.Texture);\n this.registerInput(\"depth\", NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment, true);\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\n this.registerInput(\"dependencies\", NodeRenderGraphBlockConnectionPointTypes.Texture, true);\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.destination.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBufferDepthStencil);\n this.depth.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment);\n this.dependencies.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\n this.output._typeConnectionSource = this.destination;\n this.outputDepth._typeConnectionSource = this.depth;\n }\n /** Indicates if depth testing must be enabled or disabled */\n get depthTest() {\n return this._frameGraphTask.depthTest;\n }\n set depthTest(value) {\n this._frameGraphTask.depthTest = value;\n }\n /** Indicates if depth writing must be enabled or disabled */\n get depthWrite() {\n return this._frameGraphTask.depthWrite;\n }\n set depthWrite(value) {\n this._frameGraphTask.depthWrite = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphBaseObjectRendererBlock\";\n }\n /**\n * Gets the destination texture input component\n */\n get destination() {\n return this._inputs[0];\n }\n /**\n * Gets the depth texture input component\n */\n get depth() {\n return this._inputs[1];\n }\n /**\n * Gets the camera input component\n */\n get camera() {\n return this._inputs[2];\n }\n /**\n * Gets the objects input component\n */\n get objects() {\n return this._inputs[3];\n }\n /**\n * Gets the dependencies input component\n */\n get dependencies() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the output depth component\n */\n get outputDepth() {\n return this._outputs[1];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._frameGraphTask.name = this.name;\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\n this.outputDepth.value = this._frameGraphTask.outputDepthTexture; // the value of the outputDepth connection point is the \"outputDepth\" texture of the task\n const destinationConnectedPoint = this.destination.connectedPoint;\n if (destinationConnectedPoint) {\n this._frameGraphTask.destinationTexture = destinationConnectedPoint.value;\n }\n const depthConnectedPoint = this.depth.connectedPoint;\n if (depthConnectedPoint) {\n this._frameGraphTask.depthTexture = depthConnectedPoint.value;\n }\n const cameraConnectedPoint = this.camera.connectedPoint;\n if (cameraConnectedPoint) {\n this._frameGraphTask.camera = cameraConnectedPoint.value;\n }\n const objectsConnectedPoint = this.objects.connectedPoint;\n if (objectsConnectedPoint) {\n this._frameGraphTask.objectList = objectsConnectedPoint.value;\n }\n this._frameGraphTask.dependencies = [];\n const dependenciesConnectedPoint = this.dependencies.connectedPoint;\n if (dependenciesConnectedPoint) {\n this._frameGraphTask.dependencies[0] = dependenciesConnectedPoint.value;\n }\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`);\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.depthTest = this.depthTest;\n serializationObject.depthWrite = this.depthWrite;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.depthTest = serializationObject.depthTest;\n this.depthWrite = serializationObject.depthWrite;\n }\n}\n__decorate([\n editableInPropertyPage(\"Depth test\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphBaseObjectRendererBlock.prototype, \"depthTest\", null);\n__decorate([\n editableInPropertyPage(\"Depth write\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphBaseObjectRendererBlock.prototype, \"depthWrite\", null);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { FrameGraphObjectRendererTask } from \"../../../Tasks/Rendering/objectRendererTask.js\";\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"./baseObjectRendererBlock.js\";\n/**\n * Block that render objects to a render target\n */\nexport class NodeRenderGraphObjectRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {\n /**\n * Create a new NodeRenderGraphObjectRendererBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n * @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\n */\n constructor(name, frameGraph, scene, doNotChangeAspectRatio = true) {\n super(name, frameGraph, scene);\n this._additionalConstructionParameters = [doNotChangeAspectRatio];\n this._frameGraphTask = new FrameGraphObjectRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio });\n }\n /** True (default) to not change the aspect ratio of the scene in the RTT */\n get doNotChangeAspectRatio() {\n return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;\n }\n set doNotChangeAspectRatio(value) {\n this._frameGraphTask.dispose();\n this._frameGraphTask = new FrameGraphObjectRendererTask(this.name, this._frameGraph, this._scene, { doNotChangeAspectRatio: value });\n this._additionalConstructionParameters = [value];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphObjectRendererBlock\";\n }\n}\n__decorate([\n editableInPropertyPage(\"Do not change aspect ratio\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphObjectRendererBlock.prototype, \"doNotChangeAspectRatio\", null);\nRegisterClass(\"BABYLON.NodeRenderGraphObjectRendererBlock\", NodeRenderGraphObjectRendererBlock);\n","/**\n * Class for generating 2D Halton sequences.\n * From https://observablehq.com/@jrus/halton\n */\nexport class Halton2DSequence {\n /**\n * Creates a new Halton2DSequence.\n * @param numSamples Number of samples in the sequence.\n * @param baseX The base for the x coordinate (default: 2).\n * @param baseY The base for the y coordinate (default: 3).\n * @param width Factor to scale the x coordinate by (default: 1). The scaling factor is 1/width.\n * @param height Factor to scale the y coordinate by (default: 1). The scaling factor is 1/height.\n */\n constructor(numSamples, baseX = 2, baseY = 3, width = 1, height = 1) {\n this._curIndex = 0;\n this._sequence = [];\n this._numSamples = 0;\n /**\n * The x coordinate of the current sample.\n */\n this.x = 0;\n /**\n * The y coordinate of the current sample.\n */\n this.y = 0;\n this._width = width;\n this._height = height;\n this._baseX = baseX;\n this._baseY = baseY;\n this._generateSequence(numSamples);\n this.next();\n }\n /**\n * Regenerates the sequence with a new number of samples.\n * @param numSamples Number of samples in the sequence.\n */\n regenerate(numSamples) {\n this._generateSequence(numSamples);\n this.next();\n }\n /**\n * Sets the dimensions of the sequence.\n * @param width Factor to scale the x coordinate by. The scaling factor is 1/width.\n * @param height Factor to scale the y coordinate by. The scaling factor is 1/height.\n */\n setDimensions(width, height) {\n this._width = width;\n this._height = height;\n }\n /**\n * Advances to the next sample in the sequence.\n */\n next() {\n this.x = this._sequence[this._curIndex] / this._width;\n this.y = this._sequence[this._curIndex + 1] / this._height;\n this._curIndex += 2;\n if (this._curIndex >= this._numSamples * 2) {\n this._curIndex = 0;\n }\n }\n _generateSequence(numSamples) {\n this._sequence = [];\n this._curIndex = 0;\n this._numSamples = numSamples;\n for (let i = 1; i <= numSamples; ++i) {\n this._sequence.push(this._halton(i, this._baseX) - 0.5, this._halton(i, this._baseY) - 0.5);\n }\n }\n _halton(index, base) {\n let fraction = 1;\n let result = 0;\n while (index > 0) {\n fraction /= base;\n result += fraction * (index % base);\n index = ~~(index / base); // floor division\n }\n return result;\n }\n}\n","import { Camera } from \"../Cameras/camera.js\";\nimport { Halton2DSequence } from \"../Maths/halton2DSequence.js\";\nimport { Engine } from \"../Engines/engine.js\";\nimport { EffectWrapper } from \"../Materials/effectRenderer.js\";\n/**\n * Simple implementation of Temporal Anti-Aliasing (TAA).\n * This can be used to improve image quality for still pictures (screenshots for e.g.).\n */\nexport class ThinTAAPostProcess extends EffectWrapper {\n _gatherImports(useWebGPU, list) {\n if (useWebGPU) {\n this._webGPUReady = true;\n list.push(import(\"../ShadersWGSL/taa.fragment.js\"));\n }\n else {\n list.push(import(\"../Shaders/taa.fragment.js\"));\n }\n }\n /**\n * Number of accumulated samples (default: 8)\n */\n set samples(samples) {\n if (this._samples === samples) {\n return;\n }\n this._samples = samples;\n this._hs.regenerate(samples);\n }\n get samples() {\n return this._samples;\n }\n /**\n * Whether the TAA is disabled\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n if (this._disabled === value) {\n return;\n }\n this._disabled = value;\n this._reset();\n }\n /**\n * The width of the texture in which to render\n */\n get textureWidth() {\n return this._textureWidth;\n }\n set textureWidth(width) {\n if (this._textureWidth === width) {\n return;\n }\n this._textureWidth = width;\n this._reset();\n }\n /**\n * The height of the texture in which to render\n */\n get textureHeight() {\n return this._textureHeight;\n }\n set textureHeight(height) {\n if (this._textureHeight === height) {\n return;\n }\n this._textureHeight = height;\n this._reset();\n }\n /**\n * Constructs a new TAA post process\n * @param name Name of the effect\n * @param engine Engine to use to render the effect. If not provided, the last created engine will be used\n * @param options Options to configure the effect\n */\n constructor(name, engine = null, options) {\n super({\n ...options,\n name,\n engine: engine || Engine.LastCreatedEngine,\n useShaderStore: true,\n useAsPostProcess: true,\n fragmentShader: ThinTAAPostProcess.FragmentUrl,\n uniforms: ThinTAAPostProcess.Uniforms,\n samplers: ThinTAAPostProcess.Samplers,\n });\n this._samples = 8;\n /**\n * The factor used to blend the history frame with current frame (default: 0.05)\n */\n this.factor = 0.05;\n this._disabled = false;\n this._textureWidth = 0;\n this._textureHeight = 0;\n /**\n * Disable TAA on camera move (default: true).\n * You generally want to keep this enabled, otherwise you will get a ghost effect when the camera moves (but if it's what you want, go for it!)\n */\n this.disableOnCameraMove = true;\n this._firstUpdate = true;\n this._hs = new Halton2DSequence(this.samples);\n }\n /** @internal */\n _reset() {\n this._hs.setDimensions(this._textureWidth / 2, this._textureHeight / 2);\n this._hs.next();\n this._firstUpdate = true;\n }\n updateProjectionMatrix() {\n if (this.disabled) {\n return;\n }\n if (this.camera && !this.camera.hasMoved) {\n if (this.camera.mode === Camera.PERSPECTIVE_CAMERA) {\n const projMat = this.camera.getProjectionMatrix();\n projMat.setRowFromFloats(2, this._hs.x, this._hs.y, projMat.m[10], projMat.m[11]);\n }\n else {\n // We must force the update of the projection matrix so that m[12] and m[13] are recomputed, as we modified them the previous frame\n const projMat = this.camera.getProjectionMatrix(true);\n projMat.setRowFromFloats(3, this._hs.x + projMat.m[12], this._hs.y + projMat.m[13], projMat.m[14], projMat.m[15]);\n }\n }\n this._hs.next();\n }\n bind() {\n super.bind();\n if (this.disabled) {\n return;\n }\n const effect = this._drawWrapper.effect;\n effect.setFloat(\"factor\", (this.camera?.hasMoved && this.disableOnCameraMove) || this._firstUpdate ? 1 : this.factor);\n this._firstUpdate = false;\n }\n}\n/**\n * The fragment shader url\n */\nThinTAAPostProcess.FragmentUrl = \"taa\";\n/**\n * The list of uniforms used by the effect\n */\nThinTAAPostProcess.Uniforms = [\"factor\"];\n/**\n * The list of samplers used by the effect\n */\nThinTAAPostProcess.Samplers = [\"historySampler\"];\n","import { backbufferColorTextureHandle, backbufferDepthStencilTextureHandle } from \"../../frameGraphTypes.js\";\nimport { FrameGraphObjectRendererTask } from \"./objectRendererTask.js\";\nimport { ThinTAAPostProcess } from \"../../../PostProcesses/thinTAAPostProcess.js\";\n\n/**\n * Task used to render objects to a texture with Temporal Anti-Aliasing (TAA).\n */\nexport class FrameGraphTAAObjectRendererTask extends FrameGraphObjectRendererTask {\n /**\n * Constructs a new TAA object renderer task.\n * @param name The name of the task\n * @param frameGraph The frame graph the task belongs to.\n * @param scene The scene the frame graph is associated with.\n * @param options The options of the object renderer.\n */\n constructor(name, frameGraph, scene, options) {\n super(name, frameGraph, scene, options);\n this.postProcess = new ThinTAAPostProcess(`${name} post-process`, scene.getEngine());\n this._postProcessDrawWrapper = this.postProcess.drawWrapper;\n }\n record() {\n if (this.destinationTexture === undefined || this.objectList === undefined) {\n throw new Error(`FrameGraphTAAObjectRendererTask ${this.name}: destinationTexture and objectList are required`);\n }\n if (this.destinationTexture === backbufferColorTextureHandle || this.depthTexture === backbufferDepthStencilTextureHandle) {\n throw new Error(`FrameGraphTAAObjectRendererTask ${this.name}: the back buffer color/depth textures are not allowed. Use regular textures instead.`);\n }\n const outputTextureDescription = this._frameGraph.getTextureDescription(this.destinationTexture);\n let depthEnabled = false;\n if (this.depthTexture !== undefined) {\n const depthTextureDescription = this._frameGraph.getTextureDescription(this.depthTexture);\n if (depthTextureDescription.options.samples !== outputTextureDescription.options.samples) {\n throw new Error(`FrameGraphTAAObjectRendererTask ${this.name}: the depth texture and the output texture must have the same number of samples`);\n }\n depthEnabled = true;\n }\n this.postProcess.camera = this.camera;\n this.postProcess.textureWidth = outputTextureDescription.size.width;\n this.postProcess.textureHeight = outputTextureDescription.size.height;\n const textureCreationOptions = {\n size: outputTextureDescription.size,\n options: {\n createMipMaps: false,\n generateMipMaps: false,\n types: [2],\n samplingModes: [1],\n formats: [5],\n samples: 1,\n useSRGBBuffers: [false],\n generateDepthBuffer: false,\n generateStencilBuffer: false,\n label: \"\",\n },\n sizeIsPercentage: false,\n isHistoryTexture: true,\n };\n const pingPongHandle = this._frameGraph.createRenderTargetTexture(`${this.name} history`, textureCreationOptions);\n this._frameGraph.resolveDanglingHandle(this.outputTexture, pingPongHandle);\n if (this.depthTexture !== undefined) {\n this._frameGraph.resolveDanglingHandle(this.outputDepthTexture, this.depthTexture);\n }\n this._textureWidth = outputTextureDescription.size.width;\n this._textureHeight = outputTextureDescription.size.height;\n const pass = this._frameGraph.addRenderPass(this.name);\n pass.setRenderTarget(this.destinationTexture);\n if (this.depthTexture !== undefined) {\n pass.setRenderTargetDepth(this.depthTexture);\n }\n pass.setExecuteFunc((context) => {\n this._renderer.renderList = this.objectList.meshes;\n this._renderer.particleSystemList = this.objectList.particleSystems;\n this.postProcess.updateProjectionMatrix();\n context.setDepthStates(this.depthTest && depthEnabled, this.depthWrite && depthEnabled);\n // We define the active camera and transformation matrices ourselves, otherwise this will be done by calling context.render, in which case\n // getProjectionMatrix will be called with a \"true\" parameter, forcing recalculation of the projection matrix and losing our changes.\n if (!this.postProcess.disabled) {\n this._scene.activeCamera = this.camera;\n this._scene.setTransformMatrix(this.camera.getViewMatrix(), this.camera.getProjectionMatrix());\n }\n context.render(this._renderer, this._textureWidth, this._textureHeight);\n this._scene.activeCamera = null;\n context.bindRenderTarget(pingPongHandle, \"frame graph - TAA merge with history texture\");\n if (!this.postProcess.disabled) {\n context.applyFullScreenEffect(this._postProcessDrawWrapper, () => {\n this.postProcess.bind();\n context.bindTextureHandle(this._postProcessDrawWrapper.effect, \"textureSampler\", this.destinationTexture);\n context.bindTextureHandle(this._postProcessDrawWrapper.effect, \"historySampler\", pingPongHandle);\n });\n }\n else {\n context.copyTexture(this.destinationTexture);\n }\n });\n const passDisabled = this._frameGraph.addRenderPass(this.name + \"_disabled\", true);\n passDisabled.setRenderTarget(this.outputTexture);\n if (this.depthTexture !== undefined) {\n passDisabled.setRenderTargetDepth(this.depthTexture);\n }\n passDisabled.setExecuteFunc((context) => {\n context.copyTexture(this.destinationTexture);\n });\n if (this.dependencies !== undefined) {\n for (const handle of this.dependencies) {\n pass.useTexture(handle);\n passDisabled.useTexture(handle);\n }\n }\n }\n}\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { FrameGraphTAAObjectRendererTask } from \"../../../Tasks/Rendering/taaObjectRendererTask.js\";\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"./baseObjectRendererBlock.js\";\n/**\n * Block that render objects with temporal anti-aliasing to a render target\n */\nexport class NodeRenderGraphTAAObjectRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphTAAObjectRendererBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n * @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\n */\n constructor(name, frameGraph, scene, doNotChangeAspectRatio = true) {\n super(name, frameGraph, scene);\n this._additionalConstructionParameters = [doNotChangeAspectRatio];\n this._frameGraphTask = new FrameGraphTAAObjectRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio });\n }\n /** True (default) to not change the aspect ratio of the scene in the RTT */\n get doNotChangeAspectRatio() {\n return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;\n }\n set doNotChangeAspectRatio(value) {\n this._frameGraphTask.dispose();\n this._frameGraphTask = new FrameGraphTAAObjectRendererTask(this.name, this._frameGraph, this._scene, { doNotChangeAspectRatio: value });\n this._additionalConstructionParameters = [value];\n }\n /** Number of accumulated samples */\n get samples() {\n return this._frameGraphTask.postProcess.samples;\n }\n set samples(value) {\n this._frameGraphTask.postProcess.samples = value;\n }\n /** The factor used to blend the history frame with current frame */\n get factor() {\n return this._frameGraphTask.postProcess.factor;\n }\n set factor(value) {\n this._frameGraphTask.postProcess.factor = value;\n }\n /** Indicates if depth testing must be enabled or disabled */\n get disableOnCameraMove() {\n return this._frameGraphTask.postProcess.disableOnCameraMove;\n }\n set disableOnCameraMove(value) {\n this._frameGraphTask.postProcess.disableOnCameraMove = value;\n }\n /** Indicates if TAA must be enabled or disabled */\n get disableTAA() {\n return this._frameGraphTask.postProcess.disabled;\n }\n set disableTAA(value) {\n this._frameGraphTask.postProcess.disabled = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphTAAObjectRendererBlock\";\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.samples = ${this.samples};`);\n codes.push(`${this._codeVariableName}.factor = ${this.factor};`);\n codes.push(`${this._codeVariableName}.disableOnCameraMove = ${this.disableOnCameraMove};`);\n codes.push(`${this._codeVariableName}.disableTAA = ${this.disableTAA};`);\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.samples = this.samples;\n serializationObject.factor = this.factor;\n serializationObject.disableOnCameraMove = this.disableOnCameraMove;\n serializationObject.disableTAA = this.disableTAA;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.samples = serializationObject.samples;\n this.factor = serializationObject.factor;\n this.disableOnCameraMove = serializationObject.disableOnCameraMove;\n this.disableTAA = serializationObject.disableTAA;\n }\n}\n__decorate([\n editableInPropertyPage(\"Do not change aspect ratio\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphTAAObjectRendererBlock.prototype, \"doNotChangeAspectRatio\", null);\n__decorate([\n editableInPropertyPage(\"Samples\", 2 /* PropertyTypeForEdition.Int */, \"TEMPORAL ANTI-ALIASING\")\n], NodeRenderGraphTAAObjectRendererBlock.prototype, \"samples\", null);\n__decorate([\n editableInPropertyPage(\"Factor\", 1 /* PropertyTypeForEdition.Float */, \"TEMPORAL ANTI-ALIASING\")\n], NodeRenderGraphTAAObjectRendererBlock.prototype, \"factor\", null);\n__decorate([\n editableInPropertyPage(\"Disable on camera move\", 0 /* PropertyTypeForEdition.Boolean */, \"TEMPORAL ANTI-ALIASING\")\n], NodeRenderGraphTAAObjectRendererBlock.prototype, \"disableOnCameraMove\", null);\n__decorate([\n editableInPropertyPage(\"Disable TAA\", 0 /* PropertyTypeForEdition.Boolean */, \"TEMPORAL ANTI-ALIASING\")\n], NodeRenderGraphTAAObjectRendererBlock.prototype, \"disableTAA\", null);\nRegisterClass(\"BABYLON.NodeRenderGraphTAAObjectRendererBlock\", NodeRenderGraphTAAObjectRendererBlock);\n","import { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\n/**\n * Defines a block used to teleport a value to an endpoint\n */\nexport class NodeRenderGraphTeleportInBlock extends NodeRenderGraphBlock {\n /** Gets the list of attached endpoints */\n get endpoints() {\n return this._endpoints;\n }\n /**\n * Create a new NodeRenderGraphTeleportInBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n this._endpoints = [];\n this._isTeleportIn = true;\n this.registerInput(\"input\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphTeleportInBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n _dumpCode(uniqueNames, alreadyDumped) {\n let codeString = super._dumpCode(uniqueNames, alreadyDumped);\n for (const endpoint of this.endpoints) {\n if (alreadyDumped.indexOf(endpoint) === -1) {\n codeString += endpoint._dumpCode(uniqueNames, alreadyDumped);\n }\n }\n return codeString;\n }\n /**\n * Checks if the current block is an ancestor of a given type\n * @param type defines the potential type to check\n * @returns true if block is a descendant\n */\n isAnAncestorOfType(type) {\n if (this.getClassName() === type) {\n return true;\n }\n for (const endpoint of this.endpoints) {\n if (endpoint.isAnAncestorOfType(type)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Checks if the current block is an ancestor of a given block\n * @param block defines the potential descendant block to check\n * @returns true if block is a descendant\n */\n isAnAncestorOf(block) {\n for (const endpoint of this.endpoints) {\n if (endpoint === block) {\n return true;\n }\n if (endpoint.isAnAncestorOf(block)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Get the first descendant using a predicate\n * @param predicate defines the predicate to check\n * @returns descendant or null if none found\n */\n getDescendantOfPredicate(predicate) {\n if (predicate(this)) {\n return this;\n }\n for (const endpoint of this.endpoints) {\n const descendant = endpoint.getDescendantOfPredicate(predicate);\n if (descendant) {\n return descendant;\n }\n }\n return null;\n }\n /**\n * Add an enpoint to this block\n * @param endpoint define the endpoint to attach to\n */\n attachToEndpoint(endpoint) {\n endpoint.detach();\n this._endpoints.push(endpoint);\n endpoint._entryPoint = this;\n endpoint._outputs[0]._typeConnectionSource = this._inputs[0];\n endpoint._tempEntryPointUniqueId = null;\n endpoint.name = \"> \" + this.name;\n }\n /**\n * Remove enpoint from this block\n * @param endpoint define the endpoint to remove\n */\n detachFromEndpoint(endpoint) {\n const index = this._endpoints.indexOf(endpoint);\n if (index !== -1) {\n this._endpoints.splice(index, 1);\n endpoint._outputs[0]._typeConnectionSource = null;\n endpoint._entryPoint = null;\n }\n }\n /**\n * Release resources\n */\n dispose() {\n super.dispose();\n for (const endpoint of this._endpoints) {\n this.detachFromEndpoint(endpoint);\n }\n this._endpoints = [];\n }\n}\nRegisterClass(\"BABYLON.NodeRenderGraphTeleportInBlock\", NodeRenderGraphTeleportInBlock);\n","import { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\n/**\n * Defines a block used to receive a value from a teleport entry point\n */\nexport class NodeRenderGraphTeleportOutBlock extends NodeRenderGraphBlock {\n /**\n * Create a new NodeRenderGraphTeleportOutBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n /** @internal */\n this._entryPoint = null;\n /** @internal */\n this._tempEntryPointUniqueId = null;\n this._isTeleportOut = true;\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n }\n /**\n * Gets the entry point\n */\n get entryPoint() {\n return this._entryPoint;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphTeleportOutBlock\";\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /** Detach from entry point */\n detach() {\n if (!this._entryPoint) {\n return;\n }\n this._entryPoint.detachFromEndpoint(this);\n }\n _buildBlock() {\n // Do nothing\n // All work done by the emitter\n }\n _customBuildStep(state) {\n if (this.entryPoint) {\n this.entryPoint.build(state);\n }\n }\n _dumpCode(uniqueNames, alreadyDumped) {\n let codeString = \"\";\n if (this.entryPoint) {\n if (alreadyDumped.indexOf(this.entryPoint) === -1) {\n codeString += this.entryPoint._dumpCode(uniqueNames, alreadyDumped);\n }\n }\n return codeString + super._dumpCode(uniqueNames, alreadyDumped);\n }\n _dumpCodeForOutputConnections(alreadyDumped) {\n let codeString = super._dumpCodeForOutputConnections(alreadyDumped);\n if (this.entryPoint) {\n codeString += this.entryPoint._dumpCodeForOutputConnections(alreadyDumped);\n }\n return codeString;\n }\n /**\n * Clone the current block to a new identical block\n * @returns a copy of the current block\n */\n clone() {\n const clone = super.clone();\n if (this.entryPoint) {\n this.entryPoint.attachToEndpoint(clone);\n }\n return clone;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n if (this.entryPoint) {\n codeString += `${this.entryPoint._codeVariableName}.attachToEndpoint(${this._codeVariableName});\\n`;\n }\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.entryPoint = this.entryPoint?.uniqueId ?? \"\";\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this._tempEntryPointUniqueId = serializationObject.entryPoint;\n }\n}\nRegisterClass(\"BABYLON.NodeRenderGraphTeleportOutBlock\", NodeRenderGraphTeleportOutBlock);\n","import { FrameGraphTask } from \"../../frameGraphTask.js\";\n/**\n * Task used to copy a texture to another texture.\n */\nexport class FrameGraphCopyToTextureTask extends FrameGraphTask {\n /**\n * Constructs a new FrameGraphCopyToTextureTask.\n * @param name The name of the task.\n * @param frameGraph The frame graph the task belongs to.\n */\n constructor(name, frameGraph) {\n super(name, frameGraph);\n this.outputTexture = this._frameGraph.createDanglingHandle();\n }\n record() {\n if (this.sourceTexture === undefined || this.destinationTexture === undefined) {\n throw new Error(`FrameGraphCopyToTextureTask \"${this.name}\": sourceTexture and destinationTexture are required`);\n }\n this._frameGraph.resolveDanglingHandle(this.outputTexture, this.destinationTexture);\n const pass = this._frameGraph.addRenderPass(this.name);\n pass.useTexture(this.sourceTexture);\n pass.setRenderTarget(this.outputTexture);\n pass.setExecuteFunc((context) => {\n context.copyTexture(this.sourceTexture);\n });\n const passDisabled = this._frameGraph.addRenderPass(this.name + \"_disabled\", true);\n passDisabled.setRenderTarget(this.outputTexture);\n passDisabled.setExecuteFunc((_context) => { });\n }\n}\n","import { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { FrameGraphCopyToTextureTask } from \"../../../Tasks/Texture/copyToTextureTask.js\";\n/**\n * Block used to copy a texture\n */\nexport class NodeRenderGraphCopyTextureBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphCopyTextureBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n this.registerInput(\"source\", NodeRenderGraphBlockConnectionPointTypes.Texture);\n this.registerInput(\"destination\", NodeRenderGraphBlockConnectionPointTypes.Texture);\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.source.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\n this.destination.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAll);\n this.output._typeConnectionSource = this.destination;\n this._frameGraphTask = new FrameGraphCopyToTextureTask(name, frameGraph);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphCopyTextureBlock\";\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[0];\n }\n /**\n * Gets the destination input component\n */\n get destination() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._frameGraphTask.name = this.name;\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\n const sourceConnectedPoint = this.source.connectedPoint;\n if (sourceConnectedPoint) {\n this._frameGraphTask.sourceTexture = sourceConnectedPoint.value;\n }\n const destinationConnectedPoint = this.destination.connectedPoint;\n if (destinationConnectedPoint) {\n this._frameGraphTask.destinationTexture = destinationConnectedPoint.value;\n }\n }\n}\nRegisterClass(\"BABYLON.NodeRenderGraphCopyTextureBlock\", NodeRenderGraphCopyTextureBlock);\n","import { FrameGraphTask } from \"../../frameGraphTask.js\";\n/**\n * Task which generates mipmaps for a texture.\n */\nexport class FrameGraphGenerateMipMapsTask extends FrameGraphTask {\n /**\n * Constructs a new FrameGraphGenerateMipMapsTask.\n * @param name The name of the task.\n * @param frameGraph The frame graph the task belongs to.\n */\n constructor(name, frameGraph) {\n super(name, frameGraph);\n this.outputTexture = this._frameGraph.createDanglingHandle();\n }\n record() {\n if (this.destinationTexture === undefined) {\n throw new Error(`FrameGraphGenerateMipMapsTask ${this.name}: destinationTexture is required`);\n }\n this._frameGraph.resolveDanglingHandle(this.outputTexture, this.destinationTexture);\n const outputTextureDescription = this._frameGraph.getTextureDescription(this.destinationTexture);\n if (!outputTextureDescription.options.createMipMaps) {\n throw new Error(`FrameGraphGenerateMipMapsTask ${this.name}: destinationTexture must have createMipMaps set to true`);\n }\n const pass = this._frameGraph.addRenderPass(this.name);\n pass.setRenderTarget(this.outputTexture);\n pass.setExecuteFunc((context) => {\n context.generateMipMaps();\n });\n const passDisabled = this._frameGraph.addRenderPass(this.name + \"_disabled\", true);\n passDisabled.setRenderTarget(this.outputTexture);\n passDisabled.setExecuteFunc((_context) => { });\n }\n}\n","import { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { FrameGraphGenerateMipMapsTask } from \"../../../Tasks/Texture/generateMipMapsTask.js\";\n/**\n * Block used to generate mipmaps for a texture\n */\nexport class NodeRenderGraphGenerateMipmapsBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphGenerateMipmapsBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n */\n constructor(name, frameGraph, scene) {\n super(name, frameGraph, scene);\n this.registerInput(\"texture\", NodeRenderGraphBlockConnectionPointTypes.Texture);\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.texture.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\n this.output._typeConnectionSource = this.texture;\n this._frameGraphTask = new FrameGraphGenerateMipMapsTask(name, frameGraph);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphGenerateMipmapsBlock\";\n }\n /**\n * Gets the texture input component\n */\n get texture() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._frameGraphTask.name = this.name;\n this._propagateInputValueToOutput(this.texture, this.output);\n const textureConnectedPoint = this.texture.connectedPoint;\n if (textureConnectedPoint) {\n this._frameGraphTask.destinationTexture = textureConnectedPoint.value;\n }\n }\n}\nRegisterClass(\"BABYLON.NodeRenderGraphGenerateMipmapsBlock\", NodeRenderGraphGenerateMipmapsBlock);\n","import { Mesh } from \"../mesh.js\";\nimport { CreateSphere } from \"../Builders/sphereBuilder.js\";\nimport { CreateDisc } from \"./discBuilder.js\";\n/**\n * Creates a hemisphere mesh\n * @param name defines the name of the mesh\n * @param options defines the options used to create the mesh\n * @param scene defines the hosting scene\n * @returns the hemisphere mesh\n */\nexport function CreateHemisphere(name, options = {}, scene) {\n if (!options.diameter) {\n options.diameter = 1;\n }\n if (!options.segments) {\n options.segments = 16;\n }\n const halfSphere = CreateSphere(\"\", { slice: 0.5, diameter: options.diameter, segments: options.segments }, scene);\n const disc = CreateDisc(\"\", { radius: options.diameter / 2, tessellation: options.segments * 3 + (4 - options.segments) }, scene);\n disc.rotation.x = -Math.PI / 2;\n disc.parent = halfSphere;\n const merged = Mesh.MergeMeshes([disc, halfSphere], true);\n merged.name = name;\n return merged;\n}\n/**\n * Class containing static functions to help procedurally build meshes\n * @deprecated use the function directly from the module\n */\nexport const HemisphereBuilder = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateHemisphere,\n};\n/**\n * Creates a hemispheric light\n * @param name\n * @param segments\n * @param diameter\n * @param scene\n * @returns the mesh\n */\nMesh.CreateHemisphere = (name, segments, diameter, scene) => {\n const options = {\n segments: segments,\n diameter: diameter,\n };\n return CreateHemisphere(name, options, scene);\n};\n","import { TransformNode } from \"../Meshes/transformNode.js\";\nimport { Mesh } from \"../Meshes/mesh.js\";\nimport { Texture } from \"../Materials/Textures/texture.js\";\nimport { BackgroundMaterial } from \"../Materials/Background/backgroundMaterial.js\";\nimport { CreateSphere } from \"../Meshes/Builders/sphereBuilder.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { Vector3 } from \"../Maths/math.vector.js\";\nimport { Axis } from \"../Maths/math.js\";\n/**\n * Display a 360/180 degree texture on an approximately spherical surface, useful for VR applications or skyboxes.\n * As a subclass of TransformNode, this allow parenting to the camera or multiple textures with different locations in the scene.\n * This class achieves its effect with a Texture and a correctly configured BackgroundMaterial on an inverted sphere.\n * Potential additions to this helper include zoom and and non-infinite distance rendering effects.\n */\nexport class TextureDome extends TransformNode {\n /**\n * Gets the texture being displayed on the sphere\n */\n get texture() {\n return this._texture;\n }\n /**\n * Sets the texture being displayed on the sphere\n */\n set texture(newTexture) {\n if (this._texture === newTexture) {\n return;\n }\n this._texture = newTexture;\n if (this._useDirectMapping) {\n this._texture.wrapU = Texture.CLAMP_ADDRESSMODE;\n this._texture.wrapV = Texture.CLAMP_ADDRESSMODE;\n this._material.diffuseTexture = this._texture;\n }\n else {\n this._texture.coordinatesMode = Texture.FIXED_EQUIRECTANGULAR_MIRRORED_MODE; // matches orientation\n this._texture.wrapV = Texture.CLAMP_ADDRESSMODE;\n this._material.reflectionTexture = this._texture;\n }\n this._changeTextureMode(this._textureMode);\n }\n /**\n * Gets the mesh used for the dome.\n */\n get mesh() {\n return this._mesh;\n }\n /**\n * The current fov(field of view) multiplier, 0.0 - 2.0. Defaults to 1.0. Lower values \"zoom in\" and higher values \"zoom out\".\n * Also see the options.resolution property.\n */\n get fovMultiplier() {\n return this._material.fovMultiplier;\n }\n set fovMultiplier(value) {\n this._material.fovMultiplier = value;\n }\n /**\n * Gets or set the current texture mode for the texture. It can be:\n * * TextureDome.MODE_MONOSCOPIC : Define the texture source as a Monoscopic panoramic 360.\n * * TextureDome.MODE_TOPBOTTOM : Define the texture source as a Stereoscopic TopBottom/OverUnder panoramic 360.\n * * TextureDome.MODE_SIDEBYSIDE : Define the texture source as a Stereoscopic Side by Side panoramic 360.\n */\n get textureMode() {\n return this._textureMode;\n }\n /**\n * Sets the current texture mode for the texture. It can be:\n * * TextureDome.MODE_MONOSCOPIC : Define the texture source as a Monoscopic panoramic 360.\n * * TextureDome.MODE_TOPBOTTOM : Define the texture source as a Stereoscopic TopBottom/OverUnder panoramic 360.\n * * TextureDome.MODE_SIDEBYSIDE : Define the texture source as a Stereoscopic Side by Side panoramic 360.\n */\n set textureMode(value) {\n if (this._textureMode === value) {\n return;\n }\n this._changeTextureMode(value);\n }\n /**\n * Is it a 180 degrees dome (half dome) or 360 texture (full dome)\n */\n get halfDome() {\n return this._halfDome;\n }\n /**\n * Set the halfDome mode. If set, only the front (180 degrees) will be displayed and the back will be blacked out.\n */\n set halfDome(enabled) {\n this._halfDome = enabled;\n this._halfDomeMask.setEnabled(enabled);\n this._changeTextureMode(this._textureMode);\n }\n /**\n * Set the cross-eye mode. If set, images that can be seen when crossing eyes will render correctly\n */\n set crossEye(enabled) {\n this._crossEye = enabled;\n this._changeTextureMode(this._textureMode);\n }\n /**\n * Is it a cross-eye texture?\n */\n get crossEye() {\n return this._crossEye;\n }\n /**\n * The background material of this dome.\n */\n get material() {\n return this._material;\n }\n /**\n * Create an instance of this class and pass through the parameters to the relevant classes- Texture, StandardMaterial, and Mesh.\n * @param name Element's name, child elements will append suffixes for their own names.\n * @param textureUrlOrElement defines the url(s) or the (video) HTML element to use\n * @param options An object containing optional or exposed sub element properties\n * @param options.resolution\n * @param options.clickToPlay\n * @param options.autoPlay\n * @param options.loop\n * @param options.size\n * @param options.poster\n * @param options.faceForward\n * @param options.useDirectMapping\n * @param options.halfDomeMode\n * @param options.crossEyeMode\n * @param options.generateMipMaps\n * @param options.mesh\n * @param scene\n * @param onError\n */\n constructor(name, textureUrlOrElement, options, scene, \n // eslint-disable-next-line @typescript-eslint/naming-convention\n onError = null) {\n super(name, scene);\n this.onError = onError;\n this._halfDome = false;\n this._crossEye = false;\n this._useDirectMapping = false;\n this._textureMode = TextureDome.MODE_MONOSCOPIC;\n /**\n * Oberserver used in Stereoscopic VR Mode.\n */\n this._onBeforeCameraRenderObserver = null;\n /**\n * Observable raised when an error occurred while loading the texture\n */\n this.onLoadErrorObservable = new Observable();\n /**\n * Observable raised when the texture finished loading\n */\n this.onLoadObservable = new Observable();\n scene = this.getScene();\n // set defaults and manage values\n name = name || \"textureDome\";\n options.resolution = Math.abs(options.resolution) | 0 || 32;\n options.clickToPlay = Boolean(options.clickToPlay);\n options.autoPlay = options.autoPlay === undefined ? true : Boolean(options.autoPlay);\n options.loop = options.loop === undefined ? true : Boolean(options.loop);\n options.size = Math.abs(options.size) || (scene.activeCamera ? scene.activeCamera.maxZ * 0.48 : 1000);\n if (options.useDirectMapping === undefined) {\n this._useDirectMapping = true;\n }\n else {\n this._useDirectMapping = options.useDirectMapping;\n }\n if (options.faceForward === undefined) {\n options.faceForward = true;\n }\n this._setReady(false);\n if (!options.mesh) {\n this._mesh = CreateSphere(name + \"_mesh\", { segments: options.resolution, diameter: options.size, updatable: false, sideOrientation: Mesh.BACKSIDE }, scene);\n }\n else {\n this._mesh = options.mesh;\n }\n // configure material\n const material = (this._material = new BackgroundMaterial(name + \"_material\", scene));\n material.useEquirectangularFOV = true;\n material.fovMultiplier = 1.0;\n material.opacityFresnel = false;\n const texture = this._initTexture(textureUrlOrElement, scene, options);\n this.texture = texture;\n // configure mesh\n this._mesh.material = material;\n this._mesh.parent = this;\n // create a (disabled until needed) mask to cover unneeded segments of 180 texture.\n this._halfDomeMask = CreateSphere(\"\", { slice: 0.5, diameter: options.size * 0.98, segments: options.resolution * 2, sideOrientation: Mesh.BACKSIDE }, scene);\n this._halfDomeMask.rotate(Axis.X, -Math.PI / 2);\n // set the parent, so it will always be positioned correctly AND will be disposed when the main sphere is disposed\n this._halfDomeMask.parent = this._mesh;\n this._halfDome = !!options.halfDomeMode;\n // enable or disable according to the settings\n this._halfDomeMask.setEnabled(this._halfDome);\n this._crossEye = !!options.crossEyeMode;\n // create\n this._texture.anisotropicFilteringLevel = 1;\n this._texture.onLoadObservable.addOnce(() => {\n this._setReady(true);\n });\n // Initial rotation\n if (options.faceForward && scene.activeCamera) {\n const camera = scene.activeCamera;\n const forward = Vector3.Forward();\n const direction = Vector3.TransformNormal(forward, camera.getViewMatrix());\n direction.normalize();\n this.rotation.y = Math.acos(Vector3.Dot(forward, direction));\n }\n this._changeTextureMode(this._textureMode);\n }\n _changeTextureMode(value) {\n this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver);\n this._textureMode = value;\n // Default Setup and Reset.\n this._texture.uScale = 1;\n this._texture.vScale = 1;\n this._texture.uOffset = 0;\n this._texture.vOffset = 0;\n this._texture.vAng = 0;\n switch (value) {\n case TextureDome.MODE_MONOSCOPIC:\n if (this._halfDome) {\n this._texture.uScale = 2;\n this._texture.uOffset = -1;\n }\n break;\n case TextureDome.MODE_SIDEBYSIDE: {\n // in half-dome mode the uScale should be double of 360 texture\n // Use 0.99999 to boost perf by not switching program\n this._texture.uScale = this._halfDome ? 0.99999 : 0.5;\n const rightOffset = this._halfDome ? 0.0 : 0.5;\n const leftOffset = this._halfDome ? -0.5 : 0.0;\n this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add((camera) => {\n let isRightCamera = camera.isRightCamera;\n if (this._crossEye) {\n isRightCamera = !isRightCamera;\n }\n if (isRightCamera) {\n this._texture.uOffset = rightOffset;\n }\n else {\n this._texture.uOffset = leftOffset;\n }\n });\n break;\n }\n case TextureDome.MODE_TOPBOTTOM:\n // in half-dome mode the vScale should be double of 360 texture\n // Use 0.99999 to boost perf by not switching program\n this._texture.vScale = this._halfDome ? 0.99999 : 0.5;\n this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add((camera) => {\n let isRightCamera = camera.isRightCamera;\n // allow \"cross-eye\" if left and right were switched in this mode\n if (this._crossEye) {\n isRightCamera = !isRightCamera;\n }\n this._texture.vOffset = isRightCamera ? 0.5 : 0.0;\n });\n break;\n }\n }\n /**\n * Releases resources associated with this node.\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(doNotRecurse, disposeMaterialAndTextures = false) {\n this._texture.dispose();\n this._mesh.dispose();\n this._material.dispose();\n this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver);\n this.onLoadErrorObservable.clear();\n this.onLoadObservable.clear();\n super.dispose(doNotRecurse, disposeMaterialAndTextures);\n }\n}\n/**\n * Define the source as a Monoscopic panoramic 360/180.\n */\nTextureDome.MODE_MONOSCOPIC = 0;\n/**\n * Define the source as a Stereoscopic TopBottom/OverUnder panoramic 360/180.\n */\nTextureDome.MODE_TOPBOTTOM = 1;\n/**\n * Define the source as a Stereoscopic Side by Side panoramic 360/180.\n */\nTextureDome.MODE_SIDEBYSIDE = 2;\n","import { Texture } from \"../Materials/Textures/texture.js\";\nimport { TextureDome } from \"./textureDome.js\";\n/**\n * Display a 360 degree photo on an approximately spherical surface, useful for VR applications or skyboxes.\n * As a subclass of TransformNode, this allow parenting to the camera with different locations in the scene.\n * This class achieves its effect with a Texture and a correctly configured BackgroundMaterial on an inverted sphere.\n * Potential additions to this helper include zoom and and non-infinite distance rendering effects.\n */\nexport class PhotoDome extends TextureDome {\n /**\n * Gets or sets the texture being displayed on the sphere\n */\n get photoTexture() {\n return this.texture;\n }\n /**\n * sets the texture being displayed on the sphere\n */\n set photoTexture(value) {\n this.texture = value;\n }\n /**\n * Gets the current video mode for the video. It can be:\n * * TextureDome.MODE_MONOSCOPIC : Define the texture source as a Monoscopic panoramic 360.\n * * TextureDome.MODE_TOPBOTTOM : Define the texture source as a Stereoscopic TopBottom/OverUnder panoramic 360.\n * * TextureDome.MODE_SIDEBYSIDE : Define the texture source as a Stereoscopic Side by Side panoramic 360.\n */\n get imageMode() {\n return this.textureMode;\n }\n /**\n * Sets the current video mode for the video. It can be:\n * * TextureDome.MODE_MONOSCOPIC : Define the texture source as a Monoscopic panoramic 360.\n * * TextureDome.MODE_TOPBOTTOM : Define the texture source as a Stereoscopic TopBottom/OverUnder panoramic 360.\n * * TextureDome.MODE_SIDEBYSIDE : Define the texture source as a Stereoscopic Side by Side panoramic 360.\n */\n set imageMode(value) {\n this.textureMode = value;\n }\n _initTexture(urlsOrElement, scene, options) {\n return new Texture(urlsOrElement, scene, !options.generateMipMaps, !this._useDirectMapping, undefined, () => {\n this.onLoadObservable.notifyObservers();\n }, (message, exception) => {\n this.onLoadErrorObservable.notifyObservers(message || \"Unknown error occured\");\n if (this.onError) {\n this.onError(message, exception);\n }\n });\n }\n}\n/**\n * Define the image as a Monoscopic panoramic 360 image.\n */\nPhotoDome.MODE_MONOSCOPIC = TextureDome.MODE_MONOSCOPIC;\n/**\n * Define the image as a Stereoscopic TopBottom/OverUnder panoramic 360 image.\n */\nPhotoDome.MODE_TOPBOTTOM = TextureDome.MODE_TOPBOTTOM;\n/**\n * Define the image as a Stereoscopic Side by Side panoramic 360 image.\n */\nPhotoDome.MODE_SIDEBYSIDE = TextureDome.MODE_SIDEBYSIDE;\n","import { __decorate } from \"../../tslib.es6.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { Tools } from \"../../Misc/tools.js\";\nimport { Logger } from \"../../Misc/logger.js\";\nimport { Texture } from \"../../Materials/Textures/texture.js\";\n\nimport \"../../Engines/Extensions/engine.videoTexture.js\";\nimport \"../../Engines/Extensions/engine.dynamicTexture.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { RegisterClass } from \"../../Misc/typeStore.js\";\nfunction removeSource(video) {\n // Remove any elements, etc.\n while (video.firstChild) {\n video.removeChild(video.firstChild);\n }\n // detach srcObject\n video.srcObject = null;\n // Set a blank src (https://html.spec.whatwg.org/multipage/media.html#best-practices-for-authors-using-media-elements)\n video.src = \"\";\n // Prevent non-important errors maybe (https://twitter.com/beraliv/status/1205214277956775936)\n video.removeAttribute(\"src\");\n}\n/**\n * If you want to display a video in your scene, this is the special texture for that.\n * This special texture works similar to other textures, with the exception of a few parameters.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/videoTexture\n */\nexport class VideoTexture extends Texture {\n /**\n * Event triggered when a dom action is required by the user to play the video.\n * This happens due to recent changes in browser policies preventing video to auto start.\n */\n get onUserActionRequestedObservable() {\n if (!this._onUserActionRequestedObservable) {\n this._onUserActionRequestedObservable = new Observable();\n }\n return this._onUserActionRequestedObservable;\n }\n _processError(reason) {\n this._errorFound = true;\n if (this._onError) {\n this._onError(reason?.message);\n }\n else {\n Logger.Error(reason?.message);\n }\n }\n _handlePlay() {\n this._errorFound = false;\n this.video.play().catch((reason) => {\n if (reason?.name === \"NotAllowedError\") {\n if (this._onUserActionRequestedObservable && this._onUserActionRequestedObservable.hasObservers()) {\n this._onUserActionRequestedObservable.notifyObservers(this);\n return;\n }\n else if (!this.video.muted) {\n Logger.Warn(\"Unable to autoplay a video with sound. Trying again with muted turned true\");\n this.video.muted = true;\n this._errorFound = false;\n this.video.play().catch((otherReason) => {\n this._processError(otherReason);\n });\n return;\n }\n }\n this._processError(reason);\n });\n }\n /**\n * Creates a video texture.\n * If you want to display a video in your scene, this is the special texture for that.\n * This special texture works similar to other textures, with the exception of a few parameters.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/videoTexture\n * @param name optional name, will detect from video source, if not defined\n * @param src can be used to provide an url, array of urls or an already setup HTML video element.\n * @param scene is obviously the current scene.\n * @param generateMipMaps can be used to turn on mipmaps (Can be expensive for videoTextures because they are often updated).\n * @param invertY is false by default but can be used to invert video on Y axis\n * @param samplingMode controls the sampling method and is set to TRILINEAR_SAMPLINGMODE by default\n * @param settings allows finer control over video usage\n * @param onError defines a callback triggered when an error occurred during the loading session\n * @param format defines the texture format to use (Engine.TEXTUREFORMAT_RGBA by default)\n */\n constructor(name, src, scene, generateMipMaps = false, invertY = false, samplingMode = Texture.TRILINEAR_SAMPLINGMODE, settings = {}, onError, format = 5) {\n super(null, scene, !generateMipMaps, invertY);\n this._externalTexture = null;\n this._onUserActionRequestedObservable = null;\n this._stillImageCaptured = false;\n this._displayingPosterTexture = false;\n this._frameId = -1;\n this._currentSrc = null;\n this._errorFound = false;\n /**\n * Serialize the flag to define this texture as a video texture\n */\n this.isVideo = true;\n this._resizeInternalTexture = () => {\n // Cleanup the old texture before replacing it\n if (this._texture != null) {\n this._texture.dispose();\n }\n if (!this._getEngine().needPOTTextures || (Tools.IsExponentOfTwo(this.video.videoWidth) && Tools.IsExponentOfTwo(this.video.videoHeight))) {\n this.wrapU = Texture.WRAP_ADDRESSMODE;\n this.wrapV = Texture.WRAP_ADDRESSMODE;\n }\n else {\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\n this._generateMipMaps = false;\n }\n this._texture = this._getEngine().createDynamicTexture(this.video.videoWidth, this.video.videoHeight, this._generateMipMaps, this.samplingMode);\n this._texture.format = this._format ?? 5;\n // Reset the frame ID and update the new texture to ensure it pulls in the current video frame\n this._frameId = -1;\n this._updateInternalTexture();\n };\n this._createInternalTexture = () => {\n if (this._texture != null) {\n if (this._displayingPosterTexture) {\n this._displayingPosterTexture = false;\n }\n else {\n return;\n }\n }\n this.video.addEventListener(\"resize\", this._resizeInternalTexture);\n this._resizeInternalTexture();\n if (!this.video.autoplay && !this._settings.poster && !this._settings.independentVideoSource) {\n const oldHandler = this.video.onplaying;\n const oldMuted = this.video.muted;\n this.video.muted = true;\n this.video.onplaying = () => {\n this.video.muted = oldMuted;\n this.video.onplaying = oldHandler;\n this._updateInternalTexture();\n if (!this._errorFound) {\n this.video.pause();\n }\n if (this.onLoadObservable.hasObservers()) {\n this.onLoadObservable.notifyObservers(this);\n }\n };\n this._handlePlay();\n }\n else {\n this._updateInternalTexture();\n if (this.onLoadObservable.hasObservers()) {\n this.onLoadObservable.notifyObservers(this);\n }\n }\n };\n this._reset = () => {\n if (this._texture == null) {\n return;\n }\n if (!this._displayingPosterTexture) {\n this._texture.dispose();\n this._texture = null;\n }\n };\n this._updateInternalTexture = () => {\n if (this._texture == null) {\n return;\n }\n if (this.video.readyState < this.video.HAVE_CURRENT_DATA) {\n return;\n }\n if (this._displayingPosterTexture) {\n return;\n }\n const frameId = this.getScene().getFrameId();\n if (this._frameId === frameId) {\n return;\n }\n this._frameId = frameId;\n this._getEngine().updateVideoTexture(this._texture, this._externalTexture ? this._externalTexture : this.video, this._invertY);\n };\n this._settings = {\n autoPlay: true,\n loop: true,\n autoUpdateTexture: true,\n ...settings,\n };\n this._onError = onError;\n this._generateMipMaps = generateMipMaps;\n this._initialSamplingMode = samplingMode;\n this.autoUpdateTexture = this._settings.autoUpdateTexture;\n this._currentSrc = src;\n this.name = name || this._getName(src);\n this.video = this._getVideo(src);\n const engineWebGPU = this._engine;\n const createExternalTexture = engineWebGPU?.createExternalTexture;\n if (createExternalTexture) {\n this._externalTexture = createExternalTexture.call(engineWebGPU, this.video);\n }\n if (!this._settings.independentVideoSource) {\n if (this._settings.poster) {\n this.video.poster = this._settings.poster;\n }\n if (this._settings.autoPlay !== undefined) {\n this.video.autoplay = this._settings.autoPlay;\n }\n if (this._settings.loop !== undefined) {\n this.video.loop = this._settings.loop;\n }\n if (this._settings.muted !== undefined) {\n this.video.muted = this._settings.muted;\n }\n this.video.setAttribute(\"playsinline\", \"\");\n this.video.addEventListener(\"paused\", this._updateInternalTexture);\n this.video.addEventListener(\"seeked\", this._updateInternalTexture);\n this.video.addEventListener(\"loadeddata\", this._updateInternalTexture);\n this.video.addEventListener(\"emptied\", this._reset);\n if (this._settings.autoPlay) {\n this._handlePlay();\n }\n }\n this._createInternalTextureOnEvent = this._settings.poster && !this._settings.autoPlay ? \"play\" : \"canplay\";\n this.video.addEventListener(this._createInternalTextureOnEvent, this._createInternalTexture);\n this._format = format;\n const videoHasEnoughData = this.video.readyState >= this.video.HAVE_CURRENT_DATA;\n if (this._settings.poster && (!this._settings.autoPlay || !videoHasEnoughData)) {\n this._texture = this._getEngine().createTexture(this._settings.poster, false, !this.invertY, scene);\n this._displayingPosterTexture = true;\n }\n else if (videoHasEnoughData) {\n this._createInternalTexture();\n }\n }\n /**\n * Get the current class name of the video texture useful for serialization or dynamic coding.\n * @returns \"VideoTexture\"\n */\n getClassName() {\n return \"VideoTexture\";\n }\n _getName(src) {\n if (src instanceof HTMLVideoElement) {\n return src.currentSrc;\n }\n if (typeof src === \"object\") {\n return src.toString();\n }\n return src;\n }\n _getVideo(src) {\n if (src.isNative) {\n return src;\n }\n if (src instanceof HTMLVideoElement) {\n Tools.SetCorsBehavior(src.currentSrc, src);\n return src;\n }\n const video = document.createElement(\"video\");\n if (typeof src === \"string\") {\n Tools.SetCorsBehavior(src, video);\n video.src = src;\n }\n else {\n Tools.SetCorsBehavior(src[0], video);\n src.forEach((url) => {\n const source = document.createElement(\"source\");\n source.src = url;\n video.appendChild(source);\n });\n }\n this.onDisposeObservable.addOnce(() => {\n removeSource(video);\n });\n return video;\n }\n /**\n * @internal Internal method to initiate `update`.\n */\n _rebuild() {\n this.update();\n }\n /**\n * Update Texture in the `auto` mode. Does not do anything if `settings.autoUpdateTexture` is false.\n */\n update() {\n if (!this.autoUpdateTexture) {\n // Expecting user to call `updateTexture` manually\n return;\n }\n this.updateTexture(true);\n }\n /**\n * Update Texture in `manual` mode. Does not do anything if not visible or paused.\n * @param isVisible Visibility state, detected by user using `scene.getActiveMeshes()` or otherwise.\n */\n updateTexture(isVisible) {\n if (!isVisible) {\n return;\n }\n if (this.video.paused && this._stillImageCaptured) {\n return;\n }\n this._stillImageCaptured = true;\n this._updateInternalTexture();\n }\n /**\n * Get the underlying external texture (if supported by the current engine, else null)\n */\n get externalTexture() {\n return this._externalTexture;\n }\n /**\n * Change video content. Changing video instance or setting multiple urls (as in constructor) is not supported.\n * @param url New url.\n */\n updateURL(url) {\n this.video.src = url;\n this._currentSrc = url;\n }\n /**\n * Clones the texture.\n * @returns the cloned texture\n */\n clone() {\n return new VideoTexture(this.name, this._currentSrc, this.getScene(), this._generateMipMaps, this.invertY, this.samplingMode, this._settings);\n }\n /**\n * Dispose the texture and release its associated resources.\n */\n dispose() {\n super.dispose();\n this._currentSrc = null;\n if (this._onUserActionRequestedObservable) {\n this._onUserActionRequestedObservable.clear();\n this._onUserActionRequestedObservable = null;\n }\n this.video.removeEventListener(this._createInternalTextureOnEvent, this._createInternalTexture);\n if (!this._settings.independentVideoSource) {\n this.video.removeEventListener(\"paused\", this._updateInternalTexture);\n this.video.removeEventListener(\"seeked\", this._updateInternalTexture);\n this.video.removeEventListener(\"loadeddata\", this._updateInternalTexture);\n this.video.removeEventListener(\"emptied\", this._reset);\n this.video.removeEventListener(\"resize\", this._resizeInternalTexture);\n this.video.pause();\n }\n this._externalTexture?.dispose();\n }\n /**\n * Creates a video texture straight from a stream.\n * @param scene Define the scene the texture should be created in\n * @param stream Define the stream the texture should be created from\n * @param constraints video constraints\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\n * @returns The created video texture as a promise\n */\n static CreateFromStreamAsync(scene, stream, constraints, invertY = true) {\n const video = scene.getEngine().createVideoElement(constraints);\n if (scene.getEngine()._badOS) {\n // Yes... I know and I hope to remove it soon...\n document.body.appendChild(video);\n video.style.transform = \"scale(0.0001, 0.0001)\";\n video.style.opacity = \"0\";\n video.style.position = \"fixed\";\n video.style.bottom = \"0px\";\n video.style.right = \"0px\";\n }\n video.setAttribute(\"autoplay\", \"\");\n video.setAttribute(\"muted\", \"true\");\n video.setAttribute(\"playsinline\", \"\");\n video.muted = true;\n if (video.isNative) {\n // No additional configuration needed for native\n }\n else {\n if (typeof video.srcObject == \"object\") {\n video.srcObject = stream;\n }\n else {\n // older API. See https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#using_object_urls_for_media_streams\n video.src = window.URL && window.URL.createObjectURL(stream);\n }\n }\n return new Promise((resolve) => {\n const onPlaying = () => {\n const videoTexture = new VideoTexture(\"video\", video, scene, true, invertY, undefined, undefined, undefined, 4);\n if (scene.getEngine()._badOS) {\n videoTexture.onDisposeObservable.addOnce(() => {\n video.remove();\n });\n }\n videoTexture.onDisposeObservable.addOnce(() => {\n removeSource(video);\n });\n resolve(videoTexture);\n video.removeEventListener(\"playing\", onPlaying);\n };\n video.addEventListener(\"playing\", onPlaying);\n video.play();\n });\n }\n /**\n * Creates a video texture straight from your WebCam video feed.\n * @param scene Define the scene the texture should be created in\n * @param constraints Define the constraints to use to create the web cam feed from WebRTC\n * @param audioConstaints Define the audio constraints to use to create the web cam feed from WebRTC\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\n * @returns The created video texture as a promise\n */\n static async CreateFromWebCamAsync(scene, constraints, audioConstaints = false, invertY = true) {\n if (navigator.mediaDevices) {\n const stream = await navigator.mediaDevices.getUserMedia({\n video: constraints,\n audio: audioConstaints,\n });\n const videoTexture = await this.CreateFromStreamAsync(scene, stream, constraints, invertY);\n videoTexture.onDisposeObservable.addOnce(() => {\n stream.getTracks().forEach((track) => {\n track.stop();\n });\n });\n return videoTexture;\n }\n return Promise.reject(\"No support for userMedia on this device\");\n }\n /**\n * Creates a video texture straight from your WebCam video feed.\n * @param scene Defines the scene the texture should be created in\n * @param onReady Defines a callback to triggered once the texture will be ready\n * @param constraints Defines the constraints to use to create the web cam feed from WebRTC\n * @param audioConstaints Defines the audio constraints to use to create the web cam feed from WebRTC\n * @param invertY Defines if the video should be stored with invert Y set to true (true by default)\n */\n static CreateFromWebCam(scene, onReady, constraints, audioConstaints = false, invertY = true) {\n this.CreateFromWebCamAsync(scene, constraints, audioConstaints, invertY)\n .then(function (videoTexture) {\n if (onReady) {\n onReady(videoTexture);\n }\n })\n .catch(function (err) {\n Logger.Error(err.name);\n });\n }\n}\n__decorate([\n serialize(\"settings\")\n], VideoTexture.prototype, \"_settings\", void 0);\n__decorate([\n serialize(\"src\")\n], VideoTexture.prototype, \"_currentSrc\", void 0);\n__decorate([\n serialize()\n], VideoTexture.prototype, \"isVideo\", void 0);\nTexture._CreateVideoTexture = (name, src, scene, generateMipMaps = false, invertY = false, samplingMode = Texture.TRILINEAR_SAMPLINGMODE, settings = {}, onError, format = 5) => {\n return new VideoTexture(name, src, scene, generateMipMaps, invertY, samplingMode, settings, onError, format);\n};\n// Some exporters relies on Tools.Instantiate\nRegisterClass(\"BABYLON.VideoTexture\", VideoTexture);\n","import { Texture } from \"../Materials/Textures/texture.js\";\nimport { VideoTexture } from \"../Materials/Textures/videoTexture.js\";\nimport { TextureDome } from \"./textureDome.js\";\nimport { PointerEventTypes } from \"../Events/pointerEvents.js\";\n/**\n * Display a 360/180 degree video on an approximately spherical surface, useful for VR applications or skyboxes.\n * As a subclass of TransformNode, this allow parenting to the camera or multiple videos with different locations in the scene.\n * This class achieves its effect with a VideoTexture and a correctly configured BackgroundMaterial on an inverted sphere.\n * Potential additions to this helper include zoom and and non-infinite distance rendering effects.\n */\nexport class VideoDome extends TextureDome {\n /**\n * Get the video texture associated with this video dome\n */\n get videoTexture() {\n return this._texture;\n }\n /**\n * Get the video mode of this dome\n */\n get videoMode() {\n return this.textureMode;\n }\n /**\n * Set the video mode of this dome.\n * @see textureMode\n */\n set videoMode(value) {\n this.textureMode = value;\n }\n _initTexture(urlsOrElement, scene, options) {\n const tempOptions = { loop: options.loop, autoPlay: options.autoPlay, autoUpdateTexture: true, poster: options.poster };\n const texture = new VideoTexture((this.name || \"videoDome\") + \"_texture\", urlsOrElement, scene, options.generateMipMaps, this._useDirectMapping, Texture.TRILINEAR_SAMPLINGMODE, tempOptions);\n // optional configuration\n if (options.clickToPlay) {\n this._pointerObserver = scene.onPointerObservable.add((data) => {\n data.pickInfo?.pickedMesh === this.mesh && this._texture.video.play();\n }, PointerEventTypes.POINTERDOWN);\n }\n this._textureObserver = texture.onLoadObservable.add(() => {\n this.onLoadObservable.notifyObservers();\n });\n return texture;\n }\n /**\n * Releases resources associated with this node.\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(doNotRecurse, disposeMaterialAndTextures = false) {\n this._texture.onLoadObservable.remove(this._textureObserver);\n this._scene.onPointerObservable.remove(this._pointerObserver);\n super.dispose(doNotRecurse, disposeMaterialAndTextures);\n }\n}\n/**\n * Define the video source as a Monoscopic panoramic 360 video.\n */\nVideoDome.MODE_MONOSCOPIC = TextureDome.MODE_MONOSCOPIC;\n/**\n * Define the video source as a Stereoscopic TopBottom/OverUnder panoramic 360 video.\n */\nVideoDome.MODE_TOPBOTTOM = TextureDome.MODE_TOPBOTTOM;\n/**\n * Define the video source as a Stereoscopic Side by Side panoramic 360 video.\n */\nVideoDome.MODE_SIDEBYSIDE = TextureDome.MODE_SIDEBYSIDE;\n","import { __decorate } from \"../tslib.es6.js\";\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { serialize } from \"../Misc/decorators.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { Scene } from \"../scene.js\";\nimport { Vector2 } from \"../Maths/math.vector.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { Material } from \"../Materials/material.js\";\nimport { Texture } from \"../Materials/Textures/texture.js\";\nimport { RenderTargetTexture } from \"../Materials/Textures/renderTargetTexture.js\";\nimport { PostProcess } from \"../PostProcesses/postProcess.js\";\nimport { PassPostProcess } from \"../PostProcesses/passPostProcess.js\";\nimport { BlurPostProcess } from \"../PostProcesses/blurPostProcess.js\";\nimport { EffectLayer } from \"./effectLayer.js\";\n\nimport { Logger } from \"../Misc/logger.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { Color4, Color3 } from \"../Maths/math.color.js\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization.js\";\nimport { GetExponentOfTwo } from \"../Misc/tools.functions.js\";\nScene.prototype.getHighlightLayerByName = function (name) {\n for (let index = 0; index < this.effectLayers?.length; index++) {\n if (this.effectLayers[index].name === name && this.effectLayers[index].getEffectName() === HighlightLayer.EffectName) {\n return this.effectLayers[index];\n }\n }\n return null;\n};\n/**\n * Special Glow Blur post process only blurring the alpha channel\n * It enforces keeping the most luminous color in the color channel.\n */\nclass GlowBlurPostProcess extends PostProcess {\n constructor(name, direction, kernel, options, camera, samplingMode = Texture.BILINEAR_SAMPLINGMODE, engine, reusable) {\n super(name, \"glowBlurPostProcess\", [\"screenSize\", \"direction\", \"blurWidth\"], null, options, camera, samplingMode, engine, reusable);\n this.direction = direction;\n this.kernel = kernel;\n this.onApplyObservable.add((effect) => {\n effect.setFloat2(\"screenSize\", this.width, this.height);\n effect.setVector2(\"direction\", this.direction);\n effect.setFloat(\"blurWidth\", this.kernel);\n });\n }\n _gatherImports(useWebGPU, list) {\n if (useWebGPU) {\n this._webGPUReady = true;\n list.push(import(\"../ShadersWGSL/glowBlurPostProcess.fragment.js\"));\n }\n else {\n list.push(import(\"../Shaders/glowBlurPostProcess.fragment.js\"));\n }\n super._gatherImports(useWebGPU, list);\n }\n}\n/**\n * The highlight layer Helps adding a glow effect around a mesh.\n *\n * Once instantiated in a scene, simply use the addMesh or removeMesh method to add or remove\n * glowy meshes to your scene.\n *\n * !!! THIS REQUIRES AN ACTIVE STENCIL BUFFER ON THE CANVAS !!!\n */\nexport class HighlightLayer extends EffectLayer {\n /**\n * Specifies the horizontal size of the blur.\n */\n set blurHorizontalSize(value) {\n this._horizontalBlurPostprocess.kernel = value;\n this._options.blurHorizontalSize = value;\n }\n /**\n * Specifies the vertical size of the blur.\n */\n set blurVerticalSize(value) {\n this._verticalBlurPostprocess.kernel = value;\n this._options.blurVerticalSize = value;\n }\n /**\n * Gets the horizontal size of the blur.\n */\n get blurHorizontalSize() {\n return this._horizontalBlurPostprocess.kernel;\n }\n /**\n * Gets the vertical size of the blur.\n */\n get blurVerticalSize() {\n return this._verticalBlurPostprocess.kernel;\n }\n /**\n * Instantiates a new highlight Layer and references it to the scene..\n * @param name The name of the layer\n * @param scene The scene to use the layer in\n * @param options Sets of none mandatory options to use with the layer (see IHighlightLayerOptions for more information)\n */\n constructor(name, scene, options) {\n super(name, scene, options !== undefined ? !!options.forceGLSL : false);\n this.name = name;\n /**\n * Specifies whether or not the inner glow is ACTIVE in the layer.\n */\n this.innerGlow = true;\n /**\n * Specifies whether or not the outer glow is ACTIVE in the layer.\n */\n this.outerGlow = true;\n /**\n * An event triggered when the highlight layer is being blurred.\n */\n this.onBeforeBlurObservable = new Observable();\n /**\n * An event triggered when the highlight layer has been blurred.\n */\n this.onAfterBlurObservable = new Observable();\n this._instanceGlowingMeshStencilReference = HighlightLayer.GlowingMeshStencilReference++;\n this._meshes = {};\n this._excludedMeshes = {};\n this.neutralColor = HighlightLayer.NeutralColor;\n // Warn on stencil\n if (!this._engine.isStencilEnable) {\n Logger.Warn(\"Rendering the Highlight Layer requires the stencil to be active on the canvas. var engine = new Engine(canvas, antialias, { stencil: true }\");\n }\n // Adapt options\n this._options = {\n mainTextureRatio: 0.5,\n blurTextureSizeRatio: 0.5,\n blurHorizontalSize: 1.0,\n blurVerticalSize: 1.0,\n alphaBlendingMode: 2,\n camera: null,\n renderingGroupId: -1,\n mainTextureType: 0,\n forceGLSL: false,\n ...options,\n };\n // Initialize the layer\n this._init({\n alphaBlendingMode: this._options.alphaBlendingMode,\n camera: this._options.camera,\n mainTextureFixedSize: this._options.mainTextureFixedSize,\n mainTextureRatio: this._options.mainTextureRatio,\n renderingGroupId: this._options.renderingGroupId,\n mainTextureType: this._options.mainTextureType,\n });\n // Do not render as long as no meshes have been added\n this._shouldRender = false;\n }\n async _importShadersAsync() {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([\n import(\"../ShadersWGSL/glowMapMerge.fragment.js\"),\n import(\"../ShadersWGSL/glowMapMerge.vertex.js\"),\n import(\"../ShadersWGSL/glowBlurPostProcess.fragment.js\"),\n ]);\n }\n else {\n await Promise.all([import(\"../Shaders/glowMapMerge.fragment.js\"), import(\"../Shaders/glowMapMerge.vertex.js\"), import(\"../Shaders/glowBlurPostProcess.fragment.js\")]);\n }\n await super._importShadersAsync();\n }\n /**\n * Get the effect name of the layer.\n * @returns The effect name\n */\n getEffectName() {\n return HighlightLayer.EffectName;\n }\n _numInternalDraws() {\n return 2; // we need two rendering, one for the inner glow and the other for the outer glow\n }\n /**\n * Create the merge effect. This is the shader use to blit the information back\n * to the main canvas at the end of the scene rendering.\n * @returns The effect created\n */\n _createMergeEffect() {\n // Effect\n return this._engine.createEffect(\"glowMapMerge\", [VertexBuffer.PositionKind], [\"offset\"], [\"textureSampler\"], this._options.isStroke ? \"#define STROKE \\n\" : undefined, undefined, undefined, undefined, undefined, this._shaderLanguage, this._shadersLoaded\n ? undefined\n : async () => {\n await this._importShadersAsync();\n this._shadersLoaded = true;\n });\n }\n /**\n * Creates the render target textures and post processes used in the highlight layer.\n */\n _createTextureAndPostProcesses() {\n let blurTextureWidth = this._mainTextureDesiredSize.width * this._options.blurTextureSizeRatio;\n let blurTextureHeight = this._mainTextureDesiredSize.height * this._options.blurTextureSizeRatio;\n blurTextureWidth = this._engine.needPOTTextures ? GetExponentOfTwo(blurTextureWidth, this._maxSize) : blurTextureWidth;\n blurTextureHeight = this._engine.needPOTTextures ? GetExponentOfTwo(blurTextureHeight, this._maxSize) : blurTextureHeight;\n let textureType = 0;\n if (this._engine.getCaps().textureHalfFloatRender) {\n textureType = 2;\n }\n else {\n textureType = 0;\n }\n this._blurTexture = new RenderTargetTexture(\"HighlightLayerBlurRTT\", {\n width: blurTextureWidth,\n height: blurTextureHeight,\n }, this._scene, false, true, textureType);\n this._blurTexture.wrapU = Texture.CLAMP_ADDRESSMODE;\n this._blurTexture.wrapV = Texture.CLAMP_ADDRESSMODE;\n this._blurTexture.anisotropicFilteringLevel = 16;\n this._blurTexture.updateSamplingMode(Texture.TRILINEAR_SAMPLINGMODE);\n this._blurTexture.renderParticles = false;\n this._blurTexture.ignoreCameraViewport = true;\n this._textures = [this._blurTexture];\n if (this._options.alphaBlendingMode === 2) {\n this._downSamplePostprocess = new PassPostProcess(\"HighlightLayerPPP\", this._options.blurTextureSizeRatio, null, Texture.BILINEAR_SAMPLINGMODE, this._scene.getEngine());\n this._downSamplePostprocess.externalTextureSamplerBinding = true;\n this._downSamplePostprocess.onApplyObservable.add((effect) => {\n effect.setTexture(\"textureSampler\", this._mainTexture);\n });\n this._horizontalBlurPostprocess = new GlowBlurPostProcess(\"HighlightLayerHBP\", new Vector2(1.0, 0), this._options.blurHorizontalSize, 1, null, Texture.BILINEAR_SAMPLINGMODE, this._scene.getEngine());\n this._horizontalBlurPostprocess.onApplyObservable.add((effect) => {\n effect.setFloat2(\"screenSize\", blurTextureWidth, blurTextureHeight);\n });\n this._verticalBlurPostprocess = new GlowBlurPostProcess(\"HighlightLayerVBP\", new Vector2(0, 1.0), this._options.blurVerticalSize, 1, null, Texture.BILINEAR_SAMPLINGMODE, this._scene.getEngine());\n this._verticalBlurPostprocess.onApplyObservable.add((effect) => {\n effect.setFloat2(\"screenSize\", blurTextureWidth, blurTextureHeight);\n });\n this._postProcesses = [this._downSamplePostprocess, this._horizontalBlurPostprocess, this._verticalBlurPostprocess];\n }\n else {\n this._horizontalBlurPostprocess = new BlurPostProcess(\"HighlightLayerHBP\", new Vector2(1.0, 0), this._options.blurHorizontalSize / 2, {\n width: blurTextureWidth,\n height: blurTextureHeight,\n }, null, Texture.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), false, textureType);\n const horizontalBlurPostprocess = this._horizontalBlurPostprocess;\n horizontalBlurPostprocess.width = blurTextureWidth;\n horizontalBlurPostprocess.height = blurTextureHeight;\n horizontalBlurPostprocess.externalTextureSamplerBinding = true;\n horizontalBlurPostprocess.onApplyObservable.add((effect) => {\n effect.setTexture(\"textureSampler\", this._mainTexture);\n });\n this._verticalBlurPostprocess = new BlurPostProcess(\"HighlightLayerVBP\", new Vector2(0, 1.0), this._options.blurVerticalSize / 2, {\n width: blurTextureWidth,\n height: blurTextureHeight,\n }, null, Texture.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), false, textureType);\n this._postProcesses = [this._horizontalBlurPostprocess, this._verticalBlurPostprocess];\n }\n this._mainTexture.onAfterUnbindObservable.add(() => {\n this.onBeforeBlurObservable.notifyObservers(this);\n const internalTexture = this._blurTexture.renderTarget;\n if (internalTexture) {\n this._scene.postProcessManager.directRender(this._postProcesses, internalTexture, true);\n this._engine.unBindFramebuffer(internalTexture, true);\n }\n this.onAfterBlurObservable.notifyObservers(this);\n });\n // Prevent autoClear.\n this._postProcesses.map((pp) => {\n pp.autoClear = false;\n });\n }\n /**\n * @returns whether or not the layer needs stencil enabled during the mesh rendering.\n */\n needStencil() {\n return true;\n }\n /**\n * Checks for the readiness of the element composing the layer.\n * @param subMesh the mesh to check for\n * @param useInstances specify whether or not to use instances to render the mesh\n * @returns true if ready otherwise, false\n */\n isReady(subMesh, useInstances) {\n const material = subMesh.getMaterial();\n const mesh = subMesh.getRenderingMesh();\n if (!material || !mesh || !this._meshes) {\n return false;\n }\n let emissiveTexture = null;\n const highlightLayerMesh = this._meshes[mesh.uniqueId];\n if (highlightLayerMesh && highlightLayerMesh.glowEmissiveOnly && material) {\n emissiveTexture = material.emissiveTexture;\n }\n return super._isReady(subMesh, useInstances, emissiveTexture);\n }\n /**\n * Implementation specific of rendering the generating effect on the main canvas.\n * @param effect The effect used to render through\n * @param renderIndex\n */\n _internalRender(effect, renderIndex) {\n // Texture\n effect.setTexture(\"textureSampler\", this._blurTexture);\n // Cache\n const engine = this._engine;\n engine.cacheStencilState();\n // Stencil operations\n engine.setStencilOperationPass(7681);\n engine.setStencilOperationFail(7680);\n engine.setStencilOperationDepthFail(7680);\n // Draw order\n engine.setStencilMask(0x00);\n engine.setStencilBuffer(true);\n engine.setStencilFunctionReference(this._instanceGlowingMeshStencilReference);\n // 2 passes inner outer\n if (this.outerGlow && renderIndex === 0) {\n // the outer glow is rendered the first time _internalRender is called, so when renderIndex == 0 (and only if outerGlow is enabled)\n effect.setFloat(\"offset\", 0);\n engine.setStencilFunction(517);\n engine.drawElementsType(Material.TriangleFillMode, 0, 6);\n }\n if (this.innerGlow && renderIndex === 1) {\n // the inner glow is rendered the second time _internalRender is called, so when renderIndex == 1 (and only if innerGlow is enabled)\n effect.setFloat(\"offset\", 1);\n engine.setStencilFunction(514);\n engine.drawElementsType(Material.TriangleFillMode, 0, 6);\n }\n // Restore Cache\n engine.restoreStencilState();\n }\n /**\n * @returns true if the layer contains information to display, otherwise false.\n */\n shouldRender() {\n if (super.shouldRender()) {\n return this._meshes ? true : false;\n }\n return false;\n }\n /**\n * Returns true if the mesh should render, otherwise false.\n * @param mesh The mesh to render\n * @returns true if it should render otherwise false\n */\n _shouldRenderMesh(mesh) {\n // Excluded Mesh\n if (this._excludedMeshes && this._excludedMeshes[mesh.uniqueId]) {\n return false;\n }\n if (!super.hasMesh(mesh)) {\n return false;\n }\n return true;\n }\n /**\n * Returns true if the mesh can be rendered, otherwise false.\n * @param mesh The mesh to render\n * @param material The material used on the mesh\n * @returns true if it can be rendered otherwise false\n */\n _canRenderMesh(mesh, material) {\n // all meshes can be rendered in the highlight layer, even transparent ones\n return true;\n }\n /**\n * Adds specific effects defines.\n * @param defines The defines to add specifics to.\n */\n _addCustomEffectDefines(defines) {\n defines.push(\"#define HIGHLIGHT\");\n }\n /**\n * Sets the required values for both the emissive texture and and the main color.\n * @param mesh\n * @param subMesh\n * @param material\n */\n _setEmissiveTextureAndColor(mesh, subMesh, material) {\n const highlightLayerMesh = this._meshes[mesh.uniqueId];\n if (highlightLayerMesh) {\n this._emissiveTextureAndColor.color.set(highlightLayerMesh.color.r, highlightLayerMesh.color.g, highlightLayerMesh.color.b, 1.0);\n }\n else {\n this._emissiveTextureAndColor.color.set(this.neutralColor.r, this.neutralColor.g, this.neutralColor.b, this.neutralColor.a);\n }\n if (highlightLayerMesh && highlightLayerMesh.glowEmissiveOnly && material) {\n this._emissiveTextureAndColor.texture = material.emissiveTexture;\n this._emissiveTextureAndColor.color.set(1.0, 1.0, 1.0, 1.0);\n }\n else {\n this._emissiveTextureAndColor.texture = null;\n }\n }\n /**\n * Add a mesh in the exclusion list to prevent it to impact or being impacted by the highlight layer.\n * @param mesh The mesh to exclude from the highlight layer\n */\n addExcludedMesh(mesh) {\n if (!this._excludedMeshes) {\n return;\n }\n const meshExcluded = this._excludedMeshes[mesh.uniqueId];\n if (!meshExcluded) {\n const obj = {\n mesh: mesh,\n beforeBind: null,\n afterRender: null,\n stencilState: false,\n };\n obj.beforeBind = mesh.onBeforeBindObservable.add((mesh) => {\n obj.stencilState = mesh.getEngine().getStencilBuffer();\n mesh.getEngine().setStencilBuffer(false);\n });\n obj.afterRender = mesh.onAfterRenderObservable.add((mesh) => {\n mesh.getEngine().setStencilBuffer(obj.stencilState);\n });\n this._excludedMeshes[mesh.uniqueId] = obj;\n }\n }\n /**\n * Remove a mesh from the exclusion list to let it impact or being impacted by the highlight layer.\n * @param mesh The mesh to highlight\n */\n removeExcludedMesh(mesh) {\n if (!this._excludedMeshes) {\n return;\n }\n const meshExcluded = this._excludedMeshes[mesh.uniqueId];\n if (meshExcluded) {\n if (meshExcluded.beforeBind) {\n mesh.onBeforeBindObservable.remove(meshExcluded.beforeBind);\n }\n if (meshExcluded.afterRender) {\n mesh.onAfterRenderObservable.remove(meshExcluded.afterRender);\n }\n }\n this._excludedMeshes[mesh.uniqueId] = null;\n }\n /**\n * Determine if a given mesh will be highlighted by the current HighlightLayer\n * @param mesh mesh to test\n * @returns true if the mesh will be highlighted by the current HighlightLayer\n */\n hasMesh(mesh) {\n if (!this._meshes) {\n return false;\n }\n if (!super.hasMesh(mesh)) {\n return false;\n }\n return this._meshes[mesh.uniqueId] !== undefined && this._meshes[mesh.uniqueId] !== null;\n }\n /**\n * Add a mesh in the highlight layer in order to make it glow with the chosen color.\n * @param mesh The mesh to highlight\n * @param color The color of the highlight\n * @param glowEmissiveOnly Extract the glow from the emissive texture\n */\n addMesh(mesh, color, glowEmissiveOnly = false) {\n if (!this._meshes) {\n return;\n }\n const meshHighlight = this._meshes[mesh.uniqueId];\n if (meshHighlight) {\n meshHighlight.color = color;\n }\n else {\n this._meshes[mesh.uniqueId] = {\n mesh: mesh,\n color: color,\n // Lambda required for capture due to Observable this context\n observerHighlight: mesh.onBeforeBindObservable.add((mesh) => {\n if (this.isEnabled) {\n if (this._excludedMeshes && this._excludedMeshes[mesh.uniqueId]) {\n this._defaultStencilReference(mesh);\n }\n else {\n mesh.getScene().getEngine().setStencilFunctionReference(this._instanceGlowingMeshStencilReference);\n }\n }\n }),\n observerDefault: mesh.onAfterRenderObservable.add((mesh) => {\n if (this.isEnabled) {\n this._defaultStencilReference(mesh);\n }\n }),\n glowEmissiveOnly: glowEmissiveOnly,\n };\n mesh.onDisposeObservable.add(() => {\n this._disposeMesh(mesh);\n });\n }\n this._shouldRender = true;\n }\n /**\n * Remove a mesh from the highlight layer in order to make it stop glowing.\n * @param mesh The mesh to highlight\n */\n removeMesh(mesh) {\n if (!this._meshes) {\n return;\n }\n const meshHighlight = this._meshes[mesh.uniqueId];\n if (meshHighlight) {\n if (meshHighlight.observerHighlight) {\n mesh.onBeforeBindObservable.remove(meshHighlight.observerHighlight);\n }\n if (meshHighlight.observerDefault) {\n mesh.onAfterRenderObservable.remove(meshHighlight.observerDefault);\n }\n delete this._meshes[mesh.uniqueId];\n }\n this._shouldRender = false;\n for (const meshHighlightToCheck in this._meshes) {\n if (this._meshes[meshHighlightToCheck]) {\n this._shouldRender = true;\n break;\n }\n }\n }\n /**\n * Remove all the meshes currently referenced in the highlight layer\n */\n removeAllMeshes() {\n if (!this._meshes) {\n return;\n }\n for (const uniqueId in this._meshes) {\n if (Object.prototype.hasOwnProperty.call(this._meshes, uniqueId)) {\n const mesh = this._meshes[uniqueId];\n if (mesh) {\n this.removeMesh(mesh.mesh);\n }\n }\n }\n }\n /**\n * Force the stencil to the normal expected value for none glowing parts\n * @param mesh\n */\n _defaultStencilReference(mesh) {\n mesh.getScene().getEngine().setStencilFunctionReference(HighlightLayer.NormalMeshStencilReference);\n }\n /**\n * Free any resources and references associated to a mesh.\n * Internal use\n * @param mesh The mesh to free.\n * @internal\n */\n _disposeMesh(mesh) {\n this.removeMesh(mesh);\n this.removeExcludedMesh(mesh);\n }\n /**\n * Dispose the highlight layer and free resources.\n */\n dispose() {\n if (this._meshes) {\n // Clean mesh references\n for (const id in this._meshes) {\n const meshHighlight = this._meshes[id];\n if (meshHighlight && meshHighlight.mesh) {\n if (meshHighlight.observerHighlight) {\n meshHighlight.mesh.onBeforeBindObservable.remove(meshHighlight.observerHighlight);\n }\n if (meshHighlight.observerDefault) {\n meshHighlight.mesh.onAfterRenderObservable.remove(meshHighlight.observerDefault);\n }\n }\n }\n this._meshes = null;\n }\n if (this._excludedMeshes) {\n for (const id in this._excludedMeshes) {\n const meshHighlight = this._excludedMeshes[id];\n if (meshHighlight) {\n if (meshHighlight.beforeBind) {\n meshHighlight.mesh.onBeforeBindObservable.remove(meshHighlight.beforeBind);\n }\n if (meshHighlight.afterRender) {\n meshHighlight.mesh.onAfterRenderObservable.remove(meshHighlight.afterRender);\n }\n }\n }\n this._excludedMeshes = null;\n }\n super.dispose();\n }\n /**\n * Gets the class name of the effect layer\n * @returns the string with the class name of the effect layer\n */\n getClassName() {\n return \"HighlightLayer\";\n }\n /**\n * Serializes this Highlight layer\n * @returns a serialized Highlight layer object\n */\n serialize() {\n const serializationObject = SerializationHelper.Serialize(this);\n serializationObject.customType = \"BABYLON.HighlightLayer\";\n // Highlighted meshes\n serializationObject.meshes = [];\n if (this._meshes) {\n for (const m in this._meshes) {\n const mesh = this._meshes[m];\n if (mesh) {\n serializationObject.meshes.push({\n glowEmissiveOnly: mesh.glowEmissiveOnly,\n color: mesh.color.asArray(),\n meshId: mesh.mesh.id,\n });\n }\n }\n }\n // Excluded meshes\n serializationObject.excludedMeshes = [];\n if (this._excludedMeshes) {\n for (const e in this._excludedMeshes) {\n const excludedMesh = this._excludedMeshes[e];\n if (excludedMesh) {\n serializationObject.excludedMeshes.push(excludedMesh.mesh.id);\n }\n }\n }\n return serializationObject;\n }\n /**\n * Creates a Highlight layer from parsed Highlight layer data\n * @param parsedHightlightLayer defines the Highlight layer data\n * @param scene defines the current scene\n * @param rootUrl defines the root URL containing the Highlight layer information\n * @returns a parsed Highlight layer\n */\n static Parse(parsedHightlightLayer, scene, rootUrl) {\n const hl = SerializationHelper.Parse(() => new HighlightLayer(parsedHightlightLayer.name, scene, parsedHightlightLayer.options), parsedHightlightLayer, scene, rootUrl);\n let index;\n // Excluded meshes\n for (index = 0; index < parsedHightlightLayer.excludedMeshes.length; index++) {\n const mesh = scene.getMeshById(parsedHightlightLayer.excludedMeshes[index]);\n if (mesh) {\n hl.addExcludedMesh(mesh);\n }\n }\n // Included meshes\n for (index = 0; index < parsedHightlightLayer.meshes.length; index++) {\n const highlightedMesh = parsedHightlightLayer.meshes[index];\n const mesh = scene.getMeshById(highlightedMesh.meshId);\n if (mesh) {\n hl.addMesh(mesh, Color3.FromArray(highlightedMesh.color), highlightedMesh.glowEmissiveOnly);\n }\n }\n return hl;\n }\n}\n/**\n * Effect Name of the highlight layer.\n */\nHighlightLayer.EffectName = \"HighlightLayer\";\n/**\n * The neutral color used during the preparation of the glow effect.\n * This is black by default as the blend operation is a blend operation.\n */\nHighlightLayer.NeutralColor = new Color4(0, 0, 0, 0);\n/**\n * Stencil value used for glowing meshes.\n */\nHighlightLayer.GlowingMeshStencilReference = 0x02;\n/**\n * Stencil value used for the other meshes in the scene.\n */\nHighlightLayer.NormalMeshStencilReference = 0x01;\n__decorate([\n serialize()\n], HighlightLayer.prototype, \"innerGlow\", void 0);\n__decorate([\n serialize()\n], HighlightLayer.prototype, \"outerGlow\", void 0);\n__decorate([\n serialize()\n], HighlightLayer.prototype, \"blurHorizontalSize\", null);\n__decorate([\n serialize()\n], HighlightLayer.prototype, \"blurVerticalSize\", null);\n__decorate([\n serialize(\"options\")\n], HighlightLayer.prototype, \"_options\", void 0);\nRegisterClass(\"BABYLON.HighlightLayer\", HighlightLayer);\n","import { Color3 } from \"../Maths/math.color.js\";\nimport { Texture } from \"../Materials/Textures/texture.js\";\n\nimport { DrawWrapper } from \"../Materials/drawWrapper.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\n/**\n * This represents one of the lens effect in a `lensFlareSystem`.\n * It controls one of the individual texture used in the effect.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/lenseFlare\n */\nexport class LensFlare {\n /**\n * Creates a new Lens Flare.\n * This represents one of the lens effect in a `lensFlareSystem`.\n * It controls one of the individual texture used in the effect.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/lenseFlare\n * @param size Define the size of the lens flare (a floating value between 0 and 1)\n * @param position Define the position of the lens flare in the system. (a floating value between -1 and 1). A value of 0 is located on the emitter. A value greater than 0 is beyond the emitter and a value lesser than 0 is behind.\n * @param color Define the lens color\n * @param imgUrl Define the lens texture url\n * @param system Define the `lensFlareSystem` this flare is part of\n * @returns The newly created Lens Flare\n */\n static AddFlare(size, position, color, imgUrl, system) {\n return new LensFlare(size, position, color, imgUrl, system);\n }\n /**\n * Instantiates a new Lens Flare.\n * This represents one of the lens effect in a `lensFlareSystem`.\n * It controls one of the individual texture used in the effect.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/lenseFlare\n * @param size Define the size of the lens flare in the system (a floating value between 0 and 1)\n * @param position Define the position of the lens flare in the system. (a floating value between -1 and 1). A value of 0 is located on the emitter. A value greater than 0 is beyond the emitter and a value lesser than 0 is behind.\n * @param color Define the lens color\n * @param imgUrl Define the lens texture url\n * @param system Define the `lensFlareSystem` this flare is part of\n */\n constructor(\n /**\n * Define the size of the lens flare in the system (a floating value between 0 and 1)\n */\n size, \n /**\n * Define the position of the lens flare in the system. (a floating value between -1 and 1). A value of 0 is located on the emitter. A value greater than 0 is beyond the emitter and a value lesser than 0 is behind.\n */\n position, color, imgUrl, system) {\n this.size = size;\n this.position = position;\n /**\n * Define the alpha mode to render this particular lens.\n */\n this.alphaMode = 6;\n this.color = color || new Color3(1, 1, 1);\n this.texture = imgUrl ? new Texture(imgUrl, system.getScene(), true) : null;\n this._system = system;\n const engine = system.scene.getEngine();\n system._onShadersLoaded.addOnce(() => {\n this._drawWrapper = new DrawWrapper(engine);\n this._drawWrapper.effect = engine.createEffect(\"lensFlare\", [VertexBuffer.PositionKind], [\"color\", \"viewportMatrix\"], [\"textureSampler\"], \"\", undefined, undefined, undefined, undefined, system.shaderLanguage);\n });\n system.lensFlares.push(this);\n }\n /**\n * Dispose and release the lens flare with its associated resources.\n */\n dispose() {\n if (this.texture) {\n this.texture.dispose();\n }\n // Remove from scene\n const index = this._system.lensFlares.indexOf(this);\n this._system.lensFlares.splice(index, 1);\n }\n}\n","import { Tools } from \"../Misc/tools.js\";\nimport { Matrix, Vector3 } from \"../Maths/math.vector.js\";\nimport { Clamp } from \"../Maths/math.scalar.functions.js\";\nimport { EngineStore } from \"../Engines/engineStore.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { Ray } from \"../Culling/ray.js\";\nimport { Material } from \"../Materials/material.js\";\nimport { LensFlare } from \"./lensFlare.js\";\n\nimport { _WarnImport } from \"../Misc/devTools.js\";\nimport { Color3 } from \"../Maths/math.color.js\";\nimport { Observable } from \"../Misc/observable.js\";\n/**\n * This represents a Lens Flare System or the shiny effect created by the light reflection on the camera lenses.\n * It is usually composed of several `lensFlare`.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/lenseFlare\n */\nexport class LensFlareSystem {\n /** Gets the scene */\n get scene() {\n return this._scene;\n }\n /**\n * Gets the shader language used in this system.\n */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n /**\n * Instantiates a lens flare system.\n * This represents a Lens Flare System or the shiny effect created by the light reflection on the camera lenses.\n * It is usually composed of several `lensFlare`.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/lenseFlare\n * @param name Define the name of the lens flare system in the scene\n * @param emitter Define the source (the emitter) of the lens flares (it can be a camera, a light or a mesh).\n * @param scene Define the scene the lens flare system belongs to\n */\n constructor(\n /**\n * Define the name of the lens flare system\n */\n name, emitter, scene) {\n this.name = name;\n /**\n * List of lens flares used in this system.\n */\n this.lensFlares = [];\n /**\n * Define a limit from the border the lens flare can be visible.\n */\n this.borderLimit = 300;\n /**\n * Define a viewport border we do not want to see the lens flare in.\n */\n this.viewportBorder = 0;\n /**\n * Restricts the rendering of the effect to only the camera rendering this layer mask.\n */\n this.layerMask = 0x0fffffff;\n /** Shader language used by the system */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this._vertexBuffers = {};\n this._isEnabled = true;\n /** @internal */\n this._onShadersLoaded = new Observable(undefined, true);\n this._shadersLoaded = false;\n this._scene = scene || EngineStore.LastCreatedScene;\n LensFlareSystem._SceneComponentInitialization(this._scene);\n this._emitter = emitter;\n this.id = name;\n scene.lensFlareSystems.push(this);\n this.meshesSelectionPredicate = (m) => (scene.activeCamera && m.material && m.isVisible && m.isEnabled() && m.isBlocker && (m.layerMask & scene.activeCamera.layerMask) != 0);\n const engine = scene.getEngine();\n // VBO\n const vertices = [];\n vertices.push(1, 1);\n vertices.push(-1, 1);\n vertices.push(-1, -1);\n vertices.push(1, -1);\n this._vertexBuffers[VertexBuffer.PositionKind] = new VertexBuffer(engine, vertices, VertexBuffer.PositionKind, false, false, 2);\n // Indices\n this._createIndexBuffer();\n this._initShaderSourceAsync();\n }\n async _initShaderSourceAsync() {\n const engine = this._scene.getEngine();\n if (engine.isWebGPU && !LensFlareSystem.ForceGLSL) {\n this._shaderLanguage = 1 /* ShaderLanguage.WGSL */;\n await Promise.all([import(\"../ShadersWGSL/lensFlare.fragment.js\"), import(\"../ShadersWGSL/lensFlare.vertex.js\")]);\n }\n else {\n await Promise.all([import(\"../Shaders/lensFlare.fragment.js\"), import(\"../Shaders/lensFlare.vertex.js\")]);\n }\n this._shadersLoaded = true;\n this._onShadersLoaded.notifyObservers();\n }\n _createIndexBuffer() {\n const indices = [];\n indices.push(0);\n indices.push(1);\n indices.push(2);\n indices.push(0);\n indices.push(2);\n indices.push(3);\n this._indexBuffer = this._scene.getEngine().createIndexBuffer(indices);\n }\n /**\n * Define if the lens flare system is enabled.\n */\n get isEnabled() {\n return this._isEnabled;\n }\n set isEnabled(value) {\n this._isEnabled = value;\n }\n /**\n * Get the scene the effects belongs to.\n * @returns the scene holding the lens flare system\n */\n getScene() {\n return this._scene;\n }\n /**\n * Get the emitter of the lens flare system.\n * It defines the source of the lens flares (it can be a camera, a light or a mesh).\n * @returns the emitter of the lens flare system\n */\n getEmitter() {\n return this._emitter;\n }\n /**\n * Set the emitter of the lens flare system.\n * It defines the source of the lens flares (it can be a camera, a light or a mesh).\n * @param newEmitter Define the new emitter of the system\n */\n setEmitter(newEmitter) {\n this._emitter = newEmitter;\n }\n /**\n * Get the lens flare system emitter position.\n * The emitter defines the source of the lens flares (it can be a camera, a light or a mesh).\n * @returns the position\n */\n getEmitterPosition() {\n return this._emitter.getAbsolutePosition ? this._emitter.getAbsolutePosition() : this._emitter.position;\n }\n /**\n * @internal\n */\n computeEffectivePosition(globalViewport) {\n let position = this.getEmitterPosition();\n position = Vector3.Project(position, Matrix.Identity(), this._scene.getTransformMatrix(), globalViewport);\n this._positionX = position.x;\n this._positionY = position.y;\n position = Vector3.TransformCoordinates(this.getEmitterPosition(), this._scene.getViewMatrix());\n if (this.viewportBorder > 0) {\n globalViewport.x -= this.viewportBorder;\n globalViewport.y -= this.viewportBorder;\n globalViewport.width += this.viewportBorder * 2;\n globalViewport.height += this.viewportBorder * 2;\n position.x += this.viewportBorder;\n position.y += this.viewportBorder;\n this._positionX += this.viewportBorder;\n this._positionY += this.viewportBorder;\n }\n const rhs = this._scene.useRightHandedSystem;\n const okZ = (position.z > 0 && !rhs) || (position.z < 0 && rhs);\n if (okZ) {\n if (this._positionX > globalViewport.x && this._positionX < globalViewport.x + globalViewport.width) {\n if (this._positionY > globalViewport.y && this._positionY < globalViewport.y + globalViewport.height) {\n return true;\n }\n }\n return true;\n }\n return false;\n }\n /** @internal */\n _isVisible() {\n if (!this._isEnabled || !this._scene.activeCamera) {\n return false;\n }\n const emitterPosition = this.getEmitterPosition();\n const direction = emitterPosition.subtract(this._scene.activeCamera.globalPosition);\n const distance = direction.length();\n direction.normalize();\n const ray = new Ray(this._scene.activeCamera.globalPosition, direction);\n const pickInfo = this._scene.pickWithRay(ray, this.meshesSelectionPredicate, true);\n return !pickInfo || !pickInfo.hit || pickInfo.distance > distance;\n }\n /**\n * @internal\n */\n render() {\n if (!this._scene.activeCamera || !this._shadersLoaded) {\n return false;\n }\n const engine = this._scene.getEngine();\n const viewport = this._scene.activeCamera.viewport;\n const globalViewport = viewport.toGlobal(engine.getRenderWidth(true), engine.getRenderHeight(true));\n // Position\n if (!this.computeEffectivePosition(globalViewport)) {\n return false;\n }\n // Visibility\n if (!this._isVisible()) {\n return false;\n }\n // Intensity\n let awayX;\n let awayY;\n if (this._positionX < this.borderLimit + globalViewport.x) {\n awayX = this.borderLimit + globalViewport.x - this._positionX;\n }\n else if (this._positionX > globalViewport.x + globalViewport.width - this.borderLimit) {\n awayX = this._positionX - globalViewport.x - globalViewport.width + this.borderLimit;\n }\n else {\n awayX = 0;\n }\n if (this._positionY < this.borderLimit + globalViewport.y) {\n awayY = this.borderLimit + globalViewport.y - this._positionY;\n }\n else if (this._positionY > globalViewport.y + globalViewport.height - this.borderLimit) {\n awayY = this._positionY - globalViewport.y - globalViewport.height + this.borderLimit;\n }\n else {\n awayY = 0;\n }\n let away = awayX > awayY ? awayX : awayY;\n away -= this.viewportBorder;\n if (away > this.borderLimit) {\n away = this.borderLimit;\n }\n let intensity = 1.0 - Clamp(away / this.borderLimit, 0, 1);\n if (intensity < 0) {\n return false;\n }\n if (intensity > 1.0) {\n intensity = 1.0;\n }\n if (this.viewportBorder > 0) {\n globalViewport.x += this.viewportBorder;\n globalViewport.y += this.viewportBorder;\n globalViewport.width -= this.viewportBorder * 2;\n globalViewport.height -= this.viewportBorder * 2;\n this._positionX -= this.viewportBorder;\n this._positionY -= this.viewportBorder;\n }\n // Position\n const centerX = globalViewport.x + globalViewport.width / 2;\n const centerY = globalViewport.y + globalViewport.height / 2;\n const distX = centerX - this._positionX;\n const distY = centerY - this._positionY;\n // Effects\n engine.setState(false);\n engine.setDepthBuffer(false);\n // Flares\n for (let index = 0; index < this.lensFlares.length; index++) {\n const flare = this.lensFlares[index];\n if (!flare._drawWrapper.effect.isReady() || (flare.texture && !flare.texture.isReady())) {\n continue;\n }\n engine.enableEffect(flare._drawWrapper);\n engine.bindBuffers(this._vertexBuffers, this._indexBuffer, flare._drawWrapper.effect);\n engine.setAlphaMode(flare.alphaMode);\n const x = centerX - distX * flare.position;\n const y = centerY - distY * flare.position;\n const cw = flare.size;\n const ch = flare.size * engine.getAspectRatio(this._scene.activeCamera, true);\n const cx = 2 * ((x - globalViewport.x) / globalViewport.width) - 1.0;\n const cy = 1.0 - 2 * ((y - globalViewport.y) / globalViewport.height);\n const viewportMatrix = Matrix.FromValues(cw / 2, 0, 0, 0, 0, ch / 2, 0, 0, 0, 0, 1, 0, cx, cy, 0, 1);\n flare._drawWrapper.effect.setMatrix(\"viewportMatrix\", viewportMatrix);\n // Texture\n flare._drawWrapper.effect.setTexture(\"textureSampler\", flare.texture);\n // Color\n flare._drawWrapper.effect.setFloat4(\"color\", flare.color.r * intensity, flare.color.g * intensity, flare.color.b * intensity, 1.0);\n // Draw order\n engine.drawElementsType(Material.TriangleFillMode, 0, 6);\n }\n engine.setDepthBuffer(true);\n engine.setAlphaMode(0);\n return true;\n }\n /**\n * Rebuilds the lens flare system\n */\n rebuild() {\n this._createIndexBuffer();\n for (const key in this._vertexBuffers) {\n this._vertexBuffers[key]?._rebuild();\n }\n }\n /**\n * Dispose and release the lens flare with its associated resources.\n */\n dispose() {\n this._onShadersLoaded.clear();\n const vertexBuffer = this._vertexBuffers[VertexBuffer.PositionKind];\n if (vertexBuffer) {\n vertexBuffer.dispose();\n this._vertexBuffers[VertexBuffer.PositionKind] = null;\n }\n if (this._indexBuffer) {\n this._scene.getEngine()._releaseBuffer(this._indexBuffer);\n this._indexBuffer = null;\n }\n while (this.lensFlares.length) {\n this.lensFlares[0].dispose();\n }\n // Remove from scene\n const index = this._scene.lensFlareSystems.indexOf(this);\n this._scene.lensFlareSystems.splice(index, 1);\n }\n /**\n * Parse a lens flare system from a JSON representation\n * @param parsedLensFlareSystem Define the JSON to parse\n * @param scene Define the scene the parsed system should be instantiated in\n * @param rootUrl Define the rootUrl of the load sequence to easily find a load relative dependencies such as textures\n * @returns the parsed system\n */\n static Parse(parsedLensFlareSystem, scene, rootUrl) {\n const emitter = scene.getLastEntryById(parsedLensFlareSystem.emitterId);\n const name = parsedLensFlareSystem.name || \"lensFlareSystem#\" + parsedLensFlareSystem.emitterId;\n const lensFlareSystem = new LensFlareSystem(name, emitter, scene);\n lensFlareSystem.id = parsedLensFlareSystem.id || name;\n lensFlareSystem.borderLimit = parsedLensFlareSystem.borderLimit;\n for (let index = 0; index < parsedLensFlareSystem.flares.length; index++) {\n const parsedFlare = parsedLensFlareSystem.flares[index];\n LensFlare.AddFlare(parsedFlare.size, parsedFlare.position, Color3.FromArray(parsedFlare.color), parsedFlare.textureName ? rootUrl + parsedFlare.textureName : \"\", lensFlareSystem);\n }\n return lensFlareSystem;\n }\n /**\n * Serialize the current Lens Flare System into a JSON representation.\n * @returns the serialized JSON\n */\n serialize() {\n const serializationObject = {};\n serializationObject.id = this.id;\n serializationObject.name = this.name;\n serializationObject.emitterId = this.getEmitter().id;\n serializationObject.borderLimit = this.borderLimit;\n serializationObject.flares = [];\n for (let index = 0; index < this.lensFlares.length; index++) {\n const flare = this.lensFlares[index];\n serializationObject.flares.push({\n size: flare.size,\n position: flare.position,\n color: flare.color.asArray(),\n textureName: Tools.GetFilename(flare.texture ? flare.texture.name : \"\"),\n });\n }\n return serializationObject;\n }\n}\n/**\n * Force all the lens flare systems to compile to glsl even on WebGPU engines.\n * False by default. This is mostly meant for backward compatibility.\n */\nLensFlareSystem.ForceGLSL = false;\n/**\n * @internal\n */\nLensFlareSystem._SceneComponentInitialization = (_) => {\n throw _WarnImport(\"LensFlareSystemSceneComponent\");\n};\n","import { Tools } from \"../Misc/tools.js\";\nimport { Scene } from \"../scene.js\";\nimport { SceneComponentConstants } from \"../sceneComponent.js\";\nimport { LensFlareSystem } from \"./lensFlareSystem.js\";\nimport { AddParser } from \"../Loading/Plugins/babylonFileParser.function.js\";\n// Adds the parser to the scene parsers.\nAddParser(SceneComponentConstants.NAME_LENSFLARESYSTEM, (parsedData, scene, container, rootUrl) => {\n // Lens flares\n if (parsedData.lensFlareSystems !== undefined && parsedData.lensFlareSystems !== null) {\n if (!container.lensFlareSystems) {\n container.lensFlareSystems = [];\n }\n for (let index = 0, cache = parsedData.lensFlareSystems.length; index < cache; index++) {\n const parsedLensFlareSystem = parsedData.lensFlareSystems[index];\n const lf = LensFlareSystem.Parse(parsedLensFlareSystem, scene, rootUrl);\n container.lensFlareSystems.push(lf);\n }\n }\n});\nScene.prototype.getLensFlareSystemByName = function (name) {\n for (let index = 0; index < this.lensFlareSystems.length; index++) {\n if (this.lensFlareSystems[index].name === name) {\n return this.lensFlareSystems[index];\n }\n }\n return null;\n};\nScene.prototype.getLensFlareSystemById = function (id) {\n for (let index = 0; index < this.lensFlareSystems.length; index++) {\n if (this.lensFlareSystems[index].id === id) {\n return this.lensFlareSystems[index];\n }\n }\n return null;\n};\nScene.prototype.getLensFlareSystemByID = function (id) {\n return this.getLensFlareSystemById(id);\n};\nScene.prototype.removeLensFlareSystem = function (toRemove) {\n const index = this.lensFlareSystems.indexOf(toRemove);\n if (index !== -1) {\n this.lensFlareSystems.splice(index, 1);\n }\n return index;\n};\nScene.prototype.addLensFlareSystem = function (newLensFlareSystem) {\n this.lensFlareSystems.push(newLensFlareSystem);\n};\n/**\n * Defines the lens flare scene component responsible to manage any lens flares\n * in a given scene.\n */\nexport class LensFlareSystemSceneComponent {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(scene) {\n /**\n * The component name helpful to identify the component in the list of scene components.\n */\n this.name = SceneComponentConstants.NAME_LENSFLARESYSTEM;\n this.scene = scene;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._afterCameraDrawStage.registerStep(SceneComponentConstants.STEP_AFTERCAMERADRAW_LENSFLARESYSTEM, this, this._draw);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n for (let index = 0; index < this.scene.lensFlareSystems.length; index++) {\n this.scene.lensFlareSystems[index].rebuild();\n }\n }\n /**\n * Adds all the elements from the container to the scene\n * @param container the container holding the elements\n */\n addFromContainer(container) {\n if (!container.lensFlareSystems) {\n return;\n }\n container.lensFlareSystems.forEach((o) => {\n this.scene.addLensFlareSystem(o);\n });\n }\n /**\n * Removes all the elements in the container from the scene\n * @param container contains the elements to remove\n * @param dispose if the removed element should be disposed (default: false)\n */\n removeFromContainer(container, dispose) {\n if (!container.lensFlareSystems) {\n return;\n }\n container.lensFlareSystems.forEach((o) => {\n this.scene.removeLensFlareSystem(o);\n if (dispose) {\n o.dispose();\n }\n });\n }\n /**\n * Serializes the component data to the specified json object\n * @param serializationObject The object to serialize to\n */\n serialize(serializationObject) {\n // Lens flares\n serializationObject.lensFlareSystems = [];\n const lensFlareSystems = this.scene.lensFlareSystems;\n for (const lensFlareSystem of lensFlareSystems) {\n serializationObject.lensFlareSystems.push(lensFlareSystem.serialize());\n }\n }\n /**\n * Disposes the component and the associated resources.\n */\n dispose() {\n const lensFlareSystems = this.scene.lensFlareSystems;\n while (lensFlareSystems.length) {\n lensFlareSystems[0].dispose();\n }\n }\n _draw(camera) {\n // Lens flares\n if (this.scene.lensFlaresEnabled) {\n const lensFlareSystems = this.scene.lensFlareSystems;\n Tools.StartPerformanceCounter(\"Lens flares\", lensFlareSystems.length > 0);\n for (const lensFlareSystem of lensFlareSystems) {\n if ((camera.layerMask & lensFlareSystem.layerMask) !== 0) {\n lensFlareSystem.render();\n }\n }\n Tools.EndPerformanceCounter(\"Lens flares\", lensFlareSystems.length > 0);\n }\n }\n}\nLensFlareSystem._SceneComponentInitialization = (scene) => {\n let component = scene._getComponent(SceneComponentConstants.NAME_LENSFLARESYSTEM);\n if (!component) {\n component = new LensFlareSystemSceneComponent(scene);\n scene._addComponent(component);\n }\n};\n","import { AbstractEngine } from \"../Engines/abstractEngine.js\";\n/**\n * Class used for the default loading screen\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/customLoadingScreen\n */\nexport class DefaultLoadingScreen {\n /**\n * Creates a new default loading screen\n * @param _renderingCanvas defines the canvas used to render the scene\n * @param _loadingText defines the default text to display\n * @param _loadingDivBackgroundColor defines the default background color\n */\n constructor(_renderingCanvas, _loadingText = \"\", _loadingDivBackgroundColor = \"black\") {\n this._renderingCanvas = _renderingCanvas;\n this._loadingText = _loadingText;\n this._loadingDivBackgroundColor = _loadingDivBackgroundColor;\n // Resize\n this._resizeLoadingUI = () => {\n const canvasRect = this._renderingCanvas.getBoundingClientRect();\n const canvasPositioning = window.getComputedStyle(this._renderingCanvas).position;\n if (!this._loadingDiv) {\n return;\n }\n this._loadingDiv.style.position = canvasPositioning === \"fixed\" ? \"fixed\" : \"absolute\";\n this._loadingDiv.style.left = canvasRect.left + \"px\";\n this._loadingDiv.style.top = canvasRect.top + \"px\";\n this._loadingDiv.style.width = canvasRect.width + \"px\";\n this._loadingDiv.style.height = canvasRect.height + \"px\";\n };\n }\n /**\n * Function called to display the loading screen\n */\n displayLoadingUI() {\n if (this._loadingDiv) {\n // Do not add a loading screen if there is already one\n return;\n }\n this._loadingDiv = document.createElement(\"div\");\n this._loadingDiv.id = \"babylonjsLoadingDiv\";\n this._loadingDiv.style.opacity = \"0\";\n this._loadingDiv.style.transition = \"opacity 1.5s ease\";\n this._loadingDiv.style.pointerEvents = \"none\";\n this._loadingDiv.style.display = \"grid\";\n this._loadingDiv.style.gridTemplateRows = \"100%\";\n this._loadingDiv.style.gridTemplateColumns = \"100%\";\n this._loadingDiv.style.justifyItems = \"center\";\n this._loadingDiv.style.alignItems = \"center\";\n // Loading text\n this._loadingTextDiv = document.createElement(\"div\");\n this._loadingTextDiv.style.position = \"absolute\";\n this._loadingTextDiv.style.left = \"0\";\n this._loadingTextDiv.style.top = \"50%\";\n this._loadingTextDiv.style.marginTop = \"80px\";\n this._loadingTextDiv.style.width = \"100%\";\n this._loadingTextDiv.style.height = \"20px\";\n this._loadingTextDiv.style.fontFamily = \"Arial\";\n this._loadingTextDiv.style.fontSize = \"14px\";\n this._loadingTextDiv.style.color = \"white\";\n this._loadingTextDiv.style.textAlign = \"center\";\n this._loadingTextDiv.style.zIndex = \"1\";\n this._loadingTextDiv.innerHTML = \"Loading\";\n this._loadingDiv.appendChild(this._loadingTextDiv);\n //set the predefined text\n this._loadingTextDiv.innerHTML = this._loadingText;\n // Generating keyframes\n this._style = document.createElement(\"style\");\n this._style.type = \"text/css\";\n const keyFrames = `@-webkit-keyframes spin1 {\\\r\n 0% { -webkit-transform: rotate(0deg);}\r\n 100% { -webkit-transform: rotate(360deg);}\r\n }\\\r\n @keyframes spin1 {\\\r\n 0% { transform: rotate(0deg);}\r\n 100% { transform: rotate(360deg);}\r\n }`;\n this._style.innerHTML = keyFrames;\n document.getElementsByTagName(\"head\")[0].appendChild(this._style);\n const svgSupport = !!window.SVGSVGElement;\n // Loading img\n const imgBack = new Image();\n if (!DefaultLoadingScreen.DefaultLogoUrl) {\n imgBack.src = !svgSupport\n ? \"https://cdn.babylonjs.com/Assets/babylonLogo.png\"\n : `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxODAuMTcgMjA4LjA0Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6I2UwNjg0Yjt9LmNscy0ze2ZpbGw6I2JiNDY0Yjt9LmNscy00e2ZpbGw6I2UwZGVkODt9LmNscy01e2ZpbGw6I2Q1ZDJjYTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPkJhYnlsb25Mb2dvPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iUGFnZV9FbGVtZW50cyIgZGF0YS1uYW1lPSJQYWdlIEVsZW1lbnRzIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik05MC4wOSwwLDAsNTJWMTU2bDkwLjA5LDUyLDkwLjA4LTUyVjUyWiIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxODAuMTcgNTIuMDEgMTUxLjk3IDM1LjczIDEyNC44NSA1MS4zOSAxNTMuMDUgNjcuNjcgMTgwLjE3IDUyLjAxIi8+PHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjI3LjEyIDY3LjY3IDExNy4yMSAxNS42NiA5MC4wOCAwIDAgNTIuMDEgMjcuMTIgNjcuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iNjEuODkgMTIwLjMgOTAuMDggMTM2LjU4IDExOC4yOCAxMjAuMyA5MC4wOCAxMDQuMDIgNjEuODkgMTIwLjMiLz48cG9seWdvbiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iMTUzLjA1IDY3LjY3IDE1My4wNSAxNDAuMzcgOTAuMDggMTc2LjcyIDI3LjEyIDE0MC4zNyAyNy4xMiA2Ny42NyAwIDUyLjAxIDAgMTU2LjAzIDkwLjA4IDIwOC4wNCAxODAuMTcgMTU2LjAzIDE4MC4xNyA1Mi4wMSAxNTMuMDUgNjcuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTMiIHBvaW50cz0iOTAuMDggNzEuNDYgNjEuODkgODcuNzQgNjEuODkgMTIwLjMgOTAuMDggMTA0LjAyIDExOC4yOCAxMjAuMyAxMTguMjggODcuNzQgOTAuMDggNzEuNDYiLz48cG9seWdvbiBjbGFzcz0iY2xzLTQiIHBvaW50cz0iMTUzLjA1IDY3LjY3IDExOC4yOCA4Ny43NCAxMTguMjggMTIwLjMgOTAuMDggMTM2LjU4IDkwLjA4IDE3Ni43MiAxNTMuMDUgMTQwLjM3IDE1My4wNSA2Ny42NyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtNSIgcG9pbnRzPSIyNy4xMiA2Ny42NyA2MS44OSA4Ny43NCA2MS44OSAxMjAuMyA5MC4wOCAxMzYuNTggOTAuMDggMTc2LjcyIDI3LjEyIDE0MC4zNyAyNy4xMiA2Ny42NyIvPjwvZz48L2c+PC9zdmc+`;\n }\n else {\n imgBack.src = DefaultLoadingScreen.DefaultLogoUrl;\n }\n imgBack.style.width = \"150px\";\n imgBack.style.gridColumn = \"1\";\n imgBack.style.gridRow = \"1\";\n imgBack.style.top = \"50%\";\n imgBack.style.left = \"50%\";\n imgBack.style.transform = \"translate(-50%, -50%)\";\n imgBack.style.position = \"absolute\";\n const imageSpinnerContainer = document.createElement(\"div\");\n imageSpinnerContainer.style.width = \"300px\";\n imageSpinnerContainer.style.gridColumn = \"1\";\n imageSpinnerContainer.style.gridRow = \"1\";\n imageSpinnerContainer.style.top = \"50%\";\n imageSpinnerContainer.style.left = \"50%\";\n imageSpinnerContainer.style.transform = \"translate(-50%, -50%)\";\n imageSpinnerContainer.style.position = \"absolute\";\n // Loading spinner\n const imgSpinner = new Image();\n if (!DefaultLoadingScreen.DefaultSpinnerUrl) {\n imgSpinner.src = !svgSupport\n ? \"https://cdn.babylonjs.com/Assets/loadingIcon.png\"\n : `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzOTIgMzkyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2UwNjg0Yjt9LmNscy0ye2ZpbGw6bm9uZTt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPlNwaW5uZXJJY29uPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iU3Bpbm5lciI+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDAuMjEsMTI2LjQzYzMuNy03LjMxLDcuNjctMTQuNDQsMTItMjEuMzJsMy4zNi01LjEsMy41Mi01YzEuMjMtMS42MywyLjQxLTMuMjksMy42NS00LjkxczIuNTMtMy4yMSwzLjgyLTQuNzlBMTg1LjIsMTg1LjIsMCwwLDEsODMuNCw2Ny40M2EyMDgsMjA4LDAsMCwxLDE5LTE1LjY2YzMuMzUtMi40MSw2Ljc0LTQuNzgsMTAuMjUtN3M3LjExLTQuMjgsMTAuNzUtNi4zMmM3LjI5LTQsMTQuNzMtOCwyMi41My0xMS40OSwzLjktMS43Miw3Ljg4LTMuMywxMi00LjY0YTEwNC4yMiwxMDQuMjIsMCwwLDEsMTIuNDQtMy4yMyw2Mi40NCw2Mi40NCwwLDAsMSwxMi43OC0xLjM5QTI1LjkyLDI1LjkyLDAsMCwxLDE5NiwyMS40NGE2LjU1LDYuNTUsMCwwLDEsMi4wNSw5LDYuNjYsNi42NiwwLDAsMS0xLjY0LDEuNzhsLS40MS4yOWEyMi4wNywyMi4wNywwLDAsMS01Ljc4LDMsMzAuNDIsMzAuNDIsMCwwLDEtNS42NywxLjYyLDM3LjgyLDM3LjgyLDAsMCwxLTUuNjkuNzFjLTEsMC0xLjkuMTgtMi44NS4yNmwtMi44NS4yNHEtNS43Mi41MS0xMS40OCwxLjFjLTMuODQuNC03LjcxLjgyLTExLjU4LDEuNGExMTIuMzQsMTEyLjM0LDAsMCwwLTIyLjk0LDUuNjFjLTMuNzIsMS4zNS03LjM0LDMtMTAuOTQsNC42NHMtNy4xNCwzLjUxLTEwLjYsNS41MUExNTEuNiwxNTEuNiwwLDAsMCw2OC41Niw4N0M2Ny4yMyw4OC40OCw2Niw5MCw2NC42NCw5MS41NnMtMi41MSwzLjE1LTMuNzUsNC43M2wtMy41NCw0LjljLTEuMTMsMS42Ni0yLjIzLDMuMzUtMy4zMyw1YTEyNywxMjcsMCwwLDAtMTAuOTMsMjEuNDksMS41OCwxLjU4LDAsMSwxLTMtMS4xNVM0MC4xOSwxMjYuNDcsNDAuMjEsMTI2LjQzWiIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgd2lkdGg9IjM5MiIgaGVpZ2h0PSIzOTIiLz48L2c+PC9nPjwvc3ZnPg==`;\n }\n else {\n imgSpinner.src = DefaultLoadingScreen.DefaultSpinnerUrl;\n }\n imgSpinner.style.animation = \"spin1 0.75s infinite linear\";\n imgSpinner.style.transformOrigin = \"50% 50%\";\n if (!svgSupport) {\n const logoSize = { w: 16, h: 18.5 };\n const loadingSize = { w: 30, h: 30 };\n // set styling correctly\n imgBack.style.width = `${logoSize.w}vh`;\n imgBack.style.height = `${logoSize.h}vh`;\n imgBack.style.left = `calc(50% - ${logoSize.w / 2}vh)`;\n imgBack.style.top = `calc(50% - ${logoSize.h / 2}vh)`;\n imgSpinner.style.width = `${loadingSize.w}vh`;\n imgSpinner.style.height = `${loadingSize.h}vh`;\n imgSpinner.style.left = `calc(50% - ${loadingSize.w / 2}vh)`;\n imgSpinner.style.top = `calc(50% - ${loadingSize.h / 2}vh)`;\n }\n imageSpinnerContainer.appendChild(imgSpinner);\n this._loadingDiv.appendChild(imgBack);\n this._loadingDiv.appendChild(imageSpinnerContainer);\n this._resizeLoadingUI();\n window.addEventListener(\"resize\", this._resizeLoadingUI);\n this._loadingDiv.style.backgroundColor = this._loadingDivBackgroundColor;\n document.body.appendChild(this._loadingDiv);\n this._loadingDiv.style.opacity = \"1\";\n }\n /**\n * Function called to hide the loading screen\n */\n hideLoadingUI() {\n if (!this._loadingDiv) {\n return;\n }\n const onTransitionEnd = () => {\n if (this._loadingTextDiv) {\n this._loadingTextDiv.remove();\n this._loadingTextDiv = null;\n }\n if (this._loadingDiv) {\n this._loadingDiv.remove();\n this._loadingDiv = null;\n }\n if (this._style) {\n this._style.remove();\n this._style = null;\n }\n window.removeEventListener(\"resize\", this._resizeLoadingUI);\n };\n this._loadingDiv.style.opacity = \"0\";\n this._loadingDiv.addEventListener(\"transitionend\", onTransitionEnd);\n }\n /**\n * Gets or sets the text to display while loading\n */\n set loadingUIText(text) {\n this._loadingText = text;\n if (this._loadingTextDiv) {\n this._loadingTextDiv.innerHTML = this._loadingText;\n }\n }\n get loadingUIText() {\n return this._loadingText;\n }\n /**\n * Gets or sets the color to use for the background\n */\n get loadingUIBackgroundColor() {\n return this._loadingDivBackgroundColor;\n }\n set loadingUIBackgroundColor(color) {\n this._loadingDivBackgroundColor = color;\n if (!this._loadingDiv) {\n return;\n }\n this._loadingDiv.style.backgroundColor = this._loadingDivBackgroundColor;\n }\n}\n/** Gets or sets the logo url to use for the default loading screen */\nDefaultLoadingScreen.DefaultLogoUrl = \"\";\n/** Gets or sets the spinner url to use for the default loading screen */\nDefaultLoadingScreen.DefaultSpinnerUrl = \"\";\nAbstractEngine.DefaultLoadingScreenFactory = (canvas) => {\n return new DefaultLoadingScreen(canvas);\n};\n","import { __decorate } from \"../../tslib.es6.js\";\nimport { serialize, serializeAsColor3, expandToProperty, serializeAsTexture } from \"../../Misc/decorators.js\";\nimport { PBRBaseSimpleMaterial } from \"./pbrBaseSimpleMaterial.js\";\nimport { RegisterClass } from \"../../Misc/typeStore.js\";\nimport { SerializationHelper } from \"../../Misc/decorators.serialization.js\";\n/**\n * The PBR material of BJS following the specular glossiness convention.\n *\n * This fits to the PBR convention in the GLTF definition:\n * https://github.com/KhronosGroup/glTF/tree/2.0/extensions/Khronos/KHR_materials_pbrSpecularGlossiness\n */\nexport class PBRSpecularGlossinessMaterial extends PBRBaseSimpleMaterial {\n /**\n * Specifies if the reflectivity texture contains the glossiness information in its alpha channel.\n */\n get useMicroSurfaceFromReflectivityMapAlpha() {\n return this._useMicroSurfaceFromReflectivityMapAlpha;\n }\n /**\n * Instantiates a new PBRSpecularGlossinessMaterial instance.\n *\n * @param name The material name\n * @param scene The scene the material will be use in.\n */\n constructor(name, scene) {\n super(name, scene);\n this._useMicroSurfaceFromReflectivityMapAlpha = true;\n }\n /**\n * @returns the current class name of the material.\n */\n getClassName() {\n return \"PBRSpecularGlossinessMaterial\";\n }\n /**\n * Makes a duplicate of the current material.\n * @param name - name to use for the new material.\n * @returns cloned material instance\n */\n clone(name) {\n const clone = SerializationHelper.Clone(() => new PBRSpecularGlossinessMaterial(name, this.getScene()), this);\n clone.id = name;\n clone.name = name;\n this.clearCoat.copyTo(clone.clearCoat);\n this.anisotropy.copyTo(clone.anisotropy);\n this.brdf.copyTo(clone.brdf);\n this.sheen.copyTo(clone.sheen);\n this.subSurface.copyTo(clone.subSurface);\n return clone;\n }\n /**\n * Serialize the material to a parsable JSON object.\n * @returns the JSON object\n */\n serialize() {\n const serializationObject = SerializationHelper.Serialize(this);\n serializationObject.customType = \"BABYLON.PBRSpecularGlossinessMaterial\";\n serializationObject.clearCoat = this.clearCoat.serialize();\n serializationObject.anisotropy = this.anisotropy.serialize();\n serializationObject.brdf = this.brdf.serialize();\n serializationObject.sheen = this.sheen.serialize();\n serializationObject.subSurface = this.subSurface.serialize();\n serializationObject.iridescence = this.iridescence.serialize();\n return serializationObject;\n }\n /**\n * Parses a JSON object corresponding to the serialize function.\n * @param source - JSON source object.\n * @param scene - the scene to parse to.\n * @param rootUrl - root url of the assets.\n * @returns a new PBRSpecularGlossinessMaterial.\n */\n static Parse(source, scene, rootUrl) {\n const material = SerializationHelper.Parse(() => new PBRSpecularGlossinessMaterial(source.name, scene), source, scene, rootUrl);\n if (source.clearCoat) {\n material.clearCoat.parse(source.clearCoat, scene, rootUrl);\n }\n if (source.anisotropy) {\n material.anisotropy.parse(source.anisotropy, scene, rootUrl);\n }\n if (source.brdf) {\n material.brdf.parse(source.brdf, scene, rootUrl);\n }\n if (source.sheen) {\n material.sheen.parse(source.sheen, scene, rootUrl);\n }\n if (source.subSurface) {\n material.subSurface.parse(source.subSurface, scene, rootUrl);\n }\n if (source.iridescence) {\n material.iridescence.parse(source.iridescence, scene, rootUrl);\n }\n return material;\n }\n}\n__decorate([\n serializeAsColor3(\"diffuse\"),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\", \"_albedoColor\")\n], PBRSpecularGlossinessMaterial.prototype, \"diffuseColor\", void 0);\n__decorate([\n serializeAsTexture(),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\", \"_albedoTexture\")\n], PBRSpecularGlossinessMaterial.prototype, \"diffuseTexture\", void 0);\n__decorate([\n serializeAsColor3(\"specular\"),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\", \"_reflectivityColor\")\n], PBRSpecularGlossinessMaterial.prototype, \"specularColor\", void 0);\n__decorate([\n serialize(),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\", \"_microSurface\")\n], PBRSpecularGlossinessMaterial.prototype, \"glossiness\", void 0);\n__decorate([\n serializeAsTexture(),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\", \"_reflectivityTexture\")\n], PBRSpecularGlossinessMaterial.prototype, \"specularGlossinessTexture\", void 0);\nRegisterClass(\"BABYLON.PBRSpecularGlossinessMaterial\", PBRSpecularGlossinessMaterial);\n","import { Matrix } from \"../../Maths/math.vector.js\";\nimport { BaseTexture } from \"../../Materials/Textures/baseTexture.js\";\n\nimport { RegisterClass } from \"../../Misc/typeStore.js\";\n/**\n * This represents a color grading texture. This acts as a lookup table LUT, useful during post process\n * It can help converting any input color in a desired output one. This can then be used to create effects\n * from sepia, black and white to sixties or futuristic rendering...\n *\n * The only supported format is currently 3dl.\n * More information on LUT: https://en.wikipedia.org/wiki/3D_lookup_table\n */\nexport class ColorGradingTexture extends BaseTexture {\n /**\n * Instantiates a ColorGradingTexture from the following parameters.\n *\n * @param url The location of the color grading data (currently only supporting 3dl)\n * @param sceneOrEngine The scene or engine the texture will be used in\n * @param onLoad defines a callback triggered when the texture has been loaded\n */\n constructor(url, sceneOrEngine, onLoad = null) {\n super(sceneOrEngine);\n if (!url) {\n return;\n }\n this._textureMatrix = Matrix.Identity();\n this.name = url;\n this.url = url;\n this._onLoad = onLoad;\n this._texture = this._getFromCache(url, true);\n if (!this._texture) {\n const scene = this.getScene();\n if (scene) {\n if (!scene.useDelayedTextureLoading) {\n this._loadTexture();\n }\n else {\n this.delayLoadState = 4;\n }\n }\n else {\n this._loadTexture();\n }\n }\n else {\n this._triggerOnLoad();\n }\n }\n /**\n * Fires the onload event from the constructor if requested.\n */\n _triggerOnLoad() {\n if (this._onLoad) {\n this._onLoad();\n }\n }\n /**\n * @returns the texture matrix used in most of the material.\n * This is not used in color grading but keep for troubleshooting purpose (easily swap diffuse by colorgrading to look in).\n */\n getTextureMatrix() {\n return this._textureMatrix;\n }\n /**\n * Occurs when the file being loaded is a .3dl LUT file.\n * @returns the 3D LUT texture\n */\n _load3dlTexture() {\n const engine = this._getEngine();\n let texture;\n if (!engine._features.support3DTextures) {\n texture = engine.createRawTexture(null, 1, 1, 5, false, false, 2, null, 0);\n }\n else {\n texture = engine.createRawTexture3D(null, 1, 1, 1, 5, false, false, 2, null, 0);\n }\n this._texture = texture;\n this._texture.isReady = false;\n this.isCube = false;\n this.is3D = engine._features.support3DTextures;\n this.wrapU = 0;\n this.wrapV = 0;\n this.wrapR = 0;\n this.anisotropicFilteringLevel = 1;\n const callback = (text) => {\n if (typeof text !== \"string\") {\n return;\n }\n let data = null;\n let tempData = null;\n let line;\n const lines = text.split(\"\\n\");\n let size = 0, pixelIndexW = 0, pixelIndexH = 0, pixelIndexSlice = 0;\n let maxColor = 0;\n for (let i = 0; i < lines.length; i++) {\n line = lines[i];\n if (!ColorGradingTexture._NoneEmptyLineRegex.test(line)) {\n continue;\n }\n if (line.indexOf(\"#\") === 0) {\n continue;\n }\n const words = line.split(\" \");\n if (size === 0) {\n // Number of space + one\n size = words.length;\n data = new Uint8Array(size * size * size * 4); // volume texture of side size and rgb 8\n tempData = new Float32Array(size * size * size * 4);\n continue;\n }\n if (size != 0) {\n const r = Math.max(parseInt(words[0]), 0);\n const g = Math.max(parseInt(words[1]), 0);\n const b = Math.max(parseInt(words[2]), 0);\n maxColor = Math.max(r, maxColor);\n maxColor = Math.max(g, maxColor);\n maxColor = Math.max(b, maxColor);\n const pixelStorageIndex = (pixelIndexW + pixelIndexSlice * size + pixelIndexH * size * size) * 4;\n if (tempData) {\n tempData[pixelStorageIndex + 0] = r;\n tempData[pixelStorageIndex + 1] = g;\n tempData[pixelStorageIndex + 2] = b;\n }\n // Keep for reference in case of back compat problems.\n // pixelIndexSlice++;\n // if (pixelIndexSlice % size == 0) {\n // pixelIndexH++;\n // pixelIndexSlice = 0;\n // if (pixelIndexH % size == 0) {\n // pixelIndexW++;\n // pixelIndexH = 0;\n // }\n // }\n pixelIndexH++;\n if (pixelIndexH % size == 0) {\n pixelIndexSlice++;\n pixelIndexH = 0;\n if (pixelIndexSlice % size == 0) {\n pixelIndexW++;\n pixelIndexSlice = 0;\n }\n }\n }\n }\n if (tempData && data) {\n for (let i = 0; i < tempData.length; i++) {\n if (i > 0 && (i + 1) % 4 === 0) {\n data[i] = 255;\n }\n else {\n const value = tempData[i];\n data[i] = (value / maxColor) * 255;\n }\n }\n }\n if (texture.is3D) {\n texture.updateSize(size, size, size);\n engine.updateRawTexture3D(texture, data, 5, false);\n }\n else {\n texture.updateSize(size * size, size);\n engine.updateRawTexture(texture, data, 5, false);\n }\n texture.isReady = true;\n this._triggerOnLoad();\n };\n const scene = this.getScene();\n if (scene) {\n scene._loadFile(this.url, callback);\n }\n else {\n engine._loadFile(this.url, callback);\n }\n return this._texture;\n }\n /**\n * Starts the loading process of the texture.\n */\n _loadTexture() {\n if (this.url && this.url.toLocaleLowerCase().indexOf(\".3dl\") == this.url.length - 4) {\n this._load3dlTexture();\n }\n }\n /**\n * Clones the color grading texture.\n * @returns the cloned texture\n */\n clone() {\n const newTexture = new ColorGradingTexture(this.url, this.getScene() || this._getEngine());\n // Base texture\n newTexture.level = this.level;\n return newTexture;\n }\n /**\n * Called during delayed load for textures.\n */\n delayLoad() {\n if (this.delayLoadState !== 4) {\n return;\n }\n this.delayLoadState = 1;\n this._texture = this._getFromCache(this.url, true);\n if (!this._texture) {\n this._loadTexture();\n }\n }\n /**\n * Parses a color grading texture serialized by Babylon.\n * @param parsedTexture The texture information being parsedTexture\n * @param scene The scene to load the texture in\n * @returns A color grading texture\n */\n static Parse(parsedTexture, scene) {\n let texture = null;\n if (parsedTexture.name && !parsedTexture.isRenderTarget) {\n texture = new ColorGradingTexture(parsedTexture.name, scene);\n texture.name = parsedTexture.name;\n texture.level = parsedTexture.level;\n }\n return texture;\n }\n /**\n * Serializes the LUT texture to json format.\n * @returns The JSON representation of the texture\n */\n serialize() {\n if (!this.name) {\n return null;\n }\n const serializationObject = {};\n serializationObject.name = this.name;\n serializationObject.level = this.level;\n serializationObject.customType = \"BABYLON.ColorGradingTexture\";\n return serializationObject;\n }\n}\n/**\n * Empty line regex stored for GC.\n */\nColorGradingTexture._NoneEmptyLineRegex = /\\S+/;\nRegisterClass(\"BABYLON.ColorGradingTexture\", ColorGradingTexture);\n","import { Texture } from \"../../Materials/Textures/texture.js\";\nimport { RenderTargetTexture } from \"../../Materials/Textures/renderTargetTexture.js\";\n\nimport \"../../Engines/Extensions/engine.multiRender.js\";\n/**\n * A multi render target, like a render target provides the ability to render to a texture.\n * Unlike the render target, it can render to several draw buffers (render textures) in one draw.\n * This is specially interesting in deferred rendering or for any effects requiring more than\n * just one color from a single pass.\n */\nexport class MultiRenderTarget extends RenderTargetTexture {\n /**\n * Get if draw buffers (render textures) are currently supported by the used hardware and browser.\n */\n get isSupported() {\n return this._engine?.getCaps().drawBuffersExtension ?? false;\n }\n /**\n * Get the list of textures generated by the multi render target.\n */\n get textures() {\n return this._textures;\n }\n /**\n * Gets the number of textures in this MRT. This number can be different from `_textures.length` in case a depth texture is generated.\n */\n get count() {\n return this._count;\n }\n /**\n * Get the depth texture generated by the multi render target if options.generateDepthTexture has been set\n */\n get depthTexture() {\n return this._textures[this._textures.length - 1];\n }\n /**\n * Set the wrapping mode on U of all the textures we are rendering to.\n * Can be any of the Texture. (CLAMP_ADDRESSMODE, MIRROR_ADDRESSMODE or WRAP_ADDRESSMODE)\n */\n set wrapU(wrap) {\n if (this._textures) {\n for (let i = 0; i < this._textures.length; i++) {\n this._textures[i].wrapU = wrap;\n }\n }\n }\n /**\n * Set the wrapping mode on V of all the textures we are rendering to.\n * Can be any of the Texture. (CLAMP_ADDRESSMODE, MIRROR_ADDRESSMODE or WRAP_ADDRESSMODE)\n */\n set wrapV(wrap) {\n if (this._textures) {\n for (let i = 0; i < this._textures.length; i++) {\n this._textures[i].wrapV = wrap;\n }\n }\n }\n /**\n * Instantiate a new multi render target texture.\n * A multi render target, like a render target provides the ability to render to a texture.\n * Unlike the render target, it can render to several draw buffers (render textures) in one draw.\n * This is specially interesting in deferred rendering or for any effects requiring more than\n * just one color from a single pass.\n * @param name Define the name of the texture\n * @param size Define the size of the buffers to render to\n * @param count Define the number of target we are rendering into\n * @param scene Define the scene the texture belongs to\n * @param options Define the options used to create the multi render target\n * @param textureNames Define the names to set to the textures (if count \\> 0 - optional)\n */\n constructor(name, size, count, scene, options, textureNames) {\n const generateMipMaps = options && options.generateMipMaps ? options.generateMipMaps : false;\n const generateDepthTexture = options && options.generateDepthTexture ? options.generateDepthTexture : false;\n const depthTextureFormat = options && options.depthTextureFormat ? options.depthTextureFormat : 15;\n const doNotChangeAspectRatio = !options || options.doNotChangeAspectRatio === undefined ? true : options.doNotChangeAspectRatio;\n const drawOnlyOnFirstAttachmentByDefault = options && options.drawOnlyOnFirstAttachmentByDefault ? options.drawOnlyOnFirstAttachmentByDefault : false;\n super(name, size, scene, generateMipMaps, doNotChangeAspectRatio, undefined, undefined, undefined, undefined, undefined, undefined, undefined, true);\n if (!this.isSupported) {\n this.dispose();\n return;\n }\n this._textureNames = textureNames;\n const types = [];\n const samplingModes = [];\n const useSRGBBuffers = [];\n const formats = [];\n const targetTypes = [];\n const faceIndex = [];\n const layerIndex = [];\n const layerCounts = [];\n this._initTypes(count, types, samplingModes, useSRGBBuffers, formats, targetTypes, faceIndex, layerIndex, layerCounts, options);\n const generateDepthBuffer = !options || options.generateDepthBuffer === undefined ? true : options.generateDepthBuffer;\n const generateStencilBuffer = !options || options.generateStencilBuffer === undefined ? false : options.generateStencilBuffer;\n const samples = options && options.samples ? options.samples : 1;\n this._multiRenderTargetOptions = {\n samplingModes: samplingModes,\n generateMipMaps: generateMipMaps,\n generateDepthBuffer: generateDepthBuffer,\n generateStencilBuffer: generateStencilBuffer,\n generateDepthTexture: generateDepthTexture,\n depthTextureFormat: depthTextureFormat,\n types: types,\n textureCount: count,\n useSRGBBuffers: useSRGBBuffers,\n samples,\n formats: formats,\n targetTypes: targetTypes,\n faceIndex: faceIndex,\n layerIndex: layerIndex,\n layerCounts: layerCounts,\n labels: textureNames,\n label: name,\n };\n this._count = count;\n this._drawOnlyOnFirstAttachmentByDefault = drawOnlyOnFirstAttachmentByDefault;\n if (count > 0) {\n this._createInternalTextures();\n this._createTextures(textureNames);\n }\n }\n _initTypes(count, types, samplingModes, useSRGBBuffers, formats, targets, faceIndex, layerIndex, layerCounts, options) {\n for (let i = 0; i < count; i++) {\n if (options && options.types && options.types[i] !== undefined) {\n types.push(options.types[i]);\n }\n else {\n types.push(options && options.defaultType ? options.defaultType : 0);\n }\n if (options && options.samplingModes && options.samplingModes[i] !== undefined) {\n samplingModes.push(options.samplingModes[i]);\n }\n else {\n samplingModes.push(Texture.BILINEAR_SAMPLINGMODE);\n }\n if (options && options.useSRGBBuffers && options.useSRGBBuffers[i] !== undefined) {\n useSRGBBuffers.push(options.useSRGBBuffers[i]);\n }\n else {\n useSRGBBuffers.push(false);\n }\n if (options && options.formats && options.formats[i] !== undefined) {\n formats.push(options.formats[i]);\n }\n else {\n formats.push(5);\n }\n if (options && options.targetTypes && options.targetTypes[i] !== undefined) {\n targets.push(options.targetTypes[i]);\n }\n else {\n targets.push(3553);\n }\n if (options && options.faceIndex && options.faceIndex[i] !== undefined) {\n faceIndex.push(options.faceIndex[i]);\n }\n else {\n faceIndex.push(0);\n }\n if (options && options.layerIndex && options.layerIndex[i] !== undefined) {\n layerIndex.push(options.layerIndex[i]);\n }\n else {\n layerIndex.push(0);\n }\n if (options && options.layerCounts && options.layerCounts[i] !== undefined) {\n layerCounts.push(options.layerCounts[i]);\n }\n else {\n layerCounts.push(1);\n }\n }\n }\n _createInternaTextureIndexMapping() {\n const mapMainInternalTexture2Index = {};\n const mapInternalTexture2MainIndex = [];\n if (!this._renderTarget) {\n return mapInternalTexture2MainIndex;\n }\n const internalTextures = this._renderTarget.textures;\n for (let i = 0; i < internalTextures.length; i++) {\n const texture = internalTextures[i];\n if (!texture) {\n continue;\n }\n const mainIndex = mapMainInternalTexture2Index[texture.uniqueId];\n if (mainIndex !== undefined) {\n mapInternalTexture2MainIndex[i] = mainIndex;\n }\n else {\n mapMainInternalTexture2Index[texture.uniqueId] = i;\n }\n }\n return mapInternalTexture2MainIndex;\n }\n /**\n * @internal\n */\n _rebuild(fromContextLost = false, forceFullRebuild = false, textureNames) {\n if (this._count < 1 || fromContextLost) {\n return;\n }\n const mapInternalTexture2MainIndex = this._createInternaTextureIndexMapping();\n this.releaseInternalTextures();\n this._createInternalTextures();\n if (forceFullRebuild) {\n this._releaseTextures();\n this._createTextures(textureNames);\n }\n const internalTextures = this._renderTarget.textures;\n for (let i = 0; i < internalTextures.length; i++) {\n const texture = this._textures[i];\n if (mapInternalTexture2MainIndex[i] !== undefined) {\n this._renderTarget.setTexture(internalTextures[mapInternalTexture2MainIndex[i]], i);\n }\n texture._texture = internalTextures[i];\n if (texture._texture) {\n texture._noMipmap = !texture._texture.useMipMaps;\n texture._useSRGBBuffer = texture._texture._useSRGBBuffer;\n }\n }\n if (this.samples !== 1) {\n this._renderTarget.setSamples(this.samples, !this._drawOnlyOnFirstAttachmentByDefault, true);\n }\n }\n _createInternalTextures() {\n this._renderTarget = this._getEngine().createMultipleRenderTarget(this._size, this._multiRenderTargetOptions, !this._drawOnlyOnFirstAttachmentByDefault);\n this._texture = this._renderTarget.texture;\n }\n _releaseTextures() {\n if (this._textures) {\n for (let i = 0; i < this._textures.length; i++) {\n this._textures[i]._texture = null; // internal textures are released by a call to releaseInternalTextures()\n this._textures[i].dispose();\n }\n }\n }\n _createTextures(textureNames) {\n const internalTextures = this._renderTarget.textures;\n this._textures = [];\n for (let i = 0; i < internalTextures.length; i++) {\n const texture = new Texture(null, this.getScene());\n if (textureNames?.[i]) {\n texture.name = textureNames[i];\n }\n texture._texture = internalTextures[i];\n if (texture._texture) {\n texture._noMipmap = !texture._texture.useMipMaps;\n texture._useSRGBBuffer = texture._texture._useSRGBBuffer;\n }\n this._textures.push(texture);\n }\n }\n /**\n * Replaces an internal texture within the MRT. Useful to share textures between MultiRenderTarget.\n * @param texture The new texture to set in the MRT\n * @param index The index of the texture to replace\n * @param disposePrevious Set to true if the previous internal texture should be disposed\n */\n setInternalTexture(texture, index, disposePrevious = true) {\n if (!this.renderTarget) {\n return;\n }\n if (index === 0) {\n this._texture = texture;\n }\n this.renderTarget.setTexture(texture, index, disposePrevious);\n if (!this.textures[index]) {\n this.textures[index] = new Texture(null, this.getScene());\n this.textures[index].name = this._textureNames?.[index] ?? this.textures[index].name;\n }\n this.textures[index]._texture = texture;\n this.textures[index]._noMipmap = !texture.useMipMaps;\n this.textures[index]._useSRGBBuffer = texture._useSRGBBuffer;\n this._count = this.renderTarget.textures ? this.renderTarget.textures.length : 0;\n if (this._multiRenderTargetOptions.types) {\n this._multiRenderTargetOptions.types[index] = texture.type;\n }\n if (this._multiRenderTargetOptions.samplingModes) {\n this._multiRenderTargetOptions.samplingModes[index] = texture.samplingMode;\n }\n if (this._multiRenderTargetOptions.useSRGBBuffers) {\n this._multiRenderTargetOptions.useSRGBBuffers[index] = texture._useSRGBBuffer;\n }\n if (this._multiRenderTargetOptions.targetTypes && this._multiRenderTargetOptions.targetTypes[index] !== -1) {\n let target = 0;\n if (texture.is2DArray) {\n target = 35866;\n }\n else if (texture.isCube) {\n target = 34067;\n } /*else if (texture.isCubeArray) {\n target = 3735928559;\n }*/\n else if (texture.is3D) {\n target = 32879;\n }\n else {\n target = 3553;\n }\n this._multiRenderTargetOptions.targetTypes[index] = target;\n }\n }\n /**\n * Changes an attached texture's face index or layer.\n * @param index The index of the texture to modify the attachment of\n * @param layerIndex The layer index of the texture to be attached to the framebuffer\n * @param faceIndex The face index of the texture to be attached to the framebuffer\n */\n setLayerAndFaceIndex(index, layerIndex = -1, faceIndex = -1) {\n if (!this.textures[index] || !this.renderTarget) {\n return;\n }\n if (this._multiRenderTargetOptions.layerIndex) {\n this._multiRenderTargetOptions.layerIndex[index] = layerIndex;\n }\n if (this._multiRenderTargetOptions.faceIndex) {\n this._multiRenderTargetOptions.faceIndex[index] = faceIndex;\n }\n this.renderTarget.setLayerAndFaceIndex(index, layerIndex, faceIndex);\n }\n /**\n * Changes every attached texture's face index or layer.\n * @param layerIndices The layer indices of the texture to be attached to the framebuffer\n * @param faceIndices The face indices of the texture to be attached to the framebuffer\n */\n setLayerAndFaceIndices(layerIndices, faceIndices) {\n if (!this.renderTarget) {\n return;\n }\n this._multiRenderTargetOptions.layerIndex = layerIndices;\n this._multiRenderTargetOptions.faceIndex = faceIndices;\n this.renderTarget.setLayerAndFaceIndices(layerIndices, faceIndices);\n }\n /**\n * Define the number of samples used if MSAA is enabled.\n */\n get samples() {\n return this._samples;\n }\n set samples(value) {\n if (this._renderTarget) {\n this._samples = this._renderTarget.setSamples(value);\n }\n else {\n // In case samples are set with 0 textures created, we must save the desired samples value\n this._samples = value;\n }\n }\n /**\n * Resize all the textures in the multi render target.\n * Be careful as it will recreate all the data in the new texture.\n * @param size Define the new size\n */\n resize(size) {\n this._processSizeParameter(size);\n this._rebuild(false, undefined, this._textureNames);\n }\n /**\n * Changes the number of render targets in this MRT\n * Be careful as it will recreate all the data in the new texture.\n * @param count new texture count\n * @param options Specifies texture types and sampling modes for new textures\n * @param textureNames Specifies the names of the textures (optional)\n */\n updateCount(count, options, textureNames) {\n this._multiRenderTargetOptions.textureCount = count;\n this._count = count;\n const types = [];\n const samplingModes = [];\n const useSRGBBuffers = [];\n const formats = [];\n const targetTypes = [];\n const faceIndex = [];\n const layerIndex = [];\n const layerCounts = [];\n this._textureNames = textureNames;\n this._initTypes(count, types, samplingModes, useSRGBBuffers, formats, targetTypes, faceIndex, layerIndex, layerCounts, options);\n this._multiRenderTargetOptions.types = types;\n this._multiRenderTargetOptions.samplingModes = samplingModes;\n this._multiRenderTargetOptions.useSRGBBuffers = useSRGBBuffers;\n this._multiRenderTargetOptions.formats = formats;\n this._multiRenderTargetOptions.targetTypes = targetTypes;\n this._multiRenderTargetOptions.faceIndex = faceIndex;\n this._multiRenderTargetOptions.layerIndex = layerIndex;\n this._multiRenderTargetOptions.layerCounts = layerCounts;\n this._multiRenderTargetOptions.labels = textureNames;\n this._rebuild(false, true, textureNames);\n }\n _unbindFrameBuffer(engine, faceIndex) {\n if (this._renderTarget) {\n engine.unBindMultiColorAttachmentFramebuffer(this._renderTarget, this.isCube, () => {\n this.onAfterRenderObservable.notifyObservers(faceIndex);\n });\n }\n }\n /**\n * Dispose the render targets and their associated resources\n * @param doNotDisposeInternalTextures if set to true, internal textures won't be disposed (default: false).\n */\n dispose(doNotDisposeInternalTextures = false) {\n this._releaseTextures();\n if (!doNotDisposeInternalTextures) {\n this.releaseInternalTextures();\n }\n else {\n // Prevent internal texture dispose in super.dispose\n this._texture = null;\n }\n super.dispose();\n }\n /**\n * Release all the underlying texture used as draw buffers (render textures).\n */\n releaseInternalTextures() {\n const internalTextures = this._renderTarget?.textures;\n if (!internalTextures) {\n return;\n }\n for (let i = internalTextures.length - 1; i >= 0; i--) {\n this._textures[i]._texture = null;\n }\n this._renderTarget?.dispose();\n this._renderTarget = null;\n }\n}\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"noisePixelShader\";\nconst shader = `uniform float brightness;uniform float persistence;uniform float timeScale;varying vec2 vUV;vec2 hash22(vec2 p)\n{p=p*mat2(127.1,311.7,269.5,183.3);p=-1.0+2.0*fract(sin(p)*43758.5453123);return sin(p*6.283+timeScale);}\nfloat interpolationNoise(vec2 p)\n{vec2 pi=floor(p);vec2 pf=p-pi;vec2 w=pf*pf*(3.-2.*pf);float f00=dot(hash22(pi+vec2(.0,.0)),pf-vec2(.0,.0));float f01=dot(hash22(pi+vec2(.0,1.)),pf-vec2(.0,1.));float f10=dot(hash22(pi+vec2(1.0,0.)),pf-vec2(1.0,0.));float f11=dot(hash22(pi+vec2(1.0,1.)),pf-vec2(1.0,1.));float xm1=mix(f00,f10,w.x);float xm2=mix(f01,f11,w.x);float ym=mix(xm1,xm2,w.y); \nreturn ym;}\nfloat perlinNoise2D(float x,float y)\n{float sum=0.0;float frequency=0.0;float amplitude=0.0;for(int i=0; i true) {\n if (!this.matricesIndices.isConnected) {\n let matricesIndicesInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"matricesIndices\" && additionalFilteringInfo(b));\n if (!matricesIndicesInput) {\n matricesIndicesInput = new InputBlock(\"matricesIndices\");\n matricesIndicesInput.setAsAttribute(\"matricesIndices\");\n }\n matricesIndicesInput.output.connectTo(this.matricesIndices);\n }\n if (!this.matricesWeights.isConnected) {\n let matricesWeightsInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"matricesWeights\" && additionalFilteringInfo(b));\n if (!matricesWeightsInput) {\n matricesWeightsInput = new InputBlock(\"matricesWeights\");\n matricesWeightsInput.setAsAttribute(\"matricesWeights\");\n }\n matricesWeightsInput.output.connectTo(this.matricesWeights);\n }\n if (!this.world.isConnected) {\n let worldInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.World && additionalFilteringInfo(b));\n if (!worldInput) {\n worldInput = new InputBlock(\"world\");\n worldInput.setAsSystemValue(NodeMaterialSystemValues.World);\n }\n worldInput.output.connectTo(this.world);\n }\n }\n provideFallbacks(mesh, fallbacks) {\n if (mesh && mesh.useBones && mesh.computeBonesUsingShaders && mesh.skeleton) {\n fallbacks.addCPUSkinningFallback(0, mesh);\n }\n }\n bind(effect, nodeMaterial, mesh) {\n BindBonesParameters(mesh, effect);\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n if (!defines._areAttributesDirty) {\n return;\n }\n PrepareDefinesForBones(mesh, defines);\n }\n _buildBlock(state) {\n super._buildBlock(state);\n // Register for compilation fallbacks\n state.sharedData.blocksWithFallbacks.push(this);\n // Register for binding\n state.sharedData.forcedBindableBlocks.push(this);\n // Register for defines\n state.sharedData.blocksWithDefines.push(this);\n // Register internal uniforms and samplers\n state.uniforms.push(\"boneTextureWidth\");\n state.uniforms.push(\"mBones\");\n state.samplers.push(\"boneSampler\");\n // Emit code\n const comments = `//${this.name}`;\n state._emitFunctionFromInclude(\"bonesDeclaration\", comments, {\n removeAttributes: true,\n removeUniforms: false,\n removeVaryings: true,\n removeIfDef: false,\n });\n const influenceVariablename = state._getFreeVariableName(\"influence\");\n state.compilationString += state._emitCodeFromInclude(\"bonesVertex\", comments, {\n replaceStrings: [\n {\n search: /finalWorld=finalWorld\\*influence;/,\n replace: \"\",\n },\n {\n search: /influence/gm,\n replace: influenceVariablename,\n },\n ],\n });\n const output = this._outputs[0];\n const worldInput = this.world;\n state.compilationString += `#if NUM_BONE_INFLUENCERS>0\\n`;\n state.compilationString += state._declareOutput(output) + ` = ${worldInput.associatedVariableName} * ${influenceVariablename};\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += state._declareOutput(output) + ` = ${worldInput.associatedVariableName};\\n`;\n state.compilationString += `#endif\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.BonesBlock\", BonesBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialSystemValues } from \"../../Enums/nodeMaterialSystemValues.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Block used to add support for instances\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/copies/instances\n */\nexport class InstancesBlock extends NodeMaterialBlock {\n /**\n * Creates a new InstancesBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"world0\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"world1\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"world2\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"world3\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"world\", NodeMaterialBlockConnectionPointTypes.Matrix, true);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Matrix);\n this.registerOutput(\"instanceID\", NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstancesBlock\";\n }\n /**\n * Gets the first world row input component\n */\n get world0() {\n return this._inputs[0];\n }\n /**\n * Gets the second world row input component\n */\n get world1() {\n return this._inputs[1];\n }\n /**\n * Gets the third world row input component\n */\n get world2() {\n return this._inputs[2];\n }\n /**\n * Gets the forth world row input component\n */\n get world3() {\n return this._inputs[3];\n }\n /**\n * Gets the world input component\n */\n get world() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the instanceID component\n */\n get instanceID() {\n return this._outputs[1];\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.world0.connectedPoint) {\n let world0Input = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"world0\" && additionalFilteringInfo(b));\n if (!world0Input) {\n world0Input = new InputBlock(\"world0\");\n world0Input.setAsAttribute(\"world0\");\n }\n world0Input.output.connectTo(this.world0);\n }\n if (!this.world1.connectedPoint) {\n let world1Input = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"world1\" && additionalFilteringInfo(b));\n if (!world1Input) {\n world1Input = new InputBlock(\"world1\");\n world1Input.setAsAttribute(\"world1\");\n }\n world1Input.output.connectTo(this.world1);\n }\n if (!this.world2.connectedPoint) {\n let world2Input = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"world2\" && additionalFilteringInfo(b));\n if (!world2Input) {\n world2Input = new InputBlock(\"world2\");\n world2Input.setAsAttribute(\"world2\");\n }\n world2Input.output.connectTo(this.world2);\n }\n if (!this.world3.connectedPoint) {\n let world3Input = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"world3\" && additionalFilteringInfo(b));\n if (!world3Input) {\n world3Input = new InputBlock(\"world3\");\n world3Input.setAsAttribute(\"world3\");\n }\n world3Input.output.connectTo(this.world3);\n }\n if (!this.world.connectedPoint) {\n let worldInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"world\" && additionalFilteringInfo(b));\n if (!worldInput) {\n worldInput = new InputBlock(\"world\");\n worldInput.setAsSystemValue(NodeMaterialSystemValues.World);\n }\n worldInput.output.connectTo(this.world);\n }\n this.world.define = \"!INSTANCES || THIN_INSTANCES\";\n }\n prepareDefines(mesh, nodeMaterial, defines, useInstances = false, subMesh) {\n let changed = false;\n if (defines[\"INSTANCES\"] !== useInstances) {\n defines.setValue(\"INSTANCES\", useInstances);\n changed = true;\n }\n if (subMesh && defines[\"THIN_INSTANCES\"] !== !!subMesh?.getRenderingMesh().hasThinInstances) {\n defines.setValue(\"THIN_INSTANCES\", !!subMesh?.getRenderingMesh().hasThinInstances);\n changed = true;\n }\n if (changed) {\n defines.markAsUnprocessed();\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const engine = state.sharedData.scene.getEngine();\n // Register for defines\n state.sharedData.blocksWithDefines.push(this);\n // Emit code\n const output = this._outputs[0];\n const instanceID = this._outputs[1];\n const world0 = this.world0;\n const world1 = this.world1;\n const world2 = this.world2;\n const world3 = this.world3;\n let mat4 = \"mat4\";\n let instance = \"gl_InstanceID\";\n let floatCast = \"float\";\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n mat4 = \"mat4x4f\";\n instance = \"vertexInputs.instanceIndex\";\n floatCast = \"f32\";\n }\n state.compilationString += `#ifdef INSTANCES\\n`;\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${mat4}(${world0.associatedVariableName}, ${world1.associatedVariableName}, ${world2.associatedVariableName}, ${world3.associatedVariableName});\\n`;\n state.compilationString += `#ifdef THIN_INSTANCES\\n`;\n state.compilationString += `${output.associatedVariableName} = ${this.world.associatedVariableName} * ${output.associatedVariableName};\\n`;\n state.compilationString += `#endif\\n`;\n if (engine._caps.canUseGLInstanceID) {\n state.compilationString += state._declareOutput(instanceID) + ` = ${floatCast}(${instance});\\n`;\n }\n else {\n state.compilationString += state._declareOutput(instanceID) + ` = 0.0;\\n`;\n }\n state.compilationString += `#else\\n`;\n state.compilationString += state._declareOutput(output) + ` = ${this.world.associatedVariableName};\\n`;\n state.compilationString += state._declareOutput(instanceID) + ` = 0.0;\\n`;\n state.compilationString += `#endif\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.InstancesBlock\", InstancesBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { VertexBuffer } from \"../../../../Buffers/buffer.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { BindMorphTargetParameters, PrepareDefinesForMorphTargets } from \"../../../materialHelper.functions.js\";\n/**\n * Block used to add morph targets support to vertex shader\n */\nexport class MorphTargetsBlock extends NodeMaterialBlock {\n /**\n * Create a new MorphTargetsBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"position\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"normal\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"tangent\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.tangent.addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color4 | NodeMaterialBlockConnectionPointTypes.Vector4 | NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"uv\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"positionOutput\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"normalOutput\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"tangentOutput\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"uvOutput\", NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MorphTargetsBlock\";\n }\n /**\n * Gets the position input component\n */\n get position() {\n return this._inputs[0];\n }\n /**\n * Gets the normal input component\n */\n get normal() {\n return this._inputs[1];\n }\n /**\n * Gets the tangent input component\n */\n get tangent() {\n return this._inputs[2];\n }\n /**\n * Gets the tangent input component\n */\n get uv() {\n return this._inputs[3];\n }\n /**\n * Gets the position output component\n */\n get positionOutput() {\n return this._outputs[0];\n }\n /**\n * Gets the normal output component\n */\n get normalOutput() {\n return this._outputs[1];\n }\n /**\n * Gets the tangent output component\n */\n get tangentOutput() {\n return this._outputs[2];\n }\n /**\n * Gets the tangent output component\n */\n get uvOutput() {\n return this._outputs[3];\n }\n initialize(state) {\n state._excludeVariableName(\"morphTargetInfluences\");\n this._initShaderSourceAsync(state.shaderLanguage);\n }\n async _initShaderSourceAsync(shaderLanguage) {\n this._codeIsReady = false;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([\n import(\"../../../../ShadersWGSL/ShadersInclude/morphTargetsVertex.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js\"),\n ]);\n }\n else {\n await Promise.all([\n import(\"../../../../Shaders/ShadersInclude/morphTargetsVertex.js\"),\n import(\"../../../../Shaders/ShadersInclude/morphTargetsVertexDeclaration.js\"),\n import(\"../../../../Shaders/ShadersInclude/morphTargetsVertexGlobal.js\"),\n import(\"../../../../Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js\"),\n ]);\n }\n this._codeIsReady = true;\n this.onCodeIsReadyObservable.notifyObservers(this);\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.position.isConnected) {\n let positionInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"position\" && additionalFilteringInfo(b));\n if (!positionInput) {\n positionInput = new InputBlock(\"position\");\n positionInput.setAsAttribute();\n }\n positionInput.output.connectTo(this.position);\n }\n if (!this.normal.isConnected) {\n let normalInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"normal\" && additionalFilteringInfo(b));\n if (!normalInput) {\n normalInput = new InputBlock(\"normal\");\n normalInput.setAsAttribute(\"normal\");\n }\n normalInput.output.connectTo(this.normal);\n }\n if (!this.tangent.isConnected) {\n let tangentInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"tangent\" && additionalFilteringInfo(b));\n if (!tangentInput) {\n tangentInput = new InputBlock(\"tangent\");\n tangentInput.setAsAttribute(\"tangent\");\n }\n tangentInput.output.connectTo(this.tangent);\n }\n if (!this.uv.isConnected) {\n let uvInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"uv\" && additionalFilteringInfo(b));\n if (!uvInput) {\n uvInput = new InputBlock(\"uv\");\n uvInput.setAsAttribute(\"uv\");\n }\n uvInput.output.connectTo(this.uv);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n if (mesh.morphTargetManager) {\n const morphTargetManager = mesh.morphTargetManager;\n if (morphTargetManager?.isUsingTextureForTargets && (morphTargetManager.numMaxInfluencers || morphTargetManager.numInfluencers) !== defines[\"NUM_MORPH_INFLUENCERS\"]) {\n defines.markAsAttributesDirty();\n }\n }\n if (!defines._areAttributesDirty) {\n return;\n }\n PrepareDefinesForMorphTargets(mesh, defines);\n }\n bind(effect, nodeMaterial, mesh) {\n if (mesh && mesh.morphTargetManager && mesh.morphTargetManager.numInfluencers > 0) {\n BindMorphTargetParameters(mesh, effect);\n if (mesh.morphTargetManager.isUsingTextureForTargets) {\n mesh.morphTargetManager._bind(effect);\n }\n }\n }\n replaceRepeatableContent(vertexShaderState, fragmentShaderState, mesh, defines) {\n const position = this.position;\n const normal = this.normal;\n const tangent = this.tangent;\n const uv = this.uv;\n const positionOutput = this.positionOutput;\n const normalOutput = this.normalOutput;\n const tangentOutput = this.tangentOutput;\n const uvOutput = this.uvOutput;\n const state = vertexShaderState;\n const repeatCount = defines.NUM_MORPH_INFLUENCERS;\n const manager = mesh.morphTargetManager;\n const hasNormals = manager && manager.supportsNormals && defines[\"NORMAL\"];\n const hasTangents = manager && manager.supportsTangents && defines[\"TANGENT\"];\n const hasUVs = manager && manager.supportsUVs && defines[\"UV1\"];\n let injectionCode = \"\";\n if (manager?.isUsingTextureForTargets && repeatCount > 0) {\n injectionCode += `${state._declareLocalVar(\"vertexID\", NodeMaterialBlockConnectionPointTypes.Float)};\\n`;\n }\n injectionCode += `#ifdef MORPHTARGETS\\n`;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n const uniformsPrefix = isWebGPU ? \"uniforms.\" : \"\";\n if (manager?.isUsingTextureForTargets) {\n injectionCode += `for (${isWebGPU ? \"var\" : \"int\"} i = 0; i < NUM_MORPH_INFLUENCERS; i++) {\\n`;\n injectionCode += `if (i >= ${uniformsPrefix}morphTargetCount) { break; }\\n`;\n injectionCode += `vertexID = ${isWebGPU ? \"f32(vertexInputs.vertexIndex\" : \"float(gl_VertexID\"}) * ${uniformsPrefix}morphTargetTextureInfo.x;\\n`;\n injectionCode += `${positionOutput.associatedVariableName} += (readVector3FromRawSampler(i, vertexID) - ${position.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[i];\\n`;\n injectionCode += `vertexID += 1.0;\\n`;\n if (hasNormals) {\n injectionCode += `#ifdef MORPHTARGETS_NORMAL\\n`;\n injectionCode += `${normalOutput.associatedVariableName} += (readVector3FromRawSampler(i, vertexID) - ${normal.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[i];\\n`;\n injectionCode += `vertexID += 1.0;\\n`;\n injectionCode += `#endif\\n`;\n }\n if (hasUVs) {\n injectionCode += `#ifdef MORPHTARGETS_UV\\n`;\n injectionCode += `${uvOutput.associatedVariableName} += (readVector3FromRawSampler(i, vertexID).xy - ${uv.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[i];\\n`;\n injectionCode += `vertexID += 1.0;\\n`;\n injectionCode += `#endif\\n`;\n }\n if (hasTangents) {\n injectionCode += `#ifdef MORPHTARGETS_TANGENT\\n`;\n injectionCode += `${tangentOutput.associatedVariableName}.xyz += (readVector3FromRawSampler(i, vertexID) - ${tangent.associatedVariableName}.xyz) * ${uniformsPrefix}morphTargetInfluences[i];\\n`;\n if (tangent.type === NodeMaterialBlockConnectionPointTypes.Vector4) {\n injectionCode += `${tangentOutput.associatedVariableName}.w = ${tangent.associatedVariableName}.w;\\n`;\n }\n else {\n injectionCode += `${tangentOutput.associatedVariableName}.w = 1.;\\n`;\n }\n injectionCode += `#endif\\n`;\n }\n injectionCode += \"}\\n\";\n }\n else {\n for (let index = 0; index < repeatCount; index++) {\n injectionCode += `${positionOutput.associatedVariableName} += (position${index} - ${position.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[${index}];\\n`;\n if (hasNormals) {\n injectionCode += `#ifdef MORPHTARGETS_NORMAL\\n`;\n injectionCode += `${normalOutput.associatedVariableName} += (normal${index} - ${normal.associatedVariableName}) * ${uniformsPrefix}morphTargetInfluences[${index}];\\n`;\n injectionCode += `#endif\\n`;\n }\n if (hasUVs) {\n injectionCode += `#ifdef MORPHTARGETS_UV\\n`;\n injectionCode += `${uvOutput.associatedVariableName}.xy += (uv_${index} - ${uv.associatedVariableName}.xy) * ${uniformsPrefix}morphTargetInfluences[${index}];\\n`;\n injectionCode += `#endif\\n`;\n }\n if (hasTangents) {\n injectionCode += `#ifdef MORPHTARGETS_TANGENT\\n`;\n injectionCode += `${tangentOutput.associatedVariableName}.xyz += (tangent${index} - ${tangent.associatedVariableName}.xyz) * ${uniformsPrefix}morphTargetInfluences[${index}];\\n`;\n if (tangent.type === NodeMaterialBlockConnectionPointTypes.Vector4) {\n injectionCode += `${tangentOutput.associatedVariableName}.w = ${tangent.associatedVariableName}.w;\\n`;\n }\n else {\n injectionCode += `${tangentOutput.associatedVariableName}.w = 1.;\\n`;\n }\n injectionCode += `#endif\\n`;\n }\n }\n }\n injectionCode += `#endif\\n`;\n state.compilationString = state.compilationString.replace(this._repeatableContentAnchor, injectionCode);\n if (repeatCount > 0) {\n for (let index = 0; index < repeatCount; index++) {\n state.attributes.push(VertexBuffer.PositionKind + index);\n if (hasNormals) {\n state.attributes.push(VertexBuffer.NormalKind + index);\n }\n if (hasTangents) {\n state.attributes.push(VertexBuffer.TangentKind + index);\n }\n if (hasUVs) {\n state.attributes.push(VertexBuffer.UVKind + \"_\" + index);\n }\n }\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n // Register for defines\n state.sharedData.blocksWithDefines.push(this);\n // Register for binding\n state.sharedData.bindableBlocks.push(this);\n // Register for repeatable content generation\n state.sharedData.repeatableContentBlocks.push(this);\n // Emit code\n const position = this.position;\n const normal = this.normal;\n const tangent = this.tangent;\n const uv = this.uv;\n const positionOutput = this.positionOutput;\n const normalOutput = this.normalOutput;\n const tangentOutput = this.tangentOutput;\n const uvOutput = this.uvOutput;\n const comments = `//${this.name}`;\n state.uniforms.push(\"morphTargetInfluences\");\n state.uniforms.push(\"morphTargetCount\");\n state.uniforms.push(\"morphTargetTextureInfo\");\n state.uniforms.push(\"morphTargetTextureIndices\");\n state.samplers.push(\"morphTargets\");\n state._emitFunctionFromInclude(\"morphTargetsVertexGlobalDeclaration\", comments);\n state._emitFunctionFromInclude(\"morphTargetsVertexDeclaration\", comments, {\n repeatKey: \"maxSimultaneousMorphTargets\",\n });\n state.compilationString += `${state._declareOutput(positionOutput)} = ${position.associatedVariableName};\\n`;\n state.compilationString += `#ifdef NORMAL\\n`;\n state.compilationString += `${state._declareOutput(normalOutput)} = ${normal.associatedVariableName};\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += `${state._declareOutput(normalOutput)} = vec3(0., 0., 0.);\\n`;\n state.compilationString += `#endif\\n`;\n state.compilationString += `#ifdef TANGENT\\n`;\n state.compilationString += `${state._declareOutput(tangentOutput)} = ${tangent.associatedVariableName};\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += `${state._declareOutput(tangentOutput)} = vec4(0., 0., 0., 0.);\\n`;\n state.compilationString += `#endif\\n`;\n state.compilationString += `#ifdef UV1\\n`;\n state.compilationString += `${state._declareOutput(uvOutput)} = ${uv.associatedVariableName};\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += `${state._declareOutput(uvOutput)} = vec2(0., 0.);\\n`;\n state.compilationString += `#endif\\n`;\n // Repeatable content\n this._repeatableContentAnchor = state._repeatableContentAnchor;\n state.compilationString += this._repeatableContentAnchor;\n return this;\n }\n}\nRegisterClass(\"BABYLON.MorphTargetsBlock\", MorphTargetsBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { PointLight } from \"../../../../Lights/pointLight.js\";\n/**\n * Block used to get data information from a light\n */\nexport class LightInformationBlock extends NodeMaterialBlock {\n /**\n * Creates a new LightInformationBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false, NodeMaterialBlockTargets.Vertex);\n this.registerOutput(\"direction\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"color\", NodeMaterialBlockConnectionPointTypes.Color3);\n this.registerOutput(\"intensity\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"shadowBias\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"shadowNormalBias\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"shadowDepthScale\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"shadowDepthRange\", NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"LightInformationBlock\";\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the direction output component\n */\n get direction() {\n return this._outputs[0];\n }\n /**\n * Gets the direction output component\n */\n get color() {\n return this._outputs[1];\n }\n /**\n * Gets the direction output component\n */\n get intensity() {\n return this._outputs[2];\n }\n /**\n * Gets the shadow bias output component\n */\n get shadowBias() {\n return this._outputs[3];\n }\n /**\n * Gets the shadow normal bias output component\n */\n get shadowNormalBias() {\n return this._outputs[4];\n }\n /**\n * Gets the shadow depth scale component\n */\n get shadowDepthScale() {\n return this._outputs[5];\n }\n /**\n * Gets the shadow depth range component\n */\n get shadowDepthRange() {\n return this._outputs[6];\n }\n bind(effect, nodeMaterial, mesh) {\n if (!mesh) {\n return;\n }\n if (this.light && this.light.isDisposed()) {\n this.light = null;\n }\n let light = this.light;\n const scene = nodeMaterial.getScene();\n if (!light && scene.lights.length) {\n light = this.light = scene.lights[0];\n this._forcePrepareDefines = true;\n }\n if (!light || !light.isEnabled) {\n effect.setFloat3(this._lightDataUniformName, 0, 0, 0);\n effect.setFloat4(this._lightColorUniformName, 0, 0, 0, 0);\n return;\n }\n light.transferToNodeMaterialEffect(effect, this._lightDataUniformName);\n effect.setColor4(this._lightColorUniformName, light.diffuse, light.intensity);\n const generator = light.getShadowGenerator();\n if (this.shadowBias.hasEndpoints || this.shadowNormalBias.hasEndpoints || this.shadowDepthScale.hasEndpoints) {\n if (generator) {\n effect.setFloat3(this._lightShadowUniformName, generator.bias, generator.normalBias, generator.depthScale);\n }\n else {\n effect.setFloat3(this._lightShadowUniformName, 0, 0, 0);\n }\n }\n if (this.shadowDepthRange) {\n if (generator && scene.activeCamera) {\n const shadowLight = light;\n effect.setFloat2(this._lightShadowExtraUniformName, shadowLight.getDepthMinZ(scene.activeCamera), shadowLight.getDepthMinZ(scene.activeCamera) + shadowLight.getDepthMaxZ(scene.activeCamera));\n }\n else {\n effect.setFloat2(this._lightShadowExtraUniformName, 0, 0);\n }\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n if (!defines._areLightsDirty && !this._forcePrepareDefines) {\n return;\n }\n this._forcePrepareDefines = false;\n const light = this.light;\n defines.setValue(this._lightTypeDefineName, light && light instanceof PointLight ? true : false, true);\n }\n _buildBlock(state) {\n super._buildBlock(state);\n state.sharedData.bindableBlocks.push(this);\n state.sharedData.blocksWithDefines.push(this);\n const direction = this.direction;\n const color = this.color;\n const intensity = this.intensity;\n const shadowBias = this.shadowBias;\n const shadowNormalBias = this.shadowNormalBias;\n const shadowDepthScale = this.shadowDepthScale;\n const shadowDepthRange = this.shadowDepthRange;\n this._lightDataUniformName = state._getFreeVariableName(\"lightData\");\n this._lightColorUniformName = state._getFreeVariableName(\"lightColor\");\n this._lightShadowUniformName = state._getFreeVariableName(\"shadowData\");\n this._lightShadowExtraUniformName = state._getFreeVariableName(\"shadowExtraData\");\n this._lightTypeDefineName = state._getFreeDefineName(\"LIGHTPOINTTYPE\");\n const uniformAdd = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"uniforms.\" : \"\";\n state._emitUniformFromString(this._lightDataUniformName, NodeMaterialBlockConnectionPointTypes.Vector3);\n state._emitUniformFromString(this._lightColorUniformName, NodeMaterialBlockConnectionPointTypes.Vector4);\n state.compilationString += `#ifdef ${this._lightTypeDefineName}\\n`;\n state.compilationString +=\n state._declareOutput(direction) + ` = normalize(${this.worldPosition.associatedVariableName}.xyz - ${uniformAdd}${this._lightDataUniformName});\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += state._declareOutput(direction) + ` = ${uniformAdd}${this._lightDataUniformName};\\n`;\n state.compilationString += `#endif\\n`;\n state.compilationString += state._declareOutput(color) + ` = ${uniformAdd}${this._lightColorUniformName}.rgb;\\n`;\n state.compilationString += state._declareOutput(intensity) + ` = ${uniformAdd}${this._lightColorUniformName}.a;\\n`;\n if (shadowBias.hasEndpoints || shadowNormalBias.hasEndpoints || shadowDepthScale.hasEndpoints) {\n state._emitUniformFromString(this._lightShadowUniformName, NodeMaterialBlockConnectionPointTypes.Vector3);\n if (shadowBias.hasEndpoints) {\n state.compilationString += state._declareOutput(shadowBias) + ` = ${uniformAdd}${this._lightShadowUniformName}.x;\\n`;\n }\n if (shadowNormalBias.hasEndpoints) {\n state.compilationString += state._declareOutput(shadowNormalBias) + ` = ${uniformAdd}${this._lightShadowUniformName}.y;\\n`;\n }\n if (shadowDepthScale.hasEndpoints) {\n state.compilationString += state._declareOutput(shadowDepthScale) + ` = ${uniformAdd}${this._lightShadowUniformName}.z;\\n`;\n }\n }\n if (shadowDepthRange.hasEndpoints) {\n state._emitUniformFromString(this._lightShadowExtraUniformName, NodeMaterialBlockConnectionPointTypes.Vector2);\n state.compilationString += state._declareOutput(shadowDepthRange) + ` = ${this._lightShadowUniformName};\\n`;\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n if (this.light) {\n serializationObject.lightId = this.light.id;\n }\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n if (serializationObject.lightId) {\n this.light = scene.getLightById(serializationObject.lightId);\n }\n }\n}\nRegisterClass(\"BABYLON.LightInformationBlock\", LightInformationBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to add image processing support to fragment shader\n */\nexport class ImageProcessingBlock extends NodeMaterialBlock {\n /**\n * Create a new ImageProcessingBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n /**\n * Defines if the input should be converted to linear space (default: true)\n */\n this.convertInputToLinearSpace = true;\n this.registerInput(\"color\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Color4);\n this.registerOutput(\"rgb\", NodeMaterialBlockConnectionPointTypes.Color3);\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 |\n NodeMaterialBlockConnectionPointTypes.Color4 |\n NodeMaterialBlockConnectionPointTypes.Vector3 |\n NodeMaterialBlockConnectionPointTypes.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ImageProcessingBlock\";\n }\n /**\n * Gets the color input component\n */\n get color() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the rgb component\n */\n get rgb() {\n return this._outputs[1];\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"exposureLinear\");\n state._excludeVariableName(\"contrast\");\n state._excludeVariableName(\"vInverseScreenSize\");\n state._excludeVariableName(\"vignetteSettings1\");\n state._excludeVariableName(\"vignetteSettings2\");\n state._excludeVariableName(\"vCameraColorCurveNegative\");\n state._excludeVariableName(\"vCameraColorCurveNeutral\");\n state._excludeVariableName(\"vCameraColorCurvePositive\");\n state._excludeVariableName(\"txColorTransform\");\n state._excludeVariableName(\"colorTransformSettings\");\n state._excludeVariableName(\"ditherIntensity\");\n this._initShaderSourceAsync(state.shaderLanguage);\n }\n async _initShaderSourceAsync(shaderLanguage) {\n this._codeIsReady = false;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([\n import(\"../../../../ShadersWGSL/ShadersInclude/helperFunctions.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/imageProcessingFunctions.js\"),\n ]);\n }\n else {\n await Promise.all([\n import(\"../../../../Shaders/ShadersInclude/helperFunctions.js\"),\n import(\"../../../../Shaders/ShadersInclude/imageProcessingDeclaration.js\"),\n import(\"../../../../Shaders/ShadersInclude/imageProcessingFunctions.js\"),\n ]);\n }\n this._codeIsReady = true;\n this.onCodeIsReadyObservable.notifyObservers(this);\n }\n isReady(mesh, nodeMaterial, defines) {\n if (defines._areImageProcessingDirty && nodeMaterial.imageProcessingConfiguration) {\n if (!nodeMaterial.imageProcessingConfiguration.isReady()) {\n return false;\n }\n }\n return true;\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n if (defines._areImageProcessingDirty && nodeMaterial.imageProcessingConfiguration) {\n nodeMaterial.imageProcessingConfiguration.prepareDefines(defines);\n }\n }\n bind(effect, nodeMaterial, mesh) {\n if (!mesh) {\n return;\n }\n if (!nodeMaterial.imageProcessingConfiguration) {\n return;\n }\n nodeMaterial.imageProcessingConfiguration.bind(effect);\n }\n _buildBlock(state) {\n super._buildBlock(state);\n // Register for defines\n state.sharedData.blocksWithDefines.push(this);\n // Register for blocking\n state.sharedData.blockingBlocks.push(this);\n // Register for binding\n state.sharedData.bindableBlocks.push(this);\n // Uniforms\n state.uniforms.push(\"exposureLinear\");\n state.uniforms.push(\"contrast\");\n state.uniforms.push(\"vInverseScreenSize\");\n state.uniforms.push(\"vignetteSettings1\");\n state.uniforms.push(\"vignetteSettings2\");\n state.uniforms.push(\"vCameraColorCurveNegative\");\n state.uniforms.push(\"vCameraColorCurveNeutral\");\n state.uniforms.push(\"vCameraColorCurvePositive\");\n state.uniforms.push(\"txColorTransform\");\n state.uniforms.push(\"colorTransformSettings\");\n state.uniforms.push(\"ditherIntensity\");\n // Emit code\n const color = this.color;\n const output = this._outputs[0];\n const comments = `//${this.name}`;\n const overrideText = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"Vec3\" : \"\";\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\n state._emitFunctionFromInclude(\"imageProcessingDeclaration\", comments);\n state._emitFunctionFromInclude(\"imageProcessingFunctions\", comments);\n if (color.connectedPoint?.isConnected) {\n if (color.connectedPoint.type === NodeMaterialBlockConnectionPointTypes.Color4 || color.connectedPoint.type === NodeMaterialBlockConnectionPointTypes.Vector4) {\n state.compilationString += `${state._declareOutput(output)} = ${color.associatedVariableName};\\n`;\n }\n else {\n state.compilationString += `${state._declareOutput(output)} = vec4${state.fSuffix}(${color.associatedVariableName}, 1.0);\\n`;\n }\n state.compilationString += `#ifdef IMAGEPROCESSINGPOSTPROCESS\\n`;\n if (this.convertInputToLinearSpace) {\n state.compilationString += `${output.associatedVariableName} = vec4${state.fSuffix}(toLinearSpace${overrideText}(${color.associatedVariableName}.rgb), ${color.associatedVariableName}.a);\\n`;\n }\n state.compilationString += `#else\\n`;\n state.compilationString += `#ifdef IMAGEPROCESSING\\n`;\n if (this.convertInputToLinearSpace) {\n state.compilationString += `${output.associatedVariableName} = vec4${state.fSuffix}(toLinearSpace${overrideText}(${color.associatedVariableName}.rgb), ${color.associatedVariableName}.a);\\n`;\n }\n state.compilationString += `${output.associatedVariableName} = applyImageProcessing(${output.associatedVariableName});\\n`;\n state.compilationString += `#endif\\n`;\n state.compilationString += `#endif\\n`;\n if (this.rgb.hasEndpoints) {\n state.compilationString += state._declareOutput(this.rgb) + ` = ${this.output.associatedVariableName}.xyz;\\n`;\n }\n }\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.convertInputToLinearSpace = ${this.convertInputToLinearSpace};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.convertInputToLinearSpace = this.convertInputToLinearSpace;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.convertInputToLinearSpace = serializationObject.convertInputToLinearSpace ?? true;\n }\n}\n__decorate([\n editableInPropertyPage(\"Convert input to linear space\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\")\n], ImageProcessingBlock.prototype, \"convertInputToLinearSpace\", void 0);\nRegisterClass(\"BABYLON.ImageProcessingBlock\", ImageProcessingBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\nimport { NodeMaterialSystemValues } from \"../../Enums/nodeMaterialSystemValues.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\n/**\n * Block used to implement TBN matrix\n */\nexport class TBNBlock extends NodeMaterialBlock {\n /**\n * Create a new TBNBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment, true);\n this.registerInput(\"normal\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false);\n this.normal.addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color4 | NodeMaterialBlockConnectionPointTypes.Vector4 | NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"tangent\", NodeMaterialBlockConnectionPointTypes.Vector4, false);\n this.registerInput(\"world\", NodeMaterialBlockConnectionPointTypes.Matrix, false);\n this.registerOutput(\"TBN\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"TBN\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, TBNBlock, \"TBNBlock\"));\n this.registerOutput(\"row0\", NodeMaterialBlockConnectionPointTypes.Vector3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"row1\", NodeMaterialBlockConnectionPointTypes.Vector3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"row2\", NodeMaterialBlockConnectionPointTypes.Vector3, NodeMaterialBlockTargets.Fragment);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TBNBlock\";\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"tbnNormal\");\n state._excludeVariableName(\"tbnTangent\");\n state._excludeVariableName(\"tbnBitangent\");\n state._excludeVariableName(\"TBN\");\n }\n /**\n * Gets the normal input component\n */\n get normal() {\n return this._inputs[0];\n }\n /**\n * Gets the tangent input component\n */\n get tangent() {\n return this._inputs[1];\n }\n /**\n * Gets the world matrix input component\n */\n get world() {\n return this._inputs[2];\n }\n /**\n * Gets the TBN output component\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get TBN() {\n return this._outputs[0];\n }\n /**\n * Gets the row0 of the output matrix\n */\n get row0() {\n return this._outputs[1];\n }\n /**\n * Gets the row1 of the output matrix\n */\n get row1() {\n return this._outputs[2];\n }\n /**\n * Gets the row2 of the output matrix\n */\n get row2() {\n return this._outputs[3];\n }\n get target() {\n return NodeMaterialBlockTargets.Fragment;\n }\n set target(value) { }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.world.isConnected) {\n let worldInput = material.getInputBlockByPredicate((b) => b.isSystemValue && b.systemValue === NodeMaterialSystemValues.World && additionalFilteringInfo(b));\n if (!worldInput) {\n worldInput = new InputBlock(\"world\");\n worldInput.setAsSystemValue(NodeMaterialSystemValues.World);\n }\n worldInput.output.connectTo(this.world);\n }\n if (!this.normal.isConnected) {\n let normalInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"normal\" && additionalFilteringInfo(b));\n if (!normalInput) {\n normalInput = new InputBlock(\"normal\");\n normalInput.setAsAttribute(\"normal\");\n }\n normalInput.output.connectTo(this.normal);\n }\n if (!this.tangent.isConnected) {\n let tangentInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"tangent\" && b.type === NodeMaterialBlockConnectionPointTypes.Vector4 && additionalFilteringInfo(b));\n if (!tangentInput) {\n tangentInput = new InputBlock(\"tangent\");\n tangentInput.setAsAttribute(\"tangent\");\n }\n tangentInput.output.connectTo(this.tangent);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n const normal = this.normal;\n const tangent = this.tangent;\n let normalAvailable = normal.isConnected;\n if (normal.connectInputBlock?.isAttribute && !mesh.isVerticesDataPresent(normal.connectInputBlock?.name)) {\n normalAvailable = false;\n }\n let tangentAvailable = tangent.isConnected;\n if (tangent.connectInputBlock?.isAttribute && !mesh.isVerticesDataPresent(tangent.connectInputBlock?.name)) {\n tangentAvailable = false;\n }\n const useTBNBlock = normalAvailable && tangentAvailable;\n defines.setValue(\"TBNBLOCK\", useTBNBlock, true);\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const normal = this.normal;\n const tangent = this.tangent;\n const world = this.world;\n const TBN = this.TBN;\n const row0 = this.row0;\n const row1 = this.row1;\n const row2 = this.row2;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n const mat3 = isWebGPU ? \"mat3x3f\" : \"mat3\";\n const fSuffix = isWebGPU ? \"f\" : \"\";\n // Fragment\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n state.compilationString += `\r\n // ${this.name}\r\n ${state._declareLocalVar(\"tbnNormal\", NodeMaterialBlockConnectionPointTypes.Vector3)} = normalize(${normal.associatedVariableName}).xyz;\r\n ${state._declareLocalVar(\"tbnTangent\", NodeMaterialBlockConnectionPointTypes.Vector3)} = normalize(${tangent.associatedVariableName}.xyz);\r\n ${state._declareLocalVar(\"tbnBitangent\", NodeMaterialBlockConnectionPointTypes.Vector3)} = cross(tbnNormal, tbnTangent) * ${tangent.associatedVariableName}.w;\r\n ${isWebGPU ? \"var\" : \"mat3\"} ${TBN.associatedVariableName} = ${mat3}(${world.associatedVariableName}[0].xyz, ${world.associatedVariableName}[1].xyz, ${world.associatedVariableName}[2].xyz) * ${mat3}(tbnTangent, tbnBitangent, tbnNormal);\r\n `;\n if (row0.hasEndpoints) {\n state.compilationString +=\n state._declareOutput(row0) +\n ` = vec3${fSuffix}(${TBN.associatedVariableName}[0][0], ${TBN.associatedVariableName}[0][1], ${TBN.associatedVariableName}[0][2]);\\n`;\n }\n if (row1.hasEndpoints) {\n state.compilationString +=\n state._declareOutput(row1) +\n ` = vec3${fSuffix}(${TBN.associatedVariableName}[1[0], ${TBN.associatedVariableName}[1][1], ${TBN.associatedVariableName}[1][2]);\\n`;\n }\n if (row2.hasEndpoints) {\n state.compilationString +=\n state._declareOutput(row2) +\n ` = vec3${fSuffix}(${TBN.associatedVariableName}[2][0], ${TBN.associatedVariableName}[2][1], ${TBN.associatedVariableName}[2][2]);\\n`;\n }\n state.sharedData.blocksWithDefines.push(this);\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.TBNBlock\", TBNBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\nimport { TBNBlock } from \"./TBNBlock.js\";\n\n/**\n * Block used to perturb normals based on a normal map\n */\nexport class PerturbNormalBlock extends NodeMaterialBlock {\n /**\n * Create a new PerturbNormalBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this._tangentSpaceParameterName = \"\";\n this._tangentCorrectionFactorName = \"\";\n this._worldMatrixName = \"\";\n /** Gets or sets a boolean indicating that normal should be inverted on X axis */\n this.invertX = false;\n /** Gets or sets a boolean indicating that normal should be inverted on Y axis */\n this.invertY = false;\n /** Gets or sets a boolean indicating that parallax occlusion should be enabled */\n this.useParallaxOcclusion = false;\n /** Gets or sets a boolean indicating that sampling mode is in Object space */\n this.useObjectSpaceNormalMap = false;\n this._isUnique = true;\n // Vertex\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false);\n this.registerInput(\"worldNormal\", NodeMaterialBlockConnectionPointTypes.Vector4, false);\n this.registerInput(\"worldTangent\", NodeMaterialBlockConnectionPointTypes.Vector4, true);\n this.registerInput(\"uv\", NodeMaterialBlockConnectionPointTypes.Vector2, false);\n this.registerInput(\"normalMapColor\", NodeMaterialBlockConnectionPointTypes.Color3, false);\n this.registerInput(\"strength\", NodeMaterialBlockConnectionPointTypes.Float, false);\n this.registerInput(\"viewDirection\", NodeMaterialBlockConnectionPointTypes.Vector3, true);\n this.registerInput(\"parallaxScale\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"parallaxHeight\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"TBN\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"TBN\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, TBNBlock, \"TBNBlock\"));\n this.registerInput(\"world\", NodeMaterialBlockConnectionPointTypes.Matrix, true);\n // Fragment\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"uvOffset\", NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PerturbNormalBlock\";\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[1];\n }\n /**\n * Gets the world tangent input component\n */\n get worldTangent() {\n return this._inputs[2];\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[3];\n }\n /**\n * Gets the normal map color input component\n */\n get normalMapColor() {\n return this._inputs[4];\n }\n /**\n * Gets the strength input component\n */\n get strength() {\n return this._inputs[5];\n }\n /**\n * Gets the view direction input component\n */\n get viewDirection() {\n return this._inputs[6];\n }\n /**\n * Gets the parallax scale input component\n */\n get parallaxScale() {\n return this._inputs[7];\n }\n /**\n * Gets the parallax height input component\n */\n get parallaxHeight() {\n return this._inputs[8];\n }\n /**\n * Gets the TBN input component\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get TBN() {\n return this._inputs[9];\n }\n /**\n * Gets the World input component\n */\n get world() {\n return this._inputs[10];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the uv offset output component\n */\n get uvOffset() {\n return this._outputs[1];\n }\n initialize(state) {\n this._initShaderSourceAsync(state.shaderLanguage);\n }\n async _initShaderSourceAsync(shaderLanguage) {\n this._codeIsReady = false;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([\n import(\"../../../../ShadersWGSL/ShadersInclude/bumpFragment.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/bumpFragmentFunctions.js\"),\n ]);\n }\n else {\n await Promise.all([\n import(\"../../../../Shaders/ShadersInclude/bumpFragment.js\"),\n import(\"../../../../Shaders/ShadersInclude/bumpFragmentMainFunctions.js\"),\n import(\"../../../../Shaders/ShadersInclude/bumpFragmentFunctions.js\"),\n ]);\n }\n this._codeIsReady = true;\n this.onCodeIsReadyObservable.notifyObservers(this);\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n const normalSamplerName = this.normalMapColor.connectedPoint._ownerBlock.samplerName;\n const useParallax = this.viewDirection.isConnected && ((this.useParallaxOcclusion && normalSamplerName) || (!this.useParallaxOcclusion && this.parallaxHeight.isConnected));\n defines.setValue(\"BUMP\", true);\n defines.setValue(\"PARALLAX\", useParallax, true);\n defines.setValue(\"PARALLAX_RHS\", nodeMaterial.getScene().useRightHandedSystem, true);\n defines.setValue(\"PARALLAXOCCLUSION\", this.useParallaxOcclusion, true);\n defines.setValue(\"OBJECTSPACE_NORMALMAP\", this.useObjectSpaceNormalMap, true);\n }\n bind(effect, nodeMaterial, mesh) {\n if (nodeMaterial.getScene()._mirroredCameraPosition) {\n effect.setFloat2(this._tangentSpaceParameterName, this.invertX ? 1.0 : -1.0, this.invertY ? 1.0 : -1.0);\n }\n else {\n effect.setFloat2(this._tangentSpaceParameterName, this.invertX ? -1.0 : 1.0, this.invertY ? -1.0 : 1.0);\n }\n if (mesh) {\n effect.setFloat(this._tangentCorrectionFactorName, mesh.getWorldMatrix().determinant() < 0 ? -1 : 1);\n if (this.useObjectSpaceNormalMap && !this.world.isConnected) {\n // World default to the mesh world matrix\n effect.setMatrix(this._worldMatrixName, mesh.getWorldMatrix());\n }\n }\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.uv.isConnected) {\n let uvInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"uv\" && additionalFilteringInfo(b));\n if (!uvInput) {\n uvInput = new InputBlock(\"uv\");\n uvInput.setAsAttribute();\n }\n uvInput.output.connectTo(this.uv);\n }\n if (!this.strength.isConnected) {\n const strengthInput = new InputBlock(\"strength\");\n strengthInput.value = 1.0;\n strengthInput.output.connectTo(this.strength);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const comments = `//${this.name}`;\n const uv = this.uv;\n const worldPosition = this.worldPosition;\n const worldNormal = this.worldNormal;\n const worldTangent = this.worldTangent;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n const mat3 = isWebGPU ? \"mat3x3f\" : \"mat3\";\n const fSuffix = isWebGPU ? \"f\" : \"\";\n const uniformPrefix = isWebGPU ? \"uniforms.\" : \"\";\n state.sharedData.blocksWithDefines.push(this);\n state.sharedData.bindableBlocks.push(this);\n this._tangentSpaceParameterName = state._getFreeDefineName(\"tangentSpaceParameter\");\n state._emitUniformFromString(this._tangentSpaceParameterName, NodeMaterialBlockConnectionPointTypes.Vector2);\n this._tangentCorrectionFactorName = state._getFreeDefineName(\"tangentCorrectionFactor\");\n state._emitUniformFromString(this._tangentCorrectionFactorName, NodeMaterialBlockConnectionPointTypes.Float);\n this._worldMatrixName = state._getFreeDefineName(\"perturbNormalWorldMatrix\");\n state._emitUniformFromString(this._worldMatrixName, NodeMaterialBlockConnectionPointTypes.Matrix);\n let normalSamplerName = null;\n if (this.normalMapColor.connectedPoint) {\n normalSamplerName = this.normalMapColor.connectedPoint._ownerBlock.samplerName;\n }\n const useParallax = this.viewDirection.isConnected && ((this.useParallaxOcclusion && normalSamplerName) || (!this.useParallaxOcclusion && this.parallaxHeight.isConnected));\n const replaceForParallaxInfos = !this.parallaxScale.isConnectedToInputBlock\n ? \"0.05\"\n : this.parallaxScale.connectInputBlock.isConstant\n ? state._emitFloat(this.parallaxScale.connectInputBlock.value)\n : this.parallaxScale.associatedVariableName;\n const replaceForBumpInfos = this.strength.isConnectedToInputBlock && this.strength.connectInputBlock.isConstant\n ? `\\n#if !defined(NORMALXYSCALE)\\n1.0/\\n#endif\\n${state._emitFloat(this.strength.connectInputBlock.value)}`\n : `\\n#if !defined(NORMALXYSCALE)\\n1.0/\\n#endif\\n${this.strength.associatedVariableName}`;\n if (!isWebGPU) {\n state._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n }\n const tangentReplaceString = { search: /defined\\(TANGENT\\)/g, replace: worldTangent.isConnected ? \"defined(TANGENT)\" : \"defined(IGNORE)\" };\n const tbnVarying = { search: /varying mat3 vTBN;/g, replace: \"\" };\n const normalMatrixReplaceString = { search: /uniform mat4 normalMatrix;/g, replace: \"\" };\n const TBN = this.TBN;\n if (TBN.isConnected) {\n state.compilationString += `\r\n #ifdef TBNBLOCK\r\n ${isWebGPU ? \"var\" : \"mat3\"} vTBN = ${TBN.associatedVariableName};\r\n #endif\r\n `;\n }\n else if (worldTangent.isConnected) {\n state.compilationString += `${state._declareLocalVar(\"tbnNormal\", NodeMaterialBlockConnectionPointTypes.Vector3)} = normalize(${worldNormal.associatedVariableName}.xyz);\\n`;\n state.compilationString += `${state._declareLocalVar(\"tbnTangent\", NodeMaterialBlockConnectionPointTypes.Vector3)} = normalize(${worldTangent.associatedVariableName}.xyz);\\n`;\n state.compilationString += `${state._declareLocalVar(\"tbnBitangent\", NodeMaterialBlockConnectionPointTypes.Vector3)} = cross(tbnNormal, tbnTangent) * ${isWebGPU ? \"uniforms.\" : \"\"}${this._tangentCorrectionFactorName};\\n`;\n state.compilationString += `${isWebGPU ? \"var\" : \"mat3\"} vTBN = ${mat3}(tbnTangent, tbnBitangent, tbnNormal);\\n`;\n }\n let replaceStrings = [tangentReplaceString, tbnVarying, normalMatrixReplaceString];\n if (isWebGPU) {\n replaceStrings.push({ search: /varying vTBN0: vec3f;/g, replace: \"\" });\n replaceStrings.push({ search: /varying vTBN1: vec3f;/g, replace: \"\" });\n replaceStrings.push({ search: /varying vTBN2: vec3f;/g, replace: \"\" });\n }\n state._emitFunctionFromInclude(\"bumpFragmentMainFunctions\", comments, {\n replaceStrings: replaceStrings,\n });\n const replaceString0 = isWebGPU\n ? \"fn parallaxOcclusion(vViewDirCoT: vec3f, vNormalCoT: vec3f, texCoord: vec2f, parallaxScale:f32, bump: texture_2d, bumpSampler: sampler)\"\n : \"#define inline\\nvec2 parallaxOcclusion(vec3 vViewDirCoT, vec3 vNormalCoT, vec2 texCoord, float parallaxScale, sampler2D bumpSampler)\";\n const searchExp0 = isWebGPU\n ? /fn parallaxOcclusion\\(vViewDirCoT: vec3f,vNormalCoT: vec3f,texCoord: vec2f,parallaxScale: f32\\)/g\n : /vec2 parallaxOcclusion\\(vec3 vViewDirCoT,vec3 vNormalCoT,vec2 texCoord,float parallaxScale\\)/g;\n const replaceString1 = isWebGPU\n ? \"fn parallaxOffset(viewDir: vec3f, heightScale: f32, height_: f32)\"\n : \"vec2 parallaxOffset(vec3 viewDir, float heightScale, float height_)\";\n const searchExp1 = isWebGPU ? /fn parallaxOffset\\(viewDir: vec3f,heightScale: f32\\)/g : /vec2 parallaxOffset\\(vec3 viewDir,float heightScale\\)/g;\n state._emitFunctionFromInclude(\"bumpFragmentFunctions\", comments, {\n replaceStrings: [\n { search: /#include\\(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump\\)/g, replace: \"\" },\n { search: /uniform sampler2D bumpSampler;/g, replace: \"\" },\n {\n search: searchExp0,\n replace: replaceString0,\n },\n { search: searchExp1, replace: replaceString1 },\n { search: /texture.+?bumpSampler,vBumpUV\\)\\.w/g, replace: \"height_\" },\n ],\n });\n const normalRead = isWebGPU ? `textureSample(${normalSamplerName}, ${normalSamplerName + `Sampler`}` : `texture2D(${normalSamplerName}`;\n const uvForPerturbNormal = !useParallax || !normalSamplerName ? this.normalMapColor.associatedVariableName : `${normalRead}, ${uv.associatedVariableName} + uvOffset).xyz`;\n const tempOutput = state._getFreeVariableName(\"tempOutput\");\n state.compilationString += state._declareLocalVar(tempOutput, NodeMaterialBlockConnectionPointTypes.Vector3) + ` = vec3${fSuffix}(0.);\\n`;\n replaceStrings = [\n { search: new RegExp(`texture.+?bumpSampler${isWebGPU ? \"Sampler,fragmentInputs.\" : \",\"}vBumpUV\\\\)`, \"g\"), replace: `${uvForPerturbNormal}` },\n {\n search: /#define CUSTOM_FRAGMENT_BUMP_FRAGMENT/g,\n replace: `${state._declareLocalVar(\"normalMatrix\", NodeMaterialBlockConnectionPointTypes.Matrix)} = toNormalMatrix(${this.world.isConnected ? this.world.associatedVariableName : this._worldMatrixName});`,\n },\n {\n search: new RegExp(`perturbNormal\\\\(TBN,texture.+?bumpSampler${isWebGPU ? \"Sampler,fragmentInputs.\" : \",\"}vBumpUV\\\\+uvOffset\\\\).xyz,${isWebGPU ? \"uniforms.\" : \"\"}vBumpInfos.y\\\\)`, \"g\"),\n replace: `perturbNormal(TBN, ${uvForPerturbNormal}, vBumpInfos.y)`,\n },\n {\n search: /parallaxOcclusion\\(invTBN\\*-viewDirectionW,invTBN\\*normalW,vBumpUV,vBumpInfos.z\\)/g,\n replace: `parallaxOcclusion((invTBN * -viewDirectionW), (invTBN * normalW), vBumpUV, vBumpInfos.z, ${isWebGPU\n ? useParallax && this.useParallaxOcclusion\n ? `${normalSamplerName}, ${normalSamplerName + `Sampler`}`\n : \"bump, bumpSampler\"\n : useParallax && this.useParallaxOcclusion\n ? normalSamplerName\n : \"bumpSampler\"})`,\n },\n {\n search: /parallaxOffset\\(invTBN\\*viewDirectionW,vBumpInfos\\.z\\)/g,\n replace: `parallaxOffset(invTBN * viewDirectionW, vBumpInfos.z, ${useParallax ? this.parallaxHeight.associatedVariableName : \"0.\"})`,\n },\n { search: /vBumpInfos.y/g, replace: replaceForBumpInfos },\n { search: /vBumpInfos.z/g, replace: replaceForParallaxInfos },\n { search: /normalW=/g, replace: tempOutput + \" = \" },\n { search: /mat3\\(normalMatrix\\)\\*normalW/g, replace: `${mat3}(normalMatrix) * ` + tempOutput },\n { search: /normalW/g, replace: worldNormal.associatedVariableName + \".xyz\" },\n { search: /viewDirectionW/g, replace: useParallax ? this.viewDirection.associatedVariableName : `vec3${fSuffix}(0.)` },\n tangentReplaceString,\n ];\n if (isWebGPU) {\n replaceStrings.push({ search: /fragmentInputs.vBumpUV/g, replace: uv.associatedVariableName });\n replaceStrings.push({ search: /input.vPositionW/g, replace: worldPosition.associatedVariableName + \".xyz\" });\n replaceStrings.push({ search: /uniforms.vTangentSpaceParams/g, replace: uniformPrefix + this._tangentSpaceParameterName });\n replaceStrings.push({ search: /var TBN: mat3x3f=mat3x3\\(input.vTBN0,input.vTBN1,input.vTBN2\\);/g, replace: `var TBN = vTBN;` });\n }\n else {\n replaceStrings.push({ search: /vBumpUV/g, replace: uv.associatedVariableName });\n replaceStrings.push({ search: /vPositionW/g, replace: worldPosition.associatedVariableName + \".xyz\" });\n replaceStrings.push({ search: /vTangentSpaceParams/g, replace: uniformPrefix + this._tangentSpaceParameterName });\n }\n state.compilationString += state._emitCodeFromInclude(\"bumpFragment\", comments, {\n replaceStrings: replaceStrings,\n });\n state.compilationString += state._declareOutput(this.output) + ` = vec4${fSuffix}(${tempOutput}, 0.);\\n`;\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.invertX = ${this.invertX};\\n`;\n codeString += `${this._codeVariableName}.invertY = ${this.invertY};\\n`;\n codeString += `${this._codeVariableName}.useParallaxOcclusion = ${this.useParallaxOcclusion};\\n`;\n codeString += `${this._codeVariableName}.useObjectSpaceNormalMap = ${this.useObjectSpaceNormalMap};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.invertX = this.invertX;\n serializationObject.invertY = this.invertY;\n serializationObject.useParallaxOcclusion = this.useParallaxOcclusion;\n serializationObject.useObjectSpaceNormalMap = this.useObjectSpaceNormalMap;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.invertX = serializationObject.invertX;\n this.invertY = serializationObject.invertY;\n this.useParallaxOcclusion = !!serializationObject.useParallaxOcclusion;\n this.useObjectSpaceNormalMap = !!serializationObject.useObjectSpaceNormalMap;\n }\n}\n__decorate([\n editableInPropertyPage(\"Invert X axis\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { embedded: true, notifiers: { update: false } })\n], PerturbNormalBlock.prototype, \"invertX\", void 0);\n__decorate([\n editableInPropertyPage(\"Invert Y axis\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { embedded: true, notifiers: { update: false } })\n], PerturbNormalBlock.prototype, \"invertY\", void 0);\n__decorate([\n editableInPropertyPage(\"Use parallax occlusion\", 0 /* PropertyTypeForEdition.Boolean */, undefined, { embedded: true, notifiers: { update: false } })\n], PerturbNormalBlock.prototype, \"useParallaxOcclusion\", void 0);\n__decorate([\n editableInPropertyPage(\"Object Space Mode\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { embedded: true, notifiers: { update: false } })\n], PerturbNormalBlock.prototype, \"useObjectSpaceNormalMap\", void 0);\nRegisterClass(\"BABYLON.PerturbNormalBlock\", PerturbNormalBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Block used to discard a pixel if a value is smaller than a cutoff\n */\nexport class DiscardBlock extends NodeMaterialBlock {\n /**\n * Create a new DiscardBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment, true);\n this.registerInput(\"value\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"cutoff\", NodeMaterialBlockConnectionPointTypes.Float, true);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DiscardBlock\";\n }\n /**\n * Gets the color input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the cutoff input component\n */\n get cutoff() {\n return this._inputs[1];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n state.sharedData.hints.needAlphaTesting = true;\n if (!this.cutoff.isConnected || !this.value.isConnected) {\n return;\n }\n state.compilationString += `if (${this.value.associatedVariableName} < ${this.cutoff.associatedVariableName}) { discard; }\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.DiscardBlock\", DiscardBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Block used to test if the fragment shader is front facing\n */\nexport class FrontFacingBlock extends NodeMaterialBlock {\n /**\n * Creates a new FrontFacingBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FrontFacingBlock\";\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (state.target === NodeMaterialBlockTargets.Vertex) {\n // eslint-disable-next-line no-throw-literal\n throw \"FrontFacingBlock must only be used in a fragment shader\";\n }\n const output = this._outputs[0];\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${state._generateTernary(\"1.0\", \"0.0\", state.shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? \"gl_FrontFacing\" : \"fragmentInputs.frontFacing\")};\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.FrontFacingBlock\", FrontFacingBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Block used to get the derivative value on x and y of a given input\n */\nexport class DerivativeBlock extends NodeMaterialBlock {\n /**\n * Create a new DerivativeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false);\n this.registerOutput(\"dx\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this.registerOutput(\"dy\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._outputs[1]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DerivativeBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the derivative output on x\n */\n get dx() {\n return this._outputs[0];\n }\n /**\n * Gets the derivative output on y\n */\n get dy() {\n return this._outputs[1];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const dx = this._outputs[0];\n const dy = this._outputs[1];\n state._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n let dpdx = \"dFdx\";\n let dpdy = \"dFdy\";\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n dpdx = \"dpdx\";\n dpdy = \"dpdy\";\n }\n if (dx.hasEndpoints) {\n state.compilationString += state._declareOutput(dx) + ` = ${dpdx}(${this.input.associatedVariableName});\\n`;\n }\n if (dy.hasEndpoints) {\n state.compilationString += state._declareOutput(dy) + ` = ${dpdy}(${this.input.associatedVariableName});\\n`;\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.DerivativeBlock\", DerivativeBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Block used to make gl_FragCoord available\n */\nexport class FragCoordBlock extends NodeMaterialBlock {\n /**\n * Creates a new FragCoordBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"xy\", NodeMaterialBlockConnectionPointTypes.Vector2, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"xyz\", NodeMaterialBlockConnectionPointTypes.Vector3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"xyzw\", NodeMaterialBlockConnectionPointTypes.Vector4, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"x\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"y\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"z\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"w\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FragCoordBlock\";\n }\n /**\n * Gets the xy component\n */\n get xy() {\n return this._outputs[0];\n }\n /**\n * Gets the xyz component\n */\n get xyz() {\n return this._outputs[1];\n }\n /**\n * Gets the xyzw component\n */\n get xyzw() {\n return this._outputs[2];\n }\n /**\n * Gets the x component\n */\n get x() {\n return this._outputs[3];\n }\n /**\n * Gets the y component\n */\n get y() {\n return this._outputs[4];\n }\n /**\n * Gets the z component\n */\n get z() {\n return this._outputs[5];\n }\n /**\n * Gets the w component\n */\n get output() {\n return this._outputs[6];\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n writeOutputs(state) {\n let code = \"\";\n const coord = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"fragmentInputs.position\" : \"gl_FragCoord\";\n for (const output of this._outputs) {\n if (output.hasEndpoints) {\n code += `${state._declareOutput(output)} = ${coord}.${output.name};\\n`;\n }\n }\n return code;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (state.target === NodeMaterialBlockTargets.Vertex) {\n // eslint-disable-next-line no-throw-literal\n throw \"FragCoordBlock must only be used in a fragment shader\";\n }\n state.compilationString += this.writeOutputs(state);\n return this;\n }\n}\nRegisterClass(\"BABYLON.FragCoordBlock\", FragCoordBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Block used to get the screen sizes\n */\nexport class ScreenSizeBlock extends NodeMaterialBlock {\n /**\n * Creates a new ScreenSizeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"xy\", NodeMaterialBlockConnectionPointTypes.Vector2, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"x\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"y\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ScreenSizeBlock\";\n }\n /**\n * Gets the xy component\n */\n get xy() {\n return this._outputs[0];\n }\n /**\n * Gets the x component\n */\n get x() {\n return this._outputs[1];\n }\n /**\n * Gets the y component\n */\n get y() {\n return this._outputs[2];\n }\n bind(effect) {\n const engine = this._scene.getEngine();\n effect.setFloat2(this._varName, engine.getRenderWidth(), engine.getRenderHeight());\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n writeOutputs(state, varName) {\n let code = \"\";\n for (const output of this._outputs) {\n if (output.hasEndpoints) {\n code += `${state._declareOutput(output)} = ${varName}.${output.name};\\n`;\n }\n }\n return code;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._scene = state.sharedData.scene;\n if (state.target === NodeMaterialBlockTargets.Vertex) {\n // eslint-disable-next-line no-throw-literal\n throw \"ScreenSizeBlock must only be used in a fragment shader\";\n }\n state.sharedData.bindableBlocks.push(this);\n this._varName = state._getFreeVariableName(\"screenSize\");\n state._emitUniformFromString(this._varName, NodeMaterialBlockConnectionPointTypes.Vector2);\n const prefix = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"uniforms.\" : \"\";\n state.compilationString += this.writeOutputs(state, prefix + this._varName);\n return this;\n }\n}\nRegisterClass(\"BABYLON.ScreenSizeBlock\", ScreenSizeBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeMaterialSystemValues } from \"../../Enums/nodeMaterialSystemValues.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\n/**\n * Block used to transform a vector3 or a vector4 into screen space\n */\nexport class ScreenSpaceBlock extends NodeMaterialBlock {\n /**\n * Creates a new ScreenSpaceBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"vector\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"worldViewProjection\", NodeMaterialBlockConnectionPointTypes.Matrix);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"x\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"y\", NodeMaterialBlockConnectionPointTypes.Float);\n this.inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ScreenSpaceBlock\";\n }\n /**\n * Gets the vector input\n */\n get vector() {\n return this._inputs[0];\n }\n /**\n * Gets the worldViewProjection transform input\n */\n get worldViewProjection() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the x output component\n */\n get x() {\n return this._outputs[1];\n }\n /**\n * Gets the y output component\n */\n get y() {\n return this._outputs[2];\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.worldViewProjection.isConnected) {\n let worldViewProjectionInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.WorldViewProjection && additionalFilteringInfo(b));\n if (!worldViewProjectionInput) {\n worldViewProjectionInput = new InputBlock(\"worldViewProjection\");\n worldViewProjectionInput.setAsSystemValue(NodeMaterialSystemValues.WorldViewProjection);\n }\n worldViewProjectionInput.output.connectTo(this.worldViewProjection);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const vector = this.vector;\n const worldViewProjection = this.worldViewProjection;\n if (!vector.connectedPoint) {\n return;\n }\n const worldViewProjectionName = worldViewProjection.associatedVariableName;\n const tempVariableName = state._getFreeVariableName(\"screenSpaceTemp\");\n switch (vector.connectedPoint.type) {\n case NodeMaterialBlockConnectionPointTypes.Vector3:\n state.compilationString += `${state._declareLocalVar(tempVariableName, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${worldViewProjectionName} * vec4${state.fSuffix}(${vector.associatedVariableName}, 1.0);\\n`;\n break;\n case NodeMaterialBlockConnectionPointTypes.Vector4:\n state.compilationString += `${state._declareLocalVar(tempVariableName, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${worldViewProjectionName} * ${vector.associatedVariableName};\\n`;\n break;\n }\n state.compilationString += `${tempVariableName} = vec4${state.fSuffix}(${tempVariableName}.xy / ${tempVariableName}.w, ${tempVariableName}.zw);`;\n state.compilationString += `${tempVariableName} = vec4${state.fSuffix}(${tempVariableName}.xy * 0.5 + vec2${state.fSuffix}(0.5, 0.5), ${tempVariableName}.zw);`;\n if (this.output.hasEndpoints) {\n state.compilationString += state._declareOutput(this.output) + ` = ${tempVariableName}.xy;\\n`;\n }\n if (this.x.hasEndpoints) {\n state.compilationString += state._declareOutput(this.x) + ` = ${tempVariableName}.x;\\n`;\n }\n if (this.y.hasEndpoints) {\n state.compilationString += state._declareOutput(this.y) + ` = ${tempVariableName}.y;\\n`;\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.ScreenSpaceBlock\", ScreenSpaceBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { Vector2 } from \"../../../../Maths/math.vector.js\";\n/**\n * Block used to generate a twirl\n */\nexport class TwirlBlock extends NodeMaterialBlock {\n /**\n * Creates a new TwirlBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerInput(\"strength\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerInput(\"center\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerInput(\"offset\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"x\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"y\", NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TwirlBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the strength component\n */\n get strength() {\n return this._inputs[1];\n }\n /**\n * Gets the center component\n */\n get center() {\n return this._inputs[2];\n }\n /**\n * Gets the offset component\n */\n get offset() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the x output component\n */\n get x() {\n return this._outputs[1];\n }\n /**\n * Gets the y output component\n */\n get y() {\n return this._outputs[2];\n }\n autoConfigure() {\n if (!this.center.isConnected) {\n const centerInput = new InputBlock(\"center\");\n centerInput.value = new Vector2(0.5, 0.5);\n centerInput.output.connectTo(this.center);\n }\n if (!this.strength.isConnected) {\n const strengthInput = new InputBlock(\"strength\");\n strengthInput.value = 1.0;\n strengthInput.output.connectTo(this.strength);\n }\n if (!this.offset.isConnected) {\n const offsetInput = new InputBlock(\"offset\");\n offsetInput.value = new Vector2(0, 0);\n offsetInput.output.connectTo(this.offset);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const tempDelta = state._getFreeVariableName(\"delta\");\n const tempAngle = state._getFreeVariableName(\"angle\");\n const tempX = state._getFreeVariableName(\"x\");\n const tempY = state._getFreeVariableName(\"y\");\n const tempResult = state._getFreeVariableName(\"result\");\n state.compilationString += ` \r\n ${state._declareLocalVar(tempDelta, NodeMaterialBlockConnectionPointTypes.Vector2)} = ${this.input.associatedVariableName} - ${this.center.associatedVariableName};\r\n ${state._declareLocalVar(tempAngle, NodeMaterialBlockConnectionPointTypes.Float)} = ${this.strength.associatedVariableName} * length(${tempDelta});\r\n ${state._declareLocalVar(tempX, NodeMaterialBlockConnectionPointTypes.Float)} = cos(${tempAngle}) * ${tempDelta}.x - sin(${tempAngle}) * ${tempDelta}.y;\r\n ${state._declareLocalVar(tempY, NodeMaterialBlockConnectionPointTypes.Float)} = sin(${tempAngle}) * ${tempDelta}.x + cos(${tempAngle}) * ${tempDelta}.y;\r\n ${state._declareLocalVar(tempResult, NodeMaterialBlockConnectionPointTypes.Vector2)} = vec2(${tempX} + ${this.center.associatedVariableName}.x + ${this.offset.associatedVariableName}.x, ${tempY} + ${this.center.associatedVariableName}.y + ${this.offset.associatedVariableName}.y);\r\n `;\n if (this.output.hasEndpoints) {\n state.compilationString += state._declareOutput(this.output) + ` = ${tempResult};\\n`;\n }\n if (this.x.hasEndpoints) {\n state.compilationString += state._declareOutput(this.x) + ` = ${tempResult}.x;\\n`;\n }\n if (this.y.hasEndpoints) {\n state.compilationString += state._declareOutput(this.y) + ` = ${tempResult}.y;\\n`;\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.TwirlBlock\", TwirlBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { Logger } from \"../../../../Misc/logger.js\";\n/**\n * Block used to convert a height vector to a normal\n */\nexport class HeightToNormalBlock extends NodeMaterialBlock {\n /**\n * Creates a new HeightToNormalBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n /**\n * Defines if the output should be generated in world or tangent space.\n * Note that in tangent space the result is also scaled by 0.5 and offsetted by 0.5 so that it can directly be used as a PerturbNormal.normalMapColor input\n */\n this.generateInWorldSpace = false;\n /**\n * Defines that the worldNormal input will be normalized by the HeightToNormal block before being used\n */\n this.automaticNormalizationNormal = true;\n /**\n * Defines that the worldTangent input will be normalized by the HeightToNormal block before being used\n */\n this.automaticNormalizationTangent = true;\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"worldNormal\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"worldTangent\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"xyz\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this._inputs[3].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"HeightToNormalBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the position component\n */\n get worldPosition() {\n return this._inputs[1];\n }\n /**\n * Gets the normal component\n */\n get worldNormal() {\n return this._inputs[2];\n }\n /**\n * Gets the tangent component\n */\n get worldTangent() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the xyz component\n */\n get xyz() {\n return this._outputs[1];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n const fPrefix = state.fSuffix;\n if (!this.generateInWorldSpace && !this.worldTangent.isConnected) {\n Logger.Error(`You must connect the 'worldTangent' input of the ${this.name} block!`);\n }\n const startCode = this.generateInWorldSpace\n ? \"\"\n : `\r\n vec3 biTangent = cross(norm, tgt);\r\n mat3 TBN = mat3(tgt, biTangent, norm);\r\n `;\n const endCode = this.generateInWorldSpace\n ? \"\"\n : `\r\n result = TBN * result;\r\n result = result * vec3(0.5) + vec3(0.5);\r\n `;\n let heightToNormal = `\r\n vec4 heightToNormal(float height, vec3 position, vec3 tangent, vec3 normal) {\r\n vec3 tgt = ${this.automaticNormalizationTangent ? \"normalize(tangent);\" : \"tangent;\"}\r\n vec3 norm = ${this.automaticNormalizationNormal ? \"normalize(normal);\" : \"normal;\"}\r\n ${startCode}\r\n vec3 worlddX = dFdx(position);\r\n vec3 worlddY = dFdy(position);\r\n vec3 crossX = cross(norm, worlddX);\r\n vec3 crossY = cross(worlddY, norm);\r\n float d = abs(dot(crossY, worlddX));\r\n vec3 inToNormal = vec3(((((height + dFdx(height)) - height) * crossY) + (((height + dFdy(height)) - height) * crossX)) * sign(d));\r\n inToNormal.y *= -1.0;\r\n vec3 result = normalize((d * norm) - inToNormal);\r\n ${endCode}\r\n return vec4(result, 0.);\r\n }`;\n if (isWebGPU) {\n heightToNormal = state._babylonSLtoWGSL(heightToNormal);\n }\n else {\n state._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n }\n state._emitFunction(\"heightToNormal\", heightToNormal, \"// heightToNormal\");\n state.compilationString +=\n state._declareOutput(output) +\n ` = heightToNormal(${this.input.associatedVariableName}, ${this.worldPosition.associatedVariableName}, ${this.worldTangent.isConnected ? this.worldTangent.associatedVariableName : `vec3${fPrefix}(0.)`}.xyz, ${this.worldNormal.associatedVariableName});\\n`;\n if (this.xyz.hasEndpoints) {\n state.compilationString += state._declareOutput(this.xyz) + ` = ${this.output.associatedVariableName}.xyz;\\n`;\n }\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.generateInWorldSpace = ${this.generateInWorldSpace};\\n`;\n codeString += `${this._codeVariableName}.automaticNormalizationNormal = ${this.automaticNormalizationNormal};\\n`;\n codeString += `${this._codeVariableName}.automaticNormalizationTangent = ${this.automaticNormalizationTangent};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.generateInWorldSpace = this.generateInWorldSpace;\n serializationObject.automaticNormalizationNormal = this.automaticNormalizationNormal;\n serializationObject.automaticNormalizationTangent = this.automaticNormalizationTangent;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.generateInWorldSpace = serializationObject.generateInWorldSpace;\n this.automaticNormalizationNormal = serializationObject.automaticNormalizationNormal;\n this.automaticNormalizationTangent = serializationObject.automaticNormalizationTangent;\n }\n}\n__decorate([\n editableInPropertyPage(\"Generate in world space instead of tangent space\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { notifiers: { update: true } })\n], HeightToNormalBlock.prototype, \"generateInWorldSpace\", void 0);\n__decorate([\n editableInPropertyPage(\"Force normalization for the worldNormal input\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { notifiers: { update: true } })\n], HeightToNormalBlock.prototype, \"automaticNormalizationNormal\", void 0);\n__decorate([\n editableInPropertyPage(\"Force normalization for the worldTangent input\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { notifiers: { update: true } })\n], HeightToNormalBlock.prototype, \"automaticNormalizationTangent\", void 0);\nRegisterClass(\"BABYLON.HeightToNormalBlock\", HeightToNormalBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { Logger } from \"../../../../Misc/logger.js\";\n/**\n * Block used to write the fragment depth\n */\nexport class FragDepthBlock extends NodeMaterialBlock {\n /**\n * Create a new FragDepthBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment, true);\n this.registerInput(\"depth\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"worldPos\", NodeMaterialBlockConnectionPointTypes.Vector4, true);\n this.registerInput(\"viewProjection\", NodeMaterialBlockConnectionPointTypes.Matrix, true);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FragDepthBlock\";\n }\n /**\n * Gets the depth input component\n */\n get depth() {\n return this._inputs[0];\n }\n /**\n * Gets the worldPos input component\n */\n get worldPos() {\n return this._inputs[1];\n }\n /**\n * Gets the viewProjection input component\n */\n get viewProjection() {\n return this._inputs[2];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const fragDepth = state.shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? \"gl_FragDepth\" : \"fragmentOutputs.fragDepth\";\n if (this.depth.isConnected) {\n state.compilationString += `${fragDepth} = ${this.depth.associatedVariableName};\\n`;\n }\n else if (this.worldPos.isConnected && this.viewProjection.isConnected) {\n state.compilationString += `\r\n ${state._declareLocalVar(\"p\", NodeMaterialBlockConnectionPointTypes.Vector4)} = ${this.viewProjection.associatedVariableName} * ${this.worldPos.associatedVariableName};\r\n ${state._declareLocalVar(\"v\", NodeMaterialBlockConnectionPointTypes.Float)} = p.z / p.w;\r\n #ifndef IS_NDC_HALF_ZRANGE\r\n v = v * 0.5 + 0.5;\r\n #endif\r\n ${fragDepth} = v;\r\n \r\n `;\n }\n else {\n Logger.Warn(\"FragDepthBlock: either the depth input or both the worldPos and viewProjection inputs must be connected!\");\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.FragDepthBlock\", FragDepthBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Block used to output the depth to a shadow map\n */\nexport class ShadowMapBlock extends NodeMaterialBlock {\n /**\n * Create a new ShadowMapBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false);\n this.registerInput(\"viewProjection\", NodeMaterialBlockConnectionPointTypes.Matrix, false);\n this.registerInput(\"worldNormal\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerOutput(\"depth\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.worldNormal.addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ShadowMapBlock\";\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"vPositionWSM\");\n state._excludeVariableName(\"lightDataSM\");\n state._excludeVariableName(\"biasAndScaleSM\");\n state._excludeVariableName(\"depthValuesSM\");\n state._excludeVariableName(\"clipPos\");\n state._excludeVariableName(\"worldPos\");\n state._excludeVariableName(\"zSM\");\n this._initShaderSourceAsync(state.shaderLanguage);\n }\n async _initShaderSourceAsync(shaderLanguage) {\n this._codeIsReady = false;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([\n import(\"../../../../ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/packingFunctions.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/shadowMapFragment.js\"),\n ]);\n }\n else {\n await Promise.all([\n import(\"../../../../Shaders/ShadersInclude/shadowMapVertexMetric.js\"),\n import(\"../../../../Shaders/ShadersInclude/packingFunctions.js\"),\n import(\"../../../../Shaders/ShadersInclude/shadowMapFragment.js\"),\n ]);\n }\n this._codeIsReady = true;\n this.onCodeIsReadyObservable.notifyObservers(this);\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the view x projection input component\n */\n get viewProjection() {\n return this._inputs[1];\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[2];\n }\n /**\n * Gets the depth output component\n */\n get depth() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const comments = `//${this.name}`;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n state._emitUniformFromString(\"biasAndScaleSM\", NodeMaterialBlockConnectionPointTypes.Vector3);\n state._emitUniformFromString(\"lightDataSM\", NodeMaterialBlockConnectionPointTypes.Vector3);\n state._emitUniformFromString(\"depthValuesSM\", NodeMaterialBlockConnectionPointTypes.Vector2);\n state._emitFunctionFromInclude(\"packingFunctions\", comments);\n state.compilationString += `${state._declareLocalVar(\"worldPos\", NodeMaterialBlockConnectionPointTypes.Vector4)} = ${this.worldPosition.associatedVariableName};\\n`;\n state.compilationString += `${state._declareLocalVar(\"vPositionWSM\", NodeMaterialBlockConnectionPointTypes.Vector3)};\\n`;\n state.compilationString += `${state._declareLocalVar(\"vDepthMetricSM\", NodeMaterialBlockConnectionPointTypes.Float)} = 0.0;\\n`;\n state.compilationString += `${state._declareLocalVar(\"zSM\", NodeMaterialBlockConnectionPointTypes.Float)};\\n`;\n if (this.worldNormal.isConnected) {\n state.compilationString += `${state._declareLocalVar(\"vNormalW\", NodeMaterialBlockConnectionPointTypes.Vector3)} = ${this.worldNormal.associatedVariableName}.xyz;\\n`;\n state.compilationString += state._emitCodeFromInclude(\"shadowMapVertexNormalBias\", comments);\n }\n state.compilationString += `${state._declareLocalVar(\"clipPos\", NodeMaterialBlockConnectionPointTypes.Vector4)} = ${this.viewProjection.associatedVariableName} * worldPos;\\n`;\n state.compilationString += state._emitCodeFromInclude(\"shadowMapVertexMetric\", comments, {\n replaceStrings: [\n {\n search: /gl_Position/g,\n replace: \"clipPos\",\n },\n {\n search: /vertexOutputs.position/g,\n replace: \"clipPos\",\n },\n ],\n });\n state.compilationString += state._emitCodeFromInclude(\"shadowMapFragment\", comments, {\n replaceStrings: [\n {\n search: /return;/g,\n replace: \"\",\n },\n ],\n });\n const output = isWebGPU ? \"fragmentOutputs.fragDepth\" : \"gl_FragDepth\";\n state.compilationString += `\r\n #if SM_DEPTHTEXTURE == 1\r\n #ifdef IS_NDC_HALF_ZRANGE\r\n ${output} = (clipPos.z / clipPos.w);\r\n #else\r\n ${output} = (clipPos.z / clipPos.w) * 0.5 + 0.5;\r\n #endif\r\n #endif\r\n `;\n state.compilationString += `${state._declareOutput(this.depth)} = vec3${state.fSuffix}(depthSM, 1., 1.);\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.ShadowMapBlock\", ShadowMapBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Block used to output values on the prepass textures\n * #WW65SN#9\n */\nexport class PrePassOutputBlock extends NodeMaterialBlock {\n /**\n * Create a new PrePassOutputBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment, true);\n this.registerInput(\"viewDepth\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"screenDepth\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerInput(\"localPosition\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerInput(\"viewNormal\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerInput(\"worldNormal\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerInput(\"reflectivity\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.inputs[2].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n this.inputs[3].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n this.inputs[4].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n this.inputs[5].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n this.inputs[6].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector3 |\n NodeMaterialBlockConnectionPointTypes.Vector4 |\n NodeMaterialBlockConnectionPointTypes.Color3 |\n NodeMaterialBlockConnectionPointTypes.Color4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PrePassOutputBlock\";\n }\n /**\n * Gets the view depth component\n */\n get viewDepth() {\n return this._inputs[0];\n }\n /**\n * Gets the screen depth component\n */\n get screenDepth() {\n return this._inputs[1];\n }\n /**\n * Gets the world position component\n */\n get worldPosition() {\n return this._inputs[2];\n }\n /**\n * Gets the position in local space component\n */\n get localPosition() {\n return this._inputs[3];\n }\n /**\n * Gets the view normal component\n */\n get viewNormal() {\n return this._inputs[4];\n }\n /**\n * Gets the world normal component\n */\n get worldNormal() {\n return this._inputs[5];\n }\n /**\n * Gets the reflectivity component\n */\n get reflectivity() {\n return this._inputs[6];\n }\n _getFragData(isWebGPU, index) {\n return isWebGPU ? `fragmentOutputs.fragData${index}` : `gl_FragData[${index}]`;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const worldPosition = this.worldPosition;\n const localPosition = this.localPosition;\n const viewNormal = this.viewNormal;\n const worldNormal = this.worldNormal;\n const viewDepth = this.viewDepth;\n const reflectivity = this.reflectivity;\n const screenDepth = this.screenDepth;\n state.sharedData.blocksWithDefines.push(this);\n const comments = `//${this.name}`;\n const vec4 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector4);\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\n state.compilationString += `#if defined(PREPASS)\\r\\n`;\n state.compilationString += isWebGPU ? `var fragData: array, SCENE_MRT_COUNT>;\\r\\n` : `vec4 fragData[SCENE_MRT_COUNT];\\r\\n`;\n state.compilationString += `#ifdef PREPASS_DEPTH\\r\\n`;\n if (viewDepth.connectedPoint) {\n state.compilationString += ` fragData[PREPASS_DEPTH_INDEX] = ${vec4}(${viewDepth.associatedVariableName}, 0.0, 0.0, 1.0);\\r\\n`;\n }\n else {\n // We have to write something on the viewDepth output or it will raise a gl error\n state.compilationString += ` fragData[PREPASS_DEPTH_INDEX] = ${vec4}(0.0, 0.0, 0.0, 0.0);\\r\\n`;\n }\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#ifdef PREPASS_SCREENSPACE_DEPTH\\r\\n`;\n if (screenDepth.connectedPoint) {\n state.compilationString += ` gl_FragData[PREPASS_SCREENSPACE_DEPTH_INDEX] = vec4(${screenDepth.associatedVariableName}, 0.0, 0.0, 1.0);\\r\\n`;\n }\n else {\n // We have to write something on the viewDepth output or it will raise a gl error\n state.compilationString += ` gl_FragData[PREPASS_SCREENSPACE_DEPTH_INDEX] = vec4(0.0, 0.0, 0.0, 0.0);\\r\\n`;\n }\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#ifdef PREPASS_POSITION\\r\\n`;\n if (worldPosition.connectedPoint) {\n state.compilationString += `fragData[PREPASS_POSITION_INDEX] = ${vec4}(${worldPosition.associatedVariableName}.rgb, ${worldPosition.connectedPoint.type === NodeMaterialBlockConnectionPointTypes.Vector4 ? worldPosition.associatedVariableName + \".a\" : \"1.0\"});\\r\\n`;\n }\n else {\n // We have to write something on the position output or it will raise a gl error\n state.compilationString += ` fragData[PREPASS_POSITION_INDEX] = ${vec4}(0.0, 0.0, 0.0, 0.0);\\r\\n`;\n }\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#ifdef PREPASS_LOCAL_POSITION\\r\\n`;\n if (localPosition.connectedPoint) {\n state.compilationString += ` gl_FragData[PREPASS_LOCAL_POSITION_INDEX] = vec4(${localPosition.associatedVariableName}.rgb, ${localPosition.connectedPoint.type === NodeMaterialBlockConnectionPointTypes.Vector4 ? localPosition.associatedVariableName + \".a\" : \"1.0\"});\\r\\n`;\n }\n else {\n // We have to write something on the position output or it will raise a gl error\n state.compilationString += ` gl_FragData[PREPASS_LOCAL_POSITION_INDEX] = vec4(0.0, 0.0, 0.0, 0.0);\\r\\n`;\n }\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#ifdef PREPASS_NORMAL\\r\\n`;\n if (viewNormal.connectedPoint) {\n state.compilationString += ` fragData[PREPASS_NORMAL_INDEX] = ${vec4}(${viewNormal.associatedVariableName}.rgb, ${viewNormal.connectedPoint.type === NodeMaterialBlockConnectionPointTypes.Vector4 ? viewNormal.associatedVariableName + \".a\" : \"1.0\"});\\r\\n`;\n }\n else {\n // We have to write something on the normal output or it will raise a gl error\n state.compilationString += ` fragData[PREPASS_NORMAL_INDEX] = ${vec4}(0.0, 0.0, 0.0, 0.0);\\r\\n`;\n }\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#ifdef PREPASS_WORLD_NORMAL\\r\\n`;\n if (worldNormal.connectedPoint) {\n state.compilationString += ` gl_FragData[PREPASS_WORLD_NORMAL_INDEX] = vec4(${worldNormal.associatedVariableName}.rgb, ${worldNormal.connectedPoint.type === NodeMaterialBlockConnectionPointTypes.Vector4 ? worldNormal.associatedVariableName + \".a\" : \"1.0\"});\\r\\n`;\n }\n else {\n // We have to write something on the normal output or it will raise a gl error\n state.compilationString += ` gl_FragData[PREPASS_WORLD_NORMAL_INDEX] = vec4(0.0, 0.0, 0.0, 0.0);\\r\\n`;\n }\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#ifdef PREPASS_REFLECTIVITY\\r\\n`;\n if (reflectivity.connectedPoint) {\n state.compilationString += ` fragData[PREPASS_REFLECTIVITY_INDEX] = ${vec4}(${reflectivity.associatedVariableName}.rgb, ${reflectivity.connectedPoint.type === NodeMaterialBlockConnectionPointTypes.Vector4 ? reflectivity.associatedVariableName + \".a\" : \"1.0\"});\\r\\n`;\n }\n else {\n // We have to write something on the reflectivity output or it will raise a gl error\n state.compilationString += ` fragData[PREPASS_REFLECTIVITY_INDEX] = ${vec4}(0.0, 0.0, 0.0, 1.0);\\r\\n`;\n }\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#if SCENE_MRT_COUNT > 1\\r\\n`;\n state.compilationString += `${this._getFragData(isWebGPU, 1)} = fragData[1];\\r\\n`;\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#if SCENE_MRT_COUNT > 2\\r\\n`;\n state.compilationString += `${this._getFragData(isWebGPU, 2)} = fragData[2];\\r\\n`;\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#if SCENE_MRT_COUNT > 3\\r\\n`;\n state.compilationString += `${this._getFragData(isWebGPU, 3)} = fragData[3];\\r\\n`;\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#if SCENE_MRT_COUNT > 4\\r\\n`;\n state.compilationString += `${this._getFragData(isWebGPU, 4)} = fragData[4];\\r\\n`;\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#if SCENE_MRT_COUNT > 5\\r\\n`;\n state.compilationString += `${this._getFragData(isWebGPU, 5)} = fragData[5];\\r\\n`;\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#if SCENE_MRT_COUNT > 6\\r\\n`;\n state.compilationString += `${this._getFragData(isWebGPU, 6)} = fragData[6];\\r\\n`;\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#if SCENE_MRT_COUNT > 7\\r\\n`;\n state.compilationString += `${this._getFragData(isWebGPU, 7)} = fragData[7];\\r\\n`;\n state.compilationString += `#endif\\r\\n`;\n state.compilationString += `#endif\\r\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.PrePassOutputBlock\", PrePassOutputBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialSystemValues } from \"../../Enums/nodeMaterialSystemValues.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { GetFogState } from \"../../../materialHelper.functions.js\";\n/**\n * Block used to add support for scene fog\n */\nexport class FogBlock extends NodeMaterialBlock {\n /**\n * Create a new FogBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.VertexAndFragment, false);\n // Vertex\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"view\", NodeMaterialBlockConnectionPointTypes.Matrix, false, NodeMaterialBlockTargets.Vertex);\n // Fragment\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"fogColor\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.input.addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Color4);\n this.fogColor.addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Color4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FogBlock\";\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the view input component\n */\n get view() {\n return this._inputs[1];\n }\n /**\n * Gets the color input component\n */\n get input() {\n return this._inputs[2];\n }\n /**\n * Gets the fog color input component\n */\n get fogColor() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n initialize(state) {\n this._initShaderSourceAsync(state.shaderLanguage);\n }\n async _initShaderSourceAsync(shaderLanguage) {\n this._codeIsReady = false;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await import(\"../../../../ShadersWGSL/ShadersInclude/fogFragmentDeclaration.js\");\n }\n else {\n await import(\"../../../../Shaders/ShadersInclude/fogFragmentDeclaration.js\");\n }\n this._codeIsReady = true;\n this.onCodeIsReadyObservable.notifyObservers(this);\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.view.isConnected) {\n let viewInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.View && additionalFilteringInfo(b));\n if (!viewInput) {\n viewInput = new InputBlock(\"view\");\n viewInput.setAsSystemValue(NodeMaterialSystemValues.View);\n }\n viewInput.output.connectTo(this.view);\n }\n if (!this.fogColor.isConnected) {\n let fogColorInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.FogColor && additionalFilteringInfo(b));\n if (!fogColorInput) {\n fogColorInput = new InputBlock(\"fogColor\", undefined, NodeMaterialBlockConnectionPointTypes.Color3);\n fogColorInput.setAsSystemValue(NodeMaterialSystemValues.FogColor);\n }\n fogColorInput.output.connectTo(this.fogColor);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n const scene = mesh.getScene();\n defines.setValue(\"FOG\", nodeMaterial.fogEnabled && GetFogState(mesh, scene));\n }\n bind(effect, nodeMaterial, mesh) {\n if (!mesh) {\n return;\n }\n const scene = mesh.getScene();\n effect.setFloat4(this._fogParameters, scene.fogMode, scene.fogStart, scene.fogEnd, scene.fogDensity);\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n state.sharedData.blocksWithDefines.push(this);\n state.sharedData.bindableBlocks.push(this);\n let replaceStrings = [];\n let prefix1 = \"\";\n let prefix2 = \"\";\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n replaceStrings = [\n { search: /fn CalcFogFactor\\(\\)/, replace: \"fn CalcFogFactor(vFogDistance: vec3f, vFogInfos: vec4f)\" },\n { search: /uniforms.vFogInfos/g, replace: \"vFogInfos\" },\n { search: /fragmentInputs.vFogDistance/g, replace: \"vFogDistance\" },\n ];\n prefix1 = \"fragmentInputs.\";\n prefix2 = \"uniforms.\";\n }\n else {\n replaceStrings = [{ search: /float CalcFogFactor\\(\\)/, replace: \"float CalcFogFactor(vec3 vFogDistance, vec4 vFogInfos)\" }];\n }\n state._emitFunctionFromInclude(\"fogFragmentDeclaration\", `//${this.name}`, {\n removeUniforms: true,\n removeVaryings: true,\n removeIfDef: false,\n replaceStrings: replaceStrings,\n });\n const tempFogVariablename = state._getFreeVariableName(\"fog\");\n const color = this.input;\n const fogColor = this.fogColor;\n this._fogParameters = state._getFreeVariableName(\"fogParameters\");\n const output = this._outputs[0];\n state._emitUniformFromString(this._fogParameters, NodeMaterialBlockConnectionPointTypes.Vector4);\n state.compilationString += `#ifdef FOG\\n`;\n state.compilationString += `${state._declareLocalVar(tempFogVariablename, NodeMaterialBlockConnectionPointTypes.Float)} = CalcFogFactor(${prefix1}${this._fogDistanceName}, ${prefix2}${this._fogParameters});\\n`;\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${tempFogVariablename} * ${color.associatedVariableName}.rgb + (1.0 - ${tempFogVariablename}) * ${fogColor.associatedVariableName}.rgb;\\n`;\n state.compilationString += `#else\\n${state._declareOutput(output)} = ${color.associatedVariableName}.rgb;\\n`;\n state.compilationString += `#endif\\n`;\n }\n else {\n const worldPos = this.worldPosition;\n const view = this.view;\n this._fogDistanceName = state._getFreeVariableName(\"vFogDistance\");\n state._emitVaryingFromString(this._fogDistanceName, NodeMaterialBlockConnectionPointTypes.Vector3);\n const prefix = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"vertexOutputs.\" : \"\";\n state.compilationString += `${prefix}${this._fogDistanceName} = (${view.associatedVariableName} * ${worldPos.associatedVariableName}).xyz;\\n`;\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.FogBlock\", FogBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialSystemValues } from \"../../Enums/nodeMaterialSystemValues.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { Logger } from \"../../../../Misc/logger.js\";\nimport { BindLight, BindLights, PrepareDefinesForLight, PrepareDefinesForLights, PrepareUniformsAndSamplersForLight } from \"../../../materialHelper.functions.js\";\n/**\n * Block used to add light in the fragment shader\n */\nexport class LightBlock extends NodeMaterialBlock {\n static _OnGenerateOnlyFragmentCodeChanged(block, _propertyName) {\n const that = block;\n if (that.worldPosition.isConnected) {\n that.generateOnlyFragmentCode = !that.generateOnlyFragmentCode;\n Logger.Error(\"The worldPosition input must not be connected to be able to switch!\");\n return false;\n }\n that._setTarget();\n return true;\n }\n _setTarget() {\n this._setInitialTarget(this.generateOnlyFragmentCode ? NodeMaterialBlockTargets.Fragment : NodeMaterialBlockTargets.VertexAndFragment);\n this.getInputByName(\"worldPosition\").target = this.generateOnlyFragmentCode ? NodeMaterialBlockTargets.Fragment : NodeMaterialBlockTargets.Vertex;\n }\n /**\n * Create a new LightBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.VertexAndFragment);\n this._lightId = 0;\n /** Indicates that no code should be generated in the vertex shader. Can be useful in some specific circumstances (like when doing ray marching for eg) */\n this.generateOnlyFragmentCode = false;\n this._isUnique = true;\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"worldNormal\", NodeMaterialBlockConnectionPointTypes.Vector4, false, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"cameraPosition\", NodeMaterialBlockConnectionPointTypes.Vector3, false, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"glossiness\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"glossPower\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"diffuseColor\", NodeMaterialBlockConnectionPointTypes.Color3, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"specularColor\", NodeMaterialBlockConnectionPointTypes.Color3, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"view\", NodeMaterialBlockConnectionPointTypes.Matrix, true);\n this.registerOutput(\"diffuseOutput\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"specularOutput\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"shadow\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"LightBlock\";\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[1];\n }\n /**\n * Gets the camera (or eye) position component\n */\n get cameraPosition() {\n return this._inputs[2];\n }\n /**\n * Gets the glossiness component\n */\n get glossiness() {\n return this._inputs[3];\n }\n /**\n * Gets the glossiness power component\n */\n get glossPower() {\n return this._inputs[4];\n }\n /**\n * Gets the diffuse color component\n */\n get diffuseColor() {\n return this._inputs[5];\n }\n /**\n * Gets the specular color component\n */\n get specularColor() {\n return this._inputs[6];\n }\n /**\n * Gets the view matrix component\n */\n get view() {\n return this._inputs[7];\n }\n /**\n * Gets the diffuse output component\n */\n get diffuseOutput() {\n return this._outputs[0];\n }\n /**\n * Gets the specular output component\n */\n get specularOutput() {\n return this._outputs[1];\n }\n /**\n * Gets the shadow output component\n */\n get shadow() {\n return this._outputs[2];\n }\n initialize(state) {\n this._initShaderSourceAsync(state.shaderLanguage);\n }\n async _initShaderSourceAsync(shaderLanguage) {\n this._codeIsReady = false;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([\n import(\"../../../../ShadersWGSL/ShadersInclude/lightFragment.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/lightUboDeclaration.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/lightVxUboDeclaration.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/helperFunctions.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/shadowsFragmentFunctions.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/shadowsVertex.js\"),\n ]);\n }\n else {\n await Promise.all([\n import(\"../../../../Shaders/ShadersInclude/lightFragmentDeclaration.js\"),\n import(\"../../../../Shaders/ShadersInclude/lightFragment.js\"),\n import(\"../../../../Shaders/ShadersInclude/lightUboDeclaration.js\"),\n import(\"../../../../Shaders/ShadersInclude/lightVxUboDeclaration.js\"),\n import(\"../../../../Shaders/ShadersInclude/lightVxFragmentDeclaration.js\"),\n import(\"../../../../Shaders/ShadersInclude/helperFunctions.js\"),\n import(\"../../../../Shaders/ShadersInclude/lightsFragmentFunctions.js\"),\n import(\"../../../../Shaders/ShadersInclude/shadowsFragmentFunctions.js\"),\n import(\"../../../../Shaders/ShadersInclude/shadowsVertex.js\"),\n ]);\n }\n this._codeIsReady = true;\n this.onCodeIsReadyObservable.notifyObservers(this);\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.cameraPosition.isConnected) {\n let cameraPositionInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.CameraPosition && additionalFilteringInfo(b));\n if (!cameraPositionInput) {\n cameraPositionInput = new InputBlock(\"cameraPosition\");\n cameraPositionInput.setAsSystemValue(NodeMaterialSystemValues.CameraPosition);\n }\n cameraPositionInput.output.connectTo(this.cameraPosition);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n if (!defines._areLightsDirty) {\n return;\n }\n const scene = mesh.getScene();\n if (!this.light) {\n PrepareDefinesForLights(scene, mesh, defines, true, nodeMaterial.maxSimultaneousLights);\n }\n else {\n const state = {\n needNormals: false,\n needRebuild: false,\n lightmapMode: false,\n shadowEnabled: false,\n specularEnabled: false,\n };\n PrepareDefinesForLight(scene, mesh, this.light, this._lightId, defines, true, state);\n if (state.needRebuild) {\n defines.rebuild();\n }\n }\n }\n updateUniformsAndSamples(state, nodeMaterial, defines, uniformBuffers) {\n for (let lightIndex = 0; lightIndex < nodeMaterial.maxSimultaneousLights; lightIndex++) {\n if (!defines[\"LIGHT\" + lightIndex]) {\n break;\n }\n const onlyUpdateBuffersList = state.uniforms.indexOf(\"vLightData\" + lightIndex) >= 0;\n PrepareUniformsAndSamplersForLight(lightIndex, state.uniforms, state.samplers, defines[\"PROJECTEDLIGHTTEXTURE\" + lightIndex], uniformBuffers, onlyUpdateBuffersList);\n }\n }\n bind(effect, nodeMaterial, mesh) {\n if (!mesh) {\n return;\n }\n const scene = mesh.getScene();\n if (!this.light) {\n BindLights(scene, mesh, effect, true, nodeMaterial.maxSimultaneousLights);\n }\n else {\n BindLight(this.light, this._lightId, scene, effect, true);\n }\n }\n _injectVertexCode(state) {\n const worldPos = this.worldPosition;\n const comments = `//${this.name}`;\n // Declaration\n if (!this.light) {\n // Emit for all lights\n state._emitFunctionFromInclude(state.supportUniformBuffers ? \"lightVxUboDeclaration\" : \"lightVxFragmentDeclaration\", comments, {\n repeatKey: \"maxSimultaneousLights\",\n });\n this._lightId = 0;\n state.sharedData.dynamicUniformBlocks.push(this);\n }\n else {\n this._lightId = (state.counters[\"lightCounter\"] !== undefined ? state.counters[\"lightCounter\"] : -1) + 1;\n state.counters[\"lightCounter\"] = this._lightId;\n state._emitFunctionFromInclude(state.supportUniformBuffers ? \"lightVxUboDeclaration\" : \"lightVxFragmentDeclaration\", comments, {\n replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }],\n }, this._lightId.toString());\n }\n // Inject code in vertex\n const worldPosVaryingName = \"v_\" + worldPos.associatedVariableName;\n if (state._emitVaryingFromString(worldPosVaryingName, NodeMaterialBlockConnectionPointTypes.Vector4)) {\n state.compilationString += (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"vertexOutputs.\" : \"\") + `${worldPosVaryingName} = ${worldPos.associatedVariableName};\\n`;\n }\n if (this.light) {\n state.compilationString += state._emitCodeFromInclude(\"shadowsVertex\", comments, {\n replaceStrings: [\n { search: /{X}/g, replace: this._lightId.toString() },\n { search: /worldPos/g, replace: worldPos.associatedVariableName },\n ],\n });\n }\n else {\n state.compilationString += `${state._declareLocalVar(\"worldPos\", NodeMaterialBlockConnectionPointTypes.Vector4)} = ${worldPos.associatedVariableName};\\n`;\n if (this.view.isConnected) {\n state.compilationString += `${state._declareLocalVar(\"view\", NodeMaterialBlockConnectionPointTypes.Matrix)} = ${this.view.associatedVariableName};\\n`;\n }\n state.compilationString += state._emitCodeFromInclude(\"shadowsVertex\", comments, {\n repeatKey: \"maxSimultaneousLights\",\n });\n }\n }\n _injectUBODeclaration(state) {\n const comments = `//${this.name}`;\n if (!this.light) {\n // Emit for all lights\n state._emitFunctionFromInclude(state.supportUniformBuffers ? \"lightUboDeclaration\" : \"lightFragmentDeclaration\", comments, {\n repeatKey: \"maxSimultaneousLights\",\n substitutionVars: this.generateOnlyFragmentCode ? \"varying,\" : undefined,\n });\n }\n else {\n state._emitFunctionFromInclude(state.supportUniformBuffers ? \"lightUboDeclaration\" : \"lightFragmentDeclaration\", comments, {\n replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }],\n }, this._lightId.toString());\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const isWGSL = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n const addF = isWGSL ? \"f\" : \"\";\n const comments = `//${this.name}`;\n if (state.target !== NodeMaterialBlockTargets.Fragment) {\n // Vertex\n this._injectVertexCode(state);\n return;\n }\n if (this.generateOnlyFragmentCode) {\n state.sharedData.dynamicUniformBlocks.push(this);\n }\n // Fragment\n const accessor = isWGSL ? \"fragmentInputs.\" : \"\";\n state.sharedData.forcedBindableBlocks.push(this);\n state.sharedData.blocksWithDefines.push(this);\n const worldPos = this.worldPosition;\n let worldPosVariableName = worldPos.associatedVariableName;\n if (this.generateOnlyFragmentCode) {\n worldPosVariableName = state._getFreeVariableName(\"globalWorldPos\");\n state._emitFunction(\"light_globalworldpos\", `${state._declareLocalVar(worldPosVariableName, NodeMaterialBlockConnectionPointTypes.Vector3)};\\n`, comments);\n state.compilationString += `${worldPosVariableName} = ${worldPos.associatedVariableName}.xyz;\\n`;\n state.compilationString += state._emitCodeFromInclude(\"shadowsVertex\", comments, {\n repeatKey: \"maxSimultaneousLights\",\n substitutionVars: this.generateOnlyFragmentCode ? `worldPos,${worldPos.associatedVariableName}` : undefined,\n });\n }\n else {\n worldPosVariableName = accessor + \"v_\" + worldPosVariableName + \".xyz\";\n }\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\n let replaceString = { search: /vPositionW/g, replace: worldPosVariableName };\n if (isWGSL) {\n replaceString = { search: /fragmentInputs\\.vPositionW/g, replace: worldPosVariableName };\n }\n state._emitFunctionFromInclude(\"lightsFragmentFunctions\", comments, {\n replaceStrings: [replaceString],\n });\n state._emitFunctionFromInclude(\"shadowsFragmentFunctions\", comments, {\n replaceStrings: [replaceString],\n });\n this._injectUBODeclaration(state);\n // Code\n if (this._lightId === 0) {\n if (state._registerTempVariable(\"viewDirectionW\")) {\n state.compilationString += `${state._declareLocalVar(\"viewDirectionW\", NodeMaterialBlockConnectionPointTypes.Vector3)} = normalize(${this.cameraPosition.associatedVariableName} - ${worldPosVariableName});\\n`;\n }\n state.compilationString += isWGSL ? `var info: lightingInfo;\\n` : `lightingInfo info;\\n`;\n state.compilationString += `${state._declareLocalVar(\"shadow\", NodeMaterialBlockConnectionPointTypes.Float)} = 1.;\\n`;\n state.compilationString += `${state._declareLocalVar(\"aggShadow\", NodeMaterialBlockConnectionPointTypes.Float)} = 0.;\\n`;\n state.compilationString += `${state._declareLocalVar(\"numLights\", NodeMaterialBlockConnectionPointTypes.Float)} = 0.;\\n`;\n state.compilationString += `${state._declareLocalVar(\"glossiness\", NodeMaterialBlockConnectionPointTypes.Float)} = ${this.glossiness.isConnected ? this.glossiness.associatedVariableName : \"1.0\"} * ${this.glossPower.isConnected ? this.glossPower.associatedVariableName : \"1024.0\"};\\n`;\n state.compilationString += `${state._declareLocalVar(\"diffuseBase\", NodeMaterialBlockConnectionPointTypes.Vector3)} = vec3${addF}(0., 0., 0.);\\n`;\n state.compilationString += `${state._declareLocalVar(\"specularBase\", NodeMaterialBlockConnectionPointTypes.Vector3)} = vec3${addF}(0., 0., 0.);\\n`;\n state.compilationString += `${state._declareLocalVar(\"normalW\", NodeMaterialBlockConnectionPointTypes.Vector3)} = ${this.worldNormal.associatedVariableName}.xyz;\\n`;\n }\n if (this.light) {\n let replaceString = { search: /vPositionW/g, replace: worldPosVariableName + \".xyz\" };\n if (isWGSL) {\n replaceString = { search: /fragmentInputs\\.vPositionW/g, replace: worldPosVariableName + \".xyz\" };\n }\n state.compilationString += state._emitCodeFromInclude(\"lightFragment\", comments, {\n replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }, replaceString],\n });\n }\n else {\n let substitutionVars = `vPositionW,${worldPosVariableName}.xyz`;\n if (isWGSL) {\n substitutionVars = `fragmentInputs.vPositionW,${worldPosVariableName}.xyz`;\n }\n state.compilationString += state._emitCodeFromInclude(\"lightFragment\", comments, {\n repeatKey: \"maxSimultaneousLights\",\n substitutionVars: substitutionVars,\n });\n }\n if (this._lightId === 0) {\n state.compilationString += `aggShadow = aggShadow / numLights;\\n`;\n }\n const diffuseOutput = this.diffuseOutput;\n const specularOutput = this.specularOutput;\n state.compilationString +=\n state._declareOutput(diffuseOutput) + ` = diffuseBase${this.diffuseColor.isConnected ? \" * \" + this.diffuseColor.associatedVariableName : \"\"};\\n`;\n if (specularOutput.hasEndpoints) {\n state.compilationString +=\n state._declareOutput(specularOutput) + ` = specularBase${this.specularColor.isConnected ? \" * \" + this.specularColor.associatedVariableName : \"\"};\\n`;\n }\n if (this.shadow.hasEndpoints) {\n state.compilationString += state._declareOutput(this.shadow) + ` = aggShadow;\\n`;\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.generateOnlyFragmentCode = this.generateOnlyFragmentCode;\n if (this.light) {\n serializationObject.lightId = this.light.id;\n }\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n if (serializationObject.lightId) {\n this.light = scene.getLightById(serializationObject.lightId);\n }\n this.generateOnlyFragmentCode = serializationObject.generateOnlyFragmentCode;\n this._setTarget();\n }\n}\n__decorate([\n editableInPropertyPage(\"Generate only fragment code\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n notifiers: { rebuild: true, update: true, onValidation: LightBlock._OnGenerateOnlyFragmentCodeChanged },\n })\n], LightBlock.prototype, \"generateOnlyFragmentCode\", void 0);\nRegisterClass(\"BABYLON.LightBlock\", LightBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { Texture } from \"../../../Textures/texture.js\";\n\nimport { NodeMaterial } from \"../../nodeMaterial.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\nimport { EngineStore } from \"../../../../Engines/engineStore.js\";\n/**\n * Block used to provide an image for a TextureBlock\n */\nexport class ImageSourceBlock extends NodeMaterialBlock {\n /**\n * Gets or sets the texture associated with the node\n */\n get texture() {\n return this._texture;\n }\n set texture(texture) {\n if (this._texture === texture) {\n return;\n }\n const scene = texture?.getScene() ?? EngineStore.LastCreatedScene;\n if (!texture && scene) {\n scene.markAllMaterialsAsDirty(1, (mat) => {\n return mat.hasTexture(this._texture);\n });\n }\n this._texture = texture;\n if (texture && scene) {\n scene.markAllMaterialsAsDirty(1, (mat) => {\n return mat.hasTexture(texture);\n });\n }\n }\n /**\n * Gets the sampler name associated with this image source\n */\n get samplerName() {\n return this._samplerName;\n }\n /**\n * Creates a new ImageSourceBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.VertexAndFragment);\n this.registerOutput(\"source\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"source\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, ImageSourceBlock, \"ImageSourceBlock\"));\n this.registerOutput(\"dimensions\", NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n bind(effect) {\n if (!this.texture) {\n return;\n }\n effect.setTexture(this._samplerName, this.texture);\n }\n isReady() {\n if (this.texture && !this.texture.isReadyOrNotBlocking()) {\n return false;\n }\n return true;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ImageSourceBlock\";\n }\n /**\n * Gets the output component\n */\n get source() {\n return this._outputs[0];\n }\n /**\n * Gets the dimension component\n */\n get dimensions() {\n return this._outputs[1];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (state.target === NodeMaterialBlockTargets.Vertex) {\n this._samplerName = state._getFreeVariableName(this.name + \"Texture\");\n // Declarations\n state.sharedData.blockingBlocks.push(this);\n state.sharedData.textureBlocks.push(this);\n state.sharedData.bindableBlocks.push(this);\n }\n if (this.dimensions.isConnected) {\n let affect = \"\";\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n affect = `vec2f(textureDimensions(${this._samplerName}, 0).xy)`;\n }\n else {\n affect = `vec2(textureSize(${this._samplerName}, 0).xy)`;\n }\n state.compilationString += `${state._declareOutput(this.dimensions)} = ${affect};\\n`;\n }\n state._emit2DSampler(this._samplerName);\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n if (!this.texture) {\n return codeString;\n }\n codeString += `${this._codeVariableName}.texture = new BABYLON.Texture(\"${this.texture.name}\", null, ${this.texture.noMipmap}, ${this.texture.invertY}, ${this.texture.samplingMode});\\n`;\n codeString += `${this._codeVariableName}.texture.wrapU = ${this.texture.wrapU};\\n`;\n codeString += `${this._codeVariableName}.texture.wrapV = ${this.texture.wrapV};\\n`;\n codeString += `${this._codeVariableName}.texture.uAng = ${this.texture.uAng};\\n`;\n codeString += `${this._codeVariableName}.texture.vAng = ${this.texture.vAng};\\n`;\n codeString += `${this._codeVariableName}.texture.wAng = ${this.texture.wAng};\\n`;\n codeString += `${this._codeVariableName}.texture.uOffset = ${this.texture.uOffset};\\n`;\n codeString += `${this._codeVariableName}.texture.vOffset = ${this.texture.vOffset};\\n`;\n codeString += `${this._codeVariableName}.texture.uScale = ${this.texture.uScale};\\n`;\n codeString += `${this._codeVariableName}.texture.vScale = ${this.texture.vScale};\\n`;\n codeString += `${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n if (this.texture && !this.texture.isRenderTarget && this.texture.getClassName() !== \"VideoTexture\") {\n serializationObject.texture = this.texture.serialize();\n }\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl, urlRewriter) {\n super._deserialize(serializationObject, scene, rootUrl, urlRewriter);\n if (serializationObject.texture && !NodeMaterial.IgnoreTexturesAtLoadTime && serializationObject.texture.url !== undefined) {\n if (serializationObject.texture.url.indexOf(\"data:\") === 0) {\n rootUrl = \"\";\n }\n else if (urlRewriter) {\n serializationObject.texture.url = urlRewriter(serializationObject.texture.url);\n serializationObject.texture.name = serializationObject.texture.url;\n }\n this.texture = Texture.Parse(serializationObject.texture, scene, rootUrl);\n }\n }\n}\nRegisterClass(\"BABYLON.ImageSourceBlock\", ImageSourceBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { NodeMaterial } from \"../../nodeMaterial.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { Texture } from \"../../../Textures/texture.js\";\nimport { NodeMaterialModes } from \"../../Enums/nodeMaterialModes.js\";\n\nimport \"../../../../Shaders/ShadersInclude/helperFunctions.js\";\nimport { ImageSourceBlock } from \"./imageSourceBlock.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\nimport { EngineStore } from \"../../../../Engines/engineStore.js\";\n/**\n * Block used to read a texture from a sampler\n */\nexport class TextureBlock extends NodeMaterialBlock {\n /**\n * Gets or sets the texture associated with the node\n */\n get texture() {\n if (this.source.isConnected) {\n return (this.source.connectedPoint?.ownerBlock).texture;\n }\n return this._texture;\n }\n set texture(texture) {\n if (this._texture === texture) {\n return;\n }\n const scene = texture?.getScene() ?? EngineStore.LastCreatedScene;\n if (!texture && scene) {\n scene.markAllMaterialsAsDirty(1, (mat) => {\n return mat.hasTexture(this._texture);\n });\n }\n this._texture = texture;\n if (texture && scene) {\n scene.markAllMaterialsAsDirty(1, (mat) => {\n return mat.hasTexture(texture);\n });\n }\n }\n static _IsPrePassTextureBlock(block) {\n return block?.getClassName() === \"PrePassTextureBlock\";\n }\n get _isSourcePrePass() {\n return TextureBlock._IsPrePassTextureBlock(this._imageSource);\n }\n /**\n * Gets the sampler name associated with this texture\n */\n get samplerName() {\n if (this._imageSource) {\n if (!TextureBlock._IsPrePassTextureBlock(this._imageSource)) {\n return this._imageSource.samplerName;\n }\n if (this.source.connectedPoint) {\n return this._imageSource.getSamplerName(this.source.connectedPoint);\n }\n }\n return this._samplerName;\n }\n /**\n * Gets a boolean indicating that this block is linked to an ImageSourceBlock\n */\n get hasImageSource() {\n return this.source.isConnected;\n }\n /**\n * Gets or sets a boolean indicating if content needs to be converted to gamma space\n */\n set convertToGammaSpace(value) {\n if (value === this._convertToGammaSpace) {\n return;\n }\n this._convertToGammaSpace = value;\n if (this.texture) {\n const scene = this.texture.getScene() ?? EngineStore.LastCreatedScene;\n scene?.markAllMaterialsAsDirty(1, (mat) => {\n return mat.hasTexture(this.texture);\n });\n }\n }\n get convertToGammaSpace() {\n return this._convertToGammaSpace;\n }\n /**\n * Gets or sets a boolean indicating if content needs to be converted to linear space\n */\n set convertToLinearSpace(value) {\n if (value === this._convertToLinearSpace) {\n return;\n }\n this._convertToLinearSpace = value;\n if (this.texture) {\n const scene = this.texture.getScene() ?? EngineStore.LastCreatedScene;\n scene?.markAllMaterialsAsDirty(1, (mat) => {\n return mat.hasTexture(this.texture);\n });\n }\n }\n get convertToLinearSpace() {\n return this._convertToLinearSpace;\n }\n /**\n * Create a new TextureBlock\n * @param name defines the block name\n * @param fragmentOnly\n */\n constructor(name, fragmentOnly = false) {\n super(name, fragmentOnly ? NodeMaterialBlockTargets.Fragment : NodeMaterialBlockTargets.VertexAndFragment);\n this._convertToGammaSpace = false;\n this._convertToLinearSpace = false;\n /**\n * Gets or sets a boolean indicating if multiplication of texture with level should be disabled\n */\n this.disableLevelMultiplication = false;\n this._fragmentOnly = fragmentOnly;\n this.registerInput(\"uv\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false, NodeMaterialBlockTargets.VertexAndFragment);\n this.registerInput(\"source\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"source\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, ImageSourceBlock, \"ImageSourceBlock\"));\n this.registerInput(\"layer\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"lod\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerOutput(\"rgba\", NodeMaterialBlockConnectionPointTypes.Color4, NodeMaterialBlockTargets.Neutral);\n this.registerOutput(\"rgb\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Neutral);\n this.registerOutput(\"r\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this.registerOutput(\"g\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this.registerOutput(\"b\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this.registerOutput(\"a\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this.registerOutput(\"level\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector2 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n this._inputs[0]._prioritizeVertex = !fragmentOnly;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TextureBlock\";\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[0];\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[1];\n }\n /**\n * Gets the layer input component\n */\n get layer() {\n return this._inputs[2];\n }\n /**\n * Gets the LOD input component\n */\n get lod() {\n return this._inputs[3];\n }\n /**\n * Gets the rgba output component\n */\n get rgba() {\n return this._outputs[0];\n }\n /**\n * Gets the rgb output component\n */\n get rgb() {\n return this._outputs[1];\n }\n /**\n * Gets the r output component\n */\n get r() {\n return this._outputs[2];\n }\n /**\n * Gets the g output component\n */\n get g() {\n return this._outputs[3];\n }\n /**\n * Gets the b output component\n */\n get b() {\n return this._outputs[4];\n }\n /**\n * Gets the a output component\n */\n get a() {\n return this._outputs[5];\n }\n /**\n * Gets the level output component\n */\n get level() {\n return this._outputs[6];\n }\n _isTiedToFragment(input) {\n if (input.target === NodeMaterialBlockTargets.Fragment) {\n return true;\n }\n if (input.target === NodeMaterialBlockTargets.Vertex) {\n return false;\n }\n if (input.target === NodeMaterialBlockTargets.Neutral || input.target === NodeMaterialBlockTargets.VertexAndFragment) {\n const parentBlock = input.ownerBlock;\n if (parentBlock.target === NodeMaterialBlockTargets.Fragment) {\n return true;\n }\n for (const input of parentBlock.inputs) {\n if (!input.isConnected) {\n continue;\n }\n if (this._isTiedToFragment(input.connectedPoint)) {\n return true;\n }\n }\n }\n return false;\n }\n _getEffectiveTarget() {\n if (this._fragmentOnly) {\n return NodeMaterialBlockTargets.Fragment;\n }\n // TextureBlock has a special optimizations for uvs that come from the vertex shaders as they can be packed into a single varyings.\n // But we need to detect uvs coming from fragment then\n if (!this.uv.isConnected) {\n return NodeMaterialBlockTargets.VertexAndFragment;\n }\n if (this.uv.sourceBlock.isInput) {\n return NodeMaterialBlockTargets.VertexAndFragment;\n }\n if (this._isTiedToFragment(this.uv.connectedPoint)) {\n return NodeMaterialBlockTargets.Fragment;\n }\n return NodeMaterialBlockTargets.VertexAndFragment;\n }\n get target() {\n return this._getEffectiveTarget();\n }\n set target(value) { }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.uv.isConnected) {\n if (material.mode === NodeMaterialModes.PostProcess) {\n const uvInput = material.getBlockByPredicate((b) => b.name === \"uv\" && additionalFilteringInfo(b));\n if (uvInput) {\n uvInput.connectTo(this);\n }\n }\n else if (material.mode !== NodeMaterialModes.ProceduralTexture) {\n const attributeName = material.mode === NodeMaterialModes.Particle ? \"particle_uv\" : \"uv\";\n let uvInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === attributeName && additionalFilteringInfo(b));\n if (!uvInput) {\n uvInput = new InputBlock(\"uv\");\n uvInput.setAsAttribute(attributeName);\n }\n uvInput.output.connectTo(this.uv);\n }\n }\n }\n initializeDefines(mesh, nodeMaterial, defines) {\n if (!defines._areTexturesDirty) {\n return;\n }\n if (this._mainUVDefineName !== undefined) {\n defines.setValue(this._mainUVDefineName, false, true);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n if (!defines._areTexturesDirty) {\n return;\n }\n if (!this.texture || !this.texture.getTextureMatrix) {\n if (this._isMixed) {\n defines.setValue(this._defineName, false, true);\n defines.setValue(this._mainUVDefineName, true, true);\n }\n return;\n }\n const toGamma = this.convertToGammaSpace && this.texture && !this.texture.gammaSpace;\n const toLinear = this.convertToLinearSpace && this.texture && this.texture.gammaSpace;\n // Not a bug... Name defines the texture space not the required conversion\n defines.setValue(this._linearDefineName, toGamma, true);\n defines.setValue(this._gammaDefineName, toLinear, true);\n if (this._isMixed) {\n if (!this.texture.getTextureMatrix().isIdentityAs3x2()) {\n defines.setValue(this._defineName, true);\n if (defines[this._mainUVDefineName] == undefined) {\n defines.setValue(this._mainUVDefineName, false, true);\n }\n }\n else {\n defines.setValue(this._defineName, false, true);\n defines.setValue(this._mainUVDefineName, true, true);\n }\n }\n }\n isReady() {\n if (this._isSourcePrePass) {\n return true;\n }\n if (this.texture && !this.texture.isReadyOrNotBlocking()) {\n return false;\n }\n return true;\n }\n bind(effect) {\n if (this._isSourcePrePass) {\n effect.setFloat(this._textureInfoName, 1);\n }\n if (!this.texture) {\n return;\n }\n if (this._isMixed) {\n effect.setFloat(this._textureInfoName, this.texture.level);\n effect.setMatrix(this._textureTransformName, this.texture.getTextureMatrix());\n }\n if (!this._imageSource) {\n effect.setTexture(this._samplerName, this.texture);\n }\n }\n get _isMixed() {\n return this.target !== NodeMaterialBlockTargets.Fragment;\n }\n _injectVertexCode(state) {\n const uvInput = this.uv;\n // Inject code in vertex\n this._defineName = state._getFreeDefineName(\"UVTRANSFORM\");\n this._mainUVDefineName = \"VMAIN\" + uvInput.declarationVariableName.toUpperCase();\n this._mainUVName = \"vMain\" + uvInput.declarationVariableName;\n this._transformedUVName = state._getFreeVariableName(\"transformedUV\");\n this._textureTransformName = state._getFreeVariableName(\"textureTransform\");\n this._textureInfoName = state._getFreeVariableName(\"textureInfoName\");\n this.level.associatedVariableName = this._textureInfoName;\n state._emitVaryingFromString(this._transformedUVName, NodeMaterialBlockConnectionPointTypes.Vector2, this._defineName);\n state._emitVaryingFromString(this._mainUVName, NodeMaterialBlockConnectionPointTypes.Vector2, this._mainUVDefineName);\n state._emitUniformFromString(this._textureTransformName, NodeMaterialBlockConnectionPointTypes.Matrix, this._defineName);\n const vec4 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector4);\n const vec2 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector2);\n state.compilationString += `#ifdef ${this._defineName}\\n`;\n state.compilationString += `${state._getVaryingName(this._transformedUVName)} = ${vec2}(${this._textureTransformName} * ${vec4}(${uvInput.associatedVariableName}.xy, 1.0, 0.0));\\n`;\n state.compilationString += `#elif defined(${this._mainUVDefineName})\\n`;\n let automaticPrefix = \"\";\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n if (uvInput.isConnectedToInputBlock && uvInput.associatedVariableName.indexOf(\"vertexInputs.\") === -1) {\n automaticPrefix = \"vertexInputs.\"; // Force the prefix\n }\n }\n state.compilationString += `${state._getVaryingName(this._mainUVName)} = ${automaticPrefix}${uvInput.associatedVariableName}.xy;\\n`;\n state.compilationString += `#endif\\n`;\n if (!this._outputs.some((o) => o.isConnectedInVertexShader)) {\n return;\n }\n this._writeTextureRead(state, true);\n for (const output of this._outputs) {\n if (output.hasEndpoints && output.name !== \"level\") {\n this._writeOutput(state, output, output.name, true);\n }\n }\n }\n _getUVW(uvName) {\n let coords = uvName;\n const is2DArrayTexture = this._texture?._texture?.is2DArray ?? false;\n const is3D = this._texture?._texture?.is3D ?? false;\n if (is2DArrayTexture) {\n const layerValue = this.layer.isConnected ? this.layer.associatedVariableName : \"0\";\n coords = `vec3(${uvName}, ${layerValue})`;\n }\n else if (is3D) {\n const layerValue = this.layer.isConnected ? this.layer.associatedVariableName : \"0\";\n coords = `vec3(${uvName}, ${layerValue})`;\n }\n return coords;\n }\n _samplerFunc(state) {\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n return state.target === NodeMaterialBlockTargets.Vertex ? \"textureSampleLevel\" : \"textureSample\";\n }\n return this.lod.isConnected ? \"texture2DLodEXT\" : \"texture2D\";\n }\n get _samplerLodSuffix() {\n return this.lod.isConnected ? `, ${this.lod.associatedVariableName}` : \"\";\n }\n _generateTextureSample(uv, state) {\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n const isVertex = state.target === NodeMaterialBlockTargets.Vertex;\n return `${this._samplerFunc(state)}(${this.samplerName},${this.samplerName + `Sampler`}, ${this._getUVW(uv)}${this._samplerLodSuffix}${isVertex ? \", 0\" : \"\"})`;\n }\n return `${this._samplerFunc(state)}(${this.samplerName}, ${this._getUVW(uv)}${this._samplerLodSuffix})`;\n }\n _generateTextureLookup(state) {\n state.compilationString += `#ifdef ${this._defineName}\\n`;\n state.compilationString += `${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${this._generateTextureSample(state._getVaryingName(this._transformedUVName), state)};\\n`;\n state.compilationString += `#elif defined(${this._mainUVDefineName})\\n`;\n state.compilationString += `${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${this._generateTextureSample(this._mainUVName ? state._getVaryingName(this._mainUVName) : this.uv.associatedVariableName, state)}${this._samplerLodSuffix};\\n`;\n state.compilationString += `#endif\\n`;\n }\n _writeTextureRead(state, vertexMode = false) {\n const uvInput = this.uv;\n if (vertexMode) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n return;\n }\n this._generateTextureLookup(state);\n return;\n }\n if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {\n state.compilationString += `${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${this._generateTextureSample(uvInput.associatedVariableName, state)}${this._samplerLodSuffix};\\n`;\n return;\n }\n this._generateTextureLookup(state);\n }\n _generateConversionCode(state, output, swizzle) {\n if (swizzle !== \"a\") {\n // no conversion if the output is \"a\" (alpha)\n if (!this.texture || !this.texture.gammaSpace) {\n state.compilationString += `#ifdef ${this._linearDefineName}\r\n ${output.associatedVariableName} = toGammaSpace(${output.associatedVariableName});\r\n #endif\r\n `;\n }\n state.compilationString += `#ifdef ${this._gammaDefineName}\r\n ${output.associatedVariableName} = ${state._toLinearSpace(output)};\r\n #endif\r\n `;\n }\n }\n _writeOutput(state, output, swizzle, vertexMode = false) {\n if (vertexMode) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n return;\n }\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle};\\n`;\n this._generateConversionCode(state, output, swizzle);\n return;\n }\n if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle};\\n`;\n this._generateConversionCode(state, output, swizzle);\n return;\n }\n let complement = \"\";\n if (!this.disableLevelMultiplication) {\n complement = ` * ${(state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"uniforms.\" : \"\") + this._textureInfoName}`;\n }\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle}${complement};\\n`;\n this._generateConversionCode(state, output, swizzle);\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (this.source.isConnected) {\n this._imageSource = this.source.connectedPoint.ownerBlock;\n }\n else {\n this._imageSource = null;\n }\n if (state.target === NodeMaterialBlockTargets.Vertex || this._fragmentOnly || state.target === NodeMaterialBlockTargets.Fragment) {\n this._tempTextureRead = state._getFreeVariableName(\"tempTextureRead\");\n this._linearDefineName = state._getFreeDefineName(\"ISLINEAR\");\n this._gammaDefineName = state._getFreeDefineName(\"ISGAMMA\");\n }\n if ((!this._isMixed && state.target === NodeMaterialBlockTargets.Fragment) || (this._isMixed && state.target === NodeMaterialBlockTargets.Vertex)) {\n if (!this._imageSource) {\n const varName = state._getFreeVariableName(this.name);\n this._samplerName = varName + \"Texture\";\n if (this._texture?._texture?.is2DArray) {\n state._emit2DArraySampler(this._samplerName);\n }\n else {\n state._emit2DSampler(this._samplerName);\n }\n }\n // Declarations\n state.sharedData.blockingBlocks.push(this);\n state.sharedData.textureBlocks.push(this);\n state.sharedData.blocksWithDefines.push(this);\n state.sharedData.bindableBlocks.push(this);\n }\n if (state.target !== NodeMaterialBlockTargets.Fragment) {\n // Vertex\n this._injectVertexCode(state);\n return;\n }\n // Fragment\n if (!this._outputs.some((o) => o.isConnectedInFragmentShader)) {\n return;\n }\n if (this._isMixed && !this._imageSource) {\n // Reexport the sampler\n if (this._texture?._texture?.is2DArray) {\n state._emit2DArraySampler(this._samplerName);\n }\n else {\n state._emit2DSampler(this._samplerName);\n }\n }\n const comments = `//${this.name}`;\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\n if (this._isMixed) {\n state._emitUniformFromString(this._textureInfoName, NodeMaterialBlockConnectionPointTypes.Float);\n }\n this._writeTextureRead(state);\n for (const output of this._outputs) {\n if (output.hasEndpoints && output.name !== \"level\") {\n this._writeOutput(state, output, output.name);\n }\n }\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.convertToGammaSpace = ${this.convertToGammaSpace};\\n`;\n codeString += `${this._codeVariableName}.convertToLinearSpace = ${this.convertToLinearSpace};\\n`;\n codeString += `${this._codeVariableName}.disableLevelMultiplication = ${this.disableLevelMultiplication};\\n`;\n if (!this.texture) {\n return codeString;\n }\n codeString += `${this._codeVariableName}.texture = new BABYLON.Texture(\"${this.texture.name}\", null, ${this.texture.noMipmap}, ${this.texture.invertY}, ${this.texture.samplingMode});\\n`;\n codeString += `${this._codeVariableName}.texture.wrapU = ${this.texture.wrapU};\\n`;\n codeString += `${this._codeVariableName}.texture.wrapV = ${this.texture.wrapV};\\n`;\n codeString += `${this._codeVariableName}.texture.uAng = ${this.texture.uAng};\\n`;\n codeString += `${this._codeVariableName}.texture.vAng = ${this.texture.vAng};\\n`;\n codeString += `${this._codeVariableName}.texture.wAng = ${this.texture.wAng};\\n`;\n codeString += `${this._codeVariableName}.texture.uOffset = ${this.texture.uOffset};\\n`;\n codeString += `${this._codeVariableName}.texture.vOffset = ${this.texture.vOffset};\\n`;\n codeString += `${this._codeVariableName}.texture.uScale = ${this.texture.uScale};\\n`;\n codeString += `${this._codeVariableName}.texture.vScale = ${this.texture.vScale};\\n`;\n codeString += `${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.convertToGammaSpace = this.convertToGammaSpace;\n serializationObject.convertToLinearSpace = this.convertToLinearSpace;\n serializationObject.fragmentOnly = this._fragmentOnly;\n serializationObject.disableLevelMultiplication = this.disableLevelMultiplication;\n if (!this.hasImageSource && this.texture && !this.texture.isRenderTarget && this.texture.getClassName() !== \"VideoTexture\") {\n serializationObject.texture = this.texture.serialize();\n }\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl, urlRewriter) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.convertToGammaSpace = serializationObject.convertToGammaSpace;\n this.convertToLinearSpace = !!serializationObject.convertToLinearSpace;\n this._fragmentOnly = !!serializationObject.fragmentOnly;\n this.disableLevelMultiplication = !!serializationObject.disableLevelMultiplication;\n if (serializationObject.texture && !NodeMaterial.IgnoreTexturesAtLoadTime && serializationObject.texture.url !== undefined) {\n if (serializationObject.texture.url.indexOf(\"data:\") === 0) {\n rootUrl = \"\";\n }\n else if (urlRewriter) {\n serializationObject.texture.url = urlRewriter(serializationObject.texture.url);\n serializationObject.texture.name = serializationObject.texture.url;\n }\n this.texture = Texture.Parse(serializationObject.texture, scene, rootUrl);\n }\n }\n}\nRegisterClass(\"BABYLON.TextureBlock\", TextureBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { NodeMaterial } from \"../../nodeMaterial.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { NodeMaterialSystemValues } from \"../../Enums/nodeMaterialSystemValues.js\";\n\nimport { CubeTexture } from \"../../../Textures/cubeTexture.js\";\nimport { Texture } from \"../../../Textures/texture.js\";\nimport { EngineStore } from \"../../../../Engines/engineStore.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\n/**\n * Base block used to read a reflection texture from a sampler\n */\nexport class ReflectionTextureBaseBlock extends NodeMaterialBlock {\n /**\n * Gets or sets the texture associated with the node\n */\n get texture() {\n return this._texture;\n }\n set texture(texture) {\n if (this._texture === texture) {\n return;\n }\n const scene = texture?.getScene() ?? EngineStore.LastCreatedScene;\n if (!texture && scene) {\n scene.markAllMaterialsAsDirty(1, (mat) => {\n return mat.hasTexture(this._texture);\n });\n }\n this._texture = texture;\n if (texture && scene) {\n scene.markAllMaterialsAsDirty(1, (mat) => {\n return mat.hasTexture(texture);\n });\n }\n }\n static _OnGenerateOnlyFragmentCodeChanged(block, _propertyName) {\n const that = block;\n return that._onGenerateOnlyFragmentCodeChanged();\n }\n _onGenerateOnlyFragmentCodeChanged() {\n this._setTarget();\n return true;\n }\n _setTarget() {\n this._setInitialTarget(this.generateOnlyFragmentCode ? NodeMaterialBlockTargets.Fragment : NodeMaterialBlockTargets.VertexAndFragment);\n }\n /**\n * Create a new ReflectionTextureBaseBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.VertexAndFragment);\n /** Indicates that no code should be generated in the vertex shader. Can be useful in some specific circumstances (like when doing ray marching for eg) */\n this.generateOnlyFragmentCode = false;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ReflectionTextureBaseBlock\";\n }\n _getTexture() {\n return this.texture;\n }\n initialize(state) {\n this._initShaderSourceAsync(state.shaderLanguage);\n }\n async _initShaderSourceAsync(shaderLanguage) {\n this._codeIsReady = false;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await import(\"../../../../ShadersWGSL/ShadersInclude/reflectionFunction.js\");\n }\n else {\n await import(\"../../../../Shaders/ShadersInclude/reflectionFunction.js\");\n }\n this._codeIsReady = true;\n this.onCodeIsReadyObservable.notifyObservers(this);\n }\n /**\n * Auto configure the node based on the existing material\n * @param material defines the material to configure\n * @param additionalFilteringInfo defines additional info to be used when filtering inputs (we might want to skip some non relevant blocks)\n */\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.position.isConnected) {\n let positionInput = material.getInputBlockByPredicate((b) => b.isAttribute && b.name === \"position\" && additionalFilteringInfo(b));\n if (!positionInput) {\n positionInput = new InputBlock(\"position\");\n positionInput.setAsAttribute();\n }\n positionInput.output.connectTo(this.position);\n }\n if (!this.world.isConnected) {\n let worldInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.World && additionalFilteringInfo(b));\n if (!worldInput) {\n worldInput = new InputBlock(\"world\");\n worldInput.setAsSystemValue(NodeMaterialSystemValues.World);\n }\n worldInput.output.connectTo(this.world);\n }\n if (this.view && !this.view.isConnected) {\n let viewInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.View && additionalFilteringInfo(b));\n if (!viewInput) {\n viewInput = new InputBlock(\"view\");\n viewInput.setAsSystemValue(NodeMaterialSystemValues.View);\n }\n viewInput.output.connectTo(this.view);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n if (!defines._areTexturesDirty) {\n return;\n }\n const texture = this._getTexture();\n if (!texture || !texture.getTextureMatrix) {\n return;\n }\n defines.setValue(this._define3DName, texture.isCube, true);\n defines.setValue(this._defineLocalCubicName, texture.boundingBoxSize ? true : false, true);\n defines.setValue(this._defineExplicitName, texture.coordinatesMode === 0, true);\n defines.setValue(this._defineSkyboxName, texture.coordinatesMode === 5, true);\n defines.setValue(this._defineCubicName, texture.coordinatesMode === 3 || texture.coordinatesMode === 6, true);\n defines.setValue(\"INVERTCUBICMAP\", texture.coordinatesMode === 6, true);\n defines.setValue(this._defineSphericalName, texture.coordinatesMode === 1, true);\n defines.setValue(this._definePlanarName, texture.coordinatesMode === 2, true);\n defines.setValue(this._defineProjectionName, texture.coordinatesMode === 4, true);\n defines.setValue(this._defineEquirectangularName, texture.coordinatesMode === 7, true);\n defines.setValue(this._defineEquirectangularFixedName, texture.coordinatesMode === 8, true);\n defines.setValue(this._defineMirroredEquirectangularFixedName, texture.coordinatesMode === 9, true);\n }\n isReady() {\n const texture = this._getTexture();\n if (texture && !texture.isReadyOrNotBlocking()) {\n return false;\n }\n return true;\n }\n bind(effect, nodeMaterial, mesh, _subMesh) {\n const texture = this._getTexture();\n if (!mesh || !texture) {\n return;\n }\n effect.setMatrix(this._reflectionMatrixName, texture.getReflectionTextureMatrix());\n if (texture.isCube) {\n effect.setTexture(this._cubeSamplerName, texture);\n }\n else {\n effect.setTexture(this._2DSamplerName, texture);\n }\n if (texture.boundingBoxSize) {\n const cubeTexture = texture;\n effect.setVector3(this._reflectionPositionName, cubeTexture.boundingBoxPosition);\n effect.setVector3(this._reflectionSizeName, cubeTexture.boundingBoxSize);\n }\n }\n /**\n * Gets the code to inject in the vertex shader\n * @param state current state of the node material building\n * @returns the shader code\n */\n handleVertexSide(state) {\n if (this.generateOnlyFragmentCode && state.target === NodeMaterialBlockTargets.Vertex) {\n return \"\";\n }\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n this._define3DName = state._getFreeDefineName(\"REFLECTIONMAP_3D\");\n this._defineCubicName = state._getFreeDefineName(\"REFLECTIONMAP_CUBIC\");\n this._defineSphericalName = state._getFreeDefineName(\"REFLECTIONMAP_SPHERICAL\");\n this._definePlanarName = state._getFreeDefineName(\"REFLECTIONMAP_PLANAR\");\n this._defineProjectionName = state._getFreeDefineName(\"REFLECTIONMAP_PROJECTION\");\n this._defineExplicitName = state._getFreeDefineName(\"REFLECTIONMAP_EXPLICIT\");\n this._defineEquirectangularName = state._getFreeDefineName(\"REFLECTIONMAP_EQUIRECTANGULAR\");\n this._defineLocalCubicName = state._getFreeDefineName(\"USE_LOCAL_REFLECTIONMAP_CUBIC\");\n this._defineMirroredEquirectangularFixedName = state._getFreeDefineName(\"REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\");\n this._defineEquirectangularFixedName = state._getFreeDefineName(\"REFLECTIONMAP_EQUIRECTANGULAR_FIXED\");\n this._defineSkyboxName = state._getFreeDefineName(\"REFLECTIONMAP_SKYBOX\");\n this._defineOppositeZ = state._getFreeDefineName(\"REFLECTIONMAP_OPPOSITEZ\");\n this._reflectionMatrixName = state._getFreeVariableName(\"reflectionMatrix\");\n state._emitUniformFromString(this._reflectionMatrixName, NodeMaterialBlockConnectionPointTypes.Matrix);\n let code = \"\";\n this._worldPositionNameInFragmentOnlyMode = state._getFreeVariableName(\"worldPosition\");\n const worldPosVaryingName = this.generateOnlyFragmentCode ? this._worldPositionNameInFragmentOnlyMode : \"v_\" + this.worldPosition.associatedVariableName;\n if (this.generateOnlyFragmentCode || state._emitVaryingFromString(worldPosVaryingName, NodeMaterialBlockConnectionPointTypes.Vector4)) {\n if (this.generateOnlyFragmentCode) {\n code += `${state._declareLocalVar(worldPosVaryingName, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${this.worldPosition.associatedVariableName};\\n`;\n }\n else {\n code += `${isWebGPU ? \"vertexOutputs.\" : \"\"}${worldPosVaryingName} = ${this.worldPosition.associatedVariableName};\\n`;\n }\n }\n this._positionUVWName = state._getFreeVariableName(\"positionUVW\");\n this._directionWName = state._getFreeVariableName(\"directionW\");\n if (this.generateOnlyFragmentCode || state._emitVaryingFromString(this._positionUVWName, NodeMaterialBlockConnectionPointTypes.Vector3, this._defineSkyboxName)) {\n code += `#ifdef ${this._defineSkyboxName}\\n`;\n if (this.generateOnlyFragmentCode) {\n code += `${state._declareLocalVar(this._positionUVWName, NodeMaterialBlockConnectionPointTypes.Vector3)} = ${this.position.associatedVariableName}.xyz;\\n`;\n }\n else {\n code += `${isWebGPU ? \"vertexOutputs.\" : \"\"}${this._positionUVWName} = ${this.position.associatedVariableName}.xyz;\\n`;\n }\n code += `#endif\\n`;\n }\n if (this.generateOnlyFragmentCode ||\n state._emitVaryingFromString(this._directionWName, NodeMaterialBlockConnectionPointTypes.Vector3, `defined(${this._defineEquirectangularFixedName}) || defined(${this._defineMirroredEquirectangularFixedName})`)) {\n code += `#if defined(${this._defineEquirectangularFixedName}) || defined(${this._defineMirroredEquirectangularFixedName})\\n`;\n if (this.generateOnlyFragmentCode) {\n code += `${state._declareLocalVar(this._directionWName, NodeMaterialBlockConnectionPointTypes.Vector3)} = normalize(vec3${state.fSuffix}(${this.world.associatedVariableName} * vec4${state.fSuffix}(${this.position.associatedVariableName}.xyz, 0.0)));\\n`;\n }\n else {\n code += `${isWebGPU ? \"vertexOutputs.\" : \"\"}${this._directionWName} = normalize(vec3${state.fSuffix}(${this.world.associatedVariableName} * vec4${state.fSuffix}(${this.position.associatedVariableName}.xyz, 0.0)));\\n`;\n }\n code += `#endif\\n`;\n }\n return code;\n }\n /**\n * Handles the inits for the fragment code path\n * @param state node material build state\n */\n handleFragmentSideInits(state) {\n state.sharedData.blockingBlocks.push(this);\n state.sharedData.textureBlocks.push(this);\n // Samplers\n this._cubeSamplerName = state._getFreeVariableName(this.name + \"CubeSampler\");\n state.samplers.push(this._cubeSamplerName);\n this._2DSamplerName = state._getFreeVariableName(this.name + \"2DSampler\");\n state.samplers.push(this._2DSamplerName);\n state._samplerDeclaration += `#ifdef ${this._define3DName}\\n`;\n state._emitCubeSampler(this._cubeSamplerName, \"\", true);\n state._samplerDeclaration += `#else\\n`;\n state._emit2DSampler(this._2DSamplerName, \"\", true);\n state._samplerDeclaration += `#endif\\n`;\n // Fragment\n state.sharedData.blocksWithDefines.push(this);\n state.sharedData.bindableBlocks.push(this);\n const comments = `//${this.name}`;\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\n state._emitFunctionFromInclude(\"reflectionFunction\", comments, {\n replaceStrings: [\n { search: /vec3 computeReflectionCoords/g, replace: \"void DUMMYFUNC\" },\n { search: /fn computeReflectionCoords\\(worldPos: vec4f,worldNormal: vec3f\\)->vec3f/g, replace: \"fn DUMMYFUNC()\" },\n ],\n });\n this._reflectionColorName = state._getFreeVariableName(\"reflectionColor\");\n this._reflectionVectorName = state._getFreeVariableName(\"reflectionUVW\");\n this._reflectionCoordsName = state._getFreeVariableName(\"reflectionCoords\");\n this._reflectionPositionName = state._getFreeVariableName(\"vReflectionPosition\");\n state._emitUniformFromString(this._reflectionPositionName, NodeMaterialBlockConnectionPointTypes.Vector3);\n this._reflectionSizeName = state._getFreeVariableName(\"vReflectionPosition\");\n state._emitUniformFromString(this._reflectionSizeName, NodeMaterialBlockConnectionPointTypes.Vector3);\n }\n /**\n * Generates the reflection coords code for the fragment code path\n * @param state defines the build state\n * @param worldNormalVarName name of the world normal variable\n * @param worldPos name of the world position variable. If not provided, will use the world position connected to this block\n * @param onlyReflectionVector if true, generates code only for the reflection vector computation, not for the reflection coordinates\n * @param doNotEmitInvertZ if true, does not emit the invertZ code\n * @returns the shader code\n */\n handleFragmentSideCodeReflectionCoords(state, worldNormalVarName, worldPos, onlyReflectionVector = false, doNotEmitInvertZ = false) {\n if (!worldPos) {\n worldPos = this.generateOnlyFragmentCode ? this._worldPositionNameInFragmentOnlyMode : `v_${this.worldPosition.associatedVariableName}`;\n }\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n const reflectionMatrix = (isWebGPU ? \"uniforms.\" : \"\") + this._reflectionMatrixName;\n const direction = `normalize(${this._directionWName})`;\n const positionUVW = `${this._positionUVWName}`;\n const vEyePosition = `${this.cameraPosition.associatedVariableName}`;\n const view = `${this.view.associatedVariableName}`;\n worldNormalVarName += \".xyz\";\n let code = `\r\n #ifdef ${this._defineMirroredEquirectangularFixedName}\r\n ${state._declareLocalVar(this._reflectionVectorName, NodeMaterialBlockConnectionPointTypes.Vector3)} = computeMirroredFixedEquirectangularCoords(${worldPos}, ${worldNormalVarName}, ${direction});\r\n #endif\r\n\r\n #ifdef ${this._defineEquirectangularFixedName}\r\n ${state._declareLocalVar(this._reflectionVectorName, NodeMaterialBlockConnectionPointTypes.Vector3)} = computeFixedEquirectangularCoords(${worldPos}, ${worldNormalVarName}, ${direction});\r\n #endif\r\n\r\n #ifdef ${this._defineEquirectangularName}\r\n ${state._declareLocalVar(this._reflectionVectorName, NodeMaterialBlockConnectionPointTypes.Vector3)} = computeEquirectangularCoords(${worldPos}, ${worldNormalVarName}, ${vEyePosition}.xyz, ${reflectionMatrix});\r\n #endif\r\n\r\n #ifdef ${this._defineSphericalName}\r\n ${state._declareLocalVar(this._reflectionVectorName, NodeMaterialBlockConnectionPointTypes.Vector3)} = computeSphericalCoords(${worldPos}, ${worldNormalVarName}, ${view}, ${reflectionMatrix});\r\n #endif\r\n\r\n #ifdef ${this._definePlanarName}\r\n ${state._declareLocalVar(this._reflectionVectorName, NodeMaterialBlockConnectionPointTypes.Vector3)} = computePlanarCoords(${worldPos}, ${worldNormalVarName}, ${vEyePosition}.xyz, ${reflectionMatrix});\r\n #endif\r\n\r\n #ifdef ${this._defineCubicName}\r\n #ifdef ${this._defineLocalCubicName}\r\n ${state._declareLocalVar(this._reflectionVectorName, NodeMaterialBlockConnectionPointTypes.Vector3)} = computeCubicLocalCoords(${worldPos}, ${worldNormalVarName}, ${vEyePosition}.xyz, ${reflectionMatrix}, ${this._reflectionSizeName}, ${this._reflectionPositionName});\r\n #else\r\n ${state._declareLocalVar(this._reflectionVectorName, NodeMaterialBlockConnectionPointTypes.Vector3)} = computeCubicCoords(${worldPos}, ${worldNormalVarName}, ${vEyePosition}.xyz, ${reflectionMatrix});\r\n #endif\r\n #endif\r\n\r\n #ifdef ${this._defineProjectionName}\r\n ${state._declareLocalVar(this._reflectionVectorName, NodeMaterialBlockConnectionPointTypes.Vector3)} = computeProjectionCoords(${worldPos}, ${view}, ${reflectionMatrix});\r\n #endif\r\n\r\n #ifdef ${this._defineSkyboxName}\r\n ${state._declareLocalVar(this._reflectionVectorName, NodeMaterialBlockConnectionPointTypes.Vector3)} = computeSkyBoxCoords(${positionUVW}, ${reflectionMatrix});\r\n #endif\r\n\r\n #ifdef ${this._defineExplicitName}\r\n ${state._declareLocalVar(this._reflectionVectorName, NodeMaterialBlockConnectionPointTypes.Vector3)} = vec3(0, 0, 0);\r\n #endif\\n`;\n if (!doNotEmitInvertZ) {\n code += `#ifdef ${this._defineOppositeZ}\r\n ${this._reflectionVectorName}.z *= -1.0;\r\n #endif\\n`;\n }\n if (!onlyReflectionVector) {\n code += `\r\n #ifdef ${this._define3DName}\r\n ${state._declareLocalVar(this._reflectionCoordsName, NodeMaterialBlockConnectionPointTypes.Vector3)} = ${this._reflectionVectorName};\r\n #else\r\n ${state._declareLocalVar(this._reflectionCoordsName, NodeMaterialBlockConnectionPointTypes.Vector2)} = ${this._reflectionVectorName}.xy;\r\n #ifdef ${this._defineProjectionName}\r\n ${this._reflectionCoordsName} /= ${this._reflectionVectorName}.z;\r\n #endif\r\n ${this._reflectionCoordsName}.y = 1.0 - ${this._reflectionCoordsName}.y;\r\n #endif\\n`;\n }\n return code;\n }\n /**\n * Generates the reflection color code for the fragment code path\n * @param state defines the build state\n * @param lodVarName name of the lod variable\n * @param swizzleLookupTexture swizzle to use for the final color variable\n * @returns the shader code\n */\n handleFragmentSideCodeReflectionColor(state, lodVarName, swizzleLookupTexture = \".rgb\") {\n let colorType = NodeMaterialBlockConnectionPointTypes.Vector4;\n if (swizzleLookupTexture.length === 3) {\n colorType = NodeMaterialBlockConnectionPointTypes.Vector3;\n }\n let code = `${state._declareLocalVar(this._reflectionColorName, colorType)};\r\n #ifdef ${this._define3DName}\\n`;\n if (lodVarName) {\n code += `${this._reflectionColorName} = ${state._generateTextureSampleCubeLOD(this._reflectionVectorName, this._cubeSamplerName, lodVarName)}${swizzleLookupTexture};\\n`;\n }\n else {\n code += `${this._reflectionColorName} = ${state._generateTextureSampleCube(this._reflectionVectorName, this._cubeSamplerName)}${swizzleLookupTexture};\\n`;\n }\n code += `\r\n #else\\n`;\n if (lodVarName) {\n code += `${this._reflectionColorName} =${state._generateTextureSampleLOD(this._reflectionCoordsName, this._2DSamplerName, lodVarName)}${swizzleLookupTexture};\\n`;\n }\n else {\n code += `${this._reflectionColorName} = ${state._generateTextureSample(this._reflectionCoordsName, this._2DSamplerName)}${swizzleLookupTexture};\\n`;\n }\n code += `#endif\\n`;\n return code;\n }\n /**\n * Generates the code corresponding to the connected output points\n * @param state node material build state\n * @param varName name of the variable to output\n * @returns the shader code\n */\n writeOutputs(state, varName) {\n let code = \"\";\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n for (const output of this._outputs) {\n if (output.hasEndpoints) {\n code += `${state._declareOutput(output)} = ${varName}.${output.name};\\n`;\n }\n }\n }\n return code;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n if (!this.texture) {\n return codeString;\n }\n if (this.texture.isCube) {\n const forcedExtension = this.texture.forcedExtension;\n codeString += `${this._codeVariableName}.texture = new BABYLON.CubeTexture(\"${this.texture.name}\", undefined, undefined, ${this.texture.noMipmap}, null, undefined, undefined, undefined, ${this.texture._prefiltered}, ${forcedExtension ? '\"' + forcedExtension + '\"' : \"null\"});\\n`;\n }\n else {\n codeString += `${this._codeVariableName}.texture = new BABYLON.Texture(\"${this.texture.name}\", null);\\n`;\n }\n codeString += `${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n if (this.texture && !this.texture.isRenderTarget) {\n serializationObject.texture = this.texture.serialize();\n }\n serializationObject.generateOnlyFragmentCode = this.generateOnlyFragmentCode;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n if (serializationObject.texture && !NodeMaterial.IgnoreTexturesAtLoadTime) {\n rootUrl = serializationObject.texture.url.indexOf(\"data:\") === 0 ? \"\" : rootUrl;\n if (serializationObject.texture.isCube) {\n this.texture = CubeTexture.Parse(serializationObject.texture, scene, rootUrl);\n }\n else {\n this.texture = Texture.Parse(serializationObject.texture, scene, rootUrl);\n }\n }\n this.generateOnlyFragmentCode = serializationObject.generateOnlyFragmentCode;\n this._setTarget();\n }\n}\n__decorate([\n editableInPropertyPage(\"Generate only fragment code\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n notifiers: { rebuild: true, update: true, onValidation: ReflectionTextureBaseBlock._OnGenerateOnlyFragmentCodeChanged },\n })\n], ReflectionTextureBaseBlock.prototype, \"generateOnlyFragmentCode\", void 0);\nRegisterClass(\"BABYLON.ReflectionTextureBaseBlock\", ReflectionTextureBaseBlock);\n","import { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { NodeMaterialSystemValues } from \"../../Enums/nodeMaterialSystemValues.js\";\nimport { ReflectionTextureBaseBlock } from \"./reflectionTextureBaseBlock.js\";\nimport { Logger } from \"../../../../Misc/logger.js\";\n/**\n * Block used to read a reflection texture from a sampler\n */\nexport class ReflectionTextureBlock extends ReflectionTextureBaseBlock {\n _onGenerateOnlyFragmentCodeChanged() {\n if (this.position.isConnected) {\n this.generateOnlyFragmentCode = !this.generateOnlyFragmentCode;\n Logger.Error(\"The position input must not be connected to be able to switch!\");\n return false;\n }\n if (this.worldPosition.isConnected) {\n this.generateOnlyFragmentCode = !this.generateOnlyFragmentCode;\n Logger.Error(\"The worldPosition input must not be connected to be able to switch!\");\n return false;\n }\n this._setTarget();\n return true;\n }\n _setTarget() {\n super._setTarget();\n this.getInputByName(\"position\").target = this.generateOnlyFragmentCode ? NodeMaterialBlockTargets.Fragment : NodeMaterialBlockTargets.Vertex;\n this.getInputByName(\"worldPosition\").target = this.generateOnlyFragmentCode ? NodeMaterialBlockTargets.Fragment : NodeMaterialBlockTargets.Vertex;\n }\n /**\n * Create a new ReflectionTextureBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"position\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"worldNormal\", NodeMaterialBlockConnectionPointTypes.Vector4, false, NodeMaterialBlockTargets.Fragment); // Flagging as fragment as the normal can be changed by fragment code\n this.registerInput(\"world\", NodeMaterialBlockConnectionPointTypes.Matrix, false, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"cameraPosition\", NodeMaterialBlockConnectionPointTypes.Vector3, false, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"view\", NodeMaterialBlockConnectionPointTypes.Matrix, false, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"rgb\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"rgba\", NodeMaterialBlockConnectionPointTypes.Color4, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"r\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"g\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"b\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"a\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ReflectionTextureBlock\";\n }\n /**\n * Gets the world position input component\n */\n get position() {\n return this._inputs[0];\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[1];\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[2];\n }\n /**\n * Gets the world input component\n */\n get world() {\n return this._inputs[3];\n }\n /**\n * Gets the camera (or eye) position component\n */\n get cameraPosition() {\n return this._inputs[4];\n }\n /**\n * Gets the view input component\n */\n get view() {\n return this._inputs[5];\n }\n /**\n * Gets the rgb output component\n */\n get rgb() {\n return this._outputs[0];\n }\n /**\n * Gets the rgba output component\n */\n get rgba() {\n return this._outputs[1];\n }\n /**\n * Gets the r output component\n */\n get r() {\n return this._outputs[2];\n }\n /**\n * Gets the g output component\n */\n get g() {\n return this._outputs[3];\n }\n /**\n * Gets the b output component\n */\n get b() {\n return this._outputs[4];\n }\n /**\n * Gets the a output component\n */\n get a() {\n return this._outputs[5];\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n super.autoConfigure(material);\n if (!this.cameraPosition.isConnected) {\n let cameraPositionInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.CameraPosition && additionalFilteringInfo(b));\n if (!cameraPositionInput) {\n cameraPositionInput = new InputBlock(\"cameraPosition\");\n cameraPositionInput.setAsSystemValue(NodeMaterialSystemValues.CameraPosition);\n }\n cameraPositionInput.output.connectTo(this.cameraPosition);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (!this.texture) {\n state.compilationString += this.writeOutputs(state, `vec4${state.fSuffix}(0.)`);\n return this;\n }\n if (state.target !== NodeMaterialBlockTargets.Fragment) {\n state.compilationString += this.handleVertexSide(state);\n return this;\n }\n if (this.generateOnlyFragmentCode) {\n state.compilationString += this.handleVertexSide(state);\n }\n this.handleFragmentSideInits(state);\n const normalWUnit = state._getFreeVariableName(\"normalWUnit\");\n state.compilationString += `${state._declareLocalVar(normalWUnit, NodeMaterialBlockConnectionPointTypes.Vector4)} = normalize(${this.worldNormal.associatedVariableName});\\n`;\n state.compilationString += this.handleFragmentSideCodeReflectionCoords(state, normalWUnit);\n state.compilationString += this.handleFragmentSideCodeReflectionColor(state, undefined, \"\");\n state.compilationString += this.writeOutputs(state, this._reflectionColorName);\n return this;\n }\n}\nRegisterClass(\"BABYLON.ReflectionTextureBlock\", ReflectionTextureBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n\n/**\n * Block used to retrieve the depth (zbuffer) of the scene\n * @since 5.0.0\n */\nexport class SceneDepthBlock extends NodeMaterialBlock {\n /**\n * Create a new SceneDepthBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.VertexAndFragment);\n /**\n * Defines if the depth renderer should be setup in non linear mode\n */\n this.useNonLinearDepth = false;\n /**\n * Defines if the depth renderer should be setup in camera space Z mode (if set, useNonLinearDepth has no effect)\n */\n this.storeCameraSpaceZ = false;\n /**\n * Defines if the depth renderer should be setup in full 32 bits float mode\n */\n this.force32itsFloat = false;\n this._isUnique = true;\n this.registerInput(\"uv\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false, NodeMaterialBlockTargets.VertexAndFragment);\n this.registerOutput(\"depth\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector2 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n this._inputs[0]._prioritizeVertex = false;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SceneDepthBlock\";\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[0];\n }\n /**\n * Gets the depth output component\n */\n get depth() {\n return this._outputs[0];\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"textureSampler\");\n }\n get target() {\n if (!this.uv.isConnected) {\n return NodeMaterialBlockTargets.VertexAndFragment;\n }\n if (this.uv.sourceBlock.isInput) {\n return NodeMaterialBlockTargets.VertexAndFragment;\n }\n return NodeMaterialBlockTargets.Fragment;\n }\n _getTexture(scene) {\n const depthRenderer = scene.enableDepthRenderer(undefined, this.useNonLinearDepth, this.force32itsFloat, undefined, this.storeCameraSpaceZ);\n return depthRenderer.getDepthMap();\n }\n bind(effect, nodeMaterial) {\n const texture = this._getTexture(nodeMaterial.getScene());\n effect.setTexture(this._samplerName, texture);\n }\n _injectVertexCode(state) {\n const uvInput = this.uv;\n if (uvInput.connectedPoint.ownerBlock.isInput) {\n const uvInputOwnerBlock = uvInput.connectedPoint.ownerBlock;\n if (!uvInputOwnerBlock.isAttribute) {\n state._emitUniformFromString(uvInput.associatedVariableName, uvInput.type === NodeMaterialBlockConnectionPointTypes.Vector3\n ? NodeMaterialBlockConnectionPointTypes.Vector3\n : uvInput.type === NodeMaterialBlockConnectionPointTypes.Vector4\n ? NodeMaterialBlockConnectionPointTypes.Vector4\n : NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n }\n this._mainUVName = \"vMain\" + uvInput.associatedVariableName;\n state._emitVaryingFromString(this._mainUVName, NodeMaterialBlockConnectionPointTypes.Vector2);\n state.compilationString += `${this._mainUVName} = ${uvInput.associatedVariableName}.xy;\\n`;\n if (!this._outputs.some((o) => o.isConnectedInVertexShader)) {\n return;\n }\n this._writeTextureRead(state, true);\n for (const output of this._outputs) {\n if (output.hasEndpoints) {\n this._writeOutput(state, output, \"r\", true);\n }\n }\n }\n _writeTextureRead(state, vertexMode = false) {\n const uvInput = this.uv;\n if (vertexMode) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n return;\n }\n const textureReadFunc = state.shaderLanguage === 0 /* ShaderLanguage.GLSL */\n ? `texture2D(${this._samplerName},`\n : `textureSampleLevel(${this._samplerName}, ${this._samplerName + `Sampler`},`;\n const complement = state.shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? \"\" : \", 0\";\n state.compilationString += `${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)}= ${textureReadFunc} ${uvInput.associatedVariableName}.xy${complement});\\n`;\n return;\n }\n const textureReadFunc = state.shaderLanguage === 0 /* ShaderLanguage.GLSL */\n ? `texture2D(${this._samplerName},`\n : `textureSample(${this._samplerName}, ${this._samplerName + `Sampler`},`;\n if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {\n state.compilationString += `${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${textureReadFunc} ${uvInput.associatedVariableName}.xy);\\n`;\n return;\n }\n state.compilationString += `${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${textureReadFunc} ${this._mainUVName});\\n`;\n }\n _writeOutput(state, output, swizzle, vertexMode = false) {\n if (vertexMode) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n return;\n }\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle};\\n`;\n return;\n }\n if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle};\\n`;\n return;\n }\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle};\\n`;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._samplerName = state._getFreeVariableName(this.name + \"Sampler\");\n this._tempTextureRead = state._getFreeVariableName(\"tempTextureRead\");\n if (state.sharedData.bindableBlocks.indexOf(this) < 0) {\n state.sharedData.bindableBlocks.push(this);\n }\n if (state.target !== NodeMaterialBlockTargets.Fragment) {\n // Vertex\n state._emit2DSampler(this._samplerName);\n this._injectVertexCode(state);\n return;\n }\n // Fragment\n if (!this._outputs.some((o) => o.isConnectedInFragmentShader)) {\n return;\n }\n state._emit2DSampler(this._samplerName);\n this._writeTextureRead(state);\n for (const output of this._outputs) {\n if (output.hasEndpoints) {\n this._writeOutput(state, output, \"r\");\n }\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.useNonLinearDepth = this.useNonLinearDepth;\n serializationObject.storeCameraSpaceZ = this.storeCameraSpaceZ;\n serializationObject.force32itsFloat = this.force32itsFloat;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.useNonLinearDepth = serializationObject.useNonLinearDepth;\n this.storeCameraSpaceZ = !!serializationObject.storeCameraSpaceZ;\n this.force32itsFloat = serializationObject.force32itsFloat;\n }\n}\n__decorate([\n editableInPropertyPage(\"Use non linear depth\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n embedded: true,\n notifiers: {\n activatePreviewCommand: true,\n callback: (scene, block) => {\n const sceneDepthBlock = block;\n let retVal = false;\n if (sceneDepthBlock.useNonLinearDepth) {\n sceneDepthBlock.storeCameraSpaceZ = false;\n retVal = true;\n }\n if (scene) {\n scene.disableDepthRenderer();\n }\n return retVal;\n },\n },\n })\n], SceneDepthBlock.prototype, \"useNonLinearDepth\", void 0);\n__decorate([\n editableInPropertyPage(\"Store Camera space Z\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n notifiers: {\n activatePreviewCommand: true,\n callback: (scene, block) => {\n const sceneDepthBlock = block;\n let retVal = false;\n if (sceneDepthBlock.storeCameraSpaceZ) {\n sceneDepthBlock.useNonLinearDepth = false;\n retVal = true;\n }\n if (scene) {\n scene.disableDepthRenderer();\n }\n return retVal;\n },\n },\n })\n], SceneDepthBlock.prototype, \"storeCameraSpaceZ\", void 0);\n__decorate([\n editableInPropertyPage(\"Force 32 bits float\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n notifiers: { activatePreviewCommand: true, callback: (scene) => scene?.disableDepthRenderer() },\n })\n], SceneDepthBlock.prototype, \"force32itsFloat\", void 0);\nRegisterClass(\"BABYLON.SceneDepthBlock\", SceneDepthBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { bindClipPlane } from \"../../../../Materials/clipPlaneMaterialHelper.js\";\n/**\n * Block used to implement clip planes\n */\nexport class ClipPlanesBlock extends NodeMaterialBlock {\n /**\n * Create a new ClipPlanesBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.VertexAndFragment, true);\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ClipPlanesBlock\";\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"vClipPlane\");\n state._excludeVariableName(\"fClipDistance\");\n state._excludeVariableName(\"vClipPlane2\");\n state._excludeVariableName(\"fClipDistance2\");\n state._excludeVariableName(\"vClipPlane3\");\n state._excludeVariableName(\"fClipDistance3\");\n state._excludeVariableName(\"vClipPlane4\");\n state._excludeVariableName(\"fClipDistance4\");\n state._excludeVariableName(\"vClipPlane5\");\n state._excludeVariableName(\"fClipDistance5\");\n state._excludeVariableName(\"vClipPlane6\");\n state._excludeVariableName(\"fClipDistance6\");\n this._initShaderSourceAsync(state.shaderLanguage);\n }\n async _initShaderSourceAsync(shaderLanguage) {\n this._codeIsReady = false;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([\n import(\"../../../../ShadersWGSL/ShadersInclude/clipPlaneFragment.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/clipPlaneVertex.js\"),\n import(\"../../../../ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js\"),\n ]);\n }\n else {\n await Promise.all([\n import(\"../../../../Shaders/ShadersInclude/clipPlaneFragment.js\"),\n import(\"../../../../Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js\"),\n import(\"../../../../Shaders/ShadersInclude/clipPlaneVertex.js\"),\n import(\"../../../../Shaders/ShadersInclude/clipPlaneVertexDeclaration.js\"),\n ]);\n }\n this._codeIsReady = true;\n this.onCodeIsReadyObservable.notifyObservers(this);\n }\n /**\n * Gets the worldPosition input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n get target() {\n return NodeMaterialBlockTargets.VertexAndFragment;\n }\n set target(value) { }\n prepareDefines(mesh, nodeMaterial, defines) {\n const scene = mesh.getScene();\n const useClipPlane1 = (nodeMaterial.clipPlane ?? scene.clipPlane) ? true : false;\n const useClipPlane2 = (nodeMaterial.clipPlane2 ?? scene.clipPlane2) ? true : false;\n const useClipPlane3 = (nodeMaterial.clipPlane3 ?? scene.clipPlane3) ? true : false;\n const useClipPlane4 = (nodeMaterial.clipPlane4 ?? scene.clipPlane4) ? true : false;\n const useClipPlane5 = (nodeMaterial.clipPlane5 ?? scene.clipPlane5) ? true : false;\n const useClipPlane6 = (nodeMaterial.clipPlane6 ?? scene.clipPlane6) ? true : false;\n defines.setValue(\"CLIPPLANE\", useClipPlane1, true);\n defines.setValue(\"CLIPPLANE2\", useClipPlane2, true);\n defines.setValue(\"CLIPPLANE3\", useClipPlane3, true);\n defines.setValue(\"CLIPPLANE4\", useClipPlane4, true);\n defines.setValue(\"CLIPPLANE5\", useClipPlane5, true);\n defines.setValue(\"CLIPPLANE6\", useClipPlane6, true);\n }\n bind(effect, nodeMaterial, mesh) {\n if (!mesh) {\n return;\n }\n const scene = mesh.getScene();\n bindClipPlane(effect, nodeMaterial, scene);\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const comments = `//${this.name}`;\n if (state.target !== NodeMaterialBlockTargets.Fragment) {\n // Vertex\n const worldPos = this.worldPosition;\n state._emitFunctionFromInclude(\"clipPlaneVertexDeclaration\", comments, {\n replaceStrings: [{ search: /uniform vec4 vClipPlane\\d*;/g, replace: \"\" }],\n });\n state.compilationString += state._emitCodeFromInclude(\"clipPlaneVertex\", comments, {\n replaceStrings: [{ search: /worldPos/g, replace: worldPos.associatedVariableName }],\n });\n state._emitUniformFromString(\"vClipPlane\", NodeMaterialBlockConnectionPointTypes.Vector4);\n state._emitUniformFromString(\"vClipPlane2\", NodeMaterialBlockConnectionPointTypes.Vector4);\n state._emitUniformFromString(\"vClipPlane3\", NodeMaterialBlockConnectionPointTypes.Vector4);\n state._emitUniformFromString(\"vClipPlane4\", NodeMaterialBlockConnectionPointTypes.Vector4);\n state._emitUniformFromString(\"vClipPlane5\", NodeMaterialBlockConnectionPointTypes.Vector4);\n state._emitUniformFromString(\"vClipPlane6\", NodeMaterialBlockConnectionPointTypes.Vector4);\n return;\n }\n // Fragment\n state.sharedData.bindableBlocks.push(this);\n state.sharedData.blocksWithDefines.push(this);\n state._emitFunctionFromInclude(\"clipPlaneFragmentDeclaration\", comments);\n state.compilationString += state._emitCodeFromInclude(\"clipPlaneFragment\", comments);\n return this;\n }\n}\nRegisterClass(\"BABYLON.ClipPlanesBlock\", ClipPlanesBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\n\nimport { ImageSourceBlock } from \"../Dual/imageSourceBlock.js\";\n/**\n * Block used to read from prepass textures\n */\nexport class PrePassTextureBlock extends NodeMaterialBlock {\n /**\n * The texture associated with the node is the prepass texture\n */\n get texture() {\n return null;\n }\n set texture(value) {\n return;\n }\n /**\n * Creates a new PrePassTextureBlock\n * @param name defines the block name\n * @param target defines the target of that block (VertexAndFragment by default)\n */\n constructor(name, target = NodeMaterialBlockTargets.VertexAndFragment) {\n super(name, target, false);\n this.registerOutput(\"position\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"position\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, ImageSourceBlock, \"ImageSourceBlock\"));\n this.registerOutput(\"localPosition\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"localPosition\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, ImageSourceBlock, \"ImageSourceBlock\"));\n this.registerOutput(\"depth\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"depth\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, ImageSourceBlock, \"ImageSourceBlock\"));\n this.registerOutput(\"screenDepth\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"screenDepth\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, ImageSourceBlock, \"ImageSourceBlock\"));\n this.registerOutput(\"normal\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"normal\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, ImageSourceBlock, \"ImageSourceBlock\"));\n this.registerOutput(\"worldNormal\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"worldNormal\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, ImageSourceBlock, \"ImageSourceBlock\"));\n }\n /**\n * Returns the sampler name associated with the node connection point\n * @param output defines the connection point to get the associated sampler name\n * @returns\n */\n getSamplerName(output) {\n if (output === this._outputs[0]) {\n return this._positionSamplerName;\n }\n if (output === this._outputs[1]) {\n return this._localPositionSamplerName;\n }\n if (output === this._outputs[2]) {\n return this._depthSamplerName;\n }\n if (output === this._outputs[3]) {\n return this._screenSpaceDepthSamplerName;\n }\n if (output === this._outputs[4]) {\n return this._normalSamplerName;\n }\n if (output === this._outputs[5]) {\n return this._worldNormalSamplerName;\n }\n return \"\";\n }\n /**\n * Gets the position texture\n */\n get position() {\n return this._outputs[0];\n }\n /**\n * Gets the local position texture\n */\n get localPosition() {\n return this._outputs[1];\n }\n /**\n * Gets the depth texture\n */\n get depth() {\n return this._outputs[2];\n }\n /**\n * Gets the screen depth texture\n */\n get screenDepth() {\n return this._outputs[3];\n }\n /**\n * Gets the normal texture\n */\n get normal() {\n return this._outputs[4];\n }\n /**\n * Gets the world normal texture\n */\n get worldNormal() {\n return this._outputs[5];\n }\n /**\n * Gets the sampler name associated with this image source\n */\n get positionSamplerName() {\n return this._positionSamplerName;\n }\n /**\n * Gets the sampler name associated with this image source\n */\n get localPositionSamplerName() {\n return this._localPositionSamplerName;\n }\n /**\n * Gets the sampler name associated with this image source\n */\n get normalSamplerName() {\n return this._normalSamplerName;\n }\n /**\n * Gets the sampler name associated with this image source\n */\n get worldNormalSamplerName() {\n return this._worldNormalSamplerName;\n }\n /**\n * Gets the sampler name associated with this image source\n */\n get depthSamplerName() {\n return this._depthSamplerName;\n }\n /**\n * Gets the sampler name associated with this image source\n */\n get linearDepthSamplerName() {\n return this._screenSpaceDepthSamplerName;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PrePassTextureBlock\";\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (state.target === NodeMaterialBlockTargets.Vertex) {\n return;\n }\n this._positionSamplerName = \"prepassPositionSampler\";\n this._depthSamplerName = \"prepassDepthSampler\";\n this._normalSamplerName = \"prepassNormalSampler\";\n this._worldNormalSamplerName = \"prepassWorldNormalSampler\";\n this._localPositionSamplerName = \"prepassLocalPositionSampler\";\n this._screenSpaceDepthSamplerName = \"prepassScreenSpaceDepthSampler\";\n // Unique sampler names for every prepasstexture block\n state.sharedData.variableNames.prepassPositionSampler = 0;\n state.sharedData.variableNames.prepassDepthSampler = 0;\n state.sharedData.variableNames.prepassNormalSampler = 0;\n state.sharedData.variableNames.prepassWorldNormalSampler = 0;\n state.sharedData.variableNames.prepassLocalPositionSampler = 0;\n state.sharedData.variableNames.prepassScreenSpaceDepthSampler = 0;\n // Declarations\n state.sharedData.textureBlocks.push(this);\n state.sharedData.bindableBlocks.push(this);\n if (this.position.isConnected) {\n state._emit2DSampler(this._positionSamplerName);\n }\n if (this.depth.isConnected) {\n state._emit2DSampler(this._depthSamplerName);\n }\n if (this.normal.isConnected) {\n state._emit2DSampler(this._normalSamplerName);\n }\n if (this.worldNormal.isConnected) {\n state._emit2DSampler(this._worldNormalSamplerName);\n }\n if (this.localPosition.isConnected) {\n state._emit2DSampler(this._localPositionSamplerName);\n }\n if (this.screenDepth.isConnected) {\n state._emit2DSampler(this._screenSpaceDepthSamplerName);\n }\n return this;\n }\n bind(effect, nodeMaterial) {\n const scene = nodeMaterial.getScene();\n const prePassRenderer = scene.enablePrePassRenderer();\n if (!prePassRenderer) {\n return;\n }\n const sceneRT = prePassRenderer.defaultRT;\n if (!sceneRT.textures) {\n return;\n }\n if (this.position.isConnected) {\n effect.setTexture(this._positionSamplerName, sceneRT.textures[prePassRenderer.getIndex(1)]);\n }\n if (this.localPosition.isConnected) {\n effect.setTexture(this._localPositionSamplerName, sceneRT.textures[prePassRenderer.getIndex(9)]);\n }\n if (this.depth.isConnected) {\n effect.setTexture(this._depthSamplerName, sceneRT.textures[prePassRenderer.getIndex(5)]);\n }\n if (this.screenDepth.isConnected) {\n effect.setTexture(this._screenSpaceDepthSamplerName, sceneRT.textures[prePassRenderer.getIndex(10)]);\n }\n if (this.normal.isConnected) {\n effect.setTexture(this._normalSamplerName, sceneRT.textures[prePassRenderer.getIndex(6)]);\n }\n if (this.worldNormal.isConnected) {\n effect.setTexture(this._worldNormalSamplerName, sceneRT.textures[prePassRenderer.getIndex(8)]);\n }\n }\n}\nRegisterClass(\"BABYLON.PrePassTextureBlock\", PrePassTextureBlock);\n","import { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\n/**\n * Defines a block used to teleport a value to an endpoint\n */\nexport class NodeMaterialTeleportInBlock extends NodeMaterialBlock {\n /** Gets the list of attached endpoints */\n get endpoints() {\n return this._endpoints;\n }\n /**\n * Gets or sets the target of the block\n */\n get target() {\n const input = this._inputs[0];\n if (input.isConnected) {\n const block = input.connectedPoint.ownerBlock;\n if (block.target !== NodeMaterialBlockTargets.VertexAndFragment) {\n return block.target;\n }\n if (input.connectedPoint.target !== NodeMaterialBlockTargets.VertexAndFragment) {\n return input.connectedPoint.target;\n }\n }\n return this._target;\n }\n set target(value) {\n if ((this._target & value) !== 0) {\n return;\n }\n this._target = value;\n }\n /**\n * Create a new NodeMaterialTeleportInBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this._endpoints = [];\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeMaterialTeleportInBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * @returns a boolean indicating that this connection will be used in the fragment shader\n */\n isConnectedInFragmentShader() {\n return this.endpoints.some((e) => e.output.isConnectedInFragmentShader);\n }\n _dumpCode(uniqueNames, alreadyDumped) {\n let codeString = super._dumpCode(uniqueNames, alreadyDumped);\n for (const endpoint of this.endpoints) {\n if (alreadyDumped.indexOf(endpoint) === -1) {\n codeString += endpoint._dumpCode(uniqueNames, alreadyDumped);\n }\n }\n return codeString;\n }\n /**\n * Checks if the current block is an ancestor of a given block\n * @param block defines the potential descendant block to check\n * @returns true if block is a descendant\n */\n isAnAncestorOf(block) {\n for (const endpoint of this.endpoints) {\n if (endpoint === block) {\n return true;\n }\n if (endpoint.isAnAncestorOf(block)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Add an enpoint to this block\n * @param endpoint define the endpoint to attach to\n */\n attachToEndpoint(endpoint) {\n endpoint.detach();\n this._endpoints.push(endpoint);\n endpoint._entryPoint = this;\n endpoint._outputs[0]._typeConnectionSource = this._inputs[0];\n endpoint._tempEntryPointUniqueId = null;\n endpoint.name = \"> \" + this.name;\n this._outputs = this._endpoints.map((e) => e.output);\n }\n /**\n * Remove enpoint from this block\n * @param endpoint define the endpoint to remove\n */\n detachFromEndpoint(endpoint) {\n const index = this._endpoints.indexOf(endpoint);\n if (index !== -1) {\n this._endpoints.splice(index, 1);\n endpoint._outputs[0]._typeConnectionSource = null;\n endpoint._entryPoint = null;\n this._outputs = this._endpoints.map((e) => e.output);\n }\n }\n /**\n * Release resources\n */\n dispose() {\n super.dispose();\n for (const endpoint of this._endpoints) {\n this.detachFromEndpoint(endpoint);\n }\n this._endpoints = [];\n }\n}\nRegisterClass(\"BABYLON.NodeMaterialTeleportInBlock\", NodeMaterialTeleportInBlock);\n","import { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\n/**\n * Defines a block used to receive a value from a teleport entry point\n */\nexport class NodeMaterialTeleportOutBlock extends NodeMaterialBlock {\n /**\n * Create a new TeleportOutBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /** @internal */\n this._entryPoint = null;\n /** @internal */\n this._tempEntryPointUniqueId = null;\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n }\n /**\n * Gets the entry point\n */\n get entryPoint() {\n return this._entryPoint;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeMaterialTeleportOutBlock\";\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets or sets the target of the block\n */\n get target() {\n return this._entryPoint ? this._entryPoint.target : this._target;\n }\n set target(value) {\n if ((this._target & value) !== 0) {\n return;\n }\n this._target = value;\n }\n /** Detach from entry point */\n detach() {\n if (!this._entryPoint) {\n return;\n }\n this._entryPoint.detachFromEndpoint(this);\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (this.entryPoint) {\n state.compilationString += state._declareOutput(this.output) + ` = ${this.entryPoint.input.associatedVariableName};\\n`;\n }\n }\n /**\n * Clone the current block to a new identical block\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @returns a copy of the current block\n */\n clone(scene, rootUrl = \"\") {\n const clone = super.clone(scene, rootUrl);\n if (this.entryPoint) {\n this.entryPoint.attachToEndpoint(clone);\n }\n return clone;\n }\n _customBuildStep(state, activeBlocks) {\n if (this.entryPoint) {\n this.entryPoint.build(state, activeBlocks);\n }\n }\n _dumpCode(uniqueNames, alreadyDumped) {\n let codeString = \"\";\n if (this.entryPoint) {\n if (alreadyDumped.indexOf(this.entryPoint) === -1) {\n codeString += this.entryPoint._dumpCode(uniqueNames, alreadyDumped);\n }\n }\n return codeString + super._dumpCode(uniqueNames, alreadyDumped);\n }\n _dumpCodeForOutputConnections(alreadyDumped) {\n let codeString = super._dumpCodeForOutputConnections(alreadyDumped);\n if (this.entryPoint) {\n codeString += this.entryPoint._dumpCodeForOutputConnections(alreadyDumped);\n }\n return codeString;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n if (this.entryPoint) {\n codeString += `${this.entryPoint._codeVariableName}.attachToEndpoint(${this._codeVariableName});\\n`;\n }\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.entryPoint = this.entryPoint?.uniqueId ?? \"\";\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this._tempEntryPointUniqueId = serializationObject.entryPoint;\n }\n}\nRegisterClass(\"BABYLON.NodeMaterialTeleportOutBlock\", NodeMaterialTeleportOutBlock);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { BaseMathBlock } from \"./baseMathBlock.js\";\n/**\n * Block used to add 2 vectors\n */\nexport class AddBlock extends BaseMathBlock {\n /**\n * Creates a new AddBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"AddBlock\";\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = ${this.left.associatedVariableName} + ${this.right.associatedVariableName};\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.AddBlock\", AddBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to scale a vector by a float\n */\nexport class ScaleBlock extends NodeMaterialBlock {\n /**\n * Creates a new ScaleBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"factor\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ScaleBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the factor input component\n */\n get factor() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = ${this.input.associatedVariableName} * ${this.factor.associatedVariableName};\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.ScaleBlock\", ScaleBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to clamp a float\n */\nexport class ClampBlock extends NodeMaterialBlock {\n /**\n * Creates a new ClampBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /** Gets or sets the minimum range */\n this.minimum = 0.0;\n /** Gets or sets the maximum range */\n this.maximum = 1.0;\n this.registerInput(\"value\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ClampBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const cast = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? state._getShaderType(this.value.type) : \"\";\n state.compilationString +=\n state._declareOutput(output) +\n ` = clamp(${this.value.associatedVariableName}, ${cast}(${this._writeFloat(this.minimum)}), ${cast}(${this._writeFloat(this.maximum)}));\\n`;\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.minimum = ${this.minimum};\\n`;\n codeString += `${this._codeVariableName}.maximum = ${this.maximum};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.minimum = this.minimum;\n serializationObject.maximum = this.maximum;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.minimum = serializationObject.minimum;\n this.maximum = serializationObject.maximum;\n }\n}\n__decorate([\n editableInPropertyPage(\"Minimum\", 1 /* PropertyTypeForEdition.Float */, undefined, { embedded: true })\n], ClampBlock.prototype, \"minimum\", void 0);\n__decorate([\n editableInPropertyPage(\"Maximum\", 1 /* PropertyTypeForEdition.Float */, undefined, { embedded: true })\n], ClampBlock.prototype, \"maximum\", void 0);\nRegisterClass(\"BABYLON.ClampBlock\", ClampBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to apply a cross product between 2 vectors\n */\nexport class CrossBlock extends NodeMaterialBlock {\n /**\n * Creates a new CrossBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"left\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector2);\n this._inputs[1].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[1].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n this._inputs[1].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CrossBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = cross(${this.left.associatedVariableName}.xyz, ${this.right.associatedVariableName}.xyz);\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.CrossBlock\", CrossBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { ImageSourceBlock } from \"./Dual/imageSourceBlock.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../nodeMaterialConnectionPointCustomObject.js\";\n/**\n * Custom block created from user-defined json\n */\nexport class CustomBlock extends NodeMaterialBlock {\n /**\n * Gets or sets the options for this custom block\n */\n get options() {\n return this._options;\n }\n set options(options) {\n this._deserializeOptions(options);\n }\n /**\n * Creates a new CustomBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CustomBlock\";\n }\n _buildBlock(state) {\n super._buildBlock(state);\n let code = this._code;\n let functionName = this._options.functionName;\n // Replace the TYPE_XXX placeholders (if any)\n this._inputs.forEach((input) => {\n const rexp = new RegExp(\"\\\\{TYPE_\" + input.name + \"\\\\}\", \"gm\");\n const type = state._getGLType(input.type);\n code = code.replace(rexp, type);\n functionName = functionName.replace(rexp, type);\n });\n this._outputs.forEach((output) => {\n const rexp = new RegExp(\"\\\\{TYPE_\" + output.name + \"\\\\}\", \"gm\");\n const type = state._getGLType(output.type);\n code = code.replace(rexp, type);\n functionName = functionName.replace(rexp, type);\n });\n state._emitFunction(functionName, code, \"\");\n // Declare the output variables\n this._outputs.forEach((output) => {\n state.compilationString += state._declareOutput(output) + \";\\n\";\n });\n // Generate the function call\n state.compilationString += functionName + \"(\";\n let hasInput = false;\n this._inputs.forEach((input, index) => {\n if (index > 0) {\n state.compilationString += \", \";\n }\n if (this._inputSamplers && this._inputSamplers.indexOf(input.name) !== -1) {\n state.compilationString += input.connectedPoint?.ownerBlock?.samplerName ?? input.associatedVariableName;\n }\n else {\n state.compilationString += input.associatedVariableName;\n }\n hasInput = true;\n });\n this._outputs.forEach((output, index) => {\n if (index > 0 || hasInput) {\n state.compilationString += \", \";\n }\n state.compilationString += output.associatedVariableName;\n });\n state.compilationString += \");\\n\";\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.options = ${JSON.stringify(this._options)};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.options = this._options;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n this._deserializeOptions(serializationObject.options);\n super._deserialize(serializationObject, scene, rootUrl);\n }\n _deserializeOptions(options) {\n this._options = options;\n this._code = options.code.join(\"\\n\") + \"\\n\";\n this.name = this.name || options.name;\n this.target = NodeMaterialBlockTargets[options.target];\n options.inParameters?.forEach((input, index) => {\n const type = NodeMaterialBlockConnectionPointTypes[input.type];\n if (input.type === \"sampler2D\" || input.type === \"samplerCube\") {\n this._inputSamplers = this._inputSamplers || [];\n this._inputSamplers.push(input.name);\n this.registerInput(input.name, NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(input.name, this, 0 /* NodeMaterialConnectionPointDirection.Input */, ImageSourceBlock, \"ImageSourceBlock\"));\n }\n else {\n this.registerInput(input.name, type);\n }\n Object.defineProperty(this, input.name, {\n get: function () {\n return this._inputs[index];\n },\n enumerable: true,\n configurable: true,\n });\n });\n options.outParameters?.forEach((output, index) => {\n this.registerOutput(output.name, NodeMaterialBlockConnectionPointTypes[output.type]);\n Object.defineProperty(this, output.name, {\n get: function () {\n return this._outputs[index];\n },\n enumerable: true,\n configurable: true,\n });\n if (output.type === \"BasedOnInput\") {\n this._outputs[index]._typeConnectionSource = this._findInputByName(output.typeFromInput)[0];\n }\n });\n options.inLinkedConnectionTypes?.forEach((connection) => {\n this._linkConnectionTypes(this._findInputByName(connection.input1)[1], this._findInputByName(connection.input2)[1]);\n });\n }\n _findInputByName(name) {\n if (!name) {\n return null;\n }\n for (let i = 0; i < this._inputs.length; i++) {\n if (this._inputs[i].name === name) {\n return [this._inputs[i], i];\n }\n }\n return null;\n }\n}\nRegisterClass(\"BABYLON.CustomBlock\", CustomBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to apply a dot product between 2 vectors\n */\nexport class DotBlock extends NodeMaterialBlock {\n /**\n * Creates a new DotBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"left\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n this._inputs[1].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[1].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DotBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = dot(${this.left.associatedVariableName}, ${this.right.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.DotBlock\", DotBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to normalize a vector\n */\nexport class NormalizeBlock extends NodeMaterialBlock {\n /**\n * Creates a new NormalizeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NormalizeBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const input = this._inputs[0];\n state.compilationString += state._declareOutput(output) + ` = normalize(${input.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.NormalizeBlock\", NormalizeBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to create a Color3/4 out of individual inputs (one for each component)\n */\nexport class ColorMergerBlock extends NodeMaterialBlock {\n /**\n * Create a new ColorMergerBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /**\n * Gets or sets the swizzle for r (meaning which component to affect to the output.r)\n */\n this.rSwizzle = \"r\";\n /**\n * Gets or sets the swizzle for g (meaning which component to affect to the output.g)\n */\n this.gSwizzle = \"g\";\n /**\n * Gets or sets the swizzle for b (meaning which component to affect to the output.b)\n */\n this.bSwizzle = \"b\";\n /**\n * Gets or sets the swizzle for a (meaning which component to affect to the output.a)\n */\n this.aSwizzle = \"a\";\n this.registerInput(\"rgb \", NodeMaterialBlockConnectionPointTypes.Color3, true);\n this.registerInput(\"r\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"g\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"b\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"a\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerOutput(\"rgba\", NodeMaterialBlockConnectionPointTypes.Color4);\n this.registerOutput(\"rgb\", NodeMaterialBlockConnectionPointTypes.Color3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ColorMergerBlock\";\n }\n /**\n * Gets the rgb component (input)\n */\n get rgbIn() {\n return this._inputs[0];\n }\n /**\n * Gets the r component (input)\n */\n get r() {\n return this._inputs[1];\n }\n /**\n * Gets the g component (input)\n */\n get g() {\n return this._inputs[2];\n }\n /**\n * Gets the b component (input)\n */\n get b() {\n return this._inputs[3];\n }\n /**\n * Gets the a component (input)\n */\n get a() {\n return this._inputs[4];\n }\n /**\n * Gets the rgba component (output)\n */\n get rgba() {\n return this._outputs[0];\n }\n /**\n * Gets the rgb component (output)\n */\n get rgbOut() {\n return this._outputs[1];\n }\n /**\n * Gets the rgb component (output)\n * @deprecated Please use rgbOut instead.\n */\n get rgb() {\n return this.rgbOut;\n }\n _inputRename(name) {\n if (name === \"rgb \") {\n return \"rgbIn\";\n }\n return name;\n }\n _buildSwizzle(len) {\n const swizzle = this.rSwizzle + this.gSwizzle + this.bSwizzle + this.aSwizzle;\n return \".\" + swizzle.substring(0, len);\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const rInput = this.r;\n const gInput = this.g;\n const bInput = this.b;\n const aInput = this.a;\n const rgbInput = this.rgbIn;\n const color4Output = this._outputs[0];\n const color3Output = this._outputs[1];\n const vec4 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector4);\n const vec3 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector3);\n if (rgbInput.isConnected) {\n if (color4Output.hasEndpoints) {\n state.compilationString +=\n state._declareOutput(color4Output) +\n ` = ${vec4}(${rgbInput.associatedVariableName}, ${aInput.isConnected ? this._writeVariable(aInput) : \"0.0\"})${this._buildSwizzle(4)};\\n`;\n }\n if (color3Output.hasEndpoints) {\n state.compilationString += state._declareOutput(color3Output) + ` = ${rgbInput.associatedVariableName}${this._buildSwizzle(3)};\\n`;\n }\n }\n else {\n if (color4Output.hasEndpoints) {\n state.compilationString +=\n state._declareOutput(color4Output) +\n ` = ${vec4}(${rInput.isConnected ? this._writeVariable(rInput) : \"0.0\"}, ${gInput.isConnected ? this._writeVariable(gInput) : \"0.0\"}, ${bInput.isConnected ? this._writeVariable(bInput) : \"0.0\"}, ${aInput.isConnected ? this._writeVariable(aInput) : \"0.0\"})${this._buildSwizzle(4)};\\n`;\n }\n if (color3Output.hasEndpoints) {\n state.compilationString +=\n state._declareOutput(color3Output) +\n ` = ${vec3}(${rInput.isConnected ? this._writeVariable(rInput) : \"0.0\"}, ${gInput.isConnected ? this._writeVariable(gInput) : \"0.0\"}, ${bInput.isConnected ? this._writeVariable(bInput) : \"0.0\"})${this._buildSwizzle(3)};\\n`;\n }\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.rSwizzle = this.rSwizzle;\n serializationObject.gSwizzle = this.gSwizzle;\n serializationObject.bSwizzle = this.bSwizzle;\n serializationObject.aSwizzle = this.aSwizzle;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.rSwizzle = serializationObject.rSwizzle ?? \"r\";\n this.gSwizzle = serializationObject.gSwizzle ?? \"g\";\n this.bSwizzle = serializationObject.bSwizzle ?? \"b\";\n this.aSwizzle = serializationObject.aSwizzle ?? \"a\";\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.rSwizzle = \"${this.rSwizzle}\";\\n`;\n codeString += `${this._codeVariableName}.gSwizzle = \"${this.gSwizzle}\";\\n`;\n codeString += `${this._codeVariableName}.bSwizzle = \"${this.bSwizzle}\";\\n`;\n codeString += `${this._codeVariableName}.aSwizzle = \"${this.aSwizzle}\";\\n`;\n return codeString;\n }\n}\nRegisterClass(\"BABYLON.ColorMergerBlock\", ColorMergerBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to expand a Vector3/4 into 4 outputs (one for each component)\n */\nexport class VectorSplitterBlock extends NodeMaterialBlock {\n /**\n * Create a new VectorSplitterBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"xyzw\", NodeMaterialBlockConnectionPointTypes.Vector4, true);\n this.registerInput(\"xyz \", NodeMaterialBlockConnectionPointTypes.Vector3, true);\n this.registerInput(\"xy \", NodeMaterialBlockConnectionPointTypes.Vector2, true);\n this.registerOutput(\"xyz\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"xy\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"zw\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"x\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"y\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"z\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"w\", NodeMaterialBlockConnectionPointTypes.Float);\n this.inputsAreExclusive = true;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"VectorSplitterBlock\";\n }\n /**\n * Gets the xyzw component (input)\n */\n get xyzw() {\n return this._inputs[0];\n }\n /**\n * Gets the xyz component (input)\n */\n get xyzIn() {\n return this._inputs[1];\n }\n /**\n * Gets the xy component (input)\n */\n get xyIn() {\n return this._inputs[2];\n }\n /**\n * Gets the xyz component (output)\n */\n get xyzOut() {\n return this._outputs[0];\n }\n /**\n * Gets the xy component (output)\n */\n get xyOut() {\n return this._outputs[1];\n }\n /**\n * Gets the zw component (output)\n */\n get zw() {\n return this._outputs[2];\n }\n /**\n * Gets the x component (output)\n */\n get x() {\n return this._outputs[3];\n }\n /**\n * Gets the y component (output)\n */\n get y() {\n return this._outputs[4];\n }\n /**\n * Gets the z component (output)\n */\n get z() {\n return this._outputs[5];\n }\n /**\n * Gets the w component (output)\n */\n get w() {\n return this._outputs[6];\n }\n _inputRename(name) {\n switch (name) {\n case \"xy \":\n return \"xyIn\";\n case \"xyz \":\n return \"xyzIn\";\n default:\n return name;\n }\n }\n _outputRename(name) {\n switch (name) {\n case \"xy\":\n return \"xyOut\";\n case \"xyz\":\n return \"xyzOut\";\n default:\n return name;\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const input = this.xyzw.isConnected ? this.xyzw : this.xyzIn.isConnected ? this.xyzIn : this.xyIn;\n const xyzOutput = this._outputs[0];\n const xyOutput = this._outputs[1];\n const zwOutput = this._outputs[2];\n const xOutput = this._outputs[3];\n const yOutput = this._outputs[4];\n const zOutput = this._outputs[5];\n const wOutput = this._outputs[6];\n const vec3 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector3);\n if (xyzOutput.hasEndpoints) {\n if (input === this.xyIn) {\n state.compilationString += state._declareOutput(xyzOutput) + ` = ${vec3}(${input.associatedVariableName}, 0.0);\\n`;\n }\n else {\n state.compilationString += state._declareOutput(xyzOutput) + ` = ${input.associatedVariableName}.xyz;\\n`;\n }\n }\n if (zwOutput.hasEndpoints && this.xyzw.isConnected) {\n state.compilationString += state._declareOutput(zwOutput) + ` = ${this.xyzw.associatedVariableName}.zw;\\n`;\n }\n if (xyOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(xyOutput) + ` = ${input.associatedVariableName}.xy;\\n`;\n }\n if (xOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(xOutput) + ` = ${input.associatedVariableName}.x;\\n`;\n }\n if (yOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(yOutput) + ` = ${input.associatedVariableName}.y;\\n`;\n }\n if (zOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(zOutput) + ` = ${input.associatedVariableName}.z;\\n`;\n }\n if (wOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(wOutput) + ` = ${input.associatedVariableName}.w;\\n`;\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.VectorSplitterBlock\", VectorSplitterBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to lerp between 2 values\n */\nexport class LerpBlock extends NodeMaterialBlock {\n /**\n * Creates a new LerpBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"left\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"gradient\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n this._linkConnectionTypes(1, 2, true);\n this._inputs[2].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"LerpBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the gradient operand input component\n */\n get gradient() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString +=\n state._declareOutput(output) + ` = mix(${this.left.associatedVariableName} , ${this.right.associatedVariableName}, ${this.gradient.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.LerpBlock\", LerpBlock);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { BaseMathBlock } from \"./baseMathBlock.js\";\n/**\n * Block used to divide 2 vectors\n */\nexport class DivideBlock extends BaseMathBlock {\n /**\n * Creates a new DivideBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DivideBlock\";\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = ${this.left.associatedVariableName} / ${this.right.associatedVariableName};\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.DivideBlock\", DivideBlock);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { BaseMathBlock } from \"./baseMathBlock.js\";\n/**\n * Block used to subtract 2 vectors\n */\nexport class SubtractBlock extends BaseMathBlock {\n /**\n * Creates a new SubtractBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SubtractBlock\";\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = ${this.left.associatedVariableName} - ${this.right.associatedVariableName};\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.SubtractBlock\", SubtractBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to step a value\n */\nexport class StepBlock extends NodeMaterialBlock {\n /**\n * Creates a new StepBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"value\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerInput(\"edge\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"StepBlock\";\n }\n /**\n * Gets the value operand input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the edge operand input component\n */\n get edge() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = step(${this.edge.associatedVariableName}, ${this.value.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.StepBlock\", StepBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to get the opposite (1 - x) of a value\n */\nexport class OneMinusBlock extends NodeMaterialBlock {\n /**\n * Creates a new OneMinusBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._outputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"OneMinusBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = 1. - ${this.input.associatedVariableName};\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.OneMinusBlock\", OneMinusBlock);\nRegisterClass(\"BABYLON.OppositeBlock\", OneMinusBlock); // Backward compatibility\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeMaterialSystemValues } from \"../Enums/nodeMaterialSystemValues.js\";\nimport { InputBlock } from \"./Input/inputBlock.js\";\n/**\n * Block used to get the view direction\n */\nexport class ViewDirectionBlock extends NodeMaterialBlock {\n /**\n * Creates a new ViewDirectionBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"cameraPosition\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ViewDirectionBlock\";\n }\n /**\n * Gets the world position component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the camera position component\n */\n get cameraPosition() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.cameraPosition.isConnected) {\n let cameraPositionInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.CameraPosition && additionalFilteringInfo(b));\n if (!cameraPositionInput) {\n cameraPositionInput = new InputBlock(\"cameraPosition\");\n cameraPositionInput.setAsSystemValue(NodeMaterialSystemValues.CameraPosition);\n }\n cameraPositionInput.output.connectTo(this.cameraPosition);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString +=\n state._declareOutput(output) + ` = normalize(${this.cameraPosition.associatedVariableName} - ${this.worldPosition.associatedVariableName}.xyz);\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.ViewDirectionBlock\", ViewDirectionBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { InputBlock } from \"./Input/inputBlock.js\";\nimport \"../../../Shaders/ShadersInclude/fresnelFunction.js\";\nimport { ViewDirectionBlock } from \"./viewDirectionBlock.js\";\n/**\n * Block used to compute fresnel value\n */\nexport class FresnelBlock extends NodeMaterialBlock {\n /**\n * Create a new FresnelBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"worldNormal\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"viewDirection\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"bias\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerInput(\"power\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"fresnel\", NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"FresnelBlock\";\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[0];\n }\n /**\n * Gets the view direction input component\n */\n get viewDirection() {\n return this._inputs[1];\n }\n /**\n * Gets the bias input component\n */\n get bias() {\n return this._inputs[2];\n }\n /**\n * Gets the camera (or eye) position component\n */\n get power() {\n return this._inputs[3];\n }\n /**\n * Gets the fresnel output component\n */\n get fresnel() {\n return this._outputs[0];\n }\n autoConfigure(material) {\n if (!this.viewDirection.isConnected) {\n const viewDirectionInput = new ViewDirectionBlock(\"View direction\");\n viewDirectionInput.output.connectTo(this.viewDirection);\n viewDirectionInput.autoConfigure(material);\n }\n if (!this.bias.isConnected) {\n const biasInput = new InputBlock(\"bias\");\n biasInput.value = 0;\n biasInput.output.connectTo(this.bias);\n }\n if (!this.power.isConnected) {\n const powerInput = new InputBlock(\"power\");\n powerInput.value = 1;\n powerInput.output.connectTo(this.power);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const comments = `//${this.name}`;\n state._emitFunctionFromInclude(\"fresnelFunction\", comments, { removeIfDef: true });\n state.compilationString +=\n state._declareOutput(this.fresnel) +\n ` = computeFresnelTerm(${this.viewDirection.associatedVariableName}.xyz, ${this.worldNormal.associatedVariableName}.xyz, ${this.bias.associatedVariableName}, ${this.power.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.FresnelBlock\", FresnelBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to get the max of 2 values\n */\nexport class MaxBlock extends NodeMaterialBlock {\n /**\n * Creates a new MaxBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"left\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MaxBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = max(${this.left.associatedVariableName}, ${this.right.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.MaxBlock\", MaxBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to get the min of 2 values\n */\nexport class MinBlock extends NodeMaterialBlock {\n /**\n * Creates a new MinBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"left\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MinBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = min(${this.left.associatedVariableName}, ${this.right.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.MinBlock\", MinBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to get the distance between 2 values\n */\nexport class DistanceBlock extends NodeMaterialBlock {\n /**\n * Creates a new DistanceBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"left\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n this._inputs[1].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[1].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DistanceBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = length(${this.left.associatedVariableName} - ${this.right.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.DistanceBlock\", DistanceBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to get the length of a vector\n */\nexport class LengthBlock extends NodeMaterialBlock {\n /**\n * Creates a new LengthBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"value\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"LengthBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = length(${this.value.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.LengthBlock\", LengthBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to get negative version of a value (i.e. x * -1)\n */\nexport class NegateBlock extends NodeMaterialBlock {\n /**\n * Creates a new NegateBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"value\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NegateBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = -1.0 * ${this.value.associatedVariableName};\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.NegateBlock\", NegateBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to get the value of the first parameter raised to the power of the second\n */\nexport class PowBlock extends NodeMaterialBlock {\n /**\n * Creates a new PowBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"value\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"power\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PowBlock\";\n }\n /**\n * Gets the value operand input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the power operand input component\n */\n get power() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = pow(max(${this.value.associatedVariableName}, 0.), ${this.power.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.PowBlock\", PowBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport \"../../../Shaders/ShadersInclude/helperFunctions.js\";\n/**\n * Block used to get a random number\n */\nexport class RandomNumberBlock extends NodeMaterialBlock {\n /**\n * Creates a new RandomNumberBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector2 |\n NodeMaterialBlockConnectionPointTypes.Vector3 |\n NodeMaterialBlockConnectionPointTypes.Vector4 |\n NodeMaterialBlockConnectionPointTypes.Color3 |\n NodeMaterialBlockConnectionPointTypes.Color4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RandomNumberBlock\";\n }\n /**\n * Gets the seed input component\n */\n get seed() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const comments = `//${this.name}`;\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\n state.compilationString += state._declareOutput(output) + ` = getRand(${this.seed.associatedVariableName}.xy);\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.RandomNumberBlock\", RandomNumberBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to compute arc tangent of 2 values\n */\nexport class ArcTan2Block extends NodeMaterialBlock {\n /**\n * Creates a new ArcTan2Block\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"x\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerInput(\"y\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ArcTan2Block\";\n }\n /**\n * Gets the x operand input component\n */\n get x() {\n return this._inputs[0];\n }\n /**\n * Gets the y operand input component\n */\n get y() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const func = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"atan2\" : \"atan\";\n state.compilationString += state._declareOutput(output) + ` = ${func}(${this.x.associatedVariableName}, ${this.y.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.ArcTan2Block\", ArcTan2Block);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to smooth step a value\n */\nexport class SmoothStepBlock extends NodeMaterialBlock {\n /**\n * Creates a new SmoothStepBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"value\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"edge0\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerInput(\"edge1\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SmoothStepBlock\";\n }\n /**\n * Gets the value operand input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the first edge operand input component\n */\n get edge0() {\n return this._inputs[1];\n }\n /**\n * Gets the second edge operand input component\n */\n get edge1() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const cast = state._getShaderType(this.value.type);\n state.compilationString +=\n state._declareOutput(output) +\n ` = smoothstep(${cast}(${this.edge0.associatedVariableName}), ${cast}(${this.edge1.associatedVariableName}), ${this.value.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.SmoothStepBlock\", SmoothStepBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to get the reciprocal (1 / x) of a value\n */\nexport class ReciprocalBlock extends NodeMaterialBlock {\n /**\n * Creates a new ReciprocalBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ReciprocalBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n if (this.input.type === NodeMaterialBlockConnectionPointTypes.Matrix) {\n state.compilationString += state._declareOutput(output) + ` = inverse(${this.input.associatedVariableName});\\n`;\n }\n else {\n state.compilationString += state._declareOutput(output) + ` = 1. / ${this.input.associatedVariableName};\\n`;\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.ReciprocalBlock\", ReciprocalBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to replace a color by another one\n */\nexport class ReplaceColorBlock extends NodeMaterialBlock {\n /**\n * Creates a new ReplaceColorBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"value\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"reference\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"distance\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerInput(\"replacement\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n this._linkConnectionTypes(0, 3);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n this._inputs[1].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[1].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n this._inputs[3].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[3].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ReplaceColorBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the reference input component\n */\n get reference() {\n return this._inputs[1];\n }\n /**\n * Gets the distance input component\n */\n get distance() {\n return this._inputs[2];\n }\n /**\n * Gets the replacement input component\n */\n get replacement() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + `;\\n`;\n state.compilationString += `if (length(${this.value.associatedVariableName} - ${this.reference.associatedVariableName}) < ${this.distance.associatedVariableName}) {\\n`;\n state.compilationString += `${output.associatedVariableName} = ${this.replacement.associatedVariableName};\\n`;\n state.compilationString += `} else {\\n`;\n state.compilationString += `${output.associatedVariableName} = ${this.value.associatedVariableName};\\n`;\n state.compilationString += `}\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.ReplaceColorBlock\", ReplaceColorBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to posterize a value\n * @see https://en.wikipedia.org/wiki/Posterization\n */\nexport class PosterizeBlock extends NodeMaterialBlock {\n /**\n * Creates a new PosterizeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"value\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"steps\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n this._inputs[1].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n this._inputs[1].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PosterizeBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the steps input component\n */\n get steps() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString +=\n state._declareOutput(output) +\n ` = floor(${this.value.associatedVariableName} / (1.0 / ${this.steps.associatedVariableName})) * (1.0 / ${this.steps.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.PosterizeBlock\", PosterizeBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Operations supported by the Wave block\n */\nexport var WaveBlockKind;\n(function (WaveBlockKind) {\n /** SawTooth */\n WaveBlockKind[WaveBlockKind[\"SawTooth\"] = 0] = \"SawTooth\";\n /** Square */\n WaveBlockKind[WaveBlockKind[\"Square\"] = 1] = \"Square\";\n /** Triangle */\n WaveBlockKind[WaveBlockKind[\"Triangle\"] = 2] = \"Triangle\";\n})(WaveBlockKind || (WaveBlockKind = {}));\n/**\n * Block used to apply wave operation to floats\n */\nexport class WaveBlock extends NodeMaterialBlock {\n /**\n * Creates a new WaveBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /**\n * Gets or sets the kibnd of wave to be applied by the block\n */\n this.kind = 0 /* WaveBlockKind.SawTooth */;\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"WaveBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n switch (this.kind) {\n case 0 /* WaveBlockKind.SawTooth */: {\n state.compilationString += state._declareOutput(output) + ` = ${this.input.associatedVariableName} - floor(0.5 + ${this.input.associatedVariableName});\\n`;\n break;\n }\n case 1 /* WaveBlockKind.Square */: {\n state.compilationString += state._declareOutput(output) + ` = 1.0 - 2.0 * round(fract(${this.input.associatedVariableName}));\\n`;\n break;\n }\n case 2 /* WaveBlockKind.Triangle */: {\n state.compilationString +=\n state._declareOutput(output) + ` = 2.0 * abs(2.0 * (${this.input.associatedVariableName} - floor(0.5 + ${this.input.associatedVariableName}))) - 1.0;\\n`;\n break;\n }\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.kind = this.kind;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.kind = serializationObject.kind;\n }\n}\n__decorate([\n editableInPropertyPage(\"Kind\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"SawTooth\", value: 0 /* WaveBlockKind.SawTooth */ },\n { label: \"Square\", value: 1 /* WaveBlockKind.Square */ },\n { label: \"Triangle\", value: 2 /* WaveBlockKind.Triangle */ },\n ],\n })\n], WaveBlock.prototype, \"kind\", void 0);\nRegisterClass(\"BABYLON.WaveBlock\", WaveBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { Color3 } from \"../../../Maths/math.color.js\";\nimport { Observable } from \"../../../Misc/observable.js\";\n/**\n * Class used to store a color step for the GradientBlock\n */\nexport class GradientBlockColorStep {\n /**\n * Gets value indicating which step this color is associated with (between 0 and 1)\n */\n get step() {\n return this._step;\n }\n /**\n * Sets a value indicating which step this color is associated with (between 0 and 1)\n */\n set step(val) {\n this._step = val;\n }\n /**\n * Gets the color associated with this step\n */\n get color() {\n return this._color;\n }\n /**\n * Sets the color associated with this step\n */\n set color(val) {\n this._color = val;\n }\n /**\n * Creates a new GradientBlockColorStep\n * @param step defines a value indicating which step this color is associated with (between 0 and 1)\n * @param color defines the color associated with this step\n */\n constructor(step, color) {\n this.step = step;\n this.color = color;\n }\n}\n/**\n * Block used to return a color from a gradient based on an input value between 0 and 1\n */\nexport class GradientBlock extends NodeMaterialBlock {\n /** calls observable when the value is changed*/\n colorStepsUpdated() {\n this.onValueChangedObservable.notifyObservers(this);\n }\n /**\n * Creates a new GradientBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /**\n * Gets or sets the list of color steps\n */\n this.colorSteps = [new GradientBlockColorStep(0, Color3.Black()), new GradientBlockColorStep(1.0, Color3.White())];\n /** Gets an observable raised when the value is changed */\n this.onValueChangedObservable = new Observable();\n this.registerInput(\"gradient\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Color3);\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Float |\n NodeMaterialBlockConnectionPointTypes.Vector2 |\n NodeMaterialBlockConnectionPointTypes.Vector3 |\n NodeMaterialBlockConnectionPointTypes.Vector4 |\n NodeMaterialBlockConnectionPointTypes.Color3 |\n NodeMaterialBlockConnectionPointTypes.Color4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GradientBlock\";\n }\n /**\n * Gets the gradient input component\n */\n get gradient() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _writeColorConstant(index, vec3) {\n const step = this.colorSteps[index];\n return `${vec3}(${step.color.r}, ${step.color.g}, ${step.color.b})`;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const vec3 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector3);\n if (!this.colorSteps.length || !this.gradient.connectedPoint) {\n state.compilationString += state._declareOutput(output) + ` = ${vec3}(0., 0., 0.);\\n`;\n return;\n }\n const tempColor = state._getFreeVariableName(\"gradientTempColor\");\n const tempPosition = state._getFreeVariableName(\"gradientTempPosition\");\n state.compilationString += `${state._declareLocalVar(tempColor, NodeMaterialBlockConnectionPointTypes.Vector3)} = ${this._writeColorConstant(0, vec3)};\\n`;\n state.compilationString += `${state._declareLocalVar(tempPosition, NodeMaterialBlockConnectionPointTypes.Float)};\\n`;\n let gradientSource = this.gradient.associatedVariableName;\n if (this.gradient.connectedPoint.type !== NodeMaterialBlockConnectionPointTypes.Float) {\n gradientSource += \".x\";\n }\n for (let index = 1; index < this.colorSteps.length; index++) {\n const step = this.colorSteps[index];\n const previousStep = this.colorSteps[index - 1];\n state.compilationString += `${tempPosition} = clamp((${gradientSource} - ${state._emitFloat(previousStep.step)}) / (${state._emitFloat(step.step)} - ${state._emitFloat(previousStep.step)}), 0.0, 1.0) * step(${state._emitFloat(index)}, ${state._emitFloat(this.colorSteps.length - 1)});\\n`;\n state.compilationString += `${tempColor} = mix(${tempColor}, ${this._writeColorConstant(index, vec3)}, ${tempPosition});\\n`;\n }\n state.compilationString += state._declareOutput(output) + ` = ${tempColor};\\n`;\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.colorSteps = [];\n for (const step of this.colorSteps) {\n serializationObject.colorSteps.push({\n step: step.step,\n color: {\n r: step.color.r,\n g: step.color.g,\n b: step.color.b,\n },\n });\n }\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.colorSteps.length = 0;\n for (const step of serializationObject.colorSteps) {\n this.colorSteps.push(new GradientBlockColorStep(step.step, new Color3(step.color.r, step.color.g, step.color.b)));\n }\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.colorSteps = [];\\n`;\n for (const colorStep of this.colorSteps) {\n codeString += `${this._codeVariableName}.colorSteps.push(new BABYLON.GradientBlockColorStep(${colorStep.step}, new BABYLON.Color3(${colorStep.color.r}, ${colorStep.color.g}, ${colorStep.color.b})));\\n`;\n }\n return codeString;\n }\n}\nRegisterClass(\"BABYLON.GradientBlock\", GradientBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to normalize lerp between 2 values\n */\nexport class NLerpBlock extends NodeMaterialBlock {\n /**\n * Creates a new NLerpBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"left\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"gradient\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n this._linkConnectionTypes(1, 2, true);\n this._inputs[2].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NLerpBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the gradient operand input component\n */\n get gradient() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString +=\n state._declareOutput(output) +\n ` = normalize(mix(${this.left.associatedVariableName} , ${this.right.associatedVariableName}, ${this.gradient.associatedVariableName}));\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.NLerpBlock\", NLerpBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * block used to Generate a Worley Noise 3D Noise Pattern\n */\n// Source: https://github.com/Erkaman/glsl-worley\n// Converted to BJS by Pryme8\n//\n// Worley Noise 3D\n// Return vec2 value range of -1.0->1.0, F1-F2 respectivly\nexport class WorleyNoise3DBlock extends NodeMaterialBlock {\n /**\n * Creates a new WorleyNoise3DBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /** Gets or sets a boolean indicating that normal should be inverted on X axis */\n this.manhattanDistance = false;\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"jitter\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"x\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"y\", NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"WorleyNoise3DBlock\";\n }\n /**\n * Gets the seed input component\n */\n get seed() {\n return this._inputs[0];\n }\n /**\n * Gets the jitter input component\n */\n get jitter() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the x component\n */\n get x() {\n return this._outputs[1];\n }\n /**\n * Gets the y component\n */\n get y() {\n return this._outputs[2];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (!this.seed.isConnected) {\n return;\n }\n if (!this.output.hasEndpoints && !this.x.hasEndpoints && !this.y.hasEndpoints) {\n return;\n }\n let functionString = `vec3 permute(vec3 x){\\n`;\n functionString += ` return mod((34.0 * x + 1.0) * x, 289.0);\\n`;\n functionString += `}\\n\\n`;\n functionString += `vec3 dist(vec3 x, vec3 y, vec3 z, bool manhattanDistance){\\n`;\n functionString += ` return [manhattanDistance ? abs(x) + abs(y) + abs(z) : (x * x + y * y + z * z)];\\n`;\n functionString += `}\\n\\n`;\n functionString += `vec2 worley(vec3 P, float jitter, bool manhattanDistance){\\n`;\n functionString += ` float K = 0.142857142857; // 1/7\\n`;\n functionString += ` float Ko = 0.428571428571; // 1/2-K/2\\n`;\n functionString += ` float K2 = 0.020408163265306; // 1/(7*7)\\n`;\n functionString += ` float Kz = 0.166666666667; // 1/6\\n`;\n functionString += ` float Kzo = 0.416666666667; // 1/2-1/6*2\\n`;\n functionString += `\\n`;\n functionString += ` vec3 Pi = mod(floor(P), 289.0);\\n`;\n functionString += ` vec3 Pf = fract(P) - 0.5;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 Pfx = Pf.x + vec3(1.0, 0.0, -1.0);\\n`;\n functionString += ` vec3 Pfy = Pf.y + vec3(1.0, 0.0, -1.0);\\n`;\n functionString += ` vec3 Pfz = Pf.z + vec3(1.0, 0.0, -1.0);\\n`;\n functionString += `\\n`;\n functionString += ` vec3 p = permute(Pi.x + vec3(-1.0, 0.0, 1.0));\\n`;\n functionString += ` vec3 p1 = permute(p + Pi.y - 1.0);\\n`;\n functionString += ` vec3 p2 = permute(p + Pi.y);\\n`;\n functionString += ` vec3 p3 = permute(p + Pi.y + 1.0);\\n`;\n functionString += `\\n`;\n functionString += ` vec3 p11 = permute(p1 + Pi.z - 1.0);\\n`;\n functionString += ` vec3 p12 = permute(p1 + Pi.z);\\n`;\n functionString += ` vec3 p13 = permute(p1 + Pi.z + 1.0);\\n`;\n functionString += `\\n`;\n functionString += ` vec3 p21 = permute(p2 + Pi.z - 1.0);\\n`;\n functionString += ` vec3 p22 = permute(p2 + Pi.z);\\n`;\n functionString += ` vec3 p23 = permute(p2 + Pi.z + 1.0);\\n`;\n functionString += `\\n`;\n functionString += ` vec3 p31 = permute(p3 + Pi.z - 1.0);\\n`;\n functionString += ` vec3 p32 = permute(p3 + Pi.z);\\n`;\n functionString += ` vec3 p33 = permute(p3 + Pi.z + 1.0);\\n`;\n functionString += `\\n`;\n functionString += ` vec3 ox11 = fract(p11*K) - Ko;\\n`;\n functionString += ` vec3 oy11 = mod(floor(p11*K), 7.0)*K - Ko;\\n`;\n functionString += ` vec3 oz11 = floor(p11*K2)*Kz - Kzo; // p11 < 289 guaranteed\\n`;\n functionString += `\\n`;\n functionString += ` vec3 ox12 = fract(p12*K) - Ko;\\n`;\n functionString += ` vec3 oy12 = mod(floor(p12*K), 7.0)*K - Ko;\\n`;\n functionString += ` vec3 oz12 = floor(p12*K2)*Kz - Kzo;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 ox13 = fract(p13*K) - Ko;\\n`;\n functionString += ` vec3 oy13 = mod(floor(p13*K), 7.0)*K - Ko;\\n`;\n functionString += ` vec3 oz13 = floor(p13*K2)*Kz - Kzo;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 ox21 = fract(p21*K) - Ko;\\n`;\n functionString += ` vec3 oy21 = mod(floor(p21*K), 7.0)*K - Ko;\\n`;\n functionString += ` vec3 oz21 = floor(p21*K2)*Kz - Kzo;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 ox22 = fract(p22*K) - Ko;\\n`;\n functionString += ` vec3 oy22 = mod(floor(p22*K), 7.0)*K - Ko;\\n`;\n functionString += ` vec3 oz22 = floor(p22*K2)*Kz - Kzo;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 ox23 = fract(p23*K) - Ko;\\n`;\n functionString += ` vec3 oy23 = mod(floor(p23*K), 7.0)*K - Ko;\\n`;\n functionString += ` vec3 oz23 = floor(p23*K2)*Kz - Kzo;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 ox31 = fract(p31*K) - Ko;\\n`;\n functionString += ` vec3 oy31 = mod(floor(p31*K), 7.0)*K - Ko;\\n`;\n functionString += ` vec3 oz31 = floor(p31*K2)*Kz - Kzo;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 ox32 = fract(p32*K) - Ko;\\n`;\n functionString += ` vec3 oy32 = mod(floor(p32*K), 7.0)*K - Ko;\\n`;\n functionString += ` vec3 oz32 = floor(p32*K2)*Kz - Kzo;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 ox33 = fract(p33*K) - Ko;\\n`;\n functionString += ` vec3 oy33 = mod(floor(p33*K), 7.0)*K - Ko;\\n`;\n functionString += ` vec3 oz33 = floor(p33*K2)*Kz - Kzo;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 dx11 = Pfx + jitter*ox11;\\n`;\n functionString += ` vec3 dy11 = Pfy.x + jitter*oy11;\\n`;\n functionString += ` vec3 dz11 = Pfz.x + jitter*oz11;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 dx12 = Pfx + jitter*ox12;\\n`;\n functionString += ` vec3 dy12 = Pfy.x + jitter*oy12;\\n`;\n functionString += ` vec3 dz12 = Pfz.y + jitter*oz12;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 dx13 = Pfx + jitter*ox13;\\n`;\n functionString += ` vec3 dy13 = Pfy.x + jitter*oy13;\\n`;\n functionString += ` vec3 dz13 = Pfz.z + jitter*oz13;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 dx21 = Pfx + jitter*ox21;\\n`;\n functionString += ` vec3 dy21 = Pfy.y + jitter*oy21;\\n`;\n functionString += ` vec3 dz21 = Pfz.x + jitter*oz21;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 dx22 = Pfx + jitter*ox22;\\n`;\n functionString += ` vec3 dy22 = Pfy.y + jitter*oy22;\\n`;\n functionString += ` vec3 dz22 = Pfz.y + jitter*oz22;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 dx23 = Pfx + jitter*ox23;\\n`;\n functionString += ` vec3 dy23 = Pfy.y + jitter*oy23;\\n`;\n functionString += ` vec3 dz23 = Pfz.z + jitter*oz23;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 dx31 = Pfx + jitter*ox31;\\n`;\n functionString += ` vec3 dy31 = Pfy.z + jitter*oy31;\\n`;\n functionString += ` vec3 dz31 = Pfz.x + jitter*oz31;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 dx32 = Pfx + jitter*ox32;\\n`;\n functionString += ` vec3 dy32 = Pfy.z + jitter*oy32;\\n`;\n functionString += ` vec3 dz32 = Pfz.y + jitter*oz32;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 dx33 = Pfx + jitter*ox33;\\n`;\n functionString += ` vec3 dy33 = Pfy.z + jitter*oy33;\\n`;\n functionString += ` vec3 dz33 = Pfz.z + jitter*oz33;\\n`;\n functionString += `\\n`;\n functionString += ` vec3 d11 = dist(dx11, dy11, dz11, manhattanDistance);\\n`;\n functionString += ` vec3 d12 = dist(dx12, dy12, dz12, manhattanDistance);\\n`;\n functionString += ` vec3 d13 = dist(dx13, dy13, dz13, manhattanDistance);\\n`;\n functionString += ` vec3 d21 = dist(dx21, dy21, dz21, manhattanDistance);\\n`;\n functionString += ` vec3 d22 = dist(dx22, dy22, dz22, manhattanDistance);\\n`;\n functionString += ` vec3 d23 = dist(dx23, dy23, dz23, manhattanDistance);\\n`;\n functionString += ` vec3 d31 = dist(dx31, dy31, dz31, manhattanDistance);\\n`;\n functionString += ` vec3 d32 = dist(dx32, dy32, dz32, manhattanDistance);\\n`;\n functionString += ` vec3 d33 = dist(dx33, dy33, dz33, manhattanDistance);\\n`;\n functionString += `\\n`;\n functionString += ` vec3 d1a = min(d11, d12);\\n`;\n functionString += ` d12 = max(d11, d12);\\n`;\n functionString += ` d11 = min(d1a, d13); // Smallest now not in d12 or d13\\n`;\n functionString += ` d13 = max(d1a, d13);\\n`;\n functionString += ` d12 = min(d12, d13); // 2nd smallest now not in d13\\n`;\n functionString += ` vec3 d2a = min(d21, d22);\\n`;\n functionString += ` d22 = max(d21, d22);\\n`;\n functionString += ` d21 = min(d2a, d23); // Smallest now not in d22 or d23\\n`;\n functionString += ` d23 = max(d2a, d23);\\n`;\n functionString += ` d22 = min(d22, d23); // 2nd smallest now not in d23\\n`;\n functionString += ` vec3 d3a = min(d31, d32);\\n`;\n functionString += ` d32 = max(d31, d32);\\n`;\n functionString += ` d31 = min(d3a, d33); // Smallest now not in d32 or d33\\n`;\n functionString += ` d33 = max(d3a, d33);\\n`;\n functionString += ` d32 = min(d32, d33); // 2nd smallest now not in d33\\n`;\n functionString += ` vec3 da = min(d11, d21);\\n`;\n functionString += ` d21 = max(d11, d21);\\n`;\n functionString += ` d11 = min(da, d31); // Smallest now in d11\\n`;\n functionString += ` d31 = max(da, d31); // 2nd smallest now not in d31\\n`;\n functionString += ` if (d11.x >= d11.y) { vec2 temp = d11.yx; d11.x = temp.x; d11.y = temp.y; }\\n`;\n functionString += ` if (d11.x >= d11.z) { vec2 temp = d11.zx; d11.x = temp.x; d11.z = temp.y; }\\n`;\n functionString += ` d12 = min(d12, d21); // 2nd smallest now not in d21\\n`;\n functionString += ` d12 = min(d12, d22); // nor in d22\\n`;\n functionString += ` d12 = min(d12, d31); // nor in d31\\n`;\n functionString += ` d12 = min(d12, d32); // nor in d32\\n`;\n functionString += ` vec2 temp2 = min(d11.yz, d12.xy); // nor in d12.yz\\n`;\n functionString += ` d11.y = temp2.x;\\n`;\n functionString += ` d11.z = temp2.y;\\n`;\n functionString += ` d11.y = min(d11.y, d12.z); // Only two more to go\\n`;\n functionString += ` d11.y = min(d11.y, d11.z); // Done! (Phew!)\\n`;\n functionString += ` return sqrt(d11.xy); // F1, F2\\n`;\n functionString += `}\\n\\n`;\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n functionString = state._babylonSLtoWGSL(functionString);\n }\n else {\n functionString = state._babylonSLtoGLSL(functionString);\n }\n state._emitFunction(\"worley3D\", functionString, \"// Worley3D\");\n const tempVariable = state._getFreeVariableName(\"worleyTemp\");\n state.compilationString += `${state._declareLocalVar(tempVariable, NodeMaterialBlockConnectionPointTypes.Vector2)} = worley(${this.seed.associatedVariableName}, ${this.jitter.associatedVariableName}, ${this.manhattanDistance});\\n`;\n if (this.output.hasEndpoints) {\n state.compilationString += state._declareOutput(this.output) + ` = ${tempVariable};\\n`;\n }\n if (this.x.hasEndpoints) {\n state.compilationString += state._declareOutput(this.x) + ` = ${tempVariable}.x;\\n`;\n }\n if (this.y.hasEndpoints) {\n state.compilationString += state._declareOutput(this.y) + ` = ${tempVariable}.y;\\n`;\n }\n return this;\n }\n /**\n * Exposes the properties to the UI?\n * @returns - boolean indicating if the block has properties or not\n */\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.manhattanDistance = ${this.manhattanDistance};\\n`;\n return codeString;\n }\n /**\n * Exposes the properties to the Serialize?\n * @returns - a serialized object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.manhattanDistance = this.manhattanDistance;\n return serializationObject;\n }\n /**\n * Exposes the properties to the deserialize?\n * @param serializationObject\n * @param scene\n * @param rootUrl\n */\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.manhattanDistance = serializationObject.manhattanDistance;\n }\n}\n__decorate([\n editableInPropertyPage(\"Use Manhattan Distance\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { embedded: true, notifiers: { update: false } })\n], WorleyNoise3DBlock.prototype, \"manhattanDistance\", void 0);\nRegisterClass(\"BABYLON.WorleyNoise3DBlock\", WorleyNoise3DBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * block used to Generate a Simplex Perlin 3d Noise Pattern\n */\n//\n// Wombat\n// An efficient texture-free GLSL procedural noise library\n// Source: https://github.com/BrianSharpe/Wombat\n// Derived from: https://github.com/BrianSharpe/GPU-Noise-Lib\n//\n// I'm not one for copyrights. Use the code however you wish.\n// All I ask is that credit be given back to the blog or myself when appropriate.\n// And also to let me know if you come up with any changes, improvements, thoughts or interesting uses for this stuff. :)\n// Thanks!\n//\n// Brian Sharpe\n// brisharpe CIRCLE_A yahoo DOT com\n// http://briansharpe.wordpress.com\n// https://github.com/BrianSharpe\n//\n//\n// This is a modified version of Stefan Gustavson's and Ian McEwan's work at http://github.com/ashima/webgl-noise\n// Modifications are...\n// - faster random number generation\n// - analytical final normalization\n// - space scaled can have an approx feature size of 1.0\n// - filter kernel changed to fix discontinuities at tetrahedron boundaries\n//\n// Converted to BJS by Pryme8\n//\n// Simplex Perlin Noise 3D\n// Return value range of -1.0->1.0\n//\nexport class SimplexPerlin3DBlock extends NodeMaterialBlock {\n /**\n * Creates a new SimplexPerlin3DBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SimplexPerlin3DBlock\";\n }\n /**\n * Gets the seed operand input component\n */\n get seed() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (!this.seed.isConnected) {\n return;\n }\n if (!this._outputs[0].hasEndpoints) {\n return;\n }\n let functionString = `const float SKEWFACTOR = 1.0/3.0;\\n`;\n functionString += `const float UNSKEWFACTOR = 1.0/6.0;\\n`;\n functionString += `const float SIMPLEX_CORNER_POS = 0.5;\\n`;\n functionString += `const float SIMPLEX_TETRAHADRON_HEIGHT = 0.70710678118654752440084436210485;\\n`;\n functionString += `float SimplexPerlin3D( vec3 source ){\\n`;\n functionString += ` vec3 P = source;\\n`;\n functionString += ` P.x = [P.x == 0. && P.y == 0. && P.z == 0. ? 0.00001 : P.x];\\n`;\n functionString += ` P *= SIMPLEX_TETRAHADRON_HEIGHT;\\n`;\n functionString += ` vec3 Pi = floor( P + dot( P, vec3( SKEWFACTOR) ) );`;\n functionString += ` vec3 x0 = P - Pi + dot(Pi, vec3( UNSKEWFACTOR ) );\\n`;\n functionString += ` vec3 g = step(x0.yzx, x0.xyz);\\n`;\n functionString += ` vec3 l = 1.0 - g;\\n`;\n functionString += ` vec3 Pi_1 = min( g.xyz, l.zxy );\\n`;\n functionString += ` vec3 Pi_2 = max( g.xyz, l.zxy );\\n`;\n functionString += ` vec3 x1 = x0 - Pi_1 + UNSKEWFACTOR;\\n`;\n functionString += ` vec3 x2 = x0 - Pi_2 + SKEWFACTOR;\\n`;\n functionString += ` vec3 x3 = x0 - SIMPLEX_CORNER_POS;\\n`;\n functionString += ` vec4 v1234_x = vec4( x0.x, x1.x, x2.x, x3.x );\\n`;\n functionString += ` vec4 v1234_y = vec4( x0.y, x1.y, x2.y, x3.y );\\n`;\n functionString += ` vec4 v1234_z = vec4( x0.z, x1.z, x2.z, x3.z );\\n`;\n functionString += ` Pi = Pi.xyz - floor(Pi.xyz * ( 1.0 / 69.0 )) * 69.0;\\n`;\n functionString += ` vec3 Pi_inc1 = step( Pi, vec3( 69.0 - 1.5 ) ) * ( Pi + 1.0 );\\n`;\n functionString += ` vec4 Pt = vec4( Pi.xy, Pi_inc1.xy ) + vec2( 50.0, 161.0 ).xyxy;\\n`;\n functionString += ` Pt *= Pt;\\n`;\n functionString += ` vec4 V1xy_V2xy = mix( Pt.xyxy, Pt.zwzw, vec4( Pi_1.xy, Pi_2.xy ) );\\n`;\n functionString += ` Pt = vec4( Pt.x, V1xy_V2xy.xz, Pt.z ) * vec4( Pt.y, V1xy_V2xy.yw, Pt.w );\\n`;\n functionString += ` const vec3 SOMELARGEFLOATS = vec3( 635.298681, 682.357502, 668.926525 );\\n`;\n functionString += ` const vec3 ZINC = vec3( 48.500388, 65.294118, 63.934599 );\\n`;\n functionString += ` vec3 lowz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi.zzz * ZINC.xyz ) );\\n`;\n functionString += ` vec3 highz_mods = vec3( 1.0 / ( SOMELARGEFLOATS.xyz + Pi_inc1.zzz * ZINC.xyz ) );\\n`;\n functionString += ` Pi_1 = [( Pi_1.z < 0.5 ) ? lowz_mods : highz_mods];\\n`;\n functionString += ` Pi_2 = [( Pi_2.z < 0.5 ) ? lowz_mods : highz_mods];\\n`;\n functionString += ` vec4 hash_0 = fract( Pt * vec4( lowz_mods.x, Pi_1.x, Pi_2.x, highz_mods.x ) ) - 0.49999;\\n`;\n functionString += ` vec4 hash_1 = fract( Pt * vec4( lowz_mods.y, Pi_1.y, Pi_2.y, highz_mods.y ) ) - 0.49999;\\n`;\n functionString += ` vec4 hash_2 = fract( Pt * vec4( lowz_mods.z, Pi_1.z, Pi_2.z, highz_mods.z ) ) - 0.49999;\\n`;\n functionString += ` vec4 grad_results = inversesqrt( hash_0 * hash_0 + hash_1 * hash_1 + hash_2 * hash_2 ) * ( hash_0 * v1234_x + hash_1 * v1234_y + hash_2 * v1234_z );\\n`;\n functionString += ` const float FINAL_NORMALIZATION = 37.837227241611314102871574478976;\\n`;\n functionString += ` vec4 kernel_weights = v1234_x * v1234_x + v1234_y * v1234_y + v1234_z * v1234_z;\\n`;\n functionString += ` kernel_weights = max(0.5 - kernel_weights, vec4(0.));\\n`;\n functionString += ` kernel_weights = kernel_weights*kernel_weights*kernel_weights;\\n`;\n functionString += ` return dot( kernel_weights, grad_results ) * FINAL_NORMALIZATION;\\n`;\n functionString += `}\\n`;\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n functionString = state._babylonSLtoWGSL(functionString);\n }\n else {\n functionString = state._babylonSLtoGLSL(functionString);\n }\n state._emitFunction(\"SimplexPerlin3D\", functionString, \"// SimplexPerlin3D\");\n state.compilationString += state._declareOutput(this._outputs[0]) + ` = SimplexPerlin3D(${this.seed.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.SimplexPerlin3DBlock\", SimplexPerlin3DBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to blend normals\n */\nexport class NormalBlendBlock extends NodeMaterialBlock {\n /**\n * Creates a new NormalBlendBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"normalMap0\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"normalMap1\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 |\n NodeMaterialBlockConnectionPointTypes.Color4 |\n NodeMaterialBlockConnectionPointTypes.Vector3 |\n NodeMaterialBlockConnectionPointTypes.Vector4);\n this._inputs[1].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 |\n NodeMaterialBlockConnectionPointTypes.Color4 |\n NodeMaterialBlockConnectionPointTypes.Vector3 |\n NodeMaterialBlockConnectionPointTypes.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NormalBlendBlock\";\n }\n /**\n * Gets the first input component\n */\n get normalMap0() {\n return this._inputs[0];\n }\n /**\n * Gets the second input component\n */\n get normalMap1() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const input0 = this._inputs[0];\n const input1 = this._inputs[1];\n const stepR = state._getFreeVariableName(\"stepR\");\n const stepG = state._getFreeVariableName(\"stepG\");\n state.compilationString += `${state._declareLocalVar(stepR, NodeMaterialBlockConnectionPointTypes.Float)} = step(0.5, ${input0.associatedVariableName}.r);\\n`;\n state.compilationString += `${state._declareLocalVar(stepG, NodeMaterialBlockConnectionPointTypes.Float)} = step(0.5, ${input0.associatedVariableName}.g);\\n`;\n state.compilationString += state._declareOutput(output) + `;\\n`;\n state.compilationString += `${output.associatedVariableName}.r = (1.0 - ${stepR}) * ${input0.associatedVariableName}.r * ${input1.associatedVariableName}.r * 2.0 + ${stepR} * (1.0 - (1.0 - ${input0.associatedVariableName}.r) * (1.0 - ${input1.associatedVariableName}.r) * 2.0);\\n`;\n state.compilationString += `${output.associatedVariableName}.g = (1.0 - ${stepG}) * ${input0.associatedVariableName}.g * ${input1.associatedVariableName}.g * 2.0 + ${stepG} * (1.0 - (1.0 - ${input0.associatedVariableName}.g) * (1.0 - ${input1.associatedVariableName}.g) * 2.0);\\n`;\n state.compilationString += `${output.associatedVariableName}.b = ${input0.associatedVariableName}.b * ${input1.associatedVariableName}.b;\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.NormalBlendBlock\", NormalBlendBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { InputBlock } from \"./Input/inputBlock.js\";\n/**\n * Block used to rotate a 2d vector by a given angle\n */\nexport class Rotate2dBlock extends NodeMaterialBlock {\n /**\n * Creates a new Rotate2dBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerInput(\"angle\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"Rotate2dBlock\";\n }\n /**\n * Gets the input vector\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the input angle\n */\n get angle() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.angle.isConnected) {\n const angleInput = new InputBlock(\"angle\");\n angleInput.value = 0;\n angleInput.output.connectTo(this.angle);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const angle = this.angle;\n const input = this.input;\n state.compilationString +=\n state._declareOutput(output) +\n ` = vec2(cos(${angle.associatedVariableName}) * ${input.associatedVariableName}.x - sin(${angle.associatedVariableName}) * ${input.associatedVariableName}.y, sin(${angle.associatedVariableName}) * ${input.associatedVariableName}.x + cos(${angle.associatedVariableName}) * ${input.associatedVariableName}.y);\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.Rotate2dBlock\", Rotate2dBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to get the reflected vector from a direction and a normal\n */\nexport class ReflectBlock extends NodeMaterialBlock {\n /**\n * Creates a new ReflectBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"incident\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"normal\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector3 |\n NodeMaterialBlockConnectionPointTypes.Vector4 |\n NodeMaterialBlockConnectionPointTypes.Color3 |\n NodeMaterialBlockConnectionPointTypes.Color4);\n this._inputs[1].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector3 |\n NodeMaterialBlockConnectionPointTypes.Vector4 |\n NodeMaterialBlockConnectionPointTypes.Color3 |\n NodeMaterialBlockConnectionPointTypes.Color4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ReflectBlock\";\n }\n /**\n * Gets the incident component\n */\n get incident() {\n return this._inputs[0];\n }\n /**\n * Gets the normal component\n */\n get normal() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString += state._declareOutput(output) + ` = reflect(${this.incident.associatedVariableName}.xyz, ${this.normal.associatedVariableName}.xyz);\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.ReflectBlock\", ReflectBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to get the refracted vector from a direction and a normal\n */\nexport class RefractBlock extends NodeMaterialBlock {\n /**\n * Creates a new RefractBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"incident\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"normal\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"ior\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector3 |\n NodeMaterialBlockConnectionPointTypes.Vector4 |\n NodeMaterialBlockConnectionPointTypes.Color3 |\n NodeMaterialBlockConnectionPointTypes.Color4);\n this._inputs[1].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Vector3 |\n NodeMaterialBlockConnectionPointTypes.Vector4 |\n NodeMaterialBlockConnectionPointTypes.Color3 |\n NodeMaterialBlockConnectionPointTypes.Color4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RefractBlock\";\n }\n /**\n * Gets the incident component\n */\n get incident() {\n return this._inputs[0];\n }\n /**\n * Gets the normal component\n */\n get normal() {\n return this._inputs[1];\n }\n /**\n * Gets the index of refraction component\n */\n get ior() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n state.compilationString +=\n state._declareOutput(output) +\n ` = refract(${this.incident.associatedVariableName}.xyz, ${this.normal.associatedVariableName}.xyz, ${this.ior.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.RefractBlock\", RefractBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to desaturate a color\n */\nexport class DesaturateBlock extends NodeMaterialBlock {\n /**\n * Creates a new DesaturateBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"color\", NodeMaterialBlockConnectionPointTypes.Color3);\n this.registerInput(\"level\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Color3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DesaturateBlock\";\n }\n /**\n * Gets the color operand input component\n */\n get color() {\n return this._inputs[0];\n }\n /**\n * Gets the level operand input component\n */\n get level() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const color = this.color;\n const colorName = color.associatedVariableName;\n const tempMin = state._getFreeVariableName(\"colorMin\");\n const tempMax = state._getFreeVariableName(\"colorMax\");\n const tempMerge = state._getFreeVariableName(\"colorMerge\");\n state.compilationString += `${state._declareLocalVar(tempMin, NodeMaterialBlockConnectionPointTypes.Float)} = min(min(${colorName}.x, ${colorName}.y), ${colorName}.z);\\n`;\n state.compilationString += `${state._declareLocalVar(tempMax, NodeMaterialBlockConnectionPointTypes.Float)} = max(max(${colorName}.x, ${colorName}.y), ${colorName}.z);\\n`;\n state.compilationString += `${state._declareLocalVar(tempMerge, NodeMaterialBlockConnectionPointTypes.Float)} = 0.5 * (${tempMin} + ${tempMax});\\n`;\n state.compilationString +=\n state._declareOutput(output) +\n ` = mix(${colorName}, ${state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector3)}(${tempMerge}, ${tempMerge}, ${tempMerge}), ${this.level.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.DesaturateBlock\", DesaturateBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\n/**\n * Block used to implement the sheen module of the PBR material\n */\nexport class SheenBlock extends NodeMaterialBlock {\n /**\n * Create a new SheenBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n /**\n * If true, the sheen effect is layered above the base BRDF with the albedo-scaling technique.\n * It allows the strength of the sheen effect to not depend on the base color of the material,\n * making it easier to setup and tweak the effect\n */\n this.albedoScaling = false;\n /**\n * Defines if the sheen is linked to the sheen color.\n */\n this.linkSheenWithAlbedo = false;\n this._isUnique = true;\n this.registerInput(\"intensity\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"color\", NodeMaterialBlockConnectionPointTypes.Color3, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"roughness\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"sheen\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"sheen\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, SheenBlock, \"SheenBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"sheenOut\");\n state._excludeVariableName(\"sheenMapData\");\n state._excludeVariableName(\"vSheenColor\");\n state._excludeVariableName(\"vSheenRoughness\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SheenBlock\";\n }\n /**\n * Gets the intensity input component\n */\n get intensity() {\n return this._inputs[0];\n }\n /**\n * Gets the color input component\n */\n get color() {\n return this._inputs[1];\n }\n /**\n * Gets the roughness input component\n */\n get roughness() {\n return this._inputs[2];\n }\n /**\n * Gets the sheen object output component\n */\n get sheen() {\n return this._outputs[0];\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n super.prepareDefines(mesh, nodeMaterial, defines);\n defines.setValue(\"SHEEN\", true);\n defines.setValue(\"SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE\", true, true);\n defines.setValue(\"SHEEN_LINKWITHALBEDO\", this.linkSheenWithAlbedo, true);\n defines.setValue(\"SHEEN_ROUGHNESS\", this.roughness.isConnected, true);\n defines.setValue(\"SHEEN_ALBEDOSCALING\", this.albedoScaling, true);\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module\n * @param state define the build state\n * @returns the shader code\n */\n getCode(reflectionBlock, state) {\n let code = \"\";\n const color = this.color.isConnected ? this.color.associatedVariableName : `vec3${state.fSuffix}(1.)`;\n const intensity = this.intensity.isConnected ? this.intensity.associatedVariableName : \"1.\";\n const roughness = this.roughness.isConnected ? this.roughness.associatedVariableName : \"0.\";\n const texture = `vec4${state.fSuffix}(0.)`;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n code = `#ifdef SHEEN\r\n ${isWebGPU ? \"var sheenOut: sheenOutParams\" : \"sheenOutParams sheenOut\"};\r\n\r\n ${state._declareLocalVar(\"vSheenColor\", NodeMaterialBlockConnectionPointTypes.Vector4)} = vec4${state.fSuffix}(${color}, ${intensity});\r\n\r\n sheenOut = sheenBlock(\r\n vSheenColor\r\n #ifdef SHEEN_ROUGHNESS\r\n , ${roughness}\r\n #endif\r\n , roughness\r\n #ifdef SHEEN_TEXTURE\r\n , ${texture}\r\n ${isWebGPU ? `, ${texture}Sampler` : \"\"}\r\n , 1.0\r\n #endif\r\n , reflectance\r\n #ifdef SHEEN_LINKWITHALBEDO\r\n , baseColor\r\n , surfaceAlbedo\r\n #endif\r\n #ifdef ENVIRONMENTBRDF\r\n , NdotV\r\n , environmentBrdf\r\n #endif\r\n #if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\r\n , AARoughnessFactors\r\n , ${isWebGPU ? \"uniforms.\" : \"\"}${reflectionBlock?._vReflectionMicrosurfaceInfosName}\r\n , ${reflectionBlock?._vReflectionInfosName}\r\n , ${reflectionBlock?.reflectionColor}\r\n , ${isWebGPU ? \"uniforms.\" : \"\"}vLightingIntensity\r\n #ifdef ${reflectionBlock?._define3DName}\r\n , ${reflectionBlock?._cubeSamplerName} \r\n ${isWebGPU ? `, ${reflectionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n #else\r\n , ${reflectionBlock?._2DSamplerName}\r\n ${isWebGPU ? `, ${reflectionBlock?._2DSamplerName}Sampler` : \"\"}\r\n #endif\r\n , reflectionOut.reflectionCoords\r\n , NdotVUnclamped\r\n #ifndef LODBASEDMICROSFURACE\r\n #ifdef ${reflectionBlock?._define3DName}\r\n , ${reflectionBlock?._cubeSamplerName} \r\n ${isWebGPU ? `, ${reflectionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n , ${reflectionBlock?._cubeSamplerName}\r\n ${isWebGPU ? `, ${reflectionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n #else\r\n , ${reflectionBlock?._2DSamplerName}\r\n ${isWebGPU ? `, ${reflectionBlock?._2DSamplerName}Sampler` : \"\"}\r\n , ${reflectionBlock?._2DSamplerName}\r\n ${isWebGPU ? `, ${reflectionBlock?._2DSamplerName}Sampler` : \"\"}\r\n #endif\r\n #endif\r\n #if !defined(${reflectionBlock?._defineSkyboxName}) && defined(RADIANCEOCCLUSION)\r\n , seo\r\n #endif\r\n #if !defined(${reflectionBlock?._defineSkyboxName}) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(${reflectionBlock?._define3DName})\r\n , eho\r\n #endif\r\n #endif\r\n );\r\n\r\n #ifdef SHEEN_LINKWITHALBEDO\r\n surfaceAlbedo = sheenOut.surfaceAlbedo;\r\n #endif\r\n #endif\\n`;\n return code;\n }\n _buildBlock(state) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n state.sharedData.blocksWithDefines.push(this);\n }\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.albedoScaling = ${this.albedoScaling};\\n`;\n codeString += `${this._codeVariableName}.linkSheenWithAlbedo = ${this.linkSheenWithAlbedo};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.albedoScaling = this.albedoScaling;\n serializationObject.linkSheenWithAlbedo = this.linkSheenWithAlbedo;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.albedoScaling = serializationObject.albedoScaling;\n this.linkSheenWithAlbedo = serializationObject.linkSheenWithAlbedo;\n }\n}\n__decorate([\n editableInPropertyPage(\"Albedo scaling\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { embedded: true, notifiers: { update: true } })\n], SheenBlock.prototype, \"albedoScaling\", void 0);\n__decorate([\n editableInPropertyPage(\"Link sheen with albedo\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\", { embedded: true, notifiers: { update: true } })\n], SheenBlock.prototype, \"linkSheenWithAlbedo\", void 0);\nRegisterClass(\"BABYLON.SheenBlock\", SheenBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\nimport { TBNBlock } from \"../Fragment/TBNBlock.js\";\nimport { Logger } from \"../../../../Misc/logger.js\";\n/**\n * Block used to implement the anisotropy module of the PBR material\n */\nexport class AnisotropyBlock extends NodeMaterialBlock {\n /**\n * Create a new AnisotropyBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this._tangentCorrectionFactorName = \"\";\n this._isUnique = true;\n this.registerInput(\"intensity\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"direction\", NodeMaterialBlockConnectionPointTypes.Vector2, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"uv\", NodeMaterialBlockConnectionPointTypes.Vector2, true); // need this property and the next one in case there's no PerturbNormal block connected to the main PBR block\n this.registerInput(\"worldTangent\", NodeMaterialBlockConnectionPointTypes.Vector4, true);\n this.registerInput(\"TBN\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"TBN\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, TBNBlock, \"TBNBlock\"));\n this.registerInput(\"roughness\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"anisotropy\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"anisotropy\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, AnisotropyBlock, \"AnisotropyBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"anisotropicOut\");\n state._excludeVariableName(\"TBN\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"AnisotropyBlock\";\n }\n /**\n * Gets the intensity input component\n */\n get intensity() {\n return this._inputs[0];\n }\n /**\n * Gets the direction input component\n */\n get direction() {\n return this._inputs[1];\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[2];\n }\n /**\n * Gets the worldTangent input component\n */\n get worldTangent() {\n return this._inputs[3];\n }\n /**\n * Gets the TBN input component\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get TBN() {\n return this._inputs[4];\n }\n /**\n * Gets the roughness input component\n */\n get roughness() {\n return this._inputs[5];\n }\n /**\n * Gets the anisotropy object output component\n */\n get anisotropy() {\n return this._outputs[0];\n }\n _generateTBNSpace(state) {\n let code = \"\";\n const comments = `//${this.name}`;\n const uv = this.uv;\n const worldPosition = this.worldPositionConnectionPoint;\n const worldNormal = this.worldNormalConnectionPoint;\n const worldTangent = this.worldTangent;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n if (!uv.isConnected) {\n // we must set the uv input as optional because we may not end up in this method (in case a PerturbNormal block is linked to the PBR material)\n // in which case uv is not required. But if we do come here, we do need the uv, so we have to raise an error but not with throw, else\n // it will stop the building of the node material and will lead to errors in the editor!\n Logger.Error(\"You must connect the 'uv' input of the Anisotropy block!\");\n }\n state._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n const tangentReplaceString = { search: /defined\\(TANGENT\\)/g, replace: worldTangent.isConnected ? \"defined(TANGENT)\" : \"defined(IGNORE)\" };\n const TBN = this.TBN;\n if (TBN.isConnected) {\n state.compilationString += `\r\n #ifdef TBNBLOCK\r\n ${isWebGPU ? \"var TBN\" : \"mat3 TBN\"} = ${TBN.associatedVariableName};\r\n #endif\r\n `;\n }\n else if (worldTangent.isConnected) {\n code += `${state._declareLocalVar(\"tbnNormal\", NodeMaterialBlockConnectionPointTypes.Vector3)} = normalize(${worldNormal.associatedVariableName}.xyz);\\n`;\n code += `${state._declareLocalVar(\"tbnTangent\", NodeMaterialBlockConnectionPointTypes.Vector3)} = normalize(${worldTangent.associatedVariableName}.xyz);\\n`;\n code += `${state._declareLocalVar(\"tbnBitangent\", NodeMaterialBlockConnectionPointTypes.Vector3)} = cross(tbnNormal, tbnTangent) * ${this._tangentCorrectionFactorName};\\n`;\n code += `${isWebGPU ? \"var vTBN\" : \"mat3 vTBN\"} = ${isWebGPU ? \"mat3x3f\" : \"mat3\"}(tbnTangent, tbnBitangent, tbnNormal);\\n`;\n }\n code += `\r\n #if defined(${worldTangent.isConnected ? \"TANGENT\" : \"IGNORE\"}) && defined(NORMAL)\r\n ${isWebGPU ? \"var TBN\" : \"mat3 TBN\"} = vTBN;\r\n #else\r\n ${isWebGPU ? \"var TBN\" : \"mat3 TBN\"} = cotangent_frame(${worldNormal.associatedVariableName + \".xyz\"}, ${\"v_\" + worldPosition.associatedVariableName + \".xyz\"}, ${uv.isConnected ? uv.associatedVariableName : \"vec2(0.)\"}, vec2${state.fSuffix}(1., 1.));\r\n #endif\\n`;\n state._emitFunctionFromInclude(\"bumpFragmentMainFunctions\", comments, {\n replaceStrings: [tangentReplaceString],\n });\n return code;\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param state current state of the node material building\n * @param generateTBNSpace if true, the code needed to create the TBN coordinate space is generated\n * @returns the shader code\n */\n getCode(state, generateTBNSpace = false) {\n let code = \"\";\n if (generateTBNSpace) {\n code += this._generateTBNSpace(state);\n }\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n const intensity = this.intensity.isConnected ? this.intensity.associatedVariableName : \"1.0\";\n const direction = this.direction.isConnected ? this.direction.associatedVariableName : \"vec2(1., 0.)\";\n const roughness = this.roughness.isConnected ? this.roughness.associatedVariableName : \"0.\";\n code += `${isWebGPU ? \"var anisotropicOut: anisotropicOutParams\" : \"anisotropicOutParams anisotropicOut\"};\r\n anisotropicOut = anisotropicBlock(\r\n vec3(${direction}, ${intensity}),\r\n ${roughness},\r\n #ifdef ANISOTROPIC_TEXTURE\r\n vec3(0.),\r\n #endif\r\n TBN,\r\n normalW,\r\n viewDirectionW\r\n );\\n`;\n return code;\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n super.prepareDefines(mesh, nodeMaterial, defines);\n defines.setValue(\"ANISOTROPIC\", true);\n defines.setValue(\"ANISOTROPIC_TEXTURE\", false, true);\n defines.setValue(\"ANISOTROPIC_LEGACY\", !this.roughness.isConnected);\n }\n bind(effect, nodeMaterial, mesh) {\n super.bind(effect, nodeMaterial, mesh);\n if (mesh) {\n effect.setFloat(this._tangentCorrectionFactorName, mesh.getWorldMatrix().determinant() < 0 ? -1 : 1);\n }\n }\n _buildBlock(state) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n state.sharedData.blocksWithDefines.push(this);\n state.sharedData.bindableBlocks.push(this);\n this._tangentCorrectionFactorName = state._getFreeDefineName(\"tangentCorrectionFactor\");\n state._emitUniformFromString(this._tangentCorrectionFactorName, NodeMaterialBlockConnectionPointTypes.Float);\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.AnisotropyBlock\", AnisotropyBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\nimport { ReflectionTextureBaseBlock } from \"../Dual/reflectionTextureBaseBlock.js\";\nimport { Texture } from \"../../../Textures/texture.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { Logger } from \"../../../../Misc/logger.js\";\n/**\n * Block used to implement the reflection module of the PBR material\n */\nexport class ReflectionBlock extends ReflectionTextureBaseBlock {\n _onGenerateOnlyFragmentCodeChanged() {\n if (this.position.isConnected) {\n this.generateOnlyFragmentCode = !this.generateOnlyFragmentCode;\n Logger.Error(\"The position input must not be connected to be able to switch!\");\n return false;\n }\n this._setTarget();\n return true;\n }\n _setTarget() {\n super._setTarget();\n this.getInputByName(\"position\").target = this.generateOnlyFragmentCode ? NodeMaterialBlockTargets.Fragment : NodeMaterialBlockTargets.Vertex;\n if (this.generateOnlyFragmentCode) {\n this.forceIrradianceInFragment = true;\n }\n }\n /**\n * Create a new ReflectionBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Defines if the material uses spherical harmonics vs spherical polynomials for the\n * diffuse part of the IBL.\n */\n this.useSphericalHarmonics = true;\n /**\n * Force the shader to compute irradiance in the fragment shader in order to take bump in account.\n */\n this.forceIrradianceInFragment = false;\n this._isUnique = true;\n this.registerInput(\"position\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"world\", NodeMaterialBlockConnectionPointTypes.Matrix, false, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"color\", NodeMaterialBlockConnectionPointTypes.Color3, true, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"reflection\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"reflection\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, ReflectionBlock, \"ReflectionBlock\"));\n this.position.addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ReflectionBlock\";\n }\n /**\n * Gets the position input component\n */\n get position() {\n return this._inputs[0];\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this.worldPositionConnectionPoint;\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this.worldNormalConnectionPoint;\n }\n /**\n * Gets the world input component\n */\n get world() {\n return this._inputs[1];\n }\n /**\n * Gets the camera (or eye) position component\n */\n get cameraPosition() {\n return this.cameraPositionConnectionPoint;\n }\n /**\n * Gets the view input component\n */\n get view() {\n return this.viewConnectionPoint;\n }\n /**\n * Gets the color input component\n */\n get color() {\n return this._inputs[2];\n }\n /**\n * Gets the reflection object output component\n */\n get reflection() {\n return this._outputs[0];\n }\n /**\n * Returns true if the block has a texture (either its own texture or the environment texture from the scene, if set)\n */\n get hasTexture() {\n return !!this._getTexture();\n }\n /**\n * Gets the reflection color (either the name of the variable if the color input is connected, else a default value)\n */\n get reflectionColor() {\n return this.color.isConnected ? this.color.associatedVariableName : \"vec3(1., 1., 1.)\";\n }\n _getTexture() {\n if (this.texture) {\n return this.texture;\n }\n return this._scene.environmentTexture;\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n super.prepareDefines(mesh, nodeMaterial, defines);\n const reflectionTexture = this._getTexture();\n const reflection = reflectionTexture && reflectionTexture.getTextureMatrix;\n defines.setValue(\"REFLECTION\", reflection, true);\n if (!reflection) {\n return;\n }\n defines.setValue(this._defineLODReflectionAlpha, reflectionTexture.lodLevelInAlpha, true);\n defines.setValue(this._defineLinearSpecularReflection, reflectionTexture.linearSpecularLOD, true);\n defines.setValue(this._defineOppositeZ, this._scene.useRightHandedSystem ? !reflectionTexture.invertZ : reflectionTexture.invertZ, true);\n defines.setValue(\"SPHERICAL_HARMONICS\", this.useSphericalHarmonics, true);\n defines.setValue(\"GAMMAREFLECTION\", reflectionTexture.gammaSpace, true);\n defines.setValue(\"RGBDREFLECTION\", reflectionTexture.isRGBD, true);\n if (reflectionTexture && reflectionTexture.coordinatesMode !== Texture.SKYBOX_MODE) {\n if (reflectionTexture.isCube) {\n defines.setValue(\"USESPHERICALFROMREFLECTIONMAP\", true);\n defines.setValue(\"USEIRRADIANCEMAP\", false);\n if (this.forceIrradianceInFragment || this._scene.getEngine().getCaps().maxVaryingVectors <= 8) {\n defines.setValue(\"USESPHERICALINVERTEX\", false);\n }\n else {\n defines.setValue(\"USESPHERICALINVERTEX\", true);\n }\n }\n }\n }\n bind(effect, nodeMaterial, mesh, subMesh) {\n super.bind(effect, nodeMaterial, mesh);\n const reflectionTexture = this._getTexture();\n if (!reflectionTexture || !subMesh) {\n return;\n }\n if (reflectionTexture.isCube) {\n effect.setTexture(this._cubeSamplerName, reflectionTexture);\n }\n else {\n effect.setTexture(this._2DSamplerName, reflectionTexture);\n }\n const width = reflectionTexture.getSize().width;\n effect.setFloat3(this._vReflectionMicrosurfaceInfosName, width, reflectionTexture.lodGenerationScale, reflectionTexture.lodGenerationOffset);\n effect.setFloat2(this._vReflectionFilteringInfoName, width, Math.log2(width));\n const defines = subMesh.materialDefines;\n const polynomials = reflectionTexture.sphericalPolynomial;\n if (defines.USESPHERICALFROMREFLECTIONMAP && polynomials) {\n if (defines.SPHERICAL_HARMONICS) {\n const preScaledHarmonics = polynomials.preScaledHarmonics;\n effect.setVector3(\"vSphericalL00\", preScaledHarmonics.l00);\n effect.setVector3(\"vSphericalL1_1\", preScaledHarmonics.l1_1);\n effect.setVector3(\"vSphericalL10\", preScaledHarmonics.l10);\n effect.setVector3(\"vSphericalL11\", preScaledHarmonics.l11);\n effect.setVector3(\"vSphericalL2_2\", preScaledHarmonics.l2_2);\n effect.setVector3(\"vSphericalL2_1\", preScaledHarmonics.l2_1);\n effect.setVector3(\"vSphericalL20\", preScaledHarmonics.l20);\n effect.setVector3(\"vSphericalL21\", preScaledHarmonics.l21);\n effect.setVector3(\"vSphericalL22\", preScaledHarmonics.l22);\n }\n else {\n effect.setFloat3(\"vSphericalX\", polynomials.x.x, polynomials.x.y, polynomials.x.z);\n effect.setFloat3(\"vSphericalY\", polynomials.y.x, polynomials.y.y, polynomials.y.z);\n effect.setFloat3(\"vSphericalZ\", polynomials.z.x, polynomials.z.y, polynomials.z.z);\n effect.setFloat3(\"vSphericalXX_ZZ\", polynomials.xx.x - polynomials.zz.x, polynomials.xx.y - polynomials.zz.y, polynomials.xx.z - polynomials.zz.z);\n effect.setFloat3(\"vSphericalYY_ZZ\", polynomials.yy.x - polynomials.zz.x, polynomials.yy.y - polynomials.zz.y, polynomials.yy.z - polynomials.zz.z);\n effect.setFloat3(\"vSphericalZZ\", polynomials.zz.x, polynomials.zz.y, polynomials.zz.z);\n effect.setFloat3(\"vSphericalXY\", polynomials.xy.x, polynomials.xy.y, polynomials.xy.z);\n effect.setFloat3(\"vSphericalYZ\", polynomials.yz.x, polynomials.yz.y, polynomials.yz.z);\n effect.setFloat3(\"vSphericalZX\", polynomials.zx.x, polynomials.zx.y, polynomials.zx.z);\n }\n }\n }\n /**\n * Gets the code to inject in the vertex shader\n * @param state current state of the node material building\n * @returns the shader code\n */\n handleVertexSide(state) {\n let code = super.handleVertexSide(state);\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n state._emitFunctionFromInclude(\"harmonicsFunctions\", `//${this.name}`, {\n replaceStrings: [\n { search: /uniform vec3 vSphericalL00;[\\s\\S]*?uniform vec3 vSphericalL22;/g, replace: \"\" },\n { search: /uniform vec3 vSphericalX;[\\s\\S]*?uniform vec3 vSphericalZX;/g, replace: \"\" },\n ],\n });\n const reflectionVectorName = state._getFreeVariableName(\"reflectionVector\");\n this._vEnvironmentIrradianceName = state._getFreeVariableName(\"vEnvironmentIrradiance\");\n state._emitVaryingFromString(this._vEnvironmentIrradianceName, NodeMaterialBlockConnectionPointTypes.Vector3, \"defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\");\n state._emitUniformFromString(\"vSphericalL00\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\");\n state._emitUniformFromString(\"vSphericalL1_1\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\");\n state._emitUniformFromString(\"vSphericalL10\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\");\n state._emitUniformFromString(\"vSphericalL11\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\");\n state._emitUniformFromString(\"vSphericalL2_2\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\");\n state._emitUniformFromString(\"vSphericalL2_1\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\");\n state._emitUniformFromString(\"vSphericalL20\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\");\n state._emitUniformFromString(\"vSphericalL21\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\");\n state._emitUniformFromString(\"vSphericalL22\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\");\n state._emitUniformFromString(\"vSphericalX\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\", true);\n state._emitUniformFromString(\"vSphericalY\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\", true);\n state._emitUniformFromString(\"vSphericalZ\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\", true);\n state._emitUniformFromString(\"vSphericalXX_ZZ\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\", true);\n state._emitUniformFromString(\"vSphericalYY_ZZ\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\", true);\n state._emitUniformFromString(\"vSphericalZZ\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\", true);\n state._emitUniformFromString(\"vSphericalXY\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\", true);\n state._emitUniformFromString(\"vSphericalYZ\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\", true);\n state._emitUniformFromString(\"vSphericalZX\", NodeMaterialBlockConnectionPointTypes.Vector3, \"SPHERICAL_HARMONICS\", true);\n code += `#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\r\n ${state._declareLocalVar(reflectionVectorName, NodeMaterialBlockConnectionPointTypes.Vector3)} = (${(isWebGPU ? \"uniforms.\" : \"\") + this._reflectionMatrixName} * vec4${state.fSuffix}(normalize(${this.worldNormal.associatedVariableName}).xyz, 0)).xyz;\r\n #ifdef ${this._defineOppositeZ}\r\n ${reflectionVectorName}.z *= -1.0;\r\n #endif\r\n ${isWebGPU ? \"vertexOutputs.\" : \"\"}${this._vEnvironmentIrradianceName} = computeEnvironmentIrradiance(${reflectionVectorName});\r\n #endif\\n`;\n return code;\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param state current state of the node material building\n * @param normalVarName name of the existing variable corresponding to the normal\n * @returns the shader code\n */\n getCode(state, normalVarName) {\n let code = \"\";\n this.handleFragmentSideInits(state);\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n state._emitFunctionFromInclude(\"harmonicsFunctions\", `//${this.name}`, {\n replaceStrings: [\n { search: /uniform vec3 vSphericalL00;[\\s\\S]*?uniform vec3 vSphericalL22;/g, replace: \"\" },\n { search: /uniform vec3 vSphericalX;[\\s\\S]*?uniform vec3 vSphericalZX;/g, replace: \"\" },\n ],\n });\n if (!isWebGPU) {\n state._emitFunction(\"sampleReflection\", `\r\n #ifdef ${this._define3DName}\r\n #define sampleReflection(s, c) textureCube(s, c)\r\n #else\r\n #define sampleReflection(s, c) texture2D(s, c)\r\n #endif\\n`, `//${this.name}`);\n state._emitFunction(\"sampleReflectionLod\", `\r\n #ifdef ${this._define3DName}\r\n #define sampleReflectionLod(s, c, l) textureCubeLodEXT(s, c, l)\r\n #else\r\n #define sampleReflectionLod(s, c, l) texture2DLodEXT(s, c, l)\r\n #endif\\n`, `//${this.name}`);\n }\n const computeReflectionCoordsFunc = isWebGPU\n ? `\r\n fn computeReflectionCoordsPBR(worldPos: vec4f, worldNormal: vec3f) -> vec3f {\r\n ${this.handleFragmentSideCodeReflectionCoords(state, \"worldNormal\", \"worldPos\", true, true)}\r\n return ${this._reflectionVectorName};\r\n }\\n`\n : `\r\n vec3 computeReflectionCoordsPBR(vec4 worldPos, vec3 worldNormal) {\r\n ${this.handleFragmentSideCodeReflectionCoords(state, \"worldNormal\", \"worldPos\", true, true)}\r\n return ${this._reflectionVectorName};\r\n }\\n`;\n state._emitFunction(\"computeReflectionCoordsPBR\", computeReflectionCoordsFunc, `//${this.name}`);\n this._vReflectionMicrosurfaceInfosName = state._getFreeVariableName(\"vReflectionMicrosurfaceInfos\");\n state._emitUniformFromString(this._vReflectionMicrosurfaceInfosName, NodeMaterialBlockConnectionPointTypes.Vector3);\n this._vReflectionInfosName = state._getFreeVariableName(\"vReflectionInfos\");\n this._vReflectionFilteringInfoName = state._getFreeVariableName(\"vReflectionFilteringInfo\");\n state._emitUniformFromString(this._vReflectionFilteringInfoName, NodeMaterialBlockConnectionPointTypes.Vector2);\n code += `#ifdef REFLECTION\r\n ${state._declareLocalVar(this._vReflectionInfosName, NodeMaterialBlockConnectionPointTypes.Vector2)} = vec2${state.fSuffix}(1., 0.);\r\n\r\n ${isWebGPU ? \"var reflectionOut: reflectionOutParams\" : \"reflectionOutParams reflectionOut\"};\r\n\r\n reflectionOut = reflectionBlock(\r\n ${this.generateOnlyFragmentCode ? this._worldPositionNameInFragmentOnlyMode : (isWebGPU ? \"input.\" : \"\") + \"v_\" + this.worldPosition.associatedVariableName}.xyz\r\n , ${normalVarName}\r\n , alphaG\r\n , ${(isWebGPU ? \"uniforms.\" : \"\") + this._vReflectionMicrosurfaceInfosName}\r\n , ${this._vReflectionInfosName}\r\n , ${this.reflectionColor}\r\n #ifdef ANISOTROPIC\r\n ,anisotropicOut\r\n #endif\r\n #if defined(${this._defineLODReflectionAlpha}) && !defined(${this._defineSkyboxName})\r\n ,NdotVUnclamped\r\n #endif\r\n #ifdef ${this._defineLinearSpecularReflection}\r\n , roughness\r\n #endif\r\n #ifdef ${this._define3DName}\r\n , ${this._cubeSamplerName}\r\n ${isWebGPU ? `, ${this._cubeSamplerName}Sampler` : \"\"}\r\n #else\r\n , ${this._2DSamplerName}\r\n ${isWebGPU ? `, ${this._2DSamplerName}Sampler` : \"\"}\r\n #endif\r\n #if defined(NORMAL) && defined(USESPHERICALINVERTEX)\r\n , ${isWebGPU ? \"input.\" : \"\"}${this._vEnvironmentIrradianceName}\r\n #endif\r\n #ifdef USESPHERICALFROMREFLECTIONMAP\r\n #if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\r\n , ${this._reflectionMatrixName}\r\n #endif\r\n #endif\r\n #ifdef USEIRRADIANCEMAP\r\n , irradianceSampler // ** not handled **\r\n ${isWebGPU ? `, irradianceSamplerSampler` : \"\"}\r\n #endif\r\n #ifndef LODBASEDMICROSFURACE\r\n #ifdef ${this._define3DName}\r\n , ${this._cubeSamplerName}\r\n ${isWebGPU ? `, ${this._cubeSamplerName}Sampler` : \"\"}\r\n , ${this._cubeSamplerName}\r\n ${isWebGPU ? `, ${this._cubeSamplerName}Sampler` : \"\"}\r\n #else\r\n , ${this._2DSamplerName}\r\n ${isWebGPU ? `, ${this._2DSamplerName}Sampler` : \"\"}\r\n , ${this._2DSamplerName} \r\n ${isWebGPU ? `, ${this._2DSamplerName}Sampler` : \"\"}\r\n #endif\r\n #endif\r\n #ifdef REALTIME_FILTERING\r\n , ${this._vReflectionFilteringInfoName}\r\n #endif\r\n );\r\n #endif\\n`;\n return code;\n }\n _buildBlock(state) {\n this._scene = state.sharedData.scene;\n if (state.target !== NodeMaterialBlockTargets.Fragment) {\n this._defineLODReflectionAlpha = state._getFreeDefineName(\"LODINREFLECTIONALPHA\");\n this._defineLinearSpecularReflection = state._getFreeDefineName(\"LINEARSPECULARREFLECTION\");\n }\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n if (this.texture) {\n codeString += `${this._codeVariableName}.texture.gammaSpace = ${this.texture.gammaSpace};\\n`;\n }\n codeString += `${this._codeVariableName}.useSphericalHarmonics = ${this.useSphericalHarmonics};\\n`;\n codeString += `${this._codeVariableName}.forceIrradianceInFragment = ${this.forceIrradianceInFragment};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.useSphericalHarmonics = this.useSphericalHarmonics;\n serializationObject.forceIrradianceInFragment = this.forceIrradianceInFragment;\n serializationObject.gammaSpace = this.texture?.gammaSpace ?? true;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.useSphericalHarmonics = serializationObject.useSphericalHarmonics;\n this.forceIrradianceInFragment = serializationObject.forceIrradianceInFragment;\n if (this.texture) {\n this.texture.gammaSpace = serializationObject.gammaSpace;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Spherical Harmonics\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { update: true } })\n], ReflectionBlock.prototype, \"useSphericalHarmonics\", void 0);\n__decorate([\n editableInPropertyPage(\"Force irradiance in fragment\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { update: true } })\n], ReflectionBlock.prototype, \"forceIrradianceInFragment\", void 0);\nRegisterClass(\"BABYLON.ReflectionBlock\", ReflectionBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\nimport { PBRClearCoatConfiguration } from \"../../../PBR/pbrClearCoatConfiguration.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { TBNBlock } from \"../Fragment/TBNBlock.js\";\n/**\n * Block used to implement the clear coat module of the PBR material\n */\nexport class ClearCoatBlock extends NodeMaterialBlock {\n /**\n * Create a new ClearCoatBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this._tangentCorrectionFactorName = \"\";\n /**\n * Defines if the F0 value should be remapped to account for the interface change in the material.\n */\n this.remapF0OnInterfaceChange = true;\n this._isUnique = true;\n this.registerInput(\"intensity\", NodeMaterialBlockConnectionPointTypes.Float, false, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"roughness\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"indexOfRefraction\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"normalMapColor\", NodeMaterialBlockConnectionPointTypes.Color3, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"uv\", NodeMaterialBlockConnectionPointTypes.Vector2, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"tintColor\", NodeMaterialBlockConnectionPointTypes.Color3, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"tintAtDistance\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"tintThickness\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"worldTangent\", NodeMaterialBlockConnectionPointTypes.Vector4, true);\n this.registerInput(\"worldNormal\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.worldNormal.addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color4 | NodeMaterialBlockConnectionPointTypes.Vector4 | NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerInput(\"TBN\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"TBN\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, TBNBlock, \"TBNBlock\"));\n this.registerOutput(\"clearcoat\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"clearcoat\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, ClearCoatBlock, \"ClearCoatBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"clearcoatOut\");\n state._excludeVariableName(\"vClearCoatParams\");\n state._excludeVariableName(\"vClearCoatTintParams\");\n state._excludeVariableName(\"vClearCoatRefractionParams\");\n state._excludeVariableName(\"vClearCoatTangentSpaceParams\");\n state._excludeVariableName(\"vGeometricNormaClearCoatW\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ClearCoatBlock\";\n }\n /**\n * Gets the intensity input component\n */\n get intensity() {\n return this._inputs[0];\n }\n /**\n * Gets the roughness input component\n */\n get roughness() {\n return this._inputs[1];\n }\n /**\n * Gets the ior input component\n */\n get indexOfRefraction() {\n return this._inputs[2];\n }\n /**\n * Gets the bump texture input component\n */\n get normalMapColor() {\n return this._inputs[3];\n }\n /**\n * Gets the uv input component\n */\n get uv() {\n return this._inputs[4];\n }\n /**\n * Gets the tint color input component\n */\n get tintColor() {\n return this._inputs[5];\n }\n /**\n * Gets the tint \"at distance\" input component\n */\n get tintAtDistance() {\n return this._inputs[6];\n }\n /**\n * Gets the tint thickness input component\n */\n get tintThickness() {\n return this._inputs[7];\n }\n /**\n * Gets the world tangent input component\n */\n get worldTangent() {\n return this._inputs[8];\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[9];\n }\n /**\n * Gets the TBN input component\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get TBN() {\n return this._inputs[10];\n }\n /**\n * Gets the clear coat object output component\n */\n get clearcoat() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.intensity.isConnected) {\n const intensityInput = new InputBlock(\"ClearCoat intensity\", NodeMaterialBlockTargets.Fragment, NodeMaterialBlockConnectionPointTypes.Float);\n intensityInput.value = 1;\n intensityInput.output.connectTo(this.intensity);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n super.prepareDefines(mesh, nodeMaterial, defines);\n defines.setValue(\"CLEARCOAT\", true);\n defines.setValue(\"CLEARCOAT_TEXTURE\", false, true);\n defines.setValue(\"CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE\", true, true);\n defines.setValue(\"CLEARCOAT_TINT\", this.tintColor.isConnected || this.tintThickness.isConnected || this.tintAtDistance.isConnected, true);\n defines.setValue(\"CLEARCOAT_BUMP\", this.normalMapColor.isConnected, true);\n defines.setValue(\"CLEARCOAT_DEFAULTIOR\", this.indexOfRefraction.isConnected ? this.indexOfRefraction.connectInputBlock.value === PBRClearCoatConfiguration._DefaultIndexOfRefraction : true, true);\n defines.setValue(\"CLEARCOAT_REMAP_F0\", this.remapF0OnInterfaceChange, true);\n }\n bind(effect, nodeMaterial, mesh) {\n super.bind(effect, nodeMaterial, mesh);\n // Clear Coat Refraction params\n const indexOfRefraction = this.indexOfRefraction.connectInputBlock?.value ?? PBRClearCoatConfiguration._DefaultIndexOfRefraction;\n const a = 1 - indexOfRefraction;\n const b = 1 + indexOfRefraction;\n const f0 = Math.pow(-a / b, 2); // Schlicks approx: (ior1 - ior2) / (ior1 + ior2) where ior2 for air is close to vacuum = 1.\n const eta = 1 / indexOfRefraction;\n effect.setFloat4(\"vClearCoatRefractionParams\", f0, eta, a, b);\n // Clear Coat tangent space params\n const mainPBRBlock = this.clearcoat.hasEndpoints ? this.clearcoat.endpoints[0].ownerBlock : null;\n const perturbedNormalBlock = mainPBRBlock?.perturbedNormal.isConnected ? mainPBRBlock.perturbedNormal.connectedPoint.ownerBlock : null;\n if (this._scene._mirroredCameraPosition) {\n effect.setFloat2(\"vClearCoatTangentSpaceParams\", perturbedNormalBlock?.invertX ? 1.0 : -1.0, perturbedNormalBlock?.invertY ? 1.0 : -1.0);\n }\n else {\n effect.setFloat2(\"vClearCoatTangentSpaceParams\", perturbedNormalBlock?.invertX ? -1.0 : 1.0, perturbedNormalBlock?.invertY ? -1.0 : 1.0);\n }\n if (mesh) {\n effect.setFloat(this._tangentCorrectionFactorName, mesh.getWorldMatrix().determinant() < 0 ? -1 : 1);\n }\n }\n _generateTBNSpace(state, worldPositionVarName, worldNormalVarName) {\n let code = \"\";\n const comments = `//${this.name}`;\n const worldTangent = this.worldTangent;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n if (!isWebGPU) {\n state._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n }\n const tangentReplaceString = { search: /defined\\(TANGENT\\)/g, replace: worldTangent.isConnected ? \"defined(TANGENT)\" : \"defined(IGNORE)\" };\n const TBN = this.TBN;\n if (TBN.isConnected) {\n state.compilationString += `\r\n #ifdef TBNBLOCK\r\n ${isWebGPU ? \"var TBN\" : \"mat3 TBN\"} = ${TBN.associatedVariableName};\r\n #endif\r\n `;\n }\n else if (worldTangent.isConnected) {\n code += `${state._declareLocalVar(\"tbnNormal\", NodeMaterialBlockConnectionPointTypes.Vector3)} = normalize(${worldNormalVarName}.xyz);\\n`;\n code += `${state._declareLocalVar(\"tbnTangent\", NodeMaterialBlockConnectionPointTypes.Vector3)} = normalize(${worldTangent.associatedVariableName}.xyz);\\n`;\n code += `${state._declareLocalVar(\"tbnBitangent\", NodeMaterialBlockConnectionPointTypes.Vector3)} = cross(tbnNormal, tbnTangent) * ${this._tangentCorrectionFactorName};\\n`;\n code += `${isWebGPU ? \"var vTBN\" : \"mat3 vTBN\"} = ${isWebGPU ? \"mat3x3f\" : \"mat3\"}(tbnTangent, tbnBitangent, tbnNormal);\\n`;\n }\n state._emitFunctionFromInclude(\"bumpFragmentMainFunctions\", comments, {\n replaceStrings: [tangentReplaceString],\n });\n return code;\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param state current state of the node material building\n * @param ccBlock instance of a ClearCoatBlock or null if the code must be generated without an active clear coat module\n * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module\n * @param worldPosVarName name of the variable holding the world position\n * @param generateTBNSpace if true, the code needed to create the TBN coordinate space is generated\n * @param vTBNAvailable indicate that the vTBN variable is already existing because it has already been generated by another block (PerturbNormal or Anisotropy)\n * @param worldNormalVarName name of the variable holding the world normal\n * @returns the shader code\n */\n static GetCode(state, ccBlock, reflectionBlock, worldPosVarName, generateTBNSpace, vTBNAvailable, worldNormalVarName) {\n let code = \"\";\n const intensity = ccBlock?.intensity.isConnected ? ccBlock.intensity.associatedVariableName : \"1.\";\n const roughness = ccBlock?.roughness.isConnected ? ccBlock.roughness.associatedVariableName : \"0.\";\n const normalMapColor = ccBlock?.normalMapColor.isConnected ? ccBlock.normalMapColor.associatedVariableName : `vec3${state.fSuffix}(0.)`;\n const uv = ccBlock?.uv.isConnected ? ccBlock.uv.associatedVariableName : `vec2${state.fSuffix}(0.)`;\n const tintColor = ccBlock?.tintColor.isConnected ? ccBlock.tintColor.associatedVariableName : `vec3${state.fSuffix}(1.)`;\n const tintThickness = ccBlock?.tintThickness.isConnected ? ccBlock.tintThickness.associatedVariableName : \"1.\";\n const tintAtDistance = ccBlock?.tintAtDistance.isConnected ? ccBlock.tintAtDistance.associatedVariableName : \"1.\";\n const tintTexture = `vec4${state.fSuffix}(0.)`;\n if (ccBlock) {\n state._emitUniformFromString(\"vClearCoatRefractionParams\", NodeMaterialBlockConnectionPointTypes.Vector4);\n state._emitUniformFromString(\"vClearCoatTangentSpaceParams\", NodeMaterialBlockConnectionPointTypes.Vector2);\n const normalShading = ccBlock.worldNormal;\n code += `${state._declareLocalVar(\"vGeometricNormaClearCoatW\", NodeMaterialBlockConnectionPointTypes.Vector3)} = ${normalShading.isConnected ? \"normalize(\" + normalShading.associatedVariableName + \".xyz)\" : \"geometricNormalW\"};\\n`;\n }\n else {\n code += `${state._declareLocalVar(\"vGeometricNormaClearCoatW\", NodeMaterialBlockConnectionPointTypes.Vector3)} = geometricNormalW;\\n`;\n }\n if (generateTBNSpace && ccBlock) {\n code += ccBlock._generateTBNSpace(state, worldPosVarName, worldNormalVarName);\n vTBNAvailable = ccBlock.worldTangent.isConnected;\n }\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n code += `${isWebGPU ? \"var clearcoatOut: clearcoatOutParams\" : \"clearcoatOutParams clearcoatOut\"};\r\n\r\n #ifdef CLEARCOAT\r\n ${state._declareLocalVar(\"vClearCoatParams\", NodeMaterialBlockConnectionPointTypes.Vector2)} = vec2${state.fSuffix}(${intensity}, ${roughness});\r\n ${state._declareLocalVar(\"vClearCoatTintParams\", NodeMaterialBlockConnectionPointTypes.Vector4)} = vec4${state.fSuffix}(${tintColor}, ${tintThickness});\r\n\r\n clearcoatOut = clearcoatBlock(\r\n ${worldPosVarName}.xyz\r\n , vGeometricNormaClearCoatW\r\n , viewDirectionW\r\n , vClearCoatParams\r\n , specularEnvironmentR0\r\n #ifdef CLEARCOAT_TEXTURE\r\n , vec2${state.fSuffix}(0.)\r\n #endif\r\n #ifdef CLEARCOAT_TINT\r\n , vClearCoatTintParams\r\n , ${tintAtDistance}\r\n , ${isWebGPU ? \"uniforms.\" : \"\"}vClearCoatRefractionParams\r\n #ifdef CLEARCOAT_TINT_TEXTURE\r\n , ${tintTexture}\r\n #endif\r\n #endif\r\n #ifdef CLEARCOAT_BUMP\r\n , vec2${state.fSuffix}(0., 1.)\r\n , vec4${state.fSuffix}(${normalMapColor}, 0.)\r\n , ${uv}\r\n #if defined(${vTBNAvailable ? \"TANGENT\" : \"IGNORE\"}) && defined(NORMAL)\r\n , vTBN\r\n #else\r\n , ${isWebGPU ? \"uniforms.\" : \"\"}vClearCoatTangentSpaceParams\r\n #endif\r\n #ifdef OBJECTSPACE_NORMALMAP\r\n , normalMatrix\r\n #endif\r\n #endif\r\n #if defined(FORCENORMALFORWARD) && defined(NORMAL)\r\n , faceNormal\r\n #endif\r\n #ifdef REFLECTION\r\n , ${isWebGPU ? \"uniforms.\" : \"\"}${reflectionBlock?._vReflectionMicrosurfaceInfosName}\r\n , ${reflectionBlock?._vReflectionInfosName}\r\n , ${reflectionBlock?.reflectionColor}\r\n , ${isWebGPU ? \"uniforms.\" : \"\"}vLightingIntensity\r\n #ifdef ${reflectionBlock?._define3DName}\r\n , ${reflectionBlock?._cubeSamplerName} \r\n ${isWebGPU ? `, ${reflectionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n #else\r\n , ${reflectionBlock?._2DSamplerName} \r\n ${isWebGPU ? `, ${reflectionBlock?._2DSamplerName}Sampler` : \"\"}\r\n #endif\r\n #ifndef LODBASEDMICROSFURACE\r\n #ifdef ${reflectionBlock?._define3DName}\r\n , ${reflectionBlock?._cubeSamplerName} \r\n ${isWebGPU ? `, ${reflectionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n , ${reflectionBlock?._cubeSamplerName}\r\n ${isWebGPU ? `, ${reflectionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n #else\r\n , ${reflectionBlock?._2DSamplerName}\r\n ${isWebGPU ? `, ${reflectionBlock?._2DSamplerName}Sampler` : \"\"}\r\n , ${reflectionBlock?._2DSamplerName}\r\n ${isWebGPU ? `, ${reflectionBlock?._2DSamplerName}Sampler` : \"\"} \r\n #endif\r\n #endif\r\n #endif\r\n #if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)\r\n , (${state._generateTernary(\"1.\", \"-1.\", isWebGPU ? \"fragmentInputs.frontFacing\" : \"gl_FrontFacing\")})\r\n #endif\r\n );\r\n #else\r\n clearcoatOut.specularEnvironmentR0 = specularEnvironmentR0;\r\n #endif\\n`;\n return code;\n }\n _buildBlock(state) {\n this._scene = state.sharedData.scene;\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n state.sharedData.bindableBlocks.push(this);\n state.sharedData.blocksWithDefines.push(this);\n this._tangentCorrectionFactorName = state._getFreeDefineName(\"tangentCorrectionFactor\");\n state._emitUniformFromString(this._tangentCorrectionFactorName, NodeMaterialBlockConnectionPointTypes.Float);\n }\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.remapF0OnInterfaceChange = ${this.remapF0OnInterfaceChange};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.remapF0OnInterfaceChange = this.remapF0OnInterfaceChange;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.remapF0OnInterfaceChange = serializationObject.remapF0OnInterfaceChange ?? true;\n }\n}\n__decorate([\n editableInPropertyPage(\"Remap F0 on interface change\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true })\n], ClearCoatBlock.prototype, \"remapF0OnInterfaceChange\", void 0);\nRegisterClass(\"BABYLON.ClearCoatBlock\", ClearCoatBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\nimport { PBRIridescenceConfiguration } from \"../../../../Materials/PBR/pbrIridescenceConfiguration.js\";\n/**\n * Block used to implement the iridescence module of the PBR material\n */\nexport class IridescenceBlock extends NodeMaterialBlock {\n /**\n * Create a new IridescenceBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this._isUnique = true;\n this.registerInput(\"intensity\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"indexOfRefraction\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"thickness\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"iridescence\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"iridescence\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, IridescenceBlock, \"IridescenceBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"iridescenceOut\");\n state._excludeVariableName(\"vIridescenceParams\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"IridescenceBlock\";\n }\n /**\n * Gets the intensity input component\n */\n get intensity() {\n return this._inputs[0];\n }\n /**\n * Gets the indexOfRefraction input component\n */\n get indexOfRefraction() {\n return this._inputs[1];\n }\n /**\n * Gets the thickness input component\n */\n get thickness() {\n return this._inputs[2];\n }\n /**\n * Gets the iridescence object output component\n */\n get iridescence() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.intensity.isConnected) {\n const intensityInput = new InputBlock(\"Iridescence intensity\", NodeMaterialBlockTargets.Fragment, NodeMaterialBlockConnectionPointTypes.Float);\n intensityInput.value = 1;\n intensityInput.output.connectTo(this.intensity);\n const indexOfRefractionInput = new InputBlock(\"Iridescence ior\", NodeMaterialBlockTargets.Fragment, NodeMaterialBlockConnectionPointTypes.Float);\n indexOfRefractionInput.value = 1.3;\n indexOfRefractionInput.output.connectTo(this.indexOfRefraction);\n const thicknessInput = new InputBlock(\"Iridescence thickness\", NodeMaterialBlockTargets.Fragment, NodeMaterialBlockConnectionPointTypes.Float);\n thicknessInput.value = 400;\n thicknessInput.output.connectTo(this.thickness);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n super.prepareDefines(mesh, nodeMaterial, defines);\n defines.setValue(\"IRIDESCENCE\", true, true);\n defines.setValue(\"IRIDESCENCE_TEXTURE\", false, true);\n defines.setValue(\"IRIDESCENCE_THICKNESS_TEXTURE\", false, true);\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param iridescenceBlock instance of a IridescenceBlock or null if the code must be generated without an active iridescence module\n * @param state defines the build state\n * @returns the shader code\n */\n static GetCode(iridescenceBlock, state) {\n let code = \"\";\n const intensityName = iridescenceBlock?.intensity.isConnected ? iridescenceBlock.intensity.associatedVariableName : \"1.\";\n const indexOfRefraction = iridescenceBlock?.indexOfRefraction.isConnected\n ? iridescenceBlock.indexOfRefraction.associatedVariableName\n : PBRIridescenceConfiguration._DefaultIndexOfRefraction;\n const thickness = iridescenceBlock?.thickness.isConnected ? iridescenceBlock.thickness.associatedVariableName : PBRIridescenceConfiguration._DefaultMaximumThickness;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n code += `${isWebGPU ? \"var iridescenceOut: iridescenceOutParams\" : \"iridescenceOutParams iridescenceOut\"};\r\n\r\n #ifdef IRIDESCENCE\r\n iridescenceOut = iridescenceBlock(\r\n vec4(${intensityName}, ${indexOfRefraction}, 1., ${thickness})\r\n , NdotV\r\n , specularEnvironmentR0\r\n #ifdef CLEARCOAT\r\n , NdotVUnclamped\r\n #endif \r\n );\r\n\r\n float iridescenceIntensity = iridescenceOut.iridescenceIntensity;\r\n specularEnvironmentR0 = iridescenceOut.specularEnvironmentR0;\r\n #endif\\n`;\n return code;\n }\n _buildBlock(state) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n state.sharedData.bindableBlocks.push(this);\n state.sharedData.blocksWithDefines.push(this);\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n }\n}\nRegisterClass(\"BABYLON.IridescenceBlock\", IridescenceBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { CubeTexture } from \"../../../Textures/cubeTexture.js\";\nimport { Texture } from \"../../../Textures/texture.js\";\nimport { NodeMaterialSystemValues } from \"../../Enums/nodeMaterialSystemValues.js\";\n/**\n * Block used to implement the refraction part of the sub surface module of the PBR material\n */\nexport class RefractionBlock extends NodeMaterialBlock {\n /**\n * Create a new RefractionBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n /**\n * This parameters will make the material used its opacity to control how much it is refracting against not.\n * Materials half opaque for instance using refraction could benefit from this control.\n */\n this.linkRefractionWithTransparency = false;\n /**\n * Controls if refraction needs to be inverted on Y. This could be useful for procedural texture.\n */\n this.invertRefractionY = false;\n /**\n * Controls if refraction needs to be inverted on Y. This could be useful for procedural texture.\n */\n this.useThicknessAsDepth = false;\n this._isUnique = true;\n this.registerInput(\"intensity\", NodeMaterialBlockConnectionPointTypes.Float, false, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"tintAtDistance\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"volumeIndexOfRefraction\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"refraction\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"refraction\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, RefractionBlock, \"RefractionBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"vRefractionPosition\");\n state._excludeVariableName(\"vRefractionSize\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RefractionBlock\";\n }\n /**\n * Gets the intensity input component\n */\n get intensity() {\n return this._inputs[0];\n }\n /**\n * Gets the tint at distance input component\n */\n get tintAtDistance() {\n return this._inputs[1];\n }\n /**\n * Gets the volume index of refraction input component\n */\n get volumeIndexOfRefraction() {\n return this._inputs[2];\n }\n /**\n * Gets the view input component\n */\n get view() {\n return this.viewConnectionPoint;\n }\n /**\n * Gets the refraction object output component\n */\n get refraction() {\n return this._outputs[0];\n }\n /**\n * Returns true if the block has a texture\n */\n get hasTexture() {\n return !!this._getTexture();\n }\n _getTexture() {\n if (this.texture) {\n return this.texture;\n }\n return this._scene.environmentTexture;\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.intensity.isConnected) {\n const intensityInput = new InputBlock(\"Refraction intensity\", NodeMaterialBlockTargets.Fragment, NodeMaterialBlockConnectionPointTypes.Float);\n intensityInput.value = 1;\n intensityInput.output.connectTo(this.intensity);\n }\n if (this.view && !this.view.isConnected) {\n let viewInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.View && additionalFilteringInfo(b));\n if (!viewInput) {\n viewInput = new InputBlock(\"view\");\n viewInput.setAsSystemValue(NodeMaterialSystemValues.View);\n }\n viewInput.output.connectTo(this.view);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n super.prepareDefines(mesh, nodeMaterial, defines);\n const refractionTexture = this._getTexture();\n const refraction = refractionTexture && refractionTexture.getTextureMatrix;\n defines.setValue(\"SS_REFRACTION\", refraction, true);\n if (!refraction) {\n return;\n }\n defines.setValue(this._define3DName, refractionTexture.isCube, true);\n defines.setValue(this._defineLODRefractionAlpha, refractionTexture.lodLevelInAlpha, true);\n defines.setValue(this._defineLinearSpecularRefraction, refractionTexture.linearSpecularLOD, true);\n defines.setValue(this._defineOppositeZ, this._scene.useRightHandedSystem && refractionTexture.isCube ? !refractionTexture.invertZ : refractionTexture.invertZ, true);\n defines.setValue(\"SS_LINKREFRACTIONTOTRANSPARENCY\", this.linkRefractionWithTransparency, true);\n defines.setValue(\"SS_GAMMAREFRACTION\", refractionTexture.gammaSpace, true);\n defines.setValue(\"SS_RGBDREFRACTION\", refractionTexture.isRGBD, true);\n defines.setValue(\"SS_USE_LOCAL_REFRACTIONMAP_CUBIC\", refractionTexture.boundingBoxSize ? true : false, true);\n defines.setValue(\"SS_USE_THICKNESS_AS_DEPTH\", this.useThicknessAsDepth, true);\n }\n isReady() {\n const texture = this._getTexture();\n if (texture && !texture.isReadyOrNotBlocking()) {\n return false;\n }\n return true;\n }\n bind(effect, nodeMaterial, mesh) {\n super.bind(effect, nodeMaterial, mesh);\n const refractionTexture = this._getTexture();\n if (!refractionTexture) {\n return;\n }\n if (refractionTexture.isCube) {\n effect.setTexture(this._cubeSamplerName, refractionTexture);\n }\n else {\n effect.setTexture(this._2DSamplerName, refractionTexture);\n }\n effect.setMatrix(this._refractionMatrixName, refractionTexture.getRefractionTextureMatrix());\n let depth = 1.0;\n if (!refractionTexture.isCube) {\n if (refractionTexture.depth) {\n depth = refractionTexture.depth;\n }\n }\n const indexOfRefraction = this.volumeIndexOfRefraction.connectInputBlock?.value ?? this.indexOfRefractionConnectionPoint.connectInputBlock?.value ?? 1.5;\n effect.setFloat4(this._vRefractionInfosName, refractionTexture.level, 1 / indexOfRefraction, depth, this.invertRefractionY ? -1 : 1);\n effect.setFloat4(this._vRefractionMicrosurfaceInfosName, refractionTexture.getSize().width, refractionTexture.lodGenerationScale, refractionTexture.lodGenerationOffset, 1 / indexOfRefraction);\n const width = refractionTexture.getSize().width;\n effect.setFloat2(this._vRefractionFilteringInfoName, width, Math.log2(width));\n if (refractionTexture.boundingBoxSize) {\n const cubeTexture = refractionTexture;\n effect.setVector3(\"vRefractionPosition\", cubeTexture.boundingBoxPosition);\n effect.setVector3(\"vRefractionSize\", cubeTexture.boundingBoxSize);\n }\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param state current state of the node material building\n * @returns the shader code\n */\n getCode(state) {\n const code = \"\";\n state.sharedData.blockingBlocks.push(this);\n state.sharedData.textureBlocks.push(this);\n // Samplers\n this._cubeSamplerName = state._getFreeVariableName(this.name + \"CubeSampler\");\n state.samplers.push(this._cubeSamplerName);\n this._2DSamplerName = state._getFreeVariableName(this.name + \"2DSampler\");\n state.samplers.push(this._2DSamplerName);\n this._define3DName = state._getFreeDefineName(\"SS_REFRACTIONMAP_3D\");\n const refractionTexture = this._getTexture();\n if (refractionTexture) {\n state._samplerDeclaration += `#ifdef ${this._define3DName}\\n`;\n state._emitCubeSampler(this._cubeSamplerName, undefined, true);\n state._samplerDeclaration += `#else\\n`;\n state._emit2DSampler(this._2DSamplerName, undefined, true);\n state._samplerDeclaration += `#endif\\n`;\n }\n // Fragment\n state.sharedData.blocksWithDefines.push(this);\n state.sharedData.bindableBlocks.push(this);\n this._defineLODRefractionAlpha = state._getFreeDefineName(\"SS_LODINREFRACTIONALPHA\");\n this._defineLinearSpecularRefraction = state._getFreeDefineName(\"SS_LINEARSPECULARREFRACTION\");\n this._defineOppositeZ = state._getFreeDefineName(\"SS_REFRACTIONMAP_OPPOSITEZ\");\n this._refractionMatrixName = state._getFreeVariableName(\"refractionMatrix\");\n state._emitUniformFromString(this._refractionMatrixName, NodeMaterialBlockConnectionPointTypes.Matrix);\n if (state.shaderLanguage !== 1 /* ShaderLanguage.WGSL */) {\n state._emitFunction(\"sampleRefraction\", `\r\n #ifdef ${this._define3DName}\r\n #define sampleRefraction(s, c) textureCube(s, c)\r\n #else\r\n #define sampleRefraction(s, c) texture2D(s, c)\r\n #endif\\n`, `//${this.name}`);\n state._emitFunction(\"sampleRefractionLod\", `\r\n #ifdef ${this._define3DName}\r\n #define sampleRefractionLod(s, c, l) textureCubeLodEXT(s, c, l)\r\n #else\r\n #define sampleRefractionLod(s, c, l) texture2DLodEXT(s, c, l)\r\n #endif\\n`, `//${this.name}`);\n }\n this._vRefractionMicrosurfaceInfosName = state._getFreeVariableName(\"vRefractionMicrosurfaceInfos\");\n state._emitUniformFromString(this._vRefractionMicrosurfaceInfosName, NodeMaterialBlockConnectionPointTypes.Vector4);\n this._vRefractionInfosName = state._getFreeVariableName(\"vRefractionInfos\");\n state._emitUniformFromString(this._vRefractionInfosName, NodeMaterialBlockConnectionPointTypes.Vector4);\n this._vRefractionFilteringInfoName = state._getFreeVariableName(\"vRefractionFilteringInfo\");\n state._emitUniformFromString(this._vRefractionFilteringInfoName, NodeMaterialBlockConnectionPointTypes.Vector2);\n state._emitUniformFromString(\"vRefractionPosition\", NodeMaterialBlockConnectionPointTypes.Vector3);\n state._emitUniformFromString(\"vRefractionSize\", NodeMaterialBlockConnectionPointTypes.Vector3);\n return code;\n }\n _buildBlock(state) {\n this._scene = state.sharedData.scene;\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n if (this.texture) {\n if (this.texture.isCube) {\n codeString = `${this._codeVariableName}.texture = new BABYLON.CubeTexture(\"${this.texture.name}\");\\n`;\n }\n else {\n codeString = `${this._codeVariableName}.texture = new BABYLON.Texture(\"${this.texture.name}\");\\n`;\n }\n codeString += `${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};\\n`;\n }\n codeString += `${this._codeVariableName}.linkRefractionWithTransparency = ${this.linkRefractionWithTransparency};\\n`;\n codeString += `${this._codeVariableName}.invertRefractionY = ${this.invertRefractionY};\\n`;\n codeString += `${this._codeVariableName}.useThicknessAsDepth = ${this.useThicknessAsDepth};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n if (this.texture && !this.texture.isRenderTarget) {\n serializationObject.texture = this.texture.serialize();\n }\n serializationObject.linkRefractionWithTransparency = this.linkRefractionWithTransparency;\n serializationObject.invertRefractionY = this.invertRefractionY;\n serializationObject.useThicknessAsDepth = this.useThicknessAsDepth;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n if (serializationObject.texture) {\n rootUrl = serializationObject.texture.url.indexOf(\"data:\") === 0 ? \"\" : rootUrl;\n if (serializationObject.texture.isCube) {\n this.texture = CubeTexture.Parse(serializationObject.texture, scene, rootUrl);\n }\n else {\n this.texture = Texture.Parse(serializationObject.texture, scene, rootUrl);\n }\n }\n this.linkRefractionWithTransparency = serializationObject.linkRefractionWithTransparency;\n this.invertRefractionY = serializationObject.invertRefractionY;\n this.useThicknessAsDepth = !!serializationObject.useThicknessAsDepth;\n }\n}\n__decorate([\n editableInPropertyPage(\"Link refraction to transparency\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { update: true } })\n], RefractionBlock.prototype, \"linkRefractionWithTransparency\", void 0);\n__decorate([\n editableInPropertyPage(\"Invert refraction Y\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { update: true } })\n], RefractionBlock.prototype, \"invertRefractionY\", void 0);\n__decorate([\n editableInPropertyPage(\"Use thickness as depth\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { update: true } })\n], RefractionBlock.prototype, \"useThicknessAsDepth\", void 0);\nRegisterClass(\"BABYLON.RefractionBlock\", RefractionBlock);\n","import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\nimport { RefractionBlock } from \"./refractionBlock.js\";\n/**\n * Block used to implement the sub surface module of the PBR material\n */\nexport class SubSurfaceBlock extends NodeMaterialBlock {\n /**\n * Create a new SubSurfaceBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Fragment);\n this._isUnique = true;\n this.registerInput(\"thickness\", NodeMaterialBlockConnectionPointTypes.Float, false, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"tintColor\", NodeMaterialBlockConnectionPointTypes.Color3, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"translucencyIntensity\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"translucencyDiffusionDist\", NodeMaterialBlockConnectionPointTypes.Color3, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"refraction\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"refraction\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, RefractionBlock, \"RefractionBlock\"));\n this.registerInput(\"dispersion\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"subsurface\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"subsurface\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, SubSurfaceBlock, \"SubSurfaceBlock\"));\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"subSurfaceOut\");\n state._excludeVariableName(\"vThicknessParam\");\n state._excludeVariableName(\"vTintColor\");\n state._excludeVariableName(\"vTranslucencyColor\");\n state._excludeVariableName(\"vSubSurfaceIntensity\");\n state._excludeVariableName(\"dispersion\");\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SubSurfaceBlock\";\n }\n /**\n * Gets the thickness component\n */\n get thickness() {\n return this._inputs[0];\n }\n /**\n * Gets the tint color input component\n */\n get tintColor() {\n return this._inputs[1];\n }\n /**\n * Gets the translucency intensity input component\n */\n get translucencyIntensity() {\n return this._inputs[2];\n }\n /**\n * Gets the translucency diffusion distance input component\n */\n get translucencyDiffusionDist() {\n return this._inputs[3];\n }\n /**\n * Gets the refraction object parameters\n */\n get refraction() {\n return this._inputs[4];\n }\n /**\n * Gets the dispersion input component\n */\n get dispersion() {\n return this._inputs[5];\n }\n /**\n * Gets the sub surface object output component\n */\n get subsurface() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.thickness.isConnected) {\n const thicknessInput = new InputBlock(\"SubSurface thickness\", NodeMaterialBlockTargets.Fragment, NodeMaterialBlockConnectionPointTypes.Float);\n thicknessInput.value = 0;\n thicknessInput.output.connectTo(this.thickness);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n super.prepareDefines(mesh, nodeMaterial, defines);\n const translucencyEnabled = this.translucencyDiffusionDist.isConnected || this.translucencyIntensity.isConnected;\n defines.setValue(\"SUBSURFACE\", translucencyEnabled || this.refraction.isConnected, true);\n defines.setValue(\"SS_TRANSLUCENCY\", translucencyEnabled, true);\n defines.setValue(\"SS_THICKNESSANDMASK_TEXTURE\", false, true);\n defines.setValue(\"SS_REFRACTIONINTENSITY_TEXTURE\", false, true);\n defines.setValue(\"SS_TRANSLUCENCYINTENSITY_TEXTURE\", false, true);\n defines.setValue(\"SS_USE_GLTF_TEXTURES\", false, true);\n defines.setValue(\"SS_DISPERSION\", this.dispersion.isConnected, true);\n }\n /**\n * Gets the main code of the block (fragment side)\n * @param state current state of the node material building\n * @param ssBlock instance of a SubSurfaceBlock or null if the code must be generated without an active sub surface module\n * @param reflectionBlock instance of a ReflectionBlock null if the code must be generated without an active reflection module\n * @param worldPosVarName name of the variable holding the world position\n * @returns the shader code\n */\n static GetCode(state, ssBlock, reflectionBlock, worldPosVarName) {\n let code = \"\";\n const thickness = ssBlock?.thickness.isConnected ? ssBlock.thickness.associatedVariableName : \"0.\";\n const tintColor = ssBlock?.tintColor.isConnected ? ssBlock.tintColor.associatedVariableName : \"vec3(1.)\";\n const translucencyIntensity = ssBlock?.translucencyIntensity.isConnected ? ssBlock?.translucencyIntensity.associatedVariableName : \"1.\";\n const translucencyDiffusionDistance = ssBlock?.translucencyDiffusionDist.isConnected ? ssBlock?.translucencyDiffusionDist.associatedVariableName : \"vec3(1.)\";\n const refractionBlock = (ssBlock?.refraction.isConnected ? ssBlock?.refraction.connectedPoint?.ownerBlock : null);\n const refractionTintAtDistance = refractionBlock?.tintAtDistance.isConnected ? refractionBlock.tintAtDistance.associatedVariableName : \"1.\";\n const refractionIntensity = refractionBlock?.intensity.isConnected ? refractionBlock.intensity.associatedVariableName : \"1.\";\n const refractionView = refractionBlock?.view.isConnected ? refractionBlock.view.associatedVariableName : \"\";\n const dispersion = ssBlock?.dispersion.isConnected ? ssBlock?.dispersion.associatedVariableName : \"0.0\";\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n code += refractionBlock?.getCode(state) ?? \"\";\n code += `${isWebGPU ? \"var subSurfaceOut: subSurfaceOutParams\" : \"subSurfaceOutParams subSurfaceOut\"};\r\n\r\n #ifdef SUBSURFACE\r\n ${state._declareLocalVar(\"vThicknessParam\", NodeMaterialBlockConnectionPointTypes.Vector2)} = vec2${state.fSuffix}(0., ${thickness});\r\n ${state._declareLocalVar(\"vTintColor\", NodeMaterialBlockConnectionPointTypes.Vector4)} = vec4${state.fSuffix}(${tintColor}, ${refractionTintAtDistance});\r\n ${state._declareLocalVar(\"vSubSurfaceIntensity\", NodeMaterialBlockConnectionPointTypes.Vector3)} = vec3(${refractionIntensity}, ${translucencyIntensity}, 0.);\r\n ${state._declareLocalVar(\"dispersion\", NodeMaterialBlockConnectionPointTypes.Float)} = ${dispersion};\r\n subSurfaceOut = subSurfaceBlock(\r\n vSubSurfaceIntensity\r\n , vThicknessParam\r\n , vTintColor\r\n , normalW\r\n , specularEnvironmentReflectance\r\n #ifdef SS_THICKNESSANDMASK_TEXTURE\r\n , vec4${state.fSuffix}(0.)\r\n #endif\r\n #ifdef REFLECTION\r\n #ifdef SS_TRANSLUCENCY\r\n , ${(isWebGPU ? \"uniforms.\" : \"\") + reflectionBlock?._reflectionMatrixName}\r\n #ifdef USESPHERICALFROMREFLECTIONMAP\r\n #if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\r\n , reflectionOut.irradianceVector\r\n #endif\r\n #if defined(REALTIME_FILTERING)\r\n , ${reflectionBlock?._cubeSamplerName}\r\n ${isWebGPU ? `, ${reflectionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n , ${reflectionBlock?._vReflectionFilteringInfoName}\r\n #endif\r\n #endif\r\n #ifdef USEIRRADIANCEMAP\r\n , irradianceSampler\r\n ${isWebGPU ? `, irradianceSamplerSampler` : \"\"}\r\n #endif\r\n #endif\r\n #endif\r\n #if defined(SS_REFRACTION) || defined(SS_TRANSLUCENCY)\r\n , surfaceAlbedo\r\n #endif\r\n #ifdef SS_REFRACTION\r\n , ${worldPosVarName}.xyz\r\n , viewDirectionW\r\n , ${refractionView}\r\n , ${(isWebGPU ? \"uniforms.\" : \"\") + refractionBlock?._vRefractionInfosName ?? \"\"}\r\n , ${(isWebGPU ? \"uniforms.\" : \"\") + refractionBlock?._refractionMatrixName ?? \"\"}\r\n , ${(isWebGPU ? \"uniforms.\" : \"\") + refractionBlock?._vRefractionMicrosurfaceInfosName ?? \"\"}\r\n , ${isWebGPU ? \"uniforms.\" : \"\"}vLightingIntensity\r\n #ifdef SS_LINKREFRACTIONTOTRANSPARENCY\r\n , alpha\r\n #endif\r\n #ifdef ${refractionBlock?._defineLODRefractionAlpha ?? \"IGNORE\"}\r\n , NdotVUnclamped\r\n #endif\r\n #ifdef ${refractionBlock?._defineLinearSpecularRefraction ?? \"IGNORE\"}\r\n , roughness\r\n #endif\r\n , alphaG\r\n #ifdef ${refractionBlock?._define3DName ?? \"IGNORE\"}\r\n , ${refractionBlock?._cubeSamplerName ?? \"\"}\r\n ${isWebGPU ? `, ${refractionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n #else\r\n , ${refractionBlock?._2DSamplerName ?? \"\"}\r\n ${isWebGPU ? `, ${refractionBlock?._2DSamplerName}Sampler` : \"\"}\r\n #endif\r\n #ifndef LODBASEDMICROSFURACE\r\n #ifdef ${refractionBlock?._define3DName ?? \"IGNORE\"}\r\n , ${refractionBlock?._cubeSamplerName ?? \"\"} \r\n ${isWebGPU ? `, ${refractionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n , ${refractionBlock?._cubeSamplerName ?? \"\"} \r\n ${isWebGPU ? `, ${refractionBlock?._cubeSamplerName}Sampler` : \"\"}\r\n #else\r\n , ${refractionBlock?._2DSamplerName ?? \"\"}\r\n ${isWebGPU ? `, ${refractionBlock?._2DSamplerName}Sampler` : \"\"}\r\n , ${refractionBlock?._2DSamplerName ?? \"\"}\r\n ${isWebGPU ? `, ${refractionBlock?._2DSamplerName}Sampler` : \"\"}\r\n #endif\r\n #endif\r\n #ifdef ANISOTROPIC\r\n , anisotropicOut\r\n #endif\r\n #ifdef REALTIME_FILTERING\r\n , ${refractionBlock?._vRefractionFilteringInfoName ?? \"\"}\r\n #endif\r\n #ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC\r\n , vRefractionPosition\r\n , vRefractionSize\r\n #endif\r\n #ifdef SS_DISPERSION\r\n , dispersion\r\n #endif\r\n #endif\r\n #ifdef SS_TRANSLUCENCY\r\n , ${translucencyDiffusionDistance}\r\n , vTintColor\r\n #ifdef SS_TRANSLUCENCYCOLOR_TEXTURE\r\n , vec4${state.fSuffix}(0.)\r\n #endif\r\n #endif \r\n );\r\n\r\n #ifdef SS_REFRACTION\r\n surfaceAlbedo = subSurfaceOut.surfaceAlbedo;\r\n #ifdef SS_LINKREFRACTIONTOTRANSPARENCY\r\n alpha = subSurfaceOut.alpha;\r\n #endif\r\n #endif\r\n #else\r\n subSurfaceOut.specularEnvironmentReflectance = specularEnvironmentReflectance;\r\n #endif\\n`;\n return code;\n }\n _buildBlock(state) {\n if (state.target === NodeMaterialBlockTargets.Fragment) {\n state.sharedData.blocksWithDefines.push(this);\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.SubSurfaceBlock\", SubSurfaceBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { NodeMaterialSystemValues } from \"../../Enums/nodeMaterialSystemValues.js\";\nimport { InputBlock } from \"../Input/inputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { PBRBaseMaterial } from \"../../../PBR/pbrBaseMaterial.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../../nodeMaterialConnectionPointCustomObject.js\";\nimport { SheenBlock } from \"./sheenBlock.js\";\nimport { GetEnvironmentBRDFTexture } from \"../../../../Misc/brdfTextureTools.js\";\nimport { MaterialFlags } from \"../../../materialFlags.js\";\nimport { AnisotropyBlock } from \"./anisotropyBlock.js\";\nimport { ReflectionBlock } from \"./reflectionBlock.js\";\nimport { ClearCoatBlock } from \"./clearCoatBlock.js\";\nimport { IridescenceBlock } from \"./iridescenceBlock.js\";\nimport { SubSurfaceBlock } from \"./subSurfaceBlock.js\";\n\nimport { Color3, TmpColors } from \"../../../../Maths/math.color.js\";\nimport { Logger } from \"../../../../Misc/logger.js\";\nimport { BindLight, BindLights, PrepareDefinesForLight, PrepareDefinesForLights, PrepareDefinesForMultiview, PrepareUniformsAndSamplersForLight, } from \"../../../materialHelper.functions.js\";\nconst mapOutputToVariable = {\n ambientClr: [\"finalAmbient\", \"\"],\n diffuseDir: [\"finalDiffuse\", \"\"],\n specularDir: [\"finalSpecularScaled\", \"!defined(UNLIT) && defined(SPECULARTERM)\"],\n clearcoatDir: [\"finalClearCoatScaled\", \"!defined(UNLIT) && defined(CLEARCOAT)\"],\n sheenDir: [\"finalSheenScaled\", \"!defined(UNLIT) && defined(SHEEN)\"],\n diffuseInd: [\"finalIrradiance\", \"!defined(UNLIT) && defined(REFLECTION)\"],\n specularInd: [\"finalRadianceScaled\", \"!defined(UNLIT) && defined(REFLECTION)\"],\n clearcoatInd: [\"clearcoatOut.finalClearCoatRadianceScaled\", \"!defined(UNLIT) && defined(REFLECTION) && defined(CLEARCOAT)\"],\n sheenInd: [\"sheenOut.finalSheenRadianceScaled\", \"!defined(UNLIT) && defined(REFLECTION) && defined(SHEEN) && defined(ENVIRONMENTBRDF)\"],\n refraction: [\"subSurfaceOut.finalRefraction\", \"!defined(UNLIT) && defined(SS_REFRACTION)\"],\n lighting: [\"finalColor.rgb\", \"\"],\n shadow: [\"aggShadow\", \"\"],\n alpha: [\"alpha\", \"\"],\n};\n/**\n * Block used to implement the PBR metallic/roughness model\n * #D8AK3Z#80\n */\nexport class PBRMetallicRoughnessBlock extends NodeMaterialBlock {\n static _OnGenerateOnlyFragmentCodeChanged(block, _propertyName) {\n const that = block;\n if (that.worldPosition.isConnected) {\n that.generateOnlyFragmentCode = !that.generateOnlyFragmentCode;\n Logger.Error(\"The worldPosition input must not be connected to be able to switch!\");\n return false;\n }\n that._setTarget();\n return true;\n }\n _setTarget() {\n this._setInitialTarget(this.generateOnlyFragmentCode ? NodeMaterialBlockTargets.Fragment : NodeMaterialBlockTargets.VertexAndFragment);\n this.getInputByName(\"worldPosition\").target = this.generateOnlyFragmentCode ? NodeMaterialBlockTargets.Fragment : NodeMaterialBlockTargets.Vertex;\n }\n /**\n * Create a new ReflectionBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.VertexAndFragment);\n this._environmentBRDFTexture = null;\n this._metallicReflectanceColor = Color3.White();\n this._metallicF0Factor = 1;\n /**\n * Intensity of the direct lights e.g. the four lights available in your scene.\n * This impacts both the direct diffuse and specular highlights.\n */\n this.directIntensity = 1.0;\n /**\n * Intensity of the environment e.g. how much the environment will light the object\n * either through harmonics for rough material or through the reflection for shiny ones.\n */\n this.environmentIntensity = 1.0;\n /**\n * This is a special control allowing the reduction of the specular highlights coming from the\n * four lights of the scene. Those highlights may not be needed in full environment lighting.\n */\n this.specularIntensity = 1.0;\n /**\n * Defines the falloff type used in this material.\n * It by default is Physical.\n */\n this.lightFalloff = 0;\n /**\n * Specifies that alpha test should be used\n */\n this.useAlphaTest = false;\n /**\n * Defines the alpha limits in alpha test mode.\n */\n this.alphaTestCutoff = 0.5;\n /**\n * Specifies that alpha blending should be used\n */\n this.useAlphaBlending = false;\n /**\n * Specifies that the material will keeps the reflection highlights over a transparent surface (only the most luminous ones).\n * A car glass is a good example of that. When the street lights reflects on it you can not see what is behind.\n */\n this.useRadianceOverAlpha = true;\n /**\n * Specifies that the material will keeps the specular highlights over a transparent surface (only the most luminous ones).\n * A car glass is a good example of that. When sun reflects on it you can not see what is behind.\n */\n this.useSpecularOverAlpha = true;\n /**\n * Enables specular anti aliasing in the PBR shader.\n * It will both interacts on the Geometry for analytical and IBL lighting.\n * It also prefilter the roughness map based on the bump values.\n */\n this.enableSpecularAntiAliasing = false;\n /**\n * Enables realtime filtering on the texture.\n */\n this.realTimeFiltering = false;\n /**\n * Quality switch for realtime filtering\n */\n this.realTimeFilteringQuality = 8;\n /**\n * Defines if the material uses energy conservation.\n */\n this.useEnergyConservation = true;\n /**\n * This parameters will enable/disable radiance occlusion by preventing the radiance to lit\n * too much the area relying on ambient texture to define their ambient occlusion.\n */\n this.useRadianceOcclusion = true;\n /**\n * This parameters will enable/disable Horizon occlusion to prevent normal maps to look shiny when the normal\n * makes the reflect vector face the model (under horizon).\n */\n this.useHorizonOcclusion = true;\n /**\n * If set to true, no lighting calculations will be applied.\n */\n this.unlit = false;\n /**\n * Force normal to face away from face.\n */\n this.forceNormalForward = false;\n /** Indicates that no code should be generated in the vertex shader. Can be useful in some specific circumstances (like when doing ray marching for eg) */\n this.generateOnlyFragmentCode = false;\n /**\n * Defines the material debug mode.\n * It helps seeing only some components of the material while troubleshooting.\n */\n this.debugMode = 0;\n /**\n * Specify from where on screen the debug mode should start.\n * The value goes from -1 (full screen) to 1 (not visible)\n * It helps with side by side comparison against the final render\n * This defaults to 0\n */\n this.debugLimit = 0;\n /**\n * As the default viewing range might not be enough (if the ambient is really small for instance)\n * You can use the factor to better multiply the final value.\n */\n this.debugFactor = 1;\n this._isUnique = true;\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"worldNormal\", NodeMaterialBlockConnectionPointTypes.Vector4, false, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"view\", NodeMaterialBlockConnectionPointTypes.Matrix, false);\n this.registerInput(\"cameraPosition\", NodeMaterialBlockConnectionPointTypes.Vector3, false, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"perturbedNormal\", NodeMaterialBlockConnectionPointTypes.Vector4, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"baseColor\", NodeMaterialBlockConnectionPointTypes.Color3, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"metallic\", NodeMaterialBlockConnectionPointTypes.Float, false, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"roughness\", NodeMaterialBlockConnectionPointTypes.Float, false, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"ambientOcc\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"opacity\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"indexOfRefraction\", NodeMaterialBlockConnectionPointTypes.Float, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"ambientColor\", NodeMaterialBlockConnectionPointTypes.Color3, true, NodeMaterialBlockTargets.Fragment);\n this.registerInput(\"reflection\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"reflection\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, ReflectionBlock, \"ReflectionBlock\"));\n this.registerInput(\"clearcoat\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"clearcoat\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, ClearCoatBlock, \"ClearCoatBlock\"));\n this.registerInput(\"sheen\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"sheen\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, SheenBlock, \"SheenBlock\"));\n this.registerInput(\"subsurface\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"subsurface\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, SubSurfaceBlock, \"SubSurfaceBlock\"));\n this.registerInput(\"anisotropy\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"anisotropy\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, AnisotropyBlock, \"AnisotropyBlock\"));\n this.registerInput(\"iridescence\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.Fragment, new NodeMaterialConnectionPointCustomObject(\"iridescence\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, IridescenceBlock, \"IridescenceBlock\"));\n this.registerOutput(\"ambientClr\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"diffuseDir\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"specularDir\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"clearcoatDir\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"sheenDir\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"diffuseInd\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"specularInd\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"clearcoatInd\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"sheenInd\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"refraction\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"lighting\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"shadow\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"alpha\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n }\n /**\n * Initialize the block and prepare the context for build\n * @param state defines the state that will be used for the build\n */\n initialize(state) {\n state._excludeVariableName(\"vLightingIntensity\");\n state._excludeVariableName(\"geometricNormalW\");\n state._excludeVariableName(\"normalW\");\n state._excludeVariableName(\"faceNormal\");\n state._excludeVariableName(\"albedoOpacityOut\");\n state._excludeVariableName(\"surfaceAlbedo\");\n state._excludeVariableName(\"alpha\");\n state._excludeVariableName(\"aoOut\");\n state._excludeVariableName(\"baseColor\");\n state._excludeVariableName(\"reflectivityOut\");\n state._excludeVariableName(\"microSurface\");\n state._excludeVariableName(\"roughness\");\n state._excludeVariableName(\"NdotVUnclamped\");\n state._excludeVariableName(\"NdotV\");\n state._excludeVariableName(\"alphaG\");\n state._excludeVariableName(\"AARoughnessFactors\");\n state._excludeVariableName(\"environmentBrdf\");\n state._excludeVariableName(\"ambientMonochrome\");\n state._excludeVariableName(\"seo\");\n state._excludeVariableName(\"eho\");\n state._excludeVariableName(\"environmentRadiance\");\n state._excludeVariableName(\"irradianceVector\");\n state._excludeVariableName(\"environmentIrradiance\");\n state._excludeVariableName(\"diffuseBase\");\n state._excludeVariableName(\"specularBase\");\n state._excludeVariableName(\"preInfo\");\n state._excludeVariableName(\"info\");\n state._excludeVariableName(\"shadow\");\n state._excludeVariableName(\"finalDiffuse\");\n state._excludeVariableName(\"finalAmbient\");\n state._excludeVariableName(\"ambientOcclusionForDirectDiffuse\");\n state._excludeVariableName(\"finalColor\");\n state._excludeVariableName(\"vClipSpacePosition\");\n state._excludeVariableName(\"vDebugMode\");\n this._initShaderSourceAsync(state.shaderLanguage);\n }\n async _initShaderSourceAsync(shaderLanguage) {\n this._codeIsReady = false;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([import(\"../../../../ShadersWGSL/pbr.vertex.js\"), import(\"../../../../ShadersWGSL/pbr.fragment.js\")]);\n }\n else {\n await Promise.all([import(\"../../../../Shaders/pbr.vertex.js\"), import(\"../../../../Shaders/pbr.fragment.js\")]);\n }\n this._codeIsReady = true;\n this.onCodeIsReadyObservable.notifyObservers(this);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PBRMetallicRoughnessBlock\";\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the world normal input component\n */\n get worldNormal() {\n return this._inputs[1];\n }\n /**\n * Gets the view matrix parameter\n */\n get view() {\n return this._inputs[2];\n }\n /**\n * Gets the camera position input component\n */\n get cameraPosition() {\n return this._inputs[3];\n }\n /**\n * Gets the perturbed normal input component\n */\n get perturbedNormal() {\n return this._inputs[4];\n }\n /**\n * Gets the base color input component\n */\n get baseColor() {\n return this._inputs[5];\n }\n /**\n * Gets the metallic input component\n */\n get metallic() {\n return this._inputs[6];\n }\n /**\n * Gets the roughness input component\n */\n get roughness() {\n return this._inputs[7];\n }\n /**\n * Gets the ambient occlusion input component\n */\n get ambientOcc() {\n return this._inputs[8];\n }\n /**\n * Gets the opacity input component\n */\n get opacity() {\n return this._inputs[9];\n }\n /**\n * Gets the index of refraction input component\n */\n get indexOfRefraction() {\n return this._inputs[10];\n }\n /**\n * Gets the ambient color input component\n */\n get ambientColor() {\n return this._inputs[11];\n }\n /**\n * Gets the reflection object parameters\n */\n get reflection() {\n return this._inputs[12];\n }\n /**\n * Gets the clear coat object parameters\n */\n get clearcoat() {\n return this._inputs[13];\n }\n /**\n * Gets the sheen object parameters\n */\n get sheen() {\n return this._inputs[14];\n }\n /**\n * Gets the sub surface object parameters\n */\n get subsurface() {\n return this._inputs[15];\n }\n /**\n * Gets the anisotropy object parameters\n */\n get anisotropy() {\n return this._inputs[16];\n }\n /**\n * Gets the iridescence object parameters\n */\n get iridescence() {\n return this._inputs[17];\n }\n /**\n * Gets the ambient output component\n */\n get ambientClr() {\n return this._outputs[0];\n }\n /**\n * Gets the diffuse output component\n */\n get diffuseDir() {\n return this._outputs[1];\n }\n /**\n * Gets the specular output component\n */\n get specularDir() {\n return this._outputs[2];\n }\n /**\n * Gets the clear coat output component\n */\n get clearcoatDir() {\n return this._outputs[3];\n }\n /**\n * Gets the sheen output component\n */\n get sheenDir() {\n return this._outputs[4];\n }\n /**\n * Gets the indirect diffuse output component\n */\n get diffuseInd() {\n return this._outputs[5];\n }\n /**\n * Gets the indirect specular output component\n */\n get specularInd() {\n return this._outputs[6];\n }\n /**\n * Gets the indirect clear coat output component\n */\n get clearcoatInd() {\n return this._outputs[7];\n }\n /**\n * Gets the indirect sheen output component\n */\n get sheenInd() {\n return this._outputs[8];\n }\n /**\n * Gets the refraction output component\n */\n get refraction() {\n return this._outputs[9];\n }\n /**\n * Gets the global lighting output component\n */\n get lighting() {\n return this._outputs[10];\n }\n /**\n * Gets the shadow output component\n */\n get shadow() {\n return this._outputs[11];\n }\n /**\n * Gets the alpha output component\n */\n get alpha() {\n return this._outputs[12];\n }\n autoConfigure(material, additionalFilteringInfo = () => true) {\n if (!this.cameraPosition.isConnected) {\n let cameraPositionInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.CameraPosition && additionalFilteringInfo(b));\n if (!cameraPositionInput) {\n cameraPositionInput = new InputBlock(\"cameraPosition\");\n cameraPositionInput.setAsSystemValue(NodeMaterialSystemValues.CameraPosition);\n }\n cameraPositionInput.output.connectTo(this.cameraPosition);\n }\n if (!this.view.isConnected) {\n let viewInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.View && additionalFilteringInfo(b));\n if (!viewInput) {\n viewInput = new InputBlock(\"view\");\n viewInput.setAsSystemValue(NodeMaterialSystemValues.View);\n }\n viewInput.output.connectTo(this.view);\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n // General\n defines.setValue(\"PBR\", true);\n defines.setValue(\"METALLICWORKFLOW\", true);\n defines.setValue(\"DEBUGMODE\", this.debugMode, true);\n defines.setValue(\"DEBUGMODE_FORCERETURN\", true);\n defines.setValue(\"NORMALXYSCALE\", true);\n defines.setValue(\"BUMP\", this.perturbedNormal.isConnected, true);\n defines.setValue(\"LODBASEDMICROSFURACE\", this._scene.getEngine().getCaps().textureLOD);\n // Albedo & Opacity\n defines.setValue(\"ALBEDO\", false, true);\n defines.setValue(\"OPACITY\", this.opacity.isConnected, true);\n // Ambient occlusion\n defines.setValue(\"AMBIENT\", true, true);\n defines.setValue(\"AMBIENTINGRAYSCALE\", false, true);\n // Reflectivity\n defines.setValue(\"REFLECTIVITY\", false, true);\n defines.setValue(\"AOSTOREINMETALMAPRED\", false, true);\n defines.setValue(\"METALLNESSSTOREINMETALMAPBLUE\", false, true);\n defines.setValue(\"ROUGHNESSSTOREINMETALMAPALPHA\", false, true);\n defines.setValue(\"ROUGHNESSSTOREINMETALMAPGREEN\", false, true);\n // Lighting & colors\n if (this.lightFalloff === PBRBaseMaterial.LIGHTFALLOFF_STANDARD) {\n defines.setValue(\"USEPHYSICALLIGHTFALLOFF\", false);\n defines.setValue(\"USEGLTFLIGHTFALLOFF\", false);\n }\n else if (this.lightFalloff === PBRBaseMaterial.LIGHTFALLOFF_GLTF) {\n defines.setValue(\"USEPHYSICALLIGHTFALLOFF\", false);\n defines.setValue(\"USEGLTFLIGHTFALLOFF\", true);\n }\n else {\n defines.setValue(\"USEPHYSICALLIGHTFALLOFF\", true);\n defines.setValue(\"USEGLTFLIGHTFALLOFF\", false);\n }\n // Transparency\n const alphaTestCutOffString = this.alphaTestCutoff.toString();\n defines.setValue(\"ALPHABLEND\", this.useAlphaBlending, true);\n defines.setValue(\"ALPHAFROMALBEDO\", false, true);\n defines.setValue(\"ALPHATEST\", this.useAlphaTest, true);\n defines.setValue(\"ALPHATESTVALUE\", alphaTestCutOffString.indexOf(\".\") < 0 ? alphaTestCutOffString + \".\" : alphaTestCutOffString, true);\n defines.setValue(\"OPACITYRGB\", false, true);\n // Rendering\n defines.setValue(\"RADIANCEOVERALPHA\", this.useRadianceOverAlpha, true);\n defines.setValue(\"SPECULAROVERALPHA\", this.useSpecularOverAlpha, true);\n defines.setValue(\"SPECULARAA\", this._scene.getEngine().getCaps().standardDerivatives && this.enableSpecularAntiAliasing, true);\n defines.setValue(\"REALTIME_FILTERING\", this.realTimeFiltering, true);\n const scene = mesh.getScene();\n const engine = scene.getEngine();\n if (engine._features.needTypeSuffixInShaderConstants) {\n defines.setValue(\"NUM_SAMPLES\", this.realTimeFilteringQuality + \"u\", true);\n }\n else {\n defines.setValue(\"NUM_SAMPLES\", \"\" + this.realTimeFilteringQuality, true);\n }\n // Advanced\n defines.setValue(\"BRDF_V_HEIGHT_CORRELATED\", true);\n defines.setValue(\"MS_BRDF_ENERGY_CONSERVATION\", this.useEnergyConservation, true);\n defines.setValue(\"RADIANCEOCCLUSION\", this.useRadianceOcclusion, true);\n defines.setValue(\"HORIZONOCCLUSION\", this.useHorizonOcclusion, true);\n defines.setValue(\"UNLIT\", this.unlit, true);\n defines.setValue(\"FORCENORMALFORWARD\", this.forceNormalForward, true);\n if (this._environmentBRDFTexture && MaterialFlags.ReflectionTextureEnabled) {\n defines.setValue(\"ENVIRONMENTBRDF\", true);\n defines.setValue(\"ENVIRONMENTBRDF_RGBD\", this._environmentBRDFTexture.isRGBD, true);\n }\n else {\n defines.setValue(\"ENVIRONMENTBRDF\", false);\n defines.setValue(\"ENVIRONMENTBRDF_RGBD\", false);\n }\n if (defines._areImageProcessingDirty && nodeMaterial.imageProcessingConfiguration) {\n nodeMaterial.imageProcessingConfiguration.prepareDefines(defines);\n }\n if (!defines._areLightsDirty) {\n return;\n }\n if (!this.light) {\n // Lights\n PrepareDefinesForLights(scene, mesh, defines, true, nodeMaterial.maxSimultaneousLights);\n defines._needNormals = true;\n // Multiview\n PrepareDefinesForMultiview(scene, defines);\n }\n else {\n const state = {\n needNormals: false,\n needRebuild: false,\n lightmapMode: false,\n shadowEnabled: false,\n specularEnabled: false,\n };\n PrepareDefinesForLight(scene, mesh, this.light, this._lightId, defines, true, state);\n if (state.needRebuild) {\n defines.rebuild();\n }\n }\n }\n updateUniformsAndSamples(state, nodeMaterial, defines, uniformBuffers) {\n for (let lightIndex = 0; lightIndex < nodeMaterial.maxSimultaneousLights; lightIndex++) {\n if (!defines[\"LIGHT\" + lightIndex]) {\n break;\n }\n const onlyUpdateBuffersList = state.uniforms.indexOf(\"vLightData\" + lightIndex) >= 0;\n PrepareUniformsAndSamplersForLight(lightIndex, state.uniforms, state.samplers, defines[\"PROJECTEDLIGHTTEXTURE\" + lightIndex], uniformBuffers, onlyUpdateBuffersList);\n }\n }\n isReady(mesh, nodeMaterial, defines) {\n if (this._environmentBRDFTexture && !this._environmentBRDFTexture.isReady()) {\n return false;\n }\n if (defines._areImageProcessingDirty && nodeMaterial.imageProcessingConfiguration) {\n if (!nodeMaterial.imageProcessingConfiguration.isReady()) {\n return false;\n }\n }\n return true;\n }\n bind(effect, nodeMaterial, mesh) {\n if (!mesh) {\n return;\n }\n const scene = mesh.getScene();\n if (!this.light) {\n BindLights(scene, mesh, effect, true, nodeMaterial.maxSimultaneousLights);\n }\n else {\n BindLight(this.light, this._lightId, scene, effect, true);\n }\n effect.setTexture(this._environmentBrdfSamplerName, this._environmentBRDFTexture);\n effect.setFloat2(\"vDebugMode\", this.debugLimit, this.debugFactor);\n const ambientScene = this._scene.ambientColor;\n if (ambientScene) {\n effect.setColor3(\"ambientFromScene\", ambientScene);\n }\n const invertNormal = scene.useRightHandedSystem === (scene._mirroredCameraPosition != null);\n effect.setFloat(this._invertNormalName, invertNormal ? -1 : 1);\n effect.setFloat4(\"vLightingIntensity\", this.directIntensity, 1, this.environmentIntensity * this._scene.environmentIntensity, this.specularIntensity);\n // reflectivity bindings\n const outsideIOR = 1; // consider air as clear coat and other layers would remap in the shader.\n const ior = this.indexOfRefraction.connectInputBlock?.value ?? 1.5;\n // We are here deriving our default reflectance from a common value for none metallic surface.\n // Based of the schlick fresnel approximation model\n // for dielectrics.\n const f0 = Math.pow((ior - outsideIOR) / (ior + outsideIOR), 2);\n // Tweak the default F0 and F90 based on our given setup\n this._metallicReflectanceColor.scaleToRef(f0 * this._metallicF0Factor, TmpColors.Color3[0]);\n const metallicF90 = this._metallicF0Factor;\n effect.setColor4(this._vMetallicReflectanceFactorsName, TmpColors.Color3[0], metallicF90);\n if (nodeMaterial.imageProcessingConfiguration) {\n nodeMaterial.imageProcessingConfiguration.bind(effect);\n }\n }\n _injectVertexCode(state) {\n const worldPos = this.worldPosition;\n const worldNormal = this.worldNormal;\n const comments = `//${this.name}`;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n // Declaration\n if (!this.light) {\n // Emit for all lights\n state._emitFunctionFromInclude(state.supportUniformBuffers ? \"lightVxUboDeclaration\" : \"lightVxFragmentDeclaration\", comments, {\n repeatKey: \"maxSimultaneousLights\",\n });\n this._lightId = 0;\n state.sharedData.dynamicUniformBlocks.push(this);\n }\n else {\n this._lightId = (state.counters[\"lightCounter\"] !== undefined ? state.counters[\"lightCounter\"] : -1) + 1;\n state.counters[\"lightCounter\"] = this._lightId;\n state._emitFunctionFromInclude(state.supportUniformBuffers ? \"lightVxUboDeclaration\" : \"lightVxFragmentDeclaration\", comments, {\n replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }],\n }, this._lightId.toString());\n }\n // Inject code in vertex\n const worldPosVaryingName = \"v_\" + worldPos.associatedVariableName;\n if (state._emitVaryingFromString(worldPosVaryingName, NodeMaterialBlockConnectionPointTypes.Vector4)) {\n state.compilationString += (isWebGPU ? \"vertexOutputs.\" : \"\") + `${worldPosVaryingName} = ${worldPos.associatedVariableName};\\n`;\n }\n const worldNormalVaryingName = \"v_\" + worldNormal.associatedVariableName;\n if (state._emitVaryingFromString(worldNormalVaryingName, NodeMaterialBlockConnectionPointTypes.Vector4)) {\n state.compilationString += (isWebGPU ? \"vertexOutputs.\" : \"\") + `${worldNormalVaryingName} = ${worldNormal.associatedVariableName};\\n`;\n }\n const reflectionBlock = this.reflection.isConnected ? this.reflection.connectedPoint?.ownerBlock : null;\n if (reflectionBlock) {\n reflectionBlock.viewConnectionPoint = this.view;\n }\n state.compilationString += reflectionBlock?.handleVertexSide(state) ?? \"\";\n if (state._emitVaryingFromString(\"vClipSpacePosition\", NodeMaterialBlockConnectionPointTypes.Vector4, \"defined(IGNORE) || DEBUGMODE > 0\")) {\n state._injectAtEnd += `#if DEBUGMODE > 0\\n`;\n state._injectAtEnd += (isWebGPU ? \"vertexOutputs.\" : \"\") + `vClipSpacePosition = ${isWebGPU ? \"vertexOutputs.position\" : \"gl_Position\"};\\n`;\n state._injectAtEnd += `#endif\\n`;\n }\n if (this.light) {\n state.compilationString += state._emitCodeFromInclude(\"shadowsVertex\", comments, {\n replaceStrings: [\n { search: /{X}/g, replace: this._lightId.toString() },\n { search: /worldPos/g, replace: worldPos.associatedVariableName },\n ],\n });\n }\n else {\n state.compilationString += `${state._declareLocalVar(\"worldPos\", NodeMaterialBlockConnectionPointTypes.Vector4)} = ${worldPos.associatedVariableName};\\n`;\n if (this.view.isConnected) {\n state.compilationString += `${state._declareLocalVar(\"view\", NodeMaterialBlockConnectionPointTypes.Matrix)} = ${this.view.associatedVariableName};\\n`;\n }\n state.compilationString += state._emitCodeFromInclude(\"shadowsVertex\", comments, {\n repeatKey: \"maxSimultaneousLights\",\n });\n }\n }\n _getAlbedoOpacityCode(state) {\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n let code = isWebGPU ? \"var albedoOpacityOut: albedoOpacityOutParams;\\n\" : `albedoOpacityOutParams albedoOpacityOut;\\n`;\n const albedoColor = this.baseColor.isConnected ? this.baseColor.associatedVariableName : \"vec3(1.)\";\n const opacity = this.opacity.isConnected ? this.opacity.associatedVariableName : \"1.\";\n code += `albedoOpacityOut = albedoOpacityBlock(\r\n vec4${state.fSuffix}(${albedoColor}, 1.)\r\n #ifdef ALBEDO\r\n ,vec4${state.fSuffix}(1.)\r\n ,vec2${state.fSuffix}(1., 1.)\r\n #endif\r\n #ifdef OPACITY\r\n ,vec4${state.fSuffix}(${opacity})\r\n ,vec2${state.fSuffix}(1., 1.)\r\n #endif \r\n );\r\n\r\n ${state._declareLocalVar(\"surfaceAlbedo\", NodeMaterialBlockConnectionPointTypes.Vector3)} = albedoOpacityOut.surfaceAlbedo;\r\n ${state._declareLocalVar(\"alpha\", NodeMaterialBlockConnectionPointTypes.Float)} = albedoOpacityOut.alpha;\\n`;\n return code;\n }\n _getAmbientOcclusionCode(state) {\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n let code = isWebGPU ? \"var aoOut: ambientOcclusionOutParams;\\n\" : `ambientOcclusionOutParams aoOut;\\n`;\n const ao = this.ambientOcc.isConnected ? this.ambientOcc.associatedVariableName : \"1.\";\n code += `aoOut = ambientOcclusionBlock(\r\n #ifdef AMBIENT\r\n vec3${state.fSuffix}(${ao}),\r\n vec4${state.fSuffix}(0., 1.0, 1.0, 0.)\r\n #endif\r\n );\\n`;\n return code;\n }\n _getReflectivityCode(state) {\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n let code = isWebGPU ? \"var reflectivityOut: reflectivityOutParams;\\n\" : `reflectivityOutParams reflectivityOut;\\n`;\n const aoIntensity = \"1.\";\n this._vMetallicReflectanceFactorsName = state._getFreeVariableName(\"vMetallicReflectanceFactors\");\n state._emitUniformFromString(this._vMetallicReflectanceFactorsName, NodeMaterialBlockConnectionPointTypes.Vector4);\n code += `${state._declareLocalVar(\"baseColor\", NodeMaterialBlockConnectionPointTypes.Vector3)} = surfaceAlbedo;\r\n\r\n reflectivityOut = reflectivityBlock(\r\n vec4${state.fSuffix}(${this.metallic.associatedVariableName}, ${this.roughness.associatedVariableName}, 0., 0.)\r\n #ifdef METALLICWORKFLOW\r\n , surfaceAlbedo\r\n , ${(isWebGPU ? \"uniforms.\" : \"\") + this._vMetallicReflectanceFactorsName}\r\n #endif\r\n #ifdef REFLECTIVITY\r\n , vec3${state.fSuffix}(0., 0., ${aoIntensity})\r\n , vec4${state.fSuffix}(1.)\r\n #endif\r\n #if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\r\n , aoOut.ambientOcclusionColor\r\n #endif\r\n #ifdef MICROSURFACEMAP\r\n , microSurfaceTexel <== not handled!\r\n #endif\r\n );\r\n\r\n ${state._declareLocalVar(\"microSurface\", NodeMaterialBlockConnectionPointTypes.Float)} = reflectivityOut.microSurface;\r\n ${state._declareLocalVar(\"roughness\", NodeMaterialBlockConnectionPointTypes.Float)} = reflectivityOut.roughness;\r\n\r\n #ifdef METALLICWORKFLOW\r\n surfaceAlbedo = reflectivityOut.surfaceAlbedo;\r\n #endif\r\n #if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\r\n aoOut.ambientOcclusionColor = reflectivityOut.ambientOcclusionColor;\r\n #endif\\n`;\n return code;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this._scene = state.sharedData.scene;\n const isWebGPU = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n if (!this._environmentBRDFTexture) {\n this._environmentBRDFTexture = GetEnvironmentBRDFTexture(this._scene);\n }\n const reflectionBlock = this.reflection.isConnected ? this.reflection.connectedPoint?.ownerBlock : null;\n if (reflectionBlock) {\n // Need those variables to be setup when calling _injectVertexCode\n reflectionBlock.worldPositionConnectionPoint = this.worldPosition;\n reflectionBlock.cameraPositionConnectionPoint = this.cameraPosition;\n reflectionBlock.worldNormalConnectionPoint = this.worldNormal;\n reflectionBlock.viewConnectionPoint = this.view;\n }\n if (state.target !== NodeMaterialBlockTargets.Fragment) {\n // Vertex\n this._injectVertexCode(state);\n return this;\n }\n // Fragment\n state.sharedData.forcedBindableBlocks.push(this);\n state.sharedData.blocksWithDefines.push(this);\n state.sharedData.blockingBlocks.push(this);\n if (this.generateOnlyFragmentCode) {\n state.sharedData.dynamicUniformBlocks.push(this);\n }\n const comments = `//${this.name}`;\n const normalShading = this.perturbedNormal;\n let worldPosVarName = this.worldPosition.associatedVariableName;\n let worldNormalVarName = this.worldNormal.associatedVariableName;\n if (this.generateOnlyFragmentCode) {\n worldPosVarName = state._getFreeVariableName(\"globalWorldPos\");\n state.compilationString += `${worldPosVarName} = ${this.worldPosition.associatedVariableName}.xyz;\\n`;\n worldNormalVarName = state._getFreeVariableName(\"globalWorldNormal\");\n state.compilationString += `${worldNormalVarName} = ${this.worldNormal.associatedVariableName}.xyz;\\n`;\n state.compilationString += state._emitCodeFromInclude(\"shadowsVertex\", comments, {\n repeatKey: \"maxSimultaneousLights\",\n substitutionVars: this.generateOnlyFragmentCode ? `worldPos,${this.worldPosition.associatedVariableName}` : undefined,\n });\n state.compilationString += `#if DEBUGMODE > 0\\n`;\n state.compilationString += `${state._declareLocalVar(\"vClipSpacePosition\", NodeMaterialBlockConnectionPointTypes.Vector4)} = vec4${state.fSuffix}((vec2${state.fSuffix}(${isWebGPU ? \"fragmentInputs.position\" : \"gl_FragCoord.xy\"}) / vec2${state.fSuffix}(1.0)) * 2.0 - 1.0, 0.0, 1.0);\\n`;\n state.compilationString += `#endif\\n`;\n }\n else {\n worldPosVarName = (isWebGPU ? \"input.\" : \"\") + \"v_\" + worldPosVarName;\n worldNormalVarName = (isWebGPU ? \"input.\" : \"\") + \"v_\" + worldNormalVarName;\n }\n this._environmentBrdfSamplerName = state._getFreeVariableName(\"environmentBrdfSampler\");\n state._emit2DSampler(this._environmentBrdfSamplerName);\n state.sharedData.hints.needAlphaBlending = state.sharedData.hints.needAlphaBlending || this.useAlphaBlending;\n state.sharedData.hints.needAlphaTesting = state.sharedData.hints.needAlphaTesting || this.useAlphaTest;\n state._emitExtension(\"lod\", \"#extension GL_EXT_shader_texture_lod : enable\", \"defined(LODBASEDMICROSFURACE)\");\n state._emitExtension(\"derivatives\", \"#extension GL_OES_standard_derivatives : enable\");\n state._emitUniformFromString(\"vDebugMode\", NodeMaterialBlockConnectionPointTypes.Vector2, \"defined(IGNORE) || DEBUGMODE > 0\");\n state._emitUniformFromString(\"ambientFromScene\", NodeMaterialBlockConnectionPointTypes.Vector3);\n // Image processing uniforms\n state.uniforms.push(\"exposureLinear\");\n state.uniforms.push(\"contrast\");\n state.uniforms.push(\"vInverseScreenSize\");\n state.uniforms.push(\"vignetteSettings1\");\n state.uniforms.push(\"vignetteSettings2\");\n state.uniforms.push(\"vCameraColorCurveNegative\");\n state.uniforms.push(\"vCameraColorCurveNeutral\");\n state.uniforms.push(\"vCameraColorCurvePositive\");\n state.uniforms.push(\"txColorTransform\");\n state.uniforms.push(\"colorTransformSettings\");\n state.uniforms.push(\"ditherIntensity\");\n //\n // Includes\n //\n if (!this.light) {\n // Emit for all lights\n state._emitFunctionFromInclude(state.supportUniformBuffers ? \"lightUboDeclaration\" : \"lightFragmentDeclaration\", comments, {\n repeatKey: \"maxSimultaneousLights\",\n substitutionVars: this.generateOnlyFragmentCode ? \"varying,\" : undefined,\n });\n }\n else {\n state._emitFunctionFromInclude(state.supportUniformBuffers ? \"lightUboDeclaration\" : \"lightFragmentDeclaration\", comments, {\n replaceStrings: [{ search: /{X}/g, replace: this._lightId.toString() }],\n }, this._lightId.toString());\n }\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\n state._emitFunctionFromInclude(\"importanceSampling\", comments);\n state._emitFunctionFromInclude(\"pbrHelperFunctions\", comments);\n state._emitFunctionFromInclude(\"imageProcessingDeclaration\", comments);\n state._emitFunctionFromInclude(\"imageProcessingFunctions\", comments);\n state._emitFunctionFromInclude(\"shadowsFragmentFunctions\", comments);\n state._emitFunctionFromInclude(\"pbrDirectLightingSetupFunctions\", comments);\n state._emitFunctionFromInclude(\"pbrDirectLightingFalloffFunctions\", comments);\n state._emitFunctionFromInclude(\"pbrBRDFFunctions\", comments, {\n replaceStrings: [{ search: /REFLECTIONMAP_SKYBOX/g, replace: reflectionBlock?._defineSkyboxName ?? \"REFLECTIONMAP_SKYBOX\" }],\n });\n state._emitFunctionFromInclude(\"hdrFilteringFunctions\", comments);\n state._emitFunctionFromInclude(\"pbrDirectLightingFunctions\", comments);\n state._emitFunctionFromInclude(\"pbrIBLFunctions\", comments);\n state._emitFunctionFromInclude(\"pbrBlockAlbedoOpacity\", comments);\n state._emitFunctionFromInclude(\"pbrBlockReflectivity\", comments);\n state._emitFunctionFromInclude(\"pbrBlockAmbientOcclusion\", comments);\n state._emitFunctionFromInclude(\"pbrBlockAlphaFresnel\", comments);\n state._emitFunctionFromInclude(\"pbrBlockAnisotropic\", comments);\n //\n // code\n //\n state._emitUniformFromString(\"vLightingIntensity\", NodeMaterialBlockConnectionPointTypes.Vector4);\n if (reflectionBlock?.generateOnlyFragmentCode) {\n state.compilationString += reflectionBlock.handleVertexSide(state);\n }\n // _____________________________ Geometry Information ____________________________\n this._vNormalWName = state._getFreeVariableName(\"vNormalW\");\n state.compilationString += `${state._declareLocalVar(this._vNormalWName, NodeMaterialBlockConnectionPointTypes.Vector4)} = normalize(${worldNormalVarName});\\n`;\n if (state._registerTempVariable(\"viewDirectionW\")) {\n state.compilationString += `${state._declareLocalVar(\"viewDirectionW\", NodeMaterialBlockConnectionPointTypes.Vector3)} = normalize(${this.cameraPosition.associatedVariableName} - ${worldPosVarName}.xyz);\\n`;\n }\n state.compilationString += `${state._declareLocalVar(\"geometricNormalW\", NodeMaterialBlockConnectionPointTypes.Vector3)} = ${this._vNormalWName}.xyz;\\n`;\n state.compilationString += `${state._declareLocalVar(\"normalW\", NodeMaterialBlockConnectionPointTypes.Vector3)} = ${normalShading.isConnected ? \"normalize(\" + normalShading.associatedVariableName + \".xyz)\" : \"geometricNormalW\"};\\n`;\n this._invertNormalName = state._getFreeVariableName(\"invertNormal\");\n state._emitUniformFromString(this._invertNormalName, NodeMaterialBlockConnectionPointTypes.Float);\n state.compilationString += state._emitCodeFromInclude(\"pbrBlockNormalFinal\", comments, {\n replaceStrings: [\n { search: /vPositionW/g, replace: worldPosVarName + \".xyz\" },\n { search: /vEyePosition.w/g, replace: this._invertNormalName },\n ],\n });\n // _____________________________ Albedo & Opacity ______________________________\n state.compilationString += this._getAlbedoOpacityCode(state);\n state.compilationString += state._emitCodeFromInclude(\"depthPrePass\", comments);\n // _____________________________ AO _______________________________\n state.compilationString += this._getAmbientOcclusionCode(state);\n state.compilationString += state._emitCodeFromInclude(\"pbrBlockLightmapInit\", comments);\n // _____________________________ UNLIT _______________________________\n state.compilationString += `#ifdef UNLIT\r\n ${state._declareLocalVar(\"diffuseBase\", NodeMaterialBlockConnectionPointTypes.Vector3)} = vec3${state.fSuffix}(1., 1., 1.);\r\n #else\\n`;\n // _____________________________ Reflectivity _______________________________\n state.compilationString += this._getReflectivityCode(state);\n // _____________________________ Geometry info _________________________________\n state.compilationString += state._emitCodeFromInclude(\"pbrBlockGeometryInfo\", comments, {\n replaceStrings: [\n { search: /REFLECTIONMAP_SKYBOX/g, replace: reflectionBlock?._defineSkyboxName ?? \"REFLECTIONMAP_SKYBOX\" },\n { search: /REFLECTIONMAP_3D/g, replace: reflectionBlock?._define3DName ?? \"REFLECTIONMAP_3D\" },\n ],\n });\n // _____________________________ Anisotropy _______________________________________\n const anisotropyBlock = this.anisotropy.isConnected ? this.anisotropy.connectedPoint?.ownerBlock : null;\n if (anisotropyBlock) {\n anisotropyBlock.worldPositionConnectionPoint = this.worldPosition;\n anisotropyBlock.worldNormalConnectionPoint = this.worldNormal;\n state.compilationString += anisotropyBlock.getCode(state, !this.perturbedNormal.isConnected);\n }\n // _____________________________ Reflection _______________________________________\n if (reflectionBlock && reflectionBlock.hasTexture) {\n state.compilationString += reflectionBlock.getCode(state, anisotropyBlock ? \"anisotropicOut.anisotropicNormal\" : \"normalW\");\n }\n state._emitFunctionFromInclude(\"pbrBlockReflection\", comments, {\n replaceStrings: [\n { search: /computeReflectionCoords/g, replace: \"computeReflectionCoordsPBR\" },\n { search: /REFLECTIONMAP_3D/g, replace: reflectionBlock?._define3DName ?? \"REFLECTIONMAP_3D\" },\n { search: /REFLECTIONMAP_OPPOSITEZ/g, replace: reflectionBlock?._defineOppositeZ ?? \"REFLECTIONMAP_OPPOSITEZ\" },\n { search: /REFLECTIONMAP_PROJECTION/g, replace: reflectionBlock?._defineProjectionName ?? \"REFLECTIONMAP_PROJECTION\" },\n { search: /REFLECTIONMAP_SKYBOX/g, replace: reflectionBlock?._defineSkyboxName ?? \"REFLECTIONMAP_SKYBOX\" },\n { search: /LODINREFLECTIONALPHA/g, replace: reflectionBlock?._defineLODReflectionAlpha ?? \"LODINREFLECTIONALPHA\" },\n { search: /LINEARSPECULARREFLECTION/g, replace: reflectionBlock?._defineLinearSpecularReflection ?? \"LINEARSPECULARREFLECTION\" },\n { search: /vReflectionFilteringInfo/g, replace: reflectionBlock?._vReflectionFilteringInfoName ?? \"vReflectionFilteringInfo\" },\n ],\n });\n // ___________________ Compute Reflectance aka R0 F0 info _________________________\n state.compilationString += state._emitCodeFromInclude(\"pbrBlockReflectance0\", comments, {\n replaceStrings: [{ search: /metallicReflectanceFactors/g, replace: (isWebGPU ? \"uniforms.\" : \"\") + this._vMetallicReflectanceFactorsName }],\n });\n // ________________________________ Sheen ______________________________\n const sheenBlock = this.sheen.isConnected ? this.sheen.connectedPoint?.ownerBlock : null;\n if (sheenBlock) {\n state.compilationString += sheenBlock.getCode(reflectionBlock, state);\n }\n state._emitFunctionFromInclude(\"pbrBlockSheen\", comments, {\n replaceStrings: [\n { search: /REFLECTIONMAP_3D/g, replace: reflectionBlock?._define3DName ?? \"REFLECTIONMAP_3D\" },\n { search: /REFLECTIONMAP_SKYBOX/g, replace: reflectionBlock?._defineSkyboxName ?? \"REFLECTIONMAP_SKYBOX\" },\n { search: /LODINREFLECTIONALPHA/g, replace: reflectionBlock?._defineLODReflectionAlpha ?? \"LODINREFLECTIONALPHA\" },\n { search: /LINEARSPECULARREFLECTION/g, replace: reflectionBlock?._defineLinearSpecularReflection ?? \"LINEARSPECULARREFLECTION\" },\n ],\n });\n // _____________________________ Iridescence _______________________________\n const iridescenceBlock = this.iridescence.isConnected ? this.iridescence.connectedPoint?.ownerBlock : null;\n state.compilationString += IridescenceBlock.GetCode(iridescenceBlock, state);\n state._emitFunctionFromInclude(\"pbrBlockIridescence\", comments, {\n replaceStrings: [],\n });\n // _____________________________ Clear Coat ____________________________\n const clearcoatBlock = this.clearcoat.isConnected ? this.clearcoat.connectedPoint?.ownerBlock : null;\n const generateTBNSpace = !this.perturbedNormal.isConnected && !this.anisotropy.isConnected;\n const isTangentConnectedToPerturbNormal = this.perturbedNormal.isConnected && (this.perturbedNormal.connectedPoint?.ownerBlock).worldTangent?.isConnected;\n const isTangentConnectedToAnisotropy = this.anisotropy.isConnected && (this.anisotropy.connectedPoint?.ownerBlock).worldTangent.isConnected;\n let vTBNAvailable = isTangentConnectedToPerturbNormal || (!this.perturbedNormal.isConnected && isTangentConnectedToAnisotropy);\n state.compilationString += ClearCoatBlock.GetCode(state, clearcoatBlock, reflectionBlock, worldPosVarName, generateTBNSpace, vTBNAvailable, worldNormalVarName);\n if (generateTBNSpace) {\n vTBNAvailable = clearcoatBlock?.worldTangent.isConnected ?? false;\n }\n state._emitFunctionFromInclude(\"pbrBlockClearcoat\", comments, {\n replaceStrings: [\n { search: /computeReflectionCoords/g, replace: \"computeReflectionCoordsPBR\" },\n { search: /REFLECTIONMAP_3D/g, replace: reflectionBlock?._define3DName ?? \"REFLECTIONMAP_3D\" },\n { search: /REFLECTIONMAP_OPPOSITEZ/g, replace: reflectionBlock?._defineOppositeZ ?? \"REFLECTIONMAP_OPPOSITEZ\" },\n { search: /REFLECTIONMAP_PROJECTION/g, replace: reflectionBlock?._defineProjectionName ?? \"REFLECTIONMAP_PROJECTION\" },\n { search: /REFLECTIONMAP_SKYBOX/g, replace: reflectionBlock?._defineSkyboxName ?? \"REFLECTIONMAP_SKYBOX\" },\n { search: /LODINREFLECTIONALPHA/g, replace: reflectionBlock?._defineLODReflectionAlpha ?? \"LODINREFLECTIONALPHA\" },\n { search: /LINEARSPECULARREFLECTION/g, replace: reflectionBlock?._defineLinearSpecularReflection ?? \"LINEARSPECULARREFLECTION\" },\n { search: /defined\\(TANGENT\\)/g, replace: vTBNAvailable ? \"defined(TANGENT)\" : \"defined(IGNORE)\" },\n ],\n });\n // _________________________ Specular Environment Reflectance __________________________\n state.compilationString += state._emitCodeFromInclude(\"pbrBlockReflectance\", comments, {\n replaceStrings: [\n { search: /REFLECTIONMAP_SKYBOX/g, replace: reflectionBlock?._defineSkyboxName ?? \"REFLECTIONMAP_SKYBOX\" },\n { search: /REFLECTIONMAP_3D/g, replace: reflectionBlock?._define3DName ?? \"REFLECTIONMAP_3D\" },\n ],\n });\n // ___________________________________ SubSurface ______________________________________\n const subsurfaceBlock = this.subsurface.isConnected ? this.subsurface.connectedPoint?.ownerBlock : null;\n const refractionBlock = this.subsurface.isConnected\n ? (this.subsurface.connectedPoint?.ownerBlock).refraction.connectedPoint?.ownerBlock\n : null;\n if (refractionBlock) {\n refractionBlock.viewConnectionPoint = this.view;\n refractionBlock.indexOfRefractionConnectionPoint = this.indexOfRefraction;\n }\n state.compilationString += SubSurfaceBlock.GetCode(state, subsurfaceBlock, reflectionBlock, worldPosVarName);\n state._emitFunctionFromInclude(\"pbrBlockSubSurface\", comments, {\n replaceStrings: [\n { search: /REFLECTIONMAP_3D/g, replace: reflectionBlock?._define3DName ?? \"REFLECTIONMAP_3D\" },\n { search: /REFLECTIONMAP_OPPOSITEZ/g, replace: reflectionBlock?._defineOppositeZ ?? \"REFLECTIONMAP_OPPOSITEZ\" },\n { search: /REFLECTIONMAP_PROJECTION/g, replace: reflectionBlock?._defineProjectionName ?? \"REFLECTIONMAP_PROJECTION\" },\n { search: /SS_REFRACTIONMAP_3D/g, replace: refractionBlock?._define3DName ?? \"SS_REFRACTIONMAP_3D\" },\n { search: /SS_LODINREFRACTIONALPHA/g, replace: refractionBlock?._defineLODRefractionAlpha ?? \"SS_LODINREFRACTIONALPHA\" },\n { search: /SS_LINEARSPECULARREFRACTION/g, replace: refractionBlock?._defineLinearSpecularRefraction ?? \"SS_LINEARSPECULARREFRACTION\" },\n { search: /SS_REFRACTIONMAP_OPPOSITEZ/g, replace: refractionBlock?._defineOppositeZ ?? \"SS_REFRACTIONMAP_OPPOSITEZ\" },\n ],\n });\n // _____________________________ Direct Lighting Info __________________________________\n state.compilationString += state._emitCodeFromInclude(\"pbrBlockDirectLighting\", comments);\n if (this.light) {\n state.compilationString += state._emitCodeFromInclude(\"lightFragment\", comments, {\n replaceStrings: [\n { search: /{X}/g, replace: this._lightId.toString() },\n { search: new RegExp(`${isWebGPU ? \"fragmentInputs.\" : \"\"}vPositionW`, \"g\"), replace: worldPosVarName + \".xyz\" },\n ],\n });\n }\n else {\n state.compilationString += state._emitCodeFromInclude(\"lightFragment\", comments, {\n repeatKey: \"maxSimultaneousLights\",\n substitutionVars: `${isWebGPU ? \"fragmentInputs.\" : \"\"}vPositionW,${worldPosVarName}.xyz`,\n });\n }\n // _____________________________ Compute Final Lit Components ________________________\n state.compilationString += state._emitCodeFromInclude(\"pbrBlockFinalLitComponents\", comments);\n // _____________________________ UNLIT (2) ________________________\n state.compilationString += `#endif\\n`; // UNLIT\n // _____________________________ Compute Final Unlit Components ________________________\n const aoColor = this.ambientColor.isConnected ? this.ambientColor.associatedVariableName : `vec3${state.fSuffix}(0., 0., 0.)`;\n let aoDirectLightIntensity = PBRBaseMaterial.DEFAULT_AO_ON_ANALYTICAL_LIGHTS.toString();\n if (aoDirectLightIntensity.indexOf(\".\") === -1) {\n aoDirectLightIntensity += \".\";\n }\n let replaceStrings = [\n { search: /vec3 finalEmissive[\\s\\S]*?finalEmissive\\*=vLightingIntensity\\.y;/g, replace: \"\" },\n { search: new RegExp(`${isWebGPU ? \"uniforms.\" : \"\"}vAmbientColor`, \"g\"), replace: aoColor + ` * ${isWebGPU ? \"uniforms.\" : \"\"}ambientFromScene` },\n { search: new RegExp(`${isWebGPU ? \"uniforms.\" : \"\"}vAmbientInfos.w`, \"g\"), replace: aoDirectLightIntensity },\n ];\n if (isWebGPU) {\n replaceStrings[0] = { search: /var finalEmissive[\\s\\S]*?finalEmissive\\*=uniforms.vLightingIntensity\\.y;/g, replace: \"\" };\n }\n state.compilationString += state._emitCodeFromInclude(\"pbrBlockFinalUnlitComponents\", comments, {\n replaceStrings: replaceStrings,\n });\n // _____________________________ Output Final Color Composition ________________________\n state.compilationString += state._emitCodeFromInclude(\"pbrBlockFinalColorComposition\", comments, {\n replaceStrings: [{ search: /finalEmissive/g, replace: `vec3${state.fSuffix}(0.)` }],\n });\n // _____________________________ Apply image processing ________________________\n if (isWebGPU) {\n replaceStrings = [{ search: /mesh.visibility/g, replace: \"1.\" }];\n }\n else {\n replaceStrings = [{ search: /visibility/g, replace: \"1.\" }];\n }\n state.compilationString += state._emitCodeFromInclude(\"pbrBlockImageProcessing\", comments, {\n replaceStrings: replaceStrings,\n });\n // _____________________________ Generate debug code ________________________\n const colorOutput = isWebGPU ? \"fragmentOutputs.color\" : \"gl_FragColor\";\n replaceStrings = [\n { search: new RegExp(`${isWebGPU ? \"fragmentInputs.\" : \"\"}vNormalW`, \"g\"), replace: this._vNormalWName },\n { search: new RegExp(`${isWebGPU ? \"fragmentInputs.\" : \"\"}vPositionW`, \"g\"), replace: worldPosVarName },\n {\n search: /albedoTexture\\.rgb;/g,\n replace: `vec3${state.fSuffix}(1.);\\n${colorOutput}.rgb = toGammaSpace(${colorOutput}.rgb);\\n`,\n },\n ];\n state.compilationString += state._emitCodeFromInclude(\"pbrDebug\", comments, {\n replaceStrings: replaceStrings,\n });\n // _____________________________ Generate end points ________________________\n for (const output of this._outputs) {\n if (output.hasEndpoints) {\n const remap = mapOutputToVariable[output.name];\n if (remap) {\n const [varName, conditions] = remap;\n if (conditions) {\n state.compilationString += `#if ${conditions}\\n`;\n }\n state.compilationString += `${state._declareOutput(output)} = ${varName};\\n`;\n if (conditions) {\n state.compilationString += `#else\\n`;\n state.compilationString += `${state._declareOutput(output)} = vec3${state.fSuffix}(0.);\\n`;\n state.compilationString += `#endif\\n`;\n }\n }\n else {\n Logger.Error(`There's no remapping for the ${output.name} end point! No code generated`);\n }\n }\n }\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.lightFalloff = ${this.lightFalloff};\\n`;\n codeString += `${this._codeVariableName}.useAlphaTest = ${this.useAlphaTest};\\n`;\n codeString += `${this._codeVariableName}.alphaTestCutoff = ${this.alphaTestCutoff};\\n`;\n codeString += `${this._codeVariableName}.useAlphaBlending = ${this.useAlphaBlending};\\n`;\n codeString += `${this._codeVariableName}.useRadianceOverAlpha = ${this.useRadianceOverAlpha};\\n`;\n codeString += `${this._codeVariableName}.useSpecularOverAlpha = ${this.useSpecularOverAlpha};\\n`;\n codeString += `${this._codeVariableName}.enableSpecularAntiAliasing = ${this.enableSpecularAntiAliasing};\\n`;\n codeString += `${this._codeVariableName}.realTimeFiltering = ${this.realTimeFiltering};\\n`;\n codeString += `${this._codeVariableName}.realTimeFilteringQuality = ${this.realTimeFilteringQuality};\\n`;\n codeString += `${this._codeVariableName}.useEnergyConservation = ${this.useEnergyConservation};\\n`;\n codeString += `${this._codeVariableName}.useRadianceOcclusion = ${this.useRadianceOcclusion};\\n`;\n codeString += `${this._codeVariableName}.useHorizonOcclusion = ${this.useHorizonOcclusion};\\n`;\n codeString += `${this._codeVariableName}.unlit = ${this.unlit};\\n`;\n codeString += `${this._codeVariableName}.forceNormalForward = ${this.forceNormalForward};\\n`;\n codeString += `${this._codeVariableName}.debugMode = ${this.debugMode};\\n`;\n codeString += `${this._codeVariableName}.debugLimit = ${this.debugLimit};\\n`;\n codeString += `${this._codeVariableName}.debugFactor = ${this.debugFactor};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n if (this.light) {\n serializationObject.lightId = this.light.id;\n }\n serializationObject.lightFalloff = this.lightFalloff;\n serializationObject.useAlphaTest = this.useAlphaTest;\n serializationObject.alphaTestCutoff = this.alphaTestCutoff;\n serializationObject.useAlphaBlending = this.useAlphaBlending;\n serializationObject.useRadianceOverAlpha = this.useRadianceOverAlpha;\n serializationObject.useSpecularOverAlpha = this.useSpecularOverAlpha;\n serializationObject.enableSpecularAntiAliasing = this.enableSpecularAntiAliasing;\n serializationObject.realTimeFiltering = this.realTimeFiltering;\n serializationObject.realTimeFilteringQuality = this.realTimeFilteringQuality;\n serializationObject.useEnergyConservation = this.useEnergyConservation;\n serializationObject.useRadianceOcclusion = this.useRadianceOcclusion;\n serializationObject.useHorizonOcclusion = this.useHorizonOcclusion;\n serializationObject.unlit = this.unlit;\n serializationObject.forceNormalForward = this.forceNormalForward;\n serializationObject.debugMode = this.debugMode;\n serializationObject.debugLimit = this.debugLimit;\n serializationObject.debugFactor = this.debugFactor;\n serializationObject.generateOnlyFragmentCode = this.generateOnlyFragmentCode;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n if (serializationObject.lightId) {\n this.light = scene.getLightById(serializationObject.lightId);\n }\n this.lightFalloff = serializationObject.lightFalloff ?? 0;\n this.useAlphaTest = serializationObject.useAlphaTest;\n this.alphaTestCutoff = serializationObject.alphaTestCutoff;\n this.useAlphaBlending = serializationObject.useAlphaBlending;\n this.useRadianceOverAlpha = serializationObject.useRadianceOverAlpha;\n this.useSpecularOverAlpha = serializationObject.useSpecularOverAlpha;\n this.enableSpecularAntiAliasing = serializationObject.enableSpecularAntiAliasing;\n this.realTimeFiltering = !!serializationObject.realTimeFiltering;\n this.realTimeFilteringQuality = serializationObject.realTimeFilteringQuality ?? 8;\n this.useEnergyConservation = serializationObject.useEnergyConservation;\n this.useRadianceOcclusion = serializationObject.useRadianceOcclusion;\n this.useHorizonOcclusion = serializationObject.useHorizonOcclusion;\n this.unlit = serializationObject.unlit;\n this.forceNormalForward = !!serializationObject.forceNormalForward;\n this.debugMode = serializationObject.debugMode;\n this.debugLimit = serializationObject.debugLimit;\n this.debugFactor = serializationObject.debugFactor;\n this.generateOnlyFragmentCode = !!serializationObject.generateOnlyFragmentCode;\n this._setTarget();\n }\n}\n__decorate([\n editableInPropertyPage(\"Direct lights\", 1 /* PropertyTypeForEdition.Float */, \"INTENSITY\", { min: 0, max: 1, notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"directIntensity\", void 0);\n__decorate([\n editableInPropertyPage(\"Environment lights\", 1 /* PropertyTypeForEdition.Float */, \"INTENSITY\", { min: 0, max: 1, notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"environmentIntensity\", void 0);\n__decorate([\n editableInPropertyPage(\"Specular highlights\", 1 /* PropertyTypeForEdition.Float */, \"INTENSITY\", { min: 0, max: 1, notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"specularIntensity\", void 0);\n__decorate([\n editableInPropertyPage(\"Light falloff\", 4 /* PropertyTypeForEdition.List */, \"LIGHTING & COLORS\", {\n notifiers: { update: true },\n options: [\n { label: \"Physical\", value: PBRBaseMaterial.LIGHTFALLOFF_PHYSICAL },\n { label: \"GLTF\", value: PBRBaseMaterial.LIGHTFALLOFF_GLTF },\n { label: \"Standard\", value: PBRBaseMaterial.LIGHTFALLOFF_STANDARD },\n ],\n })\n], PBRMetallicRoughnessBlock.prototype, \"lightFalloff\", void 0);\n__decorate([\n editableInPropertyPage(\"Alpha Testing\", 0 /* PropertyTypeForEdition.Boolean */, \"OPACITY\")\n], PBRMetallicRoughnessBlock.prototype, \"useAlphaTest\", void 0);\n__decorate([\n editableInPropertyPage(\"Alpha CutOff\", 1 /* PropertyTypeForEdition.Float */, \"OPACITY\", { min: 0, max: 1, notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"alphaTestCutoff\", void 0);\n__decorate([\n editableInPropertyPage(\"Alpha blending\", 0 /* PropertyTypeForEdition.Boolean */, \"OPACITY\")\n], PBRMetallicRoughnessBlock.prototype, \"useAlphaBlending\", void 0);\n__decorate([\n editableInPropertyPage(\"Radiance over alpha\", 0 /* PropertyTypeForEdition.Boolean */, \"RENDERING\", { notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"useRadianceOverAlpha\", void 0);\n__decorate([\n editableInPropertyPage(\"Specular over alpha\", 0 /* PropertyTypeForEdition.Boolean */, \"RENDERING\", { notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"useSpecularOverAlpha\", void 0);\n__decorate([\n editableInPropertyPage(\"Specular anti-aliasing\", 0 /* PropertyTypeForEdition.Boolean */, \"RENDERING\", { notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"enableSpecularAntiAliasing\", void 0);\n__decorate([\n editableInPropertyPage(\"Realtime filtering\", 0 /* PropertyTypeForEdition.Boolean */, \"RENDERING\", { notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"realTimeFiltering\", void 0);\n__decorate([\n editableInPropertyPage(\"Realtime filtering quality\", 4 /* PropertyTypeForEdition.List */, \"RENDERING\", {\n notifiers: { update: true },\n options: [\n { label: \"Low\", value: 8 },\n { label: \"Medium\", value: 16 },\n { label: \"High\", value: 64 },\n ],\n })\n], PBRMetallicRoughnessBlock.prototype, \"realTimeFilteringQuality\", void 0);\n__decorate([\n editableInPropertyPage(\"Energy Conservation\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"useEnergyConservation\", void 0);\n__decorate([\n editableInPropertyPage(\"Radiance occlusion\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"useRadianceOcclusion\", void 0);\n__decorate([\n editableInPropertyPage(\"Horizon occlusion\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"useHorizonOcclusion\", void 0);\n__decorate([\n editableInPropertyPage(\"Unlit\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"unlit\", void 0);\n__decorate([\n editableInPropertyPage(\"Force normal forward\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"forceNormalForward\", void 0);\n__decorate([\n editableInPropertyPage(\"Generate only fragment code\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", {\n notifiers: { rebuild: true, update: true, onValidation: PBRMetallicRoughnessBlock._OnGenerateOnlyFragmentCodeChanged },\n })\n], PBRMetallicRoughnessBlock.prototype, \"generateOnlyFragmentCode\", void 0);\n__decorate([\n editableInPropertyPage(\"Debug mode\", 4 /* PropertyTypeForEdition.List */, \"DEBUG\", {\n notifiers: { update: true },\n options: [\n { label: \"None\", value: 0 },\n // Geometry\n { label: \"Normalized position\", value: 1 },\n { label: \"Normals\", value: 2 },\n { label: \"Tangents\", value: 3 },\n { label: \"Bitangents\", value: 4 },\n { label: \"Bump Normals\", value: 5 },\n //{ label: \"UV1\", value: 6 },\n //{ label: \"UV2\", value: 7 },\n { label: \"ClearCoat Normals\", value: 8 },\n { label: \"ClearCoat Tangents\", value: 9 },\n { label: \"ClearCoat Bitangents\", value: 10 },\n { label: \"Anisotropic Normals\", value: 11 },\n { label: \"Anisotropic Tangents\", value: 12 },\n { label: \"Anisotropic Bitangents\", value: 13 },\n // Maps\n //{ label: \"Emissive Map\", value: 23 },\n //{ label: \"Light Map\", value: 24 },\n // Env\n { label: \"Env Refraction\", value: 40 },\n { label: \"Env Reflection\", value: 41 },\n { label: \"Env Clear Coat\", value: 42 },\n // Lighting\n { label: \"Direct Diffuse\", value: 50 },\n { label: \"Direct Specular\", value: 51 },\n { label: \"Direct Clear Coat\", value: 52 },\n { label: \"Direct Sheen\", value: 53 },\n { label: \"Env Irradiance\", value: 54 },\n // Lighting Params\n { label: \"Surface Albedo\", value: 60 },\n { label: \"Reflectance 0\", value: 61 },\n { label: \"Metallic\", value: 62 },\n { label: \"Metallic F0\", value: 71 },\n { label: \"Roughness\", value: 63 },\n { label: \"AlphaG\", value: 64 },\n { label: \"NdotV\", value: 65 },\n { label: \"ClearCoat Color\", value: 66 },\n { label: \"ClearCoat Roughness\", value: 67 },\n { label: \"ClearCoat NdotV\", value: 68 },\n { label: \"Transmittance\", value: 69 },\n { label: \"Refraction Transmittance\", value: 70 },\n // Misc\n { label: \"SEO\", value: 80 },\n { label: \"EHO\", value: 81 },\n { label: \"Energy Factor\", value: 82 },\n { label: \"Specular Reflectance\", value: 83 },\n { label: \"Clear Coat Reflectance\", value: 84 },\n { label: \"Sheen Reflectance\", value: 85 },\n { label: \"Luminance Over Alpha\", value: 86 },\n { label: \"Alpha\", value: 87 },\n { label: \"Albedo color\", value: 88 },\n { label: \"Ambient occlusion color\", value: 89 },\n ],\n })\n], PBRMetallicRoughnessBlock.prototype, \"debugMode\", void 0);\n__decorate([\n editableInPropertyPage(\"Split position\", 1 /* PropertyTypeForEdition.Float */, \"DEBUG\", { min: -1, max: 1, notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"debugLimit\", void 0);\n__decorate([\n editableInPropertyPage(\"Output factor\", 1 /* PropertyTypeForEdition.Float */, \"DEBUG\", { min: 0, max: 5, notifiers: { update: true } })\n], PBRMetallicRoughnessBlock.prototype, \"debugFactor\", void 0);\nRegisterClass(\"BABYLON.PBRMetallicRoughnessBlock\", PBRMetallicRoughnessBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to compute value of one parameter modulo another\n */\nexport class ModBlock extends NodeMaterialBlock {\n /**\n * Creates a new ModBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"left\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n this._inputs[1].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ModBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n if (state.shaderLanguage === 0 /* ShaderLanguage.GLSL */) {\n state.compilationString += state._declareOutput(output) + ` = mod(${this.left.associatedVariableName}, ${this.right.associatedVariableName});\\n`;\n }\n else {\n state.compilationString += state._declareOutput(output) + ` = (${this.left.associatedVariableName} % ${this.right.associatedVariableName});\\n`;\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.ModBlock\", ModBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { InputBlock } from \"./Input/inputBlock.js\";\nimport { Vector4 } from \"../../../Maths/math.vector.js\";\n/**\n * Block used to build a matrix from 4 Vector4\n */\nexport class MatrixBuilderBlock extends NodeMaterialBlock {\n /**\n * Creates a new MatrixBuilder\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"row0\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"row1\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"row2\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerInput(\"row3\", NodeMaterialBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MatrixBuilder\";\n }\n /**\n * Gets the row0 vector\n */\n get row0() {\n return this._inputs[0];\n }\n /**\n * Gets the row1 vector\n */\n get row1() {\n return this._inputs[1];\n }\n /**\n * Gets the row2 vector\n */\n get row2() {\n return this._inputs[2];\n }\n /**\n * Gets the row3 vector\n */\n get row3() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.row0.isConnected) {\n const row0Input = new InputBlock(\"row0\");\n row0Input.value = new Vector4(1, 0, 0, 0);\n row0Input.output.connectTo(this.row0);\n }\n if (!this.row1.isConnected) {\n const row1Input = new InputBlock(\"row1\");\n row1Input.value = new Vector4(0, 1, 0, 0);\n row1Input.output.connectTo(this.row1);\n }\n if (!this.row2.isConnected) {\n const row2Input = new InputBlock(\"row2\");\n row2Input.value = new Vector4(0, 0, 1, 0);\n row2Input.output.connectTo(this.row2);\n }\n if (!this.row3.isConnected) {\n const row3Input = new InputBlock(\"row3\");\n row3Input.value = new Vector4(0, 0, 0, 1);\n row3Input.output.connectTo(this.row3);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const row0 = this.row0;\n const row1 = this.row1;\n const row2 = this.row2;\n const row3 = this.row3;\n const mat4 = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"mat4x4f\" : \"mat4\";\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${mat4}(${row0.associatedVariableName}, ${row1.associatedVariableName}, ${row2.associatedVariableName}, ${row3.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.MatrixBuilder\", MatrixBuilderBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Operations supported by the ConditionalBlock block\n */\nexport var ConditionalBlockConditions;\n(function (ConditionalBlockConditions) {\n /** Equal */\n ConditionalBlockConditions[ConditionalBlockConditions[\"Equal\"] = 0] = \"Equal\";\n /** NotEqual */\n ConditionalBlockConditions[ConditionalBlockConditions[\"NotEqual\"] = 1] = \"NotEqual\";\n /** LessThan */\n ConditionalBlockConditions[ConditionalBlockConditions[\"LessThan\"] = 2] = \"LessThan\";\n /** GreaterThan */\n ConditionalBlockConditions[ConditionalBlockConditions[\"GreaterThan\"] = 3] = \"GreaterThan\";\n /** LessOrEqual */\n ConditionalBlockConditions[ConditionalBlockConditions[\"LessOrEqual\"] = 4] = \"LessOrEqual\";\n /** GreaterOrEqual */\n ConditionalBlockConditions[ConditionalBlockConditions[\"GreaterOrEqual\"] = 5] = \"GreaterOrEqual\";\n /** Logical Exclusive OR */\n ConditionalBlockConditions[ConditionalBlockConditions[\"Xor\"] = 6] = \"Xor\";\n /** Logical Or */\n ConditionalBlockConditions[ConditionalBlockConditions[\"Or\"] = 7] = \"Or\";\n /** Logical And */\n ConditionalBlockConditions[ConditionalBlockConditions[\"And\"] = 8] = \"And\";\n})(ConditionalBlockConditions || (ConditionalBlockConditions = {}));\n/**\n * Block used to apply conditional operation between floats\n * @since 5.0.0\n */\nexport class ConditionalBlock extends NodeMaterialBlock {\n /**\n * Creates a new ConditionalBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /**\n * Gets or sets the condition applied by the block\n */\n this.condition = ConditionalBlockConditions.LessThan;\n this.registerInput(\"a\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerInput(\"b\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerInput(\"true\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerInput(\"false\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._linkConnectionTypes(2, 3);\n this._outputs[0]._typeConnectionSource = this._inputs[2];\n this._outputs[0]._defaultConnectionPointType = NodeMaterialBlockConnectionPointTypes.Float;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ConditionalBlock\";\n }\n /**\n * Gets the first operand component\n */\n get a() {\n return this._inputs[0];\n }\n /**\n * Gets the second operand component\n */\n get b() {\n return this._inputs[1];\n }\n /**\n * Gets the value to return if condition is true\n */\n get true() {\n return this._inputs[2];\n }\n /**\n * Gets the value to return if condition is false\n */\n get false() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const trueStatement = this.true.isConnected ? this.true.associatedVariableName : \"1.0\";\n const falseStatement = this.false.isConnected ? this.false.associatedVariableName : \"0.0\";\n switch (this.condition) {\n case ConditionalBlockConditions.Equal: {\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${state._generateTernary(trueStatement, falseStatement, `${this.a.associatedVariableName} == ${this.b.associatedVariableName}`)};\\n`;\n break;\n }\n case ConditionalBlockConditions.NotEqual: {\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${state._generateTernary(trueStatement, falseStatement, `${this.a.associatedVariableName} != ${this.b.associatedVariableName}`)};\\n`;\n break;\n }\n case ConditionalBlockConditions.LessThan: {\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${state._generateTernary(trueStatement, falseStatement, `${this.a.associatedVariableName} < ${this.b.associatedVariableName}`)};\\n`;\n break;\n }\n case ConditionalBlockConditions.LessOrEqual: {\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${state._generateTernary(trueStatement, falseStatement, `${this.a.associatedVariableName} <= ${this.b.associatedVariableName}`)};\\n`;\n break;\n }\n case ConditionalBlockConditions.GreaterThan: {\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${state._generateTernary(trueStatement, falseStatement, `${this.a.associatedVariableName} > ${this.b.associatedVariableName}`)};\\n`;\n break;\n }\n case ConditionalBlockConditions.GreaterOrEqual: {\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${state._generateTernary(trueStatement, falseStatement, `${this.a.associatedVariableName} >= ${this.b.associatedVariableName}`)};\\n`;\n break;\n }\n case ConditionalBlockConditions.Xor: {\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${state._generateTernary(trueStatement, falseStatement, `(((${this.a.associatedVariableName} + ${this.b.associatedVariableName}) % 2.0) > 0.0)`)};\\n`;\n break;\n }\n case ConditionalBlockConditions.Or: {\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${state._generateTernary(trueStatement, falseStatement, `(min(${this.a.associatedVariableName} + ${this.b.associatedVariableName}, 1.0) > 0.0)`)};\\n`;\n break;\n }\n case ConditionalBlockConditions.And: {\n state.compilationString +=\n state._declareOutput(output) +\n ` = ${state._generateTernary(trueStatement, falseStatement, `(${this.a.associatedVariableName} * ${this.b.associatedVariableName} > 0.0)`)};\\n`;\n break;\n }\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.condition = this.condition;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.condition = serializationObject.condition;\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.condition = BABYLON.ConditionalBlockConditions.${ConditionalBlockConditions[this.condition]};\\n`;\n return codeString;\n }\n}\n__decorate([\n editableInPropertyPage(\"Condition\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"Equal\", value: ConditionalBlockConditions.Equal },\n { label: \"NotEqual\", value: ConditionalBlockConditions.NotEqual },\n { label: \"LessThan\", value: ConditionalBlockConditions.LessThan },\n { label: \"GreaterThan\", value: ConditionalBlockConditions.GreaterThan },\n { label: \"LessOrEqual\", value: ConditionalBlockConditions.LessOrEqual },\n { label: \"GreaterOrEqual\", value: ConditionalBlockConditions.GreaterOrEqual },\n { label: \"Xor\", value: ConditionalBlockConditions.Xor },\n { label: \"And\", value: ConditionalBlockConditions.And },\n { label: \"Or\", value: ConditionalBlockConditions.Or },\n ],\n })\n], ConditionalBlock.prototype, \"condition\", void 0);\nRegisterClass(\"BABYLON.ConditionalBlock\", ConditionalBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * block used to Generate Fractal Brownian Motion Clouds\n */\nexport class CloudBlock extends NodeMaterialBlock {\n /**\n * Creates a new CloudBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /** Gets or sets the number of octaves */\n this.octaves = 6.0;\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"chaos\", NodeMaterialBlockConnectionPointTypes.AutoDetect, true);\n this.registerInput(\"offsetX\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"offsetY\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"offsetZ\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\n this._inputs[0].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector2);\n this._inputs[0].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector3);\n this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CloudBlock\";\n }\n /**\n * Gets the seed input component\n */\n get seed() {\n return this._inputs[0];\n }\n /**\n * Gets the chaos input component\n */\n get chaos() {\n return this._inputs[1];\n }\n /**\n * Gets the offset X input component\n */\n get offsetX() {\n return this._inputs[2];\n }\n /**\n * Gets the offset Y input component\n */\n get offsetY() {\n return this._inputs[3];\n }\n /**\n * Gets the offset Z input component\n */\n get offsetZ() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (!this.seed.isConnected) {\n return;\n }\n if (!this._outputs[0].hasEndpoints) {\n return;\n }\n let functionString = `\r\n\r\n float cloudRandom(float p) { \r\n float temp = fract(p * 0.011); \r\n temp *= temp + 7.5; \r\n temp *= temp + temp; \r\n return fract(temp); \r\n }\r\n\r\n // Based on Morgan McGuire @morgan3d\r\n // https://www.shadertoy.com/view/4dS3Wd\r\n float cloudNoise2(vec2 x, vec2 chaos) {\r\n vec2 step = chaos * vec2(75., 120.) + vec2(75., 120.);\r\n\r\n vec2 i = floor(x);\r\n vec2 f = fract(x);\r\n\r\n float n = dot(i, step);\r\n\r\n vec2 u = f * f * (3.0 - 2.0 * f);\r\n return mix(\r\n mix(cloudRandom(n + dot(step, vec2(0, 0))), cloudRandom(n + dot(step, vec2(1, 0))), u.x),\r\n mix(cloudRandom(n + dot(step, vec2(0, 1))), cloudRandom(n + dot(step, vec2(1, 1))), u.x),\r\n u.y\r\n );\r\n }\r\n\r\n float cloudNoise3(vec3 x, vec3 chaos) {\r\n vec3 step = chaos * vec3(60., 120., 75.) + vec3(60., 120., 75.);\r\n\r\n vec3 i = floor(x);\r\n vec3 f = fract(x);\r\n\r\n float n = dot(i, step);\r\n\r\n vec3 u = f * f * (3.0 - 2.0 * f);\r\n return mix(mix(mix( cloudRandom(n + dot(step, vec3(0, 0, 0))), cloudRandom(n + dot(step, vec3(1, 0, 0))), u.x),\r\n mix( cloudRandom(n + dot(step, vec3(0, 1, 0))), cloudRandom(n + dot(step, vec3(1, 1, 0))), u.x), u.y),\r\n mix(mix( cloudRandom(n + dot(step, vec3(0, 0, 1))), cloudRandom(n + dot(step, vec3(1, 0, 1))), u.x),\r\n mix( cloudRandom(n + dot(step, vec3(0, 1, 1))), cloudRandom(n + dot(step, vec3(1, 1, 1))), u.x), u.y), u.z);\r\n }`;\n let fractalBrownianString = `\r\n float fbm2(vec2 st, vec2 chaos) {\r\n // Initial values\r\n float value = 0.0;\r\n float amplitude = .5;\r\n float frequency = 0.;\r\n\r\n // Loop of octaves\r\n vec2 tempST = st;\r\n for (int i = 0; i < OCTAVES; i++) {\r\n value += amplitude * cloudNoise2(tempST, chaos);\r\n tempST *= 2.0;\r\n amplitude *= 0.5;\r\n }\r\n return value;\r\n }\r\n\r\n float fbm3(vec3 x, vec3 chaos) {\r\n // Initial values\r\n float value = 0.0;\r\n float amplitude = 0.5;\r\n vec3 tempX = x;\r\n for (int i = 0; i < OCTAVES; i++) {\r\n value += amplitude * cloudNoise3(tempX, chaos);\r\n tempX = tempX * 2.0;\r\n amplitude *= 0.5;\r\n }\r\n return value;\r\n }`;\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n functionString = state._babylonSLtoWGSL(functionString);\n fractalBrownianString = state._babylonSLtoWGSL(fractalBrownianString);\n }\n const fbmNewName = `fbm${this.octaves}`;\n state._emitFunction(\"CloudBlockCode\", functionString, \"// CloudBlockCode\");\n state._emitFunction(\"CloudBlockCodeFBM\" + this.octaves, fractalBrownianString.replace(/fbm/gi, fbmNewName).replace(/OCTAVES/gi, (this.octaves | 0).toString()), \"// CloudBlockCode FBM\");\n const localVariable = state._getFreeVariableName(\"st\");\n const seedType = this.seed.connectedPoint?.type || NodeMaterialBlockConnectionPointTypes.Vector3;\n state.compilationString += `${state._declareLocalVar(localVariable, seedType)} = ${this.seed.associatedVariableName};\\n`;\n if (this.offsetX.isConnected) {\n state.compilationString += `${localVariable}.x += 0.1 * ${this.offsetX.associatedVariableName};\\n`;\n }\n if (this.offsetY.isConnected) {\n state.compilationString += `${localVariable}.y += 0.1 * ${this.offsetY.associatedVariableName};\\n`;\n }\n if (this.offsetZ.isConnected && seedType === NodeMaterialBlockConnectionPointTypes.Vector3) {\n state.compilationString += `${localVariable}.z += 0.1 * ${this.offsetZ.associatedVariableName};\\n`;\n }\n let chaosValue = \"\";\n if (this.chaos.isConnected) {\n chaosValue = this.chaos.associatedVariableName;\n }\n else {\n const addF = state.fSuffix;\n chaosValue = this.seed.connectedPoint?.type === NodeMaterialBlockConnectionPointTypes.Vector2 ? `vec2${addF}(0., 0.)` : `vec3${addF}(0., 0., 0.)`;\n }\n state.compilationString +=\n state._declareOutput(this._outputs[0]) +\n ` = ${fbmNewName}${this.seed.connectedPoint?.type === NodeMaterialBlockConnectionPointTypes.Vector2 ? \"2\" : \"3\"}(${localVariable}, ${chaosValue});\\n`;\n return this;\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.octaves = ${this.octaves};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.octaves = this.octaves;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.octaves = serializationObject.octaves;\n }\n}\n__decorate([\n editableInPropertyPage(\"Octaves\", 2 /* PropertyTypeForEdition.Int */, undefined, { embedded: true })\n], CloudBlock.prototype, \"octaves\", void 0);\nRegisterClass(\"BABYLON.CloudBlock\", CloudBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * block used to Generate a Voronoi Noise Pattern\n */\nexport class VoronoiNoiseBlock extends NodeMaterialBlock {\n /**\n * Creates a new VoronoiNoiseBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.Vector2);\n this.registerInput(\"offset\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerInput(\"density\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"cells\", NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"VoronoiNoiseBlock\";\n }\n /**\n * Gets the seed input component\n */\n get seed() {\n return this._inputs[0];\n }\n /**\n * Gets the offset input component\n */\n get offset() {\n return this._inputs[1];\n }\n /**\n * Gets the density input component\n */\n get density() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the output component\n */\n get cells() {\n return this._outputs[1];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (!this.seed.isConnected) {\n return;\n }\n // Adapted from https://www.shadertoy.com/view/MslGD8\n let functionString = `vec2 voronoiRandom(vec2 p){\r\n p = vec2(dot(p,vec2(127.1,311.7)),dot(p,vec2(269.5,183.3)));\r\n return fract(sin(p)*18.5453);\r\n }\r\n `;\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n functionString = state._babylonSLtoWGSL(functionString);\n }\n state._emitFunction(\"voronoiRandom\", functionString, \"// Voronoi random generator\");\n functionString = `void voronoi(vec2 seed, float offset, float density, out float outValue, out float cells){\r\n vec2 n = floor(seed * density);\r\n vec2 f = fract(seed * density);\r\n vec3 m = vec3( 8.0 );\r\n for( int j=-1; j<=1; j++ ){\r\n for( int i=-1; i<=1; i++ ){\r\n vec2 g = vec2( float(i), float(j) );\r\n vec2 o = voronoiRandom( n + g);\r\n vec2 r = g - f + (0.5+0.5*sin(offset+6.2831*o));\r\n float d = dot( r, r );\r\n if( d {\n return mat.hasTexture(this._texture);\n });\n }\n this._texture = texture;\n if (texture && scene) {\n scene.markAllMaterialsAsDirty(1, (mat) => {\n return mat.hasTexture(texture);\n });\n }\n }\n /**\n * Gets the textureY associated with the node\n */\n get textureY() {\n if (this.sourceY.isConnected) {\n return (this.sourceY.connectedPoint?.ownerBlock).texture;\n }\n return null;\n }\n /**\n * Gets the textureZ associated with the node\n */\n get textureZ() {\n if (this.sourceZ?.isConnected) {\n return (this.sourceY.connectedPoint?.ownerBlock).texture;\n }\n return null;\n }\n _getImageSourceBlock(connectionPoint) {\n return connectionPoint?.isConnected ? connectionPoint.connectedPoint.ownerBlock : null;\n }\n /**\n * Gets the sampler name associated with this texture\n */\n get samplerName() {\n const imageSourceBlock = this._getImageSourceBlock(this.source);\n if (imageSourceBlock) {\n return imageSourceBlock.samplerName;\n }\n return this._samplerName;\n }\n /**\n * Gets the samplerY name associated with this texture\n */\n get samplerYName() {\n return this._getImageSourceBlock(this.sourceY)?.samplerName ?? null;\n }\n /**\n * Gets the samplerZ name associated with this texture\n */\n get samplerZName() {\n return this._getImageSourceBlock(this.sourceZ)?.samplerName ?? null;\n }\n /**\n * Gets a boolean indicating that this block is linked to an ImageSourceBlock\n */\n get hasImageSource() {\n return this.source.isConnected;\n }\n /**\n * Gets or sets a boolean indicating if content needs to be converted to gamma space\n */\n set convertToGammaSpace(value) {\n if (value === this._convertToGammaSpace) {\n return;\n }\n this._convertToGammaSpace = value;\n if (this.texture) {\n const scene = this.texture.getScene() ?? EngineStore.LastCreatedScene;\n scene?.markAllMaterialsAsDirty(1, (mat) => {\n return mat.hasTexture(this.texture);\n });\n }\n }\n get convertToGammaSpace() {\n return this._convertToGammaSpace;\n }\n /**\n * Gets or sets a boolean indicating if content needs to be converted to linear space\n */\n set convertToLinearSpace(value) {\n if (value === this._convertToLinearSpace) {\n return;\n }\n this._convertToLinearSpace = value;\n if (this.texture) {\n const scene = this.texture.getScene() ?? EngineStore.LastCreatedScene;\n scene?.markAllMaterialsAsDirty(1, (mat) => {\n return mat.hasTexture(this.texture);\n });\n }\n }\n get convertToLinearSpace() {\n return this._convertToLinearSpace;\n }\n /**\n * Create a new TriPlanarBlock\n * @param name defines the block name\n * @param hideSourceZ defines a boolean indicating that normal Z should not be used (false by default)\n */\n constructor(name, hideSourceZ = false) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /**\n * Project the texture(s) for a better fit to a cube\n */\n this.projectAsCube = false;\n this._convertToGammaSpace = false;\n this._convertToLinearSpace = false;\n /**\n * Gets or sets a boolean indicating if multiplication of texture with level should be disabled\n */\n this.disableLevelMultiplication = false;\n this.registerInput(\"position\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false);\n this.registerInput(\"normal\", NodeMaterialBlockConnectionPointTypes.AutoDetect, false);\n this.registerInput(\"sharpness\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerInput(\"source\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"source\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, ImageSourceBlock, \"ImageSourceBlock\"));\n this.registerInput(\"sourceY\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"sourceY\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, ImageSourceBlock, \"ImageSourceBlock\"));\n if (!hideSourceZ) {\n this.registerInput(\"sourceZ\", NodeMaterialBlockConnectionPointTypes.Object, true, NodeMaterialBlockTargets.VertexAndFragment, new NodeMaterialConnectionPointCustomObject(\"sourceZ\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, ImageSourceBlock, \"ImageSourceBlock\"));\n }\n this.registerOutput(\"rgba\", NodeMaterialBlockConnectionPointTypes.Color4, NodeMaterialBlockTargets.Neutral);\n this.registerOutput(\"rgb\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Neutral);\n this.registerOutput(\"r\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this.registerOutput(\"g\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this.registerOutput(\"b\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this.registerOutput(\"a\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this.registerOutput(\"level\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n this._inputs[1].addExcludedConnectionPointFromAllowedTypes(NodeMaterialBlockConnectionPointTypes.Color3 | NodeMaterialBlockConnectionPointTypes.Vector3 | NodeMaterialBlockConnectionPointTypes.Vector4);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TriPlanarBlock\";\n }\n /**\n * Gets the position input component\n */\n get position() {\n return this._inputs[0];\n }\n /**\n * Gets the normal input component\n */\n get normal() {\n return this._inputs[1];\n }\n /**\n * Gets the sharpness input component\n */\n get sharpness() {\n return this._inputs[2];\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[3];\n }\n /**\n * Gets the sourceY input component\n */\n get sourceY() {\n return this._inputs[4];\n }\n /**\n * Gets the sourceZ input component\n */\n get sourceZ() {\n return this._inputs[5];\n }\n /**\n * Gets the rgba output component\n */\n get rgba() {\n return this._outputs[0];\n }\n /**\n * Gets the rgb output component\n */\n get rgb() {\n return this._outputs[1];\n }\n /**\n * Gets the r output component\n */\n get r() {\n return this._outputs[2];\n }\n /**\n * Gets the g output component\n */\n get g() {\n return this._outputs[3];\n }\n /**\n * Gets the b output component\n */\n get b() {\n return this._outputs[4];\n }\n /**\n * Gets the a output component\n */\n get a() {\n return this._outputs[5];\n }\n /**\n * Gets the level output component\n */\n get level() {\n return this._outputs[6];\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n if (!defines._areTexturesDirty) {\n return;\n }\n const toGamma = this.convertToGammaSpace && this.texture && !this.texture.gammaSpace;\n const toLinear = this.convertToLinearSpace && this.texture && this.texture.gammaSpace;\n // Not a bug... Name defines the texture space not the required conversion\n defines.setValue(this._linearDefineName, toGamma, true);\n defines.setValue(this._gammaDefineName, toLinear, true);\n }\n isReady() {\n if (this.texture && !this.texture.isReadyOrNotBlocking()) {\n return false;\n }\n return true;\n }\n bind(effect) {\n if (!this.texture) {\n return;\n }\n effect.setFloat(this._textureInfoName, this.texture.level);\n if (!this._imageSource) {\n effect.setTexture(this._samplerName, this.texture);\n }\n }\n _samplerFunc(state) {\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n return \"textureSample\";\n }\n return \"texture2D\";\n }\n _generateTextureSample(textureName, uv, state) {\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n return `${this._samplerFunc(state)}(${textureName},${textureName + `Sampler`}, ${uv})`;\n }\n return `${this._samplerFunc(state)}(${textureName}, ${uv})`;\n }\n _generateTextureLookup(state) {\n const samplerName = this.samplerName;\n const samplerYName = this.samplerYName ?? samplerName;\n const samplerZName = this.samplerZName ?? samplerName;\n const sharpness = this.sharpness.isConnected ? this.sharpness.associatedVariableName : \"1.0\";\n const x = state._getFreeVariableName(\"x\");\n const y = state._getFreeVariableName(\"y\");\n const z = state._getFreeVariableName(\"z\");\n const w = state._getFreeVariableName(\"w\");\n const n = state._getFreeVariableName(\"n\");\n const uvx = state._getFreeVariableName(\"uvx\");\n const uvy = state._getFreeVariableName(\"uvy\");\n const uvz = state._getFreeVariableName(\"uvz\");\n state.compilationString += `\r\n ${state._declareLocalVar(n, NodeMaterialBlockConnectionPointTypes.Vector3)} = ${this.normal.associatedVariableName}.xyz;\r\n\r\n ${state._declareLocalVar(uvx, NodeMaterialBlockConnectionPointTypes.Vector2)} = ${this.position.associatedVariableName}.yz;\r\n ${state._declareLocalVar(uvy, NodeMaterialBlockConnectionPointTypes.Vector2)} = ${this.position.associatedVariableName}.zx;\r\n ${state._declareLocalVar(uvz, NodeMaterialBlockConnectionPointTypes.Vector2)} = ${this.position.associatedVariableName}.xy;\r\n `;\n if (this.projectAsCube) {\n state.compilationString += `\r\n ${uvx}.xy = ${uvx}.yx;\r\n\r\n if (${n}.x >= 0.0) {\r\n ${uvx}.x = -${uvx}.x;\r\n }\r\n if (${n}.y < 0.0) {\r\n ${uvy}.y = -${uvy}.y;\r\n }\r\n if (${n}.z < 0.0) {\r\n ${uvz}.x = -${uvz}.x;\r\n }\r\n `;\n }\n const suffix = state.fSuffix;\n state.compilationString += `\r\n ${state._declareLocalVar(x, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${this._generateTextureSample(samplerName, uvx, state)};\r\n ${state._declareLocalVar(y, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${this._generateTextureSample(samplerYName, uvy, state)};\r\n ${state._declareLocalVar(z, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${this._generateTextureSample(samplerZName, uvz, state)};\r\n \r\n // blend weights\r\n ${state._declareLocalVar(w, NodeMaterialBlockConnectionPointTypes.Vector3)} = pow(abs(${n}), vec3${suffix}(${sharpness}));\r\n\r\n // blend and return\r\n ${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)} = (${x}*${w}.x + ${y}*${w}.y + ${z}*${w}.z) / (${w}.x + ${w}.y + ${w}.z); \r\n `;\n }\n _generateConversionCode(state, output, swizzle) {\n let vecSpecifier = \"\";\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ &&\n (output.type === NodeMaterialBlockConnectionPointTypes.Vector3 || output.type === NodeMaterialBlockConnectionPointTypes.Color3)) {\n vecSpecifier = \"Vec3\";\n }\n if (swizzle !== \"a\") {\n // no conversion if the output is \"a\" (alpha)\n if (!this.texture || !this.texture.gammaSpace) {\n state.compilationString += `#ifdef ${this._linearDefineName}\r\n ${output.associatedVariableName} = toGammaSpace${vecSpecifier}(${output.associatedVariableName});\r\n #endif\r\n `;\n }\n state.compilationString += `#ifdef ${this._gammaDefineName}\r\n ${output.associatedVariableName} = toLinearSpace${vecSpecifier}(${output.associatedVariableName});\r\n #endif\r\n `;\n }\n }\n _writeOutput(state, output, swizzle) {\n let complement = \"\";\n if (!this.disableLevelMultiplication) {\n complement = ` * ${state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"uniforms.\" : \"\"}${this._textureInfoName}`;\n }\n state.compilationString += `${state._declareOutput(output)} = ${this._tempTextureRead}.${swizzle}${complement};\\n`;\n this._generateConversionCode(state, output, swizzle);\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (this.source.isConnected) {\n this._imageSource = this.source.connectedPoint.ownerBlock;\n }\n else {\n this._imageSource = null;\n }\n this._textureInfoName = state._getFreeVariableName(\"textureInfoName\");\n this.level.associatedVariableName = (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"uniforms.\" : \"\") + this._textureInfoName;\n this._tempTextureRead = state._getFreeVariableName(\"tempTextureRead\");\n this._linearDefineName = state._getFreeDefineName(\"ISLINEAR\");\n this._gammaDefineName = state._getFreeDefineName(\"ISGAMMA\");\n if (!this._imageSource) {\n this._samplerName = state._getFreeVariableName(this.name + \"Texture\");\n state._emit2DSampler(this._samplerName);\n }\n // Declarations\n state.sharedData.blockingBlocks.push(this);\n state.sharedData.textureBlocks.push(this);\n state.sharedData.blocksWithDefines.push(this);\n state.sharedData.bindableBlocks.push(this);\n const comments = `//${this.name}`;\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\n state._emitUniformFromString(this._textureInfoName, NodeMaterialBlockConnectionPointTypes.Float);\n this._generateTextureLookup(state);\n for (const output of this._outputs) {\n if (output.hasEndpoints && output.name !== \"level\") {\n this._writeOutput(state, output, output.name);\n }\n }\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.convertToGammaSpace = ${this.convertToGammaSpace};\\n`;\n codeString += `${this._codeVariableName}.convertToLinearSpace = ${this.convertToLinearSpace};\\n`;\n codeString += `${this._codeVariableName}.disableLevelMultiplication = ${this.disableLevelMultiplication};\\n`;\n codeString += `${this._codeVariableName}.projectAsCube = ${this.projectAsCube};\\n`;\n if (!this.texture) {\n return codeString;\n }\n codeString += `${this._codeVariableName}.texture = new BABYLON.Texture(\"${this.texture.name}\", null, ${this.texture.noMipmap}, ${this.texture.invertY}, ${this.texture.samplingMode});\\n`;\n codeString += `${this._codeVariableName}.texture.wrapU = ${this.texture.wrapU};\\n`;\n codeString += `${this._codeVariableName}.texture.wrapV = ${this.texture.wrapV};\\n`;\n codeString += `${this._codeVariableName}.texture.uAng = ${this.texture.uAng};\\n`;\n codeString += `${this._codeVariableName}.texture.vAng = ${this.texture.vAng};\\n`;\n codeString += `${this._codeVariableName}.texture.wAng = ${this.texture.wAng};\\n`;\n codeString += `${this._codeVariableName}.texture.uOffset = ${this.texture.uOffset};\\n`;\n codeString += `${this._codeVariableName}.texture.vOffset = ${this.texture.vOffset};\\n`;\n codeString += `${this._codeVariableName}.texture.uScale = ${this.texture.uScale};\\n`;\n codeString += `${this._codeVariableName}.texture.vScale = ${this.texture.vScale};\\n`;\n codeString += `${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.convertToGammaSpace = this.convertToGammaSpace;\n serializationObject.convertToLinearSpace = this.convertToLinearSpace;\n serializationObject.disableLevelMultiplication = this.disableLevelMultiplication;\n serializationObject.projectAsCube = this.projectAsCube;\n if (!this.hasImageSource && this.texture && !this.texture.isRenderTarget && this.texture.getClassName() !== \"VideoTexture\") {\n serializationObject.texture = this.texture.serialize();\n }\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.convertToGammaSpace = serializationObject.convertToGammaSpace;\n this.convertToLinearSpace = !!serializationObject.convertToLinearSpace;\n this.disableLevelMultiplication = !!serializationObject.disableLevelMultiplication;\n this.projectAsCube = !!serializationObject.projectAsCube;\n if (serializationObject.texture && !NodeMaterial.IgnoreTexturesAtLoadTime && serializationObject.texture.url !== undefined) {\n rootUrl = serializationObject.texture.url.indexOf(\"data:\") === 0 ? \"\" : rootUrl;\n this.texture = Texture.Parse(serializationObject.texture, scene, rootUrl);\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Project as cube\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { update: true } })\n], TriPlanarBlock.prototype, \"projectAsCube\", void 0);\nRegisterClass(\"BABYLON.TriPlanarBlock\", TriPlanarBlock);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { TriPlanarBlock } from \"./triPlanarBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\n\n/**\n * Block used to read a texture with triplanar mapping (see https://iquilezles.org/articles/biplanar/)\n */\nexport class BiPlanarBlock extends TriPlanarBlock {\n /**\n * Create a new BiPlanarBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, true);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"BiPlanarBlock\";\n }\n _declareLocalVarAsVec3I(name, state) {\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n return `var ${name}: vec3`;\n }\n else {\n return `ivec3 ${name}`;\n }\n }\n _getTextureGrad(state, samplerName) {\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n return `textureSampleGrad(${samplerName},${samplerName + `Sampler`}`;\n }\n return `textureGrad(${samplerName}`;\n }\n _generateTextureLookup(state) {\n const samplerName = this.samplerName;\n const samplerYName = this.samplerYName ?? this.samplerName;\n const sharpness = this.sharpness.isConnected ? this.sharpness.associatedVariableName : \"1.0\";\n const dpdx = state._getFreeVariableName(\"dxValue\");\n const dpdy = state._getFreeVariableName(\"dyValue\");\n const n = state._getFreeVariableName(\"n\");\n const ma = state._getFreeVariableName(\"ma\");\n const mi = state._getFreeVariableName(\"mi\");\n const me = state._getFreeVariableName(\"me\");\n const x = state._getFreeVariableName(\"x\");\n const y = state._getFreeVariableName(\"y\");\n const w = state._getFreeVariableName(\"w\");\n let ivec3 = \"ivec3\";\n let dpdxFunc = \"dFdx\";\n let dpdyFunc = \"dFdy\";\n const suffix = state.fSuffix;\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n ivec3 = \"vec3\";\n dpdxFunc = \"dpdx\";\n dpdyFunc = \"dpdy\";\n }\n state.compilationString += `\r\n // grab coord derivatives for texturing\r\n ${state._declareLocalVar(dpdx, NodeMaterialBlockConnectionPointTypes.Vector3)} = ${dpdxFunc}(${this.position.associatedVariableName}.xyz);\r\n ${state._declareLocalVar(dpdy, NodeMaterialBlockConnectionPointTypes.Vector3)} = ${dpdyFunc}(${this.position.associatedVariableName}.xyz);\r\n ${state._declareLocalVar(n, NodeMaterialBlockConnectionPointTypes.Vector3)} = abs(${this.normal.associatedVariableName}.xyz);\r\n \r\n // determine major axis (in x; yz are following axis)\r\n ${this._declareLocalVarAsVec3I(ma, state)} = ${state._generateTernary(`${ivec3}(0,1,2)`, `${state._generateTernary(`${ivec3}(1,2,0)`, `${ivec3}(2,0,1)`, `(${n}.y>${n}.z)`)}`, `(${n}.x>${n}.y && ${n}.x>${n}.z)`)}; \r\n\r\n // determine minor axis (in x; yz are following axis)\r\n ${this._declareLocalVarAsVec3I(mi, state)} = ${state._generateTernary(`${ivec3}(0,1,2)`, `${state._generateTernary(`${ivec3}(1,2,0)`, `${ivec3}(2,0,1)`, `(${n}.y<${n}.z)`)}`, `(${n}.x<${n}.y && ${n}.x<${n}.z)`)}; \r\n \r\n // determine median axis (in x; yz are following axis)\r\n ${this._declareLocalVarAsVec3I(me, state)} = ${ivec3}(3) - ${mi} - ${ma};\r\n \r\n // project+fetch\r\n ${state._declareLocalVar(x, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${this._getTextureGrad(state, samplerName)}, vec2${suffix}(${this.position.associatedVariableName}[${ma}.y], ${this.position.associatedVariableName}[${ma}.z]), \r\n vec2${suffix}(${dpdx}[${ma}.y],${dpdx}[${ma}.z]), \r\n vec2${suffix}(${dpdy}[${ma}.y],${dpdy}[${ma}.z]));\r\n ${state._declareLocalVar(y, NodeMaterialBlockConnectionPointTypes.Vector4)} = ${this._getTextureGrad(state, samplerYName)}, vec2${suffix}(${this.position.associatedVariableName}[${me}.y], ${this.position.associatedVariableName}[${me}.z]), \r\n vec2${suffix}(${dpdx}[${me}.y],${dpdx}[${me}.z]),\r\n vec2${suffix}(${dpdy}[${me}.y],${dpdy}[${me}.z]));\r\n \r\n // blend factors\r\n ${state._declareLocalVar(w, NodeMaterialBlockConnectionPointTypes.Vector2)} = vec2${suffix}(${n}[${ma}.x],${n}[${me}.x]);\r\n // make local support\r\n ${w} = clamp( (${w}-0.5773)/(1.0-0.5773), vec2${suffix}(0.0), vec2${suffix}(1.0) );\r\n // shape transition\r\n ${w} = pow( ${w}, vec2${suffix}(${sharpness}/8.0) );\r\n // blend and return\r\n ${state._declareLocalVar(this._tempTextureRead, NodeMaterialBlockConnectionPointTypes.Vector4)} = (${x}*${w}.x + ${y}*${w}.y) / (${w}.x + ${w}.y);\r\n `;\n }\n}\nRegisterClass(\"BABYLON.BiPlanarBlock\", BiPlanarBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to compute the determinant of a matrix\n */\nexport class MatrixDeterminantBlock extends NodeMaterialBlock {\n /**\n * Creates a new MatrixDeterminantBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.Matrix);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MatrixDeterminantBlock\";\n }\n /**\n * Gets the input matrix\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this.output;\n const input = this.input;\n state.compilationString += state._declareOutput(output) + ` = determinant(${input.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.MatrixDeterminantBlock\", MatrixDeterminantBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to transpose a matrix\n */\nexport class MatrixTransposeBlock extends NodeMaterialBlock {\n /**\n * Creates a new MatrixTransposeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.Matrix);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MatrixTransposeBlock\";\n }\n /**\n * Gets the input matrix\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this.output;\n const input = this.input;\n state.compilationString += state._declareOutput(output) + ` = transpose(${input.associatedVariableName});\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.MatrixTransposeBlock\", MatrixTransposeBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { InputBlock } from \"./Input/inputBlock.js\";\nimport { MorphTargetsBlock } from \"./Vertex/morphTargetsBlock.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\nexport var MeshAttributeExistsBlockTypes;\n(function (MeshAttributeExistsBlockTypes) {\n MeshAttributeExistsBlockTypes[MeshAttributeExistsBlockTypes[\"None\"] = 0] = \"None\";\n MeshAttributeExistsBlockTypes[MeshAttributeExistsBlockTypes[\"Normal\"] = 1] = \"Normal\";\n MeshAttributeExistsBlockTypes[MeshAttributeExistsBlockTypes[\"Tangent\"] = 2] = \"Tangent\";\n MeshAttributeExistsBlockTypes[MeshAttributeExistsBlockTypes[\"VertexColor\"] = 3] = \"VertexColor\";\n MeshAttributeExistsBlockTypes[MeshAttributeExistsBlockTypes[\"UV1\"] = 4] = \"UV1\";\n MeshAttributeExistsBlockTypes[MeshAttributeExistsBlockTypes[\"UV2\"] = 5] = \"UV2\";\n MeshAttributeExistsBlockTypes[MeshAttributeExistsBlockTypes[\"UV3\"] = 6] = \"UV3\";\n MeshAttributeExistsBlockTypes[MeshAttributeExistsBlockTypes[\"UV4\"] = 7] = \"UV4\";\n MeshAttributeExistsBlockTypes[MeshAttributeExistsBlockTypes[\"UV5\"] = 8] = \"UV5\";\n MeshAttributeExistsBlockTypes[MeshAttributeExistsBlockTypes[\"UV6\"] = 9] = \"UV6\";\n})(MeshAttributeExistsBlockTypes || (MeshAttributeExistsBlockTypes = {}));\n/**\n * Block used to check if Mesh attribute of specified type exists\n * and provide an alternative fallback input for to use in such case\n */\nexport class MeshAttributeExistsBlock extends NodeMaterialBlock {\n /**\n * Creates a new MeshAttributeExistsBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /**\n * Defines which mesh attribute to use\n */\n this.attributeType = 0 /* MeshAttributeExistsBlockTypes.None */;\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"fallback\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n // Try to auto determine attributeType\n this._inputs[0].onConnectionObservable.add((other) => {\n if (this.attributeType) {\n // But only if not already specified\n return;\n }\n const sourceBlock = other.ownerBlock;\n if (sourceBlock instanceof InputBlock && sourceBlock.isAttribute) {\n switch (sourceBlock.name) {\n case \"color\":\n this.attributeType = 3 /* MeshAttributeExistsBlockTypes.VertexColor */;\n break;\n case \"normal\":\n this.attributeType = 1 /* MeshAttributeExistsBlockTypes.Normal */;\n break;\n case \"tangent\":\n this.attributeType = 2 /* MeshAttributeExistsBlockTypes.Tangent */;\n break;\n case \"uv\":\n this.attributeType = 4 /* MeshAttributeExistsBlockTypes.UV1 */;\n break;\n case \"uv2\":\n this.attributeType = 5 /* MeshAttributeExistsBlockTypes.UV2 */;\n break;\n case \"uv3\":\n this.attributeType = 6 /* MeshAttributeExistsBlockTypes.UV3 */;\n break;\n case \"uv4\":\n this.attributeType = 7 /* MeshAttributeExistsBlockTypes.UV4 */;\n break;\n case \"uv5\":\n this.attributeType = 8 /* MeshAttributeExistsBlockTypes.UV5 */;\n break;\n case \"uv6\":\n this.attributeType = 9 /* MeshAttributeExistsBlockTypes.UV6 */;\n break;\n }\n }\n else if (sourceBlock instanceof MorphTargetsBlock) {\n switch (this.input.connectedPoint?.name) {\n case \"normalOutput\":\n this.attributeType = 1 /* MeshAttributeExistsBlockTypes.Normal */;\n break;\n case \"tangentOutput\":\n this.attributeType = 2 /* MeshAttributeExistsBlockTypes.Tangent */;\n break;\n case \"uvOutput\":\n this.attributeType = 4 /* MeshAttributeExistsBlockTypes.UV1 */;\n break;\n }\n }\n });\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MeshAttributeExistsBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the fallback component when speciefied attribute doesn't exist\n */\n get fallback() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n let attributeDefine = null;\n switch (this.attributeType) {\n case 3 /* MeshAttributeExistsBlockTypes.VertexColor */:\n attributeDefine = \"VERTEXCOLOR_NME\";\n break;\n case 1 /* MeshAttributeExistsBlockTypes.Normal */:\n attributeDefine = \"NORMAL\";\n break;\n case 2 /* MeshAttributeExistsBlockTypes.Tangent */:\n attributeDefine = \"TANGENT\";\n break;\n case 4 /* MeshAttributeExistsBlockTypes.UV1 */:\n attributeDefine = \"UV1\";\n break;\n case 5 /* MeshAttributeExistsBlockTypes.UV2 */:\n attributeDefine = \"UV2\";\n break;\n case 6 /* MeshAttributeExistsBlockTypes.UV3 */:\n attributeDefine = \"UV3\";\n break;\n case 7 /* MeshAttributeExistsBlockTypes.UV4 */:\n attributeDefine = \"UV4\";\n break;\n case 8 /* MeshAttributeExistsBlockTypes.UV5 */:\n attributeDefine = \"UV5\";\n break;\n case 9 /* MeshAttributeExistsBlockTypes.UV6 */:\n attributeDefine = \"UV6\";\n break;\n }\n const output = state._declareOutput(this.output);\n if (attributeDefine) {\n state.compilationString += `#ifdef ${attributeDefine}\\n`;\n }\n state.compilationString += `${output} = ${this.input.associatedVariableName};\\n`;\n if (attributeDefine) {\n state.compilationString += `#else\\n`;\n state.compilationString += `${output} = ${this.fallback.associatedVariableName};\\n`;\n state.compilationString += `#endif\\n`;\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.attributeType = this.attributeType;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.attributeType = serializationObject.attributeType ?? 0 /* MeshAttributeExistsBlockTypes.None */;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n codeString += `${this._codeVariableName}.attributeType = ${this.attributeType};\\n`;\n return codeString;\n }\n}\n__decorate([\n editableInPropertyPage(\"Attribute lookup\", 4 /* PropertyTypeForEdition.List */, undefined, {\n notifiers: { update: true },\n embedded: true,\n options: [\n { label: \"(None)\", value: 0 /* MeshAttributeExistsBlockTypes.None */ },\n { label: \"Normal\", value: 1 /* MeshAttributeExistsBlockTypes.Normal */ },\n { label: \"Tangent\", value: 2 /* MeshAttributeExistsBlockTypes.Tangent */ },\n { label: \"Vertex Color\", value: 3 /* MeshAttributeExistsBlockTypes.VertexColor */ },\n { label: \"UV1\", value: 4 /* MeshAttributeExistsBlockTypes.UV1 */ },\n { label: \"UV2\", value: 5 /* MeshAttributeExistsBlockTypes.UV2 */ },\n { label: \"UV3\", value: 6 /* MeshAttributeExistsBlockTypes.UV3 */ },\n { label: \"UV4\", value: 7 /* MeshAttributeExistsBlockTypes.UV4 */ },\n { label: \"UV5\", value: 8 /* MeshAttributeExistsBlockTypes.UV5 */ },\n { label: \"UV6\", value: 9 /* MeshAttributeExistsBlockTypes.UV6 */ },\n ],\n })\n], MeshAttributeExistsBlock.prototype, \"attributeType\", void 0);\nRegisterClass(\"BABYLON.MeshAttributeExistsBlock\", MeshAttributeExistsBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Types of curves supported by the Curve block\n */\nexport var CurveBlockTypes;\n(function (CurveBlockTypes) {\n /** EaseInSine */\n CurveBlockTypes[CurveBlockTypes[\"EaseInSine\"] = 0] = \"EaseInSine\";\n /** EaseOutSine */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutSine\"] = 1] = \"EaseOutSine\";\n /** EaseInOutSine */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutSine\"] = 2] = \"EaseInOutSine\";\n /** EaseInQuad */\n CurveBlockTypes[CurveBlockTypes[\"EaseInQuad\"] = 3] = \"EaseInQuad\";\n /** EaseOutQuad */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutQuad\"] = 4] = \"EaseOutQuad\";\n /** EaseInOutQuad */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutQuad\"] = 5] = \"EaseInOutQuad\";\n /** EaseInCubic */\n CurveBlockTypes[CurveBlockTypes[\"EaseInCubic\"] = 6] = \"EaseInCubic\";\n /** EaseOutCubic */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutCubic\"] = 7] = \"EaseOutCubic\";\n /** EaseInOutCubic */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutCubic\"] = 8] = \"EaseInOutCubic\";\n /** EaseInQuart */\n CurveBlockTypes[CurveBlockTypes[\"EaseInQuart\"] = 9] = \"EaseInQuart\";\n /** EaseOutQuart */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutQuart\"] = 10] = \"EaseOutQuart\";\n /** EaseInOutQuart */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutQuart\"] = 11] = \"EaseInOutQuart\";\n /** EaseInQuint */\n CurveBlockTypes[CurveBlockTypes[\"EaseInQuint\"] = 12] = \"EaseInQuint\";\n /** EaseOutQuint */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutQuint\"] = 13] = \"EaseOutQuint\";\n /** EaseInOutQuint */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutQuint\"] = 14] = \"EaseInOutQuint\";\n /** EaseInExpo */\n CurveBlockTypes[CurveBlockTypes[\"EaseInExpo\"] = 15] = \"EaseInExpo\";\n /** EaseOutExpo */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutExpo\"] = 16] = \"EaseOutExpo\";\n /** EaseInOutExpo */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutExpo\"] = 17] = \"EaseInOutExpo\";\n /** EaseInCirc */\n CurveBlockTypes[CurveBlockTypes[\"EaseInCirc\"] = 18] = \"EaseInCirc\";\n /** EaseOutCirc */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutCirc\"] = 19] = \"EaseOutCirc\";\n /** EaseInOutCirc */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutCirc\"] = 20] = \"EaseInOutCirc\";\n /** EaseInBack */\n CurveBlockTypes[CurveBlockTypes[\"EaseInBack\"] = 21] = \"EaseInBack\";\n /** EaseOutBack */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutBack\"] = 22] = \"EaseOutBack\";\n /** EaseInOutBack */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutBack\"] = 23] = \"EaseInOutBack\";\n /** EaseInElastic */\n CurveBlockTypes[CurveBlockTypes[\"EaseInElastic\"] = 24] = \"EaseInElastic\";\n /** EaseOutElastic */\n CurveBlockTypes[CurveBlockTypes[\"EaseOutElastic\"] = 25] = \"EaseOutElastic\";\n /** EaseInOutElastic */\n CurveBlockTypes[CurveBlockTypes[\"EaseInOutElastic\"] = 26] = \"EaseInOutElastic\";\n})(CurveBlockTypes || (CurveBlockTypes = {}));\n/**\n * Block used to apply curve operation\n */\nexport class CurveBlock extends NodeMaterialBlock {\n /**\n * Creates a new CurveBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /**\n * Gets or sets the type of the curve applied by the block\n */\n this.type = CurveBlockTypes.EaseInOutSine;\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Object);\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Int);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CurveBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _duplicateEntry(entry, component) {\n return `ret.${component} = ${entry.replace(/VAL/g, \"v.\" + component)}`;\n }\n _duplicateEntryDirect(entry) {\n return `return ${entry.replace(/VAL/g, \"v\")}`;\n }\n _duplicateVector(entry, inputType, isWGSL) {\n if (inputType === \"float\" || inputType === \"f32\") {\n return this._duplicateEntryDirect(entry);\n }\n const size = parseInt(inputType.replace(\"vec\", \"\"));\n let code = isWGSL\n ? `\r\n var ret: vec${size}f = vec${size}f(0.0);\r\n `\n : `\r\n vec${size} ret = vec${size}(0.0);\r\n `;\n for (let i = 1; i <= size; i++) {\n code += this._duplicateEntry(entry, i === 1 ? \"x\" : i === 2 ? \"y\" : i === 3 ? \"z\" : \"w\") + \";\\n\";\n }\n code += \"return ret;\\n\";\n return code;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n let registeredFunction = \"\";\n let registeredFunctionName = \"\";\n const inputType = state._getShaderType(this.input.type);\n const isWGSL = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */;\n registeredFunctionName = CurveBlockTypes[this.type] + \"_\" + inputType.replace(\"<\", \"\").replace(\">\", \"\");\n switch (this.type) {\n case CurveBlockTypes.EaseInSine:\n registeredFunction = `return 1.0 - cos((v * 3.1415) / 2.0)`;\n break;\n case CurveBlockTypes.EaseOutSine:\n registeredFunction = `return sin((v * 3.1415) / 2.0)`;\n break;\n case CurveBlockTypes.EaseInOutSine:\n registeredFunction = `return -(cos(v * 3.1415) - 1.0) / 2.0`;\n break;\n case CurveBlockTypes.EaseInQuad:\n registeredFunction = `return v * v`;\n break;\n case CurveBlockTypes.EaseOutQuad:\n registeredFunction = `return (1.0 - v) * (1.0 - v)`;\n break;\n case CurveBlockTypes.EaseInOutQuad: {\n const entry = state._generateTernary(\"2.0 * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 2.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInCubic:\n registeredFunction = `return v * v * v`;\n break;\n case CurveBlockTypes.EaseOutCubic: {\n const entry = \"1.0 - pow(1.0 - VAL, 3.0)\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutCubic: {\n const entry = state._generateTernary(\"4.0 * VAL * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 3.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInQuart:\n registeredFunction = `return v * v * v * v`;\n break;\n case CurveBlockTypes.EaseOutQuart: {\n const entry = \"1.0 - pow(1.0 - VAL, 4.0)\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutQuart: {\n const entry = state._generateTernary(\"8.0 * VAL * VAL * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 4.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInQuint:\n registeredFunction = `return v * v * v * v * v`;\n break;\n case CurveBlockTypes.EaseOutQuint: {\n const entry = \"1.0 - pow(1.0 - VAL, 5.0)\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutQuint: {\n const entry = state._generateTernary(\"16.0 * VAL * VAL * VAL * VAL * VAL\", \"1.0 - pow(-2.0 * VAL + 2.0, 5.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInExpo: {\n const entry = state._generateTernary(\"0.0\", \"pow(2.0, 10.0 * VAL - 10.0)\", \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseOutExpo: {\n const entry = state._generateTernary(\"1.0\", \"1.0 - pow(2.0, -10.0 * VAL)\", \"VAL == 1.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutExpo: {\n const entry = state._generateTernary(\"0.0\", state._generateTernary(\"1.0\", state._generateTernary(\"pow(2.0, 20.0 * VAL - 10.0) / 2.0\", \"(2.0 - pow(2.0, -20.0 * VAL + 10.0)) / 2.0\", \"VAL < 0.5\"), \"VAL == 1.0\"), \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInCirc: {\n const entry = \"1.0 - sqrt(1.0 - pow(VAL, 2.0))\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseOutCirc: {\n const entry = \"sqrt(1.0 - pow(VAL - 1.0, 2.0))\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutCirc: {\n const entry = state._generateTernary(\"(1.0 - sqrt(1.0 - pow(2.0 * VAL, 2.0))) / 2.0\", \"(sqrt(1.0 - pow(-2.0 * VAL + 2.0, 2.0)) + 1.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInBack: {\n registeredFunction = \"return 2.70158 * v * v * v - 1.70158 * v * v\";\n break;\n }\n case CurveBlockTypes.EaseOutBack: {\n const entry = \"2.70158 * pow(VAL - 1.0, 3.0) + 1.70158 * pow(VAL - 1.0, 2.0)\";\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutBack: {\n const entry = state._generateTernary(\"(pow(2.0 * VAL, 2.0) * ((3.5949095) * 2.0 * VAL - 2.5949095)) / 2.0\", \"(pow(2.0 * VAL - 2.0, 2.0) * (3.5949095 * (VAL * 2.0 - 2.0) + 3.5949095) + 2.0) / 2.0\", \"VAL < 0.5\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInElastic: {\n const entry = state._generateTernary(\"0.0\", state._generateTernary(\"1.0\", \"-pow(2.0, 10.0 * VAL - 10.0) * sin((VAL * 10.0 - 10.75) * ((2.0 * 3.1415) / 3.0))\", \"VAL == 1.0\"), \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseOutElastic: {\n const entry = state._generateTernary(\"0.0\", state._generateTernary(\"1.0\", \"pow(2.0, -10.0 * VAL) * sin((VAL * 10.0 - 0.75) * ((2.0 * 3.1415) / 3.0)) + 1.0\", \"VAL == 1.0\"), \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n case CurveBlockTypes.EaseInOutElastic: {\n const entry = state._generateTernary(\"0.0\", state._generateTernary(\"1.0\", state._generateTernary(\"-(pow(2.0, 20.0 * VAL - 10.0) * sin((20.0 * VAL - 11.125) * ((2.0 * 3.1415) / 4.5))) / 2.0\", \"(pow(2.0, -20.0 * VAL + 10.0) * sin((20.0 * VAL - 11.125) * ((2.0 * 3.1415) / 4.5))) / 2.0 + 1.0\", \"VAL < 0.5\"), \"VAL == 1.0\"), \"VAL == 0.0\");\n registeredFunction = this._duplicateVector(entry, inputType, isWGSL);\n break;\n }\n }\n if (isWGSL) {\n state._emitFunction(registeredFunctionName, `fn ${registeredFunctionName}(v: ${inputType}) -> ${inputType} {${registeredFunction};}\\n`, \"\");\n }\n else {\n state._emitFunction(registeredFunctionName, `${inputType} ${registeredFunctionName}(${inputType} v) {${registeredFunction};}\\n`, \"\");\n }\n state.compilationString += state._declareOutput(output) + ` = ${registeredFunctionName}(${this.input.associatedVariableName});\\n`;\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.curveType = this.type;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.type = serializationObject.curveType;\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.type = BABYLON.CurveBlockTypes.${CurveBlockTypes[this.type]};\\n`;\n return codeString;\n }\n}\n__decorate([\n editableInPropertyPage(\"Type\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"EaseInSine\", value: CurveBlockTypes.EaseInSine },\n { label: \"EaseOutSine\", value: CurveBlockTypes.EaseOutSine },\n { label: \"EaseInOutSine\", value: CurveBlockTypes.EaseInOutSine },\n { label: \"EaseInQuad\", value: CurveBlockTypes.EaseInQuad },\n { label: \"EaseOutQuad\", value: CurveBlockTypes.EaseOutQuad },\n { label: \"EaseInOutQuad\", value: CurveBlockTypes.EaseInOutQuad },\n { label: \"EaseInCubic\", value: CurveBlockTypes.EaseInCubic },\n { label: \"EaseOutCubic\", value: CurveBlockTypes.EaseOutCubic },\n { label: \"EaseInOutCubic\", value: CurveBlockTypes.EaseInOutCubic },\n { label: \"EaseInQuart\", value: CurveBlockTypes.EaseInQuart },\n { label: \"EaseOutQuart\", value: CurveBlockTypes.EaseOutQuart },\n { label: \"EaseInOutQuart\", value: CurveBlockTypes.EaseInOutQuart },\n { label: \"EaseInQuint\", value: CurveBlockTypes.EaseInQuint },\n { label: \"EaseOutQuint\", value: CurveBlockTypes.EaseOutQuint },\n { label: \"EaseInOutQuint\", value: CurveBlockTypes.EaseInOutQuint },\n { label: \"EaseInExpo\", value: CurveBlockTypes.EaseInExpo },\n { label: \"EaseOutExpo\", value: CurveBlockTypes.EaseOutExpo },\n { label: \"EaseInOutExpo\", value: CurveBlockTypes.EaseInOutExpo },\n { label: \"EaseInCirc\", value: CurveBlockTypes.EaseInCirc },\n { label: \"EaseOutCirc\", value: CurveBlockTypes.EaseOutCirc },\n { label: \"EaseInOutCirc\", value: CurveBlockTypes.EaseInOutCirc },\n { label: \"EaseInBack\", value: CurveBlockTypes.EaseInBack },\n { label: \"EaseOutBack\", value: CurveBlockTypes.EaseOutBack },\n { label: \"EaseInOutBack\", value: CurveBlockTypes.EaseInOutBack },\n { label: \"EaseInElastic\", value: CurveBlockTypes.EaseInElastic },\n { label: \"EaseOutElastic\", value: CurveBlockTypes.EaseOutElastic },\n { label: \"EaseInOutElastic\", value: CurveBlockTypes.EaseInOutElastic },\n ],\n })\n], CurveBlock.prototype, \"type\", void 0);\nRegisterClass(\"BABYLON.CurveBlock\", CurveBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n/**\n * Block used to apply rgb/hsl convertions\n */\nexport class ColorConverterBlock extends NodeMaterialBlock {\n /**\n * Create a new ColorConverterBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"rgb \", NodeMaterialBlockConnectionPointTypes.Color3, true);\n this.registerInput(\"hsl \", NodeMaterialBlockConnectionPointTypes.Color3, true);\n this.registerOutput(\"rgb\", NodeMaterialBlockConnectionPointTypes.Color3);\n this.registerOutput(\"hsl\", NodeMaterialBlockConnectionPointTypes.Color3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ColorConverterBlock\";\n }\n /**\n * Gets the rgb value (input)\n */\n get rgbIn() {\n return this._inputs[0];\n }\n /**\n * Gets the hsl value (input)\n */\n get hslIn() {\n return this._inputs[1];\n }\n /**\n * Gets the rgb value (output)\n */\n get rgbOut() {\n return this._outputs[0];\n }\n /**\n * Gets the hsl value (output)\n */\n get hslOut() {\n return this._outputs[1];\n }\n _inputRename(name) {\n if (name === \"rgb \") {\n return \"rgbIn\";\n }\n if (name === \"hsl \") {\n return \"hslIn\";\n }\n return name;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const rgbInput = this.rgbIn;\n const hslInput = this.hslIn;\n const rbgOutput = this._outputs[0];\n const hslOutput = this._outputs[1];\n const vec3 = state._getShaderType(NodeMaterialBlockConnectionPointTypes.Vector3);\n let rgb2hsl = `\r\n vec3 rgb2hsl(vec3 color) {\r\n float r = color.r;\r\n float g = color.g;\r\n float b = color.b;\r\n\r\n float maxc = max(r, max(g, b));\r\n float minc = min(r, min(g, b));\r\n float h = 0.0;\r\n float s = 0.0;\r\n float l = (maxc + minc) / 2.0;\r\n\r\n if (maxc != minc) {\r\n float d = maxc - minc;\r\n if (l > 0.5) {\r\n s = d / (2.0 - maxc - minc);\r\n } else {\r\n s = d / (maxc + minc);\r\n }\r\n\r\n if (maxc == r) {\r\n float add = 0.0;\r\n if (g < b) {\r\n add = 6.0;\r\n }\r\n h = (g - b) / d + add;\r\n } else if (maxc == g) {\r\n h = (b - r) / d + 2.0;\r\n } else if (maxc == b) {\r\n h = (r - g) / d + 4.0;\r\n }\r\n h /= 6.0;\r\n }\r\n\r\n return vec3(h, s, l);\r\n }`;\n let hue2rgb = `\r\n float hue2rgb(float p, float q, float tt) {\r\n float t = tt;\r\n if (t < 0.0) {\r\n t += 1.0;\r\n }\r\n if (t > 1.0) {\r\n t -= 1.0;\r\n }\r\n if (t < 1.0/6.0) {\r\n return p + (q - p) * 6.0 * t;\r\n }\r\n if (t < 1.0/2.0) {\r\n return q;\r\n }\r\n if (t < 2.0/3.0) {\r\n return p + (q - p) * (2.0/3.0 - t) * 6.0;\r\n }\r\n return p;\r\n }`;\n let hsl2rgb = `\r\n vec3 hsl2rgb(vec3 hsl) {\r\n float h = hsl.x;\r\n float s = hsl.y;\r\n float l = hsl.z;\r\n\r\n float r;\r\n float g;\r\n float b;\r\n\r\n if (s == 0.0) {\r\n // Achromatic (grey)\r\n r = l;\r\n g = l;\r\n b = l; \r\n } else {\r\n float q;\r\n \r\n if (l < 0.5) {\r\n q = l * (1.0 + s);\r\n } else {\r\n q = (l + s - l * s);\r\n }\r\n\r\n float p = 2.0 * l - q;\r\n\r\n r = hue2rgb(p, q, h + 1.0/3.0);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1.0/3.0);\r\n }\r\n\r\n return vec3(r, g, b);\r\n }`;\n if (state.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n rgb2hsl = state._babylonSLtoWGSL(rgb2hsl);\n hue2rgb = state._babylonSLtoWGSL(hue2rgb);\n hsl2rgb = state._babylonSLtoWGSL(hsl2rgb);\n }\n state._emitFunction(\"rgb2hsl\", rgb2hsl, \"\");\n state._emitFunction(\"hue2rgb\", hue2rgb, \"\");\n state._emitFunction(\"hsl2rgb\", hsl2rgb, \"\");\n if (rgbInput.isConnected) {\n if (rbgOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(rbgOutput) + ` = ${rgbInput.associatedVariableName};\\n`;\n }\n if (hslOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(hslOutput) + ` = rgb2hsl(${rgbInput.associatedVariableName});\\n`;\n }\n }\n else if (hslInput.isConnected) {\n if (rbgOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(rbgOutput) + ` = hsl2rgb(${hslInput.associatedVariableName});\\n`;\n }\n if (hslOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(hslOutput) + ` = ${hslInput.associatedVariableName};\\n`;\n }\n }\n else {\n if (rbgOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(rbgOutput) + ` = ${vec3}(0.);\\n`;\n }\n if (hslOutput.hasEndpoints) {\n state.compilationString += state._declareOutput(hslOutput) + ` = ${vec3}(0.);\\n`;\n }\n }\n return this;\n }\n}\nRegisterClass(\"BABYLON.ColorConverterBlock\", ColorConverterBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../nodeMaterialConnectionPointCustomObject.js\";\n/**\n * Block used to repeat code\n */\nexport class LoopBlock extends NodeMaterialBlock {\n /**\n * Creates a new LoopBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n /**\n * Gets or sets number of iterations\n * Will be ignored if the iterations input is connected\n */\n this.iterations = 4;\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"iterations\", NodeMaterialBlockConnectionPointTypes.Float, true);\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\n this.registerOutput(\"index\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Fragment);\n this.registerOutput(\"loopID\", NodeMaterialBlockConnectionPointTypes.Object, undefined, new NodeMaterialConnectionPointCustomObject(\"loopID\", this, 1 /* NodeMaterialConnectionPointDirection.Output */, LoopBlock, \"LoopBlock\"));\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._outputs[0]._forPostBuild = true;\n this._outputs[2]._redirectedSource = this._inputs[0];\n this._outputs[1]._preventBubbleUp = true;\n this._outputs[2]._preventBubbleUp = true;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"LoopBlock\";\n }\n /**\n * Gets the main input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the iterations input component\n */\n get iterationsInput() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the index component which will be incremented at each iteration\n */\n get index() {\n return this._outputs[1];\n }\n /**\n * Gets the loop ID component\n */\n get loopID() {\n return this._outputs[2];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const index = this._outputs[1];\n const indexName = state._getFreeVariableName(\"index\");\n const decl = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"var\" : \"int\";\n const castFloat = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"f32\" : \"float\";\n const castInt = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"i32\" : \"int\";\n // Declare storage variable and store initial value\n state.compilationString += state._declareOutput(output) + ` = ${this.input.associatedVariableName};\\n`;\n // Iterations\n const iterations = this.iterationsInput.isConnected ? `${castInt}(${this.iterationsInput.associatedVariableName})` : this.iterations;\n // Loop\n state.compilationString += `for (${decl} ${indexName} = 0; ${indexName} < ${iterations}; ${indexName}++){\\n`;\n state.compilationString += `${state._declareOutput(index)} = ${castFloat}(${indexName});\\n`;\n return this;\n }\n _postBuildBlock(state) {\n super._postBuildBlock(state);\n state.compilationString += `}\\n`;\n return this;\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.iterations = ${this.iterations};\\n`;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.iterations = this.iterations;\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n this.iterations = serializationObject.iterations;\n }\n}\n__decorate([\n editableInPropertyPage(\"Iterations\", 2 /* PropertyTypeForEdition.Int */, undefined, { embedded: true })\n], LoopBlock.prototype, \"iterations\", void 0);\nRegisterClass(\"BABYLON.LoopBlock\", LoopBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { LoopBlock } from \"./loopBlock.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../nodeMaterialConnectionPointCustomObject.js\";\n/**\n * Block used to read from a variable within a loop\n */\nexport class StorageReadBlock extends NodeMaterialBlock {\n /**\n * Creates a new StorageReadBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"loopID\", NodeMaterialBlockConnectionPointTypes.Object, false, undefined, new NodeMaterialConnectionPointCustomObject(\"loopID\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, LoopBlock, \"LoopBlock\"));\n this.registerOutput(\"value\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this._outputs[0]._linkedConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"StorageReadBlock\";\n }\n /**\n * Gets the loop link component\n */\n get loopID() {\n return this._inputs[0];\n }\n /**\n * Gets the value component\n */\n get value() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const value = this.value;\n if (!this.loopID.isConnected) {\n return this;\n }\n const loopBlock = this.loopID.connectedPoint.ownerBlock;\n state.compilationString += state._declareOutput(value) + ` = ${loopBlock.output.associatedVariableName};\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.StorageReadBlock\", StorageReadBlock);\n","import { NodeMaterialBlock } from \"../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { LoopBlock } from \"./loopBlock.js\";\nimport { NodeMaterialConnectionPointCustomObject } from \"../nodeMaterialConnectionPointCustomObject.js\";\n/**\n * Block used to write to a variable within a loop\n */\nexport class StorageWriteBlock extends NodeMaterialBlock {\n /**\n * Creates a new StorageWriteBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Neutral);\n this.registerInput(\"loopID\", NodeMaterialBlockConnectionPointTypes.Object, false, undefined, new NodeMaterialConnectionPointCustomObject(\"loopID\", this, 0 /* NodeMaterialConnectionPointDirection.Input */, LoopBlock, \"LoopBlock\"));\n this.registerInput(\"value\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\n this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"StorageWriteBlock\";\n }\n /**\n * Gets the loop link component\n */\n get loopID() {\n return this._inputs[0];\n }\n /**\n * Gets the value component\n */\n get value() {\n return this._inputs[1];\n }\n /** Gets a boolean indicating that this connection will be used in the fragment shader\n * @returns true if connected in fragment shader\n */\n isConnectedInFragmentShader() {\n if (!this.loopID.isConnected) {\n return false;\n }\n const loopBlock = this.loopID.connectedPoint.ownerBlock;\n return loopBlock.output.isConnectedInFragmentShader;\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const value = this.value;\n if (!this.loopID.isConnected) {\n return this;\n }\n const loopBlock = this.loopID.connectedPoint.ownerBlock;\n state.compilationString += `${loopBlock.output.associatedVariableName} = ${value.associatedVariableName};\\n`;\n return this;\n }\n}\nRegisterClass(\"BABYLON.StorageWriteBlock\", StorageWriteBlock);\n","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore.js\";\nconst name = \"gaussianSplattingVertexDeclaration\";\nconst shader = `attribute position: vec2f;\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const gaussianSplattingVertexDeclarationWGSL = { name, shader };\n","import { __decorate } from \"../tslib.es6.js\";\nimport { serialize, expandToProperty } from \"../Misc/decorators.js\";\nimport { MaterialDefines } from \"./materialDefines.js\";\nimport { MaterialPluginBase } from \"./materialPluginBase.js\";\n\nimport { MaterialFlags } from \"./materialFlags.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { BindTextureMatrix, PrepareDefinesForMergedUV } from \"./materialHelper.functions.js\";\n/**\n * @internal\n */\nexport class DecalMapDefines extends MaterialDefines {\n constructor() {\n super(...arguments);\n this.DECAL = false;\n this.DECALDIRECTUV = 0;\n this.DECAL_SMOOTHALPHA = false;\n this.GAMMADECAL = false;\n }\n}\n/**\n * Plugin that implements the decal map component of a material\n * @since 5.49.1\n */\nexport class DecalMapConfiguration extends MaterialPluginBase {\n /** @internal */\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled);\n this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n /**\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\n * @returns true if the plugin is compatible with the shader language\n */\n isCompatible() {\n return true;\n }\n /**\n * Creates a new DecalMapConfiguration\n * @param material The material to attach the decal map plugin to\n * @param addToPluginList If the plugin should be added to the material plugin list\n */\n constructor(material, addToPluginList = true) {\n super(material, \"DecalMap\", 150, new DecalMapDefines(), addToPluginList);\n this._isEnabled = false;\n /**\n * Enables or disables the decal map on this material\n */\n this.isEnabled = false;\n this._smoothAlpha = false;\n /**\n * Enables or disables the smooth alpha mode on this material. Default: false.\n * When enabled, the alpha value used to blend the decal map will be the squared value and will produce a smoother result.\n */\n this.smoothAlpha = false;\n this.registerForExtraEvents = true; // because we override the hardBindForSubMesh method\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];\n }\n isReadyForSubMesh(defines, scene, engine, subMesh) {\n const decalMap = subMesh.getMesh().decalMap;\n if (!this._isEnabled || !decalMap?.texture || !MaterialFlags.DecalMapEnabled || !scene.texturesEnabled) {\n return true;\n }\n return decalMap.isReady();\n }\n prepareDefinesBeforeAttributes(defines, scene, mesh) {\n const decalMap = mesh.decalMap;\n if (!this._isEnabled || !decalMap?.texture || !MaterialFlags.DecalMapEnabled || !scene.texturesEnabled) {\n const isDirty = defines.DECAL;\n if (isDirty) {\n defines.markAsTexturesDirty();\n }\n defines.DECAL = false;\n }\n else {\n const isDirty = !defines.DECAL || defines.GAMMADECAL !== decalMap.texture.gammaSpace;\n if (isDirty) {\n defines.markAsTexturesDirty();\n }\n defines.DECAL = true;\n defines.GAMMADECAL = decalMap.texture.gammaSpace;\n defines.DECAL_SMOOTHALPHA = this._smoothAlpha;\n PrepareDefinesForMergedUV(decalMap.texture, defines, \"DECAL\");\n }\n }\n hardBindForSubMesh(uniformBuffer, scene, _engine, subMesh) {\n /**\n * Note that we override hardBindForSubMesh and not bindForSubMesh because the material can be shared by multiple meshes,\n * in which case mustRebind could return false even though the decal map is different for each mesh: that's because the decal map\n * is not part of the material but hosted by the decalMap of the mesh instead.\n */\n const decalMap = subMesh.getMesh().decalMap;\n if (!this._isEnabled || !decalMap?.texture || !MaterialFlags.DecalMapEnabled || !scene.texturesEnabled) {\n return;\n }\n const isFrozen = this._material.isFrozen;\n const texture = decalMap.texture;\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\n uniformBuffer.updateFloat4(\"vDecalInfos\", texture.coordinatesIndex, 0, 0, 0);\n BindTextureMatrix(texture, uniformBuffer, \"decal\");\n }\n uniformBuffer.setTexture(\"decalSampler\", texture);\n }\n getClassName() {\n return \"DecalMapConfiguration\";\n }\n getSamplers(samplers) {\n samplers.push(\"decalSampler\");\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"vDecalInfos\", size: 4, type: \"vec4\" },\n { name: \"decalMatrix\", size: 16, type: \"mat4\" },\n ],\n };\n }\n}\n__decorate([\n serialize(),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], DecalMapConfiguration.prototype, \"isEnabled\", void 0);\n__decorate([\n serialize(),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], DecalMapConfiguration.prototype, \"smoothAlpha\", void 0);\nRegisterClass(\"BABYLON.DecalMapConfiguration\", DecalMapConfiguration);\n","import { Color3 } from \"../../Maths/math.color.js\";\n/**\n * Default settings for GreasedLine materials\n */\nexport class GreasedLineMaterialDefaults {\n}\n/**\n * Default line color for newly created lines\n */\nGreasedLineMaterialDefaults.DEFAULT_COLOR = Color3.White();\n/**\n * Default line width when sizeAttenuation is true\n */\nGreasedLineMaterialDefaults.DEFAULT_WIDTH_ATTENUATED = 1;\n/**\n * Defaule line width\n */\nGreasedLineMaterialDefaults.DEFAULT_WIDTH = 0.1;\n","import { Curve3 } from \"../Maths/math.path.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { TmpVectors, Vector3 } from \"../Maths/math.vector.js\";\nimport { CreateTextShapePaths } from \"../Meshes/Builders/textBuilder.js\";\nimport { RawTexture } from \"../Materials/Textures/rawTexture.js\";\nimport { Engine } from \"../Engines/engine.js\";\nimport { GreasedLineMaterialDefaults } from \"../Materials/GreasedLine/greasedLineMaterialDefaults.js\";\n/**\n * Tool functions for GreasedLine\n */\nexport class GreasedLineTools {\n /**\n * Converts GreasedLinePoints to number[][]\n * @param points GreasedLinePoints\n * @param options GreasedLineToolsConvertPointsOptions\n * @returns number[][] with x, y, z coordinates of the points, like [[x, y, z, x, y, z, ...], [x, y, z, ...]]\n */\n static ConvertPoints(points, options) {\n if (points.length && Array.isArray(points) && typeof points[0] === \"number\") {\n return [points];\n }\n else if (points.length && Array.isArray(points[0]) && typeof points[0][0] === \"number\") {\n return points;\n }\n else if (points.length && !Array.isArray(points[0]) && points[0] instanceof Vector3) {\n const positions = [];\n for (let j = 0; j < points.length; j++) {\n const p = points[j];\n positions.push(p.x, p.y, p.z);\n }\n return [positions];\n }\n else if (points.length > 0 && Array.isArray(points[0]) && points[0].length > 0 && points[0][0] instanceof Vector3) {\n const positions = [];\n const vectorPoints = points;\n vectorPoints.forEach((p) => {\n positions.push(p.flatMap((p2) => [p2.x, p2.y, p2.z]));\n });\n return positions;\n }\n else if (points instanceof Float32Array) {\n if (options?.floatArrayStride) {\n const positions = [];\n const stride = options.floatArrayStride * 3;\n for (let i = 0; i < points.length; i += stride) {\n const linePoints = new Array(stride); // Pre-allocate memory for the line\n for (let j = 0; j < stride; j++) {\n linePoints[j] = points[i + j];\n }\n positions.push(linePoints);\n }\n return positions;\n }\n else {\n return [Array.from(points)];\n }\n }\n else if (points.length && points[0] instanceof Float32Array) {\n const positions = [];\n points.forEach((p) => {\n positions.push(Array.from(p));\n });\n return positions;\n }\n return [];\n }\n /**\n * Omit zero length lines predicate for the MeshesToLines function\n * @param p1 point1 position of the face\n * @param p2 point2 position of the face\n * @param p3 point3 position of the face\n * @returns original points or null if any edge length is zero\n */\n static OmitZeroLengthPredicate(p1, p2, p3) {\n const fileredPoints = [];\n // edge1\n if (p2.subtract(p1).lengthSquared() > 0) {\n fileredPoints.push([p1, p2]);\n }\n // edge2\n if (p3.subtract(p2).lengthSquared() > 0) {\n fileredPoints.push([p2, p3]);\n }\n // edge3\n if (p1.subtract(p3).lengthSquared() > 0) {\n fileredPoints.push([p3, p1]);\n }\n return fileredPoints.length === 0 ? null : fileredPoints;\n }\n /**\n * Omit duplicate lines predicate for the MeshesToLines function\n * @param p1 point1 position of the face\n * @param p2 point2 position of the face\n * @param p3 point3 position of the face\n * @param points array of points to search in\n * @returns original points or null if any edge length is zero\n */\n static OmitDuplicatesPredicate(p1, p2, p3, points) {\n const fileredPoints = [];\n // edge1\n if (!GreasedLineTools._SearchInPoints(p1, p2, points)) {\n fileredPoints.push([p1, p2]);\n }\n // edge2\n if (!GreasedLineTools._SearchInPoints(p2, p3, points)) {\n fileredPoints.push([p2, p3]);\n }\n // edge3\n if (!GreasedLineTools._SearchInPoints(p3, p1, points)) {\n fileredPoints.push([p3, p1]);\n }\n return fileredPoints.length === 0 ? null : fileredPoints;\n }\n static _SearchInPoints(p1, p2, points) {\n for (const ps of points) {\n for (let i = 0; i < ps.length; i++) {\n if (ps[i]?.equals(p1)) {\n // find the first point\n // if it has a sibling of p2 the line already exists\n if (ps[i + 1]?.equals(p2) || ps[i - 1]?.equals(p2)) {\n return true;\n }\n }\n }\n }\n return false;\n }\n /**\n * Gets mesh triangles as line positions\n * @param meshes array of meshes\n * @param predicate predicate function which decides whether to include the mesh triangle/face in the ouput\n * @returns array of arrays of points\n */\n static MeshesToLines(meshes, predicate) {\n const points = [];\n meshes.forEach((m, meshIndex) => {\n const vertices = m.getVerticesData(VertexBuffer.PositionKind);\n const indices = m.getIndices();\n if (vertices && indices) {\n for (let i = 0, ii = 0; i < indices.length; i++) {\n const vi1 = indices[ii++] * 3;\n const vi2 = indices[ii++] * 3;\n const vi3 = indices[ii++] * 3;\n const p1 = new Vector3(vertices[vi1], vertices[vi1 + 1], vertices[vi1 + 2]);\n const p2 = new Vector3(vertices[vi2], vertices[vi2 + 1], vertices[vi2 + 2]);\n const p3 = new Vector3(vertices[vi3], vertices[vi3 + 1], vertices[vi3 + 2]);\n if (predicate) {\n const pointsFromPredicate = predicate(p1, p2, p3, points, i, vi1, m, meshIndex, vertices, indices);\n if (pointsFromPredicate) {\n for (const p of pointsFromPredicate) {\n points.push(p);\n }\n }\n }\n else {\n points.push([p1, p2], [p2, p3], [p3, p1]);\n }\n }\n }\n });\n return points;\n }\n /**\n * Converts number coordinates to Vector3s\n * @param points number array of x, y, z, x, y z, ... coordinates\n * @returns Vector3 array\n */\n static ToVector3Array(points) {\n if (Array.isArray(points[0])) {\n const array = [];\n const inputArray = points;\n for (const subInputArray of inputArray) {\n const subArray = [];\n for (let i = 0; i < subInputArray.length; i += 3) {\n subArray.push(new Vector3(subInputArray[i], subInputArray[i + 1], subInputArray[i + 2]));\n }\n array.push(subArray);\n }\n return array;\n }\n const inputArray = points;\n const array = [];\n for (let i = 0; i < inputArray.length; i += 3) {\n array.push(new Vector3(inputArray[i], inputArray[i + 1], inputArray[i + 2]));\n }\n return array;\n }\n /**\n * Gets a number array from a Vector3 array.\n * You can you for example to convert your Vector3[] offsets to the required number[] for the offsets option.\n * @param points Vector3 array\n * @returns an array of x, y, z coordinates as numbers [x, y, z, x, y, z, x, y, z, ....]\n */\n static ToNumberArray(points) {\n return points.flatMap((v) => [v.x, v.y, v.z]);\n }\n /**\n * Calculates the sum of points of every line and the number of points in each line.\n * This function is useful when you are drawing multiple lines in one mesh and you want\n * to know the counts. For example for creating an offsets table.\n * @param points point array\n * @returns points count info\n */\n static GetPointsCountInfo(points) {\n const counts = new Array(points.length);\n let total = 0;\n for (let n = points.length; n--;) {\n counts[n] = points[n].length / 3;\n total += counts[n];\n }\n return { total, counts };\n }\n /**\n * Gets the length of the line counting all it's segments length\n * @param data array of line points\n * @returns length of the line\n */\n static GetLineLength(data) {\n if (data.length === 0) {\n return 0;\n }\n let points;\n if (typeof data[0] === \"number\") {\n points = GreasedLineTools.ToVector3Array(data);\n }\n else {\n points = data;\n }\n const tmp = TmpVectors.Vector3[0];\n let length = 0;\n for (let index = 0; index < points.length - 1; index++) {\n const point1 = points[index];\n const point2 = points[index + 1];\n length += point2.subtractToRef(point1, tmp).length();\n }\n return length;\n }\n /**\n * Gets the the length from the beginning to each point of the line as array.\n * @param data array of line points\n * @returns length array of the line\n */\n static GetLineLengthArray(data) {\n const out = new Float32Array(data.length / 3);\n let length = 0;\n for (let index = 0, pointsLength = data.length / 3 - 1; index < pointsLength; index++) {\n let x = data[index * 3 + 0];\n let y = data[index * 3 + 1];\n let z = data[index * 3 + 2];\n x -= data[index * 3 + 3];\n y -= data[index * 3 + 4];\n z -= data[index * 3 + 5];\n const currentLength = Math.sqrt(x * x + y * y + z * z);\n length += currentLength;\n out[index + 1] = length;\n }\n return out;\n }\n /**\n * Divides a segment into smaller segments.\n * A segment is a part of the line between it's two points.\n * @param point1 first point of the line\n * @param point2 second point of the line\n * @param segmentCount number of segments we want to have in the divided line\n * @returns\n */\n static SegmentizeSegmentByCount(point1, point2, segmentCount) {\n const dividedLinePoints = [];\n const diff = point2.subtract(point1);\n const divisor = TmpVectors.Vector3[0];\n divisor.setAll(segmentCount);\n const segmentVector = TmpVectors.Vector3[1];\n diff.divideToRef(divisor, segmentVector);\n let nextPoint = point1.clone();\n dividedLinePoints.push(nextPoint);\n for (let index = 0; index < segmentCount; index++) {\n nextPoint = nextPoint.clone();\n dividedLinePoints.push(nextPoint.addInPlace(segmentVector));\n }\n return dividedLinePoints;\n }\n /**\n * Divides a line into segments.\n * A segment is a part of the line between it's two points.\n * @param what line points\n * @param segmentLength length of each segment of the resulting line (distance between two line points)\n * @returns line point\n */\n static SegmentizeLineBySegmentLength(what, segmentLength) {\n const subLines = what[0] instanceof Vector3\n ? GreasedLineTools.GetLineSegments(what)\n : typeof what[0] === \"number\"\n ? GreasedLineTools.GetLineSegments(GreasedLineTools.ToVector3Array(what))\n : what;\n const points = [];\n subLines.forEach((s) => {\n if (s.length > segmentLength) {\n const segments = GreasedLineTools.SegmentizeSegmentByCount(s.point1, s.point2, Math.ceil(s.length / segmentLength));\n segments.forEach((seg) => {\n points.push(seg);\n });\n }\n else {\n points.push(s.point1);\n points.push(s.point2);\n }\n });\n return points;\n }\n /**\n * Divides a line into segments.\n * A segment is a part of the line between it's two points.\n * @param what line points\n * @param segmentCount number of segments\n * @returns line point\n */\n static SegmentizeLineBySegmentCount(what, segmentCount) {\n const points = (typeof what[0] === \"number\" ? GreasedLineTools.ToVector3Array(what) : what);\n const segmentLength = GreasedLineTools.GetLineLength(points) / segmentCount;\n return GreasedLineTools.SegmentizeLineBySegmentLength(points, segmentLength);\n }\n /**\n * Gets line segments.\n * A segment is a part of the line between it's two points.\n * @param points line points\n * @returns segments information of the line segment including starting point, ending point and the distance between them\n */\n static GetLineSegments(points) {\n const segments = [];\n for (let index = 0; index < points.length - 1; index++) {\n const point1 = points[index];\n const point2 = points[index + 1];\n const length = point2.subtract(point1).length();\n segments.push({ point1, point2, length });\n }\n return segments;\n }\n /**\n * Gets the minimum and the maximum length of a line segment in the line.\n * A segment is a part of the line between it's two points.\n * @param points line points\n * @returns\n */\n static GetMinMaxSegmentLength(points) {\n const subLines = GreasedLineTools.GetLineSegments(points);\n const sorted = subLines.sort((s) => s.length);\n return {\n min: sorted[0].length,\n max: sorted[sorted.length - 1].length,\n };\n }\n /**\n * Finds the last visible position in world space of the line according to the visibility parameter\n * @param lineSegments segments of the line\n * @param lineLength total length of the line\n * @param visbility normalized value of visibility\n * @param localSpace if true the result will be in local space (default is false)\n * @returns world space coordinate of the last visible piece of the line\n */\n static GetPositionOnLineByVisibility(lineSegments, lineLength, visbility, localSpace = false) {\n const lengthVisibilityRatio = lineLength * visbility;\n let sumSegmentLengths = 0;\n let segmentIndex = 0;\n const lineSegmentsLength = lineSegments.length;\n for (let i = 0; i < lineSegmentsLength; i++) {\n if (lengthVisibilityRatio <= sumSegmentLengths + lineSegments[i].length) {\n segmentIndex = i;\n break;\n }\n sumSegmentLengths += lineSegments[i].length;\n }\n const s = (lengthVisibilityRatio - sumSegmentLengths) / lineSegments[segmentIndex].length;\n lineSegments[segmentIndex].point2.subtractToRef(lineSegments[segmentIndex].point1, TmpVectors.Vector3[0]);\n TmpVectors.Vector3[1] = TmpVectors.Vector3[0].multiplyByFloats(s, s, s);\n if (!localSpace) {\n TmpVectors.Vector3[1].addInPlace(lineSegments[segmentIndex].point1);\n }\n return TmpVectors.Vector3[1].clone();\n }\n /**\n * Creates lines in a shape of circle/arc.\n * A segment is a part of the line between it's two points.\n * @param radiusX radiusX of the circle\n * @param segments number of segments in the circle\n * @param z z coordinate of the points. Defaults to 0.\n * @param radiusY radiusY of the circle - you can draw an oval if using different values\n * @param segmentAngle angle offset of the segments. Defaults to Math.PI * 2 / segments. Change this value to draw a part of the circle.\n * @returns line points\n */\n static GetCircleLinePoints(radiusX, segments, z = 0, radiusY = radiusX, segmentAngle = (Math.PI * 2) / segments) {\n const points = [];\n for (let i = 0; i <= segments; i++) {\n points.push(new Vector3(Math.cos(i * segmentAngle) * radiusX, Math.sin(i * segmentAngle) * radiusY, z));\n }\n return points;\n }\n /**\n * Gets line points in a shape of a bezier curve\n * @param p0 bezier point0\n * @param p1 bezier point1\n * @param p2 bezier point2\n * @param segments number of segments in the curve\n * @returns\n */\n static GetBezierLinePoints(p0, p1, p2, segments) {\n return Curve3.CreateQuadraticBezier(p0, p1, p2, segments)\n .getPoints()\n .flatMap((v) => [v.x, v.y, v.z]);\n }\n /**\n *\n * @param position position of the arrow cap (mainly you want to create a triangle, set widthUp and widthDown to the same value and omit widthStartUp and widthStartDown)\n * @param direction direction which the arrow points to\n * @param length length (size) of the arrow cap itself\n * @param widthUp the arrow width above the line\n * @param widthDown the arrow width belove the line\n * @param widthStartUp the arrow width at the start of the arrow above the line. In most scenarios this is 0.\n * @param widthStartDown the arrow width at the start of the arrow below the line. In most scenarios this is 0.\n * @returns\n */\n static GetArrowCap(position, direction, length, widthUp, widthDown, widthStartUp = 0, widthStartDown = 0) {\n const points = [position.clone(), position.add(direction.multiplyByFloats(length, length, length))];\n const widths = [widthUp, widthDown, widthStartUp, widthStartDown];\n return {\n points,\n widths,\n };\n }\n /**\n * Gets 3D positions of points from a text and font\n * @param text Text\n * @param size Size of the font\n * @param resolution Resolution of the font\n * @param fontData defines the font data (can be generated with http://gero3.github.io/facetype.js/)\n * @param z z coordinate\n * @param includeInner include the inner parts of the font in the result. Default true. If false, only the outlines will be returned.\n * @returns number[][] of 3D positions\n */\n static GetPointsFromText(text, size, resolution, fontData, z = 0, includeInner = true) {\n const allPoints = [];\n const shapePaths = CreateTextShapePaths(text, size, resolution, fontData);\n for (const sp of shapePaths) {\n for (const p of sp.paths) {\n const points = [];\n const points2d = p.getPoints();\n for (const p2d of points2d) {\n points.push(p2d.x, p2d.y, z);\n }\n allPoints.push(points);\n }\n if (includeInner) {\n for (const h of sp.holes) {\n const holes = [];\n const points2d = h.getPoints();\n for (const p2d of points2d) {\n holes.push(p2d.x, p2d.y, z);\n }\n allPoints.push(holes);\n }\n }\n }\n return allPoints;\n }\n /**\n * Converts an array of Color3 to Uint8Array\n * @param colors Arrray of Color3\n * @returns Uin8Array of colors [r, g, b, a, r, g, b, a, ...]\n */\n static Color3toRGBAUint8(colors) {\n const colorTable = new Uint8Array(colors.length * 4);\n for (let i = 0, j = 0; i < colors.length; i++) {\n colorTable[j++] = colors[i].r * 255;\n colorTable[j++] = colors[i].g * 255;\n colorTable[j++] = colors[i].b * 255;\n colorTable[j++] = 255;\n }\n return colorTable;\n }\n /**\n * Creates a RawTexture from an RGBA color array and sets it on the plugin material instance.\n * @param name name of the texture\n * @param colors Uint8Array of colors\n * @param colorsSampling sampling mode of the created texture\n * @param scene Scene\n * @returns the colors texture\n */\n static CreateColorsTexture(name, colors, colorsSampling, scene) {\n const maxTextureSize = scene.getEngine().getCaps().maxTextureSize ?? 1;\n const width = colors.length > maxTextureSize ? maxTextureSize : colors.length;\n const height = Math.ceil(colors.length / maxTextureSize);\n if (height > 1) {\n colors = [...colors, ...Array(width * height - colors.length).fill(colors[0])];\n }\n const colorsArray = GreasedLineTools.Color3toRGBAUint8(colors);\n const colorsTexture = new RawTexture(colorsArray, width, height, Engine.TEXTUREFORMAT_RGBA, scene, false, true, colorsSampling);\n colorsTexture.name = name;\n return colorsTexture;\n }\n /**\n * A minimum size texture for the colors sampler2D when there is no colors texture defined yet.\n * For fast switching using the useColors property without the need to use defines.\n * @param scene Scene\n * @returns empty colors texture\n */\n static PrepareEmptyColorsTexture(scene) {\n if (!GreasedLineMaterialDefaults.EmptyColorsTexture) {\n const colorsArray = new Uint8Array(4);\n GreasedLineMaterialDefaults.EmptyColorsTexture = new RawTexture(colorsArray, 1, 1, Engine.TEXTUREFORMAT_RGBA, scene, false, false, RawTexture.NEAREST_NEAREST);\n GreasedLineMaterialDefaults.EmptyColorsTexture.name = \"grlEmptyColorsTexture\";\n }\n return GreasedLineMaterialDefaults.EmptyColorsTexture;\n }\n /**\n * Diposes the shared empty colors texture\n */\n static DisposeEmptyColorsTexture() {\n GreasedLineMaterialDefaults.EmptyColorsTexture?.dispose();\n GreasedLineMaterialDefaults.EmptyColorsTexture = null;\n }\n /**\n * Converts boolean to number.\n * @param bool the bool value\n * @returns 1 if true, 0 if false.\n */\n static BooleanToNumber(bool) {\n return bool ? 1 : 0;\n }\n}\n","import { RawTexture } from \"../Textures/rawTexture.js\";\nimport { MaterialPluginBase } from \"../materialPluginBase.js\";\nimport { Vector2, TmpVectors } from \"../../Maths/math.vector.js\";\nimport { MaterialDefines } from \"../materialDefines.js\";\nimport { RegisterClass } from \"../../Misc/typeStore.js\";\nimport { GreasedLineMaterialDefaults } from \"./greasedLineMaterialDefaults.js\";\nimport { GreasedLineTools } from \"../../Misc/greasedLineTools.js\";\n/**\n * @internal\n */\nexport class MaterialGreasedLineDefines extends MaterialDefines {\n constructor() {\n super(...arguments);\n /**\n * The material has a color option specified\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this.GREASED_LINE_HAS_COLOR = false;\n /**\n * The material's size attenuation optiom\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this.GREASED_LINE_SIZE_ATTENUATION = false;\n /**\n * The type of color distribution is set to line this value equals to true.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this.GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE = false;\n /**\n * True if scene is in right handed coordinate system.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this.GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM = false;\n /**\n * True if the line is in camera facing mode\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this.GREASED_LINE_CAMERA_FACING = true;\n }\n}\n/**\n * GreasedLinePluginMaterial for GreasedLineMesh/GreasedLineRibbonMesh.\n * Use the GreasedLineBuilder.CreateGreasedLineMaterial function to create and instance of this class.\n */\nexport class GreasedLinePluginMaterial extends MaterialPluginBase {\n /**\n * Creates a new instance of the GreasedLinePluginMaterial\n * @param material base material for the plugin\n * @param scene the scene\n * @param options plugin options\n */\n constructor(material, scene, options) {\n options = options || {\n color: GreasedLineMaterialDefaults.DEFAULT_COLOR,\n };\n const defines = new MaterialGreasedLineDefines();\n defines.GREASED_LINE_HAS_COLOR = !!options.color && !options.useColors;\n defines.GREASED_LINE_SIZE_ATTENUATION = options.sizeAttenuation ?? false;\n defines.GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE = options.colorDistributionType === 1 /* GreasedLineMeshColorDistributionType.COLOR_DISTRIBUTION_TYPE_LINE */;\n defines.GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM = (scene ?? material.getScene()).useRightHandedSystem;\n defines.GREASED_LINE_CAMERA_FACING = options.cameraFacing ?? true;\n super(material, GreasedLinePluginMaterial.GREASED_LINE_MATERIAL_NAME, 200, defines);\n /**\n * You can provide a colorsTexture to use instead of one generated from the 'colors' option\n */\n this.colorsTexture = null;\n this._scene = scene ?? material.getScene();\n this._engine = this._scene.getEngine();\n this._cameraFacing = options.cameraFacing ?? true;\n this.visibility = options.visibility ?? 1;\n this.useDash = options.useDash ?? false;\n this.dashRatio = options.dashRatio ?? 0.5;\n this.dashOffset = options.dashOffset ?? 0;\n this.width = options.width ? options.width : options.sizeAttenuation ? GreasedLineMaterialDefaults.DEFAULT_WIDTH_ATTENUATED : GreasedLineMaterialDefaults.DEFAULT_WIDTH;\n this._sizeAttenuation = options.sizeAttenuation ?? false;\n this.colorMode = options.colorMode ?? 0 /* GreasedLineMeshColorMode.COLOR_MODE_SET */;\n this._color = options.color ?? null;\n this.useColors = options.useColors ?? false;\n this._colorsDistributionType = options.colorDistributionType ?? 0 /* GreasedLineMeshColorDistributionType.COLOR_DISTRIBUTION_TYPE_SEGMENT */;\n this.colorsSampling = options.colorsSampling ?? RawTexture.NEAREST_NEAREST;\n this._colors = options.colors ?? null;\n this.dashCount = options.dashCount ?? 1; // calculate the _dashArray value, call the setter\n this.resolution = options.resolution ?? new Vector2(this._engine.getRenderWidth(), this._engine.getRenderHeight()); // calculate aspect call the setter\n if (options.colorsTexture) {\n this.colorsTexture = options.colorsTexture; // colorsTexture from options takes precedence\n }\n else {\n if (this._colors) {\n this.colorsTexture = GreasedLineTools.CreateColorsTexture(`${material.name}-colors-texture`, this._colors, this.colorsSampling, this._scene);\n }\n else {\n this._color = this._color ?? GreasedLineMaterialDefaults.DEFAULT_COLOR;\n GreasedLineTools.PrepareEmptyColorsTexture(this._scene);\n }\n }\n this._engine.onDisposeObservable.add(() => {\n GreasedLineTools.DisposeEmptyColorsTexture();\n });\n this._enable(true); // always enabled\n }\n /**\n * Get the shader attributes\n * @param attributes array which will be filled with the attributes\n */\n getAttributes(attributes) {\n attributes.push(\"grl_offsets\");\n attributes.push(\"grl_widths\");\n attributes.push(\"grl_colorPointers\");\n attributes.push(\"grl_counters\");\n if (this._cameraFacing) {\n attributes.push(\"grl_previousAndSide\");\n attributes.push(\"grl_nextAndCounters\");\n }\n else {\n attributes.push(\"grl_slopes\");\n }\n }\n /**\n * Get the shader samplers\n * @param samplers\n */\n getSamplers(samplers) {\n samplers.push(\"grl_colors\");\n }\n /**\n * Get the shader textures\n * @param activeTextures array which will be filled with the textures\n */\n getActiveTextures(activeTextures) {\n if (this.colorsTexture) {\n activeTextures.push(this.colorsTexture);\n }\n }\n /**\n * Get the shader uniforms\n * @returns uniforms\n */\n getUniforms() {\n const ubo = [\n { name: \"grl_singleColor\", size: 3, type: \"vec3\" },\n { name: \"grl_textureSize\", size: 2, type: \"vec2\" },\n { name: \"grl_dashOptions\", size: 4, type: \"vec4\" },\n { name: \"grl_colorMode_visibility_colorsWidth_useColors\", size: 4, type: \"vec4\" },\n ];\n if (this._cameraFacing) {\n ubo.push({ name: \"grl_projection\", size: 16, type: \"mat4\" }, { name: \"grl_aspect_resolution_lineWidth\", size: 4, type: \"vec4\" });\n }\n return {\n ubo,\n vertex: this._cameraFacing\n ? `\r\n uniform vec4 grl_aspect_resolution_lineWidth;\r\n uniform mat4 grl_projection;\r\n `\n : \"\",\n fragment: `\r\n uniform vec4 grl_dashOptions;\r\n uniform vec2 grl_textureSize;\r\n uniform vec4 grl_colorMode_visibility_colorsWidth_useColors;\r\n uniform vec3 grl_singleColor;\r\n `,\n };\n }\n // only getter, it doesn't make sense to use this plugin on a mesh other than GreasedLineMesh\n // and it doesn't make sense to disable it on the mesh\n get isEnabled() {\n return true;\n }\n /**\n * Bind the uniform buffer\n * @param uniformBuffer\n */\n bindForSubMesh(uniformBuffer) {\n if (this._cameraFacing) {\n const activeCamera = this._scene.activeCamera;\n if (activeCamera) {\n const projection = activeCamera.getProjectionMatrix();\n uniformBuffer.updateMatrix(\"grl_projection\", projection);\n }\n else {\n throw Error(\"GreasedLinePluginMaterial requires an active camera.\");\n }\n const resolutionLineWidth = TmpVectors.Vector4[0];\n resolutionLineWidth.x = this._aspect;\n resolutionLineWidth.y = this._resolution.x;\n resolutionLineWidth.z = this._resolution.y;\n resolutionLineWidth.w = this.width;\n uniformBuffer.updateVector4(\"grl_aspect_resolution_lineWidth\", resolutionLineWidth);\n }\n const dashOptions = TmpVectors.Vector4[0];\n dashOptions.x = GreasedLineTools.BooleanToNumber(this.useDash);\n dashOptions.y = this._dashArray;\n dashOptions.z = this.dashOffset;\n dashOptions.w = this.dashRatio;\n uniformBuffer.updateVector4(\"grl_dashOptions\", dashOptions);\n const colorModeVisibilityColorsWidthUseColors = TmpVectors.Vector4[1];\n colorModeVisibilityColorsWidthUseColors.x = this.colorMode;\n colorModeVisibilityColorsWidthUseColors.y = this.visibility;\n colorModeVisibilityColorsWidthUseColors.z = this.colorsTexture ? this.colorsTexture.getSize().width : 0;\n colorModeVisibilityColorsWidthUseColors.w = GreasedLineTools.BooleanToNumber(this.useColors);\n uniformBuffer.updateVector4(\"grl_colorMode_visibility_colorsWidth_useColors\", colorModeVisibilityColorsWidthUseColors);\n if (this._color) {\n uniformBuffer.updateColor3(\"grl_singleColor\", this._color);\n }\n const texture = this.colorsTexture ?? GreasedLineMaterialDefaults.EmptyColorsTexture;\n uniformBuffer.setTexture(\"grl_colors\", texture);\n uniformBuffer.updateFloat2(\"grl_textureSize\", texture?.getSize().width ?? 1, texture?.getSize().height ?? 1);\n }\n /**\n * Prepare the defines\n * @param defines\n * @param _scene\n * @param _mesh\n */\n prepareDefines(defines, _scene, _mesh) {\n defines.GREASED_LINE_HAS_COLOR = !!this.color && !this.useColors;\n defines.GREASED_LINE_SIZE_ATTENUATION = this._sizeAttenuation;\n defines.GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE = this._colorsDistributionType === 1 /* GreasedLineMeshColorDistributionType.COLOR_DISTRIBUTION_TYPE_LINE */;\n defines.GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM = _scene.useRightHandedSystem;\n defines.GREASED_LINE_CAMERA_FACING = this._cameraFacing;\n }\n /**\n * Get the class name\n * @returns class name\n */\n getClassName() {\n return GreasedLinePluginMaterial.GREASED_LINE_MATERIAL_NAME;\n }\n /**\n * Get shader code\n * @param shaderType vertex/fragment\n * @returns shader code\n */\n getCustomCode(shaderType) {\n if (shaderType === \"vertex\") {\n const obj = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_VERTEX_DEFINITIONS: `\r\n attribute float grl_widths;\r\n attribute vec3 grl_offsets;\r\n attribute float grl_colorPointers;\r\n varying float grlCounters;\r\n varying float grlColorPointer;\r\n\r\n #ifdef GREASED_LINE_CAMERA_FACING\r\n attribute vec4 grl_previousAndSide;\r\n attribute vec4 grl_nextAndCounters;\r\n\r\n vec2 grlFix( vec4 i, float aspect ) {\r\n vec2 res = i.xy / i.w;\r\n res.x *= aspect;\r\n return res;\r\n }\r\n #else\r\n attribute vec3 grl_slopes;\r\n attribute float grl_counters;\r\n #endif\r\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_VERTEX_UPDATE_POSITION: `\r\n #ifdef GREASED_LINE_CAMERA_FACING\r\n vec3 grlPositionOffset = grl_offsets;\r\n positionUpdated += grlPositionOffset;\r\n #else\r\n positionUpdated = (positionUpdated + grl_offsets) + (grl_slopes * grl_widths);\r\n #endif\r\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_VERTEX_MAIN_END: `\r\n grlColorPointer = grl_colorPointers;\r\n\r\n #ifdef GREASED_LINE_CAMERA_FACING\r\n\r\n float grlAspect = grl_aspect_resolution_lineWidth.x;\r\n float grlBaseWidth = grl_aspect_resolution_lineWidth.w;\r\n\r\n\r\n vec3 grlPrevious = grl_previousAndSide.xyz;\r\n float grlSide = grl_previousAndSide.w;\r\n\r\n vec3 grlNext = grl_nextAndCounters.xyz;\r\n grlCounters = grl_nextAndCounters.w;\r\n\r\n mat4 grlMatrix = viewProjection * finalWorld;\r\n vec4 grlFinalPosition = grlMatrix * vec4( positionUpdated , 1.0 );\r\n vec4 grlPrevPos = grlMatrix * vec4( grlPrevious + grlPositionOffset, 1.0 );\r\n vec4 grlNextPos = grlMatrix * vec4( grlNext + grlPositionOffset, 1.0 );\r\n\r\n vec2 grlCurrentP = grlFix( grlFinalPosition, grlAspect );\r\n vec2 grlPrevP = grlFix( grlPrevPos, grlAspect );\r\n vec2 grlNextP = grlFix( grlNextPos, grlAspect );\r\n\r\n float grlWidth = grlBaseWidth * grl_widths;\r\n\r\n vec2 grlDir;\r\n if( grlNextP == grlCurrentP ) grlDir = normalize( grlCurrentP - grlPrevP );\r\n else if( grlPrevP == grlCurrentP ) grlDir = normalize( grlNextP - grlCurrentP );\r\n else {\r\n vec2 grlDir1 = normalize( grlCurrentP - grlPrevP );\r\n vec2 grlDir2 = normalize( grlNextP - grlCurrentP );\r\n grlDir = normalize( grlDir1 + grlDir2 );\r\n }\r\n vec4 grlNormal = vec4( -grlDir.y, grlDir.x, 0., 1. );\r\n #ifdef GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM\r\n grlNormal.xy *= -.5 * grlWidth;\r\n #else\r\n grlNormal.xy *= .5 * grlWidth;\r\n #endif\r\n\r\n grlNormal *= grl_projection;\r\n\r\n #ifdef GREASED_LINE_SIZE_ATTENUATION\r\n grlNormal.xy *= grlFinalPosition.w;\r\n grlNormal.xy /= ( vec4( grl_aspect_resolution_lineWidth.yz, 0., 1. ) * grl_projection ).xy;\r\n #endif\r\n\r\n grlFinalPosition.xy += grlNormal.xy * grlSide;\r\n gl_Position = grlFinalPosition;\r\n\r\n vPositionW = vec3(grlFinalPosition);\r\n #else\r\n grlCounters = grl_counters;\r\n #endif\r\n `,\n };\n this._cameraFacing && (obj[\"!gl_Position\\\\=viewProjection\\\\*worldPos;\"] = \"//\"); // not needed for camera facing GRL\n return obj;\n }\n if (shaderType === \"fragment\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_DEFINITIONS: `\r\n varying float grlCounters;\r\n varying float grlColorPointer;\r\n uniform sampler2D grl_colors;\r\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_MAIN_END: `\r\n float grlColorMode = grl_colorMode_visibility_colorsWidth_useColors.x;\r\n float grlVisibility = grl_colorMode_visibility_colorsWidth_useColors.y;\r\n float grlColorsWidth = grl_colorMode_visibility_colorsWidth_useColors.z;\r\n float grlUseColors = grl_colorMode_visibility_colorsWidth_useColors.w;\r\n\r\n float grlUseDash = grl_dashOptions.x;\r\n float grlDashArray = grl_dashOptions.y;\r\n float grlDashOffset = grl_dashOptions.z;\r\n float grlDashRatio = grl_dashOptions.w;\r\n\r\n gl_FragColor.a *= step(grlCounters, grlVisibility);\r\n if( gl_FragColor.a == 0. ) discard;\r\n\r\n if(grlUseDash == 1.){\r\n gl_FragColor.a *= ceil(mod(grlCounters + grlDashOffset, grlDashArray) - (grlDashArray * grlDashRatio));\r\n if (gl_FragColor.a == 0.) discard;\r\n }\r\n\r\n #ifdef GREASED_LINE_HAS_COLOR\r\n if (grlColorMode == ${0 /* GreasedLineMeshColorMode.COLOR_MODE_SET */}.) {\r\n gl_FragColor.rgb = grl_singleColor;\r\n } else if (grlColorMode == ${1 /* GreasedLineMeshColorMode.COLOR_MODE_ADD */}.) {\r\n gl_FragColor.rgb += grl_singleColor;\r\n } else if (grlColorMode == ${2 /* GreasedLineMeshColorMode.COLOR_MODE_MULTIPLY */}.) {\r\n gl_FragColor.rgb *= grl_singleColor;\r\n }\r\n #else\r\n if (grlUseColors == 1.) {\r\n #ifdef GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE\r\n vec4 grlColor = texture2D(grl_colors, vec2(grlCounters, 0.), 0.);\r\n #else\r\n vec2 lookup = vec2(fract(grlColorPointer / grl_textureSize.x), 1.0 - floor(grlColorPointer / grl_textureSize.x) / max(grl_textureSize.y - 1.0, 1.0));\r\n vec4 grlColor = texture2D(grl_colors, lookup, 0.0);\r\n #endif\r\n if (grlColorMode == ${0 /* GreasedLineMeshColorMode.COLOR_MODE_SET */}.) {\r\n gl_FragColor = grlColor;\r\n } else if (grlColorMode == ${1 /* GreasedLineMeshColorMode.COLOR_MODE_ADD */}.) {\r\n gl_FragColor += grlColor;\r\n } else if (grlColorMode == ${2 /* GreasedLineMeshColorMode.COLOR_MODE_MULTIPLY */}.) {\r\n gl_FragColor *= grlColor;\r\n }\r\n }\r\n #endif\r\n\r\n `,\n };\n }\n return null;\n }\n /**\n * Disposes the plugin material.\n */\n dispose() {\n this.colorsTexture?.dispose();\n super.dispose();\n }\n /**\n * Returns the colors used to colorize the line\n */\n get colors() {\n return this._colors;\n }\n /**\n * Sets the colors used to colorize the line\n */\n set colors(value) {\n this.setColors(value);\n }\n /**\n * Creates or updates the colors texture\n * @param colors color table RGBA\n * @param lazy if lazy, the colors are not updated\n * @param forceNewTexture force creation of a new texture\n */\n setColors(colors, lazy = false, forceNewTexture = false) {\n const origColorsCount = this._colors?.length ?? 0;\n this._colors = colors;\n if (colors === null || colors.length === 0) {\n this.colorsTexture?.dispose();\n return;\n }\n if (lazy && !forceNewTexture) {\n return;\n }\n if (this.colorsTexture && origColorsCount === colors.length && !forceNewTexture) {\n const colorArray = GreasedLineTools.Color3toRGBAUint8(colors);\n this.colorsTexture.update(colorArray);\n }\n else {\n this.colorsTexture?.dispose();\n this.colorsTexture = GreasedLineTools.CreateColorsTexture(`${this._material.name}-colors-texture`, colors, this.colorsSampling, this._scene);\n }\n }\n /**\n * Updates the material. Use when material created in lazy mode.\n */\n updateLazy() {\n if (this._colors) {\n this.setColors(this._colors, false, true);\n }\n }\n /**\n * Gets the number of dashes in the line\n */\n get dashCount() {\n return this._dashCount;\n }\n /**\n * Sets the number of dashes in the line\n * @param value dash\n */\n set dashCount(value) {\n this._dashCount = value;\n this._dashArray = 1 / value;\n }\n /**\n * If set to true the line will be rendered always with the same width regardless how far it is located from the camera.\n * Not supported for non camera facing lines.\n */\n get sizeAttenuation() {\n return this._sizeAttenuation;\n }\n /**\n * Turn on/off size attenuation of the width option and widths array.\n * Not supported for non camera facing lines.\n * @param value If set to true the line will be rendered always with the same width regardless how far it is located from the camera.\n */\n set sizeAttenuation(value) {\n this._sizeAttenuation = value;\n this.markAllDefinesAsDirty();\n }\n /**\n * Gets the color of the line\n */\n get color() {\n return this._color;\n }\n /**\n * Sets the color of the line\n * @param value Color3 or null to clear the color. You need to clear the color if you use colors and useColors = true\n */\n set color(value) {\n this.setColor(value);\n }\n /**\n * Sets the color of the line. If set the whole line will be mixed with this color according to the colorMode option.\n * @param value color\n * @param doNotMarkDirty if true, the material will not be marked as dirty\n */\n setColor(value, doNotMarkDirty = false) {\n if ((this._color === null && value !== null) || (this._color !== null && value === null)) {\n this._color = value;\n !doNotMarkDirty && this.markAllDefinesAsDirty();\n }\n else {\n this._color = value;\n }\n }\n /**\n * Gets the color distributiopn type\n */\n get colorsDistributionType() {\n return this._colorsDistributionType;\n }\n /**\n * Sets the color distribution type\n * @see GreasedLineMeshColorDistributionType\n * @param value color distribution type\n */\n set colorsDistributionType(value) {\n this._colorsDistributionType = value;\n this.markAllDefinesAsDirty();\n }\n /**\n * Gets the resolution\n */\n get resolution() {\n return this._resolution;\n }\n /**\n * Sets the resolution\n * @param value resolution of the screen for GreasedLine\n */\n set resolution(value) {\n this._aspect = value.x / value.y;\n this._resolution = value;\n }\n /**\n * Serializes this plugin material\n * @returns serializationObjec\n */\n serialize() {\n const serializationObject = super.serialize();\n const greasedLineMaterialOptions = {\n colorDistributionType: this._colorsDistributionType,\n colorsSampling: this.colorsSampling,\n colorMode: this.colorMode,\n dashCount: this._dashCount,\n dashOffset: this.dashOffset,\n dashRatio: this.dashRatio,\n resolution: this._resolution,\n sizeAttenuation: this._sizeAttenuation,\n useColors: this.useColors,\n useDash: this.useDash,\n visibility: this.visibility,\n width: this.width,\n };\n this._colors && (greasedLineMaterialOptions.colors = this._colors);\n this._color && (greasedLineMaterialOptions.color = this._color);\n serializationObject.greasedLineMaterialOptions = greasedLineMaterialOptions;\n return serializationObject;\n }\n /**\n * Parses a serialized objects\n * @param source serialized object\n * @param scene scene\n * @param rootUrl root url for textures\n */\n parse(source, scene, rootUrl) {\n super.parse(source, scene, rootUrl);\n const greasedLineMaterialOptions = source.greasedLineMaterialOptions;\n this.colorsTexture?.dispose();\n greasedLineMaterialOptions.color && this.setColor(greasedLineMaterialOptions.color, true);\n greasedLineMaterialOptions.colorDistributionType && (this.colorsDistributionType = greasedLineMaterialOptions.colorDistributionType);\n greasedLineMaterialOptions.colors && (this.colors = greasedLineMaterialOptions.colors);\n greasedLineMaterialOptions.colorsSampling && (this.colorsSampling = greasedLineMaterialOptions.colorsSampling);\n greasedLineMaterialOptions.colorMode && (this.colorMode = greasedLineMaterialOptions.colorMode);\n greasedLineMaterialOptions.useColors && (this.useColors = greasedLineMaterialOptions.useColors);\n greasedLineMaterialOptions.visibility && (this.visibility = greasedLineMaterialOptions.visibility);\n greasedLineMaterialOptions.useDash && (this.useDash = greasedLineMaterialOptions.useDash);\n greasedLineMaterialOptions.dashCount && (this.dashCount = greasedLineMaterialOptions.dashCount);\n greasedLineMaterialOptions.dashRatio && (this.dashRatio = greasedLineMaterialOptions.dashRatio);\n greasedLineMaterialOptions.dashOffset && (this.dashOffset = greasedLineMaterialOptions.dashOffset);\n greasedLineMaterialOptions.width && (this.width = greasedLineMaterialOptions.width);\n greasedLineMaterialOptions.sizeAttenuation && (this.sizeAttenuation = greasedLineMaterialOptions.sizeAttenuation);\n greasedLineMaterialOptions.resolution && (this.resolution = greasedLineMaterialOptions.resolution);\n if (this.colors) {\n this.colorsTexture = GreasedLineTools.CreateColorsTexture(`${this._material.name}-colors-texture`, this.colors, this.colorsSampling, scene);\n }\n else {\n GreasedLineTools.PrepareEmptyColorsTexture(scene);\n }\n this.markAllDefinesAsDirty();\n }\n /**\n * Makes a duplicate of the current configuration into another one.\n * @param plugin define the config where to copy the info\n */\n copyTo(plugin) {\n const dest = plugin;\n dest.colorsTexture?.dispose();\n if (this._colors) {\n dest.colorsTexture = GreasedLineTools.CreateColorsTexture(`${dest._material.name}-colors-texture`, this._colors, dest.colorsSampling, this._scene);\n }\n dest.setColor(this.color, true);\n dest.colorsDistributionType = this.colorsDistributionType;\n dest.colorsSampling = this.colorsSampling;\n dest.colorMode = this.colorMode;\n dest.useColors = this.useColors;\n dest.visibility = this.visibility;\n dest.useDash = this.useDash;\n dest.dashCount = this.dashCount;\n dest.dashRatio = this.dashRatio;\n dest.dashOffset = this.dashOffset;\n dest.width = this.width;\n dest.sizeAttenuation = this.sizeAttenuation;\n dest.resolution = this.resolution;\n dest.markAllDefinesAsDirty();\n }\n}\n/**\n * Plugin name\n */\nGreasedLinePluginMaterial.GREASED_LINE_MATERIAL_NAME = \"GreasedLinePluginMaterial\";\nRegisterClass(`BABYLON.${GreasedLinePluginMaterial.GREASED_LINE_MATERIAL_NAME}`, GreasedLinePluginMaterial);\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"greasedLinePixelShader\";\nconst shader = `precision highp float;uniform sampler2D grlColors;uniform float grlUseColors;uniform float grlUseDash;uniform float grlDashArray;uniform float grlDashOffset;uniform float grlDashRatio;uniform float grlVisibility;uniform float grlColorsWidth;uniform vec2 grl_colorModeAndColorDistributionType;uniform vec3 grlColor;varying float grlCounters;varying float grlColorPointer;void main() {float grlColorMode=grl_colorModeAndColorDistributionType.x;float grlColorDistributionType=grl_colorModeAndColorDistributionType.y;gl_FragColor=vec4(grlColor,1.);gl_FragColor.a=step(grlCounters,grlVisibility);if (gl_FragColor.a==0.) discard;if( grlUseDash==1. ){gl_FragColor.a=ceil(mod(grlCounters+grlDashOffset,grlDashArray)-(grlDashArray*grlDashRatio));if (gl_FragColor.a==0.) discard;}\nif (grlUseColors==1.) {vec4 textureColor;if (grlColorDistributionType==COLOR_DISTRIBUTION_TYPE_LINE) { \ntextureColor=texture2D(grlColors,vec2(grlCounters,0.),0.);} else {textureColor=texture2D(grlColors,vec2(grlColorPointer/grlColorsWidth,0.),0.);}\nif (grlColorMode==COLOR_MODE_SET) {gl_FragColor=textureColor;} else if (grlColorMode==COLOR_MODE_ADD) {gl_FragColor+=textureColor;} else if (grlColorMode==COLOR_MODE_MULTIPLY) {gl_FragColor*=textureColor;}}}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const greasedLinePixelShader = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nimport \"./ShadersInclude/instancesDeclaration.js\";\nimport \"./ShadersInclude/instancesVertex.js\";\nconst name = \"greasedLineVertexShader\";\nconst shader = `precision highp float;\n#include\nattribute float grl_widths;attribute vec3 grl_offsets;attribute float grl_colorPointers;attribute vec3 position;uniform mat4 viewProjection;uniform mat4 projection;varying float grlCounters;varying float grlColorPointer;\n#ifdef GREASED_LINE_CAMERA_FACING\nattribute vec4 grl_nextAndCounters;attribute vec4 grl_previousAndSide;uniform vec2 grlResolution;uniform float grlAspect;uniform float grlWidth;uniform float grlSizeAttenuation;vec2 grlFix( vec4 i,float aspect ) {vec2 res=i.xy/i.w;res.x*=aspect;return res;}\n#else\nattribute vec3 grl_slopes;attribute float grl_counters;\n#endif\nvoid main() {\n#include\ngrlColorPointer=grl_colorPointers;mat4 grlMatrix=viewProjection*finalWorld ;\n#ifdef GREASED_LINE_CAMERA_FACING\nfloat grlBaseWidth=grlWidth;vec3 grlPrevious=grl_previousAndSide.xyz;float grlSide=grl_previousAndSide.w;vec3 grlNext=grl_nextAndCounters.xyz;grlCounters=grl_nextAndCounters.w;vec3 grlPositionOffset=grl_offsets;vec4 grlFinalPosition=grlMatrix*vec4( position+grlPositionOffset ,1.0 );vec4 grlPrevPos=grlMatrix*vec4( grlPrevious+grlPositionOffset,1.0 );vec4 grlNextPos=grlMatrix*vec4( grlNext+grlPositionOffset,1.0 );vec2 grlCurrentP=grlFix( grlFinalPosition,grlAspect );vec2 grlPrevP=grlFix( grlPrevPos,grlAspect );vec2 grlNextP=grlFix( grlNextPos,grlAspect );float grlWidth=grlBaseWidth*grl_widths;vec2 grlDir;if( grlNextP==grlCurrentP ) grlDir=normalize( grlCurrentP-grlPrevP );else if( grlPrevP==grlCurrentP ) grlDir=normalize( grlNextP-grlCurrentP );else {vec2 grlDir1=normalize( grlCurrentP-grlPrevP );vec2 grlDir2=normalize( grlNextP-grlCurrentP );grlDir=normalize( grlDir1+grlDir2 );}\nvec4 grlNormal=vec4( -grlDir.y,grlDir.x,0.,1. );\n#ifdef GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM\ngrlNormal.xy*=-.5*grlWidth;\n#else\ngrlNormal.xy*=.5*grlWidth;\n#endif\ngrlNormal*=projection;if (grlSizeAttenuation==1.) {grlNormal.xy*=grlFinalPosition.w;grlNormal.xy/=( vec4( grlResolution,0.,1. )*projection ).xy;}\ngrlFinalPosition.xy+=grlNormal.xy*grlSide;gl_Position=grlFinalPosition;\n#else\ngrlCounters=grl_counters;vec4 grlFinalPosition=grlMatrix*vec4( (position+grl_offsets)+grl_slopes*grl_widths ,1.0 ) ;gl_Position=grlFinalPosition;\n#endif\n}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const greasedLineVertexShader = { name, shader };\n","import { RawTexture } from \"../Textures/rawTexture.js\";\nimport { ShaderMaterial } from \"../shaderMaterial.js\";\nimport { Color3 } from \"../../Maths/math.color.js\";\nimport { Vector2 } from \"../../Maths/math.vector.js\";\nimport \"../../Shaders/greasedLine.fragment.js\";\nimport \"../../Shaders/greasedLine.vertex.js\";\nimport { GreasedLineTools } from \"../../Misc/greasedLineTools.js\";\nimport { GreasedLineMaterialDefaults } from \"./greasedLineMaterialDefaults.js\";\n/**\n * GreasedLineSimpleMaterial\n */\nexport class GreasedLineSimpleMaterial extends ShaderMaterial {\n /**\n * GreasedLineSimple material constructor\n * @param name material name\n * @param scene the scene\n * @param options material options\n */\n constructor(name, scene, options) {\n const defines = [\n `COLOR_DISTRIBUTION_TYPE_LINE ${1 /* GreasedLineMeshColorDistributionType.COLOR_DISTRIBUTION_TYPE_LINE */}.`,\n `COLOR_DISTRIBUTION_TYPE_SEGMENT ${0 /* GreasedLineMeshColorDistributionType.COLOR_DISTRIBUTION_TYPE_SEGMENT */}.`,\n `COLOR_MODE_SET ${0 /* GreasedLineMeshColorMode.COLOR_MODE_SET */}.`,\n `COLOR_MODE_ADD ${1 /* GreasedLineMeshColorMode.COLOR_MODE_ADD */}.`,\n `COLOR_MODE_MULTIPLY ${2 /* GreasedLineMeshColorMode.COLOR_MODE_MULTIPLY */}.`,\n ];\n const attributes = [\"position\", \"grl_widths\", \"grl_offsets\", \"grl_colorPointers\"];\n scene.useRightHandedSystem && defines.push(\"GREASED_LINE_RIGHT_HANDED_COORDINATE_SYSTEM\");\n if (options.cameraFacing) {\n defines.push(\"GREASED_LINE_CAMERA_FACING\");\n attributes.push(\"grl_previousAndSide\", \"grl_nextAndCounters\");\n }\n else {\n attributes.push(\"grl_slopes\");\n attributes.push(\"grl_counters\");\n }\n super(name, scene, {\n vertex: \"greasedLine\",\n fragment: \"greasedLine\",\n }, {\n attributes,\n uniforms: [\n \"world\",\n \"viewProjection\",\n \"view\",\n \"projection\",\n \"grlColorsWidth\",\n \"grlUseColors\",\n \"grlWidth\",\n \"grlColor\",\n \"grl_colorModeAndColorDistributionType\",\n \"grlResolution\",\n \"grlAspect\",\n \"grlAizeAttenuation\",\n \"grlDashArray\",\n \"grlDashOffset\",\n \"grlDashRatio\",\n \"grlUseDash\",\n \"grlVisibility\",\n ],\n samplers: [\"grlColors\"],\n defines,\n });\n this._color = Color3.White();\n this._colorsDistributionType = 0 /* GreasedLineMeshColorDistributionType.COLOR_DISTRIBUTION_TYPE_SEGMENT */;\n this._colorsTexture = null;\n options = options || {\n color: GreasedLineMaterialDefaults.DEFAULT_COLOR,\n };\n const engine = scene.getEngine();\n this.visibility = options.visibility ?? 1;\n this.useDash = options.useDash ?? false;\n this.dashRatio = options.dashRatio ?? 0.5;\n this.dashOffset = options.dashOffset ?? 0;\n this.dashCount = options.dashCount ?? 1; // calculate the _dashArray value, call the setter\n this.width = options.width\n ? options.width\n : options.sizeAttenuation && options.cameraFacing\n ? GreasedLineMaterialDefaults.DEFAULT_WIDTH_ATTENUATED\n : GreasedLineMaterialDefaults.DEFAULT_WIDTH;\n this.sizeAttenuation = options.sizeAttenuation ?? false;\n this.color = options.color ?? Color3.White();\n this.useColors = options.useColors ?? false;\n this.colorsDistributionType = options.colorDistributionType ?? 0 /* GreasedLineMeshColorDistributionType.COLOR_DISTRIBUTION_TYPE_SEGMENT */;\n this.colorsSampling = options.colorsSampling ?? RawTexture.NEAREST_NEAREST;\n this.colorMode = options.colorMode ?? 0 /* GreasedLineMeshColorMode.COLOR_MODE_SET */;\n this._colors = options.colors ?? null;\n this._cameraFacing = options.cameraFacing ?? true;\n this.resolution = options.resolution ?? new Vector2(engine.getRenderWidth(), engine.getRenderHeight()); // calculate aspect call the setter\n if (options.colorsTexture) {\n this.colorsTexture = options.colorsTexture;\n }\n else {\n this.colorsTexture = GreasedLineTools.PrepareEmptyColorsTexture(scene);\n }\n if (this._colors) {\n if (this.useColors) {\n this.colorsTexture = GreasedLineTools.CreateColorsTexture(`${this.name}-colors-texture`, this._colors, this.colorsSampling, scene);\n }\n }\n engine.onDisposeObservable.add(() => {\n GreasedLineTools.DisposeEmptyColorsTexture();\n });\n }\n /**\n * Disposes the plugin material.\n */\n dispose() {\n this._colorsTexture?.dispose();\n super.dispose();\n }\n _setColorModeAndColorDistributionType() {\n this.setVector2(\"grl_colorModeAndColorDistributionType\", new Vector2(this._colorMode, this._colorsDistributionType));\n }\n /**\n * Updates the material. Use when material created in lazy mode.\n */\n updateLazy() {\n if (this._colors) {\n this.setColors(this._colors, false, true);\n }\n }\n /**\n * Returns the colors used to colorize the line\n */\n get colors() {\n return this._colors;\n }\n /**\n * Sets the colors used to colorize the line\n */\n set colors(value) {\n this.setColors(value);\n }\n /**\n * Creates or updates the colors texture\n * @param colors color table RGBA\n * @param lazy if lazy, the colors are not updated\n * @param forceNewTexture force creation of a new texture\n */\n setColors(colors, lazy = false, forceNewTexture = false) {\n const origColorsCount = this._colors?.length ?? 0;\n this._colors = colors;\n if (colors === null || colors.length === 0) {\n this._colorsTexture?.dispose();\n return;\n }\n if (lazy && !forceNewTexture) {\n return;\n }\n if (this._colorsTexture && origColorsCount === colors.length && !forceNewTexture) {\n const colorArray = GreasedLineTools.Color3toRGBAUint8(colors);\n this._colorsTexture.update(colorArray);\n }\n else {\n this._colorsTexture?.dispose();\n this.colorsTexture = GreasedLineTools.CreateColorsTexture(`${this.name}-colors-texture`, colors, this.colorsSampling, this.getScene());\n }\n }\n /**\n * Gets the colors texture\n */\n get colorsTexture() {\n return this._colorsTexture ?? null;\n }\n /**\n * Sets the colorsTexture\n */\n set colorsTexture(value) {\n this._colorsTexture = value;\n this.setFloat(\"grlColorsWidth\", this._colorsTexture.getSize().width);\n this.setTexture(\"grlColors\", this._colorsTexture);\n }\n /**\n * Line base width. At each point the line width is calculated by widths[pointIndex] * width\n */\n get width() {\n return this._width;\n }\n /**\n * Line base width. At each point the line width is calculated by widths[pointIndex] * width\n */\n set width(value) {\n this._width = value;\n this.setFloat(\"grlWidth\", value);\n }\n /**\n * Whether to use the colors option to colorize the line\n */\n get useColors() {\n return this._useColors;\n }\n set useColors(value) {\n this._useColors = value;\n this.setFloat(\"grlUseColors\", GreasedLineTools.BooleanToNumber(value));\n }\n /**\n * The type of sampling of the colors texture. The values are the same when using with textures.\n */\n get colorsSampling() {\n return this._colorsSampling;\n }\n /**\n * The type of sampling of the colors texture. The values are the same when using with textures.\n */\n set colorsSampling(value) {\n this._colorsSampling = value;\n }\n /**\n * Normalized value of how much of the line will be visible\n * 0 - 0% of the line will be visible\n * 1 - 100% of the line will be visible\n */\n get visibility() {\n return this._visibility;\n }\n set visibility(value) {\n this._visibility = value;\n this.setFloat(\"grlVisibility\", value);\n }\n /**\n * Turns on/off dash mode\n */\n get useDash() {\n return this._useDash;\n }\n /**\n * Turns on/off dash mode\n */\n set useDash(value) {\n this._useDash = value;\n this.setFloat(\"grlUseDash\", GreasedLineTools.BooleanToNumber(value));\n }\n /**\n * Gets the dash offset\n */\n get dashOffset() {\n return this._dashOffset;\n }\n /**\n * Sets the dash offset\n */\n set dashOffset(value) {\n this._dashOffset = value;\n this.setFloat(\"grlDashOffset\", value);\n }\n /**\n * Length of the dash. 0 to 1. 0.5 means half empty, half drawn.\n */\n get dashRatio() {\n return this._dashRatio;\n }\n /**\n * Length of the dash. 0 to 1. 0.5 means half empty, half drawn.\n */\n set dashRatio(value) {\n this._dashRatio = value;\n this.setFloat(\"grlDashRatio\", value);\n }\n /**\n * Gets the number of dashes in the line\n */\n get dashCount() {\n return this._dashCount;\n }\n /**\n * Sets the number of dashes in the line\n * @param value dash\n */\n set dashCount(value) {\n this._dashCount = value;\n this._dashArray = 1 / value;\n this.setFloat(\"grlDashArray\", this._dashArray);\n }\n /**\n * False means 1 unit in width = 1 unit on scene, true means 1 unit in width is reduced on the screen to make better looking lines\n */\n get sizeAttenuation() {\n return this._sizeAttenuation;\n }\n /**\n * Turn on/off attenuation of the width option and widths array.\n * @param value false means 1 unit in width = 1 unit on scene, true means 1 unit in width is reduced on the screen to make better looking lines\n */\n set sizeAttenuation(value) {\n this._sizeAttenuation = value;\n this.setFloat(\"grlSizeAttenuation\", GreasedLineTools.BooleanToNumber(value));\n }\n /**\n * Gets the color of the line\n */\n get color() {\n return this._color;\n }\n /**\n * Sets the color of the line\n * @param value Color3\n */\n set color(value) {\n this.setColor(value);\n }\n /**\n * Sets the color of the line. If set the whole line will be mixed with this color according to the colorMode option.\n * The simple material always needs a color to be set. If you set it to null it will set the color to the default color (GreasedLineSimpleMaterial.DEFAULT_COLOR).\n * @param value color\n */\n setColor(value) {\n value = value ?? GreasedLineMaterialDefaults.DEFAULT_COLOR;\n this._color = value;\n this.setColor3(\"grlColor\", value);\n }\n /**\n * Gets the color distributiopn type\n */\n get colorsDistributionType() {\n return this._colorsDistributionType;\n }\n /**\n * Sets the color distribution type\n * @see GreasedLineMeshColorDistributionType\n * @param value color distribution type\n */\n set colorsDistributionType(value) {\n this._colorsDistributionType = value;\n this._setColorModeAndColorDistributionType();\n }\n /**\n * Gets the mixing mode of the color and colors paramaters. Default value is GreasedLineMeshColorMode.SET.\n * MATERIAL_TYPE_SIMPLE mixes the color and colors of the greased line material.\n * @see GreasedLineMeshColorMode\n */\n get colorMode() {\n return this._colorMode;\n }\n /**\n * Sets the mixing mode of the color and colors paramaters. Default value is GreasedLineMeshColorMode.SET.\n * MATERIAL_TYPE_SIMPLE mixes the color and colors of the greased line material.\n * @see GreasedLineMeshColorMode\n */\n set colorMode(value) {\n this._colorMode = value;\n this._setColorModeAndColorDistributionType();\n }\n /**\n * Gets the resolution\n */\n get resolution() {\n return this._resolution;\n }\n /**\n * Sets the resolution\n * @param value resolution of the screen for GreasedLine\n */\n set resolution(value) {\n this._resolution = value;\n this.setVector2(\"grlResolution\", value);\n this.setFloat(\"grlAspect\", value.x / value.y);\n }\n /**\n * Serializes this plugin material\n * @returns serializationObjec\n */\n serialize() {\n const serializationObject = super.serialize();\n const greasedLineMaterialOptions = {\n colorDistributionType: this._colorsDistributionType,\n colorsSampling: this._colorsSampling,\n colorMode: this._colorMode,\n color: this._color,\n dashCount: this._dashCount,\n dashOffset: this._dashOffset,\n dashRatio: this._dashRatio,\n resolution: this._resolution,\n sizeAttenuation: this._sizeAttenuation,\n useColors: this._useColors,\n useDash: this._useDash,\n visibility: this._visibility,\n width: this._width,\n cameraFacing: this._cameraFacing,\n };\n this._colors && (greasedLineMaterialOptions.colors = this._colors);\n serializationObject.greasedLineMaterialOptions = greasedLineMaterialOptions;\n return serializationObject;\n }\n /**\n * Parses a serialized objects\n * @param source serialized object\n * @param scene scene\n * @param _rootUrl root url for textures\n */\n parse(source, scene, _rootUrl) {\n // TODO: super.parse?\n const greasedLineMaterialOptions = source.greasedLineMaterialOptions;\n this._colorsTexture?.dispose();\n greasedLineMaterialOptions.color && (this.color = greasedLineMaterialOptions.color);\n greasedLineMaterialOptions.colorDistributionType && (this.colorsDistributionType = greasedLineMaterialOptions.colorDistributionType);\n greasedLineMaterialOptions.colorsSampling && (this.colorsSampling = greasedLineMaterialOptions.colorsSampling);\n greasedLineMaterialOptions.colorMode && (this.colorMode = greasedLineMaterialOptions.colorMode);\n greasedLineMaterialOptions.useColors && (this.useColors = greasedLineMaterialOptions.useColors);\n greasedLineMaterialOptions.visibility && (this.visibility = greasedLineMaterialOptions.visibility);\n greasedLineMaterialOptions.useDash && (this.useDash = greasedLineMaterialOptions.useDash);\n greasedLineMaterialOptions.dashCount && (this.dashCount = greasedLineMaterialOptions.dashCount);\n greasedLineMaterialOptions.dashRatio && (this.dashRatio = greasedLineMaterialOptions.dashRatio);\n greasedLineMaterialOptions.dashOffset && (this.dashOffset = greasedLineMaterialOptions.dashOffset);\n greasedLineMaterialOptions.width && (this.width = greasedLineMaterialOptions.width);\n greasedLineMaterialOptions.sizeAttenuation && (this.sizeAttenuation = greasedLineMaterialOptions.sizeAttenuation);\n greasedLineMaterialOptions.resolution && (this.resolution = greasedLineMaterialOptions.resolution);\n if (greasedLineMaterialOptions.colors) {\n this.colorsTexture = GreasedLineTools.CreateColorsTexture(`${this.name}-colors-texture`, greasedLineMaterialOptions.colors, this.colorsSampling, this.getScene());\n }\n else {\n this.colorsTexture = GreasedLineTools.PrepareEmptyColorsTexture(scene);\n }\n this._cameraFacing = greasedLineMaterialOptions.cameraFacing ?? true;\n this.setDefine(\"GREASED_LINE_CAMERA_FACING\", this._cameraFacing);\n }\n}\n","import { __decorate } from \"../tslib.es6.js\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { MaterialPluginBase } from \"./materialPluginBase.js\";\nimport { MaterialDefines } from \"./materialDefines.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { Color3 } from \"../Maths/math.js\";\nimport { Logger } from \"../Misc/logger.js\";\nimport { expandToProperty, serialize, serializeAsColor3 } from \"../Misc/decorators.js\";\nconst vertexDefinitions = `#if defined(DBG_ENABLED)\r\nattribute float dbg_initialPass;\r\nvarying vec3 dbg_vBarycentric;\r\nflat varying vec3 dbg_vVertexWorldPos;\r\nflat varying float dbg_vPass;\r\n#endif`;\nconst vertexDefinitionsWebGPU = `#if defined(DBG_ENABLED)\r\nattribute dbg_initialPass: f32;\r\nvarying dbg_vBarycentric: vec3f;\r\nvarying dbg_vVertexWorldPos: vec3f;\r\nvarying dbg_vPass: f32;\r\n#endif`;\nconst vertexMainEnd = `#if defined(DBG_ENABLED)\r\nfloat dbg_vertexIndex = mod(float(gl_VertexID), 3.);\r\nif (dbg_vertexIndex == 0.0) { \r\n dbg_vBarycentric = vec3(1.,0.,0.); \r\n}\r\nelse if (dbg_vertexIndex == 1.0) { \r\n dbg_vBarycentric = vec3(0.,1.,0.); \r\n}\r\nelse { \r\n dbg_vBarycentric = vec3(0.,0.,1.); \r\n}\r\n\r\ndbg_vVertexWorldPos = vPositionW;\r\ndbg_vPass = dbg_initialPass;\r\n#endif`;\nconst vertexMainEndWebGPU = `#if defined(DBG_ENABLED)\r\nvar dbg_vertexIndex = f32(input.vertexIndex) % 3.;\r\nif (dbg_vertexIndex == 0.0) { \r\n vertexOutputs.dbg_vBarycentric = vec3f(1.,0.,0.); \r\n}\r\nelse if (dbg_vertexIndex == 1.0) { \r\n vertexOutputs.dbg_vBarycentric = vec3f(0.,1.,0.); \r\n}\r\nelse { \r\n vertexOutputs.dbg_vBarycentric = vec3f(0.,0.,1.); \r\n}\r\n\r\nvertexOutputs.dbg_vVertexWorldPos = vertexOutputs.vPositionW;\r\nvertexOutputs.dbg_vPass = input.dbg_initialPass;\r\n#endif`;\nconst fragmentUniforms = `#if defined(DBG_ENABLED)\r\nuniform vec3 dbg_shadedDiffuseColor;\r\nuniform vec4 dbg_shadedSpecularColorPower;\r\nuniform vec3 dbg_thicknessRadiusScale;\r\n\r\n#if DBG_MODE == 2 || DBG_MODE == 3\r\n uniform vec3 dbg_vertexColor;\r\n#endif\r\n\r\n#if DBG_MODE == 1\r\n uniform vec3 dbg_wireframeTrianglesColor;\r\n#elif DBG_MODE == 3\r\n uniform vec3 dbg_wireframeVerticesColor;\r\n#elif DBG_MODE == 4 || DBG_MODE == 5\r\n uniform vec3 dbg_uvPrimaryColor;\r\n uniform vec3 dbg_uvSecondaryColor;\r\n#elif DBG_MODE == 7\r\n uniform vec3 dbg_materialColor;\r\n#endif\r\n#endif`;\nconst fragmentUniformsWebGPU = `#if defined(DBG_ENABLED)\r\nuniform dbg_shadedDiffuseColor: vec3f;\r\nuniform dbg_shadedSpecularColorPower: vec4f;\r\nuniform dbg_thicknessRadiusScale: vec3f;\r\n\r\n#if DBG_MODE == 2 || DBG_MODE == 3\r\n uniform dbg_vertexColor: vec3f;\r\n#endif\r\n\r\n#if DBG_MODE == 1\r\n uniform dbg_wireframeTrianglesColor: vec3f;\r\n#elif DBG_MODE == 3\r\n uniform dbg_wireframeVerticesColor: vec3f;\r\n#elif DBG_MODE == 4 || DBG_MODE == 5\r\n uniform dbg_uvPrimaryColor: vec3f;\r\n uniform dbg_uvSecondaryColor: vec3f;\r\n#elif DBG_MODE == 7\r\n uniform dbg_materialColor: vec3f;\r\n#endif\r\n#endif`;\nconst fragmentDefinitions = `#if defined(DBG_ENABLED)\r\nvarying vec3 dbg_vBarycentric;\r\nflat varying vec3 dbg_vVertexWorldPos;\r\nflat varying float dbg_vPass;\r\n\r\n#if !defined(DBG_MULTIPLY)\r\n vec3 dbg_applyShading(vec3 color) {\r\n vec3 N = vNormalW.xyz;\r\n vec3 L = normalize(vEyePosition.xyz - vPositionW.xyz);\r\n vec3 H = normalize(L + L);\r\n float LdotN = clamp(dot(L,N), 0., 1.);\r\n float HdotN = clamp(dot(H,N), 0., 1.);\r\n float specTerm = pow(HdotN, dbg_shadedSpecularColorPower.w);\r\n color *= (LdotN / PI);\r\n color += dbg_shadedSpecularColorPower.rgb * (specTerm / PI);\r\n return color;\r\n }\r\n#endif\r\n\r\n#if DBG_MODE == 1 || DBG_MODE == 3\r\n float dbg_edgeFactor() {\r\n vec3 d = fwidth(dbg_vBarycentric);\r\n vec3 a3 = smoothstep(vec3(0.), d * dbg_thicknessRadiusScale.x, dbg_vBarycentric);\r\n return min(min(a3.x, a3.y), a3.z);\r\n }\r\n#endif\r\n\r\n#if DBG_MODE == 2 || DBG_MODE == 3\r\n float dbg_cornerFactor() {\r\n vec3 worldPos = vPositionW;\r\n float dist = length(worldPos - dbg_vVertexWorldPos);\r\n float camDist = length(worldPos - vEyePosition.xyz);\r\n float d = sqrt(camDist) * .001;\r\n return smoothstep((dbg_thicknessRadiusScale.y * d), ((dbg_thicknessRadiusScale.y * 1.01) * d), dist);\r\n }\r\n#endif\r\n\r\n#if (DBG_MODE == 4 && defined(UV1)) || (DBG_MODE == 5 && defined(UV2))\r\n float dbg_checkerboardFactor(vec2 uv) {\r\n vec2 f = fract(uv * dbg_thicknessRadiusScale.z);\r\n f -= .5;\r\n return (f.x * f.y) > 0. ? 1. : 0.;\r\n }\r\n#endif\r\n#endif`;\nconst fragmentDefinitionsWebGPU = `#if defined(DBG_ENABLED)\r\nvarying dbg_vBarycentric: vec3f;\r\nvarying dbg_vVertexWorldPos: vec3f;\r\nvarying dbg_vPass: f32;\r\n\r\n#if !defined(DBG_MULTIPLY)\r\n fn dbg_applyShading(color: vec3f) -> vec3f {\r\n var N = fragmentInputs.vNormalW.xyz;\r\n var L = normalize(scene.vEyePosition.xyz - fragmentInputs.vPositionW.xyz);\r\n var H = normalize(L + L);\r\n var LdotN = clamp(dot(L,N), 0., 1.);\r\n var HdotN = clamp(dot(H,N), 0., 1.);\r\n var specTerm = pow(HdotN, uniforms.dbg_shadedSpecularColorPower.w);\r\n var result = color * (LdotN / PI);\r\n result += uniforms.dbg_shadedSpecularColorPower.rgb * (specTerm / PI);\r\n return result;\r\n }\r\n#endif\r\n\r\n#if DBG_MODE == 1 || DBG_MODE == 3\r\n fn dbg_edgeFactor() -> f32 {\r\n var d = fwidth(fragmentInputs.dbg_vBarycentric);\r\n var a3 = smoothstep(vec3f(0.), d * uniforms.dbg_thicknessRadiusScale.x, fragmentInputs.dbg_vBarycentric);\r\n return min(min(a3.x, a3.y), a3.z);\r\n }\r\n#endif\r\n\r\n#if DBG_MODE == 2 || DBG_MODE == 3\r\n fn dbg_cornerFactor() -> f32 {\r\n var worldPos = fragmentInputs.vPositionW;\r\n float dist = length(worldPos - fragmentInputs.dbg_vVertexWorldPos);\r\n float camDist = length(worldPos - scene.vEyePosition.xyz);\r\n float d = sqrt(camDist) * .001;\r\n return smoothstep((uniforms.dbg_thicknessRadiusScale.y * d), ((uniforms.dbg_thicknessRadiusScale.y * 1.01) * d), dist);\r\n }\r\n#endif\r\n\r\n#if (DBG_MODE == 4 && defined(UV1)) || (DBG_MODE == 5 && defined(UV2))\r\n fn dbg_checkerboardFactor(uv: vec2f) -> f32 {\r\n var f = fract(uv * uniforms.dbg_thicknessRadiusScale.z);\r\n f -= .5;\r\n return (f.x * f.y) > 0. ? 1. : 0.;\r\n }\r\n#endif\r\n#endif`;\nconst fragmentMainEnd = `#if defined(DBG_ENABLED)\r\nvec3 dbg_color = vec3(1.);\r\n#if DBG_MODE == 1\r\n dbg_color = mix(dbg_wireframeTrianglesColor, vec3(1.), dbg_edgeFactor());\r\n#elif DBG_MODE == 2 || DBG_MODE == 3\r\n float dbg_cornerFactor = dbg_cornerFactor();\r\n if (dbg_vPass == 0. && dbg_cornerFactor == 1.) discard;\r\n dbg_color = mix(dbg_vertexColor, vec3(1.), dbg_cornerFactor);\r\n #if DBG_MODE == 3\r\n dbg_color *= mix(dbg_wireframeVerticesColor, vec3(1.), dbg_edgeFactor());\r\n #endif\r\n#elif DBG_MODE == 4 && defined(MAINUV1)\r\n dbg_color = mix(dbg_uvPrimaryColor, dbg_uvSecondaryColor, dbg_checkerboardFactor(vMainUV1));\r\n#elif DBG_MODE == 5 && defined(MAINUV2)\r\n dbg_color = mix(dbg_uvPrimaryColor, dbg_uvSecondaryColor, dbg_checkerboardFactor(vMainUV2));\r\n#elif DBG_MODE == 6 && defined(VERTEXCOLOR)\r\n dbg_color = vColor.rgb;\r\n#elif DBG_MODE == 7\r\n dbg_color = dbg_materialColor;\r\n#endif\r\n\r\n#if defined(DBG_MULTIPLY)\r\n gl_FragColor *= vec4(dbg_color, 1.);\r\n#else\r\n #if DBG_MODE != 6\r\n gl_FragColor = vec4(dbg_applyShading(dbg_shadedDiffuseColor) * dbg_color, 1.);\r\n #else\r\n gl_FragColor = vec4(dbg_color, 1.);\r\n #endif\r\n#endif\r\n#endif`;\nconst fragmentMainEndWebGPU = `#if defined(DBG_ENABLED)\r\nvar dbg_color = vec3f(1.);\r\n#if DBG_MODE == 1\r\n dbg_color = mix(uniforms.dbg_wireframeTrianglesColor, vec3f(1.), dbg_edgeFactor());\r\n#elif DBG_MODE == 2 || DBG_MODE == 3\r\n var dbg_cornerFactor = dbg_cornerFactor();\r\n if (fragmentInputs.dbg_vPass == 0. && dbg_cornerFactor == 1.) discard;\r\n dbg_color = mix(uniforms.dbg_vertexColor, vec3(1.), dbg_cornerFactor);\r\n #if DBG_MODE == 3\r\n dbg_color *= mix(uniforms.dbg_wireframeVerticesColor, vec3f(1.), dbg_edgeFactor());\r\n #endif\r\n#elif DBG_MODE == 4 && defined(MAINUV1)\r\n dbg_color = mix(uniforms.dbg_uvPrimaryColor, uniforms.dbg_uvSecondaryColor, dbg_checkerboardFactor(fragmentInputs.vMainUV1));\r\n#elif DBG_MODE == 5 && defined(MAINUV2)\r\n dbg_color = mix(uniforms.dbg_uvPrimaryColor, uniforms.dbg_uvSecondaryColor, dbg_checkerboardFactor(fragmentInputs.vMainUV2));\r\n#elif DBG_MODE == 6 && defined(VERTEXCOLOR)\r\n dbg_color = fragmentInputs.vColor.rgb;\r\n#elif DBG_MODE == 7\r\n dbg_color = uniforms.dbg_materialColor;\r\n#endif\r\n\r\n#if defined(DBG_MULTIPLY)\r\n fragmentOutputs.color *= vec4f(dbg_color, 1.);\r\n#else\r\n #if DBG_MODE != 6\r\n fragmentOutputs.color = vec4f(dbg_applyShading(dbg_shadedDiffuseColor) * dbg_color, 1.);\r\n #else\r\n fragmentOutputs.color = vec4f(dbg_color, 1.);\r\n #endif\r\n#endif\r\n#endif`;\nconst defaultMaterialColors = [\n new Color3(0.98, 0.26, 0.38),\n new Color3(0.47, 0.75, 0.3),\n new Color3(0, 0.26, 0.77),\n new Color3(0.97, 0.6, 0.76),\n new Color3(0.19, 0.63, 0.78),\n new Color3(0.98, 0.8, 0.6),\n new Color3(0.65, 0.43, 0.15),\n new Color3(0.15, 0.47, 0.22),\n new Color3(0.67, 0.71, 0.86),\n new Color3(0.09, 0.46, 0.56),\n new Color3(0.8, 0.98, 0.02),\n new Color3(0.39, 0.29, 0.13),\n new Color3(0.53, 0.63, 0.06),\n new Color3(0.95, 0.96, 0.41),\n new Color3(1, 0.72, 0.94),\n new Color3(0.63, 0.08, 0.31),\n new Color3(0.66, 0.96, 0.95),\n new Color3(0.22, 0.14, 0.19),\n new Color3(0.14, 0.65, 0.59),\n new Color3(0.93, 1, 0.68),\n new Color3(0.93, 0.14, 0.44),\n new Color3(0.47, 0.86, 0.67),\n new Color3(0.85, 0.07, 0.78),\n new Color3(0.53, 0.64, 0.98),\n new Color3(0.43, 0.37, 0.56),\n new Color3(0.71, 0.65, 0.25),\n new Color3(0.66, 0.19, 0.01),\n new Color3(0.94, 0.53, 0.12),\n new Color3(0.41, 0.44, 0.44),\n new Color3(0.24, 0.71, 0.96),\n new Color3(0.57, 0.28, 0.56),\n new Color3(0.44, 0.98, 0.42),\n];\n/**\n * Supported visualizations of MeshDebugPluginMaterial\n */\nexport var MeshDebugMode;\n(function (MeshDebugMode) {\n /**\n * Material without any mesh debug visualization\n */\n MeshDebugMode[MeshDebugMode[\"NONE\"] = 0] = \"NONE\";\n /**\n * A wireframe of the mesh\n * NOTE: For this mode to work correctly, convertToUnIndexedMesh() or MeshDebugPluginMaterial.PrepareMeshForTrianglesAndVerticesMode() must first be called on mesh.\n */\n MeshDebugMode[MeshDebugMode[\"TRIANGLES\"] = 1] = \"TRIANGLES\";\n /**\n * Points drawn over vertices of mesh\n * NOTE: For this mode to work correctly, MeshDebugPluginMaterial.PrepareMeshForTrianglesAndVerticesMode() must first be called on mesh.\n */\n MeshDebugMode[MeshDebugMode[\"VERTICES\"] = 2] = \"VERTICES\";\n /**\n * A wireframe of the mesh, with points drawn over vertices\n * NOTE: For this mode to work correctly, MeshDebugPluginMaterial.PrepareMeshForTrianglesAndVerticesMode() must first be called on mesh.\n */\n MeshDebugMode[MeshDebugMode[\"TRIANGLES_VERTICES\"] = 3] = \"TRIANGLES_VERTICES\";\n /**\n * A checkerboard grid of the mesh's UV set 0\n */\n MeshDebugMode[MeshDebugMode[\"UV0\"] = 4] = \"UV0\";\n /**\n * A checkerboard grid of the mesh's UV set 1\n */\n MeshDebugMode[MeshDebugMode[\"UV1\"] = 5] = \"UV1\";\n /**\n * The mesh's vertex colors displayed as the primary texture\n */\n MeshDebugMode[MeshDebugMode[\"VERTEXCOLORS\"] = 6] = \"VERTEXCOLORS\";\n /**\n * An arbitrary, distinguishable color to identify the material\n */\n MeshDebugMode[MeshDebugMode[\"MATERIALIDS\"] = 7] = \"MATERIALIDS\";\n})(MeshDebugMode || (MeshDebugMode = {}));\n/** @internal */\nclass MeshDebugDefines extends MaterialDefines {\n constructor() {\n super(...arguments);\n /**\n * Current mesh debug visualization.\n * Defaults to NONE.\n */\n this.DBG_MODE = 0 /* MeshDebugMode.NONE */;\n /**\n * Whether the mesh debug visualization multiplies with colors underneath.\n * Defaults to true.\n */\n this.DBG_MULTIPLY = true;\n /**\n * Whether the mesh debug plugin is enabled in the material.\n * Defaults to true.\n */\n this.DBG_ENABLED = true;\n }\n}\n/**\n * Plugin that implements various mesh debug visualizations,\n * List of available visualizations can be found in MeshDebugMode enum.\n */\nexport class MeshDebugPluginMaterial extends MaterialPluginBase {\n /** @internal */\n _markAllDefinesAsDirty() {\n this._enable(this._isEnabled);\n this.markAllDefinesAsDirty();\n }\n /**\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\n * @param shaderLanguage The shader language to use.\n * @returns true if the plugin is compatible with the shader language\n */\n isCompatible(shaderLanguage) {\n switch (shaderLanguage) {\n case 0 /* ShaderLanguage.GLSL */:\n case 1 /* ShaderLanguage.WGSL */:\n return true;\n default:\n return false;\n }\n }\n /**\n * Creates a new MeshDebugPluginMaterial\n * @param material Material to attach the mesh debug plugin to\n * @param options Options for the mesh debug plugin\n */\n constructor(material, options = {}) {\n const defines = new MeshDebugDefines();\n defines.DBG_MODE = options.mode ?? defines.DBG_MODE;\n defines.DBG_MULTIPLY = options.multiply ?? defines.DBG_MULTIPLY;\n super(material, \"MeshDebug\", 200, defines, true, true);\n this._mode = defines.DBG_MODE;\n this._multiply = defines.DBG_MULTIPLY;\n this.shadedDiffuseColor = options.shadedDiffuseColor ?? new Color3(1, 1, 1);\n this.shadedSpecularColor = options.shadedSpecularColor ?? new Color3(0.8, 0.8, 0.8);\n this.shadedSpecularPower = options.shadedSpecularPower ?? 10;\n this.wireframeThickness = options.wireframeThickness ?? 0.7;\n this.wireframeTrianglesColor = options.wireframeTrianglesColor ?? new Color3(0, 0, 0);\n this.wireframeVerticesColor = options.wireframeVerticesColor ?? new Color3(0.8, 0.8, 0.8);\n this.vertexColor = options.vertexColor ?? new Color3(0, 0, 0);\n this.vertexRadius = options.vertexRadius ?? 1.2;\n this.uvScale = options.uvScale ?? 20;\n this.uvPrimaryColor = options.uvPrimaryColor ?? new Color3(1, 1, 1);\n this.uvSecondaryColor = options.uvSecondaryColor ?? new Color3(0.5, 0.5, 0.5);\n this._materialColor = MeshDebugPluginMaterial.MaterialColors[MeshDebugPluginMaterial._PluginCount++ % MeshDebugPluginMaterial.MaterialColors.length];\n this.isEnabled = true;\n }\n /**\n * Get the class name\n * @returns Class name\n */\n getClassName() {\n return \"MeshDebugPluginMaterial\";\n }\n /**\n * Gets whether the mesh debug plugin is enabled in the material.\n */\n get isEnabled() {\n return this._isEnabled;\n }\n /**\n * Sets whether the mesh debug plugin is enabled in the material.\n * @param value enabled\n */\n set isEnabled(value) {\n if (this._isEnabled === value) {\n return;\n }\n if (!this._material.getScene().getEngine().isWebGPU && this._material.getScene().getEngine().version == 1) {\n Logger.Error(\"MeshDebugPluginMaterial is not supported on WebGL 1.0.\");\n this._isEnabled = false;\n return;\n }\n this._isEnabled = value;\n this._markAllDefinesAsDirty();\n }\n /**\n * Prepare the defines\n * @param defines Mesh debug defines\n * @param scene Scene\n * @param mesh Mesh associated with material\n */\n prepareDefines(defines, scene, mesh) {\n if ((this._mode == 2 /* MeshDebugMode.VERTICES */ || this._mode == 1 /* MeshDebugMode.TRIANGLES */ || this._mode == 3 /* MeshDebugMode.TRIANGLES_VERTICES */) &&\n !mesh.isVerticesDataPresent(\"dbg_initialPass\")) {\n Logger.Warn(\"For best results with TRIANGLES, TRIANGLES_VERTICES, or VERTICES modes, please use MeshDebugPluginMaterial.PrepareMeshForTrianglesAndVerticesMode() on mesh.\", 1);\n }\n defines.DBG_MODE = this._mode;\n defines.DBG_MULTIPLY = this._multiply;\n defines.DBG_ENABLED = this._isEnabled;\n }\n /**\n * Get the shader attributes\n * @param attributes Array of attributes\n */\n getAttributes(attributes) {\n attributes.push(\"dbg_initialPass\");\n }\n /**\n * Get the shader uniforms\n * @param shaderLanguage The shader language to use.\n * @returns Uniforms\n */\n getUniforms(shaderLanguage = 0 /* ShaderLanguage.GLSL */) {\n return {\n ubo: [\n { name: \"dbg_shadedDiffuseColor\", size: 3, type: \"vec3\" },\n { name: \"dbg_shadedSpecularColorPower\", size: 4, type: \"vec4\" }, // shadedSpecularColor, shadedSpecularPower\n { name: \"dbg_thicknessRadiusScale\", size: 3, type: \"vec3\" }, // wireframeThickness, vertexRadius, uvScale\n { name: \"dbg_wireframeTrianglesColor\", size: 3, type: \"vec3\" },\n { name: \"dbg_wireframeVerticesColor\", size: 3, type: \"vec3\" },\n { name: \"dbg_vertexColor\", size: 3, type: \"vec3\" },\n { name: \"dbg_uvPrimaryColor\", size: 3, type: \"vec3\" },\n { name: \"dbg_uvSecondaryColor\", size: 3, type: \"vec3\" },\n { name: \"dbg_materialColor\", size: 3, type: \"vec3\" },\n ],\n fragment: shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? fragmentUniforms : fragmentUniformsWebGPU,\n };\n }\n /**\n * Bind the uniform buffer\n * @param uniformBuffer Uniform buffer\n */\n bindForSubMesh(uniformBuffer) {\n if (!this._isEnabled) {\n return;\n }\n uniformBuffer.updateFloat3(\"dbg_shadedDiffuseColor\", this.shadedDiffuseColor.r, this.shadedDiffuseColor.g, this.shadedDiffuseColor.b);\n uniformBuffer.updateFloat4(\"dbg_shadedSpecularColorPower\", this.shadedSpecularColor.r, this.shadedSpecularColor.g, this.shadedSpecularColor.b, this.shadedSpecularPower);\n uniformBuffer.updateFloat3(\"dbg_thicknessRadiusScale\", this.wireframeThickness, this.vertexRadius, this.uvScale);\n uniformBuffer.updateColor3(\"dbg_wireframeTrianglesColor\", this.wireframeTrianglesColor);\n uniformBuffer.updateColor3(\"dbg_wireframeVerticesColor\", this.wireframeVerticesColor);\n uniformBuffer.updateColor3(\"dbg_vertexColor\", this.vertexColor);\n uniformBuffer.updateColor3(\"dbg_uvPrimaryColor\", this.uvPrimaryColor);\n uniformBuffer.updateColor3(\"dbg_uvSecondaryColor\", this.uvSecondaryColor);\n uniformBuffer.updateColor3(\"dbg_materialColor\", this._materialColor);\n }\n /**\n * Get shader code\n * @param shaderType \"vertex\" or \"fragment\"\n * @param shaderLanguage The shader language to use.\n * @returns Shader code\n */\n getCustomCode(shaderType, shaderLanguage = 0 /* ShaderLanguage.GLSL */) {\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n return shaderType === \"vertex\"\n ? {\n CUSTOM_VERTEX_DEFINITIONS: vertexDefinitionsWebGPU,\n CUSTOM_VERTEX_MAIN_END: vertexMainEndWebGPU,\n }\n : {\n CUSTOM_FRAGMENT_DEFINITIONS: fragmentDefinitionsWebGPU,\n CUSTOM_FRAGMENT_MAIN_END: fragmentMainEndWebGPU,\n };\n }\n return shaderType === \"vertex\"\n ? {\n CUSTOM_VERTEX_DEFINITIONS: vertexDefinitions,\n CUSTOM_VERTEX_MAIN_END: vertexMainEnd,\n }\n : {\n CUSTOM_FRAGMENT_DEFINITIONS: fragmentDefinitions,\n CUSTOM_FRAGMENT_MAIN_END: fragmentMainEnd,\n };\n }\n /**\n * Resets static variables of the plugin to their original state\n */\n static Reset() {\n this._PluginCount = 0;\n this.MaterialColors = defaultMaterialColors;\n }\n /**\n * Renders triangles in a mesh 3 times by tripling the indices in the index buffer.\n * Used to prepare a mesh to be rendered in `TRIANGLES`, `VERTICES`, or `TRIANGLES_VERTICES` modes.\n * NOTE: This is a destructive operation. The mesh's index buffer and vertex buffers are modified, and a new vertex buffer is allocated.\n * If you'd like the ability to revert these changes, toggle the optional `returnRollback` flag.\n * @param mesh the mesh to target\n * @param returnRollback whether or not to return a function that reverts mesh to its initial state. Default: false.\n * @returns a rollback function if `returnRollback` is true, otherwise an empty function.\n */\n static PrepareMeshForTrianglesAndVerticesMode(mesh, returnRollback = false) {\n let rollback = () => { };\n if (mesh.getTotalIndices() == 0)\n return rollback;\n if (returnRollback) {\n const kinds = mesh.getVerticesDataKinds();\n const indices = mesh.getIndices();\n const data = {};\n for (const kind of kinds) {\n data[kind] = mesh.getVerticesData(kind);\n }\n rollback = function () {\n mesh.setIndices(indices);\n for (const kind of kinds) {\n const stride = mesh.getVertexBuffer(kind).getStrideSize();\n mesh.setVerticesData(kind, data[kind], undefined, stride);\n }\n mesh.removeVerticesData(\"dbg_initialPass\");\n };\n }\n let indices = Array.from(mesh.getIndices());\n const newIndices1 = [];\n for (let i = 0; i < indices.length; i += 3) {\n newIndices1.push(indices[i + 1], indices[i + 2], indices[i + 0]);\n }\n mesh.setIndices(indices.concat(newIndices1));\n mesh.convertToUnIndexedMesh();\n mesh.isUnIndexed = false;\n indices = Array.from(mesh.getIndices());\n const newIndices2 = [];\n for (let i = indices.length / 2; i < indices.length; i += 3) {\n newIndices2.push(indices[i + 1], indices[i + 2], indices[i + 0]);\n }\n mesh.setIndices(indices.concat(newIndices2));\n const num = mesh.getTotalVertices();\n const mid = num / 2;\n const pass = new Array(num).fill(1, 0, mid).fill(0, mid, num);\n mesh.setVerticesData(\"dbg_initialPass\", pass, false, 1);\n return rollback;\n }\n}\n/**\n * Total number of instances of the plugin.\n * Starts at 0.\n */\nMeshDebugPluginMaterial._PluginCount = 0;\n/**\n * Color palette used for MATERIALIDS mode.\n * Defaults to `defaultMaterialColors`\n */\nMeshDebugPluginMaterial.MaterialColors = defaultMaterialColors;\n__decorate([\n serializeAsColor3()\n], MeshDebugPluginMaterial.prototype, \"_materialColor\", void 0);\n__decorate([\n serialize()\n], MeshDebugPluginMaterial.prototype, \"_isEnabled\", void 0);\n__decorate([\n serialize(),\n expandToProperty(\"_markAllDefinesAsDirty\")\n], MeshDebugPluginMaterial.prototype, \"mode\", void 0);\n__decorate([\n serialize(),\n expandToProperty(\"_markAllDefinesAsDirty\")\n], MeshDebugPluginMaterial.prototype, \"multiply\", void 0);\n__decorate([\n serializeAsColor3()\n], MeshDebugPluginMaterial.prototype, \"shadedDiffuseColor\", void 0);\n__decorate([\n serializeAsColor3()\n], MeshDebugPluginMaterial.prototype, \"shadedSpecularColor\", void 0);\n__decorate([\n serialize()\n], MeshDebugPluginMaterial.prototype, \"shadedSpecularPower\", void 0);\n__decorate([\n serialize()\n], MeshDebugPluginMaterial.prototype, \"wireframeThickness\", void 0);\n__decorate([\n serializeAsColor3()\n], MeshDebugPluginMaterial.prototype, \"wireframeTrianglesColor\", void 0);\n__decorate([\n serializeAsColor3()\n], MeshDebugPluginMaterial.prototype, \"wireframeVerticesColor\", void 0);\n__decorate([\n serializeAsColor3()\n], MeshDebugPluginMaterial.prototype, \"vertexColor\", void 0);\n__decorate([\n serialize()\n], MeshDebugPluginMaterial.prototype, \"vertexRadius\", void 0);\n__decorate([\n serialize()\n], MeshDebugPluginMaterial.prototype, \"uvScale\", void 0);\n__decorate([\n serializeAsColor3()\n], MeshDebugPluginMaterial.prototype, \"uvPrimaryColor\", void 0);\n__decorate([\n serializeAsColor3()\n], MeshDebugPluginMaterial.prototype, \"uvSecondaryColor\", void 0);\nRegisterClass(\"BABYLON.MeshDebugPluginMaterial\", MeshDebugPluginMaterial);\n","import { DecalMapConfiguration } from \"./material.decalMapConfiguration.js\";\nimport { StandardMaterial } from \"./standardMaterial.js\";\nObject.defineProperty(StandardMaterial.prototype, \"decalMap\", {\n get: function () {\n if (!this._decalMap) {\n if (this._uniformBufferLayoutBuilt) {\n // Material already used to display a mesh, so it's invalid to add the decal map plugin at that point\n // Returns null instead of having new DecalMapConfiguration throws an exception\n return null;\n }\n this._decalMap = new DecalMapConfiguration(this);\n }\n return this._decalMap;\n },\n enumerable: true,\n configurable: true,\n});\n","import { DecalMapConfiguration } from \"../material.decalMapConfiguration.js\";\nimport { PBRBaseMaterial } from \"./pbrBaseMaterial.js\";\nObject.defineProperty(PBRBaseMaterial.prototype, \"decalMap\", {\n get: function () {\n if (!this._decalMap) {\n if (this._uniformBufferLayoutBuilt) {\n // Material already used to display a mesh, so it's invalid to add the decal map plugin at that point\n // Returns null instead of having new DecalMapConfiguration throws an exception\n return null;\n }\n this._decalMap = new DecalMapConfiguration(this);\n }\n return this._decalMap;\n },\n enumerable: true,\n configurable: true,\n});\n","import { AbstractMesh } from \"../Meshes/abstractMesh.js\";\nObject.defineProperty(AbstractMesh.prototype, \"decalMap\", {\n get: function () {\n return this._decalMap;\n },\n set: function (decalMap) {\n this._decalMap = decalMap;\n },\n enumerable: true,\n configurable: true,\n});\n","/**\n * Creates a string representation of the Vector2\n * @param vector defines the Vector2 to stringify\n * @param decimalCount defines the number of decimals to use\n * @returns a string with the Vector2 coordinates.\n */\nexport function Vector2ToFixed(vector, decimalCount) {\n return `{X: ${vector.x.toFixed(decimalCount)} Y: ${vector.y.toFixed(decimalCount)}}`;\n}\n/**\n * Creates a string representation of the Vector3\n * @param vector defines the Vector3 to stringify\n * @param decimalCount defines the number of decimals to use\n * @returns a string with the Vector3 coordinates.\n */\nexport function Vector3ToFixed(vector, decimalCount) {\n return `{X: ${vector._x.toFixed(decimalCount)} Y: ${vector._y.toFixed(decimalCount)} Z: ${vector._z.toFixed(decimalCount)}}`;\n}\n/**\n * Creates a string representation of the Vector4\n * @param vector defines the Vector4 to stringify\n * @param decimalCount defines the number of decimals to use\n * @returns a string with the Vector4 coordinates.\n */\nexport function Vector4ToFixed(vector, decimalCount) {\n return `{X: ${vector.x.toFixed(decimalCount)} Y: ${vector.y.toFixed(decimalCount)} Z: ${vector.z.toFixed(decimalCount)} W: ${vector.w.toFixed(decimalCount)}}`;\n}\n","import { Quaternion, Matrix, Vector3, Vector2 } from \"../Maths/math.vector.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { SubMesh } from \"../Meshes/subMesh.js\";\nimport { Mesh } from \"../Meshes/mesh.js\";\nimport { Color4 } from \"../Maths/math.color.js\";\n\nimport { VertexData } from \"./mesh.vertexData.js\";\n/**\n * Unique ID when we import meshes from Babylon to CSG\n */\nlet currentCSGMeshId = 0;\n/**\n * Represents a vertex of a polygon. Use your own vertex class instead of this\n * one to provide additional features like texture coordinates and vertex\n * colors. Custom vertex classes need to provide a `pos` property and `clone()`,\n * `flip()`, and `interpolate()` methods that behave analogous to the ones\n * defined by `BABYLON.CSG.Vertex`. This class provides `normal` so convenience\n * functions like `BABYLON.CSG.sphere()` can return a smooth vertex normal, but `normal`\n * is not used anywhere else.\n * Same goes for uv, it allows to keep the original vertex uv coordinates of the 2 meshes\n */\nclass Vertex {\n /**\n * Initializes the vertex\n * @param pos The position of the vertex\n * @param normal The normal of the vertex\n * @param uv The texture coordinate of the vertex\n * @param vertColor The RGBA color of the vertex\n */\n constructor(\n /**\n * The position of the vertex\n */\n pos, \n /**\n * The normal of the vertex\n */\n normal, \n /**\n * The texture coordinate of the vertex\n */\n uv, \n /**\n * The texture coordinate of the vertex\n */\n vertColor) {\n this.pos = pos;\n this.normal = normal;\n this.uv = uv;\n this.vertColor = vertColor;\n }\n /**\n * Make a clone, or deep copy, of the vertex\n * @returns A new Vertex\n */\n clone() {\n return new Vertex(this.pos.clone(), this.normal.clone(), this.uv?.clone(), this.vertColor?.clone());\n }\n /**\n * Invert all orientation-specific data (e.g. vertex normal). Called when the\n * orientation of a polygon is flipped.\n */\n flip() {\n this.normal = this.normal.scale(-1);\n }\n /**\n * Create a new vertex between this vertex and `other` by linearly\n * interpolating all properties using a parameter of `t`. Subclasses should\n * override this to interpolate additional properties.\n * @param other the vertex to interpolate against\n * @param t The factor used to linearly interpolate between the vertices\n * @returns The new interpolated vertex\n */\n interpolate(other, t) {\n return new Vertex(Vector3.Lerp(this.pos, other.pos, t), Vector3.Lerp(this.normal, other.normal, t), this.uv && other.uv ? Vector2.Lerp(this.uv, other.uv, t) : undefined, this.vertColor && other.vertColor ? Color4.Lerp(this.vertColor, other.vertColor, t) : undefined);\n }\n}\n/**\n * Represents a plane in 3D space.\n */\nclass CSGPlane {\n /**\n * Initializes the plane\n * @param normal The normal for the plane\n * @param w\n */\n constructor(normal, w) {\n this.normal = normal;\n this.w = w;\n }\n /**\n * Construct a plane from three points\n * @param a Point a\n * @param b Point b\n * @param c Point c\n * @returns A new plane\n */\n static FromPoints(a, b, c) {\n const v0 = c.subtract(a);\n const v1 = b.subtract(a);\n if (v0.lengthSquared() === 0 || v1.lengthSquared() === 0) {\n return null;\n }\n const n = Vector3.Normalize(Vector3.Cross(v0, v1));\n return new CSGPlane(n, Vector3.Dot(n, a));\n }\n /**\n * Clone, or make a deep copy of the plane\n * @returns a new Plane\n */\n clone() {\n return new CSGPlane(this.normal.clone(), this.w);\n }\n /**\n * Flip the face of the plane\n */\n flip() {\n this.normal.scaleInPlace(-1);\n this.w = -this.w;\n }\n /**\n * Split `polygon` by this plane if needed, then put the polygon or polygon\n * fragments in the appropriate lists. Coplanar polygons go into either\n `* coplanarFront` or `coplanarBack` depending on their orientation with\n * respect to this plane. Polygons in front or in back of this plane go into\n * either `front` or `back`\n * @param polygon The polygon to be split\n * @param coplanarFront Will contain polygons coplanar with the plane that are oriented to the front of the plane\n * @param coplanarBack Will contain polygons coplanar with the plane that are oriented to the back of the plane\n * @param front Will contain the polygons in front of the plane\n * @param back Will contain the polygons begind the plane\n */\n splitPolygon(polygon, coplanarFront, coplanarBack, front, back) {\n const COPLANAR = 0;\n const FRONT = 1;\n const BACK = 2;\n const SPANNING = 3;\n // Classify each point as well as the entire polygon into one of the above\n // four classes.\n let polygonType = 0;\n const types = [];\n let i;\n let t;\n for (i = 0; i < polygon.vertices.length; i++) {\n t = Vector3.Dot(this.normal, polygon.vertices[i].pos) - this.w;\n const type = t < -CSGPlane.EPSILON ? BACK : t > CSGPlane.EPSILON ? FRONT : COPLANAR;\n polygonType |= type;\n types.push(type);\n }\n // Put the polygon in the correct list, splitting it when necessary\n switch (polygonType) {\n case COPLANAR:\n (Vector3.Dot(this.normal, polygon.plane.normal) > 0 ? coplanarFront : coplanarBack).push(polygon);\n break;\n case FRONT:\n front.push(polygon);\n break;\n case BACK:\n back.push(polygon);\n break;\n case SPANNING: {\n const f = [], b = [];\n for (i = 0; i < polygon.vertices.length; i++) {\n const j = (i + 1) % polygon.vertices.length;\n const ti = types[i], tj = types[j];\n const vi = polygon.vertices[i], vj = polygon.vertices[j];\n if (ti !== BACK) {\n f.push(vi);\n }\n if (ti !== FRONT) {\n b.push(ti !== BACK ? vi.clone() : vi);\n }\n if ((ti | tj) === SPANNING) {\n t = (this.w - Vector3.Dot(this.normal, vi.pos)) / Vector3.Dot(this.normal, vj.pos.subtract(vi.pos));\n const v = vi.interpolate(vj, t);\n f.push(v);\n b.push(v.clone());\n }\n }\n let poly;\n if (f.length >= 3) {\n poly = new CSGPolygon(f, polygon.shared);\n if (poly.plane) {\n front.push(poly);\n }\n }\n if (b.length >= 3) {\n poly = new CSGPolygon(b, polygon.shared);\n if (poly.plane) {\n back.push(poly);\n }\n }\n break;\n }\n }\n }\n}\n/**\n * `CSG.Plane.EPSILON` is the tolerance used by `splitPolygon()` to decide if a\n * point is on the plane\n */\nCSGPlane.EPSILON = 1e-5;\n/**\n * Represents a convex polygon. The vertices used to initialize a polygon must\n * be coplanar and form a convex loop.\n *\n * Each convex polygon has a `shared` property, which is shared between all\n * polygons that are clones of each other or were split from the same polygon.\n * This can be used to define per-polygon properties (such as surface color)\n */\nclass CSGPolygon {\n /**\n * Initializes the polygon\n * @param vertices The vertices of the polygon\n * @param shared The properties shared across all polygons\n */\n constructor(vertices, shared) {\n this.vertices = vertices;\n this.shared = shared;\n this.plane = CSGPlane.FromPoints(vertices[0].pos, vertices[1].pos, vertices[2].pos);\n }\n /**\n * Clones, or makes a deep copy, or the polygon\n * @returns A new CSGPolygon\n */\n clone() {\n const vertices = this.vertices.map((v) => v.clone());\n return new CSGPolygon(vertices, this.shared);\n }\n /**\n * Flips the faces of the polygon\n */\n flip() {\n this.vertices.reverse().map((v) => {\n v.flip();\n });\n this.plane.flip();\n }\n}\n/**\n * Holds a node in a BSP tree. A BSP tree is built from a collection of polygons\n * by picking a polygon to split along. That polygon (and all other coplanar\n * polygons) are added directly to that node and the other polygons are added to\n * the front and/or back subtrees. This is not a leafy BSP tree since there is\n * no distinction between internal and leaf nodes\n */\nclass Node {\n /**\n * Initializes the node\n * @param polygons A collection of polygons held in the node\n */\n constructor(polygons) {\n this._plane = null;\n this._front = null;\n this._back = null;\n this._polygons = new Array();\n if (polygons) {\n this.build(polygons);\n }\n }\n /**\n * Clones, or makes a deep copy, of the node\n * @returns The cloned node\n */\n clone() {\n const node = new Node();\n node._plane = this._plane && this._plane.clone();\n node._front = this._front && this._front.clone();\n node._back = this._back && this._back.clone();\n node._polygons = this._polygons.map((p) => p.clone());\n return node;\n }\n /**\n * Convert solid space to empty space and empty space to solid space\n */\n invert() {\n for (let i = 0; i < this._polygons.length; i++) {\n this._polygons[i].flip();\n }\n if (this._plane) {\n this._plane.flip();\n }\n if (this._front) {\n this._front.invert();\n }\n if (this._back) {\n this._back.invert();\n }\n const temp = this._front;\n this._front = this._back;\n this._back = temp;\n }\n /**\n * Recursively remove all polygons in `polygons` that are inside this BSP\n * tree.\n * @param polygons Polygons to remove from the BSP\n * @returns Polygons clipped from the BSP\n */\n clipPolygons(polygons) {\n if (!this._plane) {\n return polygons.slice();\n }\n let front = [], back = [];\n for (let i = 0; i < polygons.length; i++) {\n this._plane.splitPolygon(polygons[i], front, back, front, back);\n }\n if (this._front) {\n front = this._front.clipPolygons(front);\n }\n if (this._back) {\n back = this._back.clipPolygons(back);\n }\n else {\n back = [];\n }\n return front.concat(back);\n }\n /**\n * Remove all polygons in this BSP tree that are inside the other BSP tree\n * `bsp`.\n * @param bsp BSP containing polygons to remove from this BSP\n */\n clipTo(bsp) {\n this._polygons = bsp.clipPolygons(this._polygons);\n if (this._front) {\n this._front.clipTo(bsp);\n }\n if (this._back) {\n this._back.clipTo(bsp);\n }\n }\n /**\n * Return a list of all polygons in this BSP tree\n * @returns List of all polygons in this BSP tree\n */\n allPolygons() {\n let polygons = this._polygons.slice();\n if (this._front) {\n polygons = polygons.concat(this._front.allPolygons());\n }\n if (this._back) {\n polygons = polygons.concat(this._back.allPolygons());\n }\n return polygons;\n }\n /**\n * Build a BSP tree out of `polygons`. When called on an existing tree, the\n * new polygons are filtered down to the bottom of the tree and become new\n * nodes there. Each set of polygons is partitioned using the first polygon\n * (no heuristic is used to pick a good split)\n * @param polygons Polygons used to construct the BSP tree\n */\n build(polygons) {\n if (!polygons.length) {\n return;\n }\n if (!this._plane) {\n this._plane = polygons[0].plane.clone();\n }\n const front = [], back = [];\n for (let i = 0; i < polygons.length; i++) {\n this._plane.splitPolygon(polygons[i], this._polygons, this._polygons, front, back);\n }\n if (front.length) {\n if (!this._front) {\n this._front = new Node();\n }\n this._front.build(front);\n }\n if (back.length) {\n if (!this._back) {\n this._back = new Node();\n }\n this._back.build(back);\n }\n }\n}\n/**\n * Class for building Constructive Solid Geometry\n * @deprecated Please use CSG2 instead\n */\nexport class CSG {\n constructor() {\n this._polygons = new Array();\n }\n /**\n * Convert a VertexData to CSG\n * @param data defines the VertexData to convert to CSG\n * @returns the new CSG\n */\n static FromVertexData(data) {\n let vertex, polygon, vertices;\n const polygons = [];\n const indices = data.indices;\n const positions = data.positions;\n const normals = data.normals;\n const uvs = data.uvs;\n const vertColors = data.colors;\n if (!indices || !positions) {\n // eslint-disable-next-line no-throw-literal\n throw \"BABYLON.CSG: VertexData must at least contain positions and indices\";\n }\n for (let i = 0; i < indices.length; i += 3) {\n vertices = [];\n for (let j = 0; j < 3; j++) {\n const indexIndices = i + j;\n const offset = indices[indexIndices];\n const normal = normals ? Vector3.FromArray(normals, offset * 3) : Vector3.Zero();\n const uv = uvs ? Vector2.FromArray(uvs, offset * 2) : undefined;\n const vertColor = vertColors ? Color4.FromArray(vertColors, offset * 4) : undefined;\n const position = Vector3.FromArray(positions, offset * 3);\n vertex = new Vertex(position, normal, uv, vertColor);\n vertices.push(vertex);\n }\n polygon = new CSGPolygon(vertices, { subMeshId: 0, meshId: currentCSGMeshId, materialIndex: 0 });\n // To handle the case of degenerated triangle\n // polygon.plane == null <=> the polygon does not represent 1 single plane <=> the triangle is degenerated\n if (polygon.plane) {\n polygons.push(polygon);\n }\n }\n const csg = CSG._FromPolygons(polygons);\n csg.matrix = Matrix.Identity();\n csg.position = Vector3.Zero();\n csg.rotation = Vector3.Zero();\n csg.scaling = Vector3.One();\n csg.rotationQuaternion = Quaternion.Identity();\n currentCSGMeshId++;\n return csg;\n }\n /**\n * Convert the Mesh to CSG\n * @param mesh The Mesh to convert to CSG\n * @param absolute If true, the final (local) matrix transformation is set to the identity and not to that of `mesh`. It can help when dealing with right-handed meshes (default: false)\n * @returns A new CSG from the Mesh\n */\n static FromMesh(mesh, absolute = false) {\n let vertex, normal, uv = undefined, position, vertColor = undefined, polygon, vertices;\n const polygons = [];\n let matrix, meshPosition, meshRotation, meshRotationQuaternion = null, meshScaling;\n let invertWinding = false;\n if (mesh instanceof Mesh) {\n mesh.computeWorldMatrix(true);\n matrix = mesh.getWorldMatrix();\n meshPosition = mesh.position.clone();\n meshRotation = mesh.rotation.clone();\n if (mesh.rotationQuaternion) {\n meshRotationQuaternion = mesh.rotationQuaternion.clone();\n }\n meshScaling = mesh.scaling.clone();\n if (mesh.material && absolute) {\n invertWinding = mesh.material.sideOrientation === 0;\n }\n }\n else {\n // eslint-disable-next-line no-throw-literal\n throw \"BABYLON.CSG: Wrong Mesh type, must be BABYLON.Mesh\";\n }\n const indices = mesh.getIndices(), positions = mesh.getVerticesData(VertexBuffer.PositionKind), normals = mesh.getVerticesData(VertexBuffer.NormalKind), uvs = mesh.getVerticesData(VertexBuffer.UVKind), vertColors = mesh.getVerticesData(VertexBuffer.ColorKind);\n if (indices === null) {\n // eslint-disable-next-line no-throw-literal\n throw \"BABYLON.CSG: Mesh has no indices\";\n }\n if (positions === null) {\n // eslint-disable-next-line no-throw-literal\n throw \"BABYLON.CSG: Mesh has no positions\";\n }\n if (normals === null) {\n // eslint-disable-next-line no-throw-literal\n throw \"BABYLON.CSG: Mesh has no normals\";\n }\n const subMeshes = mesh.subMeshes;\n for (let sm = 0, sml = subMeshes.length; sm < sml; sm++) {\n for (let i = subMeshes[sm].indexStart, il = subMeshes[sm].indexCount + subMeshes[sm].indexStart; i < il; i += 3) {\n vertices = [];\n for (let j = 0; j < 3; j++) {\n const indexIndices = j === 0 ? i + j : invertWinding ? i + 3 - j : i + j;\n const sourceNormal = new Vector3(normals[indices[indexIndices] * 3], normals[indices[indexIndices] * 3 + 1], normals[indices[indexIndices] * 3 + 2]);\n if (uvs) {\n uv = new Vector2(uvs[indices[indexIndices] * 2], uvs[indices[indexIndices] * 2 + 1]);\n }\n if (vertColors) {\n vertColor = new Color4(vertColors[indices[indexIndices] * 4], vertColors[indices[indexIndices] * 4 + 1], vertColors[indices[indexIndices] * 4 + 2], vertColors[indices[indexIndices] * 4 + 3]);\n }\n const sourcePosition = new Vector3(positions[indices[indexIndices] * 3], positions[indices[indexIndices] * 3 + 1], positions[indices[indexIndices] * 3 + 2]);\n position = Vector3.TransformCoordinates(sourcePosition, matrix);\n normal = Vector3.TransformNormal(sourceNormal, matrix);\n vertex = new Vertex(position, normal, uv, vertColor);\n vertices.push(vertex);\n }\n polygon = new CSGPolygon(vertices, { subMeshId: sm, meshId: currentCSGMeshId, materialIndex: subMeshes[sm].materialIndex });\n // To handle the case of degenerated triangle\n // polygon.plane == null <=> the polygon does not represent 1 single plane <=> the triangle is degenerated\n if (polygon.plane) {\n polygons.push(polygon);\n }\n }\n }\n const csg = CSG._FromPolygons(polygons);\n csg.matrix = absolute ? Matrix.Identity() : matrix;\n csg.position = absolute ? Vector3.Zero() : meshPosition;\n csg.rotation = absolute ? Vector3.Zero() : meshRotation;\n csg.scaling = absolute ? Vector3.One() : meshScaling;\n csg.rotationQuaternion = absolute && meshRotationQuaternion ? Quaternion.Identity() : meshRotationQuaternion;\n currentCSGMeshId++;\n return csg;\n }\n /**\n * Construct a CSG solid from a list of `CSG.Polygon` instances.\n * @param polygons Polygons used to construct a CSG solid\n * @returns A new CSG solid\n */\n static _FromPolygons(polygons) {\n const csg = new CSG();\n csg._polygons = polygons;\n return csg;\n }\n /**\n * Clones, or makes a deep copy, of the CSG\n * @returns A new CSG\n */\n clone() {\n const csg = new CSG();\n csg._polygons = this._polygons.map((p) => p.clone());\n csg.copyTransformAttributes(this);\n return csg;\n }\n /**\n * Unions this CSG with another CSG\n * @param csg The CSG to union against this CSG\n * @returns The unioned CSG\n */\n union(csg) {\n const a = new Node(this.clone()._polygons);\n const b = new Node(csg.clone()._polygons);\n a.clipTo(b);\n b.clipTo(a);\n b.invert();\n b.clipTo(a);\n b.invert();\n a.build(b.allPolygons());\n return CSG._FromPolygons(a.allPolygons()).copyTransformAttributes(this);\n }\n /**\n * Unions this CSG with another CSG in place\n * @param csg The CSG to union against this CSG\n */\n unionInPlace(csg) {\n const a = new Node(this._polygons);\n const b = new Node(csg._polygons);\n a.clipTo(b);\n b.clipTo(a);\n b.invert();\n b.clipTo(a);\n b.invert();\n a.build(b.allPolygons());\n this._polygons = a.allPolygons();\n }\n /**\n * Subtracts this CSG with another CSG\n * @param csg The CSG to subtract against this CSG\n * @returns A new CSG\n */\n subtract(csg) {\n const a = new Node(this.clone()._polygons);\n const b = new Node(csg.clone()._polygons);\n a.invert();\n a.clipTo(b);\n b.clipTo(a);\n b.invert();\n b.clipTo(a);\n b.invert();\n a.build(b.allPolygons());\n a.invert();\n return CSG._FromPolygons(a.allPolygons()).copyTransformAttributes(this);\n }\n /**\n * Subtracts this CSG with another CSG in place\n * @param csg The CSG to subtract against this CSG\n */\n subtractInPlace(csg) {\n const a = new Node(this._polygons);\n const b = new Node(csg._polygons);\n a.invert();\n a.clipTo(b);\n b.clipTo(a);\n b.invert();\n b.clipTo(a);\n b.invert();\n a.build(b.allPolygons());\n a.invert();\n this._polygons = a.allPolygons();\n }\n /**\n * Intersect this CSG with another CSG\n * @param csg The CSG to intersect against this CSG\n * @returns A new CSG\n */\n intersect(csg) {\n const a = new Node(this.clone()._polygons);\n const b = new Node(csg.clone()._polygons);\n a.invert();\n b.clipTo(a);\n b.invert();\n a.clipTo(b);\n b.clipTo(a);\n a.build(b.allPolygons());\n a.invert();\n return CSG._FromPolygons(a.allPolygons()).copyTransformAttributes(this);\n }\n /**\n * Intersects this CSG with another CSG in place\n * @param csg The CSG to intersect against this CSG\n */\n intersectInPlace(csg) {\n const a = new Node(this._polygons);\n const b = new Node(csg._polygons);\n a.invert();\n b.clipTo(a);\n b.invert();\n a.clipTo(b);\n b.clipTo(a);\n a.build(b.allPolygons());\n a.invert();\n this._polygons = a.allPolygons();\n }\n /**\n * Return a new CSG solid with solid and empty space switched. This solid is\n * not modified.\n * @returns A new CSG solid with solid and empty space switched\n */\n inverse() {\n const csg = this.clone();\n csg.inverseInPlace();\n return csg;\n }\n /**\n * Inverses the CSG in place\n */\n inverseInPlace() {\n this._polygons.map((p) => {\n p.flip();\n });\n }\n /**\n * This is used to keep meshes transformations so they can be restored\n * when we build back a Babylon Mesh\n * NB : All CSG operations are performed in world coordinates\n * @param csg The CSG to copy the transform attributes from\n * @returns This CSG\n */\n copyTransformAttributes(csg) {\n this.matrix = csg.matrix;\n this.position = csg.position;\n this.rotation = csg.rotation;\n this.scaling = csg.scaling;\n this.rotationQuaternion = csg.rotationQuaternion;\n return this;\n }\n /**\n * Build vertex data from CSG\n * Coordinates here are in world space\n * @param onBeforePolygonProcessing called before each polygon is being processed\n * @param onAfterPolygonProcessing called after each polygon has been processed\n * @returns the final vertex data\n */\n toVertexData(onBeforePolygonProcessing = null, onAfterPolygonProcessing = null) {\n const matrix = this.matrix.clone();\n matrix.invert();\n const polygons = this._polygons;\n const vertices = [];\n const indices = [];\n const normals = [];\n let uvs = null;\n let vertColors = null;\n const vertex = Vector3.Zero();\n const normal = Vector3.Zero();\n const uv = Vector2.Zero();\n const vertColor = new Color4(0, 0, 0, 0);\n const polygonIndices = [0, 0, 0];\n const vertice_dict = {};\n let vertex_idx;\n for (let i = 0, il = polygons.length; i < il; i++) {\n const polygon = polygons[i];\n if (onBeforePolygonProcessing) {\n onBeforePolygonProcessing(polygon);\n }\n for (let j = 2, jl = polygon.vertices.length; j < jl; j++) {\n polygonIndices[0] = 0;\n polygonIndices[1] = j - 1;\n polygonIndices[2] = j;\n for (let k = 0; k < 3; k++) {\n vertex.copyFrom(polygon.vertices[polygonIndices[k]].pos);\n normal.copyFrom(polygon.vertices[polygonIndices[k]].normal);\n if (polygon.vertices[polygonIndices[k]].uv) {\n if (!uvs) {\n uvs = [];\n }\n uv.copyFrom(polygon.vertices[polygonIndices[k]].uv);\n }\n if (polygon.vertices[polygonIndices[k]].vertColor) {\n if (!vertColors) {\n vertColors = [];\n }\n vertColor.copyFrom(polygon.vertices[polygonIndices[k]].vertColor);\n }\n const localVertex = Vector3.TransformCoordinates(vertex, matrix);\n const localNormal = Vector3.TransformNormal(normal, matrix);\n vertex_idx = vertice_dict[localVertex.x + \",\" + localVertex.y + \",\" + localVertex.z];\n let areUvsDifferent = false;\n if (uvs && !(uvs[vertex_idx * 2] === uv.x || uvs[vertex_idx * 2 + 1] === uv.y)) {\n areUvsDifferent = true;\n }\n let areColorsDifferent = false;\n if (vertColors &&\n !(vertColors[vertex_idx * 4] === vertColor.r ||\n vertColors[vertex_idx * 4 + 1] === vertColor.g ||\n vertColors[vertex_idx * 4 + 2] === vertColor.b ||\n vertColors[vertex_idx * 4 + 3] === vertColor.a)) {\n areColorsDifferent = true;\n }\n // Check if 2 points can be merged\n if (!(typeof vertex_idx !== \"undefined\" &&\n normals[vertex_idx * 3] === localNormal.x &&\n normals[vertex_idx * 3 + 1] === localNormal.y &&\n normals[vertex_idx * 3 + 2] === localNormal.z) ||\n areUvsDifferent ||\n areColorsDifferent) {\n vertices.push(localVertex.x, localVertex.y, localVertex.z);\n if (uvs) {\n uvs.push(uv.x, uv.y);\n }\n normals.push(normal.x, normal.y, normal.z);\n if (vertColors) {\n vertColors.push(vertColor.r, vertColor.g, vertColor.b, vertColor.a);\n }\n vertex_idx = vertice_dict[localVertex.x + \",\" + localVertex.y + \",\" + localVertex.z] = vertices.length / 3 - 1;\n }\n indices.push(vertex_idx);\n if (onAfterPolygonProcessing) {\n onAfterPolygonProcessing();\n }\n }\n }\n }\n const result = new VertexData();\n result.positions = vertices;\n result.normals = normals;\n if (uvs) {\n result.uvs = uvs;\n }\n if (vertColors) {\n result.colors = vertColors;\n }\n result.indices = indices;\n return result;\n }\n /**\n * Build Raw mesh from CSG\n * Coordinates here are in world space\n * @param name The name of the mesh geometry\n * @param scene The Scene\n * @param keepSubMeshes Specifies if the submeshes should be kept\n * @returns A new Mesh\n */\n buildMeshGeometry(name, scene, keepSubMeshes) {\n const mesh = new Mesh(name, scene);\n const polygons = this._polygons;\n let currentIndex = 0;\n const subMeshDict = {};\n let subMeshObj;\n if (keepSubMeshes) {\n // Sort Polygons, since subMeshes are indices range\n polygons.sort((a, b) => {\n if (a.shared.meshId === b.shared.meshId) {\n return a.shared.subMeshId - b.shared.subMeshId;\n }\n else {\n return a.shared.meshId - b.shared.meshId;\n }\n });\n }\n const vertexData = this.toVertexData((polygon) => {\n // Building SubMeshes\n if (!subMeshDict[polygon.shared.meshId]) {\n subMeshDict[polygon.shared.meshId] = {};\n }\n if (!subMeshDict[polygon.shared.meshId][polygon.shared.subMeshId]) {\n subMeshDict[polygon.shared.meshId][polygon.shared.subMeshId] = {\n indexStart: +Infinity,\n indexEnd: -Infinity,\n materialIndex: polygon.shared.materialIndex,\n };\n }\n subMeshObj = subMeshDict[polygon.shared.meshId][polygon.shared.subMeshId];\n }, () => {\n subMeshObj.indexStart = Math.min(currentIndex, subMeshObj.indexStart);\n subMeshObj.indexEnd = Math.max(currentIndex, subMeshObj.indexEnd);\n currentIndex++;\n });\n vertexData.applyToMesh(mesh);\n if (keepSubMeshes) {\n // We offset the materialIndex by the previous number of materials in the CSG mixed meshes\n let materialIndexOffset = 0, materialMaxIndex;\n mesh.subMeshes = [];\n for (const m in subMeshDict) {\n materialMaxIndex = -1;\n for (const sm in subMeshDict[m]) {\n subMeshObj = subMeshDict[m][sm];\n SubMesh.CreateFromIndices(subMeshObj.materialIndex + materialIndexOffset, subMeshObj.indexStart, subMeshObj.indexEnd - subMeshObj.indexStart + 1, mesh);\n materialMaxIndex = Math.max(subMeshObj.materialIndex, materialMaxIndex);\n }\n materialIndexOffset += ++materialMaxIndex;\n }\n }\n return mesh;\n }\n /**\n * Build Mesh from CSG taking material and transforms into account\n * @param name The name of the Mesh\n * @param material The material of the Mesh\n * @param scene The Scene\n * @param keepSubMeshes Specifies if submeshes should be kept\n * @returns The new Mesh\n */\n toMesh(name, material = null, scene, keepSubMeshes) {\n const mesh = this.buildMeshGeometry(name, scene, keepSubMeshes);\n mesh.material = material;\n mesh.position.copyFrom(this.position);\n mesh.rotation.copyFrom(this.rotation);\n if (this.rotationQuaternion) {\n mesh.rotationQuaternion = this.rotationQuaternion.clone();\n }\n mesh.scaling.copyFrom(this.scaling);\n mesh.computeWorldMatrix(true);\n return mesh;\n }\n}\n","import { AbstractMesh } from \"../Meshes/abstractMesh.js\";\nimport { Mesh } from \"../Meshes/mesh.js\";\nimport { Vector3 } from \"../Maths/math.vector.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { VertexData } from \"../Meshes/mesh.vertexData.js\";\nimport { Lerp } from \"../Maths/math.scalar.functions.js\";\nMesh._TrailMeshParser = (parsedMesh, scene) => {\n return TrailMesh.Parse(parsedMesh, scene);\n};\n/**\n * Class used to create a trail following a mesh\n */\nexport class TrailMesh extends Mesh {\n /** @internal */\n constructor(name, generator, scene, diameterOrOptions, length = 60, autoStart = true) {\n super(name, scene);\n this._sectionPolygonPointsCount = 4;\n this._running = false;\n this._generator = generator;\n if (typeof diameterOrOptions === \"object\" && diameterOrOptions !== null) {\n this.diameter = diameterOrOptions.diameter || 1;\n this._length = diameterOrOptions.length || 60;\n this._segments = diameterOrOptions.segments ? (diameterOrOptions.segments > this._length ? this._length : diameterOrOptions.segments) : this._length;\n this._sectionPolygonPointsCount = diameterOrOptions.sections || 4;\n this._doNotTaper = diameterOrOptions.doNotTaper || false;\n this._autoStart = diameterOrOptions.autoStart || true;\n }\n else {\n this.diameter = diameterOrOptions || 1;\n this._length = length;\n this._segments = this._length;\n this._doNotTaper = false;\n this._autoStart = autoStart;\n }\n this._sectionVectors = [];\n this._sectionNormalVectors = [];\n for (let i = 0; i <= this._sectionPolygonPointsCount; i++) {\n this._sectionVectors[i] = Vector3.Zero();\n this._sectionNormalVectors[i] = Vector3.Zero();\n }\n this._createMesh();\n }\n /**\n * \"TrailMesh\"\n * @returns \"TrailMesh\"\n */\n getClassName() {\n return \"TrailMesh\";\n }\n _createMesh() {\n const data = new VertexData();\n const positions = [];\n const normals = [];\n const indices = [];\n const uvs = [];\n let meshCenter = Vector3.Zero();\n if (this._generator instanceof AbstractMesh && this._generator.hasBoundingInfo) {\n meshCenter = this._generator.getBoundingInfo().boundingBox.centerWorld;\n }\n else {\n meshCenter = this._generator.absolutePosition;\n }\n const alpha = (2 * Math.PI) / this._sectionPolygonPointsCount;\n for (let i = 0; i <= this._sectionPolygonPointsCount; i++) {\n const angle = i !== this._sectionPolygonPointsCount ? i * alpha : 0;\n positions.push(meshCenter.x + Math.cos(angle) * this.diameter, meshCenter.y + Math.sin(angle) * this.diameter, meshCenter.z);\n uvs.push(i / this._sectionPolygonPointsCount, 0);\n }\n for (let i = 1; i <= this._segments; i++) {\n for (let j = 0; j <= this._sectionPolygonPointsCount; j++) {\n const angle = j !== this._sectionPolygonPointsCount ? j * alpha : 0;\n positions.push(meshCenter.x + Math.cos(angle) * this.diameter, meshCenter.y + Math.sin(angle) * this.diameter, meshCenter.z);\n uvs.push(j / this._sectionPolygonPointsCount, i / this._segments);\n }\n const l = positions.length / 3 - 2 * (this._sectionPolygonPointsCount + 1);\n for (let j = 0; j <= this._sectionPolygonPointsCount; j++) {\n indices.push(l + j, l + j + this._sectionPolygonPointsCount, l + j + this._sectionPolygonPointsCount + 1);\n indices.push(l + j, l + j + this._sectionPolygonPointsCount + 1, l + j + 1);\n }\n }\n VertexData.ComputeNormals(positions, indices, normals);\n data.positions = positions;\n data.normals = normals;\n data.indices = indices;\n data.uvs = uvs;\n data.applyToMesh(this, true);\n if (this._autoStart) {\n this.start();\n }\n }\n _updateSectionVectors() {\n const wm = this._generator.getWorldMatrix();\n const alpha = (2 * Math.PI) / this._sectionPolygonPointsCount;\n for (let i = 0; i <= this._sectionPolygonPointsCount; i++) {\n const angle = i !== this._sectionPolygonPointsCount ? i * alpha : 0;\n this._sectionVectors[i].copyFromFloats(Math.cos(angle) * this.diameter, Math.sin(angle) * this.diameter, 0);\n this._sectionNormalVectors[i].copyFromFloats(Math.cos(angle), Math.sin(angle), 0);\n Vector3.TransformCoordinatesToRef(this._sectionVectors[i], wm, this._sectionVectors[i]);\n Vector3.TransformNormalToRef(this._sectionNormalVectors[i], wm, this._sectionNormalVectors[i]);\n }\n }\n /**\n * Start trailing mesh.\n */\n start() {\n if (!this._running) {\n this._running = true;\n this._beforeRenderObserver = this.getScene().onBeforeRenderObservable.add(() => {\n this.update();\n });\n }\n }\n /**\n * Stop trailing mesh.\n */\n stop() {\n if (this._beforeRenderObserver && this._running) {\n this._running = false;\n this.getScene().onBeforeRenderObservable.remove(this._beforeRenderObserver);\n }\n }\n /**\n * Update trailing mesh geometry.\n */\n update() {\n const positions = this.getVerticesData(VertexBuffer.PositionKind);\n const normals = this.getVerticesData(VertexBuffer.NormalKind);\n const index = 3 * (this._sectionPolygonPointsCount + 1);\n if (positions && normals) {\n if (this._doNotTaper) {\n for (let i = index; i < positions.length; i++) {\n positions[i - index] = Lerp(positions[i - index], positions[i], this._segments / this._length);\n }\n }\n else {\n for (let i = index; i < positions.length; i++) {\n positions[i - index] = Lerp(positions[i - index], positions[i], this._segments / this._length) - (normals[i] / this._length) * this.diameter;\n }\n }\n for (let i = index; i < normals.length; i++) {\n normals[i - index] = Lerp(normals[i - index], normals[i], this._segments / this._length);\n }\n this._updateSectionVectors();\n const l = positions.length - 3 * (this._sectionPolygonPointsCount + 1);\n for (let i = 0; i <= this._sectionPolygonPointsCount; i++) {\n positions[l + 3 * i] = this._sectionVectors[i].x;\n positions[l + 3 * i + 1] = this._sectionVectors[i].y;\n positions[l + 3 * i + 2] = this._sectionVectors[i].z;\n normals[l + 3 * i] = this._sectionNormalVectors[i].x;\n normals[l + 3 * i + 1] = this._sectionNormalVectors[i].y;\n normals[l + 3 * i + 2] = this._sectionNormalVectors[i].z;\n }\n this.updateVerticesData(VertexBuffer.PositionKind, positions, true, false);\n this.updateVerticesData(VertexBuffer.NormalKind, normals, true, false);\n }\n }\n /**\n * Reset trailing mesh geometry.\n */\n reset() {\n const positions = this.getVerticesData(VertexBuffer.PositionKind);\n const normals = this.getVerticesData(VertexBuffer.NormalKind);\n if (positions && normals) {\n this._updateSectionVectors();\n for (let i = 0; i <= this._segments; i++) {\n const l = 3 * i * (this._sectionPolygonPointsCount + 1);\n for (let j = 0; j <= this._sectionPolygonPointsCount; j++) {\n positions[l + 3 * j] = this._sectionVectors[j].x;\n positions[l + 3 * j + 1] = this._sectionVectors[j].y;\n positions[l + 3 * j + 2] = this._sectionVectors[j].z;\n normals[l + 3 * j] = this._sectionNormalVectors[j].x;\n normals[l + 3 * j + 1] = this._sectionNormalVectors[j].y;\n normals[l + 3 * j + 2] = this._sectionNormalVectors[j].z;\n }\n }\n this.updateVerticesData(VertexBuffer.PositionKind, positions, true, false);\n this.updateVerticesData(VertexBuffer.NormalKind, normals, true, false);\n }\n }\n /**\n * Returns a new TrailMesh object.\n * @param name is a string, the name given to the new mesh\n * @param newGenerator use new generator object for cloned trail mesh\n * @returns a new mesh\n */\n clone(name = \"\", newGenerator) {\n const options = {\n diameter: this.diameter,\n length: this._length,\n segments: this._segments,\n sections: this._sectionPolygonPointsCount,\n doNotTaper: this._doNotTaper,\n autoStart: this._autoStart,\n };\n return new TrailMesh(name, newGenerator ?? this._generator, this.getScene(), options);\n }\n /**\n * Serializes this trail mesh\n * @param serializationObject object to write serialization to\n */\n serialize(serializationObject) {\n super.serialize(serializationObject);\n serializationObject.generatorId = this._generator.id;\n }\n /**\n * Parses a serialized trail mesh\n * @param parsedMesh the serialized mesh\n * @param scene the scene to create the trail mesh in\n * @returns the created trail mesh\n */\n static Parse(parsedMesh, scene) {\n const generator = scene.getLastMeshById(parsedMesh.generatorId) ?? scene.getLastTransformNodeById(parsedMesh.generatorId);\n if (!generator) {\n throw new Error(\"TrailMesh: generator not found with ID \" + parsedMesh.generatorId);\n }\n const options = {\n diameter: parsedMesh.diameter ?? parsedMesh._diameter,\n length: parsedMesh._length,\n segments: parsedMesh._segments,\n sections: parsedMesh._sectionPolygonPointsCount,\n doNotTaper: parsedMesh._doNotTaper,\n autoStart: parsedMesh._autoStart,\n };\n return new TrailMesh(parsedMesh.name, generator, scene, options);\n }\n}\n","import { Vector3 } from \"../Maths/math.vector.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { SubMesh } from \"../Meshes/subMesh.js\";\nimport { Mesh } from \"../Meshes/mesh.js\";\nimport { AsyncLoop } from \"../Misc/tools.js\";\nimport { Epsilon } from \"../Maths/math.constants.js\";\n/**\n * Class used to specify simplification options\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/simplifyingMeshes\n */\nexport class SimplificationSettings {\n /**\n * Creates a SimplificationSettings\n * @param quality expected quality\n * @param distance distance when this optimized version should be used\n * @param optimizeMesh already optimized mesh\n */\n constructor(\n /** expected quality */\n quality, \n /** distance when this optimized version should be used */\n distance, \n /** already optimized mesh */\n optimizeMesh) {\n this.quality = quality;\n this.distance = distance;\n this.optimizeMesh = optimizeMesh;\n }\n}\n/**\n * Queue used to order the simplification tasks\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/simplifyingMeshes\n */\nexport class SimplificationQueue {\n /**\n * Creates a new queue\n */\n constructor() {\n this.running = false;\n this._simplificationArray = [];\n }\n /**\n * Adds a new simplification task\n * @param task defines a task to add\n */\n addTask(task) {\n this._simplificationArray.push(task);\n }\n /**\n * Execute next task\n */\n executeNext() {\n const task = this._simplificationArray.pop();\n if (task) {\n this.running = true;\n this.runSimplification(task);\n }\n else {\n this.running = false;\n }\n }\n /**\n * Execute a simplification task\n * @param task defines the task to run\n */\n runSimplification(task) {\n if (task.parallelProcessing) {\n //parallel simplifier\n task.settings.forEach((setting) => {\n const simplifier = this._getSimplifier(task);\n simplifier.simplify(setting, (newMesh) => {\n if (setting.distance !== undefined) {\n task.mesh.addLODLevel(setting.distance, newMesh);\n }\n newMesh.isVisible = true;\n //check if it is the last\n if (setting.quality === task.settings[task.settings.length - 1].quality && task.successCallback) {\n //all done, run the success callback.\n task.successCallback();\n }\n this.executeNext();\n });\n });\n }\n else {\n //single simplifier.\n const simplifier = this._getSimplifier(task);\n const runDecimation = (setting, callback) => {\n simplifier.simplify(setting, (newMesh) => {\n if (setting.distance !== undefined) {\n task.mesh.addLODLevel(setting.distance, newMesh);\n }\n newMesh.isVisible = true;\n //run the next quality level\n callback();\n });\n };\n AsyncLoop.Run(task.settings.length, (loop) => {\n runDecimation(task.settings[loop.index], () => {\n loop.executeNext();\n });\n }, () => {\n //execution ended, run the success callback.\n if (task.successCallback) {\n task.successCallback();\n }\n this.executeNext();\n });\n }\n }\n _getSimplifier(task) {\n switch (task.simplificationType) {\n case 0 /* SimplificationType.QUADRATIC */:\n default:\n return new QuadraticErrorSimplification(task.mesh);\n }\n }\n}\n/**\n * The implemented types of simplification\n * At the moment only Quadratic Error Decimation is implemented\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/simplifyingMeshes\n */\nexport var SimplificationType;\n(function (SimplificationType) {\n /** Quadratic error decimation */\n SimplificationType[SimplificationType[\"QUADRATIC\"] = 0] = \"QUADRATIC\";\n})(SimplificationType || (SimplificationType = {}));\nclass DecimationTriangle {\n constructor(_vertices) {\n this._vertices = _vertices;\n this.error = new Array(4);\n this.deleted = false;\n this.isDirty = false;\n this.deletePending = false;\n this.borderFactor = 0;\n }\n}\nclass DecimationVertex {\n constructor(position, id) {\n this.position = position;\n this.id = id;\n this.isBorder = true;\n this.q = new QuadraticMatrix();\n this.triangleCount = 0;\n this.triangleStart = 0;\n this.originalOffsets = [];\n }\n updatePosition(newPosition) {\n this.position.copyFrom(newPosition);\n }\n}\nclass QuadraticMatrix {\n constructor(data) {\n this.data = new Array(10);\n for (let i = 0; i < 10; ++i) {\n if (data && data[i]) {\n this.data[i] = data[i];\n }\n else {\n this.data[i] = 0;\n }\n }\n }\n det(a11, a12, a13, a21, a22, a23, a31, a32, a33) {\n const det = this.data[a11] * this.data[a22] * this.data[a33] +\n this.data[a13] * this.data[a21] * this.data[a32] +\n this.data[a12] * this.data[a23] * this.data[a31] -\n this.data[a13] * this.data[a22] * this.data[a31] -\n this.data[a11] * this.data[a23] * this.data[a32] -\n this.data[a12] * this.data[a21] * this.data[a33];\n return det;\n }\n addInPlace(matrix) {\n for (let i = 0; i < 10; ++i) {\n this.data[i] += matrix.data[i];\n }\n }\n addArrayInPlace(data) {\n for (let i = 0; i < 10; ++i) {\n this.data[i] += data[i];\n }\n }\n add(matrix) {\n const m = new QuadraticMatrix();\n for (let i = 0; i < 10; ++i) {\n m.data[i] = this.data[i] + matrix.data[i];\n }\n return m;\n }\n static FromData(a, b, c, d) {\n return new QuadraticMatrix(QuadraticMatrix.DataFromNumbers(a, b, c, d));\n }\n //returning an array to avoid garbage collection\n static DataFromNumbers(a, b, c, d) {\n return [a * a, a * b, a * c, a * d, b * b, b * c, b * d, c * c, c * d, d * d];\n }\n}\nclass Reference {\n constructor(vertexId, triangleId) {\n this.vertexId = vertexId;\n this.triangleId = triangleId;\n }\n}\n/**\n * An implementation of the Quadratic Error simplification algorithm.\n * Original paper : http://www1.cs.columbia.edu/~cs4162/html05s/garland97.pdf\n * Ported mostly from QSlim and http://voxels.blogspot.de/2014/05/quadric-mesh-simplification-with-source.html to babylon JS\n * @author RaananW\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/simplifyingMeshes\n */\nexport class QuadraticErrorSimplification {\n /**\n * Creates a new QuadraticErrorSimplification\n * @param _mesh defines the target mesh\n */\n constructor(_mesh) {\n this._mesh = _mesh;\n /** Gets or sets the number pf sync iterations */\n this.syncIterations = 5000;\n this.aggressiveness = 7;\n this.decimationIterations = 100;\n this.boundingBoxEpsilon = Epsilon;\n }\n /**\n * Simplification of a given mesh according to the given settings.\n * Since this requires computation, it is assumed that the function runs async.\n * @param settings The settings of the simplification, including quality and distance\n * @param successCallback A callback that will be called after the mesh was simplified.\n */\n simplify(settings, successCallback) {\n this._initDecimatedMesh();\n //iterating through the submeshes array, one after the other.\n AsyncLoop.Run(this._mesh.subMeshes.length, (loop) => {\n this._initWithMesh(loop.index, () => {\n this._runDecimation(settings, loop.index, () => {\n loop.executeNext();\n });\n }, settings.optimizeMesh);\n }, () => {\n setTimeout(() => {\n successCallback(this._reconstructedMesh);\n }, 0);\n });\n }\n _runDecimation(settings, submeshIndex, successCallback) {\n const targetCount = ~~(this._triangles.length * settings.quality);\n let deletedTriangles = 0;\n const triangleCount = this._triangles.length;\n const iterationFunction = (iteration, callback) => {\n setTimeout(() => {\n if (iteration % 5 === 0) {\n this._updateMesh(iteration === 0);\n }\n for (let i = 0; i < this._triangles.length; ++i) {\n this._triangles[i].isDirty = false;\n }\n const threshold = 0.000000001 * Math.pow(iteration + 3, this.aggressiveness);\n const trianglesIterator = (i) => {\n const tIdx = ~~((this._triangles.length / 2 + i) % this._triangles.length);\n const t = this._triangles[tIdx];\n if (!t) {\n return;\n }\n if (t.error[3] > threshold || t.deleted || t.isDirty) {\n return;\n }\n for (let j = 0; j < 3; ++j) {\n if (t.error[j] < threshold) {\n const deleted0 = [];\n const deleted1 = [];\n const v0 = t._vertices[j];\n const v1 = t._vertices[(j + 1) % 3];\n if (v0.isBorder || v1.isBorder) {\n continue;\n }\n const p = Vector3.Zero();\n // var n = Vector3.Zero();\n // var uv = Vector2.Zero();\n // var color = new Color4(0, 0, 0, 1);\n this._calculateError(v0, v1, p);\n const delTr = [];\n if (this._isFlipped(v0, v1, p, deleted0, delTr)) {\n continue;\n }\n if (this._isFlipped(v1, v0, p, deleted1, delTr)) {\n continue;\n }\n if (deleted0.indexOf(true) < 0 || deleted1.indexOf(true) < 0) {\n continue;\n }\n const uniqueArray = [];\n delTr.forEach((deletedT) => {\n if (uniqueArray.indexOf(deletedT) === -1) {\n deletedT.deletePending = true;\n uniqueArray.push(deletedT);\n }\n });\n if (uniqueArray.length % 2 !== 0) {\n continue;\n }\n v0.q = v1.q.add(v0.q);\n v0.updatePosition(p);\n const tStart = this._references.length;\n deletedTriangles = this._updateTriangles(v0, v0, deleted0, deletedTriangles);\n deletedTriangles = this._updateTriangles(v0, v1, deleted1, deletedTriangles);\n const tCount = this._references.length - tStart;\n if (tCount <= v0.triangleCount) {\n if (tCount) {\n for (let c = 0; c < tCount; c++) {\n this._references[v0.triangleStart + c] = this._references[tStart + c];\n }\n }\n }\n else {\n v0.triangleStart = tStart;\n }\n v0.triangleCount = tCount;\n break;\n }\n }\n };\n AsyncLoop.SyncAsyncForLoop(this._triangles.length, this.syncIterations, trianglesIterator, callback, () => {\n return triangleCount - deletedTriangles <= targetCount;\n });\n }, 0);\n };\n AsyncLoop.Run(this.decimationIterations, (loop) => {\n if (triangleCount - deletedTriangles <= targetCount) {\n loop.breakLoop();\n }\n else {\n iterationFunction(loop.index, () => {\n loop.executeNext();\n });\n }\n }, () => {\n setTimeout(() => {\n //reconstruct this part of the mesh\n this._reconstructMesh(submeshIndex);\n successCallback();\n }, 0);\n });\n }\n _initWithMesh(submeshIndex, callback, optimizeMesh) {\n this._vertices = [];\n this._triangles = [];\n const positionData = this._mesh.getVerticesData(VertexBuffer.PositionKind);\n const indices = this._mesh.getIndices();\n const submesh = this._mesh.subMeshes[submeshIndex];\n const findInVertices = (positionToSearch) => {\n if (optimizeMesh) {\n for (let ii = 0; ii < this._vertices.length; ++ii) {\n if (this._vertices[ii].position.equalsWithEpsilon(positionToSearch, 0.0001)) {\n return this._vertices[ii];\n }\n }\n }\n return null;\n };\n const vertexReferences = [];\n const vertexInit = (i) => {\n if (!positionData) {\n return;\n }\n const offset = i + submesh.verticesStart;\n const position = Vector3.FromArray(positionData, offset * 3);\n const vertex = findInVertices(position) || new DecimationVertex(position, this._vertices.length);\n vertex.originalOffsets.push(offset);\n if (vertex.id === this._vertices.length) {\n this._vertices.push(vertex);\n }\n vertexReferences.push(vertex.id);\n };\n //var totalVertices = mesh.getTotalVertices();\n const totalVertices = submesh.verticesCount;\n AsyncLoop.SyncAsyncForLoop(totalVertices, (this.syncIterations / 4) >> 0, vertexInit, () => {\n const indicesInit = (i) => {\n if (!indices) {\n return;\n }\n const offset = submesh.indexStart / 3 + i;\n const pos = offset * 3;\n const i0 = indices[pos + 0];\n const i1 = indices[pos + 1];\n const i2 = indices[pos + 2];\n const v0 = this._vertices[vertexReferences[i0 - submesh.verticesStart]];\n const v1 = this._vertices[vertexReferences[i1 - submesh.verticesStart]];\n const v2 = this._vertices[vertexReferences[i2 - submesh.verticesStart]];\n const triangle = new DecimationTriangle([v0, v1, v2]);\n triangle.originalOffset = pos;\n this._triangles.push(triangle);\n };\n AsyncLoop.SyncAsyncForLoop(submesh.indexCount / 3, this.syncIterations, indicesInit, () => {\n this._init(callback);\n });\n });\n }\n _init(callback) {\n const triangleInit1 = (i) => {\n const t = this._triangles[i];\n t.normal = Vector3.Cross(t._vertices[1].position.subtract(t._vertices[0].position), t._vertices[2].position.subtract(t._vertices[0].position)).normalize();\n for (let j = 0; j < 3; j++) {\n t._vertices[j].q.addArrayInPlace(QuadraticMatrix.DataFromNumbers(t.normal.x, t.normal.y, t.normal.z, -Vector3.Dot(t.normal, t._vertices[0].position)));\n }\n };\n AsyncLoop.SyncAsyncForLoop(this._triangles.length, this.syncIterations, triangleInit1, () => {\n const triangleInit2 = (i) => {\n const t = this._triangles[i];\n for (let j = 0; j < 3; ++j) {\n t.error[j] = this._calculateError(t._vertices[j], t._vertices[(j + 1) % 3]);\n }\n t.error[3] = Math.min(t.error[0], t.error[1], t.error[2]);\n };\n AsyncLoop.SyncAsyncForLoop(this._triangles.length, this.syncIterations, triangleInit2, () => {\n callback();\n });\n });\n }\n _reconstructMesh(submeshIndex) {\n const newTriangles = [];\n let i;\n for (i = 0; i < this._vertices.length; ++i) {\n this._vertices[i].triangleCount = 0;\n }\n let t;\n let j;\n for (i = 0; i < this._triangles.length; ++i) {\n if (!this._triangles[i].deleted) {\n t = this._triangles[i];\n for (j = 0; j < 3; ++j) {\n t._vertices[j].triangleCount = 1;\n }\n newTriangles.push(t);\n }\n }\n const newPositionData = (this._reconstructedMesh.getVerticesData(VertexBuffer.PositionKind) || []);\n const newNormalData = (this._reconstructedMesh.getVerticesData(VertexBuffer.NormalKind) || []);\n const newUVsData = (this._reconstructedMesh.getVerticesData(VertexBuffer.UVKind) || []);\n const newColorsData = (this._reconstructedMesh.getVerticesData(VertexBuffer.ColorKind) || []);\n const normalData = this._mesh.getVerticesData(VertexBuffer.NormalKind);\n const uvs = this._mesh.getVerticesData(VertexBuffer.UVKind);\n const colorsData = this._mesh.getVerticesData(VertexBuffer.ColorKind);\n let vertexCount = 0;\n for (i = 0; i < this._vertices.length; ++i) {\n const vertex = this._vertices[i];\n vertex.id = vertexCount;\n if (vertex.triangleCount) {\n vertex.originalOffsets.forEach((originalOffset) => {\n newPositionData.push(vertex.position.x);\n newPositionData.push(vertex.position.y);\n newPositionData.push(vertex.position.z);\n if (normalData && normalData.length) {\n newNormalData.push(normalData[originalOffset * 3]);\n newNormalData.push(normalData[originalOffset * 3 + 1]);\n newNormalData.push(normalData[originalOffset * 3 + 2]);\n }\n if (uvs && uvs.length) {\n newUVsData.push(uvs[originalOffset * 2]);\n newUVsData.push(uvs[originalOffset * 2 + 1]);\n }\n if (colorsData && colorsData.length) {\n newColorsData.push(colorsData[originalOffset * 4]);\n newColorsData.push(colorsData[originalOffset * 4 + 1]);\n newColorsData.push(colorsData[originalOffset * 4 + 2]);\n newColorsData.push(colorsData[originalOffset * 4 + 3]);\n }\n ++vertexCount;\n });\n }\n }\n const startingIndex = this._reconstructedMesh.getTotalIndices();\n const startingVertex = this._reconstructedMesh.getTotalVertices();\n const submeshesArray = this._reconstructedMesh.subMeshes;\n this._reconstructedMesh.subMeshes = [];\n const newIndicesArray = this._reconstructedMesh.getIndices(); //[];\n const originalIndices = this._mesh.getIndices();\n for (i = 0; i < newTriangles.length; ++i) {\n t = newTriangles[i]; //now get the new referencing point for each vertex\n [0, 1, 2].forEach((idx) => {\n const id = originalIndices[t.originalOffset + idx];\n let offset = t._vertices[idx].originalOffsets.indexOf(id);\n if (offset < 0) {\n offset = 0;\n }\n newIndicesArray.push(t._vertices[idx].id + offset + startingVertex);\n });\n }\n //overwriting the old vertex buffers and indices.\n this._reconstructedMesh.setIndices(newIndicesArray);\n this._reconstructedMesh.setVerticesData(VertexBuffer.PositionKind, newPositionData);\n if (newNormalData.length > 0) {\n this._reconstructedMesh.setVerticesData(VertexBuffer.NormalKind, newNormalData);\n }\n if (newUVsData.length > 0) {\n this._reconstructedMesh.setVerticesData(VertexBuffer.UVKind, newUVsData);\n }\n if (newColorsData.length > 0) {\n this._reconstructedMesh.setVerticesData(VertexBuffer.ColorKind, newColorsData);\n }\n //create submesh\n const originalSubmesh = this._mesh.subMeshes[submeshIndex];\n if (submeshIndex > 0) {\n this._reconstructedMesh.subMeshes = [];\n submeshesArray.forEach((submesh) => {\n SubMesh.AddToMesh(submesh.materialIndex, submesh.verticesStart, submesh.verticesCount, \n /* 0, newPositionData.length/3, */ submesh.indexStart, submesh.indexCount, submesh.getMesh());\n });\n SubMesh.AddToMesh(originalSubmesh.materialIndex, startingVertex, vertexCount, \n /* 0, newPositionData.length / 3, */ startingIndex, newTriangles.length * 3, this._reconstructedMesh);\n }\n }\n _initDecimatedMesh() {\n this._reconstructedMesh = new Mesh(this._mesh.name + \"Decimated\", this._mesh.getScene());\n this._reconstructedMesh.material = this._mesh.material;\n this._reconstructedMesh.parent = this._mesh.parent;\n this._reconstructedMesh.isVisible = false;\n this._reconstructedMesh.renderingGroupId = this._mesh.renderingGroupId;\n }\n _isFlipped(vertex1, vertex2, point, deletedArray, delTr) {\n for (let i = 0; i < vertex1.triangleCount; ++i) {\n const t = this._triangles[this._references[vertex1.triangleStart + i].triangleId];\n if (t.deleted) {\n continue;\n }\n const s = this._references[vertex1.triangleStart + i].vertexId;\n const v1 = t._vertices[(s + 1) % 3];\n const v2 = t._vertices[(s + 2) % 3];\n if (v1 === vertex2 || v2 === vertex2) {\n deletedArray[i] = true;\n delTr.push(t);\n continue;\n }\n let d1 = v1.position.subtract(point);\n d1 = d1.normalize();\n let d2 = v2.position.subtract(point);\n d2 = d2.normalize();\n if (Math.abs(Vector3.Dot(d1, d2)) > 0.999) {\n return true;\n }\n const normal = Vector3.Cross(d1, d2).normalize();\n deletedArray[i] = false;\n if (Vector3.Dot(normal, t.normal) < 0.2) {\n return true;\n }\n }\n return false;\n }\n _updateTriangles(origVertex, vertex, deletedArray, deletedTriangles) {\n let newDeleted = deletedTriangles;\n for (let i = 0; i < vertex.triangleCount; ++i) {\n const ref = this._references[vertex.triangleStart + i];\n const t = this._triangles[ref.triangleId];\n if (t.deleted) {\n continue;\n }\n if (deletedArray[i] && t.deletePending) {\n t.deleted = true;\n newDeleted++;\n continue;\n }\n t._vertices[ref.vertexId] = origVertex;\n t.isDirty = true;\n t.error[0] = this._calculateError(t._vertices[0], t._vertices[1]) + t.borderFactor / 2;\n t.error[1] = this._calculateError(t._vertices[1], t._vertices[2]) + t.borderFactor / 2;\n t.error[2] = this._calculateError(t._vertices[2], t._vertices[0]) + t.borderFactor / 2;\n t.error[3] = Math.min(t.error[0], t.error[1], t.error[2]);\n this._references.push(ref);\n }\n return newDeleted;\n }\n _identifyBorder() {\n for (let i = 0; i < this._vertices.length; ++i) {\n const vCount = [];\n const vId = [];\n const v = this._vertices[i];\n let j;\n for (j = 0; j < v.triangleCount; ++j) {\n const triangle = this._triangles[this._references[v.triangleStart + j].triangleId];\n for (let ii = 0; ii < 3; ii++) {\n let ofs = 0;\n const vv = triangle._vertices[ii];\n while (ofs < vCount.length) {\n if (vId[ofs] === vv.id) {\n break;\n }\n ++ofs;\n }\n if (ofs === vCount.length) {\n vCount.push(1);\n vId.push(vv.id);\n }\n else {\n vCount[ofs]++;\n }\n }\n }\n for (j = 0; j < vCount.length; ++j) {\n if (vCount[j] === 1) {\n this._vertices[vId[j]].isBorder = true;\n }\n else {\n this._vertices[vId[j]].isBorder = false;\n }\n }\n }\n }\n _updateMesh(identifyBorders = false) {\n let i;\n if (!identifyBorders) {\n const newTrianglesVector = [];\n for (i = 0; i < this._triangles.length; ++i) {\n if (!this._triangles[i].deleted) {\n newTrianglesVector.push(this._triangles[i]);\n }\n }\n this._triangles = newTrianglesVector;\n }\n for (i = 0; i < this._vertices.length; ++i) {\n this._vertices[i].triangleCount = 0;\n this._vertices[i].triangleStart = 0;\n }\n let t;\n let j;\n let v;\n for (i = 0; i < this._triangles.length; ++i) {\n t = this._triangles[i];\n for (j = 0; j < 3; ++j) {\n v = t._vertices[j];\n v.triangleCount++;\n }\n }\n let tStart = 0;\n for (i = 0; i < this._vertices.length; ++i) {\n this._vertices[i].triangleStart = tStart;\n tStart += this._vertices[i].triangleCount;\n this._vertices[i].triangleCount = 0;\n }\n const newReferences = new Array(this._triangles.length * 3);\n for (i = 0; i < this._triangles.length; ++i) {\n t = this._triangles[i];\n for (j = 0; j < 3; ++j) {\n v = t._vertices[j];\n newReferences[v.triangleStart + v.triangleCount] = new Reference(j, i);\n v.triangleCount++;\n }\n }\n this._references = newReferences;\n if (identifyBorders) {\n this._identifyBorder();\n }\n }\n _vertexError(q, point) {\n const x = point.x;\n const y = point.y;\n const z = point.z;\n return (q.data[0] * x * x +\n 2 * q.data[1] * x * y +\n 2 * q.data[2] * x * z +\n 2 * q.data[3] * x +\n q.data[4] * y * y +\n 2 * q.data[5] * y * z +\n 2 * q.data[6] * y +\n q.data[7] * z * z +\n 2 * q.data[8] * z +\n q.data[9]);\n }\n _calculateError(vertex1, vertex2, pointResult) {\n const q = vertex1.q.add(vertex2.q);\n const border = vertex1.isBorder && vertex2.isBorder;\n let error = 0;\n const qDet = q.det(0, 1, 2, 1, 4, 5, 2, 5, 7);\n if (qDet !== 0 && !border) {\n if (!pointResult) {\n pointResult = Vector3.Zero();\n }\n pointResult.x = (-1 / qDet) * q.det(1, 2, 3, 4, 5, 6, 5, 7, 8);\n pointResult.y = (1 / qDet) * q.det(0, 2, 3, 1, 5, 6, 2, 7, 8);\n pointResult.z = (-1 / qDet) * q.det(0, 1, 3, 1, 4, 6, 2, 5, 8);\n error = this._vertexError(q, pointResult);\n }\n else {\n const p3 = vertex1.position.add(vertex2.position).divide(new Vector3(2, 2, 2));\n //var norm3 = (vertex1.normal.add(vertex2.normal)).divide(new Vector3(2, 2, 2)).normalize();\n const error1 = this._vertexError(q, vertex1.position);\n const error2 = this._vertexError(q, vertex2.position);\n const error3 = this._vertexError(q, p3);\n error = Math.min(error1, error2, error3);\n if (error === error1) {\n if (pointResult) {\n pointResult.copyFrom(vertex1.position);\n }\n }\n else if (error === error2) {\n if (pointResult) {\n pointResult.copyFrom(vertex2.position);\n }\n }\n else {\n if (pointResult) {\n pointResult.copyFrom(p3);\n }\n }\n }\n return error;\n }\n}\n","import { Scene } from \"../scene.js\";\nimport { Mesh } from \"./mesh.js\";\nimport { SimplificationQueue } from \"./meshSimplification.js\";\nimport { SceneComponentConstants } from \"../sceneComponent.js\";\nObject.defineProperty(Scene.prototype, \"simplificationQueue\", {\n get: function () {\n if (!this._simplificationQueue) {\n this._simplificationQueue = new SimplificationQueue();\n let component = this._getComponent(SceneComponentConstants.NAME_SIMPLIFICATIONQUEUE);\n if (!component) {\n component = new SimplicationQueueSceneComponent(this);\n this._addComponent(component);\n }\n }\n return this._simplificationQueue;\n },\n set: function (value) {\n this._simplificationQueue = value;\n },\n enumerable: true,\n configurable: true,\n});\nMesh.prototype.simplify = function (settings, parallelProcessing = true, simplificationType = 0 /* SimplificationType.QUADRATIC */, successCallback) {\n this.getScene().simplificationQueue.addTask({\n settings: settings,\n parallelProcessing: parallelProcessing,\n mesh: this,\n simplificationType: simplificationType,\n successCallback: successCallback,\n });\n return this;\n};\n/**\n * Defines the simplification queue scene component responsible to help scheduling the various simplification task\n * created in a scene\n */\nexport class SimplicationQueueSceneComponent {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(scene) {\n /**\n * The component name helpfull to identify the component in the list of scene components.\n */\n this.name = SceneComponentConstants.NAME_SIMPLIFICATIONQUEUE;\n this.scene = scene;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._beforeCameraUpdateStage.registerStep(SceneComponentConstants.STEP_BEFORECAMERAUPDATE_SIMPLIFICATIONQUEUE, this, this._beforeCameraUpdate);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n // Nothing to do for this component\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n // Nothing to do for this component\n }\n _beforeCameraUpdate() {\n if (this.scene._simplificationQueue && !this.scene._simplificationQueue.running) {\n this.scene._simplificationQueue.executeNext();\n }\n }\n}\n","import { Vector3 } from \"../Maths/math.vector.js\";\nimport { VertexBuffer } from \"./buffer.js\";\nimport { Clamp } from \"../Maths/math.scalar.functions.js\";\n/**\n * Class used to represent a lattice\n * #MDVD75#18 - Moving lattice bounds\n * #MDVD75#23 - Twist\n */\nexport class Lattice {\n /**\n * @returns the string \"Lattice\"\n */\n getClassName() {\n return \"Lattice\";\n }\n /**\n * Gets the resolution on x axis\n */\n get resolutionX() {\n return this._resolutionX;\n }\n /**\n * Gets the resolution on y axis\n */\n get resolutionY() {\n return this._resolutionY;\n }\n /**\n * Gets the resolution on z axis\n */\n get resolutionZ() {\n return this._resolutionZ;\n }\n /**\n * Gets the size of the lattice along each axis in object space\n * Updating the size requires you to call update afterwards\n */\n get size() {\n return this._size;\n }\n /**\n * Gets the lattice position in object space\n */\n get position() {\n return this._position;\n }\n /**\n * Gets the data of the lattice\n */\n get data() {\n return this._data;\n }\n /**\n * Gets the size of each cell in the lattice\n */\n get cellSize() {\n return this._cellSize;\n }\n /**\n * Gets the min bounds of the lattice\n */\n get min() {\n return this._min;\n }\n /**\n * Gets the max bounds of the lattice\n */\n get max() {\n return this._max;\n }\n /**\n * Creates a new Lattice\n * @param options options for creating\n */\n constructor(options) {\n this._cellSize = new Vector3();\n // Cache\n this._min = new Vector3(-0.5, -0.5, -0.5);\n this._max = new Vector3(0.5, 0.5, 0.5);\n this._localPos = new Vector3();\n this._tmpVector = new Vector3();\n this._lerpVector0 = new Vector3();\n this._lerpVector1 = new Vector3();\n this._lerpVector2 = new Vector3();\n this._lerpVector3 = new Vector3();\n this._lerpVector4 = new Vector3();\n this._lerpVector5 = new Vector3();\n const localOptions = {\n resolutionX: 3,\n resolutionY: 3,\n resolutionZ: 3,\n position: Vector3.Zero(),\n size: Vector3.One(),\n ...options,\n };\n this._resolutionX = localOptions.resolutionX;\n this._resolutionY = localOptions.resolutionY;\n this._resolutionZ = localOptions.resolutionZ;\n this._position = localOptions.position;\n this._size = localOptions.autoAdaptToMesh ? localOptions.autoAdaptToMesh.getBoundingInfo().boundingBox.extendSize.scale(2) : localOptions.size;\n // Allocate data\n this._allocateData();\n this.update();\n }\n _allocateData() {\n this._data = new Array(this.resolutionX);\n for (let i = 0; i < this.resolutionX; i++) {\n this._data[i] = new Array(this.resolutionY);\n for (let j = 0; j < this.resolutionY; j++) {\n this._data[i][j] = new Array(this.resolutionZ);\n for (let k = 0; k < this.resolutionZ; k++) {\n this._data[i][j][k] = Vector3.Zero();\n }\n }\n }\n }\n /**\n * Update of the lattice data\n */\n update() {\n for (let i = 0; i < this.resolutionX; i++) {\n for (let j = 0; j < this.resolutionY; j++) {\n for (let k = 0; k < this.resolutionZ; k++) {\n const x = -this.size.x / 2 + this.size.x * (i / (this.resolutionX - 1));\n const y = -this.size.y / 2 + this.size.y * (j / (this.resolutionY - 1));\n const z = -this.size.z / 2 + this.size.z * (k / (this.resolutionZ - 1));\n this._data[i][j][k].set(x, y, z);\n }\n }\n }\n }\n /**\n * Apply the lattice to a mesh\n * @param mesh mesh to deform\n */\n deformMesh(mesh) {\n const positions = mesh.getVerticesData(VertexBuffer.PositionKind);\n if (!positions) {\n return;\n }\n // Apply the lattice\n this.deform(positions);\n // Update back the mesh\n mesh.setVerticesData(VertexBuffer.PositionKind, positions, true);\n }\n /**\n * Update the lattice internals (like min, max and cell size)\n */\n updateInternals() {\n const nx = this._resolutionX;\n const ny = this._resolutionY;\n const nz = this._resolutionZ;\n // Calculate the size of each cell in the lattice\n this._cellSize.set(this.size.x / (nx - 1), this.size.y / (ny - 1), this.size.z / (nz - 1));\n // Calculate the lattice bounds\n this._min.set(this.position.x - this.size.x / 2, this.position.y - this.size.y / 2, this.position.z - this.size.z / 2);\n this._min.addToRef(this._size, this._max);\n }\n /**\n * Apply the lattice to a set of points\n * @param positions vertex data to deform\n * @param target optional target array to store the result (operation will be done in place in not defined)\n */\n deform(positions, target) {\n const nx = this._resolutionX;\n const ny = this._resolutionY;\n const nz = this._resolutionZ;\n this.updateInternals();\n const min = this._min;\n const max = this._max;\n // Loop over each vertex\n for (let i = 0; i < positions.length; i += 3) {\n const vertex = this._tmpVector.fromArray(positions, i);\n // Check we are inside\n if (vertex.x < min.x || vertex.x > max.x || vertex.y < min.y || vertex.y > max.y || vertex.z < min.z || vertex.z > max.z) {\n if (target) {\n vertex.toArray(target, i);\n }\n continue;\n }\n // Map vertex position to lattice local coordinates\n const localPos = this._localPos.set((vertex.x - min.x) / this._cellSize.x, (vertex.y - min.y) / this._cellSize.y, (vertex.z - min.z) / this._cellSize.z);\n // Get integer lattice indices\n const i0 = Math.floor(localPos.x);\n const j0 = Math.floor(localPos.y);\n const k0 = Math.floor(localPos.z);\n const i1 = Math.min(i0 + 1, nx - 1);\n const j1 = Math.min(j0 + 1, ny - 1);\n const k1 = Math.min(k0 + 1, nz - 1);\n // Compute interpolation weights\n const tx = localPos.x - i0;\n const ty = localPos.y - j0;\n const tz = localPos.z - k0;\n // Ensure indices are within bounds\n const ii0 = Clamp(i0, 0, nx - 1);\n const jj0 = Clamp(j0, 0, ny - 1);\n const kk0 = Clamp(k0, 0, nz - 1);\n const ii1 = Clamp(i1, 0, nx - 1);\n const jj1 = Clamp(j1, 0, ny - 1);\n const kk1 = Clamp(k1, 0, nz - 1);\n // Get lattice control points\n const p000 = this._data[ii0][jj0][kk0];\n const p100 = this._data[ii1][jj0][kk0];\n const p010 = this._data[ii0][jj1][kk0];\n const p110 = this._data[ii1][jj1][kk0];\n const p001 = this._data[ii0][jj0][kk1];\n const p101 = this._data[ii1][jj0][kk1];\n const p011 = this._data[ii0][jj1][kk1];\n const p111 = this._data[ii1][jj1][kk1];\n // Trilinear interpolation\n const p00 = Vector3.LerpToRef(p000, p100, tx, this._lerpVector0);\n const p01 = Vector3.LerpToRef(p001, p101, tx, this._lerpVector1);\n const p10 = Vector3.LerpToRef(p010, p110, tx, this._lerpVector2);\n const p11 = Vector3.LerpToRef(p011, p111, tx, this._lerpVector3);\n const p0 = Vector3.LerpToRef(p00, p10, ty, this._lerpVector4);\n const p1 = Vector3.LerpToRef(p01, p11, ty, this._lerpVector5);\n const deformedPos = Vector3.LerpToRef(p0, p1, tz, this._lerpVector0);\n deformedPos.addInPlace(this.position);\n // Apply deformation to the vertex\n deformedPos.toArray(target || positions, i);\n }\n }\n}\n","import { GreasedLinePluginMaterial } from \"../../Materials/GreasedLine/greasedLinePluginMaterial.js\";\nimport { Mesh } from \"../mesh.js\";\nimport { Buffer } from \"../../Buffers/buffer.js\";\nimport { VertexData } from \"../mesh.vertexData.js\";\nimport { DeepCopier } from \"../../Misc/deepCopier.js\";\nimport { GreasedLineSimpleMaterial } from \"../../Materials/GreasedLine/greasedLineSimpleMaterial.js\";\nimport { GreasedLineTools } from \"../../Misc/greasedLineTools.js\";\n/**\n * In POINTS_MODE_POINTS every array of points will become the center (backbone) of the ribbon. The ribbon will be expanded by `width / 2` to `+direction` and `-direction` as well.\n * In POINTS_MODE_PATHS every array of points specifies an edge. These will be used to build one ribbon.\n */\nexport var GreasedLineRibbonPointsMode;\n(function (GreasedLineRibbonPointsMode) {\n GreasedLineRibbonPointsMode[GreasedLineRibbonPointsMode[\"POINTS_MODE_POINTS\"] = 0] = \"POINTS_MODE_POINTS\";\n GreasedLineRibbonPointsMode[GreasedLineRibbonPointsMode[\"POINTS_MODE_PATHS\"] = 1] = \"POINTS_MODE_PATHS\";\n})(GreasedLineRibbonPointsMode || (GreasedLineRibbonPointsMode = {}));\n/**\n * FACES_MODE_SINGLE_SIDED single sided with back face culling. Default value.\n * FACES_MODE_SINGLE_SIDED_NO_BACKFACE_CULLING single sided without back face culling. Sets backFaceCulling = false on the material so it affects all line ribbons added to the line ribbon instance.\n * FACES_MODE_DOUBLE_SIDED extra back faces are created. This doubles the amount of faces of the mesh.\n */\nexport var GreasedLineRibbonFacesMode;\n(function (GreasedLineRibbonFacesMode) {\n GreasedLineRibbonFacesMode[GreasedLineRibbonFacesMode[\"FACES_MODE_SINGLE_SIDED\"] = 0] = \"FACES_MODE_SINGLE_SIDED\";\n GreasedLineRibbonFacesMode[GreasedLineRibbonFacesMode[\"FACES_MODE_SINGLE_SIDED_NO_BACKFACE_CULLING\"] = 1] = \"FACES_MODE_SINGLE_SIDED_NO_BACKFACE_CULLING\";\n GreasedLineRibbonFacesMode[GreasedLineRibbonFacesMode[\"FACES_MODE_DOUBLE_SIDED\"] = 2] = \"FACES_MODE_DOUBLE_SIDED\";\n})(GreasedLineRibbonFacesMode || (GreasedLineRibbonFacesMode = {}));\n/**\n * Only with POINTS_MODE_PATHS.\n * AUTO_DIRECTIONS_FROM_FIRST_SEGMENT sets the direction (slope) of the ribbon from the direction of the first line segment. Recommended.\n * AUTO_DIRECTIONS_FROM_ALL_SEGMENTS in this mode the direction (slope) will be calculated for each line segment according to the direction vector between each point of the line segments. Slow method.\n * AUTO_DIRECTIONS_ENHANCED in this mode the direction (slope) will be calculated for each line segment according to the direction vector between each point of the line segments using a more sophisitcaed algorithm. Slowest method.\n * AUTO_DIRECTIONS_FACE_TO in this mode the direction (slope) will be calculated for each line segment according to the direction vector between each point of the line segments and a direction (face-to) vector specified in direction. The resulting line will face to the direction of this face-to vector.\n * AUTO_DIRECTIONS_NONE you have to set the direction (slope) manually. Recommended.\n */\nexport var GreasedLineRibbonAutoDirectionMode;\n(function (GreasedLineRibbonAutoDirectionMode) {\n GreasedLineRibbonAutoDirectionMode[GreasedLineRibbonAutoDirectionMode[\"AUTO_DIRECTIONS_FROM_FIRST_SEGMENT\"] = 0] = \"AUTO_DIRECTIONS_FROM_FIRST_SEGMENT\";\n GreasedLineRibbonAutoDirectionMode[GreasedLineRibbonAutoDirectionMode[\"AUTO_DIRECTIONS_FROM_ALL_SEGMENTS\"] = 1] = \"AUTO_DIRECTIONS_FROM_ALL_SEGMENTS\";\n GreasedLineRibbonAutoDirectionMode[GreasedLineRibbonAutoDirectionMode[\"AUTO_DIRECTIONS_ENHANCED\"] = 2] = \"AUTO_DIRECTIONS_ENHANCED\";\n GreasedLineRibbonAutoDirectionMode[GreasedLineRibbonAutoDirectionMode[\"AUTO_DIRECTIONS_FACE_TO\"] = 3] = \"AUTO_DIRECTIONS_FACE_TO\";\n GreasedLineRibbonAutoDirectionMode[GreasedLineRibbonAutoDirectionMode[\"AUTO_DIRECTIONS_NONE\"] = 99] = \"AUTO_DIRECTIONS_NONE\";\n})(GreasedLineRibbonAutoDirectionMode || (GreasedLineRibbonAutoDirectionMode = {}));\n/**\n * GreasedLineBaseMesh\n */\nexport class GreasedLineBaseMesh extends Mesh {\n constructor(name, scene, _options) {\n super(name, scene, null, null, false, false);\n this.name = name;\n this._options = _options;\n this._lazy = false;\n this._updatable = false;\n this._engine = scene.getEngine();\n this._lazy = _options.lazy ?? false;\n this._updatable = _options.updatable ?? false;\n this._vertexPositions = [];\n this._indices = [];\n this._uvs = [];\n this._points = [];\n this._colorPointers = _options.colorPointers ?? [];\n this._widths = _options.widths ?? new Array(_options.points.length).fill(1);\n }\n /**\n * \"GreasedLineMesh\"\n * @returns \"GreasedLineMesh\"\n */\n getClassName() {\n return \"GreasedLineMesh\";\n }\n _updateWidthsWithValue(defaulValue) {\n let pointCount = 0;\n for (const points of this._points) {\n pointCount += points.length;\n }\n const countDiff = (pointCount / 3) * 2 - this._widths.length;\n for (let i = 0; i < countDiff; i++) {\n this._widths.push(defaulValue);\n }\n }\n /**\n * Updated a lazy line. Rerenders the line and updates boundinfo as well.\n */\n updateLazy() {\n this._setPoints(this._points);\n if (!this._options.colorPointers) {\n this._updateColorPointers();\n }\n this._createVertexBuffers(this._options.ribbonOptions?.smoothShading);\n !this.doNotSyncBoundingInfo && this.refreshBoundingInfo();\n this.greasedLineMaterial?.updateLazy();\n }\n /**\n * Adds new points to the line. It doesn't rerenders the line if in lazy mode.\n * @param points points table\n * @param options optional options\n */\n addPoints(points, options) {\n for (const p of points) {\n this._points.push(p);\n }\n if (!this._lazy) {\n this.setPoints(this._points, options);\n }\n }\n /**\n * Dispose the line and it's resources\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\n */\n dispose(doNotRecurse, disposeMaterialAndTextures = false) {\n super.dispose(doNotRecurse, disposeMaterialAndTextures);\n }\n /**\n * @returns true if the mesh was created in lazy mode\n */\n isLazy() {\n return this._lazy;\n }\n /**\n * Returns the UVs\n */\n get uvs() {\n return this._uvs;\n }\n /**\n * Sets the UVs\n * @param uvs the UVs\n */\n set uvs(uvs) {\n this._uvs = uvs instanceof Float32Array ? uvs : new Float32Array(uvs);\n this._createVertexBuffers();\n }\n /**\n * Returns the points offsets\n * Return the points offsets\n */\n get offsets() {\n return this._offsets;\n }\n /**\n * Sets point offests\n * @param offsets offset table [x,y,z, x,y,z, ....]\n */\n set offsets(offsets) {\n this._offsets = offsets;\n if (!this._offsetsBuffer) {\n this._createOffsetsBuffer(offsets);\n }\n else {\n this._offsetsBuffer.update(offsets);\n }\n }\n /**\n * Gets widths at each line point like [widthLower, widthUpper, widthLower, widthUpper, ...]\n */\n get widths() {\n return this._widths;\n }\n /**\n * Sets widths at each line point\n * @param widths width table [widthLower, widthUpper, widthLower, widthUpper ...]\n */\n set widths(widths) {\n this._widths = widths;\n if (!this._lazy) {\n this._widthsBuffer && this._widthsBuffer.update(widths);\n }\n }\n /**\n * Gets the color pointer. Each vertex need a color pointer. These color pointers points to the colors in the color table @see colors\n */\n get colorPointers() {\n return this._colorPointers;\n }\n /**\n * Sets the color pointer\n * @param colorPointers array of color pointer in the colors array. One pointer for every vertex is needed.\n */\n set colorPointers(colorPointers) {\n this._colorPointers = colorPointers;\n if (!this._lazy) {\n this._colorPointersBuffer && this._colorPointersBuffer.update(colorPointers);\n }\n }\n /**\n * Gets the pluginMaterial associated with line\n */\n get greasedLineMaterial() {\n if (this.material && this.material instanceof GreasedLineSimpleMaterial) {\n return this.material;\n }\n const materialPlugin = this.material?.pluginManager?.getPlugin(GreasedLinePluginMaterial.GREASED_LINE_MATERIAL_NAME);\n if (materialPlugin) {\n return materialPlugin;\n }\n return;\n }\n /**\n * Return copy the points.\n */\n get points() {\n const pointsCopy = [];\n DeepCopier.DeepCopy(this._points, pointsCopy);\n return pointsCopy;\n }\n /**\n * Sets line points and rerenders the line.\n * @param points points table\n * @param options optional options\n */\n setPoints(points, options) {\n this._points = GreasedLineTools.ConvertPoints(points, options?.pointsOptions ?? this._options.pointsOptions);\n this._updateWidths();\n if (!options?.colorPointers) {\n this._updateColorPointers();\n }\n this._setPoints(this._points, options);\n }\n _initGreasedLine() {\n this._vertexPositions = [];\n this._indices = [];\n this._uvs = [];\n }\n _createLineOptions() {\n const lineOptions = {\n points: this._points,\n colorPointers: this._colorPointers,\n lazy: this._lazy,\n updatable: this._updatable,\n uvs: this._uvs,\n widths: this._widths,\n ribbonOptions: this._options.ribbonOptions,\n };\n return lineOptions;\n }\n /**\n * Serializes this GreasedLineMesh\n * @param serializationObject object to write serialization to\n */\n serialize(serializationObject) {\n super.serialize(serializationObject);\n serializationObject.type = this.getClassName();\n serializationObject.lineOptions = this._createLineOptions();\n }\n _createVertexBuffers(computeNormals = false) {\n const vertexData = new VertexData();\n vertexData.positions = this._vertexPositions;\n vertexData.indices = this._indices;\n vertexData.uvs = this._uvs;\n if (computeNormals) {\n vertexData.normals = [];\n VertexData.ComputeNormals(this._vertexPositions, this._indices, vertexData.normals);\n }\n vertexData.applyToMesh(this, this._options.updatable);\n return vertexData;\n }\n _createOffsetsBuffer(offsets) {\n const engine = this._scene.getEngine();\n const offsetBuffer = new Buffer(engine, offsets, this._updatable, 3);\n this.setVerticesBuffer(offsetBuffer.createVertexBuffer(\"grl_offsets\", 0, 3));\n this._offsetsBuffer = offsetBuffer;\n }\n}\n","import { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Mesh } from \"../mesh.js\";\nimport { Buffer, VertexBuffer } from \"../../Buffers/buffer.js\";\nimport { PickingInfo } from \"../../Collisions/pickingInfo.js\";\nimport { DeepCopier } from \"../../Misc/deepCopier.js\";\nimport { GreasedLineTools } from \"../../Misc/greasedLineTools.js\";\nimport { GreasedLineBaseMesh } from \"./greasedLineBaseMesh.js\";\nMesh._GreasedLineMeshParser = (parsedMesh, scene) => {\n return GreasedLineMesh.Parse(parsedMesh, scene);\n};\n/**\n * GreasedLineMesh\n * Use the GreasedLineBuilder.CreateGreasedLine function to create an instance of this class.\n */\nexport class GreasedLineMesh extends GreasedLineBaseMesh {\n /**\n * GreasedLineMesh\n * @param name name of the mesh\n * @param scene the scene\n * @param _options mesh options\n */\n constructor(name, scene, _options) {\n super(name, scene, _options);\n this.name = name;\n /**\n * Treshold used to pick the mesh\n */\n this.intersectionThreshold = 0.1;\n this._previousAndSide = [];\n this._nextAndCounters = [];\n if (_options.points) {\n this.addPoints(GreasedLineTools.ConvertPoints(_options.points));\n }\n }\n /**\n * \"GreasedLineMesh\"\n * @returns \"GreasedLineMesh\"\n */\n getClassName() {\n return \"GreasedLineMesh\";\n }\n _updateColorPointers() {\n if (this._options.colorPointers) {\n return;\n }\n let colorPointer = 0;\n this._colorPointers = [];\n this._points.forEach((p) => {\n for (let jj = 0; jj < p.length; jj += 3) {\n this._colorPointers.push(colorPointer);\n this._colorPointers.push(colorPointer++);\n }\n });\n }\n _updateWidths() {\n // intentionally left blank\n }\n _setPoints(points) {\n this._points = points;\n this._options.points = points;\n this._initGreasedLine();\n let indiceOffset = 0;\n let vertexPositionsLen = 0, indicesLength = 0, uvLength = 0, previousAndSideLength = 0;\n points.forEach((p) => {\n vertexPositionsLen += p.length * 2;\n indicesLength += (p.length - 3) * 2;\n uvLength += (p.length * 4) / 3;\n previousAndSideLength += (p.length * 8) / 3;\n });\n const vertexPositionsArr = new Float32Array(vertexPositionsLen);\n const indicesArr = vertexPositionsLen > 65535 ? new Uint32Array(indicesLength) : new Uint16Array(indicesLength);\n const uvArr = new Float32Array(uvLength);\n const previousAndSide = new Float32Array(previousAndSideLength);\n // it's the same length here\n const nextAndCounters = new Float32Array(previousAndSideLength);\n let vertexPositionsOffset = 0, indicesOffset = 0, uvOffset = 0, previousAndSideOffset = 0, nextAndCountersOffset = 0;\n points.forEach((p) => {\n const lengthArray = GreasedLineTools.GetLineLengthArray(p);\n const totalLength = lengthArray[lengthArray.length - 1];\n for (let j = 0, jj = 0; jj < p.length; j++, jj += 3) {\n const baseOffset = vertexPositionsOffset + jj * 2;\n vertexPositionsArr[baseOffset + 0] = p[jj + 0];\n vertexPositionsArr[baseOffset + 1] = p[jj + 1];\n vertexPositionsArr[baseOffset + 2] = p[jj + 2];\n vertexPositionsArr[baseOffset + 3] = p[jj + 0];\n vertexPositionsArr[baseOffset + 4] = p[jj + 1];\n vertexPositionsArr[baseOffset + 5] = p[jj + 2];\n if (jj < p.length - 3) {\n const n = j * 2 + indiceOffset;\n const baseIndicesOffset = indicesOffset + jj * 2;\n indicesArr[baseIndicesOffset + 0] = n;\n indicesArr[baseIndicesOffset + 1] = n + 1;\n indicesArr[baseIndicesOffset + 2] = n + 2;\n indicesArr[baseIndicesOffset + 3] = n + 2;\n indicesArr[baseIndicesOffset + 4] = n + 1;\n indicesArr[baseIndicesOffset + 5] = n + 3;\n }\n }\n indiceOffset += (p.length / 3) * 2;\n const currVertexPositionsOffsetLength = p.length * 2;\n const positions = vertexPositionsArr.subarray(vertexPositionsOffset, vertexPositionsOffset + currVertexPositionsOffsetLength);\n vertexPositionsOffset += currVertexPositionsOffsetLength;\n indicesOffset += (p.length - 3) * 2;\n const previous = new Float32Array(positions.length);\n const next = new Float32Array(positions.length);\n const l = positions.length / 6;\n let v;\n if (GreasedLineMesh._CompareV3(0, l - 1, positions)) {\n v = positions.subarray((l - 2) * 6, (l - 1) * 6);\n }\n else {\n v = positions.subarray(0, 6);\n }\n previous.set(v);\n previous.set(positions.subarray(0, positions.length - 6), 6);\n next.set(positions.subarray(6));\n if (GreasedLineMesh._CompareV3(l - 1, 0, positions)) {\n v = positions.subarray(6, 12);\n }\n else {\n v = positions.subarray((l - 1) * 6, l * 6);\n }\n next.set(v, next.length - 6);\n for (let i = 0, sidesLength = positions.length / 3; i < sidesLength; i++) {\n previousAndSide[previousAndSideOffset++] = previous[i * 3];\n previousAndSide[previousAndSideOffset++] = previous[i * 3 + 1];\n previousAndSide[previousAndSideOffset++] = previous[i * 3 + 2];\n // side[i] = i % 2 ? -1 : 1;\n // side[i] = 1 - ((i & 1) << 1);\n previousAndSide[previousAndSideOffset++] = 1 - ((i & 1) << 1);\n nextAndCounters[nextAndCountersOffset++] = next[i * 3];\n nextAndCounters[nextAndCountersOffset++] = next[i * 3 + 1];\n nextAndCounters[nextAndCountersOffset++] = next[i * 3 + 2];\n // counters[i] = lengthArray[i >> 1] / totalLength;\n nextAndCounters[nextAndCountersOffset++] = lengthArray[i >> 1] / totalLength;\n }\n if (this._options.uvs) {\n for (let i = 0; i < this._options.uvs.length; i++) {\n uvArr[uvOffset++] = this._options.uvs[i];\n }\n }\n else {\n for (let j = 0; j < l; j++) {\n // uvs\n const lengthRatio = lengthArray[j] / totalLength;\n const uvOffsetBase = uvOffset + j * 4;\n uvArr[uvOffsetBase + 0] = lengthRatio;\n uvArr[uvOffsetBase + 1] = 0;\n uvArr[uvOffsetBase + 2] = lengthRatio;\n uvArr[uvOffsetBase + 3] = 1;\n }\n }\n });\n this._vertexPositions = vertexPositionsArr;\n this._indices = indicesArr;\n this._uvs = uvArr;\n this._previousAndSide = previousAndSide;\n this._nextAndCounters = nextAndCounters;\n if (!this._lazy) {\n if (!this._options.colorPointers) {\n this._updateColorPointers();\n }\n this._createVertexBuffers();\n !this.doNotSyncBoundingInfo && this.refreshBoundingInfo();\n }\n }\n /**\n * Clones the GreasedLineMesh.\n * @param name new line name\n * @param newParent new parent node\n * @returns cloned line\n */\n clone(name = `${this.name}-cloned`, newParent) {\n const lineOptions = this._createLineOptions();\n const deepCopiedLineOptions = {};\n DeepCopier.DeepCopy(lineOptions, deepCopiedLineOptions, [\"instance\"], undefined, true);\n const cloned = new GreasedLineMesh(name, this._scene, deepCopiedLineOptions);\n if (newParent) {\n cloned.parent = newParent;\n }\n cloned.material = this.material;\n return cloned;\n }\n /**\n * Serializes this GreasedLineMesh\n * @param serializationObject object to write serialization to\n */\n serialize(serializationObject) {\n super.serialize(serializationObject);\n serializationObject.type = this.getClassName();\n serializationObject.lineOptions = this._createLineOptions();\n }\n /**\n * Parses a serialized GreasedLineMesh\n * @param parsedMesh the serialized GreasedLineMesh\n * @param scene the scene to create the GreasedLineMesh in\n * @returns the created GreasedLineMesh\n */\n static Parse(parsedMesh, scene) {\n const lineOptions = parsedMesh.lineOptions;\n const name = parsedMesh.name;\n const result = new GreasedLineMesh(name, scene, lineOptions);\n return result;\n }\n _initGreasedLine() {\n super._initGreasedLine();\n this._previousAndSide = [];\n this._nextAndCounters = [];\n }\n /**\n * Checks whether a ray is intersecting this GreasedLineMesh\n * @param ray ray to check the intersection of this mesh with\n * @param fastCheck not supported\n * @param trianglePredicate not supported\n * @param onlyBoundingInfo defines a boolean indicating if picking should only happen using bounding info (false by default)\n * @param worldToUse not supported\n * @param skipBoundingInfo a boolean indicating if we should skip the bounding info check\n * @returns the picking info\n */\n intersects(ray, fastCheck, trianglePredicate, onlyBoundingInfo = false, worldToUse, skipBoundingInfo = false) {\n const pickingInfo = new PickingInfo();\n const intersections = this.findAllIntersections(ray, fastCheck, trianglePredicate, onlyBoundingInfo, worldToUse, skipBoundingInfo, true);\n if (intersections?.length === 1) {\n const intersection = intersections[0];\n pickingInfo.hit = true;\n pickingInfo.distance = intersection.distance;\n pickingInfo.ray = ray;\n pickingInfo.pickedMesh = this;\n pickingInfo.pickedPoint = intersection.point;\n }\n return pickingInfo;\n }\n /**\n * Gets all intersections of a ray and the line\n * @param ray Ray to check the intersection of this mesh with\n * @param _fastCheck not supported\n * @param _trianglePredicate not supported\n * @param onlyBoundingInfo defines a boolean indicating if picking should only happen using bounding info (false by default)\n * @param _worldToUse not supported\n * @param skipBoundingInfo a boolean indicating if we should skip the bounding info check\n * @param firstOnly If true, the first and only intersection is immediatelly returned if found\n * @returns intersection(s)\n */\n findAllIntersections(ray, _fastCheck, _trianglePredicate, onlyBoundingInfo = false, _worldToUse, skipBoundingInfo = false, firstOnly = false) {\n if (onlyBoundingInfo && !skipBoundingInfo && ray.intersectsSphere(this._boundingSphere, this.intersectionThreshold) === false) {\n return;\n }\n const indices = this.getIndices();\n const positions = this.getVerticesData(VertexBuffer.PositionKind);\n const widths = this._widths;\n const lineWidth = this.greasedLineMaterial?.width ?? 1;\n const intersects = [];\n if (indices && positions && widths) {\n let i = 0, l = 0;\n for (i = 0, l = indices.length - 1; i < l; i += 3) {\n const a = indices[i];\n const b = indices[i + 1];\n GreasedLineMesh._V_START.fromArray(positions, a * 3);\n GreasedLineMesh._V_END.fromArray(positions, b * 3);\n if (this._offsets) {\n GreasedLineMesh._V_OFFSET_START.fromArray(this._offsets, a * 3);\n GreasedLineMesh._V_OFFSET_END.fromArray(this._offsets, b * 3);\n GreasedLineMesh._V_START.addInPlace(GreasedLineMesh._V_OFFSET_START);\n GreasedLineMesh._V_END.addInPlace(GreasedLineMesh._V_OFFSET_END);\n }\n const iFloored = Math.floor(i / 3);\n const width = widths[iFloored] !== undefined ? widths[iFloored] : 1;\n const precision = (this.intersectionThreshold * (lineWidth * width)) / 2;\n const distance = ray.intersectionSegment(GreasedLineMesh._V_START, GreasedLineMesh._V_END, precision);\n if (distance !== -1) {\n intersects.push({\n distance: distance,\n point: ray.direction.normalize().multiplyByFloats(distance, distance, distance).add(ray.origin),\n });\n if (firstOnly) {\n return intersects;\n }\n }\n }\n i = l;\n }\n return intersects;\n }\n get _boundingSphere() {\n return this.getBoundingInfo().boundingSphere;\n }\n static _CompareV3(positionIdx1, positionIdx2, positions) {\n const arrayIdx1 = positionIdx1 * 6;\n const arrayIdx2 = positionIdx2 * 6;\n return positions[arrayIdx1] === positions[arrayIdx2] && positions[arrayIdx1 + 1] === positions[arrayIdx2 + 1] && positions[arrayIdx1 + 2] === positions[arrayIdx2 + 2];\n }\n _createVertexBuffers() {\n const vertexData = super._createVertexBuffers();\n const engine = this._scene.getEngine();\n const previousAndSideBuffer = new Buffer(engine, this._previousAndSide, false, 4);\n this.setVerticesBuffer(previousAndSideBuffer.createVertexBuffer(\"grl_previousAndSide\", 0, 4));\n const nextAndCountersBuffer = new Buffer(engine, this._nextAndCounters, false, 4);\n this.setVerticesBuffer(nextAndCountersBuffer.createVertexBuffer(\"grl_nextAndCounters\", 0, 4));\n const widthBuffer = new Buffer(engine, this._widths, this._updatable, 1);\n this.setVerticesBuffer(widthBuffer.createVertexBuffer(\"grl_widths\", 0, 1));\n this._widthsBuffer = widthBuffer;\n const colorPointersBuffer = new Buffer(engine, this._colorPointers, this._updatable, 1);\n this.setVerticesBuffer(colorPointersBuffer.createVertexBuffer(\"grl_colorPointers\", 0, 1));\n this._colorPointersBuffer = colorPointersBuffer;\n return vertexData;\n }\n}\nGreasedLineMesh._V_START = new Vector3();\nGreasedLineMesh._V_END = new Vector3();\nGreasedLineMesh._V_OFFSET_START = new Vector3();\nGreasedLineMesh._V_OFFSET_END = new Vector3();\n","import { Quaternion, TmpVectors, Vector3 } from \"../../Maths/math.vector.js\";\nimport { Mesh } from \"../mesh.js\";\nimport { Buffer } from \"../../Buffers/buffer.js\";\nimport { DeepCopier } from \"../../Misc/deepCopier.js\";\nimport { GreasedLineTools } from \"../../Misc/greasedLineTools.js\";\nimport { GreasedLineBaseMesh } from \"./greasedLineBaseMesh.js\";\nMesh._GreasedLineRibbonMeshParser = (parsedMesh, scene) => {\n return GreasedLineRibbonMesh.Parse(parsedMesh, scene);\n};\n/**\n * GreasedLineRibbonMesh\n * Use the GreasedLineBuilder.CreateGreasedLine function to create an instance of this class.\n */\nexport class GreasedLineRibbonMesh extends GreasedLineBaseMesh {\n /**\n * GreasedLineRibbonMesh\n * @param name name of the mesh\n * @param scene the scene\n * @param _options mesh options\n * @param _pathOptions used internaly when parsing a serialized GreasedLineRibbonMesh\n */\n constructor(name, scene, _options, _pathOptions) {\n super(name, scene, _options);\n this.name = name;\n if (!_options.ribbonOptions) {\n // eslint-disable-next-line no-throw-literal\n throw \"'GreasedLineMeshOptions.ribbonOptions' is not set.\";\n }\n this._paths = [];\n this._counters = [];\n this._slopes = [];\n this._widths = _options.widths ?? [];\n this._ribbonWidths = [];\n this._pathsOptions = _pathOptions ?? [];\n if (_options.points) {\n this.addPoints(GreasedLineTools.ConvertPoints(_options.points), _options, !!_pathOptions);\n }\n }\n /**\n * Adds new points to the line. It doesn't rerenders the line if in lazy mode.\n * @param points points table\n * @param options mesh options\n * @param hasPathOptions defaults to false\n */\n addPoints(points, options, hasPathOptions = false) {\n if (!options.ribbonOptions) {\n // eslint-disable-next-line no-throw-literal\n throw \"addPoints() on GreasedLineRibbonMesh instance requires 'GreasedLineMeshOptions.ribbonOptions'.\";\n }\n if (!hasPathOptions) {\n this._pathsOptions.push({ options, pathCount: points.length });\n }\n super.addPoints(points, options);\n }\n /**\n * \"GreasedLineRibbonMesh\"\n * @returns \"GreasedLineRibbonMesh\"\n */\n getClassName() {\n return \"GreasedLineRibbonMesh\";\n }\n /**\n * Return true if the line was created from two edge paths or one points path.\n * In this case the line is always flat.\n */\n get isFlatLine() {\n return this._paths.length < 3;\n }\n /**\n * Returns the slopes of the line at each point relative to the center of the line\n */\n get slopes() {\n return this._slopes;\n }\n /**\n * Set the slopes of the line at each point relative to the center of the line\n */\n set slopes(slopes) {\n this._slopes = slopes;\n }\n _updateColorPointers() {\n if (this._options.colorPointers) {\n return;\n }\n let colorPointer = 0;\n this._colorPointers = [];\n for (let i = 0; i < this._pathsOptions.length; i++) {\n const { options: pathOptions, pathCount } = this._pathsOptions[i];\n const points = this._points[i];\n if (pathOptions.ribbonOptions.pointsMode === 0 /* GreasedLineRibbonPointsMode.POINTS_MODE_POINTS */) {\n for (let k = 0; k < pathCount; k++) {\n for (let j = 0; j < points.length; j += 3) {\n this._colorPointers.push(colorPointer);\n this._colorPointers.push(colorPointer++);\n }\n }\n }\n else {\n for (let j = 0; j < points.length; j += 3) {\n for (let k = 0; k < pathCount; k++) {\n this._colorPointers.push(colorPointer);\n }\n colorPointer++;\n }\n }\n }\n }\n _updateWidths() {\n super._updateWidthsWithValue(1);\n }\n _setPoints(points, _options) {\n if (!this._options.ribbonOptions) {\n // eslint-disable-next-line no-throw-literal\n throw \"No 'GreasedLineMeshOptions.ribbonOptions' provided.\";\n }\n this._points = points;\n this._options.points = points;\n this._initGreasedLine();\n let indiceOffset = 0;\n let directionPlanes;\n for (let i = 0, c = 0; i < this._pathsOptions.length; i++) {\n const { options: pathOptions, pathCount } = this._pathsOptions[i];\n const subPoints = points.slice(c, c + pathCount);\n c += pathCount;\n if (pathOptions.ribbonOptions?.pointsMode === 1 /* GreasedLineRibbonPointsMode.POINTS_MODE_PATHS */) {\n indiceOffset = this._preprocess(GreasedLineTools.ToVector3Array(subPoints), indiceOffset, pathOptions);\n }\n else {\n if (pathOptions.ribbonOptions?.directionsAutoMode === 99 /* GreasedLineRibbonAutoDirectionMode.AUTO_DIRECTIONS_NONE */) {\n if (!pathOptions.ribbonOptions.directions) {\n // eslint-disable-next-line no-throw-literal\n throw \"In GreasedLineRibbonAutoDirectionMode.AUTO_DIRECTIONS_NONE 'GreasedLineMeshOptions.ribbonOptions.directions' must be defined.\";\n }\n directionPlanes = GreasedLineRibbonMesh._GetDirectionPlanesFromDirectionsOption(subPoints.length, pathOptions.ribbonOptions.directions);\n }\n subPoints.forEach((p, idx) => {\n const pathArray = GreasedLineRibbonMesh._ConvertToRibbonPath(p, pathOptions.ribbonOptions, this._scene.useRightHandedSystem, directionPlanes ? directionPlanes[idx] : directionPlanes);\n indiceOffset = this._preprocess(pathArray, indiceOffset, pathOptions);\n });\n }\n }\n if (!this._lazy) {\n this._createVertexBuffers();\n !this.doNotSyncBoundingInfo && this.refreshBoundingInfo();\n }\n }\n static _GetDirectionPlanesFromDirectionsOption(count, directions) {\n if (Array.isArray(directions)) {\n return directions;\n }\n return new Array(count).fill(directions);\n }\n static _CreateRibbonVertexData(pathArray, options) {\n const numOfPaths = pathArray.length;\n if (numOfPaths < 2) {\n // eslint-disable-next-line no-throw-literal\n throw \"Minimum of two paths are required to create a GreasedLineRibbonMesh.\";\n }\n const positions = [];\n const indices = [];\n const path = pathArray[0];\n for (let i = 0; i < path.length; i++) {\n for (let pi = 0; pi < pathArray.length; pi++) {\n const v = pathArray[pi][i];\n positions.push(v.x, v.y, v.z);\n }\n }\n const v = [1, 0, numOfPaths];\n const doubleSided = options.ribbonOptions?.facesMode === 2 /* GreasedLineRibbonFacesMode.FACES_MODE_DOUBLE_SIDED */ ?? false;\n const closePath = options.ribbonOptions?.pointsMode === 1 /* GreasedLineRibbonPointsMode.POINTS_MODE_PATHS */ && options.ribbonOptions.closePath;\n if (numOfPaths > 2) {\n for (let i = 0; i < path.length - 1; i++) {\n v[0] = 1 + numOfPaths * i;\n v[1] = numOfPaths * i;\n v[2] = (i + 1) * numOfPaths;\n for (let pi = 0; pi < (numOfPaths - 1) * 2; pi++) {\n if (pi % 2 !== 0) {\n v[2] += 1;\n }\n if (pi % 2 === 0 && pi > 0) {\n v[0] += 1;\n v[1] += 1;\n }\n indices.push(v[1] + (pi % 2 !== 0 ? numOfPaths : 0), v[0], v[2]);\n if (doubleSided) {\n indices.push(v[0], v[1] + (pi % 2 !== 0 ? numOfPaths : 0), v[2]);\n }\n }\n }\n }\n else {\n for (let i = 0; i < positions.length / 3 - 3; i += 2) {\n indices.push(i, i + 1, i + 2);\n indices.push(i + 2, i + 1, i + 3);\n if (doubleSided) {\n indices.push(i + 1, i, i + 2);\n indices.push(i + 1, i + 2, i + 3);\n }\n }\n }\n if (closePath) {\n let lastIndice = numOfPaths * (path.length - 1);\n for (let pi = 0; pi < numOfPaths - 1; pi++) {\n indices.push(lastIndice, pi + 1, pi);\n indices.push(lastIndice + 1, pi + 1, lastIndice);\n if (doubleSided) {\n indices.push(pi, pi + 1, lastIndice);\n indices.push(lastIndice, pi + 1, lastIndice + 1);\n }\n lastIndice++;\n }\n }\n return {\n positions,\n indices,\n };\n }\n _preprocess(pathArray, indiceOffset, options) {\n this._paths = pathArray;\n const ribbonVertexData = GreasedLineRibbonMesh._CreateRibbonVertexData(pathArray, options);\n const positions = ribbonVertexData.positions;\n if (!this._options.widths) {\n // eslint-disable-next-line no-throw-literal\n throw \"No 'GreasedLineMeshOptions.widths' table is specified.\";\n }\n const vertexPositions = Array.isArray(this._vertexPositions) ? this._vertexPositions : Array.from(this._vertexPositions);\n this._vertexPositions = vertexPositions;\n const uvs = Array.isArray(this._uvs) ? this._uvs : Array.from(this._uvs);\n this._uvs = uvs;\n const indices = Array.isArray(this._indices) ? this._indices : Array.from(this._indices);\n this._indices = indices;\n for (const p of positions) {\n vertexPositions.push(p);\n }\n let pathArrayCopy = pathArray;\n if (options.ribbonOptions?.pointsMode === 1 /* GreasedLineRibbonPointsMode.POINTS_MODE_PATHS */ && options.ribbonOptions.closePath) {\n pathArrayCopy = [];\n for (let i = 0; i < pathArray.length; i++) {\n const pathCopy = pathArray[i].slice();\n pathCopy.push(pathArray[i][0].clone());\n pathArrayCopy.push(pathCopy);\n }\n }\n this._calculateSegmentLengths(pathArrayCopy);\n const pathArrayLength = pathArrayCopy.length;\n const previousCounters = new Array(pathArrayLength).fill(0);\n for (let i = 0; i < pathArrayCopy[0].length; i++) {\n let v = 0;\n for (let pi = 0; pi < pathArrayLength; pi++) {\n const counter = previousCounters[pi] + this._vSegmentLengths[pi][i] / this._vTotalLengths[pi];\n this._counters.push(counter);\n uvs.push(counter, v);\n previousCounters[pi] = counter;\n v += this._uSegmentLengths[i][pi] / this._uTotalLengths[i];\n }\n }\n for (let i = 0, c = 0; i < pathArrayCopy[0].length; i++) {\n const widthLower = this._uSegmentLengths[i][0] / 2;\n const widthUpper = this._uSegmentLengths[i][pathArrayLength - 1] / 2;\n this._ribbonWidths.push(((this._widths[c++] ?? 1) - 1) * widthLower);\n for (let pi = 0; pi < pathArrayLength - 2; pi++) {\n this._ribbonWidths.push(0);\n }\n this._ribbonWidths.push(((this._widths[c++] ?? 1) - 1) * widthUpper);\n }\n const slopes = options.ribbonOptions?.pointsMode === 1 /* GreasedLineRibbonPointsMode.POINTS_MODE_PATHS */\n ? new Array(pathArrayCopy[0].length * pathArrayCopy.length * 6).fill(0)\n : GreasedLineRibbonMesh._CalculateSlopes(pathArrayCopy);\n for (const s of slopes) {\n this._slopes.push(s);\n }\n if (ribbonVertexData.indices) {\n for (let i = 0; i < ribbonVertexData.indices.length; i++) {\n indices.push(ribbonVertexData.indices[i] + indiceOffset);\n }\n }\n indiceOffset += positions.length / 3;\n return indiceOffset;\n }\n static _ConvertToRibbonPath(points, ribbonInfo, rightHandedSystem, directionPlane) {\n if (ribbonInfo.pointsMode === 0 /* GreasedLineRibbonPointsMode.POINTS_MODE_POINTS */ && !ribbonInfo.width) {\n // eslint-disable-next-line no-throw-literal\n throw \"'GreasedLineMeshOptions.ribbonOptiosn.width' must be specified in GreasedLineRibbonPointsMode.POINTS_MODE_POINTS.\";\n }\n const path1 = [];\n const path2 = [];\n if (ribbonInfo.pointsMode === 0 /* GreasedLineRibbonPointsMode.POINTS_MODE_POINTS */) {\n const width = ribbonInfo.width / 2;\n const pointVectors = GreasedLineTools.ToVector3Array(points);\n let direction = null;\n let fatDirection = null;\n if (ribbonInfo.directionsAutoMode === 0 /* GreasedLineRibbonAutoDirectionMode.AUTO_DIRECTIONS_FROM_FIRST_SEGMENT */) {\n // set the direction plane from the first line segment for the whole line\n directionPlane = GreasedLineRibbonMesh._GetDirectionFromPoints(pointVectors[0], pointVectors[1], null);\n }\n if (ribbonInfo.directionsAutoMode === 3 /* GreasedLineRibbonAutoDirectionMode.AUTO_DIRECTIONS_FACE_TO */ && !(ribbonInfo.directions instanceof Vector3)) {\n // eslint-disable-next-line no-throw-literal\n throw \"In GreasedLineRibbonAutoDirectionMode.AUTO_DIRECTIONS_FACE_TO 'GreasedLineMeshOptions.ribbonOptions.directions' must be a Vector3.\";\n }\n TmpVectors.Vector3[1] = ribbonInfo.directions instanceof Vector3 ? ribbonInfo.directions : GreasedLineRibbonMesh.DIRECTION_XZ;\n for (let i = 0; i < pointVectors.length - (directionPlane ? 0 : 1); i++) {\n const p1 = pointVectors[i];\n const p2 = pointVectors[i + 1];\n if (directionPlane) {\n direction = directionPlane;\n }\n else if (ribbonInfo.directionsAutoMode === 3 /* GreasedLineRibbonAutoDirectionMode.AUTO_DIRECTIONS_FACE_TO */) {\n p2.subtractToRef(p1, TmpVectors.Vector3[0]);\n direction = Vector3.CrossToRef(TmpVectors.Vector3[0], TmpVectors.Vector3[1], TmpVectors.Vector3[2]).normalize();\n }\n else if (ribbonInfo.directionsAutoMode === 1 /* GreasedLineRibbonAutoDirectionMode.AUTO_DIRECTIONS_FROM_ALL_SEGMENTS */) {\n direction = GreasedLineRibbonMesh._GetDirectionFromPoints(p1, p2, direction);\n }\n else {\n // GreasedLineRibbonAutoDirectionMode.DIRECTION_ENHANCED\n const directionTemp = p2.subtract(p1);\n directionTemp.applyRotationQuaternionInPlace(directionTemp.x > directionTemp.y && directionTemp.x > directionTemp.z\n ? rightHandedSystem\n ? GreasedLineRibbonMesh._RightHandedForwardReadOnlyQuaternion\n : GreasedLineRibbonMesh._LeftHandedForwardReadOnlyQuaternion\n : GreasedLineRibbonMesh._LeftReadOnlyQuaternion);\n direction = directionTemp.normalize();\n }\n fatDirection = direction.multiplyByFloats(width, width, width);\n path1.push(p1.add(fatDirection));\n path2.push(p1.subtract(fatDirection));\n }\n if (!directionPlane) {\n path1.push(pointVectors[pointVectors.length - 1].add(fatDirection));\n path2.push(pointVectors[pointVectors.length - 1].subtract(fatDirection));\n }\n }\n return [path1, path2];\n }\n static _GetDirectionFromPoints(p1, p2, previousDirection) {\n // handle straight lines\n if (p1.x === p2.x && (!previousDirection || previousDirection?.x === 1)) {\n return GreasedLineRibbonMesh.DIRECTION_YZ;\n }\n if (p1.y === p2.y) {\n return GreasedLineRibbonMesh.DIRECTION_XZ;\n }\n if (p1.z === p2.z) {\n return GreasedLineRibbonMesh.DIRECTION_XY;\n }\n return GreasedLineRibbonMesh.DIRECTION_XZ;\n }\n /**\n * Clones the GreasedLineRibbonMesh.\n * @param name new line name\n * @param newParent new parent node\n * @returns cloned line\n */\n clone(name = `${this.name}-cloned`, newParent) {\n const lineOptions = this._createLineOptions();\n const deepCopiedLineOptions = {};\n const pathOptionsCloned = [];\n DeepCopier.DeepCopy(this._pathsOptions, pathOptionsCloned, undefined, undefined, true);\n DeepCopier.DeepCopy(lineOptions, deepCopiedLineOptions, [\"instance\"], undefined, true);\n const cloned = new GreasedLineRibbonMesh(name, this._scene, deepCopiedLineOptions, pathOptionsCloned);\n if (newParent) {\n cloned.parent = newParent;\n }\n cloned.material = this.material;\n return cloned;\n }\n /**\n * Serializes this GreasedLineRibbonMesh\n * @param serializationObject object to write serialization to\n */\n serialize(serializationObject) {\n super.serialize(serializationObject);\n serializationObject.type = this.getClassName();\n serializationObject.lineOptions = this._createLineOptions();\n serializationObject.pathsOptions = this._pathsOptions;\n }\n /**\n * Parses a serialized GreasedLineRibbonMesh\n * @param parsedMesh the serialized GreasedLineRibbonMesh\n * @param scene the scene to create the GreasedLineRibbonMesh in\n * @returns the created GreasedLineRibbonMesh\n */\n static Parse(parsedMesh, scene) {\n const lineOptions = parsedMesh.lineOptions;\n const name = parsedMesh.name;\n const pathOptions = parsedMesh.pathOptions;\n const result = new GreasedLineRibbonMesh(name, scene, lineOptions, pathOptions);\n return result;\n }\n _initGreasedLine() {\n super._initGreasedLine();\n this._paths = [];\n this._counters = [];\n this._slopes = [];\n this._ribbonWidths = [];\n }\n _calculateSegmentLengths(pathArray) {\n const pathArrayLength = pathArray.length;\n this._vSegmentLengths = new Array(pathArrayLength);\n this._vTotalLengths = new Array(pathArrayLength);\n let length = 0;\n for (let pi = 0; pi < pathArrayLength; pi++) {\n const points = pathArray[pi];\n this._vSegmentLengths[pi] = [0]; // first point has 0 distance\n length = 0;\n for (let i = 0; i < points.length - 1; i++) {\n const l = Math.abs(points[i].subtract(points[i + 1]).lengthSquared()); // it's ok to have lengthSquared() here\n length += l;\n this._vSegmentLengths[pi].push(l);\n }\n this._vTotalLengths[pi] = length;\n }\n const positionsLength = pathArray[0].length;\n this._uSegmentLengths = new Array(positionsLength).fill([]);\n this._uTotalLengths = new Array(positionsLength).fill([]);\n const uLength = new Vector3();\n for (let i = 0; i < positionsLength; i++) {\n length = 0;\n for (let pi = 1; pi < pathArrayLength; pi++) {\n pathArray[pi][i].subtractToRef(pathArray[pi - 1][i], uLength);\n const l = uLength.length(); // must be length()\n length += l;\n this._uSegmentLengths[i].push(l);\n }\n this._uTotalLengths[i] = length;\n }\n }\n static _CalculateSlopes(paths) {\n const points1 = paths[0];\n const points2 = paths.length === 2 ? paths[1] : paths[paths.length - 1];\n const slopes = [];\n const slope = new Vector3();\n for (let i = 0; i < points1.length; i++) {\n for (let pi = 0; pi < paths.length; pi++) {\n if (pi === 0 || pi === paths.length - 1) {\n points1[i].subtract(points2[i]).normalizeToRef(slope);\n slopes.push(slope.x, slope.y, slope.z);\n slopes.push(-slope.x, -slope.y, -slope.z);\n }\n else {\n slopes.push(0, 0, 0, 0, 0, 0);\n }\n }\n }\n return slopes;\n }\n _createVertexBuffers() {\n this._uvs = this._options.uvs ?? this._uvs;\n const vertexData = super._createVertexBuffers(this._options.ribbonOptions?.smoothShading);\n const countersBuffer = new Buffer(this._engine, this._counters, this._updatable, 1);\n this.setVerticesBuffer(countersBuffer.createVertexBuffer(\"grl_counters\", 0, 1));\n const colorPointersBuffer = new Buffer(this._engine, this._colorPointers, this._updatable, 1);\n this.setVerticesBuffer(colorPointersBuffer.createVertexBuffer(\"grl_colorPointers\", 0, 1));\n const slopesBuffer = new Buffer(this._engine, this._slopes, this._updatable, 3);\n this.setVerticesBuffer(slopesBuffer.createVertexBuffer(\"grl_slopes\", 0, 3));\n const widthsBuffer = new Buffer(this._engine, this._ribbonWidths, this._updatable, 1);\n this.setVerticesBuffer(widthsBuffer.createVertexBuffer(\"grl_widths\", 0, 1));\n this._widthsBuffer = widthsBuffer;\n return vertexData;\n }\n}\n/**\n * Default line width\n */\nGreasedLineRibbonMesh.DEFAULT_WIDTH = 0.1;\nGreasedLineRibbonMesh._RightHandedForwardReadOnlyQuaternion = Quaternion.RotationAxis(Vector3.RightHandedForwardReadOnly, Math.PI / 2);\nGreasedLineRibbonMesh._LeftHandedForwardReadOnlyQuaternion = Quaternion.RotationAxis(Vector3.LeftHandedForwardReadOnly, Math.PI / 2);\nGreasedLineRibbonMesh._LeftReadOnlyQuaternion = Quaternion.RotationAxis(Vector3.LeftReadOnly, Math.PI / 2);\n/**\n * Direction which the line segment will be thickened if drawn on the XY plane\n */\nGreasedLineRibbonMesh.DIRECTION_XY = Vector3.LeftHandedForwardReadOnly; // doesn't matter in which handed system the scene operates\n/**\n * Direction which the line segment will be thickened if drawn on the XZ plane\n */\nGreasedLineRibbonMesh.DIRECTION_XZ = Vector3.UpReadOnly;\n/**\n * Direction which the line segment will be thickened if drawn on the YZ plane\n */\nGreasedLineRibbonMesh.DIRECTION_YZ = Vector3.LeftReadOnly;\n","/* eslint-disable @typescript-eslint/naming-convention */\n/**\n * This file is only for internal use only and should not be used in your code\n */\nimport { IsWindowObjectExist } from \"./domManagement.js\";\nimport { Tools } from \"./tools.js\";\nlet _UniqueResolveID = 0;\n/**\n * Load an asynchronous script (identified by an url) in a module way. When the url returns, the\n * content of this file is added into a new script element, attached to the DOM (body element)\n * @param scriptUrl defines the url of the script to load\n * @param scriptId defines the id of the script element\n * @returns a promise request object\n * It is up to the caller to provide a script that will do the import and prepare a \"returnedValue\" variable\n * @internal DO NOT USE outside of Babylon.js core\n */\nexport function _LoadScriptModuleAsync(scriptUrl, scriptId) {\n return new Promise((resolve, reject) => {\n // Need a relay\n let windowAsAny;\n let windowString;\n if (IsWindowObjectExist()) {\n windowAsAny = window;\n windowString = \"window\";\n }\n else if (typeof self !== \"undefined\") {\n windowAsAny = self;\n windowString = \"self\";\n }\n else {\n reject(new Error(\"Cannot load script module outside of a window or a worker\"));\n return;\n }\n if (!windowAsAny._LoadScriptModuleResolve) {\n windowAsAny._LoadScriptModuleResolve = {};\n }\n windowAsAny._LoadScriptModuleResolve[_UniqueResolveID] = resolve;\n scriptUrl += `\r\n ${windowString}._LoadScriptModuleResolve[${_UniqueResolveID}](returnedValue);\r\n ${windowString}._LoadScriptModuleResolve[${_UniqueResolveID}] = undefined;\r\n `;\n _UniqueResolveID++;\n Tools.LoadScript(scriptUrl, undefined, (message, exception) => {\n reject(exception || new Error(message));\n }, scriptId, true);\n });\n}\n","import { Mesh } from \"./mesh.js\";\nimport { VertexData } from \"./mesh.vertexData.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { Logger } from \"../Misc/logger.js\";\nimport { MultiMaterial } from \"../Materials/multiMaterial.js\";\nimport { SubMesh } from \"./subMesh.js\";\nimport { _LoadScriptModuleAsync } from \"../Misc/tools.internals.js\";\nimport { Vector3 } from \"../Maths/math.vector.js\";\n/**\n * Main manifold library\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nlet Manifold;\n/**\n * Manifold mesh\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nlet ManifoldMesh;\n/**\n * First ID to use for materials indexing\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nlet FirstID;\n/**\n * Wrapper around the Manifold library\n * https://manifoldcad.org/\n * Use this class to perform fast boolean operations on meshes\n * #IW43EB#15 - basic operations\n * #JUKXQD#6104 - skull vs box\n * #JUKXQD#6111 - skull vs vertex data\n */\nexport class CSG2 {\n /**\n * Return the size of a vertex (at least 3 for the position)\n */\n get numProp() {\n return this._numProp;\n }\n constructor(manifold, numProp, vertexStructure) {\n this._manifold = manifold;\n this._numProp = numProp;\n this._vertexStructure = vertexStructure;\n }\n _process(operation, csg) {\n if (this.numProp !== csg.numProp) {\n throw new Error(\"CSG must be used with geometries having the same number of properties\");\n }\n return new CSG2(Manifold[operation](this._manifold, csg._manifold), this.numProp, this._vertexStructure);\n }\n /**\n * Run a difference operation between two CSG\n * @param csg defines the CSG to use to create the difference\n * @returns a new csg\n */\n subtract(csg) {\n return this._process(\"difference\", csg);\n }\n /**\n * Run an intersection operation between two CSG\n * @param csg defines the CSG to use to create the intersection\n * @returns a new csg\n */\n intersect(csg) {\n return this._process(\"intersection\", csg);\n }\n /**\n * Run an union operation between two CSG\n * @param csg defines the CSG to use to create the union\n * @returns a new csg\n */\n add(csg) {\n return this._process(\"union\", csg);\n }\n /**\n * Print debug information about the CSG\n */\n printDebug() {\n Logger.Log(\"Genus:\" + this._manifold.genus());\n const properties = this._manifold.getProperties();\n Logger.Log(\"Volume:\" + properties.volume);\n Logger.Log(\"surface area:\" + properties.surfaceArea);\n }\n /**\n * Generate a vertex data from the CSG\n * @param options defines the options to use to rebuild the vertex data\n * @returns a new vertex data\n */\n toVertexData(options) {\n const localOptions = {\n rebuildNormals: false,\n ...options,\n };\n const vertexData = new VertexData();\n const normalComponent = this._vertexStructure.find((c) => c.kind === VertexBuffer.NormalKind);\n const manifoldMesh = this._manifold.getMesh(localOptions.rebuildNormals && normalComponent ? [3, 4, 5] : undefined);\n vertexData.indices = manifoldMesh.triVerts.length > 65535 ? new Uint32Array(manifoldMesh.triVerts) : new Uint16Array(manifoldMesh.triVerts);\n for (let i = 0; i < manifoldMesh.triVerts.length; i += 3) {\n vertexData.indices[i] = manifoldMesh.triVerts[i + 2];\n vertexData.indices[i + 1] = manifoldMesh.triVerts[i + 1];\n vertexData.indices[i + 2] = manifoldMesh.triVerts[i];\n }\n const vertexCount = manifoldMesh.vertProperties.length / manifoldMesh.numProp;\n // Attributes\n let offset = 0;\n for (let componentIndex = 0; componentIndex < this._vertexStructure.length; componentIndex++) {\n const component = this._vertexStructure[componentIndex];\n const data = new Float32Array(vertexCount * component.stride);\n for (let i = 0; i < vertexCount; i++) {\n for (let strideIndex = 0; strideIndex < component.stride; strideIndex++) {\n data[i * component.stride + strideIndex] = manifoldMesh.vertProperties[i * manifoldMesh.numProp + offset + strideIndex];\n }\n }\n vertexData.set(data, component.kind);\n offset += component.stride;\n }\n // Rebuild mesh from vertex data\n return vertexData;\n }\n /**\n * Generate a mesh from the CSG\n * @param name defines the name of the mesh\n * @param scene defines the scene to use to create the mesh\n * @param options defines the options to use to rebuild the mesh\n * @returns a new Mesh\n */\n toMesh(name, scene, options) {\n const localOptions = {\n rebuildNormals: false,\n centerMesh: true,\n ...options,\n };\n const vertexData = this.toVertexData({ rebuildNormals: localOptions.rebuildNormals });\n const normalComponent = this._vertexStructure.find((c) => c.kind === VertexBuffer.NormalKind);\n const manifoldMesh = this._manifold.getMesh(localOptions.rebuildNormals && normalComponent ? [3, 4, 5] : undefined);\n const vertexCount = manifoldMesh.vertProperties.length / manifoldMesh.numProp;\n // Rebuild mesh from vertex data\n const output = new Mesh(name, scene);\n vertexData.applyToMesh(output);\n // Center mesh\n if (localOptions.centerMesh) {\n const extents = output.getBoundingInfo().boundingSphere.center;\n output.position.set(-extents.x, -extents.y, -extents.z);\n output.bakeCurrentTransformIntoVertices();\n }\n // Submeshes\n let id = manifoldMesh.runOriginalID[0];\n let start = manifoldMesh.runIndex[0];\n let materialIndex = 0;\n const materials = [];\n scene = output.getScene();\n for (let run = 0; run < manifoldMesh.numRun; ++run) {\n const nextID = manifoldMesh.runOriginalID[run + 1];\n if (nextID !== id) {\n const end = manifoldMesh.runIndex[run + 1];\n new SubMesh(materialIndex, 0, vertexCount, start, end - start, output);\n materials.push(scene.getMaterialByUniqueID(id - FirstID) || scene.defaultMaterial);\n id = nextID;\n start = end;\n materialIndex++;\n }\n }\n if (localOptions.materialToUse) {\n output.material = localOptions.materialToUse;\n }\n else {\n if (materials.length > 1) {\n const multiMaterial = new MultiMaterial(name, scene);\n multiMaterial.subMaterials = materials;\n output.material = multiMaterial;\n }\n else {\n output.material = materials[0];\n }\n }\n return output;\n }\n /**\n * Dispose the CSG resources\n */\n dispose() {\n if (this._manifold) {\n this._manifold.delete();\n this._manifold = null;\n }\n }\n static _ProcessData(vertexCount, triVerts, structure, numProp, runIndex, runOriginalID) {\n const vertProperties = new Float32Array(vertexCount * structure.reduce((acc, cur) => acc + cur.stride, 0));\n for (let i = 0; i < vertexCount; i++) {\n let offset = 0;\n for (let idx = 0; idx < structure.length; idx++) {\n const component = structure[idx];\n for (let strideIndex = 0; strideIndex < component.stride; strideIndex++) {\n vertProperties[i * numProp + offset + strideIndex] = component.data[i * component.stride + strideIndex];\n }\n offset += component.stride;\n }\n }\n const manifoldMesh = new ManifoldMesh({ numProp: numProp, vertProperties, triVerts, runIndex, runOriginalID });\n manifoldMesh.merge();\n let returnValue;\n try {\n returnValue = new CSG2(new Manifold(manifoldMesh), numProp, structure);\n }\n catch (e) {\n throw new Error(\"Error while creating the CSG: \" + e.message);\n }\n return returnValue;\n }\n static _Construct(data, worldMatrix, runIndex, runOriginalID) {\n // Create the MeshGL for I/O with Manifold library.\n const triVerts = new Uint32Array(data.indices.length);\n // Revert order\n for (let i = 0; i < data.indices.length; i += 3) {\n triVerts[i] = data.indices[i + 2];\n triVerts[i + 1] = data.indices[i + 1];\n triVerts[i + 2] = data.indices[i];\n }\n const tempVector3 = new Vector3();\n let numProp = 3;\n const structure = [{ stride: 3, kind: VertexBuffer.PositionKind }];\n if (!worldMatrix) {\n structure[0].data = data.positions;\n }\n else {\n const positions = new Float32Array(data.positions.length);\n for (let i = 0; i < data.positions.length; i += 3) {\n Vector3.TransformCoordinatesFromFloatsToRef(data.positions[i], data.positions[i + 1], data.positions[i + 2], worldMatrix, tempVector3);\n tempVector3.toArray(positions, i);\n }\n structure[0].data = positions;\n }\n // Normals\n const sourceNormals = data.normals;\n if (sourceNormals) {\n numProp += 3;\n structure.push({ stride: 3, kind: VertexBuffer.NormalKind });\n if (!worldMatrix) {\n structure[1].data = sourceNormals;\n }\n else {\n const normals = new Float32Array(sourceNormals.length);\n for (let i = 0; i < sourceNormals.length; i += 3) {\n Vector3.TransformNormalFromFloatsToRef(sourceNormals[i], sourceNormals[i + 1], sourceNormals[i + 2], worldMatrix, tempVector3);\n tempVector3.toArray(normals, i);\n }\n structure[1].data = normals;\n }\n }\n // UVs\n for (const kind of [VertexBuffer.UVKind, VertexBuffer.UV2Kind, VertexBuffer.UV3Kind, VertexBuffer.UV4Kind, VertexBuffer.UV5Kind, VertexBuffer.UV6Kind]) {\n const sourceUV = data[kind === VertexBuffer.UVKind ? \"uvs\" : kind];\n if (sourceUV) {\n numProp += 2;\n structure.push({ stride: 2, kind: kind, data: sourceUV });\n }\n }\n // Colors\n const sourceColors = data.colors;\n if (sourceColors) {\n numProp += 4;\n structure.push({ stride: 4, kind: VertexBuffer.ColorKind, data: sourceColors });\n }\n return this._ProcessData(data.positions.length / 3, triVerts, structure, numProp, runIndex, runOriginalID);\n }\n /**\n * Create a new Constructive Solid Geometry from a vertexData\n * @param vertexData defines the vertexData to use to create the CSG\n * @returns a new CSG2 class\n */\n static FromVertexData(vertexData) {\n const sourceVertices = vertexData.positions;\n const sourceIndices = vertexData.indices;\n if (!sourceVertices || !sourceIndices) {\n throw new Error(\"The vertexData must at least have positions and indices\");\n }\n return this._Construct(vertexData, null);\n }\n /**\n * Create a new Constructive Solid Geometry from a mesh\n * @param mesh defines the mesh to use to create the CSG\n * @param ignoreWorldMatrix defines if the world matrix should be ignored\n * @returns a new CSG2 class\n */\n static FromMesh(mesh, ignoreWorldMatrix = false) {\n const sourceVertices = mesh.getVerticesData(VertexBuffer.PositionKind);\n const sourceIndices = mesh.getIndices();\n const worldMatrix = mesh.computeWorldMatrix(true);\n if (!sourceVertices || !sourceIndices) {\n throw new Error(\"The mesh must at least have positions and indices\");\n }\n // Create a triangle run for each submesh (material)\n const starts = [...Array(mesh.subMeshes.length)].map((_, idx) => mesh.subMeshes[idx].indexStart);\n // Map the materials to ID.\n const sourceMaterial = mesh.material || mesh.getScene().defaultMaterial;\n const isMultiMaterial = sourceMaterial.getClassName() === \"MultiMaterial\";\n const originalIDs = [...Array(mesh.subMeshes.length)].map((_, idx) => {\n if (isMultiMaterial) {\n return FirstID + sourceMaterial.subMaterials[mesh.subMeshes[idx].materialIndex].uniqueId;\n }\n return FirstID + sourceMaterial.uniqueId;\n });\n // List the runs in sequence.\n const indices = Array.from(starts.keys());\n indices.sort((a, b) => starts[a] - starts[b]);\n const runIndex = new Uint32Array(indices.map((i) => starts[i]));\n const runOriginalID = new Uint32Array(indices.map((i) => originalIDs[i]));\n // Process\n const data = {\n positions: sourceVertices,\n indices: sourceIndices,\n normals: mesh.getVerticesData(VertexBuffer.NormalKind),\n colors: mesh.getVerticesData(VertexBuffer.ColorKind),\n uvs: mesh.getVerticesData(VertexBuffer.UVKind),\n uvs2: mesh.getVerticesData(VertexBuffer.UV2Kind),\n uvs3: mesh.getVerticesData(VertexBuffer.UV3Kind),\n uvs4: mesh.getVerticesData(VertexBuffer.UV4Kind),\n uvs5: mesh.getVerticesData(VertexBuffer.UV5Kind),\n uvs6: mesh.getVerticesData(VertexBuffer.UV6Kind),\n };\n return this._Construct(data, ignoreWorldMatrix ? null : worldMatrix, runIndex, runOriginalID);\n }\n}\n/**\n * Checks if the Manifold library is ready\n * @returns true if the Manifold library is ready\n */\nexport function IsCSG2Ready() {\n return Manifold !== undefined;\n}\n/**\n * Initialize the Manifold library\n * @param options defines the options to use to initialize the library\n */\nexport async function InitializeCSG2Async(options) {\n const localOptions = {\n manifoldUrl: \"https://unpkg.com/manifold-3d@3.0.0\",\n ...options,\n };\n if (localOptions.manifoldInstance) {\n Manifold = localOptions.manifoldInstance;\n ManifoldMesh = localOptions.manifoldMeshInstance;\n }\n else {\n const result = await _LoadScriptModuleAsync(`\r\n import Module from '${localOptions.manifoldUrl}/manifold.js';\r\n const wasm = await Module();\r\n wasm.setup();\r\n const {Manifold, Mesh} = wasm;\r\n const returnedValue = {Manifold, Mesh};\r\n `);\n Manifold = result.Manifold;\n ManifoldMesh = result.Mesh;\n }\n // Reserve IDs for materials (we consider that there will be no more than 65536 materials)\n FirstID = Manifold.reserveIDs(65536);\n}\n","/**\n * Defines the kind of connection point for node geometry\n */\nexport var NodeGeometryBlockConnectionPointTypes;\n(function (NodeGeometryBlockConnectionPointTypes) {\n /** Int */\n NodeGeometryBlockConnectionPointTypes[NodeGeometryBlockConnectionPointTypes[\"Int\"] = 1] = \"Int\";\n /** Float */\n NodeGeometryBlockConnectionPointTypes[NodeGeometryBlockConnectionPointTypes[\"Float\"] = 2] = \"Float\";\n /** Vector2 */\n NodeGeometryBlockConnectionPointTypes[NodeGeometryBlockConnectionPointTypes[\"Vector2\"] = 4] = \"Vector2\";\n /** Vector3 */\n NodeGeometryBlockConnectionPointTypes[NodeGeometryBlockConnectionPointTypes[\"Vector3\"] = 8] = \"Vector3\";\n /** Vector4 */\n NodeGeometryBlockConnectionPointTypes[NodeGeometryBlockConnectionPointTypes[\"Vector4\"] = 16] = \"Vector4\";\n /** Matrix */\n NodeGeometryBlockConnectionPointTypes[NodeGeometryBlockConnectionPointTypes[\"Matrix\"] = 32] = \"Matrix\";\n /** Geometry */\n NodeGeometryBlockConnectionPointTypes[NodeGeometryBlockConnectionPointTypes[\"Geometry\"] = 64] = \"Geometry\";\n /** Texture */\n NodeGeometryBlockConnectionPointTypes[NodeGeometryBlockConnectionPointTypes[\"Texture\"] = 128] = \"Texture\";\n /** Detect type based on connection */\n NodeGeometryBlockConnectionPointTypes[NodeGeometryBlockConnectionPointTypes[\"AutoDetect\"] = 1024] = \"AutoDetect\";\n /** Output type that will be defined by input type */\n NodeGeometryBlockConnectionPointTypes[NodeGeometryBlockConnectionPointTypes[\"BasedOnInput\"] = 2048] = \"BasedOnInput\";\n /** Undefined */\n NodeGeometryBlockConnectionPointTypes[NodeGeometryBlockConnectionPointTypes[\"Undefined\"] = 4096] = \"Undefined\";\n /** Bitmask of all types */\n NodeGeometryBlockConnectionPointTypes[NodeGeometryBlockConnectionPointTypes[\"All\"] = 4095] = \"All\";\n})(NodeGeometryBlockConnectionPointTypes || (NodeGeometryBlockConnectionPointTypes = {}));\n","import { Observable } from \"../../Misc/observable.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"./Enums/nodeGeometryConnectionPointTypes.js\";\n/**\n * Enum used to define the compatibility state between two connection points\n */\nexport var NodeGeometryConnectionPointCompatibilityStates;\n(function (NodeGeometryConnectionPointCompatibilityStates) {\n /** Points are compatibles */\n NodeGeometryConnectionPointCompatibilityStates[NodeGeometryConnectionPointCompatibilityStates[\"Compatible\"] = 0] = \"Compatible\";\n /** Points are incompatible because of their types */\n NodeGeometryConnectionPointCompatibilityStates[NodeGeometryConnectionPointCompatibilityStates[\"TypeIncompatible\"] = 1] = \"TypeIncompatible\";\n /** Points are incompatible because they are in the same hierarchy **/\n NodeGeometryConnectionPointCompatibilityStates[NodeGeometryConnectionPointCompatibilityStates[\"HierarchyIssue\"] = 2] = \"HierarchyIssue\";\n})(NodeGeometryConnectionPointCompatibilityStates || (NodeGeometryConnectionPointCompatibilityStates = {}));\n/**\n * Defines the direction of a connection point\n */\nexport var NodeGeometryConnectionPointDirection;\n(function (NodeGeometryConnectionPointDirection) {\n /** Input */\n NodeGeometryConnectionPointDirection[NodeGeometryConnectionPointDirection[\"Input\"] = 0] = \"Input\";\n /** Output */\n NodeGeometryConnectionPointDirection[NodeGeometryConnectionPointDirection[\"Output\"] = 1] = \"Output\";\n})(NodeGeometryConnectionPointDirection || (NodeGeometryConnectionPointDirection = {}));\n/**\n * Defines a connection point for a block\n */\nexport class NodeGeometryConnectionPoint {\n /** Gets the direction of the point */\n get direction() {\n return this._direction;\n }\n /**\n * Gets or sets the connection point type (default is float)\n */\n get type() {\n if (this._type === NodeGeometryBlockConnectionPointTypes.AutoDetect) {\n if (this._ownerBlock.isInput) {\n return this._ownerBlock.type;\n }\n if (this._connectedPoint) {\n return this._connectedPoint.type;\n }\n if (this._linkedConnectionSource && this._linkedConnectionSource.isConnected) {\n return this._linkedConnectionSource.type;\n }\n }\n if (this._type === NodeGeometryBlockConnectionPointTypes.BasedOnInput) {\n if (this._typeConnectionSource) {\n if (!this._typeConnectionSource.isConnected && this._defaultConnectionPointType) {\n return this._defaultConnectionPointType;\n }\n return this._typeConnectionSource.type;\n }\n else if (this._defaultConnectionPointType) {\n return this._defaultConnectionPointType;\n }\n }\n return this._type;\n }\n set type(value) {\n this._type = value;\n }\n /**\n * Gets a boolean indicating that the current point is connected to another NodeMaterialBlock\n */\n get isConnected() {\n return this.connectedPoint !== null || this.hasEndpoints;\n }\n /** Get the other side of the connection (if any) */\n get connectedPoint() {\n return this._connectedPoint;\n }\n /** Get the block that owns this connection point */\n get ownerBlock() {\n return this._ownerBlock;\n }\n /** Get the block connected on the other side of this connection (if any) */\n get sourceBlock() {\n if (!this._connectedPoint) {\n return null;\n }\n return this._connectedPoint.ownerBlock;\n }\n /** Get the block connected on the endpoints of this connection (if any) */\n get connectedBlocks() {\n if (this._endpoints.length === 0) {\n return [];\n }\n return this._endpoints.map((e) => e.ownerBlock);\n }\n /** Gets the list of connected endpoints */\n get endpoints() {\n return this._endpoints;\n }\n /** Gets a boolean indicating if that output point is connected to at least one input */\n get hasEndpoints() {\n return this._endpoints && this._endpoints.length > 0;\n }\n /** Get the inner type (ie AutoDetect for instance instead of the inferred one) */\n get innerType() {\n if (this._linkedConnectionSource && this._linkedConnectionSource.isConnected) {\n return this.type;\n }\n return this._type;\n }\n /** @internal */\n _resetCounters() {\n this._callCount = 0;\n this._executionCount = 0;\n }\n /**\n * Gets the number of times this point was called\n */\n get callCount() {\n return this._callCount;\n }\n /**\n * Gets the number of times this point was executed\n */\n get executionCount() {\n return this._executionCount;\n }\n /**\n * Gets the value represented by this connection point\n * @param state current evaluation state\n * @returns the connected value or the value if nothing is connected\n */\n getConnectedValue(state) {\n if (this.isConnected) {\n if (this._connectedPoint?._storedFunction) {\n this._connectedPoint._callCount++;\n this._connectedPoint._executionCount++;\n return this._connectedPoint._storedFunction(state);\n }\n this._connectedPoint._callCount++;\n this._connectedPoint._executionCount = 1;\n return this._connectedPoint._storedValue;\n }\n this._callCount++;\n this._executionCount = 1;\n return this.value;\n }\n /**\n * Creates a new connection point\n * @param name defines the connection point name\n * @param ownerBlock defines the block hosting this connection point\n * @param direction defines the direction of the connection point\n */\n constructor(name, ownerBlock, direction) {\n /** @internal */\n this._connectedPoint = null;\n /** @internal */\n this._storedValue = null;\n /** @internal */\n this._storedFunction = null;\n /** @internal */\n this._acceptedConnectionPointType = null;\n this._endpoints = new Array();\n this._type = NodeGeometryBlockConnectionPointTypes.Geometry;\n /** @internal */\n this._linkedConnectionSource = null;\n /** @internal */\n this._typeConnectionSource = null;\n /** @internal */\n this._defaultConnectionPointType = null;\n /**\n * Gets or sets the additional types supported by this connection point\n */\n this.acceptedConnectionPointTypes = [];\n /**\n * Gets or sets the additional types excluded by this connection point\n */\n this.excludedConnectionPointTypes = [];\n /**\n * Observable triggered when this point is connected\n */\n this.onConnectionObservable = new Observable();\n /**\n * Observable triggered when this point is disconnected\n */\n this.onDisconnectionObservable = new Observable();\n /**\n * Gets or sets a boolean indicating that this connection point is exposed on a frame\n */\n this.isExposedOnFrame = false;\n /**\n * Gets or sets number indicating the position that the port is exposed to on a frame\n */\n this.exposedPortPosition = -1;\n /**\n * Gets the default value used for this point at creation time\n */\n this.defaultValue = null;\n /**\n * Gets or sets the default value used for this point if nothing is connected\n */\n this.value = null;\n /**\n * Gets or sets the min value accepted for this point if nothing is connected\n */\n this.valueMin = null;\n /**\n * Gets or sets the max value accepted for this point if nothing is connected\n */\n this.valueMax = null;\n /** @internal */\n this._callCount = 0;\n /** @internal */\n this._executionCount = 0;\n this._ownerBlock = ownerBlock;\n this.name = name;\n this._direction = direction;\n }\n /**\n * Gets the current class name e.g. \"NodeMaterialConnectionPoint\"\n * @returns the class name\n */\n getClassName() {\n return \"NodeGeometryConnectionPoint\";\n }\n /**\n * Gets a boolean indicating if the current point can be connected to another point\n * @param connectionPoint defines the other connection point\n * @returns a boolean\n */\n canConnectTo(connectionPoint) {\n return this.checkCompatibilityState(connectionPoint) === 0 /* NodeGeometryConnectionPointCompatibilityStates.Compatible */;\n }\n /**\n * Gets a number indicating if the current point can be connected to another point\n * @param connectionPoint defines the other connection point\n * @returns a number defining the compatibility state\n */\n checkCompatibilityState(connectionPoint) {\n const ownerBlock = this._ownerBlock;\n const otherBlock = connectionPoint.ownerBlock;\n if (this.type !== connectionPoint.type && connectionPoint.innerType !== NodeGeometryBlockConnectionPointTypes.AutoDetect) {\n // Accepted types\n if (connectionPoint.acceptedConnectionPointTypes && connectionPoint.acceptedConnectionPointTypes.indexOf(this.type) !== -1) {\n return 0 /* NodeGeometryConnectionPointCompatibilityStates.Compatible */;\n }\n else {\n return 1 /* NodeGeometryConnectionPointCompatibilityStates.TypeIncompatible */;\n }\n }\n // Excluded\n if (connectionPoint.excludedConnectionPointTypes && connectionPoint.excludedConnectionPointTypes.indexOf(this.type) !== -1) {\n return 1 /* NodeGeometryConnectionPointCompatibilityStates.TypeIncompatible */;\n }\n // Check hierarchy\n let targetBlock = otherBlock;\n let sourceBlock = ownerBlock;\n if (this.direction === 0 /* NodeGeometryConnectionPointDirection.Input */) {\n targetBlock = ownerBlock;\n sourceBlock = otherBlock;\n }\n if (targetBlock.isAnAncestorOf(sourceBlock)) {\n return 2 /* NodeGeometryConnectionPointCompatibilityStates.HierarchyIssue */;\n }\n return 0 /* NodeGeometryConnectionPointCompatibilityStates.Compatible */;\n }\n /**\n * Connect this point to another connection point\n * @param connectionPoint defines the other connection point\n * @param ignoreConstraints defines if the system will ignore connection type constraints (default is false)\n * @returns the current connection point\n */\n connectTo(connectionPoint, ignoreConstraints = false) {\n if (!ignoreConstraints && !this.canConnectTo(connectionPoint)) {\n // eslint-disable-next-line no-throw-literal\n throw \"Cannot connect these two connectors.\";\n }\n this._endpoints.push(connectionPoint);\n connectionPoint._connectedPoint = this;\n this.onConnectionObservable.notifyObservers(connectionPoint);\n connectionPoint.onConnectionObservable.notifyObservers(this);\n return this;\n }\n /**\n * Disconnect this point from one of his endpoint\n * @param endpoint defines the other connection point\n * @returns the current connection point\n */\n disconnectFrom(endpoint) {\n const index = this._endpoints.indexOf(endpoint);\n if (index === -1) {\n return this;\n }\n this._endpoints.splice(index, 1);\n endpoint._connectedPoint = null;\n this.onDisconnectionObservable.notifyObservers(endpoint);\n endpoint.onDisconnectionObservable.notifyObservers(this);\n return this;\n }\n /**\n * Fill the list of excluded connection point types with all types other than those passed in the parameter\n * @param mask Types (ORed values of NodeMaterialBlockConnectionPointTypes) that are allowed, and thus will not be pushed to the excluded list\n */\n addExcludedConnectionPointFromAllowedTypes(mask) {\n let bitmask = 1;\n while (bitmask < NodeGeometryBlockConnectionPointTypes.All) {\n if (!(mask & bitmask)) {\n this.excludedConnectionPointTypes.push(bitmask);\n }\n bitmask = bitmask << 1;\n }\n }\n /**\n * Serializes this point in a JSON representation\n * @param isInput defines if the connection point is an input (default is true)\n * @returns the serialized point object\n */\n serialize(isInput = true) {\n const serializationObject = {};\n serializationObject.name = this.name;\n serializationObject.displayName = this.displayName;\n if (this.value !== undefined && this.value !== null) {\n if (this.value.asArray) {\n serializationObject.valueType = \"BABYLON.\" + this.value.getClassName();\n serializationObject.value = this.value.asArray();\n }\n else {\n serializationObject.valueType = \"number\";\n serializationObject.value = this.value;\n }\n }\n if (isInput && this.connectedPoint) {\n serializationObject.inputName = this.name;\n serializationObject.targetBlockId = this.connectedPoint.ownerBlock.uniqueId;\n serializationObject.targetConnectionName = this.connectedPoint.name;\n serializationObject.isExposedOnFrame = true;\n serializationObject.exposedPortPosition = this.exposedPortPosition;\n }\n if (this.isExposedOnFrame || this.exposedPortPosition >= 0) {\n serializationObject.isExposedOnFrame = true;\n serializationObject.exposedPortPosition = this.exposedPortPosition;\n }\n return serializationObject;\n }\n /**\n * Release resources\n */\n dispose() {\n this.onConnectionObservable.clear();\n this.onDisconnectionObservable.clear();\n }\n}\n","import { __decorate } from \"../../tslib.es6.js\";\nimport { GetClass } from \"../../Misc/typeStore.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { UniqueIdGenerator } from \"../../Misc/uniqueIdGenerator.js\";\nimport { NodeGeometryConnectionPoint } from \"./nodeGeometryBlockConnectionPoint.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { PrecisionDate } from \"../../Misc/precisionDate.js\";\nimport { Logger } from \"../../Misc/logger.js\";\n/**\n * Defines a block that can be used inside a node based geometry\n */\nexport class NodeGeometryBlock {\n /**\n * Gets the time spent to build this block (in ms)\n */\n get buildExecutionTime() {\n return this._buildExecutionTime;\n }\n /**\n * Gets the list of input points\n */\n get inputs() {\n return this._inputs;\n }\n /** Gets the list of output points */\n get outputs() {\n return this._outputs;\n }\n /**\n * Gets or set the name of the block\n */\n get name() {\n return this._name;\n }\n set name(value) {\n this._name = value;\n }\n /**\n * Gets a boolean indicating if this block is an input\n */\n get isInput() {\n return this._isInput;\n }\n /**\n * Gets a boolean indicating if this block is a teleport out\n */\n get isTeleportOut() {\n return this._isTeleportOut;\n }\n /**\n * Gets a boolean indicating if this block is a teleport in\n */\n get isTeleportIn() {\n return this._isTeleportIn;\n }\n /**\n * Gets a boolean indicating if this block is a debug block\n */\n get isDebug() {\n return this._isDebug;\n }\n /**\n * Gets a boolean indicating that this block can only be used once per NodeGeometry\n */\n get isUnique() {\n return this._isUnique;\n }\n /**\n * Gets the current class name e.g. \"NodeGeometryBlock\"\n * @returns the class name\n */\n getClassName() {\n return \"NodeGeometryBlock\";\n }\n _inputRename(name) {\n return name;\n }\n _outputRename(name) {\n return name;\n }\n /**\n * Checks if the current block is an ancestor of a given block\n * @param block defines the potential descendant block to check\n * @returns true if block is a descendant\n */\n isAnAncestorOf(block) {\n for (const output of this._outputs) {\n if (!output.hasEndpoints) {\n continue;\n }\n for (const endpoint of output.endpoints) {\n if (endpoint.ownerBlock === block) {\n return true;\n }\n if (endpoint.ownerBlock.isAnAncestorOf(block)) {\n return true;\n }\n }\n }\n return false;\n }\n /**\n * Checks if the current block is an ancestor of a given type\n * @param type defines the potential type to check\n * @returns true if block is a descendant\n */\n isAnAncestorOfType(type) {\n if (this.getClassName() === type) {\n return true;\n }\n for (const output of this._outputs) {\n if (!output.hasEndpoints) {\n continue;\n }\n for (const endpoint of output.endpoints) {\n if (endpoint.ownerBlock.isAnAncestorOfType(type)) {\n return true;\n }\n }\n }\n return false;\n }\n /**\n * Get the first descendant using a predicate\n * @param predicate defines the predicate to check\n * @returns descendant or null if none found\n */\n getDescendantOfPredicate(predicate) {\n if (predicate(this)) {\n return this;\n }\n for (const output of this._outputs) {\n if (!output.hasEndpoints) {\n continue;\n }\n for (const endpoint of output.endpoints) {\n const descendant = endpoint.ownerBlock.getDescendantOfPredicate(predicate);\n if (descendant) {\n return descendant;\n }\n }\n }\n return null;\n }\n /**\n * @internal\n */\n get _isReadyState() {\n return null;\n }\n /**\n * Creates a new NodeGeometryBlock\n * @param name defines the block name\n */\n constructor(name) {\n this._name = \"\";\n this._isInput = false;\n this._isTeleportOut = false;\n this._isTeleportIn = false;\n this._isDebug = false;\n this._isUnique = false;\n this._buildExecutionTime = 0;\n /**\n * Gets an observable raised when the block is built\n */\n this.onBuildObservable = new Observable();\n /** @internal */\n this._inputs = new Array();\n /** @internal */\n this._outputs = new Array();\n /** @internal */\n this._codeVariableName = \"\";\n /** Gets or sets a boolean indicating that this input can be edited from a collapsed frame */\n this.visibleOnFrame = false;\n this._name = name;\n this.uniqueId = UniqueIdGenerator.UniqueId;\n }\n /**\n * Register a new input. Must be called inside a block constructor\n * @param name defines the connection point name\n * @param type defines the connection point type\n * @param isOptional defines a boolean indicating that this input can be omitted\n * @param value value to return if there is no connection\n * @param valueMin min value accepted for value\n * @param valueMax max value accepted for value\n * @returns the current block\n */\n registerInput(name, type, isOptional = false, value, valueMin, valueMax) {\n const point = new NodeGeometryConnectionPoint(name, this, 0 /* NodeGeometryConnectionPointDirection.Input */);\n point.type = type;\n point.isOptional = isOptional;\n point.defaultValue = value;\n point.value = value;\n point.valueMin = valueMin;\n point.valueMax = valueMax;\n this._inputs.push(point);\n return this;\n }\n /**\n * Register a new output. Must be called inside a block constructor\n * @param name defines the connection point name\n * @param type defines the connection point type\n * @param point an already created connection point. If not provided, create a new one\n * @returns the current block\n */\n registerOutput(name, type, point) {\n point = point ?? new NodeGeometryConnectionPoint(name, this, 1 /* NodeGeometryConnectionPointDirection.Output */);\n point.type = type;\n this._outputs.push(point);\n return this;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _buildBlock(state) {\n // Empty. Must be defined by child nodes\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _customBuildStep(state) {\n // Must be implemented by children\n }\n /**\n * Build the current node and generate the vertex data\n * @param state defines the current generation state\n * @returns true if already built\n */\n build(state) {\n if (this._buildId === state.buildId) {\n return true;\n }\n if (this._outputs.length > 0) {\n if (!this._outputs.some((o) => o.hasEndpoints) && !this.isDebug) {\n return false;\n }\n this.outputs.forEach((o) => o._resetCounters());\n }\n this._buildId = state.buildId;\n // Check if \"parent\" blocks are compiled\n for (const input of this._inputs) {\n if (!input.connectedPoint) {\n if (!input.isOptional) {\n // Emit a warning\n state.notConnectedNonOptionalInputs.push(input);\n }\n continue;\n }\n const block = input.connectedPoint.ownerBlock;\n if (block && block !== this) {\n block.build(state);\n }\n }\n this._customBuildStep(state);\n // Logs\n if (state.verbose) {\n Logger.Log(`Building ${this.name} [${this.getClassName()}]`);\n }\n const now = PrecisionDate.Now;\n this._buildBlock(state);\n this._buildExecutionTime = PrecisionDate.Now - now;\n this.onBuildObservable.notifyObservers(this);\n return false;\n }\n _linkConnectionTypes(inputIndex0, inputIndex1, looseCoupling = false) {\n if (looseCoupling) {\n this._inputs[inputIndex1]._acceptedConnectionPointType = this._inputs[inputIndex0];\n }\n else {\n this._inputs[inputIndex0]._linkedConnectionSource = this._inputs[inputIndex1];\n }\n this._inputs[inputIndex1]._linkedConnectionSource = this._inputs[inputIndex0];\n }\n /**\n * Initialize the block and prepare the context for build\n */\n initialize() {\n // Do nothing\n }\n /**\n * Lets the block try to connect some inputs automatically\n */\n autoConfigure() {\n // Do nothing\n }\n /**\n * Find an input by its name\n * @param name defines the name of the input to look for\n * @returns the input or null if not found\n */\n getInputByName(name) {\n const filter = this._inputs.filter((e) => e.name === name);\n if (filter.length) {\n return filter[0];\n }\n return null;\n }\n /**\n * Find an output by its name\n * @param name defines the name of the output to look for\n * @returns the output or null if not found\n */\n getOutputByName(name) {\n const filter = this._outputs.filter((e) => e.name === name);\n if (filter.length) {\n return filter[0];\n }\n return null;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = {};\n serializationObject.customType = \"BABYLON.\" + this.getClassName();\n serializationObject.id = this.uniqueId;\n serializationObject.name = this.name;\n serializationObject.visibleOnFrame = this.visibleOnFrame;\n serializationObject.inputs = [];\n serializationObject.outputs = [];\n for (const input of this.inputs) {\n serializationObject.inputs.push(input.serialize());\n }\n for (const output of this.outputs) {\n serializationObject.outputs.push(output.serialize(false));\n }\n return serializationObject;\n }\n /**\n * @internal\n */\n _deserialize(serializationObject) {\n this._name = serializationObject.name;\n this.comments = serializationObject.comments;\n this.visibleOnFrame = !!serializationObject.visibleOnFrame;\n this._deserializePortDisplayNamesAndExposedOnFrame(serializationObject);\n }\n _deserializePortDisplayNamesAndExposedOnFrame(serializationObject) {\n const serializedInputs = serializationObject.inputs;\n const serializedOutputs = serializationObject.outputs;\n if (serializedInputs) {\n serializedInputs.forEach((port) => {\n const input = this.inputs.find((i) => i.name === port.name);\n if (!input) {\n return;\n }\n if (port.displayName) {\n input.displayName = port.displayName;\n }\n if (port.isExposedOnFrame) {\n input.isExposedOnFrame = port.isExposedOnFrame;\n input.exposedPortPosition = port.exposedPortPosition;\n }\n if (port.value !== undefined && port.value !== null) {\n if (port.valueType === \"number\") {\n input.value = port.value;\n }\n else {\n const valueType = GetClass(port.valueType);\n if (valueType) {\n input.value = valueType.FromArray(port.value);\n }\n }\n }\n });\n }\n if (serializedOutputs) {\n serializedOutputs.forEach((port, i) => {\n if (port.displayName) {\n this.outputs[i].displayName = port.displayName;\n }\n if (port.isExposedOnFrame) {\n this.outputs[i].isExposedOnFrame = port.isExposedOnFrame;\n this.outputs[i].exposedPortPosition = port.exposedPortPosition;\n }\n });\n }\n }\n _dumpPropertiesCode() {\n const variableName = this._codeVariableName;\n return `${variableName}.visibleOnFrame = ${this.visibleOnFrame};\\n`;\n }\n /**\n * @internal\n */\n _dumpCodeForOutputConnections(alreadyDumped) {\n let codeString = \"\";\n if (alreadyDumped.indexOf(this) !== -1) {\n return codeString;\n }\n alreadyDumped.push(this);\n for (const input of this.inputs) {\n if (!input.isConnected) {\n continue;\n }\n const connectedOutput = input.connectedPoint;\n const connectedBlock = connectedOutput.ownerBlock;\n codeString += connectedBlock._dumpCodeForOutputConnections(alreadyDumped);\n codeString += `${connectedBlock._codeVariableName}.${connectedBlock._outputRename(connectedOutput.name)}.connectTo(${this._codeVariableName}.${this._inputRename(input.name)});\\n`;\n }\n return codeString;\n }\n /**\n * @internal\n */\n _dumpCode(uniqueNames, alreadyDumped) {\n alreadyDumped.push(this);\n // Get unique name\n const nameAsVariableName = this.name.replace(/[^A-Za-z_]+/g, \"\");\n this._codeVariableName = nameAsVariableName || `${this.getClassName()}_${this.uniqueId}`;\n if (uniqueNames.indexOf(this._codeVariableName) !== -1) {\n let index = 0;\n do {\n index++;\n this._codeVariableName = nameAsVariableName + index;\n } while (uniqueNames.indexOf(this._codeVariableName) !== -1);\n }\n uniqueNames.push(this._codeVariableName);\n // Declaration\n let codeString = `\\n// ${this.getClassName()}\\n`;\n if (this.comments) {\n codeString += `// ${this.comments}\\n`;\n }\n const className = this.getClassName();\n if (className === \"GeometryInputBlock\") {\n const block = this;\n const blockType = block.type;\n codeString += `var ${this._codeVariableName} = new BABYLON.GeometryInputBlock(\"${this.name}\", ${blockType});\\n`;\n }\n else {\n codeString += `var ${this._codeVariableName} = new BABYLON.${className}(\"${this.name}\");\\n`;\n }\n // Properties\n codeString += this._dumpPropertiesCode();\n // Inputs\n for (const input of this.inputs) {\n if (!input.isConnected) {\n continue;\n }\n const connectedOutput = input.connectedPoint;\n const connectedBlock = connectedOutput.ownerBlock;\n if (alreadyDumped.indexOf(connectedBlock) === -1) {\n codeString += connectedBlock._dumpCode(uniqueNames, alreadyDumped);\n }\n }\n // Outputs\n for (const output of this.outputs) {\n if (!output.hasEndpoints) {\n continue;\n }\n for (const endpoint of output.endpoints) {\n const connectedBlock = endpoint.ownerBlock;\n if (connectedBlock && alreadyDumped.indexOf(connectedBlock) === -1) {\n codeString += connectedBlock._dumpCode(uniqueNames, alreadyDumped);\n }\n }\n }\n return codeString;\n }\n /**\n * Clone the current block to a new identical block\n * @returns a copy of the current block\n */\n clone() {\n const serializationObject = this.serialize();\n const blockType = GetClass(serializationObject.customType);\n if (blockType) {\n const block = new blockType();\n block._deserialize(serializationObject);\n return block;\n }\n return null;\n }\n /**\n * Release resources\n */\n dispose() {\n for (const input of this.inputs) {\n input.dispose();\n }\n for (const output of this.outputs) {\n output.dispose();\n }\n this.onBuildObservable.clear();\n }\n}\n__decorate([\n serialize(\"comment\")\n], NodeGeometryBlock.prototype, \"comments\", void 0);\n","import { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\n/**\n * Block used to generate the final geometry\n */\nexport class GeometryOutputBlock extends NodeGeometryBlock {\n /**\n * Gets the current vertex data if the graph was successfully built\n */\n get currentVertexData() {\n return this._vertexData;\n }\n /**\n * Create a new GeometryOutputBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._vertexData = null;\n this._isUnique = true;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryOutputBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n _buildBlock(state) {\n state.vertexData = this.geometry.getConnectedValue(state);\n this._vertexData = state.vertexData;\n }\n}\nRegisterClass(\"BABYLON.GeometryOutputBlock\", GeometryOutputBlock);\n","/**\n * Defines the kind of contextual sources for node geometry\n */\nexport var NodeGeometryContextualSources;\n(function (NodeGeometryContextualSources) {\n /** None */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"None\"] = 0] = \"None\";\n /** Positions */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"Positions\"] = 1] = \"Positions\";\n /** Normals */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"Normals\"] = 2] = \"Normals\";\n /** Tangents */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"Tangents\"] = 3] = \"Tangents\";\n /** UV */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"UV\"] = 4] = \"UV\";\n /** UV2 */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"UV2\"] = 5] = \"UV2\";\n /** UV3 */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"UV3\"] = 6] = \"UV3\";\n /** UV4 */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"UV4\"] = 7] = \"UV4\";\n /** UV5 */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"UV5\"] = 8] = \"UV5\";\n /** UV6 */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"UV6\"] = 9] = \"UV6\";\n /** Colors */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"Colors\"] = 10] = \"Colors\";\n /** VertexID */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"VertexID\"] = 11] = \"VertexID\";\n /** FaceID */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"FaceID\"] = 12] = \"FaceID\";\n /** GeometryID */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"GeometryID\"] = 13] = \"GeometryID\";\n /** CollectionID */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"CollectionID\"] = 14] = \"CollectionID\";\n /** LoopID */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"LoopID\"] = 15] = \"LoopID\";\n /** InstanceID */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"InstanceID\"] = 16] = \"InstanceID\";\n /** LatticeID */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"LatticeID\"] = 17] = \"LatticeID\";\n /** LatticeControl */\n NodeGeometryContextualSources[NodeGeometryContextualSources[\"LatticeControl\"] = 18] = \"LatticeControl\";\n})(NodeGeometryContextualSources || (NodeGeometryContextualSources = {}));\n","import { NodeGeometryContextualSources } from \"./Enums/nodeGeometryContextualSources.js\";\nimport { Matrix, Vector2, Vector3, Vector4 } from \"../../Maths/math.vector.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"./Enums/nodeGeometryConnectionPointTypes.js\";\n/**\n * Class used to store node based geometry build state\n */\nexport class NodeGeometryBuildState {\n constructor() {\n this._rotationMatrix = new Matrix();\n this._scalingMatrix = new Matrix();\n this._positionMatrix = new Matrix();\n this._scalingRotationMatrix = new Matrix();\n this._transformMatrix = new Matrix();\n this._tempVector3 = new Vector3();\n /** Gets or sets the list of non connected mandatory inputs */\n this.notConnectedNonOptionalInputs = [];\n /** Gets or sets the list of non contextual inputs having no contextudal data */\n this.noContextualData = [];\n /** Gets or sets the vertex data */\n this.vertexData = null;\n this._geometryContext = null;\n this._executionContext = null;\n this._instancingContext = null;\n this._geometryContextStack = [];\n this._executionContextStack = [];\n this._instancingContextStack = [];\n }\n /** Gets or sets the geometry context */\n get geometryContext() {\n return this._geometryContext;\n }\n /** Gets or sets the execution context */\n get executionContext() {\n return this._executionContext;\n }\n /** Gets or sets the instancing context */\n get instancingContext() {\n return this._instancingContext;\n }\n /**\n * Push the new active geometry context\n * @param geometryContext defines the geometry context\n */\n pushGeometryContext(geometryContext) {\n this._geometryContext = geometryContext;\n this._geometryContextStack.push(this._geometryContext);\n }\n /**\n * Push the new active execution context\n * @param executionContext defines the execution context\n */\n pushExecutionContext(executionContext) {\n this._executionContext = executionContext;\n this._executionContextStack.push(this._executionContext);\n }\n /**\n * Push the new active instancing context\n * @param instancingContext defines the instancing context\n */\n pushInstancingContext(instancingContext) {\n this._instancingContext = instancingContext;\n this._instancingContextStack.push(this._instancingContext);\n }\n /**\n * Remove current geometry context and restore the previous one\n */\n restoreGeometryContext() {\n this._geometryContextStack.pop();\n this._geometryContext = this._geometryContextStack.length > 0 ? this._geometryContextStack[this._geometryContextStack.length - 1] : null;\n }\n /**\n * Remove current execution context and restore the previous one\n */\n restoreExecutionContext() {\n this._executionContextStack.pop();\n this._executionContext = this._executionContextStack.length > 0 ? this._executionContextStack[this._executionContextStack.length - 1] : null;\n }\n /**\n * Remove current isntancing context and restore the previous one\n */\n restoreInstancingContext() {\n this._instancingContextStack.pop();\n this._instancingContext = this._instancingContextStack.length > 0 ? this._instancingContextStack[this._instancingContextStack.length - 1] : null;\n }\n /**\n * Gets the value associated with a contextual source\n * @param source Source of the contextual value\n * @param skipWarning Do not store the warning for reporting if true\n * @returns the value associated with the source\n */\n getContextualValue(source, skipWarning = false) {\n if (!this.executionContext) {\n if (!skipWarning) {\n this.noContextualData.push(source);\n }\n return null;\n }\n const index = this.executionContext.getExecutionIndex();\n switch (source) {\n case NodeGeometryContextualSources.Positions:\n if (this.executionContext.getOverridePositionsContextualValue) {\n return this.executionContext.getOverridePositionsContextualValue();\n }\n if (!this.geometryContext || !this.geometryContext.positions) {\n return Vector3.Zero();\n }\n return Vector3.FromArray(this.geometryContext.positions, index * 3);\n case NodeGeometryContextualSources.Normals:\n if (this.executionContext.getOverrideNormalsContextualValue) {\n return this.executionContext.getOverrideNormalsContextualValue();\n }\n if (!this.geometryContext || !this.geometryContext.normals) {\n return Vector3.Zero();\n }\n return Vector3.FromArray(this.geometryContext.normals, index * 3);\n case NodeGeometryContextualSources.Colors:\n if (!this.geometryContext || !this.geometryContext.colors) {\n return Vector4.Zero();\n }\n return Vector4.FromArray(this.geometryContext.colors, index * 4);\n case NodeGeometryContextualSources.Tangents:\n if (!this.geometryContext || !this.geometryContext.tangents) {\n return Vector4.Zero();\n }\n return Vector4.FromArray(this.geometryContext.tangents, index * 4);\n case NodeGeometryContextualSources.UV:\n if (this.executionContext.getOverrideUVs1ContextualValue) {\n return this.executionContext.getOverrideUVs1ContextualValue();\n }\n if (!this.geometryContext || !this.geometryContext.uvs) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs, index * 2);\n case NodeGeometryContextualSources.UV2:\n if (!this.geometryContext || !this.geometryContext.uvs2) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs2, index * 2);\n case NodeGeometryContextualSources.UV3:\n if (!this.geometryContext || !this.geometryContext.uvs3) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs3, index * 2);\n case NodeGeometryContextualSources.UV4:\n if (!this.geometryContext || !this.geometryContext.uvs4) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs4, index * 2);\n case NodeGeometryContextualSources.UV5:\n if (!this.geometryContext || !this.geometryContext.uvs5) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs5, index * 2);\n case NodeGeometryContextualSources.UV6:\n if (!this.geometryContext || !this.geometryContext.uvs6) {\n return Vector2.Zero();\n }\n return Vector2.FromArray(this.geometryContext.uvs6, index * 2);\n case NodeGeometryContextualSources.VertexID:\n return index;\n case NodeGeometryContextualSources.FaceID:\n return this.executionContext.getExecutionFaceIndex();\n case NodeGeometryContextualSources.LoopID:\n return this.executionContext.getExecutionLoopIndex();\n case NodeGeometryContextualSources.InstanceID:\n return this.instancingContext ? this.instancingContext.getInstanceIndex() : 0;\n case NodeGeometryContextualSources.GeometryID:\n return !this.geometryContext ? 0 : this.geometryContext.uniqueId;\n case NodeGeometryContextualSources.CollectionID: {\n if (!this.geometryContext || !this.geometryContext.metadata) {\n return 0;\n }\n return this.geometryContext.metadata.collectionId || 0;\n }\n case NodeGeometryContextualSources.LatticeID: {\n if (this.executionContext.getOverridePositionsContextualValue) {\n return this.executionContext.getOverridePositionsContextualValue();\n }\n return Vector3.Zero();\n }\n case NodeGeometryContextualSources.LatticeControl: {\n if (this.executionContext.getOverrideNormalsContextualValue) {\n return this.executionContext.getOverrideNormalsContextualValue();\n }\n return Vector3.Zero();\n }\n }\n return null;\n }\n /**\n * Adapt a value to a target type\n * @param source defines the value to adapt\n * @param targetType defines the target type\n * @returns the adapted value\n */\n adapt(source, targetType) {\n const value = source.getConnectedValue(this) || 0;\n if (source.type === targetType) {\n return value;\n }\n switch (targetType) {\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n return new Vector2(value, value);\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n return new Vector3(value, value, value);\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n return new Vector4(value, value, value, value);\n }\n return null;\n }\n /**\n * Adapt an input value to a target type\n * @param source defines the value to adapt\n * @param targetType defines the target type\n * @param defaultValue defines the default value to use if not connected\n * @returns the adapted value\n */\n adaptInput(source, targetType, defaultValue) {\n if (!source.isConnected) {\n return source.value || defaultValue;\n }\n const value = source.getConnectedValue(this);\n if (source._connectedPoint?.type === targetType) {\n return value;\n }\n switch (targetType) {\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n return new Vector2(value, value);\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n return new Vector3(value, value, value);\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n return new Vector4(value, value, value, value);\n }\n return null;\n }\n /**\n * Emits console errors and exceptions if there is a failing check\n */\n emitErrors() {\n let errorMessage = \"\";\n for (const notConnectedInput of this.notConnectedNonOptionalInputs) {\n errorMessage += `input ${notConnectedInput.name} from block ${notConnectedInput.ownerBlock.name}[${notConnectedInput.ownerBlock.getClassName()}] is not connected and is not optional.\\n`;\n }\n for (const source of this.noContextualData) {\n errorMessage += `Contextual input ${NodeGeometryContextualSources[source]} has no context to pull data from (must be connected to a setXXX block or a instantiateXXX block).\\n`;\n }\n if (errorMessage) {\n // eslint-disable-next-line no-throw-literal\n throw \"Build of NodeGeometry failed:\\n\" + errorMessage;\n }\n }\n /** @internal */\n _instantiate(clone, currentPosition, rotation, scaling, additionalVertexData) {\n // Transform\n Matrix.ScalingToRef(scaling.x, scaling.y, scaling.z, this._scalingMatrix);\n Matrix.RotationYawPitchRollToRef(rotation.y, rotation.x, rotation.z, this._rotationMatrix);\n Matrix.TranslationToRef(currentPosition.x, currentPosition.y, currentPosition.z, this._positionMatrix);\n this._scalingMatrix.multiplyToRef(this._rotationMatrix, this._scalingRotationMatrix);\n this._scalingRotationMatrix.multiplyToRef(this._positionMatrix, this._transformMatrix);\n for (let clonePositionIndex = 0; clonePositionIndex < clone.positions.length; clonePositionIndex += 3) {\n this._tempVector3.fromArray(clone.positions, clonePositionIndex);\n Vector3.TransformCoordinatesToRef(this._tempVector3, this._transformMatrix, this._tempVector3);\n this._tempVector3.toArray(clone.positions, clonePositionIndex);\n if (clone.normals) {\n this._tempVector3.fromArray(clone.normals, clonePositionIndex);\n Vector3.TransformNormalToRef(this._tempVector3, this._scalingRotationMatrix, this._tempVector3);\n this._tempVector3.toArray(clone.normals, clonePositionIndex);\n }\n }\n additionalVertexData.push(clone);\n }\n /** @internal */\n _instantiateWithMatrix(clone, transform, additionalVertexData) {\n for (let clonePositionIndex = 0; clonePositionIndex < clone.positions.length; clonePositionIndex += 3) {\n this._tempVector3.fromArray(clone.positions, clonePositionIndex);\n Vector3.TransformCoordinatesToRef(this._tempVector3, transform, this._tempVector3);\n this._tempVector3.toArray(clone.positions, clonePositionIndex);\n if (clone.normals) {\n this._tempVector3.fromArray(clone.normals, clonePositionIndex);\n Vector3.TransformNormalToRef(this._tempVector3, transform, this._tempVector3);\n this._tempVector3.toArray(clone.normals, clonePositionIndex);\n }\n }\n additionalVertexData.push(clone);\n }\n /** @internal */\n _instantiateWithPositionAndMatrix(clone, currentPosition, transform, additionalVertexData) {\n Matrix.TranslationToRef(currentPosition.x, currentPosition.y, currentPosition.z, this._positionMatrix);\n transform.multiplyToRef(this._positionMatrix, this._transformMatrix);\n for (let clonePositionIndex = 0; clonePositionIndex < clone.positions.length; clonePositionIndex += 3) {\n this._tempVector3.fromArray(clone.positions, clonePositionIndex);\n Vector3.TransformCoordinatesToRef(this._tempVector3, this._transformMatrix, this._tempVector3);\n this._tempVector3.toArray(clone.positions, clonePositionIndex);\n if (clone.normals) {\n this._tempVector3.fromArray(clone.normals, clonePositionIndex);\n Vector3.TransformNormalToRef(this._tempVector3, this._transformMatrix, this._tempVector3);\n this._tempVector3.toArray(clone.normals, clonePositionIndex);\n }\n }\n additionalVertexData.push(clone);\n }\n}\n","import { Observable } from \"../../../Misc/observable.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { GetClass, RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { Matrix, Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { NodeGeometryContextualSources } from \"../Enums/nodeGeometryContextualSources.js\";\n/**\n * Block used to expose an input value\n */\nexport class GeometryInputBlock extends NodeGeometryBlock {\n /**\n * Gets or sets the connection point type (default is float)\n */\n get type() {\n if (this._type === NodeGeometryBlockConnectionPointTypes.AutoDetect) {\n if (this.value != null) {\n if (!isNaN(this.value)) {\n this._type = NodeGeometryBlockConnectionPointTypes.Float;\n return this._type;\n }\n switch (this.value.getClassName()) {\n case \"Vector2\":\n this._type = NodeGeometryBlockConnectionPointTypes.Vector2;\n return this._type;\n case \"Vector3\":\n this._type = NodeGeometryBlockConnectionPointTypes.Vector3;\n return this._type;\n case \"Vector4\":\n this._type = NodeGeometryBlockConnectionPointTypes.Vector4;\n return this._type;\n case \"Matrix\":\n this._type = NodeGeometryBlockConnectionPointTypes.Matrix;\n return this._type;\n }\n }\n }\n return this._type;\n }\n /**\n * Gets a boolean indicating that the current connection point is a contextual value\n */\n get isContextual() {\n return this._contextualSource !== NodeGeometryContextualSources.None;\n }\n /**\n * Gets or sets the current contextual value\n */\n get contextualValue() {\n return this._contextualSource;\n }\n set contextualValue(value) {\n this._contextualSource = value;\n switch (value) {\n case NodeGeometryContextualSources.Positions:\n case NodeGeometryContextualSources.Normals:\n case NodeGeometryContextualSources.LatticeID:\n case NodeGeometryContextualSources.LatticeControl:\n this._type = NodeGeometryBlockConnectionPointTypes.Vector3;\n break;\n case NodeGeometryContextualSources.Colors:\n case NodeGeometryContextualSources.Tangents:\n this._type = NodeGeometryBlockConnectionPointTypes.Vector4;\n break;\n case NodeGeometryContextualSources.UV:\n case NodeGeometryContextualSources.UV2:\n case NodeGeometryContextualSources.UV3:\n case NodeGeometryContextualSources.UV4:\n case NodeGeometryContextualSources.UV5:\n case NodeGeometryContextualSources.UV6:\n this._type = NodeGeometryBlockConnectionPointTypes.Vector2;\n break;\n case NodeGeometryContextualSources.VertexID:\n case NodeGeometryContextualSources.GeometryID:\n case NodeGeometryContextualSources.CollectionID:\n case NodeGeometryContextualSources.FaceID:\n case NodeGeometryContextualSources.LoopID:\n case NodeGeometryContextualSources.InstanceID:\n this._type = NodeGeometryBlockConnectionPointTypes.Int;\n break;\n }\n if (this.output) {\n this.output.type = this._type;\n }\n }\n /**\n * Creates a new InputBlock\n * @param name defines the block name\n * @param type defines the type of the input (can be set to NodeGeometryBlockConnectionPointTypes.AutoDetect)\n */\n constructor(name, type = NodeGeometryBlockConnectionPointTypes.AutoDetect) {\n super(name);\n this._type = NodeGeometryBlockConnectionPointTypes.Undefined;\n this._contextualSource = NodeGeometryContextualSources.None;\n /** Gets or set a value used to limit the range of float values */\n this.min = 0;\n /** Gets or set a value used to limit the range of float values */\n this.max = 0;\n /** Gets or sets the group to use to display this block in the Inspector */\n this.groupInInspector = \"\";\n /** Gets an observable raised when the value is changed */\n this.onValueChangedObservable = new Observable();\n this._type = type;\n this._isInput = true;\n this.setDefaultValue();\n this.registerOutput(\"output\", type);\n }\n /**\n * Gets or sets the value of that point.\n * Please note that this value will be ignored if valueCallback is defined\n */\n get value() {\n return this._storedValue;\n }\n set value(value) {\n if (this.type === NodeGeometryBlockConnectionPointTypes.Float) {\n if (this.min !== this.max) {\n value = Math.max(this.min, value);\n value = Math.min(this.max, value);\n }\n }\n this._storedValue = value;\n this.onValueChangedObservable.notifyObservers(this);\n }\n /**\n * Gets or sets a callback used to get the value of that point.\n * Please note that setting this value will force the connection point to ignore the value property\n */\n get valueCallback() {\n return this._valueCallback;\n }\n set valueCallback(value) {\n this._valueCallback = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryInputBlock\";\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Set the input block to its default value (based on its type)\n */\n setDefaultValue() {\n this.contextualValue = NodeGeometryContextualSources.None;\n switch (this.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float:\n this.value = 0;\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n this.value = Vector2.Zero();\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n this.value = Vector3.Zero();\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n this.value = Vector4.Zero();\n break;\n case NodeGeometryBlockConnectionPointTypes.Matrix:\n this.value = Matrix.Identity();\n break;\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n if (this.isContextual) {\n this.output._storedValue = null;\n this.output._storedFunction = (state) => {\n return state.getContextualValue(this._contextualSource);\n };\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = this.value;\n }\n }\n dispose() {\n this.onValueChangedObservable.clear();\n super.dispose();\n }\n _dumpPropertiesCode() {\n const variableName = this._codeVariableName;\n if (this.isContextual) {\n return (super._dumpPropertiesCode() + `${variableName}.contextualValue = BABYLON.NodeGeometryContextualSources.${NodeGeometryContextualSources[this._contextualSource]};\\n`);\n }\n const codes = [];\n let valueString = \"\";\n switch (this.type) {\n case NodeGeometryBlockConnectionPointTypes.Float:\n case NodeGeometryBlockConnectionPointTypes.Int:\n valueString = `${this.value}`;\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n valueString = `new BABYLON.Vector2(${this.value.x}, ${this.value.y})`;\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n valueString = `new BABYLON.Vector3(${this.value.x}, ${this.value.y}, ${this.value.z})`;\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n valueString = `new BABYLON.Vector4(${this.value.x}, ${this.value.y}, ${this.value.z}, ${this.value.w})`;\n break;\n }\n // Common Property \"Value\"\n codes.push(`${variableName}.value = ${valueString}`);\n // Float-Value-Specific Properties\n if (this.type === NodeGeometryBlockConnectionPointTypes.Float || this.type === NodeGeometryBlockConnectionPointTypes.Int) {\n codes.push(`${variableName}.min = ${this.min}`, `${variableName}.max = ${this.max}`);\n }\n codes.push(\"\");\n return super._dumpPropertiesCode() + codes.join(\";\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.type = this.type;\n serializationObject.contextualValue = this.contextualValue;\n serializationObject.min = this.min;\n serializationObject.max = this.max;\n serializationObject.groupInInspector = this.groupInInspector;\n if (this._storedValue !== null && !this.isContextual) {\n if (this._storedValue.asArray) {\n serializationObject.valueType = \"BABYLON.\" + this._storedValue.getClassName();\n serializationObject.value = this._storedValue.asArray();\n }\n else {\n serializationObject.valueType = \"number\";\n serializationObject.value = this._storedValue;\n }\n }\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this._type = serializationObject.type;\n this.contextualValue = serializationObject.contextualValue;\n this.min = serializationObject.min || 0;\n this.max = serializationObject.max || 0;\n this.groupInInspector = serializationObject.groupInInspector || \"\";\n if (!serializationObject.valueType) {\n return;\n }\n if (serializationObject.valueType === \"number\") {\n this._storedValue = serializationObject.value;\n }\n else {\n const valueType = GetClass(serializationObject.valueType);\n if (valueType) {\n this._storedValue = valueType.FromArray(serializationObject.value);\n }\n }\n }\n}\nRegisterClass(\"BABYLON.GeometryInputBlock\", GeometryInputBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { CreateSegmentedBoxVertexData } from \"../../../Builders/boxBuilder.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Defines a block used to generate box geometry data\n */\nexport class BoxBlock extends NodeGeometryBlock {\n /**\n * Create a new BoxBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = false;\n this.registerInput(\"size\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerInput(\"width\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"height\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"depth\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"subdivisions\", NodeGeometryBlockConnectionPointTypes.Int, true, 1);\n this.registerInput(\"subdivisionsX\", NodeGeometryBlockConnectionPointTypes.Int, true, 0);\n this.registerInput(\"subdivisionsY\", NodeGeometryBlockConnectionPointTypes.Int, true, 0);\n this.registerInput(\"subdivisionsZ\", NodeGeometryBlockConnectionPointTypes.Int, true, 0);\n this.registerOutput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"BoxBlock\";\n }\n /**\n * Gets the size input component\n */\n get size() {\n return this._inputs[0];\n }\n /**\n * Gets the width input component\n */\n get width() {\n return this._inputs[1];\n }\n /**\n * Gets the height input component\n */\n get height() {\n return this._inputs[2];\n }\n /**\n * Gets the depth input component\n */\n get depth() {\n return this._inputs[3];\n }\n /**\n * Gets the subdivisions input component\n */\n get subdivisions() {\n return this._inputs[4];\n }\n /**\n * Gets the subdivisionsX input component\n */\n get subdivisionsX() {\n return this._inputs[5];\n }\n /**\n * Gets the subdivisionsY input component\n */\n get subdivisionsY() {\n return this._inputs[6];\n }\n /**\n * Gets the subdivisionsZ input component\n */\n get subdivisionsZ() {\n return this._inputs[7];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (this.size.isConnected) {\n return;\n }\n if (!this.width.isConnected && !this.height.isConnected && !this.depth.isConnected) {\n const sizeInput = new GeometryInputBlock(\"Size\");\n sizeInput.value = 1;\n sizeInput.output.connectTo(this.size);\n return;\n }\n if (!this.width.isConnected) {\n const widthInput = new GeometryInputBlock(\"Width\");\n widthInput.value = 1;\n widthInput.output.connectTo(this.width);\n }\n if (!this.height.isConnected) {\n const heightInput = new GeometryInputBlock(\"Height\");\n heightInput.value = 1;\n heightInput.output.connectTo(this.height);\n }\n if (!this.depth.isConnected) {\n const depthInput = new GeometryInputBlock(\"Depth\");\n depthInput.value = 1;\n depthInput.output.connectTo(this.depth);\n }\n }\n _buildBlock(state) {\n const options = {};\n const func = (state) => {\n options.size = this.size.getConnectedValue(state);\n options.width = this.width.getConnectedValue(state);\n options.height = this.height.getConnectedValue(state);\n options.depth = this.depth.getConnectedValue(state);\n const subdivisions = this.subdivisions.getConnectedValue(state);\n const subdivisionsX = this.subdivisionsX.getConnectedValue(state);\n const subdivisionsY = this.subdivisionsY.getConnectedValue(state);\n const subdivisionsZ = this.subdivisionsZ.getConnectedValue(state);\n if (subdivisions) {\n options.segments = subdivisions;\n }\n if (subdivisionsX) {\n options.widthSegments = subdivisionsX;\n }\n if (subdivisionsY) {\n options.heightSegments = subdivisionsY;\n }\n if (subdivisionsZ) {\n options.depthSegments = subdivisionsZ;\n }\n // Append vertex data from the plane builder\n return CreateSegmentedBoxVertexData(options);\n };\n if (this.evaluateContext) {\n this.geometry._storedFunction = func;\n }\n else {\n const value = func(state);\n this.geometry._storedFunction = () => {\n this.geometry._executionCount = 1;\n return value.clone();\n };\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], BoxBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.BoxBlock\", BoxBlock);\n","import { __decorate } from \"../../tslib.es6.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { Mesh } from \"../mesh.js\";\nimport { GeometryOutputBlock } from \"./Blocks/geometryOutputBlock.js\";\nimport { NodeGeometryBuildState } from \"./nodeGeometryBuildState.js\";\nimport { GetClass } from \"../../Misc/typeStore.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { SerializationHelper } from \"../../Misc/decorators.serialization.js\";\n\nimport { WebRequest } from \"../../Misc/webRequest.js\";\nimport { BoxBlock } from \"./Blocks/Sources/boxBlock.js\";\nimport { PrecisionDate } from \"../../Misc/precisionDate.js\";\nimport { Tools } from \"../../Misc/tools.js\";\nimport { AbstractEngine } from \"../../Engines/abstractEngine.js\";\n/**\n * Defines a node based geometry\n * @see demo at https://playground.babylonjs.com#PYY6XE#69\n */\nexport class NodeGeometry {\n /** @returns the inspector from bundle or global */\n _getGlobalNodeGeometryEditor() {\n // UMD Global name detection from Webpack Bundle UMD Name.\n if (typeof NODEGEOMETRYEDITOR !== \"undefined\") {\n return NODEGEOMETRYEDITOR;\n }\n // In case of module let's check the global emitted from the editor entry point.\n if (typeof BABYLON !== \"undefined\" && typeof BABYLON.NodeGeometryEditor !== \"undefined\") {\n return BABYLON;\n }\n return undefined;\n }\n /**\n * Gets the time spent to build this block (in ms)\n */\n get buildExecutionTime() {\n return this._buildExecutionTime;\n }\n /**\n * Creates a new geometry\n * @param name defines the name of the geometry\n */\n constructor(name) {\n this._buildId = NodeGeometry._BuildIdGenerator++;\n this._buildWasSuccessful = false;\n this._vertexData = null;\n this._buildExecutionTime = 0;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this.BJSNODEGEOMETRYEDITOR = this._getGlobalNodeGeometryEditor();\n /**\n * Gets or sets data used by visual editor\n * @see https://nge.babylonjs.com\n */\n this.editorData = null;\n /**\n * Gets an array of blocks that needs to be serialized even if they are not yet connected\n */\n this.attachedBlocks = [];\n /**\n * Observable raised when the geometry is built\n */\n this.onBuildObservable = new Observable();\n /** Gets or sets the GeometryOutputBlock used to gather the final geometry data */\n this.outputBlock = null;\n this.name = name;\n }\n /**\n * Gets the current class name of the geometry e.g. \"NodeGeometry\"\n * @returns the class name\n */\n getClassName() {\n return \"NodeGeometry\";\n }\n /**\n * Gets the vertex data. This needs to be done after build() was called.\n * This is used to access vertexData when creating a mesh is not required.\n */\n get vertexData() {\n return this._vertexData;\n }\n /**\n * Get a block by its name\n * @param name defines the name of the block to retrieve\n * @returns the required block or null if not found\n */\n getBlockByName(name) {\n let result = null;\n for (const block of this.attachedBlocks) {\n if (block.name === name) {\n if (!result) {\n result = block;\n }\n else {\n Tools.Warn(\"More than one block was found with the name `\" + name + \"`\");\n return result;\n }\n }\n }\n return result;\n }\n /**\n * Get a block using a predicate\n * @param predicate defines the predicate used to find the good candidate\n * @returns the required block or null if not found\n */\n getBlockByPredicate(predicate) {\n for (const block of this.attachedBlocks) {\n if (predicate(block)) {\n return block;\n }\n }\n return null;\n }\n /**\n * Gets the list of input blocks attached to this material\n * @returns an array of InputBlocks\n */\n getInputBlocks() {\n const blocks = [];\n for (const block of this.attachedBlocks) {\n if (block.isInput) {\n blocks.push(block);\n }\n }\n return blocks;\n }\n /**\n * Launch the node geometry editor\n * @param config Define the configuration of the editor\n * @returns a promise fulfilled when the node editor is visible\n */\n edit(config) {\n return new Promise((resolve) => {\n this.BJSNODEGEOMETRYEDITOR = this.BJSNODEGEOMETRYEDITOR || this._getGlobalNodeGeometryEditor();\n if (typeof this.BJSNODEGEOMETRYEDITOR == \"undefined\") {\n const editorUrl = config && config.editorURL ? config.editorURL : NodeGeometry.EditorURL;\n // Load editor and add it to the DOM\n Tools.LoadBabylonScript(editorUrl, () => {\n this.BJSNODEGEOMETRYEDITOR = this.BJSNODEGEOMETRYEDITOR || this._getGlobalNodeGeometryEditor();\n this._createNodeEditor(config?.nodeGeometryEditorConfig);\n resolve();\n });\n }\n else {\n // Otherwise creates the editor\n this._createNodeEditor(config?.nodeGeometryEditorConfig);\n resolve();\n }\n });\n }\n /**\n * Creates the node editor window.\n * @param additionalConfig Additional configuration for the NGE\n */\n _createNodeEditor(additionalConfig) {\n const nodeEditorConfig = {\n nodeGeometry: this,\n ...additionalConfig,\n };\n this.BJSNODEGEOMETRYEDITOR.NodeGeometryEditor.Show(nodeEditorConfig);\n }\n /**\n * Build the final geometry. Please note that the geometry MAY not be ready until the onBuildObservable is raised.\n * @param verbose defines if the build should log activity\n * @param updateBuildId defines if the internal build Id should be updated (default is true)\n * @param autoConfigure defines if the autoConfigure method should be called when initializing blocks (default is false)\n */\n build(verbose = false, updateBuildId = true, autoConfigure = false) {\n this._buildWasSuccessful = false;\n if (!this.outputBlock) {\n // eslint-disable-next-line no-throw-literal\n throw \"You must define the outputBlock property before building the geometry\";\n }\n const now = PrecisionDate.Now;\n // Initialize blocks\n this._initializeBlock(this.outputBlock, autoConfigure);\n // Check async states\n const promises = [];\n for (const block of this.attachedBlocks) {\n if (block._isReadyState) {\n promises.push(block._isReadyState);\n }\n }\n if (promises.length) {\n Promise.all(promises).then(() => {\n this.build(verbose, updateBuildId, autoConfigure);\n });\n return;\n }\n // Build\n const state = new NodeGeometryBuildState();\n state.buildId = this._buildId;\n state.verbose = verbose;\n try {\n this.outputBlock.build(state);\n }\n finally {\n if (updateBuildId) {\n this._buildId = NodeGeometry._BuildIdGenerator++;\n }\n }\n this._buildExecutionTime = PrecisionDate.Now - now;\n // Errors\n state.emitErrors();\n this._buildWasSuccessful = true;\n this._vertexData = state.vertexData;\n this.onBuildObservable.notifyObservers(this);\n }\n /**\n * Creates a mesh from the geometry blocks\n * @param name defines the name of the mesh\n * @param scene The scene the mesh is scoped to\n * @returns The new mesh\n */\n createMesh(name, scene = null) {\n if (!this._buildWasSuccessful) {\n this.build();\n }\n if (!this._vertexData) {\n return null;\n }\n const mesh = new Mesh(name, scene);\n this._vertexData.applyToMesh(mesh);\n mesh._internalMetadata = mesh._internalMetadata || {};\n mesh._internalMetadata.nodeGeometry = this;\n return mesh;\n }\n /**\n * Creates a mesh from the geometry blocks\n * @param mesh the mesh to update\n * @returns True if successfully updated\n */\n updateMesh(mesh) {\n if (!this._buildWasSuccessful) {\n this.build();\n }\n if (!this._vertexData) {\n return false;\n }\n this._vertexData.applyToMesh(mesh);\n mesh._internalMetadata = mesh._internalMetadata || {};\n mesh._internalMetadata.nodeGeometry = this;\n return mesh;\n }\n _initializeBlock(node, autoConfigure = true) {\n node.initialize();\n if (autoConfigure) {\n node.autoConfigure();\n }\n node._preparationId = this._buildId;\n if (this.attachedBlocks.indexOf(node) === -1) {\n this.attachedBlocks.push(node);\n }\n for (const input of node.inputs) {\n const connectedPoint = input.connectedPoint;\n if (connectedPoint) {\n const block = connectedPoint.ownerBlock;\n if (block !== node) {\n this._initializeBlock(block, autoConfigure);\n }\n }\n }\n }\n /**\n * Clear the current geometry\n */\n clear() {\n this.outputBlock = null;\n this.attachedBlocks.length = 0;\n }\n /**\n * Remove a block from the current geometry\n * @param block defines the block to remove\n */\n removeBlock(block) {\n const attachedBlockIndex = this.attachedBlocks.indexOf(block);\n if (attachedBlockIndex > -1) {\n this.attachedBlocks.splice(attachedBlockIndex, 1);\n }\n if (block === this.outputBlock) {\n this.outputBlock = null;\n }\n }\n /**\n * Clear the current graph and load a new one from a serialization object\n * @param source defines the JSON representation of the geometry\n * @param merge defines whether or not the source must be merged or replace the current content\n */\n parseSerializedObject(source, merge = false) {\n if (!merge) {\n this.clear();\n }\n const map = {};\n // Create blocks\n for (const parsedBlock of source.blocks) {\n const blockType = GetClass(parsedBlock.customType);\n if (blockType) {\n const block = new blockType();\n block._deserialize(parsedBlock);\n map[parsedBlock.id] = block;\n this.attachedBlocks.push(block);\n }\n }\n // Reconnect teleportation\n for (const block of this.attachedBlocks) {\n if (block.isTeleportOut) {\n const teleportOut = block;\n const id = teleportOut._tempEntryPointUniqueId;\n if (id) {\n const source = map[id];\n if (source) {\n source.attachToEndpoint(teleportOut);\n }\n }\n }\n }\n // Connections - Starts with input blocks only (except if in \"merge\" mode where we scan all blocks)\n for (let blockIndex = 0; blockIndex < source.blocks.length; blockIndex++) {\n const parsedBlock = source.blocks[blockIndex];\n const block = map[parsedBlock.id];\n if (!block) {\n continue;\n }\n if (block.inputs.length && parsedBlock.inputs.some((i) => i.targetConnectionName) && !merge) {\n continue;\n }\n this._restoreConnections(block, source, map);\n }\n // Outputs\n if (source.outputNodeId) {\n this.outputBlock = map[source.outputNodeId];\n }\n // UI related info\n if (source.locations || (source.editorData && source.editorData.locations)) {\n const locations = source.locations || source.editorData.locations;\n for (const location of locations) {\n if (map[location.blockId]) {\n location.blockId = map[location.blockId].uniqueId;\n }\n }\n if (merge && this.editorData && this.editorData.locations) {\n locations.concat(this.editorData.locations);\n }\n if (source.locations) {\n this.editorData = {\n locations: locations,\n };\n }\n else {\n this.editorData = source.editorData;\n this.editorData.locations = locations;\n }\n const blockMap = [];\n for (const key in map) {\n blockMap[key] = map[key].uniqueId;\n }\n this.editorData.map = blockMap;\n }\n this.comment = source.comment;\n }\n _restoreConnections(block, source, map) {\n for (const outputPoint of block.outputs) {\n for (const candidate of source.blocks) {\n const target = map[candidate.id];\n if (!target) {\n continue;\n }\n for (const input of candidate.inputs) {\n if (map[input.targetBlockId] === block && input.targetConnectionName === outputPoint.name) {\n const inputPoint = target.getInputByName(input.inputName);\n if (!inputPoint || inputPoint.isConnected) {\n continue;\n }\n outputPoint.connectTo(inputPoint, true);\n this._restoreConnections(target, source, map);\n continue;\n }\n }\n }\n }\n }\n /**\n * Generate a string containing the code declaration required to create an equivalent of this geometry\n * @returns a string\n */\n generateCode() {\n let alreadyDumped = [];\n const blocks = [];\n const uniqueNames = [\"const\", \"var\", \"let\"];\n // Gets active blocks\n if (this.outputBlock) {\n this._gatherBlocks(this.outputBlock, blocks);\n }\n // Generate\n let codeString = `let nodeGeometry = new BABYLON.NodeGeometry(\"${this.name || \"node geometry\"}\");\\n`;\n for (const node of blocks) {\n if (node.isInput && alreadyDumped.indexOf(node) === -1) {\n codeString += node._dumpCode(uniqueNames, alreadyDumped);\n }\n }\n if (this.outputBlock) {\n // Connections\n alreadyDumped = [];\n codeString += \"// Connections\\n\";\n codeString += this.outputBlock._dumpCodeForOutputConnections(alreadyDumped);\n // Output nodes\n codeString += \"// Output nodes\\n\";\n codeString += `nodeGeometry.outputBlock = ${this.outputBlock._codeVariableName};\\n`;\n codeString += `nodeGeometry.build();\\n`;\n }\n return codeString;\n }\n _gatherBlocks(rootNode, list) {\n if (list.indexOf(rootNode) !== -1) {\n return;\n }\n list.push(rootNode);\n for (const input of rootNode.inputs) {\n const connectedPoint = input.connectedPoint;\n if (connectedPoint) {\n const block = connectedPoint.ownerBlock;\n if (block !== rootNode) {\n this._gatherBlocks(block, list);\n }\n }\n }\n // Teleportation\n if (rootNode.isTeleportOut) {\n const block = rootNode;\n if (block.entryPoint) {\n this._gatherBlocks(block.entryPoint, list);\n }\n }\n }\n /**\n * Clear the current geometry and set it to a default state\n */\n setToDefault() {\n this.clear();\n this.editorData = null;\n // Source\n const dataBlock = new BoxBlock(\"Box\");\n dataBlock.autoConfigure();\n // Final output\n const output = new GeometryOutputBlock(\"Geometry Output\");\n dataBlock.geometry.connectTo(output.geometry);\n this.outputBlock = output;\n }\n /**\n * Makes a duplicate of the current geometry.\n * @param name defines the name to use for the new geometry\n * @returns the new geometry\n */\n clone(name) {\n const serializationObject = this.serialize();\n const clone = SerializationHelper.Clone(() => new NodeGeometry(name), this);\n clone.name = name;\n clone.parseSerializedObject(serializationObject);\n clone._buildId = this._buildId;\n clone.build(false);\n return clone;\n }\n /**\n * Serializes this geometry in a JSON representation\n * @param selectedBlocks defines the list of blocks to save (if null the whole geometry will be saved)\n * @returns the serialized geometry object\n */\n serialize(selectedBlocks) {\n const serializationObject = selectedBlocks ? {} : SerializationHelper.Serialize(this);\n serializationObject.editorData = JSON.parse(JSON.stringify(this.editorData)); // Copy\n let blocks = [];\n if (selectedBlocks) {\n blocks = selectedBlocks;\n }\n else {\n serializationObject.customType = \"BABYLON.NodeGeometry\";\n if (this.outputBlock) {\n serializationObject.outputNodeId = this.outputBlock.uniqueId;\n }\n }\n // Blocks\n serializationObject.blocks = [];\n for (const block of blocks) {\n serializationObject.blocks.push(block.serialize());\n }\n if (!selectedBlocks) {\n for (const block of this.attachedBlocks) {\n if (blocks.indexOf(block) !== -1) {\n continue;\n }\n serializationObject.blocks.push(block.serialize());\n }\n }\n return serializationObject;\n }\n /**\n * Disposes the ressources\n */\n dispose() {\n for (const block of this.attachedBlocks) {\n block.dispose();\n }\n this.attachedBlocks.length = 0;\n this.onBuildObservable.clear();\n }\n /**\n * Creates a new node geometry set to default basic configuration\n * @param name defines the name of the geometry\n * @returns a new NodeGeometry\n */\n static CreateDefault(name) {\n const nodeGeometry = new NodeGeometry(name);\n nodeGeometry.setToDefault();\n nodeGeometry.build();\n return nodeGeometry;\n }\n /**\n * Creates a node geometry from parsed geometry data\n * @param source defines the JSON representation of the geometry\n * @returns a new node geometry\n */\n static Parse(source) {\n const nodeGeometry = SerializationHelper.Parse(() => new NodeGeometry(source.name), source, null);\n nodeGeometry.parseSerializedObject(source);\n nodeGeometry.build();\n return nodeGeometry;\n }\n /**\n * Creates a node geometry from a snippet saved by the node geometry editor\n * @param snippetId defines the snippet to load\n * @param nodeGeometry defines a node geometry to update (instead of creating a new one)\n * @param skipBuild defines whether to build the node geometry\n * @returns a promise that will resolve to the new node geometry\n */\n static ParseFromSnippetAsync(snippetId, nodeGeometry, skipBuild = false) {\n if (snippetId === \"_BLANK\") {\n return Promise.resolve(NodeGeometry.CreateDefault(\"blank\"));\n }\n return new Promise((resolve, reject) => {\n const request = new WebRequest();\n request.addEventListener(\"readystatechange\", () => {\n if (request.readyState == 4) {\n if (request.status == 200) {\n const snippet = JSON.parse(JSON.parse(request.responseText).jsonPayload);\n const serializationObject = JSON.parse(snippet.nodeGeometry);\n if (!nodeGeometry) {\n nodeGeometry = SerializationHelper.Parse(() => new NodeGeometry(snippetId), serializationObject, null);\n }\n nodeGeometry.parseSerializedObject(serializationObject);\n nodeGeometry.snippetId = snippetId;\n try {\n if (!skipBuild) {\n nodeGeometry.build();\n }\n resolve(nodeGeometry);\n }\n catch (err) {\n reject(err);\n }\n }\n else {\n reject(\"Unable to load the snippet \" + snippetId);\n }\n }\n });\n request.open(\"GET\", this.SnippetUrl + \"/\" + snippetId.replace(/#/g, \"/\"));\n request.send();\n });\n }\n}\nNodeGeometry._BuildIdGenerator = 0;\n/** Define the Url to load node editor script */\nNodeGeometry.EditorURL = `${Tools._DefaultCdnUrl}/v${AbstractEngine.Version}/nodeGeometryEditor/babylon.nodeGeometryEditor.js`;\n/** Define the Url to load snippets */\nNodeGeometry.SnippetUrl = `https://snippet.babylonjs.com`;\n__decorate([\n serialize()\n], NodeGeometry.prototype, \"name\", void 0);\n__decorate([\n serialize(\"comment\")\n], NodeGeometry.prototype, \"comment\", void 0);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\nimport { VertexData } from \"../../../Meshes/mesh.vertexData.js\";\nimport { WithinEpsilon } from \"../../../Maths/math.scalar.functions.js\";\nimport { Epsilon } from \"../../../Maths/math.constants.js\";\n/**\n * Block used to extract unique positions from a geometry\n */\nexport class GeometryOptimizeBlock extends NodeGeometryBlock {\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Creates a new GeometryOptimizeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n /**\n * Define the epsilon used to compare similar positions\n */\n this.epsilon = Epsilon;\n /**\n * Optimize faces (by removing duplicates)\n */\n this.optimizeFaces = false;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"selector\", NodeGeometryBlockConnectionPointTypes.Int, true);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryOptimizeBlock\";\n }\n /**\n * Gets the geometry component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the selector component\n */\n get selector() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = (state) => {\n if (!this.geometry.isConnected) {\n return null;\n }\n const vertexData = this.geometry.getConnectedValue(state);\n const newPositions = [];\n const newIndicesMap = {};\n state.pushExecutionContext(this);\n state.pushGeometryContext(vertexData);\n // Optimize positions\n for (let index = 0; index < vertexData.positions.length; index += 3) {\n this._currentIndex = index / 3;\n if (this.selector.isConnected) {\n const selector = this.selector.getConnectedValue(state);\n if (!selector) {\n continue;\n }\n }\n const x = vertexData.positions[index];\n const y = vertexData.positions[index + 1];\n const z = vertexData.positions[index + 2];\n // check if we already have it\n let found = false;\n for (let checkIndex = 0; checkIndex < newPositions.length; checkIndex += 3) {\n if (WithinEpsilon(x, newPositions[checkIndex], this.epsilon) &&\n WithinEpsilon(y, newPositions[checkIndex + 1], this.epsilon) &&\n WithinEpsilon(z, newPositions[checkIndex + 2], this.epsilon)) {\n newIndicesMap[index / 3] = checkIndex / 3;\n found = true;\n continue;\n }\n }\n if (!found) {\n newIndicesMap[index / 3] = newPositions.length / 3;\n newPositions.push(x, y, z);\n }\n }\n const newVertexData = new VertexData();\n newVertexData.positions = newPositions;\n const indices = vertexData.indices.map((index) => newIndicesMap[index]);\n const newIndices = [];\n if (this.optimizeFaces) {\n // Optimize indices\n for (let index = 0; index < indices.length; index += 3) {\n const a = indices[index];\n const b = indices[index + 1];\n const c = indices[index + 2];\n if (a === b || b == c || c === a) {\n continue;\n }\n // check if we already have it\n let found = false;\n for (let checkIndex = 0; checkIndex < newIndices.length; checkIndex += 3) {\n if (a === newIndices[checkIndex] && b === newIndices[checkIndex + 1] && c === newIndices[checkIndex + 2]) {\n found = true;\n continue;\n }\n if (a === newIndices[checkIndex + 1] && b === newIndices[checkIndex + 2] && c === newIndices[checkIndex]) {\n found = true;\n continue;\n }\n if (a === newIndices[checkIndex + 2] && b === newIndices[checkIndex] && c === newIndices[checkIndex + 1]) {\n found = true;\n continue;\n }\n }\n if (!found) {\n newIndices.push(a, b, c);\n }\n }\n newVertexData.indices = newIndices;\n }\n else {\n newVertexData.indices = indices;\n }\n return newVertexData;\n };\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n codeString += `${this._codeVariableName}.epsilon = ${this.epsilon};\\n`;\n codeString += `${this._codeVariableName}.optimizeFaces = ${this.optimizeFaces ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n serializationObject.epsilon = this.epsilon;\n serializationObject.optimizeFaces = this.optimizeFaces;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n this.epsilon = serializationObject.epsilon;\n this.optimizeFaces = serializationObject.optimizeFaces;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], GeometryOptimizeBlock.prototype, \"evaluateContext\", void 0);\n__decorate([\n editableInPropertyPage(\"Epsilon\", 1 /* PropertyTypeForEdition.Float */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], GeometryOptimizeBlock.prototype, \"epsilon\", void 0);\n__decorate([\n editableInPropertyPage(\"Optimize faces\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], GeometryOptimizeBlock.prototype, \"optimizeFaces\", void 0);\nRegisterClass(\"BABYLON.GeometryOptimizeBlock\", GeometryOptimizeBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { Matrix } from \"../../../../Maths/math.vector.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { CreateGroundVertexData } from \"../../../Builders/groundBuilder.js\";\n/**\n * Defines a block used to generate plane geometry data\n */\nexport class PlaneBlock extends NodeGeometryBlock {\n /**\n * Create a new PlaneBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._rotationMatrix = new Matrix();\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = false;\n this.registerInput(\"size\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerInput(\"width\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"height\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"subdivisions\", NodeGeometryBlockConnectionPointTypes.Int, true, 1);\n this.registerInput(\"subdivisionsX\", NodeGeometryBlockConnectionPointTypes.Int, true, 0);\n this.registerInput(\"subdivisionsY\", NodeGeometryBlockConnectionPointTypes.Int, true, 0);\n this.registerOutput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"PlaneBlock\";\n }\n /**\n * Gets the size input component\n */\n get size() {\n return this._inputs[0];\n }\n /**\n * Gets the width input component\n */\n get width() {\n return this._inputs[1];\n }\n /**\n * Gets the height input component\n */\n get height() {\n return this._inputs[2];\n }\n /**\n * Gets the subdivisions input component\n */\n get subdivisions() {\n return this._inputs[3];\n }\n /**\n * Gets the subdivisionsX input component\n */\n get subdivisionsX() {\n return this._inputs[4];\n }\n /**\n * Gets the subdivisionsY input component\n */\n get subdivisionsY() {\n return this._inputs[5];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (this.size.isConnected) {\n return;\n }\n if (!this.width.isConnected && !this.height.isConnected) {\n const sizeInput = new GeometryInputBlock(\"Size\");\n sizeInput.value = 1;\n sizeInput.output.connectTo(this.size);\n return;\n }\n if (!this.width.isConnected) {\n const widthInput = new GeometryInputBlock(\"Width\");\n widthInput.value = 1;\n widthInput.output.connectTo(this.width);\n }\n if (!this.height.isConnected) {\n const heightInput = new GeometryInputBlock(\"Height\");\n heightInput.value = 1;\n heightInput.output.connectTo(this.height);\n }\n }\n _buildBlock(state) {\n const options = {};\n const func = (state) => {\n options.size = this.size.getConnectedValue(state);\n options.width = this.width.getConnectedValue(state);\n options.height = this.height.getConnectedValue(state);\n const subdivisions = this.subdivisions.getConnectedValue(state);\n const subdivisionsX = this.subdivisionsX.getConnectedValue(state);\n const subdivisionsY = this.subdivisionsY.getConnectedValue(state);\n if (subdivisions) {\n options.subdivisions = subdivisions;\n }\n if (subdivisionsX) {\n options.subdivisionsX = subdivisionsX;\n }\n if (subdivisionsY) {\n options.subdivisionsY = subdivisionsY;\n }\n // Append vertex data from the ground builder (to get access to subdivisions)\n const vertexData = CreateGroundVertexData(options);\n Matrix.RotationYawPitchRollToRef(-Math.PI / 2, 0, Math.PI / 2, this._rotationMatrix);\n vertexData.transform(this._rotationMatrix);\n return vertexData;\n };\n if (this.evaluateContext) {\n this.geometry._storedFunction = func;\n }\n else {\n const value = func(state);\n this.geometry._storedFunction = () => {\n this.geometry._executionCount = 1;\n return value.clone();\n };\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], PlaneBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.PlaneBlock\", PlaneBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { VertexData } from \"../../../../Meshes/mesh.vertexData.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Defines a block used to generate a user defined mesh geometry data\n */\nexport class MeshBlock extends NodeGeometryBlock {\n /**\n * Gets or sets the mesh to use to get vertex data\n */\n get mesh() {\n return this._mesh;\n }\n set mesh(value) {\n this._mesh = value;\n }\n /**\n * Create a new MeshBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._cachedVertexData = null;\n /**\n * Gets or sets a boolean indicating that winding order needs to be reserved\n */\n this.reverseWindingOrder = false;\n /**\n * Gets or sets a boolean indicating that this block should serialize its cached data\n */\n this.serializedCachedData = false;\n this.registerOutput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MeshBlock\";\n }\n /**\n * Gets a boolean indicating if the block is using cached data\n */\n get isUsingCachedData() {\n return !this.mesh && !!this._cachedVertexData;\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n /**\n * Remove stored data\n */\n cleanData() {\n this._mesh = null;\n this._cachedVertexData = null;\n }\n _buildBlock() {\n if (!this._mesh) {\n if (this._cachedVertexData) {\n this.geometry._storedValue = this._cachedVertexData.clone();\n }\n else {\n this.geometry._storedValue = null;\n }\n return;\n }\n const vertexData = VertexData.ExtractFromMesh(this._mesh, false, true);\n this._cachedVertexData = null;\n if (this.reverseWindingOrder && vertexData.indices) {\n for (let index = 0; index < vertexData.indices.length; index += 3) {\n const tmp = vertexData.indices[index];\n vertexData.indices[index] = vertexData.indices[index + 2];\n vertexData.indices[index + 2] = tmp;\n }\n }\n this.geometry._storedFunction = () => {\n return vertexData.clone();\n };\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.serializedCachedData = this.serializedCachedData;\n if (this.serializedCachedData) {\n if (this._mesh) {\n serializationObject.cachedVertexData = VertexData.ExtractFromMesh(this._mesh, false, true).serialize();\n }\n else if (this._cachedVertexData) {\n serializationObject.cachedVertexData = this._cachedVertexData.serialize();\n }\n }\n serializationObject.reverseWindingOrder = this.reverseWindingOrder;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.cachedVertexData) {\n this._cachedVertexData = VertexData.Parse(serializationObject.cachedVertexData);\n }\n this.serializedCachedData = !!serializationObject.serializedCachedData;\n this.reverseWindingOrder = serializationObject.reverseWindingOrder;\n }\n}\n__decorate([\n editableInPropertyPage(\"Serialize cached data\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], MeshBlock.prototype, \"serializedCachedData\", void 0);\nRegisterClass(\"BABYLON.MeshBlock\", MeshBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { CreateIcoSphereVertexData } from \"../../../Builders/icoSphereBuilder.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Defines a block used to generate icosphere geometry data\n */\nexport class IcoSphereBlock extends NodeGeometryBlock {\n /**\n * Create a new IcoSphereBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = false;\n this.registerInput(\"radius\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerInput(\"radiusX\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"radiusY\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"radiusZ\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"subdivisions\", NodeGeometryBlockConnectionPointTypes.Int, true, 4);\n this.registerOutput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"IcoSphereBlock\";\n }\n /**\n * Gets the radius input component\n */\n get radius() {\n return this._inputs[0];\n }\n /**\n * Gets the radiusX input component\n */\n get radiusX() {\n return this._inputs[1];\n }\n /**\n * Gets the radiusY input component\n */\n get radiusY() {\n return this._inputs[2];\n }\n /**\n * Gets the radiusZ input component\n */\n get radiusZ() {\n return this._inputs[3];\n }\n /**\n * Gets the subdivisions input component\n */\n get subdivisions() {\n return this._inputs[4];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.radius.isConnected) {\n const radiusInput = new GeometryInputBlock(\"Radius\");\n radiusInput.value = 0.2;\n radiusInput.output.connectTo(this.radius);\n }\n }\n _buildBlock(state) {\n const options = {};\n const func = (state) => {\n options.radius = this.radius.getConnectedValue(state);\n options.subdivisions = this.subdivisions.getConnectedValue(state);\n options.radiusX = this.radiusX.getConnectedValue(state);\n options.radiusY = this.radiusY.getConnectedValue(state);\n options.radiusZ = this.radiusZ.getConnectedValue(state);\n // Append vertex data from the plane builder\n return CreateIcoSphereVertexData(options);\n };\n if (this.evaluateContext) {\n this.geometry._storedFunction = func;\n }\n else {\n const value = func(state);\n this.geometry._storedFunction = () => {\n this.geometry._executionCount = 1;\n return value.clone();\n };\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], IcoSphereBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.IcoSphereBlock\", IcoSphereBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { CreateSphereVertexData } from \"../../../Builders/sphereBuilder.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Defines a block used to generate sphere geometry data\n */\nexport class SphereBlock extends NodeGeometryBlock {\n /**\n * Create a new SphereBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = false;\n this.registerInput(\"segments\", NodeGeometryBlockConnectionPointTypes.Int, true, 32);\n this.registerInput(\"diameter\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerInput(\"diameterX\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"diameterY\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"diameterZ\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"arc\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerInput(\"slice\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerOutput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SphereBlock\";\n }\n /**\n * Gets the segments input component\n */\n get segments() {\n return this._inputs[0];\n }\n /**\n * Gets the diameter input component\n */\n get diameter() {\n return this._inputs[1];\n }\n /**\n * Gets the diameterX input component\n */\n get diameterX() {\n return this._inputs[2];\n }\n /**\n * Gets the diameterY input component\n */\n get diameterY() {\n return this._inputs[3];\n }\n /**\n * Gets the diameterZ input component\n */\n get diameterZ() {\n return this._inputs[4];\n }\n /**\n * Gets the arc input component\n */\n get arc() {\n return this._inputs[5];\n }\n /**\n * Gets the slice input component\n */\n get slice() {\n return this._inputs[6];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.diameter.isConnected) {\n const diameterInput = new GeometryInputBlock(\"Diameter\");\n diameterInput.value = 1;\n diameterInput.output.connectTo(this.diameter);\n }\n }\n _buildBlock(state) {\n const options = {};\n const func = (state) => {\n options.segments = this.segments.getConnectedValue(state);\n options.diameter = this.diameter.getConnectedValue(state);\n options.diameterX = this.diameterX.getConnectedValue(state);\n options.diameterY = this.diameterY.getConnectedValue(state);\n options.diameterZ = this.diameterZ.getConnectedValue(state);\n options.arc = this.arc.getConnectedValue(state);\n options.slice = this.slice.getConnectedValue(state);\n // Append vertex data from the plane builder\n return CreateSphereVertexData(options);\n };\n if (this.evaluateContext) {\n this.geometry._storedFunction = func;\n }\n else {\n const value = func(state);\n this.geometry._storedFunction = () => {\n this.geometry._executionCount = 1;\n return value.clone();\n };\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], SphereBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.SphereBlock\", SphereBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { CreateGroundVertexData } from \"../../../Builders/groundBuilder.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Defines a block used to generate grid geometry data\n */\nexport class GridBlock extends NodeGeometryBlock {\n /**\n * Create a new GridBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = false;\n this.registerInput(\"width\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerInput(\"height\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerInput(\"subdivisions\", NodeGeometryBlockConnectionPointTypes.Int, true, 1);\n this.registerInput(\"subdivisionsX\", NodeGeometryBlockConnectionPointTypes.Int, true, 0);\n this.registerInput(\"subdivisionsY\", NodeGeometryBlockConnectionPointTypes.Int, true, 0);\n this.registerOutput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GridBlock\";\n }\n /**\n * Gets the width input component\n */\n get width() {\n return this._inputs[0];\n }\n /**\n * Gets the height input component\n */\n get height() {\n return this._inputs[1];\n }\n /**\n * Gets the subdivisions input component\n */\n get subdivisions() {\n return this._inputs[2];\n }\n /**\n * Gets the subdivisionsX input component\n */\n get subdivisionsX() {\n return this._inputs[3];\n }\n /**\n * Gets the subdivisionsY input component\n */\n get subdivisionsY() {\n return this._inputs[4];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.width.isConnected) {\n const widthInput = new GeometryInputBlock(\"Width\");\n widthInput.value = 1;\n widthInput.output.connectTo(this.width);\n }\n if (!this.height.isConnected) {\n const heightInput = new GeometryInputBlock(\"Height\");\n heightInput.value = 1;\n heightInput.output.connectTo(this.height);\n }\n }\n _buildBlock(state) {\n const options = {};\n const func = (state) => {\n options.width = this.width.getConnectedValue(state);\n options.height = this.height.getConnectedValue(state);\n options.subdivisions = this.subdivisions.getConnectedValue(state);\n options.subdivisionsX = this.subdivisionsX.getConnectedValue(state);\n options.subdivisionsY = this.subdivisionsY.getConnectedValue(state);\n // Append vertex data from the plane builder\n return CreateGroundVertexData(options);\n };\n if (this.evaluateContext) {\n this.geometry._storedFunction = func;\n }\n else {\n const value = func(state);\n this.geometry._storedFunction = () => {\n this.geometry._executionCount = 1;\n return value.clone();\n };\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], GridBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.GridBlock\", GridBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { CreateTorusVertexData } from \"../../../Builders/torusBuilder.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Defines a block used to generate torus geometry data\n */\nexport class TorusBlock extends NodeGeometryBlock {\n /**\n * Create a new TorusBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = false;\n this.registerInput(\"diameter\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerInput(\"thickness\", NodeGeometryBlockConnectionPointTypes.Float, true, 0.5);\n this.registerInput(\"tessellation\", NodeGeometryBlockConnectionPointTypes.Int, true, 16);\n this.registerOutput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TorusBlock\";\n }\n /**\n * Gets the diameter input component\n */\n get diameter() {\n return this._inputs[0];\n }\n /**\n * Gets the thickness input component\n */\n get thickness() {\n return this._inputs[1];\n }\n /**\n * Gets the tessellation input component\n */\n get tessellation() {\n return this._inputs[2];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.diameter.isConnected) {\n const diameterInput = new GeometryInputBlock(\"Diameter\");\n diameterInput.value = 1;\n diameterInput.output.connectTo(this.diameter);\n }\n }\n _buildBlock(state) {\n const options = {};\n const func = (state) => {\n options.thickness = this.thickness.getConnectedValue(state);\n options.diameter = this.diameter.getConnectedValue(state);\n options.tessellation = this.tessellation.getConnectedValue(state);\n // Append vertex data from the plane builder\n return CreateTorusVertexData(options);\n };\n if (this.evaluateContext) {\n this.geometry._storedFunction = func;\n }\n else {\n const value = func(state);\n this.geometry._storedFunction = () => {\n this.geometry._executionCount = 1;\n return value.clone();\n };\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], TorusBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.TorusBlock\", TorusBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { CreateCylinderVertexData } from \"../../../Builders/cylinderBuilder.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Defines a block used to generate cylinder geometry data\n */\nexport class CylinderBlock extends NodeGeometryBlock {\n /**\n * Create a new SphereBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = false;\n this.registerInput(\"height\", NodeGeometryBlockConnectionPointTypes.Float, true, 25);\n this.registerInput(\"diameter\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerInput(\"diameterTop\", NodeGeometryBlockConnectionPointTypes.Float, true, -1);\n this.registerInput(\"diameterBottom\", NodeGeometryBlockConnectionPointTypes.Float, true, -1);\n this.registerInput(\"subdivisions\", NodeGeometryBlockConnectionPointTypes.Int, true, 1);\n this.registerInput(\"tessellation\", NodeGeometryBlockConnectionPointTypes.Int, true, 24);\n this.registerInput(\"arc\", NodeGeometryBlockConnectionPointTypes.Float, true, 1.0);\n this.registerOutput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CylinderBlock\";\n }\n /**\n * Gets the height input component\n */\n get height() {\n return this._inputs[0];\n }\n /**\n * Gets the diameter input component\n */\n get diameter() {\n return this._inputs[1];\n }\n /**\n * Gets the diameterTop input component\n */\n get diameterTop() {\n return this._inputs[2];\n }\n /**\n * Gets the diameterBottom input component\n */\n get diameterBottom() {\n return this._inputs[3];\n }\n /**\n * Gets the subdivisions input component\n */\n get subdivisions() {\n return this._inputs[4];\n }\n /**\n * Gets the tessellation input component\n */\n get tessellation() {\n return this._inputs[5];\n }\n /**\n * Gets the arc input component\n */\n get arc() {\n return this._inputs[6];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.diameter.isConnected) {\n const diameterInput = new GeometryInputBlock(\"Diameter\");\n diameterInput.value = 1;\n diameterInput.output.connectTo(this.diameter);\n }\n if (!this.height.isConnected) {\n const heightInput = new GeometryInputBlock(\"Height\");\n heightInput.value = 1;\n heightInput.output.connectTo(this.height);\n }\n }\n _buildBlock(state) {\n const options = {};\n const func = (state) => {\n options.height = this.height.getConnectedValue(state);\n options.diameter = this.diameter.getConnectedValue(state);\n options.diameterTop = this.diameterTop.getConnectedValue(state);\n options.diameterBottom = this.diameterBottom.getConnectedValue(state);\n if (options.diameterTop === -1) {\n options.diameterTop = options.diameter;\n }\n if (options.diameterBottom === -1) {\n options.diameterBottom = options.diameter;\n }\n options.tessellation = this.tessellation.getConnectedValue(state);\n options.subdivisions = this.subdivisions.getConnectedValue(state);\n options.arc = this.arc.getConnectedValue(state);\n // Append vertex data from the plane builder\n return CreateCylinderVertexData(options);\n };\n if (this.evaluateContext) {\n this.geometry._storedFunction = func;\n }\n else {\n const value = func(state);\n this.geometry._storedFunction = () => {\n this.geometry._executionCount = 1;\n return value.clone();\n };\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], CylinderBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.CylinderBlock\", CylinderBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { CreateCapsuleVertexData } from \"../../../Builders/capsuleBuilder.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Defines a block used to generate capsule geometry data\n */\nexport class CapsuleBlock extends NodeGeometryBlock {\n /**\n * Create a new CapsuleBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = false;\n this.registerInput(\"height\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerInput(\"radius\", NodeGeometryBlockConnectionPointTypes.Float, true, 0.25);\n this.registerInput(\"tessellation\", NodeGeometryBlockConnectionPointTypes.Int, true, 16);\n this.registerInput(\"subdivisions\", NodeGeometryBlockConnectionPointTypes.Int, true, 2);\n this.registerOutput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CapsuleBlock\";\n }\n /**\n * Gets the height input component\n */\n get height() {\n return this._inputs[0];\n }\n /**\n * Gets the radius input component\n */\n get radius() {\n return this._inputs[1];\n }\n /**\n * Gets the tessellation input component\n */\n get tessellation() {\n return this._inputs[2];\n }\n /**\n * Gets the subdivisions input component\n */\n get subdivisions() {\n return this._inputs[3];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.height.isConnected) {\n const heightInput = new GeometryInputBlock(\"Height\");\n heightInput.value = 1;\n heightInput.output.connectTo(this.height);\n }\n if (!this.radius.isConnected) {\n const radiusInput = new GeometryInputBlock(\"Radius\");\n radiusInput.value = 0.2;\n radiusInput.output.connectTo(this.radius);\n }\n }\n _buildBlock(state) {\n const options = {};\n const func = (state) => {\n options.height = this.height.getConnectedValue(state);\n options.radius = this.radius.getConnectedValue(state);\n options.tessellation = this.tessellation.getConnectedValue(state);\n options.subdivisions = this.subdivisions.getConnectedValue(state);\n // Append vertex data from the plane builder\n return CreateCapsuleVertexData(options);\n };\n if (this.evaluateContext) {\n this.geometry._storedFunction = func;\n }\n else {\n const value = func(state);\n this.geometry._storedFunction = () => {\n this.geometry._executionCount = 1;\n return value.clone();\n };\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], CapsuleBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.CapsuleBlock\", CapsuleBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { CreateDiscVertexData } from \"../../../Builders/discBuilder.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Defines a block used to generate disc geometry data\n */\nexport class DiscBlock extends NodeGeometryBlock {\n /**\n * Create a new DiscBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = false;\n this.registerInput(\"radius\", NodeGeometryBlockConnectionPointTypes.Float, true, 0.5);\n this.registerInput(\"tessellation\", NodeGeometryBlockConnectionPointTypes.Int, true, 64);\n this.registerInput(\"arc\", NodeGeometryBlockConnectionPointTypes.Float, true, 1.0);\n this.registerOutput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DiscBlock\";\n }\n /**\n * Gets the radius input component\n */\n get radius() {\n return this._inputs[0];\n }\n /**\n * Gets the tessellation input component\n */\n get tessellation() {\n return this._inputs[1];\n }\n /**\n * Gets the arc input component\n */\n get arc() {\n return this._inputs[2];\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.radius.isConnected) {\n const radiusInput = new GeometryInputBlock(\"Radius\");\n radiusInput.value = 0.2;\n radiusInput.output.connectTo(this.radius);\n }\n }\n _buildBlock(state) {\n const options = {};\n const func = (state) => {\n options.radius = this.radius.getConnectedValue(state);\n options.tessellation = this.tessellation.getConnectedValue(state);\n options.arc = this.arc.getConnectedValue(state);\n // Append vertex data from the plane builder\n return CreateDiscVertexData(options);\n };\n if (this.evaluateContext) {\n this.geometry._storedFunction = func;\n }\n else {\n const value = func(state);\n this.geometry._storedFunction = () => {\n this.geometry._executionCount = 1;\n return value.clone();\n };\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], DiscBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.DiscBlock\", DiscBlock);\n","import { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\n/**\n * Defines a block used to generate a null geometry data\n */\nexport class NullBlock extends NodeGeometryBlock {\n /**\n * Create a new NullBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerOutput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerOutput(\"vector\", NodeGeometryBlockConnectionPointTypes.Vector3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NullBlock\";\n }\n /**\n * Gets the geometry output component\n */\n get geometry() {\n return this._outputs[0];\n }\n /**\n * Gets the vector output component\n */\n get vector() {\n return this._outputs[1];\n }\n _buildBlock() {\n this.geometry._storedValue = null;\n this.vector._storedValue = null;\n }\n}\nRegisterClass(\"BABYLON.NullBlock\", NullBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to set positions for a geometry\n */\nexport class SetPositionsBlock extends NodeGeometryBlock {\n /**\n * Create a new SetPositionsBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"positions\", NodeGeometryBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SetPositionsBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the positions input component\n */\n get positions() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _remapVector3Data(source, remap) {\n const newData = [];\n for (let index = 0; index < source.length; index += 3) {\n const remappedIndex = remap[index / 3];\n if (remappedIndex !== undefined) {\n newData.push(source[index], source[index + 1], source[index + 2]);\n }\n }\n return newData;\n }\n _remapVector4Data(source, remap) {\n const newData = [];\n for (let index = 0; index < source.length; index += 4) {\n const remappedIndex = remap[index / 4];\n if (remappedIndex !== undefined) {\n newData.push(source[index], source[index + 1], source[index + 2], source[index + 3]);\n }\n }\n return newData;\n }\n _remapVector2Data(source, remap) {\n const newData = [];\n for (let index = 0; index < source.length; index += 2) {\n const remappedIndex = remap[index / 2];\n if (remappedIndex !== undefined) {\n newData.push(source[index], source[index + 1]);\n }\n }\n return newData;\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n this._vertexData = this.geometry.getConnectedValue(state);\n if (this._vertexData) {\n this._vertexData = this._vertexData.clone(); // Preserve source data\n }\n state.pushGeometryContext(this._vertexData);\n if (!this._vertexData || !this._vertexData.positions || !this.positions.isConnected) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedValue = null;\n return;\n }\n // Processing\n const remap = {};\n const vertexCount = this._vertexData.positions.length / 3;\n const newPositions = [];\n let activeIndex = 0;\n let resize = false;\n for (this._currentIndex = 0; this._currentIndex < vertexCount; this._currentIndex++) {\n const tempVector3 = this.positions.getConnectedValue(state);\n if (tempVector3) {\n tempVector3.toArray(newPositions, activeIndex * 3);\n remap[this._currentIndex] = activeIndex;\n activeIndex++;\n }\n else {\n resize = true;\n }\n }\n if (resize) {\n // Indices remap\n if (this._vertexData.indices) {\n const newIndices = [];\n for (let index = 0; index < this._vertexData.indices.length; index += 3) {\n const a = this._vertexData.indices[index];\n const b = this._vertexData.indices[index + 1];\n const c = this._vertexData.indices[index + 2];\n const remappedA = remap[a];\n const remappedB = remap[b];\n const remappedC = remap[c];\n if (remappedA !== undefined && remappedB !== undefined && remappedC !== undefined) {\n newIndices.push(remappedA);\n newIndices.push(remappedB);\n newIndices.push(remappedC);\n }\n }\n this._vertexData.indices = newIndices;\n }\n // Normals remap\n if (this._vertexData.normals) {\n this._vertexData.normals = this._remapVector3Data(this._vertexData.normals, remap);\n }\n // Tangents remap\n if (this._vertexData.tangents) {\n this._vertexData.tangents = this._remapVector4Data(this._vertexData.tangents, remap);\n }\n // Colors remap\n if (this._vertexData.colors) {\n this._vertexData.colors = this._remapVector4Data(this._vertexData.colors, remap);\n }\n // UVs remap\n if (this._vertexData.uvs) {\n this._vertexData.uvs = this._remapVector2Data(this._vertexData.uvs, remap);\n }\n if (this._vertexData.uvs2) {\n this._vertexData.uvs2 = this._remapVector2Data(this._vertexData.uvs2, remap);\n }\n if (this._vertexData.uvs3) {\n this._vertexData.uvs3 = this._remapVector2Data(this._vertexData.uvs3, remap);\n }\n if (this._vertexData.uvs4) {\n this._vertexData.uvs4 = this._remapVector2Data(this._vertexData.uvs4, remap);\n }\n if (this._vertexData.uvs5) {\n this._vertexData.uvs5 = this._remapVector2Data(this._vertexData.uvs5, remap);\n }\n if (this._vertexData.uvs6) {\n this._vertexData.uvs6 = this._remapVector2Data(this._vertexData.uvs6, remap);\n }\n }\n // Update positions\n this._vertexData.positions = newPositions;\n // Storage\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n return this._vertexData;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], SetPositionsBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.SetPositionsBlock\", SetPositionsBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to set normals for a geometry\n */\nexport class SetNormalsBlock extends NodeGeometryBlock {\n /**\n * Create a new SetNormalsBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"normals\", NodeGeometryBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SetNormalsBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the normals input component\n */\n get normals() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n this._vertexData = this.geometry.getConnectedValue(state);\n if (this._vertexData) {\n this._vertexData = this._vertexData.clone(); // Preserve source data\n }\n state.pushGeometryContext(this._vertexData);\n if (!this._vertexData || !this._vertexData.positions) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedValue = null;\n return;\n }\n if (!this.normals.isConnected) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedValue = this._vertexData;\n return;\n }\n if (!this._vertexData.normals) {\n this._vertexData.normals = [];\n }\n // Processing\n const vertexCount = this._vertexData.positions.length / 3;\n for (this._currentIndex = 0; this._currentIndex < vertexCount; this._currentIndex++) {\n const tempVector3 = this.normals.getConnectedValue(state);\n if (tempVector3) {\n tempVector3.toArray(this._vertexData.normals, this._currentIndex * 3);\n }\n }\n // Storage\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n return this._vertexData;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], SetNormalsBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.SetNormalsBlock\", SetNormalsBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to set texture coordinates for a geometry\n */\nexport class SetUVsBlock extends NodeGeometryBlock {\n /**\n * Create a new SetUVsBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n /**\n * Gets or sets a value indicating which UV to set\n */\n this.textureCoordinateIndex = 0;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"uvs\", NodeGeometryBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SetUVsBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the uvs input component\n */\n get uvs() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n this._vertexData = this.geometry.getConnectedValue(state);\n if (this._vertexData) {\n this._vertexData = this._vertexData.clone(); // Preserve source data\n }\n state.pushGeometryContext(this._vertexData);\n if (!this._vertexData || !this._vertexData.positions) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedValue = null;\n return;\n }\n if (!this.uvs.isConnected) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedValue = this._vertexData;\n return;\n }\n const uvs = [];\n // Processing\n const vertexCount = this._vertexData.positions.length / 3;\n for (this._currentIndex = 0; this._currentIndex < vertexCount; this._currentIndex++) {\n const tempVector2 = this.uvs.getConnectedValue(state);\n if (tempVector2) {\n tempVector2.toArray(uvs, this._currentIndex * 2);\n }\n }\n switch (this.textureCoordinateIndex) {\n case 0:\n this._vertexData.uvs = uvs;\n break;\n case 1:\n this._vertexData.uvs2 = uvs;\n break;\n case 2:\n this._vertexData.uvs3 = uvs;\n break;\n case 3:\n this._vertexData.uvs4 = uvs;\n break;\n case 4:\n this._vertexData.uvs5 = uvs;\n break;\n case 5:\n this._vertexData.uvs6 = uvs;\n break;\n }\n // Storage\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n return this._vertexData;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.textureCoordinateIndex};\\n`;\n codeString += `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n serializationObject.textureCoordinateIndex = this.textureCoordinateIndex;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.textureCoordinateIndex = serializationObject.textureCoordinateIndex;\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], SetUVsBlock.prototype, \"evaluateContext\", void 0);\n__decorate([\n editableInPropertyPage(\"Texture coordinates index\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { update: true },\n embedded: true,\n options: [\n { label: \"UV1\", value: 0 },\n { label: \"UV2\", value: 1 },\n { label: \"UV3\", value: 2 },\n { label: \"UV4\", value: 3 },\n { label: \"UV5\", value: 4 },\n { label: \"UV6\", value: 5 },\n ],\n })\n], SetUVsBlock.prototype, \"textureCoordinateIndex\", void 0);\nRegisterClass(\"BABYLON.SetUVsBlock\", SetUVsBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to set colors for a geometry\n */\nexport class SetColorsBlock extends NodeGeometryBlock {\n /**\n * Create a new SetColorsBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"colors\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Vector2);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SetColorsBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the colors input component\n */\n get colors() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n this._vertexData = this.geometry.getConnectedValue(state);\n if (this._vertexData) {\n this._vertexData = this._vertexData.clone(); // Preserve source data\n }\n state.pushGeometryContext(this._vertexData);\n if (!this._vertexData || !this._vertexData.positions) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedValue = null;\n return;\n }\n if (!this.colors.isConnected) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedValue = this._vertexData;\n return;\n }\n if (!this._vertexData.colors) {\n this._vertexData.colors = [];\n }\n // Processing\n const vertexCount = this._vertexData.positions.length / 3;\n for (this._currentIndex = 0; this._currentIndex < vertexCount; this._currentIndex++) {\n if (this.colors.connectedPoint?.type === NodeGeometryBlockConnectionPointTypes.Vector3) {\n const tempVector3 = this.colors.getConnectedValue(state);\n if (tempVector3) {\n tempVector3.toArray(this._vertexData.colors, this._currentIndex * 4);\n this._vertexData.colors[this._currentIndex * 4 + 3] = 1; // Alpha\n this._vertexData.hasVertexAlpha = false;\n }\n }\n else {\n const tempVector4 = this.colors.getConnectedValue(state);\n if (tempVector4) {\n tempVector4.toArray(this._vertexData.colors, this._currentIndex * 4);\n this._vertexData.hasVertexAlpha = true;\n }\n }\n }\n // Storage\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n return this._vertexData;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], SetColorsBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.SetColorsBlock\", SetColorsBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to set tangents for a geometry\n */\nexport class SetTangentsBlock extends NodeGeometryBlock {\n /**\n * Create a new SetTangentsBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"tangents\", NodeGeometryBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SetTangentsBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the tangents input component\n */\n get tangents() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n this._vertexData = this.geometry.getConnectedValue(state);\n if (this._vertexData) {\n this._vertexData = this._vertexData.clone(); // Preserve source data\n }\n state.pushGeometryContext(this._vertexData);\n if (!this._vertexData || !this._vertexData.positions) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedValue = null;\n return;\n }\n if (!this.tangents.isConnected) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedValue = this._vertexData;\n return;\n }\n if (!this._vertexData.tangents) {\n this._vertexData.tangents = [];\n }\n // Processing\n const vertexCount = this._vertexData.positions.length / 3;\n for (this._currentIndex = 0; this._currentIndex < vertexCount; this._currentIndex++) {\n const tempVector4 = this.tangents.getConnectedValue(state);\n if (tempVector4) {\n tempVector4.toArray(this._vertexData.tangents, this._currentIndex * 4);\n }\n }\n // Storage\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n return this._vertexData;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], SetTangentsBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.SetTangentsBlock\", SetTangentsBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Operations supported by the Math block\n */\nexport var MathBlockOperations;\n(function (MathBlockOperations) {\n /** Add */\n MathBlockOperations[MathBlockOperations[\"Add\"] = 0] = \"Add\";\n /** Subtract */\n MathBlockOperations[MathBlockOperations[\"Subtract\"] = 1] = \"Subtract\";\n /** Multiply */\n MathBlockOperations[MathBlockOperations[\"Multiply\"] = 2] = \"Multiply\";\n /** Divide */\n MathBlockOperations[MathBlockOperations[\"Divide\"] = 3] = \"Divide\";\n /** Max */\n MathBlockOperations[MathBlockOperations[\"Max\"] = 4] = \"Max\";\n /** Min */\n MathBlockOperations[MathBlockOperations[\"Min\"] = 5] = \"Min\";\n})(MathBlockOperations || (MathBlockOperations = {}));\n/**\n * Block used to apply math functions\n */\nexport class MathBlock extends NodeGeometryBlock {\n /**\n * Create a new MathBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets the operation applied by the block\n */\n this.operation = MathBlockOperations.Add;\n this.registerInput(\"left\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this.output._typeConnectionSource = this.left;\n const excludedConnectionPointTypes = [\n NodeGeometryBlockConnectionPointTypes.Matrix,\n NodeGeometryBlockConnectionPointTypes.Geometry,\n NodeGeometryBlockConnectionPointTypes.Texture,\n ];\n this.left.excludedConnectionPointTypes.push(...excludedConnectionPointTypes);\n this.right.excludedConnectionPointTypes.push(...excludedConnectionPointTypes);\n this._linkConnectionTypes(0, 1);\n this._connectionObservers = [\n this.left.onConnectionObservable.add(() => this._updateInputOutputTypes()),\n this.left.onDisconnectionObservable.add(() => this._updateInputOutputTypes()),\n this.right.onConnectionObservable.add(() => this._updateInputOutputTypes()),\n this.right.onDisconnectionObservable.add(() => this._updateInputOutputTypes()),\n ];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MathBlock\";\n }\n /**\n * Gets the left input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n let func;\n const left = this.left;\n const right = this.right;\n if (!left.isConnected || !right.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const leftIsScalar = left.type === NodeGeometryBlockConnectionPointTypes.Float || left.type === NodeGeometryBlockConnectionPointTypes.Int;\n const rightIsScalar = right.type === NodeGeometryBlockConnectionPointTypes.Float || right.type === NodeGeometryBlockConnectionPointTypes.Int;\n // If both input types are scalars, then this is a scalar operation.\n const isScalar = leftIsScalar && rightIsScalar;\n switch (this.operation) {\n case MathBlockOperations.Add: {\n if (isScalar) {\n func = (state) => {\n return left.getConnectedValue(state) + right.getConnectedValue(state);\n };\n }\n else if (leftIsScalar) {\n func = (state) => {\n return state.adapt(left, right.type).add(right.getConnectedValue(state));\n };\n }\n else {\n func = (state) => {\n return left.getConnectedValue(state).add(state.adapt(right, left.type));\n };\n }\n break;\n }\n case MathBlockOperations.Subtract: {\n if (isScalar) {\n func = (state) => {\n return left.getConnectedValue(state) - right.getConnectedValue(state);\n };\n }\n else if (leftIsScalar) {\n func = (state) => {\n return state.adapt(left, right.type).subtract(right.getConnectedValue(state));\n };\n }\n else {\n func = (state) => {\n return left.getConnectedValue(state).subtract(state.adapt(right, left.type));\n };\n }\n break;\n }\n case MathBlockOperations.Multiply: {\n if (isScalar) {\n func = (state) => {\n return left.getConnectedValue(state) * right.getConnectedValue(state);\n };\n }\n else if (leftIsScalar) {\n func = (state) => {\n return state.adapt(left, right.type).multiply(right.getConnectedValue(state));\n };\n }\n else {\n func = (state) => {\n return left.getConnectedValue(state).multiply(state.adapt(right, left.type));\n };\n }\n break;\n }\n case MathBlockOperations.Divide: {\n if (isScalar) {\n func = (state) => {\n return left.getConnectedValue(state) / right.getConnectedValue(state);\n };\n }\n else if (leftIsScalar) {\n func = (state) => {\n return state.adapt(left, right.type).divide(right.getConnectedValue(state));\n };\n }\n else {\n func = (state) => {\n return left.getConnectedValue(state).divide(state.adapt(right, left.type));\n };\n }\n break;\n }\n case MathBlockOperations.Min: {\n if (isScalar) {\n func = (state) => {\n return Math.min(left.getConnectedValue(state), right.getConnectedValue(state));\n };\n }\n else {\n const [vector, scalar] = leftIsScalar ? [right, left] : [left, right];\n switch (vector.type) {\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n func = (state) => {\n return Vector2.Minimize(vector.getConnectedValue(state), state.adapt(scalar, vector.type));\n };\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n func = (state) => {\n return Vector3.Minimize(vector.getConnectedValue(state), state.adapt(scalar, vector.type));\n };\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n func = (state) => {\n return Vector4.Minimize(vector.getConnectedValue(state), state.adapt(scalar, vector.type));\n };\n break;\n }\n }\n }\n break;\n }\n case MathBlockOperations.Max: {\n if (isScalar) {\n func = (state) => {\n return Math.max(left.getConnectedValue(state), right.getConnectedValue(state));\n };\n }\n else {\n const [vector, scalar] = leftIsScalar ? [right, left] : [left, right];\n switch (vector.type) {\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n func = (state) => {\n return Vector2.Maximize(vector.getConnectedValue(state), state.adapt(scalar, vector.type));\n };\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n func = (state) => {\n return Vector3.Maximize(vector.getConnectedValue(state), state.adapt(scalar, vector.type));\n };\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n func = (state) => {\n return Vector4.Maximize(vector.getConnectedValue(state), state.adapt(scalar, vector.type));\n };\n break;\n }\n }\n break;\n }\n }\n }\n this.output._storedFunction = (state) => {\n if (left.type === NodeGeometryBlockConnectionPointTypes.Int) {\n return func(state) | 0;\n }\n return func(state);\n };\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.operation = BABYLON.MathBlockOperations.${MathBlockOperations[this.operation]};\\n`;\n return codeString;\n }\n _updateInputOutputTypes() {\n // First update the output type with the initial assumption that we'll base it on the left input.\n this.output._typeConnectionSource = this.left;\n if (this.left.isConnected && this.right.isConnected) {\n // Both inputs are connected, so we need to determine the output type based on the input types.\n if (this.left.type === NodeGeometryBlockConnectionPointTypes.Int ||\n (this.left.type === NodeGeometryBlockConnectionPointTypes.Float && this.right.type !== NodeGeometryBlockConnectionPointTypes.Int)) {\n this.output._typeConnectionSource = this.right;\n }\n }\n else if (this.left.isConnected !== this.right.isConnected) {\n // Only one input is connected, so we need to determine the output type based on the connected input.\n this.output._typeConnectionSource = this.left.isConnected ? this.left : this.right;\n }\n // Next update the accepted connection point types for the inputs based on the current input connection state.\n if (this.left.isConnected || this.right.isConnected) {\n for (const [first, second] of [\n [this.left, this.right],\n [this.right, this.left],\n ]) {\n // Always allow Ints and Floats.\n first.acceptedConnectionPointTypes = [NodeGeometryBlockConnectionPointTypes.Int, NodeGeometryBlockConnectionPointTypes.Float];\n if (second.isConnected) {\n // The same types as the connected input are always allowed.\n first.acceptedConnectionPointTypes.push(second.type);\n // If the other input is a scalar, then we also allow Vector types.\n if (second.type === NodeGeometryBlockConnectionPointTypes.Int || second.type === NodeGeometryBlockConnectionPointTypes.Float) {\n first.acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Vector2, NodeGeometryBlockConnectionPointTypes.Vector3, NodeGeometryBlockConnectionPointTypes.Vector4);\n }\n }\n }\n }\n }\n /**\n * Release resources\n */\n dispose() {\n super.dispose();\n this._connectionObservers.forEach((observer) => observer.remove());\n this._connectionObservers.length = 0;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.operation = this.operation;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.operation = serializationObject.operation;\n }\n}\n__decorate([\n editableInPropertyPage(\"Operation\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"Add\", value: MathBlockOperations.Add },\n { label: \"Subtract\", value: MathBlockOperations.Subtract },\n { label: \"Multiply\", value: MathBlockOperations.Multiply },\n { label: \"Divide\", value: MathBlockOperations.Divide },\n { label: \"Max\", value: MathBlockOperations.Max },\n { label: \"Min\", value: MathBlockOperations.Min },\n ],\n })\n], MathBlock.prototype, \"operation\", void 0);\nRegisterClass(\"BABYLON.MathBlock\", MathBlock);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Defines a block used to move a value from a range to another\n */\nexport class MapRangeBlock extends NodeGeometryBlock {\n /**\n * Create a new MapRangeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"fromMin\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"fromMax\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerInput(\"toMin\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"toMax\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Vector2);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Vector3);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Vector4);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MapRangeBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the fromMin input component\n */\n get fromMin() {\n return this._inputs[1];\n }\n /**\n * Gets the fromMax input component\n */\n get fromMax() {\n return this._inputs[2];\n }\n /**\n * Gets the toMin input component\n */\n get toMin() {\n return this._inputs[3];\n }\n /**\n * Gets the toMax input component\n */\n get toMax() {\n return this._inputs[4];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n this.output._storedFunction = (state) => {\n const value = this.value.getConnectedValue(state);\n const fromMin = this.fromMin.getConnectedValue(state);\n const fromMax = this.fromMax.getConnectedValue(state);\n const toMin = this.toMin.getConnectedValue(state);\n const toMax = this.toMax.getConnectedValue(state);\n const result = ((value - fromMin) / (fromMax - fromMin)) * (toMax - toMin) + toMin;\n if (this.output.type === NodeGeometryBlockConnectionPointTypes.Int) {\n return Math.floor(result);\n }\n return result;\n };\n }\n}\nRegisterClass(\"BABYLON.MapRangeBlock\", MapRangeBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\nimport { WithinEpsilon } from \"../../../Maths/math.scalar.functions.js\";\nimport { Epsilon } from \"../../../Maths/math.constants.js\";\n/**\n * Conditions supported by the condition block\n */\nexport var ConditionBlockTests;\n(function (ConditionBlockTests) {\n /** Equal */\n ConditionBlockTests[ConditionBlockTests[\"Equal\"] = 0] = \"Equal\";\n /** NotEqual */\n ConditionBlockTests[ConditionBlockTests[\"NotEqual\"] = 1] = \"NotEqual\";\n /** LessThan */\n ConditionBlockTests[ConditionBlockTests[\"LessThan\"] = 2] = \"LessThan\";\n /** GreaterThan */\n ConditionBlockTests[ConditionBlockTests[\"GreaterThan\"] = 3] = \"GreaterThan\";\n /** LessOrEqual */\n ConditionBlockTests[ConditionBlockTests[\"LessOrEqual\"] = 4] = \"LessOrEqual\";\n /** GreaterOrEqual */\n ConditionBlockTests[ConditionBlockTests[\"GreaterOrEqual\"] = 5] = \"GreaterOrEqual\";\n /** Logical Exclusive OR */\n ConditionBlockTests[ConditionBlockTests[\"Xor\"] = 6] = \"Xor\";\n /** Logical Or */\n ConditionBlockTests[ConditionBlockTests[\"Or\"] = 7] = \"Or\";\n /** Logical And */\n ConditionBlockTests[ConditionBlockTests[\"And\"] = 8] = \"And\";\n})(ConditionBlockTests || (ConditionBlockTests = {}));\n/**\n * Block used to evaluate a condition and return a true or false value\n */\nexport class ConditionBlock extends NodeGeometryBlock {\n /**\n * Create a new ConditionBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets the test used by the block\n */\n this.test = ConditionBlockTests.Equal;\n this.registerInput(\"left\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerInput(\"right\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"ifTrue\", NodeGeometryBlockConnectionPointTypes.AutoDetect, true, 1);\n this.registerInput(\"ifFalse\", NodeGeometryBlockConnectionPointTypes.AutoDetect, true, 0);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[2];\n this._outputs[0]._defaultConnectionPointType = NodeGeometryBlockConnectionPointTypes.Float;\n this._inputs[0].acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n this._inputs[1].acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n this._linkConnectionTypes(2, 3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ConditionBlock\";\n }\n /**\n * Gets the left input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the ifTrue input component\n */\n get ifTrue() {\n return this._inputs[2];\n }\n /**\n * Gets the ifFalse input component\n */\n get ifFalse() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (state) => {\n const left = this.left.getConnectedValue(state);\n const right = this.right.getConnectedValue(state);\n let condition = false;\n switch (this.test) {\n case ConditionBlockTests.Equal:\n condition = WithinEpsilon(left, right, Epsilon);\n break;\n case ConditionBlockTests.NotEqual:\n condition = left !== right;\n break;\n case ConditionBlockTests.LessThan:\n condition = left < right;\n break;\n case ConditionBlockTests.GreaterThan:\n condition = left > right;\n break;\n case ConditionBlockTests.LessOrEqual:\n condition = left <= right;\n break;\n case ConditionBlockTests.GreaterOrEqual:\n condition = left >= right;\n break;\n case ConditionBlockTests.Xor:\n condition = (!!left && !right) || (!left && !!right);\n break;\n case ConditionBlockTests.Or:\n condition = !!left || !!right;\n break;\n case ConditionBlockTests.And:\n condition = !!left && !!right;\n break;\n }\n return condition;\n };\n this.output._storedFunction = (state) => {\n if (func(state)) {\n return this.ifTrue.getConnectedValue(state);\n }\n return this.ifFalse.getConnectedValue(state);\n };\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.test = BABYLON.ConditionBlockTests.${ConditionBlockTests[this.test]};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.test = this.test;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.test = serializationObject.test;\n }\n}\n__decorate([\n editableInPropertyPage(\"Test\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"Equal\", value: ConditionBlockTests.Equal },\n { label: \"NotEqual\", value: ConditionBlockTests.NotEqual },\n { label: \"LessThan\", value: ConditionBlockTests.LessThan },\n { label: \"GreaterThan\", value: ConditionBlockTests.GreaterThan },\n { label: \"LessOrEqual\", value: ConditionBlockTests.LessOrEqual },\n { label: \"GreaterOrEqual\", value: ConditionBlockTests.GreaterOrEqual },\n { label: \"Xor\", value: ConditionBlockTests.Xor },\n { label: \"Or\", value: ConditionBlockTests.Or },\n { label: \"And\", value: ConditionBlockTests.And },\n ],\n })\n], ConditionBlock.prototype, \"test\", void 0);\nRegisterClass(\"BABYLON.ConditionBlock\", ConditionBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { GeometryInputBlock } from \"./geometryInputBlock.js\";\nimport { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\nimport { NodeGeometryContextualSources } from \"../Enums/nodeGeometryContextualSources.js\";\n/**\n * Locks supported by the random block\n */\nexport var RandomBlockLocks;\n(function (RandomBlockLocks) {\n /** None */\n RandomBlockLocks[RandomBlockLocks[\"None\"] = 0] = \"None\";\n /** LoopID */\n RandomBlockLocks[RandomBlockLocks[\"LoopID\"] = 1] = \"LoopID\";\n /** InstanceID */\n RandomBlockLocks[RandomBlockLocks[\"InstanceID\"] = 2] = \"InstanceID\";\n /** Once */\n RandomBlockLocks[RandomBlockLocks[\"Once\"] = 3] = \"Once\";\n})(RandomBlockLocks || (RandomBlockLocks = {}));\n/**\n * Block used to get a random number\n */\nexport class RandomBlock extends NodeGeometryBlock {\n /**\n * Create a new RandomBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._currentLockId = -1;\n /**\n * Gets or sets a value indicating if that block will lock its value for a specific duration\n */\n this.lockMode = RandomBlockLocks.None;\n this.registerInput(\"min\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"max\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RandomBlock\";\n }\n /**\n * Gets the min input component\n */\n get min() {\n return this._inputs[0];\n }\n /**\n * Gets the max input component\n */\n get max() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.min.isConnected) {\n const minInput = new GeometryInputBlock(\"Min\");\n minInput.value = 0;\n minInput.output.connectTo(this.min);\n }\n if (!this.max.isConnected) {\n const maxInput = new GeometryInputBlock(\"Max\");\n maxInput.value = 1;\n maxInput.output.connectTo(this.max);\n }\n }\n _buildBlock() {\n let func = null;\n this._currentLockId = -1;\n switch (this.min.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float: {\n func = (state) => {\n const min = this.min.getConnectedValue(state) || 0;\n const max = this.max.getConnectedValue(state) || 0;\n return min + Math.random() * (max - min);\n };\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n func = (state) => {\n const min = this.min.getConnectedValue(state) || Vector2.Zero();\n const max = this.max.getConnectedValue(state) || Vector2.Zero();\n return new Vector2(min.x + Math.random() * (max.x - min.x), min.y + Math.random() * (max.y - min.y));\n };\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n func = (state) => {\n const min = this.min.getConnectedValue(state) || Vector3.Zero();\n const max = this.max.getConnectedValue(state) || Vector3.Zero();\n return new Vector3(min.x + Math.random() * (max.x - min.x), min.y + Math.random() * (max.y - min.y), min.z + Math.random() * (max.z - min.z));\n };\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n func = (state) => {\n const min = this.min.getConnectedValue(state) || Vector4.Zero();\n const max = this.max.getConnectedValue(state) || Vector4.Zero();\n return new Vector4(min.x + Math.random() * (max.x - min.x), min.y + Math.random() * (max.y - min.y), min.z + Math.random() * (max.z - min.z), min.w + Math.random() * (max.w - min.w));\n };\n break;\n }\n }\n if (this.lockMode === RandomBlockLocks.None || !func) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = (state) => {\n let lockId = 0;\n switch (this.lockMode) {\n case RandomBlockLocks.InstanceID:\n lockId = state.getContextualValue(NodeGeometryContextualSources.InstanceID, true) || 0;\n break;\n case RandomBlockLocks.LoopID:\n lockId = state.getContextualValue(NodeGeometryContextualSources.LoopID, true) || 0;\n break;\n case RandomBlockLocks.Once:\n lockId = state.buildId || 0;\n break;\n }\n if (this._currentLockId !== lockId || this.lockMode === RandomBlockLocks.None) {\n this._currentLockId = lockId;\n this.output._storedValue = func(state);\n }\n return this.output._storedValue;\n };\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.lockMode = BABYLON.RandomBlockLocks.${RandomBlockLocks[this.lockMode]};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.lockMode = this.lockMode;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.lockMode = serializationObject.lockMode;\n }\n}\n__decorate([\n editableInPropertyPage(\"LockMode\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"None\", value: RandomBlockLocks.None },\n { label: \"LoopID\", value: RandomBlockLocks.LoopID },\n { label: \"InstanceID\", value: RandomBlockLocks.InstanceID },\n { label: \"Once\", value: RandomBlockLocks.Once },\n ],\n })\n], RandomBlock.prototype, \"lockMode\", void 0);\nRegisterClass(\"BABYLON.RandomBlock\", RandomBlock);\n","import { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Vector3 } from \"../../../Maths/math.vector.js\";\nimport { Clamp } from \"../../../Maths/math.scalar.functions.js\";\nimport { NodeGeometryContextualSources } from \"../Enums/nodeGeometryContextualSources.js\";\n/**\n * Block used to get a noise value\n */\nexport class NoiseBlock extends NodeGeometryBlock {\n /**\n * Create a new NoiseBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"offset\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerInput(\"scale\", NodeGeometryBlockConnectionPointTypes.Float, true, 1);\n this.registerInput(\"octaves\", NodeGeometryBlockConnectionPointTypes.Float, true, 2, 0, 16);\n this.registerInput(\"roughness\", NodeGeometryBlockConnectionPointTypes.Float, true, 0.5, 0, 1);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NoiseBlock\";\n }\n /**\n * Gets the offset input component\n */\n get offset() {\n return this._inputs[0];\n }\n /**\n * Gets the scale input component\n */\n get scale() {\n return this._inputs[1];\n }\n /**\n * Gets the octaves input component\n */\n get octaves() {\n return this._inputs[2];\n }\n /**\n * Gets the roughtness input component\n */\n get roughness() {\n return this._inputs[3];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _negateIf(value, condition) {\n return condition !== 0 ? -value : value;\n }\n _noiseGrad(hash, x, y, z) {\n const h = hash & 15;\n const u = h < 8 ? x : y;\n const vt = h === 12 || h == 14 ? x : z;\n const v = h < 4 ? y : vt;\n return this._negateIf(u, h & u) + this._negateIf(v, h & 2);\n }\n _fade(t) {\n return t * t * t * (t * (t * 6.0 - 15.0) + 10.0);\n }\n _hashBitRotate(x, k) {\n return (x << k) | (x >> (32 - k));\n }\n _hash(kx, ky, kz) {\n let a, b, c;\n a = b = c = 0xdeadbeef + (3 << 2) + 13;\n c += kz;\n b += ky;\n a += kx;\n c ^= b;\n c -= this._hashBitRotate(b, 14);\n a ^= c;\n a -= this._hashBitRotate(c, 11);\n b ^= a;\n b -= this._hashBitRotate(a, 25);\n c ^= b;\n c -= this._hashBitRotate(b, 16);\n a ^= c;\n a -= this._hashBitRotate(c, 4);\n b ^= a;\n b -= this._hashBitRotate(a, 14);\n c ^= b;\n c -= this._hashBitRotate(b, 24);\n return c;\n }\n _mix(v0, v1, v2, v3, v4, v5, v6, v7, x, y, z) {\n const x1 = 1.0 - x;\n const y1 = 1.0 - y;\n const z1 = 1.0 - z;\n return z1 * (y1 * (v0 * x1 + v1 * x) + y * (v2 * x1 + v3 * x)) + z * (y1 * (v4 * x1 + v5 * x) + y * (v6 * x1 + v7 * x));\n }\n _perlinNoise(position) {\n const X = (position.x | 0) - (position.x < 0 ? 1 : 0);\n const Y = (position.y | 0) - (position.y < 0 ? 1 : 0);\n const Z = (position.z | 0) - (position.z < 0 ? 1 : 0);\n const fx = position.x - X;\n const fy = position.y - Y;\n const fz = position.z - Z;\n const u = this._fade(fx);\n const v = this._fade(fy);\n const w = this._fade(fz);\n return this._mix(this._noiseGrad(this._hash(X, Y, Z), fx, fy, fz), this._noiseGrad(this._hash(X + 1, Y, Z), fx - 1, fy, fz), this._noiseGrad(this._hash(X, Y + 1, Z), fx, fy - 1, fz), this._noiseGrad(this._hash(X + 1, Y + 1, Z), fx - 1, fy - 1, fz), this._noiseGrad(this._hash(X, Y, Z + 1), fx, fy, fz - 1), this._noiseGrad(this._hash(X + 1, Y, Z + 1), fx - 1, fy, fz - 1), this._noiseGrad(this._hash(X, Y + 1, Z + 1), fx, fy - 1, fz - 1), this._noiseGrad(this._hash(X + 1, Y + 1, Z + 1), fx - 1, fy - 1, fz - 1), u, v, w);\n }\n _perlinSigned(position) {\n return this._perlinNoise(position) * 0.982;\n }\n _perlin(position) {\n return this._perlinSigned(position) / 2.0 + 0.5;\n }\n /**\n * Gets a perlin noise value\n * @param octaves number of octaves\n * @param roughness roughness\n * @param _position position vector\n * @param offset offset vector\n * @param scale scale value\n * @returns a value between 0 and 1\n * @see Based on https://github.com/blender/blender/blob/main/source/blender/blenlib/intern/noise.cc#L533\n */\n noise(octaves, roughness, _position, offset, scale) {\n const position = new Vector3(_position.x * scale + offset.x, _position.y * scale + offset.y, _position.z * scale + offset.z);\n let fscale = 1.0;\n let amp = 1.0;\n let maxamp = 0.0;\n let sum = 0.0;\n octaves = Clamp(octaves, 0, 15.0);\n const step = octaves | 0;\n for (let i = 0; i <= step; i++) {\n const t = this._perlin(position.scale(fscale));\n sum += t * amp;\n maxamp += amp;\n amp *= Clamp(roughness, 0.0, 1.0);\n fscale *= 2.0;\n }\n const rmd = octaves - Math.floor(octaves);\n if (rmd == 0.0) {\n return sum / maxamp;\n }\n const t = this._perlin(position.scale(fscale));\n let sum2 = sum + t * amp;\n sum /= maxamp;\n sum2 /= maxamp + amp;\n return (1.0 - rmd) * sum + rmd * sum2;\n }\n _buildBlock() {\n this.output._storedFunction = (state) => {\n const position = state.getContextualValue(NodeGeometryContextualSources.Positions);\n const octaves = this.octaves.getConnectedValue(state);\n const roughness = this.roughness.getConnectedValue(state);\n const offset = this.offset.getConnectedValue(state);\n const scale = this.scale.getConnectedValue(state);\n return this.noise(octaves, roughness, position, offset, scale);\n };\n }\n}\nRegisterClass(\"BABYLON.NoiseBlock\", NoiseBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to merge several geometries\n */\nexport class MergeGeometryBlock extends NodeGeometryBlock {\n /**\n * Create a new MergeGeometryBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = false;\n this.registerInput(\"geometry0\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"geometry1\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"geometry2\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"geometry3\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"geometry4\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MergeGeometryBlock\";\n }\n /**\n * Gets the geometry0 input component\n */\n get geometry0() {\n return this._inputs[0];\n }\n /**\n * Gets the geometry1 input component\n */\n get geometry1() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry2 input component\n */\n get geometry2() {\n return this._inputs[2];\n }\n /**\n * Gets the geometry3 input component\n */\n get geometry3() {\n return this._inputs[3];\n }\n /**\n * Gets the geometry4 input component\n */\n get geometry4() {\n return this._inputs[4];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = (state) => {\n const vertexDataSource = [];\n if (this.geometry0.isConnected) {\n const data = this.geometry0.getConnectedValue(state);\n if (data) {\n vertexDataSource.push(data);\n }\n }\n if (this.geometry1.isConnected) {\n const data = this.geometry1.getConnectedValue(state);\n if (data) {\n vertexDataSource.push(data);\n }\n }\n if (this.geometry2.isConnected) {\n const data = this.geometry2.getConnectedValue(state);\n if (data) {\n vertexDataSource.push(data);\n }\n }\n if (this.geometry3.isConnected) {\n const data = this.geometry3.getConnectedValue(state);\n if (data) {\n vertexDataSource.push(data);\n }\n }\n if (this.geometry4.isConnected) {\n const data = this.geometry4.getConnectedValue(state);\n if (data) {\n vertexDataSource.push(data);\n }\n }\n if (vertexDataSource.length === 0) {\n return null;\n }\n let vertexData = vertexDataSource[0].clone(); // Preserve source data\n const additionalVertexData = vertexDataSource.slice(1);\n if (additionalVertexData.length && vertexData) {\n vertexData = vertexData.merge(additionalVertexData, true, false, true, true);\n }\n return vertexData;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], MergeGeometryBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.MergeGeometryBlock\", MergeGeometryBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to randomly pick a geometry from a collection\n */\nexport class GeometryCollectionBlock extends NodeGeometryBlock {\n /**\n * Create a new GeometryCollectionBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"geometry0\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"geometry1\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"geometry2\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"geometry3\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"geometry4\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"geometry5\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"geometry6\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"geometry7\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"geometry8\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"geometry9\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryCollectionBlock\";\n }\n /**\n * Gets the geometry0 input component\n */\n get geometry0() {\n return this._inputs[0];\n }\n /**\n * Gets the geometry1 input component\n */\n get geometry1() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry2 input component\n */\n get geometry2() {\n return this._inputs[2];\n }\n /**\n * Gets the geometry3 input component\n */\n get geometry3() {\n return this._inputs[3];\n }\n /**\n * Gets the geometry4 input component\n */\n get geometry4() {\n return this._inputs[4];\n }\n /**\n * Gets the geometry5 input component\n */\n get geometry5() {\n return this._inputs[5];\n }\n /**\n * Gets the geometry6 input component\n */\n get geometry6() {\n return this._inputs[6];\n }\n /**\n * Gets the geometry7 input component\n */\n get geometry7() {\n return this._inputs[7];\n }\n /**\n * Gets the geometry8 input component\n */\n get geometry8() {\n return this._inputs[8];\n }\n /**\n * Gets the geometry9 input component\n */\n get geometry9() {\n return this._inputs[9];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _storeGeometry(input, state, index, availables) {\n if (input.isConnected) {\n const vertexData = input.getConnectedValue(state);\n if (!vertexData) {\n return;\n }\n vertexData.metadata = vertexData.metadata || {};\n vertexData.metadata.collectionId = index;\n availables.push(vertexData);\n }\n }\n _buildBlock(state) {\n const func = (state) => {\n const availables = [];\n this._storeGeometry(this.geometry0, state, 0, availables);\n this._storeGeometry(this.geometry1, state, 1, availables);\n this._storeGeometry(this.geometry2, state, 2, availables);\n this._storeGeometry(this.geometry3, state, 3, availables);\n this._storeGeometry(this.geometry4, state, 4, availables);\n this._storeGeometry(this.geometry5, state, 5, availables);\n this._storeGeometry(this.geometry6, state, 6, availables);\n this._storeGeometry(this.geometry7, state, 7, availables);\n this._storeGeometry(this.geometry8, state, 8, availables);\n this._storeGeometry(this.geometry9, state, 9, availables);\n if (!availables.length) {\n return null;\n }\n return availables[Math.round(Math.random() * (availables.length - 1))];\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], GeometryCollectionBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.GeometryCollectionBlock\", GeometryCollectionBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\nimport { FixFlippedFaces } from \"../../../Maths/math.functions.js\";\n/**\n * Block used to clean a geometry\n */\nexport class CleanGeometryBlock extends NodeGeometryBlock {\n /**\n * Creates a new CleanGeometryBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"CleanGeometryBlock\";\n }\n /**\n * Gets the geometry component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = (state) => {\n if (!this.geometry.isConnected) {\n return null;\n }\n const vertexData = this.geometry.getConnectedValue(state).clone();\n if (!vertexData.positions || !vertexData.indices || !vertexData.normals) {\n return vertexData;\n }\n const indices = vertexData.indices;\n const positions = vertexData.positions;\n FixFlippedFaces(positions, indices);\n return vertexData;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n return super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], CleanGeometryBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.CleanGeometryBlock\", CleanGeometryBlock);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used as a pass through\n */\nexport class GeometryElbowBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryElbowBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"input\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the time spent to build this block (in ms)\n */\n get buildExecutionTime() {\n return -1;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryElbowBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const input = this._inputs[0];\n output._storedFunction = (state) => {\n return input.getConnectedValue(state);\n };\n }\n}\nRegisterClass(\"BABYLON.GeometryElbowBlock\", GeometryElbowBlock);\n","import { VertexData } from \"../../mesh.vertexData.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to recompute normals for a geometry\n */\nexport class ComputeNormalsBlock extends NodeGeometryBlock {\n /**\n * Creates a new ComputeNormalsBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ComputeNormalsBlock\";\n }\n /**\n * Gets the geometry component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n this.output._storedFunction = (state) => {\n if (!this.geometry.isConnected) {\n return null;\n }\n const vertexData = this.geometry.getConnectedValue(state);\n if (!vertexData.normals) {\n vertexData.normals = [];\n }\n VertexData.ComputeNormals(vertexData.positions, vertexData.indices, vertexData.normals);\n return vertexData;\n };\n }\n}\nRegisterClass(\"BABYLON.ComputeNormalsBlock\", ComputeNormalsBlock);\n","import { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to create a Vector2/3/4 out of individual or partial inputs\n */\nexport class VectorConverterBlock extends NodeGeometryBlock {\n /**\n * Create a new VectorConverterBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"xyzw \", NodeGeometryBlockConnectionPointTypes.Vector4, true);\n this.registerInput(\"xyz \", NodeGeometryBlockConnectionPointTypes.Vector3, true);\n this.registerInput(\"xy \", NodeGeometryBlockConnectionPointTypes.Vector2, true);\n this.registerInput(\"zw \", NodeGeometryBlockConnectionPointTypes.Vector2, true);\n this.registerInput(\"x \", NodeGeometryBlockConnectionPointTypes.Float, true);\n this.registerInput(\"y \", NodeGeometryBlockConnectionPointTypes.Float, true);\n this.registerInput(\"z \", NodeGeometryBlockConnectionPointTypes.Float, true);\n this.registerInput(\"w \", NodeGeometryBlockConnectionPointTypes.Float, true);\n this.registerOutput(\"xyzw\", NodeGeometryBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"xyz\", NodeGeometryBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"xy\", NodeGeometryBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"zw\", NodeGeometryBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"x\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"y\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"z\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"w\", NodeGeometryBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"VectorConverterBlock\";\n }\n /**\n * Gets the xyzw component (input)\n */\n get xyzwIn() {\n return this._inputs[0];\n }\n /**\n * Gets the xyz component (input)\n */\n get xyzIn() {\n return this._inputs[1];\n }\n /**\n * Gets the xy component (input)\n */\n get xyIn() {\n return this._inputs[2];\n }\n /**\n * Gets the zw component (input)\n */\n get zwIn() {\n return this._inputs[3];\n }\n /**\n * Gets the x component (input)\n */\n get xIn() {\n return this._inputs[4];\n }\n /**\n * Gets the y component (input)\n */\n get yIn() {\n return this._inputs[5];\n }\n /**\n * Gets the z component (input)\n */\n get zIn() {\n return this._inputs[6];\n }\n /**\n * Gets the w component (input)\n */\n get wIn() {\n return this._inputs[7];\n }\n /**\n * Gets the xyzw component (output)\n */\n get xyzwOut() {\n return this._outputs[0];\n }\n /**\n * Gets the xyz component (output)\n */\n get xyzOut() {\n return this._outputs[1];\n }\n /**\n * Gets the xy component (output)\n */\n get xyOut() {\n return this._outputs[2];\n }\n /**\n * Gets the zw component (output)\n */\n get zwOut() {\n return this._outputs[3];\n }\n /**\n * Gets the x component (output)\n */\n get xOut() {\n return this._outputs[4];\n }\n /**\n * Gets the y component (output)\n */\n get yOut() {\n return this._outputs[5];\n }\n /**\n * Gets the z component (output)\n */\n get zOut() {\n return this._outputs[6];\n }\n /**\n * Gets the w component (output)\n */\n get wOut() {\n return this._outputs[7];\n }\n _inputRename(name) {\n if (name === \"xyzw \") {\n return \"xyzwIn\";\n }\n if (name === \"xyz \") {\n return \"xyzIn\";\n }\n if (name === \"xy \") {\n return \"xyIn\";\n }\n if (name === \"zw \") {\n return \"zwIn\";\n }\n if (name === \"x \") {\n return \"xIn\";\n }\n if (name === \"y \") {\n return \"yIn\";\n }\n if (name === \"z \") {\n return \"zIn\";\n }\n if (name === \"w \") {\n return \"wIn\";\n }\n return name;\n }\n _outputRename(name) {\n switch (name) {\n case \"x\":\n return \"xOut\";\n case \"y\":\n return \"yOut\";\n case \"z\":\n return \"zOut\";\n case \"w\":\n return \"wOut\";\n case \"xy\":\n return \"xyOut\";\n case \"zw\":\n return \"zwOut\";\n case \"xyz\":\n return \"xyzOut\";\n case \"xyzw\":\n return \"xyzwOut\";\n default:\n return name;\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const xInput = this.xIn;\n const yInput = this.yIn;\n const zInput = this.zIn;\n const wInput = this.wIn;\n const xyInput = this.xyIn;\n const zwInput = this.zwIn;\n const xyzInput = this.xyzIn;\n const xyzwInput = this.xyzwIn;\n const xyzwOutput = this.xyzwOut;\n const xyzOutput = this.xyzOut;\n const xyOutput = this.xyOut;\n const zwOutput = this.zwOut;\n const xOutput = this.xOut;\n const yOutput = this.yOut;\n const zOutput = this.zOut;\n const wOutput = this.wOut;\n const getData = (state) => {\n if (xyzwInput.isConnected) {\n return xyzwInput.getConnectedValue(state);\n }\n let x = 0;\n let y = 0;\n let z = 0;\n let w = 0;\n if (xInput.isConnected) {\n x = xInput.getConnectedValue(state);\n }\n if (yInput.isConnected) {\n y = yInput.getConnectedValue(state);\n }\n if (zInput.isConnected) {\n z = zInput.getConnectedValue(state);\n }\n if (wInput.isConnected) {\n w = wInput.getConnectedValue(state);\n }\n if (xyInput.isConnected) {\n const temp = xyInput.getConnectedValue(state);\n if (temp) {\n x = temp.x;\n y = temp.y;\n }\n }\n if (zwInput.isConnected) {\n const temp = zwInput.getConnectedValue(state);\n if (temp) {\n z = temp.x;\n w = temp.y;\n }\n }\n if (xyzInput.isConnected) {\n const temp = xyzInput.getConnectedValue(state);\n if (temp) {\n x = temp.x;\n y = temp.y;\n z = temp.z;\n }\n }\n return new Vector4(x, y, z, w);\n };\n xyzwOutput._storedFunction = (state) => getData(state);\n xyzOutput._storedFunction = (state) => {\n const data = getData(state);\n return new Vector3(data.x, data.y, data.z);\n };\n xyOutput._storedFunction = (state) => {\n const data = getData(state);\n return new Vector2(data.x, data.y);\n };\n zwOutput._storedFunction = (state) => {\n const data = getData(state);\n return new Vector2(data.z, data.w);\n };\n xOutput._storedFunction = (state) => getData(state).x;\n yOutput._storedFunction = (state) => getData(state).y;\n zOutput._storedFunction = (state) => getData(state).z;\n wOutput._storedFunction = (state) => getData(state).w;\n }\n}\nRegisterClass(\"BABYLON.VectorConverterBlock\", VectorConverterBlock);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to normalize vectors\n */\nexport class NormalizeVectorBlock extends NodeGeometryBlock {\n /**\n * Creates a new NormalizeVectorBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"input\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NormalizeVectorBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this.output._storedFunction = null;\n if (!this.input.isConnected) {\n this.output._storedValue = null;\n return;\n }\n this.output._storedFunction = (state) => this.input.getConnectedValue(state).normalize();\n }\n}\nRegisterClass(\"BABYLON.NormalizeVectorBlock\", NormalizeVectorBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { VertexDataMaterialInfo } from \"../../../../Meshes/mesh.vertexData.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to affect a material ID to a geometry\n */\nexport class SetMaterialIDBlock extends NodeGeometryBlock {\n /**\n * Create a new SetMaterialIDBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"id\", NodeGeometryBlockConnectionPointTypes.Int, true, 0);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.id.acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"SetMaterialIDBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the id input component\n */\n get id() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n if (!this.geometry.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (state) => {\n const vertexData = this.geometry.getConnectedValue(state);\n if (!vertexData || !vertexData.indices || !vertexData.positions) {\n return vertexData;\n }\n const materialInfo = new VertexDataMaterialInfo();\n materialInfo.materialIndex = this.id.getConnectedValue(state) | 0;\n materialInfo.indexStart = 0;\n materialInfo.indexCount = vertexData.indices.length;\n materialInfo.verticesStart = 0;\n materialInfo.verticesCount = vertexData.positions.length / 3;\n vertexData.materialInfos = [materialInfo];\n return vertexData;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], SetMaterialIDBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.SetMaterialIDBlock\", SetMaterialIDBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Vector3 } from \"../../../../Maths/math.vector.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { Lattice } from \"../../../lattice.js\";\nimport { extractMinAndMax } from \"../../../../Maths/math.functions.js\";\n/**\n * Block used to apply Lattice on geometry\n */\nexport class LatticeBlock extends NodeGeometryBlock {\n /**\n * Create a new LatticeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._indexVector3 = new Vector3();\n this._currentControl = new Vector3();\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n /**\n * Resolution on x axis\n */\n this.resolutionX = 3;\n /**\n * Resolution on y axis\n */\n this.resolutionY = 3;\n /**\n * Resolution on z axis\n */\n this.resolutionZ = 3;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"controls\", NodeGeometryBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndexX + this.resolutionX * (this._currentIndexY + this.resolutionY * this._currentIndexZ);\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this.getExecutionIndex();\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"LatticeBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the controls input component\n */\n get controls() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the value associated with a contextual positions\n * In this case it will be the current position in the lattice\n * @returns the current position in the lattice\n */\n getOverridePositionsContextualValue() {\n return this._indexVector3;\n }\n /**\n * Gets the value associated with a contextual normals\n * In this case it will be the current control point being processed\n * @returns the current control point being processed\n */\n getOverrideNormalsContextualValue() {\n return this._currentControl;\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n this._vertexData = this.geometry.getConnectedValue(state);\n if (this._vertexData) {\n this._vertexData = this._vertexData.clone(); // Preserve source data\n }\n if (!this._vertexData || !this._vertexData.positions) {\n state.restoreExecutionContext();\n this.output._storedValue = null;\n return;\n }\n const positions = this._vertexData.positions;\n const boundingInfo = extractMinAndMax(positions, 0, positions.length / 3);\n // Building the lattice\n this._lattice = new Lattice({\n resolutionX: this.resolutionX,\n resolutionY: this.resolutionY,\n resolutionZ: this.resolutionZ,\n size: boundingInfo.maximum.subtract(boundingInfo.minimum),\n });\n for (this._currentIndexX = 0; this._currentIndexX < this.resolutionX; this._currentIndexX++) {\n for (this._currentIndexY = 0; this._currentIndexY < this.resolutionY; this._currentIndexY++) {\n for (this._currentIndexZ = 0; this._currentIndexZ < this.resolutionZ; this._currentIndexZ++) {\n this._indexVector3.set(this._currentIndexX, this._currentIndexY, this._currentIndexZ);\n const latticeControl = this._lattice.data[this._currentIndexX][this._currentIndexY][this._currentIndexZ];\n this._currentControl.copyFrom(latticeControl);\n const tempVector3 = this.controls.getConnectedValue(state);\n if (tempVector3) {\n latticeControl.set(tempVector3.x, tempVector3.y, tempVector3.z);\n }\n }\n }\n }\n // Apply lattice\n this._lattice.deform(positions);\n // Storage\n state.restoreExecutionContext();\n return this._vertexData;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n codeString += `${this._codeVariableName}.resolutionX = ${this.resolutionX};\\n`;\n codeString += `${this._codeVariableName}.resolutionY = ${this.resolutionY};\\n`;\n codeString += `${this._codeVariableName}.resolutionZ = ${this.resolutionZ};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n serializationObject.resolutionX = this.resolutionX;\n serializationObject.resolutionY = this.resolutionY;\n serializationObject.resolutionZ = this.resolutionZ;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n this.resolutionX = serializationObject.resolutionX;\n this.resolutionY = serializationObject.resolutionY;\n this.resolutionZ = serializationObject.resolutionZ;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], LatticeBlock.prototype, \"evaluateContext\", void 0);\n__decorate([\n editableInPropertyPage(\"resolutionX\", 2 /* PropertyTypeForEdition.Int */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true }, min: 1, max: 10 })\n], LatticeBlock.prototype, \"resolutionX\", void 0);\n__decorate([\n editableInPropertyPage(\"resolutionY\", 2 /* PropertyTypeForEdition.Int */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true }, min: 1, max: 10 })\n], LatticeBlock.prototype, \"resolutionY\", void 0);\n__decorate([\n editableInPropertyPage(\"resolutionZ\", 2 /* PropertyTypeForEdition.Int */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true }, min: 1, max: 10 })\n], LatticeBlock.prototype, \"resolutionZ\", void 0);\nRegisterClass(\"BABYLON.LatticeBlock\", LatticeBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Operations supported by the Trigonometry block\n */\nexport var GeometryTrigonometryBlockOperations;\n(function (GeometryTrigonometryBlockOperations) {\n /** Cos */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Cos\"] = 0] = \"Cos\";\n /** Sin */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Sin\"] = 1] = \"Sin\";\n /** Abs */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Abs\"] = 2] = \"Abs\";\n /** Exp */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Exp\"] = 3] = \"Exp\";\n /** Round */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Round\"] = 4] = \"Round\";\n /** Floor */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Floor\"] = 5] = \"Floor\";\n /** Ceiling */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Ceiling\"] = 6] = \"Ceiling\";\n /** Square root */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Sqrt\"] = 7] = \"Sqrt\";\n /** Log */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Log\"] = 8] = \"Log\";\n /** Tangent */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Tan\"] = 9] = \"Tan\";\n /** Arc tangent */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"ArcTan\"] = 10] = \"ArcTan\";\n /** Arc cosinus */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"ArcCos\"] = 11] = \"ArcCos\";\n /** Arc sinus */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"ArcSin\"] = 12] = \"ArcSin\";\n /** Sign */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Sign\"] = 13] = \"Sign\";\n /** Negate */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Negate\"] = 14] = \"Negate\";\n /** OneMinus */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"OneMinus\"] = 15] = \"OneMinus\";\n /** Reciprocal */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Reciprocal\"] = 16] = \"Reciprocal\";\n /** ToDegrees */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"ToDegrees\"] = 17] = \"ToDegrees\";\n /** ToRadians */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"ToRadians\"] = 18] = \"ToRadians\";\n /** Fract */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Fract\"] = 19] = \"Fract\";\n /** Exp2 */\n GeometryTrigonometryBlockOperations[GeometryTrigonometryBlockOperations[\"Exp2\"] = 20] = \"Exp2\";\n})(GeometryTrigonometryBlockOperations || (GeometryTrigonometryBlockOperations = {}));\n/**\n * Block used to apply trigonometry operation to floats\n */\nexport class GeometryTrigonometryBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryTrigonometryBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets the operation applied by the block\n */\n this.operation = GeometryTrigonometryBlockOperations.Cos;\n this.registerInput(\"input\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryTrigonometryBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n let func = null;\n switch (this.operation) {\n case GeometryTrigonometryBlockOperations.Cos: {\n func = (value) => Math.cos(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.Sin: {\n func = (value) => Math.sin(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.Abs: {\n func = (value) => Math.abs(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.Exp: {\n func = (value) => Math.exp(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.Exp2: {\n func = (value) => Math.pow(2, value);\n break;\n }\n case GeometryTrigonometryBlockOperations.Round: {\n func = (value) => Math.round(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.Floor: {\n func = (value) => Math.floor(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.Ceiling: {\n func = (value) => Math.ceil(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.Sqrt: {\n func = (value) => Math.sqrt(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.Log: {\n func = (value) => Math.log(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.Tan: {\n func = (value) => Math.tan(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.ArcTan: {\n func = (value) => Math.atan(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.ArcCos: {\n func = (value) => Math.acos(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.ArcSin: {\n func = (value) => Math.asin(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.Sign: {\n func = (value) => Math.sign(value);\n break;\n }\n case GeometryTrigonometryBlockOperations.Negate: {\n func = (value) => -value;\n break;\n }\n case GeometryTrigonometryBlockOperations.OneMinus: {\n func = (value) => 1 - value;\n break;\n }\n case GeometryTrigonometryBlockOperations.Reciprocal: {\n func = (value) => 1 / value;\n break;\n }\n case GeometryTrigonometryBlockOperations.ToRadians: {\n func = (value) => (value * Math.PI) / 180;\n break;\n }\n case GeometryTrigonometryBlockOperations.ToDegrees: {\n func = (value) => (value * 180) / Math.PI;\n break;\n }\n case GeometryTrigonometryBlockOperations.Fract: {\n func = (value) => {\n if (value >= 0) {\n return value - Math.floor(value);\n }\n else {\n return value - Math.ceil(value);\n }\n };\n break;\n }\n }\n if (!func) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n switch (this.input.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float: {\n this.output._storedFunction = (state) => {\n const source = this.input.getConnectedValue(state);\n return func(source);\n };\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n this.output._storedFunction = (state) => {\n const source = this.input.getConnectedValue(state);\n return new Vector2(func(source.x), func(source.y));\n };\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n this.output._storedFunction = (state) => {\n const source = this.input.getConnectedValue(state);\n return new Vector3(func(source.x), func(source.y), func(source.z));\n };\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n this.output._storedFunction = (state) => {\n const source = this.input.getConnectedValue(state);\n return new Vector4(func(source.x), func(source.y), func(source.z), func(source.w));\n };\n break;\n }\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.operation = this.operation;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.operation = serializationObject.operation;\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() +\n `${this._codeVariableName}.operation = BABYLON.GeometryTrigonometryBlockOperations.${GeometryTrigonometryBlockOperations[this.operation]};\\n`;\n return codeString;\n }\n}\n__decorate([\n editableInPropertyPage(\"Operation\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n embedded: true,\n notifiers: { rebuild: true },\n options: [\n { label: \"Cos\", value: GeometryTrigonometryBlockOperations.Cos },\n { label: \"Sin\", value: GeometryTrigonometryBlockOperations.Sin },\n { label: \"Abs\", value: GeometryTrigonometryBlockOperations.Abs },\n { label: \"Exp\", value: GeometryTrigonometryBlockOperations.Exp },\n { label: \"Exp2\", value: GeometryTrigonometryBlockOperations.Exp2 },\n { label: \"Round\", value: GeometryTrigonometryBlockOperations.Round },\n { label: \"Floor\", value: GeometryTrigonometryBlockOperations.Floor },\n { label: \"Ceiling\", value: GeometryTrigonometryBlockOperations.Ceiling },\n { label: \"Sqrt\", value: GeometryTrigonometryBlockOperations.Sqrt },\n { label: \"Log\", value: GeometryTrigonometryBlockOperations.Log },\n { label: \"Tan\", value: GeometryTrigonometryBlockOperations.Tan },\n { label: \"ArcTan\", value: GeometryTrigonometryBlockOperations.ArcTan },\n { label: \"ArcCos\", value: GeometryTrigonometryBlockOperations.ArcCos },\n { label: \"ArcSin\", value: GeometryTrigonometryBlockOperations.ArcSin },\n { label: \"Sign\", value: GeometryTrigonometryBlockOperations.Sign },\n { label: \"Negate\", value: GeometryTrigonometryBlockOperations.Negate },\n { label: \"OneMinus\", value: GeometryTrigonometryBlockOperations.OneMinus },\n { label: \"Reciprocal\", value: GeometryTrigonometryBlockOperations.Reciprocal },\n { label: \"ToDegrees\", value: GeometryTrigonometryBlockOperations.ToDegrees },\n { label: \"ToRadians\", value: GeometryTrigonometryBlockOperations.ToRadians },\n { label: \"Fract\", value: GeometryTrigonometryBlockOperations.Fract },\n ],\n })\n], GeometryTrigonometryBlock.prototype, \"operation\", void 0);\nRegisterClass(\"BABYLON.GeometryTrigonometryBlock\", GeometryTrigonometryBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Matrix, Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to apply a transform to a vector / geometry\n */\nexport class GeometryTransformBlock extends NodeGeometryBlock {\n /**\n * Create a new GeometryTransformBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._rotationMatrix = new Matrix();\n this._scalingMatrix = new Matrix();\n this._translationMatrix = new Matrix();\n this._scalingRotationMatrix = new Matrix();\n this._pivotMatrix = new Matrix();\n this._backPivotMatrix = new Matrix();\n this._transformMatrix = new Matrix();\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix, true);\n this.registerInput(\"translation\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerInput(\"rotation\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerInput(\"scaling\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.One());\n this.registerInput(\"pivot\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryTransformBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix input component\n */\n get matrix() {\n return this._inputs[1];\n }\n /**\n * Gets the translation input component\n */\n get translation() {\n return this._inputs[2];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[3];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[4];\n }\n /**\n * Gets the pivot input component\n */\n get pivot() {\n return this._inputs[5];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n if (!this.value.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (state) => {\n const value = this.value.getConnectedValue(state);\n if (!value) {\n return null;\n }\n let matrix;\n if (this.matrix.isConnected) {\n matrix = this.matrix.getConnectedValue(state);\n }\n else {\n const scaling = this.scaling.getConnectedValue(state) || Vector3.OneReadOnly;\n const rotation = this.rotation.getConnectedValue(state) || Vector3.ZeroReadOnly;\n const translation = this.translation.getConnectedValue(state) || Vector3.ZeroReadOnly;\n const pivot = this.pivot.getConnectedValue(state) || Vector3.ZeroReadOnly;\n // Transform\n Matrix.TranslationToRef(-pivot.x, -pivot.y, -pivot.z, this._pivotMatrix);\n Matrix.ScalingToRef(scaling.x, scaling.y, scaling.z, this._scalingMatrix);\n Matrix.RotationYawPitchRollToRef(rotation.y, rotation.x, rotation.z, this._rotationMatrix);\n Matrix.TranslationToRef(translation.x + pivot.x, translation.y + pivot.y, translation.z + pivot.z, this._translationMatrix);\n this._pivotMatrix.multiplyToRef(this._scalingMatrix, this._backPivotMatrix);\n this._backPivotMatrix.multiplyToRef(this._rotationMatrix, this._scalingRotationMatrix);\n this._scalingRotationMatrix.multiplyToRef(this._translationMatrix, this._transformMatrix);\n matrix = this._transformMatrix;\n }\n switch (this.value.type) {\n case NodeGeometryBlockConnectionPointTypes.Geometry: {\n const geometry = value.clone();\n geometry.transform(matrix);\n return geometry;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n return Vector2.Transform(value, matrix);\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n return Vector3.TransformCoordinates(value, matrix);\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n return Vector4.TransformCoordinates(value, matrix);\n }\n return null;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], GeometryTransformBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.GeometryTransformBlock\", GeometryTransformBlock);\n","import { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { Matrix } from \"../../../../Maths/math.vector.js\";\n/**\n * Block used to get a rotation matrix on X Axis\n */\nexport class RotationXBlock extends NodeGeometryBlock {\n /**\n * Create a new RotationXBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"angle\", NodeGeometryBlockConnectionPointTypes.Float, false, 0);\n this.registerOutput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RotationXBlock\";\n }\n /**\n * Gets the angle input component\n */\n get angle() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix output component\n */\n get matrix() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.angle.isConnected) {\n const angleInput = new GeometryInputBlock(\"Angle\");\n angleInput.value = 0;\n angleInput.output.connectTo(this.angle);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this.matrix._storedFunction = (state) => {\n return Matrix.RotationX(this.angle.getConnectedValue(state));\n };\n }\n}\nRegisterClass(\"BABYLON.RotationXBlock\", RotationXBlock);\n","import { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { Matrix } from \"../../../../Maths/math.vector.js\";\n/**\n * Block used to get a rotation matrix on Y Axis\n */\nexport class RotationYBlock extends NodeGeometryBlock {\n /**\n * Create a new RotationYBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"angle\", NodeGeometryBlockConnectionPointTypes.Float, false, 0);\n this.registerOutput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RotationYBlock\";\n }\n /**\n * Gets the angle input component\n */\n get angle() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix output component\n */\n get matrix() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.angle.isConnected) {\n const angleInput = new GeometryInputBlock(\"Angle\");\n angleInput.value = 0;\n angleInput.output.connectTo(this.angle);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this.matrix._storedFunction = (state) => {\n return Matrix.RotationY(this.angle.getConnectedValue(state));\n };\n }\n}\nRegisterClass(\"BABYLON.RotationYBlock\", RotationYBlock);\n","import { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { Matrix } from \"../../../../Maths/math.vector.js\";\n/**\n * Block used to get a rotation matrix on Z Axis\n */\nexport class RotationZBlock extends NodeGeometryBlock {\n /**\n * Create a new RotationZBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"angle\", NodeGeometryBlockConnectionPointTypes.Float, false, 0);\n this.registerOutput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"RotationZBlock\";\n }\n /**\n * Gets the angle input component\n */\n get angle() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix output component\n */\n get matrix() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.angle.isConnected) {\n const angleInput = new GeometryInputBlock(\"Angle\");\n angleInput.value = 0;\n angleInput.output.connectTo(this.angle);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this.matrix._storedFunction = (state) => {\n return Matrix.RotationZ(this.angle.getConnectedValue(state));\n };\n }\n}\nRegisterClass(\"BABYLON.RotationZBlock\", RotationZBlock);\n","import { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { Matrix, Vector3 } from \"../../../../Maths/math.vector.js\";\n/**\n * Block used to get a scaling matrix\n */\nexport class ScalingBlock extends NodeGeometryBlock {\n /**\n * Create a new ScalingBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"scale\", NodeGeometryBlockConnectionPointTypes.Vector3, false, Vector3.One());\n this.registerOutput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"ScalingBlock\";\n }\n /**\n * Gets the scale input component\n */\n get scale() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix output component\n */\n get matrix() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.scale.isConnected) {\n const scaleInput = new GeometryInputBlock(\"Scale\");\n scaleInput.value = new Vector3(1, 1, 1);\n scaleInput.output.connectTo(this.scale);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this.matrix._storedFunction = (state) => {\n const value = this.scale.getConnectedValue(state);\n return Matrix.Scaling(value.x, value.y, value.z);\n };\n }\n}\nRegisterClass(\"BABYLON.ScalingBlock\", ScalingBlock);\n","import { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Matrix, Vector3 } from \"../../../../Maths/math.vector.js\";\n/**\n * Block used to get a align matrix\n */\nexport class AlignBlock extends NodeGeometryBlock {\n /**\n * Create a new AlignBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"source\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Up());\n this.registerInput(\"target\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Left());\n this.registerOutput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"AlignBlock\";\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[0];\n }\n /**\n * Gets the target input component\n */\n get target() {\n return this._inputs[1];\n }\n /**\n * Gets the matrix output component\n */\n get matrix() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this.matrix._storedFunction = (state) => {\n const source = this.source.getConnectedValue(state).clone();\n const target = this.target.getConnectedValue(state).clone();\n const result = new Matrix();\n source.normalize();\n target.normalize();\n Matrix.RotationAlignToRef(source, target, result, true);\n return result;\n };\n }\n}\nRegisterClass(\"BABYLON.AlignBlock\", AlignBlock);\n","import { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { GeometryInputBlock } from \"../geometryInputBlock.js\";\nimport { Matrix, Vector3 } from \"../../../../Maths/math.vector.js\";\n/**\n * Block used to get a translation matrix\n */\nexport class TranslationBlock extends NodeGeometryBlock {\n /**\n * Create a new TranslationBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"translation\", NodeGeometryBlockConnectionPointTypes.Vector3, false, Vector3.Zero());\n this.registerOutput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TranslationBlock\";\n }\n /**\n * Gets the translation input component\n */\n get translation() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix output component\n */\n get matrix() {\n return this._outputs[0];\n }\n autoConfigure() {\n if (!this.translation.isConnected) {\n const translationInput = new GeometryInputBlock(\"Translation\");\n translationInput.value = new Vector3(0, 0, 0);\n translationInput.output.connectTo(this.translation);\n }\n }\n _buildBlock(state) {\n super._buildBlock(state);\n this.matrix._storedFunction = (state) => {\n const value = this.translation.getConnectedValue(state);\n return Matrix.Translation(value.x, value.y, value.z);\n };\n }\n}\nRegisterClass(\"BABYLON.TranslationBlock\", TranslationBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Vector3 } from \"../../../../Maths/math.vector.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { Epsilon } from \"../../../../Maths/math.constants.js\";\n/**\n * Block used to instance geometry on every vertex of a geometry\n */\nexport class InstantiateOnVerticesBlock extends NodeGeometryBlock {\n /**\n * Create a new InstantiateOnVerticesBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._indexTranslation = null;\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n /**\n * Gets or sets a boolean indicating if the block should remove duplicated positions\n */\n this.removeDuplicatedPositions = true;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"instance\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"density\", NodeGeometryBlockConnectionPointTypes.Float, true, 1, 0, 1);\n this.registerInput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix, true);\n this.registerInput(\"rotation\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerInput(\"scaling\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.One());\n this.scaling.acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current instance index in the current flow\n * @returns the current index\n */\n getInstanceIndex() {\n return this._currentLoopIndex;\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._indexTranslation ? this._indexTranslation[this._currentIndex] : this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentLoopIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateOnVerticesBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the instance input component\n */\n get instance() {\n return this._inputs[1];\n }\n /**\n * Gets the density input component\n */\n get density() {\n return this._inputs[2];\n }\n /**\n * Gets the matrix input component\n */\n get matrix() {\n return this._inputs[3];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[4];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[5];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n state.pushInstancingContext(this);\n this._vertexData = this.geometry.getConnectedValue(state);\n state.pushGeometryContext(this._vertexData);\n if (!this._vertexData || !this._vertexData.positions || !this.instance.isConnected) {\n state.restoreExecutionContext();\n state.restoreInstancingContext();\n state.restoreGeometryContext();\n this.output._storedValue = null;\n return;\n }\n // Processing\n let vertexCount = this._vertexData.positions.length / 3;\n const additionalVertexData = [];\n const currentPosition = new Vector3();\n const alreadyDone = [];\n let vertices = this._vertexData.positions;\n this._currentLoopIndex = 0;\n if (this.removeDuplicatedPositions) {\n this._indexTranslation = {};\n for (this._currentIndex = 0; this._currentIndex < vertexCount; this._currentIndex++) {\n const x = vertices[this._currentIndex * 3];\n const y = vertices[this._currentIndex * 3 + 1];\n const z = vertices[this._currentIndex * 3 + 2];\n let found = false;\n for (let index = 0; index < alreadyDone.length; index += 3) {\n if (Math.abs(alreadyDone[index] - x) < Epsilon && Math.abs(alreadyDone[index + 1] - y) < Epsilon && Math.abs(alreadyDone[index + 2] - z) < Epsilon) {\n found = true;\n break;\n }\n }\n if (found) {\n continue;\n }\n this._indexTranslation[alreadyDone.length / 3] = this._currentIndex;\n alreadyDone.push(x, y, z);\n }\n vertices = alreadyDone;\n vertexCount = vertices.length / 3;\n }\n else {\n this._indexTranslation = null;\n }\n for (this._currentIndex = 0; this._currentIndex < vertexCount; this._currentIndex++) {\n const instanceGeometry = this.instance.getConnectedValue(state);\n if (!instanceGeometry || !instanceGeometry.positions || instanceGeometry.positions.length === 0) {\n continue;\n }\n const density = this.density.getConnectedValue(state);\n if (density < 1) {\n if (Math.random() > density) {\n continue;\n }\n }\n currentPosition.fromArray(vertices, this._currentIndex * 3);\n // Clone the instance\n const clone = instanceGeometry.clone();\n // Transform\n if (this.matrix.isConnected) {\n const transform = this.matrix.getConnectedValue(state);\n state._instantiateWithPositionAndMatrix(clone, currentPosition, transform, additionalVertexData);\n }\n else {\n const scaling = state.adaptInput(this.scaling, NodeGeometryBlockConnectionPointTypes.Vector3, Vector3.OneReadOnly);\n const rotation = this.rotation.getConnectedValue(state) || Vector3.ZeroReadOnly;\n state._instantiate(clone, currentPosition, rotation, scaling, additionalVertexData);\n }\n this._currentLoopIndex++;\n }\n // Restore\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n state.restoreInstancingContext();\n // Merge\n if (additionalVertexData.length) {\n if (additionalVertexData.length === 1) {\n this._vertexData = additionalVertexData[0];\n }\n else {\n // We do not merge the main one as user can use a merge node if wanted\n const main = additionalVertexData.splice(0, 1)[0];\n this._vertexData = main.merge(additionalVertexData, true, false, true, true);\n }\n }\n else {\n return null;\n }\n return this._vertexData;\n };\n // Storage\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.removeDuplicatedPositions = ${this.removeDuplicatedPositions ? \"true\" : \"false\"};\\n`;\n codeString += `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.removeDuplicatedPositions = this.removeDuplicatedPositions;\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.removeDuplicatedPositions = serializationObject.removeDuplicatedPositions;\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { notifiers: { rebuild: true } })\n], InstantiateOnVerticesBlock.prototype, \"evaluateContext\", void 0);\n__decorate([\n editableInPropertyPage(\"Remove duplicated positions\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { notifiers: { update: true } })\n], InstantiateOnVerticesBlock.prototype, \"removeDuplicatedPositions\", void 0);\nRegisterClass(\"BABYLON.InstantiateOnVerticesBlock\", InstantiateOnVerticesBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Vector2, Vector3 } from \"../../../../Maths/math.vector.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to instance geometry on every face of a geometry\n */\nexport class InstantiateOnFacesBlock extends NodeGeometryBlock {\n /**\n * Create a new InstantiateOnFacesBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._currentPosition = new Vector3();\n this._currentUV = new Vector2();\n this._vertex0 = new Vector3();\n this._vertex1 = new Vector3();\n this._vertex2 = new Vector3();\n this._tempVector0 = new Vector3();\n this._tempVector1 = new Vector3();\n this._uv0 = new Vector2();\n this._uv1 = new Vector2();\n this._uv2 = new Vector2();\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"instance\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"count\", NodeGeometryBlockConnectionPointTypes.Int, true, 256);\n this.registerInput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix, true);\n this.registerInput(\"rotation\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerInput(\"scaling\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.One());\n this.scaling.acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current instance index in the current flow\n * @returns the current index\n */\n getInstanceIndex() {\n return this._currentLoopIndex;\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return 0;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return this._currentFaceIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentLoopIndex;\n }\n /**\n * Gets the value associated with a contextual positions\n * @returns the value associated with the source\n */\n getOverridePositionsContextualValue() {\n return this._currentPosition;\n }\n /**\n * Gets the value associated with a contextual normals\n * @returns the value associated with the source\n */\n getOverrideNormalsContextualValue() {\n this._vertex1.subtractToRef(this._vertex0, this._tempVector0);\n this._vertex2.subtractToRef(this._vertex1, this._tempVector1);\n this._tempVector0.normalize();\n this._tempVector1.normalize();\n return Vector3.Cross(this._tempVector1, this._tempVector0);\n }\n /**\n * Gets the value associated with a contextual UV1 se\n * @returns the value associated with the source\n */\n getOverrideUVs1ContextualValue() {\n return this._currentUV;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateOnFacesBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the instance input component\n */\n get instance() {\n return this._inputs[1];\n }\n /**\n * Gets the count input component\n */\n get count() {\n return this._inputs[2];\n }\n /**\n * Gets the matrix input component\n */\n get matrix() {\n return this._inputs[3];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[4];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[5];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n state.pushInstancingContext(this);\n this._vertexData = this.geometry.getConnectedValue(state);\n state.pushGeometryContext(this._vertexData);\n if (!this._vertexData || !this._vertexData.positions || !this._vertexData.indices || !this.instance.isConnected) {\n state.restoreExecutionContext();\n state.restoreInstancingContext();\n state.restoreGeometryContext();\n this.output._storedValue = null;\n return;\n }\n // Processing\n let instanceGeometry = null;\n const instanceCount = this.count.getConnectedValue(state);\n const faceCount = this._vertexData.indices.length / 3;\n const instancePerFace = instanceCount / faceCount;\n let accumulatedCount = 0;\n const additionalVertexData = [];\n let totalDone = 0;\n this._currentLoopIndex = 0;\n for (this._currentFaceIndex = 0; this._currentFaceIndex < faceCount; this._currentFaceIndex++) {\n accumulatedCount += instancePerFace;\n const countPerFace = (accumulatedCount | 0) - totalDone;\n if (countPerFace < 1) {\n continue;\n }\n const faceID0 = this._vertexData.indices[this._currentFaceIndex * 3];\n const faceID1 = this._vertexData.indices[this._currentFaceIndex * 3 + 1];\n const faceID2 = this._vertexData.indices[this._currentFaceIndex * 3 + 2];\n // Extract face vertices\n this._vertex0.fromArray(this._vertexData.positions, faceID0 * 3);\n this._vertex1.fromArray(this._vertexData.positions, faceID1 * 3);\n this._vertex2.fromArray(this._vertexData.positions, faceID2 * 3);\n if (this._vertexData.uvs) {\n this._uv0.fromArray(this._vertexData.uvs, faceID0 * 2);\n this._uv1.fromArray(this._vertexData.uvs, faceID1 * 2);\n this._uv2.fromArray(this._vertexData.uvs, faceID2 * 2);\n }\n for (let faceDispatchCount = 0; faceDispatchCount < countPerFace; faceDispatchCount++) {\n if (totalDone >= instanceCount) {\n break;\n }\n // Get random point on face\n let x = Math.random();\n let y = Math.random();\n if (x > y) {\n const temp = x;\n x = y;\n y = temp;\n }\n const s = x;\n const t = y - x;\n const u = 1 - s - t;\n this._currentPosition.set(s * this._vertex0.x + t * this._vertex1.x + u * this._vertex2.x, s * this._vertex0.y + t * this._vertex1.y + u * this._vertex2.y, s * this._vertex0.z + t * this._vertex1.z + u * this._vertex2.z);\n if (this._vertexData.uvs) {\n this._currentUV.set(s * this._uv0.x + t * this._uv1.x + u * this._uv2.x, s * this._uv0.y + t * this._uv1.y + u * this._uv2.y);\n }\n // Clone the instance\n instanceGeometry = this.instance.getConnectedValue(state);\n if (!instanceGeometry || !instanceGeometry.positions || instanceGeometry.positions.length === 0) {\n accumulatedCount -= instancePerFace;\n continue;\n }\n const clone = instanceGeometry.clone();\n if (this.matrix.isConnected) {\n const transform = this.matrix.getConnectedValue(state);\n state._instantiateWithPositionAndMatrix(clone, this._currentPosition, transform, additionalVertexData);\n }\n else {\n const scaling = state.adaptInput(this.scaling, NodeGeometryBlockConnectionPointTypes.Vector3, Vector3.OneReadOnly);\n const rotation = this.rotation.getConnectedValue(state) || Vector3.ZeroReadOnly;\n state._instantiate(clone, this._currentPosition, rotation, scaling, additionalVertexData);\n }\n totalDone++;\n this._currentLoopIndex++;\n }\n }\n // Merge\n if (additionalVertexData.length) {\n if (additionalVertexData.length === 1) {\n this._vertexData = additionalVertexData[0];\n }\n else {\n // We do not merge the main one as user can use a merge node if wanted\n const main = additionalVertexData.splice(0, 1)[0];\n this._vertexData = main.merge(additionalVertexData, true, false, true, true);\n }\n }\n state.restoreExecutionContext();\n state.restoreInstancingContext();\n state.restoreGeometryContext();\n return this._vertexData;\n };\n // Storage\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { notifiers: { rebuild: true } })\n], InstantiateOnFacesBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.InstantiateOnFacesBlock\", InstantiateOnFacesBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Vector3 } from \"../../../../Maths/math.vector.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { Ray } from \"../../../../Culling/ray.js\";\nimport { extractMinAndMax } from \"../../../../Maths/math.functions.js\";\n/**\n * Block used to instance geometry inside a geometry\n */\nexport class InstantiateOnVolumeBlock extends NodeGeometryBlock {\n /**\n * Create a new InstantiateOnVolumeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._currentPosition = new Vector3();\n this._vertex0 = new Vector3();\n this._vertex1 = new Vector3();\n this._vertex2 = new Vector3();\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n /**\n * Gets or sets a boolean indicating that a grid pattern should be used\n */\n this.gridMode = false;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"instance\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"count\", NodeGeometryBlockConnectionPointTypes.Int, true, 256);\n this.registerInput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix, true);\n this.registerInput(\"rotation\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerInput(\"scaling\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.One());\n this.registerInput(\"gridSize\", NodeGeometryBlockConnectionPointTypes.Int, true, 10);\n this.scaling.acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current instance index in the current flow\n * @returns the current index\n */\n getInstanceIndex() {\n return this._currentLoopIndex;\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return 0;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentLoopIndex;\n }\n /**\n * Gets the value associated with a contextual positions\n * @returns the value associated with the source\n */\n getOverridePositionsContextualValue() {\n return this._currentPosition;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateOnVolumeBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the instance input component\n */\n get instance() {\n return this._inputs[1];\n }\n /**\n * Gets the count input component\n */\n get count() {\n return this._inputs[2];\n }\n /**\n * Gets the matrix input component\n */\n get matrix() {\n return this._inputs[3];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[4];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[5];\n }\n /**\n * Gets the grid size input component\n */\n get gridSize() {\n return this._inputs[6];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _getValueOnGrid(step, size, min, max) {\n const cellSize = (max - min) / size;\n return min + cellSize / 2 + step * cellSize;\n }\n _getIndexinGrid(x, y, z, size) {\n return x + y * size + z * size * size;\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n state.pushInstancingContext(this);\n this._vertexData = this.geometry.getConnectedValue(state);\n state.pushGeometryContext(this._vertexData);\n if (!this._vertexData || !this._vertexData.positions || !this._vertexData.indices || !this.instance.isConnected) {\n state.restoreExecutionContext();\n state.restoreInstancingContext();\n state.restoreGeometryContext();\n this.output._storedValue = null;\n return;\n }\n // Processing\n let instanceGeometry = null;\n const instanceCount = this.count.getConnectedValue(state);\n const additionalVertexData = [];\n const boundingInfo = extractMinAndMax(this._vertexData.positions, 0, this._vertexData.positions.length / 3);\n const min = boundingInfo.minimum;\n const max = boundingInfo.maximum;\n const direction = new Vector3(0.5, 0.8, 0.2);\n const faceCount = this._vertexData.indices.length / 3;\n const gridSize = this.gridSize.getConnectedValue(state);\n this._currentLoopIndex = 0;\n let candidatesCells;\n if (this.gridMode) {\n candidatesCells = [];\n // Generates the list of candidates cells\n for (let index = 0; index < gridSize * gridSize * gridSize; index++) {\n candidatesCells[index] = false;\n }\n }\n for (let index = 0; index < instanceCount; index++) {\n if (this.gridMode) {\n // Get a random cell\n let cellX = Math.floor(Math.random() * gridSize);\n let cellY = Math.floor(Math.random() * gridSize);\n let cellZ = Math.floor(Math.random() * gridSize);\n let cellIndex = this._getIndexinGrid(cellX, cellY, cellZ, gridSize);\n if (candidatesCells[cellIndex]) {\n // Find the first one that is free\n let found = false;\n for (let candidateIndex = 0; candidateIndex < gridSize * gridSize * gridSize; candidateIndex++) {\n if (!candidatesCells[candidateIndex]) {\n cellZ = Math.floor(candidateIndex / (gridSize * gridSize));\n cellY = Math.floor((candidateIndex - cellZ * gridSize * gridSize) / gridSize);\n cellX = candidateIndex - cellZ * gridSize * gridSize - cellY * gridSize;\n cellIndex = this._getIndexinGrid(cellX, cellY, cellZ, gridSize);\n found = true;\n break;\n }\n }\n if (!found) {\n // No more free cells\n break;\n }\n }\n if (!candidatesCells[cellIndex]) {\n // Cell is free\n const x = this._getValueOnGrid(cellX, gridSize, min.x, max.x);\n const y = this._getValueOnGrid(cellY, gridSize, min.y, max.y);\n const z = this._getValueOnGrid(cellZ, gridSize, min.z, max.z);\n this._currentPosition.set(x, y, z);\n candidatesCells[cellIndex] = true;\n }\n }\n else {\n this._currentPosition.set(Math.random() * (max.x - min.x) + min.x, Math.random() * (max.y - min.y) + min.y, Math.random() * (max.z - min.z) + min.z);\n }\n // Cast a ray from the random point in an arbitrary direction\n const ray = new Ray(this._currentPosition, direction);\n let intersectionCount = 0;\n for (let currentFaceIndex = 0; currentFaceIndex < faceCount; currentFaceIndex++) {\n // Extract face vertices\n this._vertex0.fromArray(this._vertexData.positions, this._vertexData.indices[currentFaceIndex * 3] * 3);\n this._vertex1.fromArray(this._vertexData.positions, this._vertexData.indices[currentFaceIndex * 3 + 1] * 3);\n this._vertex2.fromArray(this._vertexData.positions, this._vertexData.indices[currentFaceIndex * 3 + 2] * 3);\n const currentIntersectInfo = ray.intersectsTriangle(this._vertex0, this._vertex1, this._vertex2);\n if (currentIntersectInfo && currentIntersectInfo.distance > 0) {\n intersectionCount++;\n }\n }\n if (intersectionCount % 2 === 0) {\n // We are outside, try again\n index--;\n continue;\n }\n // Clone the instance\n instanceGeometry = this.instance.getConnectedValue(state);\n if (!instanceGeometry || !instanceGeometry.positions || instanceGeometry.positions.length === 0) {\n continue;\n }\n const clone = instanceGeometry.clone();\n if (this.matrix.isConnected) {\n const transform = this.matrix.getConnectedValue(state);\n state._instantiateWithPositionAndMatrix(clone, this._currentPosition, transform, additionalVertexData);\n }\n else {\n const scaling = state.adaptInput(this.scaling, NodeGeometryBlockConnectionPointTypes.Vector3, Vector3.OneReadOnly);\n const rotation = this.rotation.getConnectedValue(state) || Vector3.ZeroReadOnly;\n state._instantiate(clone, this._currentPosition, rotation, scaling, additionalVertexData);\n }\n this._currentLoopIndex++;\n }\n // Merge\n if (additionalVertexData.length) {\n if (additionalVertexData.length === 1) {\n this._vertexData = additionalVertexData[0];\n }\n else {\n // We do not merge the main one as user can use a merge node if wanted\n const main = additionalVertexData.splice(0, 1)[0];\n this._vertexData = main.merge(additionalVertexData, true, false, true, true);\n }\n }\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n state.restoreInstancingContext();\n return this._vertexData;\n };\n // Storage\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n codeString += `${this._codeVariableName}.gridMode = ${this.gridMode ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n serializationObject.gridMode = this.gridMode;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n if (serializationObject.gridMode !== undefined) {\n this.gridMode = serializationObject.gridMode;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { notifiers: { rebuild: true } })\n], InstantiateOnVolumeBlock.prototype, \"evaluateContext\", void 0);\n__decorate([\n editableInPropertyPage(\"Grid mode\", 0 /* PropertyTypeForEdition.Boolean */, \"MODES\", { notifiers: { rebuild: true } })\n], InstantiateOnVolumeBlock.prototype, \"gridMode\", void 0);\nRegisterClass(\"BABYLON.InstantiateOnVolumeBlock\", InstantiateOnVolumeBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Block used as a base for InstantiateXXX blocks\n */\nexport class InstantiateBaseBlock extends NodeGeometryBlock {\n /**\n * Create a new InstantiateBaseBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"instance\", NodeGeometryBlockConnectionPointTypes.Geometry, true);\n this.registerInput(\"count\", NodeGeometryBlockConnectionPointTypes.Int, true, 1);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current instance index in the current flow\n * @returns the current index\n */\n getInstanceIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateBaseBlock\";\n }\n /**\n * Gets the instance input component\n */\n get instance() {\n return this._inputs[0];\n }\n /**\n * Gets the count input component\n */\n get count() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], InstantiateBaseBlock.prototype, \"evaluateContext\", void 0);\n","import { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Vector3 } from \"../../../../Maths/math.vector.js\";\nimport { InstantiateBaseBlock } from \"./instantiateBaseBlock.js\";\n/**\n * Block used to instantiate a geometry inside a loop\n */\nexport class InstantiateBlock extends InstantiateBaseBlock {\n /**\n * Create a new InstantiateBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"matrix\", NodeGeometryBlockConnectionPointTypes.Matrix, true);\n this.registerInput(\"position\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerInput(\"rotation\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerInput(\"scaling\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.One());\n this.scaling.acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current instance index in the current flow\n * @returns the current index\n */\n getInstanceIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateBlock\";\n }\n /**\n * Gets the matrix input component\n */\n get matrix() {\n return this._inputs[2];\n }\n /**\n * Gets the position input component\n */\n get position() {\n return this._inputs[3];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[4];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[5];\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n state.pushInstancingContext(this);\n // Processing\n const iterationCount = this.count.getConnectedValue(state);\n const additionalVertexData = [];\n for (this._currentIndex = 0; this._currentIndex < iterationCount; this._currentIndex++) {\n const instanceGeometry = this.instance.getConnectedValue(state);\n if (!instanceGeometry || !instanceGeometry.positions || instanceGeometry.positions.length === 0) {\n continue;\n }\n // Clone the instance\n const clone = instanceGeometry.clone();\n // Transform\n if (this.matrix.isConnected) {\n const transform = this.matrix.getConnectedValue(state);\n state._instantiateWithMatrix(clone, transform, additionalVertexData);\n }\n else {\n const position = this.position.getConnectedValue(state) || Vector3.ZeroReadOnly;\n const scaling = state.adaptInput(this.scaling, NodeGeometryBlockConnectionPointTypes.Vector3, Vector3.OneReadOnly);\n const rotation = this.rotation.getConnectedValue(state) || Vector3.ZeroReadOnly;\n state._instantiate(clone, position, rotation, scaling, additionalVertexData);\n }\n }\n // Merge\n if (additionalVertexData.length) {\n if (additionalVertexData.length === 1) {\n this._vertexData = additionalVertexData[0];\n }\n else {\n // We do not merge the main one as user can use a merge node if wanted\n const main = additionalVertexData.splice(0, 1)[0];\n this._vertexData = main.merge(additionalVertexData, true, false, true, true);\n }\n }\n state.restoreExecutionContext();\n state.restoreInstancingContext();\n return this._vertexData;\n };\n // Storage\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n}\nRegisterClass(\"BABYLON.InstantiateBlock\", InstantiateBlock);\n","import { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Matrix, Quaternion, Vector3 } from \"../../../../Maths/math.vector.js\";\nimport { InstantiateBaseBlock } from \"./instantiateBaseBlock.js\";\n/**\n * Block used to clone geometry along a line\n */\nexport class InstantiateLinearBlock extends InstantiateBaseBlock {\n /**\n * Create a new Instantiate Linear Block\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n // Direction is magnitude per step\n this.registerInput(\"direction\", NodeGeometryBlockConnectionPointTypes.Vector3, true, new Vector3(1, 0, 0));\n // Rotation is magnitude per step\n this.registerInput(\"rotation\", NodeGeometryBlockConnectionPointTypes.Vector3, true, new Vector3(0, 0, 0));\n // Scaling is magnitude per step\n this.registerInput(\"scaling\", NodeGeometryBlockConnectionPointTypes.Vector3, true, new Vector3(0, 0, 0));\n this.scaling.acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateLinearBlock\";\n }\n /**\n * Gets the direction input component\n */\n get direction() {\n return this._inputs[2];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[3];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[4];\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n state.pushInstancingContext(this);\n const iterationCount = this.count.getConnectedValue(state);\n const additionalVertexData = [];\n const transformMatrix = Matrix.Identity();\n const transformOffset = Vector3.Zero();\n const rotationOffset = Vector3.Zero();\n const scaleOffset = Vector3.Zero();\n for (this._currentIndex = 0; this._currentIndex < iterationCount; this._currentIndex++) {\n const instanceGeometry = this.instance.getConnectedValue(state);\n if (!instanceGeometry || !instanceGeometry.positions || instanceGeometry.positions.length === 0) {\n continue;\n }\n // Clone the instance\n const clone = instanceGeometry.clone();\n const direction = this.direction.getConnectedValue(state);\n const rotation = this.rotation.getConnectedValue(state);\n const scale = state.adaptInput(this.scaling, NodeGeometryBlockConnectionPointTypes.Vector3, Vector3.OneReadOnly);\n transformOffset.copyFrom(direction.clone().scale(this._currentIndex));\n rotationOffset.copyFrom(rotation.clone().scale(this._currentIndex));\n scaleOffset.copyFrom(scale.clone().scale(this._currentIndex));\n scaleOffset.addInPlaceFromFloats(1, 1, 1);\n Matrix.ComposeToRef(scaleOffset, Quaternion.FromEulerAngles(rotationOffset.x, rotationOffset.y, rotationOffset.z), transformOffset, transformMatrix);\n state._instantiateWithMatrix(clone, transformMatrix, additionalVertexData);\n }\n // Merge\n if (additionalVertexData.length) {\n if (additionalVertexData.length === 1) {\n this._vertexData = additionalVertexData[0];\n }\n else {\n // We do not merge the main one as user can use a merge node if wanted\n const main = additionalVertexData.splice(0, 1)[0];\n this._vertexData = main.merge(additionalVertexData, true, false, true, true);\n }\n }\n state.restoreExecutionContext();\n state.restoreInstancingContext();\n // Storage\n return this._vertexData;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n}\nRegisterClass(\"BABYLON.InstantiateLinearBlock\", InstantiateLinearBlock);\n","import { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Matrix, Quaternion, Vector3 } from \"../../../../Maths/math.vector.js\";\nimport { InstantiateBaseBlock } from \"./instantiateBaseBlock.js\";\n/**\n * Block used to clone geometry in a radial shape\n */\nexport class InstantiateRadialBlock extends InstantiateBaseBlock {\n /**\n * Create a new InstantiateRadialBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"radius\", NodeGeometryBlockConnectionPointTypes.Int, true, 0, 0);\n // Angle start and end\n this.registerInput(\"angleStart\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerInput(\"angleEnd\", NodeGeometryBlockConnectionPointTypes.Float, true, Math.PI * 2);\n // Transform offset\n this.registerInput(\"transform\", NodeGeometryBlockConnectionPointTypes.Vector3, true, new Vector3(0, 0, 0));\n // Rotation is magnitude per step\n this.registerInput(\"rotation\", NodeGeometryBlockConnectionPointTypes.Vector3, true, new Vector3(0, 0, 0));\n // Scale is magnitude per step\n this.registerInput(\"scaling\", NodeGeometryBlockConnectionPointTypes.Vector3, true, new Vector3(0, 0, 0));\n this.scaling.acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"InstantiateRadialBlock\";\n }\n /**\n * Gets the direction input component\n */\n get radius() {\n return this._inputs[2];\n }\n /**\n * Gets the direction input component\n */\n get angleStart() {\n return this._inputs[3];\n }\n /**\n * Gets the direction input component\n */\n get angleEnd() {\n return this._inputs[4];\n }\n /**\n * Gets the transform input component\n */\n get transform() {\n return this._inputs[5];\n }\n /**\n * Gets the rotation input component\n */\n get rotation() {\n return this._inputs[6];\n }\n /**\n * Gets the scaling input component\n */\n get scaling() {\n return this._inputs[7];\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n state.pushInstancingContext(this);\n const iterationCount = this.count.getConnectedValue(state);\n const additionalVertexData = [];\n const rotMatrix = Matrix.Identity();\n const radiusMatrix = Matrix.Identity();\n const transformMatrix = Matrix.Identity();\n const transformOffset = Vector3.Zero();\n const rotationOffset = Vector3.Zero();\n const scaleOffset = Vector3.Zero();\n for (this._currentIndex = 0; this._currentIndex < iterationCount; this._currentIndex++) {\n const instanceGeometry = this.instance.getConnectedValue(state);\n if (!instanceGeometry || !instanceGeometry.positions || instanceGeometry.positions.length === 0) {\n continue;\n }\n // Clone the instance\n const clone = instanceGeometry.clone();\n const radius = this.radius.getConnectedValue(state);\n const angleStart = this.angleStart.getConnectedValue(state);\n const angleEnd = this.angleEnd.getConnectedValue(state);\n const transform = this.transform.getConnectedValue(state);\n const rotation = this.rotation.getConnectedValue(state);\n const scale = state.adaptInput(this.scaling, NodeGeometryBlockConnectionPointTypes.Vector3, Vector3.OneReadOnly);\n // Define arc size\n const pieSlice = angleEnd - angleStart;\n const rStep = pieSlice / iterationCount;\n const angle = angleStart + rStep * this._currentIndex;\n const angleQuat = Quaternion.FromEulerAngles(0, angle, 0);\n // Get local transforms\n transformOffset.copyFrom(transform.clone().scale(this._currentIndex));\n rotationOffset.copyFrom(rotation.clone().scale(this._currentIndex));\n scaleOffset.copyFrom(scale.clone().scale(this._currentIndex));\n scaleOffset.addInPlaceFromFloats(1, 1, 1);\n // Compose (rotMatrix x radius x scale x angle x user transform)\n Matrix.RotationYawPitchRollToRef(rotationOffset.y, rotationOffset.x, rotationOffset.z, rotMatrix);\n radiusMatrix.setTranslationFromFloats(0, 0, radius);\n Matrix.ComposeToRef(scaleOffset, angleQuat, transformOffset, transformMatrix);\n rotMatrix.multiplyToRef(radiusMatrix, radiusMatrix);\n radiusMatrix.multiplyToRef(transformMatrix, transformMatrix);\n state._instantiateWithMatrix(clone, transformMatrix, additionalVertexData);\n }\n // Merge\n if (additionalVertexData.length) {\n if (additionalVertexData.length === 1) {\n this._vertexData = additionalVertexData[0];\n }\n else {\n // We do not merge the main one as user can use a merge node if wanted\n const main = additionalVertexData.splice(0, 1)[0];\n this._vertexData = main.merge(additionalVertexData, true, false, true, true);\n }\n }\n // Storage\n state.restoreExecutionContext();\n state.restoreInstancingContext();\n return this._vertexData;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n}\nRegisterClass(\"BABYLON.InstantiateRadialBlock\", InstantiateRadialBlock);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Defines a block used to convert from int to float\n */\nexport class IntFloatConverterBlock extends NodeGeometryBlock {\n /**\n * Create a new IntFloatConverterBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"float \", NodeGeometryBlockConnectionPointTypes.Float, true);\n this.registerInput(\"int \", NodeGeometryBlockConnectionPointTypes.Int, true);\n this.registerOutput(\"float\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"int\", NodeGeometryBlockConnectionPointTypes.Int);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"IntFloatConverterBlock\";\n }\n /**\n * Gets the float input component\n */\n get floatIn() {\n return this._inputs[0];\n }\n /**\n * Gets the int input component\n */\n get intIn() {\n return this._inputs[1];\n }\n /**\n * Gets the float output component\n */\n get floatOut() {\n return this._outputs[0];\n }\n /**\n * Gets the int output component\n */\n get intOut() {\n return this._outputs[1];\n }\n _inputRename(name) {\n if (name === \"float \") {\n return \"floatIn\";\n }\n if (name === \"int \") {\n return \"intIn\";\n }\n return name;\n }\n _buildBlock() {\n this.floatOut._storedFunction = (state) => {\n if (this.floatIn.isConnected) {\n return this.floatIn.getConnectedValue(state);\n }\n if (this.intIn.isConnected) {\n return this.intIn.getConnectedValue(state);\n }\n return 0;\n };\n this.intOut._storedFunction = (state) => {\n if (this.floatIn.isConnected) {\n return Math.floor(this.floatIn.getConnectedValue(state));\n }\n if (this.intIn.isConnected) {\n return Math.floor(this.intIn.getConnectedValue(state));\n }\n return 0;\n };\n }\n}\nRegisterClass(\"BABYLON.IntFloatConverterBlock\", IntFloatConverterBlock);\n","import { Vector2ToFixed, Vector3ToFixed, Vector4ToFixed } from \"../../../Maths/math.vector.functions.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Defines a block used to debug values going through it\n */\nexport class DebugBlock extends NodeGeometryBlock {\n /**\n * Create a new DebugBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets the log entries\n */\n this.log = [];\n this._isDebug = true;\n this.registerInput(\"input\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the time spent to build this block (in ms)\n */\n get buildExecutionTime() {\n return -1;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"DebugBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n if (!this.input.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n this.log = [];\n const func = (state) => {\n const input = this.input.getConnectedValue(state);\n if (input === null || input === undefined) {\n this.log.push([\"null\", \"\"]);\n return input;\n }\n switch (this.input.type) {\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n this.log.push([Vector2ToFixed(input, 4), input.toString()]);\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n this.log.push([Vector3ToFixed(input, 4), input.toString()]);\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n this.log.push([Vector4ToFixed(input, 4), input.toString()]);\n break;\n default:\n this.log.push([input.toString(), input.toString()]);\n break;\n }\n return input;\n };\n if (this.output.isConnected) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedValue = func(state);\n }\n }\n}\nRegisterClass(\"BABYLON.DebugBlock\", DebugBlock);\n","import { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\n/**\n * Block used to get information about a geometry\n */\nexport class GeometryInfoBlock extends NodeGeometryBlock {\n /**\n * Create a new GeometryInfoBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerOutput(\"id\", NodeGeometryBlockConnectionPointTypes.Int);\n this.registerOutput(\"collectionId\", NodeGeometryBlockConnectionPointTypes.Int);\n this.registerOutput(\"verticesCount\", NodeGeometryBlockConnectionPointTypes.Int);\n this.registerOutput(\"facesCount\", NodeGeometryBlockConnectionPointTypes.Int);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryInfoBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n /**\n * Gets the id output component\n */\n get id() {\n return this._outputs[1];\n }\n /**\n * Gets the collectionId output component\n */\n get collectionId() {\n return this._outputs[2];\n }\n /**\n * Gets the verticesCount output component\n */\n get verticesCount() {\n return this._outputs[3];\n }\n /**\n * Gets the facesCount output component\n */\n get facesCount() {\n return this._outputs[4];\n }\n _buildBlock() {\n if (!this.geometry.isConnected) {\n this.id._storedValue = 0;\n this.collectionId._storedValue = 0;\n this.verticesCount._storedValue = 0;\n this.facesCount._storedValue = 0;\n this.output._storedValue = 0;\n this.id._storedFunction = null;\n this.collectionId._storedFunction = null;\n this.verticesCount._storedFunction = null;\n this.facesCount._storedFunction = null;\n this.output._storedFunction = null;\n return;\n }\n this.output._storedFunction = (state) => {\n this._currentVertexData = this.geometry.getConnectedValue(state);\n return this._currentVertexData;\n };\n this.id._storedFunction = (state) => {\n this._currentVertexData = this._currentVertexData || this.geometry.getConnectedValue(state);\n return this._currentVertexData.uniqueId;\n };\n this.collectionId._storedFunction = (state) => {\n this._currentVertexData = this._currentVertexData || this.geometry.getConnectedValue(state);\n return this._currentVertexData.metadata ? this._currentVertexData.metadata.collectionId : 0;\n };\n this.verticesCount._storedFunction = (state) => {\n this._currentVertexData = this._currentVertexData || this.geometry.getConnectedValue(state);\n return this._currentVertexData.positions ? this._currentVertexData.positions.length / 3 : 0;\n };\n this.facesCount._storedFunction = (state) => {\n this._currentVertexData = this._currentVertexData || this.geometry.getConnectedValue(state);\n return this._currentVertexData.indices ? this._currentVertexData.indices.length / 3 : 0;\n };\n }\n}\nRegisterClass(\"BABYLON.GeometryInfoBlock\", GeometryInfoBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\nimport { Vector2, Vector3 } from \"../../../Maths/math.vector.js\";\n/**\n * Type of mappings supported by the mapping block\n */\nexport var MappingTypes;\n(function (MappingTypes) {\n /** Spherical */\n MappingTypes[MappingTypes[\"Spherical\"] = 0] = \"Spherical\";\n /** Cylindrical */\n MappingTypes[MappingTypes[\"Cylindrical\"] = 1] = \"Cylindrical\";\n /** Cubic */\n MappingTypes[MappingTypes[\"Cubic\"] = 2] = \"Cubic\";\n})(MappingTypes || (MappingTypes = {}));\n/**\n * Block used to generate UV coordinates\n */\nexport class MappingBlock extends NodeGeometryBlock {\n /**\n * Create a new MappingBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets the mapping type used by the block\n */\n this.mapping = MappingTypes.Spherical;\n this.registerInput(\"position\", NodeGeometryBlockConnectionPointTypes.Vector3);\n this.registerInput(\"normal\", NodeGeometryBlockConnectionPointTypes.Vector3);\n this.registerInput(\"center\", NodeGeometryBlockConnectionPointTypes.Vector3, true, Vector3.Zero());\n this.registerOutput(\"uv\", NodeGeometryBlockConnectionPointTypes.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MappingBlock\";\n }\n /**\n * Gets the position input component\n */\n get position() {\n return this._inputs[0];\n }\n /**\n * Gets the normal input component\n */\n get normal() {\n return this._inputs[1];\n }\n /**\n * Gets the center input component\n */\n get center() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get uv() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.position.isConnected) {\n this.uv._storedFunction = null;\n this.uv._storedValue = null;\n return;\n }\n const tempDirection = Vector3.Zero();\n const func = (state) => {\n const position = this.position.getConnectedValue(state) || Vector3.Zero();\n const normal = this.normal.getConnectedValue(state) || Vector3.Zero();\n const center = this.center.getConnectedValue(state);\n const uv = Vector2.Zero();\n switch (this.mapping) {\n case MappingTypes.Spherical: {\n position.subtractToRef(center, tempDirection);\n const len = tempDirection.length();\n if (len > 0) {\n uv.x = Math.acos(tempDirection.y / len) / Math.PI;\n if (tempDirection.x !== 0 || tempDirection.z !== 0) {\n uv.y = Math.atan2(tempDirection.x, tempDirection.z) / (Math.PI * 2);\n }\n }\n break;\n }\n case MappingTypes.Cylindrical: {\n position.subtractToRef(center, tempDirection);\n const len = tempDirection.length();\n if (len > 0) {\n uv.x = Math.atan2(tempDirection.x / len, tempDirection.z / len) / (Math.PI * 2);\n uv.y = (tempDirection.y + 1.0) / 2.0;\n }\n break;\n }\n case MappingTypes.Cubic: {\n // Find the largest component of the normal vector\n const absX = Math.abs(normal.x);\n const absY = Math.abs(normal.y);\n const absZ = Math.abs(normal.z);\n const maxDim = Math.max(Math.abs(position.x), Math.abs(position.y), Math.abs(position.z));\n let u = 0, v = 0;\n if (absX >= absY && absX >= absZ) {\n u = position.y / maxDim - center.y;\n v = position.z / maxDim - center.z;\n }\n else if (absY >= absX && absY >= absZ) {\n u = position.x / maxDim - center.x;\n v = position.z / maxDim - center.z;\n }\n else {\n u = position.x / maxDim - center.x;\n v = position.y / maxDim - center.y;\n }\n uv.x = (u + 1) / 2;\n uv.y = (v + 1) / 2;\n }\n }\n return uv;\n };\n this.uv._storedFunction = (state) => {\n return func(state);\n };\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.mapping = BABYLON.MappingTypes.${MappingTypes[this.mapping]};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.mapping = this.mapping;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.mapping = serializationObject.mapping;\n }\n}\n__decorate([\n editableInPropertyPage(\"Mapping\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"Spherical\", value: MappingTypes.Spherical },\n { label: \"Cylindrical\", value: MappingTypes.Cylindrical },\n { label: \"Cubic\", value: MappingTypes.Cubic },\n ],\n })\n], MappingBlock.prototype, \"mapping\", void 0);\nRegisterClass(\"BABYLON.MappingBlock\", MappingBlock);\n","import { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\n/**\n * Block used to compose two matrices\n */\nexport class MatrixComposeBlock extends NodeGeometryBlock {\n /**\n * Create a new MatrixComposeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"matrix0\", NodeGeometryBlockConnectionPointTypes.Matrix);\n this.registerInput(\"matrix1\", NodeGeometryBlockConnectionPointTypes.Matrix);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"MatrixComposeBlock\";\n }\n /**\n * Gets the matrix0 input component\n */\n get matrix0() {\n return this._inputs[0];\n }\n /**\n * Gets the matrix1 input component\n */\n get matrix1() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n this.output._storedFunction = (state) => {\n if (!this.matrix0.isConnected || !this.matrix1.isConnected) {\n return null;\n }\n const matrix0 = this.matrix0.getConnectedValue(state);\n const matrix1 = this.matrix1.getConnectedValue(state);\n if (!matrix0 || !matrix1) {\n return null;\n }\n return matrix0.multiply(matrix1);\n };\n }\n}\nRegisterClass(\"BABYLON.MatrixComposeBlock\", MatrixComposeBlock);\n","import { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\n/**\n * Defines a block used to teleport a value to an endpoint\n */\nexport class TeleportInBlock extends NodeGeometryBlock {\n /** Gets the list of attached endpoints */\n get endpoints() {\n return this._endpoints;\n }\n /**\n * Create a new TeleportInBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._endpoints = [];\n this._isTeleportIn = true;\n this.registerInput(\"input\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TeleportInBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n _dumpCode(uniqueNames, alreadyDumped) {\n let codeString = super._dumpCode(uniqueNames, alreadyDumped);\n for (const endpoint of this.endpoints) {\n if (alreadyDumped.indexOf(endpoint) === -1) {\n codeString += endpoint._dumpCode(uniqueNames, alreadyDumped);\n }\n }\n return codeString;\n }\n /**\n * Checks if the current block is an ancestor of a given type\n * @param type defines the potential type to check\n * @returns true if block is a descendant\n */\n isAnAncestorOfType(type) {\n if (this.getClassName() === type) {\n return true;\n }\n for (const endpoint of this.endpoints) {\n if (endpoint.isAnAncestorOfType(type)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Checks if the current block is an ancestor of a given block\n * @param block defines the potential descendant block to check\n * @returns true if block is a descendant\n */\n isAnAncestorOf(block) {\n for (const endpoint of this.endpoints) {\n if (endpoint === block) {\n return true;\n }\n if (endpoint.isAnAncestorOf(block)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Get the first descendant using a predicate\n * @param predicate defines the predicate to check\n * @returns descendant or null if none found\n */\n getDescendantOfPredicate(predicate) {\n if (predicate(this)) {\n return this;\n }\n for (const endpoint of this.endpoints) {\n const descendant = endpoint.getDescendantOfPredicate(predicate);\n if (descendant) {\n return descendant;\n }\n }\n return null;\n }\n /**\n * Add an enpoint to this block\n * @param endpoint define the endpoint to attach to\n */\n attachToEndpoint(endpoint) {\n endpoint.detach();\n this._endpoints.push(endpoint);\n endpoint._entryPoint = this;\n endpoint._outputs[0]._typeConnectionSource = this._inputs[0];\n endpoint._tempEntryPointUniqueId = null;\n endpoint.name = \"> \" + this.name;\n }\n /**\n * Remove enpoint from this block\n * @param endpoint define the endpoint to remove\n */\n detachFromEndpoint(endpoint) {\n const index = this._endpoints.indexOf(endpoint);\n if (index !== -1) {\n this._endpoints.splice(index, 1);\n endpoint._outputs[0]._typeConnectionSource = null;\n endpoint._entryPoint = null;\n }\n }\n _buildBlock() {\n for (const endpoint of this._endpoints) {\n endpoint.output._storedFunction = (state) => {\n return this.input.getConnectedValue(state);\n };\n }\n }\n}\nRegisterClass(\"BABYLON.TeleportInBlock\", TeleportInBlock);\n","import { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\n/**\n * Defines a block used to receive a value from a teleport entry point\n */\nexport class TeleportOutBlock extends NodeGeometryBlock {\n /**\n * Create a new TeleportOutBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /** @internal */\n this._entryPoint = null;\n /** @internal */\n this._tempEntryPointUniqueId = null;\n this._isTeleportOut = true;\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n }\n /**\n * Gets the entry point\n */\n get entryPoint() {\n return this._entryPoint;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"TeleportOutBlock\";\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n /** Detach from entry point */\n detach() {\n if (!this._entryPoint) {\n return;\n }\n this._entryPoint.detachFromEndpoint(this);\n }\n _buildBlock() {\n // Do nothing\n // All work done by the emitter\n }\n _customBuildStep(state) {\n if (this.entryPoint) {\n this.entryPoint.build(state);\n }\n }\n _dumpCode(uniqueNames, alreadyDumped) {\n let codeString = \"\";\n if (this.entryPoint) {\n if (alreadyDumped.indexOf(this.entryPoint) === -1) {\n codeString += this.entryPoint._dumpCode(uniqueNames, alreadyDumped);\n }\n }\n return codeString + super._dumpCode(uniqueNames, alreadyDumped);\n }\n _dumpCodeForOutputConnections(alreadyDumped) {\n let codeString = super._dumpCodeForOutputConnections(alreadyDumped);\n if (this.entryPoint) {\n codeString += this.entryPoint._dumpCodeForOutputConnections(alreadyDumped);\n }\n return codeString;\n }\n /**\n * Clone the current block to a new identical block\n * @returns a copy of the current block\n */\n clone() {\n const clone = super.clone();\n if (this.entryPoint) {\n this.entryPoint.attachToEndpoint(clone);\n }\n return clone;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode();\n if (this.entryPoint) {\n codeString += `${this.entryPoint._codeVariableName}.attachToEndpoint(${this._codeVariableName});\\n`;\n }\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.entryPoint = this.entryPoint?.uniqueId ?? \"\";\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this._tempEntryPointUniqueId = serializationObject.entryPoint;\n }\n}\nRegisterClass(\"BABYLON.TeleportOutBlock\", TeleportOutBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { TextureTools } from \"../../../../Misc/textureTools.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to load texture data\n */\nexport class GeometryTextureBlock extends NodeGeometryBlock {\n /**\n * Gets the texture data\n */\n get textureData() {\n return this._data;\n }\n /**\n * Gets the texture width\n */\n get textureWidth() {\n return this._width;\n }\n /**\n * Gets the texture height\n */\n get textureHeight() {\n return this._height;\n }\n /**\n * Creates a new GeometryTextureBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this._data = null;\n /**\n * Gets or sets a boolean indicating that this block should serialize its cached data\n */\n this.serializedCachedData = false;\n this.registerOutput(\"texture\", NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryTextureBlock\";\n }\n /**\n * Gets the texture component\n */\n get texture() {\n return this._outputs[0];\n }\n _prepareImgToLoadAsync(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n img.onload = () => {\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0);\n const imageData = ctx.getImageData(0, 0, img.width, img.height);\n const pixels = imageData.data;\n const floatArray = new Float32Array(pixels.length);\n for (let i = 0; i < pixels.length; i++) {\n floatArray[i] = pixels[i] / 255.0;\n }\n this._data = floatArray;\n this._width = img.width;\n this._height = img.height;\n resolve();\n };\n img.onerror = () => {\n this._data = null;\n reject();\n };\n img.src = url;\n });\n }\n /**\n * Remove stored data\n */\n cleanData() {\n this._data = null;\n }\n /**\n * Load the texture data\n * @param imageFile defines the file to load data from\n * @returns a promise fulfilled when image data is loaded\n */\n loadTextureFromFileAsync(imageFile) {\n return this._prepareImgToLoadAsync(URL.createObjectURL(imageFile));\n }\n /**\n * Load the texture data\n * @param url defines the url to load data from\n * @returns a promise fulfilled when image data is loaded\n */\n loadTextureFromUrlAsync(url) {\n return this._prepareImgToLoadAsync(url);\n }\n /**\n * Load the texture data\n * @param texture defines the source texture\n * @returns a promise fulfilled when image data is loaded\n */\n extractFromTextureAsync(texture) {\n return new Promise((resolve, reject) => {\n if (!texture.isReady()) {\n texture.onLoadObservable.addOnce(() => {\n return this.extractFromTextureAsync(texture).then(resolve).catch(reject);\n });\n return;\n }\n const size = texture.getSize();\n TextureTools.GetTextureDataAsync(texture, size.width, size.height)\n .then(async (data) => {\n const floatArray = new Float32Array(data.length);\n for (let i = 0; i < data.length; i++) {\n floatArray[i] = data[i] / 255.0;\n }\n this._data = floatArray;\n this._width = size.width;\n this._height = size.height;\n resolve();\n })\n .catch(reject);\n });\n }\n _buildBlock() {\n if (!this._data) {\n this.texture._storedValue = null;\n return;\n }\n const textureData = {\n data: this._data,\n width: this._width,\n height: this._height,\n };\n this.texture._storedValue = textureData;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.width = this._width;\n serializationObject.height = this._height;\n serializationObject.serializedCachedData = this.serializedCachedData;\n if (this._data && this.serializedCachedData) {\n serializationObject.data = Array.from(this._data);\n }\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this._width = serializationObject.width;\n this._height = serializationObject.height;\n if (serializationObject.data) {\n this._data = new Float32Array(serializationObject.data);\n this.serializedCachedData = true;\n }\n else {\n this.serializedCachedData = !!serializationObject.serializedCachedData;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Serialize cached data\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], GeometryTextureBlock.prototype, \"serializedCachedData\", void 0);\nRegisterClass(\"BABYLON.GeometryTextureBlock\", GeometryTextureBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { Vector4 } from \"../../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\n/**\n * Block used to fetch a color from texture data\n */\nexport class GeometryTextureFetchBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryTextureFetchBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating if coordinates should be clamped between 0 and 1\n */\n this.clampCoordinates = true;\n this.registerInput(\"texture\", NodeGeometryBlockConnectionPointTypes.Texture);\n this.registerInput(\"coordinates\", NodeGeometryBlockConnectionPointTypes.Vector2);\n this.registerOutput(\"rgba\", NodeGeometryBlockConnectionPointTypes.Vector4);\n this.registerOutput(\"rgb\", NodeGeometryBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"r\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"g\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"b\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"a\", NodeGeometryBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryTextureFetchBlock\";\n }\n /**\n * Gets the texture component\n */\n get texture() {\n return this.inputs[0];\n }\n /**\n * Gets the coordinates component\n */\n get coordinates() {\n return this.inputs[1];\n }\n /**\n * Gets the rgba component\n */\n get rgba() {\n return this._outputs[0];\n }\n /**\n * Gets the rgb component\n */\n get rgb() {\n return this._outputs[1];\n }\n /**\n * Gets the r component\n */\n get r() {\n return this._outputs[2];\n }\n /**\n * Gets the g component\n */\n get g() {\n return this._outputs[3];\n }\n /**\n * Gets the b component\n */\n get b() {\n return this._outputs[4];\n }\n /**\n * Gets the a component\n */\n get a() {\n return this._outputs[5];\n }\n _repeatClamp(num) {\n if (num >= 0) {\n return num % 1;\n }\n else {\n return 1 - (Math.abs(num) % 1);\n }\n }\n _buildBlock() {\n const func = (state) => {\n const textureData = this.texture.getConnectedValue(state);\n if (!textureData || !textureData.data) {\n return null;\n }\n const uv = this.coordinates.getConnectedValue(state);\n if (!uv) {\n return null;\n }\n const u = this.clampCoordinates ? Math.max(0, Math.min(uv.x, 1.0)) : this._repeatClamp(uv.x);\n const v = this.clampCoordinates ? Math.max(0, Math.min(uv.y, 1.0)) : this._repeatClamp(uv.y);\n const x = Math.floor(u * (textureData.width - 1));\n const y = Math.floor(v * (textureData.height - 1));\n const index = x + textureData.width * y;\n return Vector4.FromArray(textureData.data, index * 4);\n };\n this.rgba._storedFunction = (state) => {\n return func(state);\n };\n this.rgb._storedFunction = (state) => {\n const color = func(state);\n return color ? color.toVector3() : null;\n };\n this.r._storedFunction = (state) => {\n const color = func(state);\n return color ? color.x : null;\n };\n this.g._storedFunction = (state) => {\n const color = func(state);\n return color ? color.y : null;\n };\n this.b._storedFunction = (state) => {\n const color = func(state);\n return color ? color.z : null;\n };\n this.a._storedFunction = (state) => {\n const color = func(state);\n return color ? color.w : null;\n };\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.clampCoordinates = ${this.clampCoordinates};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.clampCoordinates = this.clampCoordinates;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.clampCoordinates = serializationObject.clampCoordinates;\n }\n}\n__decorate([\n editableInPropertyPage(\"Clamp Coordinates\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], GeometryTextureFetchBlock.prototype, \"clampCoordinates\", void 0);\nRegisterClass(\"BABYLON.GeometryTextureFetchBlock\", GeometryTextureFetchBlock);\n","import { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { extractMinAndMax } from \"../../../Maths/math.functions.js\";\n/**\n * Block used to get the bounding info of a geometry\n */\nexport class BoundingBlock extends NodeGeometryBlock {\n /**\n * Create a new BoundingBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerOutput(\"min\", NodeGeometryBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"max\", NodeGeometryBlockConnectionPointTypes.Vector3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"BoundingBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the min output component\n */\n get min() {\n return this._outputs[0];\n }\n /**\n * Gets the max output component\n */\n get max() {\n return this._outputs[1];\n }\n _buildBlock() {\n this.min._storedFunction = (state) => {\n const geometry = this.geometry.getConnectedValue(state);\n if (!geometry) {\n return null;\n }\n const boundingInfo = extractMinAndMax(geometry.positions, 0, geometry.positions.length / 3);\n return boundingInfo.minimum;\n };\n this.max._storedFunction = (state) => {\n const geometry = this.geometry.getConnectedValue(state);\n if (!geometry) {\n return null;\n }\n const boundingInfo = extractMinAndMax(geometry.positions, 0, geometry.positions.length / 3);\n return boundingInfo.maximum;\n };\n }\n}\nRegisterClass(\"BABYLON.BoundingBlock\", BoundingBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\nimport { CSG2, InitializeCSG2Async, IsCSG2Ready } from \"../../csg2.js\";\nimport { CSG } from \"../../csg.js\";\n/**\n * Operations supported by the boolean block\n */\nexport var BooleanGeometryOperations;\n(function (BooleanGeometryOperations) {\n /** Intersect */\n BooleanGeometryOperations[BooleanGeometryOperations[\"Intersect\"] = 0] = \"Intersect\";\n /** Subtract */\n BooleanGeometryOperations[BooleanGeometryOperations[\"Subtract\"] = 1] = \"Subtract\";\n /** Union */\n BooleanGeometryOperations[BooleanGeometryOperations[\"Union\"] = 2] = \"Union\";\n})(BooleanGeometryOperations || (BooleanGeometryOperations = {}));\n/**\n * Block used to apply a boolean operation between 2 geometries\n */\nexport class BooleanGeometryBlock extends NodeGeometryBlock {\n /**\n * @internal\n */\n get _isReadyState() {\n if (IsCSG2Ready()) {\n return null;\n }\n if (!this._csg2LoadingPromise) {\n this._csg2LoadingPromise = InitializeCSG2Async();\n }\n return this._csg2LoadingPromise;\n }\n /**\n * Create a new BooleanGeometryBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = false;\n /**\n * Gets or sets the operation applied by the block\n */\n this.operation = BooleanGeometryOperations.Intersect;\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.useOldCSGEngine = false;\n this.registerInput(\"geometry0\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"geometry1\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Geometry);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"BooleanGeometryBlock\";\n }\n /**\n * Gets the geometry0 input component\n */\n get geometry0() {\n return this._inputs[0];\n }\n /**\n * Gets the geometry1 input component\n */\n get geometry1() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = (state) => {\n const vertexData0 = this.geometry0.getConnectedValue(state);\n const vertexData1 = this.geometry1.getConnectedValue(state);\n if (!vertexData0 || !vertexData1) {\n return null;\n }\n const vertexCount = vertexData0.positions.length / 3;\n // Ensure that all the fields are filled to avoid problems later on in the graph\n if (!vertexData0.normals && vertexData1.normals) {\n vertexData0.normals = new Array(vertexData0.positions.length);\n }\n if (!vertexData1.normals && vertexData0.normals) {\n vertexData1.normals = new Array(vertexData1.positions.length);\n }\n if (!vertexData0.uvs && vertexData1.uvs) {\n vertexData0.uvs = new Array(vertexCount * 2);\n }\n if (!vertexData1.uvs && vertexData0.uvs) {\n vertexData1.uvs = new Array(vertexCount * 2);\n }\n if (!vertexData0.colors && vertexData1.colors) {\n vertexData0.colors = new Array(vertexCount * 4);\n }\n if (!vertexData1.colors && vertexData0.colors) {\n vertexData1.colors = new Array(vertexCount * 4);\n }\n let boolCSG;\n if (this.useOldCSGEngine) {\n const CSG0 = CSG.FromVertexData(vertexData0);\n const CSG1 = CSG.FromVertexData(vertexData1);\n switch (this.operation) {\n case BooleanGeometryOperations.Intersect:\n boolCSG = CSG0.intersect(CSG1);\n break;\n case BooleanGeometryOperations.Subtract:\n boolCSG = CSG0.subtract(CSG1);\n break;\n case BooleanGeometryOperations.Union:\n boolCSG = CSG0.union(CSG1);\n break;\n }\n }\n else {\n const CSG0 = CSG2.FromVertexData(vertexData0);\n const CSG1 = CSG2.FromVertexData(vertexData1);\n switch (this.operation) {\n case BooleanGeometryOperations.Intersect:\n boolCSG = CSG0.intersect(CSG1);\n break;\n case BooleanGeometryOperations.Subtract:\n boolCSG = CSG0.subtract(CSG1);\n break;\n case BooleanGeometryOperations.Union:\n boolCSG = CSG0.add(CSG1);\n break;\n }\n }\n return boolCSG.toVertexData();\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n codeString += `${this._codeVariableName}.operation = BABYLON.BooleanGeometryOperations.${BooleanGeometryOperations[this.operation]};\\n`;\n codeString += `${this._codeVariableName}.useOldCSGEngine = ${this.useOldCSGEngine ? \"true\" : \"false\"};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n serializationObject.operation = this.operation;\n serializationObject.useOldCSGEngine = this.useOldCSGEngine;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.evaluateContext = serializationObject.evaluateContext;\n if (serializationObject.operation) {\n this.operation = serializationObject.operation;\n }\n this.useOldCSGEngine = !!serializationObject.useOldCSGEngine;\n }\n}\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], BooleanGeometryBlock.prototype, \"evaluateContext\", void 0);\n__decorate([\n editableInPropertyPage(\"Operation\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"Intersect\", value: BooleanGeometryOperations.Intersect },\n { label: \"Subtract\", value: BooleanGeometryOperations.Subtract },\n { label: \"Union\", value: BooleanGeometryOperations.Union },\n ],\n })\n], BooleanGeometryBlock.prototype, \"operation\", void 0);\n__decorate([\n editableInPropertyPage(\"Use old CSG engine\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true } })\n], BooleanGeometryBlock.prototype, \"useOldCSGEngine\", void 0);\nRegisterClass(\"BABYLON.BooleanGeometryBlock\", BooleanGeometryBlock);\n","import { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to compute arc tangent of 2 values\n */\nexport class GeometryArcTan2Block extends NodeGeometryBlock {\n /**\n * Creates a new GeometryArcTan2Block\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"x\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"y\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryArcTan2Block\";\n }\n /**\n * Gets the x operand input component\n */\n get x() {\n return this._inputs[0];\n }\n /**\n * Gets the y operand input component\n */\n get y() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.x.isConnected || !this.y.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (x, y) => {\n return Math.atan2(x, y);\n };\n this.output._storedFunction = (state) => {\n const x = this.x.getConnectedValue(state);\n const y = this.y.getConnectedValue(state);\n switch (this.x.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float: {\n return func(x, y);\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n return new Vector2(func(x.x, y.x), func(x.y, y.y));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n return new Vector3(func(x.x, y.x), func(x.y, y.y), func(x.z, y.z));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n return new Vector4(func(x.x, y.x), func(x.y, y.y), func(x.z, y.z), func(x.w, y.w));\n }\n }\n return 0;\n };\n }\n}\nRegisterClass(\"BABYLON.GeometryArcTan2Block\", GeometryArcTan2Block);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\n/**\n * Block used to lerp between 2 values\n */\nexport class GeometryLerpBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryLerpBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"left\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"gradient\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryLerpBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the gradient operand input component\n */\n get gradient() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected || !this.right.isConnected || !this.gradient.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (gradient, left, right) => {\n return (1 - gradient) * left + gradient * right;\n };\n this.output._storedFunction = (state) => {\n const left = this.left.getConnectedValue(state);\n const right = this.right.getConnectedValue(state);\n const gradient = this.gradient.getConnectedValue(state);\n switch (this.left.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float: {\n return func(gradient, left, right);\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n return new Vector2(func(gradient, left.x, right.x), func(gradient, left.y, right.y));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n return new Vector3(func(gradient, left.x, right.x), func(gradient, left.y, right.y), func(gradient, left.z, right.z));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n return new Vector4(func(gradient, left.x, right.x), func(gradient, left.y, right.y), func(gradient, left.z, right.z), func(gradient, left.w, right.w));\n }\n }\n return 0;\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryLerpBlock\", GeometryLerpBlock);\n","import { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to normalize lerp between 2 values\n */\nexport class GeometryNLerpBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryNLerpBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"left\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"gradient\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryNLerpBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the gradient operand input component\n */\n get gradient() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected || !this.right.isConnected || !this.gradient.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (gradient, left, right) => {\n return (1 - gradient) * left + gradient * right;\n };\n this.output._storedFunction = (state) => {\n const left = this.left.getConnectedValue(state);\n const right = this.right.getConnectedValue(state);\n const gradient = this.gradient.getConnectedValue(state);\n switch (this.left.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float: {\n return func(gradient, left, right); // NLerp is really lerp in that case\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n const result = new Vector2(func(gradient, left.x, right.x), func(gradient, left.y, right.y));\n result.normalize();\n return result;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n const result = new Vector3(func(gradient, left.x, right.x), func(gradient, left.y, right.y), func(gradient, left.z, right.z));\n result.normalize();\n return result;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n const result = new Vector4(func(gradient, left.x, right.x), func(gradient, left.y, right.y), func(gradient, left.z, right.z), func(gradient, left.w, right.w));\n result.normalize();\n return result;\n }\n }\n return 0;\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryNLerpBlock\", GeometryNLerpBlock);\n","import { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to step a value\n */\nexport class GeometryStepBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryStepBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"edge\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryStepBlock\";\n }\n /**\n * Gets the value operand input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the edge operand input component\n */\n get edge() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected || !this.edge.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (value, edge) => {\n if (value < edge) {\n return 0;\n }\n return 1;\n };\n this.output._storedFunction = (state) => {\n const source = this.value.getConnectedValue(state);\n const edge = this.edge.getConnectedValue(state);\n switch (this.value.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float: {\n return func(source, edge);\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n return new Vector2(func(source.x, edge), func(source.y, edge));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n return new Vector3(func(source.x, edge), func(source.y, edge), func(source.z, edge));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n return new Vector4(func(source.x, edge), func(source.y, edge), func(source.z, edge), func(source.w, edge));\n }\n }\n return 0;\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryStepBlock\", GeometryStepBlock);\n","import { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to smooth step a value\n */\nexport class GeometrySmoothStepBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometrySmoothStepBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"edge0\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerInput(\"edge1\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometrySmoothStepBlock\";\n }\n /**\n * Gets the value operand input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the first edge operand input component\n */\n get edge0() {\n return this._inputs[1];\n }\n /**\n * Gets the second edge operand input component\n */\n get edge1() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected || !this.edge0.isConnected || !this.edge1.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (value, edge0, edge1) => {\n const x = Math.max(0, Math.min((value - edge0) / (edge1 - edge0), 1));\n // Smoothstep formula: 3x^2 - 2x^3\n return x * x * (3 - 2 * x);\n };\n this.output._storedFunction = (state) => {\n const source = this.value.getConnectedValue(state);\n const edge0 = this.edge0.getConnectedValue(state);\n const edge1 = this.edge1.getConnectedValue(state);\n switch (this.value.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float: {\n return func(source, edge0, edge1);\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n return new Vector2(func(source.x, edge0, edge1), func(source.y, edge0, edge1));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n return new Vector3(func(source.x, edge0, edge1), func(source.y, edge0, edge1), func(source.z, edge0, edge1));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n return new Vector4(func(source.x, edge0, edge1), func(source.y, edge0, edge1), func(source.z, edge0, edge1), func(source.w, edge0, edge1));\n }\n }\n return 0;\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometrySmoothStepBlock\", GeometrySmoothStepBlock);\n","import { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to compute value of one parameter modulo another\n */\nexport class GeometryModBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryModBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"left\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryModBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected || !this.right.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (left, right) => {\n return left - Math.floor(left / right) * right;\n };\n this.output._storedFunction = (state) => {\n const left = this.left.getConnectedValue(state);\n const right = this.right.getConnectedValue(state);\n switch (this.left.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float: {\n return func(left, right);\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n return new Vector2(func(left.x, right.x), func(left.y, right.y));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n return new Vector3(func(left.x, right.x), func(left.y, right.y), func(left.z, right.z));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n return new Vector4(func(left.x, right.x), func(left.y, right.y), func(left.z, right.z), func(left.w, right.w));\n }\n }\n return 0;\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryModBlock\", GeometryModBlock);\n","import { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to get the value of the first parameter raised to the power of the second\n */\nexport class GeometryPowBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryPowBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"power\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryPowBlock\";\n }\n /**\n * Gets the value operand input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the power operand input component\n */\n get power() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected || !this.power.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (value, power) => {\n return Math.pow(value, power);\n };\n this.output._storedFunction = (state) => {\n const source = this.value.getConnectedValue(state);\n const power = this.power.getConnectedValue(state);\n switch (this.value.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float: {\n return func(source, power);\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n return new Vector2(func(source.x, power), func(source.y, power));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n return new Vector3(func(source.x, power), func(source.y, power), func(source.z, power));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n return new Vector4(func(source.x, power), func(source.y, power), func(source.z, power), func(source.w, power));\n }\n }\n return 0;\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryPowBlock\", GeometryPowBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\n/**\n * Block used to clamp a float\n */\nexport class GeometryClampBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryClampBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /** Gets or sets the minimum range */\n this.minimum = 0.0;\n /** Gets or sets the maximum range */\n this.maximum = 1.0;\n this.registerInput(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"min\", NodeGeometryBlockConnectionPointTypes.Float, true);\n this.registerInput(\"max\", NodeGeometryBlockConnectionPointTypes.Float, true);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Geometry);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Texture);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryClampBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the min input component\n */\n get min() {\n return this._inputs[1];\n }\n /**\n * Gets the max input component\n */\n get max() {\n return this._inputs[2];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n const func = (value, min, max) => {\n return Math.max(min, Math.min(value, max));\n };\n this.output._storedFunction = (state) => {\n const value = this.value.getConnectedValue(state);\n const min = this.min.isConnected ? this.min.getConnectedValue(state) : this.minimum;\n const max = this.max.isConnected ? this.max.getConnectedValue(state) : this.maximum;\n switch (this.value.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float: {\n return func(value, min, max);\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n return new Vector2(func(value.x, min, max), func(value.y, min, max));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n return new Vector3(func(value.x, min, max), func(value.y, min, max), func(value.z, min, max));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n return new Vector4(func(value.x, min, max), func(value.y, min, max), func(value.z, min, max), func(value.w, min, max));\n }\n }\n return 0;\n };\n return this;\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.minimum = ${this.minimum};\\n`;\n codeString += `${this._codeVariableName}.maximum = ${this.maximum};\\n`;\n return codeString;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.minimum = this.minimum;\n serializationObject.maximum = this.maximum;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.minimum = serializationObject.minimum;\n this.maximum = serializationObject.maximum;\n }\n}\n__decorate([\n editableInPropertyPage(\"Minimum\", 1 /* PropertyTypeForEdition.Float */, undefined, { embedded: true })\n], GeometryClampBlock.prototype, \"minimum\", void 0);\n__decorate([\n editableInPropertyPage(\"Maximum\", 1 /* PropertyTypeForEdition.Float */, undefined, { embedded: true })\n], GeometryClampBlock.prototype, \"maximum\", void 0);\nRegisterClass(\"BABYLON.GeometryClampBlock\", GeometryClampBlock);\n","import { Vector3 } from \"../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to apply a cross product between 2 vectors\n */\nexport class GeometryCrossBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryCrossBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"left\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Vector3);\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Vector2);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryCrossBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected || !this.right.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n this.output._storedFunction = (state) => {\n const left = this.left.getConnectedValue(state);\n const right = this.right.getConnectedValue(state);\n switch (this.left.type) {\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n return Vector3.Cross(left, right);\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n return Vector3.Cross(left.toVector3(), right.toVector3());\n }\n }\n return 0;\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryCrossBlock\", GeometryCrossBlock);\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { editableInPropertyPage } from \"../../../Decorators/nodeDecorator.js\";\n/**\n * Types of curves supported by the Curve block\n */\nexport var GeometryCurveBlockTypes;\n(function (GeometryCurveBlockTypes) {\n /** EaseInSine */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInSine\"] = 0] = \"EaseInSine\";\n /** EaseOutSine */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseOutSine\"] = 1] = \"EaseOutSine\";\n /** EaseInOutSine */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInOutSine\"] = 2] = \"EaseInOutSine\";\n /** EaseInQuad */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInQuad\"] = 3] = \"EaseInQuad\";\n /** EaseOutQuad */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseOutQuad\"] = 4] = \"EaseOutQuad\";\n /** EaseInOutQuad */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInOutQuad\"] = 5] = \"EaseInOutQuad\";\n /** EaseInCubic */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInCubic\"] = 6] = \"EaseInCubic\";\n /** EaseOutCubic */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseOutCubic\"] = 7] = \"EaseOutCubic\";\n /** EaseInOutCubic */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInOutCubic\"] = 8] = \"EaseInOutCubic\";\n /** EaseInQuart */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInQuart\"] = 9] = \"EaseInQuart\";\n /** EaseOutQuart */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseOutQuart\"] = 10] = \"EaseOutQuart\";\n /** EaseInOutQuart */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInOutQuart\"] = 11] = \"EaseInOutQuart\";\n /** EaseInQuint */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInQuint\"] = 12] = \"EaseInQuint\";\n /** EaseOutQuint */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseOutQuint\"] = 13] = \"EaseOutQuint\";\n /** EaseInOutQuint */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInOutQuint\"] = 14] = \"EaseInOutQuint\";\n /** EaseInExpo */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInExpo\"] = 15] = \"EaseInExpo\";\n /** EaseOutExpo */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseOutExpo\"] = 16] = \"EaseOutExpo\";\n /** EaseInOutExpo */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInOutExpo\"] = 17] = \"EaseInOutExpo\";\n /** EaseInCirc */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInCirc\"] = 18] = \"EaseInCirc\";\n /** EaseOutCirc */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseOutCirc\"] = 19] = \"EaseOutCirc\";\n /** EaseInOutCirc */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInOutCirc\"] = 20] = \"EaseInOutCirc\";\n /** EaseInBack */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInBack\"] = 21] = \"EaseInBack\";\n /** EaseOutBack */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseOutBack\"] = 22] = \"EaseOutBack\";\n /** EaseInOutBack */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInOutBack\"] = 23] = \"EaseInOutBack\";\n /** EaseInElastic */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInElastic\"] = 24] = \"EaseInElastic\";\n /** EaseOutElastic */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseOutElastic\"] = 25] = \"EaseOutElastic\";\n /** EaseInOutElastic */\n GeometryCurveBlockTypes[GeometryCurveBlockTypes[\"EaseInOutElastic\"] = 26] = \"EaseInOutElastic\";\n})(GeometryCurveBlockTypes || (GeometryCurveBlockTypes = {}));\n/**\n * Block used to apply curve operation\n */\nexport class GeometryCurveBlock extends NodeGeometryBlock {\n /**\n * Creates a new CurveBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets the type of the curve applied by the block\n */\n this.type = GeometryCurveBlockTypes.EaseInOutSine;\n this.registerInput(\"input\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryCurveBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.input.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n let func;\n switch (this.type) {\n case GeometryCurveBlockTypes.EaseInSine:\n func = (v) => 1.0 - Math.cos((v * 3.1415) / 2.0);\n break;\n case GeometryCurveBlockTypes.EaseOutSine:\n func = (v) => Math.sin((v * 3.1415) / 2.0);\n break;\n case GeometryCurveBlockTypes.EaseInOutSine:\n func = (v) => -(Math.cos(v * 3.1415) - 1.0) / 2.0;\n break;\n case GeometryCurveBlockTypes.EaseInQuad:\n func = (v) => v * v;\n break;\n case GeometryCurveBlockTypes.EaseOutQuad:\n func = (v) => (1.0 - v) * (1.0 - v);\n break;\n case GeometryCurveBlockTypes.EaseInOutQuad: {\n func = (v) => (v < 0.5 ? 2.0 * v * v : 1.0 - Math.pow(-2.0 * v + 2.0, 2.0) / 2.0);\n break;\n }\n case GeometryCurveBlockTypes.EaseInCubic:\n func = (v) => v * v * v;\n break;\n case GeometryCurveBlockTypes.EaseOutCubic: {\n func = (v) => 1.0 - Math.pow(1.0 - v, 3.0);\n break;\n }\n case GeometryCurveBlockTypes.EaseInOutCubic: {\n func = (v) => (v < 0.5 ? 4.0 * v * v * v : 1.0 - Math.pow(-2.0 * v + 2.0, 3.0) / 2.0);\n break;\n }\n case GeometryCurveBlockTypes.EaseInQuart:\n func = (v) => v * v * v * v;\n break;\n case GeometryCurveBlockTypes.EaseOutQuart: {\n func = (v) => 1.0 - Math.pow(1.0 - v, 4.0);\n break;\n }\n case GeometryCurveBlockTypes.EaseInOutQuart: {\n func = (v) => (v < 0.5 ? 8.0 * v * v * v * v : 1.0 - Math.pow(-2.0 * v + 2.0, 4.0) / 2.0);\n break;\n }\n case GeometryCurveBlockTypes.EaseInQuint:\n func = (v) => v * v * v * v * v;\n break;\n case GeometryCurveBlockTypes.EaseOutQuint: {\n func = (v) => 1.0 - Math.pow(1.0 - v, 5.0);\n break;\n }\n case GeometryCurveBlockTypes.EaseInOutQuint: {\n func = (v) => (v < 0.5 ? 16.0 * v * v * v * v * v : 1.0 - Math.pow(-2.0 * v + 2.0, 5.0) / 2.0);\n break;\n }\n case GeometryCurveBlockTypes.EaseInExpo: {\n func = (v) => (v === 0.0 ? 0.0 : Math.pow(2.0, 10.0 * v - 10.0));\n break;\n }\n case GeometryCurveBlockTypes.EaseOutExpo: {\n func = (v) => (v === 1.0 ? 1.0 : 1.0 - Math.pow(2.0, -10.0 * v));\n break;\n }\n case GeometryCurveBlockTypes.EaseInOutExpo: {\n func = (v) => (v === 0.0 ? 0.0 : v === 1.0 ? 1.0 : v < 0.5 ? Math.pow(2.0, 20.0 * v - 10.0) / 2.0 : (2.0 - Math.pow(2.0, -20.0 * v + 10.0)) / 2.0);\n break;\n }\n case GeometryCurveBlockTypes.EaseInCirc: {\n func = (v) => 1.0 - Math.sqrt(1.0 - Math.pow(v, 2.0));\n break;\n }\n case GeometryCurveBlockTypes.EaseOutCirc: {\n func = (v) => Math.sqrt(1.0 - Math.pow(v - 1.0, 2.0));\n break;\n }\n case GeometryCurveBlockTypes.EaseInOutCirc: {\n func = (v) => (v < 0.5 ? (1.0 - Math.sqrt(1.0 - Math.pow(2.0 * v, 2.0))) / 2.0 : (Math.sqrt(1.0 - Math.pow(-2.0 * v + 2.0, 2.0)) + 1.0) / 2.0);\n break;\n }\n case GeometryCurveBlockTypes.EaseInBack: {\n func = (v) => 2.70158 * v * v * v - 1.70158 * v * v;\n break;\n }\n case GeometryCurveBlockTypes.EaseOutBack: {\n func = (v) => 2.70158 * Math.pow(v - 1.0, 3.0) + 1.70158 * Math.pow(v - 1.0, 2.0);\n break;\n }\n case GeometryCurveBlockTypes.EaseInOutBack: {\n func = (v) => v < 0.5\n ? (Math.pow(2.0 * v, 2.0) * (3.5949095 * 2.0 * v - 2.5949095)) / 2.0\n : (Math.pow(2.0 * v - 2.0, 2.0) * (3.5949095 * (v * 2.0 - 2.0) + 3.5949095) + 2.0) / 2.0;\n break;\n }\n case GeometryCurveBlockTypes.EaseInElastic: {\n func = (v) => (v === 0.0 ? 0.0 : v === 1.0 ? 1.0 : -Math.pow(2.0, 10.0 * v - 10.0) * Math.sin((v * 10.0 - 10.75) * ((2.0 * 3.1415) / 3.0)));\n break;\n }\n case GeometryCurveBlockTypes.EaseOutElastic: {\n func = (v) => (v === 0.0 ? 0.0 : v === 1.0 ? 1.0 : Math.pow(2.0, -10.0 * v) * Math.sin((v * 10.0 - 0.75) * ((2.0 * 3.1415) / 3.0)) + 1.0);\n break;\n }\n case GeometryCurveBlockTypes.EaseInOutElastic: {\n func = (v) => v === 0.0\n ? 0.0\n : v == 1.0\n ? 1.0\n : v < 0.5\n ? -(Math.pow(2.0, 20.0 * v - 10.0) * Math.sin((20.0 * v - 11.125) * ((2.0 * 3.1415) / 4.5))) / 2.0\n : (Math.pow(2.0, -20.0 * v + 10.0) * Math.sin((20.0 * v - 11.125) * ((2.0 * 3.1415) / 4.5))) / 2.0 + 1.0;\n break;\n }\n }\n this.output._storedFunction = (state) => {\n const input = this.input.getConnectedValue(state);\n switch (this.input.type) {\n case NodeGeometryBlockConnectionPointTypes.Float: {\n return func(input);\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n return new Vector2(func(input.x), func(input.y));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n return new Vector3(func(input.x), func(input.y), func(input.z));\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n return new Vector4(func(input.x), func(input.y), func(input.z), func(input.w));\n }\n }\n return 0;\n };\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.curveType = this.type;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.type = serializationObject.curveType;\n }\n _dumpPropertiesCode() {\n const codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.type = BABYLON.GeometryCurveBlockTypes.${GeometryCurveBlockTypes[this.type]};\\n`;\n return codeString;\n }\n}\n__decorate([\n editableInPropertyPage(\"Type\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"EaseInSine\", value: GeometryCurveBlockTypes.EaseInSine },\n { label: \"EaseOutSine\", value: GeometryCurveBlockTypes.EaseOutSine },\n { label: \"EaseInOutSine\", value: GeometryCurveBlockTypes.EaseInOutSine },\n { label: \"EaseInQuad\", value: GeometryCurveBlockTypes.EaseInQuad },\n { label: \"EaseOutQuad\", value: GeometryCurveBlockTypes.EaseOutQuad },\n { label: \"EaseInOutQuad\", value: GeometryCurveBlockTypes.EaseInOutQuad },\n { label: \"EaseInCubic\", value: GeometryCurveBlockTypes.EaseInCubic },\n { label: \"EaseOutCubic\", value: GeometryCurveBlockTypes.EaseOutCubic },\n { label: \"EaseInOutCubic\", value: GeometryCurveBlockTypes.EaseInOutCubic },\n { label: \"EaseInQuart\", value: GeometryCurveBlockTypes.EaseInQuart },\n { label: \"EaseOutQuart\", value: GeometryCurveBlockTypes.EaseOutQuart },\n { label: \"EaseInOutQuart\", value: GeometryCurveBlockTypes.EaseInOutQuart },\n { label: \"EaseInQuint\", value: GeometryCurveBlockTypes.EaseInQuint },\n { label: \"EaseOutQuint\", value: GeometryCurveBlockTypes.EaseOutQuint },\n { label: \"EaseInOutQuint\", value: GeometryCurveBlockTypes.EaseInOutQuint },\n { label: \"EaseInExpo\", value: GeometryCurveBlockTypes.EaseInExpo },\n { label: \"EaseOutExpo\", value: GeometryCurveBlockTypes.EaseOutExpo },\n { label: \"EaseInOutExpo\", value: GeometryCurveBlockTypes.EaseInOutExpo },\n { label: \"EaseInCirc\", value: GeometryCurveBlockTypes.EaseInCirc },\n { label: \"EaseOutCirc\", value: GeometryCurveBlockTypes.EaseOutCirc },\n { label: \"EaseInOutCirc\", value: GeometryCurveBlockTypes.EaseInOutCirc },\n { label: \"EaseInBack\", value: GeometryCurveBlockTypes.EaseInBack },\n { label: \"EaseOutBack\", value: GeometryCurveBlockTypes.EaseOutBack },\n { label: \"EaseInOutBack\", value: GeometryCurveBlockTypes.EaseInOutBack },\n { label: \"EaseInElastic\", value: GeometryCurveBlockTypes.EaseInElastic },\n { label: \"EaseOutElastic\", value: GeometryCurveBlockTypes.EaseOutElastic },\n { label: \"EaseInOutElastic\", value: GeometryCurveBlockTypes.EaseInOutElastic },\n ],\n })\n], GeometryCurveBlock.prototype, \"type\", void 0);\nRegisterClass(\"BABYLON.GeometryCurveBlock\", GeometryCurveBlock);\n","import { Vector3 } from \"../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to desaturate a color\n */\nexport class GeometryDesaturateBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryDesaturateBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"color\", NodeGeometryBlockConnectionPointTypes.Vector3);\n this.registerInput(\"level\", NodeGeometryBlockConnectionPointTypes.Float, true, 0);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Vector3);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryDesaturateBlock\";\n }\n /**\n * Gets the color operand input component\n */\n get color() {\n return this._inputs[0];\n }\n /**\n * Gets the level operand input component\n */\n get level() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.color.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n this.output._storedFunction = (state) => {\n const color = this.color.getConnectedValue(state);\n const level = this.level.getConnectedValue(state);\n const tempMin = Math.min(color.x, color.y, color.z);\n const tempMax = Math.max(color.x, color.y, color.z);\n const tempMerge = 0.5 * (tempMin + tempMax);\n return new Vector3(color.x * (1 - level) + tempMerge * level, color.y * (1 - level) + tempMerge * level, color.z * (1 - level) + tempMerge * level);\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryDesaturateBlock\", GeometryDesaturateBlock);\n","import { Vector2, Vector3, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to posterize a value\n * @see https://en.wikipedia.org/wiki/Posterization\n */\nexport class GeometryPosterizeBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryPosterizeBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"steps\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[1].acceptedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryPosterizeBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the steps input component\n */\n get steps() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected || !this.steps.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n this.output._storedFunction = (state) => {\n const source = this.value.getConnectedValue(state);\n const steps = this.steps.getConnectedValue(state);\n let stepVector = steps;\n if (this.steps.type === NodeGeometryBlockConnectionPointTypes.Float) {\n switch (this.value.type) {\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n stepVector = new Vector2(steps, steps);\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n stepVector = new Vector3(steps, steps, steps);\n break;\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n stepVector = new Vector4(steps, steps, steps, steps);\n break;\n }\n }\n switch (this.value.type) {\n case NodeGeometryBlockConnectionPointTypes.Vector2:\n return new Vector2((source.x / (1.0 / stepVector.x)) * (1.0 / stepVector.x), (source.y / (1.0 / stepVector.y)) * (1.0 / stepVector.y));\n case NodeGeometryBlockConnectionPointTypes.Vector3:\n return new Vector3((source.x / (1.0 / stepVector.x)) * (1.0 / stepVector.x), (source.y / (1.0 / stepVector.y)) * (1.0 / stepVector.y), (source.z / (1.0 / stepVector.z)) * (1.0 / stepVector.z));\n case NodeGeometryBlockConnectionPointTypes.Vector4:\n return new Vector4((source.x / (1.0 / stepVector.x)) * (1.0 / stepVector.x), (source.y / (1.0 / stepVector.y)) * (1.0 / stepVector.y), (source.z / (1.0 / stepVector.z)) * (1.0 / stepVector.z), (source.w / (1.0 / stepVector.w)) * (1.0 / stepVector.w));\n default:\n return Math.floor((source / (1.0 / steps)) * (1.0 / steps));\n }\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryPosterizeBlock\", GeometryPosterizeBlock);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to replace a color by another one\n */\nexport class GeometryReplaceColorBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryReplaceColorBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"reference\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"distance\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerInput(\"replacement\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n this._linkConnectionTypes(0, 1);\n this._linkConnectionTypes(0, 3);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[3].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[3].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryReplaceColorBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the reference input component\n */\n get reference() {\n return this._inputs[1];\n }\n /**\n * Gets the distance input component\n */\n get distance() {\n return this._inputs[2];\n }\n /**\n * Gets the replacement input component\n */\n get replacement() {\n return this._inputs[3];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected || !this.reference.isConnected || !this.distance.isConnected || !this.replacement.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n this.output._storedFunction = (state) => {\n const value = this.value.getConnectedValue(state);\n const reference = this.reference.getConnectedValue(state);\n const distance = this.distance.getConnectedValue(state);\n const replacement = this.replacement.getConnectedValue(state);\n if (value.subtract(reference).length() < distance) {\n return replacement;\n }\n else {\n return value;\n }\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryReplaceColorBlock\", GeometryReplaceColorBlock);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to get the distance between 2 values\n */\nexport class GeometryDistanceBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryDistanceBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"left\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Float);\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryDistanceBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected || !this.right.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n this.output._storedFunction = (state) => {\n const left = this.left.getConnectedValue(state);\n const right = this.right.getConnectedValue(state);\n return left.subtract(right).length();\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryDistanceBlock\", GeometryDistanceBlock);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to apply a dot product between 2 vectors\n */\nexport class GeometryDotBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryDotBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"left\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerInput(\"right\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Float);\n this._linkConnectionTypes(0, 1);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[1].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryDotBlock\";\n }\n /**\n * Gets the left operand input component\n */\n get left() {\n return this._inputs[0];\n }\n /**\n * Gets the right operand input component\n */\n get right() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.left.isConnected || !this.right.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n this.output._storedFunction = (state) => {\n const left = this.left.getConnectedValue(state);\n const right = this.right.getConnectedValue(state);\n return left.dot(right);\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryDotBlock\", GeometryDotBlock);\n","import { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to get the length of a vector\n */\nexport class GeometryLengthBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryLengthBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"value\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Int);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Float);\n this._inputs[0].excludedConnectionPointTypes.push(NodeGeometryBlockConnectionPointTypes.Matrix);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryLengthBlock\";\n }\n /**\n * Gets the value input component\n */\n get value() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.value.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n this.output._storedFunction = (state) => {\n const value = this.value.getConnectedValue(state);\n return value.length();\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryLengthBlock\", GeometryLengthBlock);\n","import { Vector2 } from \"../../../Maths/math.vector.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to rotate a 2d vector by a given angle\n */\nexport class GeometryRotate2dBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryRotate2dBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n this.registerInput(\"input\", NodeGeometryBlockConnectionPointTypes.Vector2);\n this.registerInput(\"angle\", NodeGeometryBlockConnectionPointTypes.Float);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryRotate2dBlock\";\n }\n /**\n * Gets the input vector\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the input angle\n */\n get angle() {\n return this._inputs[1];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock() {\n if (!this.angle.isConnected || !this.input.isConnected) {\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n this.output._storedFunction = (state) => {\n const input = this.input.getConnectedValue(state);\n const angle = this.angle.getConnectedValue(state);\n return new Vector2(Math.cos(angle) * input.x - Math.sin(angle) * input.y, Math.sin(angle) * input.x + Math.cos(angle) * input.y);\n };\n return this;\n }\n}\nRegisterClass(\"BABYLON.GeometryRotate2dBlock\", GeometryRotate2dBlock);\n","import { Observable } from \"../../../Misc/observable.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { NodeGeometryBlock } from \"../nodeGeometryBlock.js\";\n/**\n * Block used to trigger an observable when traversed\n * It can also be used to execute a function when traversed\n */\nexport class GeometryInterceptorBlock extends NodeGeometryBlock {\n /**\n * Creates a new GeometryInterceptorBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Observable triggered when the block is traversed\n */\n this.onInterceptionObservable = new Observable(undefined, true);\n this.registerInput(\"input\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[0];\n }\n /**\n * Gets the time spent to build this block (in ms)\n */\n get buildExecutionTime() {\n return -1;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"GeometryInterceptorBlock\";\n }\n /**\n * Gets the input component\n */\n get input() {\n return this._inputs[0];\n }\n /**\n * Gets the output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const output = this._outputs[0];\n const input = this._inputs[0];\n output._storedFunction = (state) => {\n let value = input.getConnectedValue(state);\n if (this.customFunction) {\n value = this.customFunction(value, state);\n }\n this.onInterceptionObservable.notifyObservers(value);\n return value;\n };\n }\n}\nRegisterClass(\"BABYLON.GeometryInterceptorBlock\", GeometryInterceptorBlock);\n","import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeGeometryBlock } from \"../../nodeGeometryBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeGeometryBlockConnectionPointTypes } from \"../../Enums/nodeGeometryConnectionPointTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { Vector2, Vector3, Vector4 } from \"../../../../Maths/math.vector.js\";\n/**\n * Conditions supported by the condition block\n */\nexport var Aggregations;\n(function (Aggregations) {\n /** Max */\n Aggregations[Aggregations[\"Max\"] = 0] = \"Max\";\n /** Min */\n Aggregations[Aggregations[\"Min\"] = 1] = \"Min\";\n /** Sum */\n Aggregations[Aggregations[\"Sum\"] = 2] = \"Sum\";\n})(Aggregations || (Aggregations = {}));\n/**\n * Block used to extract a valuefrom a geometry\n */\nexport class AggregatorBlock extends NodeGeometryBlock {\n /**\n * Create a new SetPositionsBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name);\n /**\n * Gets or sets the test used by the block\n */\n this.aggregation = Aggregations.Sum;\n /**\n * Gets or sets a boolean indicating that this block can evaluate context\n * Build performance is improved when this value is set to false as the system will cache values instead of reevaluating everything per context change\n */\n this.evaluateContext = true;\n this.registerInput(\"geometry\", NodeGeometryBlockConnectionPointTypes.Geometry);\n this.registerInput(\"source\", NodeGeometryBlockConnectionPointTypes.AutoDetect);\n this.registerOutput(\"output\", NodeGeometryBlockConnectionPointTypes.BasedOnInput);\n this._outputs[0]._typeConnectionSource = this._inputs[1];\n }\n /**\n * Gets the current index in the current flow\n * @returns the current index\n */\n getExecutionIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current loop index in the current flow\n * @returns the current loop index\n */\n getExecutionLoopIndex() {\n return this._currentIndex;\n }\n /**\n * Gets the current face index in the current flow\n * @returns the current face index\n */\n getExecutionFaceIndex() {\n return 0;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"AggregatorBlock\";\n }\n /**\n * Gets the geometry input component\n */\n get geometry() {\n return this._inputs[0];\n }\n /**\n * Gets the source input component\n */\n get source() {\n return this._inputs[1];\n }\n /**\n * Gets the geometry output component\n */\n get output() {\n return this._outputs[0];\n }\n _buildBlock(state) {\n const func = (state) => {\n state.pushExecutionContext(this);\n this._vertexData = this.geometry.getConnectedValue(state);\n state.pushGeometryContext(this._vertexData);\n if (!this._vertexData || !this._vertexData.positions || !this.source.isConnected) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedValue = null;\n return;\n }\n // Processing\n const vertexCount = this._vertexData.positions.length / 3;\n const context = [];\n for (this._currentIndex = 0; this._currentIndex < vertexCount; this._currentIndex++) {\n context.push(this.source.getConnectedValue(state));\n }\n // Aggregation\n let func = null;\n switch (this.aggregation) {\n case Aggregations.Max: {\n func = (a, b) => Math.max(a, b);\n break;\n }\n case Aggregations.Min: {\n func = (a, b) => Math.min(a, b);\n break;\n }\n case Aggregations.Sum: {\n func = (a, b) => a + b;\n break;\n }\n }\n if (!func) {\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n this.output._storedFunction = null;\n this.output._storedValue = null;\n return;\n }\n let returnValue;\n switch (this.source.type) {\n case NodeGeometryBlockConnectionPointTypes.Int:\n case NodeGeometryBlockConnectionPointTypes.Float: {\n returnValue = context.reduce(func);\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector2: {\n const x = context.map((v) => v.x).reduce(func);\n const y = context.map((v) => v.y).reduce(func);\n returnValue = new Vector2(x, y);\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector3: {\n const x = context.map((v) => v.x).reduce(func);\n const y = context.map((v) => v.y).reduce(func);\n const z = context.map((v) => v.z).reduce(func);\n returnValue = new Vector3(x, y, z);\n break;\n }\n case NodeGeometryBlockConnectionPointTypes.Vector4: {\n const x = context.map((v) => v.x).reduce(func);\n const y = context.map((v) => v.y).reduce(func);\n const z = context.map((v) => v.z).reduce(func);\n const w = context.map((v) => v.w).reduce(func);\n returnValue = new Vector4(x, y, z, w);\n break;\n }\n }\n // Storage\n state.restoreGeometryContext();\n state.restoreExecutionContext();\n return returnValue;\n };\n if (this.evaluateContext) {\n this.output._storedFunction = func;\n }\n else {\n this.output._storedFunction = null;\n this.output._storedValue = func(state);\n }\n }\n _dumpPropertiesCode() {\n let codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.evaluateContext = ${this.evaluateContext ? \"true\" : \"false\"};\\n`;\n codeString += `${this._codeVariableName}.aggregation = BABYLON.Aggregations.${Aggregations[this.aggregation]};\\n`;\n return codeString;\n }\n /**\n * Serializes this block in a JSON representation\n * @returns the serialized block object\n */\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.evaluateContext = this.evaluateContext;\n serializationObject.aggregation = this.aggregation;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n if (serializationObject.evaluateContext !== undefined) {\n this.evaluateContext = serializationObject.evaluateContext;\n }\n if (serializationObject.aggregation !== undefined) {\n this.aggregation = serializationObject.aggregation;\n }\n }\n}\n__decorate([\n editableInPropertyPage(\"Aggregation\", 4 /* PropertyTypeForEdition.List */, \"ADVANCED\", {\n notifiers: { rebuild: true },\n embedded: true,\n options: [\n { label: \"Max\", value: Aggregations.Max },\n { label: \"Min\", value: Aggregations.Min },\n { label: \"Sum\", value: Aggregations.Sum },\n ],\n })\n], AggregatorBlock.prototype, \"aggregation\", void 0);\n__decorate([\n editableInPropertyPage(\"Evaluate context\", 0 /* PropertyTypeForEdition.Boolean */, \"ADVANCED\", { notifiers: { rebuild: true } })\n], AggregatorBlock.prototype, \"evaluateContext\", void 0);\nRegisterClass(\"BABYLON.AggregatorBlock\", AggregatorBlock);\n","import { Observable } from \"./observable.js\";\n/**\n * Represent a list of observers registered to multiple Observables object.\n */\nexport class MultiObserver {\n /**\n * Release associated resources\n */\n dispose() {\n if (this._observers && this._observables) {\n for (let index = 0; index < this._observers.length; index++) {\n this._observables[index].remove(this._observers[index]);\n }\n }\n this._observers = null;\n this._observables = null;\n }\n /**\n * Raise a callback when one of the observable will notify\n * @param observables defines a list of observables to watch\n * @param callback defines the callback to call on notification\n * @param mask defines the mask used to filter notifications\n * @param scope defines the current scope used to restore the JS context\n * @returns the new MultiObserver\n */\n static Watch(observables, callback, mask = -1, scope = null) {\n const result = new MultiObserver();\n result._observers = new Array();\n result._observables = observables;\n for (const observable of observables) {\n const observer = observable.add(callback, mask, false, scope);\n if (observer) {\n result._observers.push(observer);\n }\n }\n return result;\n }\n}\nObservable.prototype.notifyObserversWithPromise = async function (eventData, mask = -1, target, currentTarget, userInfo) {\n // create an empty promise\n let p = Promise.resolve(eventData);\n // no observers? return this promise.\n if (!this.observers.length) {\n return p;\n }\n const state = this._eventState;\n state.mask = mask;\n state.target = target;\n state.currentTarget = currentTarget;\n state.skipNextObservers = false;\n state.userInfo = userInfo;\n // execute one callback after another (not using Promise.all, the order is important)\n this.observers.forEach((obs) => {\n if (state.skipNextObservers) {\n return;\n }\n if (obs._willBeUnregistered) {\n return;\n }\n if (obs.mask & mask) {\n if (obs.scope) {\n p = p.then((lastReturnedValue) => {\n state.lastReturnValue = lastReturnedValue;\n return obs.callback.apply(obs.scope, [eventData, state]);\n });\n }\n else {\n p = p.then((lastReturnedValue) => {\n state.lastReturnValue = lastReturnedValue;\n return obs.callback(eventData, state);\n });\n }\n if (obs.unregisterOnNextCall) {\n this._deferUnregister(obs);\n }\n }\n });\n // return the eventData\n await p;\n return eventData;\n};\n","/**\n * Class for storing data to local storage if available or in-memory storage otherwise\n */\nexport class DataStorage {\n static _GetStorage() {\n try {\n localStorage.setItem(\"test\", \"\");\n localStorage.removeItem(\"test\");\n return localStorage;\n }\n catch {\n const inMemoryStorage = {};\n return {\n getItem: (key) => {\n const value = inMemoryStorage[key];\n return value === undefined ? null : value;\n },\n setItem: (key, value) => {\n inMemoryStorage[key] = value;\n },\n };\n }\n }\n /**\n * Reads a string from the data storage\n * @param key The key to read\n * @param defaultValue The value if the key doesn't exist\n * @returns The string value\n */\n static ReadString(key, defaultValue) {\n const value = this._Storage.getItem(key);\n return value !== null ? value : defaultValue;\n }\n /**\n * Writes a string to the data storage\n * @param key The key to write\n * @param value The value to write\n */\n static WriteString(key, value) {\n this._Storage.setItem(key, value);\n }\n /**\n * Reads a boolean from the data storage\n * @param key The key to read\n * @param defaultValue The value if the key doesn't exist\n * @returns The boolean value\n */\n static ReadBoolean(key, defaultValue) {\n const value = this._Storage.getItem(key);\n return value !== null ? value === \"true\" : defaultValue;\n }\n /**\n * Writes a boolean to the data storage\n * @param key The key to write\n * @param value The value to write\n */\n static WriteBoolean(key, value) {\n this._Storage.setItem(key, value ? \"true\" : \"false\");\n }\n /**\n * Reads a number from the data storage\n * @param key The key to read\n * @param defaultValue The value if the key doesn't exist\n * @returns The number value\n */\n static ReadNumber(key, defaultValue) {\n const value = this._Storage.getItem(key);\n return value !== null ? parseFloat(value) : defaultValue;\n }\n /**\n * Writes a number to the data storage\n * @param key The key to write\n * @param value The value to write\n */\n static WriteNumber(key, value) {\n this._Storage.setItem(key, value.toString());\n }\n}\nDataStorage._Storage = DataStorage._GetStorage();\n","import { Matrix, Vector3 } from \"../Maths/math.vector.js\";\n// This implementation was based on the original MIT-licensed TRACE repository\n// from https://github.com/septagon/TRACE.\n/**\n * Generic implementation of Levenshtein distance.\n */\nvar Levenshtein;\n(function (Levenshtein) {\n /**\n * Alphabet from which to construct sequences to be compared using Levenshtein\n * distance.\n */\n class Alphabet {\n /**\n * Serialize the Alphabet to JSON string.\n * @returns JSON serialization\n */\n serialize() {\n const jsonObject = {};\n const characters = new Array(this._characterToIdx.size);\n this._characterToIdx.forEach((v, k) => {\n characters[v] = k;\n });\n jsonObject[\"characters\"] = characters;\n jsonObject[\"insertionCosts\"] = this._insertionCosts;\n jsonObject[\"deletionCosts\"] = this._deletionCosts;\n jsonObject[\"substitutionCosts\"] = this._substitutionCosts;\n return JSON.stringify(jsonObject);\n }\n /**\n * Parse an Alphabet from a JSON serialization.\n * @param json JSON string to deserialize\n * @returns deserialized Alphabet\n */\n static Deserialize(json) {\n const jsonObject = JSON.parse(json);\n const alphabet = new Alphabet(jsonObject[\"characters\"]);\n alphabet._insertionCosts = jsonObject[\"insertionCosts\"];\n alphabet._deletionCosts = jsonObject[\"deletionCosts\"];\n alphabet._substitutionCosts = jsonObject[\"substitutionCosts\"];\n return alphabet;\n }\n /**\n * Create a new Alphabet.\n * @param characters characters of the alphabet\n * @param charToInsertionCost function mapping characters to insertion costs\n * @param charToDeletionCost function mapping characters to deletion costs\n * @param charsToSubstitutionCost function mapping character pairs to substitution costs\n */\n constructor(characters, charToInsertionCost = null, charToDeletionCost = null, charsToSubstitutionCost = null) {\n charToInsertionCost = charToInsertionCost ?? (() => 1);\n charToDeletionCost = charToDeletionCost ?? (() => 1);\n charsToSubstitutionCost = charsToSubstitutionCost ?? ((a, b) => (a === b ? 0 : 1));\n this._characterToIdx = new Map();\n this._insertionCosts = new Array(characters.length);\n this._deletionCosts = new Array(characters.length);\n this._substitutionCosts = new Array(characters.length);\n let c;\n for (let outerIdx = 0; outerIdx < characters.length; ++outerIdx) {\n c = characters[outerIdx];\n this._characterToIdx.set(c, outerIdx);\n this._insertionCosts[outerIdx] = charToInsertionCost(c);\n this._deletionCosts[outerIdx] = charToDeletionCost(c);\n this._substitutionCosts[outerIdx] = new Array(characters.length);\n for (let innerIdx = outerIdx; innerIdx < characters.length; ++innerIdx) {\n this._substitutionCosts[outerIdx][innerIdx] = charsToSubstitutionCost(c, characters[innerIdx]);\n }\n }\n }\n /**\n * Get the index (internally-assigned number) for a character.\n * @param char character\n * @returns index\n */\n getCharacterIdx(char) {\n return this._characterToIdx.get(char);\n }\n /**\n * Get the insertion cost of a character from its index.\n * @param idx character index\n * @returns insertion cost\n */\n getInsertionCost(idx) {\n return this._insertionCosts[idx];\n }\n /**\n * Get the deletion cost of a character from its index.\n * @param idx character index\n * @returns deletion cost\n */\n getDeletionCost(idx) {\n return this._deletionCosts[idx];\n }\n /**\n * Gets the cost to substitute two characters. NOTE: this cost is\n * required to be bi-directional, meaning it cannot matter which of\n * the provided characters is being removed and which is being inserted.\n * @param idx1 the first character index\n * @param idx2 the second character index\n * @returns substitution cost\n */\n getSubstitutionCost(idx1, idx2) {\n const min = Math.min(idx1, idx2);\n const max = Math.max(idx1, idx2);\n return this._substitutionCosts[min][max];\n }\n }\n Levenshtein.Alphabet = Alphabet;\n /**\n * Character sequence intended to be compared against other Sequences created\n * with the same Alphabet in order to compute Levenshtein distance.\n */\n class Sequence {\n /**\n * Serialize to JSON string. JSON representation does NOT include the Alphabet\n * from which this Sequence was created; Alphabet must be independently\n * serialized.\n * @returns JSON string\n */\n serialize() {\n return JSON.stringify(this._characters);\n }\n /**\n * Deserialize from JSON string and Alphabet. This should be the same Alphabet\n * from which the Sequence was originally created, which must be serialized and\n * deserialized independently so that it can be passed in here.\n * @param json JSON string representation of Sequence\n * @param alphabet Alphabet from which Sequence was originally created\n * @returns Sequence\n */\n static Deserialize(json, alphabet) {\n const sequence = new Sequence([], alphabet);\n sequence._characters = JSON.parse(json);\n return sequence;\n }\n /**\n * Create a new Sequence.\n * @param characters characters in the new Sequence\n * @param alphabet Alphabet, which must include all used characters\n */\n constructor(characters, alphabet) {\n if (characters.length > Sequence._MAX_SEQUENCE_LENGTH) {\n throw new Error(\"Sequences longer than \" + Sequence._MAX_SEQUENCE_LENGTH + \" not supported.\");\n }\n this._alphabet = alphabet;\n this._characters = characters.map((c) => this._alphabet.getCharacterIdx(c));\n }\n /**\n * Get the distance between this Sequence and another.\n * @param other sequence to compare to\n * @returns Levenshtein distance\n */\n distance(other) {\n return Sequence._Distance(this, other);\n }\n /**\n * Compute the Levenshtein distance between two Sequences.\n * @param a first Sequence\n * @param b second Sequence\n * @returns Levenshtein distance\n */\n static _Distance(a, b) {\n const alphabet = a._alphabet;\n if (alphabet !== b._alphabet) {\n throw new Error(\"Cannot Levenshtein compare Sequences built from different alphabets.\");\n }\n const aChars = a._characters;\n const bChars = b._characters;\n const aLength = aChars.length;\n const bLength = bChars.length;\n const costMatrix = Sequence._CostMatrix;\n costMatrix[0][0] = 0;\n for (let idx = 0; idx < aLength; ++idx) {\n costMatrix[idx + 1][0] = costMatrix[idx][0] + alphabet.getInsertionCost(aChars[idx]);\n }\n for (let idx = 0; idx < bLength; ++idx) {\n costMatrix[0][idx + 1] = costMatrix[0][idx] + alphabet.getInsertionCost(bChars[idx]);\n }\n for (let aIdx = 0; aIdx < aLength; ++aIdx) {\n for (let bIdx = 0; bIdx < bLength; ++bIdx) {\n Sequence._InsertionCost = costMatrix[aIdx + 1][bIdx] + alphabet.getInsertionCost(bChars[bIdx]);\n Sequence._DeletionCost = costMatrix[aIdx][bIdx + 1] + alphabet.getDeletionCost(aChars[aIdx]);\n Sequence._SubstitutionCost = costMatrix[aIdx][bIdx] + alphabet.getSubstitutionCost(aChars[aIdx], bChars[bIdx]);\n costMatrix[aIdx + 1][bIdx + 1] = Math.min(Sequence._InsertionCost, Sequence._DeletionCost, Sequence._SubstitutionCost);\n }\n }\n return costMatrix[aLength][bLength];\n }\n }\n // Scratch values\n Sequence._MAX_SEQUENCE_LENGTH = 256;\n Sequence._CostMatrix = [...Array(Sequence._MAX_SEQUENCE_LENGTH + 1)].map(() => new Array(Sequence._MAX_SEQUENCE_LENGTH + 1));\n Levenshtein.Sequence = Sequence;\n})(Levenshtein || (Levenshtein = {}));\n/**\n * A 3D trajectory consisting of an order list of vectors describing a\n * path of motion through 3D space.\n */\nexport class Trajectory {\n /**\n * Serialize to JSON.\n * @returns serialized JSON string\n */\n serialize() {\n return JSON.stringify(this);\n }\n /**\n * Deserialize from JSON.\n * @param json serialized JSON string\n * @returns deserialized Trajectory\n */\n static Deserialize(json) {\n const jsonObject = JSON.parse(json);\n const trajectory = new Trajectory(jsonObject[\"_segmentLength\"]);\n trajectory._points = jsonObject[\"_points\"].map((pt) => {\n return new Vector3(pt[\"_x\"], pt[\"_y\"], pt[\"_z\"]);\n });\n return trajectory;\n }\n /**\n * Create a new empty Trajectory.\n * @param segmentLength radius of discretization for Trajectory points\n */\n constructor(segmentLength = 0.01) {\n this._points = [];\n this._segmentLength = segmentLength;\n }\n /**\n * Get the length of the Trajectory.\n * @returns length of the Trajectory\n */\n getLength() {\n return this._points.length * this._segmentLength;\n }\n /**\n * Append a new point to the Trajectory.\n * NOTE: This implementation has many allocations.\n * @param point point to append to the Trajectory\n */\n add(point) {\n let numPoints = this._points.length;\n if (numPoints === 0) {\n this._points.push(point.clone());\n }\n else {\n const getT = () => this._segmentLength / Vector3.Distance(this._points[numPoints - 1], point);\n for (let t = getT(); t <= 1.0; t = getT()) {\n const newPoint = this._points[numPoints - 1].scale(1.0 - t);\n point.scaleAndAddToRef(t, newPoint);\n this._points.push(newPoint);\n ++numPoints;\n }\n }\n }\n /**\n * Create a new Trajectory with a segment length chosen to make it\n * probable that the new Trajectory will have a specified number of\n * segments. This operation is imprecise.\n * @param targetResolution number of segments desired\n * @returns new Trajectory with approximately the requested number of segments\n */\n resampleAtTargetResolution(targetResolution) {\n const resampled = new Trajectory(this.getLength() / targetResolution);\n this._points.forEach((pt) => {\n resampled.add(pt);\n });\n return resampled;\n }\n /**\n * Convert Trajectory segments into tokenized representation. This\n * representation is an array of numbers where each nth number is the\n * index of the token which is most similar to the nth segment of the\n * Trajectory.\n * @param tokens list of vectors which serve as discrete tokens\n * @returns list of indices of most similar token per segment\n */\n tokenize(tokens) {\n const tokenization = [];\n const segmentDir = new Vector3();\n for (let idx = 2; idx < this._points.length; ++idx) {\n if (Trajectory._TransformSegmentDirToRef(this._points[idx - 2], this._points[idx - 1], this._points[idx], segmentDir)) {\n tokenization.push(Trajectory._TokenizeSegment(segmentDir, tokens));\n }\n }\n return tokenization;\n }\n /**\n * Transform the rotation (i.e., direction) of a segment to isolate\n * the relative transformation represented by the segment. This operation\n * may or may not succeed due to singularities in the equations that define\n * motion relativity in this context.\n * @param priorVec the origin of the prior segment\n * @param fromVec the origin of the current segment\n * @param toVec the destination of the current segment\n * @param result reference to output variable\n * @returns whether or not transformation was successful\n */\n static _TransformSegmentDirToRef(priorVec, fromVec, toVec, result) {\n const DOT_PRODUCT_SAMPLE_REJECTION_THRESHOLD = 0.98;\n fromVec.subtractToRef(priorVec, Trajectory._ForwardDir);\n Trajectory._ForwardDir.normalize();\n fromVec.scaleToRef(-1, Trajectory._InverseFromVec);\n Trajectory._InverseFromVec.normalize();\n if (Math.abs(Vector3.Dot(Trajectory._ForwardDir, Trajectory._InverseFromVec)) > DOT_PRODUCT_SAMPLE_REJECTION_THRESHOLD) {\n return false;\n }\n Vector3.CrossToRef(Trajectory._ForwardDir, Trajectory._InverseFromVec, Trajectory._UpDir);\n Trajectory._UpDir.normalize();\n Matrix.LookAtLHToRef(priorVec, fromVec, Trajectory._UpDir, Trajectory._LookMatrix);\n toVec.subtractToRef(fromVec, Trajectory._FromToVec);\n Trajectory._FromToVec.normalize();\n Vector3.TransformNormalToRef(Trajectory._FromToVec, Trajectory._LookMatrix, result);\n return true;\n }\n /**\n * Determine which token vector is most similar to the\n * segment vector.\n * @param segment segment vector\n * @param tokens token vector list\n * @returns index of the most similar token to the segment\n */\n static _TokenizeSegment(segment, tokens) {\n Trajectory._BestMatch = 0;\n Trajectory._Score = Vector3.Dot(segment, tokens[0]);\n Trajectory._BestScore = Trajectory._Score;\n for (let idx = 1; idx < tokens.length; ++idx) {\n Trajectory._Score = Vector3.Dot(segment, tokens[idx]);\n if (Trajectory._Score > Trajectory._BestScore) {\n Trajectory._BestMatch = idx;\n Trajectory._BestScore = Trajectory._Score;\n }\n }\n return Trajectory._BestMatch;\n }\n}\nTrajectory._ForwardDir = new Vector3();\nTrajectory._InverseFromVec = new Vector3();\nTrajectory._UpDir = new Vector3();\nTrajectory._FromToVec = new Vector3();\nTrajectory._LookMatrix = new Matrix();\n/**\n * Collection of vectors intended to be used as the basis of Trajectory\n * tokenization for Levenshtein distance comparison. Canonically, a\n * Vector3Alphabet will resemble a \"spikeball\" of vectors distributed\n * roughly evenly over the surface of the unit sphere.\n */\nclass Vector3Alphabet {\n /**\n * Helper method to create new \"spikeball\" Vector3Alphabets. Uses a naive\n * optimize-from-random strategy to space points around the unit sphere\n * surface as a simple alternative to really doing the math to tile the\n * sphere.\n * @param alphabetSize size of the desired alphabet\n * @param iterations number of iterations over which to optimize the \"spikeball\"\n * @param startingStepSize distance factor to move points in early optimization iterations\n * @param endingStepSize distance factor to move points in late optimization iterations\n * @param fixedValues alphabet \"characters\" that are required and cannot be moved by optimization\n * @returns a new randomly generated and optimized Vector3Alphabet of the specified size\n */\n static Generate(alphabetSize = 64, iterations = 256, startingStepSize = 0.1, endingStepSize = 0.001, fixedValues = []) {\n const EPSILON = 0.001;\n const EPSILON_SQUARED = EPSILON * EPSILON;\n const alphabet = new Vector3Alphabet(alphabetSize);\n for (let idx = 0; idx < alphabetSize; ++idx) {\n alphabet.chars[idx] = new Vector3(Math.random() - 0.5, Math.random() - 0.5, Math.random() - 0.5);\n alphabet.chars[idx].normalize();\n }\n for (let idx = 0; idx < fixedValues.length; ++idx) {\n alphabet.chars[idx].copyFrom(fixedValues[idx]);\n }\n let stepSize;\n let distSq;\n const force = new Vector3();\n const scratch = new Vector3();\n const lerp = (l, r, t) => (1.0 - t) * l + t * r;\n for (let iteration = 0; iteration < iterations; ++iteration) {\n stepSize = lerp(startingStepSize, endingStepSize, iteration / (iterations - 1));\n for (let idx = fixedValues.length; idx < alphabet.chars.length; ++idx) {\n force.copyFromFloats(0, 0, 0);\n alphabet.chars.forEach((pt) => {\n alphabet.chars[idx].subtractToRef(pt, scratch);\n distSq = scratch.lengthSquared();\n if (distSq > EPSILON_SQUARED) {\n scratch.scaleAndAddToRef(1 / (scratch.lengthSquared() * distSq), force);\n }\n });\n force.scaleInPlace(stepSize);\n alphabet.chars[idx].addInPlace(force);\n alphabet.chars[idx].normalize();\n }\n }\n return alphabet;\n }\n /**\n * Serialize to JSON.\n * @returns JSON serialization\n */\n serialize() {\n return JSON.stringify(this.chars);\n }\n /**\n * Deserialize from JSON.\n * @param json JSON serialization\n * @returns deserialized Vector3Alphabet\n */\n static Deserialize(json) {\n const jsonObject = JSON.parse(json);\n const alphabet = new Vector3Alphabet(jsonObject.length);\n for (let idx = 0; idx < jsonObject.length; ++idx) {\n alphabet.chars[idx] = new Vector3(jsonObject[idx][\"_x\"], jsonObject[idx][\"_y\"], jsonObject[idx][\"_z\"]);\n }\n return alphabet;\n }\n constructor(size) {\n this.chars = new Array(size);\n }\n}\n/**\n * Class which formalizes the manner in which a Vector3Alphabet is used to tokenize and\n * describe a Trajectory. This class houses the functionality which determines what\n * attributes of Trajectories are and are not considered important, such as scale.\n */\nclass TrajectoryDescriptor {\n /**\n * Serialize to JSON.\n * @returns JSON serialization\n */\n serialize() {\n return JSON.stringify(this._sequences.map((sequence) => sequence.serialize()));\n }\n /**\n * Deserialize from JSON string and Alphabet. This should be the same Alphabet\n * from which the descriptor was originally created, which must be serialized and\n * deserialized independently so that it can be passed in here.\n * @param json JSON serialization\n * @param alphabet Alphabet from which descriptor was originally created\n * @returns deserialized TrajectoryDescriptor\n */\n static Deserialize(json, alphabet) {\n const descriptor = new TrajectoryDescriptor();\n descriptor._sequences = JSON.parse(json).map((s) => Levenshtein.Sequence.Deserialize(s, alphabet));\n return descriptor;\n }\n /**\n * Create a new TrajectoryDescriptor to describe a provided Trajectory according\n * to the provided alphabets.\n * @param trajectory Trajectory to be described\n * @param vector3Alphabet Vector3Alphabet to be used to tokenize the Trajectory\n * @param levenshteinAlphabet Levenshtein.Alphabet to be used as basis for comparison with other descriptors\n * @returns TrajectoryDescriptor describing provided Trajectory\n */\n static CreateFromTrajectory(trajectory, vector3Alphabet, levenshteinAlphabet) {\n return TrajectoryDescriptor.CreateFromTokenizationPyramid(TrajectoryDescriptor._GetTokenizationPyramid(trajectory, vector3Alphabet), levenshteinAlphabet);\n }\n /**\n * Create a new TrajectoryDescriptor from a pre-existing pyramid of tokens.\n * NOTE: This function exists to support an outdated serialization mechanism and should\n * be deleted if it is no longer useful.\n * @param pyramid tokenization pyramid\n * @param levenshteinAlphabet Levenshtein.Alphabet to be uses as basis for comparison with other descriptors\n * @returns TrajectoryDescriptor describing the Trajectory from which the pyramid was built\n */\n static CreateFromTokenizationPyramid(pyramid, levenshteinAlphabet) {\n const descriptor = new TrajectoryDescriptor();\n descriptor._sequences = pyramid.map((tokens) => new Levenshtein.Sequence(tokens, levenshteinAlphabet));\n return descriptor;\n }\n constructor() {\n this._sequences = [];\n }\n /**\n * Create the tokenization pyramid for the provided Trajectory according to the given\n * Vector3Alphabet.\n * @param trajectory Trajectory to be tokenized\n * @param alphabet Vector3Alphabet containing tokens\n * @param targetResolution finest resolution of descriptor\n * @returns tokenization pyramid for Trajectory\n */\n static _GetTokenizationPyramid(trajectory, alphabet, targetResolution = TrajectoryDescriptor._FINEST_DESCRIPTOR_RESOLUTION) {\n const pyramid = [];\n for (let res = targetResolution; res > 4; res = Math.floor(res / 2)) {\n pyramid.push(trajectory.resampleAtTargetResolution(res).tokenize(alphabet.chars));\n }\n return pyramid;\n }\n /**\n * Calculate a distance metric between this TrajectoryDescriptor and another. This is\n * essentially a similarity score and does not directly represent Euclidean distance,\n * edit distance, or any other formal distance metric.\n * @param other TrajectoryDescriptor from which to determine distance\n * @returns distance, a nonnegative similarity score where larger values indicate dissimilarity\n */\n distance(other) {\n let totalDistance = 0;\n let weight;\n for (let idx = 0; idx < this._sequences.length; ++idx) {\n weight = Math.pow(2, idx);\n totalDistance += weight * this._sequences[idx].distance(other._sequences[idx]);\n }\n return totalDistance;\n }\n}\nTrajectoryDescriptor._FINEST_DESCRIPTOR_RESOLUTION = 32;\n/**\n * A set of TrajectoryDescriptors defined to be \"the same.\" This is essentially a helper\n * class to facilitate methods of Trajectory clustering.\n */\nclass TrajectoryClass {\n /**\n * Serialize to JSON.\n * @returns JSON serialization\n */\n serialize() {\n const jsonObject = {};\n jsonObject.descriptors = this._descriptors.map((desc) => desc.serialize());\n jsonObject.centroidIdx = this._centroidIdx;\n jsonObject.averageDistance = this._averageDistance;\n return JSON.stringify(jsonObject);\n }\n /**\n * Deserialize from JSON string and Alphabet. This should be the same Alphabet\n * from which the descriptors were originally created, which must be serialized and\n * deserialized independently so that it can be passed in here.\n * @param json JSON string representation\n * @param alphabet Alphabet from which TrajectoryDescriptors were originally created\n * @returns deserialized TrajectoryDescriptor\n */\n static Deserialize(json, alphabet) {\n const jsonObject = JSON.parse(json);\n const described = new TrajectoryClass();\n described._descriptors = jsonObject.descriptors.map((s) => TrajectoryDescriptor.Deserialize(s, alphabet));\n described._centroidIdx = jsonObject.centroidIdx;\n described._averageDistance = jsonObject.averageDistance;\n return described;\n }\n /**\n * Create a new DescribedTrajectory.\n * @param descriptors currently-known TrajectoryDescriptors, if any\n */\n constructor(descriptors = []) {\n this._descriptors = descriptors;\n this._centroidIdx = -1;\n this._averageDistance = 0;\n this._refreshDescription();\n }\n /**\n * Add a new TrajectoryDescriptor to the list of descriptors known to describe\n * this same DescribedTrajectory.\n * @param descriptor descriptor to be added\n */\n add(descriptor) {\n this._descriptors.push(descriptor);\n this._refreshDescription();\n }\n /**\n * Compute the cost, which is inversely related to the likelihood that the provided\n * TrajectoryDescriptor describes a Trajectory that is considered to be the same as\n * the class represented by this DescribedTrajectory.\n * @param descriptor the descriptor to be costed\n * @returns cost of the match, which is a nonnegative similarity metric where larger values indicate dissimilarity\n */\n getMatchCost(descriptor) {\n return descriptor.distance(this._descriptors[this._centroidIdx]) / this._averageDistance;\n }\n /**\n * Compute the minimum distance between the queried TrajectoryDescriptor and a\n * descriptor which is a member of this collection. This is an alternative way of\n * conceptualizing match cost from getMatchCost(), and it serves a different function.\n * @param descriptor the descriptor to find the minimum distance to\n * @returns minimum descriptor distance to a member descriptor of this DescribedTrajectory\n */\n getMatchMinimumDistance(descriptor) {\n return Math.min(...this._descriptors.map((desc) => desc.distance(descriptor)));\n }\n /**\n * Refreshes the internal representation of this DescribedTrajectory.\n */\n _refreshDescription() {\n this._centroidIdx = -1;\n let sum;\n const distances = this._descriptors.map((a) => {\n sum = 0;\n this._descriptors.forEach((b) => {\n sum += a.distance(b);\n });\n return sum;\n });\n for (let idx = 0; idx < distances.length; ++idx) {\n if (this._centroidIdx < 0 || distances[idx] < distances[this._centroidIdx]) {\n this._centroidIdx = idx;\n }\n }\n this._averageDistance = 0;\n this._descriptors.forEach((desc) => {\n this._averageDistance += desc.distance(this._descriptors[this._centroidIdx]);\n });\n if (this._descriptors.length > 0) {\n this._averageDistance = Math.max(this._averageDistance / this._descriptors.length, TrajectoryClass._MIN_AVERAGE_DISTANCE);\n }\n }\n}\nTrajectoryClass._MIN_AVERAGE_DISTANCE = 1;\n/**\n * Class representing a set of known, named trajectories to which Trajectories can be\n * added and using which Trajectories can be recognized.\n */\nexport class TrajectoryClassifier {\n /**\n * Serialize to JSON.\n * @returns JSON serialization\n */\n serialize() {\n const jsonObject = {};\n jsonObject.maximumAllowableMatchCost = this._maximumAllowableMatchCost;\n jsonObject.vector3Alphabet = this._vector3Alphabet.serialize();\n jsonObject.levenshteinAlphabet = this._levenshteinAlphabet.serialize();\n jsonObject.nameToDescribedTrajectory = [];\n this._nameToDescribedTrajectory.forEach((described, name) => {\n jsonObject.nameToDescribedTrajectory.push(name);\n jsonObject.nameToDescribedTrajectory.push(described.serialize());\n });\n return JSON.stringify(jsonObject);\n }\n /**\n * Deserialize from JSON.\n * @param json JSON serialization\n * @returns deserialized TrajectorySet\n */\n static Deserialize(json) {\n const jsonObject = JSON.parse(json);\n const classifier = new TrajectoryClassifier();\n classifier._maximumAllowableMatchCost = jsonObject.maximumAllowableMatchCost;\n classifier._vector3Alphabet = Vector3Alphabet.Deserialize(jsonObject.vector3Alphabet);\n classifier._levenshteinAlphabet = Levenshtein.Alphabet.Deserialize(jsonObject.levenshteinAlphabet);\n for (let idx = 0; idx < jsonObject.nameToDescribedTrajectory.length; idx += 2) {\n classifier._nameToDescribedTrajectory.set(jsonObject.nameToDescribedTrajectory[idx], TrajectoryClass.Deserialize(jsonObject.nameToDescribedTrajectory[idx + 1], classifier._levenshteinAlphabet));\n }\n return classifier;\n }\n /**\n * Initialize a new empty TrajectorySet with auto-generated Alphabets.\n * VERY naive, need to be generating these things from known\n * sets. Better version later, probably eliminating this one.\n * @returns auto-generated TrajectorySet\n */\n static Generate() {\n const vecs = Vector3Alphabet.Generate(64, 256, 0.1, 0.001, [Vector3.Forward()]);\n const charIdxs = new Array(vecs.chars.length);\n for (let idx = 0; idx < charIdxs.length; ++idx) {\n charIdxs[idx] = idx;\n }\n const alphabet = new Levenshtein.Alphabet(charIdxs, (idx) => (idx === 0 ? 0 : 1), (idx) => (idx === 0 ? 0 : 1), (a, b) => Math.min(1 - Vector3.Dot(vecs.chars[a], vecs.chars[b]), 1));\n const trajectorySet = new TrajectoryClassifier();\n trajectorySet._vector3Alphabet = vecs;\n trajectorySet._levenshteinAlphabet = alphabet;\n return trajectorySet;\n }\n constructor() {\n this._maximumAllowableMatchCost = 4;\n this._nameToDescribedTrajectory = new Map();\n }\n /**\n * Add a new Trajectory to the set with a given name.\n * @param trajectory new Trajectory to be added\n * @param classification name to which to add the Trajectory\n */\n addTrajectoryToClassification(trajectory, classification) {\n if (!this._nameToDescribedTrajectory.has(classification)) {\n this._nameToDescribedTrajectory.set(classification, new TrajectoryClass());\n }\n this._nameToDescribedTrajectory.get(classification).add(TrajectoryDescriptor.CreateFromTrajectory(trajectory, this._vector3Alphabet, this._levenshteinAlphabet));\n }\n /**\n * Remove a known named trajectory and all Trajectories associated with it.\n * @param classification name to remove\n * @returns whether anything was removed\n */\n deleteClassification(classification) {\n return this._nameToDescribedTrajectory.delete(classification);\n }\n /**\n * Attempt to recognize a Trajectory from among all the classifications\n * already known to the classifier.\n * @param trajectory Trajectory to be recognized\n * @returns classification of Trajectory if recognized, null otherwise\n */\n classifyTrajectory(trajectory) {\n const descriptor = TrajectoryDescriptor.CreateFromTrajectory(trajectory, this._vector3Alphabet, this._levenshteinAlphabet);\n const allowableMatches = [];\n this._nameToDescribedTrajectory.forEach((trajectoryClass, classification) => {\n if (trajectoryClass.getMatchCost(descriptor) < this._maximumAllowableMatchCost) {\n allowableMatches.push(classification);\n }\n });\n if (allowableMatches.length === 0) {\n return null;\n }\n let bestIdx = 0;\n let bestMatch = this._nameToDescribedTrajectory.get(allowableMatches[bestIdx]).getMatchMinimumDistance(descriptor);\n let match;\n for (let idx = 0; idx < allowableMatches.length; ++idx) {\n match = this._nameToDescribedTrajectory.get(allowableMatches[idx]).getMatchMinimumDistance(descriptor);\n if (match < bestMatch) {\n bestMatch = match;\n bestIdx = idx;\n }\n }\n return allowableMatches[bestIdx];\n }\n}\n","const growthFactor = 1.5;\n/**\n * A class acting as a dynamic float32array used in the performance viewer\n */\nexport class DynamicFloat32Array {\n /**\n * Creates a new DynamicFloat32Array with the desired item capacity.\n * @param itemCapacity The initial item capacity you would like to set for the array.\n */\n constructor(itemCapacity) {\n this._view = new Float32Array(itemCapacity);\n this._itemLength = 0;\n }\n /**\n * The number of items currently in the array.\n */\n get itemLength() {\n return this._itemLength;\n }\n /**\n * Gets value at index, NaN if no such index exists.\n * @param index the index to get the value at.\n * @returns the value at the index provided.\n */\n at(index) {\n if (index < 0 || index >= this._itemLength) {\n return NaN;\n }\n return this._view[index];\n }\n /**\n * Gets a view of the original array from start to end (exclusive of end).\n * @param start starting index.\n * @param end ending index.\n * @returns a subarray of the original array.\n */\n subarray(start, end) {\n if (start >= end || start < 0) {\n return new Float32Array(0);\n }\n if (end > this._itemLength) {\n end = this._itemLength;\n }\n return this._view.subarray(start, end);\n }\n /**\n * Pushes items to the end of the array.\n * @param item The item to push into the array.\n */\n push(item) {\n this._view[this._itemLength] = item;\n this._itemLength++;\n if (this._itemLength >= this._view.length) {\n this._growArray();\n }\n }\n /**\n * Grows the array by the growth factor when necessary.\n */\n _growArray() {\n const newCapacity = Math.floor(this._view.length * growthFactor);\n const view = new Float32Array(newCapacity);\n view.set(this._view);\n this._view = view;\n }\n}\n","import { EventState, Observable } from \"../observable.js\";\nimport { PrecisionDate } from \"../precisionDate.js\";\nimport { Tools } from \"../tools.js\";\nimport { DynamicFloat32Array } from \"./dynamicFloat32Array.js\";\n// the initial size of our array, should be a multiple of two!\nconst InitialArraySize = 1800;\n// three octets in a hexcode. #[AA][BB][CC], i.e. 24 bits of data.\nconst NumberOfBitsInHexcode = 24;\n// Allows single numeral hex numbers to be appended by a 0.\nconst HexPadding = \"0\";\n// header for the timestamp column\nconst TimestampColHeader = \"timestamp\";\n// header for the numPoints column\nconst NumPointsColHeader = \"numPoints\";\n// regex to capture all carriage returns in the string.\nconst CarriageReturnRegex = /\\r/g;\n// string to use as separator when exporting extra information along with the dataset id\nconst ExportedDataSeparator = \"@\";\n/**\n * The collector class handles the collection and storage of data into the appropriate array.\n * The collector also handles notifying any observers of any updates.\n */\nexport class PerformanceViewerCollector {\n /**\n * The offset for when actual data values start appearing inside a slice.\n */\n static get SliceDataOffset() {\n return 2;\n }\n /**\n * The offset for the value of the number of points inside a slice.\n */\n static get NumberOfPointsOffset() {\n return 1;\n }\n /**\n * Handles the creation of a performance viewer collector.\n * @param _scene the scene to collect on.\n * @param _enabledStrategyCallbacks the list of data to collect with callbacks for initialization purposes.\n */\n constructor(_scene, _enabledStrategyCallbacks) {\n this._scene = _scene;\n /**\n * Collects data for every dataset by using the appropriate strategy. This is called every frame.\n * This method will then notify all observers with the latest slice.\n */\n this._collectDataAtFrame = () => {\n const timestamp = PrecisionDate.Now - this._startingTimestamp;\n const numPoints = this.datasets.ids.length;\n // add the starting index for the slice\n const numberOfIndices = this.datasets.startingIndices.itemLength;\n let startingIndex = 0;\n if (numberOfIndices > 0) {\n const previousStartingIndex = this.datasets.startingIndices.at(numberOfIndices - 1);\n startingIndex =\n previousStartingIndex + this.datasets.data.at(previousStartingIndex + PerformanceViewerCollector.NumberOfPointsOffset) + PerformanceViewerCollector.SliceDataOffset;\n }\n this.datasets.startingIndices.push(startingIndex);\n // add the first 2 items in our slice.\n this.datasets.data.push(timestamp);\n this.datasets.data.push(numPoints);\n // add the values inside the slice.\n this.datasets.ids.forEach((id) => {\n const strategy = this._strategies.get(id);\n if (!strategy) {\n return;\n }\n this.datasets.data.push(strategy.getData());\n });\n if (this.datasetObservable.hasObservers()) {\n const slice = [timestamp, numPoints];\n for (let i = 0; i < numPoints; i++) {\n slice.push(this.datasets.data.at(startingIndex + PerformanceViewerCollector.SliceDataOffset + i));\n }\n this.datasetObservable.notifyObservers(slice);\n }\n };\n this.datasets = {\n ids: [],\n data: new DynamicFloat32Array(InitialArraySize),\n startingIndices: new DynamicFloat32Array(InitialArraySize),\n };\n this._strategies = new Map();\n this._datasetMeta = new Map();\n this._eventRestoreSet = new Set();\n this._customEventObservable = new Observable();\n this.datasetObservable = new Observable();\n this.metadataObservable = new Observable((observer) => observer.callback(this._datasetMeta, new EventState(0)));\n if (_enabledStrategyCallbacks) {\n this.addCollectionStrategies(..._enabledStrategyCallbacks);\n }\n }\n /**\n * Registers a custom string event which will be callable via sendEvent. This method returns an event object which will contain the id of the event.\n * The user can set a value optionally, which will be used in the sendEvent method. If the value is set, we will record this value at the end of each frame,\n * if not we will increment our counter and record the value of the counter at the end of each frame. The value recorded is 0 if no sendEvent method is called, within a frame.\n * @param name The name of the event to register\n * @param forceUpdate if the code should force add an event, and replace the last one.\n * @param category the category for that event\n * @returns The event registered, used in sendEvent\n */\n registerEvent(name, forceUpdate, category) {\n if (this._strategies.has(name) && !forceUpdate) {\n return;\n }\n if (this._strategies.has(name) && forceUpdate) {\n this._strategies.get(name)?.dispose();\n this._strategies.delete(name);\n }\n const strategy = (scene) => {\n let counter = 0;\n let value = 0;\n const afterRenderObserver = scene.onAfterRenderObservable.add(() => {\n value = counter;\n counter = 0;\n });\n const stringObserver = this._customEventObservable.add((eventVal) => {\n if (name !== eventVal.name) {\n return;\n }\n if (eventVal.value !== undefined) {\n counter = eventVal.value;\n }\n else {\n counter++;\n }\n });\n return {\n id: name,\n getData: () => value,\n dispose: () => {\n scene.onAfterRenderObservable.remove(afterRenderObserver);\n this._customEventObservable.remove(stringObserver);\n },\n };\n };\n const event = {\n name,\n };\n this._eventRestoreSet.add(name);\n this.addCollectionStrategies({ strategyCallback: strategy, category });\n return event;\n }\n /**\n * Lets the perf collector handle an event, occurences or event value depending on if the event.value params is set.\n * @param event the event to handle an occurence for\n */\n sendEvent(event) {\n this._customEventObservable.notifyObservers(event);\n }\n /**\n * This event restores all custom string events if necessary.\n */\n _restoreStringEvents() {\n if (this._eventRestoreSet.size !== this._customEventObservable.observers.length) {\n this._eventRestoreSet.forEach((event) => {\n this.registerEvent(event, true);\n });\n }\n }\n /**\n * This method adds additional collection strategies for data collection purposes.\n * @param strategyCallbacks the list of data to collect with callbacks.\n */\n addCollectionStrategies(...strategyCallbacks) {\n // eslint-disable-next-line prefer-const\n for (let { strategyCallback, category, hidden } of strategyCallbacks) {\n const strategy = strategyCallback(this._scene);\n if (this._strategies.has(strategy.id)) {\n strategy.dispose();\n continue;\n }\n this.datasets.ids.push(strategy.id);\n if (category) {\n category = category.replace(new RegExp(ExportedDataSeparator, \"g\"), \"\");\n }\n this._datasetMeta.set(strategy.id, {\n color: this._getHexColorFromId(strategy.id),\n category,\n hidden,\n });\n this._strategies.set(strategy.id, strategy);\n }\n this.metadataObservable.notifyObservers(this._datasetMeta);\n }\n /**\n * Gets a 6 character hexcode representing the colour from a passed in string.\n * @param id the string to get a hex code for.\n * @returns a hexcode hashed from the id.\n */\n _getHexColorFromId(id) {\n // this first bit is just a known way of hashing a string.\n let hash = 0;\n for (let i = 0; i < id.length; i++) {\n // (hash << 5) - hash is the same as hash * 31\n hash = id.charCodeAt(i) + ((hash << 5) - hash);\n }\n // then we build the string octet by octet.\n let hex = \"#\";\n for (let i = 0; i < NumberOfBitsInHexcode; i += 8) {\n const octet = (hash >> i) & 0xff;\n const toStr = HexPadding + octet.toString(16);\n hex += toStr.substring(toStr.length - 2);\n }\n return hex;\n }\n /**\n * Collects and then sends the latest slice to any observers by using the appropriate strategy when the user wants.\n * The slice will be of the form [timestamp, numberOfPoints, value1, value2...]\n * This method does not add onto the collected data accessible via the datasets variable.\n */\n getCurrentSlice() {\n const timestamp = PrecisionDate.Now - this._startingTimestamp;\n const numPoints = this.datasets.ids.length;\n const slice = [timestamp, numPoints];\n // add the values inside the slice.\n this.datasets.ids.forEach((id) => {\n const strategy = this._strategies.get(id);\n if (!strategy) {\n return;\n }\n if (this.datasetObservable.hasObservers()) {\n slice.push(strategy.getData());\n }\n });\n if (this.datasetObservable.hasObservers()) {\n this.datasetObservable.notifyObservers(slice);\n }\n }\n /**\n * Updates a property for a dataset's metadata with the value provided.\n * @param id the id of the dataset which needs its metadata updated.\n * @param prop the property to update.\n * @param value the value to update the property with.\n */\n updateMetadata(id, prop, value) {\n const meta = this._datasetMeta.get(id);\n if (!meta) {\n return;\n }\n meta[prop] = value;\n this.metadataObservable.notifyObservers(this._datasetMeta);\n }\n /**\n * Completely clear, data, ids, and strategies saved to this performance collector.\n * @param preserveStringEventsRestore if it should preserve the string events, by default will clear string events registered when called.\n */\n clear(preserveStringEventsRestore) {\n this.datasets.data = new DynamicFloat32Array(InitialArraySize);\n this.datasets.ids.length = 0;\n this.datasets.startingIndices = new DynamicFloat32Array(InitialArraySize);\n this._datasetMeta.clear();\n this._strategies.forEach((strategy) => strategy.dispose());\n this._strategies.clear();\n if (!preserveStringEventsRestore) {\n this._eventRestoreSet.clear();\n }\n this._hasLoadedData = false;\n }\n /**\n * Accessor which lets the caller know if the performance collector has data loaded from a file or not!\n * Call clear() to reset this value.\n * @returns true if the data is loaded from a file, false otherwise.\n */\n get hasLoadedData() {\n return this._hasLoadedData;\n }\n /**\n * Given a string containing file data, this function parses the file data into the datasets object.\n * It returns a boolean to indicate if this object was successfully loaded with the data.\n * @param data string content representing the file data.\n * @param keepDatasetMeta if it should use reuse the existing dataset metadata\n * @returns true if the data was successfully loaded, false otherwise.\n */\n loadFromFileData(data, keepDatasetMeta) {\n const lines = data\n .replace(CarriageReturnRegex, \"\")\n .split(\"\\n\")\n .map((line) => line.split(\",\").filter((s) => s.length > 0))\n .filter((line) => line.length > 0);\n const timestampIndex = 0;\n const numPointsIndex = PerformanceViewerCollector.NumberOfPointsOffset;\n if (lines.length < 2) {\n return false;\n }\n const parsedDatasets = {\n ids: [],\n data: new DynamicFloat32Array(InitialArraySize),\n startingIndices: new DynamicFloat32Array(InitialArraySize),\n };\n // parse first line separately to populate ids!\n const [firstLine, ...dataLines] = lines;\n // make sure we have the correct beginning headers\n if (firstLine.length < 2 || firstLine[timestampIndex] !== TimestampColHeader || firstLine[numPointsIndex] !== NumPointsColHeader) {\n return false;\n }\n const idCategoryMap = new Map();\n // populate the ids.\n for (let i = PerformanceViewerCollector.SliceDataOffset; i < firstLine.length; i++) {\n const [id, category] = firstLine[i].split(ExportedDataSeparator);\n parsedDatasets.ids.push(id);\n idCategoryMap.set(id, category);\n }\n let startingIndex = 0;\n for (const line of dataLines) {\n if (line.length < 2) {\n return false;\n }\n const timestamp = parseFloat(line[timestampIndex]);\n const numPoints = parseInt(line[numPointsIndex]);\n if (isNaN(numPoints) || isNaN(timestamp)) {\n return false;\n }\n parsedDatasets.data.push(timestamp);\n parsedDatasets.data.push(numPoints);\n if (numPoints + PerformanceViewerCollector.SliceDataOffset !== line.length) {\n return false;\n }\n for (let i = PerformanceViewerCollector.SliceDataOffset; i < line.length; i++) {\n const val = parseFloat(line[i]);\n if (isNaN(val)) {\n return false;\n }\n parsedDatasets.data.push(val);\n }\n parsedDatasets.startingIndices.push(startingIndex);\n startingIndex += line.length;\n }\n this.datasets.ids = parsedDatasets.ids;\n this.datasets.data = parsedDatasets.data;\n this.datasets.startingIndices = parsedDatasets.startingIndices;\n if (!keepDatasetMeta) {\n this._datasetMeta.clear();\n }\n this._strategies.forEach((strategy) => strategy.dispose());\n this._strategies.clear();\n // populate metadata.\n if (!keepDatasetMeta) {\n for (const id of this.datasets.ids) {\n const category = idCategoryMap.get(id);\n this._datasetMeta.set(id, { category, color: this._getHexColorFromId(id) });\n }\n }\n this.metadataObservable.notifyObservers(this._datasetMeta);\n this._hasLoadedData = true;\n return true;\n }\n /**\n * Exports the datasets inside of the collector to a csv.\n */\n exportDataToCsv() {\n let csvContent = \"\";\n // create the header line.\n csvContent += `${TimestampColHeader},${NumPointsColHeader}`;\n for (let i = 0; i < this.datasets.ids.length; i++) {\n csvContent += `,${this.datasets.ids[i]}`;\n if (this._datasetMeta) {\n const meta = this._datasetMeta.get(this.datasets.ids[i]);\n if (meta?.category) {\n csvContent += `${ExportedDataSeparator}${meta.category}`;\n }\n }\n }\n csvContent += \"\\n\";\n // create the data lines\n for (let i = 0; i < this.datasets.startingIndices.itemLength; i++) {\n const startingIndex = this.datasets.startingIndices.at(i);\n const timestamp = this.datasets.data.at(startingIndex);\n const numPoints = this.datasets.data.at(startingIndex + PerformanceViewerCollector.NumberOfPointsOffset);\n csvContent += `${timestamp},${numPoints}`;\n for (let offset = 0; offset < numPoints; offset++) {\n csvContent += `,${this.datasets.data.at(startingIndex + PerformanceViewerCollector.SliceDataOffset + offset)}`;\n }\n // add extra commas.\n for (let diff = 0; diff < this.datasets.ids.length - numPoints; diff++) {\n csvContent += \",\";\n }\n csvContent += \"\\n\";\n }\n const fileName = `${new Date().toISOString()}-perfdata.csv`;\n Tools.Download(new Blob([csvContent], { type: \"text/csv\" }), fileName);\n }\n /**\n * Starts the realtime collection of data.\n * @param shouldPreserve optional boolean param, if set will preserve the dataset between calls of start.\n */\n start(shouldPreserve) {\n if (!shouldPreserve) {\n this.datasets.data = new DynamicFloat32Array(InitialArraySize);\n this.datasets.startingIndices = new DynamicFloat32Array(InitialArraySize);\n this._startingTimestamp = PrecisionDate.Now;\n }\n else if (this._startingTimestamp === undefined) {\n this._startingTimestamp = PrecisionDate.Now;\n }\n this._scene.onAfterRenderObservable.add(this._collectDataAtFrame);\n this._restoreStringEvents();\n this._isStarted = true;\n }\n /**\n * Stops the collection of data.\n */\n stop() {\n this._scene.onAfterRenderObservable.removeCallback(this._collectDataAtFrame);\n this._isStarted = false;\n }\n /**\n * Returns if the perf collector has been started or not.\n */\n get isStarted() {\n return this._isStarted;\n }\n /**\n * Disposes of the object\n */\n dispose() {\n this._scene.onAfterRenderObservable.removeCallback(this._collectDataAtFrame);\n this._datasetMeta.clear();\n this._strategies.forEach((strategy) => {\n strategy.dispose();\n });\n this.datasetObservable.clear();\n this.metadataObservable.clear();\n this._isStarted = false;\n this.datasets = null;\n }\n}\n","import { Scene } from \"../../scene.js\";\nimport { PerformanceViewerCollector } from \"./performanceViewerCollector.js\";\nScene.prototype.getPerfCollector = function () {\n if (!this._perfCollector) {\n this._perfCollector = new PerformanceViewerCollector(this);\n }\n return this._perfCollector;\n};\n","import { Observable } from \"./observable.js\";\nimport { runCoroutineAsync, inlineScheduler } from \"./coroutine.js\";\nfunction CreateObservableScheduler(observable) {\n const coroutines = new Array();\n const onSteps = new Array();\n const onErrors = new Array();\n const observer = observable.add(() => {\n const count = coroutines.length;\n for (let i = 0; i < count; i++) {\n inlineScheduler(coroutines.shift(), onSteps.shift(), onErrors.shift());\n }\n });\n const scheduler = (coroutine, onStep, onError) => {\n coroutines.push(coroutine);\n onSteps.push(onStep);\n onErrors.push(onError);\n };\n return {\n scheduler: scheduler,\n dispose: () => {\n observable.remove(observer);\n },\n };\n}\nObservable.prototype.runCoroutineAsync = function (coroutine) {\n if (!this._coroutineScheduler) {\n const schedulerAndDispose = CreateObservableScheduler(this);\n this._coroutineScheduler = schedulerAndDispose.scheduler;\n this._coroutineSchedulerDispose = schedulerAndDispose.dispose;\n }\n return runCoroutineAsync(coroutine, this._coroutineScheduler);\n};\nObservable.prototype.cancelAllCoroutines = function () {\n if (this._coroutineSchedulerDispose) {\n this._coroutineSchedulerDispose();\n }\n this._coroutineScheduler = undefined;\n this._coroutineSchedulerDispose = undefined;\n};\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"equirectangularPanoramaPixelShader\";\nconst shader = `#ifdef GL_ES\nprecision highp float;\n#endif\n#define M_PI 3.1415926535897932384626433832795\nvarying vec2 vUV;uniform samplerCube cubeMap;void main(void) {vec2 uv=vUV;float longitude=uv.x*2.*M_PI-M_PI+M_PI/2.;float latitude=(1.-uv.y)*M_PI;vec3 dir=vec3(\n- sin( longitude )*sin( latitude ),\ncos( latitude ),\n- cos( longitude )*sin( latitude )\n);normalize( dir );gl_FragColor=textureCube( cubeMap,dir );}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const equirectangularPanoramaPixelShader = { name, shader };\n","import { Tools } from \"../Misc/tools.js\";\nimport { Logger } from \"../Misc/logger.js\";\nimport { GetTGAHeader } from \"../Misc/tga.js\";\nimport { WebRequest } from \"../Misc/webRequest.js\";\nimport { AbstractEngine } from \"../Engines/abstractEngine.js\";\n// Sets the default offline provider to Babylon.js\nAbstractEngine.OfflineProviderFactory = (urlToScene, callbackManifestChecked, disableManifestCheck = false) => {\n return new Database(urlToScene, callbackManifestChecked, disableManifestCheck);\n};\n/**\n * Class used to enable access to IndexedDB\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimizeCached\n */\nexport class Database {\n /**\n * Gets a boolean indicating if scene must be saved in the database\n */\n get enableSceneOffline() {\n return this._enableSceneOffline;\n }\n /**\n * Gets a boolean indicating if textures must be saved in the database\n */\n get enableTexturesOffline() {\n return this._enableTexturesOffline;\n }\n /**\n * Creates a new Database\n * @param urlToScene defines the url to load the scene\n * @param callbackManifestChecked defines the callback to use when manifest is checked\n * @param disableManifestCheck defines a boolean indicating that we want to skip the manifest validation (it will be considered validated and up to date)\n */\n constructor(urlToScene, callbackManifestChecked, disableManifestCheck = false) {\n // Handling various flavors of prefixed version of IndexedDB\n this._idbFactory = (typeof indexedDB !== \"undefined\" ? indexedDB : undefined);\n this._currentSceneUrl = Database._ReturnFullUrlLocation(urlToScene);\n this._db = null;\n this._enableSceneOffline = false;\n this._enableTexturesOffline = false;\n this._manifestVersionFound = 0;\n this._mustUpdateRessources = false;\n this._hasReachedQuota = false;\n if (!Database.IDBStorageEnabled) {\n callbackManifestChecked(true);\n }\n else {\n if (disableManifestCheck) {\n this._enableSceneOffline = true;\n this._enableTexturesOffline = true;\n this._manifestVersionFound = 1;\n Tools.SetImmediate(() => {\n callbackManifestChecked(true);\n });\n }\n else {\n this._checkManifestFile(callbackManifestChecked);\n }\n }\n }\n _checkManifestFile(callbackManifestChecked) {\n const noManifestFile = () => {\n this._enableSceneOffline = false;\n this._enableTexturesOffline = false;\n callbackManifestChecked(false);\n };\n const createManifestURL = () => {\n try {\n // make sure we have a valid URL.\n if (typeof URL === \"function\" && this._currentSceneUrl.indexOf(\"http\") === 0) {\n // we don't have the base url, so the URL string must have a protocol\n const url = new URL(this._currentSceneUrl);\n url.pathname += \".manifest\";\n return url.toString();\n }\n }\n catch (e) {\n // defensive - if this fails for any reason, fall back to the older method\n }\n return `${this._currentSceneUrl}.manifest`;\n };\n let timeStampUsed = false;\n let manifestURL = createManifestURL();\n const xhr = new WebRequest();\n if (navigator.onLine) {\n // Adding a timestamp to by-pass browsers' cache\n timeStampUsed = true;\n manifestURL = manifestURL + (manifestURL.match(/\\?/) == null ? \"?\" : \"&\") + Date.now();\n }\n xhr.open(\"GET\", manifestURL);\n xhr.addEventListener(\"load\", () => {\n if (xhr.status === 200 || Database._ValidateXHRData(xhr, 1)) {\n try {\n const manifestFile = JSON.parse(xhr.response);\n this._enableSceneOffline = manifestFile.enableSceneOffline;\n this._enableTexturesOffline = manifestFile.enableTexturesOffline && Database._IsUASupportingBlobStorage;\n if (manifestFile.version && !isNaN(parseInt(manifestFile.version))) {\n this._manifestVersionFound = manifestFile.version;\n }\n callbackManifestChecked(true);\n }\n catch (ex) {\n noManifestFile();\n }\n }\n else {\n noManifestFile();\n }\n }, false);\n xhr.addEventListener(\"error\", () => {\n if (timeStampUsed) {\n timeStampUsed = false;\n // Let's retry without the timeStamp\n // It could fail when coupled with HTML5 Offline API\n const retryManifestURL = createManifestURL();\n xhr.open(\"GET\", retryManifestURL);\n xhr.send();\n }\n else {\n noManifestFile();\n }\n }, false);\n try {\n xhr.send();\n }\n catch (ex) {\n Logger.Error(\"Error on XHR send request.\");\n callbackManifestChecked(false);\n }\n }\n /**\n * Open the database and make it available\n * @param successCallback defines the callback to call on success\n * @param errorCallback defines the callback to call on error\n */\n open(successCallback, errorCallback) {\n const handleError = () => {\n this._isSupported = false;\n if (errorCallback) {\n errorCallback();\n }\n };\n if (!this._idbFactory || !(this._enableSceneOffline || this._enableTexturesOffline)) {\n // Your browser doesn't support IndexedDB\n this._isSupported = false;\n if (errorCallback) {\n errorCallback();\n }\n }\n else {\n // If the DB hasn't been opened or created yet\n if (!this._db) {\n this._hasReachedQuota = false;\n this._isSupported = true;\n const request = this._idbFactory.open(\"babylonjs\", 1);\n // Could occur if user is blocking the quota for the DB and/or doesn't grant access to IndexedDB\n request.onerror = () => {\n handleError();\n };\n // executes when a version change transaction cannot complete due to other active transactions\n request.onblocked = () => {\n Logger.Error(\"IDB request blocked. Please reload the page.\");\n handleError();\n };\n // DB has been opened successfully\n request.onsuccess = () => {\n this._db = request.result;\n successCallback();\n };\n // Initialization of the DB. Creating Scenes & Textures stores\n request.onupgradeneeded = (event) => {\n this._db = event.target.result;\n if (this._db) {\n try {\n this._db.createObjectStore(\"scenes\", { keyPath: \"sceneUrl\" });\n this._db.createObjectStore(\"versions\", { keyPath: \"sceneUrl\" });\n this._db.createObjectStore(\"textures\", { keyPath: \"textureUrl\" });\n }\n catch (ex) {\n Logger.Error(\"Error while creating object stores. Exception: \" + ex.message);\n handleError();\n }\n }\n };\n }\n // DB has already been created and opened\n else {\n if (successCallback) {\n successCallback();\n }\n }\n }\n }\n /**\n * Loads an image from the database\n * @param url defines the url to load from\n * @param image defines the target DOM image\n */\n loadImage(url, image) {\n const completeURL = Database._ReturnFullUrlLocation(url);\n const saveAndLoadImage = () => {\n if (!this._hasReachedQuota && this._db !== null) {\n // the texture is not yet in the DB, let's try to save it\n this._saveImageIntoDBAsync(completeURL, image);\n }\n // If the texture is not in the DB and we've reached the DB quota limit\n // let's load it directly from the web\n else {\n image.src = url;\n }\n };\n if (!this._mustUpdateRessources) {\n this._loadImageFromDBAsync(completeURL, image, saveAndLoadImage);\n }\n // First time we're download the images or update requested in the manifest file by a version change\n else {\n saveAndLoadImage();\n }\n }\n _loadImageFromDBAsync(url, image, notInDBCallback) {\n if (this._isSupported && this._db !== null) {\n let texture;\n const transaction = this._db.transaction([\"textures\"]);\n transaction.onabort = () => {\n image.src = url;\n };\n transaction.oncomplete = () => {\n let blobTextureURL;\n if (texture && typeof URL === \"function\") {\n blobTextureURL = URL.createObjectURL(texture.data);\n image.onerror = () => {\n Logger.Error(\"Error loading image from blob URL: \" + blobTextureURL + \" switching back to web url: \" + url);\n image.src = url;\n };\n image.src = blobTextureURL;\n }\n else {\n notInDBCallback();\n }\n };\n const getRequest = transaction.objectStore(\"textures\").get(url);\n getRequest.onsuccess = (event) => {\n texture = event.target.result;\n };\n getRequest.onerror = () => {\n Logger.Error(\"Error loading texture \" + url + \" from DB.\");\n image.src = url;\n };\n }\n else {\n Logger.Error(\"Error: IndexedDB not supported by your browser or BabylonJS Database is not open.\");\n image.src = url;\n }\n }\n _saveImageIntoDBAsync(url, image) {\n let blob;\n if (this._isSupported) {\n // In case of error (type not supported or quota exceeded), we're at least sending back XHR data to allow texture loading later on\n const generateBlobUrl = () => {\n let blobTextureURL;\n if (blob && typeof URL === \"function\") {\n try {\n blobTextureURL = URL.createObjectURL(blob);\n }\n catch (ex) {\n // Chrome is raising a type error if we're setting the oneTimeOnly parameter\n blobTextureURL = URL.createObjectURL(blob);\n }\n }\n if (blobTextureURL) {\n image.src = blobTextureURL;\n }\n };\n if (Database._IsUASupportingBlobStorage) {\n // Create XHR\n const xhr = new WebRequest();\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.addEventListener(\"load\", () => {\n if (xhr.status === 200 && this._db) {\n // Blob as response\n blob = xhr.response;\n const transaction = this._db.transaction([\"textures\"], \"readwrite\");\n // the transaction could abort because of a QuotaExceededError error\n transaction.onabort = (event) => {\n try {\n //backwards compatibility with ts 1.0, srcElement doesn't have an \"error\" according to ts 1.3\n const srcElement = event.target;\n const error = srcElement.error;\n if (error && error.name === \"QuotaExceededError\") {\n this._hasReachedQuota = true;\n }\n }\n catch (ex) { }\n generateBlobUrl();\n };\n transaction.oncomplete = () => {\n generateBlobUrl();\n };\n const newTexture = { textureUrl: url, data: blob };\n try {\n // Put the blob into the dabase\n const addRequest = transaction.objectStore(\"textures\").put(newTexture);\n addRequest.onsuccess = () => { };\n addRequest.onerror = () => {\n generateBlobUrl();\n };\n }\n catch (ex) {\n // \"DataCloneError\" generated by Chrome when you try to inject blob into IndexedDB\n if (ex.code === 25) {\n Database._IsUASupportingBlobStorage = false;\n this._enableTexturesOffline = false;\n }\n image.src = url;\n }\n }\n else {\n image.src = url;\n }\n }, false);\n xhr.addEventListener(\"error\", () => {\n Logger.Error(\"Error in XHR request in BABYLON.Database.\");\n image.src = url;\n }, false);\n xhr.send();\n }\n else {\n image.src = url;\n }\n }\n else {\n Logger.Error(\"Error: IndexedDB not supported by your browser or Babylon.js database is not open.\");\n image.src = url;\n }\n }\n _checkVersionFromDB(url, versionLoaded) {\n const updateVersion = () => {\n // the version is not yet in the DB or we need to update it\n this._saveVersionIntoDBAsync(url, versionLoaded);\n };\n this._loadVersionFromDBAsync(url, versionLoaded, updateVersion);\n }\n _loadVersionFromDBAsync(url, callback, updateInDBCallback) {\n if (this._isSupported && this._db) {\n let version;\n try {\n const transaction = this._db.transaction([\"versions\"]);\n transaction.oncomplete = () => {\n if (version) {\n // If the version in the JSON file is different from the version in DB\n if (this._manifestVersionFound !== version.data) {\n this._mustUpdateRessources = true;\n updateInDBCallback();\n }\n else {\n callback(version.data);\n }\n }\n // version was not found in DB\n else {\n this._mustUpdateRessources = true;\n updateInDBCallback();\n }\n };\n transaction.onabort = () => {\n callback(-1);\n };\n const getRequest = transaction.objectStore(\"versions\").get(url);\n getRequest.onsuccess = (event) => {\n version = event.target.result;\n };\n getRequest.onerror = () => {\n Logger.Error(\"Error loading version for scene \" + url + \" from DB.\");\n callback(-1);\n };\n }\n catch (ex) {\n Logger.Error(\"Error while accessing 'versions' object store (READ OP). Exception: \" + ex.message);\n callback(-1);\n }\n }\n else {\n Logger.Error(\"Error: IndexedDB not supported by your browser or Babylon.js database is not open.\");\n callback(-1);\n }\n }\n _saveVersionIntoDBAsync(url, callback) {\n if (this._isSupported && !this._hasReachedQuota && this._db) {\n try {\n // Open a transaction to the database\n const transaction = this._db.transaction([\"versions\"], \"readwrite\");\n // the transaction could abort because of a QuotaExceededError error\n transaction.onabort = (event) => {\n try {\n //backwards compatibility with ts 1.0, srcElement doesn't have an \"error\" according to ts 1.3\n const error = event.target[\"error\"];\n if (error && error.name === \"QuotaExceededError\") {\n this._hasReachedQuota = true;\n }\n }\n catch (ex) { }\n callback(-1);\n };\n transaction.oncomplete = () => {\n callback(this._manifestVersionFound);\n };\n const newVersion = { sceneUrl: url, data: this._manifestVersionFound };\n // Put the scene into the database\n const addRequest = transaction.objectStore(\"versions\").put(newVersion);\n addRequest.onsuccess = () => { };\n addRequest.onerror = () => {\n Logger.Error(\"Error in DB add version request in BABYLON.Database.\");\n };\n }\n catch (ex) {\n Logger.Error(\"Error while accessing 'versions' object store (WRITE OP). Exception: \" + ex.message);\n callback(-1);\n }\n }\n else {\n callback(-1);\n }\n }\n /**\n * Loads a file from database\n * @param url defines the URL to load from\n * @param sceneLoaded defines a callback to call on success\n * @param progressCallBack defines a callback to call when progress changed\n * @param errorCallback defines a callback to call on error\n * @param useArrayBuffer defines a boolean to use array buffer instead of text string\n */\n loadFile(url, sceneLoaded, progressCallBack, errorCallback, useArrayBuffer) {\n const completeUrl = Database._ReturnFullUrlLocation(url);\n const saveAndLoadFile = () => {\n // the scene is not yet in the DB, let's try to save it\n this._saveFileAsync(completeUrl, sceneLoaded, progressCallBack, useArrayBuffer, errorCallback);\n };\n this._checkVersionFromDB(completeUrl, (version) => {\n if (version !== -1) {\n if (!this._mustUpdateRessources) {\n this._loadFileAsync(completeUrl, sceneLoaded, saveAndLoadFile, progressCallBack);\n }\n else {\n this._saveFileAsync(completeUrl, sceneLoaded, progressCallBack, useArrayBuffer, errorCallback);\n }\n }\n else {\n if (errorCallback) {\n errorCallback();\n }\n }\n });\n }\n _loadFileAsync(url, callback, notInDBCallback, progressCallBack) {\n if (this._isSupported && this._db) {\n let targetStore;\n if (url.indexOf(\".babylon\") !== -1) {\n targetStore = \"scenes\";\n }\n else {\n targetStore = \"textures\";\n }\n let file;\n const transaction = this._db.transaction([targetStore]);\n transaction.oncomplete = () => {\n if (file) {\n if (progressCallBack) {\n const numberToLoad = file.data?.byteLength || 0;\n progressCallBack({\n total: numberToLoad,\n loaded: numberToLoad,\n lengthComputable: true,\n });\n }\n callback(file.data);\n }\n // file was not found in DB\n else {\n notInDBCallback();\n }\n };\n transaction.onabort = () => {\n notInDBCallback();\n };\n const getRequest = transaction.objectStore(targetStore).get(url);\n getRequest.onsuccess = (event) => {\n file = event.target.result;\n };\n getRequest.onerror = () => {\n Logger.Error(\"Error loading file \" + url + \" from DB.\");\n notInDBCallback();\n };\n }\n else {\n Logger.Error(\"Error: IndexedDB not supported by your browser or BabylonJS Database is not open.\");\n callback();\n }\n }\n _saveFileAsync(url, callback, progressCallback, useArrayBuffer, errorCallback) {\n if (this._isSupported) {\n let targetStore;\n if (url.indexOf(\".babylon\") !== -1) {\n targetStore = \"scenes\";\n }\n else {\n targetStore = \"textures\";\n }\n // Create XHR\n const xhr = new WebRequest();\n let fileData;\n xhr.open(\"GET\", url + (url.match(/\\?/) == null ? \"?\" : \"&\") + Date.now());\n if (useArrayBuffer) {\n xhr.responseType = \"arraybuffer\";\n }\n if (progressCallback) {\n xhr.onprogress = progressCallback;\n }\n xhr.addEventListener(\"load\", () => {\n if (xhr.status === 200 || (xhr.status < 400 && Database._ValidateXHRData(xhr, !useArrayBuffer ? 1 : 6))) {\n // Blob as response\n fileData = !useArrayBuffer ? xhr.responseText : xhr.response;\n if (!this._hasReachedQuota && this._db) {\n // Open a transaction to the database\n const transaction = this._db.transaction([targetStore], \"readwrite\");\n // the transaction could abort because of a QuotaExceededError error\n transaction.onabort = (event) => {\n try {\n //backwards compatibility with ts 1.0, srcElement doesn't have an \"error\" according to ts 1.3\n const error = event.target[\"error\"];\n if (error && error.name === \"QuotaExceededError\") {\n this._hasReachedQuota = true;\n }\n }\n catch (ex) { }\n callback(fileData);\n };\n transaction.oncomplete = () => {\n callback(fileData);\n };\n let newFile;\n if (targetStore === \"scenes\") {\n newFile = { sceneUrl: url, data: fileData, version: this._manifestVersionFound };\n }\n else {\n newFile = { textureUrl: url, data: fileData };\n }\n try {\n // Put the scene into the database\n const addRequest = transaction.objectStore(targetStore).put(newFile);\n addRequest.onsuccess = () => { };\n addRequest.onerror = () => {\n Logger.Error(\"Error in DB add file request in BABYLON.Database.\");\n };\n }\n catch (ex) {\n callback(fileData);\n }\n }\n else {\n callback(fileData);\n }\n }\n else {\n if (xhr.status >= 400 && errorCallback) {\n errorCallback(xhr);\n }\n else {\n callback();\n }\n }\n }, false);\n xhr.addEventListener(\"error\", () => {\n Logger.Error(\"error on XHR request.\");\n errorCallback && errorCallback();\n }, false);\n xhr.send();\n }\n else {\n Logger.Error(\"Error: IndexedDB not supported by your browser or Babylon.js database is not open.\");\n errorCallback && errorCallback();\n }\n }\n /**\n * Validates if xhr data is correct\n * @param xhr defines the request to validate\n * @param dataType defines the expected data type\n * @returns true if data is correct\n */\n static _ValidateXHRData(xhr, dataType = 7) {\n // 1 for text (.babylon, manifest and shaders), 2 for TGA, 4 for DDS, 7 for all\n try {\n if (dataType & 1) {\n if (xhr.responseText && xhr.responseText.length > 0) {\n return true;\n }\n else if (dataType === 1) {\n return false;\n }\n }\n if (dataType & 2) {\n // Check header width and height since there is no \"TGA\" magic number\n const tgaHeader = GetTGAHeader(xhr.response);\n if (tgaHeader.width && tgaHeader.height && tgaHeader.width > 0 && tgaHeader.height > 0) {\n return true;\n }\n else if (dataType === 2) {\n return false;\n }\n }\n if (dataType & 4) {\n // Check for the \"DDS\" magic number\n const ddsHeader = new Uint8Array(xhr.response, 0, 3);\n if (ddsHeader[0] === 68 && ddsHeader[1] === 68 && ddsHeader[2] === 83) {\n return true;\n }\n else {\n return false;\n }\n }\n }\n catch (e) {\n // Global protection\n }\n return false;\n }\n}\n/** Gets a boolean indicating if the user agent supports blob storage (this value will be updated after creating the first Database object) */\nDatabase._IsUASupportingBlobStorage = true;\n/**\n * Gets a boolean indicating if Database storage is enabled (off by default)\n */\nDatabase.IDBStorageEnabled = false;\nDatabase._ParseURL = (url) => {\n const a = document.createElement(\"a\");\n a.href = url;\n const urlWithoutHash = url.substring(0, url.lastIndexOf(\"#\"));\n const fileName = url.substring(urlWithoutHash.lastIndexOf(\"/\") + 1, url.length);\n const absLocation = url.substring(0, url.indexOf(fileName, 0));\n return absLocation;\n};\nDatabase._ReturnFullUrlLocation = (url) => {\n if (url.indexOf(\"http:/\") === -1 && url.indexOf(\"https:/\") === -1 && typeof window !== \"undefined\") {\n return Database._ParseURL(window.location.href) + url;\n }\n else {\n return url;\n }\n};\n","/** @internal */\nexport class UniformBufferEffectCommonAccessor {\n _isUbo(uboOrEffect) {\n return uboOrEffect.addUniform !== undefined;\n }\n constructor(uboOrEffect) {\n if (this._isUbo(uboOrEffect)) {\n this.setMatrix3x3 = uboOrEffect.updateMatrix3x3.bind(uboOrEffect);\n this.setMatrix2x2 = uboOrEffect.updateMatrix2x2.bind(uboOrEffect);\n this.setFloat = uboOrEffect.updateFloat.bind(uboOrEffect);\n this.setFloat2 = uboOrEffect.updateFloat2.bind(uboOrEffect);\n this.setFloat3 = uboOrEffect.updateFloat3.bind(uboOrEffect);\n this.setFloat4 = uboOrEffect.updateFloat4.bind(uboOrEffect);\n this.setFloatArray = uboOrEffect.updateFloatArray.bind(uboOrEffect);\n this.setArray = uboOrEffect.updateArray.bind(uboOrEffect);\n this.setIntArray = uboOrEffect.updateIntArray.bind(uboOrEffect);\n this.setMatrix = uboOrEffect.updateMatrix.bind(uboOrEffect);\n this.setMatrices = uboOrEffect.updateMatrices.bind(uboOrEffect);\n this.setVector3 = uboOrEffect.updateVector3.bind(uboOrEffect);\n this.setVector4 = uboOrEffect.updateVector4.bind(uboOrEffect);\n this.setColor3 = uboOrEffect.updateColor3.bind(uboOrEffect);\n this.setColor4 = uboOrEffect.updateColor4.bind(uboOrEffect);\n this.setDirectColor4 = uboOrEffect.updateDirectColor4.bind(uboOrEffect);\n this.setInt = uboOrEffect.updateInt.bind(uboOrEffect);\n this.setInt2 = uboOrEffect.updateInt2.bind(uboOrEffect);\n this.setInt3 = uboOrEffect.updateInt3.bind(uboOrEffect);\n this.setInt4 = uboOrEffect.updateInt4.bind(uboOrEffect);\n }\n else {\n this.setMatrix3x3 = uboOrEffect.setMatrix3x3.bind(uboOrEffect);\n this.setMatrix2x2 = uboOrEffect.setMatrix2x2.bind(uboOrEffect);\n this.setFloat = uboOrEffect.setFloat.bind(uboOrEffect);\n this.setFloat2 = uboOrEffect.setFloat2.bind(uboOrEffect);\n this.setFloat3 = uboOrEffect.setFloat3.bind(uboOrEffect);\n this.setFloat4 = uboOrEffect.setFloat4.bind(uboOrEffect);\n this.setFloatArray = uboOrEffect.setFloatArray.bind(uboOrEffect);\n this.setArray = uboOrEffect.setArray.bind(uboOrEffect);\n this.setIntArray = uboOrEffect.setIntArray.bind(uboOrEffect);\n this.setMatrix = uboOrEffect.setMatrix.bind(uboOrEffect);\n this.setMatrices = uboOrEffect.setMatrices.bind(uboOrEffect);\n this.setVector3 = uboOrEffect.setVector3.bind(uboOrEffect);\n this.setVector4 = uboOrEffect.setVector4.bind(uboOrEffect);\n this.setColor3 = uboOrEffect.setColor3.bind(uboOrEffect);\n this.setColor4 = uboOrEffect.setColor4.bind(uboOrEffect);\n this.setDirectColor4 = uboOrEffect.setDirectColor4.bind(uboOrEffect);\n this.setInt = uboOrEffect.setInt.bind(uboOrEffect);\n this.setInt2 = uboOrEffect.setInt2.bind(uboOrEffect);\n this.setInt3 = uboOrEffect.setInt3.bind(uboOrEffect);\n this.setInt4 = uboOrEffect.setInt4.bind(uboOrEffect);\n }\n }\n}\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"gpuUpdateParticlesPixelShader\";\nconst shader = `#version 300 es\nvoid main() {discard;}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const gpuUpdateParticlesPixelShader = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"gpuUpdateParticlesVertexShader\";\nconst shader = `#version 300 es\n#define PI 3.14159\nuniform float currentCount;uniform float timeDelta;uniform float stopFactor;\n#ifndef LOCAL\nuniform mat4 emitterWM;\n#endif\nuniform vec2 lifeTime;uniform vec2 emitPower;uniform vec2 sizeRange;uniform vec4 scaleRange;\n#ifndef COLORGRADIENTS\nuniform vec4 color1;uniform vec4 color2;\n#endif\nuniform vec3 gravity;uniform sampler2D randomSampler;uniform sampler2D randomSampler2;uniform vec4 angleRange;\n#ifdef BOXEMITTER\nuniform vec3 direction1;uniform vec3 direction2;uniform vec3 minEmitBox;uniform vec3 maxEmitBox;\n#endif\n#ifdef POINTEMITTER\nuniform vec3 direction1;uniform vec3 direction2;\n#endif\n#ifdef HEMISPHERICEMITTER\nuniform float radius;uniform float radiusRange;uniform float directionRandomizer;\n#endif\n#ifdef SPHEREEMITTER\nuniform float radius;uniform float radiusRange;\n#ifdef DIRECTEDSPHEREEMITTER\nuniform vec3 direction1;uniform vec3 direction2;\n#else\nuniform float directionRandomizer;\n#endif\n#endif\n#ifdef CYLINDEREMITTER\nuniform float radius;uniform float height;uniform float radiusRange;\n#ifdef DIRECTEDCYLINDEREMITTER\nuniform vec3 direction1;uniform vec3 direction2;\n#else\nuniform float directionRandomizer;\n#endif\n#endif\n#ifdef CONEEMITTER\nuniform vec2 radius;uniform float coneAngle;uniform vec2 height;\n#ifdef DIRECTEDCONEEMITTER\nuniform vec3 direction1;uniform vec3 direction2;\n#else\nuniform float directionRandomizer;\n#endif\n#endif\nin vec3 position;\n#ifdef CUSTOMEMITTER\nin vec3 initialPosition;\n#endif\nin float age;in float life;in vec4 seed;in vec3 size;\n#ifndef COLORGRADIENTS\nin vec4 color;\n#endif\nin vec3 direction;\n#ifndef BILLBOARD\nin vec3 initialDirection;\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nin float angle;\n#else\nin vec2 angle;\n#endif\n#ifdef ANIMATESHEET\nin float cellIndex;\n#ifdef ANIMATESHEETRANDOMSTART\nin float cellStartOffset;\n#endif\n#endif\n#ifdef NOISE\nin vec3 noiseCoordinates1;in vec3 noiseCoordinates2;\n#endif\nout vec3 outPosition;\n#ifdef CUSTOMEMITTER\nout vec3 outInitialPosition;\n#endif\nout float outAge;out float outLife;out vec4 outSeed;out vec3 outSize;\n#ifndef COLORGRADIENTS\nout vec4 outColor;\n#endif\nout vec3 outDirection;\n#ifndef BILLBOARD\nout vec3 outInitialDirection;\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nout float outAngle;\n#else\nout vec2 outAngle;\n#endif\n#ifdef ANIMATESHEET\nout float outCellIndex;\n#ifdef ANIMATESHEETRANDOMSTART\nout float outCellStartOffset;\n#endif\n#endif\n#ifdef NOISE\nout vec3 outNoiseCoordinates1;out vec3 outNoiseCoordinates2;\n#endif\n#ifdef SIZEGRADIENTS\nuniform sampler2D sizeGradientSampler;\n#endif \n#ifdef ANGULARSPEEDGRADIENTS\nuniform sampler2D angularSpeedGradientSampler;\n#endif \n#ifdef VELOCITYGRADIENTS\nuniform sampler2D velocityGradientSampler;\n#endif\n#ifdef LIMITVELOCITYGRADIENTS\nuniform sampler2D limitVelocityGradientSampler;uniform float limitVelocityDamping;\n#endif\n#ifdef DRAGGRADIENTS\nuniform sampler2D dragGradientSampler;\n#endif\n#ifdef NOISE\nuniform vec3 noiseStrength;uniform sampler2D noiseSampler;\n#endif\n#ifdef ANIMATESHEET\nuniform vec4 cellInfos;\n#endif\nvec3 getRandomVec3(float offset) {return texture(randomSampler2,vec2(float(gl_VertexID)*offset/currentCount,0)).rgb;}\nvec4 getRandomVec4(float offset) {return texture(randomSampler,vec2(float(gl_VertexID)*offset/currentCount,0));}\nvoid main() {float newAge=age+timeDelta; \nif (newAge>=life && stopFactor != 0.) {vec3 newPosition;vec3 newDirection;vec4 randoms=getRandomVec4(seed.x);outLife=lifeTime.x+(lifeTime.y-lifeTime.x)*randoms.r;outAge=newAge-life;outSeed=seed;\n#ifdef SIZEGRADIENTS \noutSize.x=texture(sizeGradientSampler,vec2(0,0)).r;\n#else\noutSize.x=sizeRange.x+(sizeRange.y-sizeRange.x)*randoms.g;\n#endif\noutSize.y=scaleRange.x+(scaleRange.y-scaleRange.x)*randoms.b;outSize.z=scaleRange.z+(scaleRange.w-scaleRange.z)*randoms.a; \n#ifndef COLORGRADIENTS\noutColor=color1+(color2-color1)*randoms.b;\n#endif\n#ifndef ANGULARSPEEDGRADIENTS \noutAngle.y=angleRange.x+(angleRange.y-angleRange.x)*randoms.a;outAngle.x=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\n#else\noutAngle=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\n#endif \n#ifdef POINTEMITTER\nvec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);newPosition=vec3(0,0,0);newDirection=direction1+(direction2-direction1)*randoms3;\n#elif defined(BOXEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);newPosition=minEmitBox+(maxEmitBox-minEmitBox)*randoms2;newDirection=direction1+(direction2-direction1)*randoms3; \n#elif defined(HEMISPHERICEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);float phi=2.0*PI*randoms2.x;float theta=acos(2.0*randoms2.y-1.0);float randX=cos(phi)*sin(theta);float randY=cos(theta);float randZ=sin(phi)*sin(theta);newPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,abs(randY),randZ);newDirection=newPosition+directionRandomizer*randoms3; \n#elif defined(SPHEREEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);float phi=2.0*PI*randoms2.x;float theta=acos(2.0*randoms2.y-1.0);float randX=cos(phi)*sin(theta);float randY=cos(theta);float randZ=sin(phi)*sin(theta);newPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,randY,randZ);\n#ifdef DIRECTEDSPHEREEMITTER\nnewDirection=normalize(direction1+(direction2-direction1)*randoms3);\n#else\nnewDirection=normalize(newPosition+directionRandomizer*randoms3);\n#endif\n#elif defined(CYLINDEREMITTER)\nvec3 randoms2=getRandomVec3(seed.y);vec3 randoms3=getRandomVec3(seed.z);float yPos=(randoms2.x-0.5)*height;float angle=randoms2.y*PI*2.;float inverseRadiusRangeSquared=((1.-radiusRange)*(1.-radiusRange));float positionRadius=radius*sqrt(inverseRadiusRangeSquared+(randoms2.z*(1.-inverseRadiusRangeSquared)));float xPos=positionRadius*cos(angle);float zPos=positionRadius*sin(angle);newPosition=vec3(xPos,yPos,zPos);\n#ifdef DIRECTEDCYLINDEREMITTER\nnewDirection=direction1+(direction2-direction1)*randoms3;\n#else\nangle=angle+((randoms3.x-0.5)*PI)*directionRandomizer;newDirection=vec3(cos(angle),(randoms3.y-0.5)*directionRandomizer,sin(angle));newDirection=normalize(newDirection);\n#endif\n#elif defined(CONEEMITTER)\nvec3 randoms2=getRandomVec3(seed.y);float s=2.0*PI*randoms2.x;\n#ifdef CONEEMITTERSPAWNPOINT\nfloat h=0.0001;\n#else\nfloat h=randoms2.y*height.y;h=1.-h*h; \n#endif\nfloat lRadius=radius.x-radius.x*randoms2.z*radius.y;lRadius=lRadius*h;float randX=lRadius*sin(s);float randZ=lRadius*cos(s);float randY=h *height.x;newPosition=vec3(randX,randY,randZ); \nvec3 randoms3=getRandomVec3(seed.z);\n#ifdef DIRECTEDCONEEMITTER\nnewDirection=direction1+(direction2-direction1)*randoms3;\n#else\nif (abs(cos(coneAngle))==1.0) {newDirection=vec3(0.,1.0,0.);} else {newDirection=normalize(newPosition+directionRandomizer*randoms3); }\n#endif\n#elif defined(CUSTOMEMITTER)\nnewPosition=initialPosition;outInitialPosition=initialPosition;\n#else \nnewPosition=vec3(0.,0.,0.);newDirection=2.0*(getRandomVec3(seed.w)-vec3(0.5,0.5,0.5));\n#endif\nfloat power=emitPower.x+(emitPower.y-emitPower.x)*randoms.a;\n#ifdef LOCAL\noutPosition=newPosition;\n#else\noutPosition=(emitterWM*vec4(newPosition,1.)).xyz;\n#endif\n#ifdef CUSTOMEMITTER\noutDirection=direction;\n#ifndef BILLBOARD \noutInitialDirection=direction;\n#endif\n#else\n#ifdef LOCAL\nvec3 initial=newDirection;\n#else \nvec3 initial=(emitterWM*vec4(newDirection,0.)).xyz;\n#endif\noutDirection=initial*power;\n#ifndef BILLBOARD \noutInitialDirection=initial;\n#endif\n#endif\n#ifdef ANIMATESHEET \noutCellIndex=cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\noutCellStartOffset=randoms.a*outLife;\n#endif \n#endif\n#ifdef NOISE\noutNoiseCoordinates1=noiseCoordinates1;outNoiseCoordinates2=noiseCoordinates2;\n#endif\n} else {float directionScale=timeDelta;outAge=newAge;float ageGradient=newAge/life;\n#ifdef VELOCITYGRADIENTS\ndirectionScale*=texture(velocityGradientSampler,vec2(ageGradient,0)).r;\n#endif\n#ifdef DRAGGRADIENTS\ndirectionScale*=1.0-texture(dragGradientSampler,vec2(ageGradient,0)).r;\n#endif\n#if defined(CUSTOMEMITTER)\noutPosition=position+(direction-position)*ageGradient; \noutInitialPosition=initialPosition;\n#else\noutPosition=position+direction*directionScale;\n#endif\noutLife=life;outSeed=seed;\n#ifndef COLORGRADIENTS \noutColor=color;\n#endif\n#ifdef SIZEGRADIENTS\noutSize.x=texture(sizeGradientSampler,vec2(ageGradient,0)).r;outSize.yz=size.yz;\n#else\noutSize=size;\n#endif \n#ifndef BILLBOARD \noutInitialDirection=initialDirection;\n#endif\n#ifdef CUSTOMEMITTER\noutDirection=direction;\n#else\nvec3 updatedDirection=direction+gravity*timeDelta;\n#ifdef LIMITVELOCITYGRADIENTS\nfloat limitVelocity=texture(limitVelocityGradientSampler,vec2(ageGradient,0)).r;float currentVelocity=length(updatedDirection);if (currentVelocity>limitVelocity) {updatedDirection=updatedDirection*limitVelocityDamping;}\n#endif\noutDirection=updatedDirection;\n#ifdef NOISE\nfloat fetchedR=texture(noiseSampler,vec2(noiseCoordinates1.x,noiseCoordinates1.y)*vec2(0.5)+vec2(0.5)).r;float fetchedG=texture(noiseSampler,vec2(noiseCoordinates1.z,noiseCoordinates2.x)*vec2(0.5)+vec2(0.5)).r;float fetchedB=texture(noiseSampler,vec2(noiseCoordinates2.y,noiseCoordinates2.z)*vec2(0.5)+vec2(0.5)).r;vec3 force=vec3(2.*fetchedR-1.,2.*fetchedG-1.,2.*fetchedB-1.)*noiseStrength;outDirection=outDirection+force*timeDelta;outNoiseCoordinates1=noiseCoordinates1;outNoiseCoordinates2=noiseCoordinates2;\n#endif \n#endif \n#ifdef ANGULARSPEEDGRADIENTS\nfloat angularSpeed=texture(angularSpeedGradientSampler,vec2(ageGradient,0)).r;outAngle=angle+angularSpeed*timeDelta;\n#else\noutAngle=vec2(angle.x+angle.y*timeDelta,angle.y);\n#endif\n#ifdef ANIMATESHEET \nfloat offsetAge=outAge;float dist=cellInfos.y-cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\noutCellStartOffset=cellStartOffset;offsetAge+=cellStartOffset;\n#else\nfloat cellStartOffset=0.;\n#endif \nfloat ratio=0.;if (cellInfos.w==1.0) {ratio=clamp(mod(cellStartOffset+cellInfos.z*offsetAge,life)/life,0.,1.0);}\nelse {ratio=clamp(cellStartOffset+cellInfos.z*offsetAge/life,0.,1.0);}\noutCellIndex=float(int(cellInfos.x+ratio*dist));\n#endif\n}}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const gpuUpdateParticlesVertexShader = { name, shader };\n","import { Effect } from \"../Materials/effect.js\";\nimport { CustomParticleEmitter } from \"./EmitterTypes/customParticleEmitter.js\";\nimport { UniformBufferEffectCommonAccessor } from \"../Materials/uniformBufferEffectCommonAccessor.js\";\n\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport \"../Shaders/gpuUpdateParticles.fragment.js\";\nimport \"../Shaders/gpuUpdateParticles.vertex.js\";\n/** @internal */\nexport class WebGL2ParticleSystem {\n constructor(parent, engine) {\n this._renderVAO = [];\n this._updateVAO = [];\n this.alignDataInBuffer = false;\n this._parent = parent;\n this._engine = engine;\n this._updateEffectOptions = {\n attributes: [\n \"position\",\n \"initialPosition\",\n \"age\",\n \"life\",\n \"seed\",\n \"size\",\n \"color\",\n \"direction\",\n \"initialDirection\",\n \"angle\",\n \"cellIndex\",\n \"cellStartOffset\",\n \"noiseCoordinates1\",\n \"noiseCoordinates2\",\n ],\n uniformsNames: [\n \"currentCount\",\n \"timeDelta\",\n \"emitterWM\",\n \"lifeTime\",\n \"color1\",\n \"color2\",\n \"sizeRange\",\n \"scaleRange\",\n \"gravity\",\n \"emitPower\",\n \"direction1\",\n \"direction2\",\n \"minEmitBox\",\n \"maxEmitBox\",\n \"radius\",\n \"directionRandomizer\",\n \"height\",\n \"coneAngle\",\n \"stopFactor\",\n \"angleRange\",\n \"radiusRange\",\n \"cellInfos\",\n \"noiseStrength\",\n \"limitVelocityDamping\",\n ],\n uniformBuffersNames: [],\n samplers: [\n \"randomSampler\",\n \"randomSampler2\",\n \"sizeGradientSampler\",\n \"angularSpeedGradientSampler\",\n \"velocityGradientSampler\",\n \"limitVelocityGradientSampler\",\n \"noiseSampler\",\n \"dragGradientSampler\",\n ],\n defines: \"\",\n fallbacks: null,\n onCompiled: null,\n onError: null,\n indexParameters: null,\n maxSimultaneousLights: 0,\n transformFeedbackVaryings: [],\n };\n }\n contextLost() {\n this._updateEffect = undefined;\n this._renderVAO.length = 0;\n this._updateVAO.length = 0;\n }\n isUpdateBufferCreated() {\n return !!this._updateEffect;\n }\n isUpdateBufferReady() {\n return this._updateEffect?.isReady() ?? false;\n }\n createUpdateBuffer(defines) {\n this._updateEffectOptions.transformFeedbackVaryings = [\"outPosition\"];\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outAge\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outSize\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outLife\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outSeed\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outDirection\");\n if (this._parent.particleEmitterType instanceof CustomParticleEmitter) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outInitialPosition\");\n }\n if (!this._parent._colorGradientsTexture) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outColor\");\n }\n if (!this._parent._isBillboardBased) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outInitialDirection\");\n }\n if (this._parent.noiseTexture) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outNoiseCoordinates1\");\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outNoiseCoordinates2\");\n }\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outAngle\");\n if (this._parent.isAnimationSheetEnabled) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outCellIndex\");\n if (this._parent.spriteRandomStartCell) {\n this._updateEffectOptions.transformFeedbackVaryings.push(\"outCellStartOffset\");\n }\n }\n this._updateEffectOptions.defines = defines;\n this._updateEffect = new Effect(\"gpuUpdateParticles\", this._updateEffectOptions, this._engine);\n return new UniformBufferEffectCommonAccessor(this._updateEffect);\n }\n createVertexBuffers(updateBuffer, renderVertexBuffers) {\n this._updateVAO.push(this._createUpdateVAO(updateBuffer));\n this._renderVAO.push(this._engine.recordVertexArrayObject(renderVertexBuffers, null, this._parent._getWrapper(this._parent.blendMode).effect));\n this._engine.bindArrayBuffer(null);\n this._renderVertexBuffers = renderVertexBuffers;\n }\n createParticleBuffer(data) {\n return data;\n }\n bindDrawBuffers(index, effect, indexBuffer) {\n if (indexBuffer) {\n this._engine.bindBuffers(this._renderVertexBuffers, indexBuffer, effect);\n }\n else {\n this._engine.bindVertexArrayObject(this._renderVAO[index], null);\n }\n }\n preUpdateParticleBuffer() {\n const engine = this._engine;\n this._engine.enableEffect(this._updateEffect);\n if (!engine.setState) {\n throw new Error(\"GPU particles cannot work without a full Engine. ThinEngine is not supported\");\n }\n }\n updateParticleBuffer(index, targetBuffer, currentActiveCount) {\n this._updateEffect.setTexture(\"randomSampler\", this._parent._randomTexture);\n this._updateEffect.setTexture(\"randomSampler2\", this._parent._randomTexture2);\n if (this._parent._sizeGradientsTexture) {\n this._updateEffect.setTexture(\"sizeGradientSampler\", this._parent._sizeGradientsTexture);\n }\n if (this._parent._angularSpeedGradientsTexture) {\n this._updateEffect.setTexture(\"angularSpeedGradientSampler\", this._parent._angularSpeedGradientsTexture);\n }\n if (this._parent._velocityGradientsTexture) {\n this._updateEffect.setTexture(\"velocityGradientSampler\", this._parent._velocityGradientsTexture);\n }\n if (this._parent._limitVelocityGradientsTexture) {\n this._updateEffect.setTexture(\"limitVelocityGradientSampler\", this._parent._limitVelocityGradientsTexture);\n }\n if (this._parent._dragGradientsTexture) {\n this._updateEffect.setTexture(\"dragGradientSampler\", this._parent._dragGradientsTexture);\n }\n if (this._parent.noiseTexture) {\n this._updateEffect.setTexture(\"noiseSampler\", this._parent.noiseTexture);\n }\n // Bind source VAO\n this._engine.bindVertexArrayObject(this._updateVAO[index], null);\n // Update\n const engine = this._engine;\n engine.bindTransformFeedbackBuffer(targetBuffer.getBuffer());\n engine.setRasterizerState(false);\n engine.beginTransformFeedback(true);\n engine.drawArraysType(3, 0, currentActiveCount);\n engine.endTransformFeedback();\n engine.setRasterizerState(true);\n engine.bindTransformFeedbackBuffer(null);\n }\n releaseBuffers() { }\n releaseVertexBuffers() {\n for (let index = 0; index < this._updateVAO.length; index++) {\n this._engine.releaseVertexArrayObject(this._updateVAO[index]);\n }\n this._updateVAO.length = 0;\n for (let index = 0; index < this._renderVAO.length; index++) {\n this._engine.releaseVertexArrayObject(this._renderVAO[index]);\n }\n this._renderVAO.length = 0;\n }\n _createUpdateVAO(source) {\n const updateVertexBuffers = {};\n updateVertexBuffers[\"position\"] = source.createVertexBuffer(\"position\", 0, 3);\n let offset = 3;\n updateVertexBuffers[\"age\"] = source.createVertexBuffer(\"age\", offset, 1);\n offset += 1;\n updateVertexBuffers[\"size\"] = source.createVertexBuffer(\"size\", offset, 3);\n offset += 3;\n updateVertexBuffers[\"life\"] = source.createVertexBuffer(\"life\", offset, 1);\n offset += 1;\n updateVertexBuffers[\"seed\"] = source.createVertexBuffer(\"seed\", offset, 4);\n offset += 4;\n updateVertexBuffers[\"direction\"] = source.createVertexBuffer(\"direction\", offset, 3);\n offset += 3;\n if (this._parent.particleEmitterType instanceof CustomParticleEmitter) {\n updateVertexBuffers[\"initialPosition\"] = source.createVertexBuffer(\"initialPosition\", offset, 3);\n offset += 3;\n }\n if (!this._parent._colorGradientsTexture) {\n updateVertexBuffers[\"color\"] = source.createVertexBuffer(\"color\", offset, 4);\n offset += 4;\n }\n if (!this._parent._isBillboardBased) {\n updateVertexBuffers[\"initialDirection\"] = source.createVertexBuffer(\"initialDirection\", offset, 3);\n offset += 3;\n }\n if (this._parent.noiseTexture) {\n updateVertexBuffers[\"noiseCoordinates1\"] = source.createVertexBuffer(\"noiseCoordinates1\", offset, 3);\n offset += 3;\n updateVertexBuffers[\"noiseCoordinates2\"] = source.createVertexBuffer(\"noiseCoordinates2\", offset, 3);\n offset += 3;\n }\n if (this._parent._angularSpeedGradientsTexture) {\n updateVertexBuffers[\"angle\"] = source.createVertexBuffer(\"angle\", offset, 1);\n offset += 1;\n }\n else {\n updateVertexBuffers[\"angle\"] = source.createVertexBuffer(\"angle\", offset, 2);\n offset += 2;\n }\n if (this._parent._isAnimationSheetEnabled) {\n updateVertexBuffers[\"cellIndex\"] = source.createVertexBuffer(\"cellIndex\", offset, 1);\n offset += 1;\n if (this._parent.spriteRandomStartCell) {\n updateVertexBuffers[\"cellStartOffset\"] = source.createVertexBuffer(\"cellStartOffset\", offset, 1);\n offset += 1;\n }\n }\n const vao = this._engine.recordVertexArrayObject(updateVertexBuffers, null, this._updateEffect);\n this._engine.bindArrayBuffer(null);\n return vao;\n }\n}\nRegisterClass(\"BABYLON.WebGL2ParticleSystem\", WebGL2ParticleSystem);\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"gpuUpdateParticlesComputeShader\";\nconst shader = `struct Particle {position : vec3,\nage : f32,\nsize : vec3,\nlife : f32,\nseed : vec4,\ndirection : vec3,\ndummy0: f32,\n#ifdef CUSTOMEMITTER\ninitialPosition : vec3,\ndummy1: f32,\n#endif\n#ifndef COLORGRADIENTS\ncolor : vec4,\n#endif\n#ifndef BILLBOARD\ninitialDirection : vec3,\ndummy2: f32,\n#endif\n#ifdef NOISE\nnoiseCoordinates1 : vec3,\ndummy3: f32,\nnoiseCoordinates2 : vec3,\ndummy4: f32,\n#endif\n#ifdef ANGULARSPEEDGRADIENTS\nangle : f32,\n#else\nangle : vec2,\n#endif\n#ifdef ANIMATESHEET\ncellIndex : f32,\n#ifdef ANIMATESHEETRANDOMSTART\ncellStartOffset : f32,\n#endif\n#endif\n};struct Particles {particles : array,};struct SimParams {currentCount : f32,\ntimeDelta : f32,\nstopFactor : f32,\nrandomTextureSize: i32,\nlifeTime : vec2,\nemitPower : vec2,\n#ifndef COLORGRADIENTS\ncolor1 : vec4,\ncolor2 : vec4,\n#endif\nsizeRange : vec2,\nscaleRange : vec4,\nangleRange : vec4,\ngravity : vec3,\n#ifdef LIMITVELOCITYGRADIENTS\nlimitVelocityDamping : f32,\n#endif\n#ifdef ANIMATESHEET\ncellInfos : vec4,\n#endif\n#ifdef NOISE\nnoiseStrength : vec3,\n#endif\n#ifndef LOCAL\nemitterWM : mat4x4,\n#endif\n#ifdef BOXEMITTER\ndirection1 : vec3,\ndirection2 : vec3,\nminEmitBox : vec3,\nmaxEmitBox : vec3,\n#endif\n#ifdef CONEEMITTER\nradius : vec2,\nconeAngle : f32,\nheight : vec2,\n#ifdef DIRECTEDCONEEMITTER\ndirection1 : vec3,\ndirection2 : vec3,\n#else\ndirectionRandomizer : f32,\n#endif\n#endif\n#ifdef CYLINDEREMITTER\nradius : f32,\nheight : f32,\nradiusRange : f32,\n#ifdef DIRECTEDCYLINDEREMITTER\ndirection1 : vec3,\ndirection2 : vec3,\n#else\ndirectionRandomizer : f32,\n#endif\n#endif\n#ifdef HEMISPHERICEMITTER\nradius : f32,\nradiusRange : f32,\ndirectionRandomizer : f32,\n#endif\n#ifdef POINTEMITTER\ndirection1 : vec3,\ndirection2 : vec3,\n#endif\n#ifdef SPHEREEMITTER\nradius : f32,\nradiusRange : f32,\n#ifdef DIRECTEDSPHEREEMITTER\ndirection1 : vec3,\ndirection2 : vec3,\n#else\ndirectionRandomizer : f32,\n#endif\n#endif\n};@binding(0) @group(0) var params : SimParams;@binding(1) @group(0) var particlesIn : Particles;@binding(2) @group(0) var particlesOut : Particles;@binding(3) @group(0) var randomTexture : texture_2d;@binding(4) @group(0) var randomTexture2 : texture_2d;\n#ifdef SIZEGRADIENTS\n@binding(0) @group(1) var sizeGradientSampler : sampler;@binding(1) @group(1) var sizeGradientTexture : texture_2d;\n#endif \n#ifdef ANGULARSPEEDGRADIENTS\n@binding(2) @group(1) var angularSpeedGradientSampler : sampler;@binding(3) @group(1) var angularSpeedGradientTexture : texture_2d;\n#endif \n#ifdef VELOCITYGRADIENTS\n@binding(4) @group(1) var velocityGradientSampler : sampler;@binding(5) @group(1) var velocityGradientTexture : texture_2d;\n#endif\n#ifdef LIMITVELOCITYGRADIENTS\n@binding(6) @group(1) var limitVelocityGradientSampler : sampler;@binding(7) @group(1) var limitVelocityGradientTexture : texture_2d;\n#endif\n#ifdef DRAGGRADIENTS\n@binding(8) @group(1) var dragGradientSampler : sampler;@binding(9) @group(1) var dragGradientTexture : texture_2d;\n#endif\n#ifdef NOISE\n@binding(10) @group(1) var noiseSampler : sampler;@binding(11) @group(1) var noiseTexture : texture_2d;\n#endif\nfn getRandomVec3(offset : f32,vertexID : f32)->vec3 {return textureLoad(randomTexture2,vec2(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize)) % params.randomTextureSize,0),0).rgb;}\nfn getRandomVec4(offset : f32,vertexID : f32)->vec4 {return textureLoad(randomTexture,vec2(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize)) % params.randomTextureSize,0),0);}\n@compute @workgroup_size(64)\nfn main(@builtin(global_invocation_id) GlobalInvocationID : vec3) {let index : u32=GlobalInvocationID.x;let vertexID : f32=f32(index);if (index>=u32(params.currentCount)) {return;}\nlet PI : f32=3.14159;let timeDelta : f32=params.timeDelta;let newAge : f32=particlesIn.particles[index].age+timeDelta;let life : f32=particlesIn.particles[index].life;let seed : vec4=particlesIn.particles[index].seed;let direction : vec3=particlesIn.particles[index].direction;if (newAge>=life && params.stopFactor != 0.) {var newPosition : vec3;var newDirection : vec3;let randoms : vec4=getRandomVec4(seed.x,vertexID);let outLife : f32=params.lifeTime.x+(params.lifeTime.y-params.lifeTime.x)*randoms.r;particlesOut.particles[index].life=outLife;particlesOut.particles[index].age=newAge-life;particlesOut.particles[index].seed=seed;var sizex : f32;\n#ifdef SIZEGRADIENTS \nsizex=textureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2(0.,0.),0.).r;\n#else\nsizex=params.sizeRange.x+(params.sizeRange.y-params.sizeRange.x)*randoms.g;\n#endif\nparticlesOut.particles[index].size=vec3(\nsizex,\nparams.scaleRange.x+(params.scaleRange.y-params.scaleRange.x)*randoms.b,\nparams.scaleRange.z+(params.scaleRange.w-params.scaleRange.z)*randoms.a);\n#ifndef COLORGRADIENTS\nparticlesOut.particles[index].color=params.color1+(params.color2-params.color1)*randoms.b;\n#endif\n#ifndef ANGULARSPEEDGRADIENTS \nparticlesOut.particles[index].angle=vec2(\nparams.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r,\nparams.angleRange.x+(params.angleRange.y-params.angleRange.x)*randoms.a);\n#else\nparticlesOut.particles[index].angle=params.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r;\n#endif \n#if defined(POINTEMITTER)\nlet randoms2 : vec3=getRandomVec3(seed.y,vertexID);let randoms3 : vec3=getRandomVec3(seed.z,vertexID);newPosition=vec3(0.,0.,0.);newDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\n#elif defined(BOXEMITTER)\nlet randoms2 : vec3=getRandomVec3(seed.y,vertexID);let randoms3 : vec3=getRandomVec3(seed.z,vertexID);newPosition=params.minEmitBox+(params.maxEmitBox-params.minEmitBox)*randoms2;newDirection=params.direction1+(params.direction2-params.direction1)*randoms3; \n#elif defined(HEMISPHERICEMITTER)\nlet randoms2 : vec3=getRandomVec3(seed.y,vertexID);let randoms3 : vec3=getRandomVec3(seed.z,vertexID);let phi : f32=2.0*PI*randoms2.x;let theta : f32=acos(-1.0+2.0*randoms2.y);let randX : f32=cos(phi)*sin(theta);let randY : f32=cos(theta);let randZ : f32=sin(phi)*sin(theta);newPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3(randX,abs(randY),randZ);newDirection=normalize(newPosition+params.directionRandomizer*randoms3);\n#elif defined(SPHEREEMITTER)\nlet randoms2 : vec3=getRandomVec3(seed.y,vertexID);let randoms3 : vec3=getRandomVec3(seed.z,vertexID);let phi : f32=2.0*PI*randoms2.x;let theta : f32=acos(-1.0+2.0*randoms2.y);let randX : f32=cos(phi)*sin(theta);let randY : f32=cos(theta);let randZ : f32=sin(phi)*sin(theta);newPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3(randX,randY,randZ);\n#ifdef DIRECTEDSPHEREEMITTER\nnewDirection=normalize(params.direction1+(params.direction2-params.direction1)*randoms3);\n#else\nnewDirection=normalize(newPosition+params.directionRandomizer*randoms3);\n#endif\n#elif defined(CYLINDEREMITTER)\nlet randoms2 : vec3=getRandomVec3(seed.y,vertexID);let randoms3 : vec3=getRandomVec3(seed.z,vertexID);let yPos : f32=(-0.5+randoms2.x)*params.height;var angle : f32=randoms2.y*PI*2.;let inverseRadiusRangeSquared : f32=(1.-params.radiusRange)*(1.-params.radiusRange);let positionRadius : f32=params.radius*sqrt(inverseRadiusRangeSquared+randoms2.z*(1.-inverseRadiusRangeSquared));let xPos : f32=positionRadius*cos(angle);let zPos : f32=positionRadius*sin(angle);newPosition=vec3(xPos,yPos,zPos);\n#ifdef DIRECTEDCYLINDEREMITTER\nnewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\n#else\nangle=angle+(-0.5+randoms3.x)*PI*params.directionRandomizer;newDirection=vec3(cos(angle),(-0.5+randoms3.y)*params.directionRandomizer,sin(angle));newDirection=normalize(newDirection);\n#endif\n#elif defined(CONEEMITTER)\nlet randoms2 : vec3=getRandomVec3(seed.y,vertexID);let s : f32=2.0*PI*randoms2.x;\n#ifdef CONEEMITTERSPAWNPOINT\nlet h : f32=0.0001;\n#else\nvar h : f32=randoms2.y*params.height.y;h=1.-h*h; \n#endif\nvar lRadius : f32=params.radius.x-params.radius.x*randoms2.z*params.radius.y;lRadius=lRadius*h;let randX : f32=lRadius*sin(s);let randZ : f32=lRadius*cos(s);let randY : f32=h *params.height.x;newPosition=vec3(randX,randY,randZ); \nlet randoms3 : vec3=getRandomVec3(seed.z,vertexID);\n#ifdef DIRECTEDCONEEMITTER\nnewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\n#else\nif (abs(cos(params.coneAngle))==1.0) {newDirection=vec3(0.,1.0,0.);} else {newDirection=normalize(newPosition+params.directionRandomizer*randoms3); }\n#endif\n#elif defined(CUSTOMEMITTER)\nnewPosition=particlesIn.particles[index].initialPosition;particlesOut.particles[index].initialPosition=newPosition;\n#else \nnewPosition=vec3(0.,0.,0.);newDirection=2.0*(getRandomVec3(seed.w,vertexID)-vec3(0.5,0.5,0.5));\n#endif\nlet power : f32=params.emitPower.x+(params.emitPower.y-params.emitPower.x)*randoms.a;\n#ifdef LOCAL\nparticlesOut.particles[index].position=newPosition;\n#else\nparticlesOut.particles[index].position=(params.emitterWM*vec4(newPosition,1.)).xyz;\n#endif\n#ifdef CUSTOMEMITTER\nparticlesOut.particles[index].direction=direction;\n#ifndef BILLBOARD \nparticlesOut.particles[index].initialDirection=direction;\n#endif\n#else\n#ifdef LOCAL\nlet initial : vec3=newDirection;\n#else \nlet initial : vec3=(params.emitterWM*vec4(newDirection,0.)).xyz;\n#endif\nparticlesOut.particles[index].direction=initial*power;\n#ifndef BILLBOARD \nparticlesOut.particles[index].initialDirection=initial;\n#endif\n#endif\n#ifdef ANIMATESHEET \nparticlesOut.particles[index].cellIndex=params.cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\nparticlesOut.particles[index].cellStartOffset=randoms.a*outLife;\n#endif \n#endif\n#ifdef NOISE\nparticlesOut.particles[index].noiseCoordinates1=particlesIn.particles[index].noiseCoordinates1;particlesOut.particles[index].noiseCoordinates2=particlesIn.particles[index].noiseCoordinates2;\n#endif\n} else {var directionScale : f32=timeDelta;particlesOut.particles[index].age=newAge;let ageGradient : f32=newAge/life;\n#ifdef VELOCITYGRADIENTS\ndirectionScale=directionScale*textureSampleLevel(velocityGradientTexture,velocityGradientSampler,vec2(ageGradient,0.),0.).r;\n#endif\n#ifdef DRAGGRADIENTS\ndirectionScale=directionScale*(1.0-textureSampleLevel(dragGradientTexture,dragGradientSampler,vec2(ageGradient,0.),0.).r);\n#endif\nlet position : vec3=particlesIn.particles[index].position;\n#if defined(CUSTOMEMITTER)\nparticlesOut.particles[index].position=position+(direction-position)*ageGradient; \nparticlesOut.particles[index].initialPosition=particlesIn.particles[index].initialPosition;\n#else\nparticlesOut.particles[index].position=position+direction*directionScale;\n#endif\nparticlesOut.particles[index].life=life;particlesOut.particles[index].seed=seed;\n#ifndef COLORGRADIENTS \nparticlesOut.particles[index].color=particlesIn.particles[index].color;\n#endif\n#ifdef SIZEGRADIENTS\nparticlesOut.particles[index].size=vec3(\ntextureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2(ageGradient,0.),0.).r,\nparticlesIn.particles[index].size.yz);\n#else\nparticlesOut.particles[index].size=particlesIn.particles[index].size;\n#endif \n#ifndef BILLBOARD \nparticlesOut.particles[index].initialDirection=particlesIn.particles[index].initialDirection;\n#endif\n#ifdef CUSTOMEMITTER\nparticlesOut.particles[index].direction=direction;\n#else\nvar updatedDirection : vec3=direction+params.gravity*timeDelta;\n#ifdef LIMITVELOCITYGRADIENTS\nlet limitVelocity : f32=textureSampleLevel(limitVelocityGradientTexture,limitVelocityGradientSampler,vec2(ageGradient,0.),0.).r;let currentVelocity : f32=length(updatedDirection);if (currentVelocity>limitVelocity) {updatedDirection=updatedDirection*params.limitVelocityDamping;}\n#endif\nparticlesOut.particles[index].direction=updatedDirection;\n#ifdef NOISE\nlet noiseCoordinates1 : vec3=particlesIn.particles[index].noiseCoordinates1;let noiseCoordinates2 : vec3=particlesIn.particles[index].noiseCoordinates2;let fetchedR : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2(noiseCoordinates1.x,noiseCoordinates1.y)*vec2(0.5,0.5)+vec2(0.5,0.5),0.).r;let fetchedG : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2(noiseCoordinates1.z,noiseCoordinates2.x)*vec2(0.5,0.5)+vec2(0.5,0.5),0.).r;let fetchedB : f32=textureSampleLevel(noiseTexture,noiseSampler,vec2(noiseCoordinates2.y,noiseCoordinates2.z)*vec2(0.5,0.5)+vec2(0.5,0.5),0.).r;let force : vec3=vec3(-1.+2.*fetchedR,-1.+2.*fetchedG,-1.+2.*fetchedB)*params.noiseStrength;particlesOut.particles[index].direction=particlesOut.particles[index].direction+force*timeDelta;particlesOut.particles[index].noiseCoordinates1=noiseCoordinates1;particlesOut.particles[index].noiseCoordinates2=noiseCoordinates2;\n#endif \n#endif \n#ifdef ANGULARSPEEDGRADIENTS\nlet angularSpeed : f32=textureSampleLevel(angularSpeedGradientTexture,angularSpeedGradientSampler,vec2(ageGradient,0.),0.).r;particlesOut.particles[index].angle=particlesIn.particles[index].angle+angularSpeed*timeDelta;\n#else\nlet angle : vec2=particlesIn.particles[index].angle;particlesOut.particles[index].angle=vec2(angle.x+angle.y*timeDelta,angle.y);\n#endif\n#ifdef ANIMATESHEET \nvar offsetAge : f32=particlesOut.particles[index].age;let dist : f32=params.cellInfos.y-params.cellInfos.x;\n#ifdef ANIMATESHEETRANDOMSTART\nlet cellStartOffset : f32=particlesIn.particles[index].cellStartOffset;particlesOut.particles[index].cellStartOffset=cellStartOffset;offsetAge=offsetAge+cellStartOffset;\n#else\nlet cellStartOffset : f32=0.;\n#endif \nvar ratio : f32;if (params.cellInfos.w==1.0) {ratio=clamp(((cellStartOffset+params.cellInfos.z*offsetAge) % life)/life,0.,1.0);}\nelse {ratio=clamp((cellStartOffset+params.cellInfos.z*offsetAge)/life,0.,1.0);}\nparticlesOut.particles[index].cellIndex=f32(i32(params.cellInfos.x+ratio*dist));\n#endif\n}}\n`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const gpuUpdateParticlesComputeShaderWGSL = { name, shader };\n","import { StorageBuffer } from \"../Buffers/storageBuffer.js\";\nimport { ComputeShader } from \"../Compute/computeShader.js\";\nimport { UniformBuffer } from \"../Materials/uniformBuffer.js\";\n\nimport { UniformBufferEffectCommonAccessor } from \"../Materials/uniformBufferEffectCommonAccessor.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport \"../ShadersWGSL/gpuUpdateParticles.compute.js\";\n/** @internal */\nexport class ComputeShaderParticleSystem {\n constructor(parent, engine) {\n this._bufferComputeShader = [];\n this._renderVertexBuffers = [];\n this.alignDataInBuffer = true;\n this._parent = parent;\n this._engine = engine;\n }\n contextLost() {\n this._updateComputeShader = undefined;\n this._bufferComputeShader.length = 0;\n this._renderVertexBuffers.length = 0;\n }\n isUpdateBufferCreated() {\n return !!this._updateComputeShader;\n }\n isUpdateBufferReady() {\n return this._updateComputeShader?.isReady() ?? false;\n }\n createUpdateBuffer(defines) {\n const bindingsMapping = {\n params: { group: 0, binding: 0 },\n particlesIn: { group: 0, binding: 1 },\n particlesOut: { group: 0, binding: 2 },\n randomTexture: { group: 0, binding: 3 },\n randomTexture2: { group: 0, binding: 4 },\n };\n if (this._parent._sizeGradientsTexture) {\n bindingsMapping[\"sizeGradientTexture\"] = { group: 1, binding: 1 };\n }\n if (this._parent._angularSpeedGradientsTexture) {\n bindingsMapping[\"angularSpeedGradientTexture\"] = { group: 1, binding: 3 };\n }\n if (this._parent._velocityGradientsTexture) {\n bindingsMapping[\"velocityGradientTexture\"] = { group: 1, binding: 5 };\n }\n if (this._parent._limitVelocityGradientsTexture) {\n bindingsMapping[\"limitVelocityGradientTexture\"] = { group: 1, binding: 7 };\n }\n if (this._parent._dragGradientsTexture) {\n bindingsMapping[\"dragGradientTexture\"] = { group: 1, binding: 9 };\n }\n if (this._parent.noiseTexture) {\n bindingsMapping[\"noiseTexture\"] = { group: 1, binding: 11 };\n }\n this._updateComputeShader = new ComputeShader(\"updateParticles\", this._engine, \"gpuUpdateParticles\", { bindingsMapping, defines: defines.split(\"\\n\") });\n this._simParamsComputeShader?.dispose();\n this._simParamsComputeShader = new UniformBuffer(this._engine, undefined, undefined, \"ComputeShaderParticleSystemUBO\");\n this._simParamsComputeShader.addUniform(\"currentCount\", 1);\n this._simParamsComputeShader.addUniform(\"timeDelta\", 1);\n this._simParamsComputeShader.addUniform(\"stopFactor\", 1);\n this._simParamsComputeShader.addUniform(\"randomTextureSize\", 1);\n this._simParamsComputeShader.addUniform(\"lifeTime\", 2);\n this._simParamsComputeShader.addUniform(\"emitPower\", 2);\n if (!this._parent._colorGradientsTexture) {\n this._simParamsComputeShader.addUniform(\"color1\", 4);\n this._simParamsComputeShader.addUniform(\"color2\", 4);\n }\n this._simParamsComputeShader.addUniform(\"sizeRange\", 2);\n this._simParamsComputeShader.addUniform(\"scaleRange\", 4);\n this._simParamsComputeShader.addUniform(\"angleRange\", 4);\n this._simParamsComputeShader.addUniform(\"gravity\", 3);\n if (this._parent._limitVelocityGradientsTexture) {\n this._simParamsComputeShader.addUniform(\"limitVelocityDamping\", 1);\n }\n if (this._parent.isAnimationSheetEnabled) {\n this._simParamsComputeShader.addUniform(\"cellInfos\", 4);\n }\n if (this._parent.noiseTexture) {\n this._simParamsComputeShader.addUniform(\"noiseStrength\", 3);\n }\n if (!this._parent.isLocal) {\n this._simParamsComputeShader.addUniform(\"emitterWM\", 16);\n }\n if (this._parent.particleEmitterType) {\n this._parent.particleEmitterType.buildUniformLayout(this._simParamsComputeShader);\n }\n this._updateComputeShader.setUniformBuffer(\"params\", this._simParamsComputeShader);\n return new UniformBufferEffectCommonAccessor(this._simParamsComputeShader);\n }\n createVertexBuffers(updateBuffer, renderVertexBuffers) {\n this._renderVertexBuffers.push(renderVertexBuffers);\n }\n createParticleBuffer(data) {\n const buffer = new StorageBuffer(this._engine, data.length * 4, 3 | 8, \"ComputeShaderParticleSystemBuffer\");\n buffer.update(data);\n this._bufferComputeShader.push(buffer);\n return buffer.getBuffer();\n }\n bindDrawBuffers(index, effect, indexBuffer) {\n this._engine.bindBuffers(this._renderVertexBuffers[index], indexBuffer, effect);\n }\n preUpdateParticleBuffer() { }\n updateParticleBuffer(index, targetBuffer, currentActiveCount) {\n this._simParamsComputeShader.update();\n this._updateComputeShader.setTexture(\"randomTexture\", this._parent._randomTexture, false);\n this._updateComputeShader.setTexture(\"randomTexture2\", this._parent._randomTexture2, false);\n if (this._parent._sizeGradientsTexture) {\n this._updateComputeShader.setTexture(\"sizeGradientTexture\", this._parent._sizeGradientsTexture);\n }\n if (this._parent._angularSpeedGradientsTexture) {\n this._updateComputeShader.setTexture(\"angularSpeedGradientTexture\", this._parent._angularSpeedGradientsTexture);\n }\n if (this._parent._velocityGradientsTexture) {\n this._updateComputeShader.setTexture(\"velocityGradientTexture\", this._parent._velocityGradientsTexture);\n }\n if (this._parent._limitVelocityGradientsTexture) {\n this._updateComputeShader.setTexture(\"limitVelocityGradientTexture\", this._parent._limitVelocityGradientsTexture);\n }\n if (this._parent._dragGradientsTexture) {\n this._updateComputeShader.setTexture(\"dragGradientTexture\", this._parent._dragGradientsTexture);\n }\n if (this._parent.noiseTexture) {\n this._updateComputeShader.setTexture(\"noiseTexture\", this._parent.noiseTexture);\n }\n this._updateComputeShader.setStorageBuffer(\"particlesIn\", this._bufferComputeShader[index]);\n this._updateComputeShader.setStorageBuffer(\"particlesOut\", this._bufferComputeShader[index ^ 1]);\n this._updateComputeShader.dispatch(Math.ceil(currentActiveCount / 64));\n }\n releaseBuffers() {\n for (let i = 0; i < this._bufferComputeShader.length; ++i) {\n this._bufferComputeShader[i].dispose();\n }\n this._bufferComputeShader.length = 0;\n this._simParamsComputeShader?.dispose();\n this._simParamsComputeShader = null;\n this._updateComputeShader = null;\n }\n releaseVertexBuffers() {\n this._renderVertexBuffers.length = 0;\n }\n}\nRegisterClass(\"BABYLON.ComputeShaderParticleSystem\", ComputeShaderParticleSystem);\n","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore.js\";\nconst name = \"clipPlaneFragmentDeclaration2\";\nconst shader = `#ifdef CLIPPLANE\nin float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nin float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nin float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nin float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nin float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nin float fClipDistance6;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const clipPlaneFragmentDeclaration2 = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nimport \"./ShadersInclude/clipPlaneFragmentDeclaration2.js\";\nimport \"./ShadersInclude/imageProcessingDeclaration.js\";\nimport \"./ShadersInclude/logDepthDeclaration.js\";\nimport \"./ShadersInclude/helperFunctions.js\";\nimport \"./ShadersInclude/imageProcessingFunctions.js\";\nimport \"./ShadersInclude/fogFragmentDeclaration.js\";\nimport \"./ShadersInclude/clipPlaneFragment.js\";\nimport \"./ShadersInclude/logDepthFragment.js\";\nimport \"./ShadersInclude/fogFragment.js\";\nconst name = \"gpuRenderParticlesPixelShader\";\nconst shader = `precision highp float;\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nuniform sampler2D diffuseSampler;varying vec2 vUV;varying vec4 vColor;\n#include \n#include\n#include\n#include\n#include\n#include\nvoid main() {\n#include \nvec4 textureColor=texture2D(diffuseSampler,vUV);gl_FragColor=textureColor*vColor;\n#ifdef BLENDMULTIPLYMODE\nfloat alpha=vColor.a*textureColor.a;gl_FragColor.rgb=gl_FragColor.rgb*alpha+vec3(1.0)*(1.0-alpha);\n#endif \n#include\n#include(color,gl_FragColor)\n#ifdef IMAGEPROCESSINGPOSTPROCESS\ngl_FragColor.rgb=toLinearSpace(gl_FragColor.rgb);\n#else\n#ifdef IMAGEPROCESSING\ngl_FragColor.rgb=toLinearSpace(gl_FragColor.rgb);gl_FragColor=applyImageProcessing(gl_FragColor);\n#endif\n#endif\n}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const gpuRenderParticlesPixelShader = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore.js\";\nconst name = \"clipPlaneVertexDeclaration2\";\nconst shader = `#ifdef CLIPPLANE\nuniform vec4 vClipPlane;out float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nuniform vec4 vClipPlane2;out float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nuniform vec4 vClipPlane3;out float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nuniform vec4 vClipPlane4;out float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nuniform vec4 vClipPlane5;out float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nuniform vec4 vClipPlane6;out float fClipDistance6;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const clipPlaneVertexDeclaration2 = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nimport \"./ShadersInclude/clipPlaneVertexDeclaration2.js\";\nimport \"./ShadersInclude/fogVertexDeclaration.js\";\nimport \"./ShadersInclude/logDepthDeclaration.js\";\nimport \"./ShadersInclude/clipPlaneVertex.js\";\nimport \"./ShadersInclude/fogVertex.js\";\nimport \"./ShadersInclude/logDepthVertex.js\";\nconst name = \"gpuRenderParticlesVertexShader\";\nconst shader = `precision highp float;uniform mat4 view;uniform mat4 projection;uniform vec2 translationPivot;uniform vec3 worldOffset;\n#ifdef LOCAL\nuniform mat4 emitterWM;\n#endif\nattribute vec3 position;attribute float age;attribute float life;attribute vec3 size;\n#ifndef BILLBOARD\nattribute vec3 initialDirection;\n#endif\n#ifdef BILLBOARDSTRETCHED\nattribute vec3 direction;\n#endif\nattribute float angle;\n#ifdef ANIMATESHEET\nattribute float cellIndex;\n#endif\nattribute vec2 offset;attribute vec2 uv;varying vec2 vUV;varying vec4 vColor;varying vec3 vPositionW;\n#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)\nuniform mat4 invView;\n#endif\n#include\n#include\n#include\n#ifdef COLORGRADIENTS\nuniform sampler2D colorGradientSampler;\n#else\nuniform vec4 colorDead;attribute vec4 color;\n#endif\n#ifdef ANIMATESHEET\nuniform vec3 sheetInfos;\n#endif\n#ifdef BILLBOARD\nuniform vec3 eyePosition;\n#endif\nvec3 rotate(vec3 yaxis,vec3 rotatedCorner) {vec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));vec3 zaxis=normalize(cross(yaxis,xaxis));vec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z);vec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z);vec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z);mat3 rotMatrix= mat3(row0,row1,row2);vec3 alignedCorner=rotMatrix*rotatedCorner;\n#ifdef LOCAL\nreturn ((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner;\n#else\nreturn (position+worldOffset)+alignedCorner;\n#endif\n}\n#ifdef BILLBOARDSTRETCHED\nvec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) {vec3 normalizedToCamera=normalize(toCamera);vec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));vec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));vec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);vec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);vec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);mat3 rotMatrix= mat3(row0,row1,row2);vec3 alignedCorner=rotMatrix*rotatedCorner;\n#ifdef LOCAL\nreturn ((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner;\n#else\nreturn (position+worldOffset)+alignedCorner;\n#endif\n}\n#endif\nvoid main() {\n#ifdef ANIMATESHEET\nfloat rowOffset=floor(cellIndex/sheetInfos.z);float columnOffset=cellIndex-rowOffset*sheetInfos.z;vec2 uvScale=sheetInfos.xy;vec2 uvOffset=vec2(uv.x ,1.0-uv.y);vUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\n#else\nvUV=uv;\n#endif\nfloat ratio=min(1.0,age/life);\n#ifdef COLORGRADIENTS\nvColor=texture2D(colorGradientSampler,vec2(ratio,0));\n#else\nvColor=color*vec4(1.0-ratio)+colorDead*vec4(ratio);\n#endif\nvec2 cornerPos=(offset-translationPivot)*size.yz*size.x;\n#ifdef BILLBOARD\nvec4 rotatedCorner;rotatedCorner.w=0.;\n#ifdef BILLBOARDY\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.y=0.;rotatedCorner.xz+=translationPivot;vec3 yaxis=(position+worldOffset)-eyePosition;yaxis.y=0.;vPositionW=rotate(normalize(yaxis),rotatedCorner.xyz);vec4 viewPosition=(view*vec4(vPositionW,1.0));\n#elif defined(BILLBOARDSTRETCHED)\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;rotatedCorner.xy+=translationPivot;vec3 toCamera=(position+worldOffset)-eyePosition;vPositionW=rotateAlign(toCamera,rotatedCorner.xyz);vec4 viewPosition=(view*vec4(vPositionW,1.0));\n#else\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.z=0.;rotatedCorner.xy+=translationPivot;\n#ifdef LOCAL\nvec4 viewPosition=view*vec4(((emitterWM*vec4(position,1.0)).xyz+worldOffset),1.0)+rotatedCorner;\n#else\nvec4 viewPosition=view*vec4((position+worldOffset),1.0)+rotatedCorner;\n#endif\nvPositionW=(invView*viewPosition).xyz;\n#endif\n#else\nvec3 rotatedCorner;rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);rotatedCorner.y=0.;rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);rotatedCorner.xz+=translationPivot;vec3 yaxis=normalize(initialDirection);vPositionW=rotate(yaxis,rotatedCorner);vec4 viewPosition=view*vec4(vPositionW,1.0);\n#endif\ngl_Position=projection*viewPosition;\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) || defined(FOG)\nvec4 worldPos=vec4(vPositionW,1.0);\n#endif\n#include\n#include\n#include\n}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const gpuRenderParticlesVertexShader = { name, shader };\n","import { FactorGradient, ColorGradient, GradientHelper } from \"../Misc/gradients.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { Vector3, Matrix, TmpVectors } from \"../Maths/math.vector.js\";\nimport { Color4, TmpColors } from \"../Maths/math.color.js\";\nimport { Lerp } from \"../Maths/math.scalar.functions.js\";\nimport { VertexBuffer, Buffer } from \"../Buffers/buffer.js\";\nimport { BaseParticleSystem } from \"./baseParticleSystem.js\";\nimport { ParticleSystem } from \"./particleSystem.js\";\nimport { BoxParticleEmitter } from \"../Particles/EmitterTypes/boxParticleEmitter.js\";\nimport { ImageProcessingConfiguration } from \"../Materials/imageProcessingConfiguration.js\";\nimport { RawTexture } from \"../Materials/Textures/rawTexture.js\";\n\nimport { EngineStore } from \"../Engines/engineStore.js\";\nimport { CustomParticleEmitter } from \"./EmitterTypes/customParticleEmitter.js\";\nimport { AbstractEngine } from \"../Engines/abstractEngine.js\";\nimport { DrawWrapper } from \"../Materials/drawWrapper.js\";\nimport { GetClass } from \"../Misc/typeStore.js\";\nimport { addClipPlaneUniforms, bindClipPlane, prepareStringDefinesForClipPlanes } from \"../Materials/clipPlaneMaterialHelper.js\";\nimport { Scene } from \"../scene.js\";\nimport \"../Engines/Extensions/engine.transformFeedback.js\";\nimport \"../Shaders/gpuRenderParticles.fragment.js\";\nimport \"../Shaders/gpuRenderParticles.vertex.js\";\nimport { BindFogParameters, BindLogDepth } from \"../Materials/materialHelper.functions.js\";\nimport { CreateConeEmitter, CreateCylinderEmitter, CreateDirectedCylinderEmitter, CreateDirectedSphereEmitter, CreateDirectedConeEmitter, CreateHemisphericEmitter, CreatePointEmitter, CreateSphereEmitter, } from \"./particleSystem.functions.js\";\n/**\n * This represents a GPU particle system in Babylon\n * This is the fastest particle system in Babylon as it uses the GPU to update the individual particle data\n * @see https://www.babylonjs-playground.com/#PU4WYI#4\n */\nexport class GPUParticleSystem extends BaseParticleSystem {\n /**\n * Gets a boolean indicating if the GPU particles can be rendered on current browser\n */\n static get IsSupported() {\n if (!EngineStore.LastCreatedEngine) {\n return false;\n }\n const caps = EngineStore.LastCreatedEngine.getCaps();\n return caps.supportTransformFeedbacks || caps.supportComputeShaders;\n }\n _createIndexBuffer() {\n this._linesIndexBufferUseInstancing = this._engine.createIndexBuffer(new Uint32Array([0, 1, 1, 3, 3, 2, 2, 0, 0, 3]), undefined, \"GPUParticleSystemLinesIndexBuffer\");\n }\n /**\n * Gets the maximum number of particles active at the same time.\n * @returns The max number of active particles.\n */\n getCapacity() {\n return this._capacity;\n }\n /**\n * Gets or set the number of active particles\n * The value cannot be greater than \"capacity\" (if it is, it will be limited to \"capacity\").\n */\n get maxActiveParticleCount() {\n return this._maxActiveParticleCount;\n }\n set maxActiveParticleCount(value) {\n this._maxActiveParticleCount = Math.min(value, this._capacity);\n }\n /**\n * Gets or set the number of active particles\n * @deprecated Please use maxActiveParticleCount instead.\n */\n get activeParticleCount() {\n return this.maxActiveParticleCount;\n }\n set activeParticleCount(value) {\n this.maxActiveParticleCount = value;\n }\n /**\n * Creates a Point Emitter for the particle system (emits directly from the emitter position)\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the box\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the box\n * @returns the emitter\n */\n createPointEmitter(direction1, direction2) {\n const particleEmitter = CreatePointEmitter(direction1, direction2);\n this.particleEmitterType = particleEmitter;\n return particleEmitter;\n }\n /**\n * Creates a Hemisphere Emitter for the particle system (emits along the hemisphere radius)\n * @param radius The radius of the hemisphere to emit from\n * @param radiusRange The range of the hemisphere to emit from [0-1] 0 Surface Only, 1 Entire Radius\n * @returns the emitter\n */\n createHemisphericEmitter(radius = 1, radiusRange = 1) {\n const particleEmitter = CreateHemisphericEmitter(radius, radiusRange);\n this.particleEmitterType = particleEmitter;\n return particleEmitter;\n }\n /**\n * Creates a Sphere Emitter for the particle system (emits along the sphere radius)\n * @param radius The radius of the sphere to emit from\n * @param radiusRange The range of the sphere to emit from [0-1] 0 Surface Only, 1 Entire Radius\n * @returns the emitter\n */\n createSphereEmitter(radius = 1, radiusRange = 1) {\n const particleEmitter = CreateSphereEmitter(radius, radiusRange);\n this.particleEmitterType = particleEmitter;\n return particleEmitter;\n }\n /**\n * Creates a Directed Sphere Emitter for the particle system (emits between direction1 and direction2)\n * @param radius The radius of the sphere to emit from\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the sphere\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the sphere\n * @returns the emitter\n */\n createDirectedSphereEmitter(radius = 1, direction1 = new Vector3(0, 1.0, 0), direction2 = new Vector3(0, 1.0, 0)) {\n const particleEmitter = CreateDirectedSphereEmitter(radius, direction1, direction2);\n this.particleEmitterType = particleEmitter;\n return particleEmitter;\n }\n /**\n * Creates a Cylinder Emitter for the particle system (emits from the cylinder to the particle position)\n * @param radius The radius of the emission cylinder\n * @param height The height of the emission cylinder\n * @param radiusRange The range of emission [0-1] 0 Surface only, 1 Entire Radius\n * @param directionRandomizer How much to randomize the particle direction [0-1]\n * @returns the emitter\n */\n createCylinderEmitter(radius = 1, height = 1, radiusRange = 1, directionRandomizer = 0) {\n const particleEmitter = CreateCylinderEmitter(radius, height, radiusRange, directionRandomizer);\n this.particleEmitterType = particleEmitter;\n return particleEmitter;\n }\n /**\n * Creates a Directed Cylinder Emitter for the particle system (emits between direction1 and direction2)\n * @param radius The radius of the cylinder to emit from\n * @param height The height of the emission cylinder\n * @param radiusRange the range of the emission cylinder [0-1] 0 Surface only, 1 Entire Radius (1 by default)\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the cylinder\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the cylinder\n * @returns the emitter\n */\n createDirectedCylinderEmitter(radius = 1, height = 1, radiusRange = 1, direction1 = new Vector3(0, 1.0, 0), direction2 = new Vector3(0, 1.0, 0)) {\n const particleEmitter = CreateDirectedCylinderEmitter(radius, height, radiusRange, direction1, direction2);\n this.particleEmitterType = particleEmitter;\n return particleEmitter;\n }\n /**\n * Creates a Cone Emitter for the particle system (emits from the cone to the particle position)\n * @param radius The radius of the cone to emit from\n * @param angle The base angle of the cone\n * @returns the emitter\n */\n createConeEmitter(radius = 1, angle = Math.PI / 4) {\n const particleEmitter = CreateConeEmitter(radius, angle);\n this.particleEmitterType = particleEmitter;\n return particleEmitter;\n }\n createDirectedConeEmitter(radius = 1, angle = Math.PI / 4, direction1 = new Vector3(0, 1.0, 0), direction2 = new Vector3(0, 1.0, 0)) {\n const particleEmitter = CreateDirectedConeEmitter(radius, angle, direction1, direction2);\n this.particleEmitterType = particleEmitter;\n return particleEmitter;\n }\n /**\n * Creates a Box Emitter for the particle system. (emits between direction1 and direction2 from withing the box defined by minEmitBox and maxEmitBox)\n * @param direction1 Particles are emitted between the direction1 and direction2 from within the box\n * @param direction2 Particles are emitted between the direction1 and direction2 from within the box\n * @param minEmitBox Particles are emitted from the box between minEmitBox and maxEmitBox\n * @param maxEmitBox Particles are emitted from the box between minEmitBox and maxEmitBox\n * @returns the emitter\n */\n createBoxEmitter(direction1, direction2, minEmitBox, maxEmitBox) {\n const particleEmitter = new BoxParticleEmitter();\n this.particleEmitterType = particleEmitter;\n this.direction1 = direction1;\n this.direction2 = direction2;\n this.minEmitBox = minEmitBox;\n this.maxEmitBox = maxEmitBox;\n return particleEmitter;\n }\n /**\n * Is this system ready to be used/rendered\n * @returns true if the system is ready\n */\n isReady() {\n if (!this.emitter ||\n (this._imageProcessingConfiguration && !this._imageProcessingConfiguration.isReady()) ||\n !this.particleTexture ||\n !this.particleTexture.isReady() ||\n this._rebuildingAfterContextLost) {\n return false;\n }\n if (this.blendMode !== ParticleSystem.BLENDMODE_MULTIPLYADD) {\n if (!this._getWrapper(this.blendMode).effect.isReady()) {\n return false;\n }\n }\n else {\n if (!this._getWrapper(ParticleSystem.BLENDMODE_MULTIPLY).effect.isReady()) {\n return false;\n }\n if (!this._getWrapper(ParticleSystem.BLENDMODE_ADD).effect.isReady()) {\n return false;\n }\n }\n if (!this._platform.isUpdateBufferCreated()) {\n this._recreateUpdateEffect();\n return false;\n }\n return this._platform.isUpdateBufferReady();\n }\n /**\n * Gets if the system has been started. (Note: this will still be true after stop is called)\n * @returns True if it has been started, otherwise false.\n */\n isStarted() {\n return this._started;\n }\n /**\n * Gets if the system has been stopped. (Note: rendering is still happening but the system is frozen)\n * @returns True if it has been stopped, otherwise false.\n */\n isStopped() {\n return this._stopped;\n }\n /**\n * Gets a boolean indicating that the system is stopping\n * @returns true if the system is currently stopping\n */\n isStopping() {\n return false; // Stop is immediate on GPU\n }\n /**\n * Gets the number of particles active at the same time.\n * @returns The number of active particles.\n */\n getActiveCount() {\n return this._currentActiveCount;\n }\n /**\n * Starts the particle system and begins to emit\n * @param delay defines the delay in milliseconds before starting the system (this.startDelay by default)\n */\n start(delay = this.startDelay) {\n if (!this.targetStopDuration && this._hasTargetStopDurationDependantGradient()) {\n // eslint-disable-next-line no-throw-literal\n throw \"Particle system started with a targetStopDuration dependant gradient (eg. startSizeGradients) but no targetStopDuration set\";\n }\n if (delay) {\n setTimeout(() => {\n this.start(0);\n }, delay);\n return;\n }\n this._started = true;\n this._stopped = false;\n this._preWarmDone = false;\n // Animations\n if (this.beginAnimationOnStart && this.animations && this.animations.length > 0 && this._scene) {\n this._scene.beginAnimation(this, this.beginAnimationFrom, this.beginAnimationTo, this.beginAnimationLoop);\n }\n }\n /**\n * Stops the particle system.\n */\n stop() {\n if (this._stopped) {\n return;\n }\n this.onStoppedObservable.notifyObservers(this);\n this._stopped = true;\n }\n /**\n * Remove all active particles\n */\n reset() {\n this._releaseBuffers();\n this._platform.releaseVertexBuffers();\n this._currentActiveCount = 0;\n this._targetIndex = 0;\n }\n /**\n * Returns the string \"GPUParticleSystem\"\n * @returns a string containing the class name\n */\n getClassName() {\n return \"GPUParticleSystem\";\n }\n /**\n * Gets the custom effect used to render the particles\n * @param blendMode Blend mode for which the effect should be retrieved\n * @returns The effect\n */\n getCustomEffect(blendMode = 0) {\n return this._customWrappers[blendMode]?.effect ?? this._customWrappers[0].effect;\n }\n _getCustomDrawWrapper(blendMode = 0) {\n return this._customWrappers[blendMode] ?? this._customWrappers[0];\n }\n /**\n * Sets the custom effect used to render the particles\n * @param effect The effect to set\n * @param blendMode Blend mode for which the effect should be set\n */\n setCustomEffect(effect, blendMode = 0) {\n this._customWrappers[blendMode] = new DrawWrapper(this._engine);\n this._customWrappers[blendMode].effect = effect;\n }\n /**\n * Observable that will be called just before the particles are drawn\n */\n get onBeforeDrawParticlesObservable() {\n if (!this._onBeforeDrawParticlesObservable) {\n this._onBeforeDrawParticlesObservable = new Observable();\n }\n return this._onBeforeDrawParticlesObservable;\n }\n /**\n * Gets the name of the particle vertex shader\n */\n get vertexShaderName() {\n return \"gpuRenderParticles\";\n }\n /**\n * Gets the vertex buffers used by the particle system\n * Should be called after render() has been called for the current frame so that the buffers returned are the ones that have been updated\n * in the current frame (there's a ping-pong between two sets of buffers - for a given frame, one set is used as the source and the other as the destination)\n */\n get vertexBuffers() {\n // We return the other buffers than those corresponding to this._targetIndex because it is assumed vertexBuffers will be called in the current frame\n // after render() has been called, meaning that the buffers have already been swapped and this._targetIndex points to the buffers that will be updated\n // in the next frame (and which are the sources in this frame) and (this._targetIndex ^ 1) points to the buffers that have been updated this frame\n // (and that will be the source buffers in the next frame)\n return this._renderVertexBuffers[this._targetIndex ^ 1];\n }\n /**\n * Gets the index buffer used by the particle system (null for GPU particle systems)\n */\n get indexBuffer() {\n return null;\n }\n _removeGradientAndTexture(gradient, gradients, texture) {\n super._removeGradientAndTexture(gradient, gradients, texture);\n this._releaseBuffers();\n return this;\n }\n /**\n * Adds a new color gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param color1 defines the color to affect to the specified gradient\n * @returns the current particle system\n */\n addColorGradient(gradient, color1) {\n if (!this._colorGradients) {\n this._colorGradients = [];\n }\n const colorGradient = new ColorGradient(gradient, color1);\n this._colorGradients.push(colorGradient);\n this._refreshColorGradient(true);\n this._releaseBuffers();\n return this;\n }\n _refreshColorGradient(reorder = false) {\n if (this._colorGradients) {\n if (reorder) {\n this._colorGradients.sort((a, b) => {\n if (a.gradient < b.gradient) {\n return -1;\n }\n else if (a.gradient > b.gradient) {\n return 1;\n }\n return 0;\n });\n }\n if (this._colorGradientsTexture) {\n this._colorGradientsTexture.dispose();\n this._colorGradientsTexture = null;\n }\n }\n }\n /** Force the system to rebuild all gradients that need to be resync */\n forceRefreshGradients() {\n this._refreshColorGradient();\n this._refreshFactorGradient(this._sizeGradients, \"_sizeGradientsTexture\");\n this._refreshFactorGradient(this._angularSpeedGradients, \"_angularSpeedGradientsTexture\");\n this._refreshFactorGradient(this._velocityGradients, \"_velocityGradientsTexture\");\n this._refreshFactorGradient(this._limitVelocityGradients, \"_limitVelocityGradientsTexture\");\n this._refreshFactorGradient(this._dragGradients, \"_dragGradientsTexture\");\n this.reset();\n }\n /**\n * Remove a specific color gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeColorGradient(gradient) {\n this._removeGradientAndTexture(gradient, this._colorGradients, this._colorGradientsTexture);\n this._colorGradientsTexture = null;\n return this;\n }\n /**\n * Resets the draw wrappers cache\n */\n resetDrawCache() {\n for (const blendMode in this._drawWrappers) {\n const drawWrapper = this._drawWrappers[blendMode];\n drawWrapper.drawContext?.reset();\n }\n }\n _addFactorGradient(factorGradients, gradient, factor) {\n const valueGradient = new FactorGradient(gradient, factor);\n factorGradients.push(valueGradient);\n this._releaseBuffers();\n }\n /**\n * Adds a new size gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the size factor to affect to the specified gradient\n * @returns the current particle system\n */\n addSizeGradient(gradient, factor) {\n if (!this._sizeGradients) {\n this._sizeGradients = [];\n }\n this._addFactorGradient(this._sizeGradients, gradient, factor);\n this._refreshFactorGradient(this._sizeGradients, \"_sizeGradientsTexture\", true);\n this._releaseBuffers();\n return this;\n }\n /**\n * Remove a specific size gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeSizeGradient(gradient) {\n this._removeGradientAndTexture(gradient, this._sizeGradients, this._sizeGradientsTexture);\n this._sizeGradientsTexture = null;\n return this;\n }\n _refreshFactorGradient(factorGradients, textureName, reorder = false) {\n if (!factorGradients) {\n return;\n }\n if (reorder) {\n factorGradients.sort((a, b) => {\n if (a.gradient < b.gradient) {\n return -1;\n }\n else if (a.gradient > b.gradient) {\n return 1;\n }\n return 0;\n });\n }\n const that = this;\n if (that[textureName]) {\n that[textureName].dispose();\n that[textureName] = null;\n }\n }\n /**\n * Adds a new angular speed gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the angular speed to affect to the specified gradient\n * @returns the current particle system\n */\n addAngularSpeedGradient(gradient, factor) {\n if (!this._angularSpeedGradients) {\n this._angularSpeedGradients = [];\n }\n this._addFactorGradient(this._angularSpeedGradients, gradient, factor);\n this._refreshFactorGradient(this._angularSpeedGradients, \"_angularSpeedGradientsTexture\", true);\n this._releaseBuffers();\n return this;\n }\n /**\n * Remove a specific angular speed gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeAngularSpeedGradient(gradient) {\n this._removeGradientAndTexture(gradient, this._angularSpeedGradients, this._angularSpeedGradientsTexture);\n this._angularSpeedGradientsTexture = null;\n return this;\n }\n /**\n * Adds a new velocity gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the velocity to affect to the specified gradient\n * @returns the current particle system\n */\n addVelocityGradient(gradient, factor) {\n if (!this._velocityGradients) {\n this._velocityGradients = [];\n }\n this._addFactorGradient(this._velocityGradients, gradient, factor);\n this._refreshFactorGradient(this._velocityGradients, \"_velocityGradientsTexture\", true);\n this._releaseBuffers();\n return this;\n }\n /**\n * Remove a specific velocity gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeVelocityGradient(gradient) {\n this._removeGradientAndTexture(gradient, this._velocityGradients, this._velocityGradientsTexture);\n this._velocityGradientsTexture = null;\n return this;\n }\n /**\n * Adds a new limit velocity gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the limit velocity value to affect to the specified gradient\n * @returns the current particle system\n */\n addLimitVelocityGradient(gradient, factor) {\n if (!this._limitVelocityGradients) {\n this._limitVelocityGradients = [];\n }\n this._addFactorGradient(this._limitVelocityGradients, gradient, factor);\n this._refreshFactorGradient(this._limitVelocityGradients, \"_limitVelocityGradientsTexture\", true);\n this._releaseBuffers();\n return this;\n }\n /**\n * Remove a specific limit velocity gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeLimitVelocityGradient(gradient) {\n this._removeGradientAndTexture(gradient, this._limitVelocityGradients, this._limitVelocityGradientsTexture);\n this._limitVelocityGradientsTexture = null;\n return this;\n }\n /**\n * Adds a new drag gradient\n * @param gradient defines the gradient to use (between 0 and 1)\n * @param factor defines the drag value to affect to the specified gradient\n * @returns the current particle system\n */\n addDragGradient(gradient, factor) {\n if (!this._dragGradients) {\n this._dragGradients = [];\n }\n this._addFactorGradient(this._dragGradients, gradient, factor);\n this._refreshFactorGradient(this._dragGradients, \"_dragGradientsTexture\", true);\n this._releaseBuffers();\n return this;\n }\n /**\n * Remove a specific drag gradient\n * @param gradient defines the gradient to remove\n * @returns the current particle system\n */\n removeDragGradient(gradient) {\n this._removeGradientAndTexture(gradient, this._dragGradients, this._dragGradientsTexture);\n this._dragGradientsTexture = null;\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n addEmitRateGradient() {\n // Do nothing as emit rate is not supported by GPUParticleSystem\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n removeEmitRateGradient() {\n // Do nothing as emit rate is not supported by GPUParticleSystem\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n addStartSizeGradient() {\n // Do nothing as start size is not supported by GPUParticleSystem\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n removeStartSizeGradient() {\n // Do nothing as start size is not supported by GPUParticleSystem\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n addColorRemapGradient() {\n // Do nothing as start size is not supported by GPUParticleSystem\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n removeColorRemapGradient() {\n // Do nothing as start size is not supported by GPUParticleSystem\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n addAlphaRemapGradient() {\n // Do nothing as start size is not supported by GPUParticleSystem\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n removeAlphaRemapGradient() {\n // Do nothing as start size is not supported by GPUParticleSystem\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n addRampGradient() {\n //Not supported by GPUParticleSystem\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n removeRampGradient() {\n //Not supported by GPUParticleSystem\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the list of ramp gradients\n */\n getRampGradients() {\n return null;\n }\n /**\n * Not supported by GPUParticleSystem\n * Gets or sets a boolean indicating that ramp gradients must be used\n * @see https://doc.babylonjs.com/features/featuresDeepDive/particles/particle_system/particle_system_intro#ramp-gradients\n */\n get useRampGradients() {\n //Not supported by GPUParticleSystem\n return false;\n }\n set useRampGradients(value) {\n //Not supported by GPUParticleSystem\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n addLifeTimeGradient() {\n //Not supported by GPUParticleSystem\n return this;\n }\n /**\n * Not supported by GPUParticleSystem\n * @returns the current particle system\n */\n removeLifeTimeGradient() {\n //Not supported by GPUParticleSystem\n return this;\n }\n /**\n * Instantiates a GPU particle system.\n * Particles are often small sprites used to simulate hard-to-reproduce phenomena like fire, smoke, water, or abstract visual effects like magic glitter and faery dust.\n * @param name The name of the particle system\n * @param options The options used to create the system\n * @param sceneOrEngine The scene the particle system belongs to or the engine to use if no scene\n * @param customEffect a custom effect used to change the way particles are rendered by default\n * @param isAnimationSheetEnabled Must be true if using a spritesheet to animate the particles texture\n */\n constructor(name, options, sceneOrEngine, customEffect = null, isAnimationSheetEnabled = false) {\n super(name);\n /**\n * The layer mask we are rendering the particles through.\n */\n this.layerMask = 0x0fffffff;\n this._accumulatedCount = 0;\n this._renderVertexBuffers = [];\n this._targetIndex = 0;\n this._currentRenderId = -1;\n this._currentRenderingCameraUniqueId = -1;\n this._started = false;\n this._stopped = false;\n this._timeDelta = 0;\n /** Indicates that the update of particles is done in the animate function (and not in render). Default: false */\n this.updateInAnimate = false;\n this._actualFrame = 0;\n this._rawTextureWidth = 256;\n this._rebuildingAfterContextLost = false;\n /**\n * An event triggered when the system is disposed.\n */\n this.onDisposeObservable = new Observable();\n /**\n * An event triggered when the system is stopped\n */\n this.onStoppedObservable = new Observable();\n /**\n * Forces the particle to write their depth information to the depth buffer. This can help preventing other draw calls\n * to override the particles.\n */\n this.forceDepthWrite = false;\n this._preWarmDone = false;\n /**\n * Specifies if the particles are updated in emitter local space or world space.\n */\n this.isLocal = false;\n /** Indicates that the particle system is GPU based */\n this.isGPU = true;\n /** @internal */\n this._onBeforeDrawParticlesObservable = null;\n if (!sceneOrEngine || sceneOrEngine.getClassName() === \"Scene\") {\n this._scene = sceneOrEngine || EngineStore.LastCreatedScene;\n this._engine = this._scene.getEngine();\n this.uniqueId = this._scene.getUniqueId();\n this._scene.particleSystems.push(this);\n }\n else {\n this._engine = sceneOrEngine;\n this.defaultProjectionMatrix = Matrix.PerspectiveFovLH(0.8, 1, 0.1, 100, this._engine.isNDCHalfZRange);\n }\n if (this._engine.getCaps().supportComputeShaders) {\n if (!GetClass(\"BABYLON.ComputeShaderParticleSystem\")) {\n throw new Error(\"The ComputeShaderParticleSystem class is not available! Make sure you have imported it.\");\n }\n this._platform = new (GetClass(\"BABYLON.ComputeShaderParticleSystem\"))(this, this._engine);\n }\n else {\n if (!GetClass(\"BABYLON.WebGL2ParticleSystem\")) {\n throw new Error(\"The WebGL2ParticleSystem class is not available! Make sure you have imported it.\");\n }\n this._platform = new (GetClass(\"BABYLON.WebGL2ParticleSystem\"))(this, this._engine);\n }\n this._customWrappers = { 0: new DrawWrapper(this._engine) };\n this._customWrappers[0].effect = customEffect;\n this._drawWrappers = { 0: new DrawWrapper(this._engine) };\n if (this._drawWrappers[0].drawContext) {\n this._drawWrappers[0].drawContext.useInstancing = true;\n }\n this._createIndexBuffer();\n // Setup the default processing configuration to the scene.\n this._attachImageProcessingConfiguration(null);\n options = options ?? {};\n if (!options.randomTextureSize) {\n delete options.randomTextureSize;\n }\n const fullOptions = {\n capacity: 50000,\n randomTextureSize: this._engine.getCaps().maxTextureSize,\n ...options,\n };\n const optionsAsNumber = options;\n if (isFinite(optionsAsNumber)) {\n fullOptions.capacity = optionsAsNumber;\n }\n this._capacity = fullOptions.capacity;\n this._maxActiveParticleCount = fullOptions.capacity;\n this._currentActiveCount = 0;\n this._isAnimationSheetEnabled = isAnimationSheetEnabled;\n this.particleEmitterType = new BoxParticleEmitter();\n // Random data\n const maxTextureSize = Math.min(this._engine.getCaps().maxTextureSize, fullOptions.randomTextureSize);\n let d = [];\n for (let i = 0; i < maxTextureSize; ++i) {\n d.push(Math.random());\n d.push(Math.random());\n d.push(Math.random());\n d.push(Math.random());\n }\n this._randomTexture = new RawTexture(new Float32Array(d), maxTextureSize, 1, 5, sceneOrEngine, false, false, 1, 1);\n this._randomTexture.name = \"GPUParticleSystem_random1\";\n this._randomTexture.wrapU = 1;\n this._randomTexture.wrapV = 1;\n d = [];\n for (let i = 0; i < maxTextureSize; ++i) {\n d.push(Math.random());\n d.push(Math.random());\n d.push(Math.random());\n d.push(Math.random());\n }\n this._randomTexture2 = new RawTexture(new Float32Array(d), maxTextureSize, 1, 5, sceneOrEngine, false, false, 1, 1);\n this._randomTexture2.name = \"GPUParticleSystem_random2\";\n this._randomTexture2.wrapU = 1;\n this._randomTexture2.wrapV = 1;\n this._randomTextureSize = maxTextureSize;\n }\n _reset() {\n this._releaseBuffers();\n }\n _createVertexBuffers(updateBuffer, renderBuffer, spriteSource) {\n const renderVertexBuffers = {};\n renderVertexBuffers[\"position\"] = renderBuffer.createVertexBuffer(\"position\", 0, 3, this._attributesStrideSize, true);\n let offset = 3;\n renderVertexBuffers[\"age\"] = renderBuffer.createVertexBuffer(\"age\", offset, 1, this._attributesStrideSize, true);\n offset += 1;\n renderVertexBuffers[\"size\"] = renderBuffer.createVertexBuffer(\"size\", offset, 3, this._attributesStrideSize, true);\n offset += 3;\n renderVertexBuffers[\"life\"] = renderBuffer.createVertexBuffer(\"life\", offset, 1, this._attributesStrideSize, true);\n offset += 1;\n offset += 4; // seed\n if (this.billboardMode === ParticleSystem.BILLBOARDMODE_STRETCHED) {\n renderVertexBuffers[\"direction\"] = renderBuffer.createVertexBuffer(\"direction\", offset, 3, this._attributesStrideSize, true);\n }\n offset += 3; // direction\n if (this._platform.alignDataInBuffer) {\n offset += 1;\n }\n if (this.particleEmitterType instanceof CustomParticleEmitter) {\n offset += 3;\n if (this._platform.alignDataInBuffer) {\n offset += 1;\n }\n }\n if (!this._colorGradientsTexture) {\n renderVertexBuffers[\"color\"] = renderBuffer.createVertexBuffer(\"color\", offset, 4, this._attributesStrideSize, true);\n offset += 4;\n }\n if (!this._isBillboardBased) {\n renderVertexBuffers[\"initialDirection\"] = renderBuffer.createVertexBuffer(\"initialDirection\", offset, 3, this._attributesStrideSize, true);\n offset += 3;\n if (this._platform.alignDataInBuffer) {\n offset += 1;\n }\n }\n if (this.noiseTexture) {\n renderVertexBuffers[\"noiseCoordinates1\"] = renderBuffer.createVertexBuffer(\"noiseCoordinates1\", offset, 3, this._attributesStrideSize, true);\n offset += 3;\n if (this._platform.alignDataInBuffer) {\n offset += 1;\n }\n renderVertexBuffers[\"noiseCoordinates2\"] = renderBuffer.createVertexBuffer(\"noiseCoordinates2\", offset, 3, this._attributesStrideSize, true);\n offset += 3;\n if (this._platform.alignDataInBuffer) {\n offset += 1;\n }\n }\n renderVertexBuffers[\"angle\"] = renderBuffer.createVertexBuffer(\"angle\", offset, 1, this._attributesStrideSize, true);\n if (this._angularSpeedGradientsTexture) {\n offset++;\n }\n else {\n offset += 2;\n }\n if (this._isAnimationSheetEnabled) {\n renderVertexBuffers[\"cellIndex\"] = renderBuffer.createVertexBuffer(\"cellIndex\", offset, 1, this._attributesStrideSize, true);\n offset += 1;\n if (this.spriteRandomStartCell) {\n renderVertexBuffers[\"cellStartOffset\"] = renderBuffer.createVertexBuffer(\"cellStartOffset\", offset, 1, this._attributesStrideSize, true);\n offset += 1;\n }\n }\n renderVertexBuffers[\"offset\"] = spriteSource.createVertexBuffer(\"offset\", 0, 2);\n renderVertexBuffers[\"uv\"] = spriteSource.createVertexBuffer(\"uv\", 2, 2);\n this._renderVertexBuffers.push(renderVertexBuffers);\n this._platform.createVertexBuffers(updateBuffer, renderVertexBuffers);\n this.resetDrawCache();\n }\n _initialize(force = false) {\n if (this._buffer0 && !force) {\n return;\n }\n const engine = this._engine;\n const data = [];\n this._attributesStrideSize = 21;\n this._targetIndex = 0;\n if (this._platform.alignDataInBuffer) {\n this._attributesStrideSize += 1;\n }\n if (this.particleEmitterType instanceof CustomParticleEmitter) {\n this._attributesStrideSize += 3;\n if (this._platform.alignDataInBuffer) {\n this._attributesStrideSize += 1;\n }\n }\n if (!this.isBillboardBased) {\n this._attributesStrideSize += 3;\n if (this._platform.alignDataInBuffer) {\n this._attributesStrideSize += 1;\n }\n }\n if (this._colorGradientsTexture) {\n this._attributesStrideSize -= 4;\n }\n if (this._angularSpeedGradientsTexture) {\n this._attributesStrideSize -= 1;\n }\n if (this._isAnimationSheetEnabled) {\n this._attributesStrideSize += 1;\n if (this.spriteRandomStartCell) {\n this._attributesStrideSize += 1;\n }\n }\n if (this.noiseTexture) {\n this._attributesStrideSize += 6;\n if (this._platform.alignDataInBuffer) {\n this._attributesStrideSize += 2;\n }\n }\n if (this._platform.alignDataInBuffer) {\n this._attributesStrideSize += 3 - ((this._attributesStrideSize + 3) & 3); // round to multiple of 4\n }\n const usingCustomEmitter = this.particleEmitterType instanceof CustomParticleEmitter;\n const tmpVector = TmpVectors.Vector3[0];\n let offset = 0;\n for (let particleIndex = 0; particleIndex < this._capacity; particleIndex++) {\n // position\n data.push(0.0);\n data.push(0.0);\n data.push(0.0);\n // Age\n data.push(0.0); // create the particle as a dead one to create a new one at start\n // Size\n data.push(0.0);\n data.push(0.0);\n data.push(0.0);\n // life\n data.push(0.0);\n // Seed\n data.push(Math.random());\n data.push(Math.random());\n data.push(Math.random());\n data.push(Math.random());\n // direction\n if (usingCustomEmitter) {\n this.particleEmitterType.particleDestinationGenerator(particleIndex, null, tmpVector);\n data.push(tmpVector.x);\n data.push(tmpVector.y);\n data.push(tmpVector.z);\n }\n else {\n data.push(0.0);\n data.push(0.0);\n data.push(0.0);\n }\n if (this._platform.alignDataInBuffer) {\n data.push(0.0); // dummy0\n }\n offset += 16; // position, age, size, life, seed, direction, dummy0\n if (usingCustomEmitter) {\n this.particleEmitterType.particlePositionGenerator(particleIndex, null, tmpVector);\n data.push(tmpVector.x);\n data.push(tmpVector.y);\n data.push(tmpVector.z);\n if (this._platform.alignDataInBuffer) {\n data.push(0.0); // dummy1\n }\n offset += 4;\n }\n if (!this._colorGradientsTexture) {\n // color\n data.push(0.0);\n data.push(0.0);\n data.push(0.0);\n data.push(0.0);\n offset += 4;\n }\n if (!this.isBillboardBased) {\n // initialDirection\n data.push(0.0);\n data.push(0.0);\n data.push(0.0);\n if (this._platform.alignDataInBuffer) {\n data.push(0.0); // dummy2\n }\n offset += 4;\n }\n if (this.noiseTexture) {\n // Random coordinates for reading into noise texture\n data.push(Math.random());\n data.push(Math.random());\n data.push(Math.random());\n if (this._platform.alignDataInBuffer) {\n data.push(0.0); // dummy3\n }\n data.push(Math.random());\n data.push(Math.random());\n data.push(Math.random());\n if (this._platform.alignDataInBuffer) {\n data.push(0.0); // dummy4\n }\n offset += 8;\n }\n // angle\n data.push(0.0);\n offset += 1;\n if (!this._angularSpeedGradientsTexture) {\n data.push(0.0);\n offset += 1;\n }\n if (this._isAnimationSheetEnabled) {\n data.push(0.0);\n offset += 1;\n if (this.spriteRandomStartCell) {\n data.push(0.0);\n offset += 1;\n }\n }\n if (this._platform.alignDataInBuffer) {\n let numDummies = 3 - ((offset + 3) & 3);\n offset += numDummies;\n while (numDummies-- > 0) {\n data.push(0.0);\n }\n }\n }\n // Sprite data\n const spriteData = new Float32Array([0.5, 0.5, 1, 1, -0.5, 0.5, 0, 1, 0.5, -0.5, 1, 0, -0.5, -0.5, 0, 0]);\n const bufferData1 = this._platform.createParticleBuffer(data);\n const bufferData2 = this._platform.createParticleBuffer(data);\n // Buffers\n this._buffer0 = new Buffer(engine, bufferData1, false, this._attributesStrideSize);\n this._buffer1 = new Buffer(engine, bufferData2, false, this._attributesStrideSize);\n this._spriteBuffer = new Buffer(engine, spriteData, false, 4);\n // Update & Render vertex buffers\n this._renderVertexBuffers = [];\n this._createVertexBuffers(this._buffer0, this._buffer1, this._spriteBuffer);\n this._createVertexBuffers(this._buffer1, this._buffer0, this._spriteBuffer);\n // Links\n this._sourceBuffer = this._buffer0;\n this._targetBuffer = this._buffer1;\n }\n /** @internal */\n _recreateUpdateEffect() {\n this._createColorGradientTexture();\n this._createSizeGradientTexture();\n this._createAngularSpeedGradientTexture();\n this._createVelocityGradientTexture();\n this._createLimitVelocityGradientTexture();\n this._createDragGradientTexture();\n let defines = this.particleEmitterType ? this.particleEmitterType.getEffectDefines() : \"\";\n if (this._isBillboardBased) {\n defines += \"\\n#define BILLBOARD\";\n }\n if (this._colorGradientsTexture) {\n defines += \"\\n#define COLORGRADIENTS\";\n }\n if (this._sizeGradientsTexture) {\n defines += \"\\n#define SIZEGRADIENTS\";\n }\n if (this._angularSpeedGradientsTexture) {\n defines += \"\\n#define ANGULARSPEEDGRADIENTS\";\n }\n if (this._velocityGradientsTexture) {\n defines += \"\\n#define VELOCITYGRADIENTS\";\n }\n if (this._limitVelocityGradientsTexture) {\n defines += \"\\n#define LIMITVELOCITYGRADIENTS\";\n }\n if (this._dragGradientsTexture) {\n defines += \"\\n#define DRAGGRADIENTS\";\n }\n if (this.isAnimationSheetEnabled) {\n defines += \"\\n#define ANIMATESHEET\";\n if (this.spriteRandomStartCell) {\n defines += \"\\n#define ANIMATESHEETRANDOMSTART\";\n }\n }\n if (this.noiseTexture) {\n defines += \"\\n#define NOISE\";\n }\n if (this.isLocal) {\n defines += \"\\n#define LOCAL\";\n }\n if (this._platform.isUpdateBufferCreated() && this._cachedUpdateDefines === defines) {\n return this._platform.isUpdateBufferReady();\n }\n this._cachedUpdateDefines = defines;\n this._updateBuffer = this._platform.createUpdateBuffer(defines);\n return this._platform.isUpdateBufferReady();\n }\n /**\n * @internal\n */\n _getWrapper(blendMode) {\n const customWrapper = this._getCustomDrawWrapper(blendMode);\n if (customWrapper?.effect) {\n return customWrapper;\n }\n const defines = [];\n this.fillDefines(defines, blendMode);\n // Effect\n let drawWrapper = this._drawWrappers[blendMode];\n if (!drawWrapper) {\n drawWrapper = new DrawWrapper(this._engine);\n if (drawWrapper.drawContext) {\n drawWrapper.drawContext.useInstancing = true;\n }\n this._drawWrappers[blendMode] = drawWrapper;\n }\n const join = defines.join(\"\\n\");\n if (drawWrapper.defines !== join) {\n const attributes = [];\n const uniforms = [];\n const samplers = [];\n this.fillUniformsAttributesAndSamplerNames(uniforms, attributes, samplers);\n drawWrapper.setEffect(this._engine.createEffect(\"gpuRenderParticles\", attributes, uniforms, samplers, join), join);\n }\n return drawWrapper;\n }\n /**\n * @internal\n */\n static _GetAttributeNamesOrOptions(hasColorGradients = false, isAnimationSheetEnabled = false, isBillboardBased = false, isBillboardStretched = false) {\n const attributeNamesOrOptions = [VertexBuffer.PositionKind, \"age\", \"life\", \"size\", \"angle\"];\n if (!hasColorGradients) {\n attributeNamesOrOptions.push(VertexBuffer.ColorKind);\n }\n if (isAnimationSheetEnabled) {\n attributeNamesOrOptions.push(\"cellIndex\");\n }\n if (!isBillboardBased) {\n attributeNamesOrOptions.push(\"initialDirection\");\n }\n if (isBillboardStretched) {\n attributeNamesOrOptions.push(\"direction\");\n }\n attributeNamesOrOptions.push(\"offset\", VertexBuffer.UVKind);\n return attributeNamesOrOptions;\n }\n /**\n * @internal\n */\n static _GetEffectCreationOptions(isAnimationSheetEnabled = false, useLogarithmicDepth = false, applyFog = false) {\n const effectCreationOption = [\"emitterWM\", \"worldOffset\", \"view\", \"projection\", \"colorDead\", \"invView\", \"translationPivot\", \"eyePosition\"];\n addClipPlaneUniforms(effectCreationOption);\n if (isAnimationSheetEnabled) {\n effectCreationOption.push(\"sheetInfos\");\n }\n if (useLogarithmicDepth) {\n effectCreationOption.push(\"logarithmicDepthConstant\");\n }\n if (applyFog) {\n effectCreationOption.push(\"vFogInfos\");\n effectCreationOption.push(\"vFogColor\");\n }\n return effectCreationOption;\n }\n /**\n * Fill the defines array according to the current settings of the particle system\n * @param defines Array to be updated\n * @param blendMode blend mode to take into account when updating the array\n * @param fillImageProcessing fills the image processing defines\n */\n fillDefines(defines, blendMode = 0, fillImageProcessing = true) {\n if (this._scene) {\n prepareStringDefinesForClipPlanes(this, this._scene, defines);\n if (this.applyFog && this._scene.fogEnabled && this._scene.fogMode !== Scene.FOGMODE_NONE) {\n defines.push(\"#define FOG\");\n }\n }\n if (blendMode === ParticleSystem.BLENDMODE_MULTIPLY) {\n defines.push(\"#define BLENDMULTIPLYMODE\");\n }\n if (this.isLocal) {\n defines.push(\"#define LOCAL\");\n }\n if (this.useLogarithmicDepth) {\n defines.push(\"#define LOGARITHMICDEPTH\");\n }\n if (this._isBillboardBased) {\n defines.push(\"#define BILLBOARD\");\n switch (this.billboardMode) {\n case ParticleSystem.BILLBOARDMODE_Y:\n defines.push(\"#define BILLBOARDY\");\n break;\n case ParticleSystem.BILLBOARDMODE_STRETCHED:\n defines.push(\"#define BILLBOARDSTRETCHED\");\n break;\n case ParticleSystem.BILLBOARDMODE_ALL:\n defines.push(\"#define BILLBOARDMODE_ALL\");\n break;\n default:\n break;\n }\n }\n if (this._colorGradientsTexture) {\n defines.push(\"#define COLORGRADIENTS\");\n }\n if (this.isAnimationSheetEnabled) {\n defines.push(\"#define ANIMATESHEET\");\n }\n if (fillImageProcessing && this._imageProcessingConfiguration) {\n this._imageProcessingConfiguration.prepareDefines(this._imageProcessingConfigurationDefines);\n defines.push(\"\" + this._imageProcessingConfigurationDefines.toString());\n }\n }\n /**\n * Fill the uniforms, attributes and samplers arrays according to the current settings of the particle system\n * @param uniforms Uniforms array to fill\n * @param attributes Attributes array to fill\n * @param samplers Samplers array to fill\n */\n fillUniformsAttributesAndSamplerNames(uniforms, attributes, samplers) {\n attributes.push(...GPUParticleSystem._GetAttributeNamesOrOptions(!!this._colorGradientsTexture, this._isAnimationSheetEnabled, this._isBillboardBased, this._isBillboardBased && this.billboardMode === ParticleSystem.BILLBOARDMODE_STRETCHED));\n uniforms.push(...GPUParticleSystem._GetEffectCreationOptions(this._isAnimationSheetEnabled, this.useLogarithmicDepth, this.applyFog));\n samplers.push(\"diffuseSampler\", \"colorGradientSampler\");\n if (this._imageProcessingConfiguration) {\n ImageProcessingConfiguration.PrepareUniforms(uniforms, this._imageProcessingConfigurationDefines);\n ImageProcessingConfiguration.PrepareSamplers(samplers, this._imageProcessingConfigurationDefines);\n }\n }\n /**\n * Animates the particle system for the current frame by emitting new particles and or animating the living ones.\n * @param preWarm defines if we are in the pre-warmimg phase\n */\n animate(preWarm = false) {\n this._timeDelta = this.updateSpeed * (preWarm ? this.preWarmStepOffset : this._scene?.getAnimationRatio() || 1);\n this._actualFrame += this._timeDelta;\n if (!this._stopped) {\n if (this.targetStopDuration && this._actualFrame >= this.targetStopDuration) {\n this.stop();\n }\n }\n if (this.updateInAnimate) {\n this._update();\n }\n }\n _createFactorGradientTexture(factorGradients, textureName) {\n const texture = this[textureName];\n if (!factorGradients || !factorGradients.length || texture) {\n return;\n }\n const data = new Float32Array(this._rawTextureWidth);\n for (let x = 0; x < this._rawTextureWidth; x++) {\n const ratio = x / this._rawTextureWidth;\n GradientHelper.GetCurrentGradient(ratio, factorGradients, (currentGradient, nextGradient, scale) => {\n data[x] = Lerp(currentGradient.factor1, nextGradient.factor1, scale);\n });\n }\n this[textureName] = RawTexture.CreateRTexture(data, this._rawTextureWidth, 1, this._scene || this._engine, false, false, 1);\n this[textureName].name = textureName.substring(1);\n }\n _createSizeGradientTexture() {\n this._createFactorGradientTexture(this._sizeGradients, \"_sizeGradientsTexture\");\n }\n _createAngularSpeedGradientTexture() {\n this._createFactorGradientTexture(this._angularSpeedGradients, \"_angularSpeedGradientsTexture\");\n }\n _createVelocityGradientTexture() {\n this._createFactorGradientTexture(this._velocityGradients, \"_velocityGradientsTexture\");\n }\n _createLimitVelocityGradientTexture() {\n this._createFactorGradientTexture(this._limitVelocityGradients, \"_limitVelocityGradientsTexture\");\n }\n _createDragGradientTexture() {\n this._createFactorGradientTexture(this._dragGradients, \"_dragGradientsTexture\");\n }\n _createColorGradientTexture() {\n if (!this._colorGradients || !this._colorGradients.length || this._colorGradientsTexture) {\n return;\n }\n const data = new Uint8Array(this._rawTextureWidth * 4);\n const tmpColor = TmpColors.Color4[0];\n for (let x = 0; x < this._rawTextureWidth; x++) {\n const ratio = x / this._rawTextureWidth;\n GradientHelper.GetCurrentGradient(ratio, this._colorGradients, (currentGradient, nextGradient, scale) => {\n Color4.LerpToRef(currentGradient.color1, nextGradient.color1, scale, tmpColor);\n data[x * 4] = tmpColor.r * 255;\n data[x * 4 + 1] = tmpColor.g * 255;\n data[x * 4 + 2] = tmpColor.b * 255;\n data[x * 4 + 3] = tmpColor.a * 255;\n });\n }\n this._colorGradientsTexture = RawTexture.CreateRGBATexture(data, this._rawTextureWidth, 1, this._scene, false, false, 1);\n this._colorGradientsTexture.name = \"colorGradients\";\n }\n _render(blendMode, emitterWM) {\n // Enable render effect\n const drawWrapper = this._getWrapper(blendMode);\n const effect = drawWrapper.effect;\n this._engine.enableEffect(drawWrapper);\n const viewMatrix = this._scene?.getViewMatrix() || Matrix.IdentityReadOnly;\n effect.setMatrix(\"view\", viewMatrix);\n effect.setMatrix(\"projection\", this.defaultProjectionMatrix ?? this._scene.getProjectionMatrix());\n effect.setTexture(\"diffuseSampler\", this.particleTexture);\n effect.setVector2(\"translationPivot\", this.translationPivot);\n effect.setVector3(\"worldOffset\", this.worldOffset);\n if (this.isLocal) {\n effect.setMatrix(\"emitterWM\", emitterWM);\n }\n if (this._colorGradientsTexture) {\n effect.setTexture(\"colorGradientSampler\", this._colorGradientsTexture);\n }\n else {\n effect.setDirectColor4(\"colorDead\", this.colorDead);\n }\n if (this._isAnimationSheetEnabled && this.particleTexture) {\n const baseSize = this.particleTexture.getBaseSize();\n effect.setFloat3(\"sheetInfos\", this.spriteCellWidth / baseSize.width, this.spriteCellHeight / baseSize.height, baseSize.width / this.spriteCellWidth);\n }\n if (this._isBillboardBased && this._scene) {\n const camera = this._scene.activeCamera;\n effect.setVector3(\"eyePosition\", camera.globalPosition);\n }\n const defines = effect.defines;\n if (this._scene) {\n bindClipPlane(effect, this, this._scene);\n if (this.applyFog) {\n BindFogParameters(this._scene, undefined, effect);\n }\n }\n if (defines.indexOf(\"#define BILLBOARDMODE_ALL\") >= 0) {\n const invView = viewMatrix.clone();\n invView.invert();\n effect.setMatrix(\"invView\", invView);\n }\n // Log. depth\n if (this.useLogarithmicDepth && this._scene) {\n BindLogDepth(defines, effect, this._scene);\n }\n // image processing\n if (this._imageProcessingConfiguration && !this._imageProcessingConfiguration.applyByPostProcess) {\n this._imageProcessingConfiguration.bind(effect);\n }\n // Draw order\n switch (blendMode) {\n case ParticleSystem.BLENDMODE_ADD:\n this._engine.setAlphaMode(1);\n break;\n case ParticleSystem.BLENDMODE_ONEONE:\n this._engine.setAlphaMode(6);\n break;\n case ParticleSystem.BLENDMODE_STANDARD:\n this._engine.setAlphaMode(2);\n break;\n case ParticleSystem.BLENDMODE_MULTIPLY:\n this._engine.setAlphaMode(4);\n break;\n }\n // Bind source VAO\n this._platform.bindDrawBuffers(this._targetIndex, effect, this._scene?.forceWireframe ? this._linesIndexBufferUseInstancing : null);\n if (this._onBeforeDrawParticlesObservable) {\n this._onBeforeDrawParticlesObservable.notifyObservers(effect);\n }\n // Render\n if (this._scene?.forceWireframe) {\n this._engine.drawElementsType(6, 0, 10, this._currentActiveCount);\n }\n else {\n this._engine.drawArraysType(7, 0, 4, this._currentActiveCount);\n }\n this._engine.setAlphaMode(0);\n if (this._scene?.forceWireframe) {\n this._engine.unbindInstanceAttributes();\n }\n return this._currentActiveCount;\n }\n /** @internal */\n _update(emitterWM) {\n if (!this.emitter || !this._targetBuffer) {\n return;\n }\n if (!this._recreateUpdateEffect() || this._rebuildingAfterContextLost) {\n return;\n }\n if (!emitterWM) {\n if (this.emitter.position) {\n const emitterMesh = this.emitter;\n emitterWM = emitterMesh.getWorldMatrix();\n }\n else {\n const emitterPosition = this.emitter;\n emitterWM = TmpVectors.Matrix[0];\n Matrix.TranslationToRef(emitterPosition.x, emitterPosition.y, emitterPosition.z, emitterWM);\n }\n }\n this._platform.preUpdateParticleBuffer();\n this._updateBuffer.setFloat(\"currentCount\", this._currentActiveCount);\n this._updateBuffer.setFloat(\"timeDelta\", this._timeDelta);\n this._updateBuffer.setFloat(\"stopFactor\", this._stopped ? 0 : 1);\n this._updateBuffer.setInt(\"randomTextureSize\", this._randomTextureSize);\n this._updateBuffer.setFloat2(\"lifeTime\", this.minLifeTime, this.maxLifeTime);\n this._updateBuffer.setFloat2(\"emitPower\", this.minEmitPower, this.maxEmitPower);\n if (!this._colorGradientsTexture) {\n this._updateBuffer.setDirectColor4(\"color1\", this.color1);\n this._updateBuffer.setDirectColor4(\"color2\", this.color2);\n }\n this._updateBuffer.setFloat2(\"sizeRange\", this.minSize, this.maxSize);\n this._updateBuffer.setFloat4(\"scaleRange\", this.minScaleX, this.maxScaleX, this.minScaleY, this.maxScaleY);\n this._updateBuffer.setFloat4(\"angleRange\", this.minAngularSpeed, this.maxAngularSpeed, this.minInitialRotation, this.maxInitialRotation);\n this._updateBuffer.setVector3(\"gravity\", this.gravity);\n if (this._limitVelocityGradientsTexture) {\n this._updateBuffer.setFloat(\"limitVelocityDamping\", this.limitVelocityDamping);\n }\n if (this.particleEmitterType) {\n this.particleEmitterType.applyToShader(this._updateBuffer);\n }\n if (this._isAnimationSheetEnabled) {\n this._updateBuffer.setFloat4(\"cellInfos\", this.startSpriteCellID, this.endSpriteCellID, this.spriteCellChangeSpeed, this.spriteCellLoop ? 1 : 0);\n }\n if (this.noiseTexture) {\n this._updateBuffer.setVector3(\"noiseStrength\", this.noiseStrength);\n }\n if (!this.isLocal) {\n this._updateBuffer.setMatrix(\"emitterWM\", emitterWM);\n }\n this._platform.updateParticleBuffer(this._targetIndex, this._targetBuffer, this._currentActiveCount);\n // Switch VAOs\n this._targetIndex++;\n if (this._targetIndex === 2) {\n this._targetIndex = 0;\n }\n // Switch buffers\n const tmpBuffer = this._sourceBuffer;\n this._sourceBuffer = this._targetBuffer;\n this._targetBuffer = tmpBuffer;\n }\n /**\n * Renders the particle system in its current state\n * @param preWarm defines if the system should only update the particles but not render them\n * @param forceUpdateOnly if true, force to only update the particles and never display them (meaning, even if preWarm=false, when forceUpdateOnly=true the particles won't be displayed)\n * @returns the current number of particles\n */\n render(preWarm = false, forceUpdateOnly = false) {\n if (!this._started) {\n return 0;\n }\n if (!this.isReady()) {\n return 0;\n }\n if (!preWarm && this._scene) {\n if (!this._preWarmDone && this.preWarmCycles) {\n for (let index = 0; index < this.preWarmCycles; index++) {\n this.animate(true);\n this.render(true, true);\n }\n this._preWarmDone = true;\n }\n if (this._currentRenderId === this._scene.getRenderId() &&\n (!this._scene.activeCamera || (this._scene.activeCamera && this._currentRenderingCameraUniqueId === this._scene.activeCamera.uniqueId))) {\n return 0;\n }\n this._currentRenderId = this._scene.getRenderId();\n if (this._scene.activeCamera) {\n this._currentRenderingCameraUniqueId = this._scene.activeCamera.uniqueId;\n }\n }\n // Get everything ready to render\n this._initialize();\n this._accumulatedCount += this.emitRate * this._timeDelta;\n if (this._accumulatedCount > 1) {\n const intPart = this._accumulatedCount | 0;\n this._accumulatedCount -= intPart;\n this._currentActiveCount += intPart;\n }\n this._currentActiveCount = Math.min(this._maxActiveParticleCount, this._currentActiveCount);\n if (!this._currentActiveCount) {\n return 0;\n }\n // Enable update effect\n let emitterWM;\n if (this.emitter.position) {\n const emitterMesh = this.emitter;\n emitterWM = emitterMesh.getWorldMatrix();\n }\n else {\n const emitterPosition = this.emitter;\n emitterWM = TmpVectors.Matrix[0];\n Matrix.TranslationToRef(emitterPosition.x, emitterPosition.y, emitterPosition.z, emitterWM);\n }\n const engine = this._engine;\n if (!this.updateInAnimate) {\n this._update(emitterWM);\n }\n let outparticles = 0;\n if (!preWarm && !forceUpdateOnly) {\n engine.setState(false);\n if (this.forceDepthWrite) {\n engine.setDepthWrite(true);\n }\n if (this.blendMode === ParticleSystem.BLENDMODE_MULTIPLYADD) {\n outparticles = this._render(ParticleSystem.BLENDMODE_MULTIPLY, emitterWM) + this._render(ParticleSystem.BLENDMODE_ADD, emitterWM);\n }\n else {\n outparticles = this._render(this.blendMode, emitterWM);\n }\n this._engine.setAlphaMode(0);\n }\n return outparticles;\n }\n /**\n * Rebuilds the particle system\n */\n rebuild() {\n const checkUpdateEffect = () => {\n if (!this._recreateUpdateEffect() || !this._platform.isUpdateBufferReady()) {\n setTimeout(checkUpdateEffect, 10);\n }\n else {\n this._initialize(true);\n this._rebuildingAfterContextLost = false;\n }\n };\n this._createIndexBuffer();\n this._cachedUpdateDefines = \"\";\n this._platform.contextLost();\n this._rebuildingAfterContextLost = true;\n checkUpdateEffect();\n }\n _releaseBuffers() {\n if (this._buffer0) {\n this._buffer0.dispose();\n this._buffer0 = null;\n }\n if (this._buffer1) {\n this._buffer1.dispose();\n this._buffer1 = null;\n }\n if (this._spriteBuffer) {\n this._spriteBuffer.dispose();\n this._spriteBuffer = null;\n }\n this._platform.releaseBuffers();\n }\n /**\n * Disposes the particle system and free the associated resources\n * @param disposeTexture defines if the particule texture must be disposed as well (true by default)\n */\n dispose(disposeTexture = true) {\n for (const blendMode in this._drawWrappers) {\n const drawWrapper = this._drawWrappers[blendMode];\n drawWrapper.dispose();\n }\n this._drawWrappers = {};\n if (this._scene) {\n const index = this._scene.particleSystems.indexOf(this);\n if (index > -1) {\n this._scene.particleSystems.splice(index, 1);\n }\n }\n this._releaseBuffers();\n this._platform.releaseVertexBuffers();\n for (let i = 0; i < this._renderVertexBuffers.length; ++i) {\n const rvb = this._renderVertexBuffers[i];\n for (const key in rvb) {\n rvb[key].dispose();\n }\n }\n this._renderVertexBuffers = [];\n if (this._colorGradientsTexture) {\n this._colorGradientsTexture.dispose();\n this._colorGradientsTexture = null;\n }\n if (this._sizeGradientsTexture) {\n this._sizeGradientsTexture.dispose();\n this._sizeGradientsTexture = null;\n }\n if (this._angularSpeedGradientsTexture) {\n this._angularSpeedGradientsTexture.dispose();\n this._angularSpeedGradientsTexture = null;\n }\n if (this._velocityGradientsTexture) {\n this._velocityGradientsTexture.dispose();\n this._velocityGradientsTexture = null;\n }\n if (this._limitVelocityGradientsTexture) {\n this._limitVelocityGradientsTexture.dispose();\n this._limitVelocityGradientsTexture = null;\n }\n if (this._dragGradientsTexture) {\n this._dragGradientsTexture.dispose();\n this._dragGradientsTexture = null;\n }\n if (this._randomTexture) {\n this._randomTexture.dispose();\n this._randomTexture = null;\n }\n if (this._randomTexture2) {\n this._randomTexture2.dispose();\n this._randomTexture2 = null;\n }\n if (disposeTexture && this.particleTexture) {\n this.particleTexture.dispose();\n this.particleTexture = null;\n }\n if (disposeTexture && this.noiseTexture) {\n this.noiseTexture.dispose();\n this.noiseTexture = null;\n }\n // Callback\n this.onStoppedObservable.clear();\n this.onDisposeObservable.notifyObservers(this);\n this.onDisposeObservable.clear();\n }\n /**\n * Clones the particle system.\n * @param name The name of the cloned object\n * @param newEmitter The new emitter to use\n * @param cloneTexture Also clone the textures if true\n * @returns the cloned particle system\n */\n clone(name, newEmitter, cloneTexture = false) {\n const custom = { ...this._customWrappers };\n let program = null;\n const engine = this._engine;\n if (engine.createEffectForParticles) {\n if (this.customShader != null) {\n program = this.customShader;\n const defines = program.shaderOptions.defines.length > 0 ? program.shaderOptions.defines.join(\"\\n\") : \"\";\n custom[0] = engine.createEffectForParticles(program.shaderPath.fragmentElement, program.shaderOptions.uniforms, program.shaderOptions.samplers, defines, undefined, undefined, undefined, this);\n }\n }\n const serialization = this.serialize(cloneTexture);\n const result = GPUParticleSystem.Parse(serialization, this._scene || this._engine, this._rootUrl);\n result.name = name;\n result.customShader = program;\n result._customWrappers = custom;\n if (newEmitter === undefined) {\n newEmitter = this.emitter;\n }\n if (this.noiseTexture) {\n result.noiseTexture = this.noiseTexture.clone();\n }\n result.emitter = newEmitter;\n return result;\n }\n /**\n * Serializes the particle system to a JSON object\n * @param serializeTexture defines if the texture must be serialized as well\n * @returns the JSON object\n */\n serialize(serializeTexture = false) {\n const serializationObject = {};\n ParticleSystem._Serialize(serializationObject, this, serializeTexture);\n serializationObject.activeParticleCount = this.activeParticleCount;\n serializationObject.randomTextureSize = this._randomTextureSize;\n serializationObject.customShader = this.customShader;\n return serializationObject;\n }\n /**\n * Parses a JSON object to create a GPU particle system.\n * @param parsedParticleSystem The JSON object to parse\n * @param sceneOrEngine The scene or the engine to create the particle system in\n * @param rootUrl The root url to use to load external dependencies like texture\n * @param doNotStart Ignore the preventAutoStart attribute and does not start\n * @param capacity defines the system capacity (if null or undefined the sotred capacity will be used)\n * @returns the parsed GPU particle system\n */\n static Parse(parsedParticleSystem, sceneOrEngine, rootUrl, doNotStart = false, capacity) {\n const name = parsedParticleSystem.name;\n let engine;\n let scene;\n if (sceneOrEngine instanceof AbstractEngine) {\n engine = sceneOrEngine;\n }\n else {\n scene = sceneOrEngine;\n engine = scene.getEngine();\n }\n const particleSystem = new GPUParticleSystem(name, { capacity: capacity || parsedParticleSystem.capacity, randomTextureSize: parsedParticleSystem.randomTextureSize }, sceneOrEngine, null, parsedParticleSystem.isAnimationSheetEnabled);\n particleSystem._rootUrl = rootUrl;\n if (parsedParticleSystem.customShader && engine.createEffectForParticles) {\n const program = parsedParticleSystem.customShader;\n const defines = program.shaderOptions.defines.length > 0 ? program.shaderOptions.defines.join(\"\\n\") : \"\";\n const custom = engine.createEffectForParticles(program.shaderPath.fragmentElement, program.shaderOptions.uniforms, program.shaderOptions.samplers, defines, undefined, undefined, undefined, particleSystem);\n particleSystem.setCustomEffect(custom, 0);\n particleSystem.customShader = program;\n }\n if (parsedParticleSystem.id) {\n particleSystem.id = parsedParticleSystem.id;\n }\n if (parsedParticleSystem.activeParticleCount) {\n particleSystem.activeParticleCount = parsedParticleSystem.activeParticleCount;\n }\n ParticleSystem._Parse(parsedParticleSystem, particleSystem, sceneOrEngine, rootUrl);\n // Auto start\n if (parsedParticleSystem.preventAutoStart) {\n particleSystem.preventAutoStart = parsedParticleSystem.preventAutoStart;\n }\n if (!doNotStart && !particleSystem.preventAutoStart) {\n particleSystem.start();\n }\n return particleSystem;\n }\n}\n","import { Color3 } from \"../Maths/math.color.js\";\nimport { CreateSphere } from \"../Meshes/Builders/sphereBuilder.js\";\nimport { GPUParticleSystem } from \"./gpuParticleSystem.js\";\nimport { EngineStore } from \"../Engines/engineStore.js\";\nimport { ParticleSystem } from \"../Particles/particleSystem.js\";\nimport { StandardMaterial } from \"../Materials/standardMaterial.js\";\n/** Internal class used to store shapes for emitters */\nclass ParticleSystemSetEmitterCreationOptions {\n}\n/**\n * Represents a set of particle systems working together to create a specific effect\n */\nexport class ParticleSystemSet {\n constructor() {\n this._emitterNodeIsOwned = true;\n /**\n * Gets the particle system list\n */\n this.systems = [];\n }\n /**\n * Gets or sets the emitter node used with this set\n */\n get emitterNode() {\n return this._emitterNode;\n }\n set emitterNode(value) {\n if (this._emitterNodeIsOwned && this._emitterNode) {\n if (this._emitterNode.dispose) {\n this._emitterNode.dispose();\n }\n this._emitterNodeIsOwned = false;\n }\n for (const system of this.systems) {\n system.emitter = value;\n }\n this._emitterNode = value;\n }\n /**\n * Creates a new emitter mesh as a sphere\n * @param options defines the options used to create the sphere\n * @param options.diameter\n * @param options.segments\n * @param options.color\n * @param renderingGroupId defines the renderingGroupId to use for the sphere\n * @param scene defines the hosting scene\n */\n setEmitterAsSphere(options, renderingGroupId, scene) {\n if (this._emitterNodeIsOwned && this._emitterNode) {\n if (this._emitterNode.dispose) {\n this._emitterNode.dispose();\n }\n }\n this._emitterNodeIsOwned = true;\n this._emitterCreationOptions = {\n kind: \"Sphere\",\n options: options,\n renderingGroupId: renderingGroupId,\n };\n const emitterMesh = CreateSphere(\"emitterSphere\", { diameter: options.diameter, segments: options.segments }, scene);\n emitterMesh.renderingGroupId = renderingGroupId;\n const material = new StandardMaterial(\"emitterSphereMaterial\", scene);\n material.emissiveColor = options.color;\n emitterMesh.material = material;\n for (const system of this.systems) {\n system.emitter = emitterMesh;\n }\n this._emitterNode = emitterMesh;\n }\n /**\n * Starts all particle systems of the set\n * @param emitter defines an optional mesh to use as emitter for the particle systems\n */\n start(emitter) {\n for (const system of this.systems) {\n if (emitter) {\n system.emitter = emitter;\n }\n system.start();\n }\n }\n /**\n * Release all associated resources\n */\n dispose() {\n for (const system of this.systems) {\n system.dispose();\n }\n this.systems.length = 0;\n if (this._emitterNode) {\n if (this._emitterNode.dispose) {\n this._emitterNode.dispose();\n }\n this._emitterNode = null;\n }\n }\n /**\n * Serialize the set into a JSON compatible object\n * @param serializeTexture defines if the texture must be serialized as well\n * @returns a JSON compatible representation of the set\n */\n serialize(serializeTexture = false) {\n const result = {};\n result.systems = [];\n for (const system of this.systems) {\n result.systems.push(system.serialize(serializeTexture));\n }\n if (this._emitterNode) {\n result.emitter = this._emitterCreationOptions;\n }\n return result;\n }\n /**\n * Parse a new ParticleSystemSet from a serialized source\n * @param data defines a JSON compatible representation of the set\n * @param scene defines the hosting scene\n * @param gpu defines if we want GPU particles or CPU particles\n * @param capacity defines the system capacity (if null or undefined the sotred capacity will be used)\n * @returns a new ParticleSystemSet\n */\n static Parse(data, scene, gpu = false, capacity) {\n const result = new ParticleSystemSet();\n const rootUrl = this.BaseAssetsUrl + \"/textures/\";\n scene = scene || EngineStore.LastCreatedScene;\n for (const system of data.systems) {\n result.systems.push(gpu ? GPUParticleSystem.Parse(system, scene, rootUrl, true, capacity) : ParticleSystem.Parse(system, scene, rootUrl, true, capacity));\n }\n if (data.emitter) {\n const options = data.emitter.options;\n switch (data.emitter.kind) {\n case \"Sphere\":\n result.setEmitterAsSphere({\n diameter: options.diameter,\n segments: options.segments,\n color: Color3.FromArray(options.color),\n }, data.emitter.renderingGroupId, scene);\n break;\n }\n }\n return result;\n }\n}\n/**\n * Gets or sets base Assets URL\n */\nParticleSystemSet.BaseAssetsUrl = \"https://assets.babylonjs.com/particles\";\n","import { Tools } from \"../Misc/tools.js\";\nimport { Color4 } from \"../Maths/math.color.js\";\nimport { Texture } from \"../Materials/Textures/texture.js\";\nimport { EngineStore } from \"../Engines/engineStore.js\";\nimport { GPUParticleSystem } from \"./gpuParticleSystem.js\";\nimport { ParticleSystemSet } from \"./particleSystemSet.js\";\nimport { ParticleSystem } from \"./particleSystem.js\";\nimport { WebRequest } from \"../Misc/webRequest.js\";\n\n/**\n * This class is made for on one-liner static method to help creating particle system set.\n */\nexport class ParticleHelper {\n /**\n * Create a default particle system that you can tweak\n * @param emitter defines the emitter to use\n * @param capacity defines the system capacity (default is 500 particles)\n * @param scene defines the hosting scene\n * @param useGPU defines if a GPUParticleSystem must be created (default is false)\n * @returns the new Particle system\n */\n static CreateDefault(emitter, capacity = 500, scene, useGPU = false) {\n let system;\n if (useGPU) {\n system = new GPUParticleSystem(\"default system\", { capacity: capacity }, scene);\n }\n else {\n system = new ParticleSystem(\"default system\", capacity, scene);\n }\n system.emitter = emitter;\n system.particleTexture = new Texture(\"https://assets.babylonjs.com/textures/flare.png\", system.getScene());\n system.createConeEmitter(0.1, Math.PI / 4);\n // Particle color\n system.color1 = new Color4(1.0, 1.0, 1.0, 1.0);\n system.color2 = new Color4(1.0, 1.0, 1.0, 1.0);\n system.colorDead = new Color4(1.0, 1.0, 1.0, 0.0);\n // Particle Size\n system.minSize = 0.1;\n system.maxSize = 0.1;\n // Emission speed\n system.minEmitPower = 2;\n system.maxEmitPower = 2;\n // Update speed\n system.updateSpeed = 1 / 60;\n system.emitRate = 30;\n return system;\n }\n /**\n * This is the main static method (one-liner) of this helper to create different particle systems\n * @param type This string represents the type to the particle system to create\n * @param scene The scene where the particle system should live\n * @param gpu If the system will use gpu\n * @param capacity defines the system capacity (if null or undefined the sotred capacity will be used)\n * @returns the ParticleSystemSet created\n */\n static CreateAsync(type, scene, gpu = false, capacity) {\n if (!scene) {\n scene = EngineStore.LastCreatedScene;\n }\n const token = {};\n scene.addPendingData(token);\n return new Promise((resolve, reject) => {\n if (gpu && !GPUParticleSystem.IsSupported) {\n scene.removePendingData(token);\n return reject(\"Particle system with GPU is not supported.\");\n }\n Tools.LoadFile(`${ParticleHelper.BaseAssetsUrl}/systems/${type}.json`, (data) => {\n scene.removePendingData(token);\n const newData = JSON.parse(data.toString());\n return resolve(ParticleSystemSet.Parse(newData, scene, gpu, capacity));\n }, undefined, undefined, undefined, () => {\n scene.removePendingData(token);\n return reject(`An error occurred with the creation of your particle system. Check if your type '${type}' exists.`);\n });\n });\n }\n /**\n * Static function used to export a particle system to a ParticleSystemSet variable.\n * Please note that the emitter shape is not exported\n * @param systems defines the particle systems to export\n * @returns the created particle system set\n */\n static ExportSet(systems) {\n const set = new ParticleSystemSet();\n for (const system of systems) {\n set.systems.push(system);\n }\n return set;\n }\n /**\n * Creates a particle system from a snippet saved in a remote file\n * @param name defines the name of the particle system to create (can be null or empty to use the one from the json data)\n * @param url defines the url to load from\n * @param scene defines the hosting scene\n * @param gpu If the system will use gpu\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @param capacity defines the system capacity (if null or undefined the sotred capacity will be used)\n * @returns a promise that will resolve to the new particle system\n */\n static ParseFromFileAsync(name, url, scene, gpu = false, rootUrl = \"\", capacity) {\n return new Promise((resolve, reject) => {\n const request = new WebRequest();\n request.addEventListener(\"readystatechange\", () => {\n if (request.readyState == 4) {\n if (request.status == 200) {\n const serializationObject = JSON.parse(request.responseText);\n let output;\n if (gpu) {\n output = GPUParticleSystem.Parse(serializationObject, scene, rootUrl, false, capacity);\n }\n else {\n output = ParticleSystem.Parse(serializationObject, scene, rootUrl, false, capacity);\n }\n if (name) {\n output.name = name;\n }\n resolve(output);\n }\n else {\n reject(\"Unable to load the particle system\");\n }\n }\n });\n request.open(\"GET\", url);\n request.send();\n });\n }\n /**\n * Creates a particle system from a snippet saved by the particle system editor\n * @param snippetId defines the snippet to load (can be set to _BLANK to create a default one)\n * @param scene defines the hosting scene\n * @param gpu If the system will use gpu\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @param capacity defines the system capacity (if null or undefined the sotred capacity will be used)\n * @returns a promise that will resolve to the new particle system\n */\n static ParseFromSnippetAsync(snippetId, scene, gpu = false, rootUrl = \"\", capacity) {\n if (snippetId === \"_BLANK\") {\n const system = this.CreateDefault(null);\n system.start();\n return Promise.resolve(system);\n }\n return new Promise((resolve, reject) => {\n const request = new WebRequest();\n request.addEventListener(\"readystatechange\", () => {\n if (request.readyState == 4) {\n if (request.status == 200) {\n const snippet = JSON.parse(JSON.parse(request.responseText).jsonPayload);\n const serializationObject = JSON.parse(snippet.particleSystem);\n let output;\n if (gpu) {\n output = GPUParticleSystem.Parse(serializationObject, scene, rootUrl, false, capacity);\n }\n else {\n output = ParticleSystem.Parse(serializationObject, scene, rootUrl, false, capacity);\n }\n output.snippetId = snippetId;\n resolve(output);\n }\n else {\n reject(\"Unable to load the snippet \" + snippetId);\n }\n }\n });\n request.open(\"GET\", this.SnippetUrl + \"/\" + snippetId.replace(/#/g, \"/\"));\n request.send();\n });\n }\n}\n/**\n * Gets or sets base Assets URL\n */\nParticleHelper.BaseAssetsUrl = ParticleSystemSet.BaseAssetsUrl;\n/** Define the Url to load snippets */\nParticleHelper.SnippetUrl = `https://snippet.babylonjs.com`;\n/**\n * Creates a particle system from a snippet saved by the particle system editor\n * @deprecated Please use ParseFromSnippetAsync instead\n * @param snippetId defines the snippet to load (can be set to _BLANK to create a default one)\n * @param scene defines the hosting scene\n * @param gpu If the system will use gpu\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @param capacity defines the system capacity (if null or undefined the sotred capacity will be used)\n * @returns a promise that will resolve to the new particle system\n */\nParticleHelper.CreateFromSnippetAsync = ParticleHelper.ParseFromSnippetAsync;\n","import { Mesh } from \"../Meshes/mesh.js\";\nimport { GPUParticleSystem } from \"./gpuParticleSystem.js\";\nimport { ParticleSystem } from \"./particleSystem.js\";\nimport { SceneComponentConstants } from \"../sceneComponent.js\";\nimport { AbstractEngine } from \"../Engines/abstractEngine.js\";\nimport { AddParser, AddIndividualParser, GetIndividualParser } from \"../Loading/Plugins/babylonFileParser.function.js\";\n// Adds the parsers to the scene parsers.\nAddParser(SceneComponentConstants.NAME_PARTICLESYSTEM, (parsedData, scene, container, rootUrl) => {\n const individualParser = GetIndividualParser(SceneComponentConstants.NAME_PARTICLESYSTEM);\n if (!individualParser) {\n return;\n }\n // Particles Systems\n if (parsedData.particleSystems !== undefined && parsedData.particleSystems !== null) {\n for (let index = 0, cache = parsedData.particleSystems.length; index < cache; index++) {\n const parsedParticleSystem = parsedData.particleSystems[index];\n container.particleSystems.push(individualParser(parsedParticleSystem, scene, rootUrl));\n }\n }\n});\nAddIndividualParser(SceneComponentConstants.NAME_PARTICLESYSTEM, (parsedParticleSystem, scene, rootUrl) => {\n if (parsedParticleSystem.activeParticleCount) {\n const ps = GPUParticleSystem.Parse(parsedParticleSystem, scene, rootUrl);\n return ps;\n }\n else {\n const ps = ParticleSystem.Parse(parsedParticleSystem, scene, rootUrl);\n return ps;\n }\n});\nAbstractEngine.prototype.createEffectForParticles = function (fragmentName, uniformsNames = [], samplers = [], defines = \"\", fallbacks, onCompiled, onError, particleSystem, shaderLanguage = 0 /* ShaderLanguage.GLSL */) {\n let attributesNamesOrOptions = [];\n let effectCreationOption = [];\n const allSamplers = [];\n if (particleSystem) {\n particleSystem.fillUniformsAttributesAndSamplerNames(effectCreationOption, attributesNamesOrOptions, allSamplers);\n }\n else {\n attributesNamesOrOptions = ParticleSystem._GetAttributeNamesOrOptions();\n effectCreationOption = ParticleSystem._GetEffectCreationOptions();\n }\n if (defines.indexOf(\" BILLBOARD\") === -1) {\n defines += \"\\n#define BILLBOARD\\n\";\n }\n if (particleSystem?.isAnimationSheetEnabled) {\n if (defines.indexOf(\" ANIMATESHEET\") === -1) {\n defines += \"\\n#define ANIMATESHEET\\n\";\n }\n }\n if (samplers.indexOf(\"diffuseSampler\") === -1) {\n samplers.push(\"diffuseSampler\");\n }\n return this.createEffect({\n vertex: particleSystem?.vertexShaderName ?? \"particles\",\n fragmentElement: fragmentName,\n }, attributesNamesOrOptions, effectCreationOption.concat(uniformsNames), allSamplers.concat(samplers), defines, fallbacks, onCompiled, onError, undefined, shaderLanguage, async () => {\n if (shaderLanguage === 0 /* ShaderLanguage.GLSL */) {\n await import(\"../Shaders/particles.vertex.js\");\n }\n else {\n await import(\"../ShadersWGSL/particles.vertex.js\");\n }\n });\n};\nMesh.prototype.getEmittedParticleSystems = function () {\n const results = [];\n for (let index = 0; index < this.getScene().particleSystems.length; index++) {\n const particleSystem = this.getScene().particleSystems[index];\n if (particleSystem.emitter === this) {\n results.push(particleSystem);\n }\n }\n return results;\n};\nMesh.prototype.getHierarchyEmittedParticleSystems = function () {\n const results = [];\n const descendants = this.getDescendants();\n descendants.push(this);\n for (let index = 0; index < this.getScene().particleSystems.length; index++) {\n const particleSystem = this.getScene().particleSystems[index];\n const emitter = particleSystem.emitter;\n if (emitter.position && descendants.indexOf(emitter) !== -1) {\n results.push(particleSystem);\n }\n }\n return results;\n};\n","import { AbstractMesh } from \"../../Meshes/abstractMesh.js\";\nimport { PhysicsJoint } from \"./physicsJoint.js\";\nObject.defineProperty(AbstractMesh.prototype, \"physicsImpostor\", {\n get: function () {\n return this._physicsImpostor;\n },\n set: function (value) {\n if (this._physicsImpostor === value) {\n return;\n }\n if (this._disposePhysicsObserver) {\n this.onDisposeObservable.remove(this._disposePhysicsObserver);\n }\n this._physicsImpostor = value;\n if (value) {\n this._disposePhysicsObserver = this.onDisposeObservable.add(() => {\n // Physics\n if (this.physicsImpostor) {\n this.physicsImpostor.dispose( /*!doNotRecurse*/);\n this.physicsImpostor = null;\n }\n });\n }\n },\n enumerable: true,\n configurable: true,\n});\n/**\n * Gets the current physics impostor\n * @see https://doc.babylonjs.com/features/featuresDeepDive/physics\n * @returns a physics impostor or null\n */\nAbstractMesh.prototype.getPhysicsImpostor = function () {\n return this.physicsImpostor;\n};\n/**\n * Apply a physic impulse to the mesh\n * @param force defines the force to apply\n * @param contactPoint defines where to apply the force\n * @returns the current mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine\n */\nAbstractMesh.prototype.applyImpulse = function (force, contactPoint) {\n if (!this.physicsImpostor) {\n return this;\n }\n this.physicsImpostor.applyImpulse(force, contactPoint);\n return this;\n};\n/**\n * Creates a physic joint between two meshes\n * @param otherMesh defines the other mesh to use\n * @param pivot1 defines the pivot to use on this mesh\n * @param pivot2 defines the pivot to use on the other mesh\n * @param options defines additional options (can be plugin dependent)\n * @returns the current mesh\n * @see https://www.babylonjs-playground.com/#0BS5U0#0\n */\nAbstractMesh.prototype.setPhysicsLinkWith = function (otherMesh, pivot1, pivot2, options) {\n if (!this.physicsImpostor || !otherMesh.physicsImpostor) {\n return this;\n }\n this.physicsImpostor.createJoint(otherMesh.physicsImpostor, PhysicsJoint.HingeJoint, {\n mainPivot: pivot1,\n connectedPivot: pivot2,\n nativeParams: options,\n });\n return this;\n};\n","import { Vector3 } from \"../../Maths/math.vector.js\";\nimport { PhysicsRaycastResult } from \"../physicsRaycastResult.js\";\nimport { _WarnImport } from \"../../Misc/devTools.js\";\n/**\n * Class used to control physics engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine\n */\nexport class PhysicsEngine {\n /**\n *\n * @returns physics plugin version\n */\n getPluginVersion() {\n return this._physicsPlugin.getPluginVersion();\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Factory used to create the default physics plugin.\n * @returns The default physics plugin\n */\n static DefaultPluginFactory() {\n throw _WarnImport(\"\");\n }\n /**\n * Creates a new Physics Engine\n * @param gravity defines the gravity vector used by the simulation\n * @param _physicsPlugin defines the plugin to use (CannonJS by default)\n */\n constructor(gravity, _physicsPlugin = PhysicsEngine.DefaultPluginFactory()) {\n this._physicsPlugin = _physicsPlugin;\n /** @internal */\n this._physicsBodies = [];\n this._subTimeStep = 0;\n gravity = gravity || new Vector3(0, -9.807, 0);\n this.setGravity(gravity);\n this.setTimeStep();\n }\n /**\n * Sets the gravity vector used by the simulation\n * @param gravity defines the gravity vector to use\n */\n setGravity(gravity) {\n this.gravity = gravity;\n this._physicsPlugin.setGravity(this.gravity);\n }\n /**\n * Set the time step of the physics engine.\n * Default is 1/60.\n * To slow it down, enter 1/600 for example.\n * To speed it up, 1/30\n * Unit is seconds.\n * @param newTimeStep defines the new timestep to apply to this world.\n */\n setTimeStep(newTimeStep = 1 / 60) {\n this._physicsPlugin.setTimeStep(newTimeStep);\n }\n /**\n * Get the time step of the physics engine.\n * @returns the current time step\n */\n getTimeStep() {\n return this._physicsPlugin.getTimeStep();\n }\n /**\n * Set the sub time step of the physics engine.\n * Default is 0 meaning there is no sub steps\n * To increase physics resolution precision, set a small value (like 1 ms)\n * @param subTimeStep defines the new sub timestep used for physics resolution.\n */\n setSubTimeStep(subTimeStep = 0) {\n this._subTimeStep = subTimeStep;\n }\n /**\n * Get the sub time step of the physics engine.\n * @returns the current sub time step\n */\n getSubTimeStep() {\n return this._subTimeStep;\n }\n /**\n * Release all resources\n */\n dispose() {\n this._physicsPlugin.dispose();\n }\n /**\n * Gets the name of the current physics plugin\n * @returns the name of the plugin\n */\n getPhysicsPluginName() {\n return this._physicsPlugin.name;\n }\n /**\n * Set the maximum allowed linear and angular velocities\n * @param maxLinearVelocity maximum allowed linear velocity\n * @param maxAngularVelocity maximum allowed angular velocity\n */\n setVelocityLimits(maxLinearVelocity, maxAngularVelocity) {\n this._physicsPlugin.setVelocityLimits(maxLinearVelocity, maxAngularVelocity);\n }\n /**\n * @returns maximum allowed linear velocity\n */\n getMaxLinearVelocity() {\n return this._physicsPlugin.getMaxLinearVelocity();\n }\n /**\n * @returns maximum allowed angular velocity\n */\n getMaxAngularVelocity() {\n return this._physicsPlugin.getMaxAngularVelocity();\n }\n /**\n * Adding a new impostor for the impostor tracking.\n * This will be done by the impostor itself.\n * @param impostor the impostor to add\n */\n /**\n * Called by the scene. No need to call it.\n * @param delta defines the timespan between frames\n */\n _step(delta) {\n if (delta > 0.1) {\n delta = 0.1;\n }\n else if (delta <= 0) {\n delta = 1.0 / 60.0;\n }\n this._physicsPlugin.executeStep(delta, this._physicsBodies);\n }\n /**\n * Add a body as an active component of this engine\n * @param physicsBody The body to add\n */\n addBody(physicsBody) {\n this._physicsBodies.push(physicsBody);\n }\n /**\n * Removes a particular body from this engine\n * @param physicsBody The body to remove from the simulation\n */\n removeBody(physicsBody) {\n const index = this._physicsBodies.indexOf(physicsBody);\n if (index > -1) {\n /*const removed =*/ this._physicsBodies.splice(index, 1);\n }\n }\n /**\n * @returns an array of bodies added to this engine\n */\n getBodies() {\n return this._physicsBodies;\n }\n /**\n * Gets the current plugin used to run the simulation\n * @returns current plugin\n */\n getPhysicsPlugin() {\n return this._physicsPlugin;\n }\n /**\n * Does a raycast in the physics world\n * @param from when should the ray start?\n * @param to when should the ray end?\n * @param result resulting PhysicsRaycastResult\n * @param query raycast query object\n */\n raycastToRef(from, to, result, query) {\n this._physicsPlugin.raycast(from, to, result, query);\n }\n /**\n * Does a raycast in the physics world\n * @param from when should the ray start?\n * @param to when should the ray end?\n * @param query raycast query object\n * @returns PhysicsRaycastResult\n */\n raycast(from, to, query) {\n const result = new PhysicsRaycastResult();\n this._physicsPlugin.raycast(from, to, result, query);\n return result;\n }\n}\n","import { Logger } from \"../Misc/logger.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { SceneComponentConstants } from \"../sceneComponent.js\";\nimport { Scene } from \"../scene.js\";\nimport { PhysicsEngine as PhysicsEngineV1 } from \"./v1/physicsEngine.js\";\nimport { PhysicsEngine as PhysicsEngineV2 } from \"./v2/physicsEngine.js\";\n/**\n * Gets the current physics engine\n * @returns a IPhysicsEngine or null if none attached\n */\nScene.prototype.getPhysicsEngine = function () {\n return this._physicsEngine;\n};\n/**\n * Enables physics to the current scene\n * @param gravity defines the scene's gravity for the physics engine\n * @param plugin defines the physics engine to be used. defaults to CannonJS.\n * @returns a boolean indicating if the physics engine was initialized\n */\nScene.prototype.enablePhysics = function (gravity = null, plugin) {\n if (this._physicsEngine) {\n return true;\n }\n // Register the component to the scene\n let component = this._getComponent(SceneComponentConstants.NAME_PHYSICSENGINE);\n if (!component) {\n component = new PhysicsEngineSceneComponent(this);\n this._addComponent(component);\n }\n try {\n if (!plugin || plugin?.getPluginVersion() === 1) {\n this._physicsEngine = new PhysicsEngineV1(gravity, plugin);\n }\n else if (plugin?.getPluginVersion() === 2) {\n this._physicsEngine = new PhysicsEngineV2(gravity, plugin);\n }\n else {\n throw new Error(\"Unsupported Physics plugin version.\");\n }\n this._physicsTimeAccumulator = 0;\n return true;\n }\n catch (e) {\n Logger.Error(e.message);\n return false;\n }\n};\n/**\n * Disables and disposes the physics engine associated with the scene\n */\nScene.prototype.disablePhysicsEngine = function () {\n if (!this._physicsEngine) {\n return;\n }\n this._physicsEngine.dispose();\n this._physicsEngine = null;\n};\n/**\n * Gets a boolean indicating if there is an active physics engine\n * @returns a boolean indicating if there is an active physics engine\n */\nScene.prototype.isPhysicsEnabled = function () {\n return this._physicsEngine !== undefined;\n};\n/**\n * Deletes a physics compound impostor\n * @param compound defines the compound to delete\n */\nScene.prototype.deleteCompoundImpostor = function (compound) {\n const mesh = compound.parts[0].mesh;\n if (mesh.physicsImpostor) {\n mesh.physicsImpostor.dispose( /*true*/);\n mesh.physicsImpostor = null;\n }\n};\n/**\n * @internal\n */\nScene.prototype._advancePhysicsEngineStep = function (step) {\n if (this._physicsEngine) {\n const subTime = this._physicsEngine.getSubTimeStep();\n if (subTime > 0) {\n this._physicsTimeAccumulator += step;\n while (this._physicsTimeAccumulator > subTime) {\n this.onBeforePhysicsObservable.notifyObservers(this);\n this._physicsEngine._step(subTime / 1000);\n this.onAfterPhysicsObservable.notifyObservers(this);\n this._physicsTimeAccumulator -= subTime;\n }\n }\n else {\n this.onBeforePhysicsObservable.notifyObservers(this);\n this._physicsEngine._step(step / 1000);\n this.onAfterPhysicsObservable.notifyObservers(this);\n }\n }\n};\n/**\n * Defines the physics engine scene component responsible to manage a physics engine\n */\nexport class PhysicsEngineSceneComponent {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(scene) {\n /**\n * The component name helpful to identify the component in the list of scene components.\n */\n this.name = SceneComponentConstants.NAME_PHYSICSENGINE;\n this.scene = scene;\n this.scene.onBeforePhysicsObservable = new Observable();\n this.scene.onAfterPhysicsObservable = new Observable();\n // Replace the function used to get the deterministic frame time\n this.scene.getDeterministicFrameTime = () => {\n if (this.scene._physicsEngine) {\n return this.scene._physicsEngine.getTimeStep() * 1000;\n }\n return 1000.0 / 60.0;\n };\n }\n /**\n * Registers the component in a given scene\n */\n register() { }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n // Nothing to do for this component\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n this.scene.onBeforePhysicsObservable.clear();\n this.scene.onAfterPhysicsObservable.clear();\n if (this.scene._physicsEngine) {\n this.scene.disablePhysicsEngine();\n }\n }\n}\n","import { TransformNode } from \"../../Meshes/transformNode.js\";\nimport \"../joinedPhysicsEngineComponent.js\";\nObject.defineProperty(TransformNode.prototype, \"physicsBody\", {\n get: function () {\n return this._physicsBody;\n },\n set: function (value) {\n if (this._physicsBody === value) {\n return;\n }\n if (this._disposePhysicsObserver) {\n this.onDisposeObservable.remove(this._disposePhysicsObserver);\n }\n this._physicsBody = value;\n if (value) {\n this._disposePhysicsObserver = this.onDisposeObservable.add(() => {\n // Physics\n if (this.physicsBody) {\n this.physicsBody.dispose( /*!doNotRecurse*/);\n this.physicsBody = null;\n }\n });\n }\n },\n enumerable: true,\n configurable: true,\n});\n/**\n * Gets the current physics body\n * @returns a physics body or null\n */\nTransformNode.prototype.getPhysicsBody = function () {\n return this.physicsBody;\n};\n/**\n * Apply a physic impulse to the mesh\n * @param force defines the force to apply\n * @param contactPoint defines where to apply the force\n * @returns the current mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine\n */\nTransformNode.prototype.applyImpulse = function (force, contactPoint) {\n if (!this.physicsBody) {\n throw new Error(\"No Physics Body for TransformNode\");\n }\n this.physicsBody.applyImpulse(force, contactPoint);\n return this;\n};\n/**\n * Apply a physic angular impulse to the mesh\n * @param angularImpulse defines the torque to apply\n * @returns the current mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine\n */\nTransformNode.prototype.applyAngularImpulse = function (angularImpulse) {\n if (!this.physicsBody) {\n throw new Error(\"No Physics Body for TransformNode\");\n }\n this.physicsBody.applyAngularImpulse(angularImpulse);\n return this;\n};\n","import { Logger } from \"../Misc/logger.js\";\nimport { TmpVectors, Vector3 } from \"../Maths/math.vector.js\";\nimport { CreateSphere } from \"../Meshes/Builders/sphereBuilder.js\";\nimport { CreateCylinder } from \"../Meshes/Builders/cylinderBuilder.js\";\nimport { Ray } from \"../Culling/ray.js\";\nclass HelperTools {\n /*\n * Gets the hit contact point between a mesh and a ray. The method varies between\n * the different plugin versions; V1 uses a mesh intersection, V2 uses the physics body instance/object center (to avoid a raycast and improve perf).\n */\n static GetContactPointToRef(mesh, origin, direction, result, instanceIndex) {\n const engine = mesh.getScene().getPhysicsEngine();\n const pluginVersion = engine?.getPluginVersion();\n if (pluginVersion === 1) {\n const ray = new Ray(origin, direction);\n const hit = ray.intersectsMesh(mesh);\n if (hit.hit && hit.pickedPoint) {\n result.copyFrom(hit.pickedPoint);\n return true;\n }\n }\n else if (pluginVersion === 2) {\n mesh.physicsBody.getObjectCenterWorldToRef(result, instanceIndex);\n return true;\n }\n return false;\n }\n /**\n * Checks if a body will be affected by forces\n * @param body the body to check\n * @param instanceIndex for instanced bodies, the index of the instance to check\n * @returns\n */\n static HasAppliedForces(body, instanceIndex) {\n return (body.getMotionType(instanceIndex) === 0 /* PhysicsMotionType.STATIC */ ||\n (body.getMassProperties(instanceIndex)?.mass ?? 0) === 0 ||\n body.transformNode?.getTotalVertices() === 0);\n }\n /**\n * Checks if a point is inside a cylinder\n * @param point point to check\n * @param origin cylinder origin on the bottom\n * @param radius cylinder radius\n * @param height cylinder height\n * @returns\n */\n static IsInsideCylinder(point, origin, radius, height) {\n const distance = TmpVectors.Vector3[0];\n point.subtractToRef(origin, distance);\n return Math.abs(distance.x) <= radius && Math.abs(distance.z) <= radius && distance.y >= 0 && distance.y <= height;\n }\n}\n/**\n * A helper for physics simulations\n * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine#further-functionality-of-the-impostor-class\n */\nexport class PhysicsHelper {\n /**\n * Initializes the Physics helper\n * @param scene Babylon.js scene\n */\n constructor(scene) {\n this._hitData = { force: new Vector3(), contactPoint: new Vector3(), distanceFromOrigin: 0 };\n this._scene = scene;\n this._physicsEngine = this._scene.getPhysicsEngine();\n if (!this._physicsEngine) {\n Logger.Warn(\"Physics engine not enabled. Please enable the physics before you can use the methods.\");\n return;\n }\n }\n /**\n * Applies a radial explosion impulse\n * @param origin the origin of the explosion\n * @param radiusOrEventOptions the radius or the options of radial explosion\n * @param strength the explosion strength\n * @param falloff possible options: Constant & Linear. Defaults to Constant\n * @returns A physics radial explosion event, or null\n */\n applyRadialExplosionImpulse(origin, radiusOrEventOptions, strength, falloff) {\n if (!this._physicsEngine) {\n Logger.Warn(\"Physics engine not enabled. Please enable the physics before you call this method.\");\n return null;\n }\n if (this._physicsEngine.getPluginVersion() === 1 && this._physicsEngine.getImpostors().length === 0) {\n return null;\n }\n if (this._physicsEngine.getPluginVersion() === 2 && this._physicsEngine.getBodies().length === 0) {\n return null;\n }\n let useCallback = false;\n if (typeof radiusOrEventOptions === \"number\") {\n const r = radiusOrEventOptions;\n radiusOrEventOptions = new PhysicsRadialExplosionEventOptions();\n radiusOrEventOptions.radius = r;\n radiusOrEventOptions.strength = strength ?? radiusOrEventOptions.strength;\n radiusOrEventOptions.falloff = falloff ?? radiusOrEventOptions.falloff;\n }\n else {\n useCallback = !!(radiusOrEventOptions.affectedImpostorsCallback || radiusOrEventOptions.affectedBodiesCallback);\n }\n const event = new PhysicsRadialExplosionEvent(this._scene, radiusOrEventOptions);\n const hitData = this._hitData;\n if (this._physicsEngine.getPluginVersion() === 1) {\n const affectedImpostorsWithData = Array();\n const impostors = this._physicsEngine.getImpostors();\n impostors.forEach((impostor) => {\n if (!event.getImpostorHitData(impostor, origin, hitData)) {\n return;\n }\n impostor.applyImpulse(hitData.force, hitData.contactPoint);\n if (useCallback) {\n affectedImpostorsWithData.push({\n impostor: impostor,\n hitData: this._copyPhysicsHitData(hitData),\n });\n }\n });\n event.triggerAffectedImpostorsCallback(affectedImpostorsWithData);\n }\n else {\n this._applicationForBodies(event, origin, hitData, useCallback, (body, hitData) => {\n body.applyImpulse(hitData.force, hitData.contactPoint, hitData.instanceIndex);\n });\n }\n event.dispose(false);\n return event;\n }\n /**\n * Applies a radial explosion force\n * @param origin the origin of the explosion\n * @param radiusOrEventOptions the radius or the options of radial explosion\n * @param strength the explosion strength\n * @param falloff possible options: Constant & Linear. Defaults to Constant\n * @returns A physics radial explosion event, or null\n */\n applyRadialExplosionForce(origin, radiusOrEventOptions, strength, falloff) {\n if (!this._physicsEngine) {\n Logger.Warn(\"Physics engine not enabled. Please enable the physics before you call the PhysicsHelper.\");\n return null;\n }\n if (this._physicsEngine.getPluginVersion() === 1 && this._physicsEngine.getImpostors().length === 0) {\n return null;\n }\n if (this._physicsEngine.getPluginVersion() === 2 && this._physicsEngine.getBodies().length === 0) {\n return null;\n }\n let useCallback = false;\n if (typeof radiusOrEventOptions === \"number\") {\n const r = radiusOrEventOptions;\n radiusOrEventOptions = new PhysicsRadialExplosionEventOptions();\n radiusOrEventOptions.radius = r;\n radiusOrEventOptions.strength = strength ?? radiusOrEventOptions.strength;\n radiusOrEventOptions.falloff = falloff ?? radiusOrEventOptions.falloff;\n }\n else {\n useCallback = !!(radiusOrEventOptions.affectedImpostorsCallback || radiusOrEventOptions.affectedBodiesCallback);\n }\n const event = new PhysicsRadialExplosionEvent(this._scene, radiusOrEventOptions);\n const hitData = this._hitData;\n if (this._physicsEngine.getPluginVersion() === 1) {\n const affectedImpostorsWithData = Array();\n const impostors = this._physicsEngine.getImpostors();\n impostors.forEach((impostor) => {\n if (!event.getImpostorHitData(impostor, origin, hitData)) {\n return;\n }\n impostor.applyForce(hitData.force, hitData.contactPoint);\n if (useCallback) {\n affectedImpostorsWithData.push({\n impostor: impostor,\n hitData: this._copyPhysicsHitData(hitData),\n });\n }\n });\n event.triggerAffectedImpostorsCallback(affectedImpostorsWithData);\n }\n else {\n this._applicationForBodies(event, origin, hitData, useCallback, (body, hitData) => {\n body.applyForce(hitData.force, hitData.contactPoint, hitData.instanceIndex);\n });\n }\n event.dispose(false);\n return event;\n }\n _applicationForBodies(event, origin, hitData, useCallback, fnApplication) {\n const affectedBodiesWithData = Array();\n const bodies = this._physicsEngine.getBodies();\n for (const body of bodies) {\n body.iterateOverAllInstances((body, instanceIndex) => {\n if (!event.getBodyHitData(body, origin, hitData, instanceIndex)) {\n return;\n }\n fnApplication(body, hitData);\n if (useCallback) {\n affectedBodiesWithData.push({\n body: body,\n hitData: this._copyPhysicsHitData(hitData),\n });\n }\n });\n }\n event.triggerAffectedBodiesCallback(affectedBodiesWithData);\n }\n /**\n * Creates a gravitational field\n * @param origin the origin of the gravitational field\n * @param radiusOrEventOptions the radius or the options of radial gravitational field\n * @param strength the gravitational field strength\n * @param falloff possible options: Constant & Linear. Defaults to Constant\n * @returns A physics gravitational field event, or null\n */\n gravitationalField(origin, radiusOrEventOptions, strength, falloff) {\n if (!this._physicsEngine) {\n Logger.Warn(\"Physics engine not enabled. Please enable the physics before you call the PhysicsHelper.\");\n return null;\n }\n if (this._physicsEngine.getPluginVersion() === 1 && this._physicsEngine.getImpostors().length === 0) {\n return null;\n }\n if (this._physicsEngine.getPluginVersion() === 2 && this._physicsEngine.getBodies().length === 0) {\n return null;\n }\n if (typeof radiusOrEventOptions === \"number\") {\n const r = radiusOrEventOptions;\n radiusOrEventOptions = new PhysicsRadialExplosionEventOptions();\n radiusOrEventOptions.radius = r;\n radiusOrEventOptions.strength = strength ?? radiusOrEventOptions.strength;\n radiusOrEventOptions.falloff = falloff ?? radiusOrEventOptions.falloff;\n }\n const event = new PhysicsGravitationalFieldEvent(this, this._scene, origin, radiusOrEventOptions);\n event.dispose(false);\n return event;\n }\n /**\n * Creates a physics updraft event\n * @param origin the origin of the updraft\n * @param radiusOrEventOptions the radius or the options of the updraft\n * @param strength the strength of the updraft\n * @param height the height of the updraft\n * @param updraftMode possible options: Center & Perpendicular. Defaults to Center\n * @returns A physics updraft event, or null\n */\n updraft(origin, radiusOrEventOptions, strength, height, updraftMode) {\n if (!this._physicsEngine) {\n Logger.Warn(\"Physics engine not enabled. Please enable the physics before you call the PhysicsHelper.\");\n return null;\n }\n if (this._physicsEngine.getPluginVersion() === 1 && this._physicsEngine.getImpostors().length === 0) {\n return null;\n }\n if (this._physicsEngine.getPluginVersion() === 2 && this._physicsEngine.getBodies().length === 0) {\n return null;\n }\n if (typeof radiusOrEventOptions === \"number\") {\n const r = radiusOrEventOptions;\n radiusOrEventOptions = new PhysicsUpdraftEventOptions();\n radiusOrEventOptions.radius = r;\n radiusOrEventOptions.strength = strength ?? radiusOrEventOptions.strength;\n radiusOrEventOptions.height = height ?? radiusOrEventOptions.height;\n radiusOrEventOptions.updraftMode = updraftMode ?? radiusOrEventOptions.updraftMode;\n }\n const event = new PhysicsUpdraftEvent(this._scene, origin, radiusOrEventOptions);\n event.dispose(false);\n return event;\n }\n /**\n * Creates a physics vortex event\n * @param origin the of the vortex\n * @param radiusOrEventOptions the radius or the options of the vortex\n * @param strength the strength of the vortex\n * @param height the height of the vortex\n * @returns a Physics vortex event, or null\n * A physics vortex event or null\n */\n vortex(origin, radiusOrEventOptions, strength, height) {\n if (!this._physicsEngine) {\n Logger.Warn(\"Physics engine not enabled. Please enable the physics before you call the PhysicsHelper.\");\n return null;\n }\n if (this._physicsEngine.getPluginVersion() === 1 && this._physicsEngine.getImpostors().length === 0) {\n return null;\n }\n if (this._physicsEngine.getPluginVersion() === 2 && this._physicsEngine.getBodies().length === 0) {\n return null;\n }\n if (typeof radiusOrEventOptions === \"number\") {\n const r = radiusOrEventOptions;\n radiusOrEventOptions = new PhysicsVortexEventOptions();\n radiusOrEventOptions.radius = r;\n radiusOrEventOptions.strength = strength ?? radiusOrEventOptions.strength;\n radiusOrEventOptions.height = height ?? radiusOrEventOptions.height;\n }\n const event = new PhysicsVortexEvent(this._scene, origin, radiusOrEventOptions);\n event.dispose(false);\n return event;\n }\n _copyPhysicsHitData(data) {\n return { force: data.force.clone(), contactPoint: data.contactPoint.clone(), distanceFromOrigin: data.distanceFromOrigin, instanceIndex: data.instanceIndex };\n }\n}\n/**\n * Represents a physics radial explosion event\n */\nclass PhysicsRadialExplosionEvent {\n /**\n * Initializes a radial explosion event\n * @param _scene BabylonJS scene\n * @param _options The options for the vortex event\n */\n constructor(_scene, _options) {\n this._scene = _scene;\n this._options = _options;\n this._dataFetched = false; // check if the data has been fetched. If not, do cleanup\n this._options = { ...new PhysicsRadialExplosionEventOptions(), ...this._options };\n }\n /**\n * Returns the data related to the radial explosion event (sphere).\n * @returns The radial explosion event data\n */\n getData() {\n this._dataFetched = true;\n return {\n sphere: this._sphere,\n };\n }\n _getHitData(mesh, center, origin, data) {\n const direction = TmpVectors.Vector3[0];\n direction.copyFrom(center).subtractInPlace(origin);\n const contactPoint = TmpVectors.Vector3[1];\n const hasContactPoint = HelperTools.GetContactPointToRef(mesh, origin, direction, contactPoint, data.instanceIndex);\n if (!hasContactPoint) {\n return false;\n }\n const distanceFromOrigin = Vector3.Distance(origin, contactPoint);\n if (distanceFromOrigin > this._options.radius) {\n return false;\n }\n const multiplier = this._options.falloff === 0 /* PhysicsRadialImpulseFalloff.Constant */ ? this._options.strength : this._options.strength * (1 - distanceFromOrigin / this._options.radius);\n // Direction x multiplier equals force\n direction.scaleInPlace(multiplier);\n data.force.copyFrom(direction);\n data.contactPoint.copyFrom(contactPoint);\n data.distanceFromOrigin = distanceFromOrigin;\n return true;\n }\n /**\n * Returns the force and contact point of the body or false, if the body is not affected by the force/impulse.\n * @param body A physics body where the transform node is an AbstractMesh\n * @param origin the origin of the explosion\n * @param data the data of the hit\n * @param instanceIndex the instance index of the body\n * @returns if there was a hit\n */\n getBodyHitData(body, origin, data, instanceIndex) {\n // No force will be applied in these cases, so we skip calculation\n if (HelperTools.HasAppliedForces(body, instanceIndex)) {\n return false;\n }\n const mesh = body.transformNode;\n const bodyObjectCenter = body.getObjectCenterWorld(instanceIndex);\n data.instanceIndex = instanceIndex;\n return this._getHitData(mesh, bodyObjectCenter, origin, data);\n }\n /**\n * Returns the force and contact point of the impostor or false, if the impostor is not affected by the force/impulse.\n * @param impostor A physics imposter\n * @param origin the origin of the explosion\n * @param data the data of the hit\n * @returns A physics force and contact point, or null\n */\n getImpostorHitData(impostor, origin, data) {\n if (impostor.mass === 0) {\n return false;\n }\n if (impostor.object.getClassName() !== \"Mesh\" && impostor.object.getClassName() !== \"InstancedMesh\") {\n return false;\n }\n const mesh = impostor.object;\n if (!this._intersectsWithSphere(mesh, origin, this._options.radius)) {\n return false;\n }\n const impostorObjectCenter = impostor.getObjectCenter();\n this._getHitData(mesh, impostorObjectCenter, origin, data);\n return true;\n }\n /**\n * Triggers affected impostors callbacks\n * @param affectedImpostorsWithData defines the list of affected impostors (including associated data)\n */\n triggerAffectedImpostorsCallback(affectedImpostorsWithData) {\n if (this._options.affectedImpostorsCallback) {\n this._options.affectedImpostorsCallback(affectedImpostorsWithData);\n }\n }\n /**\n * Triggers affected bodies callbacks\n * @param affectedBodiesWithData defines the list of affected bodies (including associated data)\n */\n triggerAffectedBodiesCallback(affectedBodiesWithData) {\n if (this._options.affectedBodiesCallback) {\n this._options.affectedBodiesCallback(affectedBodiesWithData);\n }\n }\n /**\n * Disposes the sphere.\n * @param force Specifies if the sphere should be disposed by force\n */\n dispose(force = true) {\n if (this._sphere) {\n if (force) {\n this._sphere.dispose();\n }\n else {\n setTimeout(() => {\n if (!this._dataFetched) {\n this._sphere.dispose();\n }\n }, 0);\n }\n }\n }\n /*** Helpers ***/\n _prepareSphere() {\n if (!this._sphere) {\n this._sphere = CreateSphere(\"radialExplosionEventSphere\", this._options.sphere, this._scene);\n this._sphere.isVisible = false;\n }\n }\n _intersectsWithSphere(mesh, origin, radius) {\n this._prepareSphere();\n this._sphere.position = origin;\n this._sphere.scaling.setAll(radius * 2);\n this._sphere._updateBoundingInfo();\n this._sphere.computeWorldMatrix(true);\n return this._sphere.intersectsMesh(mesh, true);\n }\n}\n/**\n * Represents a gravitational field event\n */\nclass PhysicsGravitationalFieldEvent {\n /**\n * Initializes the physics gravitational field event\n * @param _physicsHelper A physics helper\n * @param _scene BabylonJS scene\n * @param _origin The origin position of the gravitational field event\n * @param _options The options for the vortex event\n */\n constructor(_physicsHelper, _scene, _origin, _options) {\n this._physicsHelper = _physicsHelper;\n this._scene = _scene;\n this._origin = _origin;\n this._options = _options;\n this._dataFetched = false; // check if the has been fetched the data. If not, do cleanup\n this._options = { ...new PhysicsRadialExplosionEventOptions(), ...this._options };\n this._tickCallback = () => this._tick();\n this._options.strength = this._options.strength * -1;\n }\n /**\n * Returns the data related to the gravitational field event (sphere).\n * @returns A gravitational field event\n */\n getData() {\n this._dataFetched = true;\n return {\n sphere: this._sphere,\n };\n }\n /**\n * Enables the gravitational field.\n */\n enable() {\n this._tickCallback.call(this);\n this._scene.registerBeforeRender(this._tickCallback);\n }\n /**\n * Disables the gravitational field.\n */\n disable() {\n this._scene.unregisterBeforeRender(this._tickCallback);\n }\n /**\n * Disposes the sphere.\n * @param force The force to dispose from the gravitational field event\n */\n dispose(force = true) {\n if (!this._sphere) {\n return;\n }\n if (force) {\n this._sphere.dispose();\n }\n else {\n setTimeout(() => {\n if (!this._dataFetched) {\n this._sphere.dispose();\n }\n }, 0);\n }\n }\n _tick() {\n // Since the params won't change, we fetch the event only once\n if (this._sphere) {\n this._physicsHelper.applyRadialExplosionForce(this._origin, this._options);\n }\n else {\n const radialExplosionEvent = this._physicsHelper.applyRadialExplosionForce(this._origin, this._options);\n if (radialExplosionEvent) {\n this._sphere = radialExplosionEvent.getData().sphere?.clone(\"radialExplosionEventSphereClone\");\n }\n }\n }\n}\n/**\n * Represents a physics updraft event\n */\nclass PhysicsUpdraftEvent {\n /**\n * Initializes the physics updraft event\n * @param _scene BabylonJS scene\n * @param _origin The origin position of the updraft\n * @param _options The options for the updraft event\n */\n constructor(_scene, _origin, _options) {\n this._scene = _scene;\n this._origin = _origin;\n this._options = _options;\n this._originTop = Vector3.Zero(); // the most upper part of the cylinder\n this._originDirection = Vector3.Zero(); // used if the updraftMode is perpendicular\n this._cylinderPosition = Vector3.Zero(); // to keep the cylinders position, because normally the origin is in the center and not on the bottom\n this._dataFetched = false; // check if the has been fetched the data. If not, do cleanup\n this._physicsEngine = this._scene.getPhysicsEngine();\n this._options = { ...new PhysicsUpdraftEventOptions(), ...this._options };\n this._origin.addToRef(new Vector3(0, this._options.height / 2, 0), this._cylinderPosition);\n this._origin.addToRef(new Vector3(0, this._options.height, 0), this._originTop);\n if (this._options.updraftMode === 1 /* PhysicsUpdraftMode.Perpendicular */) {\n this._originDirection = this._origin.subtract(this._originTop).normalize();\n }\n this._tickCallback = () => this._tick();\n if (this._physicsEngine.getPluginVersion() === 1) {\n this._prepareCylinder();\n }\n }\n /**\n * Returns the data related to the updraft event (cylinder).\n * @returns A physics updraft event\n */\n getData() {\n this._dataFetched = true;\n return {\n cylinder: this._cylinder,\n };\n }\n /**\n * Enables the updraft.\n */\n enable() {\n this._tickCallback.call(this);\n this._scene.registerBeforeRender(this._tickCallback);\n }\n /**\n * Disables the updraft.\n */\n disable() {\n this._scene.unregisterBeforeRender(this._tickCallback);\n }\n /**\n * Disposes the cylinder.\n * @param force Specifies if the updraft should be disposed by force\n */\n dispose(force = true) {\n if (!this._cylinder) {\n return;\n }\n if (force) {\n this._cylinder.dispose();\n this._cylinder = undefined;\n }\n else {\n setTimeout(() => {\n if (!this._dataFetched && this._cylinder) {\n this._cylinder.dispose();\n this._cylinder = undefined;\n }\n }, 0);\n }\n }\n _getHitData(center, data) {\n let direction;\n if (this._options.updraftMode === 1 /* PhysicsUpdraftMode.Perpendicular */) {\n direction = this._originDirection;\n }\n else {\n direction = center.subtract(this._originTop);\n }\n const distanceFromOrigin = Vector3.Distance(this._origin, center);\n const multiplier = this._options.strength * -1;\n const force = direction.multiplyByFloats(multiplier, multiplier, multiplier);\n data.force.copyFrom(force);\n data.contactPoint.copyFrom(center);\n data.distanceFromOrigin = distanceFromOrigin;\n }\n _getBodyHitData(body, data, instanceIndex) {\n if (HelperTools.HasAppliedForces(body)) {\n return false;\n }\n const center = body.getObjectCenterWorld(instanceIndex);\n if (!HelperTools.IsInsideCylinder(center, this._origin, this._options.radius, this._options.height)) {\n return false;\n }\n data.instanceIndex = instanceIndex;\n this._getHitData(center, data);\n return true;\n }\n _getImpostorHitData(impostor, data) {\n if (impostor.mass === 0) {\n return false;\n }\n const impostorObject = impostor.object;\n if (!this._intersectsWithCylinder(impostorObject)) {\n return false;\n }\n const center = impostor.getObjectCenter();\n this._getHitData(center, data);\n return true;\n }\n _tick() {\n const hitData = PhysicsUpdraftEvent._HitData;\n if (this._physicsEngine.getPluginVersion() === 1) {\n this._physicsEngine.getImpostors().forEach((impostor) => {\n if (!this._getImpostorHitData(impostor, hitData)) {\n return;\n }\n impostor.applyForce(hitData.force, hitData.contactPoint);\n });\n }\n else {\n // V2\n this._physicsEngine.getBodies().forEach((body) => {\n body.iterateOverAllInstances((body, instanceIndex) => {\n if (!this._getBodyHitData(body, hitData, instanceIndex)) {\n return;\n }\n body.applyForce(hitData.force, hitData.contactPoint, hitData.instanceIndex);\n });\n });\n }\n }\n /*** Helpers ***/\n _prepareCylinder() {\n if (!this._cylinder) {\n this._cylinder = CreateCylinder(\"updraftEventCylinder\", {\n height: this._options.height,\n diameter: this._options.radius * 2,\n }, this._scene);\n this._cylinder.isVisible = false;\n }\n }\n _intersectsWithCylinder(mesh) {\n if (!this._cylinder) {\n return false;\n }\n this._cylinder.position = this._cylinderPosition;\n return this._cylinder.intersectsMesh(mesh, true);\n }\n}\nPhysicsUpdraftEvent._HitData = { force: new Vector3(), contactPoint: new Vector3(), distanceFromOrigin: 0 };\n/**\n * Represents a physics vortex event\n */\nclass PhysicsVortexEvent {\n /**\n * Initializes the physics vortex event\n * @param _scene The BabylonJS scene\n * @param _origin The origin position of the vortex\n * @param _options The options for the vortex event\n */\n constructor(_scene, _origin, _options) {\n this._scene = _scene;\n this._origin = _origin;\n this._options = _options;\n this._originTop = Vector3.Zero(); // the most upper part of the cylinder\n this._cylinderPosition = Vector3.Zero(); // to keep the cylinders position, because normally the origin is in the center and not on the bottom\n this._dataFetched = false; // check if the has been fetched the data. If not, do cleanup\n this._physicsEngine = this._scene.getPhysicsEngine();\n this._options = { ...new PhysicsVortexEventOptions(), ...this._options };\n this._origin.addToRef(new Vector3(0, this._options.height / 2, 0), this._cylinderPosition);\n this._origin.addToRef(new Vector3(0, this._options.height, 0), this._originTop);\n this._tickCallback = () => this._tick();\n if (this._physicsEngine.getPluginVersion() === 1) {\n this._prepareCylinder();\n }\n }\n /**\n * Returns the data related to the vortex event (cylinder).\n * @returns The physics vortex event data\n */\n getData() {\n this._dataFetched = true;\n return {\n cylinder: this._cylinder,\n };\n }\n /**\n * Enables the vortex.\n */\n enable() {\n this._tickCallback.call(this);\n this._scene.registerBeforeRender(this._tickCallback);\n }\n /**\n * Disables the cortex.\n */\n disable() {\n this._scene.unregisterBeforeRender(this._tickCallback);\n }\n /**\n * Disposes the sphere.\n * @param force\n */\n dispose(force = true) {\n if (!this._cylinder) {\n return;\n }\n if (force) {\n this._cylinder.dispose();\n }\n else {\n setTimeout(() => {\n if (!this._dataFetched) {\n this._cylinder.dispose();\n }\n }, 0);\n }\n }\n _getHitData(mesh, center, data) {\n const originOnPlane = PhysicsVortexEvent._OriginOnPlane;\n originOnPlane.set(this._origin.x, center.y, this._origin.z); // the distance to the origin as if both objects were on a plane (Y-axis)\n const originToImpostorDirection = TmpVectors.Vector3[0];\n center.subtractToRef(originOnPlane, originToImpostorDirection);\n const contactPoint = TmpVectors.Vector3[1];\n const hasContactPoint = HelperTools.GetContactPointToRef(mesh, originOnPlane, originToImpostorDirection, contactPoint, data.instanceIndex);\n if (!hasContactPoint) {\n return false;\n }\n const distance = Vector3.Distance(contactPoint, originOnPlane);\n const absoluteDistanceFromOrigin = distance / this._options.radius;\n const directionToOrigin = TmpVectors.Vector3[2];\n contactPoint.normalizeToRef(directionToOrigin);\n if (absoluteDistanceFromOrigin > this._options.centripetalForceThreshold) {\n directionToOrigin.negateInPlace();\n }\n let forceX;\n let forceY;\n let forceZ;\n if (absoluteDistanceFromOrigin > this._options.centripetalForceThreshold) {\n forceX = directionToOrigin.x * this._options.centripetalForceMultiplier;\n forceY = directionToOrigin.y * this._options.updraftForceMultiplier;\n forceZ = directionToOrigin.z * this._options.centripetalForceMultiplier;\n }\n else {\n const perpendicularDirection = Vector3.Cross(originOnPlane, center).normalize();\n forceX = (perpendicularDirection.x + directionToOrigin.x) * this._options.centrifugalForceMultiplier;\n forceY = this._originTop.y * this._options.updraftForceMultiplier;\n forceZ = (perpendicularDirection.z + directionToOrigin.z) * this._options.centrifugalForceMultiplier;\n }\n const force = TmpVectors.Vector3[3];\n force.set(forceX, forceY, forceZ);\n force.scaleInPlace(this._options.strength);\n data.force.copyFrom(force);\n data.contactPoint.copyFrom(center);\n data.distanceFromOrigin = absoluteDistanceFromOrigin;\n return true;\n }\n _getBodyHitData(body, data, instanceIndex) {\n if (HelperTools.HasAppliedForces(body, instanceIndex)) {\n return false;\n }\n const bodyObject = body.transformNode;\n const bodyCenter = body.getObjectCenterWorld(instanceIndex);\n if (!HelperTools.IsInsideCylinder(bodyCenter, this._origin, this._options.radius, this._options.height)) {\n return false;\n }\n data.instanceIndex = instanceIndex;\n return this._getHitData(bodyObject, bodyCenter, data);\n }\n _getImpostorHitData(impostor, data) {\n if (impostor.mass === 0) {\n return false;\n }\n if (impostor.object.getClassName() !== \"Mesh\" && impostor.object.getClassName() !== \"InstancedMesh\") {\n return false;\n }\n const impostorObject = impostor.object;\n if (!this._intersectsWithCylinder(impostorObject)) {\n return false;\n }\n const impostorObjectCenter = impostor.getObjectCenter();\n this._getHitData(impostorObject, impostorObjectCenter, data);\n return true;\n }\n _tick() {\n const hitData = PhysicsVortexEvent._HitData;\n if (this._physicsEngine.getPluginVersion() === 1) {\n this._physicsEngine.getImpostors().forEach((impostor) => {\n if (!this._getImpostorHitData(impostor, hitData)) {\n return;\n }\n impostor.applyForce(hitData.force, hitData.contactPoint);\n });\n }\n else {\n this._physicsEngine.getBodies().forEach((body) => {\n body.iterateOverAllInstances((body, instanceIndex) => {\n if (!this._getBodyHitData(body, hitData, instanceIndex)) {\n return;\n }\n body.applyForce(hitData.force, hitData.contactPoint, hitData.instanceIndex);\n });\n });\n }\n }\n /*** Helpers ***/\n _prepareCylinder() {\n if (!this._cylinder) {\n this._cylinder = CreateCylinder(\"vortexEventCylinder\", {\n height: this._options.height,\n diameter: this._options.radius * 2,\n }, this._scene);\n this._cylinder.isVisible = false;\n }\n }\n _intersectsWithCylinder(mesh) {\n this._cylinder.position = this._cylinderPosition;\n return this._cylinder.intersectsMesh(mesh, true);\n }\n}\nPhysicsVortexEvent._OriginOnPlane = Vector3.Zero();\nPhysicsVortexEvent._HitData = { force: new Vector3(), contactPoint: new Vector3(), distanceFromOrigin: 0 };\n/**\n * Options fot the radial explosion event\n * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine#further-functionality-of-the-impostor-class\n */\nexport class PhysicsRadialExplosionEventOptions {\n constructor() {\n /**\n * The radius of the sphere for the radial explosion.\n */\n this.radius = 5;\n /**\n * The strength of the explosion.\n */\n this.strength = 10;\n /**\n * The strength of the force in correspondence to the distance of the affected object\n */\n this.falloff = 0 /* PhysicsRadialImpulseFalloff.Constant */;\n /**\n * Sphere options for the radial explosion.\n */\n this.sphere = { segments: 32, diameter: 1 };\n }\n}\n/**\n * Options fot the updraft event\n * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine#further-functionality-of-the-impostor-class\n */\nexport class PhysicsUpdraftEventOptions {\n constructor() {\n /**\n * The radius of the cylinder for the vortex\n */\n this.radius = 5;\n /**\n * The strength of the updraft.\n */\n this.strength = 10;\n /**\n * The height of the cylinder for the updraft.\n */\n this.height = 10;\n /**\n * The mode for the updraft.\n */\n this.updraftMode = 0 /* PhysicsUpdraftMode.Center */;\n }\n}\n/**\n * Options fot the vortex event\n * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine#further-functionality-of-the-impostor-class\n */\nexport class PhysicsVortexEventOptions {\n constructor() {\n /**\n * The radius of the cylinder for the vortex\n */\n this.radius = 5;\n /**\n * The strength of the vortex.\n */\n this.strength = 10;\n /**\n * The height of the cylinder for the vortex.\n */\n this.height = 10;\n /**\n * At which distance, relative to the radius the centripetal forces should kick in? Range: 0-1\n */\n this.centripetalForceThreshold = 0.7;\n /**\n * This multiplier determines with how much force the objects will be pushed sideways/around the vortex, when below the threshold.\n */\n this.centripetalForceMultiplier = 5;\n /**\n * This multiplier determines with how much force the objects will be pushed sideways/around the vortex, when above the threshold.\n */\n this.centrifugalForceMultiplier = 0.5;\n /**\n * This multiplier determines with how much force the objects will be pushed upwards, when in the vortex.\n */\n this.updraftForceMultiplier = 0.02;\n }\n}\n/**\n * The strength of the force in correspondence to the distance of the affected object\n * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine#further-functionality-of-the-impostor-class\n */\nexport var PhysicsRadialImpulseFalloff;\n(function (PhysicsRadialImpulseFalloff) {\n /** Defines that impulse is constant in strength across it's whole radius */\n PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff[\"Constant\"] = 0] = \"Constant\";\n /** Defines that impulse gets weaker if it's further from the origin */\n PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff[\"Linear\"] = 1] = \"Linear\";\n})(PhysicsRadialImpulseFalloff || (PhysicsRadialImpulseFalloff = {}));\n/**\n * The strength of the force in correspondence to the distance of the affected object\n * @see https://doc.babylonjs.com/features/featuresDeepDive/physics/usingPhysicsEngine#further-functionality-of-the-impostor-class\n */\nexport var PhysicsUpdraftMode;\n(function (PhysicsUpdraftMode) {\n /** Defines that the upstream forces will pull towards the top center of the cylinder */\n PhysicsUpdraftMode[PhysicsUpdraftMode[\"Center\"] = 0] = \"Center\";\n /** Defines that once a impostor is inside the cylinder, it will shoot out perpendicular from the ground of the cylinder */\n PhysicsUpdraftMode[PhysicsUpdraftMode[\"Perpendicular\"] = 1] = \"Perpendicular\";\n})(PhysicsUpdraftMode || (PhysicsUpdraftMode = {}));\n","import { __decorate } from \"../tslib.es6.js\";\nimport { PostProcess } from \"./postProcess.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { serialize } from \"../Misc/decorators.js\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization.js\";\nimport { ThinBlackAndWhitePostProcess } from \"./thinBlackAndWhitePostProcess.js\";\n/**\n * Post process used to render in black and white\n */\nexport class BlackAndWhitePostProcess extends PostProcess {\n /**\n * Linear about to convert he result to black and white (default: 1)\n */\n get degree() {\n return this._effectWrapper.degree;\n }\n set degree(value) {\n this._effectWrapper.degree = value;\n }\n /**\n * Gets a string identifying the name of the class\n * @returns \"BlackAndWhitePostProcess\" string\n */\n getClassName() {\n return \"BlackAndWhitePostProcess\";\n }\n /**\n * Creates a black and white post process\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses#black-and-white\n * @param name The name of the effect.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(name, options, camera = null, samplingMode, engine, reusable) {\n const localOptions = {\n uniforms: ThinBlackAndWhitePostProcess.Uniforms,\n size: typeof options === \"number\" ? options : undefined,\n camera,\n samplingMode,\n engine,\n reusable,\n ...options,\n };\n super(name, ThinBlackAndWhitePostProcess.FragmentUrl, {\n effectWrapper: typeof options === \"number\" || !options.effectWrapper ? new ThinBlackAndWhitePostProcess(name, engine, localOptions) : undefined,\n ...localOptions,\n });\n }\n /**\n * @internal\n */\n static _Parse(parsedPostProcess, targetCamera, scene, rootUrl) {\n return SerializationHelper.Parse(() => {\n return new BlackAndWhitePostProcess(parsedPostProcess.name, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable);\n }, parsedPostProcess, scene, rootUrl);\n }\n}\n__decorate([\n serialize()\n], BlackAndWhitePostProcess.prototype, \"degree\", null);\nRegisterClass(\"BABYLON.BlackAndWhitePostProcess\", BlackAndWhitePostProcess);\n","import { __decorate } from \"../tslib.es6.js\";\nimport { PostProcess } from \"./postProcess.js\";\nimport { Texture } from \"../Materials/Textures/texture.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { serialize } from \"../Misc/decorators.js\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization.js\";\n/**\n *\n * This post-process allows the modification of rendered colors by using\n * a 'look-up table' (LUT). This effect is also called Color Grading.\n *\n * The object needs to be provided an url to a texture containing the color\n * look-up table: the texture must be 256 pixels wide and 16 pixels high.\n * Use an image editing software to tweak the LUT to match your needs.\n *\n * For an example of a color LUT, see here:\n * @see http://udn.epicgames.com/Three/rsrc/Three/ColorGrading/RGBTable16x1.png\n * For explanations on color grading, see here:\n * @see http://udn.epicgames.com/Three/ColorGrading.html\n *\n */\nexport class ColorCorrectionPostProcess extends PostProcess {\n /**\n * Gets a string identifying the name of the class\n * @returns \"ColorCorrectionPostProcess\" string\n */\n getClassName() {\n return \"ColorCorrectionPostProcess\";\n }\n constructor(name, colorTableUrl, options, camera, samplingMode, engine, reusable) {\n super(name, \"colorCorrection\", null, [\"colorTable\"], options, camera, samplingMode, engine, reusable);\n const scene = camera?.getScene() || null;\n this._colorTableTexture = new Texture(colorTableUrl, scene, true, false, Texture.TRILINEAR_SAMPLINGMODE);\n this._colorTableTexture.anisotropicFilteringLevel = 1;\n this._colorTableTexture.wrapU = Texture.CLAMP_ADDRESSMODE;\n this._colorTableTexture.wrapV = Texture.CLAMP_ADDRESSMODE;\n this.colorTableUrl = colorTableUrl;\n this.onApply = (effect) => {\n effect.setTexture(\"colorTable\", this._colorTableTexture);\n };\n }\n _gatherImports(useWebGPU, list) {\n if (useWebGPU) {\n this._webGPUReady = true;\n list.push(Promise.all([import(\"../ShadersWGSL/colorCorrection.fragment.js\")]));\n }\n else {\n list.push(Promise.all([import(\"../Shaders/colorCorrection.fragment.js\")]));\n }\n super._gatherImports(useWebGPU, list);\n }\n /**\n * @internal\n */\n static _Parse(parsedPostProcess, targetCamera, scene, rootUrl) {\n return SerializationHelper.Parse(() => {\n return new ColorCorrectionPostProcess(parsedPostProcess.name, parsedPostProcess.colorTableUrl, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable);\n }, parsedPostProcess, scene, rootUrl);\n }\n}\n__decorate([\n serialize()\n], ColorCorrectionPostProcess.prototype, \"colorTableUrl\", void 0);\nRegisterClass(\"BABYLON.ColorCorrectionPostProcess\", ColorCorrectionPostProcess);\n","import { __decorate } from \"../tslib.es6.js\";\nimport { PostProcess } from \"./postProcess.js\";\n\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { serialize } from \"../Misc/decorators.js\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization.js\";\n/**\n * The ConvolutionPostProcess applies a 3x3 kernel to every pixel of the\n * input texture to perform effects such as edge detection or sharpening\n * See http://en.wikipedia.org/wiki/Kernel_(image_processing)\n */\nexport class ConvolutionPostProcess extends PostProcess {\n /**\n * Gets a string identifying the name of the class\n * @returns \"ConvolutionPostProcess\" string\n */\n getClassName() {\n return \"ConvolutionPostProcess\";\n }\n /**\n * Creates a new instance ConvolutionPostProcess\n * @param name The name of the effect.\n * @param kernel Array of 9 values corresponding to the 3x3 kernel to be applied\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n */\n constructor(name, kernel, options, camera, samplingMode, engine, reusable, textureType = 0) {\n super(name, \"convolution\", [\"kernel\", \"screenSize\"], null, options, camera, samplingMode, engine, reusable, null, textureType);\n this.kernel = kernel;\n this.onApply = (effect) => {\n effect.setFloat2(\"screenSize\", this.width, this.height);\n effect.setArray(\"kernel\", this.kernel);\n };\n }\n _gatherImports(useWebGPU, list) {\n if (useWebGPU) {\n this._webGPUReady = true;\n list.push(Promise.all([import(\"../ShadersWGSL/convolution.fragment.js\")]));\n }\n else {\n list.push(Promise.all([import(\"../Shaders/convolution.fragment.js\")]));\n }\n super._gatherImports(useWebGPU, list);\n }\n /**\n * @internal\n */\n static _Parse(parsedPostProcess, targetCamera, scene, rootUrl) {\n return SerializationHelper.Parse(() => {\n return new ConvolutionPostProcess(parsedPostProcess.name, parsedPostProcess.kernel, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable, parsedPostProcess.textureType);\n }, parsedPostProcess, scene, rootUrl);\n }\n}\n// Statics\n/**\n * Edge detection 0 see https://en.wikipedia.org/wiki/Kernel_(image_processing)\n */\nConvolutionPostProcess.EdgeDetect0Kernel = [1, 0, -1, 0, 0, 0, -1, 0, 1];\n/**\n * Edge detection 1 see https://en.wikipedia.org/wiki/Kernel_(image_processing)\n */\nConvolutionPostProcess.EdgeDetect1Kernel = [0, 1, 0, 1, -4, 1, 0, 1, 0];\n/**\n * Edge detection 2 see https://en.wikipedia.org/wiki/Kernel_(image_processing)\n */\nConvolutionPostProcess.EdgeDetect2Kernel = [-1, -1, -1, -1, 8, -1, -1, -1, -1];\n/**\n * Kernel to sharpen an image see https://en.wikipedia.org/wiki/Kernel_(image_processing)\n */\nConvolutionPostProcess.SharpenKernel = [0, -1, 0, -1, 5, -1, 0, -1, 0];\n/**\n * Kernel to emboss an image see https://en.wikipedia.org/wiki/Kernel_(image_processing)\n */\nConvolutionPostProcess.EmbossKernel = [-2, -1, 0, -1, 1, 1, 0, 1, 2];\n/**\n * Kernel to blur an image see https://en.wikipedia.org/wiki/Kernel_(image_processing)\n */\nConvolutionPostProcess.GaussianKernel = [0, 1, 0, 1, 1, 1, 0, 1, 0];\n__decorate([\n serialize()\n], ConvolutionPostProcess.prototype, \"kernel\", void 0);\nRegisterClass(\"BABYLON.ConvolutionPostProcess\", ConvolutionPostProcess);\n","import { PostProcess } from \"./postProcess.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization.js\";\n/**\n * DisplayPassPostProcess which produces an output the same as it's input\n */\nexport class DisplayPassPostProcess extends PostProcess {\n /**\n * Gets a string identifying the name of the class\n * @returns \"DisplayPassPostProcess\" string\n */\n getClassName() {\n return \"DisplayPassPostProcess\";\n }\n /**\n * Creates the DisplayPassPostProcess\n * @param name The name of the effect.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(name, options, camera, samplingMode, engine, reusable) {\n super(name, \"displayPass\", [\"passSampler\"], [\"passSampler\"], options, camera, samplingMode, engine, reusable);\n }\n _gatherImports(useWebGPU, list) {\n if (useWebGPU) {\n this._webGPUReady = true;\n list.push(Promise.all([import(\"../ShadersWGSL/displayPass.fragment.js\")]));\n }\n else {\n list.push(Promise.all([import(\"../Shaders/displayPass.fragment.js\")]));\n }\n super._gatherImports(useWebGPU, list);\n }\n /**\n * @internal\n */\n static _Parse(parsedPostProcess, targetCamera, scene, rootUrl) {\n return SerializationHelper.Parse(() => {\n return new DisplayPassPostProcess(parsedPostProcess.name, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable);\n }, parsedPostProcess, scene, rootUrl);\n }\n}\nRegisterClass(\"BABYLON.DisplayPassPostProcess\", DisplayPassPostProcess);\n","import { __decorate } from \"../tslib.es6.js\";\nimport { PostProcess } from \"./postProcess.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { serializeAsMatrix } from \"../Misc/decorators.js\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization.js\";\n/**\n * Applies a kernel filter to the image\n */\nexport class FilterPostProcess extends PostProcess {\n /**\n * Gets a string identifying the name of the class\n * @returns \"FilterPostProcess\" string\n */\n getClassName() {\n return \"FilterPostProcess\";\n }\n /**\n *\n * @param name The name of the effect.\n * @param kernelMatrix The matrix to be applied to the image\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(name, kernelMatrix, options, camera, samplingMode, engine, reusable) {\n super(name, \"filter\", [\"kernelMatrix\"], null, options, camera, samplingMode, engine, reusable);\n this.kernelMatrix = kernelMatrix;\n this.onApply = (effect) => {\n effect.setMatrix(\"kernelMatrix\", this.kernelMatrix);\n };\n }\n _gatherImports(useWebGPU, list) {\n if (useWebGPU) {\n this._webGPUReady = true;\n list.push(Promise.all([import(\"../ShadersWGSL/filter.fragment.js\")]));\n }\n else {\n list.push(Promise.all([import(\"../Shaders/filter.fragment.js\")]));\n }\n super._gatherImports(useWebGPU, list);\n }\n /**\n * @internal\n */\n static _Parse(parsedPostProcess, targetCamera, scene, rootUrl) {\n return SerializationHelper.Parse(() => {\n return new FilterPostProcess(parsedPostProcess.name, parsedPostProcess.kernelMatrix, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable);\n }, parsedPostProcess, scene, rootUrl);\n }\n}\n__decorate([\n serializeAsMatrix()\n], FilterPostProcess.prototype, \"kernelMatrix\", void 0);\nRegisterClass(\"BABYLON.FilterPostProcess\", FilterPostProcess);\n","import { Matrix } from \"../Maths/math.vector.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\n\nimport { Texture } from \"../Materials/Textures/texture.js\";\nimport { MultiRenderTarget } from \"../Materials/Textures/multiRenderTarget.js\";\nimport { Color4 } from \"../Maths/math.color.js\";\nimport { _WarnImport } from \"../Misc/devTools.js\";\nimport { Material } from \"../Materials/material.js\";\nimport \"../Shaders/geometry.fragment.js\";\nimport \"../Shaders/geometry.vertex.js\";\nimport { MaterialFlags } from \"../Materials/materialFlags.js\";\nimport { addClipPlaneUniforms, bindClipPlane, prepareStringDefinesForClipPlanes } from \"../Materials/clipPlaneMaterialHelper.js\";\nimport { BindMorphTargetParameters, BindSceneUniformBuffer, PrepareAttributesForMorphTargetsInfluencers, PushAttributesForInstances } from \"../Materials/materialHelper.functions.js\";\nimport \"../Engines/Extensions/engine.multiRender.js\";\n/** list the uniforms used by the geometry renderer */\nconst uniforms = [\n \"world\",\n \"mBones\",\n \"viewProjection\",\n \"diffuseMatrix\",\n \"view\",\n \"previousWorld\",\n \"previousViewProjection\",\n \"mPreviousBones\",\n \"bumpMatrix\",\n \"reflectivityMatrix\",\n \"albedoMatrix\",\n \"reflectivityColor\",\n \"albedoColor\",\n \"metallic\",\n \"glossiness\",\n \"vTangentSpaceParams\",\n \"vBumpInfos\",\n \"morphTargetInfluences\",\n \"morphTargetCount\",\n \"morphTargetTextureInfo\",\n \"morphTargetTextureIndices\",\n \"boneTextureWidth\",\n];\naddClipPlaneUniforms(uniforms);\n/**\n * This renderer is helpful to fill one of the render target with a geometry buffer.\n */\nexport class GeometryBufferRenderer {\n /**\n * Gets a boolean indicating if normals are encoded in the [0,1] range in the render target. If true, you should do `normal = normal_rt * 2.0 - 1.0` to get the right normal\n */\n get normalsAreUnsigned() {\n return this._normalsAreUnsigned;\n }\n /**\n * @internal\n * Sets up internal structures to share outputs with PrePassRenderer\n * This method should only be called by the PrePassRenderer itself\n */\n _linkPrePassRenderer(prePassRenderer) {\n this._linkedWithPrePass = true;\n this._prePassRenderer = prePassRenderer;\n if (this._multiRenderTarget) {\n // prevents clearing of the RT since it's done by prepass\n this._multiRenderTarget.onClearObservable.clear();\n this._multiRenderTarget.onClearObservable.add(() => {\n // pass\n });\n }\n }\n /**\n * @internal\n * Separates internal structures from PrePassRenderer so the geometry buffer can now operate by itself.\n * This method should only be called by the PrePassRenderer itself\n */\n _unlinkPrePassRenderer() {\n this._linkedWithPrePass = false;\n this._createRenderTargets();\n }\n /**\n * @internal\n * Resets the geometry buffer layout\n */\n _resetLayout() {\n this._enableDepth = true;\n this._enableNormal = true;\n this._enablePosition = false;\n this._enableReflectivity = false;\n this._enableVelocity = false;\n this._enableVelocityLinear = false;\n this._enableScreenspaceDepth = false;\n this._attachmentsFromPrePass = [];\n }\n /**\n * @internal\n * Replaces a texture in the geometry buffer renderer\n * Useful when linking textures of the prepass renderer\n */\n _forceTextureType(geometryBufferType, index) {\n if (geometryBufferType === GeometryBufferRenderer.POSITION_TEXTURE_TYPE) {\n this._positionIndex = index;\n this._enablePosition = true;\n }\n else if (geometryBufferType === GeometryBufferRenderer.VELOCITY_TEXTURE_TYPE) {\n this._velocityIndex = index;\n this._enableVelocity = true;\n }\n else if (geometryBufferType === GeometryBufferRenderer.VELOCITY_LINEAR_TEXTURE_TYPE) {\n this._velocityLinearIndex = index;\n this._enableVelocityLinear = true;\n }\n else if (geometryBufferType === GeometryBufferRenderer.REFLECTIVITY_TEXTURE_TYPE) {\n this._reflectivityIndex = index;\n this._enableReflectivity = true;\n }\n else if (geometryBufferType === GeometryBufferRenderer.DEPTH_TEXTURE_TYPE) {\n this._depthIndex = index;\n this._enableDepth = true;\n }\n else if (geometryBufferType === GeometryBufferRenderer.NORMAL_TEXTURE_TYPE) {\n this._normalIndex = index;\n this._enableNormal = true;\n }\n else if (geometryBufferType === GeometryBufferRenderer.SCREENSPACE_DEPTH_TEXTURE_TYPE) {\n this._screenspaceDepthIndex = index;\n this._enableScreenspaceDepth = true;\n }\n }\n /**\n * @internal\n * Sets texture attachments\n * Useful when linking textures of the prepass renderer\n */\n _setAttachments(attachments) {\n this._attachmentsFromPrePass = attachments;\n }\n /**\n * @internal\n * Replaces the first texture which is hard coded as a depth texture in the geometry buffer\n * Useful when linking textures of the prepass renderer\n */\n _linkInternalTexture(internalTexture) {\n this._multiRenderTarget.setInternalTexture(internalTexture, 0, false);\n }\n /**\n * Gets the render list (meshes to be rendered) used in the G buffer.\n */\n get renderList() {\n return this._multiRenderTarget.renderList;\n }\n /**\n * Set the render list (meshes to be rendered) used in the G buffer.\n */\n set renderList(meshes) {\n this._multiRenderTarget.renderList = meshes;\n }\n /**\n * Gets whether or not G buffer are supported by the running hardware.\n * This requires draw buffer supports\n */\n get isSupported() {\n return this._multiRenderTarget.isSupported;\n }\n /**\n * Returns the index of the given texture type in the G-Buffer textures array\n * @param textureType The texture type constant. For example GeometryBufferRenderer.POSITION_TEXTURE_INDEX\n * @returns the index of the given texture type in the G-Buffer textures array\n */\n getTextureIndex(textureType) {\n switch (textureType) {\n case GeometryBufferRenderer.POSITION_TEXTURE_TYPE:\n return this._positionIndex;\n case GeometryBufferRenderer.VELOCITY_TEXTURE_TYPE:\n return this._velocityIndex;\n case GeometryBufferRenderer.VELOCITY_LINEAR_TEXTURE_TYPE:\n return this._velocityLinearIndex;\n case GeometryBufferRenderer.REFLECTIVITY_TEXTURE_TYPE:\n return this._reflectivityIndex;\n case GeometryBufferRenderer.DEPTH_TEXTURE_TYPE:\n return this._depthIndex;\n case GeometryBufferRenderer.NORMAL_TEXTURE_TYPE:\n return this._normalIndex;\n case GeometryBufferRenderer.SCREENSPACE_DEPTH_TEXTURE_TYPE:\n return this._screenspaceDepthIndex;\n default:\n return -1;\n }\n }\n /**\n * @returns a boolean indicating if object's depths are enabled for the G buffer.\n */\n get enableDepth() {\n return this._enableDepth;\n }\n /**\n * Sets whether or not object's depths are enabled for the G buffer.\n */\n set enableDepth(enable) {\n this._enableDepth = enable;\n if (!this._linkedWithPrePass) {\n this.dispose();\n this._createRenderTargets();\n }\n }\n /**\n * @returns a boolean indicating if object's normals are enabled for the G buffer.\n */\n get enableNormal() {\n return this._enableNormal;\n }\n /**\n * Sets whether or not object's normals are enabled for the G buffer.\n */\n set enableNormal(enable) {\n this._enableNormal = enable;\n if (!this._linkedWithPrePass) {\n this.dispose();\n this._createRenderTargets();\n }\n }\n /**\n * @returns a boolean indicating if objects positions are enabled for the G buffer.\n */\n get enablePosition() {\n return this._enablePosition;\n }\n /**\n * Sets whether or not objects positions are enabled for the G buffer.\n */\n set enablePosition(enable) {\n this._enablePosition = enable;\n // PrePass handles index and texture links\n if (!this._linkedWithPrePass) {\n this.dispose();\n this._createRenderTargets();\n }\n }\n /**\n * @returns a boolean indicating if objects velocities are enabled for the G buffer.\n */\n get enableVelocity() {\n return this._enableVelocity;\n }\n /**\n * Sets whether or not objects velocities are enabled for the G buffer.\n */\n set enableVelocity(enable) {\n this._enableVelocity = enable;\n if (!enable) {\n this._previousTransformationMatrices = {};\n }\n if (!this._linkedWithPrePass) {\n this.dispose();\n this._createRenderTargets();\n }\n this._scene.needsPreviousWorldMatrices = enable;\n }\n /**\n * @returns a boolean indicating if object's linear velocities are enabled for the G buffer.\n */\n get enableVelocityLinear() {\n return this._enableVelocityLinear;\n }\n /**\n * Sets whether or not object's linear velocities are enabled for the G buffer.\n */\n set enableVelocityLinear(enable) {\n this._enableVelocityLinear = enable;\n if (!this._linkedWithPrePass) {\n this.dispose();\n this._createRenderTargets();\n }\n }\n /**\n * Gets a boolean indicating if objects reflectivity are enabled in the G buffer.\n */\n get enableReflectivity() {\n return this._enableReflectivity;\n }\n /**\n * Sets whether or not objects reflectivity are enabled for the G buffer.\n * For Metallic-Roughness workflow with ORM texture, we assume that ORM texture is defined according to the default layout:\n * pbr.useRoughnessFromMetallicTextureAlpha = false;\n * pbr.useRoughnessFromMetallicTextureGreen = true;\n * pbr.useMetallnessFromMetallicTextureBlue = true;\n */\n set enableReflectivity(enable) {\n this._enableReflectivity = enable;\n if (!this._linkedWithPrePass) {\n this.dispose();\n this._createRenderTargets();\n }\n }\n /**\n * Sets whether or not objects screenspace depth are enabled for the G buffer.\n */\n get enableScreenspaceDepth() {\n return this._enableScreenspaceDepth;\n }\n set enableScreenspaceDepth(enable) {\n this._enableScreenspaceDepth = enable;\n if (!this._linkedWithPrePass) {\n this.dispose();\n this._createRenderTargets();\n }\n }\n /**\n * Gets the scene associated with the buffer.\n */\n get scene() {\n return this._scene;\n }\n /**\n * Gets the ratio used by the buffer during its creation.\n * How big is the buffer related to the main canvas.\n */\n get ratio() {\n return typeof this._ratioOrDimensions === \"object\" ? 1 : this._ratioOrDimensions;\n }\n /**\n * Gets the shader language used in this material.\n */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n /**\n * Creates a new G Buffer for the scene\n * @param scene The scene the buffer belongs to\n * @param ratioOrDimensions How big is the buffer related to the main canvas (default: 1). You can also directly pass a width and height for the generated textures\n * @param depthFormat Format of the depth texture (default: 15)\n * @param textureTypesAndFormats The types and formats of textures to create as render targets. If not provided, all textures will be RGBA and float or half float, depending on the engine capabilities.\n */\n constructor(scene, ratioOrDimensions = 1, depthFormat = 15, textureTypesAndFormats) {\n /**\n * Dictionary used to store the previous transformation matrices of each rendered mesh\n * in order to compute objects velocities when enableVelocity is set to \"true\"\n * @internal\n */\n this._previousTransformationMatrices = {};\n /**\n * Dictionary used to store the previous bones transformation matrices of each rendered mesh\n * in order to compute objects velocities when enableVelocity is set to \"true\"\n * @internal\n */\n this._previousBonesTransformationMatrices = {};\n /**\n * Array used to store the ignored skinned meshes while computing velocity map (typically used by the motion blur post-process).\n * Avoids computing bones velocities and computes only mesh's velocity itself (position, rotation, scaling).\n */\n this.excludedSkinnedMeshesFromVelocity = [];\n /** Gets or sets a boolean indicating if transparent meshes should be rendered */\n this.renderTransparentMeshes = true;\n /**\n * Gets or sets a boolean indicating if normals should be generated in world space (default: false, meaning normals are generated in view space)\n */\n this.generateNormalsInWorldSpace = false;\n this._normalsAreUnsigned = false;\n this._resizeObserver = null;\n this._enableDepth = true;\n this._enableNormal = true;\n this._enablePosition = false;\n this._enableVelocity = false;\n this._enableVelocityLinear = false;\n this._enableReflectivity = false;\n this._enableScreenspaceDepth = false;\n this._clearColor = new Color4(0, 0, 0, 0);\n this._clearDepthColor = new Color4(1e8, 0, 0, 1); // \"infinity\" value - depth in the depth texture is view.z, not a 0..1 value!\n this._positionIndex = -1;\n this._velocityIndex = -1;\n this._velocityLinearIndex = -1;\n this._reflectivityIndex = -1;\n this._depthIndex = -1;\n this._normalIndex = -1;\n this._screenspaceDepthIndex = -1;\n this._linkedWithPrePass = false;\n /**\n * If set to true (default: false), the depth texture will be cleared with the depth value corresponding to the far plane (1 in normal mode, 0 in reverse depth buffer mode)\n * If set to false, the depth texture is always cleared with 0.\n */\n this.useSpecificClearForDepthTexture = false;\n /** Shader language used by the material */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this._shadersLoaded = false;\n this._scene = scene;\n this._ratioOrDimensions = ratioOrDimensions;\n this._useUbo = scene.getEngine().supportsUniformBuffers;\n this._depthFormat = depthFormat;\n this._textureTypesAndFormats = textureTypesAndFormats || {};\n this._initShaderSourceAsync();\n GeometryBufferRenderer._SceneComponentInitialization(this._scene);\n // Render target\n this._createRenderTargets();\n }\n async _initShaderSourceAsync() {\n const engine = this._scene.getEngine();\n if (engine.isWebGPU && !GeometryBufferRenderer.ForceGLSL) {\n this._shaderLanguage = 1 /* ShaderLanguage.WGSL */;\n await Promise.all([import(\"../ShadersWGSL/geometry.vertex.js\"), import(\"../ShadersWGSL/geometry.fragment.js\")]);\n }\n else {\n await Promise.all([import(\"../Shaders/geometry.vertex.js\"), import(\"../Shaders/geometry.fragment.js\")]);\n }\n this._shadersLoaded = true;\n }\n /**\n * Checks whether everything is ready to render a submesh to the G buffer.\n * @param subMesh the submesh to check readiness for\n * @param useInstances is the mesh drawn using instance or not\n * @returns true if ready otherwise false\n */\n isReady(subMesh, useInstances) {\n if (!this._shadersLoaded) {\n return false;\n }\n const material = subMesh.getMaterial();\n if (material && material.disableDepthWrite) {\n return false;\n }\n const defines = [];\n const attribs = [VertexBuffer.PositionKind, VertexBuffer.NormalKind];\n const mesh = subMesh.getMesh();\n if (material) {\n let needUv = false;\n // Alpha test\n if (material.needAlphaTesting() && material.getAlphaTestTexture()) {\n defines.push(\"#define ALPHATEST\");\n defines.push(`#define ALPHATEST_UV${material.getAlphaTestTexture().coordinatesIndex + 1}`);\n needUv = true;\n }\n // Normal map texture\n if ((material.bumpTexture || material.normalTexture) && MaterialFlags.BumpTextureEnabled) {\n const texture = material.bumpTexture || material.normalTexture;\n defines.push(\"#define BUMP\");\n defines.push(`#define BUMP_UV${texture.coordinatesIndex + 1}`);\n needUv = true;\n }\n if (this._enableReflectivity) {\n let metallicWorkflow = false;\n // for PBR materials: cf. https://doc.babylonjs.com/features/featuresDeepDive/materials/using/masterPBR\n if (material.getClassName() === \"PBRMetallicRoughnessMaterial\") {\n // if it is a PBR material in MetallicRoughness Mode:\n if (material.metallicRoughnessTexture) {\n defines.push(\"#define ORMTEXTURE\");\n defines.push(`#define REFLECTIVITY_UV${material.metallicRoughnessTexture.coordinatesIndex + 1}`);\n defines.push(\"#define METALLICWORKFLOW\");\n needUv = true;\n metallicWorkflow = true;\n }\n // null or undefined\n if (material.metallic != null) {\n defines.push(\"#define METALLIC\");\n defines.push(\"#define METALLICWORKFLOW\");\n metallicWorkflow = true;\n }\n // null or undefined\n if (material.roughness != null) {\n defines.push(\"#define ROUGHNESS\");\n defines.push(\"#define METALLICWORKFLOW\");\n metallicWorkflow = true;\n }\n if (metallicWorkflow) {\n if (material.baseTexture) {\n defines.push(\"#define ALBEDOTEXTURE\");\n defines.push(`#define ALBEDO_UV${material.baseTexture.coordinatesIndex + 1}`);\n if (material.baseTexture.gammaSpace) {\n defines.push(\"#define GAMMAALBEDO\");\n }\n needUv = true;\n }\n if (material.baseColor) {\n defines.push(\"#define ALBEDOCOLOR\");\n }\n }\n }\n else if (material.getClassName() === \"PBRSpecularGlossinessMaterial\") {\n // if it is a PBR material in Specular/Glossiness Mode:\n if (material.specularGlossinessTexture) {\n defines.push(\"#define SPECULARGLOSSINESSTEXTURE\");\n defines.push(`#define REFLECTIVITY_UV${material.specularGlossinessTexture.coordinatesIndex + 1}`);\n needUv = true;\n if (material.specularGlossinessTexture.gammaSpace) {\n defines.push(\"#define GAMMAREFLECTIVITYTEXTURE\");\n }\n }\n else {\n if (material.specularColor) {\n defines.push(\"#define REFLECTIVITYCOLOR\");\n }\n }\n // null or undefined\n if (material.glossiness != null) {\n defines.push(\"#define GLOSSINESS\");\n }\n }\n else if (material.getClassName() === \"PBRMaterial\") {\n // if it is the bigger PBRMaterial\n if (material.metallicTexture) {\n defines.push(\"#define ORMTEXTURE\");\n defines.push(`#define REFLECTIVITY_UV${material.metallicTexture.coordinatesIndex + 1}`);\n defines.push(\"#define METALLICWORKFLOW\");\n needUv = true;\n metallicWorkflow = true;\n }\n // null or undefined\n if (material.metallic != null) {\n defines.push(\"#define METALLIC\");\n defines.push(\"#define METALLICWORKFLOW\");\n metallicWorkflow = true;\n }\n // null or undefined\n if (material.roughness != null) {\n defines.push(\"#define ROUGHNESS\");\n defines.push(\"#define METALLICWORKFLOW\");\n metallicWorkflow = true;\n }\n if (metallicWorkflow) {\n if (material.albedoTexture) {\n defines.push(\"#define ALBEDOTEXTURE\");\n defines.push(`#define ALBEDO_UV${material.albedoTexture.coordinatesIndex + 1}`);\n if (material.albedoTexture.gammaSpace) {\n defines.push(\"#define GAMMAALBEDO\");\n }\n needUv = true;\n }\n if (material.albedoColor) {\n defines.push(\"#define ALBEDOCOLOR\");\n }\n }\n else {\n // SpecularGlossiness Model\n if (material.reflectivityTexture) {\n defines.push(\"#define SPECULARGLOSSINESSTEXTURE\");\n defines.push(`#define REFLECTIVITY_UV${material.reflectivityTexture.coordinatesIndex + 1}`);\n if (material.reflectivityTexture.gammaSpace) {\n defines.push(\"#define GAMMAREFLECTIVITYTEXTURE\");\n }\n needUv = true;\n }\n else if (material.reflectivityColor) {\n defines.push(\"#define REFLECTIVITYCOLOR\");\n }\n // null or undefined\n if (material.microSurface != null) {\n defines.push(\"#define GLOSSINESS\");\n }\n }\n }\n else if (material.getClassName() === \"StandardMaterial\") {\n // if StandardMaterial:\n if (material.specularTexture) {\n defines.push(\"#define REFLECTIVITYTEXTURE\");\n defines.push(`#define REFLECTIVITY_UV${material.specularTexture.coordinatesIndex + 1}`);\n if (material.specularTexture.gammaSpace) {\n defines.push(\"#define GAMMAREFLECTIVITYTEXTURE\");\n }\n needUv = true;\n }\n if (material.specularColor) {\n defines.push(\"#define REFLECTIVITYCOLOR\");\n }\n }\n }\n if (needUv) {\n defines.push(\"#define NEED_UV\");\n if (mesh.isVerticesDataPresent(VertexBuffer.UVKind)) {\n attribs.push(VertexBuffer.UVKind);\n defines.push(\"#define UV1\");\n }\n if (mesh.isVerticesDataPresent(VertexBuffer.UV2Kind)) {\n attribs.push(VertexBuffer.UV2Kind);\n defines.push(\"#define UV2\");\n }\n }\n }\n // Buffers\n if (this._enableDepth) {\n defines.push(\"#define DEPTH\");\n defines.push(\"#define DEPTH_INDEX \" + this._depthIndex);\n }\n if (this._enableNormal) {\n defines.push(\"#define NORMAL\");\n defines.push(\"#define NORMAL_INDEX \" + this._normalIndex);\n }\n if (this._enablePosition) {\n defines.push(\"#define POSITION\");\n defines.push(\"#define POSITION_INDEX \" + this._positionIndex);\n }\n if (this._enableVelocity) {\n defines.push(\"#define VELOCITY\");\n defines.push(\"#define VELOCITY_INDEX \" + this._velocityIndex);\n if (this.excludedSkinnedMeshesFromVelocity.indexOf(mesh) === -1) {\n defines.push(\"#define BONES_VELOCITY_ENABLED\");\n }\n }\n if (this._enableVelocityLinear) {\n defines.push(\"#define VELOCITY_LINEAR\");\n defines.push(\"#define VELOCITY_LINEAR_INDEX \" + this._velocityLinearIndex);\n if (this.excludedSkinnedMeshesFromVelocity.indexOf(mesh) === -1) {\n defines.push(\"#define BONES_VELOCITY_ENABLED\");\n }\n }\n if (this._enableReflectivity) {\n defines.push(\"#define REFLECTIVITY\");\n defines.push(\"#define REFLECTIVITY_INDEX \" + this._reflectivityIndex);\n }\n if (this._enableScreenspaceDepth) {\n if (this._screenspaceDepthIndex !== -1) {\n defines.push(\"#define SCREENSPACE_DEPTH_INDEX \" + this._screenspaceDepthIndex);\n defines.push(\"#define SCREENSPACE_DEPTH\");\n }\n }\n if (this.generateNormalsInWorldSpace) {\n defines.push(\"#define NORMAL_WORLDSPACE\");\n }\n if (this._normalsAreUnsigned) {\n defines.push(\"#define ENCODE_NORMAL\");\n }\n // Bones\n if (mesh.useBones && mesh.computeBonesUsingShaders && mesh.skeleton) {\n attribs.push(VertexBuffer.MatricesIndicesKind);\n attribs.push(VertexBuffer.MatricesWeightsKind);\n if (mesh.numBoneInfluencers > 4) {\n attribs.push(VertexBuffer.MatricesIndicesExtraKind);\n attribs.push(VertexBuffer.MatricesWeightsExtraKind);\n }\n defines.push(\"#define NUM_BONE_INFLUENCERS \" + mesh.numBoneInfluencers);\n defines.push(\"#define BONETEXTURE \" + mesh.skeleton.isUsingTextureForMatrices);\n defines.push(\"#define BonesPerMesh \" + (mesh.skeleton.bones.length + 1));\n }\n else {\n defines.push(\"#define NUM_BONE_INFLUENCERS 0\");\n defines.push(\"#define BONETEXTURE false\");\n defines.push(\"#define BonesPerMesh 0\");\n }\n // Morph targets\n const morphTargetManager = mesh.morphTargetManager;\n let numMorphInfluencers = 0;\n if (morphTargetManager) {\n numMorphInfluencers = morphTargetManager.numMaxInfluencers || morphTargetManager.numInfluencers;\n if (numMorphInfluencers > 0) {\n defines.push(\"#define MORPHTARGETS\");\n defines.push(\"#define NUM_MORPH_INFLUENCERS \" + numMorphInfluencers);\n if (morphTargetManager.isUsingTextureForTargets) {\n defines.push(\"#define MORPHTARGETS_TEXTURE\");\n }\n PrepareAttributesForMorphTargetsInfluencers(attribs, mesh, numMorphInfluencers);\n }\n }\n // Instances\n if (useInstances) {\n defines.push(\"#define INSTANCES\");\n PushAttributesForInstances(attribs, this._enableVelocity || this._enableVelocityLinear);\n if (subMesh.getRenderingMesh().hasThinInstances) {\n defines.push(\"#define THIN_INSTANCES\");\n }\n }\n // Setup textures count\n if (this._linkedWithPrePass) {\n defines.push(\"#define SCENE_MRT_COUNT \" + this._attachmentsFromPrePass.length);\n }\n else {\n defines.push(\"#define SCENE_MRT_COUNT \" + this._multiRenderTarget.textures.length);\n }\n prepareStringDefinesForClipPlanes(material, this._scene, defines);\n // Get correct effect\n const engine = this._scene.getEngine();\n const drawWrapper = subMesh._getDrawWrapper(undefined, true);\n const cachedDefines = drawWrapper.defines;\n const join = defines.join(\"\\n\");\n if (cachedDefines !== join) {\n drawWrapper.setEffect(engine.createEffect(\"geometry\", {\n attributes: attribs,\n uniformsNames: uniforms,\n samplers: [\"diffuseSampler\", \"bumpSampler\", \"reflectivitySampler\", \"albedoSampler\", \"morphTargets\", \"boneSampler\"],\n defines: join,\n onCompiled: null,\n fallbacks: null,\n onError: null,\n uniformBuffersNames: [\"Scene\"],\n indexParameters: { buffersCount: this._multiRenderTarget.textures.length - 1, maxSimultaneousMorphTargets: numMorphInfluencers },\n shaderLanguage: this.shaderLanguage,\n }, engine), join);\n }\n return drawWrapper.effect.isReady();\n }\n /**\n * Gets the current underlying G Buffer.\n * @returns the buffer\n */\n getGBuffer() {\n return this._multiRenderTarget;\n }\n /**\n * Gets the number of samples used to render the buffer (anti aliasing).\n */\n get samples() {\n return this._multiRenderTarget.samples;\n }\n /**\n * Sets the number of samples used to render the buffer (anti aliasing).\n */\n set samples(value) {\n this._multiRenderTarget.samples = value;\n }\n /**\n * Disposes the renderer and frees up associated resources.\n */\n dispose() {\n if (this._resizeObserver) {\n const engine = this._scene.getEngine();\n engine.onResizeObservable.remove(this._resizeObserver);\n this._resizeObserver = null;\n }\n this.getGBuffer().dispose();\n }\n _assignRenderTargetIndices() {\n const textureNames = [];\n const textureTypesAndFormats = [];\n let count = 0;\n if (this._enableDepth) {\n this._depthIndex = count;\n count++;\n textureNames.push(\"gBuffer_Depth\");\n textureTypesAndFormats.push(this._textureTypesAndFormats[GeometryBufferRenderer.DEPTH_TEXTURE_TYPE]);\n }\n if (this._enableNormal) {\n this._normalIndex = count;\n count++;\n textureNames.push(\"gBuffer_Normal\");\n textureTypesAndFormats.push(this._textureTypesAndFormats[GeometryBufferRenderer.NORMAL_TEXTURE_TYPE]);\n }\n if (this._enablePosition) {\n this._positionIndex = count;\n count++;\n textureNames.push(\"gBuffer_Position\");\n textureTypesAndFormats.push(this._textureTypesAndFormats[GeometryBufferRenderer.POSITION_TEXTURE_TYPE]);\n }\n if (this._enableVelocity) {\n this._velocityIndex = count;\n count++;\n textureNames.push(\"gBuffer_Velocity\");\n textureTypesAndFormats.push(this._textureTypesAndFormats[GeometryBufferRenderer.VELOCITY_TEXTURE_TYPE]);\n }\n if (this._enableVelocityLinear) {\n this._velocityLinearIndex = count;\n count++;\n textureNames.push(\"gBuffer_VelocityLinear\");\n textureTypesAndFormats.push(this._textureTypesAndFormats[GeometryBufferRenderer.VELOCITY_LINEAR_TEXTURE_TYPE]);\n }\n if (this._enableReflectivity) {\n this._reflectivityIndex = count;\n count++;\n textureNames.push(\"gBuffer_Reflectivity\");\n textureTypesAndFormats.push(this._textureTypesAndFormats[GeometryBufferRenderer.REFLECTIVITY_TEXTURE_TYPE]);\n }\n if (this._enableScreenspaceDepth) {\n this._screenspaceDepthIndex = count;\n count++;\n textureNames.push(\"gBuffer_ScreenspaceDepth\");\n textureTypesAndFormats.push(this._textureTypesAndFormats[GeometryBufferRenderer.SCREENSPACE_DEPTH_TEXTURE_TYPE]);\n }\n return [count, textureNames, textureTypesAndFormats];\n }\n _createRenderTargets() {\n const engine = this._scene.getEngine();\n const [count, textureNames, textureTypesAndFormat] = this._assignRenderTargetIndices();\n let type = 0;\n if (engine._caps.textureFloat && engine._caps.textureFloatLinearFiltering) {\n type = 1;\n }\n else if (engine._caps.textureHalfFloat && engine._caps.textureHalfFloatLinearFiltering) {\n type = 2;\n }\n const dimensions = this._ratioOrDimensions.width !== undefined\n ? this._ratioOrDimensions\n : { width: engine.getRenderWidth() * this._ratioOrDimensions, height: engine.getRenderHeight() * this._ratioOrDimensions };\n const textureTypes = [];\n const textureFormats = [];\n for (const typeAndFormat of textureTypesAndFormat) {\n if (typeAndFormat) {\n textureTypes.push(typeAndFormat.textureType);\n textureFormats.push(typeAndFormat.textureFormat);\n }\n else {\n textureTypes.push(type);\n textureFormats.push(5);\n }\n }\n this._normalsAreUnsigned =\n textureTypes[GeometryBufferRenderer.NORMAL_TEXTURE_TYPE] === 11 ||\n textureTypes[GeometryBufferRenderer.NORMAL_TEXTURE_TYPE] === 13;\n this._multiRenderTarget = new MultiRenderTarget(\"gBuffer\", dimensions, count, this._scene, { generateMipMaps: false, generateDepthTexture: true, types: textureTypes, formats: textureFormats, depthTextureFormat: this._depthFormat }, textureNames.concat(\"gBuffer_DepthBuffer\"));\n if (!this.isSupported) {\n return;\n }\n this._multiRenderTarget.wrapU = Texture.CLAMP_ADDRESSMODE;\n this._multiRenderTarget.wrapV = Texture.CLAMP_ADDRESSMODE;\n this._multiRenderTarget.refreshRate = 1;\n this._multiRenderTarget.renderParticles = false;\n this._multiRenderTarget.renderList = null;\n // Depth is always the first texture in the geometry buffer renderer!\n const layoutAttachmentsAll = [true];\n const layoutAttachmentsAllButDepth = [false];\n const layoutAttachmentsDepthOnly = [true];\n for (let i = 1; i < count; ++i) {\n layoutAttachmentsAll.push(true);\n layoutAttachmentsDepthOnly.push(false);\n layoutAttachmentsAllButDepth.push(true);\n }\n const attachmentsAll = engine.buildTextureLayout(layoutAttachmentsAll);\n const attachmentsAllButDepth = engine.buildTextureLayout(layoutAttachmentsAllButDepth);\n const attachmentsDepthOnly = engine.buildTextureLayout(layoutAttachmentsDepthOnly);\n this._multiRenderTarget.onClearObservable.add((engine) => {\n engine.bindAttachments(this.useSpecificClearForDepthTexture ? attachmentsAllButDepth : attachmentsAll);\n engine.clear(this._clearColor, true, true, true);\n if (this.useSpecificClearForDepthTexture) {\n engine.bindAttachments(attachmentsDepthOnly);\n engine.clear(this._clearDepthColor, true, true, true);\n }\n engine.bindAttachments(attachmentsAll);\n });\n this._resizeObserver = engine.onResizeObservable.add(() => {\n if (this._multiRenderTarget) {\n const dimensions = this._ratioOrDimensions.width !== undefined\n ? this._ratioOrDimensions\n : { width: engine.getRenderWidth() * this._ratioOrDimensions, height: engine.getRenderHeight() * this._ratioOrDimensions };\n this._multiRenderTarget.resize(dimensions);\n }\n });\n // Custom render function\n const renderSubMesh = (subMesh) => {\n const renderingMesh = subMesh.getRenderingMesh();\n const effectiveMesh = subMesh.getEffectiveMesh();\n const scene = this._scene;\n const engine = scene.getEngine();\n const material = subMesh.getMaterial();\n if (!material) {\n return;\n }\n effectiveMesh._internalAbstractMeshDataInfo._isActiveIntermediate = false;\n // Velocity\n if ((this._enableVelocity || this._enableVelocityLinear) && !this._previousTransformationMatrices[effectiveMesh.uniqueId]) {\n this._previousTransformationMatrices[effectiveMesh.uniqueId] = {\n world: Matrix.Identity(),\n viewProjection: scene.getTransformMatrix(),\n };\n if (renderingMesh.skeleton) {\n const bonesTransformations = renderingMesh.skeleton.getTransformMatrices(renderingMesh);\n this._previousBonesTransformationMatrices[renderingMesh.uniqueId] = this._copyBonesTransformationMatrices(bonesTransformations, new Float32Array(bonesTransformations.length));\n }\n }\n // Managing instances\n const batch = renderingMesh._getInstancesRenderList(subMesh._id, !!subMesh.getReplacementMesh());\n if (batch.mustReturn) {\n return;\n }\n const hardwareInstancedRendering = engine.getCaps().instancedArrays && (batch.visibleInstances[subMesh._id] !== null || renderingMesh.hasThinInstances);\n const world = effectiveMesh.getWorldMatrix();\n if (this.isReady(subMesh, hardwareInstancedRendering)) {\n const drawWrapper = subMesh._getDrawWrapper();\n if (!drawWrapper) {\n return;\n }\n const effect = drawWrapper.effect;\n engine.enableEffect(drawWrapper);\n if (!hardwareInstancedRendering) {\n renderingMesh._bind(subMesh, effect, material.fillMode);\n }\n if (!this._useUbo) {\n effect.setMatrix(\"viewProjection\", scene.getTransformMatrix());\n effect.setMatrix(\"view\", scene.getViewMatrix());\n }\n else {\n BindSceneUniformBuffer(effect, this._scene.getSceneUniformBuffer());\n this._scene.finalizeSceneUbo();\n }\n let sideOrientation;\n const instanceDataStorage = renderingMesh._instanceDataStorage;\n if (!instanceDataStorage.isFrozen && (material.backFaceCulling || material.sideOrientation !== null)) {\n const mainDeterminant = effectiveMesh._getWorldMatrixDeterminant();\n sideOrientation = material._getEffectiveOrientation(renderingMesh);\n if (mainDeterminant < 0) {\n sideOrientation = sideOrientation === Material.ClockWiseSideOrientation ? Material.CounterClockWiseSideOrientation : Material.ClockWiseSideOrientation;\n }\n }\n else {\n sideOrientation = instanceDataStorage.sideOrientation;\n }\n material._preBind(drawWrapper, sideOrientation);\n // Alpha test\n if (material.needAlphaTesting()) {\n const alphaTexture = material.getAlphaTestTexture();\n if (alphaTexture) {\n effect.setTexture(\"diffuseSampler\", alphaTexture);\n effect.setMatrix(\"diffuseMatrix\", alphaTexture.getTextureMatrix());\n }\n }\n // Bump\n if ((material.bumpTexture || material.normalTexture) && scene.getEngine().getCaps().standardDerivatives && MaterialFlags.BumpTextureEnabled) {\n const texture = material.bumpTexture || material.normalTexture;\n effect.setFloat3(\"vBumpInfos\", texture.coordinatesIndex, 1.0 / texture.level, material.parallaxScaleBias);\n effect.setMatrix(\"bumpMatrix\", texture.getTextureMatrix());\n effect.setTexture(\"bumpSampler\", texture);\n effect.setFloat2(\"vTangentSpaceParams\", material.invertNormalMapX ? -1.0 : 1.0, material.invertNormalMapY ? -1.0 : 1.0);\n }\n // Reflectivity\n if (this._enableReflectivity) {\n // for PBR materials: cf. https://doc.babylonjs.com/features/featuresDeepDive/materials/using/masterPBR\n if (material.getClassName() === \"PBRMetallicRoughnessMaterial\") {\n // if it is a PBR material in MetallicRoughness Mode:\n if (material.metallicRoughnessTexture !== null) {\n effect.setTexture(\"reflectivitySampler\", material.metallicRoughnessTexture);\n effect.setMatrix(\"reflectivityMatrix\", material.metallicRoughnessTexture.getTextureMatrix());\n }\n if (material.metallic !== null) {\n effect.setFloat(\"metallic\", material.metallic);\n }\n if (material.roughness !== null) {\n effect.setFloat(\"glossiness\", 1.0 - material.roughness);\n }\n if (material.baseTexture !== null) {\n effect.setTexture(\"albedoSampler\", material.baseTexture);\n effect.setMatrix(\"albedoMatrix\", material.baseTexture.getTextureMatrix());\n }\n if (material.baseColor !== null) {\n effect.setColor3(\"albedoColor\", material.baseColor);\n }\n }\n else if (material.getClassName() === \"PBRSpecularGlossinessMaterial\") {\n // if it is a PBR material in Specular/Glossiness Mode:\n if (material.specularGlossinessTexture !== null) {\n effect.setTexture(\"reflectivitySampler\", material.specularGlossinessTexture);\n effect.setMatrix(\"reflectivityMatrix\", material.specularGlossinessTexture.getTextureMatrix());\n }\n else {\n if (material.specularColor !== null) {\n effect.setColor3(\"reflectivityColor\", material.specularColor);\n }\n }\n if (material.glossiness !== null) {\n effect.setFloat(\"glossiness\", material.glossiness);\n }\n }\n else if (material.getClassName() === \"PBRMaterial\") {\n // if it is the bigger PBRMaterial\n if (material.metallicTexture !== null) {\n effect.setTexture(\"reflectivitySampler\", material.metallicTexture);\n effect.setMatrix(\"reflectivityMatrix\", material.metallicTexture.getTextureMatrix());\n }\n if (material.metallic !== null) {\n effect.setFloat(\"metallic\", material.metallic);\n }\n if (material.roughness !== null) {\n effect.setFloat(\"glossiness\", 1.0 - material.roughness);\n }\n if (material.roughness !== null || material.metallic !== null || material.metallicTexture !== null) {\n // MetallicRoughness Model\n if (material.albedoTexture !== null) {\n effect.setTexture(\"albedoSampler\", material.albedoTexture);\n effect.setMatrix(\"albedoMatrix\", material.albedoTexture.getTextureMatrix());\n }\n if (material.albedoColor !== null) {\n effect.setColor3(\"albedoColor\", material.albedoColor);\n }\n }\n else {\n // SpecularGlossiness Model\n if (material.reflectivityTexture !== null) {\n effect.setTexture(\"reflectivitySampler\", material.reflectivityTexture);\n effect.setMatrix(\"reflectivityMatrix\", material.reflectivityTexture.getTextureMatrix());\n }\n else if (material.reflectivityColor !== null) {\n effect.setColor3(\"reflectivityColor\", material.reflectivityColor);\n }\n if (material.microSurface !== null) {\n effect.setFloat(\"glossiness\", material.microSurface);\n }\n }\n }\n else if (material.getClassName() === \"StandardMaterial\") {\n // if StandardMaterial:\n if (material.specularTexture !== null) {\n effect.setTexture(\"reflectivitySampler\", material.specularTexture);\n effect.setMatrix(\"reflectivityMatrix\", material.specularTexture.getTextureMatrix());\n }\n if (material.specularColor !== null) {\n effect.setColor3(\"reflectivityColor\", material.specularColor);\n }\n }\n }\n // Clip plane\n bindClipPlane(effect, material, this._scene);\n // Bones\n if (renderingMesh.useBones && renderingMesh.computeBonesUsingShaders && renderingMesh.skeleton) {\n const skeleton = renderingMesh.skeleton;\n if (skeleton.isUsingTextureForMatrices && effect.getUniformIndex(\"boneTextureWidth\") > -1) {\n const boneTexture = skeleton.getTransformMatrixTexture(renderingMesh);\n effect.setTexture(\"boneSampler\", boneTexture);\n effect.setFloat(\"boneTextureWidth\", 4.0 * (skeleton.bones.length + 1));\n }\n else {\n effect.setMatrices(\"mBones\", renderingMesh.skeleton.getTransformMatrices(renderingMesh));\n }\n if (this._enableVelocity || this._enableVelocityLinear) {\n effect.setMatrices(\"mPreviousBones\", this._previousBonesTransformationMatrices[renderingMesh.uniqueId]);\n }\n }\n // Morph targets\n BindMorphTargetParameters(renderingMesh, effect);\n if (renderingMesh.morphTargetManager && renderingMesh.morphTargetManager.isUsingTextureForTargets) {\n renderingMesh.morphTargetManager._bind(effect);\n }\n // Velocity\n if (this._enableVelocity || this._enableVelocityLinear) {\n effect.setMatrix(\"previousWorld\", this._previousTransformationMatrices[effectiveMesh.uniqueId].world);\n effect.setMatrix(\"previousViewProjection\", this._previousTransformationMatrices[effectiveMesh.uniqueId].viewProjection);\n }\n if (hardwareInstancedRendering && renderingMesh.hasThinInstances) {\n effect.setMatrix(\"world\", world);\n }\n // Draw\n renderingMesh._processRendering(effectiveMesh, subMesh, effect, material.fillMode, batch, hardwareInstancedRendering, (isInstance, w) => {\n if (!isInstance) {\n effect.setMatrix(\"world\", w);\n }\n });\n }\n // Velocity\n if (this._enableVelocity || this._enableVelocityLinear) {\n this._previousTransformationMatrices[effectiveMesh.uniqueId].world = world.clone();\n this._previousTransformationMatrices[effectiveMesh.uniqueId].viewProjection = this._scene.getTransformMatrix().clone();\n if (renderingMesh.skeleton) {\n this._copyBonesTransformationMatrices(renderingMesh.skeleton.getTransformMatrices(renderingMesh), this._previousBonesTransformationMatrices[effectiveMesh.uniqueId]);\n }\n }\n };\n this._multiRenderTarget.customIsReadyFunction = (mesh, refreshRate, preWarm) => {\n if ((preWarm || refreshRate === 0) && mesh.subMeshes) {\n for (let i = 0; i < mesh.subMeshes.length; ++i) {\n const subMesh = mesh.subMeshes[i];\n const material = subMesh.getMaterial();\n const renderingMesh = subMesh.getRenderingMesh();\n if (!material) {\n continue;\n }\n const batch = renderingMesh._getInstancesRenderList(subMesh._id, !!subMesh.getReplacementMesh());\n const hardwareInstancedRendering = engine.getCaps().instancedArrays && (batch.visibleInstances[subMesh._id] !== null || renderingMesh.hasThinInstances);\n if (!this.isReady(subMesh, hardwareInstancedRendering)) {\n return false;\n }\n }\n }\n return true;\n };\n this._multiRenderTarget.customRenderFunction = (opaqueSubMeshes, alphaTestSubMeshes, transparentSubMeshes, depthOnlySubMeshes) => {\n let index;\n if (this._linkedWithPrePass) {\n if (!this._prePassRenderer.enabled) {\n return;\n }\n this._scene.getEngine().bindAttachments(this._attachmentsFromPrePass);\n }\n if (depthOnlySubMeshes.length) {\n engine.setColorWrite(false);\n for (index = 0; index < depthOnlySubMeshes.length; index++) {\n renderSubMesh(depthOnlySubMeshes.data[index]);\n }\n engine.setColorWrite(true);\n }\n for (index = 0; index < opaqueSubMeshes.length; index++) {\n renderSubMesh(opaqueSubMeshes.data[index]);\n }\n engine.setDepthWrite(false);\n for (index = 0; index < alphaTestSubMeshes.length; index++) {\n renderSubMesh(alphaTestSubMeshes.data[index]);\n }\n if (this.renderTransparentMeshes) {\n for (index = 0; index < transparentSubMeshes.length; index++) {\n renderSubMesh(transparentSubMeshes.data[index]);\n }\n }\n engine.setDepthWrite(true);\n };\n }\n // Copies the bones transformation matrices into the target array and returns the target's reference\n _copyBonesTransformationMatrices(source, target) {\n for (let i = 0; i < source.length; i++) {\n target[i] = source[i];\n }\n return target;\n }\n}\n/**\n * Force all the standard materials to compile to glsl even on WebGPU engines.\n * False by default. This is mostly meant for backward compatibility.\n */\nGeometryBufferRenderer.ForceGLSL = false;\n/**\n * Constant used to retrieve the depth texture index in the G-Buffer textures array\n * using getIndex(GeometryBufferRenderer.DEPTH_TEXTURE_INDEX)\n */\nGeometryBufferRenderer.DEPTH_TEXTURE_TYPE = 0;\n/**\n * Constant used to retrieve the normal texture index in the G-Buffer textures array\n * using getIndex(GeometryBufferRenderer.NORMAL_TEXTURE_INDEX)\n */\nGeometryBufferRenderer.NORMAL_TEXTURE_TYPE = 1;\n/**\n * Constant used to retrieve the position texture index in the G-Buffer textures array\n * using getIndex(GeometryBufferRenderer.POSITION_TEXTURE_INDEX)\n */\nGeometryBufferRenderer.POSITION_TEXTURE_TYPE = 2;\n/**\n * Constant used to retrieve the velocity texture index in the G-Buffer textures array\n * using getIndex(GeometryBufferRenderer.VELOCITY_TEXTURE_INDEX)\n */\nGeometryBufferRenderer.VELOCITY_TEXTURE_TYPE = 3;\n/**\n * Constant used to retrieve the reflectivity texture index in the G-Buffer textures array\n * using the getIndex(GeometryBufferRenderer.REFLECTIVITY_TEXTURE_TYPE)\n */\nGeometryBufferRenderer.REFLECTIVITY_TEXTURE_TYPE = 4;\n/**\n * Constant used to retrieve the screen-space depth texture index in the G-Buffer textures array\n * using getIndex(GeometryBufferRenderer.SCREENSPACE_DEPTH_TEXTURE_TYPE)\n */\nGeometryBufferRenderer.SCREENSPACE_DEPTH_TEXTURE_TYPE = 5;\n/**\n * Constant used to retrieve the linear velocity texture index in the G-Buffer textures array\n * using getIndex(GeometryBufferRenderer.VELOCITY_LINEAR_TEXTURE_TYPE)\n */\nGeometryBufferRenderer.VELOCITY_LINEAR_TEXTURE_TYPE = 6;\n/**\n * @internal\n */\nGeometryBufferRenderer._SceneComponentInitialization = (_) => {\n throw _WarnImport(\"GeometryBufferRendererSceneComponent\");\n};\n","\n/**\n * Contains all parameters needed for the prepass to perform\n * motion blur\n */\nexport class MotionBlurConfiguration {\n constructor() {\n /**\n * Is motion blur enabled\n */\n this.enabled = false;\n /**\n * Name of the configuration\n */\n this.name = \"motionBlur\";\n /**\n * Textures that should be present in the MRT for this effect to work\n */\n this.texturesRequired = [2];\n }\n}\n","import { Scene } from \"../scene.js\";\nimport { SceneComponentConstants } from \"../sceneComponent.js\";\nimport { GeometryBufferRenderer } from \"./geometryBufferRenderer.js\";\n\nObject.defineProperty(Scene.prototype, \"geometryBufferRenderer\", {\n get: function () {\n return this._geometryBufferRenderer;\n },\n set: function (value) {\n if (value && value.isSupported) {\n this._geometryBufferRenderer = value;\n }\n },\n enumerable: true,\n configurable: true,\n});\nScene.prototype.enableGeometryBufferRenderer = function (ratio = 1, depthFormat = 15, textureTypesAndFormats) {\n if (this._geometryBufferRenderer) {\n return this._geometryBufferRenderer;\n }\n this._geometryBufferRenderer = new GeometryBufferRenderer(this, ratio, depthFormat, textureTypesAndFormats);\n if (!this._geometryBufferRenderer.isSupported) {\n this._geometryBufferRenderer = null;\n }\n return this._geometryBufferRenderer;\n};\nScene.prototype.disableGeometryBufferRenderer = function () {\n if (!this._geometryBufferRenderer) {\n return;\n }\n this._geometryBufferRenderer.dispose();\n this._geometryBufferRenderer = null;\n};\n/**\n * Defines the Geometry Buffer scene component responsible to manage a G-Buffer useful\n * in several rendering techniques.\n */\nexport class GeometryBufferRendererSceneComponent {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(scene) {\n /**\n * The component name helpful to identify the component in the list of scene components.\n */\n this.name = SceneComponentConstants.NAME_GEOMETRYBUFFERRENDERER;\n this.scene = scene;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._gatherRenderTargetsStage.registerStep(SceneComponentConstants.STEP_GATHERRENDERTARGETS_GEOMETRYBUFFERRENDERER, this, this._gatherRenderTargets);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n // Nothing to do for this component\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n // Nothing to do for this component\n }\n _gatherRenderTargets(renderTargets) {\n if (this.scene._geometryBufferRenderer) {\n renderTargets.push(this.scene._geometryBufferRenderer.getGBuffer());\n }\n }\n}\nGeometryBufferRenderer._SceneComponentInitialization = (scene) => {\n // Register the G Buffer component to the scene.\n let component = scene._getComponent(SceneComponentConstants.NAME_GEOMETRYBUFFERRENDERER);\n if (!component) {\n component = new GeometryBufferRendererSceneComponent(scene);\n scene._addComponent(component);\n }\n};\n","import { __decorate } from \"../tslib.es6.js\";\nimport { Logger } from \"../Misc/logger.js\";\nimport { Matrix, TmpVectors, Vector2 } from \"../Maths/math.vector.js\";\nimport { PostProcess } from \"./postProcess.js\";\n\nimport { GeometryBufferRenderer } from \"../Rendering/geometryBufferRenderer.js\";\nimport { MotionBlurConfiguration } from \"../Rendering/motionBlurConfiguration.js\";\nimport \"../Animations/animatable.js\";\nimport \"../Rendering/geometryBufferRendererSceneComponent.js\";\nimport { serialize } from \"../Misc/decorators.js\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\n/**\n * The Motion Blur Post Process which blurs an image based on the objects velocity in scene.\n * Velocity can be affected by each object's rotation, position and scale depending on the transformation speed.\n * As an example, all you have to do is to create the post-process:\n * var mb = new BABYLON.MotionBlurPostProcess(\n * 'mb', // The name of the effect.\n * scene, // The scene containing the objects to blur according to their velocity.\n * 1.0, // The required width/height ratio to downsize to before computing the render pass.\n * camera // The camera to apply the render pass to.\n * );\n * Then, all objects moving, rotating and/or scaling will be blurred depending on the transformation speed.\n */\nexport class MotionBlurPostProcess extends PostProcess {\n /**\n * Gets the number of iterations are used for motion blur quality. Default value is equal to 32\n */\n get motionBlurSamples() {\n return this._motionBlurSamples;\n }\n /**\n * Sets the number of iterations to be used for motion blur quality\n */\n set motionBlurSamples(samples) {\n this._motionBlurSamples = samples;\n this._updateEffect();\n }\n /**\n * Gets whether or not the motion blur post-process is in object based mode.\n */\n get isObjectBased() {\n return this._isObjectBased;\n }\n /**\n * Sets whether or not the motion blur post-process is in object based mode.\n */\n set isObjectBased(value) {\n if (this._isObjectBased === value) {\n return;\n }\n this._isObjectBased = value;\n this._applyMode();\n }\n get _geometryBufferRenderer() {\n if (!this._forceGeometryBuffer) {\n return null;\n }\n return this._scene.geometryBufferRenderer;\n }\n get _prePassRenderer() {\n if (this._forceGeometryBuffer) {\n return null;\n }\n return this._scene.prePassRenderer;\n }\n /**\n * Gets a string identifying the name of the class\n * @returns \"MotionBlurPostProcess\" string\n */\n getClassName() {\n return \"MotionBlurPostProcess\";\n }\n /**\n * Creates a new instance MotionBlurPostProcess\n * @param name The name of the effect.\n * @param scene The scene containing the objects to blur according to their velocity.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: true)\n * @param forceGeometryBuffer If this post process should use geometry buffer instead of prepass (default: false)\n */\n constructor(name, scene, options, camera, samplingMode, engine, reusable, textureType = 0, blockCompilation = false, forceGeometryBuffer = false) {\n super(name, \"motionBlur\", [\"motionStrength\", \"motionScale\", \"screenSize\", \"inverseViewProjection\", \"prevViewProjection\", \"projection\"], [\"velocitySampler\", \"depthSampler\"], options, camera, samplingMode, engine, reusable, \"#define GEOMETRY_SUPPORTED\\n#define SAMPLES 64.0\\n#define OBJECT_BASED\", textureType, undefined, null, blockCompilation);\n /**\n * Defines how much the image is blurred by the movement. Default value is equal to 1\n */\n this.motionStrength = 1;\n this._motionBlurSamples = 32;\n this._isObjectBased = true;\n this._forceGeometryBuffer = false;\n this._invViewProjection = null;\n this._previousViewProjection = null;\n this._forceGeometryBuffer = forceGeometryBuffer;\n // Set up assets\n if (this._forceGeometryBuffer) {\n scene.enableGeometryBufferRenderer();\n if (this._geometryBufferRenderer) {\n this._geometryBufferRenderer.enableVelocity = this._isObjectBased;\n }\n }\n else {\n scene.enablePrePassRenderer();\n if (this._prePassRenderer) {\n this._prePassRenderer.markAsDirty();\n this._prePassEffectConfiguration = new MotionBlurConfiguration();\n }\n }\n this._applyMode();\n }\n _gatherImports(useWebGPU, list) {\n if (useWebGPU) {\n this._webGPUReady = true;\n list.push(Promise.all([import(\"../ShadersWGSL/motionBlur.fragment.js\")]));\n }\n else {\n list.push(Promise.all([import(\"../Shaders/motionBlur.fragment.js\")]));\n }\n super._gatherImports(useWebGPU, list);\n }\n /**\n * Excludes the given skinned mesh from computing bones velocities.\n * Computing bones velocities can have a cost and that cost. The cost can be saved by calling this function and by passing the skinned mesh reference to ignore.\n * @param skinnedMesh The mesh containing the skeleton to ignore when computing the velocity map.\n */\n excludeSkinnedMesh(skinnedMesh) {\n if (skinnedMesh.skeleton) {\n let list;\n if (this._geometryBufferRenderer) {\n list = this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity;\n }\n else if (this._prePassRenderer) {\n list = this._prePassRenderer.excludedSkinnedMesh;\n }\n else {\n return;\n }\n list.push(skinnedMesh);\n }\n }\n /**\n * Removes the given skinned mesh from the excluded meshes to integrate bones velocities while rendering the velocity map.\n * @param skinnedMesh The mesh containing the skeleton that has been ignored previously.\n * @see excludeSkinnedMesh to exclude a skinned mesh from bones velocity computation.\n */\n removeExcludedSkinnedMesh(skinnedMesh) {\n if (skinnedMesh.skeleton) {\n let list;\n if (this._geometryBufferRenderer) {\n list = this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity;\n }\n else if (this._prePassRenderer) {\n list = this._prePassRenderer.excludedSkinnedMesh;\n }\n else {\n return;\n }\n const index = list.indexOf(skinnedMesh);\n if (index !== -1) {\n list.splice(index, 1);\n }\n }\n }\n /**\n * Disposes the post process.\n * @param camera The camera to dispose the post process on.\n */\n dispose(camera) {\n if (this._geometryBufferRenderer) {\n // Clear previous transformation matrices dictionary used to compute objects velocities\n this._geometryBufferRenderer._previousTransformationMatrices = {};\n this._geometryBufferRenderer._previousBonesTransformationMatrices = {};\n this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity = [];\n }\n super.dispose(camera);\n }\n /**\n * Called on the mode changed (object based or screen based).\n * @returns void\n */\n _applyMode() {\n if (!this._geometryBufferRenderer && !this._prePassRenderer) {\n // We can't get a velocity or depth texture. So, work as a passthrough.\n Logger.Warn(\"Multiple Render Target support needed to compute object based motion blur\");\n return this.updateEffect();\n }\n if (this._geometryBufferRenderer) {\n this._geometryBufferRenderer.enableVelocity = this._isObjectBased;\n }\n this._updateEffect();\n this._invViewProjection = null;\n this._previousViewProjection = null;\n if (this.isObjectBased) {\n if (this._prePassRenderer && this._prePassEffectConfiguration) {\n this._prePassEffectConfiguration.texturesRequired[0] = 2;\n }\n this.onApply = (effect) => this._onApplyObjectBased(effect);\n }\n else {\n this._invViewProjection = Matrix.Identity();\n this._previousViewProjection = this._scene.getTransformMatrix().clone();\n if (this._prePassRenderer && this._prePassEffectConfiguration) {\n this._prePassEffectConfiguration.texturesRequired[0] = 5;\n }\n this.onApply = (effect) => this._onApplyScreenBased(effect);\n }\n }\n /**\n * Called on the effect is applied when the motion blur post-process is in object based mode.\n * @param effect\n */\n _onApplyObjectBased(effect) {\n effect.setVector2(\"screenSize\", new Vector2(this.width, this.height));\n effect.setFloat(\"motionScale\", this._scene.getAnimationRatio());\n effect.setFloat(\"motionStrength\", this.motionStrength);\n if (this._geometryBufferRenderer) {\n const velocityIndex = this._geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.VELOCITY_TEXTURE_TYPE);\n effect.setTexture(\"velocitySampler\", this._geometryBufferRenderer.getGBuffer().textures[velocityIndex]);\n }\n else if (this._prePassRenderer) {\n const velocityIndex = this._prePassRenderer.getIndex(2);\n effect.setTexture(\"velocitySampler\", this._prePassRenderer.getRenderTarget().textures[velocityIndex]);\n }\n }\n /**\n * Called on the effect is applied when the motion blur post-process is in screen based mode.\n * @param effect\n */\n _onApplyScreenBased(effect) {\n const viewProjection = TmpVectors.Matrix[0];\n viewProjection.copyFrom(this._scene.getTransformMatrix());\n viewProjection.invertToRef(this._invViewProjection);\n effect.setMatrix(\"inverseViewProjection\", this._invViewProjection);\n effect.setMatrix(\"prevViewProjection\", this._previousViewProjection);\n this._previousViewProjection.copyFrom(viewProjection);\n effect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\n effect.setVector2(\"screenSize\", new Vector2(this.width, this.height));\n effect.setFloat(\"motionScale\", this._scene.getAnimationRatio());\n effect.setFloat(\"motionStrength\", this.motionStrength);\n if (this._geometryBufferRenderer) {\n const depthIndex = this._geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.DEPTH_TEXTURE_TYPE);\n effect.setTexture(\"depthSampler\", this._geometryBufferRenderer.getGBuffer().textures[depthIndex]);\n }\n else if (this._prePassRenderer) {\n const depthIndex = this._prePassRenderer.getIndex(5);\n effect.setTexture(\"depthSampler\", this._prePassRenderer.getRenderTarget().textures[depthIndex]);\n }\n }\n /**\n * Called on the effect must be updated (changed mode, samples count, etc.).\n */\n _updateEffect() {\n if (this._geometryBufferRenderer || this._prePassRenderer) {\n const defines = [\n \"#define GEOMETRY_SUPPORTED\",\n \"#define SAMPLES \" + this._motionBlurSamples.toFixed(1),\n this._isObjectBased ? \"#define OBJECT_BASED\" : \"#define SCREEN_BASED\",\n ];\n this.updateEffect(defines.join(\"\\n\"));\n }\n }\n /**\n * @internal\n */\n static _Parse(parsedPostProcess, targetCamera, scene, rootUrl) {\n return SerializationHelper.Parse(() => {\n return new MotionBlurPostProcess(parsedPostProcess.name, scene, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable, parsedPostProcess.textureType, false);\n }, parsedPostProcess, scene, rootUrl);\n }\n}\n__decorate([\n serialize()\n], MotionBlurPostProcess.prototype, \"motionStrength\", void 0);\n__decorate([\n serialize()\n], MotionBlurPostProcess.prototype, \"motionBlurSamples\", null);\n__decorate([\n serialize()\n], MotionBlurPostProcess.prototype, \"isObjectBased\", null);\nRegisterClass(\"BABYLON.MotionBlurPostProcess\", MotionBlurPostProcess);\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"refractionPixelShader\";\nconst shader = `varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D refractionSampler;uniform vec3 baseColor;uniform float depth;uniform float colorLevel;void main() {float ref=1.0-texture2D(refractionSampler,vUV).r;vec2 uv=vUV-vec2(0.5);vec2 offset=uv*depth*ref;vec3 sourceColor=texture2D(textureSampler,vUV-offset).rgb;gl_FragColor=vec4(sourceColor+sourceColor*ref*colorLevel,1.0);}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const refractionPixelShader = { name, shader };\n","import { __decorate } from \"../tslib.es6.js\";\nimport { Texture } from \"../Materials/Textures/texture.js\";\nimport { PostProcess } from \"./postProcess.js\";\nimport \"../Shaders/refraction.fragment.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { serialize } from \"../Misc/decorators.js\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization.js\";\n/**\n * Post process which applies a refraction texture\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses#refraction\n */\nexport class RefractionPostProcess extends PostProcess {\n /**\n * Gets or sets the refraction texture\n * Please note that you are responsible for disposing the texture if you set it manually\n */\n get refractionTexture() {\n return this._refTexture;\n }\n set refractionTexture(value) {\n if (this._refTexture && this._ownRefractionTexture) {\n this._refTexture.dispose();\n }\n this._refTexture = value;\n this._ownRefractionTexture = false;\n }\n /**\n * Gets a string identifying the name of the class\n * @returns \"RefractionPostProcess\" string\n */\n getClassName() {\n return \"RefractionPostProcess\";\n }\n /**\n * Initializes the RefractionPostProcess\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/usePostProcesses#refraction\n * @param name The name of the effect.\n * @param refractionTextureUrl Url of the refraction texture to use\n * @param color the base color of the refraction (used to taint the rendering)\n * @param depth simulated refraction depth\n * @param colorLevel the coefficient of the base color (0 to remove base color tainting)\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n */\n constructor(name, refractionTextureUrl, color, depth, colorLevel, options, camera, samplingMode, engine, reusable) {\n super(name, \"refraction\", [\"baseColor\", \"depth\", \"colorLevel\"], [\"refractionSampler\"], options, camera, samplingMode, engine, reusable);\n this._ownRefractionTexture = true;\n this.color = color;\n this.depth = depth;\n this.colorLevel = colorLevel;\n this.refractionTextureUrl = refractionTextureUrl;\n this.onActivateObservable.add((cam) => {\n this._refTexture = this._refTexture || new Texture(refractionTextureUrl, cam.getScene());\n });\n this.onApplyObservable.add((effect) => {\n effect.setColor3(\"baseColor\", this.color);\n effect.setFloat(\"depth\", this.depth);\n effect.setFloat(\"colorLevel\", this.colorLevel);\n effect.setTexture(\"refractionSampler\", this._refTexture);\n });\n }\n // Methods\n /**\n * Disposes of the post process\n * @param camera Camera to dispose post process on\n */\n dispose(camera) {\n if (this._refTexture && this._ownRefractionTexture) {\n this._refTexture.dispose();\n this._refTexture = null;\n }\n super.dispose(camera);\n }\n /**\n * @internal\n */\n static _Parse(parsedPostProcess, targetCamera, scene, rootUrl) {\n return SerializationHelper.Parse(() => {\n return new RefractionPostProcess(parsedPostProcess.name, parsedPostProcess.refractionTextureUrl, parsedPostProcess.color, parsedPostProcess.depth, parsedPostProcess.colorLevel, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable);\n }, parsedPostProcess, scene, rootUrl);\n }\n}\n__decorate([\n serialize()\n], RefractionPostProcess.prototype, \"color\", void 0);\n__decorate([\n serialize()\n], RefractionPostProcess.prototype, \"depth\", void 0);\n__decorate([\n serialize()\n], RefractionPostProcess.prototype, \"colorLevel\", void 0);\n__decorate([\n serialize()\n], RefractionPostProcess.prototype, \"refractionTextureUrl\", void 0);\nRegisterClass(\"BABYLON.RefractionPostProcess\", RefractionPostProcess);\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"lensHighlightsPixelShader\";\nconst shader = `uniform sampler2D textureSampler; \nuniform float gain;uniform float threshold;uniform float screen_width;uniform float screen_height;varying vec2 vUV;vec4 highlightColor(vec4 color) {vec4 highlight=color;float luminance=dot(highlight.rgb,vec3(0.2125,0.7154,0.0721));float lum_threshold;if (threshold>1.0) { lum_threshold=0.94+0.01*threshold; }\nelse { lum_threshold=0.5+0.44*threshold; }\nluminance=clamp((luminance-lum_threshold)*(1.0/(1.0-lum_threshold)),0.0,1.0);highlight*=luminance*gain;highlight.a=1.0;return highlight;}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{vec4 original=texture2D(textureSampler,vUV);if (gain==-1.0) {gl_FragColor=vec4(0.0,0.0,0.0,1.0);return;}\nfloat w=2.0/screen_width;float h=2.0/screen_height;float weight=1.0;vec4 blurred=vec4(0.0,0.0,0.0,0.0);\n#ifdef PENTAGON\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.84*w,0.43*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.48*w,-1.29*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.61*w,1.51*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.55*w,-0.74*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.71*w,-0.52*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.94*w,1.59*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.40*w,-1.87*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.62*w,1.16*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.09*w,0.25*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.46*w,-1.71*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.08*w,2.42*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.85*w,-1.89*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.89*w,0.16*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.29*w,1.88*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.40*w,-2.81*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.54*w,2.26*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.60*w,-0.61*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.31*w,-1.30*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.83*w,2.53*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.12*w,-2.48*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.60*w,1.11*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.99*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.50*w,-2.81*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.85*w,3.33*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.94*w,-1.92*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.27*w,-0.53*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.95*w,2.48*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.23*w,-3.04*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.17*w,2.05*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.97*w,-0.04*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.25*w,-2.00*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.31*w,3.08*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.94*w,-2.59*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.37*w,0.64*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.13*w,1.93*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.03*w,-3.65*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.60*w,3.17*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.14*w,-1.19*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.00*w,-1.19*h)));\n#else\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.85*w,0.36*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.52*w,-1.14*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.46*w,1.42*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.46*w,-0.83*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.79*w,-0.42*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.11*w,1.62*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.29*w,-2.07*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.69*w,1.39*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.28*w,0.12*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.65*w,-1.69*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.08*w,2.44*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.63*w,-1.90*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.55*w,0.31*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.13*w,1.52*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.56*w,-2.61*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.38*w,2.34*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.64*w,-0.81*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.53*w,-1.21*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.06*w,2.63*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.00*w,-2.69*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.59*w,1.32*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.78*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.57*w,-2.50*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.54*w,2.93*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.39*w,-1.81*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,-0.28*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.04*w,2.25*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.02*w,-3.05*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.09*w,2.25*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.07*w,-0.25*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.44*w,-1.90*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.52*w,3.05*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.68*w,-2.61*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,0.79*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.76*w,1.46*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.05*w,-2.94*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.21*w,2.88*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.84*w,-1.30*h)));blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.98*w,-0.96*h)));\n#endif\nblurred/=39.0;gl_FragColor=blurred;}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const lensHighlightsPixelShader = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"depthOfFieldPixelShader\";\nconst shader = `uniform sampler2D textureSampler;uniform sampler2D highlightsSampler;uniform sampler2D depthSampler;uniform sampler2D grainSampler;uniform float grain_amount;uniform bool blur_noise;uniform float screen_width;uniform float screen_height;uniform float distortion;uniform bool dof_enabled;uniform float screen_distance; \nuniform float aperture;uniform float darken;uniform float edge_blur;uniform bool highlights;uniform float near;uniform float far;varying vec2 vUV;\n#define PI 3.14159265\n#define TWOPI 6.28318530\n#define inverse_focal_length 0.1 \nvec2 centered_screen_pos;vec2 distorted_coords;float radius2;float radius;vec2 rand(vec2 co)\n{float noise1=(fract(sin(dot(co,vec2(12.9898,78.233)))*43758.5453));float noise2=(fract(sin(dot(co,vec2(12.9898,78.233)*2.0))*43758.5453));return clamp(vec2(noise1,noise2),0.0,1.0);}\nvec2 getDistortedCoords(vec2 coords) {if (distortion==0.0) { return coords; }\nvec2 direction=1.0*normalize(centered_screen_pos);vec2 dist_coords=vec2(0.5,0.5);dist_coords.x=0.5+direction.x*radius2*1.0;dist_coords.y=0.5+direction.y*radius2*1.0;float dist_amount=clamp(distortion*0.23,0.0,1.0);dist_coords=mix(coords,dist_coords,dist_amount);return dist_coords;}\nfloat sampleScreen(inout vec4 color,in vec2 offset,in float weight) {vec2 coords=distorted_coords;float angle=rand(coords*100.0).x*TWOPI;coords+=vec2(offset.x*cos(angle)-offset.y*sin(angle),offset.x*sin(angle)+offset.y*cos(angle));color+=texture2D(textureSampler,coords)*weight;return weight;}\nfloat getBlurLevel(float size) {return min(3.0,ceil(size/1.0));}\nvec4 getBlurColor(float size) {vec4 col=texture2D(textureSampler,distorted_coords);float blur_level=getBlurLevel(size);float w=(size/screen_width);float h=(size/screen_height);float total_weight=1.0;vec2 sample_coords;total_weight+=sampleScreen(col,vec2(-0.50*w,0.24*h),0.93);total_weight+=sampleScreen(col,vec2(0.30*w,-0.75*h),0.90);total_weight+=sampleScreen(col,vec2(0.36*w,0.96*h),0.87);total_weight+=sampleScreen(col,vec2(-1.08*w,-0.55*h),0.85);total_weight+=sampleScreen(col,vec2(1.33*w,-0.37*h),0.83);total_weight+=sampleScreen(col,vec2(-0.82*w,1.31*h),0.80);total_weight+=sampleScreen(col,vec2(-0.31*w,-1.67*h),0.78);total_weight+=sampleScreen(col,vec2(1.47*w,1.11*h),0.76);total_weight+=sampleScreen(col,vec2(-1.97*w,0.19*h),0.74);total_weight+=sampleScreen(col,vec2(1.42*w,-1.57*h),0.72);if (blur_level>1.0) {total_weight+=sampleScreen(col,vec2(0.01*w,2.25*h),0.70);total_weight+=sampleScreen(col,vec2(-1.62*w,-1.74*h),0.67);total_weight+=sampleScreen(col,vec2(2.49*w,0.20*h),0.65);total_weight+=sampleScreen(col,vec2(-2.07*w,1.61*h),0.63);total_weight+=sampleScreen(col,vec2(0.46*w,-2.70*h),0.61);total_weight+=sampleScreen(col,vec2(1.55*w,2.40*h),0.59);total_weight+=sampleScreen(col,vec2(-2.88*w,-0.75*h),0.56);total_weight+=sampleScreen(col,vec2(2.73*w,-1.44*h),0.54);total_weight+=sampleScreen(col,vec2(-1.08*w,3.02*h),0.52);total_weight+=sampleScreen(col,vec2(-1.28*w,-3.05*h),0.49);}\nif (blur_level>2.0) {total_weight+=sampleScreen(col,vec2(3.11*w,1.43*h),0.46);total_weight+=sampleScreen(col,vec2(-3.36*w,1.08*h),0.44);total_weight+=sampleScreen(col,vec2(1.80*w,-3.16*h),0.41);total_weight+=sampleScreen(col,vec2(0.83*w,3.65*h),0.38);total_weight+=sampleScreen(col,vec2(-3.16*w,-2.19*h),0.34);total_weight+=sampleScreen(col,vec2(3.92*w,-0.53*h),0.31);total_weight+=sampleScreen(col,vec2(-2.59*w,3.12*h),0.26);total_weight+=sampleScreen(col,vec2(-0.20*w,-4.15*h),0.22);total_weight+=sampleScreen(col,vec2(3.02*w,3.00*h),0.15);}\ncol/=total_weight; \nif (darken>0.0) {col.rgb*=clamp(0.3,1.0,1.05-size*0.5*darken);}\nreturn col;}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{centered_screen_pos=vec2(vUV.x-0.5,vUV.y-0.5);radius2=centered_screen_pos.x*centered_screen_pos.x+centered_screen_pos.y*centered_screen_pos.y;radius=sqrt(radius2);distorted_coords=getDistortedCoords(vUV); \nvec2 texels_coords=vec2(vUV.x*screen_width,vUV.y*screen_height); \nfloat depth=texture2D(depthSampler,distorted_coords).r; \nfloat distance=near+(far-near)*depth; \nvec4 color=texture2D(textureSampler,vUV); \nfloat coc=abs(aperture*(screen_distance*(inverse_focal_length-1.0/distance)-1.0));if (dof_enabled==false || coc<0.07) { coc=0.0; }\nfloat edge_blur_amount=0.0;if (edge_blur>0.0) {edge_blur_amount=clamp((radius*2.0-1.0+0.15*edge_blur)*1.5,0.0,1.0)*1.3;}\nfloat blur_amount=max(edge_blur_amount,coc);if (blur_amount==0.0) {gl_FragColor=texture2D(textureSampler,distorted_coords);}\nelse {gl_FragColor=getBlurColor(blur_amount*1.7);if (highlights) {gl_FragColor.rgb+=clamp(coc,0.0,1.0)*texture2D(highlightsSampler,distorted_coords).rgb;}\nif (blur_noise) {vec2 noise=rand(distorted_coords)*0.01*blur_amount;vec2 blurred_coord=vec2(distorted_coords.x+noise.x,distorted_coords.y+noise.y);gl_FragColor=0.04*texture2D(textureSampler,blurred_coord)+0.96*gl_FragColor;}}\nif (grain_amount>0.0) {vec4 grain_color=texture2D(grainSampler,texels_coords*0.003);gl_FragColor.rgb+=(-0.5+grain_color.rgb)*0.30*grain_amount;}}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const depthOfFieldPixelShader = { name, shader };\n","\n/**\n * Contains all parameters needed for the prepass to perform\n * screen space subsurface scattering\n */\nexport class SSAO2Configuration {\n constructor() {\n /**\n * Is subsurface enabled\n */\n this.enabled = false;\n /**\n * Name of the configuration\n */\n this.name = \"ssao2\";\n /**\n * Textures that should be present in the MRT for this effect to work\n */\n this.texturesRequired = [6, 5];\n }\n}\n","import { __decorate } from \"../../../tslib.es6.js\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { Logger } from \"../../../Misc/logger.js\";\nimport { serialize } from \"../../../Misc/decorators.js\";\nimport { SerializationHelper } from \"../../../Misc/decorators.serialization.js\";\nimport { Vector3, TmpVectors, Vector2 } from \"../../../Maths/math.vector.js\";\nimport { Camera } from \"../../../Cameras/camera.js\";\nimport { Texture } from \"../../../Materials/Textures/texture.js\";\nimport { PostProcess } from \"../../../PostProcesses/postProcess.js\";\nimport { PostProcessRenderPipeline } from \"../../../PostProcesses/RenderPipeline/postProcessRenderPipeline.js\";\nimport { PostProcessRenderEffect } from \"../../../PostProcesses/RenderPipeline/postProcessRenderEffect.js\";\nimport { PassPostProcess } from \"../../../PostProcesses/passPostProcess.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { EngineStore } from \"../../../Engines/engineStore.js\";\nimport { SSAO2Configuration } from \"../../../Rendering/ssao2Configuration.js\";\n\nimport { RandomRange } from \"../../../Maths/math.scalar.functions.js\";\nimport { RawTexture } from \"../../../Materials/Textures/rawTexture.js\";\nimport \"../../../PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js\";\n/**\n * Render pipeline to produce ssao effect\n */\nexport class SSAO2RenderingPipeline extends PostProcessRenderPipeline {\n /**\n * Used in SSAO calculations to compensate for accuracy issues with depth values. Default 0.02.\n *\n * Normally you do not need to change this value, but you can experiment with it if you get a lot of in false self-occlusion on flat surfaces when using fewer than 16 samples. Useful range is normally [0..0.1] but higher values is allowed.\n */\n set epsilon(n) {\n this._epsilon = n;\n this._ssaoPostProcess.updateEffect(this._getDefinesForSSAO());\n }\n get epsilon() {\n return this._epsilon;\n }\n /**\n * Number of samples used for the SSAO calculations. Default value is 8.\n */\n set samples(n) {\n this._samples = n;\n this._ssaoPostProcess.updateEffect(this._getDefinesForSSAO());\n this._sampleSphere = this._generateHemisphere();\n }\n get samples() {\n return this._samples;\n }\n /**\n * Number of samples to use for antialiasing.\n */\n set textureSamples(n) {\n this._textureSamples = n;\n if (this._prePassRenderer) {\n this._prePassRenderer.samples = n;\n }\n else {\n this._originalColorPostProcess.samples = n;\n }\n }\n get textureSamples() {\n return this._textureSamples;\n }\n get _geometryBufferRenderer() {\n if (!this._forceGeometryBuffer) {\n return null;\n }\n return this._scene.geometryBufferRenderer;\n }\n get _prePassRenderer() {\n if (this._forceGeometryBuffer) {\n return null;\n }\n return this._scene.prePassRenderer;\n }\n /**\n * Skips the denoising (blur) stage of the SSAO calculations.\n *\n * Useful to temporarily set while experimenting with the other SSAO2 settings.\n */\n set bypassBlur(b) {\n const defines = this._getDefinesForBlur(this.expensiveBlur, b);\n const samplers = this._getSamplersForBlur(b);\n this._blurHPostProcess.updateEffect(defines.h, null, samplers);\n this._blurVPostProcess.updateEffect(defines.v, null, samplers);\n this._bypassBlur = b;\n }\n get bypassBlur() {\n return this._bypassBlur;\n }\n /**\n * Enables the configurable bilateral denoising (blurring) filter. Default is true.\n * Set to false to instead use a legacy bilateral filter that can't be configured.\n *\n * The denoising filter runs after the SSAO calculations and is a very important step. Both options results in a so called bilateral being used, but the \"expensive\" one can be\n * configured in several ways to fit your scene.\n */\n set expensiveBlur(b) {\n const defines = this._getDefinesForBlur(b, this._bypassBlur);\n this._blurHPostProcess.updateEffect(defines.h);\n this._blurVPostProcess.updateEffect(defines.v);\n this._expensiveBlur = b;\n }\n get expensiveBlur() {\n return this._expensiveBlur;\n }\n /**\n * Support test.\n */\n static get IsSupported() {\n const engine = EngineStore.LastCreatedEngine;\n if (!engine) {\n return false;\n }\n return engine._features.supportSSAO2;\n }\n /**\n * Gets active scene\n */\n get scene() {\n return this._scene;\n }\n /**\n * @constructor\n * @param name The rendering pipeline name\n * @param scene The scene linked to this pipeline\n * @param ratio The size of the postprocesses. Can be a number shared between passes or an object for more precision: { ssaoRatio: 0.5, blurRatio: 1.0 }\n * @param cameras The array of cameras that the rendering pipeline will be attached to\n * @param forceGeometryBuffer Set to true if you want to use the legacy geometry buffer renderer\n * @param textureType The texture type used by the different post processes created by SSAO (default: 0)\n */\n constructor(name, scene, ratio, cameras, forceGeometryBuffer = false, textureType = 0) {\n super(scene.getEngine(), name);\n // Members\n /**\n * @ignore\n * The PassPostProcess id in the pipeline that contains the original scene color\n */\n this.SSAOOriginalSceneColorEffect = \"SSAOOriginalSceneColorEffect\";\n /**\n * @ignore\n * The SSAO PostProcess id in the pipeline\n */\n this.SSAORenderEffect = \"SSAORenderEffect\";\n /**\n * @ignore\n * The horizontal blur PostProcess id in the pipeline\n */\n this.SSAOBlurHRenderEffect = \"SSAOBlurHRenderEffect\";\n /**\n * @ignore\n * The vertical blur PostProcess id in the pipeline\n */\n this.SSAOBlurVRenderEffect = \"SSAOBlurVRenderEffect\";\n /**\n * @ignore\n * The PostProcess id in the pipeline that combines the SSAO-Blur output with the original scene color (SSAOOriginalSceneColorEffect)\n */\n this.SSAOCombineRenderEffect = \"SSAOCombineRenderEffect\";\n /**\n * The output strength of the SSAO post-process. Default value is 1.0.\n */\n this.totalStrength = 1.0;\n /**\n * Maximum depth value to still render AO. A smooth falloff makes the dimming more natural, so there will be no abrupt shading change.\n */\n this.maxZ = 100.0;\n /**\n * In order to save performances, SSAO radius is clamped on close geometry. This ratio changes by how much.\n */\n this.minZAspect = 0.2;\n this._epsilon = 0.02;\n this._samples = 8;\n this._textureSamples = 1;\n /**\n * Force rendering the geometry through geometry buffer.\n */\n this._forceGeometryBuffer = false;\n /**\n * The radius around the analyzed pixel used by the SSAO post-process. Default value is 2.0\n */\n this.radius = 2.0;\n /**\n * The base color of the SSAO post-process\n * The final result is \"base + ssao\" between [0, 1]\n */\n this.base = 0;\n this._bypassBlur = false;\n this._expensiveBlur = true;\n /**\n * The number of samples the bilateral filter uses in both dimensions when denoising the SSAO calculations. Default value is 16.\n *\n * A higher value should result in smoother shadows but will use more processing time in the shaders.\n *\n * A high value can cause the shadows to get to blurry or create visible artifacts (bands) near sharp details in the geometry. The artifacts can sometimes be mitigated by increasing the bilateralSoften setting.\n */\n this.bilateralSamples = 16;\n /**\n * Controls the shape of the denoising kernel used by the bilateral filter. Default value is 0.\n *\n * By default the bilateral filter acts like a box-filter, treating all samples on the same depth with equal weights. This is effective to maximize the denoising effect given a limited set of samples. However, it also often results in visible ghosting around sharp shadow regions and can spread out lines over large areas so they are no longer visible.\n *\n * Increasing this setting will make the filter pay less attention to samples further away from the center sample, reducing many artifacts but at the same time increasing noise.\n *\n * Useful value range is [0..1].\n */\n this.bilateralSoften = 0;\n /**\n * How forgiving the bilateral denoiser should be when rejecting samples. Default value is 0.\n *\n * A higher value results in the bilateral filter being more forgiving and thus doing a better job at denoising slanted and curved surfaces, but can lead to shadows spreading out around corners or between objects that are close to each other depth wise.\n *\n * Useful value range is normally [0..1], but higher values are allowed.\n */\n this.bilateralTolerance = 0;\n this._bits = new Uint32Array(1);\n this._scene = scene;\n this._ratio = ratio;\n this._textureType = textureType;\n this._forceGeometryBuffer = forceGeometryBuffer;\n if (!this.isSupported) {\n Logger.Error(\"The current engine does not support SSAO 2.\");\n return;\n }\n const ssaoRatio = this._ratio.ssaoRatio || ratio;\n const blurRatio = this._ratio.blurRatio || ratio;\n // Set up assets\n if (this._forceGeometryBuffer) {\n scene.enableGeometryBufferRenderer();\n if (scene.geometryBufferRenderer?.generateNormalsInWorldSpace) {\n Logger.Error(\"SSAO2RenderingPipeline does not support generateNormalsInWorldSpace=true for the geometry buffer renderer!\");\n }\n }\n else {\n scene.enablePrePassRenderer();\n if (scene.prePassRenderer?.generateNormalsInWorldSpace) {\n Logger.Error(\"SSAO2RenderingPipeline does not support generateNormalsInWorldSpace=true for the prepass renderer!\");\n }\n }\n this._createRandomTexture();\n this._originalColorPostProcess = new PassPostProcess(\"SSAOOriginalSceneColor\", 1.0, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), undefined, this._textureType);\n this._originalColorPostProcess.samples = this.textureSamples;\n this._createSSAOPostProcess(1.0, textureType);\n this._createBlurPostProcess(ssaoRatio, blurRatio, this._textureType);\n this._createSSAOCombinePostProcess(blurRatio, this._textureType);\n // Set up pipeline\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOOriginalSceneColorEffect, () => {\n return this._originalColorPostProcess;\n }, true));\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAORenderEffect, () => {\n return this._ssaoPostProcess;\n }, true));\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOBlurHRenderEffect, () => {\n return this._blurHPostProcess;\n }, true));\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOBlurVRenderEffect, () => {\n return this._blurVPostProcess;\n }, true));\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOCombineRenderEffect, () => {\n return this._ssaoCombinePostProcess;\n }, true));\n // Finish\n scene.postProcessRenderPipelineManager.addPipeline(this);\n if (cameras) {\n scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(name, cameras);\n }\n }\n // Public Methods\n /**\n * Get the class name\n * @returns \"SSAO2RenderingPipeline\"\n */\n getClassName() {\n return \"SSAO2RenderingPipeline\";\n }\n /**\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\n * @param disableGeometryBufferRenderer Set to true if you want to disable the Geometry Buffer renderer\n */\n dispose(disableGeometryBufferRenderer = false) {\n for (let i = 0; i < this._scene.cameras.length; i++) {\n const camera = this._scene.cameras[i];\n this._originalColorPostProcess.dispose(camera);\n this._ssaoPostProcess.dispose(camera);\n this._blurHPostProcess.dispose(camera);\n this._blurVPostProcess.dispose(camera);\n this._ssaoCombinePostProcess.dispose(camera);\n }\n this._randomTexture.dispose();\n if (disableGeometryBufferRenderer) {\n this._scene.disableGeometryBufferRenderer();\n }\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._scene.cameras);\n super.dispose();\n }\n // Private Methods\n /** @internal */\n _rebuild() {\n super._rebuild();\n }\n _getSamplersForBlur(disabled) {\n return disabled ? [\"textureSampler\"] : [\"textureSampler\", \"depthSampler\"];\n }\n _getDefinesForBlur(bilateral, disabled) {\n let define = \"#define BLUR\\n\";\n if (disabled) {\n define += \"#define BLUR_BYPASS\\n\";\n }\n if (!bilateral) {\n define += \"#define BLUR_LEGACY\\n\";\n }\n return { h: define + \"#define BLUR_H\\n\", v: define };\n }\n _createBlurPostProcess(ssaoRatio, blurRatio, textureType) {\n const defines = this._getDefinesForBlur(this.expensiveBlur, this.bypassBlur);\n const samplers = this._getSamplersForBlur(this.bypassBlur);\n this._blurHPostProcess = this._createBlurFilter(\"BlurH\", samplers, ssaoRatio, defines.h, textureType, true);\n this._blurVPostProcess = this._createBlurFilter(\"BlurV\", samplers, blurRatio, defines.v, textureType, false);\n }\n _createBlurFilter(name, samplers, ratio, defines, textureType, horizontal) {\n const blurFilter = new PostProcess(name, \"ssao2\", [\"outSize\", \"samples\", \"soften\", \"tolerance\"], samplers, ratio, null, Texture.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), false, defines, textureType, undefined, undefined, undefined, undefined, this._scene.getEngine().isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */, (useWebGPU, list) => {\n if (useWebGPU) {\n list.push(import(\"../../../ShadersWGSL/ssao2.fragment.js\"));\n }\n else {\n list.push(import(\"../../../Shaders/ssao2.fragment.js\"));\n }\n });\n blurFilter.onApply = (effect) => {\n if (!this._scene.activeCamera) {\n return;\n }\n const ssaoCombineSize = horizontal ? this._ssaoCombinePostProcess.width : this._ssaoCombinePostProcess.height;\n const originalColorSize = horizontal ? this._originalColorPostProcess.width : this._originalColorPostProcess.height;\n effect.setFloat(\"outSize\", ssaoCombineSize > 0 ? ssaoCombineSize : originalColorSize);\n effect.setInt(\"samples\", this.bilateralSamples);\n effect.setFloat(\"soften\", this.bilateralSoften);\n effect.setFloat(\"tolerance\", this.bilateralTolerance);\n if (this._geometryBufferRenderer) {\n effect.setTexture(\"depthSampler\", this._geometryBufferRenderer.getGBuffer().textures[0]);\n }\n else if (this._prePassRenderer) {\n effect.setTexture(\"depthSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(5)]);\n }\n };\n blurFilter.samples = this.textureSamples;\n blurFilter.autoClear = false;\n return blurFilter;\n }\n //Van der Corput radical inverse\n _radicalInverse_VdC(i) {\n this._bits[0] = i;\n this._bits[0] = ((this._bits[0] << 16) | (this._bits[0] >> 16)) >>> 0;\n this._bits[0] = ((this._bits[0] & 0x55555555) << 1) | (((this._bits[0] & 0xaaaaaaaa) >>> 1) >>> 0);\n this._bits[0] = ((this._bits[0] & 0x33333333) << 2) | (((this._bits[0] & 0xcccccccc) >>> 2) >>> 0);\n this._bits[0] = ((this._bits[0] & 0x0f0f0f0f) << 4) | (((this._bits[0] & 0xf0f0f0f0) >>> 4) >>> 0);\n this._bits[0] = ((this._bits[0] & 0x00ff00ff) << 8) | (((this._bits[0] & 0xff00ff00) >>> 8) >>> 0);\n return this._bits[0] * 2.3283064365386963e-10; // / 0x100000000 or / 4294967296\n }\n _hammersley(i, n) {\n return [i / n, this._radicalInverse_VdC(i)];\n }\n _hemisphereSample_uniform(u, v) {\n const phi = v * 2.0 * Math.PI;\n // rejecting samples that are close to tangent plane to avoid z-fighting artifacts\n const cosTheta = 1.0 - u * 0.85;\n const sinTheta = Math.sqrt(1.0 - cosTheta * cosTheta);\n return new Vector3(Math.cos(phi) * sinTheta, Math.sin(phi) * sinTheta, cosTheta);\n }\n _generateHemisphere() {\n const numSamples = this.samples;\n const result = [];\n let vector;\n let i = 0;\n while (i < numSamples) {\n if (numSamples < 16) {\n vector = this._hemisphereSample_uniform(Math.random(), Math.random());\n }\n else {\n const rand = this._hammersley(i, numSamples);\n vector = this._hemisphereSample_uniform(rand[0], rand[1]);\n }\n result.push(vector.x, vector.y, vector.z);\n i++;\n }\n return result;\n }\n _getDefinesForSSAO() {\n const defines = `#define SSAO\\n#define SAMPLES ${this.samples}\\n#define EPSILON ${this.epsilon.toFixed(4)}`;\n return defines;\n }\n _createSSAOPostProcess(ratio, textureType) {\n this._sampleSphere = this._generateHemisphere();\n const defines = this._getDefinesForSSAO();\n const samplers = [\"randomSampler\", \"depthSampler\", \"normalSampler\"];\n this._ssaoPostProcess = new PostProcess(\"ssao2\", \"ssao2\", [\n \"sampleSphere\",\n \"samplesFactor\",\n \"randTextureTiles\",\n \"totalStrength\",\n \"radius\",\n \"base\",\n \"range\",\n \"projection\",\n \"near\",\n \"texelSize\",\n \"xViewport\",\n \"yViewport\",\n \"maxZ\",\n \"minZAspect\",\n \"depthProjection\",\n ], samplers, ratio, null, Texture.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), false, defines, textureType, undefined, undefined, undefined, undefined, this._scene.getEngine().isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */, (useWebGPU, list) => {\n if (useWebGPU) {\n list.push(import(\"../../../ShadersWGSL/ssao2.fragment.js\"));\n }\n else {\n list.push(import(\"../../../Shaders/ssao2.fragment.js\"));\n }\n });\n this._ssaoPostProcess.autoClear = false;\n this._ssaoPostProcess.onApply = (effect) => {\n if (!this._scene.activeCamera) {\n return;\n }\n effect.setArray3(\"sampleSphere\", this._sampleSphere);\n effect.setFloat(\"randTextureTiles\", 32.0);\n effect.setFloat(\"samplesFactor\", 1 / this.samples);\n effect.setFloat(\"totalStrength\", this.totalStrength);\n effect.setFloat2(\"texelSize\", 1 / this._ssaoPostProcess.width, 1 / this._ssaoPostProcess.height);\n effect.setFloat(\"radius\", this.radius);\n effect.setFloat(\"maxZ\", this.maxZ);\n effect.setFloat(\"minZAspect\", this.minZAspect);\n effect.setFloat(\"base\", this.base);\n effect.setFloat(\"near\", this._scene.activeCamera.minZ);\n if (this._scene.activeCamera.mode === Camera.PERSPECTIVE_CAMERA) {\n effect.setMatrix3x3(\"depthProjection\", SSAO2RenderingPipeline.PERSPECTIVE_DEPTH_PROJECTION);\n effect.setFloat(\"xViewport\", Math.tan(this._scene.activeCamera.fov / 2) * this._scene.getEngine().getAspectRatio(this._scene.activeCamera, true));\n effect.setFloat(\"yViewport\", Math.tan(this._scene.activeCamera.fov / 2));\n }\n else {\n const halfWidth = this._scene.getEngine().getRenderWidth() / 2.0;\n const halfHeight = this._scene.getEngine().getRenderHeight() / 2.0;\n const orthoLeft = this._scene.activeCamera.orthoLeft ?? -halfWidth;\n const orthoRight = this._scene.activeCamera.orthoRight ?? halfWidth;\n const orthoBottom = this._scene.activeCamera.orthoBottom ?? -halfHeight;\n const orthoTop = this._scene.activeCamera.orthoTop ?? halfHeight;\n effect.setMatrix3x3(\"depthProjection\", SSAO2RenderingPipeline.ORTHO_DEPTH_PROJECTION);\n effect.setFloat(\"xViewport\", (orthoRight - orthoLeft) * 0.5);\n effect.setFloat(\"yViewport\", (orthoTop - orthoBottom) * 0.5);\n }\n effect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\n if (this._geometryBufferRenderer) {\n effect.setTexture(\"depthSampler\", this._geometryBufferRenderer.getGBuffer().textures[0]);\n effect.setTexture(\"normalSampler\", this._geometryBufferRenderer.getGBuffer().textures[1]);\n }\n else if (this._prePassRenderer) {\n effect.setTexture(\"depthSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(5)]);\n effect.setTexture(\"normalSampler\", this._prePassRenderer.getRenderTarget().textures[this._prePassRenderer.getIndex(6)]);\n }\n effect.setTexture(\"randomSampler\", this._randomTexture);\n };\n this._ssaoPostProcess.samples = this.textureSamples;\n if (!this._forceGeometryBuffer) {\n this._ssaoPostProcess._prePassEffectConfiguration = new SSAO2Configuration();\n }\n }\n _createSSAOCombinePostProcess(ratio, textureType) {\n this._ssaoCombinePostProcess = new PostProcess(\"ssaoCombine\", \"ssaoCombine\", [], [\"originalColor\", \"viewport\"], ratio, null, Texture.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), false, undefined, textureType, undefined, undefined, undefined, undefined, this._scene.getEngine().isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */, (useWebGPU, list) => {\n if (useWebGPU) {\n list.push(import(\"../../../ShadersWGSL/ssaoCombine.fragment.js\"));\n }\n else {\n list.push(import(\"../../../Shaders/ssaoCombine.fragment.js\"));\n }\n });\n this._ssaoCombinePostProcess.onApply = (effect) => {\n const viewport = this._scene.activeCamera.viewport;\n effect.setVector4(\"viewport\", TmpVectors.Vector4[0].copyFromFloats(viewport.x, viewport.y, viewport.width, viewport.height));\n effect.setTextureFromPostProcessOutput(\"originalColor\", this._originalColorPostProcess);\n };\n this._ssaoCombinePostProcess.autoClear = false;\n this._ssaoCombinePostProcess.samples = this.textureSamples;\n }\n _createRandomTexture() {\n const size = 128;\n const data = new Uint8Array(size * size * 4);\n const randVector = Vector2.Zero();\n for (let index = 0; index < data.length;) {\n randVector.set(RandomRange(0, 1), RandomRange(0, 1)).normalize().scaleInPlace(255);\n data[index++] = Math.floor(randVector.x);\n data[index++] = Math.floor(randVector.y);\n data[index++] = 0;\n data[index++] = 255;\n }\n const texture = RawTexture.CreateRGBATexture(data, size, size, this._scene, false, false, 2);\n texture.name = \"SSAORandomTexture\";\n texture.wrapU = Texture.WRAP_ADDRESSMODE;\n texture.wrapV = Texture.WRAP_ADDRESSMODE;\n this._randomTexture = texture;\n }\n /**\n * Serialize the rendering pipeline (Used when exporting)\n * @returns the serialized object\n */\n serialize() {\n const serializationObject = SerializationHelper.Serialize(this);\n serializationObject.customType = \"SSAO2RenderingPipeline\";\n return serializationObject;\n }\n /**\n * Parse the serialized pipeline\n * @param source Source pipeline.\n * @param scene The scene to load the pipeline to.\n * @param rootUrl The URL of the serialized pipeline.\n * @returns An instantiated pipeline from the serialized object.\n */\n static Parse(source, scene, rootUrl) {\n return SerializationHelper.Parse(() => new SSAO2RenderingPipeline(source._name, scene, source._ratio, undefined, source._forceGeometryBuffer, source._textureType), source, scene, rootUrl);\n }\n}\nSSAO2RenderingPipeline.ORTHO_DEPTH_PROJECTION = [1, 0, 0, 0, 1, 0, 0, 0, 1];\nSSAO2RenderingPipeline.PERSPECTIVE_DEPTH_PROJECTION = [0, 0, 0, 0, 0, 0, 1, 1, 1];\n__decorate([\n serialize()\n], SSAO2RenderingPipeline.prototype, \"totalStrength\", void 0);\n__decorate([\n serialize()\n], SSAO2RenderingPipeline.prototype, \"maxZ\", void 0);\n__decorate([\n serialize()\n], SSAO2RenderingPipeline.prototype, \"minZAspect\", void 0);\n__decorate([\n serialize(\"epsilon\")\n], SSAO2RenderingPipeline.prototype, \"_epsilon\", void 0);\n__decorate([\n serialize(\"samples\")\n], SSAO2RenderingPipeline.prototype, \"_samples\", void 0);\n__decorate([\n serialize(\"textureSamples\")\n], SSAO2RenderingPipeline.prototype, \"_textureSamples\", void 0);\n__decorate([\n serialize()\n], SSAO2RenderingPipeline.prototype, \"_forceGeometryBuffer\", void 0);\n__decorate([\n serialize()\n], SSAO2RenderingPipeline.prototype, \"_ratio\", void 0);\n__decorate([\n serialize()\n], SSAO2RenderingPipeline.prototype, \"_textureType\", void 0);\n__decorate([\n serialize()\n], SSAO2RenderingPipeline.prototype, \"radius\", void 0);\n__decorate([\n serialize()\n], SSAO2RenderingPipeline.prototype, \"base\", void 0);\n__decorate([\n serialize(\"bypassBlur\")\n], SSAO2RenderingPipeline.prototype, \"_bypassBlur\", void 0);\n__decorate([\n serialize(\"expensiveBlur\")\n], SSAO2RenderingPipeline.prototype, \"_expensiveBlur\", void 0);\n__decorate([\n serialize()\n], SSAO2RenderingPipeline.prototype, \"bilateralSamples\", void 0);\n__decorate([\n serialize()\n], SSAO2RenderingPipeline.prototype, \"bilateralSoften\", void 0);\n__decorate([\n serialize()\n], SSAO2RenderingPipeline.prototype, \"bilateralTolerance\", void 0);\nRegisterClass(\"BABYLON.SSAO2RenderingPipeline\", SSAO2RenderingPipeline);\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"ssaoPixelShader\";\nconst shader = `uniform sampler2D textureSampler;varying vec2 vUV;\n#ifdef SSAO\nuniform sampler2D randomSampler;uniform float randTextureTiles;uniform float samplesFactor;uniform vec3 sampleSphere[SAMPLES];uniform float totalStrength;uniform float radius;uniform float area;uniform float fallOff;uniform float base;vec3 normalFromDepth(float depth,vec2 coords)\n{vec2 offset1=vec2(0.0,radius);vec2 offset2=vec2(radius,0.0);float depth1=texture2D(textureSampler,coords+offset1).r;float depth2=texture2D(textureSampler,coords+offset2).r;vec3 p1=vec3(offset1,depth1-depth);vec3 p2=vec3(offset2,depth2-depth);vec3 normal=cross(p1,p2);normal.z=-normal.z;return normalize(normal);}\nvoid main()\n{vec3 random=normalize(texture2D(randomSampler,vUV*randTextureTiles).rgb);float depth=texture2D(textureSampler,vUV).r;vec3 position=vec3(vUV,depth);vec3 normal=normalFromDepth(depth,vUV);float radiusDepth=radius/depth;float occlusion=0.0;vec3 ray;vec3 hemiRay;float occlusionDepth;float difference;for (int i=0; i {\n return this._originalColorPostProcess;\n }, true));\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAORenderEffect, () => {\n return this._ssaoPostProcess;\n }, true));\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOBlurHRenderEffect, () => {\n return this._blurHPostProcess;\n }, true));\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOBlurVRenderEffect, () => {\n return this._blurVPostProcess;\n }, true));\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), this.SSAOCombineRenderEffect, () => {\n return this._ssaoCombinePostProcess;\n }, true));\n // Finish\n scene.postProcessRenderPipelineManager.addPipeline(this);\n if (cameras) {\n scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(name, cameras);\n }\n }\n /**\n * @internal\n */\n _attachCameras(cameras, unique) {\n super._attachCameras(cameras, unique);\n for (const camera of this._cameras) {\n this._scene.enableDepthRenderer(camera).getDepthMap(); // Force depth renderer \"on\"\n }\n }\n // Public Methods\n /**\n * Get the class name\n * @returns \"SSAORenderingPipeline\"\n */\n getClassName() {\n return \"SSAORenderingPipeline\";\n }\n /**\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\n * @param disableDepthRender - If the depth renderer should be disabled on the scene\n */\n dispose(disableDepthRender = false) {\n for (let i = 0; i < this._scene.cameras.length; i++) {\n const camera = this._scene.cameras[i];\n this._originalColorPostProcess.dispose(camera);\n this._ssaoPostProcess.dispose(camera);\n this._blurHPostProcess.dispose(camera);\n this._blurVPostProcess.dispose(camera);\n this._ssaoCombinePostProcess.dispose(camera);\n }\n this._randomTexture.dispose();\n if (disableDepthRender) {\n this._scene.disableDepthRenderer();\n }\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._scene.cameras);\n super.dispose();\n }\n // Private Methods\n _createBlurPostProcess(ratio) {\n const size = 16;\n this._blurHPostProcess = new BlurPostProcess(\"BlurH\", new Vector2(1, 0), size, ratio, null, Texture.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), false, 0);\n this._blurVPostProcess = new BlurPostProcess(\"BlurV\", new Vector2(0, 1), size, ratio, null, Texture.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), false, 0);\n this._blurHPostProcess.onActivateObservable.add(() => {\n const dw = this._blurHPostProcess.width / this._scene.getEngine().getRenderWidth();\n this._blurHPostProcess.kernel = size * dw;\n });\n this._blurVPostProcess.onActivateObservable.add(() => {\n const dw = this._blurVPostProcess.height / this._scene.getEngine().getRenderHeight();\n this._blurVPostProcess.kernel = size * dw;\n });\n }\n /** @internal */\n _rebuild() {\n this._firstUpdate = true;\n super._rebuild();\n }\n _createSSAOPostProcess(ratio) {\n const numSamples = 16;\n const sampleSphere = [\n 0.5381, 0.1856, -0.4319, 0.1379, 0.2486, 0.443, 0.3371, 0.5679, -0.0057, -0.6999, -0.0451, -0.0019, 0.0689, -0.1598, -0.8547, 0.056, 0.0069, -0.1843, -0.0146, 0.1402,\n 0.0762, 0.01, -0.1924, -0.0344, -0.3577, -0.5301, -0.4358, -0.3169, 0.1063, 0.0158, 0.0103, -0.5869, 0.0046, -0.0897, -0.494, 0.3287, 0.7119, -0.0154, -0.0918, -0.0533,\n 0.0596, -0.5411, 0.0352, -0.0631, 0.546, -0.4776, 0.2847, -0.0271,\n ];\n const samplesFactor = 1.0 / numSamples;\n this._ssaoPostProcess = new PostProcess(\"ssao\", \"ssao\", [\"sampleSphere\", \"samplesFactor\", \"randTextureTiles\", \"totalStrength\", \"radius\", \"area\", \"fallOff\", \"base\", \"range\", \"viewport\"], [\"randomSampler\"], ratio, null, Texture.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), false, \"#define SAMPLES \" + numSamples + \"\\n#define SSAO\");\n this._ssaoPostProcess.externalTextureSamplerBinding = true;\n this._ssaoPostProcess.onApply = (effect) => {\n if (this._firstUpdate) {\n effect.setArray3(\"sampleSphere\", sampleSphere);\n effect.setFloat(\"samplesFactor\", samplesFactor);\n effect.setFloat(\"randTextureTiles\", 4.0);\n }\n effect.setFloat(\"totalStrength\", this.totalStrength);\n effect.setFloat(\"radius\", this.radius);\n effect.setFloat(\"area\", this.area);\n effect.setFloat(\"fallOff\", this.fallOff);\n effect.setFloat(\"base\", this.base);\n effect.setTexture(\"textureSampler\", this._scene.enableDepthRenderer(this._scene.activeCamera).getDepthMap());\n effect.setTexture(\"randomSampler\", this._randomTexture);\n };\n }\n _createSSAOCombinePostProcess(ratio) {\n this._ssaoCombinePostProcess = new PostProcess(\"ssaoCombine\", \"ssaoCombine\", [], [\"originalColor\", \"viewport\"], ratio, null, Texture.BILINEAR_SAMPLINGMODE, this._scene.getEngine(), false);\n this._ssaoCombinePostProcess.onApply = (effect) => {\n effect.setVector4(\"viewport\", TmpVectors.Vector4[0].copyFromFloats(0, 0, 1.0, 1.0));\n effect.setTextureFromPostProcess(\"originalColor\", this._originalColorPostProcess);\n };\n }\n _createRandomTexture() {\n const size = 512;\n const data = new Uint8Array(size * size * 4);\n for (let index = 0; index < data.length;) {\n data[index++] = Math.floor(Math.max(0.0, RandomRange(-1.0, 1.0)) * 255);\n data[index++] = Math.floor(Math.max(0.0, RandomRange(-1.0, 1.0)) * 255);\n data[index++] = Math.floor(Math.max(0.0, RandomRange(-1.0, 1.0)) * 255);\n data[index++] = 255;\n }\n const texture = RawTexture.CreateRGBATexture(data, size, size, this._scene, false, false, 2);\n texture.name = \"SSAORandomTexture\";\n texture.wrapU = Texture.WRAP_ADDRESSMODE;\n texture.wrapV = Texture.WRAP_ADDRESSMODE;\n this._randomTexture = texture;\n }\n}\n__decorate([\n serialize()\n], SSAORenderingPipeline.prototype, \"totalStrength\", void 0);\n__decorate([\n serialize()\n], SSAORenderingPipeline.prototype, \"radius\", void 0);\n__decorate([\n serialize()\n], SSAORenderingPipeline.prototype, \"area\", void 0);\n__decorate([\n serialize()\n], SSAORenderingPipeline.prototype, \"fallOff\", void 0);\n__decorate([\n serialize()\n], SSAORenderingPipeline.prototype, \"base\", void 0);\n","\n/**\n * Contains all parameters needed for the prepass to perform\n * screen space reflections\n */\nexport class ScreenSpaceReflectionsConfiguration {\n constructor() {\n /**\n * Is ssr enabled\n */\n this.enabled = false;\n /**\n * Name of the configuration\n */\n this.name = \"screenSpaceReflections\";\n /**\n * Textures that should be present in the MRT for this effect to work\n */\n this.texturesRequired = [6, 3, 1];\n }\n}\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"screenSpaceReflectionPixelShader\";\nconst shader = `uniform sampler2D textureSampler;\n#ifdef SSR_SUPPORTED\nuniform sampler2D reflectivitySampler;uniform sampler2D normalSampler;uniform sampler2D positionSampler;\n#endif\nuniform mat4 view;uniform mat4 projection;uniform float stepSize;uniform float strength;uniform float threshold;uniform float roughnessFactor;uniform float reflectionSpecularFalloffExponent;varying vec2 vUV;\n#ifdef SSR_SUPPORTED\nstruct ReflectionInfo {vec3 color;vec4 coords;};/**\n* According to specular,see https:\n*/\nvec3 fresnelSchlick(float cosTheta,vec3 F0)\n{return F0+(1.0-F0)*pow(1.0-cosTheta,5.0);}\n/**\n* Once the pixel's coordinates has been found,let's adjust (smooth) a little bit\n* by sampling multiple reflection pixels.\n*/\nReflectionInfo smoothReflectionInfo(vec3 dir,vec3 hitCoord)\n{ReflectionInfo info;info.color=vec3(0.0);vec4 projectedCoord;float sampledDepth;for(int i=0; i0.0)\nhitCoord-=dir;else\nhitCoord+=dir;info.color+=texture2D(textureSampler,projectedCoord.xy).rgb;}\nprojectedCoord=projection*vec4(hitCoord,1.0);projectedCoord.xy/=projectedCoord.w;projectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5);info.coords=vec4(projectedCoord.xy,sampledDepth,1.0);info.color+=texture2D(textureSampler,projectedCoord.xy).rgb;info.color/=float(SMOOTH_STEPS+1);return info;}\n/**\n* Tests the given world position (hitCoord) according to the given reflection vector (dir)\n* until it finds a collision (means that depth is enough close to say \"it's the pixel to sample!\").\n*/\nReflectionInfo getReflectionInfo(vec3 dir,vec3 hitCoord)\n{ReflectionInfo info;vec4 projectedCoord;float sampledDepth;dir*=stepSize;for(int i=0; i {\n const geometryBufferRenderer = this._geometryBufferRenderer;\n const prePassRenderer = this._prePassRenderer;\n if (!prePassRenderer && !geometryBufferRenderer) {\n return;\n }\n if (geometryBufferRenderer) {\n // Samplers\n const positionIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.POSITION_TEXTURE_TYPE);\n const roughnessIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.REFLECTIVITY_TEXTURE_TYPE);\n effect.setTexture(\"normalSampler\", geometryBufferRenderer.getGBuffer().textures[1]);\n effect.setTexture(\"positionSampler\", geometryBufferRenderer.getGBuffer().textures[positionIndex]);\n effect.setTexture(\"reflectivitySampler\", geometryBufferRenderer.getGBuffer().textures[roughnessIndex]);\n }\n else if (prePassRenderer) {\n // Samplers\n const positionIndex = prePassRenderer.getIndex(1);\n const roughnessIndex = prePassRenderer.getIndex(3);\n const normalIndex = prePassRenderer.getIndex(6);\n effect.setTexture(\"normalSampler\", prePassRenderer.getRenderTarget().textures[normalIndex]);\n effect.setTexture(\"positionSampler\", prePassRenderer.getRenderTarget().textures[positionIndex]);\n effect.setTexture(\"reflectivitySampler\", prePassRenderer.getRenderTarget().textures[roughnessIndex]);\n }\n // Uniforms\n const camera = scene.activeCamera;\n if (!camera) {\n return;\n }\n const viewMatrix = camera.getViewMatrix(true);\n const projectionMatrix = camera.getProjectionMatrix(true);\n effect.setMatrix(\"projection\", projectionMatrix);\n effect.setMatrix(\"view\", viewMatrix);\n effect.setFloat(\"threshold\", this.threshold);\n effect.setFloat(\"reflectionSpecularFalloffExponent\", this.reflectionSpecularFalloffExponent);\n effect.setFloat(\"strength\", this.strength);\n effect.setFloat(\"stepSize\", this.step);\n effect.setFloat(\"roughnessFactor\", this.roughnessFactor);\n };\n this._isSceneRightHanded = scene.useRightHandedSystem;\n }\n /**\n * Gets whether or not smoothing reflections is enabled.\n * Enabling smoothing will require more GPU power and can generate a drop in FPS.\n */\n get enableSmoothReflections() {\n return this._enableSmoothReflections;\n }\n /**\n * Sets whether or not smoothing reflections is enabled.\n * Enabling smoothing will require more GPU power and can generate a drop in FPS.\n */\n set enableSmoothReflections(enabled) {\n if (enabled === this._enableSmoothReflections) {\n return;\n }\n this._enableSmoothReflections = enabled;\n this._updateEffectDefines();\n }\n /**\n * Gets the number of samples taken while computing reflections. More samples count is high,\n * more the post-process wil require GPU power and can generate a drop in FPS. Basically in interval [25, 100].\n */\n get reflectionSamples() {\n return this._reflectionSamples;\n }\n /**\n * Sets the number of samples taken while computing reflections. More samples count is high,\n * more the post-process wil require GPU power and can generate a drop in FPS. Basically in interval [25, 100].\n */\n set reflectionSamples(samples) {\n if (samples === this._reflectionSamples) {\n return;\n }\n this._reflectionSamples = samples;\n this._updateEffectDefines();\n }\n /**\n * Gets the number of samples taken while smoothing reflections. More samples count is high,\n * more the post-process will require GPU power and can generate a drop in FPS.\n * Default value (5.0) work pretty well in all cases but can be adjusted.\n */\n get smoothSteps() {\n return this._smoothSteps;\n }\n /*\n * Sets the number of samples taken while smoothing reflections. More samples count is high,\n * more the post-process will require GPU power and can generate a drop in FPS.\n * Default value (5.0) work pretty well in all cases but can be adjusted.\n */\n set smoothSteps(steps) {\n if (steps === this._smoothSteps) {\n return;\n }\n this._smoothSteps = steps;\n this._updateEffectDefines();\n }\n _updateEffectDefines() {\n const defines = [];\n if (this._geometryBufferRenderer || this._prePassRenderer) {\n defines.push(\"#define SSR_SUPPORTED\");\n }\n if (this._enableSmoothReflections) {\n defines.push(\"#define ENABLE_SMOOTH_REFLECTIONS\");\n }\n if (this._isSceneRightHanded) {\n defines.push(\"#define RIGHT_HANDED_SCENE\");\n }\n defines.push(\"#define REFLECTION_SAMPLES \" + (this._reflectionSamples >> 0));\n defines.push(\"#define SMOOTH_STEPS \" + (this._smoothSteps >> 0));\n this.updateEffect(defines.join(\"\\n\"));\n }\n /**\n * @internal\n */\n static _Parse(parsedPostProcess, targetCamera, scene, rootUrl) {\n return SerializationHelper.Parse(() => {\n return new ScreenSpaceReflectionPostProcess(parsedPostProcess.name, scene, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.textureType, parsedPostProcess.reusable);\n }, parsedPostProcess, scene, rootUrl);\n }\n}\n__decorate([\n serialize()\n], ScreenSpaceReflectionPostProcess.prototype, \"threshold\", void 0);\n__decorate([\n serialize()\n], ScreenSpaceReflectionPostProcess.prototype, \"strength\", void 0);\n__decorate([\n serialize()\n], ScreenSpaceReflectionPostProcess.prototype, \"reflectionSpecularFalloffExponent\", void 0);\n__decorate([\n serialize()\n], ScreenSpaceReflectionPostProcess.prototype, \"step\", void 0);\n__decorate([\n serialize()\n], ScreenSpaceReflectionPostProcess.prototype, \"roughnessFactor\", void 0);\n__decorate([\n serialize()\n], ScreenSpaceReflectionPostProcess.prototype, \"enableSmoothReflections\", null);\n__decorate([\n serialize()\n], ScreenSpaceReflectionPostProcess.prototype, \"reflectionSamples\", null);\n__decorate([\n serialize()\n], ScreenSpaceReflectionPostProcess.prototype, \"smoothSteps\", null);\nRegisterClass(\"BABYLON.ScreenSpaceReflectionPostProcess\", ScreenSpaceReflectionPostProcess);\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nimport \"./ShadersInclude/packingFunctions.js\";\nconst name = \"standardPixelShader\";\nconst shader = `uniform sampler2D textureSampler;varying vec2 vUV;\n#define CUSTOM_FRAGMENT_DEFINITIONS\n#if defined(PASS_POST_PROCESS)\nvoid main(void)\n{vec4 color=texture2D(textureSampler,vUV);gl_FragColor=color;}\n#endif\n#if defined(DOWN_SAMPLE_X4)\nuniform vec2 dsOffsets[16];void main(void)\n{vec4 average=vec4(0.0,0.0,0.0,0.0);average=texture2D(textureSampler,vUV+dsOffsets[0]);average+=texture2D(textureSampler,vUV+dsOffsets[1]);average+=texture2D(textureSampler,vUV+dsOffsets[2]);average+=texture2D(textureSampler,vUV+dsOffsets[3]);average+=texture2D(textureSampler,vUV+dsOffsets[4]);average+=texture2D(textureSampler,vUV+dsOffsets[5]);average+=texture2D(textureSampler,vUV+dsOffsets[6]);average+=texture2D(textureSampler,vUV+dsOffsets[7]);average+=texture2D(textureSampler,vUV+dsOffsets[8]);average+=texture2D(textureSampler,vUV+dsOffsets[9]);average+=texture2D(textureSampler,vUV+dsOffsets[10]);average+=texture2D(textureSampler,vUV+dsOffsets[11]);average+=texture2D(textureSampler,vUV+dsOffsets[12]);average+=texture2D(textureSampler,vUV+dsOffsets[13]);average+=texture2D(textureSampler,vUV+dsOffsets[14]);average+=texture2D(textureSampler,vUV+dsOffsets[15]);average/=16.0;gl_FragColor=average;}\n#endif\n#if defined(BRIGHT_PASS)\nuniform vec2 dsOffsets[4];uniform float brightThreshold;void main(void)\n{vec4 average=vec4(0.0,0.0,0.0,0.0);average=texture2D(textureSampler,vUV+vec2(dsOffsets[0].x,dsOffsets[0].y));average+=texture2D(textureSampler,vUV+vec2(dsOffsets[1].x,dsOffsets[1].y));average+=texture2D(textureSampler,vUV+vec2(dsOffsets[2].x,dsOffsets[2].y));average+=texture2D(textureSampler,vUV+vec2(dsOffsets[3].x,dsOffsets[3].y));average*=0.25;float luminance=length(average.rgb);if (luminanceshadowPixelDepth)\naccumFog+=sunColor*computeScattering(dot(rayDirection,sunDirection));currentPosition+=stepL;}\naccumFog/=NB_STEPS;vec3 color=accumFog*scatteringPower;gl_FragColor=vec4(color*exp(color) ,1.0);}\n#endif\n#if defined(VLSMERGE)\nuniform sampler2D originalSampler;void main(void)\n{gl_FragColor=texture2D(originalSampler,vUV)+texture2D(textureSampler,vUV);}\n#endif\n#if defined(LUMINANCE)\nuniform vec2 lumOffsets[4];void main()\n{float average=0.0;vec4 color=vec4(0.0);float maximum=-1e20;vec3 weight=vec3(0.299,0.587,0.114);for (int i=0; i<4; i++)\n{color=texture2D(textureSampler,vUV+ lumOffsets[i]);float GreyValue=dot(color.rgb,vec3(0.33,0.33,0.33));\n#ifdef WEIGHTED_AVERAGE\nfloat GreyValue=dot(color.rgb,weight);\n#endif\n#ifdef BRIGHTNESS\nfloat GreyValue=max(color.r,max(color.g,color.b));\n#endif\n#ifdef HSL_COMPONENT\nfloat GreyValue=0.5*(max(color.r,max(color.g,color.b))+min(color.r,min(color.g,color.b)));\n#endif\n#ifdef MAGNITUDE\nfloat GreyValue=length(color.rgb);\n#endif\nmaximum=max(maximum,GreyValue);average+=(0.25*log(1e-5+GreyValue));}\naverage=exp(average);gl_FragColor=vec4(average,maximum,0.0,1.0);}\n#endif\n#if defined(LUMINANCE_DOWN_SAMPLE)\nuniform vec2 dsOffsets[9];uniform float halfDestPixelSize;\n#ifdef FINAL_DOWN_SAMPLER\n#include\n#endif\nvoid main()\n{vec4 color=vec4(0.0);float average=0.0;for (int i=0; i<9; i++)\n{color=texture2D(textureSampler,vUV+vec2(halfDestPixelSize,halfDestPixelSize)+dsOffsets[i]);average+=color.r;}\naverage/=9.0;\n#ifdef FINAL_DOWN_SAMPLER\ngl_FragColor=pack(average);\n#else\ngl_FragColor=vec4(average,average,0.0,1.0);\n#endif\n}\n#endif\n#if defined(HDR)\nuniform sampler2D textureAdderSampler;uniform float averageLuminance;void main()\n{vec4 color=texture2D(textureAdderSampler,vUV);\n#ifndef AUTO_EXPOSURE\nvec4 adjustedColor=color/averageLuminance;color=adjustedColor;color.a=1.0;\n#endif\ngl_FragColor=color;}\n#endif\n#if defined(LENS_FLARE)\n#define GHOSTS 3\nuniform sampler2D lensColorSampler;uniform float strength;uniform float ghostDispersal;uniform float haloWidth;uniform vec2 resolution;uniform float distortionStrength;float hash(vec2 p)\n{float h=dot(p,vec2(127.1,311.7));return -1.0+2.0*fract(sin(h)*43758.5453123);}\nfloat noise(in vec2 p)\n{vec2 i=floor(p);vec2 f=fract(p);vec2 u=f*f*(3.0-2.0*f);return mix(mix(hash(i+vec2(0.0,0.0)),\nhash(i+vec2(1.0,0.0)),u.x),\nmix(hash(i+vec2(0.0,1.0)),\nhash(i+vec2(1.0,1.0)),u.x),u.y);}\nfloat fbm(vec2 p)\n{float f=0.0;f+=0.5000*noise(p); p*=2.02;f+=0.2500*noise(p); p*=2.03;f+=0.1250*noise(p); p*=2.01;f+=0.0625*noise(p); p*=2.04;f/=0.9375;return f;}\nvec3 pattern(vec2 uv)\n{vec2 p=-1.0+2.0*uv;float p2=dot(p,p);float f=fbm(vec2(15.0*p2))/2.0;float r=0.2+0.6*sin(12.5*length(uv-vec2(0.5)));float g=0.2+0.6*sin(20.5*length(uv-vec2(0.5)));float b=0.2+0.6*sin(17.2*length(uv-vec2(0.5)));return (1.0-f)*vec3(r,g,b);}\nfloat luminance(vec3 color)\n{return dot(color.rgb,vec3(0.2126,0.7152,0.0722));}\nvec4 textureDistorted(sampler2D tex,vec2 texcoord,vec2 direction,vec3 distortion)\n{return vec4(\ntexture2D(tex,texcoord+direction*distortion.r).r,\ntexture2D(tex,texcoord+direction*distortion.g).g,\ntexture2D(tex,texcoord+direction*distortion.b).b,\n1.0\n);}\nvoid main(void)\n{vec2 uv=-vUV+vec2(1.0);vec2 ghostDir=(vec2(0.5)-uv)*ghostDispersal;vec2 texelSize=1.0/resolution;vec3 distortion=vec3(-texelSize.x*distortionStrength,0.0,texelSize.x*distortionStrength);vec4 result=vec4(0.0);float ghostIndice=1.0;for (int i=0; i=nSamples)\nbreak;vec2 offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);result+=texture2D(textureSampler,offset1);}\ngl_FragColor=result/float(nSamples);}\n#endif\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const standardPixelShader = { name, shader };\n","import { __decorate } from \"../../../tslib.es6.js\";\nimport { serialize, serializeAsTexture } from \"../../../Misc/decorators.js\";\nimport { SerializationHelper } from \"../../../Misc/decorators.serialization.js\";\nimport { Logger } from \"../../../Misc/logger.js\";\nimport { Vector2, Vector3, Matrix, Vector4 } from \"../../../Maths/math.vector.js\";\nimport { Clamp } from \"../../../Maths/math.scalar.functions.js\";\nimport { Texture } from \"../../../Materials/Textures/texture.js\";\nimport { PostProcess } from \"../../../PostProcesses/postProcess.js\";\nimport { PostProcessRenderPipeline } from \"../../../PostProcesses/RenderPipeline/postProcessRenderPipeline.js\";\nimport { PostProcessRenderEffect } from \"../../../PostProcesses/RenderPipeline/postProcessRenderEffect.js\";\nimport { BlurPostProcess } from \"../../../PostProcesses/blurPostProcess.js\";\nimport { FxaaPostProcess } from \"../../../PostProcesses/fxaaPostProcess.js\";\n\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { MotionBlurPostProcess } from \"../../motionBlurPostProcess.js\";\nimport { ScreenSpaceReflectionPostProcess } from \"../../screenSpaceReflectionPostProcess.js\";\nimport \"../../../PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js\";\nimport \"../../../Shaders/standard.fragment.js\";\n/**\n * Standard rendering pipeline\n * Default pipeline should be used going forward but the standard pipeline will be kept for backwards compatibility.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/standardRenderingPipeline\n */\nexport class StandardRenderingPipeline extends PostProcessRenderPipeline {\n /**\n * Gets the overall exposure used by the pipeline\n */\n get exposure() {\n return this._fixedExposure;\n }\n /**\n * Sets the overall exposure used by the pipeline\n */\n set exposure(value) {\n this._fixedExposure = value;\n this._currentExposure = value;\n }\n /**\n * Gets whether or not the exposure of the overall pipeline should be automatically adjusted by the HDR post-process\n */\n get hdrAutoExposure() {\n return this._hdrAutoExposure;\n }\n /**\n * Sets whether or not the exposure of the overall pipeline should be automatically adjusted by the HDR post-process\n */\n set hdrAutoExposure(value) {\n this._hdrAutoExposure = value;\n if (this.hdrPostProcess) {\n const defines = [\"#define HDR\"];\n if (value) {\n defines.push(\"#define AUTO_EXPOSURE\");\n }\n this.hdrPostProcess.updateEffect(defines.join(\"\\n\"));\n }\n }\n /**\n * Gets how much the image is blurred by the movement while using the motion blur post-process\n */\n get motionStrength() {\n return this._motionStrength;\n }\n /**\n * Sets how much the image is blurred by the movement while using the motion blur post-process\n */\n set motionStrength(strength) {\n this._motionStrength = strength;\n if (this._isObjectBasedMotionBlur && this.motionBlurPostProcess) {\n this.motionBlurPostProcess.motionStrength = strength;\n }\n }\n /**\n * Gets whether or not the motion blur post-process is object based or screen based.\n */\n get objectBasedMotionBlur() {\n return this._isObjectBasedMotionBlur;\n }\n /**\n * Sets whether or not the motion blur post-process should be object based or screen based\n */\n set objectBasedMotionBlur(value) {\n const shouldRebuild = this._isObjectBasedMotionBlur !== value;\n this._isObjectBasedMotionBlur = value;\n if (shouldRebuild) {\n this._buildPipeline();\n }\n }\n /**\n * @ignore\n * Specifies if the bloom pipeline is enabled\n */\n get BloomEnabled() {\n return this._bloomEnabled;\n }\n set BloomEnabled(enabled) {\n if (this._bloomEnabled === enabled) {\n return;\n }\n this._bloomEnabled = enabled;\n this._buildPipeline();\n }\n /**\n * @ignore\n * Specifies if the depth of field pipeline is enabled\n */\n get DepthOfFieldEnabled() {\n return this._depthOfFieldEnabled;\n }\n set DepthOfFieldEnabled(enabled) {\n if (this._depthOfFieldEnabled === enabled) {\n return;\n }\n this._depthOfFieldEnabled = enabled;\n this._buildPipeline();\n }\n /**\n * @ignore\n * Specifies if the lens flare pipeline is enabled\n */\n get LensFlareEnabled() {\n return this._lensFlareEnabled;\n }\n set LensFlareEnabled(enabled) {\n if (this._lensFlareEnabled === enabled) {\n return;\n }\n this._lensFlareEnabled = enabled;\n this._buildPipeline();\n }\n /**\n * @ignore\n * Specifies if the HDR pipeline is enabled\n */\n get HDREnabled() {\n return this._hdrEnabled;\n }\n set HDREnabled(enabled) {\n if (this._hdrEnabled === enabled) {\n return;\n }\n this._hdrEnabled = enabled;\n this._buildPipeline();\n }\n /**\n * @ignore\n * Specifies if the volumetric lights scattering effect is enabled\n */\n get VLSEnabled() {\n return this._vlsEnabled;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n set VLSEnabled(enabled) {\n if (this._vlsEnabled === enabled) {\n return;\n }\n if (enabled) {\n const geometry = this._scene.enableGeometryBufferRenderer();\n if (!geometry) {\n Logger.Warn(\"Geometry renderer is not supported, cannot create volumetric lights in Standard Rendering Pipeline\");\n return;\n }\n }\n this._vlsEnabled = enabled;\n this._buildPipeline();\n }\n /**\n * @ignore\n * Specifies if the motion blur effect is enabled\n */\n get MotionBlurEnabled() {\n return this._motionBlurEnabled;\n }\n set MotionBlurEnabled(enabled) {\n if (this._motionBlurEnabled === enabled) {\n return;\n }\n this._motionBlurEnabled = enabled;\n this._buildPipeline();\n }\n /**\n * Specifies if anti-aliasing is enabled\n */\n get fxaaEnabled() {\n return this._fxaaEnabled;\n }\n set fxaaEnabled(enabled) {\n if (this._fxaaEnabled === enabled) {\n return;\n }\n this._fxaaEnabled = enabled;\n this._buildPipeline();\n }\n /**\n * Specifies if screen space reflections are enabled.\n */\n get screenSpaceReflectionsEnabled() {\n return this._screenSpaceReflectionsEnabled;\n }\n set screenSpaceReflectionsEnabled(enabled) {\n if (this._screenSpaceReflectionsEnabled === enabled) {\n return;\n }\n this._screenSpaceReflectionsEnabled = enabled;\n this._buildPipeline();\n }\n /**\n * Specifies the number of steps used to calculate the volumetric lights\n * Typically in interval [50, 200]\n */\n get volumetricLightStepsCount() {\n return this._volumetricLightStepsCount;\n }\n set volumetricLightStepsCount(count) {\n if (this.volumetricLightPostProcess) {\n this.volumetricLightPostProcess.updateEffect(\"#define VLS\\n#define NB_STEPS \" + count.toFixed(1));\n }\n this._volumetricLightStepsCount = count;\n }\n /**\n * Specifies the number of samples used for the motion blur effect\n * Typically in interval [16, 64]\n */\n get motionBlurSamples() {\n return this._motionBlurSamples;\n }\n set motionBlurSamples(samples) {\n if (this.motionBlurPostProcess) {\n if (this._isObjectBasedMotionBlur) {\n this.motionBlurPostProcess.motionBlurSamples = samples;\n }\n else {\n this.motionBlurPostProcess.updateEffect(\"#define MOTION_BLUR\\n#define MAX_MOTION_SAMPLES \" + samples.toFixed(1));\n }\n }\n this._motionBlurSamples = samples;\n }\n /**\n * Specifies MSAA sample count, setting this to 4 will provide 4x anti aliasing. (default: 1)\n */\n get samples() {\n return this._samples;\n }\n set samples(sampleCount) {\n if (this._samples === sampleCount) {\n return;\n }\n this._samples = sampleCount;\n this._buildPipeline();\n }\n /**\n * Default pipeline should be used going forward but the standard pipeline will be kept for backwards compatibility.\n * @constructor\n * @param name The rendering pipeline name\n * @param scene The scene linked to this pipeline\n * @param ratio The size of the postprocesses (0.5 means that your postprocess will have a width = canvas.width 0.5 and a height = canvas.height 0.5)\n * @param originalPostProcess the custom original color post-process. Must be \"reusable\". Can be null.\n * @param cameras The array of cameras that the rendering pipeline will be attached to\n */\n constructor(name, scene, ratio, originalPostProcess = null, cameras) {\n super(scene.getEngine(), name);\n /**\n * Post-process used to down scale an image x4\n */\n this.downSampleX4PostProcess = null;\n /**\n * Post-process used to calculate the illuminated surfaces controlled by a threshold\n */\n this.brightPassPostProcess = null;\n /**\n * Post-process array storing all the horizontal blur post-processes used by the pipeline\n */\n this.blurHPostProcesses = [];\n /**\n * Post-process array storing all the vertical blur post-processes used by the pipeline\n */\n this.blurVPostProcesses = [];\n /**\n * Post-process used to add colors of 2 textures (typically brightness + real scene color)\n */\n this.textureAdderPostProcess = null;\n /**\n * Post-process used to create volumetric lighting effect\n */\n this.volumetricLightPostProcess = null;\n /**\n * Post-process used to smooth the previous volumetric light post-process on the X axis\n */\n this.volumetricLightSmoothXPostProcess = null;\n /**\n * Post-process used to smooth the previous volumetric light post-process on the Y axis\n */\n this.volumetricLightSmoothYPostProcess = null;\n /**\n * Post-process used to merge the volumetric light effect and the real scene color\n */\n this.volumetricLightMergePostProces = null;\n /**\n * Post-process used to store the final volumetric light post-process (attach/detach for debug purpose)\n */\n this.volumetricLightFinalPostProcess = null;\n /**\n * Base post-process used to calculate the average luminance of the final image for HDR\n */\n this.luminancePostProcess = null;\n /**\n * Post-processes used to create down sample post-processes in order to get\n * the average luminance of the final image for HDR\n * Array of length \"StandardRenderingPipeline.LuminanceSteps\"\n */\n this.luminanceDownSamplePostProcesses = [];\n /**\n * Post-process used to create a HDR effect (light adaptation)\n */\n this.hdrPostProcess = null;\n /**\n * Post-process used to store the final texture adder post-process (attach/detach for debug purpose)\n */\n this.textureAdderFinalPostProcess = null;\n /**\n * Post-process used to store the final lens flare post-process (attach/detach for debug purpose)\n */\n this.lensFlareFinalPostProcess = null;\n /**\n * Post-process used to merge the final HDR post-process and the real scene color\n */\n this.hdrFinalPostProcess = null;\n /**\n * Post-process used to create a lens flare effect\n */\n this.lensFlarePostProcess = null;\n /**\n * Post-process that merges the result of the lens flare post-process and the real scene color\n */\n this.lensFlareComposePostProcess = null;\n /**\n * Post-process used to create a motion blur effect\n */\n this.motionBlurPostProcess = null;\n /**\n * Post-process used to create a depth of field effect\n */\n this.depthOfFieldPostProcess = null;\n /**\n * The Fast Approximate Anti-Aliasing post process which attempts to remove aliasing from an image.\n */\n this.fxaaPostProcess = null;\n /**\n * Post-process used to simulate realtime reflections using the screen space and geometry renderer.\n */\n this.screenSpaceReflectionPostProcess = null;\n // Values\n /**\n * Represents the brightness threshold in order to configure the illuminated surfaces\n */\n this.brightThreshold = 1.0;\n /**\n * Configures the blur intensity used for surexposed surfaces are highlighted surfaces (light halo)\n */\n this.blurWidth = 512.0;\n /**\n * Sets if the blur for highlighted surfaces must be only horizontal\n */\n this.horizontalBlur = false;\n /**\n * Texture used typically to simulate \"dirty\" on camera lens\n */\n this.lensTexture = null;\n /**\n * Represents the offset coefficient based on Rayleigh principle. Typically in interval [-0.2, 0.2]\n */\n this.volumetricLightCoefficient = 0.2;\n /**\n * The overall power of volumetric lights, typically in interval [0, 10] maximum\n */\n this.volumetricLightPower = 4.0;\n /**\n * Used the set the blur intensity to smooth the volumetric lights\n */\n this.volumetricLightBlurScale = 64.0;\n /**\n * Light (spot or directional) used to generate the volumetric lights rays\n * The source light must have a shadow generate so the pipeline can get its\n * depth map\n */\n this.sourceLight = null;\n /**\n * For eye adaptation, represents the minimum luminance the eye can see\n */\n this.hdrMinimumLuminance = 1.0;\n /**\n * For eye adaptation, represents the decrease luminance speed\n */\n this.hdrDecreaseRate = 0.5;\n /**\n * For eye adaptation, represents the increase luminance speed\n */\n this.hdrIncreaseRate = 0.5;\n /**\n * Lens color texture used by the lens flare effect. Mandatory if lens flare effect enabled\n */\n this.lensColorTexture = null;\n /**\n * The overall strength for the lens flare effect\n */\n this.lensFlareStrength = 20.0;\n /**\n * Dispersion coefficient for lens flare ghosts\n */\n this.lensFlareGhostDispersal = 1.4;\n /**\n * Main lens flare halo width\n */\n this.lensFlareHaloWidth = 0.7;\n /**\n * Based on the lens distortion effect, defines how much the lens flare result\n * is distorted\n */\n this.lensFlareDistortionStrength = 16.0;\n /**\n * Configures the blur intensity used for for lens flare (halo)\n */\n this.lensFlareBlurWidth = 512.0;\n /**\n * Lens star texture must be used to simulate rays on the flares and is available\n * in the documentation\n */\n this.lensStarTexture = null;\n /**\n * As the \"lensTexture\" (can be the same texture or different), it is used to apply the lens\n * flare effect by taking account of the dirt texture\n */\n this.lensFlareDirtTexture = null;\n /**\n * Represents the focal length for the depth of field effect\n */\n this.depthOfFieldDistance = 10.0;\n /**\n * Represents the blur intensity for the blurred part of the depth of field effect\n */\n this.depthOfFieldBlurWidth = 64.0;\n /**\n * List of animations for the pipeline (IAnimatable implementation)\n */\n this.animations = [];\n this._currentDepthOfFieldSource = null;\n this._fixedExposure = 1.0;\n this._currentExposure = 1.0;\n this._hdrAutoExposure = false;\n this._hdrCurrentLuminance = 1.0;\n this._motionStrength = 1.0;\n this._isObjectBasedMotionBlur = false;\n this._camerasToBeAttached = [];\n // Getters and setters\n this._bloomEnabled = false;\n this._depthOfFieldEnabled = false;\n this._vlsEnabled = false;\n this._lensFlareEnabled = false;\n this._hdrEnabled = false;\n this._motionBlurEnabled = false;\n this._fxaaEnabled = false;\n this._screenSpaceReflectionsEnabled = false;\n this._motionBlurSamples = 64.0;\n this._volumetricLightStepsCount = 50.0;\n this._samples = 1;\n this._cameras = cameras || scene.cameras;\n this._cameras = this._cameras.slice();\n this._camerasToBeAttached = this._cameras.slice();\n // Initialize\n this._scene = scene;\n this._basePostProcess = originalPostProcess;\n this._ratio = ratio;\n // Misc\n this._floatTextureType = scene.getEngine().getCaps().textureFloatRender ? 1 : 2;\n // Finish\n scene.postProcessRenderPipelineManager.addPipeline(this);\n this._buildPipeline();\n }\n _buildPipeline() {\n const ratio = this._ratio;\n const scene = this._scene;\n this._disposePostProcesses();\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n // get back cameras to be used to reattach pipeline\n this._cameras = this._camerasToBeAttached.slice();\n }\n this._reset();\n // Create pass post-process\n if (this._screenSpaceReflectionsEnabled) {\n this.screenSpaceReflectionPostProcess = new ScreenSpaceReflectionPostProcess(\"HDRPass\", scene, ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, this._floatTextureType);\n this.screenSpaceReflectionPostProcess.onApplyObservable.add(() => {\n this._currentDepthOfFieldSource = this.screenSpaceReflectionPostProcess;\n });\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRScreenSpaceReflections\", () => this.screenSpaceReflectionPostProcess, true));\n }\n if (!this._basePostProcess) {\n this.originalPostProcess = new PostProcess(\"HDRPass\", \"standard\", [], [], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define PASS_POST_PROCESS\", this._floatTextureType);\n }\n else {\n this.originalPostProcess = this._basePostProcess;\n }\n this.originalPostProcess.autoClear = !this.screenSpaceReflectionPostProcess;\n this.originalPostProcess.onApplyObservable.add(() => {\n this._currentDepthOfFieldSource = this.originalPostProcess;\n });\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRPassPostProcess\", () => this.originalPostProcess, true));\n if (this._bloomEnabled) {\n // Create down sample X4 post-process\n this._createDownSampleX4PostProcess(scene, ratio / 4);\n // Create bright pass post-process\n this._createBrightPassPostProcess(scene, ratio / 4);\n // Create gaussian blur post-processes (down sampling blurs)\n this._createBlurPostProcesses(scene, ratio / 4, 1);\n // Create texture adder post-process\n this._createTextureAdderPostProcess(scene, ratio);\n // Create depth-of-field source post-process\n this.textureAdderFinalPostProcess = new PostProcess(\"HDRDepthOfFieldSource\", \"standard\", [], [], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define PASS_POST_PROCESS\", 0);\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRBaseDepthOfFieldSource\", () => {\n return this.textureAdderFinalPostProcess;\n }, true));\n }\n if (this._vlsEnabled) {\n // Create volumetric light\n this._createVolumetricLightPostProcess(scene, ratio);\n // Create volumetric light final post-process\n this.volumetricLightFinalPostProcess = new PostProcess(\"HDRVLSFinal\", \"standard\", [], [], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define PASS_POST_PROCESS\", 0);\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRVLSFinal\", () => {\n return this.volumetricLightFinalPostProcess;\n }, true));\n }\n if (this._lensFlareEnabled) {\n // Create lens flare post-process\n this._createLensFlarePostProcess(scene, ratio);\n // Create depth-of-field source post-process post lens-flare and disable it now\n this.lensFlareFinalPostProcess = new PostProcess(\"HDRPostLensFlareDepthOfFieldSource\", \"standard\", [], [], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define PASS_POST_PROCESS\", 0);\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRPostLensFlareDepthOfFieldSource\", () => {\n return this.lensFlareFinalPostProcess;\n }, true));\n }\n if (this._hdrEnabled) {\n // Create luminance\n this._createLuminancePostProcesses(scene, this._floatTextureType);\n // Create HDR\n this._createHdrPostProcess(scene, ratio);\n // Create depth-of-field source post-process post hdr and disable it now\n this.hdrFinalPostProcess = new PostProcess(\"HDRPostHDReDepthOfFieldSource\", \"standard\", [], [], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define PASS_POST_PROCESS\", 0);\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRPostHDReDepthOfFieldSource\", () => {\n return this.hdrFinalPostProcess;\n }, true));\n }\n if (this._depthOfFieldEnabled) {\n // Create gaussian blur used by depth-of-field\n this._createBlurPostProcesses(scene, ratio / 2, 3, \"depthOfFieldBlurWidth\");\n // Create depth-of-field post-process\n this._createDepthOfFieldPostProcess(scene, ratio);\n }\n if (this._motionBlurEnabled) {\n // Create motion blur post-process\n this._createMotionBlurPostProcess(scene, ratio);\n }\n if (this._fxaaEnabled) {\n // Create fxaa post-process\n this.fxaaPostProcess = new FxaaPostProcess(\"fxaa\", 1.0, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, 0);\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRFxaa\", () => {\n return this.fxaaPostProcess;\n }, true));\n }\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\n }\n if (!this._enableMSAAOnFirstPostProcess(this._samples) && this._samples > 1) {\n Logger.Warn(\"MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0\");\n }\n }\n // Down Sample X4 Post-Process\n _createDownSampleX4PostProcess(scene, ratio) {\n const downSampleX4Offsets = new Array(32);\n this.downSampleX4PostProcess = new PostProcess(\"HDRDownSampleX4\", \"standard\", [\"dsOffsets\"], [], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define DOWN_SAMPLE_X4\", this._floatTextureType);\n this.downSampleX4PostProcess.onApply = (effect) => {\n let id = 0;\n const width = this.downSampleX4PostProcess.width;\n const height = this.downSampleX4PostProcess.height;\n for (let i = -2; i < 2; i++) {\n for (let j = -2; j < 2; j++) {\n downSampleX4Offsets[id] = (i + 0.5) * (1.0 / width);\n downSampleX4Offsets[id + 1] = (j + 0.5) * (1.0 / height);\n id += 2;\n }\n }\n effect.setArray2(\"dsOffsets\", downSampleX4Offsets);\n };\n // Add to pipeline\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRDownSampleX4\", () => {\n return this.downSampleX4PostProcess;\n }, true));\n }\n // Brightpass Post-Process\n _createBrightPassPostProcess(scene, ratio) {\n const brightOffsets = new Array(8);\n this.brightPassPostProcess = new PostProcess(\"HDRBrightPass\", \"standard\", [\"dsOffsets\", \"brightThreshold\"], [], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define BRIGHT_PASS\", this._floatTextureType);\n this.brightPassPostProcess.onApply = (effect) => {\n const sU = 1.0 / this.brightPassPostProcess.width;\n const sV = 1.0 / this.brightPassPostProcess.height;\n brightOffsets[0] = -0.5 * sU;\n brightOffsets[1] = 0.5 * sV;\n brightOffsets[2] = 0.5 * sU;\n brightOffsets[3] = 0.5 * sV;\n brightOffsets[4] = -0.5 * sU;\n brightOffsets[5] = -0.5 * sV;\n brightOffsets[6] = 0.5 * sU;\n brightOffsets[7] = -0.5 * sV;\n effect.setArray2(\"dsOffsets\", brightOffsets);\n effect.setFloat(\"brightThreshold\", this.brightThreshold);\n };\n // Add to pipeline\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRBrightPass\", () => {\n return this.brightPassPostProcess;\n }, true));\n }\n // Create blur H&V post-processes\n _createBlurPostProcesses(scene, ratio, indice, blurWidthKey = \"blurWidth\") {\n const engine = scene.getEngine();\n const blurX = new BlurPostProcess(\"HDRBlurH\" + \"_\" + indice, new Vector2(1, 0), this[blurWidthKey], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, this._floatTextureType);\n const blurY = new BlurPostProcess(\"HDRBlurV\" + \"_\" + indice, new Vector2(0, 1), this[blurWidthKey], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, this._floatTextureType);\n blurX.onActivateObservable.add(() => {\n const dw = blurX.width / engine.getRenderWidth();\n blurX.kernel = this[blurWidthKey] * dw;\n });\n blurY.onActivateObservable.add(() => {\n const dw = blurY.height / engine.getRenderHeight();\n blurY.kernel = this.horizontalBlur ? 64 * dw : this[blurWidthKey] * dw;\n });\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRBlurH\" + indice, () => {\n return blurX;\n }, true));\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRBlurV\" + indice, () => {\n return blurY;\n }, true));\n this.blurHPostProcesses.push(blurX);\n this.blurVPostProcesses.push(blurY);\n }\n // Create texture adder post-process\n _createTextureAdderPostProcess(scene, ratio) {\n this.textureAdderPostProcess = new PostProcess(\"HDRTextureAdder\", \"standard\", [\"exposure\"], [\"otherSampler\", \"lensSampler\"], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define TEXTURE_ADDER\", this._floatTextureType);\n this.textureAdderPostProcess.onApply = (effect) => {\n effect.setTextureFromPostProcess(\"otherSampler\", this._vlsEnabled ? this._currentDepthOfFieldSource : this.originalPostProcess);\n effect.setTexture(\"lensSampler\", this.lensTexture);\n effect.setFloat(\"exposure\", this._currentExposure);\n this._currentDepthOfFieldSource = this.textureAdderFinalPostProcess;\n };\n // Add to pipeline\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRTextureAdder\", () => {\n return this.textureAdderPostProcess;\n }, true));\n }\n _createVolumetricLightPostProcess(scene, ratio) {\n const geometryRenderer = scene.enableGeometryBufferRenderer();\n geometryRenderer.enablePosition = true;\n const geometry = geometryRenderer.getGBuffer();\n // Base post-process\n this.volumetricLightPostProcess = new PostProcess(\"HDRVLS\", \"standard\", [\"shadowViewProjection\", \"cameraPosition\", \"sunDirection\", \"sunColor\", \"scatteringCoefficient\", \"scatteringPower\", \"depthValues\"], [\"shadowMapSampler\", \"positionSampler\"], ratio / 8, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define VLS\\n#define NB_STEPS \" + this._volumetricLightStepsCount.toFixed(1));\n const depthValues = Vector2.Zero();\n this.volumetricLightPostProcess.onApply = (effect) => {\n if (this.sourceLight && this.sourceLight.getShadowGenerator() && this._scene.activeCamera) {\n const generator = this.sourceLight.getShadowGenerator();\n effect.setTexture(\"shadowMapSampler\", generator.getShadowMap());\n effect.setTexture(\"positionSampler\", geometry.textures[2]);\n effect.setColor3(\"sunColor\", this.sourceLight.diffuse);\n effect.setVector3(\"sunDirection\", this.sourceLight.getShadowDirection());\n effect.setVector3(\"cameraPosition\", this._scene.activeCamera.globalPosition);\n effect.setMatrix(\"shadowViewProjection\", generator.getTransformMatrix());\n effect.setFloat(\"scatteringCoefficient\", this.volumetricLightCoefficient);\n effect.setFloat(\"scatteringPower\", this.volumetricLightPower);\n depthValues.x = this.sourceLight.getDepthMinZ(this._scene.activeCamera);\n depthValues.y = this.sourceLight.getDepthMaxZ(this._scene.activeCamera);\n effect.setVector2(\"depthValues\", depthValues);\n }\n };\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRVLS\", () => {\n return this.volumetricLightPostProcess;\n }, true));\n // Smooth\n this._createBlurPostProcesses(scene, ratio / 4, 0, \"volumetricLightBlurScale\");\n // Merge\n this.volumetricLightMergePostProces = new PostProcess(\"HDRVLSMerge\", \"standard\", [], [\"originalSampler\"], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define VLSMERGE\");\n this.volumetricLightMergePostProces.onApply = (effect) => {\n effect.setTextureFromPostProcess(\"originalSampler\", this._bloomEnabled ? this.textureAdderFinalPostProcess : this.originalPostProcess);\n this._currentDepthOfFieldSource = this.volumetricLightFinalPostProcess;\n };\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRVLSMerge\", () => {\n return this.volumetricLightMergePostProces;\n }, true));\n }\n // Create luminance\n _createLuminancePostProcesses(scene, textureType) {\n // Create luminance\n let size = Math.pow(3, StandardRenderingPipeline.LuminanceSteps);\n this.luminancePostProcess = new PostProcess(\"HDRLuminance\", \"standard\", [\"lumOffsets\"], [], { width: size, height: size }, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define LUMINANCE\", textureType);\n const offsets = [];\n this.luminancePostProcess.onApply = (effect) => {\n const sU = 1.0 / this.luminancePostProcess.width;\n const sV = 1.0 / this.luminancePostProcess.height;\n offsets[0] = -0.5 * sU;\n offsets[1] = 0.5 * sV;\n offsets[2] = 0.5 * sU;\n offsets[3] = 0.5 * sV;\n offsets[4] = -0.5 * sU;\n offsets[5] = -0.5 * sV;\n offsets[6] = 0.5 * sU;\n offsets[7] = -0.5 * sV;\n effect.setArray2(\"lumOffsets\", offsets);\n };\n // Add to pipeline\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRLuminance\", () => {\n return this.luminancePostProcess;\n }, true));\n // Create down sample luminance\n for (let i = StandardRenderingPipeline.LuminanceSteps - 1; i >= 0; i--) {\n size = Math.pow(3, i);\n let defines = \"#define LUMINANCE_DOWN_SAMPLE\\n\";\n if (i === 0) {\n defines += \"#define FINAL_DOWN_SAMPLER\";\n }\n const postProcess = new PostProcess(\"HDRLuminanceDownSample\" + i, \"standard\", [\"dsOffsets\", \"halfDestPixelSize\"], [], { width: size, height: size }, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, defines, textureType);\n this.luminanceDownSamplePostProcesses.push(postProcess);\n }\n // Create callbacks and add effects\n let lastLuminance = this.luminancePostProcess;\n this.luminanceDownSamplePostProcesses.forEach((pp, index) => {\n const downSampleOffsets = new Array(18);\n pp.onApply = (effect) => {\n if (!lastLuminance) {\n return;\n }\n let id = 0;\n for (let x = -1; x < 2; x++) {\n for (let y = -1; y < 2; y++) {\n downSampleOffsets[id] = x / lastLuminance.width;\n downSampleOffsets[id + 1] = y / lastLuminance.height;\n id += 2;\n }\n }\n effect.setArray2(\"dsOffsets\", downSampleOffsets);\n effect.setFloat(\"halfDestPixelSize\", 0.5 / lastLuminance.width);\n if (index === this.luminanceDownSamplePostProcesses.length - 1) {\n lastLuminance = this.luminancePostProcess;\n }\n else {\n lastLuminance = pp;\n }\n };\n if (index === this.luminanceDownSamplePostProcesses.length - 1) {\n pp.onAfterRender = () => {\n const pixel = scene.getEngine().readPixels(0, 0, 1, 1);\n const bit_shift = new Vector4(1.0 / (255.0 * 255.0 * 255.0), 1.0 / (255.0 * 255.0), 1.0 / 255.0, 1.0);\n pixel.then((pixel) => {\n const data = new Uint8Array(pixel.buffer);\n this._hdrCurrentLuminance = (data[0] * bit_shift.x + data[1] * bit_shift.y + data[2] * bit_shift.z + data[3] * bit_shift.w) / 100.0;\n });\n };\n }\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRLuminanceDownSample\" + index, () => {\n return pp;\n }, true));\n });\n }\n // Create HDR post-process\n _createHdrPostProcess(scene, ratio) {\n const defines = [\"#define HDR\"];\n if (this._hdrAutoExposure) {\n defines.push(\"#define AUTO_EXPOSURE\");\n }\n this.hdrPostProcess = new PostProcess(\"HDR\", \"standard\", [\"averageLuminance\"], [\"textureAdderSampler\"], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, defines.join(\"\\n\"), 0);\n let outputLiminance = 1;\n let time = 0;\n let lastTime = 0;\n this.hdrPostProcess.onApply = (effect) => {\n effect.setTextureFromPostProcess(\"textureAdderSampler\", this._currentDepthOfFieldSource);\n time += scene.getEngine().getDeltaTime();\n if (outputLiminance < 0) {\n outputLiminance = this._hdrCurrentLuminance;\n }\n else {\n const dt = (lastTime - time) / 1000.0;\n if (this._hdrCurrentLuminance < outputLiminance + this.hdrDecreaseRate * dt) {\n outputLiminance += this.hdrDecreaseRate * dt;\n }\n else if (this._hdrCurrentLuminance > outputLiminance - this.hdrIncreaseRate * dt) {\n outputLiminance -= this.hdrIncreaseRate * dt;\n }\n else {\n outputLiminance = this._hdrCurrentLuminance;\n }\n }\n if (this.hdrAutoExposure) {\n this._currentExposure = this._fixedExposure / outputLiminance;\n }\n else {\n outputLiminance = Clamp(outputLiminance, this.hdrMinimumLuminance, 1e20);\n effect.setFloat(\"averageLuminance\", outputLiminance);\n }\n lastTime = time;\n this._currentDepthOfFieldSource = this.hdrFinalPostProcess;\n };\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDR\", () => {\n return this.hdrPostProcess;\n }, true));\n }\n // Create lens flare post-process\n _createLensFlarePostProcess(scene, ratio) {\n this.lensFlarePostProcess = new PostProcess(\"HDRLensFlare\", \"standard\", [\"strength\", \"ghostDispersal\", \"haloWidth\", \"resolution\", \"distortionStrength\"], [\"lensColorSampler\"], ratio / 2, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define LENS_FLARE\", 0);\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRLensFlare\", () => {\n return this.lensFlarePostProcess;\n }, true));\n this._createBlurPostProcesses(scene, ratio / 4, 2, \"lensFlareBlurWidth\");\n this.lensFlareComposePostProcess = new PostProcess(\"HDRLensFlareCompose\", \"standard\", [\"lensStarMatrix\"], [\"otherSampler\", \"lensDirtSampler\", \"lensStarSampler\"], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define LENS_FLARE_COMPOSE\", 0);\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRLensFlareCompose\", () => {\n return this.lensFlareComposePostProcess;\n }, true));\n const resolution = new Vector2(0, 0);\n // Lens flare\n this.lensFlarePostProcess.externalTextureSamplerBinding = true;\n this.lensFlarePostProcess.onApply = (effect) => {\n effect.setTextureFromPostProcess(\"textureSampler\", this._bloomEnabled ? this.blurHPostProcesses[0] : this.originalPostProcess);\n effect.setTexture(\"lensColorSampler\", this.lensColorTexture);\n effect.setFloat(\"strength\", this.lensFlareStrength);\n effect.setFloat(\"ghostDispersal\", this.lensFlareGhostDispersal);\n effect.setFloat(\"haloWidth\", this.lensFlareHaloWidth);\n // Shift\n resolution.x = this.lensFlarePostProcess.width;\n resolution.y = this.lensFlarePostProcess.height;\n effect.setVector2(\"resolution\", resolution);\n effect.setFloat(\"distortionStrength\", this.lensFlareDistortionStrength);\n };\n // Compose\n const scaleBias1 = Matrix.FromValues(2.0, 0.0, -1.0, 0.0, 0.0, 2.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0);\n const scaleBias2 = Matrix.FromValues(0.5, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0);\n this.lensFlareComposePostProcess.onApply = (effect) => {\n if (!this._scene.activeCamera) {\n return;\n }\n effect.setTextureFromPostProcess(\"otherSampler\", this.lensFlarePostProcess);\n effect.setTexture(\"lensDirtSampler\", this.lensFlareDirtTexture);\n effect.setTexture(\"lensStarSampler\", this.lensStarTexture);\n // Lens start rotation matrix\n const camerax = this._scene.activeCamera.getViewMatrix().getRow(0);\n const cameraz = this._scene.activeCamera.getViewMatrix().getRow(2);\n let camRot = Vector3.Dot(camerax.toVector3(), new Vector3(1.0, 0.0, 0.0)) + Vector3.Dot(cameraz.toVector3(), new Vector3(0.0, 0.0, 1.0));\n camRot *= 4.0;\n const starRotation = Matrix.FromValues(Math.cos(camRot) * 0.5, -Math.sin(camRot), 0.0, 0.0, Math.sin(camRot), Math.cos(camRot) * 0.5, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0);\n const lensStarMatrix = scaleBias2.multiply(starRotation).multiply(scaleBias1);\n effect.setMatrix(\"lensStarMatrix\", lensStarMatrix);\n this._currentDepthOfFieldSource = this.lensFlareFinalPostProcess;\n };\n }\n // Create depth-of-field post-process\n _createDepthOfFieldPostProcess(scene, ratio) {\n this.depthOfFieldPostProcess = new PostProcess(\"HDRDepthOfField\", \"standard\", [\"distance\"], [\"otherSampler\", \"depthSampler\"], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define DEPTH_OF_FIELD\", 0);\n this.depthOfFieldPostProcess.onApply = (effect) => {\n effect.setTextureFromPostProcess(\"otherSampler\", this._currentDepthOfFieldSource);\n effect.setTexture(\"depthSampler\", this._getDepthTexture());\n effect.setFloat(\"distance\", this.depthOfFieldDistance);\n };\n // Add to pipeline\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRDepthOfField\", () => {\n return this.depthOfFieldPostProcess;\n }, true));\n }\n // Create motion blur post-process\n _createMotionBlurPostProcess(scene, ratio) {\n if (this._isObjectBasedMotionBlur) {\n const mb = new MotionBlurPostProcess(\"HDRMotionBlur\", scene, ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, 0);\n mb.motionStrength = this.motionStrength;\n mb.motionBlurSamples = this.motionBlurSamples;\n this.motionBlurPostProcess = mb;\n }\n else {\n this.motionBlurPostProcess = new PostProcess(\"HDRMotionBlur\", \"standard\", [\"inverseViewProjection\", \"prevViewProjection\", \"screenSize\", \"motionScale\", \"motionStrength\"], [\"depthSampler\"], ratio, null, Texture.BILINEAR_SAMPLINGMODE, scene.getEngine(), false, \"#define MOTION_BLUR\\n#define MAX_MOTION_SAMPLES \" + this.motionBlurSamples.toFixed(1), 0);\n let motionScale = 0;\n let prevViewProjection = Matrix.Identity();\n const invViewProjection = Matrix.Identity();\n let viewProjection = Matrix.Identity();\n const screenSize = Vector2.Zero();\n this.motionBlurPostProcess.onApply = (effect) => {\n viewProjection = scene.getProjectionMatrix().multiply(scene.getViewMatrix());\n viewProjection.invertToRef(invViewProjection);\n effect.setMatrix(\"inverseViewProjection\", invViewProjection);\n effect.setMatrix(\"prevViewProjection\", prevViewProjection);\n prevViewProjection = viewProjection;\n screenSize.x = this.motionBlurPostProcess.width;\n screenSize.y = this.motionBlurPostProcess.height;\n effect.setVector2(\"screenSize\", screenSize);\n motionScale = scene.getEngine().getFps() / 60.0;\n effect.setFloat(\"motionScale\", motionScale);\n effect.setFloat(\"motionStrength\", this.motionStrength);\n effect.setTexture(\"depthSampler\", this._getDepthTexture());\n };\n }\n this.addEffect(new PostProcessRenderEffect(scene.getEngine(), \"HDRMotionBlur\", () => {\n return this.motionBlurPostProcess;\n }, true));\n }\n _getDepthTexture() {\n if (this._scene.getEngine().getCaps().drawBuffersExtension) {\n const renderer = this._scene.enableGeometryBufferRenderer();\n return renderer.getGBuffer().textures[0];\n }\n return this._scene.enableDepthRenderer().getDepthMap();\n }\n _disposePostProcesses() {\n for (let i = 0; i < this._cameras.length; i++) {\n const camera = this._cameras[i];\n if (this.originalPostProcess) {\n this.originalPostProcess.dispose(camera);\n }\n if (this.screenSpaceReflectionPostProcess) {\n this.screenSpaceReflectionPostProcess.dispose(camera);\n }\n if (this.downSampleX4PostProcess) {\n this.downSampleX4PostProcess.dispose(camera);\n }\n if (this.brightPassPostProcess) {\n this.brightPassPostProcess.dispose(camera);\n }\n if (this.textureAdderPostProcess) {\n this.textureAdderPostProcess.dispose(camera);\n }\n if (this.volumetricLightPostProcess) {\n this.volumetricLightPostProcess.dispose(camera);\n }\n if (this.volumetricLightSmoothXPostProcess) {\n this.volumetricLightSmoothXPostProcess.dispose(camera);\n }\n if (this.volumetricLightSmoothYPostProcess) {\n this.volumetricLightSmoothYPostProcess.dispose(camera);\n }\n if (this.volumetricLightMergePostProces) {\n this.volumetricLightMergePostProces.dispose(camera);\n }\n if (this.volumetricLightFinalPostProcess) {\n this.volumetricLightFinalPostProcess.dispose(camera);\n }\n if (this.lensFlarePostProcess) {\n this.lensFlarePostProcess.dispose(camera);\n }\n if (this.lensFlareComposePostProcess) {\n this.lensFlareComposePostProcess.dispose(camera);\n }\n for (let j = 0; j < this.luminanceDownSamplePostProcesses.length; j++) {\n this.luminanceDownSamplePostProcesses[j].dispose(camera);\n }\n if (this.luminancePostProcess) {\n this.luminancePostProcess.dispose(camera);\n }\n if (this.hdrPostProcess) {\n this.hdrPostProcess.dispose(camera);\n }\n if (this.hdrFinalPostProcess) {\n this.hdrFinalPostProcess.dispose(camera);\n }\n if (this.depthOfFieldPostProcess) {\n this.depthOfFieldPostProcess.dispose(camera);\n }\n if (this.motionBlurPostProcess) {\n this.motionBlurPostProcess.dispose(camera);\n }\n if (this.fxaaPostProcess) {\n this.fxaaPostProcess.dispose(camera);\n }\n for (let j = 0; j < this.blurHPostProcesses.length; j++) {\n this.blurHPostProcesses[j].dispose(camera);\n }\n for (let j = 0; j < this.blurVPostProcesses.length; j++) {\n this.blurVPostProcesses[j].dispose(camera);\n }\n }\n this.originalPostProcess = null;\n this.downSampleX4PostProcess = null;\n this.brightPassPostProcess = null;\n this.textureAdderPostProcess = null;\n this.textureAdderFinalPostProcess = null;\n this.volumetricLightPostProcess = null;\n this.volumetricLightSmoothXPostProcess = null;\n this.volumetricLightSmoothYPostProcess = null;\n this.volumetricLightMergePostProces = null;\n this.volumetricLightFinalPostProcess = null;\n this.lensFlarePostProcess = null;\n this.lensFlareComposePostProcess = null;\n this.luminancePostProcess = null;\n this.hdrPostProcess = null;\n this.hdrFinalPostProcess = null;\n this.depthOfFieldPostProcess = null;\n this.motionBlurPostProcess = null;\n this.fxaaPostProcess = null;\n this.screenSpaceReflectionPostProcess = null;\n this.luminanceDownSamplePostProcesses.length = 0;\n this.blurHPostProcesses.length = 0;\n this.blurVPostProcesses.length = 0;\n }\n /**\n * Dispose of the pipeline and stop all post processes\n */\n dispose() {\n this._disposePostProcesses();\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n super.dispose();\n }\n /**\n * Serialize the rendering pipeline (Used when exporting)\n * @returns the serialized object\n */\n serialize() {\n const serializationObject = SerializationHelper.Serialize(this);\n if (this.sourceLight) {\n serializationObject.sourceLightId = this.sourceLight.id;\n }\n if (this.screenSpaceReflectionPostProcess) {\n serializationObject.screenSpaceReflectionPostProcess = SerializationHelper.Serialize(this.screenSpaceReflectionPostProcess);\n }\n serializationObject.customType = \"StandardRenderingPipeline\";\n return serializationObject;\n }\n /**\n * Parse the serialized pipeline\n * @param source Source pipeline.\n * @param scene The scene to load the pipeline to.\n * @param rootUrl The URL of the serialized pipeline.\n * @returns An instantiated pipeline from the serialized object.\n */\n static Parse(source, scene, rootUrl) {\n const p = SerializationHelper.Parse(() => new StandardRenderingPipeline(source._name, scene, source._ratio), source, scene, rootUrl);\n if (source.sourceLightId) {\n p.sourceLight = scene.getLightById(source.sourceLightId);\n }\n if (source.screenSpaceReflectionPostProcess) {\n SerializationHelper.Parse(() => p.screenSpaceReflectionPostProcess, source.screenSpaceReflectionPostProcess, scene, rootUrl);\n }\n return p;\n }\n}\n/**\n * Luminance steps\n */\nStandardRenderingPipeline.LuminanceSteps = 6;\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"brightThreshold\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"blurWidth\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"horizontalBlur\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"exposure\", null);\n__decorate([\n serializeAsTexture(\"lensTexture\")\n], StandardRenderingPipeline.prototype, \"lensTexture\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"volumetricLightCoefficient\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"volumetricLightPower\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"volumetricLightBlurScale\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"hdrMinimumLuminance\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"hdrDecreaseRate\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"hdrIncreaseRate\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"hdrAutoExposure\", null);\n__decorate([\n serializeAsTexture(\"lensColorTexture\")\n], StandardRenderingPipeline.prototype, \"lensColorTexture\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"lensFlareStrength\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"lensFlareGhostDispersal\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"lensFlareHaloWidth\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"lensFlareDistortionStrength\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"lensFlareBlurWidth\", void 0);\n__decorate([\n serializeAsTexture(\"lensStarTexture\")\n], StandardRenderingPipeline.prototype, \"lensStarTexture\", void 0);\n__decorate([\n serializeAsTexture(\"lensFlareDirtTexture\")\n], StandardRenderingPipeline.prototype, \"lensFlareDirtTexture\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"depthOfFieldDistance\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"depthOfFieldBlurWidth\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"motionStrength\", null);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"objectBasedMotionBlur\", null);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"_ratio\", void 0);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"BloomEnabled\", null);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"DepthOfFieldEnabled\", null);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"LensFlareEnabled\", null);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"HDREnabled\", null);\n__decorate([\n serialize()\n // eslint-disable-next-line @typescript-eslint/naming-convention\n], StandardRenderingPipeline.prototype, \"VLSEnabled\", null);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"MotionBlurEnabled\", null);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"fxaaEnabled\", null);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"screenSpaceReflectionsEnabled\", null);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"volumetricLightStepsCount\", null);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"motionBlurSamples\", null);\n__decorate([\n serialize()\n], StandardRenderingPipeline.prototype, \"samples\", null);\nRegisterClass(\"BABYLON.StandardRenderingPipeline\", StandardRenderingPipeline);\n","\n/**\n * Contains all parameters needed for the prepass to perform\n * screen space reflections\n */\nexport class ScreenSpaceReflections2Configuration {\n /**\n * @param useScreenspaceDepth If the effect should use the screenspace depth texture instead of a linear one\n */\n constructor(useScreenspaceDepth = false) {\n /**\n * Is ssr enabled\n */\n this.enabled = false;\n /**\n * Name of the configuration\n */\n this.name = \"screenSpaceReflections2\";\n /**\n * Textures that should be present in the MRT for this effect to work\n */\n this.texturesRequired = [6, 3];\n this.texturesRequired.push(useScreenspaceDepth ? 10 : 5);\n }\n}\n","import { __decorate } from \"../../../tslib.es6.js\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { serialize } from \"../../../Misc/decorators.js\";\nimport { SerializationHelper } from \"../../../Misc/decorators.serialization.js\";\nimport { Vector3, Matrix, Quaternion, TmpVectors } from \"../../../Maths/math.vector.js\";\nimport { PostProcess } from \"../../postProcess.js\";\nimport { PostProcessRenderPipeline } from \"../postProcessRenderPipeline.js\";\nimport { PostProcessRenderEffect } from \"../postProcessRenderEffect.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { ScreenSpaceReflections2Configuration } from \"../../../Rendering/screenSpaceReflections2Configuration.js\";\nimport { GeometryBufferRenderer } from \"../../../Rendering/geometryBufferRenderer.js\";\n\nimport { DepthRenderer } from \"../../../Rendering/depthRenderer.js\";\nimport \"../postProcessRenderPipelineManagerSceneComponent.js\";\nconst trs = Matrix.Compose(new Vector3(0.5, 0.5, 0.5), Quaternion.Identity(), new Vector3(0.5, 0.5, 0.5));\nconst trsWebGPU = Matrix.Compose(new Vector3(0.5, 0.5, 1), Quaternion.Identity(), new Vector3(0.5, 0.5, 0));\n/**\n * Render pipeline to produce Screen Space Reflections (SSR) effect\n *\n * References:\n * Screen Space Ray Tracing:\n * - http://casual-effects.blogspot.com/2014/08/screen-space-ray-tracing.html\n * - https://sourceforge.net/p/g3d/code/HEAD/tree/G3D10/data-files/shader/screenSpaceRayTrace.glsl\n * - https://github.com/kode80/kode80SSR\n * SSR:\n * - general tips: https://sakibsaikia.github.io/graphics/2016/12/26/Screen-Space-Reflection-in-Killing-Floor-2.html\n * - computation of blur radius from roughness and distance: https://github.com/godotengine/godot/blob/master/servers/rendering/renderer_rd/shaders/effects/screen_space_reflection.glsl\n * - blur and usage of back depth buffer: https://github.com/kode80/kode80SSR\n */\nexport class SSRRenderingPipeline extends PostProcessRenderPipeline {\n /**\n * MSAA sample count, setting this to 4 will provide 4x anti aliasing. (default: 1)\n */\n set samples(sampleCount) {\n if (this._samples === sampleCount) {\n return;\n }\n this._samples = sampleCount;\n this._buildPipeline();\n }\n get samples() {\n return this._samples;\n }\n /**\n * Gets or sets the minimum value for one of the reflectivity component of the material to consider it for SSR (default: 0.04).\n * If all r/g/b components of the reflectivity is below or equal this value, the pixel will not be considered reflective and SSR won't be applied.\n */\n get reflectivityThreshold() {\n return this._reflectivityThreshold;\n }\n set reflectivityThreshold(threshold) {\n if (threshold === this._reflectivityThreshold) {\n return;\n }\n if ((threshold === 0 && this._reflectivityThreshold !== 0) || (threshold !== 0 && this._reflectivityThreshold === 0)) {\n this._reflectivityThreshold = threshold;\n this._buildPipeline();\n }\n else {\n this._reflectivityThreshold = threshold;\n }\n }\n /**\n * Gets or sets the downsample factor used to reduce the size of the texture used to compute the SSR contribution (default: 0).\n * Use 0 to render the SSR contribution at full resolution, 1 to render at half resolution, 2 to render at 1/3 resolution, etc.\n * Note that it is used only when blurring is enabled (blurDispersionStrength \\> 0), because in that mode the SSR contribution is generated in a separate texture.\n */\n get ssrDownsample() {\n return this._ssrDownsample;\n }\n set ssrDownsample(downsample) {\n if (downsample === this._ssrDownsample) {\n return;\n }\n this._ssrDownsample = downsample;\n this._buildPipeline();\n }\n /**\n * Gets or sets the blur dispersion strength. Set this value to 0 to disable blurring (default: 0.05)\n * The reflections are blurred based on the roughness of the surface and the distance between the pixel shaded and the reflected pixel: the higher the distance the more blurry the reflection is.\n * blurDispersionStrength allows to increase or decrease this effect.\n */\n get blurDispersionStrength() {\n return this._blurDispersionStrength;\n }\n set blurDispersionStrength(strength) {\n if (strength === this._blurDispersionStrength) {\n return;\n }\n const rebuild = (strength === 0 && this._blurDispersionStrength !== 0) || (strength !== 0 && this._blurDispersionStrength === 0);\n this._blurDispersionStrength = strength;\n if (rebuild) {\n this._buildPipeline();\n }\n }\n _useBlur() {\n return this._blurDispersionStrength > 0;\n }\n /**\n * Gets or sets the downsample factor used to reduce the size of the textures used to blur the reflection effect (default: 0).\n * Use 0 to blur at full resolution, 1 to render at half resolution, 2 to render at 1/3 resolution, etc.\n */\n get blurDownsample() {\n return this._blurDownsample;\n }\n set blurDownsample(downsample) {\n if (downsample === this._blurDownsample) {\n return;\n }\n this._blurDownsample = downsample;\n this._buildPipeline();\n }\n /**\n * Gets or sets whether or not smoothing reflections is enabled (default: false)\n * Enabling smoothing will require more GPU power.\n * Note that this setting has no effect if step = 1: it's only used if step \\> 1.\n */\n get enableSmoothReflections() {\n return this._enableSmoothReflections;\n }\n set enableSmoothReflections(enabled) {\n if (enabled === this._enableSmoothReflections) {\n return;\n }\n this._enableSmoothReflections = enabled;\n this._updateEffectDefines();\n }\n /**\n * Gets or sets the environment cube texture used to define the reflection when the reflected rays of SSR leave the view space or when the maxDistance/maxSteps is reached.\n */\n get environmentTexture() {\n return this._environmentTexture;\n }\n set environmentTexture(texture) {\n this._environmentTexture = texture;\n this._updateEffectDefines();\n }\n /**\n * Gets or sets the boolean defining if the environment texture is a standard cubemap (false) or a probe (true). Default value is false.\n * Note: a probe cube texture is treated differently than an ordinary cube texture because the Y axis is reversed.\n */\n get environmentTextureIsProbe() {\n return this._environmentTextureIsProbe;\n }\n set environmentTextureIsProbe(isProbe) {\n this._environmentTextureIsProbe = isProbe;\n this._updateEffectDefines();\n }\n /**\n * Gets or sets a boolean indicating if the reflections should be attenuated at the screen borders (default: true).\n */\n get attenuateScreenBorders() {\n return this._attenuateScreenBorders;\n }\n set attenuateScreenBorders(attenuate) {\n if (this._attenuateScreenBorders === attenuate) {\n return;\n }\n this._attenuateScreenBorders = attenuate;\n this._updateEffectDefines();\n }\n /**\n * Gets or sets a boolean indicating if the reflections should be attenuated according to the distance of the intersection (default: true).\n */\n get attenuateIntersectionDistance() {\n return this._attenuateIntersectionDistance;\n }\n set attenuateIntersectionDistance(attenuate) {\n if (this._attenuateIntersectionDistance === attenuate) {\n return;\n }\n this._attenuateIntersectionDistance = attenuate;\n this._updateEffectDefines();\n }\n /**\n * Gets or sets a boolean indicating if the reflections should be attenuated according to the number of iterations performed to find the intersection (default: true).\n */\n get attenuateIntersectionIterations() {\n return this._attenuateIntersectionIterations;\n }\n set attenuateIntersectionIterations(attenuate) {\n if (this._attenuateIntersectionIterations === attenuate) {\n return;\n }\n this._attenuateIntersectionIterations = attenuate;\n this._updateEffectDefines();\n }\n /**\n * Gets or sets a boolean indicating if the reflections should be attenuated when the reflection ray is facing the camera (the view direction) (default: false).\n */\n get attenuateFacingCamera() {\n return this._attenuateFacingCamera;\n }\n set attenuateFacingCamera(attenuate) {\n if (this._attenuateFacingCamera === attenuate) {\n return;\n }\n this._attenuateFacingCamera = attenuate;\n this._updateEffectDefines();\n }\n /**\n * Gets or sets a boolean indicating if the backface reflections should be attenuated (default: false).\n */\n get attenuateBackfaceReflection() {\n return this._attenuateBackfaceReflection;\n }\n set attenuateBackfaceReflection(attenuate) {\n if (this._attenuateBackfaceReflection === attenuate) {\n return;\n }\n this._attenuateBackfaceReflection = attenuate;\n this._updateEffectDefines();\n }\n /**\n * Gets or sets a boolean indicating if the ray should be clipped to the frustum (default: true).\n * You can try to set this parameter to false to save some performances: it may produce some artefacts in some cases, but generally they won't really be visible\n */\n get clipToFrustum() {\n return this._clipToFrustum;\n }\n set clipToFrustum(clip) {\n if (this._clipToFrustum === clip) {\n return;\n }\n this._clipToFrustum = clip;\n this._updateEffectDefines();\n }\n /**\n * Gets or sets a boolean indicating whether the blending between the current color pixel and the reflection color should be done with a Fresnel coefficient (default: false).\n * It is more physically accurate to use the Fresnel coefficient (otherwise it uses the reflectivity of the material for blending), but it is also more expensive when you use blur (when blurDispersionStrength \\> 0).\n */\n get useFresnel() {\n return this._useFresnel;\n }\n set useFresnel(fresnel) {\n if (this._useFresnel === fresnel) {\n return;\n }\n this._useFresnel = fresnel;\n this._buildPipeline();\n }\n /**\n * Gets or sets a boolean defining if geometry thickness should be computed automatically (default: false).\n * When enabled, a depth renderer is created which will render the back faces of the scene to a depth texture (meaning additional work for the GPU).\n * In that mode, the \"thickness\" property is still used as an offset to compute the ray intersection, but you can typically use a much lower\n * value than when enableAutomaticThicknessComputation is false (it's even possible to use a value of 0 when using low values for \"step\")\n * Note that for performance reasons, this option will only apply to the first camera to which the rendering pipeline is attached!\n */\n get enableAutomaticThicknessComputation() {\n return this._enableAutomaticThicknessComputation;\n }\n set enableAutomaticThicknessComputation(automatic) {\n if (this._enableAutomaticThicknessComputation === automatic) {\n return;\n }\n this._enableAutomaticThicknessComputation = automatic;\n this._buildPipeline();\n }\n /**\n * Gets the depth renderer used to render the back faces of the scene to a depth texture.\n */\n get backfaceDepthRenderer() {\n return this._depthRenderer;\n }\n /**\n * Gets or sets the downsample factor (default: 0) used to create the backface depth texture - used only if enableAutomaticThicknessComputation = true.\n * Use 0 to render the depth at full resolution, 1 to render at half resolution, 2 to render at 1/4 resolution, etc.\n * Note that you will get rendering artefacts when using a value different from 0: it's a tradeoff between image quality and performances.\n */\n get backfaceDepthTextureDownsample() {\n return this._backfaceDepthTextureDownsample;\n }\n set backfaceDepthTextureDownsample(factor) {\n if (this._backfaceDepthTextureDownsample === factor) {\n return;\n }\n this._backfaceDepthTextureDownsample = factor;\n this._resizeDepthRenderer();\n }\n /**\n * Gets or sets a boolean (default: true) indicating if the depth of transparent meshes should be written to the backface depth texture (when automatic thickness computation is enabled).\n */\n get backfaceForceDepthWriteTransparentMeshes() {\n return this._backfaceForceDepthWriteTransparentMeshes;\n }\n set backfaceForceDepthWriteTransparentMeshes(force) {\n if (this._backfaceForceDepthWriteTransparentMeshes === force) {\n return;\n }\n this._backfaceForceDepthWriteTransparentMeshes = force;\n if (this._depthRenderer) {\n this._depthRenderer.forceDepthWriteTransparentMeshes = force;\n }\n }\n /**\n * Gets or sets a boolean indicating if the effect is enabled (default: true).\n */\n get isEnabled() {\n return this._isEnabled;\n }\n set isEnabled(value) {\n if (this._isEnabled === value) {\n return;\n }\n this._isEnabled = value;\n if (!value) {\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n this._cameras = this._camerasToBeAttached.slice();\n }\n }\n else if (value) {\n if (!this._isDirty) {\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\n }\n }\n else {\n this._buildPipeline();\n }\n }\n }\n /**\n * Gets or sets a boolean defining if the input color texture is in gamma space (default: true)\n * The SSR effect works in linear space, so if the input texture is in gamma space, we must convert the texture to linear space before applying the effect\n */\n get inputTextureColorIsInGammaSpace() {\n return this._inputTextureColorIsInGammaSpace;\n }\n set inputTextureColorIsInGammaSpace(gammaSpace) {\n if (this._inputTextureColorIsInGammaSpace === gammaSpace) {\n return;\n }\n this._inputTextureColorIsInGammaSpace = gammaSpace;\n this._buildPipeline();\n }\n /**\n * Gets or sets a boolean defining if the output color texture generated by the SSR pipeline should be in gamma space (default: true)\n * If you have a post-process that comes after the SSR and that post-process needs the input to be in a linear space, you must disable generateOutputInGammaSpace\n */\n get generateOutputInGammaSpace() {\n return this._generateOutputInGammaSpace;\n }\n set generateOutputInGammaSpace(gammaSpace) {\n if (this._generateOutputInGammaSpace === gammaSpace) {\n return;\n }\n this._generateOutputInGammaSpace = gammaSpace;\n this._buildPipeline();\n }\n /**\n * Gets or sets a boolean indicating if the effect should be rendered in debug mode (default: false).\n * In this mode, colors have this meaning:\n * - blue: the ray hit the max distance (we reached maxDistance)\n * - red: the ray ran out of steps (we reached maxSteps)\n * - yellow: the ray went off screen\n * - green: the ray hit a surface. The brightness of the green color is proportional to the distance between the ray origin and the intersection point: A brighter green means more computation than a darker green.\n * In the first 3 cases, the final color is calculated by mixing the skybox color with the pixel color (if environmentTexture is defined), otherwise the pixel color is not modified\n * You should try to get as few blue/red/yellow pixels as possible, as this means that the ray has gone further than if it had hit a surface.\n */\n get debug() {\n return this._debug;\n }\n set debug(value) {\n if (this._debug === value) {\n return;\n }\n this._debug = value;\n this._buildPipeline();\n }\n /**\n * Gets the scene the effect belongs to.\n * @returns the scene the effect belongs to.\n */\n getScene() {\n return this._scene;\n }\n get _geometryBufferRenderer() {\n if (!this._forceGeometryBuffer) {\n return null;\n }\n return this._scene.geometryBufferRenderer;\n }\n get _prePassRenderer() {\n if (this._forceGeometryBuffer) {\n return null;\n }\n return this._scene.prePassRenderer;\n }\n /**\n * Gets active scene\n */\n get scene() {\n return this._scene;\n }\n /**\n * Returns true if SSR is supported by the running hardware\n */\n get isSupported() {\n const caps = this._scene.getEngine().getCaps();\n return caps.drawBuffersExtension && caps.texelFetch;\n }\n /**\n * Constructor of the SSR rendering pipeline\n * @param name The rendering pipeline name\n * @param scene The scene linked to this pipeline\n * @param cameras The array of cameras that the rendering pipeline will be attached to (default: scene.cameras)\n * @param forceGeometryBuffer Set to true if you want to use the legacy geometry buffer renderer (default: false)\n * @param textureType The texture type used by the different post processes created by SSR (default: 0)\n * @param useScreenspaceDepth Indicates if the depth buffer should be linear or screenspace (default: false). This allows sharing the buffer with other effect pipelines that may require the depth to be in screenspace.\n */\n constructor(name, scene, cameras, forceGeometryBuffer = false, textureType = 0, useScreenspaceDepth = false) {\n super(scene.getEngine(), name);\n /**\n * The SSR PostProcess effect id in the pipeline\n */\n this.SSRRenderEffect = \"SSRRenderEffect\";\n /**\n * The blur PostProcess effect id in the pipeline\n */\n this.SSRBlurRenderEffect = \"SSRBlurRenderEffect\";\n /**\n * The PostProcess effect id in the pipeline that combines the SSR-Blur output with the original scene color\n */\n this.SSRCombineRenderEffect = \"SSRCombineRenderEffect\";\n this._samples = 1;\n /**\n * Gets or sets the maxDistance used to define how far we look for reflection during the ray-marching on the reflected ray (default: 1000).\n * Note that this value is a view (camera) space distance (not pixels!).\n */\n this.maxDistance = 1000.0;\n /**\n * Gets or sets the step size used to iterate until the effect finds the color of the reflection's pixel. Should be an integer \\>= 1 as it is the number of pixels we advance at each step (default: 1).\n * Use higher values to improve performances (but at the expense of quality).\n */\n this.step = 1.0;\n /**\n * Gets or sets the thickness value used as tolerance when computing the intersection between the reflected ray and the scene (default: 0.5).\n * If setting \"enableAutomaticThicknessComputation\" to true, you can use lower values for \"thickness\" (even 0), as the geometry thickness\n * is automatically computed thank to the regular depth buffer + the backface depth buffer\n */\n this.thickness = 0.5;\n /**\n * Gets or sets the current reflection strength. 1.0 is an ideal value but can be increased/decreased for particular results (default: 1).\n */\n this.strength = 1;\n /**\n * Gets or sets the falloff exponent used to compute the reflection strength. Higher values lead to fainter reflections (default: 1).\n */\n this.reflectionSpecularFalloffExponent = 1;\n /**\n * Maximum number of steps during the ray marching process after which we consider an intersection could not be found (default: 1000).\n * Should be an integer value.\n */\n this.maxSteps = 1000.0;\n /**\n * Gets or sets the factor applied when computing roughness. Default value is 0.2.\n * When blurring based on roughness is enabled (meaning blurDispersionStrength \\> 0), roughnessFactor is used as a global roughness factor applied on all objects.\n * If you want to disable this global roughness set it to 0.\n */\n this.roughnessFactor = 0.2;\n /**\n * Number of steps to skip at start when marching the ray to avoid self collisions (default: 1)\n * 1 should normally be a good value, depending on the scene you may need to use a higher value (2 or 3)\n */\n this.selfCollisionNumSkip = 1;\n this._reflectivityThreshold = 0.04;\n this._ssrDownsample = 0;\n this._blurDispersionStrength = 0.03;\n this._blurDownsample = 0;\n this._enableSmoothReflections = false;\n this._useScreenspaceDepth = false;\n this._environmentTextureIsProbe = false;\n this._attenuateScreenBorders = true;\n this._attenuateIntersectionDistance = true;\n this._attenuateIntersectionIterations = true;\n this._attenuateFacingCamera = false;\n this._attenuateBackfaceReflection = false;\n this._clipToFrustum = true;\n this._useFresnel = false;\n this._enableAutomaticThicknessComputation = false;\n this._backfaceDepthTextureDownsample = 0;\n this._backfaceForceDepthWriteTransparentMeshes = true;\n this._isEnabled = true;\n this._inputTextureColorIsInGammaSpace = true;\n this._generateOutputInGammaSpace = true;\n this._debug = false;\n this._forceGeometryBuffer = false;\n this._isDirty = false;\n this._camerasToBeAttached = [];\n this._cameras = cameras || scene.cameras;\n this._cameras = this._cameras.slice();\n this._camerasToBeAttached = this._cameras.slice();\n this._scene = scene;\n this._textureType = textureType;\n this._forceGeometryBuffer = forceGeometryBuffer;\n this._useScreenspaceDepth = useScreenspaceDepth;\n if (this.isSupported) {\n scene.postProcessRenderPipelineManager.addPipeline(this);\n if (this._forceGeometryBuffer) {\n const geometryBufferRenderer = scene.enableGeometryBufferRenderer();\n if (geometryBufferRenderer) {\n geometryBufferRenderer.enableReflectivity = true;\n geometryBufferRenderer.useSpecificClearForDepthTexture = true;\n geometryBufferRenderer.enableScreenspaceDepth = this._useScreenspaceDepth;\n geometryBufferRenderer.enableDepth = !this._useScreenspaceDepth;\n }\n }\n else {\n const prePassRenderer = scene.enablePrePassRenderer();\n if (prePassRenderer) {\n prePassRenderer.useSpecificClearForDepthTexture = true;\n prePassRenderer.markAsDirty();\n }\n }\n this._buildPipeline();\n }\n }\n /**\n * Get the class name\n * @returns \"SSRRenderingPipeline\"\n */\n getClassName() {\n return \"SSRRenderingPipeline\";\n }\n /**\n * Adds a camera to the pipeline\n * @param camera the camera to be added\n */\n addCamera(camera) {\n this._camerasToBeAttached.push(camera);\n this._buildPipeline();\n }\n /**\n * Removes a camera from the pipeline\n * @param camera the camera to remove\n */\n removeCamera(camera) {\n const index = this._camerasToBeAttached.indexOf(camera);\n this._camerasToBeAttached.splice(index, 1);\n this._buildPipeline();\n }\n /**\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\n * @param disableGeometryBufferRenderer if the geometry buffer renderer should be disabled\n */\n dispose(disableGeometryBufferRenderer = false) {\n this._disposeDepthRenderer();\n this._disposePostProcesses();\n if (disableGeometryBufferRenderer) {\n this._scene.disableGeometryBufferRenderer();\n }\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n super.dispose();\n }\n _getTextureSize() {\n const engine = this._scene.getEngine();\n const prePassRenderer = this._prePassRenderer;\n let textureSize = { width: engine.getRenderWidth(), height: engine.getRenderHeight() };\n if (prePassRenderer && this._scene.activeCamera?._getFirstPostProcess() === this._ssrPostProcess) {\n const renderTarget = prePassRenderer.getRenderTarget();\n if (renderTarget && renderTarget.textures) {\n textureSize = renderTarget.textures[prePassRenderer.getIndex(4)].getSize();\n }\n }\n else if (this._ssrPostProcess?.inputTexture) {\n textureSize.width = this._ssrPostProcess.inputTexture.width;\n textureSize.height = this._ssrPostProcess.inputTexture.height;\n }\n return textureSize;\n }\n _updateEffectDefines() {\n const defines = [];\n if (this._geometryBufferRenderer || this._prePassRenderer) {\n defines.push(\"#define SSR_SUPPORTED\");\n }\n if (this._enableSmoothReflections) {\n defines.push(\"#define SSRAYTRACE_ENABLE_REFINEMENT\");\n }\n if (this._scene.useRightHandedSystem) {\n defines.push(\"#define SSRAYTRACE_RIGHT_HANDED_SCENE\");\n }\n if (this._useScreenspaceDepth) {\n defines.push(\"#define SSRAYTRACE_SCREENSPACE_DEPTH\");\n }\n if (this._environmentTexture) {\n defines.push(\"#define SSR_USE_ENVIRONMENT_CUBE\");\n if (this._environmentTexture.boundingBoxSize) {\n defines.push(\"#define SSR_USE_LOCAL_REFLECTIONMAP_CUBIC\");\n }\n if (this._environmentTexture.gammaSpace) {\n defines.push(\"#define SSR_ENVIRONMENT_CUBE_IS_GAMMASPACE\");\n }\n }\n if (this._environmentTextureIsProbe) {\n defines.push(\"#define SSR_INVERTCUBICMAP\");\n }\n if (this._enableAutomaticThicknessComputation) {\n defines.push(\"#define SSRAYTRACE_USE_BACK_DEPTHBUFFER\");\n }\n if (this._attenuateScreenBorders) {\n defines.push(\"#define SSR_ATTENUATE_SCREEN_BORDERS\");\n }\n if (this._attenuateIntersectionDistance) {\n defines.push(\"#define SSR_ATTENUATE_INTERSECTION_DISTANCE\");\n }\n if (this._attenuateIntersectionIterations) {\n defines.push(\"#define SSR_ATTENUATE_INTERSECTION_NUMITERATIONS\");\n }\n if (this._attenuateFacingCamera) {\n defines.push(\"#define SSR_ATTENUATE_FACING_CAMERA\");\n }\n if (this._attenuateBackfaceReflection) {\n defines.push(\"#define SSR_ATTENUATE_BACKFACE_REFLECTION\");\n }\n if (this._clipToFrustum) {\n defines.push(\"#define SSRAYTRACE_CLIP_TO_FRUSTUM\");\n }\n if (this._useBlur()) {\n defines.push(\"#define SSR_USE_BLUR\");\n }\n if (this._debug) {\n defines.push(\"#define SSRAYTRACE_DEBUG\");\n }\n if (this._inputTextureColorIsInGammaSpace) {\n defines.push(\"#define SSR_INPUT_IS_GAMMA_SPACE\");\n }\n if (this._generateOutputInGammaSpace) {\n defines.push(\"#define SSR_OUTPUT_IS_GAMMA_SPACE\");\n }\n if (this._useFresnel) {\n defines.push(\"#define SSR_BLEND_WITH_FRESNEL\");\n }\n if (this._reflectivityThreshold === 0) {\n defines.push(\"#define SSR_DISABLE_REFLECTIVITY_TEST\");\n }\n if (this._geometryBufferRenderer?.generateNormalsInWorldSpace ?? this._prePassRenderer?.generateNormalsInWorldSpace) {\n defines.push(\"#define SSR_NORMAL_IS_IN_WORLDSPACE\");\n }\n if (this._geometryBufferRenderer?.normalsAreUnsigned) {\n defines.push(\"#define SSR_DECODE_NORMAL\");\n }\n const camera = this._cameras?.[0];\n if (camera && camera.mode === 1) {\n defines.push(\"#define ORTHOGRAPHIC_CAMERA\");\n }\n this._ssrPostProcess?.updateEffect(defines.join(\"\\n\"));\n }\n _buildPipeline() {\n if (!this.isSupported) {\n return;\n }\n if (!this._isEnabled) {\n this._isDirty = true;\n return;\n }\n this._isDirty = false;\n const engine = this._scene.getEngine();\n this._disposeDepthRenderer();\n this._disposePostProcesses();\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n // get back cameras to be used to reattach pipeline\n this._cameras = this._camerasToBeAttached.slice();\n }\n this._reset();\n if (this._enableAutomaticThicknessComputation) {\n const camera = this._cameras?.[0];\n if (camera) {\n this._depthRendererCamera = camera;\n this._depthRenderer = new DepthRenderer(this._scene, undefined, undefined, this._useScreenspaceDepth, 1, !this._useScreenspaceDepth, \"SSRBackDepth\");\n if (!this._useScreenspaceDepth) {\n this._depthRenderer.clearColor.r = 1e8; // \"infinity\": put a big value because we use the storeCameraSpaceZ mode\n }\n this._depthRenderer.reverseCulling = true; // we generate depth for the back faces\n this._depthRenderer.forceDepthWriteTransparentMeshes = this._backfaceForceDepthWriteTransparentMeshes;\n this._resizeDepthRenderer();\n camera.customRenderTargets.push(this._depthRenderer.getDepthMap());\n }\n }\n this._createSSRPostProcess();\n this.addEffect(new PostProcessRenderEffect(engine, this.SSRRenderEffect, () => {\n return this._ssrPostProcess;\n }, true));\n if (this._useBlur()) {\n this._createBlurAndCombinerPostProcesses();\n this.addEffect(new PostProcessRenderEffect(engine, this.SSRBlurRenderEffect, () => {\n return [this._blurPostProcessX, this._blurPostProcessY];\n }, true));\n this.addEffect(new PostProcessRenderEffect(engine, this.SSRCombineRenderEffect, () => {\n return this._blurCombinerPostProcess;\n }, true));\n }\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\n }\n }\n _resizeDepthRenderer() {\n if (!this._depthRenderer) {\n return;\n }\n const textureSize = this._getTextureSize();\n const depthRendererSize = this._depthRenderer.getDepthMap().getSize();\n const width = Math.floor(textureSize.width / (this._backfaceDepthTextureDownsample + 1));\n const height = Math.floor(textureSize.height / (this._backfaceDepthTextureDownsample + 1));\n if (depthRendererSize.width !== width || depthRendererSize.height !== height) {\n this._depthRenderer.getDepthMap().resize({ width, height });\n }\n }\n _disposeDepthRenderer() {\n if (this._depthRenderer) {\n if (this._depthRendererCamera) {\n const idx = this._depthRendererCamera.customRenderTargets.indexOf(this._depthRenderer.getDepthMap()) ?? -1;\n if (idx !== -1) {\n this._depthRendererCamera.customRenderTargets.splice(idx, 1);\n }\n }\n this._depthRendererCamera = null;\n this._depthRenderer.getDepthMap().dispose();\n }\n this._depthRenderer = null;\n }\n _disposePostProcesses() {\n for (let i = 0; i < this._cameras.length; i++) {\n const camera = this._cameras[i];\n this._ssrPostProcess?.dispose(camera);\n this._blurPostProcessX?.dispose(camera);\n this._blurPostProcessY?.dispose(camera);\n this._blurCombinerPostProcess?.dispose(camera);\n }\n this._ssrPostProcess = null;\n this._blurPostProcessX = null;\n this._blurPostProcessY = null;\n this._blurCombinerPostProcess = null;\n }\n _createSSRPostProcess() {\n this._ssrPostProcess = new PostProcess(\"ssr\", \"screenSpaceReflection2\", [\n \"projection\",\n \"invProjectionMatrix\",\n \"view\",\n \"invView\",\n \"thickness\",\n \"reflectionSpecularFalloffExponent\",\n \"strength\",\n \"stepSize\",\n \"maxSteps\",\n \"roughnessFactor\",\n \"projectionPixel\",\n \"nearPlaneZ\",\n \"farPlaneZ\",\n \"maxDistance\",\n \"selfCollisionNumSkip\",\n \"vReflectionPosition\",\n \"vReflectionSize\",\n \"backSizeFactor\",\n \"reflectivityThreshold\",\n ], [\"textureSampler\", \"normalSampler\", \"reflectivitySampler\", \"depthSampler\", \"envCubeSampler\", \"backDepthSampler\"], 1.0, null, this._textureType, this._scene.getEngine(), false, \"\", this._textureType, undefined, undefined, undefined, undefined, this._scene.getEngine().isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */, (useWebGPU, list) => {\n if (useWebGPU) {\n list.push(import(\"../../../ShadersWGSL/screenSpaceReflection2.fragment.js\"));\n }\n else {\n list.push(import(\"../../../Shaders/screenSpaceReflection2.fragment.js\"));\n }\n });\n this._updateEffectDefines();\n this._ssrPostProcess.onApply = (effect) => {\n this._resizeDepthRenderer();\n const geometryBufferRenderer = this._geometryBufferRenderer;\n const prePassRenderer = this._prePassRenderer;\n if (!prePassRenderer && !geometryBufferRenderer) {\n return;\n }\n if (geometryBufferRenderer) {\n const roughnessIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.REFLECTIVITY_TEXTURE_TYPE);\n const normalIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.NORMAL_TEXTURE_TYPE);\n effect.setTexture(\"normalSampler\", geometryBufferRenderer.getGBuffer().textures[normalIndex]);\n effect.setTexture(\"reflectivitySampler\", geometryBufferRenderer.getGBuffer().textures[roughnessIndex]);\n if (this._useScreenspaceDepth) {\n const depthIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.SCREENSPACE_DEPTH_TEXTURE_TYPE);\n effect.setTexture(\"depthSampler\", geometryBufferRenderer.getGBuffer().textures[depthIndex]);\n }\n else {\n const depthIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.DEPTH_TEXTURE_TYPE);\n effect.setTexture(\"depthSampler\", geometryBufferRenderer.getGBuffer().textures[depthIndex]);\n }\n }\n else if (prePassRenderer) {\n const depthIndex = prePassRenderer.getIndex(this._useScreenspaceDepth ? 10 : 5);\n const roughnessIndex = prePassRenderer.getIndex(3);\n const normalIndex = prePassRenderer.getIndex(6);\n effect.setTexture(\"normalSampler\", prePassRenderer.getRenderTarget().textures[normalIndex]);\n effect.setTexture(\"depthSampler\", prePassRenderer.getRenderTarget().textures[depthIndex]);\n effect.setTexture(\"reflectivitySampler\", prePassRenderer.getRenderTarget().textures[roughnessIndex]);\n }\n if (this._enableAutomaticThicknessComputation && this._depthRenderer) {\n effect.setTexture(\"backDepthSampler\", this._depthRenderer.getDepthMap());\n effect.setFloat(\"backSizeFactor\", this._backfaceDepthTextureDownsample + 1);\n }\n const camera = this._scene.activeCamera;\n if (!camera) {\n return;\n }\n const viewMatrix = camera.getViewMatrix();\n const projectionMatrix = camera.getProjectionMatrix();\n projectionMatrix.invertToRef(TmpVectors.Matrix[0]);\n viewMatrix.invertToRef(TmpVectors.Matrix[1]);\n effect.setMatrix(\"projection\", projectionMatrix);\n effect.setMatrix(\"view\", viewMatrix);\n effect.setMatrix(\"invView\", TmpVectors.Matrix[1]);\n effect.setMatrix(\"invProjectionMatrix\", TmpVectors.Matrix[0]);\n effect.setFloat(\"thickness\", this.thickness);\n effect.setFloat(\"reflectionSpecularFalloffExponent\", this.reflectionSpecularFalloffExponent);\n effect.setFloat(\"strength\", this.strength);\n effect.setFloat(\"stepSize\", this.step);\n effect.setFloat(\"maxSteps\", this.maxSteps);\n effect.setFloat(\"roughnessFactor\", this.roughnessFactor);\n effect.setFloat(\"nearPlaneZ\", camera.minZ);\n effect.setFloat(\"farPlaneZ\", camera.maxZ);\n effect.setFloat(\"maxDistance\", this.maxDistance);\n effect.setFloat(\"selfCollisionNumSkip\", this.selfCollisionNumSkip);\n effect.setFloat(\"reflectivityThreshold\", this._reflectivityThreshold);\n const textureSize = this._getTextureSize();\n Matrix.ScalingToRef(textureSize.width, textureSize.height, 1, TmpVectors.Matrix[2]);\n projectionMatrix.multiplyToRef(this._scene.getEngine().isWebGPU ? trsWebGPU : trs, TmpVectors.Matrix[3]);\n TmpVectors.Matrix[3].multiplyToRef(TmpVectors.Matrix[2], TmpVectors.Matrix[4]);\n effect.setMatrix(\"projectionPixel\", TmpVectors.Matrix[4]);\n if (this._environmentTexture) {\n effect.setTexture(\"envCubeSampler\", this._environmentTexture);\n if (this._environmentTexture.boundingBoxSize) {\n effect.setVector3(\"vReflectionPosition\", this._environmentTexture.boundingBoxPosition);\n effect.setVector3(\"vReflectionSize\", this._environmentTexture.boundingBoxSize);\n }\n }\n };\n this._ssrPostProcess.samples = this.samples;\n if (!this._forceGeometryBuffer) {\n this._ssrPostProcess._prePassEffectConfiguration = new ScreenSpaceReflections2Configuration(this._useScreenspaceDepth);\n }\n }\n _createBlurAndCombinerPostProcesses() {\n const engine = this._scene.getEngine();\n this._blurPostProcessX = new PostProcess(\"SSRblurX\", \"screenSpaceReflection2Blur\", [\"texelOffsetScale\"], [\"textureSampler\"], this._useBlur() ? 1 / (this._ssrDownsample + 1) : 1, null, 2, engine, false, \"\", this._textureType, undefined, undefined, undefined, undefined, this._scene.getEngine().isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */, (useWebGPU, list) => {\n if (useWebGPU) {\n list.push(import(\"../../../ShadersWGSL/screenSpaceReflection2Blur.fragment.js\"));\n }\n else {\n list.push(import(\"../../../Shaders/screenSpaceReflection2Blur.fragment.js\"));\n }\n });\n this._blurPostProcessX.autoClear = false;\n this._blurPostProcessX.onApplyObservable.add((effect) => {\n const width = this._blurPostProcessX?.inputTexture.width ?? this._scene.getEngine().getRenderWidth();\n effect.setFloat2(\"texelOffsetScale\", this._blurDispersionStrength / width, 0);\n });\n this._blurPostProcessY = new PostProcess(\"SSRblurY\", \"screenSpaceReflection2Blur\", [\"texelOffsetScale\"], [\"textureSampler\"], this._useBlur() ? 1 / (this._blurDownsample + 1) : 1, null, 2, engine, false, \"\", this._textureType, undefined, undefined, undefined, undefined, this._scene.getEngine().isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */, (useWebGPU, list) => {\n if (useWebGPU) {\n list.push(import(\"../../../ShadersWGSL/screenSpaceReflection2Blur.fragment.js\"));\n }\n else {\n list.push(import(\"../../../Shaders/screenSpaceReflection2Blur.fragment.js\"));\n }\n });\n this._blurPostProcessY.autoClear = false;\n this._blurPostProcessY.onApplyObservable.add((effect) => {\n const height = this._blurPostProcessY?.inputTexture.height ?? this._scene.getEngine().getRenderHeight();\n effect.setFloat2(\"texelOffsetScale\", 0, this._blurDispersionStrength / height);\n });\n const uniformNames = [\"strength\", \"reflectionSpecularFalloffExponent\", \"reflectivityThreshold\"];\n const samplerNames = [\"textureSampler\", \"mainSampler\", \"reflectivitySampler\"];\n let defines = \"\";\n if (this._debug) {\n defines += \"#define SSRAYTRACE_DEBUG\\n\";\n }\n if (this._inputTextureColorIsInGammaSpace) {\n defines += \"#define SSR_INPUT_IS_GAMMA_SPACE\\n\";\n }\n if (this._generateOutputInGammaSpace) {\n defines += \"#define SSR_OUTPUT_IS_GAMMA_SPACE\\n\";\n }\n if (this.useFresnel) {\n defines += \"#define SSR_BLEND_WITH_FRESNEL\\n\";\n uniformNames.push(\"projection\", \"invProjectionMatrix\", \"nearPlaneZ\", \"farPlaneZ\");\n samplerNames.push(\"depthSampler\", \"normalSampler\");\n }\n if (this._useScreenspaceDepth) {\n defines += \"#define SSRAYTRACE_SCREENSPACE_DEPTH\";\n }\n if (this._reflectivityThreshold === 0) {\n defines += \"#define SSR_DISABLE_REFLECTIVITY_TEST\";\n }\n this._blurCombinerPostProcess = new PostProcess(\"SSRblurCombiner\", \"screenSpaceReflection2BlurCombiner\", uniformNames, samplerNames, this._useBlur() ? 1 / (this._blurDownsample + 1) : 1, null, 1, engine, false, defines, this._textureType, undefined, undefined, undefined, undefined, this._scene.getEngine().isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */, (useWebGPU, list) => {\n if (useWebGPU) {\n list.push(import(\"../../../ShadersWGSL/screenSpaceReflection2BlurCombiner.fragment.js\"));\n }\n else {\n list.push(import(\"../../../Shaders/screenSpaceReflection2BlurCombiner.fragment.js\"));\n }\n });\n this._blurCombinerPostProcess.autoClear = false;\n this._blurCombinerPostProcess.onApplyObservable.add((effect) => {\n const geometryBufferRenderer = this._geometryBufferRenderer;\n const prePassRenderer = this._prePassRenderer;\n if (!prePassRenderer && !geometryBufferRenderer) {\n return;\n }\n if (prePassRenderer && this._scene.activeCamera?._getFirstPostProcess() === this._ssrPostProcess) {\n const renderTarget = prePassRenderer.getRenderTarget();\n if (renderTarget && renderTarget.textures) {\n effect.setTexture(\"mainSampler\", renderTarget.textures[prePassRenderer.getIndex(4)]);\n }\n }\n else {\n effect.setTextureFromPostProcess(\"mainSampler\", this._ssrPostProcess);\n }\n if (geometryBufferRenderer) {\n const roughnessIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.REFLECTIVITY_TEXTURE_TYPE);\n effect.setTexture(\"reflectivitySampler\", geometryBufferRenderer.getGBuffer().textures[roughnessIndex]);\n if (this.useFresnel) {\n const camera = this._scene.activeCamera;\n if (camera && this._useScreenspaceDepth) {\n effect.setFloat(\"nearPlaneZ\", camera.minZ);\n effect.setFloat(\"farPlaneZ\", camera.maxZ);\n }\n effect.setTexture(\"normalSampler\", geometryBufferRenderer.getGBuffer().textures[1]);\n if (this._useScreenspaceDepth) {\n const depthIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.SCREENSPACE_DEPTH_TEXTURE_TYPE);\n effect.setTexture(\"depthSampler\", geometryBufferRenderer.getGBuffer().textures[depthIndex]);\n }\n else {\n effect.setTexture(\"depthSampler\", geometryBufferRenderer.getGBuffer().textures[0]);\n }\n }\n }\n else if (prePassRenderer) {\n const roughnessIndex = prePassRenderer.getIndex(3);\n effect.setTexture(\"reflectivitySampler\", prePassRenderer.getRenderTarget().textures[roughnessIndex]);\n if (this.useFresnel) {\n const camera = this._scene.activeCamera;\n if (camera && this._useScreenspaceDepth) {\n effect.setFloat(\"nearPlaneZ\", camera.minZ);\n effect.setFloat(\"farPlaneZ\", camera.maxZ);\n }\n const depthIndex = prePassRenderer.getIndex(this._useScreenspaceDepth ? 10 : 5);\n const normalIndex = prePassRenderer.getIndex(6);\n effect.setTexture(\"normalSampler\", prePassRenderer.getRenderTarget().textures[normalIndex]);\n effect.setTexture(\"depthSampler\", prePassRenderer.getRenderTarget().textures[depthIndex]);\n }\n }\n effect.setFloat(\"strength\", this.strength);\n effect.setFloat(\"reflectionSpecularFalloffExponent\", this.reflectionSpecularFalloffExponent);\n effect.setFloat(\"reflectivityThreshold\", this._reflectivityThreshold);\n if (this.useFresnel) {\n const camera = this._scene.activeCamera;\n if (camera) {\n const projectionMatrix = camera.getProjectionMatrix();\n projectionMatrix.invertToRef(TmpVectors.Matrix[0]);\n effect.setMatrix(\"projection\", projectionMatrix);\n effect.setMatrix(\"invProjectionMatrix\", TmpVectors.Matrix[0]);\n }\n }\n });\n }\n /**\n * Serializes the rendering pipeline (Used when exporting)\n * @returns the serialized object\n */\n serialize() {\n const serializationObject = SerializationHelper.Serialize(this);\n serializationObject.customType = \"SSRRenderingPipeline\";\n return serializationObject;\n }\n /**\n * Parse the serialized pipeline\n * @param source Source pipeline.\n * @param scene The scene to load the pipeline to.\n * @param rootUrl The URL of the serialized pipeline.\n * @returns An instantiated pipeline from the serialized object.\n */\n static Parse(source, scene, rootUrl) {\n return SerializationHelper.Parse(() => new SSRRenderingPipeline(source._name, scene, source._ratio), source, scene, rootUrl);\n }\n}\n__decorate([\n serialize()\n], SSRRenderingPipeline.prototype, \"samples\", null);\n__decorate([\n serialize()\n], SSRRenderingPipeline.prototype, \"maxDistance\", void 0);\n__decorate([\n serialize()\n], SSRRenderingPipeline.prototype, \"step\", void 0);\n__decorate([\n serialize()\n], SSRRenderingPipeline.prototype, \"thickness\", void 0);\n__decorate([\n serialize()\n], SSRRenderingPipeline.prototype, \"strength\", void 0);\n__decorate([\n serialize()\n], SSRRenderingPipeline.prototype, \"reflectionSpecularFalloffExponent\", void 0);\n__decorate([\n serialize()\n], SSRRenderingPipeline.prototype, \"maxSteps\", void 0);\n__decorate([\n serialize()\n], SSRRenderingPipeline.prototype, \"roughnessFactor\", void 0);\n__decorate([\n serialize()\n], SSRRenderingPipeline.prototype, \"selfCollisionNumSkip\", void 0);\n__decorate([\n serialize()\n], SSRRenderingPipeline.prototype, \"_reflectivityThreshold\", void 0);\n__decorate([\n serialize(\"_ssrDownsample\")\n], SSRRenderingPipeline.prototype, \"_ssrDownsample\", void 0);\n__decorate([\n serialize()\n], SSRRenderingPipeline.prototype, \"ssrDownsample\", null);\n__decorate([\n serialize(\"blurDispersionStrength\")\n], SSRRenderingPipeline.prototype, \"_blurDispersionStrength\", void 0);\n__decorate([\n serialize(\"blurDownsample\")\n], SSRRenderingPipeline.prototype, \"_blurDownsample\", void 0);\n__decorate([\n serialize(\"enableSmoothReflections\")\n], SSRRenderingPipeline.prototype, \"_enableSmoothReflections\", void 0);\n__decorate([\n serialize(\"environmentTexture\")\n], SSRRenderingPipeline.prototype, \"_environmentTexture\", void 0);\n__decorate([\n serialize(\"environmentTextureIsProbe\")\n], SSRRenderingPipeline.prototype, \"_environmentTextureIsProbe\", void 0);\n__decorate([\n serialize(\"attenuateScreenBorders\")\n], SSRRenderingPipeline.prototype, \"_attenuateScreenBorders\", void 0);\n__decorate([\n serialize(\"attenuateIntersectionDistance\")\n], SSRRenderingPipeline.prototype, \"_attenuateIntersectionDistance\", void 0);\n__decorate([\n serialize(\"attenuateIntersectionIterations\")\n], SSRRenderingPipeline.prototype, \"_attenuateIntersectionIterations\", void 0);\n__decorate([\n serialize(\"attenuateFacingCamera\")\n], SSRRenderingPipeline.prototype, \"_attenuateFacingCamera\", void 0);\n__decorate([\n serialize(\"attenuateBackfaceReflection\")\n], SSRRenderingPipeline.prototype, \"_attenuateBackfaceReflection\", void 0);\n__decorate([\n serialize(\"clipToFrustum\")\n], SSRRenderingPipeline.prototype, \"_clipToFrustum\", void 0);\n__decorate([\n serialize(\"useFresnel\")\n], SSRRenderingPipeline.prototype, \"_useFresnel\", void 0);\n__decorate([\n serialize(\"enableAutomaticThicknessComputation\")\n], SSRRenderingPipeline.prototype, \"_enableAutomaticThicknessComputation\", void 0);\n__decorate([\n serialize(\"backfaceDepthTextureDownsample\")\n], SSRRenderingPipeline.prototype, \"_backfaceDepthTextureDownsample\", void 0);\n__decorate([\n serialize(\"backfaceForceDepthWriteTransparentMeshes\")\n], SSRRenderingPipeline.prototype, \"_backfaceForceDepthWriteTransparentMeshes\", void 0);\n__decorate([\n serialize(\"isEnabled\")\n], SSRRenderingPipeline.prototype, \"_isEnabled\", void 0);\n__decorate([\n serialize(\"inputTextureColorIsInGammaSpace\")\n], SSRRenderingPipeline.prototype, \"_inputTextureColorIsInGammaSpace\", void 0);\n__decorate([\n serialize(\"generateOutputInGammaSpace\")\n], SSRRenderingPipeline.prototype, \"_generateOutputInGammaSpace\", void 0);\n__decorate([\n serialize(\"debug\")\n], SSRRenderingPipeline.prototype, \"_debug\", void 0);\nRegisterClass(\"BABYLON.SSRRenderingPipeline\", SSRRenderingPipeline);\n","import { __decorate } from \"../../../tslib.es6.js\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { serialize } from \"../../../Misc/decorators.js\";\nimport { SerializationHelper } from \"../../../Misc/decorators.serialization.js\";\nimport { PostProcess } from \"../../postProcess.js\";\nimport { PostProcessRenderPipeline } from \"../postProcessRenderPipeline.js\";\nimport { PostProcessRenderEffect } from \"../postProcessRenderEffect.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n\nimport { PassPostProcess } from \"../../passPostProcess.js\";\nimport { ThinTAAPostProcess } from \"../../thinTAAPostProcess.js\";\nimport \"../postProcessRenderPipelineManagerSceneComponent.js\";\n/**\n * Simple implementation of Temporal Anti-Aliasing (TAA).\n * This can be used to improve image quality for still pictures (screenshots for e.g.).\n */\nexport class TAARenderingPipeline extends PostProcessRenderPipeline {\n /**\n * Number of accumulated samples (default: 16)\n */\n set samples(samples) {\n this._taaThinPostProcess.samples = samples;\n }\n get samples() {\n return this._taaThinPostProcess.samples;\n }\n /**\n * MSAA samples (default: 1)\n */\n set msaaSamples(samples) {\n if (this._msaaSamples === samples) {\n return;\n }\n this._msaaSamples = samples;\n if (this._taaPostProcess) {\n this._taaPostProcess.samples = samples;\n }\n }\n get msaaSamples() {\n return this._msaaSamples;\n }\n /**\n * The factor used to blend the history frame with current frame (default: 0.05)\n */\n get factor() {\n return this._taaThinPostProcess.factor;\n }\n set factor(value) {\n this._taaThinPostProcess.factor = value;\n }\n /**\n * Disable TAA on camera move (default: true).\n * You generally want to keep this enabled, otherwise you will get a ghost effect when the camera moves (but if it's what you want, go for it!)\n */\n get disableOnCameraMove() {\n return this._taaThinPostProcess.disableOnCameraMove;\n }\n set disableOnCameraMove(value) {\n this._taaThinPostProcess.disableOnCameraMove = value;\n }\n /**\n * Gets or sets a boolean indicating if the render pipeline is enabled (default: true).\n */\n get isEnabled() {\n return this._isEnabled;\n }\n set isEnabled(value) {\n if (this._isEnabled === value) {\n return;\n }\n this._isEnabled = value;\n if (!value) {\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n this._cameras = this._camerasToBeAttached.slice();\n }\n }\n else if (value) {\n if (!this._isDirty) {\n if (this._cameras !== null) {\n this._taaThinPostProcess._reset();\n this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\n }\n }\n else {\n this._buildPipeline();\n }\n }\n }\n /**\n * Gets active scene\n */\n get scene() {\n return this._scene;\n }\n /**\n * Returns true if TAA is supported by the running hardware\n */\n get isSupported() {\n const caps = this._scene.getEngine().getCaps();\n return caps.texelFetch;\n }\n /**\n * Constructor of the TAA rendering pipeline\n * @param name The rendering pipeline name\n * @param scene The scene linked to this pipeline\n * @param cameras The array of cameras that the rendering pipeline will be attached to (default: scene.cameras)\n * @param textureType The type of texture where the scene will be rendered (default: 0)\n */\n constructor(name, scene, cameras, textureType = 0) {\n const engine = scene.getEngine();\n super(engine, name);\n /**\n * The TAA PostProcess effect id in the pipeline\n */\n this.TAARenderEffect = \"TAARenderEffect\";\n /**\n * The pass PostProcess effect id in the pipeline\n */\n this.TAAPassEffect = \"TAAPassEffect\";\n this._msaaSamples = 1;\n this._isEnabled = true;\n this._isDirty = false;\n this._camerasToBeAttached = [];\n this._pingpong = 0;\n this._cameras = cameras || scene.cameras;\n this._cameras = this._cameras.slice();\n this._camerasToBeAttached = this._cameras.slice();\n this._scene = scene;\n this._textureType = textureType;\n this._taaThinPostProcess = new ThinTAAPostProcess(\"TAA\", this._scene.getEngine());\n if (this.isSupported) {\n this._createPingPongTextures(engine.getRenderWidth(), engine.getRenderHeight());\n scene.postProcessRenderPipelineManager.addPipeline(this);\n this._buildPipeline();\n }\n }\n /**\n * Get the class name\n * @returns \"TAARenderingPipeline\"\n */\n getClassName() {\n return \"TAARenderingPipeline\";\n }\n /**\n * Adds a camera to the pipeline\n * @param camera the camera to be added\n */\n addCamera(camera) {\n this._camerasToBeAttached.push(camera);\n this._buildPipeline();\n }\n /**\n * Removes a camera from the pipeline\n * @param camera the camera to remove\n */\n removeCamera(camera) {\n const index = this._camerasToBeAttached.indexOf(camera);\n this._camerasToBeAttached.splice(index, 1);\n this._buildPipeline();\n }\n /**\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\n */\n dispose() {\n this._disposePostProcesses();\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n this._ping.dispose();\n this._pong.dispose();\n super.dispose();\n }\n _createPingPongTextures(width, height) {\n const engine = this._scene.getEngine();\n this._ping?.dispose();\n this._pong?.dispose();\n this._ping = engine.createRenderTargetTexture({ width, height }, { generateMipMaps: false, generateDepthBuffer: false, type: 2, samplingMode: 1 });\n this._pong = engine.createRenderTargetTexture({ width, height }, { generateMipMaps: false, generateDepthBuffer: false, type: 2, samplingMode: 1 });\n this._taaThinPostProcess.textureWidth = width;\n this._taaThinPostProcess.textureHeight = height;\n }\n _buildPipeline() {\n if (!this.isSupported) {\n return;\n }\n if (!this._isEnabled) {\n this._isDirty = true;\n return;\n }\n this._isDirty = false;\n const engine = this._scene.getEngine();\n this._disposePostProcesses();\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n // get back cameras to be used to reattach pipeline\n this._cameras = this._camerasToBeAttached.slice();\n }\n this._reset();\n this._createTAAPostProcess();\n this.addEffect(new PostProcessRenderEffect(engine, this.TAARenderEffect, () => {\n return this._taaPostProcess;\n }, true));\n this._createPassPostProcess();\n this.addEffect(new PostProcessRenderEffect(engine, this.TAAPassEffect, () => {\n return this._passPostProcess;\n }, true));\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\n }\n }\n _disposePostProcesses() {\n for (let i = 0; i < this._cameras.length; i++) {\n const camera = this._cameras[i];\n this._taaPostProcess?.dispose(camera);\n this._passPostProcess?.dispose(camera);\n camera.getProjectionMatrix(true); // recompute the projection matrix\n }\n this._taaPostProcess = null;\n this._passPostProcess = null;\n }\n _createTAAPostProcess() {\n this._taaPostProcess = new PostProcess(\"TAA\", \"taa\", {\n uniforms: [\"factor\"],\n samplers: [\"historySampler\"],\n size: 1.0,\n engine: this._scene.getEngine(),\n textureType: this._textureType,\n effectWrapper: this._taaThinPostProcess,\n });\n this._taaPostProcess.samples = this._msaaSamples;\n this._taaPostProcess.onActivateObservable.add(() => {\n this._taaThinPostProcess.camera = this._scene.activeCamera;\n if (this._taaPostProcess?.width !== this._ping.width || this._taaPostProcess?.height !== this._ping.height) {\n const engine = this._scene.getEngine();\n this._createPingPongTextures(engine.getRenderWidth(), engine.getRenderHeight());\n }\n this._taaThinPostProcess.updateProjectionMatrix();\n if (this._passPostProcess) {\n this._passPostProcess.inputTexture = this._pingpong ? this._ping : this._pong;\n }\n this._pingpong = this._pingpong ^ 1;\n });\n this._taaPostProcess.onApplyObservable.add((effect) => {\n effect._bindTexture(\"historySampler\", this._pingpong ? this._ping.texture : this._pong.texture);\n });\n }\n _createPassPostProcess() {\n const engine = this._scene.getEngine();\n this._passPostProcess = new PassPostProcess(\"TAAPass\", 1, null, 1, engine);\n this._passPostProcess.inputTexture = this._ping;\n this._passPostProcess.autoClear = false;\n }\n /**\n * Serializes the rendering pipeline (Used when exporting)\n * @returns the serialized object\n */\n serialize() {\n const serializationObject = SerializationHelper.Serialize(this);\n serializationObject.customType = \"TAARenderingPipeline\";\n return serializationObject;\n }\n /**\n * Parse the serialized pipeline\n * @param source Source pipeline.\n * @param scene The scene to load the pipeline to.\n * @param rootUrl The URL of the serialized pipeline.\n * @returns An instantiated pipeline from the serialized object.\n */\n static Parse(source, scene, rootUrl) {\n return SerializationHelper.Parse(() => new TAARenderingPipeline(source._name, scene, source._ratio), source, scene, rootUrl);\n }\n}\n__decorate([\n serialize(\"samples\")\n], TAARenderingPipeline.prototype, \"samples\", null);\n__decorate([\n serialize(\"msaaSamples\")\n], TAARenderingPipeline.prototype, \"_msaaSamples\", void 0);\n__decorate([\n serialize()\n], TAARenderingPipeline.prototype, \"factor\", null);\n__decorate([\n serialize()\n], TAARenderingPipeline.prototype, \"disableOnCameraMove\", null);\n__decorate([\n serialize(\"isEnabled\")\n], TAARenderingPipeline.prototype, \"_isEnabled\", void 0);\nRegisterClass(\"BABYLON.TAARenderingPipeline\", TAARenderingPipeline);\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"volumetricLightScatteringPixelShader\";\nconst shader = `uniform sampler2D textureSampler;uniform sampler2D lightScatteringSampler;uniform float decay;uniform float exposure;uniform float weight;uniform float density;uniform vec2 meshPositionOnScreen;varying vec2 vUV;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nvec2 tc=vUV;vec2 deltaTexCoord=(tc-meshPositionOnScreen.xy);deltaTexCoord*=1.0/float(NUM_SAMPLES)*density;float illuminationDecay=1.0;vec4 color=texture2D(lightScatteringSampler,tc)*0.4;for(int i=0; i\n#include\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\nuniform mat4 viewProjection;uniform vec2 depthValues;\n#if defined(ALPHATEST) || defined(NEED_UV)\nvarying vec2 vUV;uniform mat4 diffuseMatrix;\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#endif\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void)\n{vec3 positionUpdated=position;\n#if (defined(ALPHATEST) || defined(NEED_UV)) && defined(UV1)\nvec2 uvUpdated=uv;\n#endif\n#include\n#include[0..maxSimultaneousMorphTargets]\n#include\n#include\n#include\ngl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\n#if defined(ALPHATEST) || defined(BASIC_RENDER)\n#ifdef UV1\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\n#endif\n#ifdef UV2\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\n#endif\n#endif\n}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const volumetricLightScatteringPassVertexShader = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"volumetricLightScatteringPassPixelShader\";\nconst shader = `#if defined(ALPHATEST) || defined(NEED_UV)\nvarying vec2 vUV;\n#endif\n#if defined(ALPHATEST)\nuniform sampler2D diffuseSampler;\n#endif\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\n{\n#if defined(ALPHATEST)\nvec4 diffuseColor=texture2D(diffuseSampler,vUV);if (diffuseColor.a<0.4)\ndiscard;\n#endif\ngl_FragColor=vec4(0.0,0.0,0.0,1.0);}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const volumetricLightScatteringPassPixelShader = { name, shader };\n","import { __decorate } from \"../tslib.es6.js\";\nimport { serializeAsVector3, serialize, serializeAsMeshReference } from \"../Misc/decorators.js\";\nimport { Logger } from \"../Misc/logger.js\";\nimport { Vector2, Vector3, Matrix } from \"../Maths/math.vector.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { AbstractMesh } from \"../Meshes/abstractMesh.js\";\nimport { Material } from \"../Materials/material.js\";\nimport { StandardMaterial } from \"../Materials/standardMaterial.js\";\nimport { Texture } from \"../Materials/Textures/texture.js\";\nimport { RenderTargetTexture } from \"../Materials/Textures/renderTargetTexture.js\";\nimport { PostProcess } from \"./postProcess.js\";\n\nimport { CreatePlane } from \"../Meshes/Builders/planeBuilder.js\";\nimport \"../Shaders/depth.vertex.js\";\nimport \"../Shaders/volumetricLightScattering.fragment.js\";\nimport \"../Shaders/volumetricLightScatteringPass.vertex.js\";\nimport \"../Shaders/volumetricLightScatteringPass.fragment.js\";\nimport { Color4, Color3 } from \"../Maths/math.color.js\";\nimport { Viewport } from \"../Maths/math.viewport.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { BindBonesParameters, BindMorphTargetParameters, PrepareAttributesForMorphTargetsInfluencers, PushAttributesForInstances } from \"../Materials/materialHelper.functions.js\";\nimport { EffectFallbacks } from \"../Materials/effectFallbacks.js\";\n/**\n * Inspired by https://developer.nvidia.com/gpugems/gpugems3/part-ii-light-and-shadows/chapter-13-volumetric-light-scattering-post-process\n */\nexport class VolumetricLightScatteringPostProcess extends PostProcess {\n /**\n * @internal\n * VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead\n */\n get useDiffuseColor() {\n Logger.Warn(\"VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead\");\n return false;\n }\n set useDiffuseColor(useDiffuseColor) {\n Logger.Warn(\"VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead\");\n }\n /**\n * @constructor\n * @param name The post-process name\n * @param ratio The size of the post-process and/or internal pass (0.5 means that your postprocess will have a width = canvas.width 0.5 and a height = canvas.height 0.5)\n * @param camera The camera that the post-process will be attached to\n * @param mesh The mesh used to create the light scattering\n * @param samples The post-process quality, default 100\n * @param samplingMode The post-process filtering mode\n * @param engine The babylon engine\n * @param reusable If the post-process is reusable\n * @param scene The constructor needs a scene reference to initialize internal components. If \"camera\" is null a \"scene\" must be provided\n */\n constructor(name, ratio, camera, mesh, samples = 100, samplingMode = Texture.BILINEAR_SAMPLINGMODE, engine, reusable, scene) {\n super(name, \"volumetricLightScattering\", [\"decay\", \"exposure\", \"weight\", \"meshPositionOnScreen\", \"density\"], [\"lightScatteringSampler\"], ratio.postProcessRatio || ratio, camera, samplingMode, engine, reusable, \"#define NUM_SAMPLES \" + samples);\n this._screenCoordinates = Vector2.Zero();\n /**\n * Custom position of the mesh. Used if \"useCustomMeshPosition\" is set to \"true\"\n */\n this.customMeshPosition = Vector3.Zero();\n /**\n * Set if the post-process should use a custom position for the light source (true) or the internal mesh position (false)\n */\n this.useCustomMeshPosition = false;\n /**\n * If the post-process should inverse the light scattering direction\n */\n this.invert = true;\n /**\n * Array containing the excluded meshes not rendered in the internal pass\n */\n this.excludedMeshes = [];\n /**\n * Array containing the only meshes rendered in the internal pass.\n * If this array is not empty, only the meshes from this array are rendered in the internal pass\n */\n this.includedMeshes = [];\n /**\n * Controls the overall intensity of the post-process\n */\n this.exposure = 0.3;\n /**\n * Dissipates each sample's contribution in range [0, 1]\n */\n this.decay = 0.96815;\n /**\n * Controls the overall intensity of each sample\n */\n this.weight = 0.58767;\n /**\n * Controls the density of each sample\n */\n this.density = 0.926;\n scene = camera?.getScene() ?? scene ?? this._scene; // parameter \"scene\" can be null.\n engine = scene.getEngine();\n this._viewPort = new Viewport(0, 0, 1, 1).toGlobal(engine.getRenderWidth(), engine.getRenderHeight());\n // Configure mesh\n this.mesh = mesh ?? VolumetricLightScatteringPostProcess.CreateDefaultMesh(\"VolumetricLightScatteringMesh\", scene);\n // Configure\n this._createPass(scene, ratio.passRatio || ratio);\n this.onActivate = (camera) => {\n if (!this.isSupported) {\n this.dispose(camera);\n }\n this.onActivate = null;\n };\n this.onApplyObservable.add((effect) => {\n this._updateMeshScreenCoordinates(scene);\n effect.setTexture(\"lightScatteringSampler\", this._volumetricLightScatteringRTT);\n effect.setFloat(\"exposure\", this.exposure);\n effect.setFloat(\"decay\", this.decay);\n effect.setFloat(\"weight\", this.weight);\n effect.setFloat(\"density\", this.density);\n effect.setVector2(\"meshPositionOnScreen\", this._screenCoordinates);\n });\n }\n /**\n * Returns the string \"VolumetricLightScatteringPostProcess\"\n * @returns \"VolumetricLightScatteringPostProcess\"\n */\n getClassName() {\n return \"VolumetricLightScatteringPostProcess\";\n }\n _isReady(subMesh, useInstances) {\n const mesh = subMesh.getMesh();\n // Render this.mesh as default\n if (mesh === this.mesh && mesh.material) {\n return mesh.material.isReady(mesh);\n }\n const renderingMaterial = mesh._internalAbstractMeshDataInfo._materialForRenderPass?.[this._scene.getEngine().currentRenderPassId];\n if (renderingMaterial) {\n return renderingMaterial.isReadyForSubMesh(mesh, subMesh, useInstances);\n }\n const defines = [];\n const attribs = [VertexBuffer.PositionKind];\n const material = subMesh.getMaterial();\n // Alpha test\n if (material) {\n if (material.needAlphaTesting()) {\n defines.push(\"#define ALPHATEST\");\n }\n if (mesh.isVerticesDataPresent(VertexBuffer.UVKind)) {\n attribs.push(VertexBuffer.UVKind);\n defines.push(\"#define UV1\");\n }\n if (mesh.isVerticesDataPresent(VertexBuffer.UV2Kind)) {\n attribs.push(VertexBuffer.UV2Kind);\n defines.push(\"#define UV2\");\n }\n }\n // Bones\n const fallbacks = new EffectFallbacks();\n if (mesh.useBones && mesh.computeBonesUsingShaders && mesh.skeleton) {\n attribs.push(VertexBuffer.MatricesIndicesKind);\n attribs.push(VertexBuffer.MatricesWeightsKind);\n if (mesh.numBoneInfluencers > 4) {\n attribs.push(VertexBuffer.MatricesIndicesExtraKind);\n attribs.push(VertexBuffer.MatricesWeightsExtraKind);\n }\n defines.push(\"#define NUM_BONE_INFLUENCERS \" + mesh.numBoneInfluencers);\n if (mesh.numBoneInfluencers > 0) {\n fallbacks.addCPUSkinningFallback(0, mesh);\n }\n const skeleton = mesh.skeleton;\n if (skeleton.isUsingTextureForMatrices) {\n defines.push(\"#define BONETEXTURE\");\n }\n else {\n defines.push(\"#define BonesPerMesh \" + (skeleton.bones.length + 1));\n }\n }\n else {\n defines.push(\"#define NUM_BONE_INFLUENCERS 0\");\n }\n // Morph targets\n const morphTargetManager = mesh.morphTargetManager;\n let numMorphInfluencers = 0;\n if (morphTargetManager) {\n numMorphInfluencers = morphTargetManager.numMaxInfluencers || morphTargetManager.numInfluencers;\n if (numMorphInfluencers > 0) {\n defines.push(\"#define MORPHTARGETS\");\n defines.push(\"#define NUM_MORPH_INFLUENCERS \" + numMorphInfluencers);\n if (morphTargetManager.isUsingTextureForTargets) {\n defines.push(\"#define MORPHTARGETS_TEXTURE\");\n }\n PrepareAttributesForMorphTargetsInfluencers(attribs, mesh, numMorphInfluencers);\n }\n }\n // Instances\n if (useInstances) {\n defines.push(\"#define INSTANCES\");\n PushAttributesForInstances(attribs);\n if (subMesh.getRenderingMesh().hasThinInstances) {\n defines.push(\"#define THIN_INSTANCES\");\n }\n }\n // Baked vertex animations\n const bvaManager = mesh.bakedVertexAnimationManager;\n if (bvaManager && bvaManager.isEnabled) {\n defines.push(\"#define BAKED_VERTEX_ANIMATION_TEXTURE\");\n if (useInstances) {\n attribs.push(\"bakedVertexAnimationSettingsInstanced\");\n }\n }\n // Get correct effect\n const drawWrapper = subMesh._getDrawWrapper(undefined, true);\n const cachedDefines = drawWrapper.defines;\n const join = defines.join(\"\\n\");\n if (cachedDefines !== join) {\n const uniforms = [\n \"world\",\n \"mBones\",\n \"boneTextureWidth\",\n \"viewProjection\",\n \"diffuseMatrix\",\n \"morphTargetInfluences\",\n \"morphTargetCount\",\n \"morphTargetTextureInfo\",\n \"morphTargetTextureIndices\",\n \"bakedVertexAnimationSettings\",\n \"bakedVertexAnimationTextureSizeInverted\",\n \"bakedVertexAnimationTime\",\n \"bakedVertexAnimationTexture\",\n ];\n const samplers = [\"diffuseSampler\", \"morphTargets\", \"boneSampler\", \"bakedVertexAnimationTexture\"];\n drawWrapper.setEffect(mesh\n .getScene()\n .getEngine()\n .createEffect(\"volumetricLightScatteringPass\", {\n attributes: attribs,\n uniformsNames: uniforms,\n uniformBuffersNames: [],\n samplers: samplers,\n defines: join,\n fallbacks: fallbacks,\n onCompiled: null,\n onError: null,\n indexParameters: { maxSimultaneousMorphTargets: numMorphInfluencers },\n }, mesh.getScene().getEngine()), join);\n }\n return drawWrapper.effect.isReady();\n }\n /**\n * Sets the new light position for light scattering effect\n * @param position The new custom light position\n */\n setCustomMeshPosition(position) {\n this.customMeshPosition = position;\n }\n /**\n * Returns the light position for light scattering effect\n * @returns Vector3 The custom light position\n */\n getCustomMeshPosition() {\n return this.customMeshPosition;\n }\n /**\n * Disposes the internal assets and detaches the post-process from the camera\n * @param camera The camera from which to detach the post-process\n */\n dispose(camera) {\n const rttIndex = camera.getScene().customRenderTargets.indexOf(this._volumetricLightScatteringRTT);\n if (rttIndex !== -1) {\n camera.getScene().customRenderTargets.splice(rttIndex, 1);\n }\n this._volumetricLightScatteringRTT.dispose();\n super.dispose(camera);\n }\n /**\n * Returns the render target texture used by the post-process\n * @returns the render target texture used by the post-process\n */\n getPass() {\n return this._volumetricLightScatteringRTT;\n }\n // Private methods\n _meshExcluded(mesh) {\n if ((this.includedMeshes.length > 0 && this.includedMeshes.indexOf(mesh) === -1) || (this.excludedMeshes.length > 0 && this.excludedMeshes.indexOf(mesh) !== -1)) {\n return true;\n }\n return false;\n }\n _createPass(scene, ratio) {\n const engine = scene.getEngine();\n this._volumetricLightScatteringRTT = new RenderTargetTexture(\"volumetricLightScatteringMap\", { width: engine.getRenderWidth() * ratio, height: engine.getRenderHeight() * ratio }, scene, false, true, 0);\n this._volumetricLightScatteringRTT.wrapU = Texture.CLAMP_ADDRESSMODE;\n this._volumetricLightScatteringRTT.wrapV = Texture.CLAMP_ADDRESSMODE;\n this._volumetricLightScatteringRTT.renderList = null;\n this._volumetricLightScatteringRTT.renderParticles = false;\n this._volumetricLightScatteringRTT.ignoreCameraViewport = true;\n const camera = this.getCamera();\n if (camera) {\n camera.customRenderTargets.push(this._volumetricLightScatteringRTT);\n }\n else {\n scene.customRenderTargets.push(this._volumetricLightScatteringRTT);\n }\n // Custom render function for submeshes\n const renderSubMesh = (subMesh) => {\n const renderingMesh = subMesh.getRenderingMesh();\n const effectiveMesh = subMesh.getEffectiveMesh();\n if (this._meshExcluded(renderingMesh)) {\n return;\n }\n effectiveMesh._internalAbstractMeshDataInfo._isActiveIntermediate = false;\n const material = subMesh.getMaterial();\n if (!material) {\n return;\n }\n const scene = renderingMesh.getScene();\n const engine = scene.getEngine();\n // Culling\n engine.setState(material.backFaceCulling, undefined, undefined, undefined, material.cullBackFaces);\n // Managing instances\n const batch = renderingMesh._getInstancesRenderList(subMesh._id, !!subMesh.getReplacementMesh());\n if (batch.mustReturn) {\n return;\n }\n const hardwareInstancedRendering = engine.getCaps().instancedArrays && (batch.visibleInstances[subMesh._id] !== null || renderingMesh.hasThinInstances);\n if (this._isReady(subMesh, hardwareInstancedRendering)) {\n const renderingMaterial = effectiveMesh._internalAbstractMeshDataInfo._materialForRenderPass?.[engine.currentRenderPassId];\n let drawWrapper = subMesh._getDrawWrapper();\n if (renderingMesh === this.mesh && !drawWrapper) {\n drawWrapper = material._getDrawWrapper();\n }\n if (!drawWrapper) {\n return;\n }\n const effect = drawWrapper.effect;\n engine.enableEffect(drawWrapper);\n if (!hardwareInstancedRendering) {\n renderingMesh._bind(subMesh, effect, material.fillMode);\n }\n if (renderingMesh === this.mesh) {\n material.bind(effectiveMesh.getWorldMatrix(), renderingMesh);\n }\n else if (renderingMaterial) {\n renderingMaterial.bindForSubMesh(effectiveMesh.getWorldMatrix(), effectiveMesh, subMesh);\n }\n else {\n effect.setMatrix(\"viewProjection\", scene.getTransformMatrix());\n // Alpha test\n if (material.needAlphaTesting()) {\n const alphaTexture = material.getAlphaTestTexture();\n if (alphaTexture) {\n effect.setTexture(\"diffuseSampler\", alphaTexture);\n effect.setMatrix(\"diffuseMatrix\", alphaTexture.getTextureMatrix());\n }\n }\n // Bones\n BindBonesParameters(renderingMesh, effect);\n // Morph targets\n BindMorphTargetParameters(renderingMesh, effect);\n if (renderingMesh.morphTargetManager && renderingMesh.morphTargetManager.isUsingTextureForTargets) {\n renderingMesh.morphTargetManager._bind(effect);\n }\n // Baked vertex animations\n const bvaManager = subMesh.getMesh().bakedVertexAnimationManager;\n if (bvaManager && bvaManager.isEnabled) {\n bvaManager.bind(effect, hardwareInstancedRendering);\n }\n }\n if (hardwareInstancedRendering && renderingMesh.hasThinInstances) {\n effect.setMatrix(\"world\", effectiveMesh.getWorldMatrix());\n }\n // Draw\n renderingMesh._processRendering(effectiveMesh, subMesh, effect, Material.TriangleFillMode, batch, hardwareInstancedRendering, (isInstance, world) => {\n if (!isInstance) {\n effect.setMatrix(\"world\", world);\n }\n });\n }\n };\n // Render target texture callbacks\n let savedSceneClearColor;\n const sceneClearColor = new Color4(0.0, 0.0, 0.0, 1.0);\n this._volumetricLightScatteringRTT.onBeforeRenderObservable.add(() => {\n savedSceneClearColor = scene.clearColor;\n scene.clearColor = sceneClearColor;\n });\n this._volumetricLightScatteringRTT.onAfterRenderObservable.add(() => {\n scene.clearColor = savedSceneClearColor;\n });\n this._volumetricLightScatteringRTT.customIsReadyFunction = (mesh, refreshRate, preWarm) => {\n if ((preWarm || refreshRate === 0) && mesh.subMeshes) {\n for (let i = 0; i < mesh.subMeshes.length; ++i) {\n const subMesh = mesh.subMeshes[i];\n const material = subMesh.getMaterial();\n const renderingMesh = subMesh.getRenderingMesh();\n if (!material) {\n continue;\n }\n const batch = renderingMesh._getInstancesRenderList(subMesh._id, !!subMesh.getReplacementMesh());\n const hardwareInstancedRendering = engine.getCaps().instancedArrays && (batch.visibleInstances[subMesh._id] !== null || renderingMesh.hasThinInstances);\n if (!this._isReady(subMesh, hardwareInstancedRendering)) {\n return false;\n }\n }\n }\n return true;\n };\n this._volumetricLightScatteringRTT.customRenderFunction = (opaqueSubMeshes, alphaTestSubMeshes, transparentSubMeshes, depthOnlySubMeshes) => {\n const engine = scene.getEngine();\n let index;\n if (depthOnlySubMeshes.length) {\n engine.setColorWrite(false);\n for (index = 0; index < depthOnlySubMeshes.length; index++) {\n renderSubMesh(depthOnlySubMeshes.data[index]);\n }\n engine.setColorWrite(true);\n }\n for (index = 0; index < opaqueSubMeshes.length; index++) {\n renderSubMesh(opaqueSubMeshes.data[index]);\n }\n for (index = 0; index < alphaTestSubMeshes.length; index++) {\n renderSubMesh(alphaTestSubMeshes.data[index]);\n }\n if (transparentSubMeshes.length) {\n // Sort sub meshes\n for (index = 0; index < transparentSubMeshes.length; index++) {\n const submesh = transparentSubMeshes.data[index];\n const boundingInfo = submesh.getBoundingInfo();\n if (boundingInfo && scene.activeCamera) {\n submesh._alphaIndex = submesh.getMesh().alphaIndex;\n submesh._distanceToCamera = boundingInfo.boundingSphere.centerWorld.subtract(scene.activeCamera.position).length();\n }\n }\n const sortedArray = transparentSubMeshes.data.slice(0, transparentSubMeshes.length);\n sortedArray.sort((a, b) => {\n // Alpha index first\n if (a._alphaIndex > b._alphaIndex) {\n return 1;\n }\n if (a._alphaIndex < b._alphaIndex) {\n return -1;\n }\n // Then distance to camera\n if (a._distanceToCamera < b._distanceToCamera) {\n return 1;\n }\n if (a._distanceToCamera > b._distanceToCamera) {\n return -1;\n }\n return 0;\n });\n // Render sub meshes\n engine.setAlphaMode(2);\n for (index = 0; index < sortedArray.length; index++) {\n renderSubMesh(sortedArray[index]);\n }\n engine.setAlphaMode(0);\n }\n };\n }\n _updateMeshScreenCoordinates(scene) {\n const transform = scene.getTransformMatrix();\n let meshPosition;\n if (this.useCustomMeshPosition) {\n meshPosition = this.customMeshPosition;\n }\n else if (this.attachedNode) {\n meshPosition = this.attachedNode.position;\n }\n else {\n meshPosition = this.mesh.parent ? this.mesh.getAbsolutePosition() : this.mesh.position;\n }\n const pos = Vector3.Project(meshPosition, Matrix.Identity(), transform, this._viewPort);\n this._screenCoordinates.x = pos.x / this._viewPort.width;\n this._screenCoordinates.y = pos.y / this._viewPort.height;\n if (this.invert) {\n this._screenCoordinates.y = 1.0 - this._screenCoordinates.y;\n }\n }\n // Static methods\n /**\n * Creates a default mesh for the Volumeric Light Scattering post-process\n * @param name The mesh name\n * @param scene The scene where to create the mesh\n * @returns the default mesh\n */\n static CreateDefaultMesh(name, scene) {\n const mesh = CreatePlane(name, { size: 1 }, scene);\n mesh.billboardMode = AbstractMesh.BILLBOARDMODE_ALL;\n const material = new StandardMaterial(name + \"Material\", scene);\n material.emissiveColor = new Color3(1, 1, 1);\n mesh.material = material;\n return mesh;\n }\n}\n__decorate([\n serializeAsVector3()\n], VolumetricLightScatteringPostProcess.prototype, \"customMeshPosition\", void 0);\n__decorate([\n serialize()\n], VolumetricLightScatteringPostProcess.prototype, \"useCustomMeshPosition\", void 0);\n__decorate([\n serialize()\n], VolumetricLightScatteringPostProcess.prototype, \"invert\", void 0);\n__decorate([\n serializeAsMeshReference()\n], VolumetricLightScatteringPostProcess.prototype, \"mesh\", void 0);\n__decorate([\n serialize()\n], VolumetricLightScatteringPostProcess.prototype, \"excludedMeshes\", void 0);\n__decorate([\n serialize()\n], VolumetricLightScatteringPostProcess.prototype, \"includedMeshes\", void 0);\n__decorate([\n serialize()\n], VolumetricLightScatteringPostProcess.prototype, \"exposure\", void 0);\n__decorate([\n serialize()\n], VolumetricLightScatteringPostProcess.prototype, \"decay\", void 0);\n__decorate([\n serialize()\n], VolumetricLightScatteringPostProcess.prototype, \"weight\", void 0);\n__decorate([\n serialize()\n], VolumetricLightScatteringPostProcess.prototype, \"density\", void 0);\nRegisterClass(\"BABYLON.VolumetricLightScatteringPostProcess\", VolumetricLightScatteringPostProcess);\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"screenSpaceCurvaturePixelShader\";\nconst shader = `precision highp float;varying vec2 vUV;uniform sampler2D textureSampler;uniform sampler2D normalSampler;uniform float curvature_ridge;uniform float curvature_valley;\n#ifndef CURVATURE_OFFSET\n#define CURVATURE_OFFSET 1\n#endif\nfloat curvature_soft_clamp(float curvature,float control)\n{if (curvature<0.5/control)\nreturn curvature*(1.0-curvature*control);return 0.25/control;}\nfloat calculate_curvature(ivec2 texel,float ridge,float valley)\n{vec2 normal_up =texelFetch(normalSampler,texel+ivec2(0, CURVATURE_OFFSET),0).rb;vec2 normal_down =texelFetch(normalSampler,texel+ivec2(0,-CURVATURE_OFFSET),0).rb;vec2 normal_left =texelFetch(normalSampler,texel+ivec2(-CURVATURE_OFFSET,0),0).rb;vec2 normal_right=texelFetch(normalSampler,texel+ivec2( CURVATURE_OFFSET,0),0).rb;float normal_diff=((normal_up.g-normal_down.g)+(normal_right.r-normal_left.r));if (normal_diff<0.0)\nreturn -2.0*curvature_soft_clamp(-normal_diff,valley);return 2.0*curvature_soft_clamp(normal_diff,ridge);}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{ivec2 texel=ivec2(gl_FragCoord.xy);vec4 baseColor=texture2D(textureSampler,vUV);float curvature=calculate_curvature(texel,curvature_ridge,curvature_valley);baseColor.rgb*=curvature+1.0;gl_FragColor=baseColor;}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const screenSpaceCurvaturePixelShader = { name, shader };\n","import { __decorate } from \"../tslib.es6.js\";\nimport { Logger } from \"../Misc/logger.js\";\nimport { PostProcess } from \"./postProcess.js\";\n\nimport \"../Rendering/geometryBufferRendererSceneComponent.js\";\nimport \"../Shaders/screenSpaceCurvature.fragment.js\";\nimport { EngineStore } from \"../Engines/engineStore.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { serialize } from \"../Misc/decorators.js\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization.js\";\n/**\n * The Screen Space curvature effect can help highlighting ridge and valley of a model.\n */\nexport class ScreenSpaceCurvaturePostProcess extends PostProcess {\n /**\n * Gets a string identifying the name of the class\n * @returns \"ScreenSpaceCurvaturePostProcess\" string\n */\n getClassName() {\n return \"ScreenSpaceCurvaturePostProcess\";\n }\n /**\n * Creates a new instance ScreenSpaceCurvaturePostProcess\n * @param name The name of the effect.\n * @param scene The scene containing the objects to blur according to their velocity.\n * @param options The required width/height ratio to downsize to before computing the render pass.\n * @param camera The camera to apply the render pass to.\n * @param samplingMode The sampling mode to be used when computing the pass. (default: 0)\n * @param engine The engine which the post process will be applied. (default: current engine)\n * @param reusable If the post process can be reused on the same frame. (default: false)\n * @param textureType Type of textures used when performing the post process. (default: 0)\n * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false)\n */\n constructor(name, scene, options, camera, samplingMode, engine, reusable, textureType = 0, blockCompilation = false) {\n super(name, \"screenSpaceCurvature\", [\"curvature_ridge\", \"curvature_valley\"], [\"textureSampler\", \"normalSampler\"], options, camera, samplingMode, engine, reusable, undefined, textureType, undefined, null, blockCompilation);\n /**\n * Defines how much ridge the curvature effect displays.\n */\n this.ridge = 1;\n /**\n * Defines how much valley the curvature effect displays.\n */\n this.valley = 1;\n this._geometryBufferRenderer = scene.enableGeometryBufferRenderer();\n if (!this._geometryBufferRenderer) {\n // Geometry buffer renderer is not supported. So, work as a passthrough.\n Logger.Error(\"Multiple Render Target support needed for screen space curvature post process. Please use IsSupported test first.\");\n }\n else {\n if (this._geometryBufferRenderer.generateNormalsInWorldSpace) {\n Logger.Error(\"ScreenSpaceCurvaturePostProcess does not support generateNormalsInWorldSpace=true for the geometry buffer renderer!\");\n }\n // Geometry buffer renderer is supported.\n this.onApply = (effect) => {\n effect.setFloat(\"curvature_ridge\", 0.5 / Math.max(this.ridge * this.ridge, 1e-4));\n effect.setFloat(\"curvature_valley\", 0.7 / Math.max(this.valley * this.valley, 1e-4));\n const normalTexture = this._geometryBufferRenderer.getGBuffer().textures[1];\n effect.setTexture(\"normalSampler\", normalTexture);\n };\n }\n }\n /**\n * Support test.\n */\n static get IsSupported() {\n const engine = EngineStore.LastCreatedEngine;\n if (!engine) {\n return false;\n }\n return engine.getCaps().drawBuffersExtension;\n }\n /**\n * @internal\n */\n static _Parse(parsedPostProcess, targetCamera, scene, rootUrl) {\n return SerializationHelper.Parse(() => {\n return new ScreenSpaceCurvaturePostProcess(parsedPostProcess.name, scene, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.textureType, parsedPostProcess.reusable);\n }, parsedPostProcess, scene, rootUrl);\n }\n}\n__decorate([\n serialize()\n], ScreenSpaceCurvaturePostProcess.prototype, \"ridge\", void 0);\n__decorate([\n serialize()\n], ScreenSpaceCurvaturePostProcess.prototype, \"valley\", void 0);\nRegisterClass(\"BABYLON.ScreenSpaceCurvaturePostProcess\", ScreenSpaceCurvaturePostProcess);\n","/**\n * Implementation based on https://medium.com/@shrekshao_71662/dual-depth-peeling-implementation-in-webgl-11baa061ba4b\n */\n\nimport { MultiRenderTarget } from \"../Materials/Textures/multiRenderTarget.js\";\nimport { Color4 } from \"../Maths/math.color.js\";\nimport { SmartArray } from \"../Misc/smartArray.js\";\nimport { ThinTexture } from \"../Materials/Textures/thinTexture.js\";\nimport { EffectRenderer, EffectWrapper } from \"../Materials/effectRenderer.js\";\nimport { RenderTargetTexture } from \"../Materials/Textures/renderTargetTexture.js\";\nimport { Logger } from \"../Misc/logger.js\";\nimport { Material } from \"../Materials/material.js\";\nimport \"../Engines/Extensions/engine.multiRender.js\";\nclass DepthPeelingEffectConfiguration {\n constructor() {\n /**\n * Is this effect enabled\n */\n this.enabled = true;\n /**\n * Name of the configuration\n */\n this.name = \"depthPeeling\";\n /**\n * Textures that should be present in the MRT for this effect to work\n */\n this.texturesRequired = [4];\n }\n}\n/**\n * The depth peeling renderer that performs\n * Order independant transparency (OIT).\n * This should not be instanciated directly, as it is part of a scene component\n */\nexport class DepthPeelingRenderer {\n /**\n * Number of depth peeling passes. As we are using dual depth peeling, each pass two levels of transparency are processed.\n */\n get passCount() {\n return this._passCount;\n }\n set passCount(count) {\n if (this._passCount === count) {\n return;\n }\n this._passCount = count;\n this._createRenderPassIds();\n }\n /**\n * Instructs the renderer to use render passes. It is an optimization that makes the rendering faster for some engines (like WebGPU) but that consumes more memory, so it is disabled by default.\n */\n get useRenderPasses() {\n return this._useRenderPasses;\n }\n set useRenderPasses(usePasses) {\n if (this._useRenderPasses === usePasses) {\n return;\n }\n this._useRenderPasses = usePasses;\n this._createRenderPassIds();\n }\n /**\n * Add a mesh in the exclusion list to prevent it to be handled by the depth peeling renderer\n * @param mesh The mesh to exclude from the depth peeling renderer\n */\n addExcludedMesh(mesh) {\n if (this._excludedMeshes.indexOf(mesh.uniqueId) === -1) {\n this._excludedMeshes.push(mesh.uniqueId);\n }\n }\n /**\n * Remove a mesh from the exclusion list of the depth peeling renderer\n * @param mesh The mesh to remove\n */\n removeExcludedMesh(mesh) {\n const index = this._excludedMeshes.indexOf(mesh.uniqueId);\n if (index !== -1) {\n this._excludedMeshes.splice(index, 1);\n }\n }\n /**\n * Gets the shader language used in this renderer\n */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n /**\n * Instanciates the depth peeling renderer\n * @param scene Scene to attach to\n * @param passCount Number of depth layers to peel\n * @returns The depth peeling renderer\n */\n constructor(scene, passCount = 5) {\n this._thinTextures = [];\n this._currentPingPongState = 0;\n this._layoutCacheFormat = [[true], [true, true], [true, true, true]];\n this._layoutCache = [];\n this._candidateSubMeshes = new SmartArray(10);\n this._excludedSubMeshes = new SmartArray(10);\n this._excludedMeshes = [];\n this._colorCache = [\n new Color4(DepthPeelingRenderer._DEPTH_CLEAR_VALUE, DepthPeelingRenderer._DEPTH_CLEAR_VALUE, 0, 0),\n new Color4(-DepthPeelingRenderer._MIN_DEPTH, DepthPeelingRenderer._MAX_DEPTH, 0, 0),\n new Color4(0, 0, 0, 0),\n ];\n /** Shader language used by the renderer */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this._scene = scene;\n this._engine = scene.getEngine();\n this._passCount = passCount;\n // We need a depth texture for opaque\n if (!scene.enablePrePassRenderer()) {\n Logger.Warn(\"Depth peeling for order independant transparency could not enable PrePass, aborting.\");\n return;\n }\n for (let i = 0; i < this._layoutCacheFormat.length; ++i) {\n this._layoutCache[i] = this._engine.buildTextureLayout(this._layoutCacheFormat[i]);\n }\n this._renderPassIds = [];\n this.useRenderPasses = false;\n if (this._engine.isWebGPU) {\n this._shaderLanguage = 1 /* ShaderLanguage.WGSL */;\n }\n this._prePassEffectConfiguration = new DepthPeelingEffectConfiguration();\n this._createTextures();\n this._createEffects();\n }\n _createRenderPassIds() {\n this._releaseRenderPassIds();\n if (this._useRenderPasses) {\n for (let i = 0; i < this._passCount + 1; ++i) {\n if (!this._renderPassIds[i]) {\n this._renderPassIds[i] = this._engine.createRenderPassId(`DepthPeelingRenderer - pass #${i}`);\n }\n }\n }\n }\n _releaseRenderPassIds() {\n for (let i = 0; i < this._renderPassIds.length; ++i) {\n this._engine.releaseRenderPassId(this._renderPassIds[i]);\n }\n this._renderPassIds = [];\n }\n _createTextures() {\n const size = {\n width: this._engine.getRenderWidth(),\n height: this._engine.getRenderHeight(),\n };\n // 2 for ping pong\n this._depthMrts = [\n new MultiRenderTarget(\"depthPeelingDepth0MRT\", size, 3, this._scene, undefined, [\n \"depthPeelingDepth0MRT_depth\",\n \"depthPeelingDepth0MRT_frontColor\",\n \"depthPeelingDepth0MRT_backColor\",\n ]),\n new MultiRenderTarget(\"depthPeelingDepth1MRT\", size, 3, this._scene, undefined, [\n \"depthPeelingDepth1MRT_depth\",\n \"depthPeelingDepth1MRT_frontColor\",\n \"depthPeelingDepth1MRT_backColor\",\n ]),\n ];\n this._colorMrts = [\n new MultiRenderTarget(\"depthPeelingColor0MRT\", size, 2, this._scene, { generateDepthBuffer: false }, [\n \"depthPeelingColor0MRT_frontColor\",\n \"depthPeelingColor0MRT_backColor\",\n ]),\n new MultiRenderTarget(\"depthPeelingColor1MRT\", size, 2, this._scene, { generateDepthBuffer: false }, [\n \"depthPeelingColor1MRT_frontColor\",\n \"depthPeelingColor1MRT_backColor\",\n ]),\n ];\n this._blendBackMrt = new MultiRenderTarget(\"depthPeelingBackMRT\", size, 1, this._scene, { generateDepthBuffer: false }, [\"depthPeelingBackMRT_blendBack\"]);\n this._outputRT = new RenderTargetTexture(\"depthPeelingOutputRTT\", size, this._scene, false);\n // 0 is a depth texture\n // 1 is a color texture\n const optionsArray = [\n {\n format: 7, // For MSAA we need RGBA\n samplingMode: 1,\n type: this._engine.getCaps().textureFloatLinearFiltering ? 1 : 2,\n label: \"DepthPeelingRenderer-DepthTexture\",\n },\n {\n format: 5,\n samplingMode: 1,\n type: 2, // For MSAA we need FLOAT\n label: \"DepthPeelingRenderer-ColorTexture\",\n },\n ];\n for (let i = 0; i < 2; i++) {\n const depthTexture = this._engine._createInternalTexture(size, optionsArray[0], false);\n const frontColorTexture = this._engine._createInternalTexture(size, optionsArray[1], false);\n const backColorTexture = this._engine._createInternalTexture(size, optionsArray[1], false);\n this._depthMrts[i].setInternalTexture(depthTexture, 0);\n this._depthMrts[i].setInternalTexture(frontColorTexture, 1);\n this._depthMrts[i].setInternalTexture(backColorTexture, 2);\n this._colorMrts[i].setInternalTexture(frontColorTexture, 0);\n this._colorMrts[i].setInternalTexture(backColorTexture, 1);\n this._thinTextures.push(new ThinTexture(depthTexture), new ThinTexture(frontColorTexture), new ThinTexture(backColorTexture));\n }\n }\n // TODO : explore again MSAA with depth peeling when\n // we are able to fetch individual samples in a multisampled renderbuffer\n // public set samples(value: number) {\n // for (let i = 0; i < 2; i++) {\n // this._depthMrts[i].samples = value;\n // this._colorMrts[i].samples = value;\n // }\n // this._scene.prePassRenderer!.samples = value;\n // }\n _disposeTextures() {\n for (let i = 0; i < this._thinTextures.length; i++) {\n if (i === 6) {\n // Do not dispose the shared texture with the prepass\n continue;\n }\n this._thinTextures[i].dispose();\n }\n for (let i = 0; i < 2; i++) {\n this._depthMrts[i].dispose(true);\n this._colorMrts[i].dispose(true);\n this._blendBackMrt.dispose(true);\n }\n this._outputRT.dispose();\n this._thinTextures = [];\n this._colorMrts = [];\n this._depthMrts = [];\n }\n _updateTextures() {\n if (this._depthMrts[0].getSize().width !== this._engine.getRenderWidth() || this._depthMrts[0].getSize().height !== this._engine.getRenderHeight()) {\n this._disposeTextures();\n this._createTextures();\n }\n return this._updateTextureReferences();\n }\n _updateTextureReferences() {\n const prePassRenderer = this._scene.prePassRenderer;\n if (!prePassRenderer) {\n return false;\n }\n // Retrieve opaque color texture\n const textureIndex = prePassRenderer.getIndex(4);\n const prePassTexture = prePassRenderer.defaultRT.textures?.length ? prePassRenderer.defaultRT.textures[textureIndex].getInternalTexture() : null;\n if (!prePassTexture) {\n return false;\n }\n if (this._blendBackTexture !== prePassTexture) {\n this._blendBackTexture = prePassTexture;\n this._blendBackMrt.setInternalTexture(this._blendBackTexture, 0);\n if (this._thinTextures[6]) {\n this._thinTextures[6].dispose();\n }\n this._thinTextures[6] = new ThinTexture(this._blendBackTexture);\n prePassRenderer.defaultRT.renderTarget.shareDepth(this._depthMrts[0].renderTarget);\n }\n return true;\n }\n _createEffects() {\n this._blendBackEffectWrapper = new EffectWrapper({\n fragmentShader: \"oitBackBlend\",\n useShaderStore: true,\n engine: this._engine,\n samplerNames: [\"uBackColor\"],\n uniformNames: [],\n shaderLanguage: this._shaderLanguage,\n extraInitializationsAsync: async () => {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await import(\"../ShadersWGSL/oitBackBlend.fragment.js\");\n }\n else {\n await import(\"../Shaders/oitBackBlend.fragment.js\");\n }\n },\n });\n this._blendBackEffectWrapperPingPong = new EffectWrapper({\n fragmentShader: \"oitBackBlend\",\n useShaderStore: true,\n engine: this._engine,\n samplerNames: [\"uBackColor\"],\n uniformNames: [],\n shaderLanguage: this._shaderLanguage,\n extraInitializationsAsync: async () => {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await import(\"../ShadersWGSL/oitBackBlend.fragment.js\");\n }\n else {\n await import(\"../Shaders/oitBackBlend.fragment.js\");\n }\n },\n });\n this._finalEffectWrapper = new EffectWrapper({\n fragmentShader: \"oitFinal\",\n useShaderStore: true,\n engine: this._engine,\n samplerNames: [\"uFrontColor\", \"uBackColor\"],\n uniformNames: [],\n shaderLanguage: this._shaderLanguage,\n extraInitializationsAsync: async () => {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await import(\"../ShadersWGSL/oitFinal.fragment.js\");\n }\n else {\n await import(\"../Shaders/oitFinal.fragment.js\");\n }\n },\n });\n this._effectRenderer = new EffectRenderer(this._engine);\n }\n /**\n * Links to the prepass renderer\n * @param prePassRenderer The scene PrePassRenderer\n */\n setPrePassRenderer(prePassRenderer) {\n prePassRenderer.addEffectConfiguration(this._prePassEffectConfiguration);\n }\n /**\n * Binds depth peeling textures on an effect\n * @param effect The effect to bind textures on\n */\n bind(effect) {\n effect.setTexture(\"oitDepthSampler\", this._thinTextures[this._currentPingPongState * 3]);\n effect.setTexture(\"oitFrontColorSampler\", this._thinTextures[this._currentPingPongState * 3 + 1]);\n }\n _renderSubMeshes(transparentSubMeshes) {\n let mapMaterialContext;\n if (this._useRenderPasses) {\n mapMaterialContext = {};\n }\n for (let j = 0; j < transparentSubMeshes.length; j++) {\n const material = transparentSubMeshes.data[j].getMaterial();\n let previousShaderHotSwapping = true;\n let previousBFC = false;\n const subMesh = transparentSubMeshes.data[j];\n let drawWrapper;\n let firstDraw = false;\n if (this._useRenderPasses) {\n drawWrapper = subMesh._getDrawWrapper();\n firstDraw = !drawWrapper;\n }\n if (material) {\n previousShaderHotSwapping = material.allowShaderHotSwapping;\n previousBFC = material.backFaceCulling;\n material.allowShaderHotSwapping = false;\n material.backFaceCulling = false;\n }\n subMesh.render(false);\n if (firstDraw) {\n // first time we draw this submesh: we replace the material context\n drawWrapper = subMesh._getDrawWrapper(); // we are sure it is now non empty as we just rendered the submesh\n if (drawWrapper.materialContext) {\n let newMaterialContext = mapMaterialContext[drawWrapper.materialContext.uniqueId];\n if (!newMaterialContext) {\n newMaterialContext = mapMaterialContext[drawWrapper.materialContext.uniqueId] = this._engine.createMaterialContext();\n }\n subMesh._getDrawWrapper().materialContext = newMaterialContext;\n }\n }\n if (material) {\n material.allowShaderHotSwapping = previousShaderHotSwapping;\n material.backFaceCulling = previousBFC;\n }\n }\n }\n _finalCompose(writeId) {\n const output = this._scene.prePassRenderer?.setCustomOutput(this._outputRT);\n if (output) {\n this._engine.bindFramebuffer(this._outputRT.renderTarget);\n }\n else {\n this._engine.restoreDefaultFramebuffer();\n }\n this._engine.setAlphaMode(0);\n this._engine.applyStates();\n this._engine.enableEffect(this._finalEffectWrapper.drawWrapper);\n this._finalEffectWrapper.effect.setTexture(\"uFrontColor\", this._thinTextures[writeId * 3 + 1]);\n this._finalEffectWrapper.effect.setTexture(\"uBackColor\", this._thinTextures[6]);\n this._effectRenderer.render(this._finalEffectWrapper);\n }\n /**\n * Checks if the depth peeling renderer is ready to render transparent meshes\n * @returns true if the depth peeling renderer is ready to render the transparent meshes\n */\n isReady() {\n return (this._blendBackEffectWrapper.effect.isReady() &&\n this._blendBackEffectWrapperPingPong.effect.isReady() &&\n this._finalEffectWrapper.effect.isReady() &&\n this._updateTextures());\n }\n /**\n * Renders transparent submeshes with depth peeling\n * @param transparentSubMeshes List of transparent meshes to render\n * @returns The array of submeshes that could not be handled by this renderer\n */\n render(transparentSubMeshes) {\n this._candidateSubMeshes.length = 0;\n this._excludedSubMeshes.length = 0;\n if (!this.isReady()) {\n return this._excludedSubMeshes;\n }\n if (this._scene.activeCamera) {\n this._engine.setViewport(this._scene.activeCamera.viewport);\n }\n for (let i = 0; i < transparentSubMeshes.length; i++) {\n const subMesh = transparentSubMeshes.data[i];\n const material = subMesh.getMaterial();\n const fillMode = material && subMesh.getRenderingMesh()._getRenderingFillMode(material.fillMode);\n if (material &&\n (fillMode === Material.TriangleFanDrawMode || fillMode === Material.TriangleFillMode || fillMode === Material.TriangleStripDrawMode) &&\n this._excludedMeshes.indexOf(subMesh.getMesh().uniqueId) === -1) {\n this._candidateSubMeshes.push(subMesh);\n }\n else {\n this._excludedSubMeshes.push(subMesh);\n }\n }\n if (!this._candidateSubMeshes.length) {\n this._engine.bindFramebuffer(this._colorMrts[1].renderTarget);\n this._engine.bindAttachments(this._layoutCache[1]);\n this._engine.clear(this._colorCache[2], true, false, false);\n this._engine.unBindFramebuffer(this._colorMrts[1].renderTarget);\n this._finalCompose(1);\n return this._excludedSubMeshes;\n }\n const currentRenderPassId = this._engine.currentRenderPassId;\n this._scene.prePassRenderer._enabled = false;\n if (this._useRenderPasses) {\n this._engine.currentRenderPassId = this._renderPassIds[0];\n }\n // Clears\n this._engine.bindFramebuffer(this._depthMrts[0].renderTarget);\n this._engine.bindAttachments(this._layoutCache[0]);\n this._engine.clear(this._colorCache[0], true, false, false);\n this._engine.unBindFramebuffer(this._depthMrts[0].renderTarget);\n this._engine.bindFramebuffer(this._depthMrts[1].renderTarget);\n this._engine.bindAttachments(this._layoutCache[0]);\n this._engine.clear(this._colorCache[1], true, false, false);\n this._engine.unBindFramebuffer(this._depthMrts[1].renderTarget);\n this._engine.bindFramebuffer(this._colorMrts[0].renderTarget);\n this._engine.bindAttachments(this._layoutCache[1]);\n this._engine.clear(this._colorCache[2], true, false, false);\n this._engine.unBindFramebuffer(this._colorMrts[0].renderTarget);\n this._engine.bindFramebuffer(this._colorMrts[1].renderTarget);\n this._engine.bindAttachments(this._layoutCache[1]);\n this._engine.clear(this._colorCache[2], true, false, false);\n this._engine.unBindFramebuffer(this._colorMrts[1].renderTarget);\n // Draw depth for first pass\n this._engine.bindFramebuffer(this._depthMrts[0].renderTarget);\n this._engine.bindAttachments(this._layoutCache[0]);\n this._engine.setAlphaMode(11); // in WebGPU, when using MIN or MAX equation, the src / dst color factors should not use SRC_ALPHA and the src / dst alpha factors must be 1 else WebGPU will throw a validation error\n this._engine.setAlphaEquation(3);\n this._engine.depthCullingState.depthMask = false;\n this._engine.depthCullingState.depthTest = true;\n this._engine.applyStates();\n this._currentPingPongState = 1;\n // Render\n this._renderSubMeshes(this._candidateSubMeshes);\n this._engine.unBindFramebuffer(this._depthMrts[0].renderTarget);\n this._scene.resetCachedMaterial();\n // depth peeling ping-pong\n let readId = 0;\n let writeId = 0;\n for (let i = 0; i < this._passCount; i++) {\n readId = i % 2;\n writeId = 1 - readId;\n this._currentPingPongState = readId;\n if (this._useRenderPasses) {\n this._engine.currentRenderPassId = this._renderPassIds[i + 1];\n }\n if (this._scene.activeCamera) {\n this._engine.setViewport(this._scene.activeCamera.viewport);\n }\n // Clears\n this._engine.bindFramebuffer(this._depthMrts[writeId].renderTarget);\n this._engine.bindAttachments(this._layoutCache[0]);\n this._engine.clear(this._colorCache[0], true, false, false);\n this._engine.unBindFramebuffer(this._depthMrts[writeId].renderTarget);\n this._engine.bindFramebuffer(this._colorMrts[writeId].renderTarget);\n this._engine.bindAttachments(this._layoutCache[1]);\n this._engine.clear(this._colorCache[2], true, false, false);\n this._engine.unBindFramebuffer(this._colorMrts[writeId].renderTarget);\n this._engine.bindFramebuffer(this._depthMrts[writeId].renderTarget);\n this._engine.bindAttachments(this._layoutCache[2]);\n this._engine.setAlphaMode(11); // the value does not matter (as MAX operation does not use them) but the src and dst color factors should not use SRC_ALPHA else WebGPU will throw a validation error\n this._engine.setAlphaEquation(3);\n this._engine.depthCullingState.depthTest = false;\n this._engine.applyStates();\n // Render\n this._renderSubMeshes(this._candidateSubMeshes);\n this._engine.unBindFramebuffer(this._depthMrts[writeId].renderTarget);\n this._scene.resetCachedMaterial();\n // Back color\n this._engine.bindFramebuffer(this._blendBackMrt.renderTarget);\n this._engine.bindAttachments(this._layoutCache[0]);\n this._engine.setAlphaEquation(0);\n this._engine.setAlphaMode(17);\n this._engine.applyStates();\n const blendBackEffectWrapper = writeId === 0 || !this._useRenderPasses ? this._blendBackEffectWrapper : this._blendBackEffectWrapperPingPong;\n this._engine.enableEffect(blendBackEffectWrapper.drawWrapper);\n blendBackEffectWrapper.effect.setTexture(\"uBackColor\", this._thinTextures[writeId * 3 + 2]);\n this._effectRenderer.render(blendBackEffectWrapper);\n this._engine.unBindFramebuffer(this._blendBackMrt.renderTarget);\n }\n this._engine.currentRenderPassId = currentRenderPassId;\n // Final composition on default FB\n this._finalCompose(writeId);\n this._scene.prePassRenderer._enabled = true;\n this._engine.depthCullingState.depthMask = true;\n this._engine.depthCullingState.depthTest = true;\n return this._excludedSubMeshes;\n }\n /**\n * Disposes the depth peeling renderer and associated ressources\n */\n dispose() {\n this._disposeTextures();\n this._blendBackEffectWrapper.dispose();\n this._finalEffectWrapper.dispose();\n this._effectRenderer.dispose();\n this._releaseRenderPassIds();\n }\n}\nDepthPeelingRenderer._DEPTH_CLEAR_VALUE = -99999.0;\nDepthPeelingRenderer._MIN_DEPTH = 0;\nDepthPeelingRenderer._MAX_DEPTH = 1;\n","\nimport { Scene } from \"../scene.js\";\nimport { SceneComponentConstants } from \"../sceneComponent.js\";\nimport { DepthPeelingRenderer } from \"./depthPeelingRenderer.js\";\nObject.defineProperty(Scene.prototype, \"depthPeelingRenderer\", {\n get: function () {\n if (!this._depthPeelingRenderer) {\n let component = this._getComponent(SceneComponentConstants.NAME_DEPTHPEELINGRENDERER);\n if (!component) {\n component = new DepthPeelingSceneComponent(this);\n this._addComponent(component);\n }\n }\n return this._depthPeelingRenderer;\n },\n set: function (value) {\n this._depthPeelingRenderer = value;\n },\n enumerable: true,\n configurable: true,\n});\nObject.defineProperty(Scene.prototype, \"useOrderIndependentTransparency\", {\n get: function () {\n return this._useOrderIndependentTransparency;\n },\n set: function (value) {\n if (this._useOrderIndependentTransparency === value) {\n return;\n }\n this._useOrderIndependentTransparency = value;\n this.markAllMaterialsAsDirty(63);\n this.prePassRenderer?.markAsDirty();\n },\n enumerable: true,\n configurable: true,\n});\n/**\n * Scene component to render order independent transparency with depth peeling\n */\nexport class DepthPeelingSceneComponent {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(scene) {\n /**\n * The component name helpful to identify the component in the list of scene components.\n */\n this.name = SceneComponentConstants.NAME_DEPTHPEELINGRENDERER;\n this.scene = scene;\n scene.depthPeelingRenderer = new DepthPeelingRenderer(scene);\n }\n /**\n * Registers the component in a given scene\n */\n register() { }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() { }\n /**\n * Disposes the component and the associated resources.\n */\n dispose() {\n this.scene.depthPeelingRenderer?.dispose();\n this.scene.depthPeelingRenderer = null;\n }\n}\n","import { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { AbstractMesh } from \"../Meshes/abstractMesh.js\";\nimport { LinesMesh, InstancedLinesMesh } from \"../Meshes/linesMesh.js\";\nimport { Vector3, TmpVectors } from \"../Maths/math.vector.js\";\nimport { Material } from \"../Materials/material.js\";\nimport { ShaderMaterial } from \"../Materials/shaderMaterial.js\";\nimport { Camera } from \"../Cameras/camera.js\";\n\nimport { SmartArray } from \"../Misc/smartArray.js\";\nimport { DrawWrapper } from \"../Materials/drawWrapper.js\";\nAbstractMesh.prototype.disableEdgesRendering = function () {\n if (this._edgesRenderer) {\n this._edgesRenderer.dispose();\n this._edgesRenderer = null;\n }\n return this;\n};\nAbstractMesh.prototype.enableEdgesRendering = function (epsilon = 0.95, checkVerticesInsteadOfIndices = false, options) {\n this.disableEdgesRendering();\n this._edgesRenderer = new EdgesRenderer(this, epsilon, checkVerticesInsteadOfIndices, true, options);\n return this;\n};\nObject.defineProperty(AbstractMesh.prototype, \"edgesRenderer\", {\n get: function () {\n return this._edgesRenderer;\n },\n enumerable: true,\n configurable: true,\n});\nLinesMesh.prototype.enableEdgesRendering = function (epsilon = 0.95, checkVerticesInsteadOfIndices = false) {\n this.disableEdgesRendering();\n this._edgesRenderer = new LineEdgesRenderer(this, epsilon, checkVerticesInsteadOfIndices);\n return this;\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nInstancedLinesMesh.prototype.enableEdgesRendering = function (epsilon = 0.95, checkVerticesInsteadOfIndices = false) {\n LinesMesh.prototype.enableEdgesRendering.apply(this, arguments);\n return this;\n};\n/**\n * FaceAdjacencies Helper class to generate edges\n */\nclass FaceAdjacencies {\n constructor() {\n this.edges = [];\n this.edgesConnectedCount = 0;\n }\n}\n/**\n * This class is used to generate edges of the mesh that could then easily be rendered in a scene.\n */\nexport class EdgesRenderer {\n /** Gets the vertices generated by the edge renderer */\n get linesPositions() {\n return this._linesPositions;\n }\n /** Gets the normals generated by the edge renderer */\n get linesNormals() {\n return this._linesNormals;\n }\n /** Gets the indices generated by the edge renderer */\n get linesIndices() {\n return this._linesIndices;\n }\n /**\n * Gets or sets the shader used to draw the lines\n */\n get lineShader() {\n return this._lineShader;\n }\n set lineShader(shader) {\n this._lineShader = shader;\n }\n static _GetShader(scene, shaderLanguage) {\n if (!scene._edgeRenderLineShader) {\n const shader = new ShaderMaterial(\"lineShader\", scene, \"line\", {\n attributes: [\"position\", \"normal\"],\n uniforms: [\"world\", \"viewProjection\", \"color\", \"width\", \"aspectRatio\"],\n uniformBuffers: [\"Scene\", \"Mesh\"],\n shaderLanguage: shaderLanguage,\n extraInitializationsAsync: async () => {\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([import(\"../ShadersWGSL/line.vertex.js\"), import(\"../ShadersWGSL/line.fragment.js\")]);\n }\n else {\n await Promise.all([import(\"../Shaders/line.vertex.js\"), import(\"../Shaders/line.fragment.js\")]);\n }\n },\n }, false);\n shader.disableDepthWrite = true;\n shader.backFaceCulling = false;\n shader.checkReadyOnEveryCall = scene.getEngine().isWebGPU;\n scene._edgeRenderLineShader = shader;\n }\n return scene._edgeRenderLineShader;\n }\n /**\n * Gets the shader language used.\n */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n /**\n * Creates an instance of the EdgesRenderer. It is primarily use to display edges of a mesh.\n * Beware when you use this class with complex objects as the adjacencies computation can be really long\n * @param source Mesh used to create edges\n * @param epsilon sum of angles in adjacency to check for edge\n * @param checkVerticesInsteadOfIndices bases the edges detection on vertices vs indices. Note that this parameter is not used if options.useAlternateEdgeFinder = true\n * @param generateEdgesLines - should generate Lines or only prepare resources.\n * @param options The options to apply when generating the edges\n */\n constructor(source, epsilon = 0.95, checkVerticesInsteadOfIndices = false, generateEdgesLines = true, options) {\n /**\n * Define the size of the edges with an orthographic camera\n */\n this.edgesWidthScalerForOrthographic = 1000.0;\n /**\n * Define the size of the edges with a perspective camera\n */\n this.edgesWidthScalerForPerspective = 50.0;\n this._linesPositions = new Array();\n this._linesNormals = new Array();\n this._linesIndices = new Array();\n this._buffers = {};\n this._buffersForInstances = {};\n this._checkVerticesInsteadOfIndices = false;\n /** Gets or sets a boolean indicating if the edgesRenderer is active */\n this.isEnabled = true;\n /**\n * List of instances to render in case the source mesh has instances\n */\n this.customInstances = new SmartArray(32);\n /** Shader language used*/\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this._source = source;\n this._checkVerticesInsteadOfIndices = checkVerticesInsteadOfIndices;\n this._options = options ?? null;\n this._epsilon = epsilon;\n const engine = this._source.getScene().getEngine();\n if (engine.isWebGPU) {\n this._drawWrapper = new DrawWrapper(engine);\n this._shaderLanguage = 1 /* ShaderLanguage.WGSL */;\n }\n this._prepareRessources();\n if (generateEdgesLines) {\n if (options?.useAlternateEdgeFinder ?? true) {\n this._generateEdgesLinesAlternate();\n }\n else {\n this._generateEdgesLines();\n }\n }\n this._meshRebuildObserver = this._source.onRebuildObservable.add(() => {\n this._rebuild();\n });\n this._meshDisposeObserver = this._source.onDisposeObservable.add(() => {\n this.dispose();\n });\n }\n _prepareRessources() {\n if (this._lineShader) {\n return;\n }\n this._lineShader = EdgesRenderer._GetShader(this._source.getScene(), this._shaderLanguage);\n }\n /** @internal */\n _rebuild() {\n let buffer = this._buffers[VertexBuffer.PositionKind];\n if (buffer) {\n buffer._rebuild();\n }\n buffer = this._buffers[VertexBuffer.NormalKind];\n if (buffer) {\n buffer._rebuild();\n }\n const scene = this._source.getScene();\n const engine = scene.getEngine();\n this._ib = engine.createIndexBuffer(this._linesIndices);\n }\n /**\n * Releases the required resources for the edges renderer\n */\n dispose() {\n this._source.onRebuildObservable.remove(this._meshRebuildObserver);\n this._source.onDisposeObservable.remove(this._meshDisposeObserver);\n let buffer = this._buffers[VertexBuffer.PositionKind];\n if (buffer) {\n buffer.dispose();\n this._buffers[VertexBuffer.PositionKind] = null;\n }\n buffer = this._buffers[VertexBuffer.NormalKind];\n if (buffer) {\n buffer.dispose();\n this._buffers[VertexBuffer.NormalKind] = null;\n }\n if (this._ib) {\n this._source.getScene().getEngine()._releaseBuffer(this._ib);\n }\n this._lineShader.dispose();\n this._drawWrapper?.dispose();\n }\n _processEdgeForAdjacencies(pa, pb, p0, p1, p2) {\n if ((pa === p0 && pb === p1) || (pa === p1 && pb === p0)) {\n return 0;\n }\n if ((pa === p1 && pb === p2) || (pa === p2 && pb === p1)) {\n return 1;\n }\n if ((pa === p2 && pb === p0) || (pa === p0 && pb === p2)) {\n return 2;\n }\n return -1;\n }\n _processEdgeForAdjacenciesWithVertices(pa, pb, p0, p1, p2) {\n const eps = 1e-10;\n if ((pa.equalsWithEpsilon(p0, eps) && pb.equalsWithEpsilon(p1, eps)) || (pa.equalsWithEpsilon(p1, eps) && pb.equalsWithEpsilon(p0, eps))) {\n return 0;\n }\n if ((pa.equalsWithEpsilon(p1, eps) && pb.equalsWithEpsilon(p2, eps)) || (pa.equalsWithEpsilon(p2, eps) && pb.equalsWithEpsilon(p1, eps))) {\n return 1;\n }\n if ((pa.equalsWithEpsilon(p2, eps) && pb.equalsWithEpsilon(p0, eps)) || (pa.equalsWithEpsilon(p0, eps) && pb.equalsWithEpsilon(p2, eps))) {\n return 2;\n }\n return -1;\n }\n /**\n * Checks if the pair of p0 and p1 is en edge\n * @param faceIndex\n * @param edge\n * @param faceNormals\n * @param p0\n * @param p1\n * @private\n */\n _checkEdge(faceIndex, edge, faceNormals, p0, p1) {\n let needToCreateLine;\n if (edge === undefined) {\n needToCreateLine = true;\n }\n else {\n const dotProduct = Vector3.Dot(faceNormals[faceIndex], faceNormals[edge]);\n needToCreateLine = dotProduct < this._epsilon;\n }\n if (needToCreateLine) {\n this.createLine(p0, p1, this._linesPositions.length / 3);\n }\n }\n /**\n * push line into the position, normal and index buffer\n * @param p0\n * @param p1\n * @param offset\n * @protected\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n createLine(p0, p1, offset) {\n // Positions\n this._linesPositions.push(p0.x, p0.y, p0.z, p0.x, p0.y, p0.z, p1.x, p1.y, p1.z, p1.x, p1.y, p1.z);\n // Normals\n this._linesNormals.push(p1.x, p1.y, p1.z, -1, p1.x, p1.y, p1.z, 1, p0.x, p0.y, p0.z, -1, p0.x, p0.y, p0.z, 1);\n // Indices\n this._linesIndices.push(offset, offset + 1, offset + 2, offset, offset + 2, offset + 3);\n }\n /**\n * See https://playground.babylonjs.com/#R3JR6V#1 for a visual display of the algorithm\n * @param edgePoints\n * @param indexTriangle\n * @param indices\n * @param remapVertexIndices\n */\n _tessellateTriangle(edgePoints, indexTriangle, indices, remapVertexIndices) {\n const makePointList = (edgePoints, pointIndices, firstIndex) => {\n if (firstIndex >= 0) {\n pointIndices.push(firstIndex);\n }\n for (let i = 0; i < edgePoints.length; ++i) {\n pointIndices.push(edgePoints[i][0]);\n }\n };\n let startEdge = 0;\n if (edgePoints[1].length >= edgePoints[0].length && edgePoints[1].length >= edgePoints[2].length) {\n startEdge = 1;\n }\n else if (edgePoints[2].length >= edgePoints[0].length && edgePoints[2].length >= edgePoints[1].length) {\n startEdge = 2;\n }\n for (let e = 0; e < 3; ++e) {\n if (e === startEdge) {\n edgePoints[e].sort((a, b) => (a[1] < b[1] ? -1 : a[1] > b[1] ? 1 : 0));\n }\n else {\n edgePoints[e].sort((a, b) => (a[1] > b[1] ? -1 : a[1] < b[1] ? 1 : 0));\n }\n }\n const mainPointIndices = [], otherPointIndices = [];\n makePointList(edgePoints[startEdge], mainPointIndices, -1);\n const numMainPoints = mainPointIndices.length;\n for (let i = startEdge + 2; i >= startEdge + 1; --i) {\n makePointList(edgePoints[i % 3], otherPointIndices, i !== startEdge + 2 ? remapVertexIndices[indices[indexTriangle + ((i + 1) % 3)]] : -1);\n }\n const numOtherPoints = otherPointIndices.length;\n const idxMain = 0;\n const idxOther = 0;\n indices.push(remapVertexIndices[indices[indexTriangle + startEdge]], mainPointIndices[0], otherPointIndices[0]);\n indices.push(remapVertexIndices[indices[indexTriangle + ((startEdge + 1) % 3)]], otherPointIndices[numOtherPoints - 1], mainPointIndices[numMainPoints - 1]);\n const bucketIsMain = numMainPoints <= numOtherPoints;\n const bucketStep = bucketIsMain ? numMainPoints : numOtherPoints;\n const bucketLimit = bucketIsMain ? numOtherPoints : numMainPoints;\n const bucketIdxLimit = bucketIsMain ? numMainPoints - 1 : numOtherPoints - 1;\n const winding = bucketIsMain ? 0 : 1;\n let numTris = numMainPoints + numOtherPoints - 2;\n let bucketIdx = bucketIsMain ? idxMain : idxOther;\n let nbucketIdx = bucketIsMain ? idxOther : idxMain;\n const bucketPoints = bucketIsMain ? mainPointIndices : otherPointIndices;\n const nbucketPoints = bucketIsMain ? otherPointIndices : mainPointIndices;\n let bucket = 0;\n while (numTris-- > 0) {\n if (winding) {\n indices.push(bucketPoints[bucketIdx], nbucketPoints[nbucketIdx]);\n }\n else {\n indices.push(nbucketPoints[nbucketIdx], bucketPoints[bucketIdx]);\n }\n bucket += bucketStep;\n let lastIdx;\n if (bucket >= bucketLimit && bucketIdx < bucketIdxLimit) {\n lastIdx = bucketPoints[++bucketIdx];\n bucket -= bucketLimit;\n }\n else {\n lastIdx = nbucketPoints[++nbucketIdx];\n }\n indices.push(lastIdx);\n }\n indices[indexTriangle + 0] = indices[indices.length - 3];\n indices[indexTriangle + 1] = indices[indices.length - 2];\n indices[indexTriangle + 2] = indices[indices.length - 1];\n indices.length = indices.length - 3;\n }\n _generateEdgesLinesAlternate() {\n const positions = this._source.getVerticesData(VertexBuffer.PositionKind);\n let indices = this._source.getIndices();\n if (!indices || !positions) {\n return;\n }\n if (!Array.isArray(indices)) {\n indices = Array.from(indices);\n }\n /**\n * Find all vertices that are at the same location (with an epsilon) and remapp them on the same vertex\n */\n const useFastVertexMerger = this._options?.useFastVertexMerger ?? true;\n const epsVertexMerge = useFastVertexMerger ? Math.round(-Math.log(this._options?.epsilonVertexMerge ?? 1e-6) / Math.log(10)) : (this._options?.epsilonVertexMerge ?? 1e-6);\n const remapVertexIndices = [];\n const uniquePositions = []; // list of unique index of vertices - needed for tessellation\n if (useFastVertexMerger) {\n const mapVertices = {};\n for (let v1 = 0; v1 < positions.length; v1 += 3) {\n const x1 = positions[v1 + 0], y1 = positions[v1 + 1], z1 = positions[v1 + 2];\n const key = x1.toFixed(epsVertexMerge) + \"|\" + y1.toFixed(epsVertexMerge) + \"|\" + z1.toFixed(epsVertexMerge);\n if (mapVertices[key] !== undefined) {\n remapVertexIndices.push(mapVertices[key]);\n }\n else {\n const idx = v1 / 3;\n mapVertices[key] = idx;\n remapVertexIndices.push(idx);\n uniquePositions.push(idx);\n }\n }\n }\n else {\n for (let v1 = 0; v1 < positions.length; v1 += 3) {\n const x1 = positions[v1 + 0], y1 = positions[v1 + 1], z1 = positions[v1 + 2];\n let found = false;\n for (let v2 = 0; v2 < v1 && !found; v2 += 3) {\n const x2 = positions[v2 + 0], y2 = positions[v2 + 1], z2 = positions[v2 + 2];\n if (Math.abs(x1 - x2) < epsVertexMerge && Math.abs(y1 - y2) < epsVertexMerge && Math.abs(z1 - z2) < epsVertexMerge) {\n remapVertexIndices.push(v2 / 3);\n found = true;\n break;\n }\n }\n if (!found) {\n remapVertexIndices.push(v1 / 3);\n uniquePositions.push(v1 / 3);\n }\n }\n }\n if (this._options?.applyTessellation) {\n /**\n * Tessellate triangles if necessary:\n *\n * A\n * +\n * |\\\n * | \\\n * | \\\n * E + \\\n * /| \\\n * / | \\\n * / | \\\n * +---+-------+ B\n * D C\n *\n * For the edges to be rendered correctly, the ABC triangle has to be split into ABE and BCE, else AC is considered to be an edge, whereas only AE should be.\n *\n * The tessellation process looks for the vertices like E that are in-between two other vertices making of an edge and create new triangles as necessary\n */\n // First step: collect the triangles to tessellate\n const epsVertexAligned = this._options?.epsilonVertexAligned ?? 1e-6;\n const mustTesselate = []; // liste of triangles that must be tessellated\n for (let index = 0; index < indices.length; index += 3) {\n // loop over all triangles\n let triangleToTessellate;\n for (let i = 0; i < 3; ++i) {\n // loop over the 3 edges of the triangle\n const p0Index = remapVertexIndices[indices[index + i]];\n const p1Index = remapVertexIndices[indices[index + ((i + 1) % 3)]];\n const p2Index = remapVertexIndices[indices[index + ((i + 2) % 3)]];\n if (p0Index === p1Index) {\n continue;\n } // degenerated triangle - don't process\n const p0x = positions[p0Index * 3 + 0], p0y = positions[p0Index * 3 + 1], p0z = positions[p0Index * 3 + 2];\n const p1x = positions[p1Index * 3 + 0], p1y = positions[p1Index * 3 + 1], p1z = positions[p1Index * 3 + 2];\n const p0p1 = Math.sqrt((p1x - p0x) * (p1x - p0x) + (p1y - p0y) * (p1y - p0y) + (p1z - p0z) * (p1z - p0z));\n for (let v = 0; v < uniquePositions.length - 1; v++) {\n // loop over all (unique) vertices and look for the ones that would be in-between p0 and p1\n const vIndex = uniquePositions[v];\n if (vIndex === p0Index || vIndex === p1Index || vIndex === p2Index) {\n continue;\n } // don't handle the vertex if it is a vertex of the current triangle\n const x = positions[vIndex * 3 + 0], y = positions[vIndex * 3 + 1], z = positions[vIndex * 3 + 2];\n const p0p = Math.sqrt((x - p0x) * (x - p0x) + (y - p0y) * (y - p0y) + (z - p0z) * (z - p0z));\n const pp1 = Math.sqrt((x - p1x) * (x - p1x) + (y - p1y) * (y - p1y) + (z - p1z) * (z - p1z));\n if (Math.abs(p0p + pp1 - p0p1) < epsVertexAligned) {\n // vertices are aligned and p in-between p0 and p1 if distance(p0, p) + distance (p, p1) ~ distance(p0, p1)\n if (!triangleToTessellate) {\n triangleToTessellate = {\n index: index,\n edgesPoints: [[], [], []],\n };\n mustTesselate.push(triangleToTessellate);\n }\n triangleToTessellate.edgesPoints[i].push([vIndex, p0p]);\n }\n }\n }\n }\n // Second step: tesselate the triangles\n for (let t = 0; t < mustTesselate.length; ++t) {\n const triangle = mustTesselate[t];\n this._tessellateTriangle(triangle.edgesPoints, triangle.index, indices, remapVertexIndices);\n }\n mustTesselate.length = 0;\n }\n /**\n * Collect the edges to render\n */\n const edges = {};\n for (let index = 0; index < indices.length; index += 3) {\n let faceNormal;\n for (let i = 0; i < 3; ++i) {\n let p0Index = remapVertexIndices[indices[index + i]];\n let p1Index = remapVertexIndices[indices[index + ((i + 1) % 3)]];\n const p2Index = remapVertexIndices[indices[index + ((i + 2) % 3)]];\n if (p0Index === p1Index || ((p0Index === p2Index || p1Index === p2Index) && this._options?.removeDegeneratedTriangles)) {\n continue;\n }\n TmpVectors.Vector3[0].copyFromFloats(positions[p0Index * 3 + 0], positions[p0Index * 3 + 1], positions[p0Index * 3 + 2]);\n TmpVectors.Vector3[1].copyFromFloats(positions[p1Index * 3 + 0], positions[p1Index * 3 + 1], positions[p1Index * 3 + 2]);\n TmpVectors.Vector3[2].copyFromFloats(positions[p2Index * 3 + 0], positions[p2Index * 3 + 1], positions[p2Index * 3 + 2]);\n if (!faceNormal) {\n TmpVectors.Vector3[1].subtractToRef(TmpVectors.Vector3[0], TmpVectors.Vector3[3]);\n TmpVectors.Vector3[2].subtractToRef(TmpVectors.Vector3[1], TmpVectors.Vector3[4]);\n faceNormal = Vector3.Cross(TmpVectors.Vector3[3], TmpVectors.Vector3[4]);\n faceNormal.normalize();\n }\n if (p0Index > p1Index) {\n const tmp = p0Index;\n p0Index = p1Index;\n p1Index = tmp;\n }\n const key = p0Index + \"_\" + p1Index;\n const ei = edges[key];\n if (ei) {\n if (!ei.done) {\n const dotProduct = Vector3.Dot(faceNormal, ei.normal);\n if (dotProduct < this._epsilon) {\n this.createLine(TmpVectors.Vector3[0], TmpVectors.Vector3[1], this._linesPositions.length / 3);\n }\n ei.done = true;\n }\n }\n else {\n edges[key] = { normal: faceNormal, done: false, index: index, i: i };\n }\n }\n }\n for (const key in edges) {\n const ei = edges[key];\n if (!ei.done) {\n // Orphaned edge - we must display it\n const p0Index = remapVertexIndices[indices[ei.index + ei.i]];\n const p1Index = remapVertexIndices[indices[ei.index + ((ei.i + 1) % 3)]];\n TmpVectors.Vector3[0].copyFromFloats(positions[p0Index * 3 + 0], positions[p0Index * 3 + 1], positions[p0Index * 3 + 2]);\n TmpVectors.Vector3[1].copyFromFloats(positions[p1Index * 3 + 0], positions[p1Index * 3 + 1], positions[p1Index * 3 + 2]);\n this.createLine(TmpVectors.Vector3[0], TmpVectors.Vector3[1], this._linesPositions.length / 3);\n }\n }\n /**\n * Merge into a single mesh\n */\n const engine = this._source.getScene().getEngine();\n this._buffers[VertexBuffer.PositionKind] = new VertexBuffer(engine, this._linesPositions, VertexBuffer.PositionKind, false);\n this._buffers[VertexBuffer.NormalKind] = new VertexBuffer(engine, this._linesNormals, VertexBuffer.NormalKind, false, false, 4);\n this._buffersForInstances[VertexBuffer.PositionKind] = this._buffers[VertexBuffer.PositionKind];\n this._buffersForInstances[VertexBuffer.NormalKind] = this._buffers[VertexBuffer.NormalKind];\n this._ib = engine.createIndexBuffer(this._linesIndices);\n this._indicesCount = this._linesIndices.length;\n }\n /**\n * Generates lines edges from adjacencjes\n * @private\n */\n _generateEdgesLines() {\n const positions = this._source.getVerticesData(VertexBuffer.PositionKind);\n const indices = this._source.getIndices();\n if (!indices || !positions) {\n return;\n }\n // First let's find adjacencies\n const adjacencies = [];\n const faceNormals = [];\n let index;\n let faceAdjacencies;\n // Prepare faces\n for (index = 0; index < indices.length; index += 3) {\n faceAdjacencies = new FaceAdjacencies();\n const p0Index = indices[index];\n const p1Index = indices[index + 1];\n const p2Index = indices[index + 2];\n faceAdjacencies.p0 = new Vector3(positions[p0Index * 3], positions[p0Index * 3 + 1], positions[p0Index * 3 + 2]);\n faceAdjacencies.p1 = new Vector3(positions[p1Index * 3], positions[p1Index * 3 + 1], positions[p1Index * 3 + 2]);\n faceAdjacencies.p2 = new Vector3(positions[p2Index * 3], positions[p2Index * 3 + 1], positions[p2Index * 3 + 2]);\n const faceNormal = Vector3.Cross(faceAdjacencies.p1.subtract(faceAdjacencies.p0), faceAdjacencies.p2.subtract(faceAdjacencies.p1));\n faceNormal.normalize();\n faceNormals.push(faceNormal);\n adjacencies.push(faceAdjacencies);\n }\n // Scan\n for (index = 0; index < adjacencies.length; index++) {\n faceAdjacencies = adjacencies[index];\n for (let otherIndex = index + 1; otherIndex < adjacencies.length; otherIndex++) {\n const otherFaceAdjacencies = adjacencies[otherIndex];\n if (faceAdjacencies.edgesConnectedCount === 3) {\n // Full\n break;\n }\n if (otherFaceAdjacencies.edgesConnectedCount === 3) {\n // Full\n continue;\n }\n const otherP0 = indices[otherIndex * 3];\n const otherP1 = indices[otherIndex * 3 + 1];\n const otherP2 = indices[otherIndex * 3 + 2];\n for (let edgeIndex = 0; edgeIndex < 3; edgeIndex++) {\n let otherEdgeIndex = 0;\n if (faceAdjacencies.edges[edgeIndex] !== undefined) {\n continue;\n }\n switch (edgeIndex) {\n case 0:\n if (this._checkVerticesInsteadOfIndices) {\n otherEdgeIndex = this._processEdgeForAdjacenciesWithVertices(faceAdjacencies.p0, faceAdjacencies.p1, otherFaceAdjacencies.p0, otherFaceAdjacencies.p1, otherFaceAdjacencies.p2);\n }\n else {\n otherEdgeIndex = this._processEdgeForAdjacencies(indices[index * 3], indices[index * 3 + 1], otherP0, otherP1, otherP2);\n }\n break;\n case 1:\n if (this._checkVerticesInsteadOfIndices) {\n otherEdgeIndex = this._processEdgeForAdjacenciesWithVertices(faceAdjacencies.p1, faceAdjacencies.p2, otherFaceAdjacencies.p0, otherFaceAdjacencies.p1, otherFaceAdjacencies.p2);\n }\n else {\n otherEdgeIndex = this._processEdgeForAdjacencies(indices[index * 3 + 1], indices[index * 3 + 2], otherP0, otherP1, otherP2);\n }\n break;\n case 2:\n if (this._checkVerticesInsteadOfIndices) {\n otherEdgeIndex = this._processEdgeForAdjacenciesWithVertices(faceAdjacencies.p2, faceAdjacencies.p0, otherFaceAdjacencies.p0, otherFaceAdjacencies.p1, otherFaceAdjacencies.p2);\n }\n else {\n otherEdgeIndex = this._processEdgeForAdjacencies(indices[index * 3 + 2], indices[index * 3], otherP0, otherP1, otherP2);\n }\n break;\n }\n if (otherEdgeIndex === -1) {\n continue;\n }\n faceAdjacencies.edges[edgeIndex] = otherIndex;\n otherFaceAdjacencies.edges[otherEdgeIndex] = index;\n faceAdjacencies.edgesConnectedCount++;\n otherFaceAdjacencies.edgesConnectedCount++;\n if (faceAdjacencies.edgesConnectedCount === 3) {\n break;\n }\n }\n }\n }\n // Create lines\n for (index = 0; index < adjacencies.length; index++) {\n // We need a line when a face has no adjacency on a specific edge or if all the adjacencies has an angle greater than epsilon\n const current = adjacencies[index];\n this._checkEdge(index, current.edges[0], faceNormals, current.p0, current.p1);\n this._checkEdge(index, current.edges[1], faceNormals, current.p1, current.p2);\n this._checkEdge(index, current.edges[2], faceNormals, current.p2, current.p0);\n }\n // Merge into a single mesh\n const engine = this._source.getScene().getEngine();\n this._buffers[VertexBuffer.PositionKind] = new VertexBuffer(engine, this._linesPositions, VertexBuffer.PositionKind, false);\n this._buffers[VertexBuffer.NormalKind] = new VertexBuffer(engine, this._linesNormals, VertexBuffer.NormalKind, false, false, 4);\n this._buffersForInstances[VertexBuffer.PositionKind] = this._buffers[VertexBuffer.PositionKind];\n this._buffersForInstances[VertexBuffer.NormalKind] = this._buffers[VertexBuffer.NormalKind];\n this._ib = engine.createIndexBuffer(this._linesIndices);\n this._indicesCount = this._linesIndices.length;\n }\n /**\n * Checks whether or not the edges renderer is ready to render.\n * @returns true if ready, otherwise false.\n */\n isReady() {\n return this._lineShader.isReady(this._source, (this._source.hasInstances && this.customInstances.length > 0) || this._source.hasThinInstances);\n }\n /**\n * Renders the edges of the attached mesh,\n */\n render() {\n const scene = this._source.getScene();\n const currentDrawWrapper = this._lineShader._getDrawWrapper();\n if (this._drawWrapper) {\n this._lineShader._setDrawWrapper(this._drawWrapper);\n }\n if (!this.isReady() || !scene.activeCamera) {\n this._lineShader._setDrawWrapper(currentDrawWrapper);\n return;\n }\n const hasInstances = this._source.hasInstances && this.customInstances.length > 0;\n const useBuffersWithInstances = hasInstances || this._source.hasThinInstances;\n let instanceCount = 0;\n if (useBuffersWithInstances) {\n this._buffersForInstances[\"world0\"] = this._source.getVertexBuffer(\"world0\");\n this._buffersForInstances[\"world1\"] = this._source.getVertexBuffer(\"world1\");\n this._buffersForInstances[\"world2\"] = this._source.getVertexBuffer(\"world2\");\n this._buffersForInstances[\"world3\"] = this._source.getVertexBuffer(\"world3\");\n if (hasInstances) {\n const instanceStorage = this._source._instanceDataStorage;\n instanceCount = this.customInstances.length;\n if (!instanceStorage.instancesData) {\n if (!this._source.getScene()._activeMeshesFrozen) {\n this.customInstances.reset();\n }\n return;\n }\n if (!instanceStorage.isFrozen) {\n let offset = 0;\n for (let i = 0; i < instanceCount; ++i) {\n this.customInstances.data[i].copyToArray(instanceStorage.instancesData, offset);\n offset += 16;\n }\n instanceStorage.instancesBuffer.updateDirectly(instanceStorage.instancesData, 0, instanceCount);\n }\n }\n else {\n instanceCount = this._source.thinInstanceCount;\n }\n }\n const engine = scene.getEngine();\n this._lineShader._preBind();\n if (this._source.edgesColor.a !== 1) {\n engine.setAlphaMode(2);\n }\n else {\n engine.setAlphaMode(0);\n }\n // VBOs\n engine.bindBuffers(useBuffersWithInstances ? this._buffersForInstances : this._buffers, this._ib, this._lineShader.getEffect());\n scene.resetCachedMaterial();\n this._lineShader.setColor4(\"color\", this._source.edgesColor);\n if (scene.activeCamera.mode === Camera.ORTHOGRAPHIC_CAMERA) {\n this._lineShader.setFloat(\"width\", this._source.edgesWidth / this.edgesWidthScalerForOrthographic);\n }\n else {\n this._lineShader.setFloat(\"width\", this._source.edgesWidth / this.edgesWidthScalerForPerspective);\n }\n this._lineShader.setFloat(\"aspectRatio\", engine.getAspectRatio(scene.activeCamera));\n this._lineShader.bind(this._source.getWorldMatrix(), this._source);\n // Draw order\n engine.drawElementsType(Material.TriangleFillMode, 0, this._indicesCount, instanceCount);\n this._lineShader.unbind();\n if (useBuffersWithInstances) {\n engine.unbindInstanceAttributes();\n }\n if (!this._source.getScene()._activeMeshesFrozen) {\n this.customInstances.reset();\n }\n this._lineShader._setDrawWrapper(currentDrawWrapper);\n }\n}\n/**\n * LineEdgesRenderer for LineMeshes to remove unnecessary triangulation\n */\nexport class LineEdgesRenderer extends EdgesRenderer {\n /**\n * This constructor turns off auto generating edges line in Edges Renderer to make it here.\n * @param source LineMesh used to generate edges\n * @param epsilon not important (specified angle for edge detection)\n * @param checkVerticesInsteadOfIndices not important for LineMesh\n */\n constructor(source, epsilon = 0.95, checkVerticesInsteadOfIndices = false) {\n super(source, epsilon, checkVerticesInsteadOfIndices, false);\n this._generateEdgesLines();\n }\n /**\n * Generate edges for each line in LinesMesh. Every Line should be rendered as edge.\n */\n _generateEdgesLines() {\n const positions = this._source.getVerticesData(VertexBuffer.PositionKind);\n const indices = this._source.getIndices();\n if (!indices || !positions) {\n return;\n }\n const p0 = TmpVectors.Vector3[0];\n const p1 = TmpVectors.Vector3[1];\n const len = indices.length - 1;\n for (let i = 0, offset = 0; i < len; i += 2, offset += 4) {\n Vector3.FromArrayToRef(positions, 3 * indices[i], p0);\n Vector3.FromArrayToRef(positions, 3 * indices[i + 1], p1);\n this.createLine(p0, p1, offset);\n }\n // Merge into a single mesh\n const engine = this._source.getScene().getEngine();\n this._buffers[VertexBuffer.PositionKind] = new VertexBuffer(engine, this._linesPositions, VertexBuffer.PositionKind, false);\n this._buffers[VertexBuffer.NormalKind] = new VertexBuffer(engine, this._linesNormals, VertexBuffer.NormalKind, false, false, 4);\n this._ib = engine.createIndexBuffer(this._linesIndices);\n this._indicesCount = this._linesIndices.length;\n }\n}\n","import { __decorate } from \"../../tslib.es6.js\";\nimport { MaterialDefines } from \"../../Materials/materialDefines.js\";\nimport { MaterialPluginBase } from \"../../Materials/materialPluginBase.js\";\n\nimport { PBRBaseMaterial } from \"../../Materials/PBR/pbrBaseMaterial.js\";\nimport { expandToProperty, serialize } from \"../../Misc/decorators.js\";\nimport { RegisterClass } from \"../../Misc/typeStore.js\";\n/**\n * @internal\n */\nclass MaterialIBLShadowsRenderDefines extends MaterialDefines {\n constructor() {\n super(...arguments);\n this.RENDER_WITH_IBL_SHADOWS = false;\n }\n}\n/**\n * Plugin used to render the contribution from IBL shadows.\n */\nexport class IBLShadowsPluginMaterial extends MaterialPluginBase {\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled);\n this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n /**\n * Gets a boolean indicating that the plugin is compatible with a give shader language.\n * @returns true if the plugin is compatible with the shader language\n */\n isCompatible() {\n return true;\n }\n constructor(material) {\n super(material, IBLShadowsPluginMaterial.Name, 310, new MaterialIBLShadowsRenderDefines());\n /**\n * The opacity of the shadows.\n */\n this.shadowOpacity = 1.0;\n this._isEnabled = false;\n /**\n * Defines if the plugin is enabled in the material.\n */\n this.isEnabled = false;\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];\n }\n prepareDefines(defines) {\n defines.RENDER_WITH_IBL_SHADOWS = this._isEnabled;\n }\n getClassName() {\n return \"IBLShadowsPluginMaterial\";\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"renderTargetSize\", size: 2, type: \"vec2\" },\n { name: \"shadowOpacity\", size: 1, type: \"float\" },\n ],\n fragment: `#ifdef RENDER_WITH_IBL_SHADOWS\r\n uniform vec2 renderTargetSize;\r\n uniform float shadowOpacity;\r\n #endif`,\n };\n }\n getSamplers(samplers) {\n samplers.push(\"iblShadowsTexture\");\n }\n bindForSubMesh(uniformBuffer) {\n if (this._isEnabled) {\n uniformBuffer.bindTexture(\"iblShadowsTexture\", this.iblShadowsTexture);\n uniformBuffer.updateFloat2(\"renderTargetSize\", this._material.getScene().getEngine().getRenderWidth(), this._material.getScene().getEngine().getRenderHeight());\n uniformBuffer.updateFloat(\"shadowOpacity\", this.shadowOpacity);\n }\n }\n getCustomCode(shaderType, shaderLanguage) {\n let frag;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n frag = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_DEFINITIONS: `\r\n #ifdef RENDER_WITH_IBL_SHADOWS\r\n var iblShadowsTextureSampler: sampler;\r\n var iblShadowsTexture: texture_2d;\r\n\r\n fn computeIndirectShadow() -> vec2f {\r\n var uv = fragmentInputs.position.xy / uniforms.renderTargetSize;\r\n var shadowValue: vec2f = textureSample(iblShadowsTexture, iblShadowsTextureSampler, uv).rg;\r\n return mix(shadowValue, vec2f(1.0), 1.0 - uniforms.shadowOpacity);\r\n }\r\n #endif\r\n `,\n };\n if (this._material instanceof PBRBaseMaterial) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n frag[\"CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION\"] = `\r\n #ifdef RENDER_WITH_IBL_SHADOWS\r\n #ifdef REFLECTION\r\n var shadowValue: vec2f = computeIndirectShadow();\r\n finalIrradiance *= vec3f(shadowValue.x);\r\n finalRadianceScaled *= vec3f(mix(pow(shadowValue.y, 4.0), shadowValue.x, roughness));\r\n #endif\r\n #endif\r\n `;\n }\n else {\n frag[\"CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\"] = `\r\n #ifdef RENDER_WITH_IBL_SHADOWS\r\n var shadowValue: vec2f = computeIndirectShadow();\r\n color *= toGammaSpace(vec4f(shadowValue.x, shadowValue.x, shadowValue.x, 1.0f));\r\n #endif\r\n `;\n }\n }\n else {\n frag = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_DEFINITIONS: `\r\n #ifdef RENDER_WITH_IBL_SHADOWS\r\n uniform sampler2D iblShadowsTexture;\r\n\r\n vec2 computeIndirectShadow() {\r\n vec2 uv = gl_FragCoord.xy / renderTargetSize;\r\n vec2 shadowValue = texture2D(iblShadowsTexture, uv).rg;\r\n return mix(shadowValue.rg, vec2(1.0), 1.0 - shadowOpacity);\r\n }\r\n #endif\r\n `,\n };\n if (this._material instanceof PBRBaseMaterial) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n frag[\"CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION\"] = `\r\n #ifdef RENDER_WITH_IBL_SHADOWS\r\n #ifdef REFLECTION\r\n vec2 shadowValue = computeIndirectShadow();\r\n finalIrradiance *= shadowValue.x;\r\n finalRadianceScaled *= mix(pow(shadowValue.y, 4.0), shadowValue.x, roughness);\r\n #endif\r\n #endif\r\n `;\n }\n else {\n frag[\"CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\"] = `\r\n #ifdef RENDER_WITH_IBL_SHADOWS\r\n vec2 shadowValue = computeIndirectShadow();\r\n color.rgb *= toGammaSpace(shadowValue.x);\r\n #endif\r\n `;\n }\n }\n return shaderType === \"vertex\" ? null : frag;\n }\n}\n/**\n * Defines the name of the plugin.\n */\nIBLShadowsPluginMaterial.Name = \"IBLShadowsPluginMaterial\";\n__decorate([\n serialize()\n], IBLShadowsPluginMaterial.prototype, \"iblShadowsTexture\", void 0);\n__decorate([\n serialize()\n], IBLShadowsPluginMaterial.prototype, \"shadowOpacity\", void 0);\n__decorate([\n serialize(),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], IBLShadowsPluginMaterial.prototype, \"isEnabled\", void 0);\nRegisterClass(`BABYLON.IBLShadowsPluginMaterial`, IBLShadowsPluginMaterial);\n","import { MultiRenderTarget } from \"./multiRenderTarget.js\";\nimport { ImageProcessingPostProcess } from \"../../PostProcesses/imageProcessingPostProcess.js\";\n/**\n * A multi render target designed to render the prepass.\n * Prepass is a scene component used to render information in multiple textures\n * alongside with the scene materials rendering.\n * Note : This is an internal class, and you should NOT need to instanciate this.\n * Only the `PrePassRenderer` should instanciate this class.\n * It is more likely that you need a regular `MultiRenderTarget`\n * @internal\n */\nexport class PrePassRenderTarget extends MultiRenderTarget {\n constructor(name, renderTargetTexture, size, count, scene, options) {\n super(name, size, count, scene, options);\n /**\n * @internal\n */\n this._beforeCompositionPostProcesses = [];\n /**\n * @internal\n */\n this._internalTextureDirty = false;\n /**\n * Is this render target enabled for prepass rendering\n */\n this.enabled = false;\n /**\n * Render target associated with this prePassRenderTarget\n * If this is `null`, it means this prePassRenderTarget is associated with the scene\n */\n this.renderTargetTexture = null;\n this.renderTargetTexture = renderTargetTexture;\n }\n /**\n * Creates a composition effect for this RT\n * @internal\n */\n _createCompositionEffect() {\n this.imageProcessingPostProcess = new ImageProcessingPostProcess(\"prePassComposition\", 1, null, undefined, this._engine);\n this.imageProcessingPostProcess._updateParameters();\n }\n /**\n * Checks that the size of this RT is still adapted to the desired render size.\n * @internal\n */\n _checkSize() {\n const requiredWidth = this._engine.getRenderWidth(true);\n const requiredHeight = this._engine.getRenderHeight(true);\n const width = this.getRenderWidth();\n const height = this.getRenderHeight();\n if (width !== requiredWidth || height !== requiredHeight) {\n this.resize({ width: requiredWidth, height: requiredHeight });\n this._internalTextureDirty = true;\n }\n }\n /**\n * Changes the number of render targets in this MRT\n * Be careful as it will recreate all the data in the new texture.\n * @param count new texture count\n * @param options Specifies texture types and sampling modes for new textures\n * @param textureNames Specifies the names of the textures (optional)\n */\n updateCount(count, options, textureNames) {\n super.updateCount(count, options, textureNames);\n this._internalTextureDirty = true;\n }\n /**\n * Resets the post processes chains applied to this RT.\n * @internal\n */\n _resetPostProcessChain() {\n this._beforeCompositionPostProcesses.length = 0;\n }\n /**\n * Diposes this render target\n */\n dispose() {\n const scene = this._scene;\n super.dispose();\n if (scene && scene.prePassRenderer) {\n const index = scene.prePassRenderer.renderTargets.indexOf(this);\n if (index !== -1) {\n scene.prePassRenderer.renderTargets.splice(index, 1);\n }\n }\n if (this.imageProcessingPostProcess) {\n this.imageProcessingPostProcess.dispose();\n }\n if (this.renderTargetTexture) {\n this.renderTargetTexture._prePassRenderTarget = null;\n }\n if (this._outputPostProcess) {\n this._outputPostProcess.autoClear = true;\n this._outputPostProcess.restoreDefaultInputTexture();\n }\n }\n}\n","import { PrePassRenderTarget } from \"../Materials/Textures/prePassRenderTarget.js\";\n\nimport { _WarnImport } from \"../Misc/devTools.js\";\nimport { Color4 } from \"../Maths/math.color.js\";\nimport { Material } from \"../Materials/material.js\";\nimport { GeometryBufferRenderer } from \"../Rendering/geometryBufferRenderer.js\";\nimport \"../Engines/Extensions/engine.multiRender.js\";\n/**\n * Renders a pre pass of the scene\n * This means every mesh in the scene will be rendered to a render target texture\n * And then this texture will be composited to the rendering canvas with post processes\n * It is necessary for effects like subsurface scattering or deferred shading\n */\nexport class PrePassRenderer {\n /**\n * Indicates if the prepass renderer is generating normals in world space or camera space (default: camera space)\n */\n get generateNormalsInWorldSpace() {\n return this._generateNormalsInWorldSpace;\n }\n set generateNormalsInWorldSpace(value) {\n if (this._generateNormalsInWorldSpace === value) {\n return;\n }\n this._generateNormalsInWorldSpace = value;\n this._markAllMaterialsAsPrePassDirty();\n }\n /**\n * Returns the index of a texture in the multi render target texture array.\n * @param type Texture type\n * @returns The index\n */\n getIndex(type) {\n return this._textureIndices[type];\n }\n /**\n * How many samples are used for MSAA of the scene render target\n */\n get samples() {\n return this.defaultRT.samples;\n }\n set samples(n) {\n this.defaultRT.samples = n;\n }\n /**\n * If set to true (default: false), the depth texture will be cleared with the depth value corresponding to the far plane (1 in normal mode, 0 in reverse depth buffer mode)\n * If set to false, the depth texture is always cleared with 0.\n */\n get useSpecificClearForDepthTexture() {\n return this._useSpecificClearForDepthTexture;\n }\n set useSpecificClearForDepthTexture(value) {\n if (this._useSpecificClearForDepthTexture === value) {\n return;\n }\n this._useSpecificClearForDepthTexture = value;\n this._isDirty = true;\n }\n /**\n * @returns the prepass render target for the rendering pass.\n * If we are currently rendering a render target, it returns the PrePassRenderTarget\n * associated with that render target. Otherwise, it returns the scene default PrePassRenderTarget\n */\n getRenderTarget() {\n return this._currentTarget;\n }\n /**\n * @internal\n * Managed by the scene component\n * @param prePassRenderTarget\n */\n _setRenderTarget(prePassRenderTarget) {\n if (prePassRenderTarget) {\n this._currentTarget = prePassRenderTarget;\n }\n else {\n this._currentTarget = this.defaultRT;\n this._engine.currentRenderPassId = this._scene.activeCamera?.renderPassId ?? this._currentTarget.renderPassId;\n }\n }\n /**\n * Returns true if the currently rendered prePassRenderTarget is the one\n * associated with the scene.\n */\n get currentRTisSceneRT() {\n return this._currentTarget === this.defaultRT;\n }\n _refreshGeometryBufferRendererLink() {\n if (!this.doNotUseGeometryRendererFallback) {\n this._geometryBuffer = this._scene.enableGeometryBufferRenderer();\n if (!this._geometryBuffer) {\n // Not supported\n this.doNotUseGeometryRendererFallback = true;\n return;\n }\n this._geometryBuffer._linkPrePassRenderer(this);\n }\n else {\n if (this._geometryBuffer) {\n this._geometryBuffer._unlinkPrePassRenderer();\n }\n this._geometryBuffer = null;\n this._scene.disableGeometryBufferRenderer();\n }\n }\n /**\n * Indicates if the prepass is enabled\n */\n get enabled() {\n return this._enabled;\n }\n /**\n * Instantiates a prepass renderer\n * @param scene The scene\n */\n constructor(scene) {\n /**\n * To save performance, we can excluded skinned meshes from the prepass\n */\n this.excludedSkinnedMesh = [];\n /**\n * Force material to be excluded from the prepass\n * Can be useful when `useGeometryBufferFallback` is set to `true`\n * and you don't want a material to show in the effect.\n */\n this.excludedMaterials = [];\n /**\n * Number of textures in the multi render target texture where the scene is directly rendered\n */\n this.mrtCount = 0;\n this._mrtTypes = [];\n this._mrtFormats = [];\n this._mrtLayout = [];\n this._mrtNames = [];\n this._textureIndices = [];\n this._generateNormalsInWorldSpace = false;\n this._useSpecificClearForDepthTexture = false;\n this._isDirty = true;\n /**\n * Configuration for prepass effects\n */\n this._effectConfigurations = [];\n /**\n * Prevents the PrePassRenderer from using the GeometryBufferRenderer as a fallback\n */\n this.doNotUseGeometryRendererFallback = true;\n /**\n * All the render targets generated by prepass\n */\n this.renderTargets = [];\n this._clearColor = new Color4(0, 0, 0, 0);\n this._clearDepthColor = new Color4(1e8, 0, 0, 1); // \"infinity\" value - depth in the depth texture is view.z, not a 0..1 value!\n this._enabled = false;\n this._needsCompositionForThisPass = false;\n /**\n * Set to true to disable gamma transform in PrePass.\n * Can be useful in case you already proceed to gamma transform on a material level\n * and your post processes don't need to be in linear color space.\n */\n this.disableGammaTransform = false;\n this._scene = scene;\n this._engine = scene.getEngine();\n let type = 0;\n if (this._engine._caps.textureFloat && this._engine._caps.textureFloatLinearFiltering) {\n type = 1;\n }\n else if (this._engine._caps.textureHalfFloat && this._engine._caps.textureHalfFloatLinearFiltering) {\n type = 2;\n }\n for (let i = 0; i < PrePassRenderer.TextureFormats.length; ++i) {\n const format = PrePassRenderer.TextureFormats[i].format;\n if (PrePassRenderer.TextureFormats[i].type === 1) {\n PrePassRenderer.TextureFormats[i].type = type;\n if (type === 1 &&\n (format === 6 || format === 7 || format === 5) &&\n !this._engine._caps.supportFloatTexturesResolve) {\n // We don't know in advance if the texture will be used as a resolve target, so we revert to half_float if the extension to resolve full float textures is not supported\n PrePassRenderer.TextureFormats[i].type = 2;\n }\n }\n }\n PrePassRenderer._SceneComponentInitialization(this._scene);\n this.defaultRT = this._createRenderTarget(\"sceneprePassRT\", null);\n this._currentTarget = this.defaultRT;\n }\n /**\n * Creates a new PrePassRenderTarget\n * This should be the only way to instantiate a `PrePassRenderTarget`\n * @param name Name of the `PrePassRenderTarget`\n * @param renderTargetTexture RenderTarget the `PrePassRenderTarget` will be attached to.\n * Can be `null` if the created `PrePassRenderTarget` is attached to the scene (default framebuffer).\n * @internal\n */\n _createRenderTarget(name, renderTargetTexture) {\n const rt = new PrePassRenderTarget(name, renderTargetTexture, { width: this._engine.getRenderWidth(), height: this._engine.getRenderHeight() }, 0, this._scene, {\n generateMipMaps: false,\n generateStencilBuffer: this._engine.isStencilEnable,\n defaultType: 0,\n types: [],\n drawOnlyOnFirstAttachmentByDefault: true,\n });\n this.renderTargets.push(rt);\n if (this._enabled) {\n // The pre-pass renderer is already enabled, so make sure we create the render target with the correct number of textures\n this._update();\n }\n return rt;\n }\n /**\n * Indicates if rendering a prepass is supported\n */\n get isSupported() {\n return this._scene.getEngine().getCaps().drawBuffersExtension;\n }\n /**\n * Sets the proper output textures to draw in the engine.\n * @param effect The effect that is drawn. It can be or not be compatible with drawing to several output textures.\n * @param subMesh Submesh on which the effect is applied\n */\n bindAttachmentsForEffect(effect, subMesh) {\n const material = subMesh.getMaterial();\n const isPrePassCapable = material && material.isPrePassCapable;\n const excluded = material && this.excludedMaterials.indexOf(material) !== -1;\n if (this.enabled && this._currentTarget.enabled) {\n if (effect._multiTarget && isPrePassCapable && !excluded) {\n this._engine.bindAttachments(this._multiRenderAttachments);\n }\n else {\n if (this._engine._currentRenderTarget) {\n this._engine.bindAttachments(this._defaultAttachments);\n }\n else {\n this._engine.restoreSingleAttachment();\n }\n if (this._geometryBuffer && this.currentRTisSceneRT && !excluded) {\n this._geometryBuffer.renderList.push(subMesh.getRenderingMesh());\n }\n }\n }\n }\n _reinitializeAttachments() {\n const multiRenderLayout = [];\n const clearLayout = [false];\n const clearDepthLayout = [false];\n const defaultLayout = [true];\n for (let i = 0; i < this.mrtCount; i++) {\n multiRenderLayout.push(true);\n if (i > 0) {\n if (this._useSpecificClearForDepthTexture && this._mrtLayout[i] === 5) {\n clearLayout.push(false);\n clearDepthLayout.push(true);\n }\n else {\n clearLayout.push(true);\n clearDepthLayout.push(false);\n }\n defaultLayout.push(false);\n }\n }\n this._multiRenderAttachments = this._engine.buildTextureLayout(multiRenderLayout);\n this._clearAttachments = this._engine.buildTextureLayout(clearLayout);\n this._clearDepthAttachments = this._engine.buildTextureLayout(clearDepthLayout);\n this._defaultAttachments = this._engine.buildTextureLayout(defaultLayout);\n }\n _resetLayout() {\n for (let i = 0; i < PrePassRenderer.TextureFormats.length; i++) {\n this._textureIndices[PrePassRenderer.TextureFormats[i].purpose] = -1;\n }\n this._textureIndices[4] = 0;\n this._mrtLayout = [4];\n this._mrtTypes = [PrePassRenderer.TextureFormats[4].type];\n this._mrtFormats = [PrePassRenderer.TextureFormats[4].format];\n this._mrtNames = [PrePassRenderer.TextureFormats[4].name];\n this.mrtCount = 1;\n }\n _updateGeometryBufferLayout() {\n this._refreshGeometryBufferRendererLink();\n if (this._geometryBuffer) {\n this._geometryBuffer._resetLayout();\n const texturesActivated = [];\n for (let i = 0; i < this._mrtLayout.length; i++) {\n texturesActivated.push(false);\n }\n this._geometryBuffer._linkInternalTexture(this.defaultRT.getInternalTexture());\n const matches = [\n {\n prePassConstant: 5,\n geometryBufferConstant: GeometryBufferRenderer.DEPTH_TEXTURE_TYPE,\n },\n {\n prePassConstant: 6,\n geometryBufferConstant: GeometryBufferRenderer.NORMAL_TEXTURE_TYPE,\n },\n {\n prePassConstant: 1,\n geometryBufferConstant: GeometryBufferRenderer.POSITION_TEXTURE_TYPE,\n },\n {\n prePassConstant: 3,\n geometryBufferConstant: GeometryBufferRenderer.REFLECTIVITY_TEXTURE_TYPE,\n },\n {\n prePassConstant: 2,\n geometryBufferConstant: GeometryBufferRenderer.VELOCITY_TEXTURE_TYPE,\n },\n ];\n // replace textures in the geometryBuffer RT\n for (let i = 0; i < matches.length; i++) {\n const index = this._mrtLayout.indexOf(matches[i].prePassConstant);\n if (index !== -1) {\n this._geometryBuffer._forceTextureType(matches[i].geometryBufferConstant, index);\n texturesActivated[index] = true;\n }\n }\n this._geometryBuffer._setAttachments(this._engine.buildTextureLayout(texturesActivated));\n }\n }\n /**\n * Restores attachments for single texture draw.\n */\n restoreAttachments() {\n if (this.enabled && this._currentTarget.enabled && this._defaultAttachments) {\n if (this._engine._currentRenderTarget) {\n this._engine.bindAttachments(this._defaultAttachments);\n }\n else {\n this._engine.restoreSingleAttachment();\n }\n }\n }\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _beforeDraw(camera, faceIndex, layer) {\n // const previousEnabled = this._enabled && this._currentTarget.enabled;\n if (this._isDirty) {\n this._update();\n }\n if (!this._enabled || !this._currentTarget.enabled) {\n return;\n }\n if (this._geometryBuffer) {\n this._geometryBuffer.renderList = [];\n }\n this._setupOutputForThisPass(this._currentTarget, camera);\n }\n _prepareFrame(prePassRenderTarget, faceIndex, layer) {\n if (prePassRenderTarget.renderTargetTexture) {\n prePassRenderTarget.renderTargetTexture._prepareFrame(this._scene, faceIndex, layer, prePassRenderTarget.renderTargetTexture.useCameraPostProcesses);\n }\n else if (this._postProcessesSourceForThisPass.length) {\n this._scene.postProcessManager._prepareFrame();\n }\n else {\n this._engine.restoreDefaultFramebuffer();\n }\n }\n /**\n * Sets an intermediary texture between prepass and postprocesses. This texture\n * will be used as input for post processes\n * @param rt The render target texture to use\n * @returns true if there are postprocesses that will use this texture,\n * false if there is no postprocesses - and the function has no effect\n */\n setCustomOutput(rt) {\n const firstPP = this._postProcessesSourceForThisPass[0];\n if (!firstPP) {\n return false;\n }\n firstPP.inputTexture = rt.renderTarget;\n return true;\n }\n _renderPostProcesses(prePassRenderTarget, faceIndex) {\n const firstPP = this._postProcessesSourceForThisPass[0];\n const outputTexture = firstPP ? firstPP.inputTexture : prePassRenderTarget.renderTargetTexture ? prePassRenderTarget.renderTargetTexture.renderTarget : null;\n // Build post process chain for this prepass post draw\n let postProcessChain = this._currentTarget._beforeCompositionPostProcesses;\n if (this._needsCompositionForThisPass) {\n postProcessChain = postProcessChain.concat([this._currentTarget.imageProcessingPostProcess]);\n }\n // Activates and renders the chain\n if (postProcessChain.length) {\n this._scene.postProcessManager._prepareFrame(this._currentTarget.renderTarget?.texture, postProcessChain);\n this._scene.postProcessManager.directRender(postProcessChain, outputTexture, false, faceIndex);\n }\n }\n /**\n * @internal\n */\n _afterDraw(faceIndex, layer) {\n if (this._enabled && this._currentTarget.enabled) {\n this._prepareFrame(this._currentTarget, faceIndex, layer);\n this._renderPostProcesses(this._currentTarget, faceIndex);\n }\n }\n /**\n * Clears the current prepass render target (in the sense of settings pixels to the scene clear color value)\n * @internal\n */\n _clear() {\n if (this._isDirty) {\n this._update();\n }\n if (this._enabled && this._currentTarget.enabled) {\n this._bindFrameBuffer();\n // Clearing other attachment with 0 on all other attachments\n this._engine.bindAttachments(this._clearAttachments);\n this._engine.clear(this._clearColor, true, false, false);\n if (this._useSpecificClearForDepthTexture) {\n this._engine.bindAttachments(this._clearDepthAttachments);\n this._engine.clear(this._clearDepthColor, true, false, false);\n }\n // Regular clear color with the scene clear color of the 1st attachment\n this._engine.bindAttachments(this._defaultAttachments);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _bindFrameBuffer() {\n if (this._enabled && this._currentTarget.enabled) {\n this._currentTarget._checkSize();\n const internalTexture = this._currentTarget.renderTarget;\n if (internalTexture) {\n this._engine.bindFramebuffer(internalTexture);\n }\n }\n }\n _setEnabled(enabled) {\n this._enabled = enabled;\n }\n _setRenderTargetEnabled(prePassRenderTarget, enabled) {\n prePassRenderTarget.enabled = enabled;\n if (!enabled) {\n this._unlinkInternalTexture(prePassRenderTarget);\n }\n }\n /**\n * Adds an effect configuration to the prepass render target.\n * If an effect has already been added, it won't add it twice and will return the configuration\n * already present.\n * @param cfg the effect configuration\n * @returns the effect configuration now used by the prepass\n */\n addEffectConfiguration(cfg) {\n // Do not add twice\n for (let i = 0; i < this._effectConfigurations.length; i++) {\n if (this._effectConfigurations[i].name === cfg.name) {\n return this._effectConfigurations[i];\n }\n }\n this._effectConfigurations.push(cfg);\n return cfg;\n }\n /**\n * Retrieves an effect configuration by name\n * @param name the name of the effect configuration\n * @returns the effect configuration, or null if not present\n */\n getEffectConfiguration(name) {\n for (let i = 0; i < this._effectConfigurations.length; i++) {\n if (this._effectConfigurations[i].name === name) {\n return this._effectConfigurations[i];\n }\n }\n return null;\n }\n _enable() {\n const previousMrtCount = this.mrtCount;\n for (let i = 0; i < this._effectConfigurations.length; i++) {\n if (this._effectConfigurations[i].enabled) {\n this._enableTextures(this._effectConfigurations[i].texturesRequired);\n }\n }\n for (let i = 0; i < this.renderTargets.length; i++) {\n if (this.mrtCount !== previousMrtCount || this.renderTargets[i].count !== this.mrtCount) {\n this.renderTargets[i].updateCount(this.mrtCount, { types: this._mrtTypes, formats: this._mrtFormats }, this._mrtNames.concat(\"prePass_DepthBuffer\"));\n }\n this.renderTargets[i]._resetPostProcessChain();\n for (let j = 0; j < this._effectConfigurations.length; j++) {\n if (this._effectConfigurations[j].enabled) {\n // TODO : subsurface scattering has 1 scene-wide effect configuration\n // solution : do not stock postProcess on effectConfiguration, but in the prepassRenderTarget (hashmap configuration => postProcess)\n // And call createPostProcess whenever the post process does not exist in the RT\n if (!this._effectConfigurations[j].postProcess && this._effectConfigurations[j].createPostProcess) {\n this._effectConfigurations[j].createPostProcess();\n }\n if (this._effectConfigurations[j].postProcess) {\n this.renderTargets[i]._beforeCompositionPostProcesses.push(this._effectConfigurations[j].postProcess);\n }\n }\n }\n }\n this._reinitializeAttachments();\n this._setEnabled(true);\n this._updateGeometryBufferLayout();\n }\n _disable() {\n this._setEnabled(false);\n for (let i = 0; i < this.renderTargets.length; i++) {\n this._setRenderTargetEnabled(this.renderTargets[i], false);\n }\n this._resetLayout();\n for (let i = 0; i < this._effectConfigurations.length; i++) {\n this._effectConfigurations[i].enabled = false;\n }\n }\n _getPostProcessesSource(prePassRenderTarget, camera) {\n if (camera) {\n return camera._postProcesses;\n }\n else if (prePassRenderTarget.renderTargetTexture) {\n if (prePassRenderTarget.renderTargetTexture.useCameraPostProcesses) {\n const camera = prePassRenderTarget.renderTargetTexture.activeCamera ? prePassRenderTarget.renderTargetTexture.activeCamera : this._scene.activeCamera;\n return camera ? camera._postProcesses : [];\n }\n else if (prePassRenderTarget.renderTargetTexture.postProcesses) {\n return prePassRenderTarget.renderTargetTexture.postProcesses;\n }\n else {\n return [];\n }\n }\n else {\n return this._scene.activeCamera ? this._scene.activeCamera._postProcesses : [];\n }\n }\n _setupOutputForThisPass(prePassRenderTarget, camera) {\n // Order is : draw ===> prePassRenderTarget._postProcesses ==> ipp ==> camera._postProcesses\n const secondaryCamera = camera && this._scene.activeCameras && !!this._scene.activeCameras.length && this._scene.activeCameras.indexOf(camera) !== 0;\n this._postProcessesSourceForThisPass = this._getPostProcessesSource(prePassRenderTarget, camera);\n this._postProcessesSourceForThisPass = this._postProcessesSourceForThisPass.filter((pp) => {\n return pp != null;\n });\n this._scene.autoClear = true;\n const cameraHasImageProcessing = this._hasImageProcessing(this._postProcessesSourceForThisPass);\n this._needsCompositionForThisPass = !cameraHasImageProcessing && !this.disableGammaTransform && this._needsImageProcessing() && !secondaryCamera;\n const firstCameraPP = this._getFirstPostProcess(this._postProcessesSourceForThisPass);\n const firstPrePassPP = prePassRenderTarget._beforeCompositionPostProcesses && prePassRenderTarget._beforeCompositionPostProcesses[0];\n let firstPP = null;\n // Setting the scene-wide post process configuration\n this._scene.imageProcessingConfiguration.applyByPostProcess = this._needsCompositionForThisPass || cameraHasImageProcessing;\n // Create composition effect if needed\n if (this._needsCompositionForThisPass && !prePassRenderTarget.imageProcessingPostProcess) {\n prePassRenderTarget._createCompositionEffect();\n }\n // Setting the prePassRenderTarget as input texture of the first PP\n if (firstPrePassPP) {\n firstPP = firstPrePassPP;\n }\n else if (this._needsCompositionForThisPass) {\n firstPP = prePassRenderTarget.imageProcessingPostProcess;\n }\n else if (firstCameraPP) {\n firstPP = firstCameraPP;\n }\n this._bindFrameBuffer();\n this._linkInternalTexture(prePassRenderTarget, firstPP);\n }\n _linkInternalTexture(prePassRenderTarget, postProcess) {\n if (postProcess) {\n postProcess.autoClear = false;\n postProcess.inputTexture = prePassRenderTarget.renderTarget;\n }\n if (prePassRenderTarget._outputPostProcess !== postProcess) {\n if (prePassRenderTarget._outputPostProcess) {\n this._unlinkInternalTexture(prePassRenderTarget);\n }\n prePassRenderTarget._outputPostProcess = postProcess;\n }\n if (prePassRenderTarget._internalTextureDirty) {\n this._updateGeometryBufferLayout();\n prePassRenderTarget._internalTextureDirty = false;\n }\n }\n /**\n * @internal\n */\n _unlinkInternalTexture(prePassRenderTarget) {\n if (prePassRenderTarget._outputPostProcess) {\n prePassRenderTarget._outputPostProcess.autoClear = true;\n prePassRenderTarget._outputPostProcess.restoreDefaultInputTexture();\n prePassRenderTarget._outputPostProcess = null;\n }\n }\n _needsImageProcessing() {\n for (let i = 0; i < this._effectConfigurations.length; i++) {\n if (this._effectConfigurations[i].enabled && this._effectConfigurations[i].needsImageProcessing) {\n return true;\n }\n }\n return false;\n }\n _hasImageProcessing(postProcesses) {\n let isIPPAlreadyPresent = false;\n if (postProcesses) {\n for (let i = 0; i < postProcesses.length; i++) {\n if (postProcesses[i]?.getClassName() === \"ImageProcessingPostProcess\") {\n isIPPAlreadyPresent = true;\n break;\n }\n }\n }\n return isIPPAlreadyPresent;\n }\n /**\n * Internal, gets the first post proces.\n * @param postProcesses\n * @returns the first post process to be run on this camera.\n */\n _getFirstPostProcess(postProcesses) {\n for (let ppIndex = 0; ppIndex < postProcesses.length; ppIndex++) {\n if (postProcesses[ppIndex] !== null) {\n return postProcesses[ppIndex];\n }\n }\n return null;\n }\n /**\n * Marks the prepass renderer as dirty, triggering a check if the prepass is necessary for the next rendering.\n */\n markAsDirty() {\n this._isDirty = true;\n }\n /**\n * Enables a texture on the MultiRenderTarget for prepass\n * @param types\n */\n _enableTextures(types) {\n // For velocity : enable storage of previous matrices for instances\n this._scene.needsPreviousWorldMatrices = false;\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n if (this._textureIndices[type] === -1) {\n this._textureIndices[type] = this._mrtLayout.length;\n this._mrtLayout.push(type);\n this._mrtTypes.push(PrePassRenderer.TextureFormats[type].type);\n this._mrtFormats.push(PrePassRenderer.TextureFormats[type].format);\n this._mrtNames.push(PrePassRenderer.TextureFormats[type].name);\n this.mrtCount++;\n }\n if (type === 2 || type === 11) {\n this._scene.needsPreviousWorldMatrices = true;\n }\n }\n }\n /**\n * Makes sure that the prepass renderer is up to date if it has been dirtified.\n */\n update() {\n if (this._isDirty) {\n this._update();\n }\n }\n _update() {\n this._disable();\n let enablePrePass = false;\n this._scene.imageProcessingConfiguration.applyByPostProcess = false;\n if (this._scene._depthPeelingRenderer && this._scene.useOrderIndependentTransparency) {\n this._scene._depthPeelingRenderer.setPrePassRenderer(this);\n enablePrePass = true;\n }\n for (let i = 0; i < this._scene.materials.length; i++) {\n if (this._scene.materials[i].setPrePassRenderer(this)) {\n enablePrePass = true;\n }\n }\n if (enablePrePass) {\n this._setRenderTargetEnabled(this.defaultRT, true);\n }\n let postProcesses;\n for (let i = 0; i < this.renderTargets.length; i++) {\n if (this.renderTargets[i].renderTargetTexture) {\n postProcesses = this._getPostProcessesSource(this.renderTargets[i]);\n }\n else {\n const camera = this._scene.activeCamera;\n if (!camera) {\n continue;\n }\n postProcesses = camera._postProcesses;\n }\n if (!postProcesses) {\n continue;\n }\n postProcesses = postProcesses.filter((pp) => {\n return pp != null;\n });\n if (postProcesses) {\n for (let j = 0; j < postProcesses.length; j++) {\n if (postProcesses[j].setPrePassRenderer(this)) {\n this._setRenderTargetEnabled(this.renderTargets[i], true);\n enablePrePass = true;\n }\n }\n if (this._hasImageProcessing(postProcesses)) {\n this._scene.imageProcessingConfiguration.applyByPostProcess = true;\n }\n }\n }\n this._markAllMaterialsAsPrePassDirty();\n this._isDirty = false;\n if (enablePrePass) {\n this._enable();\n }\n }\n _markAllMaterialsAsPrePassDirty() {\n const materials = this._scene.materials;\n for (let i = 0; i < materials.length; i++) {\n materials[i].markAsDirty(Material.PrePassDirtyFlag);\n }\n }\n /**\n * Disposes the prepass renderer.\n */\n dispose() {\n for (let i = this.renderTargets.length - 1; i >= 0; i--) {\n this.renderTargets[i].dispose();\n }\n for (let i = 0; i < this._effectConfigurations.length; i++) {\n if (this._effectConfigurations[i].dispose) {\n this._effectConfigurations[i].dispose();\n }\n }\n }\n}\n/**\n * @internal\n */\nPrePassRenderer._SceneComponentInitialization = (_) => {\n throw _WarnImport(\"PrePassRendererSceneComponent\");\n};\n/**\n * Describes the types and formats of the textures used by the pre-pass renderer\n */\nPrePassRenderer.TextureFormats = [\n {\n purpose: 0,\n type: 2,\n format: 5,\n name: \"prePass_Irradiance\",\n },\n {\n purpose: 1,\n type: 2,\n format: 5,\n name: \"prePass_Position\",\n },\n {\n purpose: 2,\n type: 0,\n format: 5,\n name: \"prePass_Velocity\",\n },\n {\n purpose: 3,\n type: 0,\n format: 5,\n name: \"prePass_Reflectivity\",\n },\n {\n purpose: 4,\n type: 2,\n format: 5,\n name: \"prePass_Color\",\n },\n {\n purpose: 5,\n type: 1,\n format: 6,\n name: \"prePass_Depth\",\n },\n {\n purpose: 6,\n type: 2,\n format: 5,\n name: \"prePass_Normal\",\n },\n {\n purpose: 7,\n type: 0,\n format: 5,\n name: \"prePass_Albedo\",\n },\n {\n purpose: 8,\n type: 0,\n format: 5,\n name: \"prePass_WorldNormal\",\n },\n {\n purpose: 9,\n type: 2,\n format: 5,\n name: \"prePass_LocalPosition\",\n },\n {\n purpose: 10,\n type: 1,\n format: 6,\n name: \"prePass_ScreenDepth\",\n },\n {\n purpose: 11,\n type: 2,\n format: 5,\n name: \"prePass_VelocityLinear\",\n },\n];\n","import { Scene } from \"../scene.js\";\nimport { SceneComponentConstants } from \"../sceneComponent.js\";\nimport { PrePassRenderer } from \"./prePassRenderer.js\";\nimport { Logger } from \"../Misc/logger.js\";\nObject.defineProperty(Scene.prototype, \"prePassRenderer\", {\n get: function () {\n return this._prePassRenderer;\n },\n set: function (value) {\n if (value && value.isSupported) {\n this._prePassRenderer = value;\n }\n },\n enumerable: true,\n configurable: true,\n});\nScene.prototype.enablePrePassRenderer = function () {\n if (this._prePassRenderer) {\n return this._prePassRenderer;\n }\n this._prePassRenderer = new PrePassRenderer(this);\n if (!this._prePassRenderer.isSupported) {\n this._prePassRenderer = null;\n Logger.Error(\"PrePassRenderer needs WebGL 2 support.\\n\" + \"Maybe you tried to use the following features that need the PrePassRenderer :\\n\" + \" + Subsurface Scattering\");\n }\n return this._prePassRenderer;\n};\nScene.prototype.disablePrePassRenderer = function () {\n if (!this._prePassRenderer) {\n return;\n }\n this._prePassRenderer.dispose();\n this._prePassRenderer = null;\n};\n/**\n * Defines the Geometry Buffer scene component responsible to manage a G-Buffer useful\n * in several rendering techniques.\n */\nexport class PrePassRendererSceneComponent {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(scene) {\n /**\n * The component name helpful to identify the component in the list of scene components.\n */\n this.name = SceneComponentConstants.NAME_PREPASSRENDERER;\n this.scene = scene;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._beforeCameraDrawStage.registerStep(SceneComponentConstants.STEP_BEFORECAMERADRAW_PREPASS, this, this._beforeCameraDraw);\n this.scene._afterCameraDrawStage.registerStep(SceneComponentConstants.STEP_AFTERCAMERADRAW_PREPASS, this, this._afterCameraDraw);\n this.scene._beforeRenderTargetDrawStage.registerStep(SceneComponentConstants.STEP_BEFORERENDERTARGETDRAW_PREPASS, this, this._beforeRenderTargetDraw);\n this.scene._afterRenderTargetDrawStage.registerStep(SceneComponentConstants.STEP_AFTERCAMERADRAW_PREPASS, this, this._afterRenderTargetDraw);\n this.scene._beforeClearStage.registerStep(SceneComponentConstants.STEP_BEFORECLEAR_PREPASS, this, this._beforeClearStage);\n this.scene._beforeRenderTargetClearStage.registerStep(SceneComponentConstants.STEP_BEFORERENDERTARGETCLEAR_PREPASS, this, this._beforeRenderTargetClearStage);\n this.scene._beforeRenderingMeshStage.registerStep(SceneComponentConstants.STEP_BEFORERENDERINGMESH_PREPASS, this, this._beforeRenderingMeshStage);\n this.scene._afterRenderingMeshStage.registerStep(SceneComponentConstants.STEP_AFTERRENDERINGMESH_PREPASS, this, this._afterRenderingMeshStage);\n }\n _beforeRenderTargetDraw(renderTarget, faceIndex, layer) {\n if (this.scene.prePassRenderer && !renderTarget.noPrePassRenderer) {\n this.scene.prePassRenderer._setRenderTarget(renderTarget._prePassRenderTarget);\n this.scene.prePassRenderer._beforeDraw(undefined, faceIndex, layer);\n }\n }\n _afterRenderTargetDraw(renderTarget, faceIndex, layer) {\n if (this.scene.prePassRenderer && !renderTarget.noPrePassRenderer) {\n this.scene.prePassRenderer._afterDraw(faceIndex, layer);\n }\n }\n _beforeRenderTargetClearStage(renderTarget) {\n if (this.scene.prePassRenderer && !renderTarget.noPrePassRenderer) {\n if (!renderTarget._prePassRenderTarget) {\n renderTarget._prePassRenderTarget = this.scene.prePassRenderer._createRenderTarget(renderTarget.name + \"_prePassRTT\", renderTarget);\n }\n this.scene.prePassRenderer._setRenderTarget(renderTarget._prePassRenderTarget);\n this.scene.prePassRenderer._clear();\n }\n }\n _beforeCameraDraw(camera) {\n if (this.scene.prePassRenderer) {\n this.scene.prePassRenderer._setRenderTarget(null);\n this.scene.prePassRenderer._beforeDraw(camera);\n }\n }\n _afterCameraDraw() {\n if (this.scene.prePassRenderer) {\n this.scene.prePassRenderer._afterDraw();\n }\n }\n _beforeClearStage() {\n if (this.scene.prePassRenderer) {\n this.scene.prePassRenderer._setRenderTarget(null);\n this.scene.prePassRenderer._clear();\n }\n }\n _beforeRenderingMeshStage(mesh, subMesh, batch, effect) {\n if (!effect) {\n return;\n }\n // Render to MRT\n const scene = mesh.getScene();\n if (scene.prePassRenderer) {\n scene.prePassRenderer.bindAttachmentsForEffect(effect, subMesh);\n }\n }\n _afterRenderingMeshStage(mesh) {\n const scene = mesh.getScene();\n if (scene.prePassRenderer) {\n scene.prePassRenderer.restoreAttachments();\n }\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n // Nothing to do for this component\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n this.scene.disablePrePassRenderer();\n }\n}\nPrePassRenderer._SceneComponentInitialization = (scene) => {\n // Register the G Buffer component to the scene.\n let component = scene._getComponent(SceneComponentConstants.NAME_PREPASSRENDERER);\n if (!component) {\n component = new PrePassRendererSceneComponent(scene);\n scene._addComponent(component);\n }\n};\n","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore.js\";\nconst name = \"fibonacci\";\nconst shader = `#define rcp(x) 1./x\n#define GOLDEN_RATIO 1.618033988749895\n#define TWO_PI 6.2831855\nvec2 Golden2dSeq(int i,float n)\n{return vec2(float(i)/n+(0.5/n),fract(float(i)*rcp(GOLDEN_RATIO)));}\nvec2 SampleDiskGolden(int i,int sampleCount)\n{vec2 f=Golden2dSeq(i,float(sampleCount));return vec2(sqrt(f.x),TWO_PI*f.y);}`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const fibonacci = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore.js\";\nconst name = \"diffusionProfile\";\nconst shader = `uniform vec3 diffusionS[5];uniform float diffusionD[5];uniform float filterRadii[5];`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const diffusionProfile = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nimport \"./ShadersInclude/fibonacci.js\";\nimport \"./ShadersInclude/helperFunctions.js\";\nimport \"./ShadersInclude/subSurfaceScatteringFunctions.js\";\nimport \"./ShadersInclude/diffusionProfile.js\";\nconst name = \"subSurfaceScatteringPixelShader\";\nconst shader = `#include\n#include\n#include\n#include\nvarying vec2 vUV;uniform vec2 texelSize;uniform sampler2D textureSampler;uniform sampler2D irradianceSampler;uniform sampler2D depthSampler;uniform sampler2D albedoSampler;uniform vec2 viewportSize;uniform float metersPerUnit;const float LOG2_E=1.4426950408889634;const float SSS_PIXELS_PER_SAMPLE=4.;const int _SssSampleBudget=40;\n#define rcp(x) 1./x\n#define Sq(x) x*x\n#define SSS_BILATERAL_FILTER true\nvec3 EvalBurleyDiffusionProfile(float r,vec3 S)\n{vec3 exp_13=exp2(((LOG2_E*(-1.0/3.0))*r)*S); \nvec3 expSum=exp_13*(1.+exp_13*exp_13); \nreturn (S*rcp(8.*PI))*expSum; }\nvec2 SampleBurleyDiffusionProfile(float u,float rcpS)\n{u=1.-u; \nfloat g=1.+(4.*u)*(2.*u+sqrt(1.+(4.*u)*u));float n=exp2(log2(g)*(-1.0/3.0)); \nfloat p=(g*n)*n; \nfloat c=1.+p+n; \nfloat d=(3./LOG2_E*2.)+(3./LOG2_E)*log2(u); \nfloat x=(3./LOG2_E)*log2(c)-d; \nfloat rcpExp=((c*c)*c)*rcp((4.*u)*((c*c)+(4.*u)*(4.*u)));float r=x*rcpS;float rcpPdf=(8.*PI*rcpS)*rcpExp; \nreturn vec2(r,rcpPdf);}\nvec3 ComputeBilateralWeight(float xy2,float z,float mmPerUnit,vec3 S,float rcpPdf)\n{\n#ifndef SSS_BILATERAL_FILTER\nz=0.;\n#endif\nfloat r=sqrt(xy2+(z*mmPerUnit)*(z*mmPerUnit));float area=rcpPdf;\n#if SSS_CLAMP_ARTIFACT\nreturn clamp(EvalBurleyDiffusionProfile(r,S)*area,0.0,1.0);\n#else\nreturn EvalBurleyDiffusionProfile(r,S)*area;\n#endif\n}\nvoid EvaluateSample(int i,int n,vec3 S,float d,vec3 centerPosVS,float mmPerUnit,float pixelsPerMm,\nfloat phase,inout vec3 totalIrradiance,inout vec3 totalWeight)\n{float scale =rcp(float(n));float offset=rcp(float(n))*0.5;float sinPhase,cosPhase;sinPhase=sin(phase);cosPhase=cos(phase);vec2 bdp=SampleBurleyDiffusionProfile(float(i)*scale+offset,d);float r=bdp.x;float rcpPdf=bdp.y;float phi=SampleDiskGolden(i,n).y;float sinPhi,cosPhi;sinPhi=sin(phi);cosPhi=cos(phi);float sinPsi=cosPhase*sinPhi+sinPhase*cosPhi; \nfloat cosPsi=cosPhase*cosPhi-sinPhase*sinPhi; \nvec2 vec=r*vec2(cosPsi,sinPsi);vec2 position; \nfloat xy2;position=vUV+round((pixelsPerMm*r)*vec2(cosPsi,sinPsi))*texelSize;xy2 =r*r;vec4 textureSample=texture2D(irradianceSampler,position);float viewZ=texture2D(depthSampler,position).r;vec3 irradiance =textureSample.rgb;if (testLightingForSSS(textureSample.a))\n{float relZ=viewZ-centerPosVS.z;vec3 weight=ComputeBilateralWeight(xy2,relZ,mmPerUnit,S,rcpPdf);totalIrradiance+=weight*irradiance;totalWeight +=weight;}\nelse\n{}}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{vec4 irradianceAndDiffusionProfile =texture2D(irradianceSampler,vUV);vec3 centerIrradiance=irradianceAndDiffusionProfile.rgb;int diffusionProfileIndex=int(round(irradianceAndDiffusionProfile.a*255.));float centerDepth =0.;vec4 inputColor=texture2D(textureSampler,vUV);bool passedStencilTest=testLightingForSSS(irradianceAndDiffusionProfile.a);if (passedStencilTest)\n{centerDepth=texture2D(depthSampler,vUV).r;}\nif (!passedStencilTest) { \ngl_FragColor=inputColor;return;}\nfloat distScale =1.;vec3 S =diffusionS[diffusionProfileIndex];float d =diffusionD[diffusionProfileIndex];float filterRadius=filterRadii[diffusionProfileIndex];vec2 centerPosNDC=vUV;vec2 cornerPosNDC=vUV+0.5*texelSize;vec3 centerPosVS =vec3(centerPosNDC*viewportSize,1.0)*centerDepth; \nvec3 cornerPosVS =vec3(cornerPosNDC*viewportSize,1.0)*centerDepth; \nfloat mmPerUnit =1000.*(metersPerUnit*rcp(distScale));float unitsPerMm=rcp(mmPerUnit);float unitsPerPixel=2.*abs(cornerPosVS.x-centerPosVS.x);float pixelsPerMm =rcp(unitsPerPixel)*unitsPerMm;float filterArea =PI*Sq(filterRadius*pixelsPerMm);int sampleCount =int(filterArea*rcp(SSS_PIXELS_PER_SAMPLE));int sampleBudget=_SssSampleBudget;int texturingMode=0;vec3 albedo =texture2D(albedoSampler,vUV).rgb;if (distScale==0. || sampleCount<1)\n{\n#ifdef DEBUG_SSS_SAMPLES\nvec3 green=vec3(0.,1.,0.);gl_FragColor=vec4(green,1.0);return;\n#endif\ngl_FragColor=vec4(inputColor.rgb+albedo*centerIrradiance,1.0);return;}\n#ifdef DEBUG_SSS_SAMPLES\nvec3 red =vec3(1.,0.,0.);vec3 blue=vec3(0.,0.,1.);gl_FragColor=vec4(mix(blue,red,clamp(float(sampleCount)/float(sampleBudget),0.0,1.0)),1.0);return;\n#endif\nfloat phase=0.;int n=min(sampleCount,sampleBudget);vec3 centerWeight =vec3(0.); \nvec3 totalIrradiance=vec3(0.);vec3 totalWeight =vec3(0.);for (int i=0; i {\n if (!scene.prePassRenderer || !scene.subSurfaceConfiguration) {\n Logger.Error(\"PrePass and subsurface configuration needs to be enabled for subsurface scattering.\");\n return;\n }\n const texelSize = this.texelSize;\n effect.setFloat(\"metersPerUnit\", scene.subSurfaceConfiguration.metersPerUnit);\n effect.setFloat2(\"texelSize\", texelSize.x, texelSize.y);\n effect.setTexture(\"irradianceSampler\", scene.prePassRenderer.getRenderTarget().textures[scene.prePassRenderer.getIndex(0)]);\n effect.setTexture(\"depthSampler\", scene.prePassRenderer.getRenderTarget().textures[scene.prePassRenderer.getIndex(5)]);\n effect.setTexture(\"albedoSampler\", scene.prePassRenderer.getRenderTarget().textures[scene.prePassRenderer.getIndex(7)]);\n effect.setFloat2(\"viewportSize\", Math.tan(scene.activeCamera.fov / 2) * scene.getEngine().getAspectRatio(scene.activeCamera, true), Math.tan(scene.activeCamera.fov / 2));\n effect.setArray3(\"diffusionS\", scene.subSurfaceConfiguration.ssDiffusionS);\n effect.setArray(\"diffusionD\", scene.subSurfaceConfiguration.ssDiffusionD);\n effect.setArray(\"filterRadii\", scene.subSurfaceConfiguration.ssFilterRadii);\n });\n }\n}\n","import { Logger } from \"../Misc/logger.js\";\nimport { Color3 } from \"../Maths/math.color.js\";\nimport { SubSurfaceScatteringPostProcess } from \"../PostProcesses/subSurfaceScatteringPostProcess.js\";\nimport { SceneComponentConstants } from \"../sceneComponent.js\";\nimport { _WarnImport } from \"../Misc/devTools.js\";\n\n/**\n * Contains all parameters needed for the prepass to perform\n * screen space subsurface scattering\n */\nexport class SubSurfaceConfiguration {\n /**\n * Diffusion profile color for subsurface scattering\n */\n get ssDiffusionS() {\n return this._ssDiffusionS;\n }\n /**\n * Diffusion profile max color channel value for subsurface scattering\n */\n get ssDiffusionD() {\n return this._ssDiffusionD;\n }\n /**\n * Diffusion profile filter radius for subsurface scattering\n */\n get ssFilterRadii() {\n return this._ssFilterRadii;\n }\n /**\n * Builds a subsurface configuration object\n * @param scene The scene\n */\n constructor(scene) {\n this._ssDiffusionS = [];\n this._ssFilterRadii = [];\n this._ssDiffusionD = [];\n /**\n * Is subsurface enabled\n */\n this.enabled = false;\n /**\n * Does the output of this prepass need to go through imageprocessing\n */\n this.needsImageProcessing = true;\n /**\n * Name of the configuration\n */\n this.name = SceneComponentConstants.NAME_SUBSURFACE;\n /**\n * Diffusion profile colors for subsurface scattering\n * You can add one diffusion color using `addDiffusionProfile` on `scene.prePassRenderer`\n * See ...\n * Note that you can only store up to 5 of them\n */\n this.ssDiffusionProfileColors = [];\n /**\n * Defines the ratio real world => scene units.\n * Used for subsurface scattering\n */\n this.metersPerUnit = 1;\n /**\n * Textures that should be present in the MRT for this effect to work\n */\n this.texturesRequired = [\n 5,\n 7,\n 4,\n 0,\n ];\n // Adding default diffusion profile\n this.addDiffusionProfile(new Color3(1, 1, 1));\n this._scene = scene;\n SubSurfaceConfiguration._SceneComponentInitialization(this._scene);\n }\n /**\n * Adds a new diffusion profile.\n * Useful for more realistic subsurface scattering on diverse materials.\n * @param color The color of the diffusion profile. Should be the average color of the material.\n * @returns The index of the diffusion profile for the material subsurface configuration\n */\n addDiffusionProfile(color) {\n if (this.ssDiffusionD.length >= 5) {\n // We only suppport 5 diffusion profiles\n Logger.Error(\"You already reached the maximum number of diffusion profiles.\");\n return 0; // default profile\n }\n // Do not add doubles\n for (let i = 0; i < this._ssDiffusionS.length / 3; i++) {\n if (this._ssDiffusionS[i * 3] === color.r && this._ssDiffusionS[i * 3 + 1] === color.g && this._ssDiffusionS[i * 3 + 2] === color.b) {\n return i;\n }\n }\n this._ssDiffusionS.push(color.r, color.b, color.g);\n this._ssDiffusionD.push(Math.max(Math.max(color.r, color.b), color.g));\n this._ssFilterRadii.push(this.getDiffusionProfileParameters(color));\n this.ssDiffusionProfileColors.push(color);\n return this._ssDiffusionD.length - 1;\n }\n /**\n * Creates the sss post process\n * @returns The created post process\n */\n createPostProcess() {\n this.postProcess = new SubSurfaceScatteringPostProcess(\"subSurfaceScattering\", this._scene, 1, null, undefined, this._scene.getEngine());\n this.postProcess.autoClear = false;\n return this.postProcess;\n }\n /**\n * Deletes all diffusion profiles.\n * Note that in order to render subsurface scattering, you should have at least 1 diffusion profile.\n */\n clearAllDiffusionProfiles() {\n this._ssDiffusionD = [];\n this._ssDiffusionS = [];\n this._ssFilterRadii = [];\n this.ssDiffusionProfileColors = [];\n }\n /**\n * Disposes this object\n */\n dispose() {\n this.clearAllDiffusionProfiles();\n if (this.postProcess) {\n this.postProcess.dispose();\n }\n }\n /**\n * @internal\n * https://zero-radiance.github.io/post/sampling-diffusion/\n *\n * Importance sample the normalized diffuse reflectance profile for the computed value of 's'.\n * ------------------------------------------------------------------------------------\n * R[r, phi, s] = s * (Exp[-r * s] + Exp[-r * s / 3]) / (8 * Pi * r)\n * PDF[r, phi, s] = r * R[r, phi, s]\n * CDF[r, s] = 1 - 1/4 * Exp[-r * s] - 3/4 * Exp[-r * s / 3]\n * ------------------------------------------------------------------------------------\n * We importance sample the color channel with the widest scattering distance.\n */\n getDiffusionProfileParameters(color) {\n const cdf = 0.997;\n const maxScatteringDistance = Math.max(color.r, color.g, color.b);\n return this._sampleBurleyDiffusionProfile(cdf, maxScatteringDistance);\n }\n /**\n * Performs sampling of a Normalized Burley diffusion profile in polar coordinates.\n * 'u' is the random number (the value of the CDF): [0, 1).\n * rcp(s) = 1 / ShapeParam = ScatteringDistance.\n * Returns the sampled radial distance, s.t. (u = 0 -> r = 0) and (u = 1 -> r = Inf).\n * @param u\n * @param rcpS\n * @returns The sampled radial distance\n */\n _sampleBurleyDiffusionProfile(u, rcpS) {\n u = 1 - u; // Convert CDF to CCDF\n const g = 1 + 4 * u * (2 * u + Math.sqrt(1 + 4 * u * u));\n const n = Math.pow(g, -1.0 / 3.0); // g^(-1/3)\n const p = g * n * n; // g^(+1/3)\n const c = 1 + p + n; // 1 + g^(+1/3) + g^(-1/3)\n const x = 3 * Math.log(c / (4 * u));\n return x * rcpS;\n }\n}\n/**\n * @internal\n */\nSubSurfaceConfiguration._SceneComponentInitialization = (_) => {\n throw _WarnImport(\"SubSurfaceSceneComponent\");\n};\n","import { Scene } from \"../scene.js\";\nimport { SceneComponentConstants } from \"../sceneComponent.js\";\nimport { SubSurfaceConfiguration } from \"./subSurfaceConfiguration.js\";\nimport { Color3 } from \"../Maths/math.color.js\";\nimport { AddParser } from \"../Loading/Plugins/babylonFileParser.function.js\";\n// Adds the parser to the scene parsers.\nAddParser(SceneComponentConstants.NAME_SUBSURFACE, (parsedData, scene) => {\n // Diffusion profiles\n if (parsedData.ssDiffusionProfileColors !== undefined && parsedData.ssDiffusionProfileColors !== null) {\n scene.enableSubSurfaceForPrePass();\n if (scene.subSurfaceConfiguration) {\n for (let index = 0, cache = parsedData.ssDiffusionProfileColors.length; index < cache; index++) {\n const color = parsedData.ssDiffusionProfileColors[index];\n scene.subSurfaceConfiguration.addDiffusionProfile(new Color3(color.r, color.g, color.b));\n }\n }\n }\n});\nObject.defineProperty(Scene.prototype, \"subSurfaceConfiguration\", {\n get: function () {\n return this._subSurfaceConfiguration;\n },\n set: function (value) {\n if (value) {\n if (this.enablePrePassRenderer()) {\n this._subSurfaceConfiguration = value;\n }\n }\n },\n enumerable: true,\n configurable: true,\n});\nScene.prototype.enableSubSurfaceForPrePass = function () {\n if (this._subSurfaceConfiguration) {\n return this._subSurfaceConfiguration;\n }\n const prePassRenderer = this.enablePrePassRenderer();\n if (prePassRenderer) {\n this._subSurfaceConfiguration = new SubSurfaceConfiguration(this);\n prePassRenderer.addEffectConfiguration(this._subSurfaceConfiguration);\n return this._subSurfaceConfiguration;\n }\n return null;\n};\nScene.prototype.disableSubSurfaceForPrePass = function () {\n if (!this._subSurfaceConfiguration) {\n return;\n }\n this._subSurfaceConfiguration.dispose();\n this._subSurfaceConfiguration = null;\n};\n/**\n * Defines the Geometry Buffer scene component responsible to manage a G-Buffer useful\n * in several rendering techniques.\n */\nexport class SubSurfaceSceneComponent {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(scene) {\n /**\n * The component name helpful to identify the component in the list of scene components.\n */\n this.name = SceneComponentConstants.NAME_PREPASSRENDERER;\n this.scene = scene;\n }\n /**\n * Registers the component in a given scene\n */\n register() { }\n /**\n * Serializes the component data to the specified json object\n * @param serializationObject The object to serialize to\n */\n serialize(serializationObject) {\n if (!this.scene.subSurfaceConfiguration) {\n return;\n }\n const ssDiffusionProfileColors = this.scene.subSurfaceConfiguration.ssDiffusionProfileColors;\n serializationObject.ssDiffusionProfileColors = [];\n for (let i = 0; i < ssDiffusionProfileColors.length; i++) {\n serializationObject.ssDiffusionProfileColors.push({\n r: ssDiffusionProfileColors[i].r,\n g: ssDiffusionProfileColors[i].g,\n b: ssDiffusionProfileColors[i].b,\n });\n }\n }\n /**\n * Adds all the elements from the container to the scene\n */\n addFromContainer() {\n // Nothing to do\n }\n /**\n * Removes all the elements in the container from the scene\n */\n removeFromContainer() {\n // Make sure nothing will be serialized\n if (!this.scene.prePassRenderer) {\n return;\n }\n if (this.scene.subSurfaceConfiguration) {\n this.scene.subSurfaceConfiguration.clearAllDiffusionProfiles();\n }\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n // Nothing to do for this component\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n // Nothing to do for this component\n }\n}\nSubSurfaceConfiguration._SceneComponentInitialization = (scene) => {\n // Register the G Buffer component to the scene.\n let component = scene._getComponent(SceneComponentConstants.NAME_SUBSURFACE);\n if (!component) {\n component = new SubSurfaceSceneComponent(scene);\n scene._addComponent(component);\n }\n};\n","\nimport { EffectWrapper } from \"../../Materials/effectRenderer.js\";\nimport { Observable } from \"../../Misc/observable.js\";\n/**\n * Defines the base object used for fluid rendering.\n * It is based on a list of vertices (particles)\n */\nexport class FluidRenderingObject {\n /** Gets or sets the size of the particle */\n get particleSize() {\n return this._particleSize;\n }\n set particleSize(size) {\n if (size === this._particleSize) {\n return;\n }\n this._particleSize = size;\n this.onParticleSizeChanged.notifyObservers(this);\n }\n /** Indicates if the object uses instancing or not */\n get useInstancing() {\n return !this.indexBuffer;\n }\n /** Indicates if velocity of particles should be used when rendering the object. The vertex buffer set must contain a \"velocity\" buffer for this to work! */\n get useVelocity() {\n return this._useVelocity;\n }\n set useVelocity(use) {\n if (this._useVelocity === use || !this._hasVelocity()) {\n return;\n }\n this._useVelocity = use;\n this._effectsAreDirty = true;\n }\n _hasVelocity() {\n return !!this.vertexBuffers?.velocity;\n }\n /**\n * Gets the index buffer (or null if the object is using instancing)\n */\n get indexBuffer() {\n return null;\n }\n /**\n * @returns the name of the class\n */\n getClassName() {\n return \"FluidRenderingObject\";\n }\n /**\n * Gets the shader language used in this object\n */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n /**\n * Instantiates a fluid rendering object\n * @param scene The scene the object is part of\n * @param shaderLanguage The shader language to use\n */\n constructor(scene, shaderLanguage) {\n /** Defines the priority of the object. Objects will be rendered in ascending order of priority */\n this.priority = 0;\n this._particleSize = 0.1;\n /** Observable triggered when the size of the particle is changed */\n this.onParticleSizeChanged = new Observable();\n /** Defines the alpha value of a particle */\n this.particleThicknessAlpha = 0.05;\n this._useVelocity = false;\n /** Shader language used by the object */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this._scene = scene;\n this._engine = scene.getEngine();\n this._effectsAreDirty = true;\n this._depthEffectWrapper = null;\n this._thicknessEffectWrapper = null;\n this._shaderLanguage = shaderLanguage ?? (this._engine.isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */);\n }\n _createEffects() {\n const uniformNames = [\"view\", \"projection\", \"particleRadius\", \"size\"];\n const attributeNames = [\"position\", \"offset\"];\n const defines = [];\n this._effectsAreDirty = false;\n if (this.useVelocity) {\n attributeNames.push(\"velocity\");\n defines.push(\"#define FLUIDRENDERING_VELOCITY\");\n }\n if (this._scene.useRightHandedSystem) {\n defines.push(\"#define FLUIDRENDERING_RHS\");\n }\n this._depthEffectWrapper = new EffectWrapper({\n engine: this._engine,\n useShaderStore: true,\n vertexShader: \"fluidRenderingParticleDepth\",\n fragmentShader: \"fluidRenderingParticleDepth\",\n attributeNames,\n uniformNames,\n samplerNames: [],\n defines,\n shaderLanguage: this._shaderLanguage,\n extraInitializationsAsync: async () => {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([import(\"../../ShadersWGSL/fluidRenderingParticleDepth.vertex.js\"), import(\"../../ShadersWGSL/fluidRenderingParticleDepth.fragment.js\")]);\n }\n else {\n await Promise.all([import(\"../../Shaders/fluidRenderingParticleDepth.vertex.js\"), import(\"../../Shaders/fluidRenderingParticleDepth.fragment.js\")]);\n }\n },\n });\n uniformNames.push(\"particleAlpha\");\n this._thicknessEffectWrapper = new EffectWrapper({\n engine: this._engine,\n useShaderStore: true,\n vertexShader: \"fluidRenderingParticleThickness\",\n fragmentShader: \"fluidRenderingParticleThickness\",\n attributeNames: [\"position\", \"offset\"],\n uniformNames,\n samplerNames: [],\n shaderLanguage: this._shaderLanguage,\n extraInitializationsAsync: async () => {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([import(\"../../ShadersWGSL/fluidRenderingParticleThickness.vertex.js\"), import(\"../../ShadersWGSL/fluidRenderingParticleThickness.fragment.js\")]);\n }\n else {\n await Promise.all([import(\"../../Shaders/fluidRenderingParticleThickness.vertex.js\"), import(\"../../Shaders/fluidRenderingParticleThickness.fragment.js\")]);\n }\n },\n });\n }\n /**\n * Indicates if the object is ready to be rendered\n * @returns True if everything is ready for the object to be rendered, otherwise false\n */\n isReady() {\n if (this._effectsAreDirty) {\n this._createEffects();\n }\n if (!this._depthEffectWrapper || !this._thicknessEffectWrapper) {\n return false;\n }\n const depthEffect = this._depthEffectWrapper.drawWrapper.effect;\n const thicknessEffect = this._thicknessEffectWrapper.drawWrapper.effect;\n return depthEffect.isReady() && thicknessEffect.isReady();\n }\n /**\n * Render the depth texture for this object\n */\n renderDepthTexture() {\n const numParticles = this.numParticles;\n if (!this._depthEffectWrapper || numParticles === 0) {\n return;\n }\n const depthDrawWrapper = this._depthEffectWrapper.drawWrapper;\n const depthEffect = depthDrawWrapper.effect;\n this._engine.enableEffect(depthDrawWrapper);\n this._engine.bindBuffers(this.vertexBuffers, this.indexBuffer, depthEffect);\n depthEffect.setMatrix(\"view\", this._scene.getViewMatrix());\n depthEffect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\n depthEffect.setFloat2(\"size\", this._particleSize, this._particleSize);\n depthEffect.setFloat(\"particleRadius\", this._particleSize / 2);\n if (this.useInstancing) {\n this._engine.drawArraysType(7, 0, 4, numParticles);\n }\n else {\n this._engine.drawElementsType(0, 0, numParticles);\n }\n }\n /**\n * Render the thickness texture for this object\n */\n renderThicknessTexture() {\n const numParticles = this.numParticles;\n if (!this._thicknessEffectWrapper || numParticles === 0) {\n return;\n }\n const thicknessDrawWrapper = this._thicknessEffectWrapper.drawWrapper;\n const thicknessEffect = thicknessDrawWrapper.effect;\n this._engine.setAlphaMode(6);\n this._engine.setDepthWrite(false);\n this._engine.enableEffect(thicknessDrawWrapper);\n this._engine.bindBuffers(this.vertexBuffers, this.indexBuffer, thicknessEffect);\n thicknessEffect.setMatrix(\"view\", this._scene.getViewMatrix());\n thicknessEffect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\n thicknessEffect.setFloat(\"particleAlpha\", this.particleThicknessAlpha);\n thicknessEffect.setFloat2(\"size\", this._particleSize, this._particleSize);\n if (this.useInstancing) {\n this._engine.drawArraysType(7, 0, 4, numParticles);\n }\n else {\n this._engine.drawElementsType(0, 0, numParticles);\n }\n this._engine.setDepthWrite(true);\n this._engine.setAlphaMode(0);\n }\n /**\n * Render the diffuse texture for this object\n */\n renderDiffuseTexture() {\n // do nothing by default\n }\n /**\n * Releases the ressources used by the class\n */\n dispose() {\n this._depthEffectWrapper?.dispose(false);\n this._thicknessEffectWrapper?.dispose(false);\n this.onParticleSizeChanged.clear();\n }\n}\n","\nimport { FluidRenderingObject } from \"./fluidRenderingObject.js\";\n/**\n * Defines a rendering object based on a particle system\n */\nexport class FluidRenderingObjectParticleSystem extends FluidRenderingObject {\n /** Gets the particle system */\n get particleSystem() {\n return this._particleSystem;\n }\n /**\n * @returns the name of the class\n */\n getClassName() {\n return \"FluidRenderingObjectParticleSystem\";\n }\n /**\n * Gets or sets a boolean indicating that the diffuse texture should be generated based on the regular rendering of the particle system (default: true).\n * Sometimes, generating the diffuse texture this way may be sub-optimal. In that case, you can disable this property, in which case the particle system will be\n * rendered using a ALPHA_COMBINE mode instead of the one used by the particle system.\n */\n get useTrueRenderingForDiffuseTexture() {\n return this._useTrueRenderingForDiffuseTexture;\n }\n set useTrueRenderingForDiffuseTexture(use) {\n if (this._useTrueRenderingForDiffuseTexture === use) {\n return;\n }\n this._useTrueRenderingForDiffuseTexture = use;\n if (use) {\n this._particleSystem.blendMode = this._blendMode;\n this._particleSystem.onBeforeDrawParticlesObservable.remove(this._onBeforeDrawParticleObserver);\n this._onBeforeDrawParticleObserver = null;\n }\n else {\n this._particleSystem.blendMode = -1;\n this._onBeforeDrawParticleObserver = this._particleSystem.onBeforeDrawParticlesObservable.add(() => {\n this._engine.setAlphaMode(2);\n });\n }\n }\n /**\n * Gets the vertex buffers\n */\n get vertexBuffers() {\n return this._particleSystem.vertexBuffers;\n }\n /**\n * Gets the index buffer (or null if the object is using instancing)\n */\n get indexBuffer() {\n return this._particleSystem.indexBuffer;\n }\n /**\n * Creates a new instance of the class\n * @param scene The scene the particle system is part of\n * @param ps The particle system\n * @param shaderLanguage The shader language to use\n */\n constructor(scene, ps, shaderLanguage) {\n super(scene, shaderLanguage);\n this._useTrueRenderingForDiffuseTexture = true;\n this._particleSystem = ps;\n this._originalRender = ps.render.bind(ps);\n this._blendMode = ps.blendMode;\n this._onBeforeDrawParticleObserver = null;\n this._updateInAnimate = this._particleSystem.updateInAnimate;\n this._particleSystem.updateInAnimate = true;\n this._particleSystem.render = () => 0;\n this.particleSize = (ps.minSize + ps.maxSize) / 2;\n this.useTrueRenderingForDiffuseTexture = false;\n }\n /**\n * Indicates if the object is ready to be rendered\n * @returns True if everything is ready for the object to be rendered, otherwise false\n */\n isReady() {\n return super.isReady() && this._particleSystem.isReady();\n }\n /**\n * Gets the number of particles in this particle system\n * @returns The number of particles\n */\n get numParticles() {\n return this._particleSystem.getActiveCount();\n }\n /**\n * Render the diffuse texture for this object\n */\n renderDiffuseTexture() {\n this._originalRender();\n }\n /**\n * Releases the ressources used by the class\n */\n dispose() {\n super.dispose();\n this._particleSystem.onBeforeDrawParticlesObservable.remove(this._onBeforeDrawParticleObserver);\n this._onBeforeDrawParticleObserver = null;\n this._particleSystem.render = this._originalRender;\n this._particleSystem.blendMode = this._blendMode;\n this._particleSystem.updateInAnimate = this._updateInAnimate;\n }\n}\n","\nimport { Texture } from \"../../Materials/Textures/texture.js\";\nimport { Vector2 } from \"../../Maths/math.vector.js\";\nimport { PostProcess } from \"../../PostProcesses/postProcess.js\";\nimport { Observable } from \"../../Misc/observable.js\";\n/** @internal */\nexport class FluidRenderingTextures {\n get blurNumIterations() {\n return this._blurNumIterations;\n }\n set blurNumIterations(numIterations) {\n if (this._blurNumIterations === numIterations) {\n return;\n }\n this._blurNumIterations = numIterations;\n if (this._blurPostProcesses !== null) {\n const blurX = this._blurPostProcesses[0];\n const blurY = this._blurPostProcesses[1];\n this._blurPostProcesses = [];\n for (let i = 0; i < this._blurNumIterations * 2; ++i) {\n this._blurPostProcesses[i] = i & 1 ? blurY : blurX;\n }\n }\n }\n get renderTarget() {\n return this._rt;\n }\n get renderTargetBlur() {\n return this._rtBlur;\n }\n get texture() {\n return this._texture;\n }\n get textureBlur() {\n return this._textureBlurred;\n }\n /**\n * Gets the shader language used in the texture\n */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n constructor(name, scene, width, height, blurTextureSizeX, blurTextureSizeY, textureType = 1, textureFormat = 6, blurTextureType = 1, blurTextureFormat = 6, useStandardBlur = false, camera = null, generateDepthBuffer = true, samples = 1, shaderLanguage) {\n this.enableBlur = true;\n this.blurSizeDivisor = 1;\n this.blurFilterSize = 7;\n this._blurNumIterations = 3;\n this.blurMaxFilterSize = 100;\n this.blurDepthScale = 10;\n this.particleSize = 0.02;\n this.onDisposeObservable = new Observable();\n /** Shader language used by the texture */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this._name = name;\n this._scene = scene;\n this._camera = camera;\n this._engine = scene.getEngine();\n this._width = width;\n this._height = height;\n this._blurTextureSizeX = blurTextureSizeX;\n this._blurTextureSizeY = blurTextureSizeY;\n this._textureType = textureType;\n this._textureFormat = textureFormat;\n this._blurTextureType = blurTextureType;\n this._blurTextureFormat = blurTextureFormat;\n this._useStandardBlur = useStandardBlur;\n this._generateDepthBuffer = generateDepthBuffer;\n this._samples = samples;\n this._postProcessRunningIndex = 0;\n this.enableBlur = blurTextureSizeX !== 0 && blurTextureSizeY !== 0;\n this._rt = null;\n this._texture = null;\n this._rtBlur = null;\n this._textureBlurred = null;\n this._blurPostProcesses = null;\n this._shaderLanguage = shaderLanguage ?? (this._engine.isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */);\n }\n initialize() {\n this.dispose();\n this._createRenderTarget();\n if (this.enableBlur && this._texture) {\n const [rtBlur, textureBlurred, blurPostProcesses] = this._createBlurPostProcesses(this._texture, this._blurTextureType, this._blurTextureFormat, this.blurSizeDivisor, this._name, this._useStandardBlur);\n this._rtBlur = rtBlur;\n this._textureBlurred = textureBlurred;\n this._blurPostProcesses = blurPostProcesses;\n }\n }\n applyBlurPostProcesses() {\n if (this.enableBlur && this._blurPostProcesses) {\n this._postProcessRunningIndex = 0;\n this._scene.postProcessManager.directRender(this._blurPostProcesses, this._rtBlur, true);\n this._engine.unBindFramebuffer(this._rtBlur);\n }\n }\n _createRenderTarget() {\n this._rt = this._engine.createRenderTargetTexture({ width: this._width, height: this._height }, {\n generateMipMaps: false,\n type: this._textureType,\n format: this._textureFormat,\n samplingMode: 1,\n generateDepthBuffer: this._generateDepthBuffer,\n generateStencilBuffer: false,\n samples: this._samples,\n label: `FluidRenderingRTT-${this._name}`,\n });\n const renderTexture = this._rt.texture;\n renderTexture.incrementReferences();\n this._texture = new Texture(null, this._scene);\n this._texture.name = \"rtt\" + this._name;\n this._texture._texture = renderTexture;\n this._texture.wrapU = Texture.CLAMP_ADDRESSMODE;\n this._texture.wrapV = Texture.CLAMP_ADDRESSMODE;\n this._texture.anisotropicFilteringLevel = 1;\n }\n _createBlurPostProcesses(textureBlurSource, textureType, textureFormat, blurSizeDivisor, debugName, useStandardBlur = false) {\n const engine = this._scene.getEngine();\n const targetSize = new Vector2(Math.floor(this._blurTextureSizeX / blurSizeDivisor), Math.floor(this._blurTextureSizeY / blurSizeDivisor));\n const useBilinearFiltering = (textureType === 1 && engine.getCaps().textureFloatLinearFiltering) ||\n (textureType === 2 && engine.getCaps().textureHalfFloatLinearFiltering);\n const rtBlur = this._engine.createRenderTargetTexture({ width: targetSize.x, height: targetSize.y }, {\n generateMipMaps: false,\n type: textureType,\n format: textureFormat,\n samplingMode: useBilinearFiltering ? 2 : 1,\n generateDepthBuffer: false,\n generateStencilBuffer: false,\n samples: this._samples,\n label: `FluidRenderingRTTBlur-${debugName}`,\n });\n const renderTexture = rtBlur.texture;\n renderTexture.incrementReferences();\n const texture = new Texture(null, this._scene);\n texture.name = \"rttBlurred\" + debugName;\n texture._texture = renderTexture;\n texture.wrapU = Texture.CLAMP_ADDRESSMODE;\n texture.wrapV = Texture.CLAMP_ADDRESSMODE;\n texture.anisotropicFilteringLevel = 1;\n if (useStandardBlur) {\n const kernelBlurXPostprocess = new PostProcess(\"BilateralBlurX\", \"fluidRenderingStandardBlur\", [\"filterSize\", \"blurDir\"], null, 1, null, 1, engine, true, null, textureType, undefined, undefined, undefined, textureFormat, this._shaderLanguage, async () => {\n if (this.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await import(\"../../ShadersWGSL/fluidRenderingStandardBlur.fragment.js\");\n }\n else {\n await import(\"../../Shaders/fluidRenderingStandardBlur.fragment.js\");\n }\n });\n kernelBlurXPostprocess.samples = this._samples;\n kernelBlurXPostprocess.externalTextureSamplerBinding = true;\n kernelBlurXPostprocess.onApplyObservable.add((effect) => {\n if (this._postProcessRunningIndex === 0) {\n effect.setTexture(\"textureSampler\", textureBlurSource);\n }\n else {\n effect._bindTexture(\"textureSampler\", kernelBlurXPostprocess.inputTexture.texture);\n }\n effect.setInt(\"filterSize\", this.blurFilterSize);\n effect.setFloat2(\"blurDir\", 1 / this._blurTextureSizeX, 0);\n this._postProcessRunningIndex++;\n });\n kernelBlurXPostprocess.onSizeChangedObservable.add(() => {\n kernelBlurXPostprocess._textures.forEach((rt) => {\n rt.texture.wrapU = Texture.CLAMP_ADDRESSMODE;\n rt.texture.wrapV = Texture.CLAMP_ADDRESSMODE;\n });\n });\n this._fixReusablePostProcess(kernelBlurXPostprocess);\n const kernelBlurYPostprocess = new PostProcess(\"BilateralBlurY\", \"fluidRenderingStandardBlur\", [\"filterSize\", \"blurDir\"], null, 1, null, 1, engine, true, null, textureType, undefined, undefined, undefined, textureFormat, this._shaderLanguage, async () => {\n if (this.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await import(\"../../ShadersWGSL/fluidRenderingStandardBlur.fragment.js\");\n }\n else {\n await import(\"../../Shaders/fluidRenderingStandardBlur.fragment.js\");\n }\n });\n kernelBlurYPostprocess.samples = this._samples;\n kernelBlurYPostprocess.onApplyObservable.add((effect) => {\n effect.setInt(\"filterSize\", this.blurFilterSize);\n effect.setFloat2(\"blurDir\", 0, 1 / this._blurTextureSizeY);\n this._postProcessRunningIndex++;\n });\n kernelBlurYPostprocess.onSizeChangedObservable.add(() => {\n kernelBlurYPostprocess._textures.forEach((rt) => {\n rt.texture.wrapU = Texture.CLAMP_ADDRESSMODE;\n rt.texture.wrapV = Texture.CLAMP_ADDRESSMODE;\n });\n });\n this._fixReusablePostProcess(kernelBlurYPostprocess);\n kernelBlurXPostprocess.autoClear = false;\n kernelBlurYPostprocess.autoClear = false;\n const blurList = [];\n for (let i = 0; i < this._blurNumIterations * 2; ++i) {\n blurList[i] = i & 1 ? kernelBlurYPostprocess : kernelBlurXPostprocess;\n }\n return [rtBlur, texture, blurList];\n }\n else {\n const uniforms = [\"maxFilterSize\", \"blurDir\", \"projectedParticleConstant\", \"depthThreshold\"];\n const kernelBlurXPostprocess = new PostProcess(\"BilateralBlurX\", \"fluidRenderingBilateralBlur\", uniforms, null, 1, null, 1, engine, true, null, textureType, undefined, undefined, undefined, textureFormat, this._shaderLanguage, async () => {\n if (this.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await import(\"../../ShadersWGSL/fluidRenderingBilateralBlur.fragment.js\");\n }\n else {\n await import(\"../../Shaders/fluidRenderingBilateralBlur.fragment.js\");\n }\n });\n kernelBlurXPostprocess.samples = this._samples;\n kernelBlurXPostprocess.externalTextureSamplerBinding = true;\n kernelBlurXPostprocess.onApplyObservable.add((effect) => {\n if (this._postProcessRunningIndex === 0) {\n effect.setTexture(\"textureSampler\", textureBlurSource);\n }\n else {\n effect._bindTexture(\"textureSampler\", kernelBlurXPostprocess.inputTexture.texture);\n }\n effect.setInt(\"maxFilterSize\", this.blurMaxFilterSize);\n effect.setFloat2(\"blurDir\", 1 / this._blurTextureSizeX, 0);\n effect.setFloat(\"projectedParticleConstant\", this._getProjectedParticleConstant());\n effect.setFloat(\"depthThreshold\", this._getDepthThreshold());\n this._postProcessRunningIndex++;\n });\n kernelBlurXPostprocess.onSizeChangedObservable.add(() => {\n kernelBlurXPostprocess._textures.forEach((rt) => {\n rt.texture.wrapU = Texture.CLAMP_ADDRESSMODE;\n rt.texture.wrapV = Texture.CLAMP_ADDRESSMODE;\n });\n });\n this._fixReusablePostProcess(kernelBlurXPostprocess);\n const kernelBlurYPostprocess = new PostProcess(\"BilateralBlurY\", \"fluidRenderingBilateralBlur\", uniforms, null, 1, null, 1, engine, true, null, textureType, undefined, undefined, undefined, textureFormat, this._shaderLanguage, async () => {\n if (this.shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await import(\"../../ShadersWGSL/fluidRenderingBilateralBlur.fragment.js\");\n }\n else {\n await import(\"../../Shaders/fluidRenderingBilateralBlur.fragment.js\");\n }\n });\n kernelBlurYPostprocess.samples = this._samples;\n kernelBlurYPostprocess.onApplyObservable.add((effect) => {\n effect.setInt(\"maxFilterSize\", this.blurMaxFilterSize);\n effect.setFloat2(\"blurDir\", 0, 1 / this._blurTextureSizeY);\n effect.setFloat(\"projectedParticleConstant\", this._getProjectedParticleConstant());\n effect.setFloat(\"depthThreshold\", this._getDepthThreshold());\n this._postProcessRunningIndex++;\n });\n kernelBlurYPostprocess.onSizeChangedObservable.add(() => {\n kernelBlurYPostprocess._textures.forEach((rt) => {\n rt.texture.wrapU = Texture.CLAMP_ADDRESSMODE;\n rt.texture.wrapV = Texture.CLAMP_ADDRESSMODE;\n });\n });\n this._fixReusablePostProcess(kernelBlurYPostprocess);\n kernelBlurXPostprocess.autoClear = false;\n kernelBlurYPostprocess.autoClear = false;\n const blurList = [];\n for (let i = 0; i < this._blurNumIterations * 2; ++i) {\n blurList[i] = i & 1 ? kernelBlurYPostprocess : kernelBlurXPostprocess;\n }\n return [rtBlur, texture, blurList];\n }\n }\n _fixReusablePostProcess(pp) {\n if (!pp.isReusable()) {\n return;\n }\n pp.onActivateObservable.add(() => {\n // undo what calling activate() does which will make sure we will retrieve the right texture when getting the input for the post process\n pp._currentRenderTextureInd = (pp._currentRenderTextureInd + 1) % 2;\n });\n pp.onApplyObservable.add(() => {\n // now we can advance to the next texture\n pp._currentRenderTextureInd = (pp._currentRenderTextureInd + 1) % 2;\n });\n }\n _getProjectedParticleConstant() {\n return (this.blurFilterSize * this.particleSize * 0.05 * (this._height / 2)) / Math.tan((this._camera?.fov ?? (45 * Math.PI) / 180) / 2);\n }\n _getDepthThreshold() {\n return (this.particleSize / 2) * this.blurDepthScale;\n }\n dispose() {\n if (this.onDisposeObservable.hasObservers()) {\n this.onDisposeObservable.notifyObservers(this);\n }\n this.onDisposeObservable.clear();\n this._rt?.dispose();\n this._rt = null;\n this._texture?.dispose();\n this._texture = null;\n this._rtBlur?.dispose();\n this._rtBlur = null;\n this._textureBlurred?.dispose();\n this._textureBlurred = null;\n if (this._blurPostProcesses) {\n this._blurPostProcesses[0].dispose();\n this._blurPostProcesses[1].dispose();\n }\n this._blurPostProcesses = null;\n }\n}\n","\nimport { Color3, Color4 } from \"../../Maths/math.color.js\";\nimport { Matrix, Vector2, Vector3 } from \"../../Maths/math.vector.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { PostProcess } from \"../../PostProcesses/postProcess.js\";\nimport { FluidRenderingTextures } from \"./fluidRenderingTextures.js\";\n/**\n * Textures that can be displayed as a debugging tool\n */\nexport var FluidRenderingDebug;\n(function (FluidRenderingDebug) {\n FluidRenderingDebug[FluidRenderingDebug[\"DepthTexture\"] = 0] = \"DepthTexture\";\n FluidRenderingDebug[FluidRenderingDebug[\"DepthBlurredTexture\"] = 1] = \"DepthBlurredTexture\";\n FluidRenderingDebug[FluidRenderingDebug[\"ThicknessTexture\"] = 2] = \"ThicknessTexture\";\n FluidRenderingDebug[FluidRenderingDebug[\"ThicknessBlurredTexture\"] = 3] = \"ThicknessBlurredTexture\";\n FluidRenderingDebug[FluidRenderingDebug[\"DiffuseTexture\"] = 4] = \"DiffuseTexture\";\n FluidRenderingDebug[FluidRenderingDebug[\"Normals\"] = 5] = \"Normals\";\n FluidRenderingDebug[FluidRenderingDebug[\"DiffuseRendering\"] = 6] = \"DiffuseRendering\";\n})(FluidRenderingDebug || (FluidRenderingDebug = {}));\n/**\n * Class used to render an object as a fluid thanks to different render target textures (depth, thickness, diffuse)\n */\nexport class FluidRenderingTargetRenderer {\n /**\n * Returns true if the class needs to be reinitialized (because of changes in parameterization)\n */\n get needInitialization() {\n return this._needInitialization;\n }\n /**\n * Gets or sets a boolean indicating that the diffuse texture should be generated and used for the rendering\n */\n get generateDiffuseTexture() {\n return this._generateDiffuseTexture;\n }\n set generateDiffuseTexture(generate) {\n if (this._generateDiffuseTexture === generate) {\n return;\n }\n this._generateDiffuseTexture = generate;\n this._needInitialization = true;\n }\n /**\n * Gets or sets the feature (texture) to be debugged. Not used if debug is false\n */\n get debugFeature() {\n return this._debugFeature;\n }\n set debugFeature(feature) {\n if (this._debugFeature === feature) {\n return;\n }\n this._needInitialization = true;\n this._debugFeature = feature;\n }\n /**\n * Gets or sets a boolean indicating if we should display a specific texture (given by debugFeature) for debugging purpose\n */\n get debug() {\n return this._debug;\n }\n set debug(debug) {\n if (this._debug === debug) {\n return;\n }\n this._debug = debug;\n this._needInitialization = true;\n }\n /**\n * Gets or sets the environment map used for the reflection part of the shading\n * If null, no map will be used. If undefined, the scene.environmentMap will be used (if defined)\n */\n get environmentMap() {\n return this._environmentMap;\n }\n set environmentMap(map) {\n if (this._environmentMap === map) {\n return;\n }\n this._needInitialization = true;\n this._environmentMap = map;\n }\n /**\n * Gets or sets a boolean indicating that the depth texture should be blurred\n */\n get enableBlurDepth() {\n return this._enableBlurDepth;\n }\n set enableBlurDepth(enable) {\n if (this._enableBlurDepth === enable) {\n return;\n }\n this._enableBlurDepth = enable;\n this._needInitialization = true;\n }\n /**\n * Gets or sets the depth size divisor (positive number, generally between 1 and 4), which is used as a divisor when creating the texture used for blurring the depth\n * For eg. if blurDepthSizeDivisor=2, the texture used to blur the depth will be half the size of the depth texture\n */\n get blurDepthSizeDivisor() {\n return this._blurDepthSizeDivisor;\n }\n set blurDepthSizeDivisor(scale) {\n if (this._blurDepthSizeDivisor === scale) {\n return;\n }\n this._blurDepthSizeDivisor = scale;\n this._needInitialization = true;\n }\n /**\n * Size of the kernel used to filter the depth blur texture (positive number, generally between 1 and 20 - higher values will require more processing power from the GPU)\n */\n get blurDepthFilterSize() {\n return this._blurDepthFilterSize;\n }\n set blurDepthFilterSize(filterSize) {\n if (this._blurDepthFilterSize === filterSize) {\n return;\n }\n this._blurDepthFilterSize = filterSize;\n this._setBlurParameters();\n }\n /**\n * Number of blurring iterations used to generate the depth blur texture (positive number, generally between 1 and 10 - higher values will require more processing power from the GPU)\n */\n get blurDepthNumIterations() {\n return this._blurDepthNumIterations;\n }\n set blurDepthNumIterations(numIterations) {\n if (this._blurDepthNumIterations === numIterations) {\n return;\n }\n this._blurDepthNumIterations = numIterations;\n this._setBlurParameters();\n }\n /**\n * Maximum size of the kernel used to blur the depth texture (positive number, generally between 1 and 200 - higher values will require more processing power from the GPU when the particles are larger on screen)\n */\n get blurDepthMaxFilterSize() {\n return this._blurDepthMaxFilterSize;\n }\n set blurDepthMaxFilterSize(maxFilterSize) {\n if (this._blurDepthMaxFilterSize === maxFilterSize) {\n return;\n }\n this._blurDepthMaxFilterSize = maxFilterSize;\n this._setBlurParameters();\n }\n /**\n * Depth weight in the calculation when applying the bilateral blur to generate the depth blur texture (positive number, generally between 0 and 100)\n */\n get blurDepthDepthScale() {\n return this._blurDepthDepthScale;\n }\n set blurDepthDepthScale(scale) {\n if (this._blurDepthDepthScale === scale) {\n return;\n }\n this._blurDepthDepthScale = scale;\n this._setBlurParameters();\n }\n /**\n * Gets or sets a boolean indicating that the thickness texture should be blurred\n */\n get enableBlurThickness() {\n return this._enableBlurThickness;\n }\n set enableBlurThickness(enable) {\n if (this._enableBlurThickness === enable) {\n return;\n }\n this._enableBlurThickness = enable;\n this._needInitialization = true;\n }\n /**\n * Gets or sets the thickness size divisor (positive number, generally between 1 and 4), which is used as a divisor when creating the texture used for blurring the thickness\n * For eg. if blurThicknessSizeDivisor=2, the texture used to blur the thickness will be half the size of the thickness texture\n */\n get blurThicknessSizeDivisor() {\n return this._blurThicknessSizeDivisor;\n }\n set blurThicknessSizeDivisor(scale) {\n if (this._blurThicknessSizeDivisor === scale) {\n return;\n }\n this._blurThicknessSizeDivisor = scale;\n this._needInitialization = true;\n }\n /**\n * Size of the kernel used to filter the thickness blur texture (positive number, generally between 1 and 20 - higher values will require more processing power from the GPU)\n */\n get blurThicknessFilterSize() {\n return this._blurThicknessFilterSize;\n }\n set blurThicknessFilterSize(filterSize) {\n if (this._blurThicknessFilterSize === filterSize) {\n return;\n }\n this._blurThicknessFilterSize = filterSize;\n this._setBlurParameters();\n }\n /**\n * Number of blurring iterations used to generate the thickness blur texture (positive number, generally between 1 and 10 - higher values will require more processing power from the GPU)\n */\n get blurThicknessNumIterations() {\n return this._blurThicknessNumIterations;\n }\n set blurThicknessNumIterations(numIterations) {\n if (this._blurThicknessNumIterations === numIterations) {\n return;\n }\n this._blurThicknessNumIterations = numIterations;\n this._setBlurParameters();\n }\n /**\n * Gets or sets a boolean indicating that a fixed thickness should be used instead of generating a thickness texture\n */\n get useFixedThickness() {\n return this._useFixedThickness;\n }\n set useFixedThickness(use) {\n if (this._useFixedThickness === use) {\n return;\n }\n this._useFixedThickness = use;\n this._needInitialization = true;\n }\n /**\n * Gets or sets a boolean indicating that the velocity should be used when rendering the particles as a fluid.\n * Note: the vertex buffers must contain a \"velocity\" buffer for this to work!\n */\n get useVelocity() {\n return this._useVelocity;\n }\n set useVelocity(use) {\n if (this._useVelocity === use) {\n return;\n }\n this._useVelocity = use;\n this._needInitialization = true;\n this._onUseVelocityChanged.notifyObservers(this);\n }\n /**\n * Defines the size of the depth texture.\n * If null, the texture will have the size of the screen\n */\n get depthMapSize() {\n return this._depthMapSize;\n }\n set depthMapSize(size) {\n if (this._depthMapSize === size) {\n return;\n }\n this._depthMapSize = size;\n this._needInitialization = true;\n }\n /**\n * Defines the size of the thickness texture.\n * If null, the texture will have the size of the screen\n */\n get thicknessMapSize() {\n return this._thicknessMapSize;\n }\n set thicknessMapSize(size) {\n if (this._thicknessMapSize === size) {\n return;\n }\n this._thicknessMapSize = size;\n this._needInitialization = true;\n }\n /**\n * Defines the size of the diffuse texture.\n * If null, the texture will have the size of the screen\n */\n get diffuseMapSize() {\n return this._diffuseMapSize;\n }\n set diffuseMapSize(size) {\n if (this._diffuseMapSize === size) {\n return;\n }\n this._diffuseMapSize = size;\n this._needInitialization = true;\n }\n /**\n * Gets or sets the number of samples used by MSAA\n * Note: changing this value in WebGL does not work because depth/stencil textures can't be created with MSAA (see https://github.com/BabylonJS/Babylon.js/issues/12444)\n */\n get samples() {\n return this._samples;\n }\n set samples(samples) {\n if (this._samples === samples) {\n return;\n }\n this._samples = samples;\n this._needInitialization = true;\n }\n /**\n * If compositeMode is true (default: false), when the alpha value of the background (the scene rendered without the fluid objects) is 0, the final alpha value of the pixel will be set to the thickness value.\n * This way, it is possible to composite the fluid rendering on top of the HTML background.\n */\n get compositeMode() {\n return this._compositeMode;\n }\n set compositeMode(value) {\n if (this._compositeMode === value) {\n return;\n }\n this._compositeMode = value;\n this._needInitialization = true;\n }\n /**\n * Gets the camera used for the rendering\n */\n get camera() {\n return this._camera;\n }\n /**\n * Gets the shader language used in this renderer\n */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n /**\n * Creates an instance of the class\n * @param scene Scene used to render the fluid object into\n * @param camera Camera used to render the fluid object. If not provided, use the active camera of the scene instead\n * @param shaderLanguage The shader language to use\n */\n constructor(scene, camera, shaderLanguage) {\n this._generateDiffuseTexture = false;\n /**\n * Fluid color. Not used if generateDiffuseTexture is true\n */\n this.fluidColor = new Color3(0.085, 0.6375, 0.765);\n /**\n * Density of the fluid (positive number). The higher the value, the more opaque the fluid.\n */\n this.density = 2;\n /**\n * Strength of the refraction (positive number, but generally between 0 and 0.3).\n */\n this.refractionStrength = 0.1;\n /**\n * Strength of the fresnel effect (value between 0 and 1). Lower the value if you want to soften the specular effect\n */\n this.fresnelClamp = 1.0;\n /**\n * Strength of the specular power (positive number). Increase the value to make the specular effect more concentrated\n */\n this.specularPower = 250;\n /**\n * Minimum thickness of the particles (positive number). If useFixedThickness is true, minimumThickness is the thickness used\n */\n this.minimumThickness = 0;\n /**\n * Direction of the light. The fluid is assumed to be lit by a directional light\n */\n this.dirLight = new Vector3(-2, -1, 1).normalize();\n this._debugFeature = 1 /* FluidRenderingDebug.DepthBlurredTexture */;\n this._debug = false;\n this._enableBlurDepth = true;\n this._blurDepthSizeDivisor = 1;\n this._blurDepthFilterSize = 7;\n this._blurDepthNumIterations = 3;\n this._blurDepthMaxFilterSize = 100;\n this._blurDepthDepthScale = 10;\n this._enableBlurThickness = true;\n this._blurThicknessSizeDivisor = 1;\n this._blurThicknessFilterSize = 5;\n this._blurThicknessNumIterations = 1;\n this._useFixedThickness = false;\n /** @internal */\n this._onUseVelocityChanged = new Observable();\n this._useVelocity = false;\n this._depthMapSize = null;\n this._thicknessMapSize = null;\n this._diffuseMapSize = null;\n this._samples = 1;\n this._compositeMode = false;\n /** Shader language used by the renderer */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this._scene = scene;\n this._engine = scene.getEngine();\n this._camera = camera ?? scene.activeCamera;\n this._needInitialization = true;\n this._bgDepthTexture = null;\n this._invProjectionMatrix = new Matrix();\n this._depthClearColor = new Color4(1e6, 1e6, 1e6, 1);\n this._thicknessClearColor = new Color4(0, 0, 0, 1);\n this._depthRenderTarget = null;\n this._diffuseRenderTarget = null;\n this._thicknessRenderTarget = null;\n this._renderPostProcess = null;\n this._shaderLanguage = shaderLanguage ?? (this._engine.isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */);\n }\n /** @internal */\n _initialize() {\n this.dispose();\n this._needInitialization = false;\n const depthWidth = this._depthMapSize ?? this._engine.getRenderWidth();\n const depthHeight = this._depthMapSize !== null ? Math.round((this._depthMapSize * this._engine.getRenderHeight()) / this._engine.getRenderWidth()) : this._engine.getRenderHeight();\n this._depthRenderTarget = new FluidRenderingTextures(\"Depth\", this._scene, depthWidth, depthHeight, depthWidth, depthHeight, 1, 7, 1, 7, false, this._camera, true, this._samples, this._shaderLanguage);\n this._initializeRenderTarget(this._depthRenderTarget);\n if (this.generateDiffuseTexture) {\n const diffuseWidth = this._diffuseMapSize ?? this._engine.getRenderWidth();\n const diffuseHeight = this._diffuseMapSize !== null\n ? Math.round((this._diffuseMapSize * this._engine.getRenderHeight()) / this._engine.getRenderWidth())\n : this._engine.getRenderHeight();\n this._diffuseRenderTarget = new FluidRenderingTextures(\"Diffuse\", this._scene, diffuseWidth, diffuseHeight, 0, 0, 0, 5, 0, 5, true, this._camera, true, this._samples, this._shaderLanguage);\n this._initializeRenderTarget(this._diffuseRenderTarget);\n }\n const thicknessWidth = this._thicknessMapSize ?? this._engine.getRenderWidth();\n const thicknessHeight = this._thicknessMapSize !== null\n ? Math.round((this._thicknessMapSize * this._engine.getRenderHeight()) / this._engine.getRenderWidth())\n : this._engine.getRenderHeight();\n if (!this._useFixedThickness) {\n this._thicknessRenderTarget = new FluidRenderingTextures(\"Thickness\", this._scene, thicknessWidth, thicknessHeight, thicknessWidth, thicknessHeight, 2, 6, 2, 6, true, this._camera, false, this._samples, this._shaderLanguage);\n this._initializeRenderTarget(this._thicknessRenderTarget);\n }\n this._createLiquidRenderingPostProcess();\n }\n _setBlurParameters(renderTarget = null) {\n if (renderTarget === null || renderTarget === this._depthRenderTarget) {\n this._setBlurDepthParameters();\n }\n if (renderTarget === null || renderTarget === this._thicknessRenderTarget) {\n this._setBlurThicknessParameters();\n }\n }\n _setBlurDepthParameters() {\n if (!this._depthRenderTarget) {\n return;\n }\n this._depthRenderTarget.blurFilterSize = this.blurDepthFilterSize;\n this._depthRenderTarget.blurMaxFilterSize = this.blurDepthMaxFilterSize;\n this._depthRenderTarget.blurNumIterations = this.blurDepthNumIterations;\n this._depthRenderTarget.blurDepthScale = this.blurDepthDepthScale;\n }\n _setBlurThicknessParameters() {\n if (!this._thicknessRenderTarget) {\n return;\n }\n this._thicknessRenderTarget.blurFilterSize = this.blurThicknessFilterSize;\n this._thicknessRenderTarget.blurNumIterations = this.blurThicknessNumIterations;\n }\n _initializeRenderTarget(renderTarget) {\n if (renderTarget !== this._diffuseRenderTarget) {\n renderTarget.enableBlur = renderTarget === this._depthRenderTarget ? this.enableBlurDepth : this.enableBlurThickness;\n renderTarget.blurSizeDivisor = renderTarget === this._depthRenderTarget ? this.blurDepthSizeDivisor : this.blurThicknessSizeDivisor;\n }\n this._setBlurParameters(renderTarget);\n renderTarget.initialize();\n }\n _createLiquidRenderingPostProcess() {\n const engine = this._scene.getEngine();\n const uniformNames = [\n \"viewMatrix\",\n \"projectionMatrix\",\n \"invProjectionMatrix\",\n \"texelSize\",\n \"dirLight\",\n \"cameraFar\",\n \"density\",\n \"refractionStrength\",\n \"fresnelClamp\",\n \"specularPower\",\n ];\n const samplerNames = [\"depthSampler\"];\n const defines = [];\n this.dispose(true);\n if (!this._camera) {\n return;\n }\n const texture = this._depthRenderTarget.enableBlur ? this._depthRenderTarget.textureBlur : this._depthRenderTarget.texture;\n const texelSize = new Vector2(1 / texture.getSize().width, 1 / texture.getSize().height);\n if (this._scene.useRightHandedSystem) {\n defines.push(\"#define FLUIDRENDERING_RHS\");\n }\n if (this._environmentMap !== null) {\n const envMap = this._environmentMap ?? this._scene.environmentTexture;\n if (envMap) {\n samplerNames.push(\"reflectionSampler\");\n defines.push(\"#define FLUIDRENDERING_ENVIRONMENT\");\n }\n }\n if (this._diffuseRenderTarget) {\n samplerNames.push(\"diffuseSampler\");\n defines.push(\"#define FLUIDRENDERING_DIFFUSETEXTURE\");\n }\n else {\n uniformNames.push(\"diffuseColor\");\n }\n if (this._useVelocity) {\n samplerNames.push(\"velocitySampler\");\n defines.push(\"#define FLUIDRENDERING_VELOCITY\");\n }\n if (this._useFixedThickness) {\n uniformNames.push(\"thickness\");\n samplerNames.push(\"bgDepthSampler\");\n defines.push(\"#define FLUIDRENDERING_FIXED_THICKNESS\");\n }\n else {\n uniformNames.push(\"minimumThickness\");\n samplerNames.push(\"thicknessSampler\");\n }\n if (this._compositeMode) {\n defines.push(\"#define FLUIDRENDERING_COMPOSITE_MODE\");\n }\n if (this._debug) {\n defines.push(\"#define FLUIDRENDERING_DEBUG\");\n if (this._debugFeature === 5 /* FluidRenderingDebug.Normals */) {\n defines.push(\"#define FLUIDRENDERING_DEBUG_SHOWNORMAL\");\n }\n else if (this._debugFeature === 6 /* FluidRenderingDebug.DiffuseRendering */) {\n defines.push(\"#define FLUIDRENDERING_DEBUG_DIFFUSERENDERING\");\n }\n else {\n defines.push(\"#define FLUIDRENDERING_DEBUG_TEXTURE\");\n samplerNames.push(\"debugSampler\");\n if (this._debugFeature === 0 /* FluidRenderingDebug.DepthTexture */ || this._debugFeature === 1 /* FluidRenderingDebug.DepthBlurredTexture */) {\n defines.push(\"#define FLUIDRENDERING_DEBUG_DEPTH\");\n }\n }\n }\n this._renderPostProcess = new PostProcess(\"FluidRendering\", \"fluidRenderingRender\", uniformNames, samplerNames, 1, null, 2, engine, false, null, 0, undefined, undefined, true, undefined, this._shaderLanguage, async () => {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await import(\"../../ShadersWGSL/fluidRenderingRender.fragment.js\");\n }\n else {\n await import(\"../../Shaders/fluidRenderingRender.fragment.js\");\n }\n });\n this._renderPostProcess.updateEffect(defines.join(\"\\n\"));\n this._renderPostProcess.samples = this._samples;\n const engineWebGPU = engine;\n const setTextureSampler = engineWebGPU.setTextureSampler;\n this._renderPostProcess.onApplyObservable.add((effect) => {\n this._invProjectionMatrix.copyFrom(this._scene.getProjectionMatrix());\n this._invProjectionMatrix.invert();\n if (setTextureSampler) {\n setTextureSampler.call(engineWebGPU, \"textureSamplerSampler\", this._renderPostProcess.inputTexture.texture);\n }\n if (!this._depthRenderTarget.enableBlur) {\n effect.setTexture(\"depthSampler\", this._depthRenderTarget.texture);\n if (setTextureSampler) {\n setTextureSampler.call(engineWebGPU, \"depthSamplerSampler\", this._depthRenderTarget.texture?.getInternalTexture() ?? null);\n }\n }\n else {\n effect.setTexture(\"depthSampler\", this._depthRenderTarget.textureBlur);\n if (setTextureSampler) {\n setTextureSampler.call(engineWebGPU, \"depthSamplerSampler\", this._depthRenderTarget.textureBlur?.getInternalTexture() ?? null);\n }\n }\n if (this._diffuseRenderTarget) {\n if (!this._diffuseRenderTarget.enableBlur) {\n effect.setTexture(\"diffuseSampler\", this._diffuseRenderTarget.texture);\n if (setTextureSampler) {\n setTextureSampler.call(engineWebGPU, \"diffuseSamplerSampler\", this._diffuseRenderTarget.texture?.getInternalTexture() ?? null);\n }\n }\n else {\n effect.setTexture(\"diffuseSampler\", this._diffuseRenderTarget.textureBlur);\n if (setTextureSampler) {\n setTextureSampler.call(engineWebGPU, \"diffuseSamplerSampler\", this._diffuseRenderTarget.textureBlur?.getInternalTexture() ?? null);\n }\n }\n }\n else {\n effect.setColor3(\"diffuseColor\", this.fluidColor);\n }\n if (this._useFixedThickness) {\n effect.setFloat(\"thickness\", this.minimumThickness);\n effect._bindTexture(\"bgDepthSampler\", this._bgDepthTexture);\n if (setTextureSampler) {\n setTextureSampler.call(engineWebGPU, \"bgDepthSamplerSampler\", this._bgDepthTexture ?? null);\n }\n }\n else {\n if (!this._thicknessRenderTarget.enableBlur) {\n effect.setTexture(\"thicknessSampler\", this._thicknessRenderTarget.texture);\n if (setTextureSampler) {\n setTextureSampler.call(engineWebGPU, \"thicknessSamplerSampler\", this._thicknessRenderTarget.texture?.getInternalTexture() ?? null);\n }\n }\n else {\n effect.setTexture(\"thicknessSampler\", this._thicknessRenderTarget.textureBlur);\n if (setTextureSampler) {\n setTextureSampler.call(engineWebGPU, \"thicknessSamplerSampler\", this._thicknessRenderTarget.textureBlur?.getInternalTexture() ?? null);\n }\n }\n effect.setFloat(\"minimumThickness\", this.minimumThickness);\n }\n if (this._environmentMap !== null) {\n const envMap = this._environmentMap ?? this._scene.environmentTexture;\n if (envMap) {\n effect.setTexture(\"reflectionSampler\", envMap);\n if (setTextureSampler) {\n setTextureSampler.call(engineWebGPU, \"reflectionSamplerSampler\", envMap?.getInternalTexture() ?? null);\n }\n }\n }\n effect.setMatrix(\"viewMatrix\", this._scene.getViewMatrix());\n effect.setMatrix(\"invProjectionMatrix\", this._invProjectionMatrix);\n effect.setMatrix(\"projectionMatrix\", this._scene.getProjectionMatrix());\n effect.setVector2(\"texelSize\", texelSize);\n effect.setFloat(\"density\", this.density);\n effect.setFloat(\"refractionStrength\", this.refractionStrength);\n effect.setFloat(\"fresnelClamp\", this.fresnelClamp);\n effect.setFloat(\"specularPower\", this.specularPower);\n effect.setVector3(\"dirLight\", this.dirLight);\n effect.setFloat(\"cameraFar\", this._camera.maxZ);\n if (this._debug) {\n let texture = null;\n switch (this._debugFeature) {\n case 0 /* FluidRenderingDebug.DepthTexture */:\n texture = this._depthRenderTarget.texture;\n break;\n case 1 /* FluidRenderingDebug.DepthBlurredTexture */:\n texture = this._depthRenderTarget.enableBlur ? this._depthRenderTarget.textureBlur : this._depthRenderTarget.texture;\n break;\n case 2 /* FluidRenderingDebug.ThicknessTexture */:\n texture = this._thicknessRenderTarget?.texture ?? null;\n break;\n case 3 /* FluidRenderingDebug.ThicknessBlurredTexture */:\n texture = this._thicknessRenderTarget?.enableBlur ? (this._thicknessRenderTarget?.textureBlur ?? null) : (this._thicknessRenderTarget?.texture ?? null);\n break;\n case 4 /* FluidRenderingDebug.DiffuseTexture */:\n if (this._diffuseRenderTarget) {\n texture = this._diffuseRenderTarget.texture;\n }\n break;\n }\n if (this._debugFeature !== 5 /* FluidRenderingDebug.Normals */) {\n effect.setTexture(\"debugSampler\", texture);\n if (setTextureSampler) {\n setTextureSampler.call(engineWebGPU, \"debugSamplerSampler\", texture?.getInternalTexture() ?? null);\n }\n }\n }\n });\n }\n /** @internal */\n _clearTargets() {\n if (this._depthRenderTarget?.renderTarget) {\n this._engine.bindFramebuffer(this._depthRenderTarget.renderTarget);\n this._engine.clear(this._depthClearColor, true, true, false);\n this._engine.unBindFramebuffer(this._depthRenderTarget.renderTarget);\n }\n if (this._diffuseRenderTarget?.renderTarget) {\n this._engine.bindFramebuffer(this._diffuseRenderTarget.renderTarget);\n this._engine.clear(this._thicknessClearColor, true, true, false);\n this._engine.unBindFramebuffer(this._diffuseRenderTarget.renderTarget);\n }\n if (this._thicknessRenderTarget?.renderTarget) {\n this._engine.bindFramebuffer(this._thicknessRenderTarget.renderTarget);\n // we don't clear the depth buffer because it is the depth buffer that is coming from the scene and that we reuse in the thickness rendering pass\n this._engine.clear(this._thicknessClearColor, true, false, false);\n this._engine.unBindFramebuffer(this._thicknessRenderTarget.renderTarget);\n }\n }\n /** @internal */\n _render(fluidObject) {\n if (this._needInitialization || !fluidObject.isReady()) {\n return;\n }\n const currentRenderTarget = this._engine._currentRenderTarget;\n this._engine.setState(false, undefined, undefined, undefined, true);\n this._engine.setDepthBuffer(true);\n this._engine.setDepthWrite(true);\n this._engine.setAlphaMode(0);\n // Render the particles in the depth texture\n if (this._depthRenderTarget?.renderTarget) {\n this._engine.bindFramebuffer(this._depthRenderTarget.renderTarget);\n fluidObject.renderDepthTexture();\n this._engine.unbindInstanceAttributes();\n this._engine.unBindFramebuffer(this._depthRenderTarget.renderTarget);\n }\n // Render the particles in the diffuse texture\n if (this._diffuseRenderTarget?.renderTarget) {\n this._engine.bindFramebuffer(this._diffuseRenderTarget.renderTarget);\n fluidObject.renderDiffuseTexture();\n this._engine.unbindInstanceAttributes();\n this._engine.unBindFramebuffer(this._diffuseRenderTarget.renderTarget);\n }\n // Render the particles in the thickness texture\n if (this._thicknessRenderTarget?.renderTarget) {\n this._engine.bindFramebuffer(this._thicknessRenderTarget.renderTarget);\n fluidObject.renderThicknessTexture();\n this._engine.unbindInstanceAttributes();\n this._engine.unBindFramebuffer(this._thicknessRenderTarget.renderTarget);\n }\n // Run the blur post processes\n this._depthRenderTarget?.applyBlurPostProcesses();\n this._diffuseRenderTarget?.applyBlurPostProcesses();\n this._thicknessRenderTarget?.applyBlurPostProcesses();\n if (currentRenderTarget) {\n this._engine.bindFramebuffer(currentRenderTarget);\n }\n }\n /**\n * Releases all the ressources used by the class\n * @param onlyPostProcesses If true, releases only the ressources used by the render post processes\n */\n dispose(onlyPostProcesses = false) {\n if (!onlyPostProcesses) {\n this._depthRenderTarget?.dispose();\n this._depthRenderTarget = null;\n this._diffuseRenderTarget?.dispose();\n this._diffuseRenderTarget = null;\n this._thicknessRenderTarget?.dispose();\n this._thicknessRenderTarget = null;\n }\n if (this._renderPostProcess && this._camera) {\n this._camera.detachPostProcess(this._renderPostProcess);\n }\n this._renderPostProcess?.dispose();\n this._renderPostProcess = null;\n this._onUseVelocityChanged.clear();\n this._needInitialization = false;\n }\n}\n","import { VertexBuffer } from \"../../Buffers/buffer.js\";\n\nimport { EffectWrapper } from \"../../Materials/effectRenderer.js\";\nimport { FluidRenderingObject } from \"./fluidRenderingObject.js\";\n/**\n * Defines a rendering object based on a list of custom buffers\n * The list must contain at least a \"position\" buffer!\n */\nexport class FluidRenderingObjectCustomParticles extends FluidRenderingObject {\n /**\n * @returns the name of the class\n */\n getClassName() {\n return \"FluidRenderingObjectCustomParticles\";\n }\n /**\n * Gets the vertex buffers\n */\n get vertexBuffers() {\n return this._vertexBuffers;\n }\n /**\n * Creates a new instance of the class\n * @param scene The scene the particles should be rendered into\n * @param buffers The list of buffers (must contain at least one \"position\" buffer!). Note that you don't have to pass all (or any!) buffers at once in the constructor, you can use the addBuffers method to add more later.\n * @param numParticles Number of vertices to take into account from the buffers\n * @param shaderLanguage The shader language to use\n */\n constructor(scene, buffers, numParticles, shaderLanguage) {\n super(scene, shaderLanguage);\n this._numParticles = numParticles;\n this._diffuseEffectWrapper = null;\n this._vertexBuffers = {};\n this.addBuffers(buffers);\n }\n /**\n * Add some new buffers\n * @param buffers List of buffers\n */\n addBuffers(buffers) {\n for (const name in buffers) {\n let stride;\n let instanced = true;\n switch (name) {\n case \"velocity\":\n stride = 3;\n break;\n case \"offset\":\n instanced = false;\n break;\n }\n this._vertexBuffers[name] = new VertexBuffer(this._engine, buffers[name], name, true, false, stride, instanced);\n }\n }\n _createEffects() {\n super._createEffects();\n const uniformNames = [\"view\", \"projection\", \"size\"];\n const attributeNames = [\"position\", \"offset\", \"color\"];\n this._diffuseEffectWrapper = new EffectWrapper({\n engine: this._engine,\n useShaderStore: true,\n vertexShader: \"fluidRenderingParticleDiffuse\",\n fragmentShader: \"fluidRenderingParticleDiffuse\",\n attributeNames,\n uniformNames,\n samplerNames: [],\n shaderLanguage: this._shaderLanguage,\n extraInitializationsAsync: async () => {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await import(\"../../ShadersWGSL/fluidRenderingParticleDiffuse.fragment.js\");\n }\n else {\n await import(\"../../Shaders/fluidRenderingParticleDiffuse.fragment.js\");\n }\n },\n });\n }\n /**\n * Indicates if the object is ready to be rendered\n * @returns True if everything is ready for the object to be rendered, otherwise false\n */\n isReady() {\n if (!this._vertexBuffers[\"offset\"]) {\n this._vertexBuffers[\"offset\"] = new VertexBuffer(this._engine, [0, 0, 1, 0, 0, 1, 1, 1], \"offset\", false, false, 2);\n }\n return super.isReady() && (this._diffuseEffectWrapper?.effect.isReady() ?? false);\n }\n /**\n * Gets the number of particles in this object\n * @returns The number of particles\n */\n get numParticles() {\n return this._numParticles;\n }\n /**\n * Sets the number of particles in this object\n * @param num The number of particles to take into account\n */\n setNumParticles(num) {\n this._numParticles = num;\n }\n /**\n * Render the diffuse texture for this object\n */\n renderDiffuseTexture() {\n const numParticles = this.numParticles;\n if (!this._diffuseEffectWrapper || numParticles === 0) {\n return;\n }\n const diffuseDrawWrapper = this._diffuseEffectWrapper.drawWrapper;\n const diffuseEffect = diffuseDrawWrapper.effect;\n this._engine.enableEffect(diffuseDrawWrapper);\n this._engine.bindBuffers(this.vertexBuffers, this.indexBuffer, diffuseEffect);\n diffuseEffect.setMatrix(\"view\", this._scene.getViewMatrix());\n diffuseEffect.setMatrix(\"projection\", this._scene.getProjectionMatrix());\n if (this._particleSize !== null) {\n diffuseEffect.setFloat2(\"size\", this._particleSize, this._particleSize);\n }\n if (this.useInstancing) {\n this._engine.drawArraysType(7, 0, 4, numParticles);\n }\n else {\n this._engine.drawElementsType(0, 0, numParticles);\n }\n }\n /**\n * Releases the ressources used by the class\n */\n dispose() {\n super.dispose();\n this._diffuseEffectWrapper?.dispose();\n for (const name in this._vertexBuffers) {\n this._vertexBuffers[name].dispose();\n }\n this._vertexBuffers = {};\n }\n}\n","\nimport { CopyTextureToTexture } from \"../../Misc/copyTextureToTexture.js\";\n/** @internal */\nexport class FluidRenderingDepthTextureCopy {\n get depthRTWrapper() {\n return this._depthRTWrapper;\n }\n constructor(engine, width, height, samples = 1) {\n this._engine = engine;\n this._copyTextureToTexture = new CopyTextureToTexture(engine, true);\n this._depthRTWrapper = this._engine.createRenderTargetTexture({ width, height }, {\n generateMipMaps: false,\n type: 0,\n format: 6,\n samplingMode: 1,\n generateDepthBuffer: true,\n generateStencilBuffer: false,\n samples,\n noColorAttachment: true,\n label: \"FluidRenderingDepthTextureCopyRTT\",\n });\n const depthTexture = this._depthRTWrapper.createDepthStencilTexture(0, false, false, 1, undefined, \"FluidRenderingDepthTextureCopyRTTDepthStencil\");\n depthTexture.label = `FluidDepthTextureCopy${width}x${height}x${samples}`;\n }\n copy(source) {\n return this._copyTextureToTexture.copy(source, this._depthRTWrapper);\n }\n dispose() {\n this._depthRTWrapper.dispose();\n this._copyTextureToTexture.dispose();\n }\n}\n","import { Scene } from \"../../scene.js\";\nimport { SceneComponentConstants } from \"../../sceneComponent.js\";\n\nimport { FluidRenderingObjectParticleSystem } from \"./fluidRenderingObjectParticleSystem.js\";\nimport { FluidRenderingTargetRenderer } from \"./fluidRenderingTargetRenderer.js\";\nimport { FluidRenderingObjectCustomParticles } from \"./fluidRenderingObjectCustomParticles.js\";\nimport { FluidRenderingDepthTextureCopy } from \"./fluidRenderingDepthTextureCopy.js\";\nObject.defineProperty(Scene.prototype, \"fluidRenderer\", {\n get: function () {\n return this._fluidRenderer;\n },\n set: function (value) {\n this._fluidRenderer = value;\n },\n enumerable: true,\n configurable: true,\n});\nScene.prototype.enableFluidRenderer = function () {\n if (this._fluidRenderer) {\n return this._fluidRenderer;\n }\n this._fluidRenderer = new FluidRenderer(this);\n return this._fluidRenderer;\n};\nScene.prototype.disableFluidRenderer = function () {\n this._fluidRenderer?.dispose();\n this._fluidRenderer = null;\n};\nfunction IsParticleSystemObject(obj) {\n return !!obj.particleSystem;\n}\nfunction IsCustomParticlesObject(obj) {\n return !!obj.addBuffers;\n}\n/**\n * Defines the fluid renderer scene component responsible to render objects as fluids\n */\nexport class FluidRendererSceneComponent {\n /**\n * Creates a new instance of the component for the given scene\n * @param scene Defines the scene to register the component in\n */\n constructor(scene) {\n /**\n * The component name helpful to identify the component in the list of scene components.\n */\n this.name = SceneComponentConstants.NAME_FLUIDRENDERER;\n this.scene = scene;\n }\n /**\n * Registers the component in a given scene\n */\n register() {\n this.scene._gatherActiveCameraRenderTargetsStage.registerStep(SceneComponentConstants.STEP_GATHERACTIVECAMERARENDERTARGETS_FLUIDRENDERER, this, this._gatherActiveCameraRenderTargets);\n this.scene._afterCameraDrawStage.registerStep(SceneComponentConstants.STEP_AFTERCAMERADRAW_FLUIDRENDERER, this, this._afterCameraDraw);\n }\n _gatherActiveCameraRenderTargets(_renderTargets) {\n this.scene.fluidRenderer?._prepareRendering();\n }\n _afterCameraDraw(camera) {\n this.scene.fluidRenderer?._render(camera);\n }\n /**\n * Rebuilds the elements related to this component in case of\n * context lost for instance.\n */\n rebuild() {\n const fluidRenderer = this.scene.fluidRenderer;\n if (!fluidRenderer) {\n return;\n }\n const buffers = new Set();\n for (let i = 0; i < fluidRenderer.renderObjects.length; ++i) {\n const obj = fluidRenderer.renderObjects[i].object;\n if (IsCustomParticlesObject(obj)) {\n const vbuffers = obj.vertexBuffers;\n for (const name in vbuffers) {\n buffers.add(vbuffers[name].getWrapperBuffer());\n }\n }\n }\n buffers.forEach((buffer) => {\n buffer._rebuild();\n });\n }\n /**\n * Disposes the component and the associated resources\n */\n dispose() {\n this.scene.disableFluidRenderer();\n }\n}\n/**\n * Class responsible for fluid rendering.\n * It is implementing the method described in https://developer.download.nvidia.com/presentations/2010/gdc/Direct3D_Effects.pdf\n */\nexport class FluidRenderer {\n /** @internal */\n static _SceneComponentInitialization(scene) {\n let component = scene._getComponent(SceneComponentConstants.NAME_FLUIDRENDERER);\n if (!component) {\n component = new FluidRendererSceneComponent(scene);\n scene._addComponent(component);\n }\n }\n /**\n * Gets the shader language used in this renderer\n */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n /**\n * Initializes the class\n * @param scene Scene in which the objects are part of\n */\n constructor(scene) {\n /** Shader language used by the renderer */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this._scene = scene;\n this._engine = scene.getEngine();\n this._onEngineResizeObserver = null;\n this.renderObjects = [];\n this.targetRenderers = [];\n this._cameras = new Map();\n FluidRenderer._SceneComponentInitialization(this._scene);\n this._onEngineResizeObserver = this._engine.onResizeObservable.add(() => {\n this._initialize();\n });\n const engine = this._engine;\n if (engine.isWebGPU) {\n this._shaderLanguage = 1 /* ShaderLanguage.WGSL */;\n }\n }\n /**\n * Reinitializes the class\n * Can be used if you change the object priority (FluidRenderingObject.priority), to make sure the objects are rendered in the right order\n */\n recreate() {\n this._sortRenderingObjects();\n this._initialize();\n }\n /**\n * Gets the render object corresponding to a particle system (null if the particle system is not rendered as a fluid)\n * @param ps The particle system\n * @returns the render object corresponding to this particle system if any, otherwise null\n */\n getRenderObjectFromParticleSystem(ps) {\n const index = this._getParticleSystemIndex(ps);\n return index !== -1 ? this.renderObjects[index] : null;\n }\n /**\n * Adds a particle system to the fluid renderer.\n * @param ps particle system\n * @param generateDiffuseTexture True if you want to generate a diffuse texture from the particle system and use it as part of the fluid rendering (default: false)\n * @param targetRenderer The target renderer used to display the particle system as a fluid. If not provided, the method will create a new one\n * @param camera The camera used by the target renderer (if the target renderer is created by the method)\n * @returns the render object corresponding to the particle system\n */\n addParticleSystem(ps, generateDiffuseTexture, targetRenderer, camera) {\n const object = new FluidRenderingObjectParticleSystem(this._scene, ps, this._shaderLanguage);\n object.onParticleSizeChanged.add(() => this._setParticleSizeForRenderTargets());\n if (!targetRenderer) {\n targetRenderer = new FluidRenderingTargetRenderer(this._scene, camera, this._shaderLanguage);\n this.targetRenderers.push(targetRenderer);\n }\n if (!targetRenderer._onUseVelocityChanged.hasObservers()) {\n targetRenderer._onUseVelocityChanged.add(() => this._setUseVelocityForRenderObject());\n }\n if (generateDiffuseTexture !== undefined) {\n targetRenderer.generateDiffuseTexture = generateDiffuseTexture;\n }\n const renderObject = { object, targetRenderer };\n this.renderObjects.push(renderObject);\n this._sortRenderingObjects();\n this._setParticleSizeForRenderTargets();\n return renderObject;\n }\n /**\n * Adds a custom particle set to the fluid renderer.\n * @param buffers The list of buffers (should contain at least a \"position\" buffer!)\n * @param numParticles Number of particles in each buffer\n * @param generateDiffuseTexture True if you want to generate a diffuse texture from buffers and use it as part of the fluid rendering (default: false). For the texture to be generated correctly, you need a \"color\" buffer in the set!\n * @param targetRenderer The target renderer used to display the particle system as a fluid. If not provided, the method will create a new one\n * @param camera The camera used by the target renderer (if the target renderer is created by the method)\n * @returns the render object corresponding to the custom particle set\n */\n addCustomParticles(buffers, numParticles, generateDiffuseTexture, targetRenderer, camera) {\n const object = new FluidRenderingObjectCustomParticles(this._scene, buffers, numParticles, this._shaderLanguage);\n object.onParticleSizeChanged.add(() => this._setParticleSizeForRenderTargets());\n if (!targetRenderer) {\n targetRenderer = new FluidRenderingTargetRenderer(this._scene, camera, this._shaderLanguage);\n this.targetRenderers.push(targetRenderer);\n }\n if (!targetRenderer._onUseVelocityChanged.hasObservers()) {\n targetRenderer._onUseVelocityChanged.add(() => this._setUseVelocityForRenderObject());\n }\n if (generateDiffuseTexture !== undefined) {\n targetRenderer.generateDiffuseTexture = generateDiffuseTexture;\n }\n const renderObject = { object, targetRenderer };\n this.renderObjects.push(renderObject);\n this._sortRenderingObjects();\n this._setParticleSizeForRenderTargets();\n return renderObject;\n }\n /**\n * Removes a render object from the fluid renderer\n * @param renderObject the render object to remove\n * @param removeUnusedTargetRenderer True to remove/dispose of the target renderer if it's not used anymore (default: true)\n * @returns True if the render object has been found and released, else false\n */\n removeRenderObject(renderObject, removeUnusedTargetRenderer = true) {\n const index = this.renderObjects.indexOf(renderObject);\n if (index === -1) {\n return false;\n }\n renderObject.object.dispose();\n this.renderObjects.splice(index, 1);\n if (removeUnusedTargetRenderer && this._removeUnusedTargetRenderers()) {\n this._initialize();\n }\n else {\n this._setParticleSizeForRenderTargets();\n }\n return true;\n }\n _sortRenderingObjects() {\n this.renderObjects.sort((a, b) => {\n return a.object.priority < b.object.priority ? -1 : a.object.priority > b.object.priority ? 1 : 0;\n });\n }\n _removeUnusedTargetRenderers() {\n const indexes = {};\n for (let i = 0; i < this.renderObjects.length; ++i) {\n const targetRenderer = this.renderObjects[i].targetRenderer;\n indexes[this.targetRenderers.indexOf(targetRenderer)] = true;\n }\n let removed = false;\n const newList = [];\n for (let i = 0; i < this.targetRenderers.length; ++i) {\n if (!indexes[i]) {\n this.targetRenderers[i].dispose();\n removed = true;\n }\n else {\n newList.push(this.targetRenderers[i]);\n }\n }\n if (removed) {\n this.targetRenderers.length = 0;\n this.targetRenderers.push(...newList);\n }\n return removed;\n }\n _getParticleSystemIndex(ps) {\n for (let i = 0; i < this.renderObjects.length; ++i) {\n const obj = this.renderObjects[i].object;\n if (IsParticleSystemObject(obj) && obj.particleSystem === ps) {\n return i;\n }\n }\n return -1;\n }\n _initialize() {\n for (let i = 0; i < this.targetRenderers.length; ++i) {\n this.targetRenderers[i].dispose();\n }\n const cameras = new Map();\n for (let i = 0; i < this.targetRenderers.length; ++i) {\n const targetRenderer = this.targetRenderers[i];\n targetRenderer._initialize();\n if (targetRenderer.camera && targetRenderer._renderPostProcess) {\n let list = cameras.get(targetRenderer.camera);\n if (!list) {\n list = [[], {}];\n cameras.set(targetRenderer.camera, list);\n }\n list[0].push(targetRenderer);\n targetRenderer.camera.attachPostProcess(targetRenderer._renderPostProcess, i);\n }\n }\n let iterator = cameras.keys();\n for (let key = iterator.next(); key.done !== true; key = iterator.next()) {\n const camera = key.value;\n const list = cameras.get(camera);\n const firstPostProcess = camera._getFirstPostProcess();\n if (!firstPostProcess) {\n continue;\n }\n const [targetRenderers, copyDepthTextures] = list;\n firstPostProcess.onSizeChangedObservable.add(() => {\n if (!firstPostProcess.inputTexture.depthStencilTexture) {\n firstPostProcess.inputTexture.createDepthStencilTexture(0, true, this._engine.isStencilEnable, targetRenderers[0].samples, this._engine.isStencilEnable ? 13 : 14, `PostProcessRTTDepthStencil-${firstPostProcess.name}`);\n }\n for (const targetRenderer of targetRenderers) {\n const thicknessRT = targetRenderer._thicknessRenderTarget?.renderTarget;\n const thicknessTexture = thicknessRT?.texture;\n if (thicknessRT && thicknessTexture) {\n const key = thicknessTexture.width + \"_\" + thicknessTexture.height;\n let copyDepthTexture = copyDepthTextures[key];\n if (!copyDepthTexture) {\n copyDepthTexture = copyDepthTextures[key] = new FluidRenderingDepthTextureCopy(this._engine, thicknessTexture.width, thicknessTexture.height);\n }\n copyDepthTexture.depthRTWrapper.shareDepth(thicknessRT);\n }\n }\n });\n }\n // Dispose the CopyDepthTexture instances that we don't need anymore\n iterator = this._cameras.keys();\n for (let key = iterator.next(); key.done !== true; key = iterator.next()) {\n const camera = key.value;\n const list = this._cameras.get(camera);\n const copyDepthTextures = list[1];\n const list2 = cameras.get(camera);\n if (!list2) {\n for (const key in copyDepthTextures) {\n copyDepthTextures[key].dispose();\n }\n }\n else {\n for (const key in copyDepthTextures) {\n if (!list2[1][key]) {\n copyDepthTextures[key].dispose();\n }\n }\n }\n }\n this._cameras.clear();\n this._cameras = cameras;\n this._setParticleSizeForRenderTargets();\n }\n _setParticleSizeForRenderTargets() {\n const particleSizes = new Map();\n for (let i = 0; i < this.renderObjects.length; ++i) {\n const renderingObject = this.renderObjects[i];\n let curSize = particleSizes.get(renderingObject.targetRenderer);\n if (curSize === undefined) {\n curSize = 0;\n }\n particleSizes.set(renderingObject.targetRenderer, Math.max(curSize, renderingObject.object.particleSize));\n }\n particleSizes.forEach((particleSize, targetRenderer) => {\n if (targetRenderer._depthRenderTarget) {\n targetRenderer._depthRenderTarget.particleSize = particleSize;\n }\n });\n }\n _setUseVelocityForRenderObject() {\n for (const renderingObject of this.renderObjects) {\n renderingObject.object.useVelocity = renderingObject.targetRenderer.useVelocity;\n }\n }\n /** @internal */\n _prepareRendering() {\n for (const renderer of this.targetRenderers) {\n if (renderer.needInitialization) {\n this._initialize();\n return;\n }\n }\n }\n /** @internal */\n _render(forCamera) {\n for (let i = 0; i < this.targetRenderers.length; ++i) {\n if (!forCamera || this.targetRenderers[i].camera === forCamera) {\n this.targetRenderers[i]._clearTargets();\n }\n }\n const iterator = this._cameras.keys();\n for (let key = iterator.next(); key.done !== true; key = iterator.next()) {\n const camera = key.value;\n const list = this._cameras.get(camera);\n if (forCamera && camera !== forCamera) {\n continue;\n }\n const firstPostProcess = camera._getFirstPostProcess();\n if (!firstPostProcess) {\n continue;\n }\n const sourceCopyDepth = firstPostProcess.inputTexture?.depthStencilTexture;\n if (sourceCopyDepth) {\n const [targetRenderers, copyDepthTextures] = list;\n for (const targetRenderer of targetRenderers) {\n targetRenderer._bgDepthTexture = sourceCopyDepth;\n }\n for (const key in copyDepthTextures) {\n copyDepthTextures[key].copy(sourceCopyDepth);\n }\n }\n }\n for (let i = 0; i < this.renderObjects.length; ++i) {\n const renderingObject = this.renderObjects[i];\n if (!forCamera || renderingObject.targetRenderer.camera === forCamera) {\n renderingObject.targetRenderer._render(renderingObject.object);\n }\n }\n }\n /**\n * Disposes of all the ressources used by the class\n */\n dispose() {\n this._engine.onResizeObservable.remove(this._onEngineResizeObserver);\n this._onEngineResizeObserver = null;\n for (let i = 0; i < this.renderObjects.length; ++i) {\n this.renderObjects[i].object.dispose();\n }\n for (let i = 0; i < this.targetRenderers.length; ++i) {\n this.targetRenderers[i].dispose();\n }\n this._cameras.forEach((list) => {\n const copyDepthTextures = list[1];\n for (const key in copyDepthTextures) {\n copyDepthTextures[key].dispose();\n }\n });\n this.renderObjects = [];\n this.targetRenderers = [];\n this._cameras.clear();\n }\n}\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"fluidRenderingParticleDiffuseVertexShader\";\nconst shader = `attribute vec3 position;attribute vec2 offset;attribute vec4 color;uniform mat4 view;uniform mat4 projection;uniform vec2 size;varying vec2 uv;varying vec3 diffuseColor;void main(void) {vec3 cornerPos;cornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;cornerPos.z=0.0;vec3 viewPos=(view*vec4(position,1.0)).xyz+cornerPos;gl_Position=projection*vec4(viewPos,1.0);uv=offset;diffuseColor=color.rgb;}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const fluidRenderingParticleDiffuseVertexShader = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"fluidRenderingParticleDiffuseVertexShader\";\nconst shader = `attribute position: vec3f;attribute offset: vec2f;attribute color: vec4f;uniform view: mat4x4f;uniform projection: mat4x4f;uniform size: vec2f;varying uv: vec2f;varying diffuseColor: vec3f;@vertex\nfn main(input: VertexInputs)->FragmentInputs {var cornerPos: vec3f=vec3f(\nvec2f(input.offset.x-0.5,input.offset.y-0.5)*uniforms.size,\n0.0\n);var viewPos: vec3f=(uniforms.view*vec4f(input.position,1.0)).xyz+cornerPos;vertexOutputs.position=uniforms.projection*vec4f(viewPos,1.0);vertexOutputs.uv=input.offset;vertexOutputs.diffuseColor=input.color.rgb;}\n`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const fluidRenderingParticleDiffuseVertexShaderWGSL = { name, shader };\n","import { __decorate } from \"../tslib.es6.js\";\n/**\n * Reflective Shadow Maps were first described in http://www.klayge.org/material/3_12/GI/rsm.pdf by Carsten Dachsbacher and Marc Stamminger\n * The ReflectiveShadowMap class only implements the position / normal / flux texture generation part.\n * For the global illumination effect, see the GIRSMManager class.\n */\n\nimport { MultiRenderTarget } from \"../Materials/Textures/multiRenderTarget.js\";\nimport { Color3, Color4 } from \"../Maths/math.color.js\";\nimport { Matrix, TmpVectors } from \"../Maths/math.vector.js\";\nimport { MaterialPluginBase } from \"../Materials/materialPluginBase.js\";\nimport { MaterialDefines } from \"../Materials/materialDefines.js\";\nimport { PBRBaseMaterial } from \"../Materials/PBR/pbrBaseMaterial.js\";\nimport { expandToProperty, serialize } from \"../Misc/decorators.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nimport { Light } from \"../Lights/light.js\";\n/**\n * Class used to generate the RSM (Reflective Shadow Map) textures for a given light.\n * The textures are: position (in world space), normal (in world space) and flux (light intensity)\n */\nexport class ReflectiveShadowMap {\n /**\n * Enables or disables the RSM generation.\n */\n get enable() {\n return this._enable;\n }\n set enable(value) {\n if (this._enable === value) {\n return;\n }\n this._enable = value;\n this._customRenderTarget(value);\n }\n /**\n * Gets the position texture generated by the RSM process.\n */\n get positionWorldTexture() {\n return this._mrt.textures[0];\n }\n /**\n * Gets the normal texture generated by the RSM process.\n */\n get normalWorldTexture() {\n return this._mrt.textures[1];\n }\n /**\n * Gets the flux texture generated by the RSM process.\n */\n get fluxTexture() {\n return this._mrt.textures[2];\n }\n /**\n * Gets the render list used to generate the RSM textures.\n */\n get renderList() {\n return this._mrt.renderList;\n }\n /**\n * Gets the light used to generate the RSM textures.\n */\n get light() {\n return this._light;\n }\n /**\n * Creates a new RSM for the given light.\n * @param scene The scene\n * @param light The light to use to generate the RSM textures\n * @param textureDimensions The dimensions of the textures to generate. Default: \\{ width: 512, height: 512 \\}\n */\n constructor(scene, light, textureDimensions = { width: 512, height: 512 }) {\n this._lightTransformMatrix = Matrix.Identity();\n this._enable = false;\n /**\n * Gets or sets a boolean indicating if the light parameters should be recomputed even if the light parameters (position, direction) did not change.\n * You should not set this value to true, except for debugging purpose (if you want to see changes from the inspector, for eg).\n * Instead, you should call updateLightParameters() explicitely at the right time (once the light parameters changed).\n */\n this.forceUpdateLightParameters = false;\n this._scene = scene;\n this._light = light;\n this._textureDimensions = textureDimensions;\n this._regularMatToMatWithPlugin = new Map();\n this._counters = [{ name: \"RSM Generation \" + light.name, value: 0 }];\n this._createMultiRenderTarget();\n this._recomputeLightTransformationMatrix();\n this.enable = true;\n }\n /**\n * Sets the dimensions of the textures to generate.\n * @param dimensions The dimensions of the textures to generate.\n */\n setTextureDimensions(dimensions) {\n const renderList = this._mrt.renderList;\n this._textureDimensions = dimensions;\n this._disposeMultiRenderTarget();\n this._createMultiRenderTarget();\n renderList?.forEach((mesh) => {\n this._addMeshToMRT(mesh);\n });\n }\n /**\n * Adds the given mesh to the render list used to generate the RSM textures.\n * @param mesh The mesh to add to the render list used to generate the RSM textures. If not provided, all scene meshes will be added to the render list.\n */\n addMesh(mesh) {\n if (mesh) {\n this._addMeshToMRT(mesh);\n }\n else {\n this._scene.meshes.forEach((mesh) => {\n this._addMeshToMRT(mesh);\n });\n }\n this._recomputeLightTransformationMatrix();\n }\n /**\n * Recomputes the light transformation matrix. Call this method if you manually changed the light position / direction / etc. and you want to update the RSM textures accordingly.\n * You should also call this method if you add/remove meshes to/from the render list.\n */\n updateLightParameters() {\n this._recomputeLightTransformationMatrix();\n }\n /**\n * Gets the light transformation matrix used to generate the RSM textures.\n */\n get lightTransformationMatrix() {\n if (this.forceUpdateLightParameters) {\n this.updateLightParameters();\n }\n return this._lightTransformMatrix;\n }\n /**\n * Gets the GPU time spent to generate the RSM textures.\n */\n get countersGPU() {\n return this._counters;\n }\n /**\n * Disposes the RSM.\n */\n dispose() {\n this._disposeMultiRenderTarget();\n }\n _createMultiRenderTarget() {\n const name = this._light.name;\n const caps = this._scene.getEngine().getCaps();\n const fluxTextureType = caps.rg11b10ufColorRenderable ? 13 : 2;\n const fluxTextureFormat = caps.rg11b10ufColorRenderable ? 4 : 5;\n this._mrt = new MultiRenderTarget(\"RSMmrt_\" + name, this._textureDimensions, 3, // number of RTT - position / normal / flux\n this._scene, {\n types: [2, 11, fluxTextureType],\n samplingModes: [2, 2, 2],\n generateMipMaps: false,\n targetTypes: [3553, 3553, 3553],\n formats: [5, 5, fluxTextureFormat],\n }, [\"RSMPosition_\" + name, \"RSMNormal_\" + name, \"RSMFlux_\" + name]);\n this._mrt.renderList = [];\n this._mrt.clearColor = new Color4(0, 0, 0, 1);\n this._mrt.noPrePassRenderer = true;\n let sceneUBO;\n let currentSceneUBO;\n const useUBO = this._scene.getEngine().supportsUniformBuffers;\n if (useUBO) {\n sceneUBO = this._scene.createSceneUniformBuffer(`Scene for RSM (light \"${name}\")`);\n }\n let shadowEnabled;\n this._mrt.onBeforeBindObservable.add(() => {\n currentSceneUBO = this._scene.getSceneUniformBuffer();\n shadowEnabled = this._light.shadowEnabled;\n this._light.shadowEnabled = false; // we render from the light point of view, so we won't have any shadow anyway!\n });\n this._mrt.onBeforeRenderObservable.add((faceIndex) => {\n if (sceneUBO) {\n this._scene.setSceneUniformBuffer(sceneUBO);\n }\n const viewMatrix = this._light.getViewMatrix(faceIndex);\n const projectionMatrix = this._light.getProjectionMatrix(viewMatrix || undefined, this._mrt.renderList || undefined);\n if (viewMatrix && projectionMatrix) {\n this._scene.setTransformMatrix(viewMatrix, projectionMatrix);\n }\n if (useUBO) {\n this._scene.getSceneUniformBuffer().unbindEffect();\n this._scene.finalizeSceneUbo();\n }\n });\n this._mrt.onAfterUnbindObservable.add(() => {\n if (sceneUBO) {\n this._scene.setSceneUniformBuffer(currentSceneUBO);\n }\n this._scene.updateTransformMatrix(); // restore the view/projection matrices of the active camera\n this._light.shadowEnabled = shadowEnabled;\n this._counters[0].value = this._mrt.renderTarget.gpuTimeInFrame?.counter.lastSecAverage ?? 0;\n });\n this._customRenderTarget(true);\n }\n _customRenderTarget(add) {\n const idx = this._scene.customRenderTargets.indexOf(this._mrt);\n if (add) {\n if (idx === -1) {\n this._scene.customRenderTargets.push(this._mrt);\n }\n }\n else if (idx !== -1) {\n this._scene.customRenderTargets.splice(idx, 1);\n }\n }\n _recomputeLightTransformationMatrix() {\n const viewMatrix = this._light.getViewMatrix();\n const projectionMatrix = this._light.getProjectionMatrix(viewMatrix || undefined, this._mrt.renderList || undefined);\n if (viewMatrix && projectionMatrix) {\n viewMatrix.multiplyToRef(projectionMatrix, this._lightTransformMatrix);\n }\n }\n _addMeshToMRT(mesh) {\n this._mrt.renderList?.push(mesh);\n const material = mesh.material;\n if (mesh.getTotalVertices() === 0 || !material) {\n return;\n }\n let rsmMaterial = this._regularMatToMatWithPlugin.get(material);\n if (!rsmMaterial) {\n rsmMaterial = material.clone(\"RSMCreate_\" + material.name) || undefined;\n if (rsmMaterial) {\n // Disable the prepass renderer for this material\n Object.defineProperty(rsmMaterial, \"canRenderToMRT\", {\n get: function () {\n return false;\n },\n enumerable: true,\n configurable: true,\n });\n rsmMaterial.disableLighting = true;\n const rsmCreatePlugin = new RSMCreatePluginMaterial(rsmMaterial);\n rsmCreatePlugin.isEnabled = true;\n rsmCreatePlugin.light = this._light;\n this._regularMatToMatWithPlugin.set(material, rsmMaterial);\n }\n }\n this._mrt.setMaterialForRendering(mesh, rsmMaterial);\n }\n _disposeMultiRenderTarget() {\n this._customRenderTarget(false);\n this._mrt.dispose();\n }\n}\n/**\n * @internal\n */\nclass MaterialRSMCreateDefines extends MaterialDefines {\n constructor() {\n super(...arguments);\n this.RSMCREATE = false;\n this.RSMCREATE_PROJTEXTURE = false;\n this.RSMCREATE_LIGHT_IS_SPOT = false;\n }\n}\n/**\n * Plugin that implements the creation of the RSM textures\n */\nexport class RSMCreatePluginMaterial extends MaterialPluginBase {\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled);\n this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n /**\n * Gets a boolean indicating that the plugin is compatible with a give shader language.\n * @returns true if the plugin is compatible with the shader language\n */\n isCompatible() {\n return true;\n }\n /**\n * Create a new RSMCreatePluginMaterial\n * @param material Parent material of the plugin\n */\n constructor(material) {\n super(material, RSMCreatePluginMaterial.Name, 300, new MaterialRSMCreateDefines());\n this._lightColor = new Color3();\n this._hasProjectionTexture = false;\n this._isEnabled = false;\n /**\n * Defines if the plugin is enabled in the material.\n */\n this.isEnabled = false;\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];\n this._varAlbedoName = material instanceof PBRBaseMaterial ? \"surfaceAlbedo\" : \"baseColor.rgb\";\n }\n prepareDefines(defines) {\n defines.RSMCREATE = this._isEnabled;\n this._hasProjectionTexture = false;\n const isSpot = this.light.getTypeID() === Light.LIGHTTYPEID_SPOTLIGHT;\n if (isSpot) {\n const spot = this.light;\n this._hasProjectionTexture = spot.projectionTexture ? spot.projectionTexture.isReady() : false;\n }\n defines.RSMCREATE_PROJTEXTURE = this._hasProjectionTexture;\n defines.RSMCREATE_LIGHT_IS_SPOT = isSpot;\n defines.SCENE_MRT_COUNT = 3;\n }\n getClassName() {\n return \"RSMCreatePluginMaterial\";\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"rsmTextureProjectionMatrix\", size: 16, type: \"mat4\" },\n { name: \"rsmSpotInfo\", size: 4, type: \"vec4\" },\n { name: \"rsmLightColor\", size: 3, type: \"vec3\" },\n { name: \"rsmLightPosition\", size: 3, type: \"vec3\" },\n ],\n fragment: `#ifdef RSMCREATE\r\n uniform mat4 rsmTextureProjectionMatrix;\r\n uniform vec4 rsmSpotInfo;\r\n uniform vec3 rsmLightColor;\r\n uniform vec3 rsmLightPosition;\r\n #endif`,\n };\n }\n getSamplers(samplers) {\n samplers.push(\"rsmTextureProjectionSampler\");\n }\n bindForSubMesh(uniformBuffer) {\n if (!this._isEnabled) {\n return;\n }\n this.light.diffuse.scaleToRef(this.light.getScaledIntensity(), this._lightColor);\n uniformBuffer.updateColor3(\"rsmLightColor\", this._lightColor);\n if (this.light.getTypeID() === Light.LIGHTTYPEID_SPOTLIGHT) {\n const spot = this.light;\n if (this._hasProjectionTexture) {\n uniformBuffer.updateMatrix(\"rsmTextureProjectionMatrix\", spot.projectionTextureMatrix);\n uniformBuffer.setTexture(\"rsmTextureProjectionSampler\", spot.projectionTexture);\n }\n const normalizeDirection = TmpVectors.Vector3[0];\n if (spot.computeTransformedInformation()) {\n uniformBuffer.updateFloat3(\"rsmLightPosition\", this.light.transformedPosition.x, this.light.transformedPosition.y, this.light.transformedPosition.z);\n spot.transformedDirection.normalizeToRef(normalizeDirection);\n }\n else {\n uniformBuffer.updateFloat3(\"rsmLightPosition\", this.light.position.x, this.light.position.y, this.light.position.z);\n spot.direction.normalizeToRef(normalizeDirection);\n }\n uniformBuffer.updateFloat4(\"rsmSpotInfo\", normalizeDirection.x, normalizeDirection.y, normalizeDirection.z, Math.cos(spot.angle * 0.5));\n }\n }\n getCustomCode(shaderType, shaderLanguage) {\n if (shaderType === \"vertex\") {\n return null;\n }\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_DEFINITIONS: `\r\n #ifdef RSMCREATE\r\n #ifdef RSMCREATE_PROJTEXTURE\r\n var rsmTextureProjectionSamplerSampler: sampler;\r\n var rsmTextureProjectionSampler: texture_2d;\r\n #endif\r\n #endif\r\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR: `\r\n #ifdef RSMCREATE\r\n var rsmColor = ${this._varAlbedoName} * uniforms.rsmLightColor;\r\n #ifdef RSMCREATE_PROJTEXTURE\r\n {\r\n var strq = uniforms.rsmTextureProjectionMatrix * vec4f(fragmentInputs.vPositionW, 1.0);\r\n strq /= strq.w;\r\n rsmColor *= textureSample(rsmTextureProjectionSampler, rsmTextureProjectionSamplerSampler, strq.xy).rgb;\r\n }\r\n #endif\r\n #ifdef RSMCREATE_LIGHT_IS_SPOT\r\n {\r\n var cosAngle = max(0., dot(uniforms.rsmSpotInfo.xyz, normalize(fragmentInputs.vPositionW - uniforms.rsmLightPosition)));\r\n rsmColor = sign(cosAngle - uniforms.rsmSpotInfo.w) * rsmColor;\r\n }\r\n #endif\r\n\r\n #define MRT_AND_COLOR\r\n fragmentOutputs.fragData0 = vec4f(fragmentInputs.vPositionW, 1.);\r\n fragmentOutputs.fragData1 = vec4f(normalize(normalW) * 0.5 + 0.5, 1.);\r\n fragmentOutputs.fragData2 = vec4f(rsmColor, 1.);\r\n #endif\r\n `,\n };\n }\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_BEGIN: `\r\n #ifdef RSMCREATE\r\n #extension GL_EXT_draw_buffers : require\r\n #endif\r\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_DEFINITIONS: `\r\n #ifdef RSMCREATE\r\n #ifdef RSMCREATE_PROJTEXTURE\r\n uniform highp sampler2D rsmTextureProjectionSampler; \r\n #endif\r\n layout(location = 0) out highp vec4 glFragData[3];\r\n vec4 glFragColor;\r\n #endif\r\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR: `\r\n #ifdef RSMCREATE\r\n vec3 rsmColor = ${this._varAlbedoName} * rsmLightColor;\r\n #ifdef RSMCREATE_PROJTEXTURE\r\n {\r\n vec4 strq = rsmTextureProjectionMatrix * vec4(vPositionW, 1.0);\r\n strq /= strq.w;\r\n rsmColor *= texture2D(rsmTextureProjectionSampler, strq.xy).rgb;\r\n }\r\n #endif\r\n #ifdef RSMCREATE_LIGHT_IS_SPOT\r\n {\r\n float cosAngle = max(0., dot(rsmSpotInfo.xyz, normalize(vPositionW - rsmLightPosition)));\r\n rsmColor = sign(cosAngle - rsmSpotInfo.w) * rsmColor;\r\n }\r\n #endif\r\n glFragData[0] = vec4(vPositionW, 1.);\r\n glFragData[1] = vec4(normalize(normalW) * 0.5 + 0.5, 1.);\r\n glFragData[2] = vec4(rsmColor, 1.);\r\n #endif\r\n `,\n };\n }\n}\n/**\n * Defines the name of the plugin.\n */\nRSMCreatePluginMaterial.Name = \"RSMCreate\";\n__decorate([\n serialize()\n], RSMCreatePluginMaterial.prototype, \"light\", void 0);\n__decorate([\n serialize(),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], RSMCreatePluginMaterial.prototype, \"isEnabled\", void 0);\nRegisterClass(`BABYLON.RSMCreatePluginMaterial`, RSMCreatePluginMaterial);\n","import { __decorate } from \"../../tslib.es6.js\";\nimport { RawTexture } from \"../../Materials/Textures/rawTexture.js\";\nimport { RenderTargetTexture } from \"../../Materials/Textures/renderTargetTexture.js\";\nimport { PostProcess } from \"../../PostProcesses/postProcess.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { Layer } from \"../../Layers/layer.js\";\nimport { Matrix } from \"../../Maths/math.vector.js\";\n\nimport { MaterialPluginBase } from \"../../Materials/materialPluginBase.js\";\nimport { PBRBaseMaterial } from \"../../Materials/PBR/pbrBaseMaterial.js\";\nimport { GeometryBufferRenderer } from \"../geometryBufferRenderer.js\";\nimport { BaseTexture } from \"../../Materials/Textures/baseTexture.js\";\nimport { expandToProperty, serialize } from \"../../Misc/decorators.js\";\nimport { MaterialDefines } from \"../../Materials/materialDefines.js\";\nimport { RegisterClass } from \"../../Misc/typeStore.js\";\n/**\n * Class used to manage the global illumination contribution calculated from reflective shadow maps (RSM).\n */\nexport class GIRSMManager {\n /**\n * Enables or disables the manager. Default is false.\n * If disabled, the global illumination won't be calculated and the scene will be rendered normally, without any global illumination contribution.\n */\n get enable() {\n return this._enable;\n }\n set enable(enable) {\n if (this._giRSM.length === 0) {\n enable = false;\n }\n if (enable === this._enable) {\n return;\n }\n this._enable = enable;\n this._debugLayer.isEnabled = this._showOnlyGI && enable;\n this._materialsWithRenderPlugin.forEach((mat) => {\n if (mat.pluginManager) {\n const plugin = mat.pluginManager.getPlugin(GIRSMRenderPluginMaterial.Name);\n plugin.isEnabled = enable;\n }\n });\n this.recreateResources(!enable);\n }\n /**\n * Defines if the global illumination contribution should be blurred or not (using a bilateral blur). Default is true.\n */\n get enableBlur() {\n return this._enableBlur;\n }\n set enableBlur(enable) {\n if (enable === this._enableBlur) {\n return;\n }\n this._enableBlur = enable;\n this.recreateResources();\n }\n /**\n * Defines if the blur should be done with a better quality but slower or not. Default is false.\n */\n get useQualityBlur() {\n return this._useQualityBlur;\n }\n set useQualityBlur(enable) {\n if (enable === this._useQualityBlur) {\n return;\n }\n this._useQualityBlur = enable;\n this.recreateResources();\n }\n /**\n * Defines if the blur should be done at full resolution or not. Default is false.\n * If this setting is enabled, upampling will be disabled (ignored) as it is not needed anymore.\n */\n get fullSizeBlur() {\n return this._forceFullSizeBlur;\n }\n set fullSizeBlur(mode) {\n if (this._forceFullSizeBlur === mode) {\n return;\n }\n this._forceFullSizeBlur = mode;\n this.recreateResources();\n }\n /**\n * Defines if the upsampling should be done with a better quality but slower or not. Default is false.\n */\n get useQualityUpsampling() {\n return this._useQualityUpsampling;\n }\n set useQualityUpsampling(enable) {\n if (enable === this._useQualityUpsampling) {\n return;\n }\n this._useQualityUpsampling = enable;\n this.recreateResources();\n }\n /**\n * Defines if the debug layer should be enabled or not. Default is false.\n * Use this setting for debugging purpose, to show the global illumination contribution only.\n */\n get showOnlyGI() {\n return this._showOnlyGI;\n }\n set showOnlyGI(show) {\n if (this._showOnlyGI === show) {\n return;\n }\n this._showOnlyGI = show;\n this._debugLayer.isEnabled = show;\n }\n /**\n * Defines if the depth buffer used by the geometry buffer renderer should be 32 bits or not. Default is false (16 bits).\n */\n get use32BitsDepthBuffer() {\n return this._use32BitsDepthBuffer;\n }\n set use32BitsDepthBuffer(enable) {\n if (this._use32BitsDepthBuffer === enable) {\n return;\n }\n this._use32BitsDepthBuffer = enable;\n this.recreateResources();\n }\n /**\n * Sets the output dimensions of the final process. It should normally be the same as the output dimensions of the screen.\n * @param dimensions The dimensions of the output texture (width and height)\n */\n setOutputDimensions(dimensions) {\n this._outputDimensions = dimensions;\n this.recreateResources();\n }\n /**\n * Sets the dimensions of the GI texture. Try to use the smallest size possible for better performance.\n * @param dimensions The dimensions of the GI texture (width and height)\n */\n setGITextureDimensions(dimensions) {\n this._giTextureDimensions = dimensions;\n this.recreateResources();\n }\n /**\n * Gets or sets the texture type used by the GI texture. Default is 11.\n */\n get giTextureType() {\n return this._giTextureType;\n }\n set giTextureType(textureType) {\n if (this._giTextureType === textureType) {\n return;\n }\n this._giTextureType = textureType;\n this.recreateResources();\n }\n /** Gets the shader language used in this material. */\n get shaderLanguage() {\n return this._shaderLanguage;\n }\n /**\n * Gets the list of GIRSM used by the manager.\n */\n get giRSM() {\n return this._giRSM;\n }\n /**\n * Adds a (list of) GIRSM to the manager.\n * @param rsm The GIRSM (or array of GIRSM) to add to the manager\n */\n addGIRSM(rsm) {\n if (Array.isArray(rsm)) {\n this._giRSM.push(...rsm);\n }\n else {\n this._giRSM.push(rsm);\n }\n this.recreateResources();\n }\n /**\n * Removes a (list of) GIRSM from the manager.\n * @param rsm The GIRSM (or array of GIRSM) to remove from the manager\n */\n removeGIRSM(rsm) {\n if (Array.isArray(rsm)) {\n for (let i = 0; i < rsm.length; ++i) {\n const idx = this._giRSM.indexOf(rsm[i]);\n if (idx !== -1) {\n this._giRSM.splice(idx, 1);\n }\n }\n }\n else {\n const idx = this._giRSM.indexOf(rsm);\n if (idx !== -1) {\n this._giRSM.splice(idx, 1);\n }\n }\n if (this._giRSM.length === 0) {\n this.enable = false;\n }\n else {\n this.recreateResources();\n }\n }\n /**\n * Add a material to the manager. This will enable the global illumination contribution for the material.\n * @param material Material that will be affected by the global illumination contribution. If not provided, all materials of the scene will be affected.\n */\n addMaterial(material) {\n if (material) {\n this._addGISupportToMaterial(material);\n }\n else {\n this._scene.meshes.forEach((mesh) => {\n if (mesh.getTotalVertices() > 0 && mesh.isEnabled() && mesh.material) {\n this._addGISupportToMaterial(mesh.material);\n }\n });\n }\n }\n /**\n * Gets the list of GPU counters used by the manager.\n * GPU timing measurements must be enabled for the counters to be filled (engine.enableGPUTimingMeasurements = true).\n * Only available with WebGPU. You will still get the list of counters with other engines but the values will always be 0.\n */\n get countersGPU() {\n return this._counters;\n }\n /**\n * Recreates the resources used by the manager.\n * You should normally not have to call this method manually, except if you change the useFullTexture property of a GIRSM, because the manager won't track this change.\n * @param disposeGeometryBufferRenderer Defines if the geometry buffer renderer should be disposed and recreated. Default is false.\n */\n recreateResources(disposeGeometryBufferRenderer = false) {\n if (!this._shadersLoaded) {\n this._onShaderLoadedObservable.addOnce(() => {\n this.recreateResources(disposeGeometryBufferRenderer);\n });\n return;\n }\n this._disposePostProcesses(disposeGeometryBufferRenderer);\n this._createPostProcesses();\n this._setPluginParameters();\n }\n /**\n * Generates the sample texture used by the the global illumination calculation process.\n * @param maxSamples The maximum number of samples to generate in the texture. Default value is 2048. The numSamples property of the GIRSM should be less than or equal to this value!\n */\n generateSampleTexture(maxSamples) {\n this._sampleTexture?.dispose();\n this._maxSamples = maxSamples;\n const data = new Float32Array(this._maxSamples * 4);\n for (let i = 0; i < this._maxSamples; i++) {\n const xi1 = Math.random();\n const xi2 = Math.random();\n const x = xi1 * Math.sin(2 * Math.PI * xi2);\n const y = xi1 * Math.cos(2 * Math.PI * xi2);\n data[i * 4 + 0] = x;\n data[i * 4 + 1] = y;\n data[i * 4 + 2] = xi1 * xi1;\n data[i * 4 + 3] = 1;\n }\n this._sampleTexture = new RawTexture(data, this._maxSamples, 1, 5, this._scene, false, false, 1, 1);\n this._sampleTexture.name = \"GIRSMSamples\";\n }\n /**\n * Disposes the manager.\n */\n dispose() {\n this._disposePostProcesses(true);\n this._debugLayer.texture?.dispose();\n this._debugLayer.dispose();\n this._scene.onBeforeDrawPhaseObservable.remove(this._drawPhaseObserver);\n this._onShaderLoadedObservable.clear();\n }\n /**\n * Creates a new GIRSMManager\n * @param scene The scene\n * @param outputDimensions The dimensions of the output texture (width and height). Should normally be the same as the output dimensions of the screen.\n * @param giTextureDimensions The dimensions of the GI texture (width and height). Try to use the smallest size possible for better performance.\n * @param maxSamples The maximum number of samples to generate in the sample texture. Default value is 2048. The numSamples property of the GIRSM should be less than or equal to this value!\n * @param giTextureType The texture type used by the GI texture. Default is 11.\n */\n constructor(scene, outputDimensions, giTextureDimensions = { width: 256, height: 256 }, maxSamples = 2048, giTextureType = 11) {\n this._giRSM = [];\n this._blurRTT = null;\n this._blurPostProcesses = null;\n this._blurXPostprocess = null;\n this._blurYPostprocess = null;\n this._upsamplingXPostprocess = null;\n this._upsamplingYPostprocess = null;\n this._ppGlobalIllumination = [];\n this._firstActivation = true;\n this._geomBufferEnabled = false;\n this._geomBufferEnablePosition = false;\n this._tempMatrix = new Matrix();\n this._enable = false;\n /**\n * Defines if the global illumination calculation is paused or not.\n * Use this setting to pause the global illumination calculation when you know that the scene (camera/mesh/light positions) is not changing anymore to save some GPU power.\n * The scene will still be rendered with the latest global illumination contribution.\n */\n this.pause = false;\n this._enableBlur = true;\n this._useQualityBlur = false;\n /**\n * Defines the depth threshold used by the bilateral blur post-processes (also used by the upsampling, if enabled).\n * You may have to change this value, depending on your scene.\n */\n this.blurDepthThreshold = 0.05;\n /**\n * Defines the normal threshold used by the bilateral blur post-processes (also used by the upsampling, if enabled).\n * You may have to change this value, depending on your scene.\n */\n this.blurNormalThreshold = 0.25;\n /**\n * Defines the kernel size used by the bilateral blur post-processes. Default is 12.\n */\n this.blurKernel = 12;\n this._forceFullSizeBlur = false;\n this._useQualityUpsampling = false;\n /**\n * Defines the kernel size used by the bilateral upsampling post-processes. Default is 6.\n */\n this.upsamplerKernel = 6;\n this._showOnlyGI = false;\n this._use32BitsDepthBuffer = false;\n /** Shader language used by the material */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n this._shadersLoaded = false;\n this._onShaderLoadedObservable = new Observable();\n this._scene = scene;\n this._engine = scene.getEngine();\n this._outputDimensions = outputDimensions;\n this._giTextureDimensions = giTextureDimensions;\n this._giTextureType = giTextureType;\n this._materialsWithRenderPlugin = [];\n this._maxSamples = maxSamples;\n this._debugLayer = new Layer(\"debug layer\", null, this._scene, false);\n this._debugLayer.isEnabled = false;\n this._counters = [];\n this._countersRTW = [];\n this._initShaderSourceAsync();\n this.generateSampleTexture(maxSamples);\n this._drawPhaseObserver = this._scene.onBeforeDrawPhaseObservable.add(() => {\n const currentRenderTarget = this._engine._currentRenderTarget;\n let rebindCurrentRenderTarget = false;\n if (this._enable) {\n if (!this.pause) {\n this._scene.postProcessManager.directRender(this._ppGlobalIllumination, this._ppGlobalIllumination[0].inputTexture);\n this._engine.unBindFramebuffer(this._ppGlobalIllumination[0].inputTexture, true);\n this._engine.setAlphaMode(0);\n rebindCurrentRenderTarget = true;\n if (this.enableBlur && this._blurPostProcesses) {\n this._scene.postProcessManager.directRender(this._blurPostProcesses, this._blurRTT.renderTarget, true);\n this._engine.unBindFramebuffer(this._blurRTT.renderTarget, true);\n }\n }\n for (let i = 0; i < this._counters.length; ++i) {\n const rtws = this._countersRTW[i];\n for (let t = 0; t < rtws.length; ++t) {\n if (t === 0) {\n this._counters[i].value = this.pause ? 0 : (rtws[t].gpuTimeInFrame?.counter.lastSecAverage ?? 0);\n }\n else if (!this.pause) {\n this._counters[i].value += rtws[t].gpuTimeInFrame?.counter.lastSecAverage ?? 0;\n }\n }\n }\n if (this._scene.activeCamera) {\n this._engine.setViewport(this._scene.activeCamera.viewport);\n }\n }\n if (rebindCurrentRenderTarget && currentRenderTarget) {\n this._engine.bindFramebuffer(currentRenderTarget);\n }\n });\n }\n async _initShaderSourceAsync() {\n const engine = this._engine;\n if (engine.isWebGPU) {\n this._shaderLanguage = 1 /* ShaderLanguage.WGSL */;\n await Promise.all([\n import(\"../../ShadersWGSL/bilateralBlur.fragment.js\"),\n import(\"../../ShadersWGSL/bilateralBlurQuality.fragment.js\"),\n import(\"../../ShadersWGSL/rsmGlobalIllumination.fragment.js\"),\n import(\"../../ShadersWGSL/rsmFullGlobalIllumination.fragment.js\"),\n ]);\n }\n else {\n await Promise.all([\n import(\"../../Shaders/bilateralBlur.fragment.js\"),\n import(\"../../Shaders/bilateralBlurQuality.fragment.js\"),\n import(\"../../Shaders/rsmGlobalIllumination.fragment.js\"),\n import(\"../../Shaders/rsmFullGlobalIllumination.fragment.js\"),\n ]);\n }\n this._shadersLoaded = true;\n this._onShaderLoadedObservable.notifyObservers();\n }\n _disposePostProcesses(disposeGeometryBufferRenderer = false) {\n this._blurRTT?.dispose();\n this._blurRTT = null;\n this._blurPostProcesses = [];\n this._blurXPostprocess?.dispose();\n this._blurXPostprocess = null;\n this._blurYPostprocess?.dispose();\n this._blurYPostprocess = null;\n this._upsamplingXPostprocess?.dispose();\n this._upsamplingXPostprocess = null;\n this._upsamplingYPostprocess?.dispose();\n this._upsamplingYPostprocess = null;\n for (const ppGlobalIllumination of this._ppGlobalIllumination) {\n ppGlobalIllumination.dispose();\n }\n this._ppGlobalIllumination = [];\n if (disposeGeometryBufferRenderer) {\n if (this._geomBufferEnabled) {\n this._scene.enableGeometryBufferRenderer();\n this._scene.geometryBufferRenderer.enablePosition = this._geomBufferEnablePosition;\n }\n else {\n this._scene.disableGeometryBufferRenderer();\n }\n }\n this._counters = [];\n this._countersRTW = [];\n }\n _setPluginParameters() {\n if (!this._enable) {\n return;\n }\n this._materialsWithRenderPlugin.forEach((mat) => {\n if (mat.pluginManager) {\n const plugin = mat.pluginManager.getPlugin(GIRSMRenderPluginMaterial.Name);\n plugin.textureGIContrib = this.enableBlur ? this._blurRTT.renderTarget.texture : this._ppGlobalIllumination[0].inputTexture.texture;\n plugin.outputTextureWidth = this._outputDimensions.width;\n plugin.outputTextureHeight = this._outputDimensions.height;\n }\n });\n }\n _createPostProcesses() {\n if (!this._enable) {\n return;\n }\n const textureFormat = this._giTextureType === 13 ? 4 : 5;\n if (this._firstActivation) {\n this._firstActivation = false;\n this._geomBufferEnabled = !!this._scene.geometryBufferRenderer;\n this._geomBufferEnablePosition = this._scene.geometryBufferRenderer?.enablePosition ?? false;\n }\n if (!this._geomBufferEnabled) {\n this._scene.disableGeometryBufferRenderer();\n }\n const geometryBufferRenderer = this._scene.enableGeometryBufferRenderer(this._enableBlur ? this._outputDimensions : this._giTextureDimensions, this._use32BitsDepthBuffer ? 14 : 15, GIRSMManager.GeometryBufferTextureTypesAndFormats);\n if (!geometryBufferRenderer) {\n throw new Error(\"Geometry buffer renderer is not supported but is required for GIRSMManager.\");\n }\n geometryBufferRenderer.enablePosition = true;\n if (!this._geomBufferEnabled) {\n geometryBufferRenderer.generateNormalsInWorldSpace = true;\n }\n const decodeGeometryBufferNormals = geometryBufferRenderer.normalsAreUnsigned;\n const normalsAreInWorldSpace = geometryBufferRenderer.generateNormalsInWorldSpace;\n this._counters.push({ name: \"Geometry buffer renderer\", value: 0 });\n this._countersRTW.push([this._scene.geometryBufferRenderer.getGBuffer().renderTarget]);\n let defines = \"\";\n if (decodeGeometryBufferNormals) {\n defines += \"#define DECODE_NORMAL\\n\";\n }\n if (!normalsAreInWorldSpace) {\n defines += \"#define TRANSFORM_NORMAL\\n\";\n }\n for (let i = 0; i < this._giRSM.length; ++i) {\n const giRSM = this._giRSM[i];\n const rsm = giRSM.rsm;\n const ppGlobalIllumination = new PostProcess(\"RSMGlobalIllumination\" + i, giRSM.useFullTexture ? \"rsmFullGlobalIllumination\" : \"rsmGlobalIllumination\", {\n ...this._giTextureDimensions,\n uniforms: [\"rsmLightMatrix\", \"rsmInfo\", \"rsmInfo2\", \"invView\"],\n samplers: [\"normalSampler\", \"rsmPositionW\", \"rsmNormalW\", \"rsmFlux\", \"rsmSamples\"],\n defines,\n samplingMode: 2,\n engine: this._engine,\n textureType: this._giTextureType,\n textureFormat,\n shaderLanguage: this._shaderLanguage,\n });\n this._ppGlobalIllumination.push(ppGlobalIllumination);\n if (i !== 0) {\n ppGlobalIllumination.shareOutputWith(this._ppGlobalIllumination[0]);\n ppGlobalIllumination.alphaMode = 1;\n }\n ppGlobalIllumination.autoClear = false;\n ppGlobalIllumination.externalTextureSamplerBinding = true;\n ppGlobalIllumination.onApplyObservable.add((effect) => {\n effect.setTexture(\"textureSampler\", geometryBufferRenderer.getGBuffer().textures[geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.POSITION_TEXTURE_TYPE)]);\n effect.setTexture(\"normalSampler\", geometryBufferRenderer.getGBuffer().textures[geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.NORMAL_TEXTURE_TYPE)]);\n effect.setTexture(\"rsmPositionW\", rsm.positionWorldTexture);\n effect.setTexture(\"rsmNormalW\", rsm.normalWorldTexture);\n effect.setTexture(\"rsmFlux\", rsm.fluxTexture);\n effect.setMatrix(\"rsmLightMatrix\", rsm.lightTransformationMatrix);\n if (!giRSM.useFullTexture) {\n effect.setTexture(\"rsmSamples\", this._sampleTexture);\n effect.setFloat4(\"rsmInfo\", giRSM.numSamples, giRSM.radius, giRSM.intensity, giRSM.edgeArtifactCorrection);\n effect.setFloat4(\"rsmInfo2\", giRSM.noiseFactor, giRSM.rotateSample ? 1 : 0, rsm.fluxTexture.getInternalTexture().width, rsm.fluxTexture.getInternalTexture().height);\n }\n else {\n effect.setFloat4(\"rsmInfo\", rsm.fluxTexture.getInternalTexture().width, rsm.fluxTexture.getInternalTexture().height, giRSM.intensity, giRSM.edgeArtifactCorrection);\n }\n if (!normalsAreInWorldSpace) {\n this._tempMatrix.copyFrom(this._scene.activeCamera.getViewMatrix());\n this._tempMatrix.invert();\n effect.setMatrix(\"invView\", this._tempMatrix);\n }\n });\n }\n for (const ppGlobalIllumination of this._ppGlobalIllumination) {\n if (!ppGlobalIllumination.inputTexture) {\n ppGlobalIllumination.resize(this._giTextureDimensions.width, this._giTextureDimensions.height);\n }\n }\n this._counters.push({ name: \"GI generation\", value: 0 });\n this._countersRTW.push([this._ppGlobalIllumination[0].inputTexture]);\n if (this._enableBlur) {\n const blurTextureSize = this._forceFullSizeBlur ? this._outputDimensions : this._giTextureDimensions;\n this._blurRTT = new RenderTargetTexture(\"GIRSMContribution\", this._outputDimensions, this._scene, {\n type: this._giTextureType,\n format: textureFormat,\n generateDepthBuffer: false,\n });\n this._blurRTT.wrapU = 0;\n this._blurRTT.wrapV = 0;\n this._blurRTT.updateSamplingMode(1);\n this._blurRTT.skipInitialClear = true;\n const blurRTWs = [];\n this._counters.push({ name: \"GI blur\", value: 0 });\n this._countersRTW.push(blurRTWs);\n // Bilateral blur\n this._blurXPostprocess = new PostProcess(this._useQualityBlur ? \"BilateralBlur\" : \"BilateralBlurX\", this._useQualityBlur ? \"bilateralBlurQuality\" : \"bilateralBlur\", {\n uniforms: [\"filterSize\", \"blurDir\", \"depthThreshold\", \"normalThreshold\"],\n samplers: [\"depthSampler\", \"normalSampler\"],\n defines: decodeGeometryBufferNormals ? \"#define DECODE_NORMAL\" : undefined,\n size: blurTextureSize,\n samplingMode: 2,\n engine: this._engine,\n textureType: this._giTextureType,\n textureFormat,\n shaderLanguage: this._shaderLanguage,\n });\n this._blurXPostprocess.onApplyObservable.add((effect) => {\n effect._bindTexture(\"textureSampler\", this._ppGlobalIllumination[0].inputTexture.texture);\n effect.setTexture(\"depthSampler\", geometryBufferRenderer.getGBuffer().textures[geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.DEPTH_TEXTURE_TYPE)]);\n effect.setTexture(\"normalSampler\", geometryBufferRenderer.getGBuffer().textures[geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.NORMAL_TEXTURE_TYPE)]);\n effect.setInt(\"filterSize\", this.blurKernel);\n effect.setFloat2(\"blurDir\", 1 / this._giTextureDimensions.width, this._useQualityBlur ? 1 / this._giTextureDimensions.height : 0);\n effect.setFloat(\"depthThreshold\", this.blurDepthThreshold);\n effect.setFloat(\"normalThreshold\", this.blurNormalThreshold);\n });\n this._blurXPostprocess.externalTextureSamplerBinding = true;\n this._blurXPostprocess.autoClear = false;\n if (!this._useQualityBlur) {\n this._blurYPostprocess = new PostProcess(\"BilateralBlurY\", \"bilateralBlur\", {\n uniforms: [\"filterSize\", \"blurDir\", \"depthThreshold\", \"normalThreshold\"],\n samplers: [\"depthSampler\", \"normalSampler\"],\n defines: decodeGeometryBufferNormals ? \"#define DECODE_NORMAL\" : undefined,\n size: blurTextureSize,\n samplingMode: 2,\n engine: this._engine,\n textureType: this._giTextureType,\n textureFormat,\n shaderLanguage: this._shaderLanguage,\n });\n this._blurYPostprocess.autoClear = false;\n this._blurYPostprocess.onApplyObservable.add((effect) => {\n effect.setTexture(\"depthSampler\", geometryBufferRenderer.getGBuffer().textures[geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.DEPTH_TEXTURE_TYPE)]);\n effect.setTexture(\"normalSampler\", geometryBufferRenderer.getGBuffer().textures[geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.NORMAL_TEXTURE_TYPE)]);\n effect.setInt(\"filterSize\", this.blurKernel);\n effect.setFloat2(\"blurDir\", 0, 1 / this._giTextureDimensions.height);\n effect.setFloat(\"depthThreshold\", this.blurDepthThreshold);\n effect.setFloat(\"normalThreshold\", this.blurNormalThreshold);\n });\n this._blurYPostprocess.resize(blurTextureSize.width, blurTextureSize.height);\n blurRTWs.push(this._blurYPostprocess.inputTexture);\n }\n this._blurPostProcesses = [this._blurXPostprocess];\n if (this._blurYPostprocess) {\n this._blurPostProcesses.push(this._blurYPostprocess);\n }\n // Bilateral upsampling\n const giFullDimensions = this._giTextureDimensions.width >= this._outputDimensions.width && this._giTextureDimensions.height >= this._outputDimensions.height;\n if (!giFullDimensions && !this._forceFullSizeBlur) {\n const upsamplingRTWs = [];\n this._counters.push({ name: \"GI upsampling\", value: 0 });\n this._countersRTW.push(upsamplingRTWs);\n this._upsamplingXPostprocess = new PostProcess(this._useQualityUpsampling ? \"BilateralUpsampling\" : \"BilateralUpsamplingX\", this._useQualityUpsampling ? \"bilateralBlurQuality\" : \"bilateralBlur\", {\n uniforms: [\"filterSize\", \"blurDir\", \"depthThreshold\", \"normalThreshold\"],\n samplers: [\"depthSampler\", \"normalSampler\"],\n defines: decodeGeometryBufferNormals ? \"#define DECODE_NORMAL\" : undefined,\n size: blurTextureSize,\n samplingMode: 2,\n engine: this._engine,\n textureType: this._giTextureType,\n textureFormat,\n shaderLanguage: this._shaderLanguage,\n });\n this._upsamplingXPostprocess.autoClear = false;\n this._upsamplingXPostprocess.onApplyObservable.add((effect) => {\n effect.setTexture(\"depthSampler\", geometryBufferRenderer.getGBuffer().textures[geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.DEPTH_TEXTURE_TYPE)]);\n effect.setTexture(\"normalSampler\", geometryBufferRenderer.getGBuffer().textures[geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.NORMAL_TEXTURE_TYPE)]);\n effect.setInt(\"filterSize\", this.upsamplerKernel);\n effect.setFloat2(\"blurDir\", 1 / this._outputDimensions.width, this._useQualityUpsampling ? 1 / this._outputDimensions.height : 0);\n effect.setFloat(\"depthThreshold\", this.blurDepthThreshold);\n effect.setFloat(\"normalThreshold\", this.blurNormalThreshold);\n });\n this._upsamplingXPostprocess.resize(blurTextureSize.width, blurTextureSize.height);\n blurRTWs.push(this._upsamplingXPostprocess.inputTexture);\n if (!this.useQualityUpsampling) {\n this._upsamplingYPostprocess = new PostProcess(\"BilateralUpsamplingY\", \"bilateralBlur\", {\n uniforms: [\"filterSize\", \"blurDir\", \"depthThreshold\", \"normalThreshold\"],\n samplers: [\"depthSampler\", \"normalSampler\"],\n defines: decodeGeometryBufferNormals ? \"#define DECODE_NORMAL\" : undefined,\n size: this._outputDimensions,\n samplingMode: 2,\n engine: this._engine,\n textureType: this._giTextureType,\n textureFormat,\n shaderLanguage: this._shaderLanguage,\n });\n this._upsamplingYPostprocess.autoClear = false;\n this._upsamplingYPostprocess.onApplyObservable.add((effect) => {\n effect.setTexture(\"depthSampler\", geometryBufferRenderer.getGBuffer().textures[geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.DEPTH_TEXTURE_TYPE)]);\n effect.setTexture(\"normalSampler\", geometryBufferRenderer.getGBuffer().textures[geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.NORMAL_TEXTURE_TYPE)]);\n effect.setInt(\"filterSize\", this.upsamplerKernel);\n effect.setFloat2(\"blurDir\", 0, 1 / this._outputDimensions.height);\n effect.setFloat(\"depthThreshold\", this.blurDepthThreshold);\n effect.setFloat(\"normalThreshold\", this.blurNormalThreshold);\n });\n this._upsamplingYPostprocess.resize(this._outputDimensions.width, this._outputDimensions.height);\n upsamplingRTWs.push(this._upsamplingYPostprocess.inputTexture);\n }\n upsamplingRTWs.push(this._blurRTT.renderTarget);\n this._blurPostProcesses.push(this._upsamplingXPostprocess);\n if (this._upsamplingYPostprocess) {\n this._blurPostProcesses.push(this._upsamplingYPostprocess);\n }\n }\n else {\n blurRTWs.push(this._blurRTT.renderTarget);\n }\n }\n this._debugLayer.texture?.dispose();\n this._debugLayer.texture = new BaseTexture(this._scene, this._enableBlur ? this._blurRTT.renderTarget.texture : this._ppGlobalIllumination[0].inputTexture.texture);\n }\n _addGISupportToMaterial(material) {\n if (material.pluginManager?.getPlugin(GIRSMRenderPluginMaterial.Name)) {\n return;\n }\n const plugin = new GIRSMRenderPluginMaterial(material);\n if (this._enable && this._ppGlobalIllumination.length > 0) {\n plugin.textureGIContrib = this._ppGlobalIllumination[0].inputTexture.texture;\n plugin.outputTextureWidth = this._outputDimensions.width;\n plugin.outputTextureHeight = this._outputDimensions.height;\n }\n plugin.isEnabled = this._enable;\n this._materialsWithRenderPlugin.push(material);\n }\n}\n/**\n * Defines the default texture types and formats used by the geometry buffer renderer.\n */\nGIRSMManager.GeometryBufferTextureTypesAndFormats = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 0: { textureType: 2, textureFormat: 6 }, // depth\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 1: { textureType: 11, textureFormat: 5 }, // normal\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 2: { textureType: 2, textureFormat: 5 }, // position\n};\n/**\n * @internal\n */\nclass MaterialGIRSMRenderDefines extends MaterialDefines {\n constructor() {\n super(...arguments);\n this.RENDER_WITH_GIRSM = false;\n this.RSMCREATE_PROJTEXTURE = false;\n }\n}\n/**\n * Plugin used to render the global illumination contribution.\n */\nexport class GIRSMRenderPluginMaterial extends MaterialPluginBase {\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled);\n this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n /**\n * Gets a boolean indicating that the plugin is compatible with a give shader language.\n * @returns true if the plugin is compatible with the shader language\n */\n isCompatible() {\n return true;\n }\n constructor(material) {\n super(material, GIRSMRenderPluginMaterial.Name, 310, new MaterialGIRSMRenderDefines());\n this._isEnabled = false;\n /**\n * Defines if the plugin is enabled in the material.\n */\n this.isEnabled = false;\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];\n this._isPBR = material instanceof PBRBaseMaterial;\n }\n prepareDefines(defines) {\n defines.RENDER_WITH_GIRSM = this._isEnabled;\n }\n getClassName() {\n return \"GIRSMRenderPluginMaterial\";\n }\n getUniforms() {\n return {\n ubo: [{ name: \"girsmTextureOutputSize\", size: 2, type: \"vec2\" }],\n fragment: `#ifdef RENDER_WITH_GIRSM\r\n uniform vec2 girsmTextureOutputSize;\r\n #endif`,\n };\n }\n getSamplers(samplers) {\n samplers.push(\"girsmTextureGIContrib\");\n }\n bindForSubMesh(uniformBuffer) {\n if (this._isEnabled) {\n uniformBuffer.bindTexture(\"girsmTextureGIContrib\", this.textureGIContrib);\n uniformBuffer.updateFloat2(\"girsmTextureOutputSize\", this.outputTextureWidth, this.outputTextureHeight);\n }\n }\n getCustomCode(shaderType, shaderLanguage) {\n let frag;\n if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n frag = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_DEFINITIONS: `\r\n #ifdef RENDER_WITH_GIRSM\r\n var girsmTextureGIContribSampler: sampler;\r\n var girsmTextureGIContrib: texture_2d;\r\n\r\n fn computeIndirect() -> vec3f {\r\n var uv = fragmentInputs.position.xy / uniforms.girsmTextureOutputSize;\r\n return textureSample(girsmTextureGIContrib, girsmTextureGIContribSampler, uv).rgb;\r\n }\r\n #endif\r\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION: `\r\n #ifdef RENDER_WITH_GIRSM\r\n finalDiffuse += computeIndirect() * surfaceAlbedo.rgb;\r\n #endif\r\n `,\n };\n if (!this._isPBR) {\n frag[\"CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\"] = `\r\n #ifdef RENDER_WITH_GIRSM\r\n color = vec4f(color.rgb + computeIndirect() * baseColor.rgb, color.a);\r\n #endif\r\n `;\n }\n }\n else {\n frag = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_DEFINITIONS: `\r\n #ifdef RENDER_WITH_GIRSM\r\n uniform sampler2D girsmTextureGIContrib;\r\n\r\n vec3 computeIndirect() {\r\n vec2 uv = gl_FragCoord.xy / girsmTextureOutputSize;\r\n return texture2D(girsmTextureGIContrib, uv).rgb;\r\n }\r\n #endif\r\n `,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION: `\r\n #ifdef RENDER_WITH_GIRSM\r\n finalDiffuse += computeIndirect() * surfaceAlbedo.rgb;\r\n #endif\r\n `,\n };\n if (!this._isPBR) {\n frag[\"CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\"] = `\r\n #ifdef RENDER_WITH_GIRSM\r\n color.rgb += computeIndirect() * baseColor.rgb;\r\n #endif\r\n `;\n }\n }\n return shaderType === \"vertex\" ? null : frag;\n }\n}\n/**\n * Defines the name of the plugin.\n */\nGIRSMRenderPluginMaterial.Name = \"GIRSMRender\";\n__decorate([\n serialize()\n], GIRSMRenderPluginMaterial.prototype, \"textureGIContrib\", void 0);\n__decorate([\n serialize()\n], GIRSMRenderPluginMaterial.prototype, \"outputTextureWidth\", void 0);\n__decorate([\n serialize()\n], GIRSMRenderPluginMaterial.prototype, \"outputTextureHeight\", void 0);\n__decorate([\n serialize(),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], GIRSMRenderPluginMaterial.prototype, \"isEnabled\", void 0);\nRegisterClass(`BABYLON.GIRSMRenderPluginMaterial`, GIRSMRenderPluginMaterial);\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"iblShadowsCombinePixelShader\";\nconst shader = `precision highp float;varying vec2 vUV;uniform sampler2D shadowSampler;uniform sampler2D textureSampler;uniform float shadowOpacity;void main(void)\n{vec3 shadow=texture(shadowSampler,vUV).rgb;vec3 sceneColor=texture(textureSampler,vUV).rgb;float shadowValue=mix(1.0,shadow.x,shadowOpacity);gl_FragColor=vec4(sceneColor*shadowValue,1.0);}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const iblShadowsCombinePixelShader = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"iblShadowsCombinePixelShader\";\nconst shader = `varying vUV: vec2f;var shadowSamplerSampler : sampler;var shadowSampler : texture_2d;var textureSamplerSampler: sampler;var textureSampler: texture_2d;uniform shadowOpacity: f32;@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {var shadow\n: vec3f =\ntextureSample(shadowSampler,shadowSamplerSampler,input.vUV).rgb;var color\n: vec3f =\ntextureSample(textureSampler,textureSamplerSampler,input.vUV).rgb;var shadowValue: f32=mix(1.0,shadow.x,uniforms.shadowOpacity);fragmentOutputs.color=vec4f(color*shadowValue,1.0);}`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const iblShadowsCombinePixelShaderWGSL = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nimport \"./ShadersInclude/fogFragmentDeclaration.js\";\nimport \"./ShadersInclude/logDepthDeclaration.js\";\nimport \"./ShadersInclude/logDepthFragment.js\";\nimport \"./ShadersInclude/fogFragment.js\";\nconst name = \"spriteMapPixelShader\";\nconst shader = `#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\n#define TEXTUREFUNC(s,c,l) texture2DLodEXT(s,c,l)\n#else\n#define TEXTUREFUNC(s,c,b) texture2D(s,c,b)\n#endif\nprecision highp float;varying vec3 vPosition;varying vec2 vUV;varying vec2 tUV;uniform float time;uniform float spriteCount;uniform sampler2D spriteSheet;uniform vec2 spriteMapSize;uniform vec2 outputSize;uniform vec2 stageSize;uniform sampler2D frameMap;uniform sampler2D tileMaps[LAYERS];uniform sampler2D animationMap;uniform vec3 colorMul;\n#include\n#include\nfloat mt;const float fdStep=1.0*0.25;const float aFrameSteps=MAX_ANIMATION_FRAMES==0.0 ? 0.0 : 1.0/MAX_ANIMATION_FRAMES;mat4 getFrameData(float frameID) {float fX=frameID/spriteCount;return mat4(\nTEXTUREFUNC(frameMap,vec2(fX,0.0),0.0),\nTEXTUREFUNC(frameMap,vec2(fX,fdStep*1.0),0.0),\nTEXTUREFUNC(frameMap,vec2(fX,fdStep*2.0),0.0),\nvec4(0.0)\n);}\nvoid main() {vec4 color=vec4(0.0);vec2 tileUV=fract(tUV);vec2 tileID=floor(tUV);vec2 sheetUnits=1.0/spriteMapSize;float spriteUnits=1.0/spriteCount;vec2 stageUnits=1.0/stageSize;for(int i=0; i0.0) {mt=mod(time*animationData.z,1.0);for(float f=0.0; fmt) {frameID=animationData.x;break;}\nanimationData=TEXTUREFUNC(animationMap,vec2((frameID+0.5)/spriteCount,aFrameSteps*f),0.0);}}\nmat4 frameData=getFrameData(frameID+0.5);vec2 frameSize=(frameData[0].zw)/spriteMapSize;vec2 offset=frameData[0].xy*sheetUnits;vec2 ratio=frameData[2].xy/frameData[0].zw;\n#ifdef FR_CW\nif (frameData[2].z==1.0) {tileUV.xy=tileUV.yx;} else {tileUV.xy=fract(tUV).xy;}\n#ifdef FLIPU\ntileUV.y=1.0-tileUV.y;\n#endif\n#else\nif (frameData[2].z==1.0) {\n#ifdef FLIPU\ntileUV.y=1.0-tileUV.y;\n#endif\ntileUV.xy=tileUV.yx;} else {tileUV.xy=fract(tUV).xy;\n#ifdef FLIPU\ntileUV.y=1.0-tileUV.y;\n#endif\n}\n#endif\nvec4 nc=TEXTUREFUNC(spriteSheet,tileUV*frameSize+offset,0.0);if (i==0) {color=nc;} else {float alpha=min(color.a+nc.a,1.0);vec3 mixed=mix(color.xyz,nc.xyz,nc.a);color=vec4(mixed,alpha);}}\ncolor.xyz*=colorMul;\n#include\n#include\ngl_FragColor=color;}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const spriteMapPixelShader = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nimport \"./ShadersInclude/fogVertexDeclaration.js\";\nimport \"./ShadersInclude/logDepthDeclaration.js\";\nimport \"./ShadersInclude/logDepthVertex.js\";\nconst name = \"spriteMapVertexShader\";\nconst shader = `precision highp float;attribute vec3 position;attribute vec3 normal;attribute vec2 uv;varying vec3 vPosition;varying vec2 vUV;varying vec2 tUV;uniform float time;uniform mat4 world;uniform mat4 view;uniform mat4 projection;uniform vec2 stageSize;uniform float stageScale;\n#include\n#include\nvoid main() {vec4 p=vec4( position,1. );vPosition=p.xyz;vUV=uv;tUV=uv*stageSize; \nvec3 viewPos=(view*world*p).xyz; \ngl_Position=projection*vec4(viewPos,1.0); \n#ifdef FOG\nvFogDistance=viewPos;\n#endif\n#include\n}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const spriteMapVertexShader = { name, shader };\n","import { WebXRFeaturesManager, WebXRFeatureName } from \"../webXRFeaturesManager.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { Vector3, Matrix } from \"../../Maths/math.vector.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nimport { Tools } from \"../../Misc/tools.js\";\n/**\n * The currently-working hit-test module.\n * Hit test (or Ray-casting) is used to interact with the real world.\n * For further information read here - https://github.com/immersive-web/hit-test\n */\nexport class WebXRHitTestLegacy extends WebXRAbstractFeature {\n /**\n * Creates a new instance of the (legacy version) hit test feature\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param options options to use when constructing this feature\n */\n constructor(_xrSessionManager, \n /**\n * [Empty Object] options to use when constructing this feature\n */\n options = {}) {\n super(_xrSessionManager);\n this.options = options;\n // in XR space z-forward is negative\n this._direction = new Vector3(0, 0, -1);\n this._mat = new Matrix();\n this._onSelectEnabled = false;\n this._origin = new Vector3(0, 0, 0);\n /**\n * Populated with the last native XR Hit Results\n */\n this.lastNativeXRHitResults = [];\n /**\n * Triggered when new babylon (transformed) hit test results are available\n */\n this.onHitTestResultObservable = new Observable();\n this._onHitTestResults = (xrResults) => {\n const mats = xrResults.map((result) => {\n const mat = Matrix.FromArray(result.hitMatrix);\n if (!this._xrSessionManager.scene.useRightHandedSystem) {\n mat.toggleModelMatrixHandInPlace();\n }\n // if (this.options.coordinatesSpace === Space.WORLD) {\n if (this.options.worldParentNode) {\n mat.multiplyToRef(this.options.worldParentNode.getWorldMatrix(), mat);\n }\n return {\n xrHitResult: result,\n transformationMatrix: mat,\n };\n });\n this.lastNativeXRHitResults = xrResults;\n this.onHitTestResultObservable.notifyObservers(mats);\n };\n // can be done using pointerdown event, and xrSessionManager.currentFrame\n this._onSelect = (event) => {\n if (!this._onSelectEnabled) {\n return;\n }\n WebXRHitTestLegacy.XRHitTestWithSelectEvent(event, this._xrSessionManager.referenceSpace);\n };\n this.xrNativeFeatureName = \"hit-test\";\n Tools.Warn(\"A newer version of this plugin is available\");\n }\n /**\n * execute a hit test with an XR Ray\n *\n * @param xrSession a native xrSession that will execute this hit test\n * @param xrRay the ray (position and direction) to use for ray-casting\n * @param referenceSpace native XR reference space to use for the hit-test\n * @param filter filter function that will filter the results\n * @returns a promise that resolves with an array of native XR hit result in xr coordinates system\n */\n static XRHitTestWithRay(xrSession, xrRay, referenceSpace, filter) {\n return xrSession.requestHitTest(xrRay, referenceSpace).then((results) => {\n const filterFunction = filter || ((result) => !!result.hitMatrix);\n return results.filter(filterFunction);\n });\n }\n /**\n * Execute a hit test on the current running session using a select event returned from a transient input (such as touch)\n * @param event the (select) event to use to select with\n * @param referenceSpace the reference space to use for this hit test\n * @returns a promise that resolves with an array of native XR hit result in xr coordinates system\n */\n static XRHitTestWithSelectEvent(event, referenceSpace) {\n const targetRayPose = event.frame.getPose(event.inputSource.targetRaySpace, referenceSpace);\n if (!targetRayPose) {\n return Promise.resolve([]);\n }\n const targetRay = new XRRay(targetRayPose.transform);\n return this.XRHitTestWithRay(event.frame.session, targetRay, referenceSpace);\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach()) {\n return false;\n }\n if (this.options.testOnPointerDownOnly) {\n this._xrSessionManager.session.addEventListener(\"select\", this._onSelect, false);\n }\n return true;\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n if (!super.detach()) {\n return false;\n }\n // disable select\n this._onSelectEnabled = false;\n this._xrSessionManager.session.removeEventListener(\"select\", this._onSelect);\n return true;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose();\n this.onHitTestResultObservable.clear();\n }\n _onXRFrame(frame) {\n // make sure we do nothing if (async) not attached\n if (!this.attached || this.options.testOnPointerDownOnly) {\n return;\n }\n const pose = frame.getViewerPose(this._xrSessionManager.referenceSpace);\n if (!pose) {\n return;\n }\n Matrix.FromArrayToRef(pose.transform.matrix, 0, this._mat);\n Vector3.TransformCoordinatesFromFloatsToRef(0, 0, 0, this._mat, this._origin);\n Vector3.TransformCoordinatesFromFloatsToRef(0, 0, -1, this._mat, this._direction);\n this._direction.subtractInPlace(this._origin);\n this._direction.normalize();\n const ray = new XRRay({ x: this._origin.x, y: this._origin.y, z: this._origin.z, w: 0 }, { x: this._direction.x, y: this._direction.y, z: this._direction.z, w: 0 });\n WebXRHitTestLegacy.XRHitTestWithRay(this._xrSessionManager.session, ray, this._xrSessionManager.referenceSpace).then(this._onHitTestResults);\n }\n}\n/**\n * The module's name\n */\nWebXRHitTestLegacy.Name = WebXRFeatureName.HIT_TEST;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRHitTestLegacy.Version = 1;\n//register the plugin versions\nWebXRFeaturesManager.AddWebXRFeature(WebXRHitTestLegacy.Name, (xrSessionManager, options) => {\n return () => new WebXRHitTestLegacy(xrSessionManager, options);\n}, WebXRHitTestLegacy.Version, false);\n","import { WebXRFeatureName, WebXRFeaturesManager } from \"../webXRFeaturesManager.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { Matrix, Vector3, Quaternion } from \"../../Maths/math.vector.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nimport { Tools } from \"../../Misc/tools.js\";\nlet anchorIdProvider = 0;\n/**\n * An implementation of the anchor system for WebXR.\n * For further information see https://github.com/immersive-web/anchors/\n */\nexport class WebXRAnchorSystem extends WebXRAbstractFeature {\n /**\n * Set the reference space to use for anchor creation, when not using a hit test.\n * Will default to the session's reference space if not defined\n */\n set referenceSpaceForFrameAnchors(referenceSpace) {\n this._referenceSpaceForFrameAnchors = referenceSpace;\n }\n /**\n * constructs a new anchor system\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param _options configuration object for this feature\n */\n constructor(_xrSessionManager, _options = {}) {\n super(_xrSessionManager);\n this._options = _options;\n this._lastFrameDetected = new Set();\n this._trackedAnchors = [];\n this._futureAnchors = [];\n /**\n * Observers registered here will be executed when a new anchor was added to the session\n */\n this.onAnchorAddedObservable = new Observable();\n /**\n * Observers registered here will be executed when an anchor was removed from the session\n */\n this.onAnchorRemovedObservable = new Observable();\n /**\n * Observers registered here will be executed when an existing anchor updates\n * This can execute N times every frame\n */\n this.onAnchorUpdatedObservable = new Observable();\n this._tmpVector = new Vector3();\n this._tmpQuaternion = new Quaternion();\n this.xrNativeFeatureName = \"anchors\";\n if (this._options.clearAnchorsOnSessionInit) {\n this._xrSessionManager.onXRSessionInit.add(() => {\n this._trackedAnchors.length = 0;\n this._futureAnchors.length = 0;\n this._lastFrameDetected.clear();\n });\n }\n }\n _populateTmpTransformation(position, rotationQuaternion) {\n this._tmpVector.copyFrom(position);\n this._tmpQuaternion.copyFrom(rotationQuaternion);\n if (!this._xrSessionManager.scene.useRightHandedSystem) {\n this._tmpVector.z *= -1;\n this._tmpQuaternion.z *= -1;\n this._tmpQuaternion.w *= -1;\n }\n return {\n position: this._tmpVector,\n rotationQuaternion: this._tmpQuaternion,\n };\n }\n /**\n * Create a new anchor point using a hit test result at a specific point in the scene\n * An anchor is tracked only after it is added to the trackerAnchors in xrFrame. The promise returned here does not yet guaranty that.\n * Use onAnchorAddedObservable to get newly added anchors if you require tracking guaranty.\n *\n * @param hitTestResult The hit test result to use for this anchor creation\n * @param position an optional position offset for this anchor\n * @param rotationQuaternion an optional rotation offset for this anchor\n * @returns A promise that fulfills when babylon has created the corresponding WebXRAnchor object and tracking has begun\n */\n async addAnchorPointUsingHitTestResultAsync(hitTestResult, position = new Vector3(), rotationQuaternion = new Quaternion()) {\n // convert to XR space (right handed) if needed\n this._populateTmpTransformation(position, rotationQuaternion);\n // the matrix that we'll use\n const m = new XRRigidTransform({ x: this._tmpVector.x, y: this._tmpVector.y, z: this._tmpVector.z }, { x: this._tmpQuaternion.x, y: this._tmpQuaternion.y, z: this._tmpQuaternion.z, w: this._tmpQuaternion.w });\n if (!hitTestResult.xrHitResult.createAnchor) {\n this.detach();\n throw new Error(\"Anchors not enabled in this environment/browser\");\n }\n else {\n try {\n const nativeAnchor = await hitTestResult.xrHitResult.createAnchor(m);\n return new Promise((resolve, reject) => {\n this._futureAnchors.push({\n nativeAnchor,\n resolved: false,\n submitted: true,\n xrTransformation: m,\n resolve,\n reject,\n });\n });\n }\n catch (error) {\n throw new Error(error);\n }\n }\n }\n /**\n * Add a new anchor at a specific position and rotation\n * This function will add a new anchor per default in the next available frame. Unless forced, the createAnchor function\n * will be called in the next xrFrame loop to make sure that the anchor can be created correctly.\n * An anchor is tracked only after it is added to the trackerAnchors in xrFrame. The promise returned here does not yet guaranty that.\n * Use onAnchorAddedObservable to get newly added anchors if you require tracking guaranty.\n *\n * @param position the position in which to add an anchor\n * @param rotationQuaternion an optional rotation for the anchor transformation\n * @param forceCreateInCurrentFrame force the creation of this anchor in the current frame. Must be called inside xrFrame loop!\n * @returns A promise that fulfills when babylon has created the corresponding WebXRAnchor object and tracking has begun\n */\n async addAnchorAtPositionAndRotationAsync(position, rotationQuaternion = new Quaternion(), forceCreateInCurrentFrame = false) {\n // convert to XR space (right handed) if needed\n this._populateTmpTransformation(position, rotationQuaternion);\n // the matrix that we'll use\n const xrTransformation = new XRRigidTransform({ x: this._tmpVector.x, y: this._tmpVector.y, z: this._tmpVector.z }, { x: this._tmpQuaternion.x, y: this._tmpQuaternion.y, z: this._tmpQuaternion.z, w: this._tmpQuaternion.w });\n const xrAnchor = forceCreateInCurrentFrame && this.attached && this._xrSessionManager.currentFrame\n ? await this._createAnchorAtTransformation(xrTransformation, this._xrSessionManager.currentFrame)\n : undefined;\n // add the transformation to the future anchors list\n return new Promise((resolve, reject) => {\n this._futureAnchors.push({\n nativeAnchor: xrAnchor,\n resolved: false,\n submitted: false,\n xrTransformation,\n resolve,\n reject,\n });\n });\n }\n /**\n * Get the list of anchors currently being tracked by the system\n */\n get anchors() {\n return this._trackedAnchors;\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n if (!super.detach()) {\n return false;\n }\n if (!this._options.doNotRemoveAnchorsOnSessionEnded) {\n while (this._trackedAnchors.length) {\n const toRemove = this._trackedAnchors.pop();\n if (toRemove) {\n // as the xr frame loop is removed, we need to notify manually\n this.onAnchorRemovedObservable.notifyObservers(toRemove);\n // no need to call the remove fn as the anchor is already removed from the session\n }\n }\n }\n return true;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n this._futureAnchors.length = 0;\n super.dispose();\n this.onAnchorAddedObservable.clear();\n this.onAnchorRemovedObservable.clear();\n this.onAnchorUpdatedObservable.clear();\n }\n _onXRFrame(frame) {\n if (!this.attached || !frame) {\n return;\n }\n const trackedAnchors = frame.trackedAnchors;\n if (trackedAnchors) {\n const toRemove = this._trackedAnchors\n .filter((anchor) => !trackedAnchors.has(anchor.xrAnchor))\n .map((anchor) => {\n const index = this._trackedAnchors.indexOf(anchor);\n return index;\n });\n let idxTracker = 0;\n toRemove.forEach((index) => {\n const anchor = this._trackedAnchors.splice(index - idxTracker, 1)[0];\n this.onAnchorRemovedObservable.notifyObservers(anchor);\n idxTracker++;\n });\n // now check for new ones\n trackedAnchors.forEach((xrAnchor) => {\n if (!this._lastFrameDetected.has(xrAnchor)) {\n const newAnchor = {\n id: anchorIdProvider++,\n xrAnchor: xrAnchor,\n remove: () => xrAnchor.delete(),\n };\n const anchor = this._updateAnchorWithXRFrame(xrAnchor, newAnchor, frame);\n this._trackedAnchors.push(anchor);\n this.onAnchorAddedObservable.notifyObservers(anchor);\n // search for the future anchor promise that matches this\n const results = this._futureAnchors.filter((futureAnchor) => futureAnchor.nativeAnchor === xrAnchor);\n const result = results[0];\n if (result) {\n result.resolve(anchor);\n result.resolved = true;\n }\n }\n else {\n const index = this._findIndexInAnchorArray(xrAnchor);\n const anchor = this._trackedAnchors[index];\n try {\n // anchors update every frame\n this._updateAnchorWithXRFrame(xrAnchor, anchor, frame);\n if (anchor.attachedNode) {\n anchor.attachedNode.rotationQuaternion = anchor.attachedNode.rotationQuaternion || new Quaternion();\n anchor.transformationMatrix.decompose(anchor.attachedNode.scaling, anchor.attachedNode.rotationQuaternion, anchor.attachedNode.position);\n }\n this.onAnchorUpdatedObservable.notifyObservers(anchor);\n }\n catch (e) {\n Tools.Warn(`Anchor could not be updated`);\n }\n }\n });\n this._lastFrameDetected = trackedAnchors;\n }\n // process future anchors\n this._futureAnchors.forEach((futureAnchor) => {\n if (!futureAnchor.resolved && !futureAnchor.submitted) {\n this._createAnchorAtTransformation(futureAnchor.xrTransformation, frame).then((nativeAnchor) => {\n futureAnchor.nativeAnchor = nativeAnchor;\n }, (error) => {\n futureAnchor.resolved = true;\n futureAnchor.reject(error);\n });\n futureAnchor.submitted = true;\n }\n });\n }\n /**\n * avoiding using Array.find for global support.\n * @param xrAnchor the plane to find in the array\n * @returns the index of the anchor in the array or -1 if not found\n */\n _findIndexInAnchorArray(xrAnchor) {\n for (let i = 0; i < this._trackedAnchors.length; ++i) {\n if (this._trackedAnchors[i].xrAnchor === xrAnchor) {\n return i;\n }\n }\n return -1;\n }\n _updateAnchorWithXRFrame(xrAnchor, anchor, xrFrame) {\n // matrix\n const pose = xrFrame.getPose(xrAnchor.anchorSpace, this._xrSessionManager.referenceSpace);\n if (pose) {\n const mat = anchor.transformationMatrix || new Matrix();\n Matrix.FromArrayToRef(pose.transform.matrix, 0, mat);\n if (!this._xrSessionManager.scene.useRightHandedSystem) {\n mat.toggleModelMatrixHandInPlace();\n }\n anchor.transformationMatrix = mat;\n if (!this._options.worldParentNode) {\n // Logger.Warn(\"Please provide a world parent node to apply world transformation\");\n }\n else {\n mat.multiplyToRef(this._options.worldParentNode.getWorldMatrix(), mat);\n }\n }\n return anchor;\n }\n async _createAnchorAtTransformation(xrTransformation, xrFrame) {\n if (xrFrame.createAnchor) {\n try {\n return xrFrame.createAnchor(xrTransformation, this._referenceSpaceForFrameAnchors ?? this._xrSessionManager.referenceSpace);\n }\n catch (error) {\n throw new Error(error);\n }\n }\n else {\n this.detach();\n throw new Error(\"Anchors are not enabled in your browser\");\n }\n }\n}\n/**\n * The module's name\n */\nWebXRAnchorSystem.Name = WebXRFeatureName.ANCHOR_SYSTEM;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRAnchorSystem.Version = 1;\n// register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRAnchorSystem.Name, (xrSessionManager, options) => {\n return () => new WebXRAnchorSystem(xrSessionManager, options);\n}, WebXRAnchorSystem.Version);\n","import { WebXRFeaturesManager, WebXRFeatureName } from \"../webXRFeaturesManager.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { Vector3, Matrix } from \"../../Maths/math.vector.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nlet planeIdProvider = 0;\n/**\n * The plane detector is used to detect planes in the real world when in AR\n * For more information see https://github.com/immersive-web/real-world-geometry/\n */\nexport class WebXRPlaneDetector extends WebXRAbstractFeature {\n /**\n * construct a new Plane Detector\n * @param _xrSessionManager an instance of xr Session manager\n * @param _options configuration to use when constructing this feature\n */\n constructor(_xrSessionManager, _options = {}) {\n super(_xrSessionManager);\n this._options = _options;\n this._detectedPlanes = [];\n this._enabled = false;\n this._lastFrameDetected = new Set();\n /**\n * Observers registered here will be executed when a new plane was added to the session\n */\n this.onPlaneAddedObservable = new Observable();\n /**\n * Observers registered here will be executed when a plane is no longer detected in the session\n */\n this.onPlaneRemovedObservable = new Observable();\n /**\n * Observers registered here will be executed when an existing plane updates (for example - expanded)\n * This can execute N times every frame\n */\n this.onPlaneUpdatedObservable = new Observable();\n this.xrNativeFeatureName = \"plane-detection\";\n if (this._xrSessionManager.session) {\n this._init();\n }\n else {\n this._xrSessionManager.onXRSessionInit.addOnce(() => {\n this._init();\n });\n }\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n if (!super.detach()) {\n return false;\n }\n if (!this._options.doNotRemovePlanesOnSessionEnded) {\n while (this._detectedPlanes.length) {\n const toRemove = this._detectedPlanes.pop();\n if (toRemove) {\n this.onPlaneRemovedObservable.notifyObservers(toRemove);\n }\n }\n }\n return true;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose();\n this.onPlaneAddedObservable.clear();\n this.onPlaneRemovedObservable.clear();\n this.onPlaneUpdatedObservable.clear();\n }\n /**\n * Check if the needed objects are defined.\n * This does not mean that the feature is enabled, but that the objects needed are well defined.\n * @returns true if the initial compatibility test passed\n */\n isCompatible() {\n return typeof XRPlane !== \"undefined\";\n }\n /**\n * Enable room capture mode.\n * When enabled and supported by the system,\n * the detectedPlanes array will be populated with the detected room boundaries\n * @see https://immersive-web.github.io/real-world-geometry/plane-detection.html#dom-xrsession-initiateroomcapture\n * @returns true if plane detection is enabled and supported. Will reject if not supported.\n */\n async initiateRoomCapture() {\n if (this._xrSessionManager.session.initiateRoomCapture) {\n return this._xrSessionManager.session.initiateRoomCapture();\n }\n return Promise.reject(\"initiateRoomCapture is not supported on this session\");\n }\n _onXRFrame(frame) {\n if (!this.attached || !this._enabled || !frame) {\n return;\n }\n const detectedPlanes = frame.detectedPlanes || frame.worldInformation?.detectedPlanes;\n if (detectedPlanes) {\n // remove all planes that are not currently detected in the frame\n for (let planeIdx = 0; planeIdx < this._detectedPlanes.length; planeIdx++) {\n const plane = this._detectedPlanes[planeIdx];\n if (!detectedPlanes.has(plane.xrPlane)) {\n this._detectedPlanes.splice(planeIdx--, 1);\n this.onPlaneRemovedObservable.notifyObservers(plane);\n }\n }\n // now check for new ones\n detectedPlanes.forEach((xrPlane) => {\n if (!this._lastFrameDetected.has(xrPlane)) {\n const newPlane = {\n id: planeIdProvider++,\n xrPlane: xrPlane,\n polygonDefinition: [],\n };\n const plane = this._updatePlaneWithXRPlane(xrPlane, newPlane, frame);\n this._detectedPlanes.push(plane);\n this.onPlaneAddedObservable.notifyObservers(plane);\n }\n else {\n // updated?\n if (xrPlane.lastChangedTime === this._xrSessionManager.currentTimestamp) {\n const index = this._findIndexInPlaneArray(xrPlane);\n const plane = this._detectedPlanes[index];\n this._updatePlaneWithXRPlane(xrPlane, plane, frame);\n this.onPlaneUpdatedObservable.notifyObservers(plane);\n }\n }\n });\n this._lastFrameDetected = detectedPlanes;\n }\n }\n _init() {\n const internalInit = () => {\n this._enabled = true;\n if (this._detectedPlanes.length) {\n this._detectedPlanes.length = 0;\n }\n };\n // Only supported by BabylonNative\n if (!!this._xrSessionManager.isNative && !!this._options.preferredDetectorOptions && !!this._xrSessionManager.session.trySetPreferredPlaneDetectorOptions) {\n this._xrSessionManager.session.trySetPreferredPlaneDetectorOptions(this._options.preferredDetectorOptions);\n }\n if (!this._xrSessionManager.session.updateWorldTrackingState) {\n internalInit();\n return;\n }\n this._xrSessionManager.session.updateWorldTrackingState({ planeDetectionState: { enabled: true } });\n internalInit();\n }\n _updatePlaneWithXRPlane(xrPlane, plane, xrFrame) {\n plane.polygonDefinition = xrPlane.polygon.map((xrPoint) => {\n const rightHandedSystem = this._xrSessionManager.scene.useRightHandedSystem ? 1 : -1;\n return new Vector3(xrPoint.x, xrPoint.y, xrPoint.z * rightHandedSystem);\n });\n // matrix\n const pose = xrFrame.getPose(xrPlane.planeSpace, this._xrSessionManager.referenceSpace);\n if (pose) {\n const mat = plane.transformationMatrix || new Matrix();\n Matrix.FromArrayToRef(pose.transform.matrix, 0, mat);\n if (!this._xrSessionManager.scene.useRightHandedSystem) {\n mat.toggleModelMatrixHandInPlace();\n }\n plane.transformationMatrix = mat;\n if (this._options.worldParentNode) {\n mat.multiplyToRef(this._options.worldParentNode.getWorldMatrix(), mat);\n }\n }\n return plane;\n }\n /**\n * avoiding using Array.find for global support.\n * @param xrPlane the plane to find in the array\n * @returns the index of the plane in the array or -1 if not found\n */\n _findIndexInPlaneArray(xrPlane) {\n for (let i = 0; i < this._detectedPlanes.length; ++i) {\n if (this._detectedPlanes[i].xrPlane === xrPlane) {\n return i;\n }\n }\n return -1;\n }\n}\n/**\n * The module's name\n */\nWebXRPlaneDetector.Name = WebXRFeatureName.PLANE_DETECTION;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRPlaneDetector.Version = 1;\n//register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRPlaneDetector.Name, (xrSessionManager, options) => {\n return () => new WebXRPlaneDetector(xrSessionManager, options);\n}, WebXRPlaneDetector.Version);\n","import { WebXRFeaturesManager, WebXRFeatureName } from \"../webXRFeaturesManager.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\n/**\n * A module that will automatically disable background meshes when entering AR and will enable them when leaving AR.\n */\nexport class WebXRBackgroundRemover extends WebXRAbstractFeature {\n /**\n * constructs a new background remover module\n * @param _xrSessionManager the session manager for this module\n * @param options read-only options to be used in this module\n */\n constructor(_xrSessionManager, \n /**\n * [Empty Object] read-only options to be used in this module\n */\n options = {}) {\n super(_xrSessionManager);\n this.options = options;\n /**\n * registered observers will be triggered when the background state changes\n */\n this.onBackgroundStateChangedObservable = new Observable();\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n this._setBackgroundState(false);\n return super.attach();\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n this._setBackgroundState(true);\n return super.detach();\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose();\n this.onBackgroundStateChangedObservable.clear();\n }\n _onXRFrame(_xrFrame) {\n // no-op\n }\n _setBackgroundState(newState) {\n const scene = this._xrSessionManager.scene;\n if (!this.options.ignoreEnvironmentHelper) {\n if (this.options.environmentHelperRemovalFlags) {\n if (this.options.environmentHelperRemovalFlags.skyBox) {\n const backgroundSkybox = scene.getMeshByName(\"BackgroundSkybox\");\n if (backgroundSkybox) {\n backgroundSkybox.setEnabled(newState);\n }\n }\n if (this.options.environmentHelperRemovalFlags.ground) {\n const backgroundPlane = scene.getMeshByName(\"BackgroundPlane\");\n if (backgroundPlane) {\n backgroundPlane.setEnabled(newState);\n }\n }\n }\n else {\n const backgroundHelper = scene.getMeshByName(\"BackgroundHelper\");\n if (backgroundHelper) {\n backgroundHelper.setEnabled(newState);\n }\n }\n }\n if (this.options.backgroundMeshes) {\n this.options.backgroundMeshes.forEach((mesh) => mesh.setEnabled(newState));\n }\n this.onBackgroundStateChangedObservable.notifyObservers(newState);\n }\n}\n/**\n * The module's name\n */\nWebXRBackgroundRemover.Name = WebXRFeatureName.BACKGROUND_REMOVER;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRBackgroundRemover.Version = 1;\n//register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRBackgroundRemover.Name, (xrSessionManager, options) => {\n return () => new WebXRBackgroundRemover(xrSessionManager, options);\n}, WebXRBackgroundRemover.Version, true);\n","import { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nimport { Vector3, Quaternion } from \"../../Maths/math.vector.js\";\nimport { PhysicsImpostor } from \"../../Physics/v1/physicsImpostor.js\";\nimport { CreateSphere } from \"../../Meshes/Builders/sphereBuilder.js\";\nimport { WebXRFeatureName, WebXRFeaturesManager } from \"../webXRFeaturesManager.js\";\nimport { Logger } from \"../../Misc/logger.js\";\n/**\n * Options for the controller physics feature\n */\nexport class IWebXRControllerPhysicsOptions {\n}\n/**\n * Add physics impostor to your webxr controllers,\n * including naive calculation of their linear and angular velocity\n */\nexport class WebXRControllerPhysics extends WebXRAbstractFeature {\n _createPhysicsImpostor(xrController) {\n const impostorType = this._options.physicsProperties.impostorType || PhysicsImpostor.SphereImpostor;\n const impostorSize = this._options.physicsProperties.impostorSize || 0.1;\n const impostorMesh = CreateSphere(\"impostor-mesh-\" + xrController.uniqueId, {\n diameterX: typeof impostorSize === \"number\" ? impostorSize : impostorSize.width,\n diameterY: typeof impostorSize === \"number\" ? impostorSize : impostorSize.height,\n diameterZ: typeof impostorSize === \"number\" ? impostorSize : impostorSize.depth,\n });\n impostorMesh.isVisible = this._debugMode;\n impostorMesh.isPickable = false;\n impostorMesh.rotationQuaternion = new Quaternion();\n const controllerMesh = xrController.grip || xrController.pointer;\n impostorMesh.position.copyFrom(controllerMesh.position);\n impostorMesh.rotationQuaternion.copyFrom(controllerMesh.rotationQuaternion);\n const impostor = new PhysicsImpostor(impostorMesh, impostorType, {\n mass: 0,\n ...this._options.physicsProperties,\n });\n this._controllers[xrController.uniqueId] = {\n xrController,\n impostor,\n impostorMesh,\n };\n }\n /**\n * Construct a new Controller Physics Feature\n * @param _xrSessionManager the corresponding xr session manager\n * @param _options options to create this feature with\n */\n constructor(_xrSessionManager, _options) {\n super(_xrSessionManager);\n this._options = _options;\n this._attachController = (xrController) => {\n if (this._controllers[xrController.uniqueId]) {\n // already attached\n return;\n }\n if (!this._xrSessionManager.scene.isPhysicsEnabled()) {\n Logger.Warn(\"physics engine not enabled, skipped. Please add this controller manually.\");\n }\n // if no motion controller available, create impostors!\n if (this._options.physicsProperties.useControllerMesh && xrController.inputSource.gamepad) {\n xrController.onMotionControllerInitObservable.addOnce((motionController) => {\n if (!motionController._doNotLoadControllerMesh) {\n motionController.onModelLoadedObservable.addOnce(() => {\n const impostor = new PhysicsImpostor(motionController.rootMesh, PhysicsImpostor.MeshImpostor, {\n mass: 0,\n ...this._options.physicsProperties,\n });\n const controllerMesh = xrController.grip || xrController.pointer;\n this._controllers[xrController.uniqueId] = {\n xrController,\n impostor,\n oldPos: controllerMesh.position.clone(),\n oldRotation: controllerMesh.rotationQuaternion.clone(),\n };\n });\n }\n else {\n // This controller isn't using a model, create impostors instead\n this._createPhysicsImpostor(xrController);\n }\n });\n }\n else {\n this._createPhysicsImpostor(xrController);\n }\n };\n this._controllers = {};\n this._debugMode = false;\n this._delta = 0;\n this._lastTimestamp = 0;\n this._tmpQuaternion = new Quaternion();\n this._tmpVector = new Vector3();\n if (!this._options.physicsProperties) {\n this._options.physicsProperties = {};\n }\n }\n /**\n * @internal\n * enable debugging - will show console outputs and the impostor mesh\n */\n _enablePhysicsDebug() {\n this._debugMode = true;\n Object.keys(this._controllers).forEach((controllerId) => {\n const controllerData = this._controllers[controllerId];\n if (controllerData.impostorMesh) {\n controllerData.impostorMesh.isVisible = true;\n }\n });\n }\n /**\n * Manually add a controller (if no xrInput was provided or physics engine was not enabled)\n * @param xrController the controller to add\n */\n addController(xrController) {\n this._attachController(xrController);\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach()) {\n return false;\n }\n if (!this._options.xrInput) {\n return true;\n }\n this._options.xrInput.controllers.forEach(this._attachController);\n this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable, this._attachController);\n this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable, (controller) => {\n // REMOVE the controller\n this._detachController(controller.uniqueId);\n });\n if (this._options.enableHeadsetImpostor) {\n const params = this._options.headsetImpostorParams || {\n impostorType: PhysicsImpostor.SphereImpostor,\n restitution: 0.8,\n impostorSize: 0.3,\n };\n const impostorSize = params.impostorSize || 0.3;\n this._headsetMesh = CreateSphere(\"headset-mesh\", {\n diameterX: typeof impostorSize === \"number\" ? impostorSize : impostorSize.width,\n diameterY: typeof impostorSize === \"number\" ? impostorSize : impostorSize.height,\n diameterZ: typeof impostorSize === \"number\" ? impostorSize : impostorSize.depth,\n });\n this._headsetMesh.rotationQuaternion = new Quaternion();\n this._headsetMesh.isVisible = false;\n this._headsetImpostor = new PhysicsImpostor(this._headsetMesh, params.impostorType, { mass: 0, ...params });\n }\n return true;\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n if (!super.detach()) {\n return false;\n }\n Object.keys(this._controllers).forEach((controllerId) => {\n this._detachController(controllerId);\n });\n if (this._headsetMesh) {\n this._headsetMesh.dispose();\n }\n return true;\n }\n /**\n * Get the headset impostor, if enabled\n * @returns the impostor\n */\n getHeadsetImpostor() {\n return this._headsetImpostor;\n }\n /**\n * Get the physics impostor of a specific controller.\n * The impostor is not attached to a mesh because a mesh for each controller is not obligatory\n * @param controller the controller or the controller id of which to get the impostor\n * @returns the impostor or null\n */\n getImpostorForController(controller) {\n const id = typeof controller === \"string\" ? controller : controller.uniqueId;\n if (this._controllers[id]) {\n return this._controllers[id].impostor;\n }\n else {\n return null;\n }\n }\n /**\n * Update the physics properties provided in the constructor\n * @param newProperties the new properties object\n * @param newProperties.impostorType\n * @param newProperties.impostorSize\n * @param newProperties.friction\n * @param newProperties.restitution\n */\n setPhysicsProperties(newProperties) {\n this._options.physicsProperties = {\n ...this._options.physicsProperties,\n ...newProperties,\n };\n }\n _onXRFrame(_xrFrame) {\n this._delta = this._xrSessionManager.currentTimestamp - this._lastTimestamp;\n this._lastTimestamp = this._xrSessionManager.currentTimestamp;\n if (this._headsetMesh && this._headsetImpostor) {\n this._headsetMesh.position.copyFrom(this._options.xrInput.xrCamera.globalPosition);\n this._headsetMesh.rotationQuaternion.copyFrom(this._options.xrInput.xrCamera.absoluteRotation);\n if (this._options.xrInput.xrCamera._lastXRViewerPose?.linearVelocity) {\n const lv = this._options.xrInput.xrCamera._lastXRViewerPose.linearVelocity;\n this._tmpVector.set(lv.x, lv.y, lv.z);\n this._headsetImpostor.setLinearVelocity(this._tmpVector);\n }\n if (this._options.xrInput.xrCamera._lastXRViewerPose?.angularVelocity) {\n const av = this._options.xrInput.xrCamera._lastXRViewerPose.angularVelocity;\n this._tmpVector.set(av.x, av.y, av.z);\n this._headsetImpostor.setAngularVelocity(this._tmpVector);\n }\n }\n Object.keys(this._controllers).forEach((controllerId) => {\n const controllerData = this._controllers[controllerId];\n const controllerMesh = controllerData.xrController.grip || controllerData.xrController.pointer;\n const comparedPosition = controllerData.oldPos || controllerData.impostorMesh.position;\n if (controllerData.xrController._lastXRPose?.linearVelocity) {\n const lv = controllerData.xrController._lastXRPose.linearVelocity;\n this._tmpVector.set(lv.x, lv.y, lv.z);\n controllerData.impostor.setLinearVelocity(this._tmpVector);\n }\n else {\n controllerMesh.position.subtractToRef(comparedPosition, this._tmpVector);\n this._tmpVector.scaleInPlace(1000 / this._delta);\n controllerData.impostor.setLinearVelocity(this._tmpVector);\n }\n comparedPosition.copyFrom(controllerMesh.position);\n if (this._debugMode) {\n Logger.Log([this._tmpVector, \"linear\"]);\n }\n const comparedQuaternion = controllerData.oldRotation || controllerData.impostorMesh.rotationQuaternion;\n if (controllerData.xrController._lastXRPose?.angularVelocity) {\n const av = controllerData.xrController._lastXRPose.angularVelocity;\n this._tmpVector.set(av.x, av.y, av.z);\n controllerData.impostor.setAngularVelocity(this._tmpVector);\n }\n else {\n if (!comparedQuaternion.equalsWithEpsilon(controllerMesh.rotationQuaternion)) {\n // roughly based on this - https://www.gamedev.net/forums/topic/347752-quaternion-and-angular-velocity/\n comparedQuaternion.conjugateInPlace().multiplyToRef(controllerMesh.rotationQuaternion, this._tmpQuaternion);\n const len = Math.sqrt(this._tmpQuaternion.x * this._tmpQuaternion.x + this._tmpQuaternion.y * this._tmpQuaternion.y + this._tmpQuaternion.z * this._tmpQuaternion.z);\n this._tmpVector.set(this._tmpQuaternion.x, this._tmpQuaternion.y, this._tmpQuaternion.z);\n // define a better epsilon\n if (len < 0.001) {\n this._tmpVector.scaleInPlace(2);\n }\n else {\n const angle = 2 * Math.atan2(len, this._tmpQuaternion.w);\n this._tmpVector.scaleInPlace(angle / (len * (this._delta / 1000)));\n }\n controllerData.impostor.setAngularVelocity(this._tmpVector);\n }\n }\n comparedQuaternion.copyFrom(controllerMesh.rotationQuaternion);\n if (this._debugMode) {\n Logger.Log([this._tmpVector, this._tmpQuaternion, \"angular\"]);\n }\n });\n }\n _detachController(xrControllerUniqueId) {\n const controllerData = this._controllers[xrControllerUniqueId];\n if (!controllerData) {\n return;\n }\n if (controllerData.impostorMesh) {\n controllerData.impostorMesh.dispose();\n }\n // remove from the map\n delete this._controllers[xrControllerUniqueId];\n }\n}\n/**\n * The module's name\n */\nWebXRControllerPhysics.Name = WebXRFeatureName.PHYSICS_CONTROLLERS;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the webxr specs version\n */\nWebXRControllerPhysics.Version = 1;\n//register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRControllerPhysics.Name, (xrSessionManager, options) => {\n return () => new WebXRControllerPhysics(xrSessionManager, options);\n}, WebXRControllerPhysics.Version, true);\n","import { WebXRFeaturesManager, WebXRFeatureName } from \"../webXRFeaturesManager.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { Vector3, Matrix, Quaternion } from \"../../Maths/math.vector.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nimport { Tools } from \"../../Misc/tools.js\";\n/**\n * The currently-working hit-test module.\n * Hit test (or Ray-casting) is used to interact with the real world.\n * For further information read here - https://github.com/immersive-web/hit-test\n *\n * Tested on chrome (mobile) 80.\n */\nexport class WebXRHitTest extends WebXRAbstractFeature {\n /**\n * Creates a new instance of the hit test feature\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param options options to use when constructing this feature\n */\n constructor(_xrSessionManager, \n /**\n * [Empty Object] options to use when constructing this feature\n */\n options = {}) {\n super(_xrSessionManager);\n this.options = options;\n this._tmpMat = new Matrix();\n this._tmpPos = new Vector3();\n this._tmpQuat = new Quaternion();\n this._initHitTestSource = (referenceSpace) => {\n if (!referenceSpace) {\n return;\n }\n const offsetRay = new XRRay(this.options.offsetRay || {});\n const hitTestOptions = {\n space: this.options.useReferenceSpace ? referenceSpace : this._xrSessionManager.viewerReferenceSpace,\n offsetRay: offsetRay,\n };\n if (this.options.entityTypes) {\n hitTestOptions.entityTypes = this.options.entityTypes;\n }\n if (!hitTestOptions.space) {\n Tools.Warn(\"waiting for viewer reference space to initialize\");\n return;\n }\n this._xrSessionManager.session.requestHitTestSource(hitTestOptions).then((hitTestSource) => {\n if (this._xrHitTestSource) {\n this._xrHitTestSource.cancel();\n }\n this._xrHitTestSource = hitTestSource;\n });\n };\n /**\n * When set to true, each hit test will have its own position/rotation objects\n * When set to false, position and rotation objects will be reused for each hit test. It is expected that\n * the developers will clone them or copy them as they see fit.\n */\n this.autoCloneTransformation = false;\n /**\n * Triggered when new babylon (transformed) hit test results are available\n * Note - this will be called when results come back from the device. It can be an empty array!!\n */\n this.onHitTestResultObservable = new Observable();\n /**\n * Use this to temporarily pause hit test checks.\n */\n this.paused = false;\n this.xrNativeFeatureName = \"hit-test\";\n Tools.Warn(\"Hit test is an experimental and unstable feature.\");\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach()) {\n return false;\n }\n // Feature enabled, but not available\n if (!this._xrSessionManager.session.requestHitTestSource) {\n return false;\n }\n if (!this.options.disablePermanentHitTest) {\n if (this._xrSessionManager.referenceSpace) {\n this._initHitTestSource(this._xrSessionManager.referenceSpace);\n }\n this._xrSessionManager.onXRReferenceSpaceChanged.add(this._initHitTestSource);\n }\n if (this.options.enableTransientHitTest) {\n const offsetRay = new XRRay(this.options.transientOffsetRay || {});\n this._xrSessionManager.session.requestHitTestSourceForTransientInput({\n profile: this.options.transientHitTestProfile || \"generic-touchscreen\",\n offsetRay,\n entityTypes: this.options.entityTypes,\n }).then((hitSource) => {\n this._transientXrHitTestSource = hitSource;\n });\n }\n return true;\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n if (!super.detach()) {\n return false;\n }\n if (this._xrHitTestSource) {\n this._xrHitTestSource.cancel();\n this._xrHitTestSource = null;\n }\n this._xrSessionManager.onXRReferenceSpaceChanged.removeCallback(this._initHitTestSource);\n if (this._transientXrHitTestSource) {\n this._transientXrHitTestSource.cancel();\n this._transientXrHitTestSource = null;\n }\n return true;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose();\n this.onHitTestResultObservable.clear();\n }\n _onXRFrame(frame) {\n // make sure we do nothing if (async) not attached\n if (!this.attached || this.paused) {\n return;\n }\n if (this._xrHitTestSource) {\n const results = frame.getHitTestResults(this._xrHitTestSource);\n this._processWebXRHitTestResult(results);\n }\n if (this._transientXrHitTestSource) {\n const hitTestResultsPerInputSource = frame.getHitTestResultsForTransientInput(this._transientXrHitTestSource);\n hitTestResultsPerInputSource.forEach((resultsPerInputSource) => {\n this._processWebXRHitTestResult(resultsPerInputSource.results, resultsPerInputSource.inputSource);\n });\n }\n }\n _processWebXRHitTestResult(hitTestResults, inputSource) {\n const results = [];\n hitTestResults.forEach((hitTestResult) => {\n const pose = hitTestResult.getPose(this._xrSessionManager.referenceSpace);\n if (!pose) {\n return;\n }\n const pos = pose.transform.position;\n const quat = pose.transform.orientation;\n this._tmpPos.set(pos.x, pos.y, pos.z).scaleInPlace(this._xrSessionManager.worldScalingFactor);\n this._tmpQuat.set(quat.x, quat.y, quat.z, quat.w);\n Matrix.FromFloat32ArrayToRefScaled(pose.transform.matrix, 0, 1, this._tmpMat);\n if (!this._xrSessionManager.scene.useRightHandedSystem) {\n this._tmpPos.z *= -1;\n this._tmpQuat.z *= -1;\n this._tmpQuat.w *= -1;\n this._tmpMat.toggleModelMatrixHandInPlace();\n }\n const result = {\n position: this.autoCloneTransformation ? this._tmpPos.clone() : this._tmpPos,\n rotationQuaternion: this.autoCloneTransformation ? this._tmpQuat.clone() : this._tmpQuat,\n transformationMatrix: this.autoCloneTransformation ? this._tmpMat.clone() : this._tmpMat,\n inputSource: inputSource,\n isTransient: !!inputSource,\n xrHitResult: hitTestResult,\n };\n results.push(result);\n });\n this.onHitTestResultObservable.notifyObservers(results);\n }\n}\n/**\n * The module's name\n */\nWebXRHitTest.Name = WebXRFeatureName.HIT_TEST;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRHitTest.Version = 2;\n//register the plugin versions\nWebXRFeaturesManager.AddWebXRFeature(WebXRHitTest.Name, (xrSessionManager, options) => {\n return () => new WebXRHitTest(xrSessionManager, options);\n}, WebXRHitTest.Version, false);\n","import { WebXRFeaturesManager, WebXRFeatureName } from \"../webXRFeaturesManager.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\n/**\n * The feature point system is used to detect feature points from real world geometry.\n * This feature is currently experimental and only supported on BabylonNative, and should not be used in the browser.\n * The newly introduced API can be seen in webxr.nativeextensions.d.ts and described in FeaturePoints.md.\n */\nexport class WebXRFeaturePointSystem extends WebXRAbstractFeature {\n /**\n * The current feature point cloud maintained across frames.\n */\n get featurePointCloud() {\n return this._featurePointCloud;\n }\n /**\n * construct the feature point system\n * @param _xrSessionManager an instance of xr Session manager\n */\n constructor(_xrSessionManager) {\n super(_xrSessionManager);\n this._enabled = false;\n this._featurePointCloud = [];\n /**\n * Observers registered here will be executed whenever new feature points are added (on XRFrame while the session is tracking).\n * Will notify the observers about which feature points have been added.\n */\n this.onFeaturePointsAddedObservable = new Observable();\n /**\n * Observers registered here will be executed whenever a feature point has been updated (on XRFrame while the session is tracking).\n * Will notify the observers about which feature points have been updated.\n */\n this.onFeaturePointsUpdatedObservable = new Observable();\n this.xrNativeFeatureName = \"bjsfeature-points\";\n if (this._xrSessionManager.session) {\n this._init();\n }\n else {\n this._xrSessionManager.onXRSessionInit.addOnce(() => {\n this._init();\n });\n }\n }\n /**\n * Detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n if (!super.detach()) {\n return false;\n }\n this.featurePointCloud.length = 0;\n return true;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose();\n this._featurePointCloud.length = 0;\n this.onFeaturePointsUpdatedObservable.clear();\n this.onFeaturePointsAddedObservable.clear();\n }\n /**\n * On receiving a new XR frame if this feature is attached notify observers new feature point data is available.\n * @param frame\n */\n _onXRFrame(frame) {\n if (!this.attached || !this._enabled || !frame) {\n return;\n }\n const featurePointRawData = frame.featurePointCloud;\n if (!featurePointRawData || featurePointRawData.length === 0) {\n return;\n }\n else {\n if (featurePointRawData.length % 5 !== 0) {\n throw new Error(\"Received malformed feature point cloud of length: \" + featurePointRawData.length);\n }\n const numberOfFeaturePoints = featurePointRawData.length / 5;\n const updatedFeaturePoints = [];\n const addedFeaturePoints = [];\n for (let i = 0; i < numberOfFeaturePoints; i++) {\n const rawIndex = i * 5;\n const id = featurePointRawData[rawIndex + 4];\n // IDs should be durable across frames and strictly increasing from 0 up, so use them as indexing into the feature point array.\n if (!this._featurePointCloud[id]) {\n this._featurePointCloud[id] = { position: new Vector3(), confidenceValue: 0 };\n addedFeaturePoints.push(id);\n }\n else {\n updatedFeaturePoints.push(id);\n }\n // Set the feature point values.\n this._featurePointCloud[id].position.x = featurePointRawData[rawIndex];\n this._featurePointCloud[id].position.y = featurePointRawData[rawIndex + 1];\n this._featurePointCloud[id].position.z = featurePointRawData[rawIndex + 2];\n this._featurePointCloud[id].confidenceValue = featurePointRawData[rawIndex + 3];\n }\n // Signal observers that feature points have been added if necessary.\n if (addedFeaturePoints.length > 0) {\n this.onFeaturePointsAddedObservable.notifyObservers(addedFeaturePoints);\n }\n // Signal observers that feature points have been updated if necessary.\n if (updatedFeaturePoints.length > 0) {\n this.onFeaturePointsUpdatedObservable.notifyObservers(updatedFeaturePoints);\n }\n }\n }\n /**\n * Initializes the feature. If the feature point feature is not available for this environment do not mark the feature as enabled.\n */\n _init() {\n if (!this._xrSessionManager.session.trySetFeaturePointCloudEnabled || !this._xrSessionManager.session.trySetFeaturePointCloudEnabled(true)) {\n // fail silently\n return;\n }\n this._enabled = true;\n }\n}\n/**\n * The module's name\n */\nWebXRFeaturePointSystem.Name = WebXRFeatureName.FEATURE_POINTS;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRFeaturePointSystem.Version = 1;\n// register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRFeaturePointSystem.Name, (xrSessionManager) => {\n return () => new WebXRFeaturePointSystem(xrSessionManager);\n}, WebXRFeaturePointSystem.Version);\n","import { WebXRFeaturesManager, WebXRFeatureName } from \"../webXRFeaturesManager.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nimport { Matrix, Quaternion } from \"../../Maths/math.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { Mesh } from \"../../Meshes/mesh.js\";\nimport { VertexBuffer } from \"../../Buffers/buffer.js\";\nimport { Logger } from \"../../Misc/logger.js\";\nlet meshIdProvider = 0;\n/**\n * The mesh detector is used to detect meshes in the real world when in AR\n */\nexport class WebXRMeshDetector extends WebXRAbstractFeature {\n constructor(_xrSessionManager, _options = {}) {\n super(_xrSessionManager);\n this._options = _options;\n this._detectedMeshes = new Map();\n /**\n * Observers registered here will be executed when a new mesh was added to the session\n */\n this.onMeshAddedObservable = new Observable();\n /**\n * Observers registered here will be executed when a mesh is no longer detected in the session\n */\n this.onMeshRemovedObservable = new Observable();\n /**\n * Observers registered here will be executed when an existing mesh updates\n */\n this.onMeshUpdatedObservable = new Observable();\n this.xrNativeFeatureName = \"mesh-detection\";\n if (this._options.generateMeshes) {\n this._options.convertCoordinateSystems = true;\n }\n if (this._xrSessionManager.session) {\n this._init();\n }\n else {\n this._xrSessionManager.onXRSessionInit.addOnce(() => {\n this._init();\n });\n }\n }\n detach() {\n if (!super.detach()) {\n return false;\n }\n // Only supported by BabylonNative\n if (!!this._xrSessionManager.isNative && !!this._xrSessionManager.session.trySetMeshDetectorEnabled) {\n this._xrSessionManager.session.trySetMeshDetectorEnabled(false);\n }\n if (!this._options.doNotRemoveMeshesOnSessionEnded) {\n this._detectedMeshes.forEach((mesh) => {\n this.onMeshRemovedObservable.notifyObservers(mesh);\n });\n this._detectedMeshes.clear();\n }\n return true;\n }\n dispose() {\n super.dispose();\n this.onMeshAddedObservable.clear();\n this.onMeshRemovedObservable.clear();\n this.onMeshUpdatedObservable.clear();\n }\n _onXRFrame(frame) {\n // TODO remove try catch\n try {\n if (!this.attached || !frame) {\n return;\n }\n // babylon native XR and webxr support\n const detectedMeshes = frame.detectedMeshes || frame.worldInformation?.detectedMeshes;\n if (detectedMeshes) {\n const toRemove = new Set();\n this._detectedMeshes.forEach((vertexData, xrMesh) => {\n if (!detectedMeshes.has(xrMesh)) {\n toRemove.add(xrMesh);\n }\n });\n toRemove.forEach((xrMesh) => {\n const vertexData = this._detectedMeshes.get(xrMesh);\n if (vertexData) {\n this.onMeshRemovedObservable.notifyObservers(vertexData);\n this._detectedMeshes.delete(xrMesh);\n }\n });\n // now check for new ones\n detectedMeshes.forEach((xrMesh) => {\n if (!this._detectedMeshes.has(xrMesh)) {\n const partialVertexData = {\n id: meshIdProvider++,\n xrMesh: xrMesh,\n };\n const vertexData = this._updateVertexDataWithXRMesh(xrMesh, partialVertexData, frame);\n this._detectedMeshes.set(xrMesh, vertexData);\n this.onMeshAddedObservable.notifyObservers(vertexData);\n }\n else {\n // updated?\n if (xrMesh.lastChangedTime === this._xrSessionManager.currentTimestamp) {\n const vertexData = this._detectedMeshes.get(xrMesh);\n if (vertexData) {\n this._updateVertexDataWithXRMesh(xrMesh, vertexData, frame);\n this.onMeshUpdatedObservable.notifyObservers(vertexData);\n }\n }\n }\n });\n }\n }\n catch (error) {\n Logger.Log(error.stack);\n }\n }\n _init() {\n // Only supported by BabylonNative\n if (this._xrSessionManager.isNative) {\n if (this._xrSessionManager.session.trySetMeshDetectorEnabled) {\n this._xrSessionManager.session.trySetMeshDetectorEnabled(true);\n }\n if (!!this._options.preferredDetectorOptions && !!this._xrSessionManager.session.trySetPreferredMeshDetectorOptions) {\n this._xrSessionManager.session.trySetPreferredMeshDetectorOptions(this._options.preferredDetectorOptions);\n }\n }\n }\n _updateVertexDataWithXRMesh(xrMesh, mesh, xrFrame) {\n mesh.xrMesh = xrMesh;\n mesh.worldParentNode = this._options.worldParentNode;\n const positions = xrMesh.vertices || xrMesh.positions;\n if (this._options.convertCoordinateSystems) {\n if (!this._xrSessionManager.scene.useRightHandedSystem) {\n mesh.positions = new Float32Array(positions.length);\n for (let i = 0; i < positions.length; i += 3) {\n mesh.positions[i] = positions[i];\n mesh.positions[i + 1] = positions[i + 1];\n mesh.positions[i + 2] = -1 * positions[i + 2];\n }\n if (xrMesh.normals) {\n mesh.normals = new Float32Array(xrMesh.normals.length);\n for (let i = 0; i < xrMesh.normals.length; i += 3) {\n mesh.normals[i] = xrMesh.normals[i];\n mesh.normals[i + 1] = xrMesh.normals[i + 1];\n mesh.normals[i + 2] = -1 * xrMesh.normals[i + 2];\n }\n }\n }\n else {\n mesh.positions = positions;\n mesh.normals = xrMesh.normals;\n }\n // WebXR should provide indices in a counterclockwise winding order regardless of coordinate system handedness\n mesh.indices = xrMesh.indices;\n // matrix\n const pose = xrFrame.getPose(xrMesh.meshSpace, this._xrSessionManager.referenceSpace);\n if (pose) {\n const mat = mesh.transformationMatrix || new Matrix();\n Matrix.FromArrayToRef(pose.transform.matrix, 0, mat);\n if (!this._xrSessionManager.scene.useRightHandedSystem) {\n mat.toggleModelMatrixHandInPlace();\n }\n mesh.transformationMatrix = mat;\n if (this._options.worldParentNode) {\n mat.multiplyToRef(this._options.worldParentNode.getWorldMatrix(), mat);\n }\n }\n if (this._options.generateMeshes) {\n if (!mesh.mesh) {\n const generatedMesh = new Mesh(\"xr mesh \" + mesh.id, this._xrSessionManager.scene);\n generatedMesh.rotationQuaternion = new Quaternion();\n generatedMesh.setVerticesData(VertexBuffer.PositionKind, mesh.positions);\n if (mesh.normals) {\n generatedMesh.setVerticesData(VertexBuffer.NormalKind, mesh.normals);\n }\n else {\n generatedMesh.createNormals(true);\n }\n generatedMesh.setIndices(mesh.indices, undefined, true);\n mesh.mesh = generatedMesh;\n }\n else {\n const generatedMesh = mesh.mesh;\n generatedMesh.updateVerticesData(VertexBuffer.PositionKind, mesh.positions);\n if (mesh.normals) {\n generatedMesh.updateVerticesData(VertexBuffer.NormalKind, mesh.normals);\n }\n else {\n generatedMesh.createNormals(true);\n }\n generatedMesh.updateIndices(mesh.indices);\n }\n mesh.transformationMatrix?.decompose(mesh.mesh.scaling, mesh.mesh.rotationQuaternion, mesh.mesh.position);\n }\n }\n return mesh;\n }\n}\n/**\n * The module's name\n */\nWebXRMeshDetector.Name = WebXRFeatureName.MESH_DETECTION;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRMeshDetector.Version = 1;\nWebXRFeaturesManager.AddWebXRFeature(WebXRMeshDetector.Name, (xrSessionManager, options) => {\n return () => new WebXRMeshDetector(xrSessionManager, options);\n}, WebXRMeshDetector.Version, false);\n","import { WebXRFeaturesManager, WebXRFeatureName } from \"../webXRFeaturesManager.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nimport { Matrix } from \"../../Maths/math.vector.js\";\nimport { Tools } from \"../../Misc/tools.js\";\n/**\n * Enum that describes the state of the image trackability score status for this session.\n */\nvar ImageTrackingScoreStatus;\n(function (ImageTrackingScoreStatus) {\n // AR Session has not yet assessed image trackability scores.\n ImageTrackingScoreStatus[ImageTrackingScoreStatus[\"NotReceived\"] = 0] = \"NotReceived\";\n // A request to retrieve trackability scores has been sent, but no response has been received.\n ImageTrackingScoreStatus[ImageTrackingScoreStatus[\"Waiting\"] = 1] = \"Waiting\";\n // Image trackability scores have been received for this session\n ImageTrackingScoreStatus[ImageTrackingScoreStatus[\"Received\"] = 2] = \"Received\";\n})(ImageTrackingScoreStatus || (ImageTrackingScoreStatus = {}));\n/**\n * Image tracking for immersive AR sessions.\n * Providing a list of images and their estimated widths will enable tracking those images in the real world.\n */\nexport class WebXRImageTracking extends WebXRAbstractFeature {\n /**\n * constructs the image tracking feature\n * @param _xrSessionManager the session manager for this module\n * @param options read-only options to be used in this module\n */\n constructor(_xrSessionManager, \n /**\n * read-only options to be used in this module\n */\n options) {\n super(_xrSessionManager);\n this.options = options;\n /**\n * This will be triggered if the underlying system deems an image untrackable.\n * The index is the index of the image from the array used to initialize the feature.\n */\n this.onUntrackableImageFoundObservable = new Observable();\n /**\n * An image was deemed trackable, and the system will start tracking it.\n */\n this.onTrackableImageFoundObservable = new Observable();\n /**\n * The image was found and its state was updated.\n */\n this.onTrackedImageUpdatedObservable = new Observable();\n this._trackableScoreStatus = ImageTrackingScoreStatus.NotReceived;\n this._trackedImages = [];\n this.xrNativeFeatureName = \"image-tracking\";\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n return super.attach();\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n return super.detach();\n }\n /**\n * Get a tracked image by its ID.\n *\n * @param id the id of the image to load (position in the init array)\n * @returns a trackable image, if exists in this location\n */\n getTrackedImageById(id) {\n return this._trackedImages[id] || null;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose();\n this._trackedImages.forEach((trackedImage) => {\n trackedImage.originalBitmap.close();\n });\n this._trackedImages.length = 0;\n this.onTrackableImageFoundObservable.clear();\n this.onUntrackableImageFoundObservable.clear();\n this.onTrackedImageUpdatedObservable.clear();\n }\n /**\n * Extends the session init object if needed\n * @returns augmentation object fo the xr session init object.\n */\n async getXRSessionInitExtension() {\n if (!this.options.images || !this.options.images.length) {\n return {};\n }\n const promises = this.options.images.map((image) => {\n if (typeof image.src === \"string\") {\n return this._xrSessionManager.scene.getEngine()._createImageBitmapFromSource(image.src);\n }\n else {\n return Promise.resolve(image.src); // resolve is probably unneeded\n }\n });\n try {\n const images = await Promise.all(promises);\n this._originalTrackingRequest = images.map((image, idx) => {\n return {\n image,\n widthInMeters: this.options.images[idx].estimatedRealWorldWidth,\n };\n });\n return {\n trackedImages: this._originalTrackingRequest,\n };\n }\n catch (ex) {\n Tools.Error(\"Error loading images for tracking, WebXRImageTracking disabled for this session.\");\n return {};\n }\n }\n _onXRFrame(_xrFrame) {\n if (!_xrFrame.getImageTrackingResults || this._trackableScoreStatus === ImageTrackingScoreStatus.Waiting) {\n return;\n }\n // Image tracking scores may be generated a few frames after the XR Session initializes.\n // If we haven't received scores yet, then kick off the task to check scores and return immediately.\n if (this._trackableScoreStatus === ImageTrackingScoreStatus.NotReceived) {\n this._checkScoresAsync();\n return;\n }\n const imageTrackedResults = _xrFrame.getImageTrackingResults();\n for (const result of imageTrackedResults) {\n let changed = false;\n const imageIndex = result.index;\n const imageObject = this._trackedImages[imageIndex];\n if (!imageObject) {\n // something went wrong!\n continue;\n }\n imageObject.xrTrackingResult = result;\n if (imageObject.realWorldWidth !== result.measuredWidthInMeters) {\n imageObject.realWorldWidth = result.measuredWidthInMeters;\n changed = true;\n }\n // Get the pose of the image relative to a reference space.\n const pose = _xrFrame.getPose(result.imageSpace, this._xrSessionManager.referenceSpace);\n if (pose) {\n const mat = imageObject.transformationMatrix;\n Matrix.FromArrayToRef(pose.transform.matrix, 0, mat);\n if (!this._xrSessionManager.scene.useRightHandedSystem) {\n mat.toggleModelMatrixHandInPlace();\n }\n changed = true;\n }\n const state = result.trackingState;\n const emulated = state === \"emulated\";\n if (imageObject.emulated !== emulated) {\n imageObject.emulated = emulated;\n changed = true;\n }\n if (changed) {\n this.onTrackedImageUpdatedObservable.notifyObservers(imageObject);\n }\n }\n }\n async _checkScoresAsync() {\n if (!this._xrSessionManager.session.getTrackedImageScores || this._trackableScoreStatus !== ImageTrackingScoreStatus.NotReceived) {\n return;\n }\n this._trackableScoreStatus = ImageTrackingScoreStatus.Waiting;\n const imageScores = await this._xrSessionManager.session.getTrackedImageScores();\n if (!imageScores || imageScores.length === 0) {\n this._trackableScoreStatus = ImageTrackingScoreStatus.NotReceived;\n return;\n }\n // check the scores for all\n for (let idx = 0; idx < imageScores.length; ++idx) {\n if (imageScores[idx] == \"untrackable\") {\n this.onUntrackableImageFoundObservable.notifyObservers(idx);\n }\n else {\n const originalBitmap = this._originalTrackingRequest[idx].image;\n const imageObject = {\n id: idx,\n originalBitmap,\n transformationMatrix: new Matrix(),\n ratio: originalBitmap.width / originalBitmap.height,\n };\n this._trackedImages[idx] = imageObject;\n this.onTrackableImageFoundObservable.notifyObservers(imageObject);\n }\n }\n this._trackableScoreStatus = imageScores.length > 0 ? ImageTrackingScoreStatus.Received : ImageTrackingScoreStatus.NotReceived;\n }\n}\n/**\n * The module's name\n */\nWebXRImageTracking.Name = WebXRFeatureName.IMAGE_TRACKING;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRImageTracking.Version = 1;\n//register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRImageTracking.Name, (xrSessionManager, options) => {\n return () => new WebXRImageTracking(xrSessionManager, options);\n}, WebXRImageTracking.Version, false);\n","import { Tools } from \"../../Misc/tools.js\";\nimport { WebXRFeatureName, WebXRFeaturesManager } from \"../webXRFeaturesManager.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\n/**\n * DOM Overlay Feature\n *\n * @since 5.0.0\n */\nexport class WebXRDomOverlay extends WebXRAbstractFeature {\n /**\n * Creates a new instance of the dom-overlay feature\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param options options to use when constructing this feature\n */\n constructor(_xrSessionManager, \n /**\n * options to use when constructing this feature\n */\n options) {\n super(_xrSessionManager);\n this.options = options;\n /**\n * Type of overlay - non-null when available\n */\n this._domOverlayType = null;\n /**\n * Event Listener to supress \"beforexrselect\" events.\n */\n this._beforeXRSelectListener = null;\n /**\n * Element used for overlay\n */\n this._element = null;\n this.xrNativeFeatureName = \"dom-overlay\";\n // https://immersive-web.github.io/dom-overlays/\n Tools.Warn(\"dom-overlay is an experimental and unstable feature.\");\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach()) {\n return false;\n }\n // Feature not available\n if (!this._xrSessionManager.session.domOverlayState || this._xrSessionManager.session.domOverlayState.type === null) {\n return false;\n }\n this._domOverlayType = this._xrSessionManager.session.domOverlayState.type;\n if (this._element !== null && this.options.supressXRSelectEvents === true) {\n this._beforeXRSelectListener = (ev) => {\n ev.preventDefault();\n };\n this._element.addEventListener(\"beforexrselect\", this._beforeXRSelectListener);\n }\n return true;\n }\n /**\n * The type of DOM overlay (null when not supported). Provided by UA and remains unchanged for duration of session.\n */\n get domOverlayType() {\n return this._domOverlayType;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose();\n if (this._element !== null && this._beforeXRSelectListener) {\n this._element.removeEventListener(\"beforexrselect\", this._beforeXRSelectListener);\n }\n }\n _onXRFrame(_xrFrame) {\n /* empty */\n }\n /**\n * Extends the session init object if needed\n * @returns augmentation object for the xr session init object.\n */\n async getXRSessionInitExtension() {\n if (this.options.element === undefined) {\n Tools.Warn('\"element\" option must be provided to attach xr-dom-overlay feature.');\n return {};\n }\n else if (typeof this.options.element === \"string\") {\n const selectedElement = document.querySelector(this.options.element);\n if (selectedElement === null) {\n Tools.Warn(`element not found '${this.options.element}' (not requesting xr-dom-overlay)`);\n return {};\n }\n this._element = selectedElement;\n }\n else {\n this._element = this.options.element;\n }\n return {\n domOverlay: {\n root: this._element,\n },\n };\n }\n}\n/**\n * The module's name\n */\nWebXRDomOverlay.Name = WebXRFeatureName.DOM_OVERLAY;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRDomOverlay.Version = 1;\n//register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRDomOverlay.Name, (xrSessionManager, options) => {\n return () => new WebXRDomOverlay(xrSessionManager, options);\n}, WebXRDomOverlay.Version, false);\n","import { WebXRFeaturesManager, WebXRFeatureName } from \"../webXRFeaturesManager.js\";\nimport { WebXRControllerComponent } from \"../motionController/webXRControllerComponent.js\";\nimport { Matrix, Quaternion, Vector3 } from \"../../Maths/math.vector.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nimport { Tools } from \"../../Misc/tools.js\";\n/**\n * This is a movement feature to be used with WebXR-enabled motion controllers.\n * When enabled and attached, the feature will allow a user to move around and rotate in the scene using\n * the input of the attached controllers.\n */\nexport class WebXRControllerMovement extends WebXRAbstractFeature {\n /**\n * Current movement direction. Will be null before XR Frames have been processed.\n */\n get movementDirection() {\n return this._movementDirection;\n }\n /**\n * Is movement enabled\n */\n get movementEnabled() {\n return this._featureContext.movementEnabled;\n }\n /**\n * Sets whether movement is enabled or not\n * @param enabled is movement enabled\n */\n set movementEnabled(enabled) {\n this._featureContext.movementEnabled = enabled;\n }\n /**\n * If movement follows viewer pose\n */\n get movementOrientationFollowsViewerPose() {\n return this._featureContext.movementOrientationFollowsViewerPose;\n }\n /**\n * Sets whether movement follows viewer pose\n * @param followsPose is movement should follow viewer pose\n */\n set movementOrientationFollowsViewerPose(followsPose) {\n this._featureContext.movementOrientationFollowsViewerPose = followsPose;\n }\n /**\n * Gets movement speed\n */\n get movementSpeed() {\n return this._featureContext.movementSpeed;\n }\n /**\n * Sets movement speed\n * @param movementSpeed movement speed\n */\n set movementSpeed(movementSpeed) {\n this._featureContext.movementSpeed = movementSpeed;\n }\n /**\n * Gets minimum threshold the controller's thumbstick/touchpad must pass before being recognized for movement (avoids jitter/unintentional movement)\n */\n get movementThreshold() {\n return this._featureContext.movementThreshold;\n }\n /**\n * Sets minimum threshold the controller's thumbstick/touchpad must pass before being recognized for movement (avoids jitter/unintentional movement)\n * @param movementThreshold new threshold\n */\n set movementThreshold(movementThreshold) {\n this._featureContext.movementThreshold = movementThreshold;\n }\n /**\n * Is rotation enabled\n */\n get rotationEnabled() {\n return this._featureContext.rotationEnabled;\n }\n /**\n * Sets whether rotation is enabled or not\n * @param enabled is rotation enabled\n */\n set rotationEnabled(enabled) {\n this._featureContext.rotationEnabled = enabled;\n }\n /**\n * Gets rotation speed factor\n */\n get rotationSpeed() {\n return this._featureContext.rotationSpeed;\n }\n /**\n * Sets rotation speed factor (1.0 is default)\n * @param rotationSpeed new rotation speed factor\n */\n set rotationSpeed(rotationSpeed) {\n this._featureContext.rotationSpeed = rotationSpeed;\n }\n /**\n * Gets minimum threshold the controller's thumbstick/touchpad must pass before being recognized for rotation (avoids jitter/unintentional rotation)\n */\n get rotationThreshold() {\n return this._featureContext.rotationThreshold;\n }\n /**\n * Sets minimum threshold the controller's thumbstick/touchpad must pass before being recognized for rotation (avoids jitter/unintentional rotation)\n * @param threshold new threshold\n */\n set rotationThreshold(threshold) {\n this._featureContext.rotationThreshold = threshold;\n }\n /**\n * constructs a new movement controller system\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param options configuration object for this feature\n */\n constructor(_xrSessionManager, options) {\n super(_xrSessionManager);\n this._controllers = {};\n this._currentRegistrationConfigurations = [];\n // forward direction for movement, which may differ from viewer pose.\n this._movementDirection = new Quaternion();\n // unused\n this._tmpRotationMatrix = Matrix.Identity();\n this._tmpTranslationDirection = new Vector3();\n this._tmpMovementTranslation = new Vector3();\n this._tempCacheQuaternion = new Quaternion();\n this._attachController = (xrController) => {\n if (this._controllers[xrController.uniqueId]) {\n // already attached\n return;\n }\n this._controllers[xrController.uniqueId] = {\n xrController,\n registeredComponents: [],\n };\n const controllerData = this._controllers[xrController.uniqueId];\n // movement controller only available to gamepad-enabled input sources.\n if (controllerData.xrController.inputSource.targetRayMode === \"tracked-pointer\" && controllerData.xrController.inputSource.gamepad) {\n // motion controller support\n const initController = () => {\n if (xrController.motionController) {\n for (const registration of this._currentRegistrationConfigurations) {\n let component = null;\n if (registration.allowedComponentTypes) {\n for (const componentType of registration.allowedComponentTypes) {\n const componentOfType = xrController.motionController.getComponentOfType(componentType);\n if (componentOfType !== null) {\n component = componentOfType;\n break;\n }\n }\n }\n if (registration.mainComponentOnly) {\n const mainComponent = xrController.motionController.getMainComponent();\n if (mainComponent === null) {\n continue;\n }\n component = mainComponent;\n }\n if (typeof registration.componentSelectionPredicate === \"function\") {\n // if does not match we do want to ignore a previously found component\n component = registration.componentSelectionPredicate(xrController);\n }\n if (component && registration.forceHandedness) {\n if (xrController.inputSource.handedness !== registration.forceHandedness) {\n continue; // do not register\n }\n }\n if (component === null) {\n continue; // do not register\n }\n const registeredComponent = {\n registrationConfiguration: registration,\n component,\n };\n controllerData.registeredComponents.push(registeredComponent);\n if (\"axisChangedHandler\" in registration) {\n registeredComponent.onAxisChangedObserver = component.onAxisValueChangedObservable.add((axesData) => {\n registration.axisChangedHandler(axesData, this._movementState, this._featureContext, this._xrInput);\n });\n }\n if (\"buttonChangedHandler\" in registration) {\n registeredComponent.onButtonChangedObserver = component.onButtonStateChangedObservable.add((component) => {\n if (component.changes.pressed) {\n registration.buttonChangedHandler(component.changes.pressed, this._movementState, this._featureContext, this._xrInput);\n }\n });\n }\n }\n }\n };\n if (xrController.motionController) {\n initController();\n }\n else {\n xrController.onMotionControllerInitObservable.addOnce(() => {\n initController();\n });\n }\n }\n };\n if (!options || options.xrInput === undefined) {\n Tools.Error('WebXRControllerMovement feature requires \"xrInput\" option.');\n return;\n }\n if (Array.isArray(options.customRegistrationConfigurations)) {\n this._currentRegistrationConfigurations = options.customRegistrationConfigurations;\n }\n else {\n this._currentRegistrationConfigurations = WebXRControllerMovement.REGISTRATIONS.default;\n }\n // synchronized from feature setter properties\n this._featureContext = {\n movementEnabled: options.movementEnabled || true,\n movementOrientationFollowsViewerPose: options.movementOrientationFollowsViewerPose ?? true,\n movementOrientationFollowsController: options.movementOrientationFollowsController ?? false,\n orientationPreferredHandedness: options.orientationPreferredHandedness,\n movementSpeed: options.movementSpeed ?? 1,\n movementThreshold: options.movementThreshold ?? 0.25,\n rotationEnabled: options.rotationEnabled ?? true,\n rotationSpeed: options.rotationSpeed ?? 1.0,\n rotationThreshold: options.rotationThreshold ?? 0.25,\n };\n this._movementState = {\n moveX: 0,\n moveY: 0,\n rotateX: 0,\n rotateY: 0,\n };\n this._xrInput = options.xrInput;\n }\n attach() {\n if (!super.attach()) {\n return false;\n }\n this._xrInput.controllers.forEach(this._attachController);\n this._addNewAttachObserver(this._xrInput.onControllerAddedObservable, this._attachController);\n this._addNewAttachObserver(this._xrInput.onControllerRemovedObservable, (controller) => {\n // REMOVE the controller\n this._detachController(controller.uniqueId);\n });\n return true;\n }\n detach() {\n if (!super.detach()) {\n return false;\n }\n Object.keys(this._controllers).forEach((controllerId) => {\n this._detachController(controllerId);\n });\n this._controllers = {};\n return true;\n }\n /**\n * Occurs on every XR frame.\n * @param _xrFrame\n */\n _onXRFrame(_xrFrame) {\n if (!this.attached) {\n return;\n }\n if (this._movementState.rotateX !== 0 && this._featureContext.rotationEnabled) {\n // smooth rotation\n const deltaMillis = this._xrSessionManager.scene.getEngine().getDeltaTime();\n const rotationY = deltaMillis * 0.001 * this._featureContext.rotationSpeed * this._movementState.rotateX * (this._xrSessionManager.scene.useRightHandedSystem ? -1 : 1);\n if (this._featureContext.movementOrientationFollowsViewerPose) {\n this._xrInput.xrCamera.cameraRotation.y += rotationY;\n Quaternion.RotationYawPitchRollToRef(rotationY, 0, 0, this._tempCacheQuaternion);\n this._xrInput.xrCamera.rotationQuaternion.multiplyToRef(this._tempCacheQuaternion, this._movementDirection);\n }\n else if (this._featureContext.movementOrientationFollowsController) {\n this._xrInput.xrCamera.cameraRotation.y += rotationY;\n // get the correct controller\n const handedness = this._featureContext.orientationPreferredHandedness || \"right\";\n const key = Object.keys(this._controllers).find((key) => this._controllers[key]?.xrController?.inputSource.handedness === handedness) || Object.keys(this._controllers)[0];\n const controller = this._controllers[key];\n Quaternion.RotationYawPitchRollToRef(rotationY, 0, 0, this._tempCacheQuaternion);\n (controller?.xrController.pointer.rotationQuaternion || Quaternion.Identity()).multiplyToRef(this._tempCacheQuaternion, this._movementDirection);\n }\n else {\n // movement orientation direction does not affect camera. We use rotation speed multiplier\n // otherwise need to implement inertia and constraints for same feel as TargetCamera.\n Quaternion.RotationYawPitchRollToRef(rotationY * 3.0, 0, 0, this._tempCacheQuaternion);\n this._movementDirection.multiplyInPlace(this._tempCacheQuaternion);\n }\n }\n else if (this._featureContext.movementOrientationFollowsViewerPose) {\n this._movementDirection.copyFrom(this._xrInput.xrCamera.rotationQuaternion);\n }\n else if (this._featureContext.movementOrientationFollowsController) {\n // get the correct controller\n const handedness = this._featureContext.orientationPreferredHandedness || \"right\";\n const key = Object.keys(this._controllers).find((key) => this._controllers[key]?.xrController.inputSource.handedness === handedness) || Object.keys(this._controllers)[0];\n const controller = this._controllers[key];\n this._movementDirection.copyFrom(controller?.xrController.pointer.rotationQuaternion || Quaternion.Identity());\n }\n if ((this._movementState.moveX || this._movementState.moveY) && this._featureContext.movementEnabled) {\n Matrix.FromQuaternionToRef(this._movementDirection, this._tmpRotationMatrix);\n this._tmpTranslationDirection.set(this._movementState.moveX, 0, this._movementState.moveY * (this._xrSessionManager.scene.useRightHandedSystem ? 1.0 : -1.0));\n // move according to forward direction based on camera speed\n Vector3.TransformCoordinatesToRef(this._tmpTranslationDirection, this._tmpRotationMatrix, this._tmpMovementTranslation);\n this._tmpMovementTranslation.scaleInPlace(this._xrInput.xrCamera._computeLocalCameraSpeed() * this._featureContext.movementSpeed);\n this._xrInput.xrCamera.cameraDirection.addInPlace(this._tmpMovementTranslation);\n }\n }\n _detachController(xrControllerUniqueId) {\n const controllerData = this._controllers[xrControllerUniqueId];\n if (!controllerData) {\n return;\n }\n for (const registeredComponent of controllerData.registeredComponents) {\n if (registeredComponent.onAxisChangedObserver) {\n registeredComponent.component.onAxisValueChangedObservable.remove(registeredComponent.onAxisChangedObserver);\n }\n if (registeredComponent.onButtonChangedObserver) {\n registeredComponent.component.onButtonStateChangedObservable.remove(registeredComponent.onButtonChangedObserver);\n }\n }\n // remove from the map\n delete this._controllers[xrControllerUniqueId];\n }\n}\n/**\n * The module's name\n */\nWebXRControllerMovement.Name = WebXRFeatureName.MOVEMENT;\n/**\n * Standard controller configurations.\n */\nWebXRControllerMovement.REGISTRATIONS = {\n default: [\n {\n allowedComponentTypes: [WebXRControllerComponent.THUMBSTICK_TYPE, WebXRControllerComponent.TOUCHPAD_TYPE],\n forceHandedness: \"left\",\n axisChangedHandler: (axes, movementState, featureContext) => {\n movementState.rotateX = Math.abs(axes.x) > featureContext.rotationThreshold ? axes.x : 0;\n movementState.rotateY = Math.abs(axes.y) > featureContext.rotationThreshold ? axes.y : 0;\n },\n },\n {\n allowedComponentTypes: [WebXRControllerComponent.THUMBSTICK_TYPE, WebXRControllerComponent.TOUCHPAD_TYPE],\n forceHandedness: \"right\",\n axisChangedHandler: (axes, movementState, featureContext) => {\n movementState.moveX = Math.abs(axes.x) > featureContext.movementThreshold ? axes.x : 0;\n movementState.moveY = Math.abs(axes.y) > featureContext.movementThreshold ? axes.y : 0;\n },\n },\n ],\n};\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the webxr specs version\n */\nWebXRControllerMovement.Version = 1;\nWebXRFeaturesManager.AddWebXRFeature(WebXRControllerMovement.Name, (xrSessionManager, options) => {\n return () => new WebXRControllerMovement(xrSessionManager, options);\n}, WebXRControllerMovement.Version, true);\n","import { WebGLHardwareTexture } from \"../../Engines/WebGL/webGLHardwareTexture.js\";\nimport { InternalTexture } from \"../../Materials/Textures/internalTexture.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { Tools } from \"../../Misc/tools.js\";\nimport { WebXRFeatureName, WebXRFeaturesManager } from \"../webXRFeaturesManager.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\n\nimport { Color3 } from \"../../Maths/math.color.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { DirectionalLight } from \"../../Lights/directionalLight.js\";\nimport { BaseTexture } from \"../../Materials/Textures/baseTexture.js\";\nimport { SphericalHarmonics, SphericalPolynomial } from \"../../Maths/sphericalPolynomial.js\";\nimport { LightConstants } from \"../../Lights/lightConstants.js\";\nimport { HDRFiltering } from \"../../Materials/Textures/Filtering/hdrFiltering.js\";\n/**\n * Light Estimation Feature\n *\n * @since 5.0.0\n */\nexport class WebXRLightEstimation extends WebXRAbstractFeature {\n /**\n * Creates a new instance of the light estimation feature\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param options options to use when constructing this feature\n */\n constructor(_xrSessionManager, \n /**\n * options to use when constructing this feature\n */\n options) {\n super(_xrSessionManager);\n this.options = options;\n this._canvasContext = null;\n this._reflectionCubeMap = null;\n this._xrLightEstimate = null;\n this._xrLightProbe = null;\n this._xrWebGLBinding = null;\n this._lightDirection = Vector3.Up().negateInPlace();\n this._lightColor = Color3.White();\n this._intensity = 1;\n this._sphericalHarmonics = new SphericalHarmonics();\n this._cubeMapPollTime = Date.now();\n this._lightEstimationPollTime = Date.now();\n /**\n * ARCore's reflection cube map size is 16x16.\n * Once other systems support this feature we will need to change this to be dynamic.\n * see https://github.com/immersive-web/lighting-estimation/blob/main/lighting-estimation-explainer.md#cube-map-open-questions\n */\n this._reflectionCubeMapTextureSize = 16;\n /**\n * If createDirectionalLightSource is set to true this light source will be created automatically.\n * Otherwise this can be set with an external directional light source.\n * This light will be updated whenever the light estimation values change.\n */\n this.directionalLight = null;\n /**\n * This observable will notify when the reflection cube map is updated.\n */\n this.onReflectionCubeMapUpdatedObservable = new Observable();\n /**\n * Event Listener for \"reflectionchange\" events.\n */\n this._updateReflectionCubeMap = () => {\n if (!this._xrLightProbe) {\n return;\n }\n // check poll time, do not update if it has not been long enough\n if (this.options.cubeMapPollInterval) {\n const now = Date.now();\n if (now - this._cubeMapPollTime < this.options.cubeMapPollInterval) {\n return;\n }\n this._cubeMapPollTime = now;\n }\n const lp = this._getXRGLBinding().getReflectionCubeMap(this._xrLightProbe);\n if (lp && this._reflectionCubeMap) {\n if (!this._reflectionCubeMap._texture) {\n const internalTexture = new InternalTexture(this._xrSessionManager.scene.getEngine(), 0 /* InternalTextureSource.Unknown */);\n internalTexture.isCube = true;\n internalTexture.invertY = false;\n internalTexture._useSRGBBuffer = this.options.reflectionFormat === \"srgba8\";\n internalTexture.format = 5;\n internalTexture.generateMipMaps = true;\n internalTexture.type = this.options.reflectionFormat !== \"srgba8\" ? 2 : 0;\n internalTexture.samplingMode = 3;\n internalTexture.width = this._reflectionCubeMapTextureSize;\n internalTexture.height = this._reflectionCubeMapTextureSize;\n internalTexture._cachedWrapU = 1;\n internalTexture._cachedWrapV = 1;\n internalTexture._hardwareTexture = new WebGLHardwareTexture(lp, this._getCanvasContext());\n this._reflectionCubeMap._texture = internalTexture;\n }\n else {\n this._reflectionCubeMap._texture._hardwareTexture?.set(lp);\n this._reflectionCubeMap._texture.getEngine().resetTextureCache();\n }\n this._reflectionCubeMap._texture.isReady = true;\n if (!this.options.disablePreFiltering) {\n this._xrLightProbe.removeEventListener(\"reflectionchange\", this._updateReflectionCubeMap);\n this._hdrFilter.prefilter(this._reflectionCubeMap).then(() => {\n this._xrSessionManager.scene.markAllMaterialsAsDirty(1);\n this.onReflectionCubeMapUpdatedObservable.notifyObservers(this._reflectionCubeMap);\n this._xrLightProbe.addEventListener(\"reflectionchange\", this._updateReflectionCubeMap);\n });\n }\n else {\n this._xrSessionManager.scene.markAllMaterialsAsDirty(1);\n this.onReflectionCubeMapUpdatedObservable.notifyObservers(this._reflectionCubeMap);\n }\n }\n };\n this.xrNativeFeatureName = \"light-estimation\";\n if (this.options.createDirectionalLightSource) {\n this.directionalLight = new DirectionalLight(\"light estimation directional\", this._lightDirection, this._xrSessionManager.scene);\n this.directionalLight.position = new Vector3(0, 8, 0);\n // intensity will be set later\n this.directionalLight.intensity = 0;\n this.directionalLight.falloffType = LightConstants.FALLOFF_GLTF;\n }\n this._hdrFilter = new HDRFiltering(this._xrSessionManager.scene.getEngine());\n // https://immersive-web.github.io/lighting-estimation/\n Tools.Warn(\"light-estimation is an experimental and unstable feature.\");\n }\n /**\n * While the estimated cube map is expected to update over time to better reflect the user's environment as they move around those changes are unlikely to happen with every XRFrame.\n * Since creating and processing the cube map is potentially expensive, especially if mip maps are needed, you can listen to the onReflectionCubeMapUpdatedObservable to determine\n * when it has been updated.\n */\n get reflectionCubeMapTexture() {\n return this._reflectionCubeMap;\n }\n /**\n * The most recent light estimate. Available starting on the first frame where the device provides a light probe.\n */\n get xrLightingEstimate() {\n if (this._xrLightEstimate) {\n return {\n lightColor: this._lightColor,\n lightDirection: this._lightDirection,\n lightIntensity: this._intensity,\n sphericalHarmonics: this._sphericalHarmonics,\n };\n }\n return this._xrLightEstimate;\n }\n _getCanvasContext() {\n if (this._canvasContext === null) {\n this._canvasContext = this._xrSessionManager.scene.getEngine()._gl;\n }\n return this._canvasContext;\n }\n _getXRGLBinding() {\n if (this._xrWebGLBinding === null) {\n const context = this._getCanvasContext();\n this._xrWebGLBinding = new XRWebGLBinding(this._xrSessionManager.session, context);\n }\n return this._xrWebGLBinding;\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach()) {\n return false;\n }\n const reflectionFormat = this.options.reflectionFormat ?? (this._xrSessionManager.session.preferredReflectionFormat || \"srgba8\");\n this.options.reflectionFormat = reflectionFormat;\n this._xrSessionManager.session\n .requestLightProbe({\n reflectionFormat,\n })\n .then((xrLightProbe) => {\n this._xrLightProbe = xrLightProbe;\n if (!this.options.disableCubeMapReflection) {\n if (!this._reflectionCubeMap) {\n this._reflectionCubeMap = new BaseTexture(this._xrSessionManager.scene);\n this._reflectionCubeMap._isCube = true;\n this._reflectionCubeMap.coordinatesMode = 3;\n if (this.options.setSceneEnvironmentTexture) {\n this._xrSessionManager.scene.environmentTexture = this._reflectionCubeMap;\n }\n }\n this._xrLightProbe.addEventListener(\"reflectionchange\", this._updateReflectionCubeMap);\n }\n });\n return true;\n }\n /**\n * detach this feature.\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n detach() {\n const detached = super.detach();\n if (this._xrLightProbe !== null && !this.options.disableCubeMapReflection) {\n this._xrLightProbe.removeEventListener(\"reflectionchange\", this._updateReflectionCubeMap);\n this._xrLightProbe = null;\n }\n this._canvasContext = null;\n this._xrLightEstimate = null;\n // When the session ends (on detach) we must clear our XRWebGLBinging instance, which references the ended session.\n this._xrWebGLBinding = null;\n return detached;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose();\n this.onReflectionCubeMapUpdatedObservable.clear();\n if (this.directionalLight) {\n this.directionalLight.dispose();\n this.directionalLight = null;\n }\n if (this._reflectionCubeMap !== null) {\n if (this._reflectionCubeMap._texture) {\n this._reflectionCubeMap._texture.dispose();\n }\n this._reflectionCubeMap.dispose();\n this._reflectionCubeMap = null;\n }\n }\n _onXRFrame(_xrFrame) {\n if (this._xrLightProbe !== null) {\n if (this.options.lightEstimationPollInterval) {\n const now = Date.now();\n if (now - this._lightEstimationPollTime < this.options.lightEstimationPollInterval) {\n return;\n }\n this._lightEstimationPollTime = now;\n }\n this._xrLightEstimate = _xrFrame.getLightEstimate(this._xrLightProbe);\n if (this._xrLightEstimate) {\n this._intensity = Math.max(1.0, this._xrLightEstimate.primaryLightIntensity.x, this._xrLightEstimate.primaryLightIntensity.y, this._xrLightEstimate.primaryLightIntensity.z);\n const rhsFactor = this._xrSessionManager.scene.useRightHandedSystem ? 1.0 : -1.0;\n // recreate the vector caches, so that the last one provided to the user will persist\n if (this.options.disableVectorReuse) {\n this._lightDirection = new Vector3();\n this._lightColor = new Color3();\n if (this.directionalLight) {\n this.directionalLight.direction = this._lightDirection;\n this.directionalLight.diffuse = this._lightColor;\n }\n }\n this._lightDirection.copyFromFloats(this._xrLightEstimate.primaryLightDirection.x, this._xrLightEstimate.primaryLightDirection.y, this._xrLightEstimate.primaryLightDirection.z * rhsFactor);\n this._lightColor.copyFromFloats(this._xrLightEstimate.primaryLightIntensity.x / this._intensity, this._xrLightEstimate.primaryLightIntensity.y / this._intensity, this._xrLightEstimate.primaryLightIntensity.z / this._intensity);\n this._sphericalHarmonics.updateFromFloatsArray(this._xrLightEstimate.sphericalHarmonicsCoefficients);\n if (this._reflectionCubeMap && !this.options.disableSphericalPolynomial) {\n this._reflectionCubeMap.sphericalPolynomial = this._reflectionCubeMap.sphericalPolynomial || new SphericalPolynomial();\n this._reflectionCubeMap.sphericalPolynomial?.updateFromHarmonics(this._sphericalHarmonics);\n }\n // direction from instead of direction to\n this._lightDirection.negateInPlace();\n // set the values after calculating them\n if (this.directionalLight) {\n this.directionalLight.direction.copyFrom(this._lightDirection);\n this.directionalLight.intensity = Math.min(this._intensity, 1.0);\n this.directionalLight.diffuse.copyFrom(this._lightColor);\n }\n }\n }\n }\n}\n/**\n * The module's name\n */\nWebXRLightEstimation.Name = WebXRFeatureName.LIGHT_ESTIMATION;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRLightEstimation.Version = 1;\n// register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRLightEstimation.Name, (xrSessionManager, options) => {\n return () => new WebXRLightEstimation(xrSessionManager, options);\n}, WebXRLightEstimation.Version, false);\n","import { WebXRFeaturesManager, WebXRFeatureName } from \"../webXRFeaturesManager.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { Vector3, TmpVectors } from \"../../Maths/math.vector.js\";\nimport { Ray } from \"../../Culling/ray.js\";\n/**\n * The WebXR Eye Tracking feature grabs eye data from the device and provides it in an easy-access format.\n * Currently only enabled for BabylonNative applications.\n */\nexport class WebXREyeTracking extends WebXRAbstractFeature {\n /**\n * Creates a new instance of the XR eye tracking feature.\n * @param _xrSessionManager An instance of WebXRSessionManager.\n */\n constructor(_xrSessionManager) {\n super(_xrSessionManager);\n /**\n * This observable will notify registered observers when eye tracking starts\n */\n this.onEyeTrackingStartedObservable = new Observable();\n /**\n * This observable will notify registered observers when eye tracking ends\n */\n this.onEyeTrackingEndedObservable = new Observable();\n /**\n * This observable will notify registered observers on each frame that has valid tracking\n */\n this.onEyeTrackingFrameUpdateObservable = new Observable();\n this._eyeTrackingStartListener = (event) => {\n this._latestEyeSpace = event.gazeSpace;\n this._gazeRay = new Ray(Vector3.Zero(), Vector3.Forward());\n this.onEyeTrackingStartedObservable.notifyObservers(this._gazeRay);\n };\n this._eyeTrackingEndListener = () => {\n this._latestEyeSpace = null;\n this._gazeRay = null;\n this.onEyeTrackingEndedObservable.notifyObservers();\n };\n this.xrNativeFeatureName = \"eye-tracking\";\n if (this._xrSessionManager.session) {\n this._init();\n }\n else {\n this._xrSessionManager.onXRSessionInit.addOnce(() => {\n this._init();\n });\n }\n }\n /**\n * Dispose this feature and all of the resources attached.\n */\n dispose() {\n super.dispose();\n this._xrSessionManager.session.removeEventListener(\"eyetrackingstart\", this._eyeTrackingStartListener);\n this._xrSessionManager.session.removeEventListener(\"eyetrackingend\", this._eyeTrackingEndListener);\n this.onEyeTrackingStartedObservable.clear();\n this.onEyeTrackingEndedObservable.clear();\n this.onEyeTrackingFrameUpdateObservable.clear();\n }\n /**\n * Returns whether the gaze data is valid or not\n * @returns true if the data is valid\n */\n get isEyeGazeValid() {\n return !!this._gazeRay;\n }\n /**\n * Get a reference to the gaze ray. This data is valid while eye tracking persists, and will be set to null when gaze data is no longer available\n * @returns a reference to the gaze ray if it exists and is valid, returns null otherwise.\n */\n getEyeGaze() {\n return this._gazeRay;\n }\n _onXRFrame(frame) {\n if (!this.attached || !frame) {\n return;\n }\n if (this._latestEyeSpace && this._gazeRay) {\n const pose = frame.getPose(this._latestEyeSpace, this._xrSessionManager.referenceSpace);\n if (pose) {\n this._gazeRay.origin.set(pose.transform.position.x, pose.transform.position.y, pose.transform.position.z).scaleInPlace(this._xrSessionManager.worldScalingFactor);\n const quat = pose.transform.orientation;\n TmpVectors.Quaternion[0].set(quat.x, quat.y, quat.z, quat.w);\n if (!this._xrSessionManager.scene.useRightHandedSystem) {\n this._gazeRay.origin.z *= -1;\n TmpVectors.Quaternion[0].z *= -1;\n TmpVectors.Quaternion[0].w *= -1;\n Vector3.LeftHandedForwardReadOnly.rotateByQuaternionToRef(TmpVectors.Quaternion[0], this._gazeRay.direction);\n }\n else {\n Vector3.RightHandedForwardReadOnly.rotateByQuaternionToRef(TmpVectors.Quaternion[0], this._gazeRay.direction);\n }\n this.onEyeTrackingFrameUpdateObservable.notifyObservers(this._gazeRay);\n }\n }\n }\n _init() {\n // Only supported by BabylonNative\n if (this._xrSessionManager.isNative) {\n this._xrSessionManager.session.addEventListener(\"eyetrackingstart\", this._eyeTrackingStartListener);\n this._xrSessionManager.session.addEventListener(\"eyetrackingend\", this._eyeTrackingEndListener);\n }\n }\n}\n/**\n * The module's name\n */\nWebXREyeTracking.Name = WebXRFeatureName.EYE_TRACKING;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXREyeTracking.Version = 1;\nWebXRFeaturesManager.AddWebXRFeature(WebXREyeTracking.Name, (xrSessionManager) => {\n return () => new WebXREyeTracking(xrSessionManager);\n}, WebXREyeTracking.Version, false);\n","import { TmpVectors, Vector2, Vector3 } from \"../../Maths/math.vector.js\";\nimport { Logger } from \"../../Misc/logger.js\";\nimport { Observable } from \"../../Misc/observable.js\";\nimport { WebXRFeatureName, WebXRFeaturesManager } from \"../webXRFeaturesManager.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nclass CircleBuffer {\n constructor(numSamples, initializer) {\n this._samples = [];\n this._idx = 0;\n for (let idx = 0; idx < numSamples; ++idx) {\n this._samples.push(initializer ? initializer() : Vector2.Zero());\n }\n }\n get length() {\n return this._samples.length;\n }\n push(x, y) {\n this._idx = (this._idx + this._samples.length - 1) % this._samples.length;\n this.at(0).copyFromFloats(x, y);\n }\n at(idx) {\n if (idx >= this._samples.length) {\n throw new Error(\"Index out of bounds\");\n }\n return this._samples[(this._idx + idx) % this._samples.length];\n }\n}\nclass FirstStepDetector {\n constructor() {\n this._samples = new CircleBuffer(20);\n this._entropy = 0;\n this.onFirstStepDetected = new Observable();\n }\n update(posX, posY, forwardX, forwardY) {\n this._samples.push(posX, posY);\n const origin = this._samples.at(0);\n this._entropy *= this._entropyDecayFactor;\n this._entropy += Vector2.Distance(origin, this._samples.at(1));\n if (this._entropy > this._entropyThreshold) {\n return;\n }\n let samePointIdx;\n for (samePointIdx = this._samePointCheckStartIdx; samePointIdx < this._samples.length; ++samePointIdx) {\n if (Vector2.DistanceSquared(origin, this._samples.at(samePointIdx)) < this._samePointSquaredDistanceThreshold) {\n break;\n }\n }\n if (samePointIdx === this._samples.length) {\n return;\n }\n let apexDistSquared = -1;\n let apexIdx = 0;\n for (let distSquared, idx = 1; idx < samePointIdx; ++idx) {\n distSquared = Vector2.DistanceSquared(origin, this._samples.at(idx));\n if (distSquared > apexDistSquared) {\n apexIdx = idx;\n apexDistSquared = distSquared;\n }\n }\n if (apexDistSquared < this._apexSquaredDistanceThreshold) {\n return;\n }\n const apex = this._samples.at(apexIdx);\n const axis = apex.subtract(origin);\n axis.normalize();\n const vec = TmpVectors.Vector2[0];\n let dot;\n let sample;\n let sumSquaredProjectionDistances = 0;\n for (let idx = 1; idx < samePointIdx; ++idx) {\n sample = this._samples.at(idx);\n sample.subtractToRef(origin, vec);\n dot = Vector2.Dot(axis, vec);\n sumSquaredProjectionDistances += vec.lengthSquared() - dot * dot;\n }\n if (sumSquaredProjectionDistances > samePointIdx * this._squaredProjectionDistanceThreshold) {\n return;\n }\n const forwardVec = TmpVectors.Vector3[0];\n forwardVec.set(forwardX, forwardY, 0);\n const axisVec = TmpVectors.Vector3[1];\n axisVec.set(axis.x, axis.y, 0);\n const isApexLeft = Vector3.Cross(forwardVec, axisVec).z > 0;\n const leftApex = origin.clone();\n const rightApex = origin.clone();\n apex.subtractToRef(origin, axis);\n if (isApexLeft) {\n axis.scaleAndAddToRef(this._axisToApexShrinkFactor, leftApex);\n axis.scaleAndAddToRef(this._axisToApexExtendFactor, rightApex);\n }\n else {\n axis.scaleAndAddToRef(this._axisToApexExtendFactor, leftApex);\n axis.scaleAndAddToRef(this._axisToApexShrinkFactor, rightApex);\n }\n this.onFirstStepDetected.notifyObservers({\n leftApex: leftApex,\n rightApex: rightApex,\n currentPosition: origin,\n currentStepDirection: isApexLeft ? \"right\" : \"left\",\n });\n }\n reset() {\n for (let idx = 0; idx < this._samples.length; ++idx) {\n this._samples.at(idx).copyFromFloats(0, 0);\n }\n }\n get _samePointCheckStartIdx() {\n return Math.floor(this._samples.length / 3);\n }\n get _samePointSquaredDistanceThreshold() {\n return 0.03 * 0.03;\n }\n get _apexSquaredDistanceThreshold() {\n return 0.09 * 0.09;\n }\n get _squaredProjectionDistanceThreshold() {\n return 0.03 * 0.03;\n }\n get _axisToApexShrinkFactor() {\n return 0.8;\n }\n get _axisToApexExtendFactor() {\n return -1.6;\n }\n get _entropyDecayFactor() {\n return 0.93;\n }\n get _entropyThreshold() {\n return 0.4;\n }\n}\nclass WalkingTracker {\n constructor(leftApex, rightApex, currentPosition, currentStepDirection) {\n this._leftApex = new Vector2();\n this._rightApex = new Vector2();\n this._currentPosition = new Vector2();\n this._axis = new Vector2();\n this._axisLength = -1;\n this._forward = new Vector2();\n this._steppingLeft = false;\n this._t = -1;\n this._maxT = -1;\n this._maxTPosition = new Vector2();\n this._vitality = 0;\n this.onMovement = new Observable();\n this.onFootfall = new Observable();\n this._reset(leftApex, rightApex, currentPosition, currentStepDirection === \"left\");\n }\n _reset(leftApex, rightApex, currentPosition, steppingLeft) {\n this._leftApex.copyFrom(leftApex);\n this._rightApex.copyFrom(rightApex);\n this._steppingLeft = steppingLeft;\n if (this._steppingLeft) {\n this._leftApex.subtractToRef(this._rightApex, this._axis);\n this._forward.copyFromFloats(-this._axis.y, this._axis.x);\n }\n else {\n this._rightApex.subtractToRef(this._leftApex, this._axis);\n this._forward.copyFromFloats(this._axis.y, -this._axis.x);\n }\n this._axisLength = this._axis.length();\n this._forward.scaleInPlace(1 / this._axisLength);\n this._updateTAndVitality(currentPosition.x, currentPosition.y);\n this._maxT = this._t;\n this._maxTPosition.copyFrom(currentPosition);\n this._vitality = 1;\n }\n _updateTAndVitality(x, y) {\n this._currentPosition.copyFromFloats(x, y);\n if (this._steppingLeft) {\n this._currentPosition.subtractInPlace(this._rightApex);\n }\n else {\n this._currentPosition.subtractInPlace(this._leftApex);\n }\n const priorT = this._t;\n const dot = Vector2.Dot(this._currentPosition, this._axis);\n this._t = dot / (this._axisLength * this._axisLength);\n const projDistSquared = this._currentPosition.lengthSquared() - (dot / this._axisLength) * (dot / this._axisLength);\n // TODO: Extricate the magic.\n this._vitality *= 0.92 - 100 * Math.max(projDistSquared - 0.0016, 0) + Math.max(this._t - priorT, 0);\n }\n update(x, y) {\n if (this._vitality < this._vitalityThreshold) {\n return false;\n }\n const priorT = this._t;\n this._updateTAndVitality(x, y);\n if (this._t > this._maxT) {\n this._maxT = this._t;\n this._maxTPosition.copyFromFloats(x, y);\n }\n if (this._vitality < this._vitalityThreshold) {\n return false;\n }\n if (this._t > priorT) {\n this.onMovement.notifyObservers({ deltaT: this._t - priorT });\n if (priorT < 0.5 && this._t >= 0.5) {\n this.onFootfall.notifyObservers({ foot: this._steppingLeft ? \"left\" : \"right\" });\n }\n }\n if (this._t < 0.95 * this._maxT) {\n this._currentPosition.copyFromFloats(x, y);\n if (this._steppingLeft) {\n this._leftApex.copyFrom(this._maxTPosition);\n }\n else {\n this._rightApex.copyFrom(this._maxTPosition);\n }\n this._reset(this._leftApex, this._rightApex, this._currentPosition, !this._steppingLeft);\n }\n if (this._axisLength < 0.03) {\n return false;\n }\n return true;\n }\n get _vitalityThreshold() {\n return 0.1;\n }\n get forward() {\n return this._forward;\n }\n}\nclass Walker {\n static get _MillisecondsPerUpdate() {\n // 15 FPS\n return 1000 / 15;\n }\n constructor(engine) {\n this._detector = new FirstStepDetector();\n this._walker = null;\n this._movement = new Vector2();\n this._millisecondsSinceLastUpdate = Walker._MillisecondsPerUpdate;\n this.movementThisFrame = Vector3.Zero();\n this._engine = engine;\n this._detector.onFirstStepDetected.add((event) => {\n if (!this._walker) {\n this._walker = new WalkingTracker(event.leftApex, event.rightApex, event.currentPosition, event.currentStepDirection);\n this._walker.onFootfall.add(() => {\n Logger.Log(\"Footfall!\");\n });\n this._walker.onMovement.add((event) => {\n this._walker.forward.scaleAndAddToRef(0.024 * event.deltaT, this._movement);\n });\n }\n });\n }\n update(position, forward) {\n forward.y = 0;\n forward.normalize();\n // Enforce reduced framerate\n this._millisecondsSinceLastUpdate += this._engine.getDeltaTime();\n if (this._millisecondsSinceLastUpdate >= Walker._MillisecondsPerUpdate) {\n this._millisecondsSinceLastUpdate -= Walker._MillisecondsPerUpdate;\n this._detector.update(position.x, position.z, forward.x, forward.z);\n if (this._walker) {\n const updated = this._walker.update(position.x, position.z);\n if (!updated) {\n this._walker = null;\n }\n }\n this._movement.scaleInPlace(0.85);\n }\n this.movementThisFrame.set(this._movement.x, 0, this._movement.y);\n }\n}\n/**\n * A module that will enable VR locomotion by detecting when the user walks in place.\n */\nexport class WebXRWalkingLocomotion extends WebXRAbstractFeature {\n /**\n * The module's name.\n */\n static get Name() {\n return WebXRFeatureName.WALKING_LOCOMOTION;\n }\n /**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number has no external basis.\n */\n static get Version() {\n return 1;\n }\n /**\n * The target to be articulated by walking locomotion.\n * When the walking locomotion feature detects walking in place, this element's\n * X and Z coordinates will be modified to reflect locomotion. This target should\n * be either the XR space's origin (i.e., the parent node of the WebXRCamera) or\n * the WebXRCamera itself. Note that the WebXRCamera path will modify the position\n * of the WebXRCamera directly and is thus discouraged.\n */\n get locomotionTarget() {\n return this._locomotionTarget;\n }\n /**\n * The target to be articulated by walking locomotion.\n * When the walking locomotion feature detects walking in place, this element's\n * X and Z coordinates will be modified to reflect locomotion. This target should\n * be either the XR space's origin (i.e., the parent node of the WebXRCamera) or\n * the WebXRCamera itself. Note that the WebXRCamera path will modify the position\n * of the WebXRCamera directly and is thus discouraged.\n */\n set locomotionTarget(locomotionTarget) {\n this._locomotionTarget = locomotionTarget;\n this._isLocomotionTargetWebXRCamera = this._locomotionTarget.getClassName() === \"WebXRCamera\";\n }\n /**\n * Construct a new Walking Locomotion feature.\n * @param sessionManager manager for the current XR session\n * @param options creation options, prominently including the vector target for locomotion\n */\n constructor(sessionManager, options) {\n super(sessionManager);\n this._up = new Vector3();\n this._forward = new Vector3();\n this._position = new Vector3();\n this._movement = new Vector3();\n this._sessionManager = sessionManager;\n this.locomotionTarget = options.locomotionTarget;\n if (this._isLocomotionTargetWebXRCamera) {\n Logger.Warn(\"Using walking locomotion directly on a WebXRCamera may have unintended interactions with other XR techniques. Using an XR space parent is highly recommended\");\n }\n }\n /**\n * Checks whether this feature is compatible with the current WebXR session.\n * Walking locomotion is only compatible with \"immersive-vr\" sessions.\n * @returns true if compatible, false otherwise\n */\n isCompatible() {\n return this._sessionManager.sessionMode === undefined || this._sessionManager.sessionMode === \"immersive-vr\";\n }\n /**\n * Attaches the feature.\n * Typically called automatically by the features manager.\n * @returns true if attach succeeded, false otherwise\n */\n attach() {\n if (!this.isCompatible || !super.attach()) {\n return false;\n }\n this._walker = new Walker(this._sessionManager.scene.getEngine());\n return true;\n }\n /**\n * Detaches the feature.\n * Typically called automatically by the features manager.\n * @returns true if detach succeeded, false otherwise\n */\n detach() {\n if (!super.detach()) {\n return false;\n }\n this._walker = null;\n return true;\n }\n _onXRFrame(frame) {\n const pose = frame.getViewerPose(this._sessionManager.baseReferenceSpace);\n if (!pose) {\n return;\n }\n const handednessScalar = this.locomotionTarget.getScene().useRightHandedSystem ? 1 : -1;\n const m = pose.transform.matrix;\n this._up.copyFromFloats(m[4], m[5], handednessScalar * m[6]);\n this._forward.copyFromFloats(m[8], m[9], handednessScalar * m[10]);\n this._position.copyFromFloats(m[12], m[13], handednessScalar * m[14]);\n // Compute the nape position\n this._forward.scaleAndAddToRef(0.05, this._position);\n this._up.scaleAndAddToRef(-0.05, this._position);\n this._walker.update(this._position, this._forward);\n this._movement.copyFrom(this._walker.movementThisFrame);\n if (!this._isLocomotionTargetWebXRCamera) {\n Vector3.TransformNormalToRef(this._movement, this.locomotionTarget.getWorldMatrix(), this._movement);\n }\n this.locomotionTarget.position.addInPlace(this._movement);\n }\n}\n//register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRWalkingLocomotion.Name, (xrSessionManager, options) => {\n return () => new WebXRWalkingLocomotion(xrSessionManager, options);\n}, WebXRWalkingLocomotion.Version, false);\n","import { Observable } from \"../../../Misc/observable.js\";\nimport { WebXRLayerWrapper } from \"../../webXRLayerWrapper.js\";\nimport { WebXRLayerRenderTargetTextureProvider } from \"../../webXRRenderTargetTextureProvider.js\";\n/**\n * Wraps xr composition layers.\n * @internal\n */\nexport class WebXRCompositionLayerWrapper extends WebXRLayerWrapper {\n constructor(getWidth, getHeight, layer, layerType, isMultiview, createRTTProvider, _originalInternalTexture = null) {\n super(getWidth, getHeight, layer, layerType, createRTTProvider);\n this.getWidth = getWidth;\n this.getHeight = getHeight;\n this.layer = layer;\n this.layerType = layerType;\n this.isMultiview = isMultiview;\n this.createRTTProvider = createRTTProvider;\n this._originalInternalTexture = _originalInternalTexture;\n }\n}\n/**\n * Provides render target textures and other important rendering information for a given XRCompositionLayer.\n * @internal\n */\nexport class WebXRCompositionLayerRenderTargetTextureProvider extends WebXRLayerRenderTargetTextureProvider {\n constructor(_xrSessionManager, _xrWebGLBinding, layerWrapper) {\n super(_xrSessionManager.scene, layerWrapper);\n this._xrSessionManager = _xrSessionManager;\n this._xrWebGLBinding = _xrWebGLBinding;\n this.layerWrapper = layerWrapper;\n this._lastSubImages = new Map();\n /**\n * Fires every time a new render target texture is created (either for eye, for view, or for the entire frame)\n */\n this.onRenderTargetTextureCreatedObservable = new Observable();\n this._compositionLayer = layerWrapper.layer;\n }\n _getRenderTargetForSubImage(subImage, eye = \"none\") {\n const lastSubImage = this._lastSubImages.get(eye);\n const eyeIndex = eye == \"right\" ? 1 : 0;\n const colorTextureWidth = subImage.colorTextureWidth ?? subImage.textureWidth;\n const colorTextureHeight = subImage.colorTextureHeight ?? subImage.textureHeight;\n if (!this._renderTargetTextures[eyeIndex] || lastSubImage?.textureWidth !== colorTextureWidth || lastSubImage?.textureHeight !== colorTextureHeight) {\n let depthStencilTexture;\n const depthStencilTextureWidth = subImage.depthStencilTextureWidth ?? colorTextureWidth;\n const depthStencilTextureHeight = subImage.depthStencilTextureHeight ?? colorTextureHeight;\n if (colorTextureWidth === depthStencilTextureWidth || colorTextureHeight === depthStencilTextureHeight) {\n depthStencilTexture = subImage.depthStencilTexture;\n }\n this._renderTargetTextures[eyeIndex] = this._createRenderTargetTexture(colorTextureWidth, colorTextureHeight, null, subImage.colorTexture, depthStencilTexture, this.layerWrapper.isMultiview);\n this._framebufferDimensions = {\n framebufferWidth: colorTextureWidth,\n framebufferHeight: colorTextureHeight,\n };\n this.onRenderTargetTextureCreatedObservable.notifyObservers({ texture: this._renderTargetTextures[eyeIndex], eye });\n }\n this._lastSubImages.set(eye, subImage);\n return this._renderTargetTextures[eyeIndex];\n }\n _getSubImageForEye(eye) {\n const currentFrame = this._xrSessionManager.currentFrame;\n if (currentFrame) {\n return this._xrWebGLBinding.getSubImage(this._compositionLayer, currentFrame, eye);\n }\n return null;\n }\n getRenderTargetTextureForEye(eye) {\n const subImage = this._getSubImageForEye(eye);\n if (subImage) {\n return this._getRenderTargetForSubImage(subImage, eye);\n }\n return null;\n }\n getRenderTargetTextureForView(view) {\n return this.getRenderTargetTextureForEye(view?.eye);\n }\n _setViewportForSubImage(viewport, subImage) {\n const textureWidth = subImage.colorTextureWidth ?? subImage.textureWidth;\n const textureHeight = subImage.colorTextureHeight ?? subImage.textureHeight;\n const xrViewport = subImage.viewport;\n viewport.x = xrViewport.x / textureWidth;\n viewport.y = xrViewport.y / textureHeight;\n viewport.width = xrViewport.width / textureWidth;\n viewport.height = xrViewport.height / textureHeight;\n }\n trySetViewportForView(viewport, view) {\n const subImage = this._lastSubImages.get(view.eye) || this._getSubImageForEye(view.eye);\n if (subImage) {\n this._setViewportForSubImage(viewport, subImage);\n return true;\n }\n return false;\n }\n}\n","import { WebXRCompositionLayerRenderTargetTextureProvider, WebXRCompositionLayerWrapper } from \"./WebXRCompositionLayer.js\";\n/**\n * Wraps xr projection layers.\n * @internal\n */\nexport class WebXRProjectionLayerWrapper extends WebXRCompositionLayerWrapper {\n constructor(layer, isMultiview, xrGLBinding) {\n super(() => layer.textureWidth, () => layer.textureHeight, layer, \"XRProjectionLayer\", isMultiview, (sessionManager) => new WebXRProjectionLayerRenderTargetTextureProvider(sessionManager, xrGLBinding, this));\n this.layer = layer;\n }\n}\n/**\n * Provides render target textures and other important rendering information for a given XRProjectionLayer.\n * @internal\n */\nclass WebXRProjectionLayerRenderTargetTextureProvider extends WebXRCompositionLayerRenderTargetTextureProvider {\n constructor(_xrSessionManager, _xrWebGLBinding, layerWrapper) {\n super(_xrSessionManager, _xrWebGLBinding, layerWrapper);\n this.layerWrapper = layerWrapper;\n this._projectionLayer = layerWrapper.layer;\n }\n _getSubImageForView(view) {\n return this._xrWebGLBinding.getViewSubImage(this._projectionLayer, view);\n }\n getRenderTargetTextureForView(view) {\n return this._getRenderTargetForSubImage(this._getSubImageForView(view), view.eye);\n }\n getRenderTargetTextureForEye(eye) {\n const lastSubImage = this._lastSubImages.get(eye);\n if (lastSubImage) {\n return this._getRenderTargetForSubImage(lastSubImage, eye);\n }\n return null;\n }\n trySetViewportForView(viewport, view) {\n const subImage = this._lastSubImages.get(view.eye) || this._getSubImageForView(view);\n if (subImage) {\n this._setViewportForSubImage(viewport, subImage);\n return true;\n }\n return false;\n }\n}\nexport const defaultXRProjectionLayerInit = {\n textureType: \"texture\",\n colorFormat: 0x1908 /* WebGLRenderingContext.RGBA */,\n depthFormat: 0x88f0 /* WebGLRenderingContext.DEPTH24_STENCIL8 */,\n scaleFactor: 1.0,\n clearOnAccess: false,\n};\n","import { WebXRFeatureName, WebXRFeaturesManager } from \"../webXRFeaturesManager.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nimport { WebXRWebGLLayerWrapper } from \"../webXRWebGLLayer.js\";\nimport { WebXRProjectionLayerWrapper, defaultXRProjectionLayerInit } from \"./Layers/WebXRProjectionLayer.js\";\nimport { WebXRCompositionLayerRenderTargetTextureProvider, WebXRCompositionLayerWrapper } from \"./Layers/WebXRCompositionLayer.js\";\nimport { Color4 } from \"../../Maths/math.color.js\";\nconst defaultXRWebGLLayerInit = {};\n/**\n * Exposes the WebXR Layers API.\n */\nexport class WebXRLayers extends WebXRAbstractFeature {\n constructor(_xrSessionManager, _options = {}) {\n super(_xrSessionManager);\n this._options = _options;\n /**\n * Already-created layers\n */\n this._existingLayers = [];\n this._isMultiviewEnabled = false;\n this._projectionLayerInitialized = false;\n this._compositionLayerTextureMapping = new WeakMap();\n this._layerToRTTProviderMapping = new WeakMap();\n this.xrNativeFeatureName = \"layers\";\n }\n /**\n * Attach this feature.\n * Will usually be called by the features manager.\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach()) {\n return false;\n }\n const engine = this._xrSessionManager.scene.getEngine();\n this._glContext = engine._gl;\n this._xrWebGLBinding = new XRWebGLBinding(this._xrSessionManager.session, this._glContext);\n this._existingLayers.length = 0;\n const projectionLayerInit = { ...defaultXRProjectionLayerInit, ...this._options.projectionLayerInit };\n this._isMultiviewEnabled = this._options.preferMultiviewOnInit && engine.getCaps().multiview;\n this.createProjectionLayer(projectionLayerInit /*, projectionLayerMultiview*/);\n this._projectionLayerInitialized = true;\n return true;\n }\n detach() {\n if (!super.detach()) {\n return false;\n }\n this._existingLayers.forEach((layer) => {\n layer.dispose();\n });\n this._existingLayers.length = 0;\n this._projectionLayerInitialized = false;\n return true;\n }\n /**\n * Creates a new XRWebGLLayer.\n * @param params an object providing configuration options for the new XRWebGLLayer\n * @returns the XRWebGLLayer\n */\n createXRWebGLLayer(params = defaultXRWebGLLayerInit) {\n const layer = new XRWebGLLayer(this._xrSessionManager.session, this._glContext, params);\n return new WebXRWebGLLayerWrapper(layer);\n }\n _validateLayerInit(params, multiview = this._isMultiviewEnabled) {\n // check if we are in session\n if (!this._xrSessionManager.inXRSession) {\n throw new Error(\"Cannot create a layer outside of a WebXR session. Make sure the session has started before creating layers.\");\n }\n if (multiview && params.textureType !== \"texture-array\") {\n throw new Error(\"Projection layers can only be made multiview if they use texture arrays. Set the textureType parameter to 'texture-array'.\");\n }\n // TODO (rgerd): Support RTT's that are bound to sub-images in the texture array.\n if (!multiview && params.textureType === \"texture-array\") {\n throw new Error(\"We currently only support multiview rendering when the textureType parameter is set to 'texture-array'.\");\n }\n }\n _extendXRLayerInit(params, multiview = this._isMultiviewEnabled) {\n if (multiview) {\n params.textureType = \"texture-array\";\n }\n return params;\n }\n /**\n * Creates a new XRProjectionLayer.\n * @param params an object providing configuration options for the new XRProjectionLayer.\n * @param multiview whether the projection layer should render with multiview. Will be tru automatically if the extension initialized with multiview.\n * @returns the projection layer\n */\n createProjectionLayer(params = defaultXRProjectionLayerInit, multiview = this._isMultiviewEnabled) {\n this._extendXRLayerInit(params, multiview);\n this._validateLayerInit(params, multiview);\n const projLayer = this._xrWebGLBinding.createProjectionLayer(params);\n const layer = new WebXRProjectionLayerWrapper(projLayer, multiview, this._xrWebGLBinding);\n this.addXRSessionLayer(layer);\n return layer;\n }\n /**\n * Note about making it private - this function will be exposed once I decide on a proper API to support all of the XR layers' options\n * @param options an object providing configuration options for the new XRQuadLayer.\n * @param babylonTexture the texture to display in the layer\n * @returns the quad layer\n */\n _createQuadLayer(options = { params: {} }, babylonTexture) {\n this._extendXRLayerInit(options.params, false);\n const width = this._existingLayers[0].layer.textureWidth;\n const height = this._existingLayers[0].layer.textureHeight;\n const populatedParams = {\n space: this._xrSessionManager.referenceSpace,\n viewPixelWidth: width,\n viewPixelHeight: height,\n clearOnAccess: true,\n ...options.params,\n };\n this._validateLayerInit(populatedParams, false);\n const quadLayer = this._xrWebGLBinding.createQuadLayer(populatedParams);\n quadLayer.width = this._isMultiviewEnabled ? 1 : 2;\n quadLayer.height = 1;\n // this wrapper is not really needed, but it's here for consistency\n const wrapper = new WebXRCompositionLayerWrapper(() => quadLayer.width, () => quadLayer.height, quadLayer, \"XRQuadLayer\", false, (sessionManager) => new WebXRCompositionLayerRenderTargetTextureProvider(sessionManager, this._xrWebGLBinding, wrapper));\n if (babylonTexture) {\n this._compositionLayerTextureMapping.set(quadLayer, babylonTexture);\n }\n const rtt = wrapper.createRenderTargetTextureProvider(this._xrSessionManager);\n this._layerToRTTProviderMapping.set(quadLayer, rtt);\n this.addXRSessionLayer(wrapper);\n return wrapper;\n }\n /**\n * @experimental\n * This will support full screen ADT when used with WebXR Layers. This API might change in the future.\n * Note that no interaction will be available with the ADT when using this method\n * @param texture the texture to display in the layer\n * @param options optional parameters for the layer\n * @returns a composition layer containing the texture\n */\n addFullscreenAdvancedDynamicTexture(texture, options = { distanceFromHeadset: 1.5 }) {\n const wrapper = this._createQuadLayer({\n params: {\n space: this._xrSessionManager.viewerReferenceSpace,\n textureType: \"texture\",\n layout: \"mono\",\n },\n }, texture);\n const layer = wrapper.layer;\n const distance = Math.max(0.1, options.distanceFromHeadset);\n const pos = { x: 0, y: 0, z: -distance };\n const orient = { x: 0, y: 0, z: 0, w: 1 };\n layer.transform = new XRRigidTransform(pos, orient);\n const rttProvider = this._layerToRTTProviderMapping.get(layer);\n if (!rttProvider) {\n throw new Error(\"Could not find the RTT provider for the layer\");\n }\n const babylonLayer = this._xrSessionManager.scene.layers.find((babylonLayer) => {\n return babylonLayer.texture === texture;\n });\n if (!babylonLayer) {\n throw new Error(\"Could not find the babylon layer for the texture\");\n }\n rttProvider.onRenderTargetTextureCreatedObservable.add((data) => {\n if (data.eye && data.eye === \"right\") {\n return;\n }\n data.texture.clearColor = new Color4(0, 0, 0, 0);\n babylonLayer.renderTargetTextures.push(data.texture);\n babylonLayer.renderOnlyInRenderTargetTextures = true;\n // for stereo (not for gui) it should be onBeforeCameraRenderObservable\n this._xrSessionManager.scene.onBeforeRenderObservable.add(() => {\n data.texture.render();\n });\n babylonLayer.renderTargetTextures.push(data.texture);\n babylonLayer.renderOnlyInRenderTargetTextures = true;\n // add it back when the session ends\n this._xrSessionManager.onXRSessionEnded.addOnce(() => {\n babylonLayer.renderTargetTextures.splice(babylonLayer.renderTargetTextures.indexOf(data.texture), 1);\n babylonLayer.renderOnlyInRenderTargetTextures = false;\n });\n });\n return wrapper;\n }\n /**\n * @experimental\n * This functions allows you to add a lens flare system to the XR scene.\n * Note - this will remove the lens flare system from the scene and add it to the XR scene.\n * This feature is experimental and might change in the future.\n * @param flareSystem the flare system to add\n * @returns a composition layer containing the flare system\n */\n _addLensFlareSystem(flareSystem) {\n const wrapper = this._createQuadLayer({\n params: {\n space: this._xrSessionManager.viewerReferenceSpace,\n textureType: \"texture\",\n layout: \"mono\",\n },\n });\n const layer = wrapper.layer;\n layer.width = 2;\n layer.height = 1;\n const distance = 10;\n const pos = { x: 0, y: 0, z: -distance };\n const orient = { x: 0, y: 0, z: 0, w: 1 };\n layer.transform = new XRRigidTransform(pos, orient);\n // get the rtt wrapper\n const rttProvider = this._layerToRTTProviderMapping.get(layer);\n if (!rttProvider) {\n throw new Error(\"Could not find the RTT provider for the layer\");\n }\n // render the flare system to the rtt\n rttProvider.onRenderTargetTextureCreatedObservable.add((data) => {\n data.texture.clearColor = new Color4(0, 0, 0, 0);\n data.texture.customRenderFunction = () => {\n flareSystem.render();\n };\n // add to the scene's render targets\n // this._xrSessionManager.scene.onBeforeCameraRenderObservable.add(() => {\n // data.texture.render();\n // });\n });\n // remove the lens flare system from the scene\n this._xrSessionManager.onXRSessionInit.add(() => {\n this._xrSessionManager.scene.lensFlareSystems.splice(this._xrSessionManager.scene.lensFlareSystems.indexOf(flareSystem), 1);\n });\n // add it back when the session ends\n this._xrSessionManager.onXRSessionEnded.add(() => {\n this._xrSessionManager.scene.lensFlareSystems.push(flareSystem);\n });\n return wrapper;\n }\n /**\n * Add a new layer to the already-existing list of layers\n * @param wrappedLayer the new layer to add to the existing ones\n */\n addXRSessionLayer(wrappedLayer) {\n this._existingLayers.push(wrappedLayer);\n this.setXRSessionLayers(this._existingLayers);\n }\n /**\n * Sets the layers to be used by the XR session.\n * Note that you must call this function with any layers you wish to render to\n * since it adds them to the XR session's render state\n * (replacing any layers that were added in a previous call to setXRSessionLayers or updateRenderState).\n * This method also sets up the session manager's render target texture provider\n * as the first layer in the array, which feeds the WebXR camera(s) attached to the session.\n * @param wrappedLayers An array of WebXRLayerWrapper, usually returned from the WebXRLayers createLayer functions.\n */\n setXRSessionLayers(wrappedLayers = this._existingLayers) {\n // this._existingLayers = wrappedLayers;\n const renderStateInit = { ...this._xrSessionManager.session.renderState };\n // Clear out the layer-related fields.\n renderStateInit.baseLayer = undefined;\n renderStateInit.layers = wrappedLayers.map((wrappedLayer) => wrappedLayer.layer);\n this._xrSessionManager.updateRenderState(renderStateInit);\n if (!this._projectionLayerInitialized) {\n this._xrSessionManager._setBaseLayerWrapper(wrappedLayers.length > 0 ? wrappedLayers.at(0) : null);\n }\n }\n isCompatible() {\n // TODO (rgerd): Add native support.\n return !this._xrSessionManager.isNative && typeof XRWebGLBinding !== \"undefined\" && !!XRWebGLBinding.prototype.createProjectionLayer;\n }\n /**\n * Dispose this feature and all of the resources attached.\n */\n dispose() {\n super.dispose();\n }\n _onXRFrame(_xrFrame) {\n // Replace once the mapped internal texture of each available composition layer, apart from the last one, which is the projection layer that needs an RTT\n const layers = this._existingLayers;\n for (let i = 0; i < layers.length; ++i) {\n const layer = layers[i];\n if (layer.layerType !== \"XRProjectionLayer\") {\n // get the rtt provider\n const rttProvider = this._layerToRTTProviderMapping.get(layer.layer);\n if (!rttProvider) {\n continue;\n }\n if (rttProvider.layerWrapper.isMultiview) {\n // get the views, if we are in multiview\n const pose = _xrFrame.getViewerPose(this._xrSessionManager.referenceSpace);\n if (pose) {\n const views = pose.views;\n for (let j = 0; j < views.length; ++j) {\n const view = views[j];\n rttProvider.getRenderTargetTextureForView(view);\n }\n }\n }\n else {\n rttProvider.getRenderTargetTextureForView();\n }\n }\n }\n }\n}\n/**\n * The module's name\n */\nWebXRLayers.Name = WebXRFeatureName.LAYERS;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRLayers.Version = 1;\n//register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRLayers.Name, (xrSessionManager, options) => {\n return () => new WebXRLayers(xrSessionManager, options);\n}, WebXRLayers.Version, false);\n","import { RawTexture } from \"../../Materials/Textures/rawTexture.js\";\nimport { WebXRFeatureName, WebXRFeaturesManager } from \"../webXRFeaturesManager.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nimport { Tools } from \"../../Misc/tools.js\";\nimport { Texture } from \"../../Materials/Textures/texture.js\";\nimport { Observable } from \"../../Misc/observable.js\";\n\nimport { WebGLHardwareTexture } from \"../../Engines/WebGL/webGLHardwareTexture.js\";\nimport { InternalTexture } from \"../../Materials/Textures/internalTexture.js\";\n/**\n * WebXR Feature for WebXR Depth Sensing Module\n * @since 5.49.1\n */\nexport class WebXRDepthSensing extends WebXRAbstractFeature {\n /**\n * Width of depth data. If depth data is not exist, returns null.\n */\n get width() {\n return this._width;\n }\n /**\n * Height of depth data. If depth data is not exist, returns null.\n */\n get height() {\n return this._height;\n }\n /**\n * Scale factor by which the raw depth values must be multiplied in order to get the depths in meters.\n */\n get rawValueToMeters() {\n return this._rawValueToMeters;\n }\n /**\n * An XRRigidTransform that needs to be applied when indexing into the depth buffer.\n */\n get normDepthBufferFromNormView() {\n return this._normDepthBufferFromNormView;\n }\n /**\n * Describes which depth-sensing usage (\"cpu\" or \"gpu\") is used.\n */\n get depthUsage() {\n switch (this._xrSessionManager.session.depthUsage) {\n case \"cpu-optimized\":\n return \"cpu\";\n case \"gpu-optimized\":\n return \"gpu\";\n }\n }\n /**\n * Describes which depth sensing data format (\"ushort\" or \"float\") is used.\n */\n get depthDataFormat() {\n switch (this._xrSessionManager.session.depthDataFormat) {\n case \"luminance-alpha\":\n return \"ushort\";\n case \"float32\":\n return \"float\";\n }\n }\n /**\n * Latest cached InternalTexture which containing depth buffer information.\n * This can be used when the depth usage is \"gpu\".\n */\n get latestInternalTexture() {\n if (!this._cachedWebGLTexture) {\n return null;\n }\n const engine = this._xrSessionManager.scene.getEngine();\n const internalTexture = new InternalTexture(engine, 0 /* InternalTextureSource.Unknown */);\n internalTexture.isCube = false;\n internalTexture.invertY = false;\n internalTexture._useSRGBBuffer = false;\n internalTexture.format = this.depthDataFormat === \"ushort\" ? 2 : 5;\n internalTexture.generateMipMaps = false;\n internalTexture.type = this.depthDataFormat === \"ushort\" ? 5 : 1;\n internalTexture.samplingMode = 7;\n internalTexture.width = this.width ?? 0;\n internalTexture.height = this.height ?? 0;\n internalTexture._cachedWrapU = 1;\n internalTexture._cachedWrapV = 1;\n internalTexture._hardwareTexture = new WebGLHardwareTexture(this._cachedWebGLTexture, engine._gl);\n return internalTexture;\n }\n /**\n * cached depth buffer\n */\n get latestDepthBuffer() {\n if (!this._cachedDepthBuffer) {\n return null;\n }\n return this.depthDataFormat === \"ushort\" ? new Uint16Array(this._cachedDepthBuffer) : new Float32Array(this._cachedDepthBuffer);\n }\n /**\n * Latest cached Texture of depth image which is made from the depth buffer data.\n */\n get latestDepthImageTexture() {\n return this._cachedDepthImageTexture;\n }\n /**\n * Creates a new instance of the depth sensing feature\n * @param _xrSessionManager the WebXRSessionManager\n * @param options options for WebXR Depth Sensing Feature\n */\n constructor(_xrSessionManager, options) {\n super(_xrSessionManager);\n this.options = options;\n this._width = null;\n this._height = null;\n this._rawValueToMeters = null;\n this._normDepthBufferFromNormView = null;\n this._cachedDepthBuffer = null;\n this._cachedWebGLTexture = null;\n this._cachedDepthImageTexture = null;\n /**\n * Event that notify when `DepthInformation.getDepthInMeters` is available.\n * `getDepthInMeters` method needs active XRFrame (not available for cached XRFrame)\n */\n this.onGetDepthInMetersAvailable = new Observable();\n this.xrNativeFeatureName = \"depth-sensing\";\n // https://immersive-web.github.io/depth-sensing/\n Tools.Warn(\"depth-sensing is an experimental and unstable feature.\");\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n * @param force should attachment be forced (even when already attached)\n * @returns true if successful.\n */\n attach(force) {\n if (!super.attach(force)) {\n return false;\n }\n const isBothDepthUsageAndFormatNull = this._xrSessionManager.session.depthDataFormat == null || this._xrSessionManager.session.depthUsage == null;\n if (isBothDepthUsageAndFormatNull) {\n return false;\n }\n this._glBinding = new XRWebGLBinding(this._xrSessionManager.session, this._xrSessionManager.scene.getEngine()._gl);\n return true;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n this._cachedDepthImageTexture?.dispose();\n this.onGetDepthInMetersAvailable.clear();\n }\n _onXRFrame(_xrFrame) {\n const referenceSPace = this._xrSessionManager.referenceSpace;\n const pose = _xrFrame.getViewerPose(referenceSPace);\n if (pose == null) {\n return;\n }\n for (const view of pose.views) {\n switch (this.depthUsage) {\n case \"cpu\":\n this._updateDepthInformationAndTextureCPUDepthUsage(_xrFrame, view, this.depthDataFormat);\n break;\n case \"gpu\":\n if (!this._glBinding) {\n break;\n }\n this._updateDepthInformationAndTextureWebGLDepthUsage(this._glBinding, view, this.depthDataFormat);\n break;\n default:\n Tools.Error(\"Unknown depth usage\");\n this.detach();\n break;\n }\n }\n }\n _updateDepthInformationAndTextureCPUDepthUsage(frame, view, dataFormat) {\n const depthInfo = frame.getDepthInformation(view);\n if (depthInfo === null) {\n return;\n }\n const { data, width, height, rawValueToMeters, getDepthInMeters } = depthInfo;\n this._width = width;\n this._height = height;\n this._rawValueToMeters = rawValueToMeters;\n this._cachedDepthBuffer = data;\n // to avoid Illegal Invocation error, bind `this`\n this.onGetDepthInMetersAvailable.notifyObservers(getDepthInMeters.bind(depthInfo));\n if (!this._cachedDepthImageTexture) {\n this._cachedDepthImageTexture = RawTexture.CreateRTexture(null, width, height, this._xrSessionManager.scene, false, true, Texture.NEAREST_SAMPLINGMODE, 1);\n }\n switch (dataFormat) {\n case \"ushort\":\n this._cachedDepthImageTexture.update(Float32Array.from(new Uint16Array(data)).map((value) => value * rawValueToMeters));\n break;\n case \"float\":\n this._cachedDepthImageTexture.update(new Float32Array(data).map((value) => value * rawValueToMeters));\n break;\n default:\n break;\n }\n }\n _updateDepthInformationAndTextureWebGLDepthUsage(webglBinding, view, dataFormat) {\n const depthInfo = webglBinding.getDepthInformation(view);\n if (depthInfo === null) {\n return;\n }\n const { texture, width, height } = depthInfo;\n this._width = width;\n this._height = height;\n this._cachedWebGLTexture = texture;\n const scene = this._xrSessionManager.scene;\n const engine = scene.getEngine();\n const internalTexture = engine.wrapWebGLTexture(texture);\n if (!this._cachedDepthImageTexture) {\n this._cachedDepthImageTexture = RawTexture.CreateRTexture(null, width, height, scene, false, true, Texture.NEAREST_SAMPLINGMODE, dataFormat === \"ushort\" ? 0 : 1);\n }\n this._cachedDepthImageTexture._texture = internalTexture;\n }\n /**\n * Extends the session init object if needed\n * @returns augmentation object for the xr session init object.\n */\n getXRSessionInitExtension() {\n const isDepthUsageDeclared = this.options.usagePreference != null && this.options.usagePreference.length !== 0;\n const isDataFormatDeclared = this.options.dataFormatPreference != null && this.options.dataFormatPreference.length !== 0;\n return new Promise((resolve) => {\n if (isDepthUsageDeclared && isDataFormatDeclared) {\n const usages = this.options.usagePreference.map((usage) => {\n switch (usage) {\n case \"cpu\":\n return \"cpu-optimized\";\n case \"gpu\":\n return \"gpu-optimized\";\n }\n });\n const dataFormats = this.options.dataFormatPreference.map((format) => {\n switch (format) {\n case \"ushort\":\n return \"luminance-alpha\";\n case \"float\":\n return \"float32\";\n }\n });\n resolve({\n depthSensing: {\n usagePreference: usages,\n dataFormatPreference: dataFormats,\n },\n });\n }\n else {\n resolve({});\n }\n });\n }\n}\n/**\n * The module's name\n */\nWebXRDepthSensing.Name = WebXRFeatureName.DEPTH_SENSING;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRDepthSensing.Version = 1;\nWebXRFeaturesManager.AddWebXRFeature(WebXRDepthSensing.Name, (xrSessionManager, options) => {\n return () => new WebXRDepthSensing(xrSessionManager, options);\n}, WebXRDepthSensing.Version, false);\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nconst name = \"velocityPixelShader\";\nconst shader = `precision highp float;\n#define CUSTOM_FRAGMENT_BEGIN\nvarying vec4 clipPos;varying vec4 previousClipPos;\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nhighp vec4 motionVector=( clipPos/clipPos.w-previousClipPos/previousClipPos.w );gl_FragColor=motionVector;\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const velocityPixelShader = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore.js\";\nimport \"./ShadersInclude/instancesDeclaration.js\";\nimport \"./ShadersInclude/instancesVertex.js\";\nconst name = \"velocityVertexShader\";\nconst shader = `#define CUSTOM_VERTEX_BEGIN\n#define VELOCITY\nattribute vec3 position;\n#include\nuniform mat4 viewProjection;uniform mat4 previousViewProjection;\n#ifdef MULTIVIEW\nuniform mat4 viewProjectionR;uniform mat4 previousViewProjectionR;\n#endif\nvarying vec4 clipPos;varying vec4 previousClipPos;\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvec3 positionUpdated=position;\n#include\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);vec4 previousWorldPos=finalPreviousWorld*vec4(positionUpdated,1.0);\n#ifdef MULTIVIEW\nif (gl_ViewID_OVR==0u) {clipPos=viewProjection*worldPos;previousClipPos=previousViewProjection*previousWorldPos;gl_Position=clipPos;} else {clipPos=viewProjectionR*worldPos;previousClipPos=previousViewProjectionR*previousWorldPos;gl_Position=clipPos;}\n#elif\nclipPos=viewProjection*worldPos;previousClipPos=previousViewProjection*previousWorldPos;gl_Position=clipPos;\n#endif\n#define CUSTOM_VERTEX_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const velocityVertexShader = { name, shader };\n","import { WebXRFeatureName, WebXRFeaturesManager } from \"../webXRFeaturesManager.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nimport { Matrix } from \"../../Maths/math.vector.js\";\nimport { RenderTargetTexture } from \"../../Materials/Textures/renderTargetTexture.js\";\n\nimport { ShaderMaterial } from \"../../Materials/shaderMaterial.js\";\nimport \"../../Shaders/velocity.fragment.js\";\nimport \"../../Shaders/velocity.vertex.js\";\n/**\n * Used for Space Warp render process\n */\nexport class XRSpaceWarpRenderTarget extends RenderTargetTexture {\n /**\n * Creates a Space Warp render target\n * @param motionVectorTexture WebGLTexture provided by WebGLSubImage\n * @param depthStencilTexture WebGLTexture provided by WebGLSubImage\n * @param scene scene used with the render target\n * @param size the size of the render target (used for each view)\n */\n constructor(motionVectorTexture, depthStencilTexture, scene, size = 512) {\n super(\"spacewarp rtt\", size, scene, false, true, 2, false, undefined, false, false, true, undefined, true);\n this._originalPairing = [];\n this._previousWorldMatrices = [];\n this._previousTransforms = [Matrix.Identity(), Matrix.Identity()];\n this._renderTarget = this.getScene().getEngine().createMultiviewRenderTargetTexture(this.getRenderWidth(), this.getRenderHeight(), motionVectorTexture, depthStencilTexture);\n this._renderTarget._disposeOnlyFramebuffers = true;\n this._texture = this._renderTarget.texture;\n this._texture.isMultiview = true;\n this._texture.format = 5;\n if (scene) {\n this._velocityMaterial = new ShaderMaterial(\"velocity shader material\", scene, {\n vertex: \"velocity\",\n fragment: \"velocity\",\n }, {\n uniforms: [\"world\", \"previousWorld\", \"viewProjection\", \"viewProjectionR\", \"previousViewProjection\", \"previousViewProjectionR\"],\n });\n this._velocityMaterial._materialHelperNeedsPreviousMatrices = true;\n this._velocityMaterial.onBindObservable.add((mesh) => {\n // mesh. getWorldMatrix can be incorrect under rare conditions (e.g. when using a effective mesh in the render function).\n // If the case arise that will require changing it we will need to change the bind process in the material class to also provide the world matrix as a parameter\n this._previousWorldMatrices[mesh.uniqueId] = this._previousWorldMatrices[mesh.uniqueId] || mesh.getWorldMatrix();\n this._velocityMaterial.getEffect().setMatrix(\"previousWorld\", this._previousWorldMatrices[mesh.uniqueId]);\n this._previousWorldMatrices[mesh.uniqueId] = mesh.getWorldMatrix();\n // now set the scene's previous matrix\n this._velocityMaterial.getEffect().setMatrix(\"previousViewProjection\", this._previousTransforms[0]);\n // multiview for sure\n this._velocityMaterial.getEffect().setMatrix(\"previousViewProjectionR\", this._previousTransforms[1]);\n // store the previous (current, to be exact) transforms\n this._previousTransforms[0].copyFrom(scene.getTransformMatrix());\n this._previousTransforms[1].copyFrom(scene._transformMatrixR);\n });\n this._velocityMaterial.freeze();\n }\n }\n render(useCameraPostProcess = false, dumpForDebug = false) {\n // Swap to use velocity material\n this._originalPairing.length = 0;\n const scene = this.getScene();\n // set the velocity material to render the velocity RTT\n if (scene && this._velocityMaterial) {\n scene.getActiveMeshes().forEach((mesh) => {\n this._originalPairing.push([mesh, mesh.material]);\n mesh.material = this._velocityMaterial;\n });\n }\n super.render(useCameraPostProcess, dumpForDebug);\n // Restore original materials\n this._originalPairing.forEach((tuple) => {\n tuple[0].material = tuple[1];\n });\n }\n /**\n * @internal\n */\n _bindFrameBuffer() {\n if (!this._renderTarget) {\n return;\n }\n this.getScene().getEngine().bindSpaceWarpFramebuffer(this._renderTarget);\n }\n /**\n * Gets the number of views the corresponding to the texture (eg. a SpaceWarpRenderTarget will have > 1)\n * @returns the view count\n */\n getViewCount() {\n return 2;\n }\n dispose() {\n super.dispose();\n this._velocityMaterial.dispose();\n this._previousTransforms.length = 0;\n this._previousWorldMatrices.length = 0;\n this._originalPairing.length = 0;\n }\n}\n/**\n * WebXR Space Warp Render Target Texture Provider\n */\nexport class WebXRSpaceWarpRenderTargetTextureProvider {\n constructor(_scene, _xrSessionManager, _xrWebGLBinding) {\n this._scene = _scene;\n this._xrSessionManager = _xrSessionManager;\n this._xrWebGLBinding = _xrWebGLBinding;\n this._lastSubImages = new Map();\n this._renderTargetTextures = new Map();\n this._engine = _scene.getEngine();\n }\n _getSubImageForView(view) {\n const layerWrapper = this._xrSessionManager._getBaseLayerWrapper();\n if (!layerWrapper) {\n throw new Error(\"For Space Warp, the base layer should be a WebXR Projection Layer.\");\n }\n if (layerWrapper.layerType !== \"XRProjectionLayer\") {\n throw new Error('For Space Warp, the base layer type should \"XRProjectionLayer\".');\n }\n const layer = layerWrapper.layer;\n return this._xrWebGLBinding.getViewSubImage(layer, view);\n }\n _setViewportForSubImage(viewport, subImage) {\n viewport.x = 0;\n viewport.y = 0;\n viewport.width = subImage.motionVectorTextureWidth;\n viewport.height = subImage.motionVectorTextureHeight;\n }\n _createRenderTargetTexture(width, height, framebuffer, motionVectorTexture, depthStencilTexture) {\n if (!this._engine) {\n throw new Error(\"Engine is disposed\");\n }\n const textureSize = { width, height };\n // Create render target texture from the internal texture\n const renderTargetTexture = new XRSpaceWarpRenderTarget(motionVectorTexture, depthStencilTexture, this._scene, textureSize);\n const renderTargetWrapper = renderTargetTexture.renderTarget;\n if (framebuffer) {\n renderTargetWrapper._framebuffer = framebuffer;\n }\n // Create internal texture\n renderTargetWrapper._colorTextureArray = motionVectorTexture;\n renderTargetWrapper._depthStencilTextureArray = depthStencilTexture;\n renderTargetTexture.disableRescaling();\n renderTargetTexture.renderListPredicate = () => true;\n return renderTargetTexture;\n }\n _getRenderTargetForSubImage(subImage, view) {\n const lastSubImage = this._lastSubImages.get(view);\n let renderTargetTexture = this._renderTargetTextures.get(view.eye);\n const width = subImage.motionVectorTextureWidth;\n const height = subImage.motionVectorTextureHeight;\n if (!renderTargetTexture || lastSubImage?.textureWidth !== width || lastSubImage?.textureHeight != height) {\n renderTargetTexture = this._createRenderTargetTexture(width, height, null, subImage.motionVectorTexture, subImage.depthStencilTexture);\n this._renderTargetTextures.set(view.eye, renderTargetTexture);\n this._framebufferDimensions = {\n framebufferWidth: width,\n framebufferHeight: height,\n };\n }\n this._lastSubImages.set(view, subImage);\n return renderTargetTexture;\n }\n trySetViewportForView(viewport, view) {\n const subImage = this._lastSubImages.get(view) || this._getSubImageForView(view);\n if (subImage) {\n this._setViewportForSubImage(viewport, subImage);\n return true;\n }\n return false;\n }\n /**\n * Access the motion vector (which will turn on Space Warp)\n * @param view the view to access the motion vector texture for\n */\n accessMotionVector(view) {\n const subImage = this._getSubImageForView(view);\n if (subImage) {\n // Meta Quest Browser uses accessing these textures as a sign for turning on Space Warp\n subImage.motionVectorTexture;\n subImage.depthStencilTexture;\n }\n }\n getRenderTargetTextureForEye(_eye) {\n return null;\n }\n getRenderTargetTextureForView(view) {\n const subImage = this._getSubImageForView(view);\n if (subImage) {\n return this._getRenderTargetForSubImage(subImage, view);\n }\n return null;\n }\n dispose() {\n this._renderTargetTextures.forEach((rtt) => rtt.dispose());\n this._renderTargetTextures.clear();\n }\n}\n/**\n * the WebXR Space Warp feature.\n */\nexport class WebXRSpaceWarp extends WebXRAbstractFeature {\n /**\n * constructor for the space warp feature\n * @param _xrSessionManager the xr session manager for this feature\n */\n constructor(_xrSessionManager) {\n super(_xrSessionManager);\n this._onAfterRenderObserver = null;\n this.dependsOn = [WebXRFeatureName.LAYERS];\n this.xrNativeFeatureName = \"space-warp\";\n this._xrSessionManager.scene.needsPreviousWorldMatrices = true;\n }\n /**\n * Attach this feature.\n * Will usually be called by the features manager.\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach()) {\n return false;\n }\n const engine = this._xrSessionManager.scene.getEngine();\n this._glContext = engine._gl;\n this._xrWebGLBinding = new XRWebGLBinding(this._xrSessionManager.session, this._glContext);\n this.spaceWarpRTTProvider = new WebXRSpaceWarpRenderTargetTextureProvider(this._xrSessionManager.scene, this._xrSessionManager, this._xrWebGLBinding);\n this._onAfterRenderObserver = this._xrSessionManager.scene.onAfterRenderObservable.add(() => this._onAfterRender());\n return true;\n }\n detach() {\n this._xrSessionManager.scene.onAfterRenderObservable.remove(this._onAfterRenderObserver);\n return super.detach();\n }\n _onAfterRender() {\n if (this.attached && this._renderTargetTexture) {\n this._renderTargetTexture.render(false, false);\n }\n }\n isCompatible() {\n return this._xrSessionManager.scene.getEngine().getCaps().colorBufferHalfFloat || false;\n }\n dispose() {\n super.dispose();\n }\n _onXRFrame(_xrFrame) {\n const pose = _xrFrame.getViewerPose(this._xrSessionManager.referenceSpace);\n if (!pose) {\n return;\n }\n // get the first view to which we will create a texture (or update it)\n const view = pose.views[0];\n this._renderTargetTexture = this._renderTargetTexture || this.spaceWarpRTTProvider.getRenderTargetTextureForView(view);\n this.spaceWarpRTTProvider.accessMotionVector(view);\n }\n}\n/**\n * The module's name\n */\nWebXRSpaceWarp.Name = WebXRFeatureName.SPACE_WARP;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRSpaceWarp.Version = 1;\n//register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRSpaceWarp.Name, (xrSessionManager) => {\n return () => new WebXRSpaceWarp(xrSessionManager);\n}, WebXRSpaceWarp.Version, false);\n","import { WebXRFeatureName, WebXRFeaturesManager } from \"../webXRFeaturesManager.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\nimport { Observable } from \"../../Misc/observable.js\";\n\nimport { WebGLHardwareTexture } from \"../../Engines/WebGL/webGLHardwareTexture.js\";\nimport { InternalTexture } from \"../../Materials/Textures/internalTexture.js\";\nimport { BaseTexture } from \"../../Materials/Textures/baseTexture.js\";\n/**\n * WebXR Feature for WebXR raw camera access\n * @since 6.31.0\n * @see https://immersive-web.github.io/raw-camera-access/\n */\nexport class WebXRRawCameraAccess extends WebXRAbstractFeature {\n /**\n * Creates a new instance of the feature\n * @param _xrSessionManager the WebXRSessionManager\n * @param options options for the Feature\n */\n constructor(_xrSessionManager, options = {}) {\n super(_xrSessionManager);\n this.options = options;\n this._cachedInternalTextures = [];\n /**\n * This is an array of camera views\n * Note that mostly the array will contain a single view\n * If you want to know the order of the views, use the `viewIndex` array\n */\n this.texturesData = [];\n /**\n * If needed, this array will contain the eye definition of each texture in `texturesArray`\n */\n this.viewIndex = [];\n /**\n * If needed, this array will contain the camera's intrinsics\n * You can use this data to convert from camera space to screen space and vice versa\n */\n this.cameraIntrinsics = [];\n /**\n * An observable that will notify when the camera's textures are updated\n */\n this.onTexturesUpdatedObservable = new Observable();\n this.xrNativeFeatureName = \"camera-access\";\n }\n attach(force) {\n if (!super.attach(force)) {\n return false;\n }\n this._glContext = this._xrSessionManager.scene.getEngine()._gl;\n this._glBinding = new XRWebGLBinding(this._xrSessionManager.session, this._glContext);\n return true;\n }\n detach() {\n if (!super.detach()) {\n return false;\n }\n this._glBinding = undefined;\n if (!this.options.doNotDisposeOnDetach) {\n this._cachedInternalTextures.forEach((t) => t.dispose());\n this.texturesData.forEach((t) => t.dispose());\n this._cachedInternalTextures.length = 0;\n this.texturesData.length = 0;\n this.cameraIntrinsics.length = 0;\n }\n return true;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose();\n this.onTexturesUpdatedObservable.clear();\n }\n /**\n * @see https://github.com/immersive-web/raw-camera-access/blob/main/explainer.md\n * @param view the XRView to update\n * @param index the index of the view in the views array\n */\n _updateCameraIntrinsics(view, index) {\n const cameraViewport = {\n width: view.camera.width,\n height: view.camera.height,\n x: 0,\n y: 0,\n };\n const p = view.projectionMatrix;\n // Principal point in pixels (typically at or near the center of the viewport)\n const u0 = ((1 - p[8]) * cameraViewport.width) / 2 + cameraViewport.x;\n const v0 = ((1 - p[9]) * cameraViewport.height) / 2 + cameraViewport.y;\n // Focal lengths in pixels (these are equal for square pixels)\n const ax = (cameraViewport.width / 2) * p[0];\n const ay = (cameraViewport.height / 2) * p[5];\n // Skew factor in pixels (nonzero for rhomboid pixels)\n const gamma = (cameraViewport.width / 2) * p[4];\n this.cameraIntrinsics[index] = {\n u0,\n v0,\n ax,\n ay,\n gamma,\n width: cameraViewport.width,\n height: cameraViewport.height,\n viewportX: cameraViewport.x,\n viewportY: cameraViewport.y,\n };\n }\n _updateInternalTextures(view, index = 0) {\n if (!view.camera) {\n return false;\n }\n this.viewIndex[index] = view.eye;\n const lp = this._glBinding?.getCameraImage(view.camera);\n if (!this._cachedInternalTextures[index]) {\n const internalTexture = new InternalTexture(this._xrSessionManager.scene.getEngine(), 0 /* InternalTextureSource.Unknown */, true);\n internalTexture.invertY = false;\n internalTexture.format = 5;\n internalTexture.generateMipMaps = true;\n internalTexture.type = 0;\n internalTexture.samplingMode = 3;\n internalTexture.width = view.camera.width;\n internalTexture.height = view.camera.height;\n internalTexture._cachedWrapU = 1;\n internalTexture._cachedWrapV = 1;\n internalTexture._hardwareTexture = new WebGLHardwareTexture(lp, this._glContext);\n this._cachedInternalTextures[index] = internalTexture;\n // create the base texture\n const texture = new BaseTexture(this._xrSessionManager.scene);\n texture.name = `WebXR Raw Camera Access (${index})`;\n texture._texture = this._cachedInternalTextures[index];\n this.texturesData[index] = texture;\n // get the camera intrinsics\n this._updateCameraIntrinsics(view, index);\n }\n else {\n // make sure the webgl texture is updated. Should happen automatically\n this._cachedInternalTextures[index]._hardwareTexture?.set(lp);\n }\n this._cachedInternalTextures[index].isReady = true;\n return true;\n }\n _onXRFrame(_xrFrame) {\n const referenceSPace = this._xrSessionManager.referenceSpace;\n const pose = _xrFrame.getViewerPose(referenceSPace);\n if (!pose || !pose.views) {\n return;\n }\n let updated = true;\n pose.views.forEach((view, index) => {\n updated = updated && this._updateInternalTextures(view, index);\n });\n if (updated) {\n this.onTexturesUpdatedObservable.notifyObservers(this.texturesData);\n }\n }\n}\n/**\n * The module's name\n */\nWebXRRawCameraAccess.Name = WebXRFeatureName.RAW_CAMERA_ACCESS;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRRawCameraAccess.Version = 1;\nWebXRFeaturesManager.AddWebXRFeature(WebXRRawCameraAccess.Name, (xrSessionManager, options) => {\n return () => new WebXRRawCameraAccess(xrSessionManager, options);\n}, WebXRRawCameraAccess.Version, false);\n","import { WebXRAbstractMotionController } from \"./webXRAbstractMotionController.js\";\nimport { WebXRMotionControllerManager } from \"./webXRMotionControllerManager.js\";\n/**\n * A generic hand controller class that supports select and a secondary grasp\n */\nexport class WebXRGenericHandController extends WebXRAbstractMotionController {\n /**\n * Create a new hand controller object, without loading a controller model\n * @param scene the scene to use to create this controller\n * @param gamepadObject the corresponding gamepad object\n * @param handedness the handedness of the controller\n */\n constructor(scene, gamepadObject, handedness) {\n // Don't load the controller model - for now, hands have no real model.\n super(scene, GenericHandSelectGraspProfile[handedness], gamepadObject, handedness, true);\n this.profileId = \"generic-hand-select-grasp\";\n }\n _getFilenameAndPath() {\n return {\n filename: \"generic.babylon\",\n path: \"https://controllers.babylonjs.com/generic/\",\n };\n }\n _getModelLoadingConstraints() {\n return true;\n }\n _processLoadedModel(_meshes) {\n // no-op\n }\n _setRootMesh(meshes) {\n // no-op\n }\n _updateModel() {\n // no-op\n }\n}\n// register the profiles\nWebXRMotionControllerManager.RegisterController(\"generic-hand-select-grasp\", (xrInput, scene) => {\n return new WebXRGenericHandController(scene, xrInput.gamepad, xrInput.handedness);\n});\n// https://github.com/immersive-web/webxr-input-profiles/blob/main/packages/registry/profiles/generic/generic-hand-select-grasp.json\nconst GenericHandSelectGraspProfile = {\n left: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0,\n },\n rootNodeName: \"xr-standard-trigger\",\n visualResponses: {},\n },\n grasp: {\n type: \"trigger\",\n gamepadIndices: {\n button: 4,\n },\n rootNodeName: \"grasp\",\n visualResponses: {},\n },\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"generic-hand-select-grasp-left\",\n assetPath: \"left.glb\",\n },\n right: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0,\n },\n rootNodeName: \"xr-standard-trigger\",\n visualResponses: {},\n },\n grasp: {\n type: \"trigger\",\n gamepadIndices: {\n button: 4,\n },\n rootNodeName: \"grasp\",\n visualResponses: {},\n },\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"generic-hand-select-grasp-right\",\n assetPath: \"right.glb\",\n },\n none: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0,\n },\n rootNodeName: \"xr-standard-trigger\",\n visualResponses: {},\n },\n grasp: {\n type: \"trigger\",\n gamepadIndices: {\n button: 4,\n },\n rootNodeName: \"grasp\",\n visualResponses: {},\n },\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"generic-hand-select-grasp-none\",\n assetPath: \"none.glb\",\n },\n};\n","import { WebXRAbstractMotionController } from \"./webXRAbstractMotionController.js\";\nimport { WebXRMotionControllerManager } from \"./webXRMotionControllerManager.js\";\nimport { Mesh } from \"../../Meshes/mesh.js\";\nimport { Quaternion } from \"../../Maths/math.vector.js\";\nimport { SceneLoader } from \"../../Loading/sceneLoader.js\";\nimport { Logger } from \"../../Misc/logger.js\";\n/**\n * The motion controller class for all microsoft mixed reality controllers\n */\nexport class WebXRMicrosoftMixedRealityController extends WebXRAbstractMotionController {\n constructor(scene, gamepadObject, handedness) {\n super(scene, MixedRealityProfile[\"left-right\"], gamepadObject, handedness);\n // use this in the future - https://github.com/immersive-web/webxr-input-profiles/tree/master/packages/assets/profiles/microsoft\n this._mapping = {\n defaultButton: {\n valueNodeName: \"VALUE\",\n unpressedNodeName: \"UNPRESSED\",\n pressedNodeName: \"PRESSED\",\n },\n defaultAxis: {\n valueNodeName: \"VALUE\",\n minNodeName: \"MIN\",\n maxNodeName: \"MAX\",\n },\n buttons: {\n \"xr-standard-trigger\": {\n rootNodeName: \"SELECT\",\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n },\n \"xr-standard-squeeze\": {\n rootNodeName: \"GRASP\",\n componentProperty: \"state\",\n states: [\"pressed\"],\n },\n \"xr-standard-touchpad\": {\n rootNodeName: \"TOUCHPAD_PRESS\",\n labelAnchorNodeName: \"squeeze-label\",\n touchPointNodeName: \"TOUCH\", // TODO - use this for visual feedback\n },\n \"xr-standard-thumbstick\": {\n rootNodeName: \"THUMBSTICK_PRESS\",\n componentProperty: \"state\",\n states: [\"pressed\"],\n },\n },\n axes: {\n \"xr-standard-touchpad\": {\n \"x-axis\": {\n rootNodeName: \"TOUCHPAD_TOUCH_X\",\n },\n \"y-axis\": {\n rootNodeName: \"TOUCHPAD_TOUCH_Y\",\n },\n },\n \"xr-standard-thumbstick\": {\n \"x-axis\": {\n rootNodeName: \"THUMBSTICK_X\",\n },\n \"y-axis\": {\n rootNodeName: \"THUMBSTICK_Y\",\n },\n },\n },\n };\n this.profileId = \"microsoft-mixed-reality\";\n }\n _getFilenameAndPath() {\n let filename = \"\";\n if (this.handedness === \"left\") {\n filename = WebXRMicrosoftMixedRealityController.MODEL_LEFT_FILENAME;\n }\n else {\n // Right is the default if no hand is specified\n filename = WebXRMicrosoftMixedRealityController.MODEL_RIGHT_FILENAME;\n }\n const device = \"default\";\n const path = WebXRMicrosoftMixedRealityController.MODEL_BASE_URL + device + \"/\";\n return {\n filename,\n path,\n };\n }\n _getModelLoadingConstraints() {\n const glbLoaded = SceneLoader.IsPluginForExtensionAvailable(\".glb\");\n if (!glbLoaded) {\n Logger.Warn(\"glTF / glb loaded was not registered, using generic controller instead\");\n }\n return glbLoaded;\n }\n _processLoadedModel(_meshes) {\n if (!this.rootMesh) {\n return;\n }\n // Button Meshes\n this.getComponentIds().forEach((id, i) => {\n if (this.disableAnimation) {\n return;\n }\n if (id && this.rootMesh) {\n const buttonMap = this._mapping.buttons[id];\n const buttonMeshName = buttonMap.rootNodeName;\n if (!buttonMeshName) {\n Logger.Log(\"Skipping unknown button at index: \" + i + \" with mapped name: \" + id);\n return;\n }\n const buttonMesh = this._getChildByName(this.rootMesh, buttonMeshName);\n if (!buttonMesh) {\n Logger.Warn(\"Missing button mesh with name: \" + buttonMeshName);\n return;\n }\n buttonMap.valueMesh = this._getImmediateChildByName(buttonMesh, this._mapping.defaultButton.valueNodeName);\n buttonMap.pressedMesh = this._getImmediateChildByName(buttonMesh, this._mapping.defaultButton.pressedNodeName);\n buttonMap.unpressedMesh = this._getImmediateChildByName(buttonMesh, this._mapping.defaultButton.unpressedNodeName);\n if (buttonMap.valueMesh && buttonMap.pressedMesh && buttonMap.unpressedMesh) {\n const comp = this.getComponent(id);\n if (comp) {\n comp.onButtonStateChangedObservable.add((component) => {\n this._lerpTransform(buttonMap, component.value);\n }, undefined, true);\n }\n }\n else {\n // If we didn't find the mesh, it simply means this button won't have transforms applied as mapped button value changes.\n Logger.Warn(\"Missing button submesh under mesh with name: \" + buttonMeshName);\n }\n }\n });\n // Axis Meshes\n this.getComponentIds().forEach((id) => {\n const comp = this.getComponent(id);\n if (!comp.isAxes()) {\n return;\n }\n [\"x-axis\", \"y-axis\"].forEach((axis) => {\n if (!this.rootMesh) {\n return;\n }\n const axisMap = this._mapping.axes[id][axis];\n const axisMesh = this._getChildByName(this.rootMesh, axisMap.rootNodeName);\n if (!axisMesh) {\n Logger.Warn(\"Missing axis mesh with name: \" + axisMap.rootNodeName);\n return;\n }\n axisMap.valueMesh = this._getImmediateChildByName(axisMesh, this._mapping.defaultAxis.valueNodeName);\n axisMap.minMesh = this._getImmediateChildByName(axisMesh, this._mapping.defaultAxis.minNodeName);\n axisMap.maxMesh = this._getImmediateChildByName(axisMesh, this._mapping.defaultAxis.maxNodeName);\n if (axisMap.valueMesh && axisMap.minMesh && axisMap.maxMesh) {\n if (comp) {\n comp.onAxisValueChangedObservable.add((axisValues) => {\n const value = axis === \"x-axis\" ? axisValues.x : axisValues.y;\n this._lerpTransform(axisMap, value, true);\n }, undefined, true);\n }\n }\n else {\n // If we didn't find the mesh, it simply means this button won't have transforms applied as mapped button value changes.\n Logger.Warn(\"Missing axis submesh under mesh with name: \" + axisMap.rootNodeName);\n }\n });\n });\n }\n _setRootMesh(meshes) {\n this.rootMesh = new Mesh(this.profileId + \" \" + this.handedness, this.scene);\n this.rootMesh.isPickable = false;\n let rootMesh;\n // Find the root node in the loaded glTF scene, and attach it as a child of 'parentMesh'\n for (let i = 0; i < meshes.length; i++) {\n const mesh = meshes[i];\n mesh.isPickable = false;\n if (!mesh.parent) {\n // Handle root node, attach to the new parentMesh\n rootMesh = mesh;\n }\n }\n if (rootMesh) {\n rootMesh.setParent(this.rootMesh);\n }\n if (!this.scene.useRightHandedSystem) {\n this.rootMesh.rotationQuaternion = Quaternion.FromEulerAngles(0, Math.PI, 0);\n }\n }\n _updateModel() {\n // no-op. model is updated using observables.\n }\n}\n/**\n * The base url used to load the left and right controller models\n */\nWebXRMicrosoftMixedRealityController.MODEL_BASE_URL = \"https://controllers.babylonjs.com/microsoft/\";\n/**\n * The name of the left controller model file\n */\nWebXRMicrosoftMixedRealityController.MODEL_LEFT_FILENAME = \"left.glb\";\n/**\n * The name of the right controller model file\n */\nWebXRMicrosoftMixedRealityController.MODEL_RIGHT_FILENAME = \"right.glb\";\n// register the profile\nWebXRMotionControllerManager.RegisterController(\"windows-mixed-reality\", (xrInput, scene) => {\n return new WebXRMicrosoftMixedRealityController(scene, xrInput.gamepad, xrInput.handedness);\n});\n// https://github.com/immersive-web/webxr-input-profiles/blob/master/packages/registry/profiles/microsoft/microsoft-mixed-reality.json\nconst MixedRealityProfile = {\n left: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0,\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {\n xr_standard_trigger_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_trigger_pressed_value\",\n minNodeName: \"xr_standard_trigger_pressed_min\",\n maxNodeName: \"xr_standard_trigger_pressed_max\",\n },\n },\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1,\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {\n xr_standard_squeeze_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_squeeze_pressed_value\",\n minNodeName: \"xr_standard_squeeze_pressed_min\",\n maxNodeName: \"xr_standard_squeeze_pressed_max\",\n },\n },\n },\n \"xr-standard-touchpad\": {\n type: \"touchpad\",\n gamepadIndices: {\n button: 2,\n xAxis: 0,\n yAxis: 1,\n },\n rootNodeName: \"xr_standard_touchpad\",\n visualResponses: {\n xr_standard_touchpad_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_pressed_value\",\n minNodeName: \"xr_standard_touchpad_pressed_min\",\n maxNodeName: \"xr_standard_touchpad_pressed_max\",\n },\n xr_standard_touchpad_xaxis_pressed: {\n componentProperty: \"xAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_xaxis_pressed_value\",\n minNodeName: \"xr_standard_touchpad_xaxis_pressed_min\",\n maxNodeName: \"xr_standard_touchpad_xaxis_pressed_max\",\n },\n xr_standard_touchpad_yaxis_pressed: {\n componentProperty: \"yAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_yaxis_pressed_value\",\n minNodeName: \"xr_standard_touchpad_yaxis_pressed_min\",\n maxNodeName: \"xr_standard_touchpad_yaxis_pressed_max\",\n },\n xr_standard_touchpad_xaxis_touched: {\n componentProperty: \"xAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_xaxis_touched_value\",\n minNodeName: \"xr_standard_touchpad_xaxis_touched_min\",\n maxNodeName: \"xr_standard_touchpad_xaxis_touched_max\",\n },\n xr_standard_touchpad_yaxis_touched: {\n componentProperty: \"yAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_yaxis_touched_value\",\n minNodeName: \"xr_standard_touchpad_yaxis_touched_min\",\n maxNodeName: \"xr_standard_touchpad_yaxis_touched_max\",\n },\n xr_standard_touchpad_axes_touched: {\n componentProperty: \"state\",\n states: [\"touched\", \"pressed\"],\n valueNodeProperty: \"visibility\",\n valueNodeName: \"xr_standard_touchpad_axes_touched_value\",\n },\n },\n touchPointNodeName: \"xr_standard_touchpad_axes_touched_value\",\n },\n \"xr-standard-thumbstick\": {\n type: \"thumbstick\",\n gamepadIndices: {\n button: 3,\n xAxis: 2,\n yAxis: 3,\n },\n rootNodeName: \"xr_standard_thumbstick\",\n visualResponses: {\n xr_standard_thumbstick_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_thumbstick_pressed_value\",\n minNodeName: \"xr_standard_thumbstick_pressed_min\",\n maxNodeName: \"xr_standard_thumbstick_pressed_max\",\n },\n xr_standard_thumbstick_xaxis_pressed: {\n componentProperty: \"xAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_thumbstick_xaxis_pressed_value\",\n minNodeName: \"xr_standard_thumbstick_xaxis_pressed_min\",\n maxNodeName: \"xr_standard_thumbstick_xaxis_pressed_max\",\n },\n xr_standard_thumbstick_yaxis_pressed: {\n componentProperty: \"yAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_thumbstick_yaxis_pressed_value\",\n minNodeName: \"xr_standard_thumbstick_yaxis_pressed_min\",\n maxNodeName: \"xr_standard_thumbstick_yaxis_pressed_max\",\n },\n },\n },\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"microsoft-mixed-reality-left\",\n assetPath: \"left.glb\",\n },\n right: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0,\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {\n xr_standard_trigger_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_trigger_pressed_value\",\n minNodeName: \"xr_standard_trigger_pressed_min\",\n maxNodeName: \"xr_standard_trigger_pressed_max\",\n },\n },\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1,\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {\n xr_standard_squeeze_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_squeeze_pressed_value\",\n minNodeName: \"xr_standard_squeeze_pressed_min\",\n maxNodeName: \"xr_standard_squeeze_pressed_max\",\n },\n },\n },\n \"xr-standard-touchpad\": {\n type: \"touchpad\",\n gamepadIndices: {\n button: 2,\n xAxis: 0,\n yAxis: 1,\n },\n rootNodeName: \"xr_standard_touchpad\",\n visualResponses: {\n xr_standard_touchpad_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_pressed_value\",\n minNodeName: \"xr_standard_touchpad_pressed_min\",\n maxNodeName: \"xr_standard_touchpad_pressed_max\",\n },\n xr_standard_touchpad_xaxis_pressed: {\n componentProperty: \"xAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_xaxis_pressed_value\",\n minNodeName: \"xr_standard_touchpad_xaxis_pressed_min\",\n maxNodeName: \"xr_standard_touchpad_xaxis_pressed_max\",\n },\n xr_standard_touchpad_yaxis_pressed: {\n componentProperty: \"yAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_yaxis_pressed_value\",\n minNodeName: \"xr_standard_touchpad_yaxis_pressed_min\",\n maxNodeName: \"xr_standard_touchpad_yaxis_pressed_max\",\n },\n xr_standard_touchpad_xaxis_touched: {\n componentProperty: \"xAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_xaxis_touched_value\",\n minNodeName: \"xr_standard_touchpad_xaxis_touched_min\",\n maxNodeName: \"xr_standard_touchpad_xaxis_touched_max\",\n },\n xr_standard_touchpad_yaxis_touched: {\n componentProperty: \"yAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_touchpad_yaxis_touched_value\",\n minNodeName: \"xr_standard_touchpad_yaxis_touched_min\",\n maxNodeName: \"xr_standard_touchpad_yaxis_touched_max\",\n },\n xr_standard_touchpad_axes_touched: {\n componentProperty: \"state\",\n states: [\"touched\", \"pressed\"],\n valueNodeProperty: \"visibility\",\n valueNodeName: \"xr_standard_touchpad_axes_touched_value\",\n },\n },\n touchPointNodeName: \"xr_standard_touchpad_axes_touched_value\",\n },\n \"xr-standard-thumbstick\": {\n type: \"thumbstick\",\n gamepadIndices: {\n button: 3,\n xAxis: 2,\n yAxis: 3,\n },\n rootNodeName: \"xr_standard_thumbstick\",\n visualResponses: {\n xr_standard_thumbstick_pressed: {\n componentProperty: \"button\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_thumbstick_pressed_value\",\n minNodeName: \"xr_standard_thumbstick_pressed_min\",\n maxNodeName: \"xr_standard_thumbstick_pressed_max\",\n },\n xr_standard_thumbstick_xaxis_pressed: {\n componentProperty: \"xAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_thumbstick_xaxis_pressed_value\",\n minNodeName: \"xr_standard_thumbstick_xaxis_pressed_min\",\n maxNodeName: \"xr_standard_thumbstick_xaxis_pressed_max\",\n },\n xr_standard_thumbstick_yaxis_pressed: {\n componentProperty: \"yAxis\",\n states: [\"default\", \"touched\", \"pressed\"],\n valueNodeProperty: \"transform\",\n valueNodeName: \"xr_standard_thumbstick_yaxis_pressed_value\",\n minNodeName: \"xr_standard_thumbstick_yaxis_pressed_min\",\n maxNodeName: \"xr_standard_thumbstick_yaxis_pressed_max\",\n },\n },\n },\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"microsoft-mixed-reality-right\",\n assetPath: \"right.glb\",\n },\n};\n","import { WebXRAbstractMotionController } from \"./webXRAbstractMotionController.js\";\nimport { WebXRMotionControllerManager } from \"./webXRMotionControllerManager.js\";\nimport { Mesh } from \"../../Meshes/mesh.js\";\nimport { Quaternion } from \"../../Maths/math.vector.js\";\n/**\n * The motion controller class for oculus touch (quest, rift).\n * This class supports legacy mapping as well the standard xr mapping\n */\nexport class WebXROculusTouchMotionController extends WebXRAbstractMotionController {\n constructor(scene, gamepadObject, handedness, _legacyMapping = false, _forceLegacyControllers = false) {\n super(scene, OculusTouchLayouts[handedness], gamepadObject, handedness);\n this._forceLegacyControllers = _forceLegacyControllers;\n this.profileId = \"oculus-touch\";\n }\n _getFilenameAndPath() {\n let filename = \"\";\n if (this.handedness === \"left\") {\n filename = WebXROculusTouchMotionController.MODEL_LEFT_FILENAME;\n }\n else {\n // Right is the default if no hand is specified\n filename = WebXROculusTouchMotionController.MODEL_RIGHT_FILENAME;\n }\n const path = this._isQuest() ? WebXROculusTouchMotionController.QUEST_MODEL_BASE_URL : WebXROculusTouchMotionController.MODEL_BASE_URL;\n return {\n filename,\n path,\n };\n }\n _getModelLoadingConstraints() {\n return true;\n }\n _processLoadedModel(_meshes) {\n const isQuest = this._isQuest();\n const triggerDirection = this.handedness === \"right\" ? -1 : 1;\n this.getComponentIds().forEach((id) => {\n const comp = id && this.getComponent(id);\n if (comp) {\n comp.onButtonStateChangedObservable.add((component) => {\n if (!this.rootMesh || this.disableAnimation) {\n return;\n }\n switch (id) {\n case \"xr-standard-trigger\": // index trigger\n if (!isQuest) {\n this._modelRootNode.getChildren()[3].rotation.x = -component.value * 0.2;\n this._modelRootNode.getChildren()[3].position.y = -component.value * 0.005;\n this._modelRootNode.getChildren()[3].position.z = -component.value * 0.005;\n }\n return;\n case \"xr-standard-squeeze\": // secondary trigger\n if (!isQuest) {\n this._modelRootNode.getChildren()[4].position.x = triggerDirection * component.value * 0.0035;\n }\n return;\n case \"xr-standard-thumbstick\": // thumbstick\n return;\n case \"a-button\":\n case \"x-button\":\n if (!isQuest) {\n if (component.pressed) {\n this._modelRootNode.getChildren()[1].position.y = -0.001;\n }\n else {\n this._modelRootNode.getChildren()[1].position.y = 0;\n }\n }\n return;\n case \"b-button\":\n case \"y-button\":\n if (!isQuest) {\n if (component.pressed) {\n this._modelRootNode.getChildren()[2].position.y = -0.001;\n }\n else {\n this._modelRootNode.getChildren()[2].position.y = 0;\n }\n }\n return;\n }\n }, undefined, true);\n }\n });\n }\n _setRootMesh(meshes) {\n this.rootMesh = new Mesh(this.profileId + \" \" + this.handedness, this.scene);\n if (!this.scene.useRightHandedSystem) {\n this.rootMesh.rotationQuaternion = Quaternion.FromEulerAngles(0, Math.PI, 0);\n }\n meshes.forEach((mesh) => {\n mesh.isPickable = false;\n });\n if (this._isQuest()) {\n this._modelRootNode = meshes[0];\n }\n else {\n this._modelRootNode = meshes[1];\n this.rootMesh.position.y = 0.034;\n this.rootMesh.position.z = 0.052;\n }\n this._modelRootNode.parent = this.rootMesh;\n }\n _updateModel() {\n // no-op. model is updated using observables.\n }\n /**\n * Is this the new type of oculus touch. At the moment both have the same profile and it is impossible to differentiate\n * between the touch and touch 2.\n * @returns true if this is the new type of oculus touch controllers.\n */\n _isQuest() {\n // this is SADLY the only way to currently check. Until proper profiles will be available.\n return !!navigator.userAgent.match(/Quest/gi) && !this._forceLegacyControllers;\n }\n}\n/**\n * The base url used to load the left and right controller models\n */\nWebXROculusTouchMotionController.MODEL_BASE_URL = \"https://controllers.babylonjs.com/oculus/\";\n/**\n * The name of the left controller model file\n */\nWebXROculusTouchMotionController.MODEL_LEFT_FILENAME = \"left.babylon\";\n/**\n * The name of the right controller model file\n */\nWebXROculusTouchMotionController.MODEL_RIGHT_FILENAME = \"right.babylon\";\n/**\n * Base Url for the Quest controller model.\n */\nWebXROculusTouchMotionController.QUEST_MODEL_BASE_URL = \"https://controllers.babylonjs.com/oculusQuest/\";\n// register the profile\nWebXRMotionControllerManager.RegisterController(\"oculus-touch\", (xrInput, scene) => {\n return new WebXROculusTouchMotionController(scene, xrInput.gamepad, xrInput.handedness);\n});\nWebXRMotionControllerManager.RegisterController(\"oculus-touch-legacy\", (xrInput, scene) => {\n return new WebXROculusTouchMotionController(scene, xrInput.gamepad, xrInput.handedness, true);\n});\nconst OculusTouchLayouts = {\n left: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0,\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {},\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1,\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {},\n },\n \"xr-standard-thumbstick\": {\n type: \"thumbstick\",\n gamepadIndices: {\n button: 3,\n xAxis: 2,\n yAxis: 3,\n },\n rootNodeName: \"xr_standard_thumbstick\",\n visualResponses: {},\n },\n \"x-button\": {\n type: \"button\",\n gamepadIndices: {\n button: 4,\n },\n rootNodeName: \"x_button\",\n visualResponses: {},\n },\n \"y-button\": {\n type: \"button\",\n gamepadIndices: {\n button: 5,\n },\n rootNodeName: \"y_button\",\n visualResponses: {},\n },\n thumbrest: {\n type: \"button\",\n gamepadIndices: {\n button: 6,\n },\n rootNodeName: \"thumbrest\",\n visualResponses: {},\n },\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"oculus-touch-v2-left\",\n assetPath: \"left.glb\",\n },\n right: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0,\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {},\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1,\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {},\n },\n \"xr-standard-thumbstick\": {\n type: \"thumbstick\",\n gamepadIndices: {\n button: 3,\n xAxis: 2,\n yAxis: 3,\n },\n rootNodeName: \"xr_standard_thumbstick\",\n visualResponses: {},\n },\n \"a-button\": {\n type: \"button\",\n gamepadIndices: {\n button: 4,\n },\n rootNodeName: \"a_button\",\n visualResponses: {},\n },\n \"b-button\": {\n type: \"button\",\n gamepadIndices: {\n button: 5,\n },\n rootNodeName: \"b_button\",\n visualResponses: {},\n },\n thumbrest: {\n type: \"button\",\n gamepadIndices: {\n button: 6,\n },\n rootNodeName: \"thumbrest\",\n visualResponses: {},\n },\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"oculus-touch-v2-right\",\n assetPath: \"right.glb\",\n },\n};\n","import { WebXRAbstractMotionController } from \"./webXRAbstractMotionController.js\";\nimport { Mesh } from \"../../Meshes/mesh.js\";\nimport { Quaternion } from \"../../Maths/math.vector.js\";\nimport { WebXRMotionControllerManager } from \"./webXRMotionControllerManager.js\";\n/**\n * The motion controller class for the standard HTC-Vive controllers\n */\nexport class WebXRHTCViveMotionController extends WebXRAbstractMotionController {\n /**\n * Create a new Vive motion controller object\n * @param scene the scene to use to create this controller\n * @param gamepadObject the corresponding gamepad object\n * @param handedness the handedness of the controller\n */\n constructor(scene, gamepadObject, handedness) {\n super(scene, HTCViveLayout[handedness], gamepadObject, handedness);\n this.profileId = \"htc-vive\";\n }\n _getFilenameAndPath() {\n const filename = WebXRHTCViveMotionController.MODEL_FILENAME;\n const path = WebXRHTCViveMotionController.MODEL_BASE_URL;\n return {\n filename,\n path,\n };\n }\n _getModelLoadingConstraints() {\n return true;\n }\n _processLoadedModel(_meshes) {\n this.getComponentIds().forEach((id) => {\n const comp = id && this.getComponent(id);\n if (comp) {\n comp.onButtonStateChangedObservable.add((component) => {\n if (!this.rootMesh || this.disableAnimation) {\n return;\n }\n switch (id) {\n case \"xr-standard-trigger\":\n this._modelRootNode.getChildren()[6].rotation.x = -component.value * 0.15;\n return;\n case \"xr-standard-touchpad\":\n return;\n case \"xr-standard-squeeze\":\n return;\n }\n }, undefined, true);\n }\n });\n }\n _setRootMesh(meshes) {\n this.rootMesh = new Mesh(this.profileId + \" \" + this.handedness, this.scene);\n meshes.forEach((mesh) => {\n mesh.isPickable = false;\n });\n this._modelRootNode = meshes[1];\n this._modelRootNode.parent = this.rootMesh;\n if (!this.scene.useRightHandedSystem) {\n this.rootMesh.rotationQuaternion = Quaternion.FromEulerAngles(0, Math.PI, 0);\n }\n }\n _updateModel() {\n // no-op. model is updated using observables.\n }\n}\n/**\n * The base url used to load the left and right controller models\n */\nWebXRHTCViveMotionController.MODEL_BASE_URL = \"https://controllers.babylonjs.com/vive/\";\n/**\n * File name for the controller model.\n */\nWebXRHTCViveMotionController.MODEL_FILENAME = \"wand.babylon\";\n// register the profile\nWebXRMotionControllerManager.RegisterController(\"htc-vive\", (xrInput, scene) => {\n return new WebXRHTCViveMotionController(scene, xrInput.gamepad, xrInput.handedness);\n});\n// WebXRMotionControllerManager.RegisterController(\"htc-vive-legacy\", (xrInput: XRInputSource, scene: Scene) => {\n// return new WebXRHTCViveMotionController(scene, (xrInput.gamepad), xrInput.handedness, true);\n// });\nconst HTCViveLayout = {\n left: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0,\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {},\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1,\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {},\n },\n \"xr-standard-touchpad\": {\n type: \"touchpad\",\n gamepadIndices: {\n button: 2,\n xAxis: 0,\n yAxis: 1,\n },\n rootNodeName: \"xr_standard_touchpad\",\n visualResponses: {},\n },\n menu: {\n type: \"button\",\n gamepadIndices: {\n button: 4,\n },\n rootNodeName: \"menu\",\n visualResponses: {},\n },\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"htc_vive_none\",\n assetPath: \"none.glb\",\n },\n right: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0,\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {},\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1,\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {},\n },\n \"xr-standard-touchpad\": {\n type: \"touchpad\",\n gamepadIndices: {\n button: 2,\n xAxis: 0,\n yAxis: 1,\n },\n rootNodeName: \"xr_standard_touchpad\",\n visualResponses: {},\n },\n menu: {\n type: \"button\",\n gamepadIndices: {\n button: 4,\n },\n rootNodeName: \"menu\",\n visualResponses: {},\n },\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"htc_vive_none\",\n assetPath: \"none.glb\",\n },\n none: {\n selectComponentId: \"xr-standard-trigger\",\n components: {\n \"xr-standard-trigger\": {\n type: \"trigger\",\n gamepadIndices: {\n button: 0,\n },\n rootNodeName: \"xr_standard_trigger\",\n visualResponses: {},\n },\n \"xr-standard-squeeze\": {\n type: \"squeeze\",\n gamepadIndices: {\n button: 1,\n },\n rootNodeName: \"xr_standard_squeeze\",\n visualResponses: {},\n },\n \"xr-standard-touchpad\": {\n type: \"touchpad\",\n gamepadIndices: {\n button: 2,\n xAxis: 0,\n yAxis: 1,\n },\n rootNodeName: \"xr_standard_touchpad\",\n visualResponses: {},\n },\n menu: {\n type: \"button\",\n gamepadIndices: {\n button: 4,\n },\n rootNodeName: \"menu\",\n visualResponses: {},\n },\n },\n gamepadMapping: \"xr-standard\",\n rootNodeName: \"htc-vive-none\",\n assetPath: \"none.glb\",\n },\n};\n","import{__awaiter as e}from\"tslib\";import{MeshFormat as t}from\"../ComputeServer/Data/MeshData.js\";import{blob2text as a,meshFormatToPluginExtension as s}from\"../Util/Util.js\";import{AvatarType as i}from\"./IAvatar.js\";import{Avatar3D as r}from\"./Avatar3D.js\";import{RenderHelper as o,Constants as h}from\"../Rendering/RenderHelper.js\";import{JSONMaterial as n}from\"./JSONMaterial.js\";import{TransformNode as d}from\"@babylonjs/core/Meshes/transformNode\";import{MeshNode as l}from\"../SceneConfiguration/Parser/V2/MeshNode.js\";import{HeadAvatar3DMaterialPlugin as m}from\"../Rendering/MaterialPlugins/HeadAvatar3DMaterialPlugin.js\";import{Matrix as _}from\"@babylonjs/core\";var u;!function(e){e.MESH_BODY=\"body-mesh.glb\",e.MESH_HEAD=\"head-mesh.glb\",e.MESH_FACE=\"face-mesh.glb\",e.MATERIAL_BODY=\"body-material.json\",e.MATERIAL_HEAD=\"head-material.json\",e.MATERIAL_FACE=\"face-material.json\",e.HEAD_TRANSFORM=\"head-transform.json\"}(u||(u={}));class c extends r{constructor(){super(...arguments),this._meshBody=null,this._meshHead=null,this._meshFace=null,this._materialBody=null,this._materialHead=null,this._materialFace=null,this._materialPluginBody=null,this._materialPluginHead=null,this._materialPluginFace=null,this._headTransformation=_.Identity()}getType(){return e(this,void 0,void 0,(function*(){return i.HEAD_AVATAR_3D}))}get meshes(){const e=new Array;return this._meshHead&&e.push(this._meshHead),this._meshBody&&e.push(this._meshBody),this._meshFace&&e.push(this._meshFace),e}addToShadowGenerator(e){var t,a,s,i,r,o;this._meshBody&&this._meshHead&&this._meshFace&&(null===(a=null===(t=e.getShadowMap())||void 0===t?void 0:t.renderList)||void 0===a||a.push(this._meshBody),null===(i=null===(s=e.getShadowMap())||void 0===s?void 0:s.renderList)||void 0===i||i.push(this._meshHead),null===(o=null===(r=e.getShadowMap())||void 0===r?void 0:r.renderList)||void 0===o||o.push(this._meshFace))}get avatarHeight(){var e;let t=null;const a=null===(e=this._rootNode)||void 0===e?void 0:e.getHierarchyBoundingVectors(!0);return a&&(t=a.max.y-a.min.y),t}updateBodyMeshPositionsFromBuffer(t){return e(this,void 0,void 0,(function*(){if(null==this._meshBody)throw Error(\"Could not update mesh positions due to missing mesh!\");yield this._updateMeshPositionsFromBuffer(t,this._meshBody)}))}loadHeadTransformationMatrix(){return e(this,void 0,void 0,(function*(){const e=_.Identity(),t=yield this.asset.getComponent(u.HEAD_TRANSFORM).then((e=>a(e))),s=JSON.parse(t);let i=[];if(\"headTransform\"in s&&(i=s.headTransform),16!=i.length)throw Error(\"Could not convert array of size \"+i.length.toString()+\" to 4x4 Matrix!\");e.setRowFromFloats(0,i[0],i[1],i[2],i[3]),e.setRowFromFloats(1,i[4],i[5],i[6],i[7]),e.setRowFromFloats(2,i[8],i[9],i[10],i[11]),e.setRowFromFloats(3,i[12],i[13],i[14],i[15]),this.updateHeadTransformation(e.transpose())}))}updateHeadTransformation(e){this._headTransformation=e,null!=this._meshHead&&this._meshHead.setPreTransformMatrix(this._headTransformation),null!=this._meshFace&&this._meshFace.setPreTransformMatrix(this._headTransformation)}getHeadTransformation(){return this._headTransformation}createHeadAvatarMaterial(t){return e(this,void 0,void 0,(function*(){return new n(t,this.asset)}))}customise(e){var t;const a=null===(t=this._meshBody)||void 0===t?void 0:t.morphTargetManager;a&&this._customise(e,a)}createHeadAvatarMesh(a,i){return e(this,void 0,void 0,(function*(){const e=yield this.asset.getComponent(i);this._meshFormat=t.GLB;const r=i.split(\".\")[0];let n=yield(new l).parse({name:this.meshID+r,type:\"Mesh\",scaling:[-1,1,1],blob:e,pluginExtension:s(this._meshFormat)},a.scene,this.asset);return n=this._updateMeshFromGLB(n,this._meshFormat),o.setRenderingGroupId(n,h.AVATAR_RENDERING_GROUP_ID),n.receiveShadows=!0,n.parent=this._groundOffsetNode,n}))}createVisualisation(t,a=!1){return e(this,void 0,void 0,(function*(){yield this.destroyVisualisation(),this._webViewer=t,this._rootNode=new d(`head-avatar-root-${this._uuid}`,t.scene),this._groundOffsetNode=new d(`head-avatar-offset-${this._uuid}`,t.scene),this._groundOffsetNode.parent=this.rootNode,this.visible=!a,this._materialBody=yield this.createHeadAvatarMaterial(u.MATERIAL_BODY),this._materialHead=yield this.createHeadAvatarMaterial(u.MATERIAL_HEAD),this._materialFace=yield this.createHeadAvatarMaterial(u.MATERIAL_FACE);const e=yield this._materialBody.createMaterial(t),s=yield this._materialHead.createMaterial(t),i=yield this._materialFace.createMaterial(t);if(this._materialPluginHead=new m(s),this._materialPluginBody=new m(e),this._materialPluginFace=new m(i),yield this.loadHeadTransformationMatrix(),this._meshHead=yield this.createHeadAvatarMesh(t,u.MESH_HEAD),this._meshBody=yield this.createHeadAvatarMesh(t,u.MESH_BODY),this._meshFace=yield this.createHeadAvatarMesh(t,u.MESH_FACE),this._morphIndexMap.clear(),this._meshBody.morphTargetManager)for(let e=0;e{var t;null===(t=this._meshBody)||void 0===t||t.onMeshReadyObservable.addOnce((()=>e()))}))),r.push(new Promise((e=>{var t;null===(t=this._meshHead)||void 0===t||t.onMeshReadyObservable.addOnce((()=>e()))}))),r.push(new Promise((e=>{var t;null===(t=this._meshFace)||void 0===t||t.onMeshReadyObservable.addOnce((()=>e()))}))),yield Promise.all(r),this._animation&&(yield this._updateAnimationForAvatar())}))}destroyVisualisation(){var t,a;return e(this,void 0,void 0,(function*(){this.getSkeleton()!==(null===(t=this.getAnimation())||void 0===t?void 0:t.skeleton)&&(null===(a=this.getSkeleton())||void 0===a||a.dispose()),this._groundOffsetNode&&(this._groundOffsetNode.parent=null,o.cleanupNode(this._groundOffsetNode),this._groundOffsetNode=null),this._rootNode&&(this._rootNode.parent=null,o.cleanupNode(this._rootNode),this._rootNode=null),this._webViewer=null,this._materialBody&&(yield this._materialBody.destroyMaterial()),this._materialHead&&(yield this._materialHead.destroyMaterial()),this._materialFace&&(yield this._materialFace.destroyMaterial())}))}}export{c as HeadAvatar3D,u as HeadAvatar3DAssetKey};\n","import { RegisterNativeTypeAsync } from \"../../Engines/nativeEngine.js\";\n/** @internal */\nexport class NativeXRFrame {\n get session() {\n return this._nativeImpl.session;\n }\n constructor(_nativeImpl) {\n this._nativeImpl = _nativeImpl;\n this._xrTransform = new XRRigidTransform();\n this._xrPose = {\n transform: this._xrTransform,\n emulatedPosition: false,\n };\n // Enough space for position, orientation\n this._xrPoseVectorData = new Float32Array(4 + 4);\n this.fillPoses = this._nativeImpl.fillPoses.bind(this._nativeImpl);\n this.getViewerPose = this._nativeImpl.getViewerPose.bind(this._nativeImpl);\n this.getHitTestResults = this._nativeImpl.getHitTestResults.bind(this._nativeImpl);\n this.getHitTestResultsForTransientInput = () => {\n throw new Error(\"XRFrame.getHitTestResultsForTransientInput not supported on native.\");\n };\n this.createAnchor = this._nativeImpl.createAnchor.bind(this._nativeImpl);\n this.getJointPose = this._nativeImpl.getJointPose.bind(this._nativeImpl);\n this.fillJointRadii = this._nativeImpl.fillJointRadii.bind(this._nativeImpl);\n this.getLightEstimate = () => {\n throw new Error(\"XRFrame.getLightEstimate not supported on native.\");\n };\n this.getImageTrackingResults = () => {\n return this._nativeImpl._imageTrackingResults ?? [];\n };\n }\n getPose(space, baseSpace) {\n if (!this._nativeImpl.getPoseData(space, baseSpace, this._xrPoseVectorData.buffer, this._xrTransform.matrix.buffer)) {\n return undefined;\n }\n const position = this._xrTransform.position;\n position.x = this._xrPoseVectorData[0];\n position.y = this._xrPoseVectorData[1];\n position.z = this._xrPoseVectorData[2];\n position.w = this._xrPoseVectorData[3];\n const orientation = this._xrTransform.orientation;\n orientation.x = this._xrPoseVectorData[4];\n orientation.y = this._xrPoseVectorData[5];\n orientation.z = this._xrPoseVectorData[6];\n orientation.w = this._xrPoseVectorData[7];\n return this._xrPose;\n }\n get trackedAnchors() {\n return this._nativeImpl.trackedAnchors;\n }\n get worldInformation() {\n return this._nativeImpl.worldInformation;\n }\n get detectedPlanes() {\n return this._nativeImpl.detectedPlanes;\n }\n get featurePointCloud() {\n return this._nativeImpl.featurePointCloud;\n }\n getDepthInformation(view) {\n throw new Error(\"This function is not available in Babylon Native\");\n // return this._nativeImpl.getDepthInformation(view);\n }\n}\nRegisterNativeTypeAsync(\"NativeXRFrame\", NativeXRFrame);\n","import{__awaiter as e}from\"tslib\";import{PartlyReplacedAsset as t}from\"../Data/Asset/PartlyReplacedAsset.js\";import{Avatar2DAssetKey as s}from\"../Data/Avatar2D.js\";import{Garment2DAssetKey as n,Garment2DFitted as i}from\"../Data/Garment2D.js\";import{GarmentType as a}from\"../Data/IGarment.js\";import{ComputeServer as r}from\"./ComputeServer.js\";import{VirtualTryOn2DResponse as o}from\"./Data/VirtualTryOn2D/VirtualTryOn2DResponse.js\";import{PersonalisedMannequinConversionResponse as l}from\"./Data/Conversion2D/PersonalisedMannequinConversionResponse.js\";import{LocalAsset as u}from\"../Data/Asset/LocalAsset.js\";import{AssetType as d}from\"../Data/Asset/AssetType.js\";import{CoreWorkerProxy as c}from\"@reactivereality-public/pictofit-core-wasm\";import{Avatar3DAssetKey as m}from\"../Data/Avatar3D.js\";import{Mutex as h,asyncForEach as p}from\"../Util/Util.js\";import{MeshFormat as b}from\"./Data/MeshData.js\";import{WebViewer as f}from\"../WebViewer.js\";import{isWithMetricLabels as y,CsLabels as v,getMetricsConfiguration as g}from\"../Metrics/index.js\";import{GarmentSizesRequest as M}from\"./Data/SizeRecommendation/GarmentSizesRequest.js\";import{Dexie as T}from\"dexie\";import{AverageTimer as D}from\"../Util/AverageTimer.js\";import{HeadAvatar3D as S,HeadAvatar3DAssetKey as E}from\"../Data/HeadAvatar3D.js\";class w extends T{constructor(e){super(e),this.version(1).stores({wasmCacheObjects:\"\"}),this.version(2).stores({wasmCacheObjects:null}),this.version(3).stores({wasmCacheObjects:\"\"}),this.open()}get(t){return e(this,void 0,void 0,(function*(){const e=yield this.wasmCacheObjects.get(t);if(e){const s=e.value;return this.wasmCacheObjects.update(t,{time:Date.now()}),s}}))}set(e,t){this.wasmCacheObjects.count().then((s=>{const n=()=>{if(s>=w.CACHE_UPPER_LIMIT){const e=this.wasmCacheObjects.toCollection();let t=Date.now(),i=\"\";return e.each(((e,s)=>{e&&e.time&&e.time(--s,this.wasmCacheObjects.delete(i)))).then((()=>n()))}return this.wasmCacheObjects.put({time:Date.now(),value:t},e).then()};return n()}))}}w.CACHE_UPPER_LIMIT=8;class I{constructor(){this.map=new Map}get(t){return e(this,void 0,void 0,(function*(){const e=this.map.get(t);if(void 0!==e)return e.time=Date.now(),e.value}))}set(e,t){for(;this.map.size>8;){let e=Date.now(),t=\"\";this.map.forEach(((s,n)=>{s.timee[0].setPbmBlobs(e[1],e[2]).then((t=>e[0]))))),this._coreWorkerProxyPbmInitialized}))}constructor(e,t,s,n){super(e,t),this._asyncFunctionMutex=new h,this._wasmSupported=f.checkIfBrowserSupportsWasmComputeServer(),this._wasmEnabled=this._wasmSupported,this._coreWorkerProxy=new c,this._coreWorkerProxyPbmInitialized=null,this._pathPromise=null,this._blobCache=void 0,this._terminateWorkers=!0,this._useMainWorker=!0,this._maxNumWorkers=4,s&&this.setWasmPath(s);let i=!0;n&&(void 0!==n.terminateWorkers&&(this._terminateWorkers=n.terminateWorkers),void 0!==n.useMainWorker&&(this._useMainWorker=n.useMainWorker),void 0!==n.maxNumWorkers&&(this._maxNumWorkers=n.maxNumWorkers),void 0!==n.useCache&&(i=n.useCache)),i&&(this._blobCache=new I)}printWasmNotSupportedWarning(){console.log(\"Pictofit web assembly computing is not supported on this platform!\")}setWasmPath(e){this._pathPromise=fetch(this._coreWorkerProxy.convertWasmPath(e)).then((e=>e.blob().then((e=>this._coreWorkerProxy.setWasmPath(URL.createObjectURL(e))))))}requestVirtualTryOn2DRigid(a,r){const l=Object.create(null,{requestVirtualTryOn2DRigid:{get:()=>super.requestVirtualTryOn2DRigid},requestVirtualTryOn2D:{get:()=>super.requestVirtualTryOn2D}});var u,d;return e(this,void 0,void 0,(function*(){const c=Date.now(),m=y(a)&&a.metricLabels?a.metricLabels:new v;try{if(!this._wasmEnabled){this.printWasmNotSupportedWarning();const e=yield l.requestVirtualTryOn2DRigid.call(this,a,r);return this.addWasmLabels(m,!1),e}return yield this._asyncFunctionMutex.dispatch((()=>e(this,void 0,void 0,(function*(){let e=D.start(\"tryon wasm rigid request init\");const u=a.garments.map((e=>e.asset.getComponent(n.GARMENT_MINIFIED)));u.push(a.avatar.asset.getComponent(s.AVATAR_MINIFIED));const d=yield Promise.all(u),c=d.slice(0,d.length-1),h=d[d.length-1],p=null!==this._coreWorkerProxyPbmInitialized,b=yield this.getWorkerWithoutPbmInit();let f;D.end(e),e=D.start(\"tryon wasm rigid preRequestCallback\"),r&&r(),D.end(e),e=D.start(\"tryon wasm rigid\");try{if(f=yield b.computeRigidFittedGarments(h,c,a.doSkinning),null===f)throw Error(\"Web assembly based 2D try on failed!\")}catch(e){console.error(e),this._wasmEnabled=!1;const t=yield l.requestVirtualTryOn2D.call(this,a);return this.addWasmLabels(m,!0,p),t}D.end(e),e=D.start(\"tryon wasm rigid response\");const y=new o;for(const[e,s]of a.garments.entries()){const r=new i(s,a.avatar),o=[];r.alphaMultiplicationMask=f.fittedGarments[e].garmentMask,r.frontsideShadowTextureImage=f.fittedGarments[e].garmentFrontsideShadowTextureImage,r.backsideShadowTextureImage=f.fittedGarments[e].garmentBacksideShadowTextureImage;{const t=f.fittedGarments[e].garmentFrontsideShadowTextureMeshToUVTransformation,s=this._matrixFromValuesVector(t);r.frontsideShadowTextureMeshToUVTransformation=s}{const t=f.fittedGarments[e].garmentBacksideShadowTextureMeshToUVTransformation,s=this._matrixFromValuesVector(t);r.backsideShadowTextureMeshToUVTransformation=s}o.push({key:n.MESH_GLB,blob:f.fittedGarments[e].garmentMesh});const l=f.fittedGarments[e].garmentBacksideMesh;l&&o.push({key:n.MESH_BACKSIDE_GLB,blob:l}),r.asset=new t(s.asset,o),y.fittedGarments.push(r)}return this.addWasmLabels(m,!1,p),D.end(e),y}))))}finally{null===(d=null===(u=g())||void 0===u?void 0:u.metrics.tryOn2DProcessingTimeMs)||void 0===d||d.report(Date.now()-c,Object.assign(Object.assign({},m.content),{numGarments:a.garments.length}))}}))}requestVirtualTryOn2D(a,r){const l=Object.create(null,{requestVirtualTryOn2D:{get:()=>super.requestVirtualTryOn2D}});var u,d;return e(this,void 0,void 0,(function*(){const e=Date.now(),c=y(a)&&a.metricLabels?a.metricLabels:new v;try{if(!this._wasmEnabled){this.printWasmNotSupportedWarning();const e=yield l.requestVirtualTryOn2D.call(this,a,r);return this.addWasmLabels(c,!1),e}{let e=D.start(\"tryon wasm request init\");const u=a.garments.map((e=>e.asset.getComponent(n.GARMENT_MINIFIED)));u.push(a.avatar.asset.getComponent(s.AVATAR_MINIFIED));const d=yield Promise.all(u),m=d.slice(0,d.length-1),h=d[d.length-1],p=null!==this._coreWorkerProxyPbmInitialized,b=yield this.getWorkerWithoutPbmInit();let f;D.end(e),e=D.start(\"tryon wasm preRequestCallback\"),r&&r(),D.end(e),e=D.start(\"tryon wasm\");try{if(f=yield b.doTryOn(h,m,a.doSkinning,a.computeShadows,a.returnGarmentMeshVertexBufferOnly,this._blobCache,this._terminateWorkers,this._useMainWorker,this._maxNumWorkers),null===f)throw Error(\"Web assembly based 2D try on failed!\")}catch(e){if(!(e instanceof Error)||\"AbortError\"!==e.name){console.error(e),this._wasmEnabled=!1;const t=yield l.requestVirtualTryOn2D.call(this,a);return this.addWasmLabels(c,!0,p),t}throw e}D.end(e),e=D.start(\"tryon wasm response\");const y=new o;for(const[e,s]of a.garments.entries()){const r=new i(s,a.avatar),o=[];r.alphaMultiplicationMask=f.fittedGarments[e].garmentMask,r.frontsideShadowTextureImage=f.fittedGarments[e].garmentFrontsideShadowTextureImage,r.backsideShadowTextureImage=f.fittedGarments[e].garmentBacksideShadowTextureImage;{const t=f.fittedGarments[e].garmentFrontsideShadowTextureMeshToUVTransformation,s=this._matrixFromValuesVector(t);r.frontsideShadowTextureMeshToUVTransformation=s}{const t=f.fittedGarments[e].garmentBacksideShadowTextureMeshToUVTransformation,s=this._matrixFromValuesVector(t);r.backsideShadowTextureMeshToUVTransformation=s}const l=a.returnGarmentMeshVertexBufferOnly?n.MESH_POSITIONS:n.MESH_GLB;o.push({key:l,blob:f.fittedGarments[e].garmentMesh});const u=f.fittedGarments[e].garmentBacksideMesh;if(u){const e=a.returnGarmentMeshVertexBufferOnly?n.MESH_POSITIONS_BACKSIDE:n.MESH_BACKSIDE_GLB;o.push({key:e,blob:u})}r.asset=new t(s.asset,o),y.fittedGarments.push(r)}return y.avatarOverlapCorrectionMask=f.avatarOverlapCorrectionMask,y.avatarShadowTextureUVTransformation=this._matrixFromValuesVector(f.avatarShadowTextureUVTransformation),y.avatarShadowTextureImage=f.avatarShadowTextureImage,this.addWasmLabels(c,!1,p),D.end(e),y}}finally{null===(d=null===(u=g())||void 0===u?void 0:u.metrics.tryOn2DProcessingTimeMs)||void 0===d||d.report(Date.now()-e,Object.assign(Object.assign({},c.content),{numGarments:a.garments.length}))}}))}requestGarmentSizes(t,s){return e(this,void 0,void 0,(function*(){if(t instanceof M){let e;return y(t)&&(e=t.metricLabels),yield this.requestGarmentSizesWithMetricLabels(t.garment,t.SizeTableCreationData,e)}return yield this.requestGarmentSizesWithMetricLabels(t,s)}))}requestGarmentSizesWithMetricLabels(t,s,i){const r=Object.create(null,{requestGarmentSizes:{get:()=>super.requestGarmentSizes}});var o,l;return e(this,void 0,void 0,(function*(){if(!this._wasmEnabled){const e=Date.now();this.printWasmNotSupportedWarning();const n=yield r.requestGarmentSizes.call(this,t,s);return i&&(i.content=Object.assign(Object.assign({},i.content),this.getWasmLabels(!1))),null===(l=null===(o=g())||void 0===o?void 0:o.metrics.garmentSizesProcessingTimeMs)||void 0===l||l.report(Date.now()-e,null==i?void 0:i.content),n}return yield this._asyncFunctionMutex.dispatch((()=>e(this,void 0,void 0,(function*(){var e,o;const l=Date.now();try{if((yield t.getType())!==a.GARMENT_2D)return r.requestGarmentSizes.call(this,t,s);const e=yield t.asset.getComponent(n.GARMENT_MINIFIED);let o=null,l=null;void 0!==s&&(o=\"string\"==typeof s.sizeTableCreationConfig?yield fetch(s.sizeTableCreationConfig).then((e=>e.blob())):s.sizeTableCreationConfig,l=\"string\"==typeof s.fitModels?yield fetch(s.fitModels).then((e=>e.blob())):s.fitModels);const u=yield this.getWorkerWithoutPbmInit();try{const t=yield u.getGarment2DSizes(e,o,l);return i&&(i.content=Object.assign(Object.assign({},i.content),this.getWasmLabels(!1))),t}catch(e){console.error(e),this._wasmEnabled=!1;const n=yield r.requestGarmentSizes.call(this,t,s);return i&&(i.content=Object.assign(Object.assign({},i.content),this.getWasmLabels(!0))),n}}finally{null===(o=null===(e=g())||void 0===e?void 0:e.metrics.garmentSizesProcessingTimeMs)||void 0===o||o.report(Date.now()-l,null==i?void 0:i.content)}}))))}))}computeSR(t,i){const a=Object.create(null,{requestSizeVisualisation2D:{get:()=>super.requestSizeVisualisation2D},requestSizeRecommendation2D:{get:()=>super.requestSizeRecommendation2D}});var r,o;return e(this,void 0,void 0,(function*(){let l=Date.now();const u=y(t)&&t.metricLabels?t.metricLabels:new v;u.content=Object.assign(Object.assign({},u.content),{visualizationRequested:i?1:0});try{if(!this._wasmEnabled){this.printWasmNotSupportedWarning();const e=yield i?a.requestSizeVisualisation2D.call(this,t):a.requestSizeRecommendation2D.call(this,t);return this.addWasmLabels(u,!1),e}return yield this._asyncFunctionMutex.dispatch((()=>e(this,void 0,void 0,(function*(){l=Date.now();const e=null!==this._coreWorkerProxyPbmInitialized,a=this.getWorker();let r=t.sizeTable instanceof Blob?t.sizeTable:null;\"string\"==typeof t.sizeTable&&(r=yield fetch(t.sizeTable).then((e=>e.blob())));let o=t.measurementsConfig instanceof Blob?t.measurementsConfig:null;\"string\"==typeof t.measurementsConfig&&(o=yield fetch(t.measurementsConfig).then((e=>e.blob())));let d=null,c=null;null!==t.sizeTableCreationData&&(d=\"string\"==typeof t.sizeTableCreationData.sizeTableCreationConfig?yield fetch(t.sizeTableCreationData.sizeTableCreationConfig).then((e=>e.blob())):t.sizeTableCreationData.sizeTableCreationConfig,c=\"string\"==typeof t.sizeTableCreationData.fitModels?yield fetch(t.sizeTableCreationData.fitModels).then((e=>e.blob())):t.sizeTableCreationData.fitModels);const m=yield a,h={avatarBlob:yield t.avatar.asset.getComponent(s.AVATAR_MINIFIED),garmentBlob:yield t.fittedGarment.asset.getComponent(n.GARMENT_MINIFIED),size:t.size,sizeTable:r,measurementsConfig:o,sizeTableCreationConfig:d,fitModels:c,availableSizes:t.availableSizes,computeVisualization:i},p=yield m.recommendSize(h);return this.addWasmLabels(u,!1,e),p}))))}catch(e){console.error(e),this._wasmEnabled=!1;const s=yield i?a.requestSizeVisualisation2D.call(this,t):a.requestSizeRecommendation2D.call(this,t);return this.addWasmLabels(u,!0),s}finally{null===(o=null===(r=g())||void 0===r?void 0:r.metrics.sizeRecommendationProcessingTimeMs)||void 0===o||o.report(Date.now()-l,Object.assign({},u.content))}}))}requestSizeRecommendation2D(t){return e(this,void 0,void 0,(function*(){return this.computeSR(t,!1)}))}requestSizeVisualisation2D(t){return e(this,void 0,void 0,(function*(){return this.computeSR(t,!0)}))}requestPersonalisedMannequin(t){const s=Object.create(null,{requestPersonalisedMannequin:{get:()=>super.requestPersonalisedMannequin}});var n,i;return e(this,void 0,void 0,(function*(){let a=Date.now();const r=y(t)&&t.metricLabels?t.metricLabels:new v;try{if(!this._wasmEnabled){this.printWasmNotSupportedWarning();const e=yield s.requestPersonalisedMannequin.call(this,t);return this.addWasmLabels(r,!1),e}return yield this._asyncFunctionMutex.dispatch((()=>e(this,void 0,void 0,(function*(){a=Date.now();const e=null!==this._coreWorkerProxyPbmInitialized,n=this.getWorker();let i=null;t.inputMeasurementsConfig instanceof Blob?i=t.inputMeasurementsConfig:\"string\"==typeof t.inputMeasurementsConfig&&(i=yield fetch(t.inputMeasurementsConfig).then((e=>e.blob())));let o=null;t.pose instanceof Blob?o=t.pose:\"string\"==typeof t.pose&&(o=yield fetch(t.pose).then((e=>e.blob())));let l=null;t.appearanceModel instanceof Blob?l=t.appearanceModel:\"string\"==typeof t.appearanceModel&&(l=yield fetch(t.appearanceModel).then((e=>e.blob())));let c=null;t.customBaseShape instanceof Blob?c=t.customBaseShape:\"string\"==typeof t.customBaseShape&&(c=yield fetch(t.customBaseShape).then((e=>e.blob())));let h=\"\";\"string\"==typeof t.baseShapeType&&(h=t.baseShapeType);const p={bodymodel:t.bodyModelID,config:i,appearanceModel:l,customShape:c,baseShapeType:h,measurementTargets:t.measurements,pose:o,poseType:\"bin\",responseMeshFormat:t.responseMeshFormat,learningRate:\"number\"==typeof t.learningRate?t.learningRate:.1,maxIterations:\"number\"==typeof t.maxIterations?t.maxIterations:1e3,factorThreshold:\"number\"==typeof t.factorThreshold?t.factorThreshold:1e-5},f=yield n;let y;try{y=yield f.createMannequin(p)}catch(n){console.error(n),this._wasmEnabled=!1;const i=yield s.requestPersonalisedMannequin.call(this,t);return this.addWasmLabels(r,!0,e),i}const v=[];return null!==y.resultState&&v.push({key:m.BODYMODELSTATE,blob:y.resultState}),null!==y.resultModel&&(t.responseMeshFormat===b.DRACO?v.push({key:m.MESH,blob:y.resultModel}):t.responseMeshFormat===b.OBJ?v.push({key:m.MESH_LEGACY,blob:y.resultModel}):t.responseMeshFormat===b.GLB&&v.push({key:m.MESH_GLB,blob:y.resultModel})),null!==y.resultVR&&v.push({key:m.VISUAL_REPRESENTATION,blob:y.resultVR}),this.addWasmLabels(r,!1,e),new u(d.AVATAR_3D,v)}))))}finally{null===(i=null===(n=g())||void 0===n?void 0:n.metrics.personalizedMannequinCreationTimeMs)||void 0===i||i.report(Date.now()-a,r.content)}}))}requestInteractiveAvatarEditingInit(s){const n=Object.create(null,{requestInteractiveAvatarEditingInit:{get:()=>super.requestInteractiveAvatarEditingInit}});var i,a;return e(this,void 0,void 0,(function*(){let r=Date.now();const o=y(s)&&s.metricLabels?s.metricLabels:new v;try{if(!this._wasmEnabled){this.printWasmNotSupportedWarning();const e=yield n.requestInteractiveAvatarEditingInit.call(this,s);return this.addWasmLabels(o,!1),e}return yield this._asyncFunctionMutex.dispatch((()=>e(this,void 0,void 0,(function*(){r=Date.now();const e=null!==this._coreWorkerProxyPbmInitialized,i=this.getWorker(),a=yield s.avatar.asset.getKeys(),l=a.includes(m.BODYMODELSTATE)?s.avatar.asset.getComponent(m.BODYMODELSTATE):null,u=a.includes(m.EDITING_INFO)?s.avatar.asset.getComponent(m.EDITING_INFO):null,d=a.includes(m.VISUAL_REPRESENTATION)?s.avatar.asset.getComponent(m.VISUAL_REPRESENTATION):null,c=l?yield l:null,h=d?yield d:null,p=u?yield u:null;if(null==p)throw Error(\"The avatar must include an editing info asset component for editing!\");const b={bodymodel:c,editingInfo:p,visualRepresentation:h,appearanceModel:null,morphFactorOverrides:null},f=yield i;let y;try{y=yield f.initInteractiveAvatarEditing(b)}catch(t){console.error(t),this._wasmEnabled=!1;const i=yield n.requestInteractiveAvatarEditingInit.call(this,s);return this.addWasmLabels(o,!0,e),i}const v=[];s.avatar instanceof S?(null!==y.resultModel&&v.push({key:E.MESH_BODY,blob:y.resultModel}),null!==y.headTransform&&v.push({key:E.HEAD_TRANSFORM,blob:y.headTransform})):null!==y.resultModel&&v.push({key:m.MESH_GLB,blob:y.resultModel});const g=new Map(Object.entries(JSON.parse(y.morphFactorsJson))),M=new Map;for(const[e,t]of g.entries())M.set(e,{value:t.value,min:t.min,max:t.max,alignmentOffsetMatrix:t.alignmentOffsetMatrix?this._matrixFromValuesVector(t.alignmentOffsetMatrix):null,alignmentOffsetMatrixPositive:t.alignmentOffsetMatrixPositive?this._matrixFromValuesVector(t.alignmentOffsetMatrixPositive):null,alignmentOffsetMatrixNegative:t.alignmentOffsetMatrixNegative?this._matrixFromValuesVector(t.alignmentOffsetMatrixNegative):null,type:t.type});return this.addWasmLabels(o,!1,e),{asset:new t(s.avatar.asset,v),morphFactors:M}}))))}finally{null===(a=null===(i=g())||void 0===i?void 0:i.metrics.personalizedMannequinCreationTimeMs)||void 0===a||a.report(Date.now()-r,o.content)}}))}requestInteractiveAvatarEditingApply(s){const n=Object.create(null,{requestInteractiveAvatarEditingApply:{get:()=>super.requestInteractiveAvatarEditingApply}});var i,a;return e(this,void 0,void 0,(function*(){let r=Date.now();const o=y(s)&&s.metricLabels?s.metricLabels:new v;try{if(!this._wasmEnabled){this.printWasmNotSupportedWarning();const e=yield n.requestInteractiveAvatarEditingApply.call(this,s);return this.addWasmLabels(o,!1),e}return yield this._asyncFunctionMutex.dispatch((()=>e(this,void 0,void 0,(function*(){r=Date.now();const e=null!==this._coreWorkerProxyPbmInitialized,i=this.getWorker(),a=yield s.avatar.asset.getKeys(),l=a.includes(m.BODYMODELSTATE)?s.avatar.asset.getComponent(m.BODYMODELSTATE):null,u=a.includes(m.EDITING_INFO)?s.avatar.asset.getComponent(m.EDITING_INFO):null,d=a.includes(m.VISUAL_REPRESENTATION)?s.avatar.asset.getComponent(m.VISUAL_REPRESENTATION):null,c=l?yield l:null,h=d?yield d:null,p=u?yield u:null;if(null==p)throw Error(\"The avatar must include an editing info asset component for editing!\");const b={bodymodel:c,editingInfo:p,visualRepresentation:h,appearanceModel:null,morphFactorOverrides:s.morphFactors},f=yield i;let y;try{y=yield f.initInteractiveAvatarEditing(b)}catch(t){console.error(t),this._wasmEnabled=!1;const i=yield n.requestInteractiveAvatarEditingApply.call(this,s);return this.addWasmLabels(o,!0,e),i}const v=[];return s.avatar instanceof S?(null!==y.resultModel&&v.push({key:E.MESH_BODY,blob:y.resultModel}),null!==y.headTransform&&v.push({key:E.HEAD_TRANSFORM,blob:y.headTransform})):null!==y.resultModel&&v.push({key:m.MESH_GLB,blob:y.resultModel}),null!==y.resultEditingInfo&&v.push({key:m.EDITING_INFO,blob:y.resultEditingInfo}),this.addWasmLabels(o,!1,e),{asset:new t(s.avatar.asset,v)}}))))}finally{null===(a=null===(i=g())||void 0===i?void 0:i.metrics.personalizedMannequinCreationTimeMs)||void 0===a||a.report(Date.now()-r,o.content)}}))}requestInputMeasurements(t,s,n){const i=Object.create(null,{requestInputMeasurements:{get:()=>super.requestInputMeasurements}});return e(this,void 0,void 0,(function*(){const a=Date.now(),r=t=>e(this,void 0,void 0,(function*(){var e,s;return null===(s=null===(e=g())||void 0===e?void 0:e.metrics.inputMeasurementRequestTimeMs)||void 0===s?void 0:s.report(Date.now()-a,t)}));if(!this._wasmEnabled){this.printWasmNotSupportedWarning();const e=yield i.requestInputMeasurements.call(this,t,s,n);return r(this.getWasmLabels(!1)),e}return yield this._asyncFunctionMutex.dispatch((()=>e(this,void 0,void 0,(function*(){const e=null!==this._coreWorkerProxyPbmInitialized,a=this.getWorker();let o=null;s instanceof Blob?o=s:\"string\"==typeof s&&(o=yield fetch(s).then((e=>e.blob())));const l=yield a;try{const s=yield l.getAvatarCreationInputMeasurements(t,o,null!=n?n:null);return r(this.getWasmLabels(!1,e)),s}catch(a){console.error(a),this._wasmEnabled=!1;const o=yield i.requestInputMeasurements.call(this,t,s,n);return r(this.getWasmLabels(!0,e)),o}}))))}))}requestBodyModelState3DToAvatar2DConversion(t){const n=Object.create(null,{requestBodyModelState3DToAvatar2DConversion:{get:()=>super.requestBodyModelState3DToAvatar2DConversion}});var i,a;return e(this,void 0,void 0,(function*(){let r=Date.now();const o=y(t)&&t.metricLabels?t.metricLabels:new v;try{if(!this._wasmEnabled){this.printWasmNotSupportedWarning();const e=yield n.requestBodyModelState3DToAvatar2DConversion.call(this,t);return this.addWasmLabels(o,!1),e}const i=e=>[e.x,e.y,e.z];return yield this._asyncFunctionMutex.dispatch((()=>e(this,void 0,void 0,(function*(){r=Date.now();const a=this.getWorker(),c=Object.assign(Object.assign({},t.cameraProperties),{position:i(t.cameraProperties.position),direction:i(t.cameraProperties.direction),up:i(t.cameraProperties.up)});let h=null,f=null,y=null,v=null;if(t.avatar instanceof S){const e=t.avatar.asset.getComponent(m.VISUAL_REPRESENTATION),s=t.avatar.asset.getComponent(E.MESH_HEAD),n=t.avatar.asset.getComponent(E.MESH_FACE);f=yield e,y=yield s,v=yield n}else h=yield t.avatar.asset.getComponent(m.BODYMODELSTATE);if(!t.returnTryOn2DFiles&&!t.returnNonMinifiedAvatar)throw new Error(\"Either 'returnNonMinifiedAvatar' or 'returnTryOn2DFiles' have to be set to true!\");let g=null;g=\"string\"==typeof t.conversionConfig?yield fetch(t.conversionConfig).then((e=>e.blob())):t.conversionConfig;let M=null;try{M=yield t.avatar.asset.getComponent(m.EDITING_INFO)}catch(e){}const T={bodyModelStateBlob:h,visualRepresentationBlob:f,headMeshBlob:y,faceMeshBlob:v,mannequinRendering:t.mannequinRendering,editingInfo:M,virtualMorphFactors:t.virtualMorphFactors,conversionConfig:g,cameraProperties:c,returnTryOn2DFiles:t.returnTryOn2DFiles,returnNonMinifiedAvatar:t.returnNonMinifiedAvatar,responseMeshFormat:t.responseMeshFormat},D=null!==this._coreWorkerProxyPbmInitialized,w=yield a;let I;try{I=yield w.convertAvatar(T)}catch(e){console.error(e),this._wasmEnabled=!1;const s=yield n.requestBodyModelState3DToAvatar2DConversion.call(this,t);return this.addWasmLabels(o,!0,D),s}const _=[];yield p(I,(n=>e(this,void 0,void 0,(function*(){const e=n.key,i=n.blob;\"upsampledMesh\"===e?t.responseMeshFormat===b.DRACO?_.push({key:s.MESH,blob:i}):t.responseMeshFormat===b.GLB?_.push({key:s.MESH_GLB,blob:i}):_.push({key:s.MESH_LEGACY,blob:i}):\"avatar\"===e?_.push({key:s.AVATAR,blob:i}):\"avatarMinified\"===e?_.push({key:s.AVATAR_MINIFIED,blob:i}):\"diffuseTexture\"===e?_.push({key:s.TEXTURE_DIFFUSE,blob:i}):\"opacityTexture\"===e?_.push({key:s.TEXTURE_OPACITY,blob:i}):\"backsideTexture\"===e&&_.push({key:s.TEXTURE_BACKSIDE,blob:i})}))));const O=new l;return O.asset=new u(d.AVATAR_2D,_),this.addWasmLabels(o,!1,D),O}))))}finally{null===(a=null===(i=g())||void 0===i?void 0:i.metrics.avatar2DCreationProcessingTimeMs)||void 0===a||a.report(Date.now()-r,o.content)}}))}setProviderCreationCallbacks(e,t){this.femaleCallback=e,this.maleCallback=t}}export{_ as ComputeServerWasm};\n","import{__awaiter as e}from\"tslib\";import t from\"../../Rendering/Shaders/SizeVisualization2D.fs.glsl.js\";import r from\"../../Rendering/Shaders/SizeVisualization2D.vs.glsl.js\";import{ShaderMaterial as a}from\"@babylonjs/core/Materials/shaderMaterial\";import{Matrix as o}from\"@babylonjs/core/Maths/math.vector\";import{ShadowGenerator as i}from\"@babylonjs/core/Lights/Shadows/shadowGenerator\";import{SceneTryOn2DRequest as s}from\"../../ComputeServer/Data/VirtualTryOn2D/VirtualTryOn2DRequest.js\";import{Avatar2DAssetKey as n,Avatar2D as l,Avatar2DMaterialData as m}from\"../../Data/Avatar2D.js\";import{Garment2D as d,Garment2DAssetKey as p,Garment2DMaterialData as c}from\"../../Data/Garment2D.js\";import{Garment3D as u}from\"../../Data/Garment3D.js\";import{Scene2DParallax as h}from\"../../Data/Scene2DParallax.js\";import{RenderHelper as v,Constants as b}from\"../../Rendering/RenderHelper.js\";import{VirtualDressingRoomInteractive as f}from\"./VirtualDressingRoomInteractive.js\";import{ArcRotateCamera as T}from\"@babylonjs/core/Cameras/arcRotateCamera\";import{CommonAssetKey as g}from\"../../Data/Asset/CommonAssetKey.js\";import{promiseWithTimeout as y,blob2text as S}from\"../../Util/Util.js\";import{getMetricsConfiguration as _,CsLabels as D}from\"../../Metrics/index.js\";import{createAvatar as j}from\"../../Data/Asset/AssetFactory2D.js\";import\"../../Data/Animation.js\";import\"../../Data/Avatar3D.js\";import\"../../Data/IAccessory.js\";import\"../../Data/Scene3D.js\";import\"../../Data/IAvatar.js\";import\"../../ComputeServer/ComputeServer.js\";import{ComputeServerWasm as w}from\"../../ComputeServer/ComputeServerWasm.js\";import\"../../Data/GarmentGroup.js\";import\"../../ComputeServer/Data/SizeRecommendation/FitCategory.js\";import\"../../ComputeServer/Data/Layouts/SlotLayout/SlotType.js\";import\"../../Data/IGarment.js\";import\"../../Data/HeadAvatar3D.js\";import\"../HeadAvatar3D/InteractiveAvatar3DEditor.js\";import\"@babylonjs/core/assetContainer\";import\"@babylonjs/core/Loading/Plugins/babylonFileLoader\";import\"@babylonjs/core/Loading/sceneLoader\";import\"@babylonjs/core/Meshes/mesh\";import\"@babylonjs/core/Meshes/mesh.vertexData\";import\"@babylonjs/core/Cameras/camera\";import\"@babylonjs/core/Gizmos/planeRotationGizmo\";import\"@babylonjs/core/Meshes/transformNode\";import\"@babylonjs/core/Lights/directionalLight\";import\"@babylonjs/core/Materials/standardMaterial\";import\"@babylonjs/core/Maths/math.color\";import\"@babylonjs/core/Materials/Textures/texture\";import\"@babylonjs/loaders\";import\"../../SceneConfiguration/Parser/V2/BaseNode.js\";import{AssetHelper as A}from\"../../Data/Asset/AssetHelper.js\";import\"../../WebViewer.js\";import\"@babylonjs/core/Engines/engine\";import\"@babylonjs/core/Maths/math\";import\"@babylonjs/core/Materials/imageProcessingConfiguration\";import\"@babylonjs/core/Materials/Textures/cubeTexture\";import\"@babylonjs/core/Materials/fresnelParameters\";import\"@babylonjs/core/Materials/PBR/pbrMetallicRoughnessMaterial\";import\"@babylonjs/core/Materials/PBR/pbrMaterial\";import\"@babylonjs/core/Meshes/Compression/dracoCompression\";import\"@babylonjs/core/Misc/tools\";import\"@babylonjs/core/Meshes/geometry\";import\"@babylonjs/core/Culling/ray\";import\"@babylonjs/core/Rendering/boundingBoxRenderer\";import\"@babylonjs/core/Rendering/outlineRenderer\";import{AverageTimer as E}from\"../../Util/AverageTimer.js\";import{BackgroundMaterial as R}from\"@babylonjs/core/Materials/Background/backgroundMaterial\";import\"@babylonjs/core/Behaviors/Cameras/autoRotationBehavior\";import\"@babylonjs/core/Maths/math.viewport\";import\"../../Rendering/Camera/RRAutoRotationBehavior.js\";import\"../../Rendering/Camera/RRArcRotateCamera.js\";import\"@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent\";import\"@babylonjs/core/Lights/pointLight\";import\"@babylonjs/core/Lights/spotLight\";import\"@babylonjs/core/Helpers/sceneHelpers\";import\"@babylonjs/core/Cameras/freeCamera\";import\"@babylonjs/core/Lights/hemisphericLight\";import\"@babylonjs/core/Meshes/meshBuilder\";import\"@babylonjs/core/Materials/Textures/hdrCubeTexture\";import\"uuid\";import\"../../Data/Asset/AssetType.js\";import\"../../Data/JSONScene.js\";import\"../../ComputeServer/Data/PersonalisedMannequin/MannequinRequestReturnFile.js\";import\"../../ComputeServer/Data/SizeRecommendation/MeasurementCategory.js\";import\"../../ComputeServer/Data/MeshData.js\";import\"../../ComputeServer/Data/SizeRecommendation/OverlayType.js\";import\"../../ComputeServer/Data/Layouts/SlotLayout/ScalingMode.js\";import\"../../PictofitWebSDK.js\";import\"@babylonjs/core/Events/pointerEvents\";import\"../../Data/Asset/LocalStorageAsset.js\";import\"../PersonalisedMannequin/PersonalisedMannequinCreator.js\";import\"./IVirtualDressingRoom.js\";import\"./VirtualDressingRoom2D.js\";import{ArcRotateCameraPointersInput as C}from\"@babylonjs/core/Cameras/Inputs/arcRotateCameraPointersInput\";import{Generic2DMaterialData as M}from\"../../Data/Generic2DMaterialData.js\";import\"@babylonjs/core/PostProcesses/depthOfFieldEffect\";import\"@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline\";import\"../../Rendering/UI/SizeVisualizationConfig.js\";import\"@babylonjs/core/Misc/observable\";import\"@babylonjs/core/Misc/domManagement\";class I extends f{preloadAvatarComponents(t){return e(this,void 0,void 0,(function*(){this.checkAvatarType(t);const e=[];e.push(t.asset.preloadComponent(g.METADATA)),this._computeServer instanceof w&&e.push(t.asset.preloadComponent(n.AVATAR_MINIFIED)),yield Promise.all(e).then((()=>{const e=[];return e.push(A.preloadComponentForPrioritizedKeyList(t.asset,[n.TEXTURE_BACKSIDE_KTX,n.TEXTURE_BACKSIDE,n.TEXTURE_BACKSIDE_LEGACY])),e.push(A.preloadComponentForPrioritizedKeyList(t.asset,[n.TEXTURE_DIFFUSE_OPACITY_KTX,n.TEXTURE_DIFFUSE,n.TEXTURE_DIFFUSE_LEGACY])),e.push(A.preloadComponentForPrioritizedKeyList(t.asset,[n.MESH_GLB,n.MESH,n.MESH_LEGACY])),e.push(t.asset.preloadComponent(n.TEXTURE_ALWAYS_IN_FRONT)),e.push(t.asset.preloadComponent(n.TEXTURE_ALWAYS_IN_FRONT_UV_TRANSFORMATION)),Promise.allSettled(e)}))}))}preloadGarmentComponents(t){return e(this,void 0,void 0,(function*(){if(this.checkGarmentType([t]),!(t instanceof d))return;const e=[];e.push(t.asset.preloadComponent(g.METADATA)),e.push(t.asset.preloadComponent(p.TEXTURE_DIFFUSE_LOW_RES)),e.push(t.asset.preloadComponent(p.TEXTURE_OPACITY_LOW_RES)),e.push(t.asset.preloadComponent(p.TEXTURE_BACKSIDE_LOW_RES)),this._computeServer instanceof w&&e.push(t.asset.preloadComponent(p.GARMENT_MINIFIED)),yield Promise.all(e).then((()=>{const e=[];return e.push(A.preloadComponentForPrioritizedKeyList(t.asset,[p.TEXTURE_BACKSIDE_KTX,p.TEXTURE_BACKSIDE,p.TEXTURE_BACKSIDE_LEGACY])),e.push(A.preloadComponentForPrioritizedKeyList(t.asset,[p.TEXTURE_DIFFUSE_OPACITY_KTX,p.TEXTURE_DIFFUSE,p.TEXTURE_DIFFUSE_LEGACY])),Promise.all(e)}))}))}preloadSceneComponents(t){return e(this,void 0,void 0,(function*(){yield t.preloadComponents()}))}createAvatar(t){return e(this,void 0,void 0,(function*(){return j(t)}))}createGarment(t){return e(this,void 0,void 0,(function*(){return new d(t)}))}createScene(t){return e(this,void 0,void 0,(function*(){return new h(t)}))}checkAvatarType(e){if(e&&!(e instanceof l))throw new Error(\"This VDR only accepts Avatar2D instances. Please use the provided factory method createAvatar() to initiate your avatars!\")}checkGarmentType(e){if(e)for(const t of e)if(t&&!(t instanceof u||t instanceof d))throw new Error(\"This VDR only accepts Garment2D and Garment3D instances. Please use the provided factory method createGarment() to initiate your garments!\")}performTryOn(){var t,r,a,i,n;return e(this,void 0,void 0,(function*(){if(!this._garments||0===this._garments.length||!this._avatar)return;console.log(`VirtualDressingRoom2DParallax.performTryOn() - useRigidTryon: ${String(this.useRigidTryon)}`);const e=Date.now(),l=this._avatar,p=new s;p.garments=this._garments,p.avatar=this._avatar,p.computeShadows=!0,p.returnGarmentMeshVertexBufferOnly=!0,this._animation&&(p.doSkinning=yield this.doAssetsHaveSkinningInfo());let u,h=null;const b=new D;p.metricLabels=b;const f=()=>{this._garments&&(u=this._garments.map((e=>c.create(e,this.webViewer))),this._avatarNeedsVisualUpdate&&(h=m.create(l,this.webViewer)))};let T,g=E.start(\"tryon request parallax\");this.useRigidTryon?T=yield this._computeServer.requestVirtualTryOn2DRigid(p,f):(p.returnGarmentMeshVertexBufferOnly=!1,T=yield this._computeServer.requestVirtualTryOn2D(p,f));const S=T.fittedGarments;E.end(g);let j=!1;if(this.useRigidTryon){const e=y(new Promise((e=>{const t=()=>{j?e():(this._webViewer.scene.render(),setTimeout(t,30))};t()})),3e4,\"Loading avatar and garments in scene\");this._tryOnFinishedPromises.push(this.performTryonNonLinear(l,p,e).catch((e=>{if(!(e instanceof Error)||\"AbortError\"!==e.name)throw e})))}g=E.start(\"create avatar visualization\"),this._avatarNeedsVisualUpdate&&(l.materialData=h,yield l.createVisualisation(this._webViewer,!0)),E.end(g),g=E.start(\"create garments visualization\");const w=S.map(((e,t)=>(e instanceof d&&(e.materialData=u[t]),e.createVisualisation(this._webViewer,!0))));yield Promise.all(w),E.end(g),g=E.start(\"attach avatar\");let A=!1;this._avatarNeedsVisualUpdate&&(this.attachAvatarToPlaceholder(l),this._avatarNeedsVisualUpdate=!1,A=!0),E.end(g),g=E.start(\"set garments\"),l.setGarments(S),E.end(g),this.useRigidTryon?(g=E.start(\"resetting oc mask & shadow texture image\"),l.createRigidAnimation(),l.setOverlapCorrectionMask(v.createWhite1x1Texture(this._webViewer)),l.setShadowTexture(v.createWhite1x1Texture(this._webViewer),o.Identity())):(l.tryonAnimationProgress=1,g=E.start(\"update avatar from tryon response\"),yield this.updateAvatarFromTryonResponse(T,l)),E.end(g),g=E.start(\"show all meshes\"),this.showAllMeshes(l,S),E.end(g),g=E.start(\"cleanup loaded data\"),A&&(yield this.cleanupLoadedAvatars()),yield this.cleanupLoadedFittedGarments(),E.end(g),this._fittedGarmentsLoadedInScene=S,A&&(this._avatarLoadedInScene=this._avatar),j=!0,g=E.start(\"set animation\"),p.doSkinning?null===(t=this._animation)||void 0===t||t.play(!0):(null===(r=this.animation)||void 0===r||r.pause(),null===(a=this.animation)||void 0===a||a.reset()),E.end(g),Promise.all(this._tryOnFinishedPromises).then((()=>{this._tryOnFinishedCallback&&this._tryOnFinishedCallback(l,p.garments)})),null===(n=null===(i=_())||void 0===i?void 0:i.metrics.dressingRoomTryOnProcessingTimeMs)||void 0===n||n.report(Date.now()-e,Object.assign(Object.assign({},b.content),{numGarments:this._garments.length,avatarCreated:A?1:0}))}))}performTryonNonLinear(t,r,a){var o;return e(this,void 0,void 0,(function*(){let e=E.start(\"tryon non-linear request\");const i=yield this._computeServer.requestVirtualTryOn2D(r);if(E.end(e),e=E.start(\"tryon non-linear wait for avatar and garment loaded in scene\"),yield a,E.end(e),(null===(o=this._avatarLoadedInScene)||void 0===o?void 0:o.uuid)!=t.uuid)return void console.log(\"avatar changed during nonlinear fitting!\");const s=i.fittedGarments;yield this.updateAvatarFromTryonResponse(i,t),e=E.start(\"tryon non-linear update garment visualizations\");let n=!0;for(const e of this._fittedGarmentsLoadedInScene){let t=!1;for(const r of s)if(e.garmentOriginal.uuid==r.garmentOriginal.uuid&&e instanceof d&&r instanceof d){e.asset=r.asset,e.alphaMultiplicationMask=r.alphaMultiplicationMask,e.frontsideShadowTextureImage=r.frontsideShadowTextureImage,e.frontsideShadowTextureMeshToUVTransformation=r.frontsideShadowTextureMeshToUVTransformation,e.backsideShadowTextureImage=r.backsideShadowTextureImage,e.backsideShadowTextureMeshToUVTransformation=r.backsideShadowTextureMeshToUVTransformation,yield e.updateVisualisation(),t=!0;break}n&&(n=t)}E.end(e),n&&(t.createTryonAnimation(),this.updateShadowCasters())}))}updateAvatarFromTryonResponse(t,r){return e(this,void 0,void 0,(function*(){const e=t.avatarOverlapCorrectionMask,a=t.avatarShadowTextureUVTransformation,o=t.avatarShadowTextureImage;let i=E.start(\"update avatar OC mask\");const s=e?yield r.createOverlapCorrectionMaskTexture(this._webViewer,e):v.createWhite1x1Texture(this._webViewer);r.setOverlapCorrectionMask(s),E.end(i),i=E.start(\"update avatar shadow texture\");const n=o?yield r.createOverlapCorrectionMaskTexture(this._webViewer,o):v.createWhite1x1Texture(this._webViewer);r.setShadowTexture(n,a),E.end(i)}))}getSizeVisualizationFacetSortingEnabled(){return!1}enableSizeVisualisation(t,r){var a,o;return e(this,void 0,void 0,(function*(){const e=Date.now(),i=new D,s=yield this.enableSizeVisualisationImpl(t,r,i);return null===(o=null===(a=_())||void 0===a?void 0:a.metrics.dressingRoomEnableSizeVisualisationProcessingTimeMs)||void 0===o||o.report(Date.now()-e,i.content),s}))}requestSizeVisualisation(e){return this._computeServer.requestSizeVisualisation2D(e)}createSizeVisualizationMaterial(e,i,s){const n=new a(e,this._webViewer.scene,{vertexSource:r,fragmentSource:t},{attributes:[\"position\",\"uv\",\"color\"],uniforms:[\"worldViewProjection\",\"uModelInv\",\"uViewPos\",\"uUpsampling3DEnabled\",\"uEnableZFightingPrevention\",\"uMaxZFightingPreventionDepthOffset\"],samplers:[\"uTextureBacksideArea\"],needAlphaBlending:!0,needAlphaTesting:!0});n.forceDepthWrite=!0,n.needDepthPrePass=!0,n.backFaceCulling=!1;const l=s.getTextureBacksideArea();return l&&n.setTexture(\"uTextureBacksideArea\",l),n.setInt(\"uUpsampling3DEnabled\",1),n.setInt(\"uEnableZFightingPrevention\",1),n.setFloat(\"uMaxZFightingPreventionDepthOffset\",b.SCREEN_SPACE_DEPTH_OFFSET_GARMENTS_SELF_OVERLAP),i.onBeforeDrawObservable.add((()=>{const e=new o,t=this._webViewer.scene.activeCamera.position;i.computeWorldMatrix(!0),i.getWorldMatrix().invertToRef(e),n.setMatrix(\"uModelInv\",e),n.setVector3(\"uViewPos\",t)})),n}resetAvatarOverlapCorrectionData(){const e=this._avatar;e&&(e.setOverlapCorrectionMask(v.createWhite1x1Texture(this._webViewer)),e.setShadowTexture(v.createWhite1x1Texture(this._webViewer),o.Identity()))}updateSizeVisualizationMeshRenderIndex(e){const t=this._avatar.getHighestRenderingIndex()+1;v.setRenderingGroupId(e,b.AVATAR_RENDERING_GROUP_ID),v.setRenderingIndex(e,t,!0)}sceneUpdated(){var e;this.updateUnlitMaterials();for(const e of this._webViewer.scene.lights){const t=e.getShadowGenerator();t&&t instanceof i&&(t.transparencyShadow=!0)}for(const t of this.getSceneGizmos())null===(e=t._rootMesh)||void 0===e||e.dispose(void 0,!0),t.dispose();const t=this._webViewer.scene.activeCamera;if(t instanceof T){const e=7.5*Math.PI/180,r=3.75*Math.PI/180;(!t.upperBetaLimit||!t.lowerBetaLimit||t.upperBetaLimit-t.lowerBetaLimit>2*r)&&(t.upperBetaLimit=t.beta+r,t.lowerBetaLimit=t.beta-r),(!t.upperAlphaLimit||!t.lowerAlphaLimit||t.upperAlphaLimit-t.lowerAlphaLimit>2*e)&&(t.upperAlphaLimit=t.alpha+e,t.lowerAlphaLimit=t.alpha-e);const a=t.inputs.attached.pointers;a instanceof C&&(a.pinchZoom=!1,a.multiTouchPanAndZoom=!1,a.multiTouchPanning=!1)}}doAssetsHaveSkinningInfo(){return e(this,void 0,void 0,(function*(){if(!this._avatar)return!1;if((yield this._avatar.asset.getKeys()).includes(n.MESH_GLB)){if(!this._garments)return!0;for(const e of this._garments){const t=yield e.asset.getComponent(g.METADATA).then((e=>S(e))),r=JSON.parse(t);if(!(\"hasSkinningInformation\"in r))return console.warn(`Garment [${e.uuid}] doesn't have skinning information`),!1;if(!r.hasSkinningInformation)return console.warn(`Garment [${e.uuid}] doesn't have skinning information`),!1}return!0}return!1}))}updateUnlitMaterials(){var e,t;M.useUnlitTextures=!1;for(const e of this.webViewer.scene.materials)e instanceof R&&(M.useUnlitTextures=!0);for(const t of this._fittedGarmentsLoadedInScene)t instanceof d&&(null===(e=t.materialData)||void 0===e||e.then((e=>{e.updateMaterialUnlit()})).catch((e=>{console.error(e)})));this._avatarLoadedInScene instanceof l&&(null===(t=this._avatarLoadedInScene.materialData)||void 0===t||t.then((e=>e.updateMaterialUnlit())).catch((e=>console.error(e))))}}export{I as VirtualDressingRoom2DParallax};\n","var e=\"precision highp float;attribute vec3 position;attribute vec2 uv;attribute vec4 color;uniform mat4 worldViewProjection,uModelInv;uniform vec3 uViewPos;uniform int uUpsampling3DEnabled,uEnableZFightingPrevention;uniform float uMaxZFightingPreventionDepthOffset;\\n#ifdef WEBGL2\\nout vec2 vUV;out vec4 vColor;\\n#else\\nvarying vec2 vUV;varying vec4 vColor;\\n#endif\\nvoid main(){vec4 vertexPos=vec4(position,1.);gl_Position=worldViewProjection*vertexPos;if(uUpsampling3DEnabled==1){vec3 planeNormal=vec3(0.,0.,1.);vec4 plane=vec4(planeNormal,0.);vec3 origin=vertexPos.xyz,direction=vertexPos.xyz-(uModelInv*vec4(uViewPos,1.)).xyz;direction=normalize(direction);float planeDistance=dot(planeNormal*plane.w-origin,planeNormal)/dot(direction,planeNormal);vec3 planeIntersectionPoint=origin+direction*planeDistance;vec4 planeIntersectionPointScreenSpace=worldViewProjection*vec4(planeIntersectionPoint,1.);gl_Position.z=planeIntersectionPointScreenSpace.z/planeIntersectionPointScreenSpace.w*gl_Position.w;}if(uEnableZFightingPrevention!=0)gl_Position.z=gl_Position.z-uMaxZFightingPreventionDepthOffset*(.5-abs(uv.x-.5))*gl_Position.w;vUV=uv;vColor=color;}\";export{e as default};\n","var e=\"precision highp float;\\n#ifdef WEBGL2\\nin vec2 vUV;in vec4 vColor;\\n#else\\nvarying vec2 vUV;varying vec4 vColor;\\n#endif\\nuniform sampler2D uTextureBacksideArea;void main(){vec4 color=vColor;color.w=color.w*texture2D(uTextureBacksideArea,vUV).x;gl_FragColor=color;}\";export{e as default};\n","export class Mutex {\n private _queue: Array<() => void> = [];\n private _isLocked = false;\n\n constructor() {}\n\n isLocked(): boolean {\n return this._isLocked;\n }\n\n private aquire = (): Promise => {\n if (this._isLocked === false) {\n this._isLocked = true;\n return Promise.resolve();\n }\n return new Promise((r) => this._queue.push(r));\n };\n\n private release = () => {\n if (this._queue.length > 0) {\n const next = this._queue.shift();\n if (next !== undefined) {\n next();\n }\n } else {\n this._isLocked = false;\n }\n };\n\n exec(fn: () => T | PromiseLike): Promise {\n return this.aquire().then(() => {\n return Promise.resolve()\n .then(fn)\n .then(\n (result) => {\n this.release();\n return result;\n },\n (err) => {\n this.release();\n throw err;\n },\n );\n });\n }\n}\n","\n
    \n \n
    \n Loading...\n
    \n
    \n {{ spinnerStatus.text }}...\n
    \n
    \n \n\n","import { Component, Input } from '@angular/core';\nimport { ISpinnerModel } from '../../interfaces/spinner.model';\n\n@Component({\n selector: 'app-overlay-spinner',\n templateUrl: './overlay-spinner.component.html',\n styleUrls: ['./overlay-spinner.component.scss'],\n})\nexport class OverlaySpinnerComponent {\n @Input() spinnerStatus: ISpinnerModel;\n\n constructor() {}\n}\n","
    \n \n\n \n \n \n \n \n
    \n {{ warningMessage }}\n
    \n
    \n\n","/* eslint-disable max-lines-per-function */\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {\n AccessoryMetadata,\n AccessoryPositionInfo,\n ComputeServerWasm,\n IAccessory,\n IAvatar,\n IGarment,\n IScene,\n IVirtualDressingRoom,\n PictofitWebHTMLElement,\n VirtualDressingRoom2D,\n VirtualDressingRoom2DParallax,\n VirtualDressingRoom3D,\n VirtualDressingRoomFactory,\n VirtualTryOn3DDebugInformation,\n WebViewer,\n} from '@reactivereality/pictofit-web-sdk';\nimport { IVDRDisplay, IVDRStatus } from '../interfaces/vdressing-room';\nimport { ILogger } from '../../logging';\nimport { ViewerMode } from '../data/api';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport { Mutex } from '../utils/mutex';\nimport { bufferTime, distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { ISpinnerModel } from '../interfaces/spinner.model';\nimport * as _ from 'lodash';\nimport { AvatarService } from '../data/services/avatar.service';\nimport { RRIDressingRoomSettings } from '../interfaces/dressing-room-settings';\nimport { IScreenShotService } from '../../core/interfaces/i-screenshot';\nimport { sleep } from '../utils/utilities';\n\nimport wasmInfo from '@reactivereality-public/pictofit-core-wasm/package.json';\nimport { IAccessoryAsset } from '../interfaces/assets';\n\ncustomElements.define('pictofit-web', PictofitWebHTMLElement);\n\n@Component({\n selector: 'rr-virtual-dressing-room',\n templateUrl: './virtual-dressing-room.component.html',\n styleUrls: ['./virtual-dressing-room.component.scss'],\n})\nexport class VirtualDressingRoomComponent\n implements AfterViewInit, OnDestroy, IScreenShotService\n{\n // Needed components\n private viewer: WebViewer | undefined = undefined;\n private computeServer: ComputeServerWasm | undefined = undefined;\n private virtualDressingRoom: IVirtualDressingRoom | undefined = undefined;\n private changeSubscription: Subscription | undefined = undefined;\n private resetSubscription: Subscription | undefined = undefined;\n private currentTargetState: IVDRDisplay | undefined = undefined;\n private currentState: IVDRDisplay | undefined = undefined;\n private running: boolean = false;\n private reconcileInProgress: boolean = false;\n public showSizeRecommendation: boolean = false;\n\n private reconcileMutex: Mutex = new Mutex();\n private _onDestroy$: Subject = new Subject();\n\n @Input() vdrReset$: Subject;\n @Input() vdrChange$: Subject;\n @Input() vdrStatus$: BehaviorSubject;\n @Input() settings: RRIDressingRoomSettings;\n @Input() token: string = undefined;\n @Input() warningMessage: string;\n\n private mode: ViewerMode = undefined;\n public spinner: ISpinnerModel = {\n show: false,\n text: 'Loading preview',\n id: 'vdr',\n };\n private _spinnerCounter = 0;\n\n @ViewChild('PictofitWeb') pictofitWeb: ElementRef;\n\n @HostListener('window:resize')\n onResize() {\n if (this.viewer) {\n this.viewer.resize();\n }\n this.virtualDressingRoom?.refresh();\n }\n constructor(private logger: ILogger, public avatarService: AvatarService) {}\n\n async takeScreenshot(height?: number, width?: number): Promise {\n const origWidth = this.viewer.canvas.width;\n const origHeigth = this.viewer.canvas.height;\n try {\n this.viewer.doRender = false;\n this.viewer.scene.useConstantAnimationDeltaTime = true;\n\n // Temporary hack because takeScreenshot always returns blurry image\n this.viewer.canvas.width = width ?? 1024;\n this.viewer.canvas.height = height ?? 1024;\n\n const canvasType = 'image/png';\n\n // render twice to make sure everything is rendered\n for (let i = 0; i < 2; i++) {\n this.viewer.scene.render();\n }\n\n const image = this.viewer.canvas.toDataURL(canvasType);\n\n return image;\n } catch (e) {\n } finally {\n this.viewer.doRender = true;\n this.viewer.canvas.width = origWidth;\n this.viewer.canvas.height = origHeigth;\n }\n // this.viewer.performanceMonitor.stopMonitoring();\n // const data = await this.viewer.takeScreenshot({\n // height: height ?? 1024,\n // width: width ?? 1024,\n // });\n\n // const screenshot = await (await fetch(data)).blob();\n // this.saveBlob(screenshot, \"screenshot.jpg\");\n\n // return data;\n }\n\n saveBlob(blob: Blob, fileName: string) {\n const a = document.createElement('a');\n document.body.appendChild(a);\n a.style.cssText = 'display: none';\n const url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n }\n\n async ngAfterViewInit(): Promise {\n this.viewer = new WebViewer(this.pictofitWeb.nativeElement);\n this.viewer.performanceMonitor.stopMonitoring();\n this.viewer.resize();\n // await this.viewer.scene.debugLayer.show({ embedMode: true })\n const computeServerUrl = this.settings.computeServerUrl;\n if (computeServerUrl === undefined) {\n throw new Error(`Failed to initial webviewer, missing computeServerUrl!`);\n }\n this.computeServer = new ComputeServerWasm(\n computeServerUrl,\n {},\n `https://cdn.pictofit.com/pictofit-core-wasm/v${wasmInfo.version}/rr_pictofit_core_wrapper.wasm`,\n );\n this.computeServer.setProviderCreationCallbacks(\n async () => {\n return fetch('https://cdn.pictofit.com/bm3d/default_female.bin').then(\n (r) => r.blob(),\n );\n },\n async () => {\n return fetch('https://cdn.pictofit.com/bm3d/default_male.bin').then(\n (r) => r.blob(),\n );\n },\n );\n\n if (this.vdrReset$) {\n this.resetSubscription = this.vdrReset$.subscribe(async () => {\n if (this.virtualDressingRoom) {\n if (this.virtualDressingRoom instanceof VirtualDressingRoom3D) {\n this.virtualDressingRoom.avatar = null;\n this.virtualDressingRoom.garments = [];\n await this.virtualDressingRoom.refresh();\n } else {\n await this.virtualDressingRoom.cleanup();\n await this.virtualDressingRoom.refresh();\n }\n }\n });\n }\n\n this.changeSubscription = this.vdrChange$\n .pipe(bufferTime(250))\n .pipe(filter((v) => v.length > 0))\n .pipe(map((array) => array[array.length - 1]))\n .pipe(\n distinctUntilChanged((prev, curr) => {\n return _.isEqual(prev, curr);\n }),\n )\n .subscribe((state) => {\n this.currentTargetState = state;\n this.applyState();\n });\n\n // /*\n // this.mainCanvas.nativeElement.onresize = (e) => {\n // const dispHeight = this.mainCanvas.nativeElement.clientHeight;\n // const dispWidth = this.mainCanvas.nativeElement.clientWidth;\n // const vpHeight = this.mainCanvas.nativeElement.height;\n // const vpWidth = this.mainCanvas.nativeElement.width;\n // this.logger.debug(\n // `Main canvas resize: Display: ${dispWidth}x${dispHeight} vs ${vpWidth}x${vpHeight}`,\n // );\n\n // if (dispHeight !== vpHeight || dispWidth !== vpWidth) {\n // this.mainCanvas.nativeElement.height = dispHeight;\n // this.mainCanvas.nativeElement.width = dispWidth;\n // }\n // };\n // */\n\n this.running = true;\n // this.reconcile();\n this.applyState();\n }\n\n reconcile = async () => {\n try {\n while (this.running) {\n if (!this.reconcileInProgress) {\n await this.applyState();\n }\n await sleep(1000);\n }\n } catch (e) {\n this.logger.error(`Reconcile error`, e);\n }\n };\n\n applyState = async (): Promise => {\n const exec = Math.floor(Math.random() * 100);\n return await this.reconcileMutex.exec(async () => {\n const targetRequest = this.currentTargetState;\n if (!targetRequest?.mode) return;\n if (this.virtualDressingRoom) {\n this.virtualDressingRoom.webViewer.doRender = true;\n }\n this.logger.debug(`VDR (${exec}) refresh `, targetRequest);\n let currentMode: ViewerMode;\n if (this.virtualDressingRoom instanceof VirtualDressingRoom3D) {\n currentMode = ViewerMode.MODE_3D;\n } else if (\n this.virtualDressingRoom instanceof VirtualDressingRoom2DParallax\n ) {\n currentMode = ViewerMode.MODE_2D_PARALLAX;\n } else if (this.virtualDressingRoom instanceof VirtualDressingRoom2D) {\n currentMode = ViewerMode.MODE_2D;\n }\n if (currentMode !== targetRequest.mode) {\n switch (targetRequest.mode) {\n case ViewerMode.MODE_2D:\n // assertion to keep typings happy below...\n if (this.settings.type !== '2D') break;\n\n this.mode = ViewerMode.MODE_2D;\n this.virtualDressingRoom =\n VirtualDressingRoomFactory.createDressingRoom2D(\n this.viewer,\n this.computeServer,\n );\n (\n this.virtualDressingRoom as VirtualDressingRoom2D\n ).backgroundHidden = false;\n\n // set the render padding to 20%...\n (this.virtualDressingRoom as VirtualDressingRoom2D).padding =\n this.settings.padding ?? 0;\n break;\n case ViewerMode.MODE_2D_PARALLAX: {\n this.mode = ViewerMode.MODE_2D_PARALLAX;\n this.virtualDressingRoom =\n VirtualDressingRoomFactory.createDressingRoom2DParallax(\n this.viewer,\n this.computeServer,\n );\n break;\n }\n default:\n case ViewerMode.MODE_3D:\n this.mode = ViewerMode.MODE_3D;\n this.virtualDressingRoom =\n VirtualDressingRoomFactory.createDressingRoom3D(\n this.viewer,\n this.computeServer,\n );\n break;\n }\n if (this.virtualDressingRoom) {\n await this.virtualDressingRoom.cleanup();\n }\n }\n\n if (this.virtualDressingRoom === undefined) {\n return false;\n }\n let error = undefined;\n // we need to change something\n try {\n this.vdrStatus$.next({\n ...this.vdrStatus$.value,\n loading: true,\n });\n this.manageSpinner(true);\n\n if (targetRequest !== undefined) {\n // Setting up avatar\n await this.setupAvatar(targetRequest);\n\n // Setting up scene\n if (this.mode !== ViewerMode.MODE_2D) {\n await this.setupScene(targetRequest);\n }\n\n // Setting up garments\n await this.setupGarments(targetRequest);\n\n // Setting up accessories\n await this.setupAccessories(targetRequest);\n\n // Enable physics\n if (this.mode === ViewerMode.MODE_3D) {\n this.setupPhysics();\n }\n\n try {\n this.logger.debug(\n `[VDR] (${exec}) enter`,\n this.virtualDressingRoom,\n );\n await this.virtualDressingRoom?.refresh();\n } finally {\n if (targetRequest.mode !== ViewerMode.MODE_2D) {\n this.viewer.postProcessingEnabled = true;\n }\n this.logger.debug(`[VDR] (${exec}) exit`);\n }\n }\n // we sucessfully mirated to the new state\n this.currentState = targetRequest;\n this.running = false;\n return true;\n } catch (e) {\n if (e instanceof Error) {\n if (\n e.message.startsWith(\n 'Operation not permitted due to async function being currently processed.',\n )\n ) {\n // retry ...\n this.logger.warn(\n `VDR is still processing a request, retrying in 100 MS`,\n e,\n );\n }\n }\n this.logger.error(`Failed to apply virtual dressing room settings!`, e);\n this.logger.error(e.stack);\n error = `Failed to apply virtual dressing room settings!`;\n } finally {\n this.vdrStatus$.next({\n ...this.vdrStatus$.value,\n error,\n loading: false,\n });\n this.manageSpinner(false);\n }\n });\n };\n\n private async setupAvatar(targetRequest: IVDRDisplay) {\n let avatar: IAvatar | null = null;\n if (targetRequest.avatar !== null) {\n avatar = await this.virtualDressingRoom.createAvatar(\n targetRequest.avatar.asset,\n );\n }\n this.virtualDressingRoom.avatar = avatar;\n }\n\n private async setupScene(targetRequest: IVDRDisplay): Promise {\n let scene: IScene | null = null;\n if (targetRequest.scene !== null) {\n scene = await this.virtualDressingRoom.createScene(\n targetRequest.scene.asset,\n );\n }\n this.virtualDressingRoom.scene = scene;\n }\n\n private async setupAccessories(targetRequest: IVDRDisplay) {\n let accessories: Array<[any, IAccessory]> = [];\n if (!targetRequest.accessories) return;\n accessories = [];\n for (const pos of Object.values(AccessoryPositionInfo)) {\n const slot = pos.toUpperCase();\n const accessory: IAccessoryAsset = targetRequest.accessories?.[slot];\n if (accessory) {\n const meta: AccessoryMetadata = new AccessoryMetadata(pos);\n const accessoryInput: IAccessory =\n await this.virtualDressingRoom.createAccessory(\n targetRequest.accessories[slot].asset,\n meta,\n );\n accessories.push([accessory.id, accessoryInput]);\n }\n }\n const t = accessories.map(([_, accessory]) => accessory);\n this.virtualDressingRoom.accessories = t;\n }\n\n private async setupGarments(\n targetRequest: IVDRDisplay,\n ): Promise> {\n let garments: Array<[string, IGarment]> = [];\n\n if (targetRequest.garments !== null) {\n garments = [];\n for (const garment of targetRequest.garments) {\n const garmentInput = await this.virtualDressingRoom.createGarment(\n garment.asset,\n );\n\n if (targetRequest.mode === ViewerMode.MODE_3D) {\n garmentInput.stylingTemplateParametersJSON = JSON.stringify(\n garment.stylingOptions ?? {},\n );\n }\n\n garments.push([garment.id, garmentInput]);\n }\n }\n\n this.virtualDressingRoom.garments = garments.map(([_, garment]) => garment);\n if (this.mode != ViewerMode.MODE_2D) {\n this.virtualDressingRoom.focusGarment = null;\n if (targetRequest.focusedGarment !== null) {\n const garment = garments.find(\n ([id, _]) => id === targetRequest.focusedGarment,\n );\n if (garment) {\n //TODO: Reactivate when focusing is fixed.\n //this.virtualDressingRoom.focusGarment = garment[1];\n } else {\n this.logger.warn(\n `Can't find garment for requested focus!!`,\n targetRequest.focusedGarment,\n );\n }\n }\n }\n return garments;\n }\n\n setupPhysics() {\n if (this.virtualDressingRoom instanceof VirtualDressingRoom3D) {\n this.virtualDressingRoom.enablePhysicsSimulation = true;\n this.virtualDressingRoom.emitTryOnDebugEvents = true;\n this.virtualDressingRoom.addEventListener(\n 'tryOnDebugInformation',\n (info) => {\n this.logger.debug(\n `========================================================`,\n );\n this.logger.debug(`TryOn debug information`, info);\n this.logger.debug(\n (info as VirtualTryOn3DDebugInformation).sceneDescription,\n );\n this.logger.debug(\n `========================================================`,\n );\n },\n );\n }\n }\n\n async ngOnDestroy(): Promise {\n this.logger.debug(`Destroying VDR`);\n this.running = false;\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$ = undefined;\n if (this.changeSubscription !== undefined) {\n this.changeSubscription.unsubscribe();\n this.changeSubscription = undefined;\n }\n\n if (this.resetSubscription !== undefined) {\n this.resetSubscription.unsubscribe();\n this.resetSubscription = undefined;\n }\n\n if (this.virtualDressingRoom !== undefined) {\n this.virtualDressingRoom.cleanup();\n this.virtualDressingRoom = null;\n }\n this.computeServer = undefined;\n this.viewer = undefined;\n }\n\n public manageSpinner(isLoading) {\n if (isLoading === false) {\n this._spinnerCounter--;\n }\n if (isLoading === true) {\n this._spinnerCounter++;\n }\n if (this._spinnerCounter > 0) {\n this.spinner.show = true;\n }\n if (this._spinnerCounter === 0) {\n this.spinner.show = false;\n }\n }\n}\n","import{VirtualDressingRoom2D as r}from\"./VirtualDressingRoom2D.js\";import{VirtualDressingRoom2DParallax as o}from\"./VirtualDressingRoom2DParallax.js\";import{VirtualDressingRoom3D as n}from\"./VirtualDressingRoom3D.js\";function t(o,n){return new r(o,n)}function i(r,n){return new o(r,n)}function e(r,o){return new n(r,o)}export{t as createDressingRoom2D,i as createDressingRoom2DParallax,e as createDressingRoom3D};\n","import { Subscription } from '../Subscription';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { arrRemove } from '../util/arrRemove';\nimport { asyncScheduler } from '../scheduler/async';\nimport { popScheduler } from '../util/args';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function bufferTime(bufferTimeSpan, ...otherArgs) {\n var _a, _b;\n const scheduler = (_a = popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : asyncScheduler;\n const bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null;\n const maxBufferSize = otherArgs[1] || Infinity;\n return operate((source, subscriber) => {\n let bufferRecords = [];\n let restartOnEmit = false;\n const emit = (record) => {\n const { buffer, subs } = record;\n subs.unsubscribe();\n arrRemove(bufferRecords, record);\n subscriber.next(buffer);\n restartOnEmit && startBuffer();\n };\n const startBuffer = () => {\n if (bufferRecords) {\n const subs = new Subscription();\n subscriber.add(subs);\n const buffer = [];\n const record = {\n buffer,\n subs,\n };\n bufferRecords.push(record);\n executeSchedule(subs, scheduler, () => emit(record), bufferTimeSpan);\n }\n };\n if (bufferCreationInterval !== null && bufferCreationInterval >= 0) {\n executeSchedule(subscriber, scheduler, startBuffer, bufferCreationInterval, true);\n }\n else {\n restartOnEmit = true;\n }\n startBuffer();\n const bufferTimeSubscriber = createOperatorSubscriber(subscriber, (value) => {\n const recordsCopy = bufferRecords.slice();\n for (const record of recordsCopy) {\n const { buffer } = record;\n buffer.push(value);\n maxBufferSize <= buffer.length && emit(record);\n }\n }, () => {\n while (bufferRecords === null || bufferRecords === void 0 ? void 0 : bufferRecords.length) {\n subscriber.next(bufferRecords.shift().buffer);\n }\n bufferTimeSubscriber === null || bufferTimeSubscriber === void 0 ? void 0 : bufferTimeSubscriber.unsubscribe();\n subscriber.complete();\n subscriber.unsubscribe();\n }, undefined, () => (bufferRecords = null));\n source.subscribe(bufferTimeSubscriber);\n });\n}\n","/**\n * @license Angular v17.3.12\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, AnimationMetadataType, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/core';\n\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode &&\n `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode &&\n \"animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))\");\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode &&\n `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode &&\n `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode &&\n `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode &&\n `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map((err) => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map((err) => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode &&\n `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors\n .map((err) => err.message)\n .join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode &&\n `Unable to animate due to the following errors:${LINE_START}${errors\n .map((err) => err.message)\n .join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode &&\n `Unable to build the animation due to the following errors: ${errors\n .map((err) => err.message)\n .join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && \"The requested animation doesn't exist or has already been destroyed\");\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode &&\n `Unable to create the animation due to the following errors:${errors\n .map((err) => err.message)\n .join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode &&\n `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode &&\n `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode &&\n `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode &&\n `Unable to process animations due to the following failed trigger transitions\\n ${errors\n .map((err) => err.message)\n .join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode &&\n `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors\n .map((err) => err.message)\n .join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map((err) => err.message).join('\\n- ')}`);\n}\n\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = new Set([\n '-moz-outline-radius',\n '-moz-outline-radius-bottomleft',\n '-moz-outline-radius-bottomright',\n '-moz-outline-radius-topleft',\n '-moz-outline-radius-topright',\n '-ms-grid-columns',\n '-ms-grid-rows',\n '-webkit-line-clamp',\n '-webkit-text-fill-color',\n '-webkit-text-stroke',\n '-webkit-text-stroke-color',\n 'accent-color',\n 'all',\n 'backdrop-filter',\n 'background',\n 'background-color',\n 'background-position',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-width',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image-outset',\n 'border-image-slice',\n 'border-image-width',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-width',\n 'border-left',\n 'border-left-color',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-width',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-shadow',\n 'caret-color',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-width',\n 'column-width',\n 'columns',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-grow',\n 'flex-shrink',\n 'font',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'grid-column-gap',\n 'grid-gap',\n 'grid-row-gap',\n 'grid-template-columns',\n 'grid-template-rows',\n 'height',\n 'inline-size',\n 'input-security',\n 'inset',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'left',\n 'letter-spacing',\n 'line-clamp',\n 'line-height',\n 'margin',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'mask',\n 'mask-border',\n 'mask-position',\n 'mask-size',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-lines',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-width',\n 'padding',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'perspective',\n 'perspective-origin',\n 'right',\n 'rotate',\n 'row-gap',\n 'scale',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-coordinate',\n 'scroll-snap-destination',\n 'scrollbar-color',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'tab-size',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-indent',\n 'text-shadow',\n 'text-underline-offset',\n 'top',\n 'transform',\n 'transform-origin',\n 'translate',\n 'vertical-align',\n 'visibility',\n 'width',\n 'word-spacing',\n 'z-index',\n 'zoom',\n]);\n\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(normalizer, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach((kf) => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = (isSameOffset && previousKeyframe) || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue = normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return { element, triggerName, fromState, toState, phaseName, totalTime, disabled: !!disabled };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, (value = defaultValue));\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nconst documentElement = /* @__PURE__ */ (() => typeof document === 'undefined' ? null : document.documentElement)();\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host || null; // consider host to support shadow DOM\n if (parent === documentElement) {\n return null;\n }\n return parent;\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? 'WebkitAppearance' in _CACHED_BODY.style : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nfunction containsElement(elm1, elm2) {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n}\nfunction invokeQuery(element, selector, multi) {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n}\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\n}\n\n/**\n * @publicApi\n *\n * `AnimationDriver` implentation for Noop animations\n */\nclass NoopAnimationDriver {\n /**\n * @returns Whether `prop` is a valid CSS property\n */\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n /**\n * @deprecated unused\n */\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n /**\n *\n * @returns Whether elm1 contains elm2.\n */\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n /**\n * @returns Rhe parent of the given element or `null` if the element is the `document`\n */\n getParentElement(element) {\n return getParentElement(element);\n }\n /**\n * @returns The result of the query selector on the element. The array will contain up to 1 item\n * if `multi` is `false`.\n */\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n /**\n * @returns The `defaultValue` or empty string\n */\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n /**\n * @returns An `NoopAnimationPlayer`\n */\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NoopAnimationDriver }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n /**\n * @deprecated Use the NoopAnimationDriver class.\n */\n static { this.NOOP = new NoopAnimationDriver(); }\n}\n\nclass AnimationStyleNormalizer {\n}\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\n\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default: // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration')\n ? timings\n : parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return { duration, delay, easing };\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map((kf) => new Map(Object.entries(kf)));\n}\nfunction normalizeStyles(styles) {\n return Array.isArray(styles) ? new Map(...styles) : new Map(styles);\n}\nfunction setStyles(element, styles, formerStyles) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n}\nfunction eraseStyles(element, styles) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach((varName) => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while ((match = PARAM_REGEX.exec(value))) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = `${value}`;\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach((prop) => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case AnimationMetadataType.Trigger:\n return visitor.visitTrigger(node, context);\n case AnimationMetadataType.State:\n return visitor.visitState(node, context);\n case AnimationMetadataType.Transition:\n return visitor.visitTransition(node, context);\n case AnimationMetadataType.Sequence:\n return visitor.visitSequence(node, context);\n case AnimationMetadataType.Group:\n return visitor.visitGroup(node, context);\n case AnimationMetadataType.Animate:\n return visitor.visitAnimate(node, context);\n case AnimationMetadataType.Keyframes:\n return visitor.visitKeyframes(node, context);\n case AnimationMetadataType.Style:\n return visitor.visitStyle(node, context);\n case AnimationMetadataType.Reference:\n return visitor.visitReference(node, context);\n case AnimationMetadataType.AnimateChild:\n return visitor.visitAnimateChild(node, context);\n case AnimationMetadataType.AnimateRef:\n return visitor.visitAnimateRef(node, context);\n case AnimationMetadataType.Query:\n return visitor.visitQuery(node, context);\n case AnimationMetadataType.Stagger:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\n\nconst DIMENSIONAL_PROP_SET = new Set([\n 'width',\n 'height',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'left',\n 'top',\n 'bottom',\n 'right',\n 'fontSize',\n 'outlineWidth',\n 'outlineOffset',\n 'paddingTop',\n 'paddingLeft',\n 'paddingBottom',\n 'paddingRight',\n 'marginTop',\n 'marginLeft',\n 'marginBottom',\n 'marginRight',\n 'borderRadius',\n 'borderWidth',\n 'borderTopWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'textIndent',\n 'perspective',\n]);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\n\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings\n .filter(Boolean)\n .map((warning) => warning)\n .join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\n }\n}\n\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue\n .split(/\\s*,\\s*/)\n .forEach((str) => parseInnerTransitionStr(str, expressions, errors));\n }\n else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n return;\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\n\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`s*${SELF_TOKEN}s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = (visitDslNode(this, normalizeAnimationEntry(metadata), context));\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [\n ...context.unsupportedCSSPropertiesFound.keys(),\n ]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = (context.queryCount = 0);\n let depCount = (context.depCount = 0);\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach((def) => {\n this._resetContextStyleTimingState(context);\n if (def.type == AnimationMetadataType.State) {\n const stateDef = def;\n const name = stateDef.name;\n name\n .toString()\n .split(/\\s*,\\s*/)\n .forEach((n) => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n }\n else if (def.type == AnimationMetadataType.Transition) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: AnimationMetadataType.Trigger,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null,\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach((style) => {\n if (style instanceof Map) {\n style.forEach((value) => {\n extractStyleParams(value).forEach((sub) => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n context.errors.push(invalidState(metadata.name, [...missingSubs.values()]));\n }\n }\n return {\n type: AnimationMetadataType.State,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null,\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: AnimationMetadataType.Transition,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitSequence(metadata, context) {\n return {\n type: AnimationMetadataType.Sequence,\n steps: metadata.steps.map((s) => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map((step) => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: AnimationMetadataType.Group,\n steps,\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles\n ? metadata.styles\n : style({});\n if (styleMetadata.type == AnimationMetadataType.Keyframes) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n }\n else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: AnimationMetadataType.Animate,\n timings: timingAst,\n style: styleAst,\n options: null,\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n }\n else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n }\n else {\n styles.push(new Map(Object.entries(styleTuple)));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach((styleData) => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: AnimationMetadataType.Style,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null,\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach((tuple) => {\n if (typeof tuple === 'string')\n return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime &&\n startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, { startTime, endTime });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = { type: AnimationMetadataType.Keyframes, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map((styles) => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? (i == limit ? 1 : generatedOffset * i) : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: AnimationMetadataType.Reference,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: AnimationMetadataType.AnimateChild,\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: AnimationMetadataType.AnimateRef,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = (metadata.options || {});\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector = parentSelector.length\n ? parentSelector + ' ' + selector\n : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: AnimationMetadataType.Query,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full'\n ? { duration: 0, delay: 0, easing: 'full' }\n : resolveTiming(metadata.timings, context.errors, true);\n return {\n type: AnimationMetadataType.Stagger,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null,\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find((token) => token == SELF_TOKEN)\n ? true\n : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector\n .replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, (match) => NG_TRIGGER_SELECTOR + '-' + match.slice(1))\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? { ...obj } : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach((styleTuple) => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n }\n else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some((v) => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = { ...options };\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n }\n else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return { duration, delay, easing };\n}\n\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline,\n };\n}\n\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, (existingInstructions = []));\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\n\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter((timeline) => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length\n ? timelines.map((timeline) => timeline.buildKeyframes())\n : [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number'\n ? animationDelay\n : resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach((instruction) => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime = Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == AnimationMetadataType.Style) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach((s) => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach((s) => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach((timeline) => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params\n ? interpolateParams(strValue, context.params, context.errors)\n : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n }\n visitAnimate(ast, context) {\n const timings = (context.currentAnimateTimings = this._visitTiming(ast.timings, context));\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == AnimationMetadataType.Keyframes) {\n this.visitKeyframes(style, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = context.currentTimeline.duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach((step) => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = (ast.options || {});\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay &&\n (context.previousNode.type === AnimationMetadataType.Style ||\n (startTime == 0 && context.currentTimeline.hasCurrentStyleProperties()))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n tl.currentTime - startingTime + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options)\n return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach((name) => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = (options['params'] = {});\n Object.keys(oldParams).forEach((name) => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: '',\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) {\n // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements =\n limit < 0\n ? elements.slice(elements.length + limit, elements.length)\n : elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this.easing = null;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, { time: this.currentTime, value });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = (options && options.params) || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0)\n return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = new Map([...this._backFill, ...keyframe]);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = [...preStyleProps.values()];\n const postProps = [...postStyleProps.values()];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let { delay, duration, easing } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = new Map(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = new Map(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = new Map(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach((token) => {\n if (token === '*') {\n allProperties ??= allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n }\n else {\n for (let [prop, val] of token) {\n styles.set(prop, val);\n }\n }\n });\n return styles;\n}\n\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors,\n };\n}\n\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = (this.ast.options && this.ast.options.params) || EMPTY_OBJECT;\n const currentAnimationParams = (currentOptions && currentOptions.params) || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = (nextOptions && nextOptions.params) || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay,\n };\n const timelines = skipAstBuild\n ? []\n : buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach((tl) => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach((tl) => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach((prop) => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach((prop) => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, [...queriedElements.values()], preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const allowedNonAnimatableProps = new Set([\n // 'easing' is a utility/synthetic prop we use to represent\n // easing functions, it represents a property of the animation\n // which is not animatable but different values can be used\n // in different steps\n 'easing',\n ]);\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({ keyframes }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach((keyframe) => {\n const entriesToCheck = Array.from(keyframe.entries()).filter(([prop]) => !allowedNonAnimatableProps.has(prop));\n for (const [prop, value] of entriesToCheck) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n }\n else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` +\n ' not animatable properties: ' +\n Array.from(invalidNonAnimatableProps).join(', ') +\n '\\n' +\n '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some((fn) => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = { ...defaults };\n Object.entries(userParams).forEach(([key, value]) => {\n if (value != null) {\n result[key] = value;\n }\n });\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = applyParamDefaults(params, this.defaultParams);\n this.styles.styles.forEach((value) => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(prop, val);\n });\n }\n });\n return finalStyles;\n }\n}\n\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach((ast) => {\n const defaultParams = (ast.options && ast.options.params) || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach((ast) => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find((f) => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = { type: AnimationMetadataType.Sequence, steps: [], options: null };\n const transition = {\n type: AnimationMetadataType.Transition,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0,\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n }\n else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\n }\n}\n\nconst EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n }\n else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._normalizer, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach((inst) => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach((prop) => styles.set(prop, null));\n });\n }\n else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map((i) => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => { };\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = (args[0] || {});\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\n\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false,\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true,\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n get params() {\n return this.options.params;\n }\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n // we drop the value property from options.\n const { value, ...options } = input;\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach((prop) => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = { name, phase, callback };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n }\n else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, (triggersWithStates = new Map()));\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach((player) => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition,\n });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach((stateMap) => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter((entry) => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach((player) => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach((elm) => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG])\n return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach((ns) => ns.triggerLeaveAnimation(elm, context, false, true));\n }\n else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach((elm) => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach((listener) => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName))\n return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true,\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length\n ? engine.playersByQueriedElement.get(element)\n : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n let parent = element;\n while ((parent = parent.parentNode)) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach((entry) => {\n const player = entry.player;\n if (player.destroyed)\n return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach((listener) => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach((p) => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n}\nclass TransitionAnimationEngine {\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n constructor(bodyNode, driver, _normalizer, scheduler) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.scheduler = scheduler;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach((ns) => {\n ns.players.forEach((player) => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return (this._namespaceLookup[namespaceId] = ns);\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n }\n else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId)\n return;\n this.afterFlush(() => { });\n this.afterFlushAnimationsDone(() => {\n const ns = this._fetchNamespace(namespaceId);\n this.namespacesByHostElement.delete(ns.hostElement);\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n ns.destroy(context);\n delete this._namespaceLookup[namespaceId];\n });\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, context) {\n if (isElementNode(element)) {\n this.scheduler?.notify();\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n }\n else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues,\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => { };\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach((element) => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach((element) => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach((player) => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach((player) => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise((resolve) => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n }\n else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach((node) => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach((fn) => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach((fn) => fn());\n });\n }\n else {\n quietFns.forEach((fn) => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach((node) => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach((node) => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver\n .query(element, STAR_SELECTOR, true)\n .forEach((elm) => mergedLeaveNodes.add(elm));\n }\n else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach((node) => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach((node) => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach((node) => removeClass(node, className));\n });\n allLeaveNodes.forEach((element) => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach((entry) => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues &&\n details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach((tl) => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = { instruction, player, element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach((element) => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, (setVal = new Set()));\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, (setVal = new Set()));\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach((instruction) => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach((player) => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach((entry) => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach((player) => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach((prevPlayer) => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter((node) => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach((node) => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach((node) => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...(post?.entries() ?? []), ...(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach((entry) => {\n const { element, player, instruction } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while ((elm = elm.parentNode)) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach((parent) => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n }\n else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach((player) => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach((player) => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter((p) => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach((player) => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach((player) => {\n if (player.queued)\n return;\n if (!isRemovalAnimation && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter((player) => {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition\n ? undefined\n : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition\n ? undefined\n : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach((player) => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map((timelineInstruction) => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY).map((p) => p.getRealPlayer())).filter((p) => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this._normalizer, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach((player) => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach((element) => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach((element) => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach((element) => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.parentPlayer = null;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer)\n return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach((callback) => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach((element) => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach((prop) => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach((element) => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach((root) => rootMap.set(root, []));\n if (nodes.length == 0)\n return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node)\n return NULL_NODE;\n let root = localRootMap.get(node);\n if (root)\n return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) {\n // ngIf inside @trigger\n root = parent;\n }\n else if (nodeSet.has(parent)) {\n // ngIf inside ngIf\n root = NULL_NODE;\n }\n else {\n // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach((node) => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach((data) => preEntry.add(data));\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\nclass AnimationEngine {\n constructor(doc, _driver, _normalizer, scheduler) {\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n this._transitionEngine = new TransitionAnimationEngine(doc.body, _driver, _normalizer, scheduler);\n this._timelineEngine = new TimelineAnimationEngine(doc.body, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context) {\n this._transitionEngine.removeNode(namespaceId, element, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return [...this._transitionEngine.players, ...this._timelineEngine.players];\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n afterFlushAnimationsDone(cb) {\n this._transitionEngine.afterFlushAnimationsDone(cb);\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n }\n else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return startStyles || endStyles ? new SpecialCasedStyles(element, startStyles, endStyles) : null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n static { this.initialStylesByElement = new WeakMap(); }\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, (initialStyles = new Map()));\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\n\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach((fn) => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized)\n return;\n this._initialized = true;\n const keyframes = this.keyframes;\n // @ts-expect-error overwriting a readonly property\n this.domPlayer = this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n const onFinish = () => this._onFinish();\n this.domPlayer.addEventListener('finish', onFinish);\n this.onDestroy(() => {\n // We must remove the `finish` event listener once an animation has completed all its\n // iterations. This action is necessary to prevent a memory leak since the listener captures\n // `this`, creating a closure that prevents `this` from being garbage collected.\n this.domPlayer.removeEventListener('finish', onFinish);\n });\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach((frame) => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n return element.animate(this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach((fn) => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach((fn) => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n // tsc is complaining with TS2362 without the conversion to number\n return +(this.domPlayer.currentTime ?? 0) / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach((fn) => fn());\n methods.length = 0;\n }\n}\n\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return computeStyle(element, prop);\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = { duration, delay, fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = (previousPlayers.filter((player) => player instanceof WebAnimationsPlayer));\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach((player) => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map((styles) => new Map(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\n }\n}\n\nfunction createEngine(type, doc, scheduler) {\n // TODO: find a way to make this tree shakable.\n if (type === 'noop') {\n return new AnimationEngine(doc, new NoopAnimationDriver(), new NoopAnimationStyleNormalizer(), scheduler);\n }\n return new AnimationEngine(doc, new WebAnimationsDriver(), new WebAnimationsStyleNormalizer(), scheduler);\n}\n\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles)\n ? normalizeStyles(startingStyles)\n : startingStyles;\n const dest = Array.isArray(destinationStyles)\n ? normalizeStyles(destinationStyles)\n : destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\n\nconst ANIMATION_PREFIX = '@';\nconst DISABLE_ANIMATIONS_FLAG = '@.disabled';\nclass BaseAnimationRenderer {\n constructor(namespaceId, delegate, engine, _onDestroy) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this._onDestroy = _onDestroy;\n // We need to explicitly type this property because of an api-extractor bug\n // See https://github.com/microsoft/rushstack/issues/4390\n this.ɵtype = 0 /* AnimationRendererType.Regular */;\n }\n get data() {\n return this.delegate.data;\n }\n destroyNode(node) {\n this.delegate.destroyNode?.(node);\n }\n destroy() {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.engine.afterFlushAnimationsDone(() => {\n // Call the renderer destroy method after the animations has finished as otherwise\n // styles will be removed too early which will cause an unstyled animation.\n queueMicrotask(() => {\n this.delegate.destroy();\n });\n });\n this._onDestroy?.();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n }\n insertBefore(parent, newChild, refChild, isMove = true) {\n this.delegate.insertBefore(parent, newChild, refChild);\n // If `isMove` true than we should animate this insert.\n this.engine.onInsert(this.namespaceId, newChild, parent, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n }\n disableAnimations(element, value) {\n this.engine.disableAnimations(element, value);\n }\n}\nclass AnimationRenderer extends BaseAnimationRenderer {\n constructor(factory, namespaceId, delegate, engine, onDestroy) {\n super(namespaceId, delegate, engine, onDestroy);\n this.factory = factory;\n this.namespaceId = namespaceId;\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n }\n else {\n this.engine.process(this.namespaceId, el, name.slice(1), value);\n }\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n listen(target, eventName, callback) {\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n const element = resolveElementFromTarget(target);\n let name = eventName.slice(1);\n let phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name.charAt(0) != ANIMATION_PREFIX) {\n [name, phase] = parseTriggerCallbackName(name);\n }\n return this.engine.listen(this.namespaceId, element, name, phase, (event) => {\n const countId = event['_data'] || -1;\n this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n }\n}\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\nfunction parseTriggerCallbackName(triggerName) {\n const dotIndex = triggerName.indexOf('.');\n const trigger = triggerName.substring(0, dotIndex);\n const phase = triggerName.slice(dotIndex + 1);\n return [trigger, phase];\n}\n\nclass AnimationRendererFactory {\n constructor(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n engine.onRemovalComplete = (element, delegate) => {\n // Note: if a component element has a leave animation, and a host leave animation,\n // the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n const parentNode = delegate?.parentNode(element);\n if (parentNode) {\n delegate.removeChild(parentNode, element);\n }\n };\n }\n createRenderer(hostElement, type) {\n const EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n const delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type?.data?.['animation']) {\n const cache = this._rendererCache;\n let renderer = cache.get(delegate);\n if (!renderer) {\n // Ensure that the renderer is removed from the cache on destroy\n // since it may contain references to detached DOM nodes.\n const onRendererDestroy = () => cache.delete(delegate);\n renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);\n // only cache this result when the base renderer is used\n cache.set(delegate, renderer);\n }\n return renderer;\n }\n const componentId = type.id;\n const namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n const registerTrigger = (trigger) => {\n if (Array.isArray(trigger)) {\n trigger.forEach(registerTrigger);\n }\n else {\n this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n }\n };\n const animationTriggers = type.data['animation'];\n animationTriggers.forEach(registerTrigger);\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n }\n begin() {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n }\n _scheduleCountTask() {\n queueMicrotask(() => {\n this._microtaskId++;\n });\n }\n /** @internal */\n scheduleListenerCallback(count, fn, data) {\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(() => fn(data));\n return;\n }\n const animationCallbacksBuffer = this._animationCallbacksBuffer;\n if (animationCallbacksBuffer.length == 0) {\n queueMicrotask(() => {\n this._zone.run(() => {\n animationCallbacksBuffer.forEach((tuple) => {\n const [fn, data] = tuple;\n fn(data);\n });\n this._animationCallbacksBuffer = [];\n });\n });\n }\n animationCallbacksBuffer.push([fn, data]);\n }\n end() {\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(() => {\n this._scheduleCountTask();\n this.engine.flush(this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n }\n whenRenderingDone() {\n return this.engine.whenRenderingDone();\n }\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, NoopAnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, BaseAnimationRenderer as ɵBaseAnimationRenderer, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, camelCaseToDashCase as ɵcamelCaseToDashCase, containsElement as ɵcontainsElement, createEngine as ɵcreateEngine, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty, validateWebAnimatableStyleProperty as ɵvalidateWebAnimatableStyleProperty };\n","/**\n * @license Angular v17.3.12\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { inject, ɵChangeDetectionScheduler, Injectable, Inject, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE, NgModule, ɵperformanceMarkFeature } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport * as i1 from '@angular/animations/browser';\nimport { ɵAnimationEngine, ɵWebAnimationsStyleNormalizer, ɵAnimationRendererFactory, ɵAnimationStyleNormalizer, AnimationDriver, ɵWebAnimationsDriver, NoopAnimationDriver } from '@angular/animations/browser';\nimport { DOCUMENT } from '@angular/common';\n\nclass InjectableAnimationEngine extends ɵAnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer) {\n super(doc, driver, normalizer, inject(ɵChangeDetectionScheduler, { optional: true }));\n }\n ngOnDestroy() {\n this.flush();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: InjectableAnimationEngine, deps: [{ token: DOCUMENT }, { token: i1.AnimationDriver }, { token: i1.ɵAnimationStyleNormalizer }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: InjectableAnimationEngine }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: InjectableAnimationEngine, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1.AnimationDriver }, { type: i1.ɵAnimationStyleNormalizer }] });\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new ɵAnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [\n { provide: ɵAnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer },\n { provide: ɵAnimationEngine, useClass: InjectableAnimationEngine }, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone]\n }\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useFactory: () => new ɵWebAnimationsDriver() },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'BrowserAnimations' }, ...SHARED_ANIMATION_PROVIDERS\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useClass: NoopAnimationDriver },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'NoopAnimations' }, ...SHARED_ANIMATION_PROVIDERS\n];\n\n/**\n * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nclass BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see {@link BrowserAnimationsModuleConfig}\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS :\n BROWSER_ANIMATIONS_PROVIDERS\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: BrowserAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: BrowserAnimationsModule, exports: [BrowserModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: BrowserAnimationsModule, providers: BROWSER_ANIMATIONS_PROVIDERS, imports: [BrowserModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: BrowserAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideAnimations() {\n ɵperformanceMarkFeature('NgEagerAnimations');\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nclass NoopAnimationsModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NoopAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.3.12\", ngImport: i0, type: NoopAnimationsModule, exports: [BrowserModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NoopAnimationsModule, providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS, imports: [BrowserModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.12\", ngImport: i0, type: NoopAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","import { ComponentStore } from '@ngrx/component-store';\nimport { Observable } from 'rxjs';\n\nexport interface ProfileState {\n currentPage: 'UserInfo' | 'ApiKeys' | 'Security';\n}\n\nexport interface IProfileStore {\n readonly currentPage$: Observable;\n\n readonly setCurrentPage: (currentPage: ProfileState['currentPage']) => void;\n}\n\nexport class ProfileStore implements IProfileStore {\n private store: ComponentStore;\n\n public readonly currentPage$: Observable;\n public readonly setCurrentPage: (\n currentPage: ProfileState['currentPage'],\n ) => void;\n\n constructor() {\n this.store = new ComponentStore({\n currentPage: 'UserInfo',\n });\n\n this.currentPage$ = this.store.select((state) => state.currentPage);\n\n this.setCurrentPage = this.store.updater(\n (state, currentPage: ProfileState['currentPage']) => ({\n ...state,\n currentPage,\n }),\n );\n }\n}\n","\n\n
    \n \n
    \n\n\n

    User Information

    \n \n
    \n\n\n

    Security

    \n \n
    \n\n\n

    API Keys

    \n \n
    \n","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { Observable, combineLatest, filter, map } from 'rxjs';\nimport { IAuthService } from '../../../auth';\nimport { IUserService } from '../../../data';\nimport { ProfileState, ProfileStore } from '../../profile-state';\n\nexport interface MutableUserInfo {\n email: string;\n givenName: string;\n familyName: string;\n}\n\nexport interface ImmutableUserInfo {\n id: string;\n}\n\nexport type UserInfo = ImmutableUserInfo & Partial;\n\n@Component({\n selector: 'app-profile-page',\n templateUrl: './profile-page.component.html',\n styleUrls: ['./profile-page.component.scss'],\n})\nexport class ProfilePageComponent implements OnInit {\n @ViewChild('userInfo') userInfoView: TemplateRef;\n @ViewChild('apiKeys') apiKeysView: TemplateRef;\n @ViewChild('security') securityView: TemplateRef;\n\n protected profileStore: ProfileStore;\n public user$: Observable;\n\n constructor(public auth: IAuthService, public userService: IUserService) {\n this.profileStore = new ProfileStore();\n\n this.user$ = combineLatest([\n userService.me.pipe(\n filter((me) => me !== undefined),\n map(({ id, email, firstName, lastName }) => ({\n id,\n email,\n givenName: firstName,\n familyName: lastName,\n })),\n ),\n auth.loggedUser$.pipe(\n filter((u) => u?.profile?.email !== undefined),\n map((u) => u.profile.email),\n ),\n ]).pipe(\n map(([user, email]) => ({\n ...user,\n email,\n })),\n );\n }\n\n showTemplate(currentPage: ProfileState['currentPage']): TemplateRef {\n switch (currentPage) {\n case 'ApiKeys':\n return this.apiKeysView;\n case 'Security':\n return this.securityView;\n default:\n return this.userInfoView;\n }\n }\n\n ngOnInit(): void {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { InputTextComponent } from 'projects/content-service-cms/src/app/components/inputs/input-text/input-text.component';\nimport { CollectionScreenStore } from '../../collection-screen.state';\nimport { ICollection } from '../../../collection-overview/collection.interface';\n\n@Component({\n selector: 'app-collection-info',\n standalone: true,\n imports: [InputTextComponent, CommonModule],\n templateUrl: './collection-info.component.html',\n styleUrl: './collection-info.component.scss',\n})\nexport class CollectionInfoComponent {\n onFileSelected($event: Event) {\n const target = $event.target;\n const files = Array.from(target.files);\n if (files === undefined || files.length === 0) {\n return;\n }\n const file = files[0];\n const fileReader = new FileReader();\n fileReader.onload = (event) => {\n const fileContent = event.target?.result as string;\n try {\n const collection: ICollection = JSON.parse(fileContent);\n collection.settings &&\n this.createCollectionStore.setSettings(collection.settings);\n collection.avatars &&\n this.createCollectionStore.loadAvatars(collection.avatars);\n collection.scenes &&\n this.createCollectionStore.loadScenes(collection.scenes);\n collection.garments &&\n this.createCollectionStore.loadGarments(collection.garments);\n collection.outfits &&\n this.createCollectionStore.loadOutfits(collection.outfits);\n } catch (error) {\n console.error('failed to import settings', error);\n }\n };\n fileReader.readAsText(file);\n }\n constructor(public createCollectionStore: CollectionScreenStore) {}\n}\n","
    \n
    \n \n
    \n
    \n \n\n \n \n \n
    \n
    \n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'app-base-list-row',\n standalone: true,\n imports: [],\n template: '',\n})\nexport class BaseListRowComponent {\n @Input() reference: T;\n @Input() extended: boolean = false;\n @Input() disableMoveButtons?: 'up' | 'down' | 'both' | undefined;\n @Output() updateReference: EventEmitter = new EventEmitter();\n @Output() removeReference: EventEmitter = new EventEmitter();\n @Output() moveReferenceUp: EventEmitter = new EventEmitter();\n @Output() moveReferenceDown: EventEmitter = new EventEmitter();\n\n constructor() {}\n\n onNameChanged($event: { value: string; valid: boolean }) {\n if ($event.valid) {\n this.updateReference.emit({ ...this.reference, name: $event.value });\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'app-row-buttons',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './row-buttons.component.html',\n styleUrls: ['./row-buttons.component.scss'],\n})\nexport class RowButtonsComponent {\n @Input() reference: T;\n @Input() disableMove?: 'up' | 'down' | 'both' | undefined;\n @Output() moveRowUp: EventEmitter = new EventEmitter();\n @Output() moveRowDown: EventEmitter = new EventEmitter();\n @Output() removeRow: EventEmitter = new EventEmitter();\n}\n","\n\n\n","import { Component } from '@angular/core';\nimport { InputTextComponent } from '../../../components/inputs/input-text/input-text.component';\nimport { CommonModule } from '@angular/common';\nimport { BaseListRowComponent } from '../base-list-row/base-list-row.component';\nimport { AssetReference } from '../../collection-screen.state';\nimport { RowButtonsComponent } from '../row-buttons/row-buttons.component';\nimport { RRCopyToClipboardModule } from 'projects/web-ui-component-library/src';\nimport { CopyToClipboardComponent } from '../copy-to-clipboard/copy-to-clipboard.component';\n\n@Component({\n selector: 'app-asset-list-row',\n standalone: true,\n imports: [\n InputTextComponent,\n CommonModule,\n RowButtonsComponent,\n RRCopyToClipboardModule,\n CopyToClipboardComponent,\n ],\n templateUrl: './asset-list-row.component.html',\n styleUrls: ['../base-list-row/base-list-row.scss'],\n})\nexport class AssetListRowComponent extends BaseListRowComponent {\n constructor() {\n super();\n }\n\n onNameChanged($event: { value: string; valid: boolean }) {\n if ($event.valid) {\n this.updateReference.emit({ ...this.reference, name: $event.value });\n }\n }\n}\n","
    \n \n
    \n \n
    \n
    \n \n Reference: \n {{ reference.reference }}\n \n CS-ID: {{ reference.id }}\n \n
    \n \n
    \n","import { ElementRef } from '@angular/core';\n\n/** Coerces a data-bound value (typically a string) to a boolean. */\nfunction coerceBooleanProperty(value) {\n return value != null && `${value}` !== 'false';\n}\n\nfunction coerceNumberProperty(value, fallbackValue = 0) {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nfunction _isNumberValue(value) {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value)) && !isNaN(Number(value));\n}\n\nfunction coerceArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n\n/** Coerces a value to a CSS pixel value. */\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return typeof value === 'string' ? value : `${value}px`;\n}\n\n/**\n * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nfunction coerceElement(elementOrRef) {\n return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n}\n\n/**\n * Coerces a value to an array of trimmed non-empty strings.\n * Any input that is not an array, `null` or `undefined` will be turned into a string\n * via `toString()` and subsequently split with the given separator.\n * `null` and `undefined` will result in an empty array.\n * This results in the following outcomes:\n * - `null` -> `[]`\n * - `[null]` -> `[\"null\"]`\n * - `[\"a\", \"b \", \" \"]` -> `[\"a\", \"b\"]`\n * - `[1, [2, 3]]` -> `[\"1\", \"2,3\"]`\n * - `[{ a: 0 }]` -> `[\"[object Object]\"]`\n * - `{ a: 0 }` -> `[\"[object\", \"Object]\"]`\n *\n * Useful for defining CSS classes or table columns.\n * @param value the value to coerce into an array of strings\n * @param separator split-separator if value isn't an array\n */\nfunction coerceStringArray(value, separator = /\\s+/) {\n const result = [];\n if (value != null) {\n const sourceValues = Array.isArray(value) ? value : `${value}`.split(separator);\n for (const sourceValue of sourceValues) {\n const trimmedString = `${sourceValue}`.trim();\n if (trimmedString) {\n result.push(trimmedString);\n }\n }\n }\n return result;\n}\n\nexport { _isNumberValue, coerceArray, coerceBooleanProperty, coerceCssPixelValue, coerceElement, coerceNumberProperty, coerceStringArray };\n","import { asyncScheduler } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler = asyncScheduler) {\n return audit(() => timer(duration, scheduler));\n}\n","import { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function audit(durationSelector) {\n return operate((source, subscriber) => {\n let hasValue = false;\n let lastValue = null;\n let durationSubscriber = null;\n let isComplete = false;\n const endDuration = () => {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n const value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n isComplete && subscriber.complete();\n };\n const cleanupDuration = () => {\n durationSubscriber = null;\n isComplete && subscriber.complete();\n };\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n lastValue = value;\n if (!durationSubscriber) {\n innerFrom(durationSelector(value)).subscribe((durationSubscriber = createOperatorSubscriber(subscriber, endDuration, cleanupDuration)));\n }\n }, () => {\n isComplete = true;\n (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();\n }));\n });\n}\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Injectable, Inject, NgModule } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = typeof Intl !== 'undefined' && Intl.v8BreakIterator;\n}\ncatch {\n hasV8BreakIterator = false;\n}\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\nclass Platform {\n constructor(_platformId) {\n this._platformId = _platformId;\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId\n ? isPlatformBrowser(this._platformId)\n : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser &&\n !!(window.chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' &&\n !this.EDGE &&\n !this.TRIDENT;\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) &&\n !this.BLINK &&\n !this.EDGE &&\n !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: Platform, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: Platform, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: Platform, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }] });\n\nclass PlatformModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: PlatformModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.2.0\", ngImport: i0, type: PlatformModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: PlatformModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: PlatformModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n\n/** Cached result Set of input types support by the current browser. */\nlet supportedInputTypes;\n/** Types of `` that *might* be supported. */\nconst candidateInputTypes = [\n // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n // first changing it to something else:\n // The specified value \"\" does not conform to the required format.\n // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n 'color',\n 'button',\n 'checkbox',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week',\n];\n/** @returns The input types supported by this browser. */\nfunction getSupportedInputTypes() {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\n }\n // We can't check if an input type is not supported until we're on the browser, so say that\n // everything is supported when not on the browser. We don't use `Platform` here since it's\n // just a helper function and can't inject it.\n if (typeof document !== 'object' || !document) {\n supportedInputTypes = new Set(candidateInputTypes);\n return supportedInputTypes;\n }\n let featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(candidateInputTypes.filter(value => {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }));\n return supportedInputTypes;\n}\n\n/** Cached result of whether the user's browser supports passive event listeners. */\nlet supportsPassiveEvents;\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nfunction supportsPassiveEventListeners() {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: () => (supportsPassiveEvents = true),\n }));\n }\n finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n return supportsPassiveEvents;\n}\n/**\n * Normalizes an `AddEventListener` object to something that can be passed\n * to `addEventListener` on any browser, no matter whether it supports the\n * `options` parameter.\n * @param options Object to be normalized.\n */\nfunction normalizePassiveListenerOptions(options) {\n return supportsPassiveEventListeners() ? options : !!options.capture;\n}\n\n/** The possible ways the browser may handle the horizontal scroll axis in RTL languages. */\nvar RtlScrollAxisType;\n(function (RtlScrollAxisType) {\n /**\n * scrollLeft is 0 when scrolled all the way left and (scrollWidth - clientWidth) when scrolled\n * all the way right.\n */\n RtlScrollAxisType[RtlScrollAxisType[\"NORMAL\"] = 0] = \"NORMAL\";\n /**\n * scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n * all the way right.\n */\n RtlScrollAxisType[RtlScrollAxisType[\"NEGATED\"] = 1] = \"NEGATED\";\n /**\n * scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n * all the way right.\n */\n RtlScrollAxisType[RtlScrollAxisType[\"INVERTED\"] = 2] = \"INVERTED\";\n})(RtlScrollAxisType || (RtlScrollAxisType = {}));\n/** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\nlet rtlScrollAxisType;\n/** Cached result of the check that indicates whether the browser supports scroll behaviors. */\nlet scrollBehaviorSupported;\n/** Check whether the browser supports scroll behaviors. */\nfunction supportsScrollBehavior() {\n if (scrollBehaviorSupported == null) {\n // If we're not in the browser, it can't be supported. Also check for `Element`, because\n // some projects stub out the global `document` during SSR which can throw us off.\n if (typeof document !== 'object' || !document || typeof Element !== 'function' || !Element) {\n scrollBehaviorSupported = false;\n return scrollBehaviorSupported;\n }\n // If the element can have a `scrollBehavior` style, we can be sure that it's supported.\n if ('scrollBehavior' in document.documentElement.style) {\n scrollBehaviorSupported = true;\n }\n else {\n // At this point we have 3 possibilities: `scrollTo` isn't supported at all, it's\n // supported but it doesn't handle scroll behavior, or it has been polyfilled.\n const scrollToFunction = Element.prototype.scrollTo;\n if (scrollToFunction) {\n // We can detect if the function has been polyfilled by calling `toString` on it. Native\n // functions are obfuscated using `[native code]`, whereas if it was overwritten we'd get\n // the actual function source. Via https://davidwalsh.name/detect-native-function. Consider\n // polyfilled functions as supporting scroll behavior.\n scrollBehaviorSupported = !/\\{\\s*\\[native code\\]\\s*\\}/.test(scrollToFunction.toString());\n }\n else {\n scrollBehaviorSupported = false;\n }\n }\n }\n return scrollBehaviorSupported;\n}\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nfunction getRtlScrollAxisType() {\n // We can't check unless we're on the browser. Just assume 'normal' if we're not.\n if (typeof document !== 'object' || !document) {\n return RtlScrollAxisType.NORMAL;\n }\n if (rtlScrollAxisType == null) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n const scrollContainer = document.createElement('div');\n const containerStyle = scrollContainer.style;\n scrollContainer.dir = 'rtl';\n containerStyle.width = '1px';\n containerStyle.overflow = 'auto';\n containerStyle.visibility = 'hidden';\n containerStyle.pointerEvents = 'none';\n containerStyle.position = 'absolute';\n const content = document.createElement('div');\n const contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n rtlScrollAxisType = RtlScrollAxisType.NORMAL;\n // The viewport starts scrolled all the way to the right in RTL mode. If we are in a NORMAL\n // browser this would mean that the scrollLeft should be 1. If it's zero instead we know we're\n // dealing with one of the other two types of browsers.\n if (scrollContainer.scrollLeft === 0) {\n // In a NEGATED browser the scrollLeft is always somewhere in [-maxScrollAmount, 0]. For an\n // INVERTED browser it is always somewhere in [0, maxScrollAmount]. We can determine which by\n // setting to the scrollLeft to 1. This is past the max for a NEGATED browser, so it will\n // return 0 when we read it again.\n scrollContainer.scrollLeft = 1;\n rtlScrollAxisType =\n scrollContainer.scrollLeft === 0 ? RtlScrollAxisType.NEGATED : RtlScrollAxisType.INVERTED;\n }\n scrollContainer.remove();\n }\n return rtlScrollAxisType;\n}\n\nlet shadowDomIsSupported;\n/** Checks whether the user's browser support Shadow DOM. */\nfunction _supportsShadowDom() {\n if (shadowDomIsSupported == null) {\n const head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow));\n }\n return shadowDomIsSupported;\n}\n/** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\nfunction _getShadowRoot(element) {\n if (_supportsShadowDom()) {\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n // Note that this should be caught by `_supportsShadowDom`, but some\n // teams have been able to hit this code path on unsupported browsers.\n if (typeof ShadowRoot !== 'undefined' && ShadowRoot && rootNode instanceof ShadowRoot) {\n return rootNode;\n }\n }\n return null;\n}\n/**\n * Gets the currently-focused element on the page while\n * also piercing through Shadow DOM boundaries.\n */\nfunction _getFocusedElementPierceShadowDom() {\n let activeElement = typeof document !== 'undefined' && document\n ? document.activeElement\n : null;\n while (activeElement && activeElement.shadowRoot) {\n const newActiveElement = activeElement.shadowRoot.activeElement;\n if (newActiveElement === activeElement) {\n break;\n }\n else {\n activeElement = newActiveElement;\n }\n }\n return activeElement;\n}\n/** Gets the target of an event while accounting for Shadow DOM. */\nfunction _getEventTarget(event) {\n // If an event is bound outside the Shadow DOM, the `event.target` will\n // point to the shadow root so we have to use `composedPath` instead.\n return (event.composedPath ? event.composedPath()[0] : event.target);\n}\n\n/** Gets whether the code is currently running in a test environment. */\nfunction _isTestEnvironment() {\n // We can't use `declare const` because it causes conflicts inside Google with the real typings\n // for these symbols and we can't read them off the global object, because they don't appear to\n // be attached there for some runners like Jest.\n // (see: https://github.com/angular/components/issues/23365#issuecomment-938146643)\n return (\n // @ts-ignore\n (typeof __karma__ !== 'undefined' && !!__karma__) ||\n // @ts-ignore\n (typeof jasmine !== 'undefined' && !!jasmine) ||\n // @ts-ignore\n (typeof jest !== 'undefined' && !!jest) ||\n // @ts-ignore\n (typeof Mocha !== 'undefined' && !!Mocha));\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Platform, PlatformModule, RtlScrollAxisType, _getEventTarget, _getFocusedElementPierceShadowDom, _getShadowRoot, _isTestEnvironment, _supportsShadowDom, getRtlScrollAxisType, getSupportedInputTypes, normalizePassiveListenerOptions, supportsPassiveEventListeners, supportsScrollBehavior };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, EventEmitter, Injectable, Optional, Inject, Directive, Output, Input, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * Injection token used to inject the document into Directionality.\n * This is used so that the value can be faked in tests.\n *\n * We can't use the real document in tests because changing the real `dir` causes geometry-based\n * tests in Safari to fail.\n *\n * We also can't re-provide the DOCUMENT token from platform-browser because the unit tests\n * themselves use things like `querySelector` in test code.\n *\n * This token is defined in a separate file from Directionality as a workaround for\n * https://github.com/angular/angular/issues/22559\n *\n * @docs-private\n */\nconst DIR_DOCUMENT = new InjectionToken('cdk-dir-doc', {\n providedIn: 'root',\n factory: DIR_DOCUMENT_FACTORY,\n});\n/** @docs-private */\nfunction DIR_DOCUMENT_FACTORY() {\n return inject(DOCUMENT);\n}\n\n/** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */\nconst RTL_LOCALE_PATTERN = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;\n/** Resolves a string value to a specific direction. */\nfunction _resolveDirectionality(rawValue) {\n const value = rawValue?.toLowerCase() || '';\n if (value === 'auto' && typeof navigator !== 'undefined' && navigator?.language) {\n return RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';\n }\n return value === 'rtl' ? 'rtl' : 'ltr';\n}\n/**\n * The directionality (LTR / RTL) context for the application (or a subtree of it).\n * Exposes the current direction and a stream of direction changes.\n */\nclass Directionality {\n constructor(_document) {\n /** The current 'ltr' or 'rtl' value. */\n this.value = 'ltr';\n /** Stream that emits whenever the 'ltr' / 'rtl' state changes. */\n this.change = new EventEmitter();\n if (_document) {\n const bodyDir = _document.body ? _document.body.dir : null;\n const htmlDir = _document.documentElement ? _document.documentElement.dir : null;\n this.value = _resolveDirectionality(bodyDir || htmlDir || 'ltr');\n }\n }\n ngOnDestroy() {\n this.change.complete();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: Directionality, deps: [{ token: DIR_DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: Directionality, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: Directionality, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DIR_DOCUMENT]\n }] }] });\n\n/**\n * Directive to listen for changes of direction of part of the DOM.\n *\n * Provides itself as Directionality such that descendant directives only need to ever inject\n * Directionality to get the closest direction.\n */\nclass Dir {\n constructor() {\n /** Normalized direction that accounts for invalid/unsupported values. */\n this._dir = 'ltr';\n /** Whether the `value` has been set to its initial value. */\n this._isInitialized = false;\n /** Event emitted when the direction changes. */\n this.change = new EventEmitter();\n }\n /** @docs-private */\n get dir() {\n return this._dir;\n }\n set dir(value) {\n const previousValue = this._dir;\n // Note: `_resolveDirectionality` resolves the language based on the browser's language,\n // whereas the browser does it based on the content of the element. Since doing so based\n // on the content can be expensive, for now we're doing the simpler matching.\n this._dir = _resolveDirectionality(value);\n this._rawDir = value;\n if (previousValue !== this._dir && this._isInitialized) {\n this.change.emit(this._dir);\n }\n }\n /** Current layout direction of the element. */\n get value() {\n return this.dir;\n }\n /** Initialize once default value has been set. */\n ngAfterContentInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n this.change.complete();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: Dir, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: Dir, isStandalone: true, selector: \"[dir]\", inputs: { dir: \"dir\" }, outputs: { change: \"dirChange\" }, host: { properties: { \"attr.dir\": \"_rawDir\" } }, providers: [{ provide: Directionality, useExisting: Dir }], exportAs: [\"dir\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: Dir, decorators: [{\n type: Directive,\n args: [{\n selector: '[dir]',\n providers: [{ provide: Directionality, useExisting: Dir }],\n host: { '[attr.dir]': '_rawDir' },\n exportAs: 'dir',\n standalone: true,\n }]\n }], propDecorators: { change: [{\n type: Output,\n args: ['dirChange']\n }], dir: [{\n type: Input\n }] } });\n\nclass BidiModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: BidiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.2.0\", ngImport: i0, type: BidiModule, imports: [Dir], exports: [Dir] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: BidiModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: BidiModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [Dir],\n exports: [Dir],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BidiModule, DIR_DOCUMENT, Dir, Directionality };\n","import { coerceNumberProperty, coerceElement } from '@angular/cdk/coercion';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, Directive, Input, Injectable, Optional, Inject, inject, booleanAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChild, SkipSelf, ElementRef, NgModule } from '@angular/core';\nimport { Subject, of, Observable, fromEvent, animationFrameScheduler, asapScheduler, Subscription, isObservable } from 'rxjs';\nimport { distinctUntilChanged, auditTime, filter, takeUntil, startWith, pairwise, switchMap, shareReplay } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/platform';\nimport { getRtlScrollAxisType, RtlScrollAxisType, supportsScrollBehavior, Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport * as i2 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport * as i2$1 from '@angular/cdk/collections';\nimport { isDataSource, ArrayDataSource, _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy } from '@angular/cdk/collections';\n\n/** The injection token used to specify the virtual scrolling strategy. */\nconst VIRTUAL_SCROLL_STRATEGY = new InjectionToken('VIRTUAL_SCROLL_STRATEGY');\n\n/** Virtual scrolling strategy for lists with items of known fixed size. */\nclass FixedSizeVirtualScrollStrategy {\n /**\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n constructor(itemSize, minBufferPx, maxBufferPx) {\n this._scrolledIndexChange = new Subject();\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());\n /** The attached viewport. */\n this._viewport = null;\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n }\n /**\n * Attaches this scroll strategy to a viewport.\n * @param viewport The viewport to attach this strategy to.\n */\n attach(viewport) {\n this._viewport = viewport;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** Detaches this scroll strategy from the currently attached viewport. */\n detach() {\n this._scrolledIndexChange.complete();\n this._viewport = null;\n }\n /**\n * Update the item size and buffer size.\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n updateItemAndBufferSize(itemSize, minBufferPx, maxBufferPx) {\n if (maxBufferPx < minBufferPx && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx');\n }\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentScrolled() {\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onDataLengthChanged() {\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentRendered() {\n /* no-op */\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onRenderedOffsetChanged() {\n /* no-op */\n }\n /**\n * Scroll to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling.\n */\n scrollToIndex(index, behavior) {\n if (this._viewport) {\n this._viewport.scrollToOffset(index * this._itemSize, behavior);\n }\n }\n /** Update the viewport's total content size. */\n _updateTotalContentSize() {\n if (!this._viewport) {\n return;\n }\n this._viewport.setTotalContentSize(this._viewport.getDataLength() * this._itemSize);\n }\n /** Update the viewport's rendered range. */\n _updateRenderedRange() {\n if (!this._viewport) {\n return;\n }\n const renderedRange = this._viewport.getRenderedRange();\n const newRange = { start: renderedRange.start, end: renderedRange.end };\n const viewportSize = this._viewport.getViewportSize();\n const dataLength = this._viewport.getDataLength();\n let scrollOffset = this._viewport.measureScrollOffset();\n // Prevent NaN as result when dividing by zero.\n let firstVisibleIndex = this._itemSize > 0 ? scrollOffset / this._itemSize : 0;\n // If user scrolls to the bottom of the list and data changes to a smaller list\n if (newRange.end > dataLength) {\n // We have to recalculate the first visible index based on new data length and viewport size.\n const maxVisibleItems = Math.ceil(viewportSize / this._itemSize);\n const newVisibleIndex = Math.max(0, Math.min(firstVisibleIndex, dataLength - maxVisibleItems));\n // If first visible index changed we must update scroll offset to handle start/end buffers\n // Current range must also be adjusted to cover the new position (bottom of new list).\n if (firstVisibleIndex != newVisibleIndex) {\n firstVisibleIndex = newVisibleIndex;\n scrollOffset = newVisibleIndex * this._itemSize;\n newRange.start = Math.floor(firstVisibleIndex);\n }\n newRange.end = Math.max(0, Math.min(dataLength, newRange.start + maxVisibleItems));\n }\n const startBuffer = scrollOffset - newRange.start * this._itemSize;\n if (startBuffer < this._minBufferPx && newRange.start != 0) {\n const expandStart = Math.ceil((this._maxBufferPx - startBuffer) / this._itemSize);\n newRange.start = Math.max(0, newRange.start - expandStart);\n newRange.end = Math.min(dataLength, Math.ceil(firstVisibleIndex + (viewportSize + this._minBufferPx) / this._itemSize));\n }\n else {\n const endBuffer = newRange.end * this._itemSize - (scrollOffset + viewportSize);\n if (endBuffer < this._minBufferPx && newRange.end != dataLength) {\n const expandEnd = Math.ceil((this._maxBufferPx - endBuffer) / this._itemSize);\n if (expandEnd > 0) {\n newRange.end = Math.min(dataLength, newRange.end + expandEnd);\n newRange.start = Math.max(0, Math.floor(firstVisibleIndex - this._minBufferPx / this._itemSize));\n }\n }\n }\n this._viewport.setRenderedRange(newRange);\n this._viewport.setRenderedContentOffset(this._itemSize * newRange.start);\n this._scrolledIndexChange.next(Math.floor(firstVisibleIndex));\n }\n}\n/**\n * Provider factory for `FixedSizeVirtualScrollStrategy` that simply extracts the already created\n * `FixedSizeVirtualScrollStrategy` from the given directive.\n * @param fixedSizeDir The instance of `CdkFixedSizeVirtualScroll` to extract the\n * `FixedSizeVirtualScrollStrategy` from.\n */\nfunction _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {\n return fixedSizeDir._scrollStrategy;\n}\n/** A virtual scroll strategy that supports fixed-size items. */\nclass CdkFixedSizeVirtualScroll {\n constructor() {\n this._itemSize = 20;\n this._minBufferPx = 100;\n this._maxBufferPx = 200;\n /** The scroll strategy used by this directive. */\n this._scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n /** The size of the items in the list (in pixels). */\n get itemSize() {\n return this._itemSize;\n }\n set itemSize(value) {\n this._itemSize = coerceNumberProperty(value);\n }\n /**\n * The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.\n */\n get minBufferPx() {\n return this._minBufferPx;\n }\n set minBufferPx(value) {\n this._minBufferPx = coerceNumberProperty(value);\n }\n /**\n * The number of pixels worth of buffer to render for when rendering new items. Defaults to 200px.\n */\n get maxBufferPx() {\n return this._maxBufferPx;\n }\n set maxBufferPx(value) {\n this._maxBufferPx = coerceNumberProperty(value);\n }\n ngOnChanges() {\n this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkFixedSizeVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: CdkFixedSizeVirtualScroll, isStandalone: true, selector: \"cdk-virtual-scroll-viewport[itemSize]\", inputs: { itemSize: \"itemSize\", minBufferPx: \"minBufferPx\", maxBufferPx: \"maxBufferPx\" }, providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],\n },\n ], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkFixedSizeVirtualScroll, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[itemSize]',\n standalone: true,\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],\n },\n ],\n }]\n }], propDecorators: { itemSize: [{\n type: Input\n }], minBufferPx: [{\n type: Input\n }], maxBufferPx: [{\n type: Input\n }] } });\n\n/** Time in ms to throttle the scrolling events by default. */\nconst DEFAULT_SCROLL_TIME = 20;\n/**\n * Service contained all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\nclass ScrollDispatcher {\n constructor(_ngZone, _platform, document) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\n this._scrolled = new Subject();\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\n this._globalSubscription = null;\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\n this._scrolledCount = 0;\n /**\n * Map of all the scrollable references that are registered with the service and their\n * scroll event subscriptions.\n */\n this.scrollContainers = new Map();\n this._document = document;\n }\n /**\n * Registers a scrollable instance with the service and listens for its scrolled events. When the\n * scrollable is scrolled, the service emits the event to its scrolled observable.\n * @param scrollable Scrollable instance to be registered.\n */\n register(scrollable) {\n if (!this.scrollContainers.has(scrollable)) {\n this.scrollContainers.set(scrollable, scrollable.elementScrolled().subscribe(() => this._scrolled.next(scrollable)));\n }\n }\n /**\n * De-registers a Scrollable reference and unsubscribes from its scroll event observable.\n * @param scrollable Scrollable instance to be deregistered.\n */\n deregister(scrollable) {\n const scrollableReference = this.scrollContainers.get(scrollable);\n if (scrollableReference) {\n scrollableReference.unsubscribe();\n this.scrollContainers.delete(scrollable);\n }\n }\n /**\n * Returns an observable that emits an event whenever any of the registered Scrollable\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n * to override the default \"throttle\" time.\n *\n * **Note:** in order to avoid hitting change detection for every scroll event,\n * all of the events emitted from this stream will be run outside the Angular zone.\n * If you need to update any data bindings as a result of a scroll event, you have\n * to run the callback using `NgZone.run`.\n */\n scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME) {\n if (!this._platform.isBrowser) {\n return of();\n }\n return new Observable((observer) => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription = auditTimeInMs > 0\n ? this._scrolled.pipe(auditTime(auditTimeInMs)).subscribe(observer)\n : this._scrolled.subscribe(observer);\n this._scrolledCount++;\n return () => {\n subscription.unsubscribe();\n this._scrolledCount--;\n if (!this._scrolledCount) {\n this._removeGlobalListener();\n }\n };\n });\n }\n ngOnDestroy() {\n this._removeGlobalListener();\n this.scrollContainers.forEach((_, container) => this.deregister(container));\n this._scrolled.complete();\n }\n /**\n * Returns an observable that emits whenever any of the\n * scrollable ancestors of an element are scrolled.\n * @param elementOrElementRef Element whose ancestors to listen for.\n * @param auditTimeInMs Time to throttle the scroll events.\n */\n ancestorScrolled(elementOrElementRef, auditTimeInMs) {\n const ancestors = this.getAncestorScrollContainers(elementOrElementRef);\n return this.scrolled(auditTimeInMs).pipe(filter(target => {\n return !target || ancestors.indexOf(target) > -1;\n }));\n }\n /** Returns all registered Scrollables that contain the provided element. */\n getAncestorScrollContainers(elementOrElementRef) {\n const scrollingContainers = [];\n this.scrollContainers.forEach((_subscription, scrollable) => {\n if (this._scrollableContainsElement(scrollable, elementOrElementRef)) {\n scrollingContainers.push(scrollable);\n }\n });\n return scrollingContainers;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Returns true if the element is contained within the provided Scrollable. */\n _scrollableContainsElement(scrollable, elementOrElementRef) {\n let element = coerceElement(elementOrElementRef);\n let scrollableElement = scrollable.getElementRef().nativeElement;\n // Traverse through the element parents until we reach null, checking if any of the elements\n // are the scrollable's element.\n do {\n if (element == scrollableElement) {\n return true;\n }\n } while ((element = element.parentElement));\n return false;\n }\n /** Sets up the global scroll listeners. */\n _addGlobalListener() {\n this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n return fromEvent(window.document, 'scroll').subscribe(() => this._scrolled.next());\n });\n }\n /** Cleans up the global scroll listener. */\n _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: ScrollDispatcher, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: ScrollDispatcher, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: ScrollDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.Platform }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }] });\n\n/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\nclass CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n this.elementRef = elementRef;\n this.scrollDispatcher = scrollDispatcher;\n this.ngZone = ngZone;\n this.dir = dir;\n this._destroyed = new Subject();\n this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, 'scroll')\n .pipe(takeUntil(this._destroyed))\n .subscribe(observer)));\n }\n ngOnInit() {\n this.scrollDispatcher.register(this);\n }\n ngOnDestroy() {\n this.scrollDispatcher.deregister(this);\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Returns observable that emits when a scroll event is fired on the host element. */\n elementScrolled() {\n return this._elementScrolled;\n }\n /** Gets the ElementRef for the viewport. */\n getElementRef() {\n return this.elementRef;\n }\n /**\n * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo\n * method, since browsers are not consistent about what scrollLeft means in RTL. For this method\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param options specified the offsets to scroll to.\n */\n scrollTo(options) {\n const el = this.elementRef.nativeElement;\n const isRtl = this.dir && this.dir.value == 'rtl';\n // Rewrite start & end offsets as right or left offsets.\n if (options.left == null) {\n options.left = isRtl ? options.end : options.start;\n }\n if (options.right == null) {\n options.right = isRtl ? options.start : options.end;\n }\n // Rewrite the bottom offset as a top offset.\n if (options.bottom != null) {\n options.top =\n el.scrollHeight - el.clientHeight - options.bottom;\n }\n // Rewrite the right offset as a left offset.\n if (isRtl && getRtlScrollAxisType() != RtlScrollAxisType.NORMAL) {\n if (options.left != null) {\n options.right =\n el.scrollWidth - el.clientWidth - options.left;\n }\n if (getRtlScrollAxisType() == RtlScrollAxisType.INVERTED) {\n options.left = options.right;\n }\n else if (getRtlScrollAxisType() == RtlScrollAxisType.NEGATED) {\n options.left = options.right ? -options.right : options.right;\n }\n }\n else {\n if (options.right != null) {\n options.left =\n el.scrollWidth - el.clientWidth - options.right;\n }\n }\n this._applyScrollToOptions(options);\n }\n _applyScrollToOptions(options) {\n const el = this.elementRef.nativeElement;\n if (supportsScrollBehavior()) {\n el.scrollTo(options);\n }\n else {\n if (options.top != null) {\n el.scrollTop = options.top;\n }\n if (options.left != null) {\n el.scrollLeft = options.left;\n }\n }\n }\n /**\n * Measures the scroll offset relative to the specified edge of the viewport. This method can be\n * used instead of directly checking scrollLeft or scrollTop, since browsers are not consistent\n * about what scrollLeft means in RTL. The values returned by this method are normalized such that\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param from The edge to measure from.\n */\n measureScrollOffset(from) {\n const LEFT = 'left';\n const RIGHT = 'right';\n const el = this.elementRef.nativeElement;\n if (from == 'top') {\n return el.scrollTop;\n }\n if (from == 'bottom') {\n return el.scrollHeight - el.clientHeight - el.scrollTop;\n }\n // Rewrite start & end as left or right offsets.\n const isRtl = this.dir && this.dir.value == 'rtl';\n if (from == 'start') {\n from = isRtl ? RIGHT : LEFT;\n }\n else if (from == 'end') {\n from = isRtl ? LEFT : RIGHT;\n }\n if (isRtl && getRtlScrollAxisType() == RtlScrollAxisType.INVERTED) {\n // For INVERTED, scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n else {\n return el.scrollLeft;\n }\n }\n else if (isRtl && getRtlScrollAxisType() == RtlScrollAxisType.NEGATED) {\n // For NEGATED, scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft + el.scrollWidth - el.clientWidth;\n }\n else {\n return -el.scrollLeft;\n }\n }\n else {\n // For NORMAL, as well as non-RTL contexts, scrollLeft is 0 when scrolled all the way left and\n // (scrollWidth - clientWidth) when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft;\n }\n else {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkScrollable, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: CdkScrollable, isStandalone: true, selector: \"[cdk-scrollable], [cdkScrollable]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkScrollable, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-scrollable], [cdkScrollable]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }] });\n\n/** Time in ms to throttle the resize events by default. */\nconst DEFAULT_RESIZE_TIME = 20;\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * @docs-private\n */\nclass ViewportRuler {\n constructor(_platform, ngZone, document) {\n this._platform = _platform;\n /** Stream of viewport change events. */\n this._change = new Subject();\n /** Event listener that will be used to handle the viewport change events. */\n this._changeListener = (event) => {\n this._change.next(event);\n };\n this._document = document;\n ngZone.runOutsideAngular(() => {\n if (_platform.isBrowser) {\n const window = this._getWindow();\n // Note that bind the events ourselves, rather than going through something like RxJS's\n // `fromEvent` so that we can ensure that they're bound outside of the NgZone.\n window.addEventListener('resize', this._changeListener);\n window.addEventListener('orientationchange', this._changeListener);\n }\n // Clear the cached position so that the viewport is re-measured next time it is required.\n // We don't need to keep track of the subscription, because it is completed on destroy.\n this.change().subscribe(() => (this._viewportSize = null));\n });\n }\n ngOnDestroy() {\n if (this._platform.isBrowser) {\n const window = this._getWindow();\n window.removeEventListener('resize', this._changeListener);\n window.removeEventListener('orientationchange', this._changeListener);\n }\n this._change.complete();\n }\n /** Returns the viewport's width and height. */\n getViewportSize() {\n if (!this._viewportSize) {\n this._updateViewportSize();\n }\n const output = { width: this._viewportSize.width, height: this._viewportSize.height };\n // If we're not on a browser, don't cache the size since it'll be mocked out anyway.\n if (!this._platform.isBrowser) {\n this._viewportSize = null;\n }\n return output;\n }\n /** Gets a DOMRect for the viewport's bounds. */\n getViewportRect() {\n // Use the document element's bounding rect rather than the window scroll properties\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n // can disagree when the page is pinch-zoomed (on devices that support touch).\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n // We use the documentElement instead of the body because, by default (without a css reset)\n // browsers typically give the document body an 8px margin, which is not included in\n // getBoundingClientRect().\n const scrollPosition = this.getViewportScrollPosition();\n const { width, height } = this.getViewportSize();\n return {\n top: scrollPosition.top,\n left: scrollPosition.left,\n bottom: scrollPosition.top + height,\n right: scrollPosition.left + width,\n height,\n width,\n };\n }\n /** Gets the (top, left) scroll position of the viewport. */\n getViewportScrollPosition() {\n // While we can get a reference to the fake document\n // during SSR, it doesn't have getBoundingClientRect.\n if (!this._platform.isBrowser) {\n return { top: 0, left: 0 };\n }\n // The top-left-corner of the viewport is determined by the scroll position of the document\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n // `document.documentElement` works consistently, where the `top` and `left` values will\n // equal negative the scroll position.\n const document = this._document;\n const window = this._getWindow();\n const documentElement = document.documentElement;\n const documentRect = documentElement.getBoundingClientRect();\n const top = -documentRect.top ||\n document.body.scrollTop ||\n window.scrollY ||\n documentElement.scrollTop ||\n 0;\n const left = -documentRect.left ||\n document.body.scrollLeft ||\n window.scrollX ||\n documentElement.scrollLeft ||\n 0;\n return { top, left };\n }\n /**\n * Returns a stream that emits whenever the size of the viewport changes.\n * This stream emits outside of the Angular zone.\n * @param throttleTime Time in milliseconds to throttle the stream.\n */\n change(throttleTime = DEFAULT_RESIZE_TIME) {\n return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Updates the cached viewport size. */\n _updateViewportSize() {\n const window = this._getWindow();\n this._viewportSize = this._platform.isBrowser\n ? { width: window.innerWidth, height: window.innerHeight }\n : { width: 0, height: 0 };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: ViewportRuler, deps: [{ token: i1.Platform }, { token: i0.NgZone }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: ViewportRuler, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: ViewportRuler, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.Platform }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }] });\n\nconst VIRTUAL_SCROLLABLE = new InjectionToken('VIRTUAL_SCROLLABLE');\n/**\n * Extending the {@link CdkScrollable} to be used as scrolling container for virtual scrolling.\n */\nclass CdkVirtualScrollable extends CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n /**\n * Measure the viewport size for the provided orientation.\n *\n * @param orientation The orientation to measure the size from.\n */\n measureViewportSize(orientation) {\n const viewportEl = this.elementRef.nativeElement;\n return orientation === 'horizontal' ? viewportEl.clientWidth : viewportEl.clientHeight;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkVirtualScrollable, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: CdkVirtualScrollable, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkVirtualScrollable, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }] });\n\n/** Checks if the given ranges are equal. */\nfunction rangesEqual(r1, r2) {\n return r1.start == r2.start && r1.end == r2.end;\n}\n/**\n * Scheduler to be used for scroll events. Needs to fall back to\n * something that doesn't rely on requestAnimationFrame on environments\n * that don't support it (e.g. server-side rendering).\n */\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n/** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */\nclass CdkVirtualScrollViewport extends CdkVirtualScrollable {\n /** The direction the viewport scrolls. */\n get orientation() {\n return this._orientation;\n }\n set orientation(orientation) {\n if (this._orientation !== orientation) {\n this._orientation = orientation;\n this._calculateSpacerSize();\n }\n }\n constructor(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, dir, scrollDispatcher, viewportRuler, scrollable) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n this.elementRef = elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._scrollStrategy = _scrollStrategy;\n this.scrollable = scrollable;\n this._platform = inject(Platform);\n /** Emits when the viewport is detached from a CdkVirtualForOf. */\n this._detachedSubject = new Subject();\n /** Emits when the rendered range changes. */\n this._renderedRangeSubject = new Subject();\n this._orientation = 'vertical';\n /**\n * Whether rendered items should persist in the DOM after scrolling out of view. By default, items\n * will be removed.\n */\n this.appendOnly = false;\n // Note: we don't use the typical EventEmitter here because we need to subscribe to the scroll\n // strategy lazily (i.e. only if the user is actually listening to the events). We do this because\n // depending on how the strategy calculates the scrolled index, it may come at a cost to\n // performance.\n /** Emits when the index of the first element visible in the viewport changes. */\n this.scrolledIndexChange = new Observable((observer) => this._scrollStrategy.scrolledIndexChange.subscribe(index => Promise.resolve().then(() => this.ngZone.run(() => observer.next(index)))));\n /** A stream that emits whenever the rendered range changes. */\n this.renderedRangeStream = this._renderedRangeSubject;\n /**\n * The total size of all content (in pixels), including content that is not currently rendered.\n */\n this._totalContentSize = 0;\n /** A string representing the `style.width` property value to be used for the spacer element. */\n this._totalContentWidth = '';\n /** A string representing the `style.height` property value to be used for the spacer element. */\n this._totalContentHeight = '';\n /** The currently rendered range of indices. */\n this._renderedRange = { start: 0, end: 0 };\n /** The length of the data bound to this viewport (in number of items). */\n this._dataLength = 0;\n /** The size of the viewport (in pixels). */\n this._viewportSize = 0;\n /** The last rendered content offset that was set. */\n this._renderedContentOffset = 0;\n /**\n * Whether the last rendered content offset was to the end of the content (and therefore needs to\n * be rewritten as an offset to the start of the content).\n */\n this._renderedContentOffsetNeedsRewrite = false;\n /** Whether there is a pending change detection cycle. */\n this._isChangeDetectionPending = false;\n /** A list of functions to run after the next change detection cycle. */\n this._runAfterChangeDetection = [];\n /** Subscription to changes in the viewport size. */\n this._viewportChanges = Subscription.EMPTY;\n if (!_scrollStrategy && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Error: cdk-virtual-scroll-viewport requires the \"itemSize\" property to be set.');\n }\n this._viewportChanges = viewportRuler.change().subscribe(() => {\n this.checkViewportSize();\n });\n if (!this.scrollable) {\n // No scrollable is provided, so the virtual-scroll-viewport needs to become a scrollable\n this.elementRef.nativeElement.classList.add('cdk-virtual-scrollable');\n this.scrollable = this;\n }\n }\n ngOnInit() {\n // Scrolling depends on the element dimensions which we can't get during SSR.\n if (!this._platform.isBrowser) {\n return;\n }\n if (this.scrollable === this) {\n super.ngOnInit();\n }\n // It's still too early to measure the viewport at this point. Deferring with a promise allows\n // the Viewport to be rendered with the correct size before we measure. We run this outside the\n // zone to avoid causing more change detection cycles. We handle the change detection loop\n // ourselves instead.\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._measureViewportSize();\n this._scrollStrategy.attach(this);\n this.scrollable\n .elementScrolled()\n .pipe(\n // Start off with a fake scroll event so we properly detect our initial position.\n startWith(null), \n // Collect multiple events into one until the next animation frame. This way if\n // there are multiple scroll events in the same frame we only need to recheck\n // our layout once.\n auditTime(0, SCROLL_SCHEDULER), \n // Usually `elementScrolled` is completed when the scrollable is destroyed, but\n // that may not be the case if a `CdkVirtualScrollableElement` is used so we have\n // to unsubscribe here just in case.\n takeUntil(this._destroyed))\n .subscribe(() => this._scrollStrategy.onContentScrolled());\n this._markChangeDetectionNeeded();\n }));\n }\n ngOnDestroy() {\n this.detach();\n this._scrollStrategy.detach();\n // Complete all subjects\n this._renderedRangeSubject.complete();\n this._detachedSubject.complete();\n this._viewportChanges.unsubscribe();\n super.ngOnDestroy();\n }\n /** Attaches a `CdkVirtualScrollRepeater` to this viewport. */\n attach(forOf) {\n if (this._forOf && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkVirtualScrollViewport is already attached.');\n }\n // Subscribe to the data stream of the CdkVirtualForOf to keep track of when the data length\n // changes. Run outside the zone to avoid triggering change detection, since we're managing the\n // change detection loop ourselves.\n this.ngZone.runOutsideAngular(() => {\n this._forOf = forOf;\n this._forOf.dataStream.pipe(takeUntil(this._detachedSubject)).subscribe(data => {\n const newLength = data.length;\n if (newLength !== this._dataLength) {\n this._dataLength = newLength;\n this._scrollStrategy.onDataLengthChanged();\n }\n this._doChangeDetection();\n });\n });\n }\n /** Detaches the current `CdkVirtualForOf`. */\n detach() {\n this._forOf = null;\n this._detachedSubject.next();\n }\n /** Gets the length of the data bound to this viewport (in number of items). */\n getDataLength() {\n return this._dataLength;\n }\n /** Gets the size of the viewport (in pixels). */\n getViewportSize() {\n return this._viewportSize;\n }\n // TODO(mmalerba): This is technically out of sync with what's really rendered until a render\n // cycle happens. I'm being careful to only call it after the render cycle is complete and before\n // setting it to something else, but its error prone and should probably be split into\n // `pendingRange` and `renderedRange`, the latter reflecting whats actually in the DOM.\n /** Get the current rendered range of items. */\n getRenderedRange() {\n return this._renderedRange;\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from];\n }\n /**\n * Sets the total size of all content (in pixels), including content that is not currently\n * rendered.\n */\n setTotalContentSize(size) {\n if (this._totalContentSize !== size) {\n this._totalContentSize = size;\n this._calculateSpacerSize();\n this._markChangeDetectionNeeded();\n }\n }\n /** Sets the currently rendered range of indices. */\n setRenderedRange(range) {\n if (!rangesEqual(this._renderedRange, range)) {\n if (this.appendOnly) {\n range = { start: 0, end: Math.max(this._renderedRange.end, range.end) };\n }\n this._renderedRangeSubject.next((this._renderedRange = range));\n this._markChangeDetectionNeeded(() => this._scrollStrategy.onContentRendered());\n }\n }\n /**\n * Gets the offset from the start of the viewport to the start of the rendered data (in pixels).\n */\n getOffsetToRenderedContentStart() {\n return this._renderedContentOffsetNeedsRewrite ? null : this._renderedContentOffset;\n }\n /**\n * Sets the offset from the start of the viewport to either the start or end of the rendered data\n * (in pixels).\n */\n setRenderedContentOffset(offset, to = 'to-start') {\n // In appendOnly, we always start from the top\n offset = this.appendOnly && to === 'to-start' ? 0 : offset;\n // For a horizontal viewport in a right-to-left language we need to translate along the x-axis\n // in the negative direction.\n const isRtl = this.dir && this.dir.value == 'rtl';\n const isHorizontal = this.orientation == 'horizontal';\n const axis = isHorizontal ? 'X' : 'Y';\n const axisDirection = isHorizontal && isRtl ? -1 : 1;\n let transform = `translate${axis}(${Number(axisDirection * offset)}px)`;\n this._renderedContentOffset = offset;\n if (to === 'to-end') {\n transform += ` translate${axis}(-100%)`;\n // The viewport should rewrite this as a `to-start` offset on the next render cycle. Otherwise\n // elements will appear to expand in the wrong direction (e.g. `mat-expansion-panel` would\n // expand upward).\n this._renderedContentOffsetNeedsRewrite = true;\n }\n if (this._renderedContentTransform != transform) {\n // We know this value is safe because we parse `offset` with `Number()` before passing it\n // into the string.\n this._renderedContentTransform = transform;\n this._markChangeDetectionNeeded(() => {\n if (this._renderedContentOffsetNeedsRewrite) {\n this._renderedContentOffset -= this.measureRenderedContentSize();\n this._renderedContentOffsetNeedsRewrite = false;\n this.setRenderedContentOffset(this._renderedContentOffset);\n }\n else {\n this._scrollStrategy.onRenderedOffsetChanged();\n }\n });\n }\n }\n /**\n * Scrolls to the given offset from the start of the viewport. Please note that this is not always\n * the same as setting `scrollTop` or `scrollLeft`. In a horizontal viewport with right-to-left\n * direction, this would be the equivalent of setting a fictional `scrollRight` property.\n * @param offset The offset to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToOffset(offset, behavior = 'auto') {\n const options = { behavior };\n if (this.orientation === 'horizontal') {\n options.start = offset;\n }\n else {\n options.top = offset;\n }\n this.scrollable.scrollTo(options);\n }\n /**\n * Scrolls to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToIndex(index, behavior = 'auto') {\n this._scrollStrategy.scrollToIndex(index, behavior);\n }\n /**\n * Gets the current scroll offset from the start of the scrollable (in pixels).\n * @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'\n * in horizontal mode.\n */\n measureScrollOffset(from) {\n // This is to break the call cycle\n let measureScrollOffset;\n if (this.scrollable == this) {\n measureScrollOffset = (_from) => super.measureScrollOffset(_from);\n }\n else {\n measureScrollOffset = (_from) => this.scrollable.measureScrollOffset(_from);\n }\n return Math.max(0, measureScrollOffset(from ?? (this.orientation === 'horizontal' ? 'start' : 'top')) -\n this.measureViewportOffset());\n }\n /**\n * Measures the offset of the viewport from the scrolling container\n * @param from The edge to measure from.\n */\n measureViewportOffset(from) {\n let fromRect;\n const LEFT = 'left';\n const RIGHT = 'right';\n const isRtl = this.dir?.value == 'rtl';\n if (from == 'start') {\n fromRect = isRtl ? RIGHT : LEFT;\n }\n else if (from == 'end') {\n fromRect = isRtl ? LEFT : RIGHT;\n }\n else if (from) {\n fromRect = from;\n }\n else {\n fromRect = this.orientation === 'horizontal' ? 'left' : 'top';\n }\n const scrollerClientRect = this.scrollable.measureBoundingClientRectWithScrollOffset(fromRect);\n const viewportClientRect = this.elementRef.nativeElement.getBoundingClientRect()[fromRect];\n return viewportClientRect - scrollerClientRect;\n }\n /** Measure the combined size of all of the rendered items. */\n measureRenderedContentSize() {\n const contentEl = this._contentWrapper.nativeElement;\n return this.orientation === 'horizontal' ? contentEl.offsetWidth : contentEl.offsetHeight;\n }\n /**\n * Measure the total combined size of the given range. Throws if the range includes items that are\n * not rendered.\n */\n measureRangeSize(range) {\n if (!this._forOf) {\n return 0;\n }\n return this._forOf.measureRangeSize(range, this.orientation);\n }\n /** Update the viewport dimensions and re-render. */\n checkViewportSize() {\n // TODO: Cleanup later when add logic for handling content resize\n this._measureViewportSize();\n this._scrollStrategy.onDataLengthChanged();\n }\n /** Measure the viewport size. */\n _measureViewportSize() {\n this._viewportSize = this.scrollable.measureViewportSize(this.orientation);\n }\n /** Queue up change detection to run. */\n _markChangeDetectionNeeded(runAfter) {\n if (runAfter) {\n this._runAfterChangeDetection.push(runAfter);\n }\n // Use a Promise to batch together calls to `_doChangeDetection`. This way if we set a bunch of\n // properties sequentially we only have to run `_doChangeDetection` once at the end.\n if (!this._isChangeDetectionPending) {\n this._isChangeDetectionPending = true;\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._doChangeDetection();\n }));\n }\n }\n /** Run change detection. */\n _doChangeDetection() {\n this._isChangeDetectionPending = false;\n // Apply the content transform. The transform can't be set via an Angular binding because\n // bypassSecurityTrustStyle is banned in Google. However the value is safe, it's composed of\n // string literals, a variable that can only be 'X' or 'Y', and user input that is run through\n // the `Number` function first to coerce it to a numeric value.\n this._contentWrapper.nativeElement.style.transform = this._renderedContentTransform;\n // Apply changes to Angular bindings. Note: We must call `markForCheck` to run change detection\n // from the root, since the repeated items are content projected in. Calling `detectChanges`\n // instead does not properly check the projected content.\n this.ngZone.run(() => this._changeDetectorRef.markForCheck());\n const runAfterChangeDetection = this._runAfterChangeDetection;\n this._runAfterChangeDetection = [];\n for (const fn of runAfterChangeDetection) {\n fn();\n }\n }\n /** Calculates the `style.width` and `style.height` for the spacer element. */\n _calculateSpacerSize() {\n this._totalContentHeight =\n this.orientation === 'horizontal' ? '' : `${this._totalContentSize}px`;\n this._totalContentWidth =\n this.orientation === 'horizontal' ? `${this._totalContentSize}px` : '';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkVirtualScrollViewport, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: VIRTUAL_SCROLL_STRATEGY, optional: true }, { token: i2.Directionality, optional: true }, { token: ScrollDispatcher }, { token: ViewportRuler }, { token: VIRTUAL_SCROLLABLE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"16.1.0\", version: \"17.2.0\", type: CdkVirtualScrollViewport, isStandalone: true, selector: \"cdk-virtual-scroll-viewport\", inputs: { orientation: \"orientation\", appendOnly: [\"appendOnly\", \"appendOnly\", booleanAttribute] }, outputs: { scrolledIndexChange: \"scrolledIndexChange\" }, host: { properties: { \"class.cdk-virtual-scroll-orientation-horizontal\": \"orientation === \\\"horizontal\\\"\", \"class.cdk-virtual-scroll-orientation-vertical\": \"orientation !== \\\"horizontal\\\"\" }, classAttribute: \"cdk-virtual-scroll-viewport\" }, providers: [\n {\n provide: CdkScrollable,\n useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,\n deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport],\n },\n ], viewQueries: [{ propertyName: \"_contentWrapper\", first: true, predicate: [\"contentWrapper\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"\\n
    \\n \\n
    \\n\\n
    \\n\", styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkVirtualScrollViewport, decorators: [{\n type: Component,\n args: [{ selector: 'cdk-virtual-scroll-viewport', host: {\n 'class': 'cdk-virtual-scroll-viewport',\n '[class.cdk-virtual-scroll-orientation-horizontal]': 'orientation === \"horizontal\"',\n '[class.cdk-virtual-scroll-orientation-vertical]': 'orientation !== \"horizontal\"',\n }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, providers: [\n {\n provide: CdkScrollable,\n useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,\n deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport],\n },\n ], template: \"\\n
    \\n \\n
    \\n\\n
    \\n\", styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLL_STRATEGY]\n }] }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }, { type: ScrollDispatcher }, { type: ViewportRuler }, { type: CdkVirtualScrollable, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLLABLE]\n }] }], propDecorators: { orientation: [{\n type: Input\n }], appendOnly: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], scrolledIndexChange: [{\n type: Output\n }], _contentWrapper: [{\n type: ViewChild,\n args: ['contentWrapper', { static: true }]\n }] } });\n\n/** Helper to extract the offset of a DOM Node in a certain direction. */\nfunction getOffset(orientation, direction, node) {\n const el = node;\n if (!el.getBoundingClientRect) {\n return 0;\n }\n const rect = el.getBoundingClientRect();\n if (orientation === 'horizontal') {\n return direction === 'start' ? rect.left : rect.right;\n }\n return direction === 'start' ? rect.top : rect.bottom;\n}\n/**\n * A directive similar to `ngForOf` to be used for rendering data inside a virtual scrolling\n * container.\n */\nclass CdkVirtualForOf {\n /** The DataSource to display. */\n get cdkVirtualForOf() {\n return this._cdkVirtualForOf;\n }\n set cdkVirtualForOf(value) {\n this._cdkVirtualForOf = value;\n if (isDataSource(value)) {\n this._dataSourceChanges.next(value);\n }\n else {\n // If value is an an NgIterable, convert it to an array.\n this._dataSourceChanges.next(new ArrayDataSource(isObservable(value) ? value : Array.from(value || [])));\n }\n }\n /**\n * The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and\n * the item and produces a value to be used as the item's identity when tracking changes.\n */\n get cdkVirtualForTrackBy() {\n return this._cdkVirtualForTrackBy;\n }\n set cdkVirtualForTrackBy(fn) {\n this._needsUpdate = true;\n this._cdkVirtualForTrackBy = fn\n ? (index, item) => fn(index + (this._renderedRange ? this._renderedRange.start : 0), item)\n : undefined;\n }\n /** The template used to stamp out new elements. */\n set cdkVirtualForTemplate(value) {\n if (value) {\n this._needsUpdate = true;\n this._template = value;\n }\n }\n /**\n * The size of the cache used to store templates that are not being used for re-use later.\n * Setting the cache size to `0` will disable caching. Defaults to 20 templates.\n */\n get cdkVirtualForTemplateCacheSize() {\n return this._viewRepeater.viewCacheSize;\n }\n set cdkVirtualForTemplateCacheSize(size) {\n this._viewRepeater.viewCacheSize = coerceNumberProperty(size);\n }\n constructor(\n /** The view container to add items to. */\n _viewContainerRef, \n /** The template to use when stamping out new items. */\n _template, \n /** The set of available differs. */\n _differs, \n /** The strategy used to render items in the virtual scroll viewport. */\n _viewRepeater, \n /** The virtual scrolling viewport that these items are being rendered in. */\n _viewport, ngZone) {\n this._viewContainerRef = _viewContainerRef;\n this._template = _template;\n this._differs = _differs;\n this._viewRepeater = _viewRepeater;\n this._viewport = _viewport;\n /** Emits when the rendered view of the data changes. */\n this.viewChange = new Subject();\n /** Subject that emits when a new DataSource instance is given. */\n this._dataSourceChanges = new Subject();\n /** Emits whenever the data in the current DataSource changes. */\n this.dataStream = this._dataSourceChanges.pipe(\n // Start off with null `DataSource`.\n startWith(null), \n // Bundle up the previous and current data sources so we can work with both.\n pairwise(), \n // Use `_changeDataSource` to disconnect from the previous data source and connect to the\n // new one, passing back a stream of data changes which we run through `switchMap` to give\n // us a data stream that emits the latest data from whatever the current `DataSource` is.\n switchMap(([prev, cur]) => this._changeDataSource(prev, cur)), \n // Replay the last emitted data when someone subscribes.\n shareReplay(1));\n /** The differ used to calculate changes to the data. */\n this._differ = null;\n /** Whether the rendered data should be updated during the next ngDoCheck cycle. */\n this._needsUpdate = false;\n this._destroyed = new Subject();\n this.dataStream.subscribe(data => {\n this._data = data;\n this._onRenderedDataChange();\n });\n this._viewport.renderedRangeStream.pipe(takeUntil(this._destroyed)).subscribe(range => {\n this._renderedRange = range;\n if (this.viewChange.observers.length) {\n ngZone.run(() => this.viewChange.next(this._renderedRange));\n }\n this._onRenderedDataChange();\n });\n this._viewport.attach(this);\n }\n /**\n * Measures the combined size (width for horizontal orientation, height for vertical) of all items\n * in the specified range. Throws an error if the range includes items that are not currently\n * rendered.\n */\n measureRangeSize(range, orientation) {\n if (range.start >= range.end) {\n return 0;\n }\n if ((range.start < this._renderedRange.start || range.end > this._renderedRange.end) &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Error: attempted to measure an item that isn't rendered.`);\n }\n // The index into the list of rendered views for the first item in the range.\n const renderedStartIndex = range.start - this._renderedRange.start;\n // The length of the range we're measuring.\n const rangeLen = range.end - range.start;\n // Loop over all the views, find the first and land node and compute the size by subtracting\n // the top of the first node from the bottom of the last one.\n let firstNode;\n let lastNode;\n // Find the first node by starting from the beginning and going forwards.\n for (let i = 0; i < rangeLen; i++) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n firstNode = lastNode = view.rootNodes[0];\n break;\n }\n }\n // Find the last node by starting from the end and going backwards.\n for (let i = rangeLen - 1; i > -1; i--) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n lastNode = view.rootNodes[view.rootNodes.length - 1];\n break;\n }\n }\n return firstNode && lastNode\n ? getOffset(orientation, 'end', lastNode) - getOffset(orientation, 'start', firstNode)\n : 0;\n }\n ngDoCheck() {\n if (this._differ && this._needsUpdate) {\n // TODO(mmalerba): We should differentiate needs update due to scrolling and a new portion of\n // this list being rendered (can use simpler algorithm) vs needs update due to data actually\n // changing (need to do this diff).\n const changes = this._differ.diff(this._renderedItems);\n if (!changes) {\n this._updateContext();\n }\n else {\n this._applyChanges(changes);\n }\n this._needsUpdate = false;\n }\n }\n ngOnDestroy() {\n this._viewport.detach();\n this._dataSourceChanges.next(undefined);\n this._dataSourceChanges.complete();\n this.viewChange.complete();\n this._destroyed.next();\n this._destroyed.complete();\n this._viewRepeater.detach();\n }\n /** React to scroll state changes in the viewport. */\n _onRenderedDataChange() {\n if (!this._renderedRange) {\n return;\n }\n this._renderedItems = this._data.slice(this._renderedRange.start, this._renderedRange.end);\n if (!this._differ) {\n // Use a wrapper function for the `trackBy` so any new values are\n // picked up automatically without having to recreate the differ.\n this._differ = this._differs.find(this._renderedItems).create((index, item) => {\n return this.cdkVirtualForTrackBy ? this.cdkVirtualForTrackBy(index, item) : item;\n });\n }\n this._needsUpdate = true;\n }\n /** Swap out one `DataSource` for another. */\n _changeDataSource(oldDs, newDs) {\n if (oldDs) {\n oldDs.disconnect(this);\n }\n this._needsUpdate = true;\n return newDs ? newDs.connect(this) : of();\n }\n /** Update the `CdkVirtualForOfContext` for all views. */\n _updateContext() {\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n view.detectChanges();\n }\n }\n /** Apply changes to the DOM. */\n _applyChanges(changes) {\n this._viewRepeater.applyChanges(changes, this._viewContainerRef, (record, _adjustedPreviousIndex, currentIndex) => this._getEmbeddedViewArgs(record, currentIndex), record => record.item);\n // Update $implicit for any items that had an identity change.\n changes.forEachIdentityChange((record) => {\n const view = this._viewContainerRef.get(record.currentIndex);\n view.context.$implicit = record.item;\n });\n // Update the context variables on all items.\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n }\n }\n /** Update the computed properties on the `CdkVirtualForOfContext`. */\n _updateComputedContextProperties(context) {\n context.first = context.index === 0;\n context.last = context.index === context.count - 1;\n context.even = context.index % 2 === 0;\n context.odd = !context.even;\n }\n _getEmbeddedViewArgs(record, index) {\n // Note that it's important that we insert the item directly at the proper index,\n // rather than inserting it and the moving it in place, because if there's a directive\n // on the same node that injects the `ViewContainerRef`, Angular will insert another\n // comment node which can throw off the move when it's being repeated for all items.\n return {\n templateRef: this._template,\n context: {\n $implicit: record.item,\n // It's guaranteed that the iterable is not \"undefined\" or \"null\" because we only\n // generate views for elements if the \"cdkVirtualForOf\" iterable has elements.\n cdkVirtualForOf: this._cdkVirtualForOf,\n index: -1,\n count: -1,\n first: false,\n last: false,\n odd: false,\n even: false,\n },\n index,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkVirtualForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: _VIEW_REPEATER_STRATEGY }, { token: CdkVirtualScrollViewport, skipSelf: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: CdkVirtualForOf, isStandalone: true, selector: \"[cdkVirtualFor][cdkVirtualForOf]\", inputs: { cdkVirtualForOf: \"cdkVirtualForOf\", cdkVirtualForTrackBy: \"cdkVirtualForTrackBy\", cdkVirtualForTemplate: \"cdkVirtualForTemplate\", cdkVirtualForTemplateCacheSize: \"cdkVirtualForTemplateCacheSize\" }, providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkVirtualForOf, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualFor][cdkVirtualForOf]',\n providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }],\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }, { type: i2$1._RecycleViewRepeaterStrategy, decorators: [{\n type: Inject,\n args: [_VIEW_REPEATER_STRATEGY]\n }] }, { type: CdkVirtualScrollViewport, decorators: [{\n type: SkipSelf\n }] }, { type: i0.NgZone }], propDecorators: { cdkVirtualForOf: [{\n type: Input\n }], cdkVirtualForTrackBy: [{\n type: Input\n }], cdkVirtualForTemplate: [{\n type: Input\n }], cdkVirtualForTemplateCacheSize: [{\n type: Input\n }] } });\n\n/**\n * Provides a virtual scrollable for the element it is attached to.\n */\nclass CdkVirtualScrollableElement extends CdkVirtualScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return (this.getElementRef().nativeElement.getBoundingClientRect()[from] -\n this.measureScrollOffset(from));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkVirtualScrollableElement, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: CdkVirtualScrollableElement, isStandalone: true, selector: \"[cdkVirtualScrollingElement]\", host: { classAttribute: \"cdk-virtual-scrollable\" }, providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableElement }], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkVirtualScrollableElement, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualScrollingElement]',\n providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableElement }],\n standalone: true,\n host: {\n 'class': 'cdk-virtual-scrollable',\n },\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }] });\n\n/**\n * Provides as virtual scrollable for the global / window scrollbar.\n */\nclass CdkVirtualScrollableWindow extends CdkVirtualScrollable {\n constructor(scrollDispatcher, ngZone, dir) {\n super(new ElementRef(document.documentElement), scrollDispatcher, ngZone, dir);\n this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(document, 'scroll').pipe(takeUntil(this._destroyed)).subscribe(observer)));\n }\n measureBoundingClientRectWithScrollOffset(from) {\n return this.getElementRef().nativeElement.getBoundingClientRect()[from];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkVirtualScrollableWindow, deps: [{ token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: CdkVirtualScrollableWindow, isStandalone: true, selector: \"cdk-virtual-scroll-viewport[scrollWindow]\", providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableWindow }], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkVirtualScrollableWindow, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[scrollWindow]',\n providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableWindow }],\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }] });\n\nclass CdkScrollableModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkScrollableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkScrollableModule, imports: [CdkScrollable], exports: [CdkScrollable] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkScrollableModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkScrollableModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkScrollable],\n imports: [CdkScrollable],\n }]\n }] });\n/**\n * @docs-primary-export\n */\nclass ScrollingModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: ScrollingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.2.0\", ngImport: i0, type: ScrollingModule, imports: [BidiModule, CdkScrollableModule, CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement], exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: ScrollingModule, imports: [BidiModule,\n CdkScrollableModule, BidiModule, CdkScrollableModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: ScrollingModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n BidiModule,\n CdkScrollableModule,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement,\n ],\n exports: [\n BidiModule,\n CdkScrollableModule,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n CdkVirtualScrollableWindow,\n CdkVirtualScrollableElement,\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkFixedSizeVirtualScroll, CdkScrollable, CdkScrollableModule, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollable, CdkVirtualScrollableElement, CdkVirtualScrollableWindow, DEFAULT_RESIZE_TIME, DEFAULT_SCROLL_TIME, FixedSizeVirtualScrollStrategy, ScrollDispatcher, ScrollingModule, VIRTUAL_SCROLLABLE, VIRTUAL_SCROLL_STRATEGY, ViewportRuler, _fixedSizeVirtualScrollStrategyFactory };\n","import * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, ApplicationRef, EnvironmentInjector, createComponent, Injectable, Inject, InjectionToken, booleanAttribute, Directive, Optional, SkipSelf, Input, EventEmitter, Self, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport * as i1 from '@angular/cdk/scrolling';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { _getEventTarget, normalizePassiveListenerOptions, _getShadowRoot } from '@angular/cdk/platform';\nimport { coerceElement, coerceNumberProperty, coerceArray } from '@angular/cdk/coercion';\nimport { isFakeTouchstartFromScreenReader, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\nimport { Subject, Subscription, interval, animationFrameScheduler, Observable, merge, BehaviorSubject } from 'rxjs';\nimport { takeUntil, map, take, tap, switchMap, startWith } from 'rxjs/operators';\nimport * as i1$1 from '@angular/cdk/bidi';\n\n/**\n * Shallow-extends a stylesheet object with another stylesheet-like object.\n * Note that the keys in `source` have to be dash-cased.\n * @docs-private\n */\nfunction extendStyles(dest, source, importantProperties) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n const value = source[key];\n if (value) {\n dest.setProperty(key, value, importantProperties?.has(key) ? 'important' : '');\n }\n else {\n dest.removeProperty(key);\n }\n }\n }\n return dest;\n}\n/**\n * Toggles whether the native drag interactions should be enabled for an element.\n * @param element Element on which to toggle the drag interactions.\n * @param enable Whether the drag interactions should be enabled.\n * @docs-private\n */\nfunction toggleNativeDragInteractions(element, enable) {\n const userSelect = enable ? '' : 'none';\n extendStyles(element.style, {\n 'touch-action': enable ? '' : 'none',\n '-webkit-user-drag': enable ? '' : 'none',\n '-webkit-tap-highlight-color': enable ? '' : 'transparent',\n 'user-select': userSelect,\n '-ms-user-select': userSelect,\n '-webkit-user-select': userSelect,\n '-moz-user-select': userSelect,\n });\n}\n/**\n * Toggles whether an element is visible while preserving its dimensions.\n * @param element Element whose visibility to toggle\n * @param enable Whether the element should be visible.\n * @param importantProperties Properties to be set as `!important`.\n * @docs-private\n */\nfunction toggleVisibility(element, enable, importantProperties) {\n extendStyles(element.style, {\n position: enable ? '' : 'fixed',\n top: enable ? '' : '0',\n opacity: enable ? '' : '0',\n left: enable ? '' : '-999em',\n }, importantProperties);\n}\n/**\n * Combines a transform string with an optional other transform\n * that exited before the base transform was applied.\n */\nfunction combineTransforms(transform, initialTransform) {\n return initialTransform && initialTransform != 'none'\n ? transform + ' ' + initialTransform\n : transform;\n}\n/**\n * Matches the target element's size to the source's size.\n * @param target Element that needs to be resized.\n * @param sourceRect Dimensions of the source element.\n */\nfunction matchElementSize(target, sourceRect) {\n target.style.width = `${sourceRect.width}px`;\n target.style.height = `${sourceRect.height}px`;\n target.style.transform = getTransform(sourceRect.left, sourceRect.top);\n}\n/**\n * Gets a 3d `transform` that can be applied to an element.\n * @param x Desired position of the element along the X axis.\n * @param y Desired position of the element along the Y axis.\n */\nfunction getTransform(x, y) {\n // Round the transforms since some browsers will\n // blur the elements for sub-pixel transforms.\n return `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`;\n}\n\n/** Gets a mutable version of an element's bounding `DOMRect`. */\nfunction getMutableClientRect(element) {\n const rect = element.getBoundingClientRect();\n // We need to clone the `clientRect` here, because all the values on it are readonly\n // and we need to be able to update them. Also we can't use a spread here, because\n // the values on a `DOMRect` aren't own properties. See:\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#Notes\n return {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.width,\n height: rect.height,\n x: rect.x,\n y: rect.y,\n };\n}\n/**\n * Checks whether some coordinates are within a `DOMRect`.\n * @param clientRect DOMRect that is being checked.\n * @param x Coordinates along the X axis.\n * @param y Coordinates along the Y axis.\n */\nfunction isInsideClientRect(clientRect, x, y) {\n const { top, bottom, left, right } = clientRect;\n return y >= top && y <= bottom && x >= left && x <= right;\n}\n/**\n * Updates the top/left positions of a `DOMRect`, as well as their bottom/right counterparts.\n * @param domRect `DOMRect` that should be updated.\n * @param top Amount to add to the `top` position.\n * @param left Amount to add to the `left` position.\n */\nfunction adjustDomRect(domRect, top, left) {\n domRect.top += top;\n domRect.bottom = domRect.top + domRect.height;\n domRect.left += left;\n domRect.right = domRect.left + domRect.width;\n}\n/**\n * Checks whether the pointer coordinates are close to a DOMRect.\n * @param rect DOMRect to check against.\n * @param threshold Threshold around the DOMRect.\n * @param pointerX Coordinates along the X axis.\n * @param pointerY Coordinates along the Y axis.\n */\nfunction isPointerNearDomRect(rect, threshold, pointerX, pointerY) {\n const { top, right, bottom, left, width, height } = rect;\n const xThreshold = width * threshold;\n const yThreshold = height * threshold;\n return (pointerY > top - yThreshold &&\n pointerY < bottom + yThreshold &&\n pointerX > left - xThreshold &&\n pointerX < right + xThreshold);\n}\n\n/** Keeps track of the scroll position and dimensions of the parents of an element. */\nclass ParentPositionTracker {\n constructor(_document) {\n this._document = _document;\n /** Cached positions of the scrollable parent elements. */\n this.positions = new Map();\n }\n /** Clears the cached positions. */\n clear() {\n this.positions.clear();\n }\n /** Caches the positions. Should be called at the beginning of a drag sequence. */\n cache(elements) {\n this.clear();\n this.positions.set(this._document, {\n scrollPosition: this.getViewportScrollPosition(),\n });\n elements.forEach(element => {\n this.positions.set(element, {\n scrollPosition: { top: element.scrollTop, left: element.scrollLeft },\n clientRect: getMutableClientRect(element),\n });\n });\n }\n /** Handles scrolling while a drag is taking place. */\n handleScroll(event) {\n const target = _getEventTarget(event);\n const cachedPosition = this.positions.get(target);\n if (!cachedPosition) {\n return null;\n }\n const scrollPosition = cachedPosition.scrollPosition;\n let newTop;\n let newLeft;\n if (target === this._document) {\n const viewportScrollPosition = this.getViewportScrollPosition();\n newTop = viewportScrollPosition.top;\n newLeft = viewportScrollPosition.left;\n }\n else {\n newTop = target.scrollTop;\n newLeft = target.scrollLeft;\n }\n const topDifference = scrollPosition.top - newTop;\n const leftDifference = scrollPosition.left - newLeft;\n // Go through and update the cached positions of the scroll\n // parents that are inside the element that was scrolled.\n this.positions.forEach((position, node) => {\n if (position.clientRect && target !== node && target.contains(node)) {\n adjustDomRect(position.clientRect, topDifference, leftDifference);\n }\n });\n scrollPosition.top = newTop;\n scrollPosition.left = newLeft;\n return { top: topDifference, left: leftDifference };\n }\n /**\n * Gets the scroll position of the viewport. Note that we use the scrollX and scrollY directly,\n * instead of going through the `ViewportRuler`, because the first value the ruler looks at is\n * the top/left offset of the `document.documentElement` which works for most cases, but breaks\n * if the element is offset by something like the `BlockScrollStrategy`.\n */\n getViewportScrollPosition() {\n return { top: window.scrollY, left: window.scrollX };\n }\n}\n\n/** Creates a deep clone of an element. */\nfunction deepCloneNode(node) {\n const clone = node.cloneNode(true);\n const descendantsWithId = clone.querySelectorAll('[id]');\n const nodeName = node.nodeName.toLowerCase();\n // Remove the `id` to avoid having multiple elements with the same id on the page.\n clone.removeAttribute('id');\n for (let i = 0; i < descendantsWithId.length; i++) {\n descendantsWithId[i].removeAttribute('id');\n }\n if (nodeName === 'canvas') {\n transferCanvasData(node, clone);\n }\n else if (nodeName === 'input' || nodeName === 'select' || nodeName === 'textarea') {\n transferInputData(node, clone);\n }\n transferData('canvas', node, clone, transferCanvasData);\n transferData('input, textarea, select', node, clone, transferInputData);\n return clone;\n}\n/** Matches elements between an element and its clone and allows for their data to be cloned. */\nfunction transferData(selector, node, clone, callback) {\n const descendantElements = node.querySelectorAll(selector);\n if (descendantElements.length) {\n const cloneElements = clone.querySelectorAll(selector);\n for (let i = 0; i < descendantElements.length; i++) {\n callback(descendantElements[i], cloneElements[i]);\n }\n }\n}\n// Counter for unique cloned radio button names.\nlet cloneUniqueId = 0;\n/** Transfers the data of one input element to another. */\nfunction transferInputData(source, clone) {\n // Browsers throw an error when assigning the value of a file input programmatically.\n if (clone.type !== 'file') {\n clone.value = source.value;\n }\n // Radio button `name` attributes must be unique for radio button groups\n // otherwise original radio buttons can lose their checked state\n // once the clone is inserted in the DOM.\n if (clone.type === 'radio' && clone.name) {\n clone.name = `mat-clone-${clone.name}-${cloneUniqueId++}`;\n }\n}\n/** Transfers the data of one canvas element to another. */\nfunction transferCanvasData(source, clone) {\n const context = clone.getContext('2d');\n if (context) {\n // In some cases `drawImage` can throw (e.g. if the canvas size is 0x0).\n // We can't do much about it so just ignore the error.\n try {\n context.drawImage(source, 0, 0);\n }\n catch { }\n }\n}\n\n/**\n * Gets the root HTML element of an embedded view.\n * If the root is not an HTML element it gets wrapped in one.\n */\nfunction getRootNode(viewRef, _document) {\n const rootNodes = viewRef.rootNodes;\n if (rootNodes.length === 1 && rootNodes[0].nodeType === _document.ELEMENT_NODE) {\n return rootNodes[0];\n }\n const wrapper = _document.createElement('div');\n rootNodes.forEach(node => wrapper.appendChild(node));\n return wrapper;\n}\n\n/** Parses a CSS time value to milliseconds. */\nfunction parseCssTimeUnitsToMs(value) {\n // Some browsers will return it in seconds, whereas others will return milliseconds.\n const multiplier = value.toLowerCase().indexOf('ms') > -1 ? 1 : 1000;\n return parseFloat(value) * multiplier;\n}\n/** Gets the transform transition duration, including the delay, of an element in milliseconds. */\nfunction getTransformTransitionDurationInMs(element) {\n const computedStyle = getComputedStyle(element);\n const transitionedProperties = parseCssPropertyValue(computedStyle, 'transition-property');\n const property = transitionedProperties.find(prop => prop === 'transform' || prop === 'all');\n // If there's no transition for `all` or `transform`, we shouldn't do anything.\n if (!property) {\n return 0;\n }\n // Get the index of the property that we're interested in and match\n // it up to the same index in `transition-delay` and `transition-duration`.\n const propertyIndex = transitionedProperties.indexOf(property);\n const rawDurations = parseCssPropertyValue(computedStyle, 'transition-duration');\n const rawDelays = parseCssPropertyValue(computedStyle, 'transition-delay');\n return (parseCssTimeUnitsToMs(rawDurations[propertyIndex]) +\n parseCssTimeUnitsToMs(rawDelays[propertyIndex]));\n}\n/** Parses out multiple values from a computed style into an array. */\nfunction parseCssPropertyValue(computedStyle, name) {\n const value = computedStyle.getPropertyValue(name);\n return value.split(',').map(part => part.trim());\n}\n\n/** Inline styles to be set as `!important` while dragging. */\nconst importantProperties = new Set([\n // Needs to be important, because some `mat-table` sets `position: sticky !important`. See #22781.\n 'position',\n]);\nclass PreviewRef {\n constructor(_document, _rootElement, _direction, _initialDomRect, _previewTemplate, _previewClass, _pickupPositionOnPage, _initialTransform, _zIndex) {\n this._document = _document;\n this._rootElement = _rootElement;\n this._direction = _direction;\n this._initialDomRect = _initialDomRect;\n this._previewTemplate = _previewTemplate;\n this._previewClass = _previewClass;\n this._pickupPositionOnPage = _pickupPositionOnPage;\n this._initialTransform = _initialTransform;\n this._zIndex = _zIndex;\n }\n attach(parent) {\n this._preview = this._createPreview();\n parent.appendChild(this._preview);\n // The null check is necessary for browsers that don't support the popover API.\n // Note that we use a string access for compatibility with Closure.\n if ('showPopover' in this._preview) {\n this._preview['showPopover']();\n }\n }\n destroy() {\n this._preview.remove();\n this._previewEmbeddedView?.destroy();\n this._preview = this._previewEmbeddedView = null;\n }\n setTransform(value) {\n this._preview.style.transform = value;\n }\n getBoundingClientRect() {\n return this._preview.getBoundingClientRect();\n }\n addClass(className) {\n this._preview.classList.add(className);\n }\n getTransitionDuration() {\n return getTransformTransitionDurationInMs(this._preview);\n }\n addEventListener(name, handler) {\n this._preview.addEventListener(name, handler);\n }\n removeEventListener(name, handler) {\n this._preview.removeEventListener(name, handler);\n }\n _createPreview() {\n const previewConfig = this._previewTemplate;\n const previewClass = this._previewClass;\n const previewTemplate = previewConfig ? previewConfig.template : null;\n let preview;\n if (previewTemplate && previewConfig) {\n // Measure the element before we've inserted the preview\n // since the insertion could throw off the measurement.\n const rootRect = previewConfig.matchSize ? this._initialDomRect : null;\n const viewRef = previewConfig.viewContainer.createEmbeddedView(previewTemplate, previewConfig.context);\n viewRef.detectChanges();\n preview = getRootNode(viewRef, this._document);\n this._previewEmbeddedView = viewRef;\n if (previewConfig.matchSize) {\n matchElementSize(preview, rootRect);\n }\n else {\n preview.style.transform = getTransform(this._pickupPositionOnPage.x, this._pickupPositionOnPage.y);\n }\n }\n else {\n preview = deepCloneNode(this._rootElement);\n matchElementSize(preview, this._initialDomRect);\n if (this._initialTransform) {\n preview.style.transform = this._initialTransform;\n }\n }\n extendStyles(preview.style, {\n // It's important that we disable the pointer events on the preview, because\n // it can throw off the `document.elementFromPoint` calls in the `CdkDropList`.\n 'pointer-events': 'none',\n // We have to reset the margin, because it can throw off positioning relative to the viewport.\n 'margin': '0',\n 'position': 'fixed',\n 'top': '0',\n 'left': '0',\n 'z-index': this._zIndex + '',\n }, importantProperties);\n toggleNativeDragInteractions(preview, false);\n preview.classList.add('cdk-drag-preview');\n preview.setAttribute('popover', 'manual');\n preview.setAttribute('dir', this._direction);\n if (previewClass) {\n if (Array.isArray(previewClass)) {\n previewClass.forEach(className => preview.classList.add(className));\n }\n else {\n preview.classList.add(previewClass);\n }\n }\n return preview;\n }\n}\n\n/** Options that can be used to bind a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });\n/** Options that can be used to bind an active event listener. */\nconst activeEventListenerOptions = normalizePassiveListenerOptions({ passive: false });\n/** Event options that can be used to bind an active, capturing event. */\nconst activeCapturingEventOptions$1 = normalizePassiveListenerOptions({\n passive: false,\n capture: true,\n});\n/**\n * Time in milliseconds for which to ignore mouse events, after\n * receiving a touch event. Used to avoid doing double work for\n * touch devices where the browser fires fake mouse events, in\n * addition to touch events.\n */\nconst MOUSE_EVENT_IGNORE_TIME = 800;\n/** Inline styles to be set as `!important` while dragging. */\nconst dragImportantProperties = new Set([\n // Needs to be important, because some `mat-table` sets `position: sticky !important`. See #22781.\n 'position',\n]);\n/**\n * Reference to a draggable item. Used to manipulate or dispose of the item.\n */\nclass DragRef {\n /** Whether starting to drag this element is disabled. */\n get disabled() {\n return this._disabled || !!(this._dropContainer && this._dropContainer.disabled);\n }\n set disabled(value) {\n if (value !== this._disabled) {\n this._disabled = value;\n this._toggleNativeDragInteractions();\n this._handles.forEach(handle => toggleNativeDragInteractions(handle, value));\n }\n }\n constructor(element, _config, _document, _ngZone, _viewportRuler, _dragDropRegistry) {\n this._config = _config;\n this._document = _document;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._dragDropRegistry = _dragDropRegistry;\n /**\n * CSS `transform` applied to the element when it isn't being dragged. We need a\n * passive transform in order for the dragged element to retain its new position\n * after the user has stopped dragging and because we need to know the relative\n * position in case they start dragging again. This corresponds to `element.style.transform`.\n */\n this._passiveTransform = { x: 0, y: 0 };\n /** CSS `transform` that is applied to the element while it's being dragged. */\n this._activeTransform = { x: 0, y: 0 };\n /**\n * Whether the dragging sequence has been started. Doesn't\n * necessarily mean that the element has been moved.\n */\n this._hasStartedDragging = false;\n /** Emits when the item is being moved. */\n this._moveEvents = new Subject();\n /** Subscription to pointer movement events. */\n this._pointerMoveSubscription = Subscription.EMPTY;\n /** Subscription to the event that is dispatched when the user lifts their pointer. */\n this._pointerUpSubscription = Subscription.EMPTY;\n /** Subscription to the viewport being scrolled. */\n this._scrollSubscription = Subscription.EMPTY;\n /** Subscription to the viewport being resized. */\n this._resizeSubscription = Subscription.EMPTY;\n /** Cached reference to the boundary element. */\n this._boundaryElement = null;\n /** Whether the native dragging interactions have been enabled on the root element. */\n this._nativeInteractionsEnabled = true;\n /** Elements that can be used to drag the draggable item. */\n this._handles = [];\n /** Registered handles that are currently disabled. */\n this._disabledHandles = new Set();\n /** Layout direction of the item. */\n this._direction = 'ltr';\n /**\n * Amount of milliseconds to wait after the user has put their\n * pointer down before starting to drag the element.\n */\n this.dragStartDelay = 0;\n this._disabled = false;\n /** Emits as the drag sequence is being prepared. */\n this.beforeStarted = new Subject();\n /** Emits when the user starts dragging the item. */\n this.started = new Subject();\n /** Emits when the user has released a drag item, before any animations have started. */\n this.released = new Subject();\n /** Emits when the user stops dragging an item in the container. */\n this.ended = new Subject();\n /** Emits when the user has moved the item into a new container. */\n this.entered = new Subject();\n /** Emits when the user removes the item its container by dragging it into another container. */\n this.exited = new Subject();\n /** Emits when the user drops the item inside a container. */\n this.dropped = new Subject();\n /**\n * Emits as the user is dragging the item. Use with caution,\n * because this event will fire for every pixel that the user has dragged.\n */\n this.moved = this._moveEvents;\n /** Handler for the `mousedown`/`touchstart` events. */\n this._pointerDown = (event) => {\n this.beforeStarted.next();\n // Delegate the event based on whether it started from a handle or the element itself.\n if (this._handles.length) {\n const targetHandle = this._getTargetHandle(event);\n if (targetHandle && !this._disabledHandles.has(targetHandle) && !this.disabled) {\n this._initializeDragSequence(targetHandle, event);\n }\n }\n else if (!this.disabled) {\n this._initializeDragSequence(this._rootElement, event);\n }\n };\n /** Handler that is invoked when the user moves their pointer after they've initiated a drag. */\n this._pointerMove = (event) => {\n const pointerPosition = this._getPointerPositionOnPage(event);\n if (!this._hasStartedDragging) {\n const distanceX = Math.abs(pointerPosition.x - this._pickupPositionOnPage.x);\n const distanceY = Math.abs(pointerPosition.y - this._pickupPositionOnPage.y);\n const isOverThreshold = distanceX + distanceY >= this._config.dragStartThreshold;\n // Only start dragging after the user has moved more than the minimum distance in either\n // direction. Note that this is preferable over doing something like `skip(minimumDistance)`\n // in the `pointerMove` subscription, because we're not guaranteed to have one move event\n // per pixel of movement (e.g. if the user moves their pointer quickly).\n if (isOverThreshold) {\n const isDelayElapsed = Date.now() >= this._dragStartTime + this._getDragStartDelay(event);\n const container = this._dropContainer;\n if (!isDelayElapsed) {\n this._endDragSequence(event);\n return;\n }\n // Prevent other drag sequences from starting while something in the container is still\n // being dragged. This can happen while we're waiting for the drop animation to finish\n // and can cause errors, because some elements might still be moving around.\n if (!container || (!container.isDragging() && !container.isReceiving())) {\n // Prevent the default action as soon as the dragging sequence is considered as\n // \"started\" since waiting for the next event can allow the device to begin scrolling.\n if (event.cancelable) {\n event.preventDefault();\n }\n this._hasStartedDragging = true;\n this._ngZone.run(() => this._startDragSequence(event));\n }\n }\n return;\n }\n // We prevent the default action down here so that we know that dragging has started. This is\n // important for touch devices where doing this too early can unnecessarily block scrolling,\n // if there's a dragging delay.\n if (event.cancelable) {\n event.preventDefault();\n }\n const constrainedPointerPosition = this._getConstrainedPointerPosition(pointerPosition);\n this._hasMoved = true;\n this._lastKnownPointerPosition = pointerPosition;\n this._updatePointerDirectionDelta(constrainedPointerPosition);\n if (this._dropContainer) {\n this._updateActiveDropContainer(constrainedPointerPosition, pointerPosition);\n }\n else {\n // If there's a position constraint function, we want the element's top/left to be at the\n // specific position on the page. Use the initial position as a reference if that's the case.\n const offset = this.constrainPosition ? this._initialDomRect : this._pickupPositionOnPage;\n const activeTransform = this._activeTransform;\n activeTransform.x = constrainedPointerPosition.x - offset.x + this._passiveTransform.x;\n activeTransform.y = constrainedPointerPosition.y - offset.y + this._passiveTransform.y;\n this._applyRootElementTransform(activeTransform.x, activeTransform.y);\n }\n // Since this event gets fired for every pixel while dragging, we only\n // want to fire it if the consumer opted into it. Also we have to\n // re-enter the zone because we run all of the events on the outside.\n if (this._moveEvents.observers.length) {\n this._ngZone.run(() => {\n this._moveEvents.next({\n source: this,\n pointerPosition: constrainedPointerPosition,\n event,\n distance: this._getDragDistance(constrainedPointerPosition),\n delta: this._pointerDirectionDelta,\n });\n });\n }\n };\n /** Handler that is invoked when the user lifts their pointer up, after initiating a drag. */\n this._pointerUp = (event) => {\n this._endDragSequence(event);\n };\n /** Handles a native `dragstart` event. */\n this._nativeDragStart = (event) => {\n if (this._handles.length) {\n const targetHandle = this._getTargetHandle(event);\n if (targetHandle && !this._disabledHandles.has(targetHandle) && !this.disabled) {\n event.preventDefault();\n }\n }\n else if (!this.disabled) {\n // Usually this isn't necessary since the we prevent the default action in `pointerDown`,\n // but some cases like dragging of links can slip through (see #24403).\n event.preventDefault();\n }\n };\n this.withRootElement(element).withParent(_config.parentDragRef || null);\n this._parentPositions = new ParentPositionTracker(_document);\n _dragDropRegistry.registerDragItem(this);\n }\n /**\n * Returns the element that is being used as a placeholder\n * while the current element is being dragged.\n */\n getPlaceholderElement() {\n return this._placeholder;\n }\n /** Returns the root draggable element. */\n getRootElement() {\n return this._rootElement;\n }\n /**\n * Gets the currently-visible element that represents the drag item.\n * While dragging this is the placeholder, otherwise it's the root element.\n */\n getVisibleElement() {\n return this.isDragging() ? this.getPlaceholderElement() : this.getRootElement();\n }\n /** Registers the handles that can be used to drag the element. */\n withHandles(handles) {\n this._handles = handles.map(handle => coerceElement(handle));\n this._handles.forEach(handle => toggleNativeDragInteractions(handle, this.disabled));\n this._toggleNativeDragInteractions();\n // Delete any lingering disabled handles that may have been destroyed. Note that we re-create\n // the set, rather than iterate over it and filter out the destroyed handles, because while\n // the ES spec allows for sets to be modified while they're being iterated over, some polyfills\n // use an array internally which may throw an error.\n const disabledHandles = new Set();\n this._disabledHandles.forEach(handle => {\n if (this._handles.indexOf(handle) > -1) {\n disabledHandles.add(handle);\n }\n });\n this._disabledHandles = disabledHandles;\n return this;\n }\n /**\n * Registers the template that should be used for the drag preview.\n * @param template Template that from which to stamp out the preview.\n */\n withPreviewTemplate(template) {\n this._previewTemplate = template;\n return this;\n }\n /**\n * Registers the template that should be used for the drag placeholder.\n * @param template Template that from which to stamp out the placeholder.\n */\n withPlaceholderTemplate(template) {\n this._placeholderTemplate = template;\n return this;\n }\n /**\n * Sets an alternate drag root element. The root element is the element that will be moved as\n * the user is dragging. Passing an alternate root element is useful when trying to enable\n * dragging on an element that you might not have access to.\n */\n withRootElement(rootElement) {\n const element = coerceElement(rootElement);\n if (element !== this._rootElement) {\n if (this._rootElement) {\n this._removeRootElementListeners(this._rootElement);\n }\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener('mousedown', this._pointerDown, activeEventListenerOptions);\n element.addEventListener('touchstart', this._pointerDown, passiveEventListenerOptions);\n element.addEventListener('dragstart', this._nativeDragStart, activeEventListenerOptions);\n });\n this._initialTransform = undefined;\n this._rootElement = element;\n }\n if (typeof SVGElement !== 'undefined' && this._rootElement instanceof SVGElement) {\n this._ownerSVGElement = this._rootElement.ownerSVGElement;\n }\n return this;\n }\n /**\n * Element to which the draggable's position will be constrained.\n */\n withBoundaryElement(boundaryElement) {\n this._boundaryElement = boundaryElement ? coerceElement(boundaryElement) : null;\n this._resizeSubscription.unsubscribe();\n if (boundaryElement) {\n this._resizeSubscription = this._viewportRuler\n .change(10)\n .subscribe(() => this._containInsideBoundaryOnResize());\n }\n return this;\n }\n /** Sets the parent ref that the ref is nested in. */\n withParent(parent) {\n this._parentDragRef = parent;\n return this;\n }\n /** Removes the dragging functionality from the DOM element. */\n dispose() {\n this._removeRootElementListeners(this._rootElement);\n // Do this check before removing from the registry since it'll\n // stop being considered as dragged once it is removed.\n if (this.isDragging()) {\n // Since we move out the element to the end of the body while it's being\n // dragged, we have to make sure that it's removed if it gets destroyed.\n this._rootElement?.remove();\n }\n this._anchor?.remove();\n this._destroyPreview();\n this._destroyPlaceholder();\n this._dragDropRegistry.removeDragItem(this);\n this._removeListeners();\n this.beforeStarted.complete();\n this.started.complete();\n this.released.complete();\n this.ended.complete();\n this.entered.complete();\n this.exited.complete();\n this.dropped.complete();\n this._moveEvents.complete();\n this._handles = [];\n this._disabledHandles.clear();\n this._dropContainer = undefined;\n this._resizeSubscription.unsubscribe();\n this._parentPositions.clear();\n this._boundaryElement =\n this._rootElement =\n this._ownerSVGElement =\n this._placeholderTemplate =\n this._previewTemplate =\n this._anchor =\n this._parentDragRef =\n null;\n }\n /** Checks whether the element is currently being dragged. */\n isDragging() {\n return this._hasStartedDragging && this._dragDropRegistry.isDragging(this);\n }\n /** Resets a standalone drag item to its initial position. */\n reset() {\n this._rootElement.style.transform = this._initialTransform || '';\n this._activeTransform = { x: 0, y: 0 };\n this._passiveTransform = { x: 0, y: 0 };\n }\n /**\n * Sets a handle as disabled. While a handle is disabled, it'll capture and interrupt dragging.\n * @param handle Handle element that should be disabled.\n */\n disableHandle(handle) {\n if (!this._disabledHandles.has(handle) && this._handles.indexOf(handle) > -1) {\n this._disabledHandles.add(handle);\n toggleNativeDragInteractions(handle, true);\n }\n }\n /**\n * Enables a handle, if it has been disabled.\n * @param handle Handle element to be enabled.\n */\n enableHandle(handle) {\n if (this._disabledHandles.has(handle)) {\n this._disabledHandles.delete(handle);\n toggleNativeDragInteractions(handle, this.disabled);\n }\n }\n /** Sets the layout direction of the draggable item. */\n withDirection(direction) {\n this._direction = direction;\n return this;\n }\n /** Sets the container that the item is part of. */\n _withDropContainer(container) {\n this._dropContainer = container;\n }\n /**\n * Gets the current position in pixels the draggable outside of a drop container.\n */\n getFreeDragPosition() {\n const position = this.isDragging() ? this._activeTransform : this._passiveTransform;\n return { x: position.x, y: position.y };\n }\n /**\n * Sets the current position in pixels the draggable outside of a drop container.\n * @param value New position to be set.\n */\n setFreeDragPosition(value) {\n this._activeTransform = { x: 0, y: 0 };\n this._passiveTransform.x = value.x;\n this._passiveTransform.y = value.y;\n if (!this._dropContainer) {\n this._applyRootElementTransform(value.x, value.y);\n }\n return this;\n }\n /**\n * Sets the container into which to insert the preview element.\n * @param value Container into which to insert the preview.\n */\n withPreviewContainer(value) {\n this._previewContainer = value;\n return this;\n }\n /** Updates the item's sort order based on the last-known pointer position. */\n _sortFromLastPointerPosition() {\n const position = this._lastKnownPointerPosition;\n if (position && this._dropContainer) {\n this._updateActiveDropContainer(this._getConstrainedPointerPosition(position), position);\n }\n }\n /** Unsubscribes from the global subscriptions. */\n _removeListeners() {\n this._pointerMoveSubscription.unsubscribe();\n this._pointerUpSubscription.unsubscribe();\n this._scrollSubscription.unsubscribe();\n this._getShadowRoot()?.removeEventListener('selectstart', shadowDomSelectStart, activeCapturingEventOptions$1);\n }\n /** Destroys the preview element and its ViewRef. */\n _destroyPreview() {\n this._preview?.destroy();\n this._preview = null;\n }\n /** Destroys the placeholder element and its ViewRef. */\n _destroyPlaceholder() {\n this._placeholder?.remove();\n this._placeholderRef?.destroy();\n this._placeholder = this._placeholderRef = null;\n }\n /**\n * Clears subscriptions and stops the dragging sequence.\n * @param event Browser event object that ended the sequence.\n */\n _endDragSequence(event) {\n // Note that here we use `isDragging` from the service, rather than from `this`.\n // The difference is that the one from the service reflects whether a dragging sequence\n // has been initiated, whereas the one on `this` includes whether the user has passed\n // the minimum dragging threshold.\n if (!this._dragDropRegistry.isDragging(this)) {\n return;\n }\n this._removeListeners();\n this._dragDropRegistry.stopDragging(this);\n this._toggleNativeDragInteractions();\n if (this._handles) {\n this._rootElement.style.webkitTapHighlightColor =\n this._rootElementTapHighlight;\n }\n if (!this._hasStartedDragging) {\n return;\n }\n this.released.next({ source: this, event });\n if (this._dropContainer) {\n // Stop scrolling immediately, instead of waiting for the animation to finish.\n this._dropContainer._stopScrolling();\n this._animatePreviewToPlaceholder().then(() => {\n this._cleanupDragArtifacts(event);\n this._cleanupCachedDimensions();\n this._dragDropRegistry.stopDragging(this);\n });\n }\n else {\n // Convert the active transform into a passive one. This means that next time\n // the user starts dragging the item, its position will be calculated relatively\n // to the new passive transform.\n this._passiveTransform.x = this._activeTransform.x;\n const pointerPosition = this._getPointerPositionOnPage(event);\n this._passiveTransform.y = this._activeTransform.y;\n this._ngZone.run(() => {\n this.ended.next({\n source: this,\n distance: this._getDragDistance(pointerPosition),\n dropPoint: pointerPosition,\n event,\n });\n });\n this._cleanupCachedDimensions();\n this._dragDropRegistry.stopDragging(this);\n }\n }\n /** Starts the dragging sequence. */\n _startDragSequence(event) {\n if (isTouchEvent(event)) {\n this._lastTouchEventTime = Date.now();\n }\n this._toggleNativeDragInteractions();\n // Needs to happen before the root element is moved.\n const shadowRoot = this._getShadowRoot();\n const dropContainer = this._dropContainer;\n if (shadowRoot) {\n // In some browsers the global `selectstart` that we maintain in the `DragDropRegistry`\n // doesn't cross the shadow boundary so we have to prevent it at the shadow root (see #28792).\n this._ngZone.runOutsideAngular(() => {\n shadowRoot.addEventListener('selectstart', shadowDomSelectStart, activeCapturingEventOptions$1);\n });\n }\n if (dropContainer) {\n const element = this._rootElement;\n const parent = element.parentNode;\n const placeholder = (this._placeholder = this._createPlaceholderElement());\n const anchor = (this._anchor = this._anchor || this._document.createComment(''));\n // Insert an anchor node so that we can restore the element's position in the DOM.\n parent.insertBefore(anchor, element);\n // There's no risk of transforms stacking when inside a drop container so\n // we can keep the initial transform up to date any time dragging starts.\n this._initialTransform = element.style.transform || '';\n // Create the preview after the initial transform has\n // been cached, because it can be affected by the transform.\n this._preview = new PreviewRef(this._document, this._rootElement, this._direction, this._initialDomRect, this._previewTemplate || null, this.previewClass || null, this._pickupPositionOnPage, this._initialTransform, this._config.zIndex || 1000);\n this._preview.attach(this._getPreviewInsertionPoint(parent, shadowRoot));\n // We move the element out at the end of the body and we make it hidden, because keeping it in\n // place will throw off the consumer's `:last-child` selectors. We can't remove the element\n // from the DOM completely, because iOS will stop firing all subsequent events in the chain.\n toggleVisibility(element, false, dragImportantProperties);\n this._document.body.appendChild(parent.replaceChild(placeholder, element));\n this.started.next({ source: this, event }); // Emit before notifying the container.\n dropContainer.start();\n this._initialContainer = dropContainer;\n this._initialIndex = dropContainer.getItemIndex(this);\n }\n else {\n this.started.next({ source: this, event });\n this._initialContainer = this._initialIndex = undefined;\n }\n // Important to run after we've called `start` on the parent container\n // so that it has had time to resolve its scrollable parents.\n this._parentPositions.cache(dropContainer ? dropContainer.getScrollableParents() : []);\n }\n /**\n * Sets up the different variables and subscriptions\n * that will be necessary for the dragging sequence.\n * @param referenceElement Element that started the drag sequence.\n * @param event Browser event object that started the sequence.\n */\n _initializeDragSequence(referenceElement, event) {\n // Stop propagation if the item is inside another\n // draggable so we don't start multiple drag sequences.\n if (this._parentDragRef) {\n event.stopPropagation();\n }\n const isDragging = this.isDragging();\n const isTouchSequence = isTouchEvent(event);\n const isAuxiliaryMouseButton = !isTouchSequence && event.button !== 0;\n const rootElement = this._rootElement;\n const target = _getEventTarget(event);\n const isSyntheticEvent = !isTouchSequence &&\n this._lastTouchEventTime &&\n this._lastTouchEventTime + MOUSE_EVENT_IGNORE_TIME > Date.now();\n const isFakeEvent = isTouchSequence\n ? isFakeTouchstartFromScreenReader(event)\n : isFakeMousedownFromScreenReader(event);\n // If the event started from an element with the native HTML drag&drop, it'll interfere\n // with our own dragging (e.g. `img` tags do it by default). Prevent the default action\n // to stop it from happening. Note that preventing on `dragstart` also seems to work, but\n // it's flaky and it fails if the user drags it away quickly. Also note that we only want\n // to do this for `mousedown` since doing the same for `touchstart` will stop any `click`\n // events from firing on touch devices.\n if (target && target.draggable && event.type === 'mousedown') {\n event.preventDefault();\n }\n // Abort if the user is already dragging or is using a mouse button other than the primary one.\n if (isDragging || isAuxiliaryMouseButton || isSyntheticEvent || isFakeEvent) {\n return;\n }\n // If we've got handles, we need to disable the tap highlight on the entire root element,\n // otherwise iOS will still add it, even though all the drag interactions on the handle\n // are disabled.\n if (this._handles.length) {\n const rootStyles = rootElement.style;\n this._rootElementTapHighlight = rootStyles.webkitTapHighlightColor || '';\n rootStyles.webkitTapHighlightColor = 'transparent';\n }\n this._hasStartedDragging = this._hasMoved = false;\n // Avoid multiple subscriptions and memory leaks when multi touch\n // (isDragging check above isn't enough because of possible temporal and/or dimensional delays)\n this._removeListeners();\n this._initialDomRect = this._rootElement.getBoundingClientRect();\n this._pointerMoveSubscription = this._dragDropRegistry.pointerMove.subscribe(this._pointerMove);\n this._pointerUpSubscription = this._dragDropRegistry.pointerUp.subscribe(this._pointerUp);\n this._scrollSubscription = this._dragDropRegistry\n .scrolled(this._getShadowRoot())\n .subscribe(scrollEvent => this._updateOnScroll(scrollEvent));\n if (this._boundaryElement) {\n this._boundaryRect = getMutableClientRect(this._boundaryElement);\n }\n // If we have a custom preview we can't know ahead of time how large it'll be so we position\n // it next to the cursor. The exception is when the consumer has opted into making the preview\n // the same size as the root element, in which case we do know the size.\n const previewTemplate = this._previewTemplate;\n this._pickupPositionInElement =\n previewTemplate && previewTemplate.template && !previewTemplate.matchSize\n ? { x: 0, y: 0 }\n : this._getPointerPositionInElement(this._initialDomRect, referenceElement, event);\n const pointerPosition = (this._pickupPositionOnPage =\n this._lastKnownPointerPosition =\n this._getPointerPositionOnPage(event));\n this._pointerDirectionDelta = { x: 0, y: 0 };\n this._pointerPositionAtLastDirectionChange = { x: pointerPosition.x, y: pointerPosition.y };\n this._dragStartTime = Date.now();\n this._dragDropRegistry.startDragging(this, event);\n }\n /** Cleans up the DOM artifacts that were added to facilitate the element being dragged. */\n _cleanupDragArtifacts(event) {\n // Restore the element's visibility and insert it at its old position in the DOM.\n // It's important that we maintain the position, because moving the element around in the DOM\n // can throw off `NgFor` which does smart diffing and re-creates elements only when necessary,\n // while moving the existing elements in all other cases.\n toggleVisibility(this._rootElement, true, dragImportantProperties);\n this._anchor.parentNode.replaceChild(this._rootElement, this._anchor);\n this._destroyPreview();\n this._destroyPlaceholder();\n this._initialDomRect =\n this._boundaryRect =\n this._previewRect =\n this._initialTransform =\n undefined;\n // Re-enter the NgZone since we bound `document` events on the outside.\n this._ngZone.run(() => {\n const container = this._dropContainer;\n const currentIndex = container.getItemIndex(this);\n const pointerPosition = this._getPointerPositionOnPage(event);\n const distance = this._getDragDistance(pointerPosition);\n const isPointerOverContainer = container._isOverContainer(pointerPosition.x, pointerPosition.y);\n this.ended.next({ source: this, distance, dropPoint: pointerPosition, event });\n this.dropped.next({\n item: this,\n currentIndex,\n previousIndex: this._initialIndex,\n container: container,\n previousContainer: this._initialContainer,\n isPointerOverContainer,\n distance,\n dropPoint: pointerPosition,\n event,\n });\n container.drop(this, currentIndex, this._initialIndex, this._initialContainer, isPointerOverContainer, distance, pointerPosition, event);\n this._dropContainer = this._initialContainer;\n });\n }\n /**\n * Updates the item's position in its drop container, or moves it\n * into a new one, depending on its current drag position.\n */\n _updateActiveDropContainer({ x, y }, { x: rawX, y: rawY }) {\n // Drop container that draggable has been moved into.\n let newContainer = this._initialContainer._getSiblingContainerFromPosition(this, x, y);\n // If we couldn't find a new container to move the item into, and the item has left its\n // initial container, check whether the it's over the initial container. This handles the\n // case where two containers are connected one way and the user tries to undo dragging an\n // item into a new container.\n if (!newContainer &&\n this._dropContainer !== this._initialContainer &&\n this._initialContainer._isOverContainer(x, y)) {\n newContainer = this._initialContainer;\n }\n if (newContainer && newContainer !== this._dropContainer) {\n this._ngZone.run(() => {\n // Notify the old container that the item has left.\n this.exited.next({ item: this, container: this._dropContainer });\n this._dropContainer.exit(this);\n // Notify the new container that the item has entered.\n this._dropContainer = newContainer;\n this._dropContainer.enter(this, x, y, newContainer === this._initialContainer &&\n // If we're re-entering the initial container and sorting is disabled,\n // put item the into its starting index to begin with.\n newContainer.sortingDisabled\n ? this._initialIndex\n : undefined);\n this.entered.next({\n item: this,\n container: newContainer,\n currentIndex: newContainer.getItemIndex(this),\n });\n });\n }\n // Dragging may have been interrupted as a result of the events above.\n if (this.isDragging()) {\n this._dropContainer._startScrollingIfNecessary(rawX, rawY);\n this._dropContainer._sortItem(this, x, y, this._pointerDirectionDelta);\n if (this.constrainPosition) {\n this._applyPreviewTransform(x, y);\n }\n else {\n this._applyPreviewTransform(x - this._pickupPositionInElement.x, y - this._pickupPositionInElement.y);\n }\n }\n }\n /**\n * Animates the preview element from its current position to the location of the drop placeholder.\n * @returns Promise that resolves when the animation completes.\n */\n _animatePreviewToPlaceholder() {\n // If the user hasn't moved yet, the transitionend event won't fire.\n if (!this._hasMoved) {\n return Promise.resolve();\n }\n const placeholderRect = this._placeholder.getBoundingClientRect();\n // Apply the class that adds a transition to the preview.\n this._preview.addClass('cdk-drag-animating');\n // Move the preview to the placeholder position.\n this._applyPreviewTransform(placeholderRect.left, placeholderRect.top);\n // If the element doesn't have a `transition`, the `transitionend` event won't fire. Since\n // we need to trigger a style recalculation in order for the `cdk-drag-animating` class to\n // apply its style, we take advantage of the available info to figure out whether we need to\n // bind the event in the first place.\n const duration = this._preview.getTransitionDuration();\n if (duration === 0) {\n return Promise.resolve();\n }\n return this._ngZone.runOutsideAngular(() => {\n return new Promise(resolve => {\n const handler = ((event) => {\n if (!event ||\n (_getEventTarget(event) === this._preview && event.propertyName === 'transform')) {\n this._preview?.removeEventListener('transitionend', handler);\n resolve();\n clearTimeout(timeout);\n }\n });\n // If a transition is short enough, the browser might not fire the `transitionend` event.\n // Since we know how long it's supposed to take, add a timeout with a 50% buffer that'll\n // fire if the transition hasn't completed when it was supposed to.\n const timeout = setTimeout(handler, duration * 1.5);\n this._preview.addEventListener('transitionend', handler);\n });\n });\n }\n /** Creates an element that will be shown instead of the current element while dragging. */\n _createPlaceholderElement() {\n const placeholderConfig = this._placeholderTemplate;\n const placeholderTemplate = placeholderConfig ? placeholderConfig.template : null;\n let placeholder;\n if (placeholderTemplate) {\n this._placeholderRef = placeholderConfig.viewContainer.createEmbeddedView(placeholderTemplate, placeholderConfig.context);\n this._placeholderRef.detectChanges();\n placeholder = getRootNode(this._placeholderRef, this._document);\n }\n else {\n placeholder = deepCloneNode(this._rootElement);\n }\n // Stop pointer events on the preview so the user can't\n // interact with it while the preview is animating.\n placeholder.style.pointerEvents = 'none';\n placeholder.classList.add('cdk-drag-placeholder');\n return placeholder;\n }\n /**\n * Figures out the coordinates at which an element was picked up.\n * @param referenceElement Element that initiated the dragging.\n * @param event Event that initiated the dragging.\n */\n _getPointerPositionInElement(elementRect, referenceElement, event) {\n const handleElement = referenceElement === this._rootElement ? null : referenceElement;\n const referenceRect = handleElement ? handleElement.getBoundingClientRect() : elementRect;\n const point = isTouchEvent(event) ? event.targetTouches[0] : event;\n const scrollPosition = this._getViewportScrollPosition();\n const x = point.pageX - referenceRect.left - scrollPosition.left;\n const y = point.pageY - referenceRect.top - scrollPosition.top;\n return {\n x: referenceRect.left - elementRect.left + x,\n y: referenceRect.top - elementRect.top + y,\n };\n }\n /** Determines the point of the page that was touched by the user. */\n _getPointerPositionOnPage(event) {\n const scrollPosition = this._getViewportScrollPosition();\n const point = isTouchEvent(event)\n ? // `touches` will be empty for start/end events so we have to fall back to `changedTouches`.\n // Also note that on real devices we're guaranteed for either `touches` or `changedTouches`\n // to have a value, but Firefox in device emulation mode has a bug where both can be empty\n // for `touchstart` and `touchend` so we fall back to a dummy object in order to avoid\n // throwing an error. The value returned here will be incorrect, but since this only\n // breaks inside a developer tool and the value is only used for secondary information,\n // we can get away with it. See https://bugzilla.mozilla.org/show_bug.cgi?id=1615824.\n event.touches[0] || event.changedTouches[0] || { pageX: 0, pageY: 0 }\n : event;\n const x = point.pageX - scrollPosition.left;\n const y = point.pageY - scrollPosition.top;\n // if dragging SVG element, try to convert from the screen coordinate system to the SVG\n // coordinate system\n if (this._ownerSVGElement) {\n const svgMatrix = this._ownerSVGElement.getScreenCTM();\n if (svgMatrix) {\n const svgPoint = this._ownerSVGElement.createSVGPoint();\n svgPoint.x = x;\n svgPoint.y = y;\n return svgPoint.matrixTransform(svgMatrix.inverse());\n }\n }\n return { x, y };\n }\n /** Gets the pointer position on the page, accounting for any position constraints. */\n _getConstrainedPointerPosition(point) {\n const dropContainerLock = this._dropContainer ? this._dropContainer.lockAxis : null;\n let { x, y } = this.constrainPosition\n ? this.constrainPosition(point, this, this._initialDomRect, this._pickupPositionInElement)\n : point;\n if (this.lockAxis === 'x' || dropContainerLock === 'x') {\n y =\n this._pickupPositionOnPage.y -\n (this.constrainPosition ? this._pickupPositionInElement.y : 0);\n }\n else if (this.lockAxis === 'y' || dropContainerLock === 'y') {\n x =\n this._pickupPositionOnPage.x -\n (this.constrainPosition ? this._pickupPositionInElement.x : 0);\n }\n if (this._boundaryRect) {\n // If not using a custom constrain we need to account for the pickup position in the element\n // otherwise we do not need to do this, as it has already been accounted for\n const { x: pickupX, y: pickupY } = !this.constrainPosition\n ? this._pickupPositionInElement\n : { x: 0, y: 0 };\n const boundaryRect = this._boundaryRect;\n const { width: previewWidth, height: previewHeight } = this._getPreviewRect();\n const minY = boundaryRect.top + pickupY;\n const maxY = boundaryRect.bottom - (previewHeight - pickupY);\n const minX = boundaryRect.left + pickupX;\n const maxX = boundaryRect.right - (previewWidth - pickupX);\n x = clamp$1(x, minX, maxX);\n y = clamp$1(y, minY, maxY);\n }\n return { x, y };\n }\n /** Updates the current drag delta, based on the user's current pointer position on the page. */\n _updatePointerDirectionDelta(pointerPositionOnPage) {\n const { x, y } = pointerPositionOnPage;\n const delta = this._pointerDirectionDelta;\n const positionSinceLastChange = this._pointerPositionAtLastDirectionChange;\n // Amount of pixels the user has dragged since the last time the direction changed.\n const changeX = Math.abs(x - positionSinceLastChange.x);\n const changeY = Math.abs(y - positionSinceLastChange.y);\n // Because we handle pointer events on a per-pixel basis, we don't want the delta\n // to change for every pixel, otherwise anything that depends on it can look erratic.\n // To make the delta more consistent, we track how much the user has moved since the last\n // delta change and we only update it after it has reached a certain threshold.\n if (changeX > this._config.pointerDirectionChangeThreshold) {\n delta.x = x > positionSinceLastChange.x ? 1 : -1;\n positionSinceLastChange.x = x;\n }\n if (changeY > this._config.pointerDirectionChangeThreshold) {\n delta.y = y > positionSinceLastChange.y ? 1 : -1;\n positionSinceLastChange.y = y;\n }\n return delta;\n }\n /** Toggles the native drag interactions, based on how many handles are registered. */\n _toggleNativeDragInteractions() {\n if (!this._rootElement || !this._handles) {\n return;\n }\n const shouldEnable = this._handles.length > 0 || !this.isDragging();\n if (shouldEnable !== this._nativeInteractionsEnabled) {\n this._nativeInteractionsEnabled = shouldEnable;\n toggleNativeDragInteractions(this._rootElement, shouldEnable);\n }\n }\n /** Removes the manually-added event listeners from the root element. */\n _removeRootElementListeners(element) {\n element.removeEventListener('mousedown', this._pointerDown, activeEventListenerOptions);\n element.removeEventListener('touchstart', this._pointerDown, passiveEventListenerOptions);\n element.removeEventListener('dragstart', this._nativeDragStart, activeEventListenerOptions);\n }\n /**\n * Applies a `transform` to the root element, taking into account any existing transforms on it.\n * @param x New transform value along the X axis.\n * @param y New transform value along the Y axis.\n */\n _applyRootElementTransform(x, y) {\n const transform = getTransform(x, y);\n const styles = this._rootElement.style;\n // Cache the previous transform amount only after the first drag sequence, because\n // we don't want our own transforms to stack on top of each other.\n // Should be excluded none because none + translate3d(x, y, x) is invalid css\n if (this._initialTransform == null) {\n this._initialTransform =\n styles.transform && styles.transform != 'none' ? styles.transform : '';\n }\n // Preserve the previous `transform` value, if there was one. Note that we apply our own\n // transform before the user's, because things like rotation can affect which direction\n // the element will be translated towards.\n styles.transform = combineTransforms(transform, this._initialTransform);\n }\n /**\n * Applies a `transform` to the preview, taking into account any existing transforms on it.\n * @param x New transform value along the X axis.\n * @param y New transform value along the Y axis.\n */\n _applyPreviewTransform(x, y) {\n // Only apply the initial transform if the preview is a clone of the original element, otherwise\n // it could be completely different and the transform might not make sense anymore.\n const initialTransform = this._previewTemplate?.template ? undefined : this._initialTransform;\n const transform = getTransform(x, y);\n this._preview.setTransform(combineTransforms(transform, initialTransform));\n }\n /**\n * Gets the distance that the user has dragged during the current drag sequence.\n * @param currentPosition Current position of the user's pointer.\n */\n _getDragDistance(currentPosition) {\n const pickupPosition = this._pickupPositionOnPage;\n if (pickupPosition) {\n return { x: currentPosition.x - pickupPosition.x, y: currentPosition.y - pickupPosition.y };\n }\n return { x: 0, y: 0 };\n }\n /** Cleans up any cached element dimensions that we don't need after dragging has stopped. */\n _cleanupCachedDimensions() {\n this._boundaryRect = this._previewRect = undefined;\n this._parentPositions.clear();\n }\n /**\n * Checks whether the element is still inside its boundary after the viewport has been resized.\n * If not, the position is adjusted so that the element fits again.\n */\n _containInsideBoundaryOnResize() {\n let { x, y } = this._passiveTransform;\n if ((x === 0 && y === 0) || this.isDragging() || !this._boundaryElement) {\n return;\n }\n // Note: don't use `_clientRectAtStart` here, because we want the latest position.\n const elementRect = this._rootElement.getBoundingClientRect();\n const boundaryRect = this._boundaryElement.getBoundingClientRect();\n // It's possible that the element got hidden away after dragging (e.g. by switching to a\n // different tab). Don't do anything in this case so we don't clear the user's position.\n if ((boundaryRect.width === 0 && boundaryRect.height === 0) ||\n (elementRect.width === 0 && elementRect.height === 0)) {\n return;\n }\n const leftOverflow = boundaryRect.left - elementRect.left;\n const rightOverflow = elementRect.right - boundaryRect.right;\n const topOverflow = boundaryRect.top - elementRect.top;\n const bottomOverflow = elementRect.bottom - boundaryRect.bottom;\n // If the element has become wider than the boundary, we can't\n // do much to make it fit so we just anchor it to the left.\n if (boundaryRect.width > elementRect.width) {\n if (leftOverflow > 0) {\n x += leftOverflow;\n }\n if (rightOverflow > 0) {\n x -= rightOverflow;\n }\n }\n else {\n x = 0;\n }\n // If the element has become taller than the boundary, we can't\n // do much to make it fit so we just anchor it to the top.\n if (boundaryRect.height > elementRect.height) {\n if (topOverflow > 0) {\n y += topOverflow;\n }\n if (bottomOverflow > 0) {\n y -= bottomOverflow;\n }\n }\n else {\n y = 0;\n }\n if (x !== this._passiveTransform.x || y !== this._passiveTransform.y) {\n this.setFreeDragPosition({ y, x });\n }\n }\n /** Gets the drag start delay, based on the event type. */\n _getDragStartDelay(event) {\n const value = this.dragStartDelay;\n if (typeof value === 'number') {\n return value;\n }\n else if (isTouchEvent(event)) {\n return value.touch;\n }\n return value ? value.mouse : 0;\n }\n /** Updates the internal state of the draggable element when scrolling has occurred. */\n _updateOnScroll(event) {\n const scrollDifference = this._parentPositions.handleScroll(event);\n if (scrollDifference) {\n const target = _getEventTarget(event);\n // DOMRect dimensions are based on the scroll position of the page and its parent\n // node so we have to update the cached boundary DOMRect if the user has scrolled.\n if (this._boundaryRect &&\n target !== this._boundaryElement &&\n target.contains(this._boundaryElement)) {\n adjustDomRect(this._boundaryRect, scrollDifference.top, scrollDifference.left);\n }\n this._pickupPositionOnPage.x += scrollDifference.left;\n this._pickupPositionOnPage.y += scrollDifference.top;\n // If we're in free drag mode, we have to update the active transform, because\n // it isn't relative to the viewport like the preview inside a drop list.\n if (!this._dropContainer) {\n this._activeTransform.x -= scrollDifference.left;\n this._activeTransform.y -= scrollDifference.top;\n this._applyRootElementTransform(this._activeTransform.x, this._activeTransform.y);\n }\n }\n }\n /** Gets the scroll position of the viewport. */\n _getViewportScrollPosition() {\n return (this._parentPositions.positions.get(this._document)?.scrollPosition ||\n this._parentPositions.getViewportScrollPosition());\n }\n /**\n * Lazily resolves and returns the shadow root of the element. We do this in a function, rather\n * than saving it in property directly on init, because we want to resolve it as late as possible\n * in order to ensure that the element has been moved into the shadow DOM. Doing it inside the\n * constructor might be too early if the element is inside of something like `ngFor` or `ngIf`.\n */\n _getShadowRoot() {\n if (this._cachedShadowRoot === undefined) {\n this._cachedShadowRoot = _getShadowRoot(this._rootElement);\n }\n return this._cachedShadowRoot;\n }\n /** Gets the element into which the drag preview should be inserted. */\n _getPreviewInsertionPoint(initialParent, shadowRoot) {\n const previewContainer = this._previewContainer || 'global';\n if (previewContainer === 'parent') {\n return initialParent;\n }\n if (previewContainer === 'global') {\n const documentRef = this._document;\n // We can't use the body if the user is in fullscreen mode,\n // because the preview will render under the fullscreen element.\n // TODO(crisbeto): dedupe this with the `FullscreenOverlayContainer` eventually.\n return (shadowRoot ||\n documentRef.fullscreenElement ||\n documentRef.webkitFullscreenElement ||\n documentRef.mozFullScreenElement ||\n documentRef.msFullscreenElement ||\n documentRef.body);\n }\n return coerceElement(previewContainer);\n }\n /** Lazily resolves and returns the dimensions of the preview. */\n _getPreviewRect() {\n // Cache the preview element rect if we haven't cached it already or if\n // we cached it too early before the element dimensions were computed.\n if (!this._previewRect || (!this._previewRect.width && !this._previewRect.height)) {\n this._previewRect = this._preview\n ? this._preview.getBoundingClientRect()\n : this._initialDomRect;\n }\n return this._previewRect;\n }\n /** Gets a handle that is the target of an event. */\n _getTargetHandle(event) {\n return this._handles.find(handle => {\n return event.target && (event.target === handle || handle.contains(event.target));\n });\n }\n}\n/** Clamps a value between a minimum and a maximum. */\nfunction clamp$1(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/** Determines whether an event is a touch event. */\nfunction isTouchEvent(event) {\n // This function is called for every pixel that the user has dragged so we need it to be\n // as fast as possible. Since we only bind mouse events and touch events, we can assume\n // that if the event's name starts with `t`, it's a touch event.\n return event.type[0] === 't';\n}\n/** Callback invoked for `selectstart` events inside the shadow DOM. */\nfunction shadowDomSelectStart(event) {\n event.preventDefault();\n}\n\n/**\n * Moves an item one index in an array to another.\n * @param array Array in which to move the item.\n * @param fromIndex Starting index of the item.\n * @param toIndex Index to which the item should be moved.\n */\nfunction moveItemInArray(array, fromIndex, toIndex) {\n const from = clamp(fromIndex, array.length - 1);\n const to = clamp(toIndex, array.length - 1);\n if (from === to) {\n return;\n }\n const target = array[from];\n const delta = to < from ? -1 : 1;\n for (let i = from; i !== to; i += delta) {\n array[i] = array[i + delta];\n }\n array[to] = target;\n}\n/**\n * Moves an item from one array to another.\n * @param currentArray Array from which to transfer the item.\n * @param targetArray Array into which to put the item.\n * @param currentIndex Index of the item in its current array.\n * @param targetIndex Index at which to insert the item.\n */\nfunction transferArrayItem(currentArray, targetArray, currentIndex, targetIndex) {\n const from = clamp(currentIndex, currentArray.length - 1);\n const to = clamp(targetIndex, targetArray.length);\n if (currentArray.length) {\n targetArray.splice(to, 0, currentArray.splice(from, 1)[0]);\n }\n}\n/**\n * Copies an item from one array to another, leaving it in its\n * original position in current array.\n * @param currentArray Array from which to copy the item.\n * @param targetArray Array into which is copy the item.\n * @param currentIndex Index of the item in its current array.\n * @param targetIndex Index at which to insert the item.\n *\n */\nfunction copyArrayItem(currentArray, targetArray, currentIndex, targetIndex) {\n const to = clamp(targetIndex, targetArray.length);\n if (currentArray.length) {\n targetArray.splice(to, 0, currentArray[currentIndex]);\n }\n}\n/** Clamps a number between zero and a maximum. */\nfunction clamp(value, max) {\n return Math.max(0, Math.min(max, value));\n}\n\n/**\n * Strategy that only supports sorting along a single axis.\n * Items are reordered using CSS transforms which allows for sorting to be animated.\n * @docs-private\n */\nclass SingleAxisSortStrategy {\n constructor(_element, _dragDropRegistry) {\n this._element = _element;\n this._dragDropRegistry = _dragDropRegistry;\n /** Cache of the dimensions of all the items inside the container. */\n this._itemPositions = [];\n /** Direction in which the list is oriented. */\n this.orientation = 'vertical';\n /**\n * Keeps track of the item that was last swapped with the dragged item, as well as what direction\n * the pointer was moving in when the swap occurred and whether the user's pointer continued to\n * overlap with the swapped item after the swapping occurred.\n */\n this._previousSwap = {\n drag: null,\n delta: 0,\n overlaps: false,\n };\n }\n /**\n * To be called when the drag sequence starts.\n * @param items Items that are currently in the list.\n */\n start(items) {\n this.withItems(items);\n }\n /**\n * To be called when an item is being sorted.\n * @param item Item to be sorted.\n * @param pointerX Position of the item along the X axis.\n * @param pointerY Position of the item along the Y axis.\n * @param pointerDelta Direction in which the pointer is moving along each axis.\n */\n sort(item, pointerX, pointerY, pointerDelta) {\n const siblings = this._itemPositions;\n const newIndex = this._getItemIndexFromPointerPosition(item, pointerX, pointerY, pointerDelta);\n if (newIndex === -1 && siblings.length > 0) {\n return null;\n }\n const isHorizontal = this.orientation === 'horizontal';\n const currentIndex = siblings.findIndex(currentItem => currentItem.drag === item);\n const siblingAtNewPosition = siblings[newIndex];\n const currentPosition = siblings[currentIndex].clientRect;\n const newPosition = siblingAtNewPosition.clientRect;\n const delta = currentIndex > newIndex ? 1 : -1;\n // How many pixels the item's placeholder should be offset.\n const itemOffset = this._getItemOffsetPx(currentPosition, newPosition, delta);\n // How many pixels all the other items should be offset.\n const siblingOffset = this._getSiblingOffsetPx(currentIndex, siblings, delta);\n // Save the previous order of the items before moving the item to its new index.\n // We use this to check whether an item has been moved as a result of the sorting.\n const oldOrder = siblings.slice();\n // Shuffle the array in place.\n moveItemInArray(siblings, currentIndex, newIndex);\n siblings.forEach((sibling, index) => {\n // Don't do anything if the position hasn't changed.\n if (oldOrder[index] === sibling) {\n return;\n }\n const isDraggedItem = sibling.drag === item;\n const offset = isDraggedItem ? itemOffset : siblingOffset;\n const elementToOffset = isDraggedItem\n ? item.getPlaceholderElement()\n : sibling.drag.getRootElement();\n // Update the offset to reflect the new position.\n sibling.offset += offset;\n // Since we're moving the items with a `transform`, we need to adjust their cached\n // client rects to reflect their new position, as well as swap their positions in the cache.\n // Note that we shouldn't use `getBoundingClientRect` here to update the cache, because the\n // elements may be mid-animation which will give us a wrong result.\n if (isHorizontal) {\n // Round the transforms since some browsers will\n // blur the elements, for sub-pixel transforms.\n elementToOffset.style.transform = combineTransforms(`translate3d(${Math.round(sibling.offset)}px, 0, 0)`, sibling.initialTransform);\n adjustDomRect(sibling.clientRect, 0, offset);\n }\n else {\n elementToOffset.style.transform = combineTransforms(`translate3d(0, ${Math.round(sibling.offset)}px, 0)`, sibling.initialTransform);\n adjustDomRect(sibling.clientRect, offset, 0);\n }\n });\n // Note that it's important that we do this after the client rects have been adjusted.\n this._previousSwap.overlaps = isInsideClientRect(newPosition, pointerX, pointerY);\n this._previousSwap.drag = siblingAtNewPosition.drag;\n this._previousSwap.delta = isHorizontal ? pointerDelta.x : pointerDelta.y;\n return { previousIndex: currentIndex, currentIndex: newIndex };\n }\n /**\n * Called when an item is being moved into the container.\n * @param item Item that was moved into the container.\n * @param pointerX Position of the item along the X axis.\n * @param pointerY Position of the item along the Y axis.\n * @param index Index at which the item entered. If omitted, the container will try to figure it\n * out automatically.\n */\n enter(item, pointerX, pointerY, index) {\n const newIndex = index == null || index < 0\n ? // We use the coordinates of where the item entered the drop\n // zone to figure out at which index it should be inserted.\n this._getItemIndexFromPointerPosition(item, pointerX, pointerY)\n : index;\n const activeDraggables = this._activeDraggables;\n const currentIndex = activeDraggables.indexOf(item);\n const placeholder = item.getPlaceholderElement();\n let newPositionReference = activeDraggables[newIndex];\n // If the item at the new position is the same as the item that is being dragged,\n // it means that we're trying to restore the item to its initial position. In this\n // case we should use the next item from the list as the reference.\n if (newPositionReference === item) {\n newPositionReference = activeDraggables[newIndex + 1];\n }\n // If we didn't find a new position reference, it means that either the item didn't start off\n // in this container, or that the item requested to be inserted at the end of the list.\n if (!newPositionReference &&\n (newIndex == null || newIndex === -1 || newIndex < activeDraggables.length - 1) &&\n this._shouldEnterAsFirstChild(pointerX, pointerY)) {\n newPositionReference = activeDraggables[0];\n }\n // Since the item may be in the `activeDraggables` already (e.g. if the user dragged it\n // into another container and back again), we have to ensure that it isn't duplicated.\n if (currentIndex > -1) {\n activeDraggables.splice(currentIndex, 1);\n }\n // Don't use items that are being dragged as a reference, because\n // their element has been moved down to the bottom of the body.\n if (newPositionReference && !this._dragDropRegistry.isDragging(newPositionReference)) {\n const element = newPositionReference.getRootElement();\n element.parentElement.insertBefore(placeholder, element);\n activeDraggables.splice(newIndex, 0, item);\n }\n else {\n coerceElement(this._element).appendChild(placeholder);\n activeDraggables.push(item);\n }\n // The transform needs to be cleared so it doesn't throw off the measurements.\n placeholder.style.transform = '';\n // Note that usually `start` is called together with `enter` when an item goes into a new\n // container. This will cache item positions, but we need to refresh them since the amount\n // of items has changed.\n this._cacheItemPositions();\n }\n /** Sets the items that are currently part of the list. */\n withItems(items) {\n this._activeDraggables = items.slice();\n this._cacheItemPositions();\n }\n /** Assigns a sort predicate to the strategy. */\n withSortPredicate(predicate) {\n this._sortPredicate = predicate;\n }\n /** Resets the strategy to its initial state before dragging was started. */\n reset() {\n // TODO(crisbeto): may have to wait for the animations to finish.\n this._activeDraggables.forEach(item => {\n const rootElement = item.getRootElement();\n if (rootElement) {\n const initialTransform = this._itemPositions.find(p => p.drag === item)?.initialTransform;\n rootElement.style.transform = initialTransform || '';\n }\n });\n this._itemPositions = [];\n this._activeDraggables = [];\n this._previousSwap.drag = null;\n this._previousSwap.delta = 0;\n this._previousSwap.overlaps = false;\n }\n /**\n * Gets a snapshot of items currently in the list.\n * Can include items that we dragged in from another list.\n */\n getActiveItemsSnapshot() {\n return this._activeDraggables;\n }\n /** Gets the index of a specific item. */\n getItemIndex(item) {\n // Items are sorted always by top/left in the cache, however they flow differently in RTL.\n // The rest of the logic still stands no matter what orientation we're in, however\n // we need to invert the array when determining the index.\n const items = this.orientation === 'horizontal' && this.direction === 'rtl'\n ? this._itemPositions.slice().reverse()\n : this._itemPositions;\n return items.findIndex(currentItem => currentItem.drag === item);\n }\n /** Used to notify the strategy that the scroll position has changed. */\n updateOnScroll(topDifference, leftDifference) {\n // Since we know the amount that the user has scrolled we can shift all of the\n // client rectangles ourselves. This is cheaper than re-measuring everything and\n // we can avoid inconsistent behavior where we might be measuring the element before\n // its position has changed.\n this._itemPositions.forEach(({ clientRect }) => {\n adjustDomRect(clientRect, topDifference, leftDifference);\n });\n // We need two loops for this, because we want all of the cached\n // positions to be up-to-date before we re-sort the item.\n this._itemPositions.forEach(({ drag }) => {\n if (this._dragDropRegistry.isDragging(drag)) {\n // We need to re-sort the item manually, because the pointer move\n // events won't be dispatched while the user is scrolling.\n drag._sortFromLastPointerPosition();\n }\n });\n }\n /** Refreshes the position cache of the items and sibling containers. */\n _cacheItemPositions() {\n const isHorizontal = this.orientation === 'horizontal';\n this._itemPositions = this._activeDraggables\n .map(drag => {\n const elementToMeasure = drag.getVisibleElement();\n return {\n drag,\n offset: 0,\n initialTransform: elementToMeasure.style.transform || '',\n clientRect: getMutableClientRect(elementToMeasure),\n };\n })\n .sort((a, b) => {\n return isHorizontal\n ? a.clientRect.left - b.clientRect.left\n : a.clientRect.top - b.clientRect.top;\n });\n }\n /**\n * Gets the offset in pixels by which the item that is being dragged should be moved.\n * @param currentPosition Current position of the item.\n * @param newPosition Position of the item where the current item should be moved.\n * @param delta Direction in which the user is moving.\n */\n _getItemOffsetPx(currentPosition, newPosition, delta) {\n const isHorizontal = this.orientation === 'horizontal';\n let itemOffset = isHorizontal\n ? newPosition.left - currentPosition.left\n : newPosition.top - currentPosition.top;\n // Account for differences in the item width/height.\n if (delta === -1) {\n itemOffset += isHorizontal\n ? newPosition.width - currentPosition.width\n : newPosition.height - currentPosition.height;\n }\n return itemOffset;\n }\n /**\n * Gets the offset in pixels by which the items that aren't being dragged should be moved.\n * @param currentIndex Index of the item currently being dragged.\n * @param siblings All of the items in the list.\n * @param delta Direction in which the user is moving.\n */\n _getSiblingOffsetPx(currentIndex, siblings, delta) {\n const isHorizontal = this.orientation === 'horizontal';\n const currentPosition = siblings[currentIndex].clientRect;\n const immediateSibling = siblings[currentIndex + delta * -1];\n let siblingOffset = currentPosition[isHorizontal ? 'width' : 'height'] * delta;\n if (immediateSibling) {\n const start = isHorizontal ? 'left' : 'top';\n const end = isHorizontal ? 'right' : 'bottom';\n // Get the spacing between the start of the current item and the end of the one immediately\n // after it in the direction in which the user is dragging, or vice versa. We add it to the\n // offset in order to push the element to where it will be when it's inline and is influenced\n // by the `margin` of its siblings.\n if (delta === -1) {\n siblingOffset -= immediateSibling.clientRect[start] - currentPosition[end];\n }\n else {\n siblingOffset += currentPosition[start] - immediateSibling.clientRect[end];\n }\n }\n return siblingOffset;\n }\n /**\n * Checks if pointer is entering in the first position\n * @param pointerX Position of the user's pointer along the X axis.\n * @param pointerY Position of the user's pointer along the Y axis.\n */\n _shouldEnterAsFirstChild(pointerX, pointerY) {\n if (!this._activeDraggables.length) {\n return false;\n }\n const itemPositions = this._itemPositions;\n const isHorizontal = this.orientation === 'horizontal';\n // `itemPositions` are sorted by position while `activeDraggables` are sorted by child index\n // check if container is using some sort of \"reverse\" ordering (eg: flex-direction: row-reverse)\n const reversed = itemPositions[0].drag !== this._activeDraggables[0];\n if (reversed) {\n const lastItemRect = itemPositions[itemPositions.length - 1].clientRect;\n return isHorizontal ? pointerX >= lastItemRect.right : pointerY >= lastItemRect.bottom;\n }\n else {\n const firstItemRect = itemPositions[0].clientRect;\n return isHorizontal ? pointerX <= firstItemRect.left : pointerY <= firstItemRect.top;\n }\n }\n /**\n * Gets the index of an item in the drop container, based on the position of the user's pointer.\n * @param item Item that is being sorted.\n * @param pointerX Position of the user's pointer along the X axis.\n * @param pointerY Position of the user's pointer along the Y axis.\n * @param delta Direction in which the user is moving their pointer.\n */\n _getItemIndexFromPointerPosition(item, pointerX, pointerY, delta) {\n const isHorizontal = this.orientation === 'horizontal';\n const index = this._itemPositions.findIndex(({ drag, clientRect }) => {\n // Skip the item itself.\n if (drag === item) {\n return false;\n }\n if (delta) {\n const direction = isHorizontal ? delta.x : delta.y;\n // If the user is still hovering over the same item as last time, their cursor hasn't left\n // the item after we made the swap, and they didn't change the direction in which they're\n // dragging, we don't consider it a direction swap.\n if (drag === this._previousSwap.drag &&\n this._previousSwap.overlaps &&\n direction === this._previousSwap.delta) {\n return false;\n }\n }\n return isHorizontal\n ? // Round these down since most browsers report client rects with\n // sub-pixel precision, whereas the pointer coordinates are rounded to pixels.\n pointerX >= Math.floor(clientRect.left) && pointerX < Math.floor(clientRect.right)\n : pointerY >= Math.floor(clientRect.top) && pointerY < Math.floor(clientRect.bottom);\n });\n return index === -1 || !this._sortPredicate(index, item) ? -1 : index;\n }\n}\n\n/**\n * Proximity, as a ratio to width/height, at which a\n * dragged item will affect the drop container.\n */\nconst DROP_PROXIMITY_THRESHOLD = 0.05;\n/**\n * Proximity, as a ratio to width/height at which to start auto-scrolling the drop list or the\n * viewport. The value comes from trying it out manually until it feels right.\n */\nconst SCROLL_PROXIMITY_THRESHOLD = 0.05;\n/** Vertical direction in which we can auto-scroll. */\nvar AutoScrollVerticalDirection;\n(function (AutoScrollVerticalDirection) {\n AutoScrollVerticalDirection[AutoScrollVerticalDirection[\"NONE\"] = 0] = \"NONE\";\n AutoScrollVerticalDirection[AutoScrollVerticalDirection[\"UP\"] = 1] = \"UP\";\n AutoScrollVerticalDirection[AutoScrollVerticalDirection[\"DOWN\"] = 2] = \"DOWN\";\n})(AutoScrollVerticalDirection || (AutoScrollVerticalDirection = {}));\n/** Horizontal direction in which we can auto-scroll. */\nvar AutoScrollHorizontalDirection;\n(function (AutoScrollHorizontalDirection) {\n AutoScrollHorizontalDirection[AutoScrollHorizontalDirection[\"NONE\"] = 0] = \"NONE\";\n AutoScrollHorizontalDirection[AutoScrollHorizontalDirection[\"LEFT\"] = 1] = \"LEFT\";\n AutoScrollHorizontalDirection[AutoScrollHorizontalDirection[\"RIGHT\"] = 2] = \"RIGHT\";\n})(AutoScrollHorizontalDirection || (AutoScrollHorizontalDirection = {}));\n/**\n * Reference to a drop list. Used to manipulate or dispose of the container.\n */\nclass DropListRef {\n constructor(element, _dragDropRegistry, _document, _ngZone, _viewportRuler) {\n this._dragDropRegistry = _dragDropRegistry;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n /** Whether starting a dragging sequence from this container is disabled. */\n this.disabled = false;\n /** Whether sorting items within the list is disabled. */\n this.sortingDisabled = false;\n /**\n * Whether auto-scrolling the view when the user\n * moves their pointer close to the edges is disabled.\n */\n this.autoScrollDisabled = false;\n /** Number of pixels to scroll for each frame when auto-scrolling an element. */\n this.autoScrollStep = 2;\n /**\n * Function that is used to determine whether an item\n * is allowed to be moved into a drop container.\n */\n this.enterPredicate = () => true;\n /** Function that is used to determine whether an item can be sorted into a particular index. */\n this.sortPredicate = () => true;\n /** Emits right before dragging has started. */\n this.beforeStarted = new Subject();\n /**\n * Emits when the user has moved a new drag item into this container.\n */\n this.entered = new Subject();\n /**\n * Emits when the user removes an item from the container\n * by dragging it into another container.\n */\n this.exited = new Subject();\n /** Emits when the user drops an item inside the container. */\n this.dropped = new Subject();\n /** Emits as the user is swapping items while actively dragging. */\n this.sorted = new Subject();\n /** Emits when a dragging sequence is started in a list connected to the current one. */\n this.receivingStarted = new Subject();\n /** Emits when a dragging sequence is stopped from a list connected to the current one. */\n this.receivingStopped = new Subject();\n /** Whether an item in the list is being dragged. */\n this._isDragging = false;\n /** Draggable items in the container. */\n this._draggables = [];\n /** Drop lists that are connected to the current one. */\n this._siblings = [];\n /** Connected siblings that currently have a dragged item. */\n this._activeSiblings = new Set();\n /** Subscription to the window being scrolled. */\n this._viewportScrollSubscription = Subscription.EMPTY;\n /** Vertical direction in which the list is currently scrolling. */\n this._verticalScrollDirection = AutoScrollVerticalDirection.NONE;\n /** Horizontal direction in which the list is currently scrolling. */\n this._horizontalScrollDirection = AutoScrollHorizontalDirection.NONE;\n /** Used to signal to the current auto-scroll sequence when to stop. */\n this._stopScrollTimers = new Subject();\n /** Shadow root of the current element. Necessary for `elementFromPoint` to resolve correctly. */\n this._cachedShadowRoot = null;\n /** Starts the interval that'll auto-scroll the element. */\n this._startScrollInterval = () => {\n this._stopScrolling();\n interval(0, animationFrameScheduler)\n .pipe(takeUntil(this._stopScrollTimers))\n .subscribe(() => {\n const node = this._scrollNode;\n const scrollStep = this.autoScrollStep;\n if (this._verticalScrollDirection === AutoScrollVerticalDirection.UP) {\n node.scrollBy(0, -scrollStep);\n }\n else if (this._verticalScrollDirection === AutoScrollVerticalDirection.DOWN) {\n node.scrollBy(0, scrollStep);\n }\n if (this._horizontalScrollDirection === AutoScrollHorizontalDirection.LEFT) {\n node.scrollBy(-scrollStep, 0);\n }\n else if (this._horizontalScrollDirection === AutoScrollHorizontalDirection.RIGHT) {\n node.scrollBy(scrollStep, 0);\n }\n });\n };\n this.element = coerceElement(element);\n this._document = _document;\n this.withScrollableParents([this.element]);\n _dragDropRegistry.registerDropContainer(this);\n this._parentPositions = new ParentPositionTracker(_document);\n this._sortStrategy = new SingleAxisSortStrategy(this.element, _dragDropRegistry);\n this._sortStrategy.withSortPredicate((index, item) => this.sortPredicate(index, item, this));\n }\n /** Removes the drop list functionality from the DOM element. */\n dispose() {\n this._stopScrolling();\n this._stopScrollTimers.complete();\n this._viewportScrollSubscription.unsubscribe();\n this.beforeStarted.complete();\n this.entered.complete();\n this.exited.complete();\n this.dropped.complete();\n this.sorted.complete();\n this.receivingStarted.complete();\n this.receivingStopped.complete();\n this._activeSiblings.clear();\n this._scrollNode = null;\n this._parentPositions.clear();\n this._dragDropRegistry.removeDropContainer(this);\n }\n /** Whether an item from this list is currently being dragged. */\n isDragging() {\n return this._isDragging;\n }\n /** Starts dragging an item. */\n start() {\n this._draggingStarted();\n this._notifyReceivingSiblings();\n }\n /**\n * Attempts to move an item into the container.\n * @param item Item that was moved into the container.\n * @param pointerX Position of the item along the X axis.\n * @param pointerY Position of the item along the Y axis.\n * @param index Index at which the item entered. If omitted, the container will try to figure it\n * out automatically.\n */\n enter(item, pointerX, pointerY, index) {\n this._draggingStarted();\n // If sorting is disabled, we want the item to return to its starting\n // position if the user is returning it to its initial container.\n if (index == null && this.sortingDisabled) {\n index = this._draggables.indexOf(item);\n }\n this._sortStrategy.enter(item, pointerX, pointerY, index);\n // Note that this usually happens inside `_draggingStarted` as well, but the dimensions\n // can change when the sort strategy moves the item around inside `enter`.\n this._cacheParentPositions();\n // Notify siblings at the end so that the item has been inserted into the `activeDraggables`.\n this._notifyReceivingSiblings();\n this.entered.next({ item, container: this, currentIndex: this.getItemIndex(item) });\n }\n /**\n * Removes an item from the container after it was dragged into another container by the user.\n * @param item Item that was dragged out.\n */\n exit(item) {\n this._reset();\n this.exited.next({ item, container: this });\n }\n /**\n * Drops an item into this container.\n * @param item Item being dropped into the container.\n * @param currentIndex Index at which the item should be inserted.\n * @param previousIndex Index of the item when dragging started.\n * @param previousContainer Container from which the item got dragged in.\n * @param isPointerOverContainer Whether the user's pointer was over the\n * container when the item was dropped.\n * @param distance Distance the user has dragged since the start of the dragging sequence.\n * @param event Event that triggered the dropping sequence.\n *\n * @breaking-change 15.0.0 `previousIndex` and `event` parameters to become required.\n */\n drop(item, currentIndex, previousIndex, previousContainer, isPointerOverContainer, distance, dropPoint, event = {}) {\n this._reset();\n this.dropped.next({\n item,\n currentIndex,\n previousIndex,\n container: this,\n previousContainer,\n isPointerOverContainer,\n distance,\n dropPoint,\n event,\n });\n }\n /**\n * Sets the draggable items that are a part of this list.\n * @param items Items that are a part of this list.\n */\n withItems(items) {\n const previousItems = this._draggables;\n this._draggables = items;\n items.forEach(item => item._withDropContainer(this));\n if (this.isDragging()) {\n const draggedItems = previousItems.filter(item => item.isDragging());\n // If all of the items being dragged were removed\n // from the list, abort the current drag sequence.\n if (draggedItems.every(item => items.indexOf(item) === -1)) {\n this._reset();\n }\n else {\n this._sortStrategy.withItems(this._draggables);\n }\n }\n return this;\n }\n /** Sets the layout direction of the drop list. */\n withDirection(direction) {\n this._sortStrategy.direction = direction;\n return this;\n }\n /**\n * Sets the containers that are connected to this one. When two or more containers are\n * connected, the user will be allowed to transfer items between them.\n * @param connectedTo Other containers that the current containers should be connected to.\n */\n connectedTo(connectedTo) {\n this._siblings = connectedTo.slice();\n return this;\n }\n /**\n * Sets the orientation of the container.\n * @param orientation New orientation for the container.\n */\n withOrientation(orientation) {\n // TODO(crisbeto): eventually we should be constructing the new sort strategy here based on\n // the new orientation. For now we can assume that it'll always be `SingleAxisSortStrategy`.\n this._sortStrategy.orientation = orientation;\n return this;\n }\n /**\n * Sets which parent elements are can be scrolled while the user is dragging.\n * @param elements Elements that can be scrolled.\n */\n withScrollableParents(elements) {\n const element = coerceElement(this.element);\n // We always allow the current element to be scrollable\n // so we need to ensure that it's in the array.\n this._scrollableElements =\n elements.indexOf(element) === -1 ? [element, ...elements] : elements.slice();\n return this;\n }\n /** Gets the scrollable parents that are registered with this drop container. */\n getScrollableParents() {\n return this._scrollableElements;\n }\n /**\n * Figures out the index of an item in the container.\n * @param item Item whose index should be determined.\n */\n getItemIndex(item) {\n return this._isDragging\n ? this._sortStrategy.getItemIndex(item)\n : this._draggables.indexOf(item);\n }\n /**\n * Whether the list is able to receive the item that\n * is currently being dragged inside a connected drop list.\n */\n isReceiving() {\n return this._activeSiblings.size > 0;\n }\n /**\n * Sorts an item inside the container based on its position.\n * @param item Item to be sorted.\n * @param pointerX Position of the item along the X axis.\n * @param pointerY Position of the item along the Y axis.\n * @param pointerDelta Direction in which the pointer is moving along each axis.\n */\n _sortItem(item, pointerX, pointerY, pointerDelta) {\n // Don't sort the item if sorting is disabled or it's out of range.\n if (this.sortingDisabled ||\n !this._domRect ||\n !isPointerNearDomRect(this._domRect, DROP_PROXIMITY_THRESHOLD, pointerX, pointerY)) {\n return;\n }\n const result = this._sortStrategy.sort(item, pointerX, pointerY, pointerDelta);\n if (result) {\n this.sorted.next({\n previousIndex: result.previousIndex,\n currentIndex: result.currentIndex,\n container: this,\n item,\n });\n }\n }\n /**\n * Checks whether the user's pointer is close to the edges of either the\n * viewport or the drop list and starts the auto-scroll sequence.\n * @param pointerX User's pointer position along the x axis.\n * @param pointerY User's pointer position along the y axis.\n */\n _startScrollingIfNecessary(pointerX, pointerY) {\n if (this.autoScrollDisabled) {\n return;\n }\n let scrollNode;\n let verticalScrollDirection = AutoScrollVerticalDirection.NONE;\n let horizontalScrollDirection = AutoScrollHorizontalDirection.NONE;\n // Check whether we should start scrolling any of the parent containers.\n this._parentPositions.positions.forEach((position, element) => {\n // We have special handling for the `document` below. Also this would be\n // nicer with a for...of loop, but it requires changing a compiler flag.\n if (element === this._document || !position.clientRect || scrollNode) {\n return;\n }\n if (isPointerNearDomRect(position.clientRect, DROP_PROXIMITY_THRESHOLD, pointerX, pointerY)) {\n [verticalScrollDirection, horizontalScrollDirection] = getElementScrollDirections(element, position.clientRect, this._sortStrategy.direction, pointerX, pointerY);\n if (verticalScrollDirection || horizontalScrollDirection) {\n scrollNode = element;\n }\n }\n });\n // Otherwise check if we can start scrolling the viewport.\n if (!verticalScrollDirection && !horizontalScrollDirection) {\n const { width, height } = this._viewportRuler.getViewportSize();\n const domRect = {\n width,\n height,\n top: 0,\n right: width,\n bottom: height,\n left: 0,\n };\n verticalScrollDirection = getVerticalScrollDirection(domRect, pointerY);\n horizontalScrollDirection = getHorizontalScrollDirection(domRect, pointerX);\n scrollNode = window;\n }\n if (scrollNode &&\n (verticalScrollDirection !== this._verticalScrollDirection ||\n horizontalScrollDirection !== this._horizontalScrollDirection ||\n scrollNode !== this._scrollNode)) {\n this._verticalScrollDirection = verticalScrollDirection;\n this._horizontalScrollDirection = horizontalScrollDirection;\n this._scrollNode = scrollNode;\n if ((verticalScrollDirection || horizontalScrollDirection) && scrollNode) {\n this._ngZone.runOutsideAngular(this._startScrollInterval);\n }\n else {\n this._stopScrolling();\n }\n }\n }\n /** Stops any currently-running auto-scroll sequences. */\n _stopScrolling() {\n this._stopScrollTimers.next();\n }\n /** Starts the dragging sequence within the list. */\n _draggingStarted() {\n const styles = coerceElement(this.element).style;\n this.beforeStarted.next();\n this._isDragging = true;\n // We need to disable scroll snapping while the user is dragging, because it breaks automatic\n // scrolling. The browser seems to round the value based on the snapping points which means\n // that we can't increment/decrement the scroll position.\n this._initialScrollSnap = styles.msScrollSnapType || styles.scrollSnapType || '';\n styles.scrollSnapType = styles.msScrollSnapType = 'none';\n this._sortStrategy.start(this._draggables);\n this._cacheParentPositions();\n this._viewportScrollSubscription.unsubscribe();\n this._listenToScrollEvents();\n }\n /** Caches the positions of the configured scrollable parents. */\n _cacheParentPositions() {\n const element = coerceElement(this.element);\n this._parentPositions.cache(this._scrollableElements);\n // The list element is always in the `scrollableElements`\n // so we can take advantage of the cached `DOMRect`.\n this._domRect = this._parentPositions.positions.get(element).clientRect;\n }\n /** Resets the container to its initial state. */\n _reset() {\n this._isDragging = false;\n const styles = coerceElement(this.element).style;\n styles.scrollSnapType = styles.msScrollSnapType = this._initialScrollSnap;\n this._siblings.forEach(sibling => sibling._stopReceiving(this));\n this._sortStrategy.reset();\n this._stopScrolling();\n this._viewportScrollSubscription.unsubscribe();\n this._parentPositions.clear();\n }\n /**\n * Checks whether the user's pointer is positioned over the container.\n * @param x Pointer position along the X axis.\n * @param y Pointer position along the Y axis.\n */\n _isOverContainer(x, y) {\n return this._domRect != null && isInsideClientRect(this._domRect, x, y);\n }\n /**\n * Figures out whether an item should be moved into a sibling\n * drop container, based on its current position.\n * @param item Drag item that is being moved.\n * @param x Position of the item along the X axis.\n * @param y Position of the item along the Y axis.\n */\n _getSiblingContainerFromPosition(item, x, y) {\n return this._siblings.find(sibling => sibling._canReceive(item, x, y));\n }\n /**\n * Checks whether the drop list can receive the passed-in item.\n * @param item Item that is being dragged into the list.\n * @param x Position of the item along the X axis.\n * @param y Position of the item along the Y axis.\n */\n _canReceive(item, x, y) {\n if (!this._domRect ||\n !isInsideClientRect(this._domRect, x, y) ||\n !this.enterPredicate(item, this)) {\n return false;\n }\n const elementFromPoint = this._getShadowRoot().elementFromPoint(x, y);\n // If there's no element at the pointer position, then\n // the client rect is probably scrolled out of the view.\n if (!elementFromPoint) {\n return false;\n }\n const nativeElement = coerceElement(this.element);\n // The `DOMRect`, that we're using to find the container over which the user is\n // hovering, doesn't give us any information on whether the element has been scrolled\n // out of the view or whether it's overlapping with other containers. This means that\n // we could end up transferring the item into a container that's invisible or is positioned\n // below another one. We use the result from `elementFromPoint` to get the top-most element\n // at the pointer position and to find whether it's one of the intersecting drop containers.\n return elementFromPoint === nativeElement || nativeElement.contains(elementFromPoint);\n }\n /**\n * Called by one of the connected drop lists when a dragging sequence has started.\n * @param sibling Sibling in which dragging has started.\n */\n _startReceiving(sibling, items) {\n const activeSiblings = this._activeSiblings;\n if (!activeSiblings.has(sibling) &&\n items.every(item => {\n // Note that we have to add an exception to the `enterPredicate` for items that started off\n // in this drop list. The drag ref has logic that allows an item to return to its initial\n // container, if it has left the initial container and none of the connected containers\n // allow it to enter. See `DragRef._updateActiveDropContainer` for more context.\n return this.enterPredicate(item, this) || this._draggables.indexOf(item) > -1;\n })) {\n activeSiblings.add(sibling);\n this._cacheParentPositions();\n this._listenToScrollEvents();\n this.receivingStarted.next({\n initiator: sibling,\n receiver: this,\n items,\n });\n }\n }\n /**\n * Called by a connected drop list when dragging has stopped.\n * @param sibling Sibling whose dragging has stopped.\n */\n _stopReceiving(sibling) {\n this._activeSiblings.delete(sibling);\n this._viewportScrollSubscription.unsubscribe();\n this.receivingStopped.next({ initiator: sibling, receiver: this });\n }\n /**\n * Starts listening to scroll events on the viewport.\n * Used for updating the internal state of the list.\n */\n _listenToScrollEvents() {\n this._viewportScrollSubscription = this._dragDropRegistry\n .scrolled(this._getShadowRoot())\n .subscribe(event => {\n if (this.isDragging()) {\n const scrollDifference = this._parentPositions.handleScroll(event);\n if (scrollDifference) {\n this._sortStrategy.updateOnScroll(scrollDifference.top, scrollDifference.left);\n }\n }\n else if (this.isReceiving()) {\n this._cacheParentPositions();\n }\n });\n }\n /**\n * Lazily resolves and returns the shadow root of the element. We do this in a function, rather\n * than saving it in property directly on init, because we want to resolve it as late as possible\n * in order to ensure that the element has been moved into the shadow DOM. Doing it inside the\n * constructor might be too early if the element is inside of something like `ngFor` or `ngIf`.\n */\n _getShadowRoot() {\n if (!this._cachedShadowRoot) {\n const shadowRoot = _getShadowRoot(coerceElement(this.element));\n this._cachedShadowRoot = (shadowRoot || this._document);\n }\n return this._cachedShadowRoot;\n }\n /** Notifies any siblings that may potentially receive the item. */\n _notifyReceivingSiblings() {\n const draggedItems = this._sortStrategy\n .getActiveItemsSnapshot()\n .filter(item => item.isDragging());\n this._siblings.forEach(sibling => sibling._startReceiving(this, draggedItems));\n }\n}\n/**\n * Gets whether the vertical auto-scroll direction of a node.\n * @param clientRect Dimensions of the node.\n * @param pointerY Position of the user's pointer along the y axis.\n */\nfunction getVerticalScrollDirection(clientRect, pointerY) {\n const { top, bottom, height } = clientRect;\n const yThreshold = height * SCROLL_PROXIMITY_THRESHOLD;\n if (pointerY >= top - yThreshold && pointerY <= top + yThreshold) {\n return AutoScrollVerticalDirection.UP;\n }\n else if (pointerY >= bottom - yThreshold && pointerY <= bottom + yThreshold) {\n return AutoScrollVerticalDirection.DOWN;\n }\n return AutoScrollVerticalDirection.NONE;\n}\n/**\n * Gets whether the horizontal auto-scroll direction of a node.\n * @param clientRect Dimensions of the node.\n * @param pointerX Position of the user's pointer along the x axis.\n */\nfunction getHorizontalScrollDirection(clientRect, pointerX) {\n const { left, right, width } = clientRect;\n const xThreshold = width * SCROLL_PROXIMITY_THRESHOLD;\n if (pointerX >= left - xThreshold && pointerX <= left + xThreshold) {\n return AutoScrollHorizontalDirection.LEFT;\n }\n else if (pointerX >= right - xThreshold && pointerX <= right + xThreshold) {\n return AutoScrollHorizontalDirection.RIGHT;\n }\n return AutoScrollHorizontalDirection.NONE;\n}\n/**\n * Gets the directions in which an element node should be scrolled,\n * assuming that the user's pointer is already within it scrollable region.\n * @param element Element for which we should calculate the scroll direction.\n * @param clientRect Bounding client rectangle of the element.\n * @param direction Layout direction of the drop list.\n * @param pointerX Position of the user's pointer along the x axis.\n * @param pointerY Position of the user's pointer along the y axis.\n */\nfunction getElementScrollDirections(element, clientRect, direction, pointerX, pointerY) {\n const computedVertical = getVerticalScrollDirection(clientRect, pointerY);\n const computedHorizontal = getHorizontalScrollDirection(clientRect, pointerX);\n let verticalScrollDirection = AutoScrollVerticalDirection.NONE;\n let horizontalScrollDirection = AutoScrollHorizontalDirection.NONE;\n // Note that we here we do some extra checks for whether the element is actually scrollable in\n // a certain direction and we only assign the scroll direction if it is. We do this so that we\n // can allow other elements to be scrolled, if the current element can't be scrolled anymore.\n // This allows us to handle cases where the scroll regions of two scrollable elements overlap.\n if (computedVertical) {\n const scrollTop = element.scrollTop;\n if (computedVertical === AutoScrollVerticalDirection.UP) {\n if (scrollTop > 0) {\n verticalScrollDirection = AutoScrollVerticalDirection.UP;\n }\n }\n else if (element.scrollHeight - scrollTop > element.clientHeight) {\n verticalScrollDirection = AutoScrollVerticalDirection.DOWN;\n }\n }\n if (computedHorizontal) {\n const scrollLeft = element.scrollLeft;\n if (direction === 'rtl') {\n if (computedHorizontal === AutoScrollHorizontalDirection.RIGHT) {\n // In RTL `scrollLeft` will be negative when scrolled.\n if (scrollLeft < 0) {\n horizontalScrollDirection = AutoScrollHorizontalDirection.RIGHT;\n }\n }\n else if (element.scrollWidth + scrollLeft > element.clientWidth) {\n horizontalScrollDirection = AutoScrollHorizontalDirection.LEFT;\n }\n }\n else {\n if (computedHorizontal === AutoScrollHorizontalDirection.LEFT) {\n if (scrollLeft > 0) {\n horizontalScrollDirection = AutoScrollHorizontalDirection.LEFT;\n }\n }\n else if (element.scrollWidth - scrollLeft > element.clientWidth) {\n horizontalScrollDirection = AutoScrollHorizontalDirection.RIGHT;\n }\n }\n }\n return [verticalScrollDirection, horizontalScrollDirection];\n}\n\n/** Event options that can be used to bind an active, capturing event. */\nconst activeCapturingEventOptions = normalizePassiveListenerOptions({\n passive: false,\n capture: true,\n});\n/** Keeps track of the apps currently containing drag items. */\nconst activeApps = new Set();\n/**\n * Component used to load the drag&drop reset styles.\n * @docs-private\n */\nclass _ResetsLoader {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: _ResetsLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.2.0\", type: _ResetsLoader, isStandalone: true, selector: \"ng-component\", host: { attributes: { \"cdk-drag-resets-container\": \"\" } }, ngImport: i0, template: '', isInline: true, styles: [\"@layer cdk-resets{.cdk-drag-preview{background:none;border:none;padding:0;color:inherit}}\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: _ResetsLoader, decorators: [{\n type: Component,\n args: [{ standalone: true, encapsulation: ViewEncapsulation.None, template: '', changeDetection: ChangeDetectionStrategy.OnPush, host: { 'cdk-drag-resets-container': '' }, styles: [\"@layer cdk-resets{.cdk-drag-preview{background:none;border:none;padding:0;color:inherit}}\"] }]\n }] });\n/**\n * Service that keeps track of all the drag item and drop container\n * instances, and manages global event listeners on the `document`.\n * @docs-private\n */\n// Note: this class is generic, rather than referencing CdkDrag and CdkDropList directly, in order\n// to avoid circular imports. If we were to reference them here, importing the registry into the\n// classes that are registering themselves will introduce a circular import.\nclass DragDropRegistry {\n constructor(_ngZone, _document) {\n this._ngZone = _ngZone;\n this._appRef = inject(ApplicationRef);\n this._environmentInjector = inject(EnvironmentInjector);\n /** Registered drop container instances. */\n this._dropInstances = new Set();\n /** Registered drag item instances. */\n this._dragInstances = new Set();\n /** Drag item instances that are currently being dragged. */\n this._activeDragInstances = [];\n /** Keeps track of the event listeners that we've bound to the `document`. */\n this._globalListeners = new Map();\n /**\n * Predicate function to check if an item is being dragged. Moved out into a property,\n * because it'll be called a lot and we don't want to create a new function every time.\n */\n this._draggingPredicate = (item) => item.isDragging();\n /**\n * Emits the `touchmove` or `mousemove` events that are dispatched\n * while the user is dragging a drag item instance.\n */\n this.pointerMove = new Subject();\n /**\n * Emits the `touchend` or `mouseup` events that are dispatched\n * while the user is dragging a drag item instance.\n */\n this.pointerUp = new Subject();\n /**\n * Emits when the viewport has been scrolled while the user is dragging an item.\n * @deprecated To be turned into a private member. Use the `scrolled` method instead.\n * @breaking-change 13.0.0\n */\n this.scroll = new Subject();\n /**\n * Event listener that will prevent the default browser action while the user is dragging.\n * @param event Event whose default action should be prevented.\n */\n this._preventDefaultWhileDragging = (event) => {\n if (this._activeDragInstances.length > 0) {\n event.preventDefault();\n }\n };\n /** Event listener for `touchmove` that is bound even if no dragging is happening. */\n this._persistentTouchmoveListener = (event) => {\n if (this._activeDragInstances.length > 0) {\n // Note that we only want to prevent the default action after dragging has actually started.\n // Usually this is the same time at which the item is added to the `_activeDragInstances`,\n // but it could be pushed back if the user has set up a drag delay or threshold.\n if (this._activeDragInstances.some(this._draggingPredicate)) {\n event.preventDefault();\n }\n this.pointerMove.next(event);\n }\n };\n this._document = _document;\n }\n /** Adds a drop container to the registry. */\n registerDropContainer(drop) {\n if (!this._dropInstances.has(drop)) {\n this._dropInstances.add(drop);\n }\n }\n /** Adds a drag item instance to the registry. */\n registerDragItem(drag) {\n this._dragInstances.add(drag);\n // The `touchmove` event gets bound once, ahead of time, because WebKit\n // won't preventDefault on a dynamically-added `touchmove` listener.\n // See https://bugs.webkit.org/show_bug.cgi?id=184250.\n if (this._dragInstances.size === 1) {\n this._ngZone.runOutsideAngular(() => {\n // The event handler has to be explicitly active,\n // because newer browsers make it passive by default.\n this._document.addEventListener('touchmove', this._persistentTouchmoveListener, activeCapturingEventOptions);\n });\n }\n }\n /** Removes a drop container from the registry. */\n removeDropContainer(drop) {\n this._dropInstances.delete(drop);\n }\n /** Removes a drag item instance from the registry. */\n removeDragItem(drag) {\n this._dragInstances.delete(drag);\n this.stopDragging(drag);\n if (this._dragInstances.size === 0) {\n this._document.removeEventListener('touchmove', this._persistentTouchmoveListener, activeCapturingEventOptions);\n }\n }\n /**\n * Starts the dragging sequence for a drag instance.\n * @param drag Drag instance which is being dragged.\n * @param event Event that initiated the dragging.\n */\n startDragging(drag, event) {\n // Do not process the same drag twice to avoid memory leaks and redundant listeners\n if (this._activeDragInstances.indexOf(drag) > -1) {\n return;\n }\n this._loadResets();\n this._activeDragInstances.push(drag);\n if (this._activeDragInstances.length === 1) {\n const isTouchEvent = event.type.startsWith('touch');\n // We explicitly bind __active__ listeners here, because newer browsers will default to\n // passive ones for `mousemove` and `touchmove`. The events need to be active, because we\n // use `preventDefault` to prevent the page from scrolling while the user is dragging.\n this._globalListeners\n .set(isTouchEvent ? 'touchend' : 'mouseup', {\n handler: (e) => this.pointerUp.next(e),\n options: true,\n })\n .set('scroll', {\n handler: (e) => this.scroll.next(e),\n // Use capturing so that we pick up scroll changes in any scrollable nodes that aren't\n // the document. See https://github.com/angular/components/issues/17144.\n options: true,\n })\n // Preventing the default action on `mousemove` isn't enough to disable text selection\n // on Safari so we need to prevent the selection event as well. Alternatively this can\n // be done by setting `user-select: none` on the `body`, however it has causes a style\n // recalculation which can be expensive on pages with a lot of elements.\n .set('selectstart', {\n handler: this._preventDefaultWhileDragging,\n options: activeCapturingEventOptions,\n });\n // We don't have to bind a move event for touch drag sequences, because\n // we already have a persistent global one bound from `registerDragItem`.\n if (!isTouchEvent) {\n this._globalListeners.set('mousemove', {\n handler: (e) => this.pointerMove.next(e),\n options: activeCapturingEventOptions,\n });\n }\n this._ngZone.runOutsideAngular(() => {\n this._globalListeners.forEach((config, name) => {\n this._document.addEventListener(name, config.handler, config.options);\n });\n });\n }\n }\n /** Stops dragging a drag item instance. */\n stopDragging(drag) {\n const index = this._activeDragInstances.indexOf(drag);\n if (index > -1) {\n this._activeDragInstances.splice(index, 1);\n if (this._activeDragInstances.length === 0) {\n this._clearGlobalListeners();\n }\n }\n }\n /** Gets whether a drag item instance is currently being dragged. */\n isDragging(drag) {\n return this._activeDragInstances.indexOf(drag) > -1;\n }\n /**\n * Gets a stream that will emit when any element on the page is scrolled while an item is being\n * dragged.\n * @param shadowRoot Optional shadow root that the current dragging sequence started from.\n * Top-level listeners won't pick up events coming from the shadow DOM so this parameter can\n * be used to include an additional top-level listener at the shadow root level.\n */\n scrolled(shadowRoot) {\n const streams = [this.scroll];\n if (shadowRoot && shadowRoot !== this._document) {\n // Note that this is basically the same as `fromEvent` from rxjs, but we do it ourselves,\n // because we want to guarantee that the event is bound outside of the `NgZone`. With\n // `fromEvent` it'll only happen if the subscription is outside the `NgZone`.\n streams.push(new Observable((observer) => {\n return this._ngZone.runOutsideAngular(() => {\n const eventOptions = true;\n const callback = (event) => {\n if (this._activeDragInstances.length) {\n observer.next(event);\n }\n };\n shadowRoot.addEventListener('scroll', callback, eventOptions);\n return () => {\n shadowRoot.removeEventListener('scroll', callback, eventOptions);\n };\n });\n }));\n }\n return merge(...streams);\n }\n ngOnDestroy() {\n this._dragInstances.forEach(instance => this.removeDragItem(instance));\n this._dropInstances.forEach(instance => this.removeDropContainer(instance));\n this._clearGlobalListeners();\n this.pointerMove.complete();\n this.pointerUp.complete();\n }\n /** Clears out the global event listeners from the `document`. */\n _clearGlobalListeners() {\n this._globalListeners.forEach((config, name) => {\n this._document.removeEventListener(name, config.handler, config.options);\n });\n this._globalListeners.clear();\n }\n // TODO(crisbeto): abstract this away into something reusable.\n /** Loads the CSS resets needed for the module to work correctly. */\n _loadResets() {\n if (!activeApps.has(this._appRef)) {\n activeApps.add(this._appRef);\n const componentRef = createComponent(_ResetsLoader, {\n environmentInjector: this._environmentInjector,\n });\n this._appRef.onDestroy(() => {\n activeApps.delete(this._appRef);\n if (activeApps.size === 0) {\n componentRef.destroy();\n }\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: DragDropRegistry, deps: [{ token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: DragDropRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: DragDropRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }] });\n\n/** Default configuration to be used when creating a `DragRef`. */\nconst DEFAULT_CONFIG = {\n dragStartThreshold: 5,\n pointerDirectionChangeThreshold: 5,\n};\n/**\n * Service that allows for drag-and-drop functionality to be attached to DOM elements.\n */\nclass DragDrop {\n constructor(_document, _ngZone, _viewportRuler, _dragDropRegistry) {\n this._document = _document;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._dragDropRegistry = _dragDropRegistry;\n }\n /**\n * Turns an element into a draggable item.\n * @param element Element to which to attach the dragging functionality.\n * @param config Object used to configure the dragging behavior.\n */\n createDrag(element, config = DEFAULT_CONFIG) {\n return new DragRef(element, config, this._document, this._ngZone, this._viewportRuler, this._dragDropRegistry);\n }\n /**\n * Turns an element into a drop list.\n * @param element Element to which to attach the drop list functionality.\n */\n createDropList(element) {\n return new DropListRef(element, this._dragDropRegistry, this._document, this._ngZone, this._viewportRuler);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: DragDrop, deps: [{ token: DOCUMENT }, { token: i0.NgZone }, { token: i1.ViewportRuler }, { token: DragDropRegistry }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: DragDrop, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: DragDrop, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone }, { type: i1.ViewportRuler }, { type: DragDropRegistry }] });\n\n/**\n * Injection token that can be used for a `CdkDrag` to provide itself as a parent to the\n * drag-specific child directive (`CdkDragHandle`, `CdkDragPreview` etc.). Used primarily\n * to avoid circular imports.\n * @docs-private\n */\nconst CDK_DRAG_PARENT = new InjectionToken('CDK_DRAG_PARENT');\n\n/**\n * Asserts that a particular node is an element.\n * @param node Node to be checked.\n * @param name Name to attach to the error message.\n */\nfunction assertElementNode(node, name) {\n if (node.nodeType !== 1) {\n throw Error(`${name} must be attached to an element node. ` + `Currently attached to \"${node.nodeName}\".`);\n }\n}\n\n/**\n * Injection token that can be used to reference instances of `CdkDragHandle`. It serves as\n * alternative token to the actual `CdkDragHandle` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DRAG_HANDLE = new InjectionToken('CdkDragHandle');\n/** Handle that can be used to drag a CdkDrag instance. */\nclass CdkDragHandle {\n /** Whether starting to drag through this handle is disabled. */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value;\n this._stateChanges.next(this);\n }\n constructor(element, _parentDrag) {\n this.element = element;\n this._parentDrag = _parentDrag;\n /** Emits when the state of the handle has changed. */\n this._stateChanges = new Subject();\n this._disabled = false;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assertElementNode(element.nativeElement, 'cdkDragHandle');\n }\n _parentDrag?._addHandle(this);\n }\n ngOnDestroy() {\n this._parentDrag?._removeHandle(this);\n this._stateChanges.complete();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDragHandle, deps: [{ token: i0.ElementRef }, { token: CDK_DRAG_PARENT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"17.2.0\", type: CdkDragHandle, isStandalone: true, selector: \"[cdkDragHandle]\", inputs: { disabled: [\"cdkDragHandleDisabled\", \"disabled\", booleanAttribute] }, host: { classAttribute: \"cdk-drag-handle\" }, providers: [{ provide: CDK_DRAG_HANDLE, useExisting: CdkDragHandle }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDragHandle, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkDragHandle]',\n standalone: true,\n host: {\n 'class': 'cdk-drag-handle',\n },\n providers: [{ provide: CDK_DRAG_HANDLE, useExisting: CdkDragHandle }],\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_DRAG_PARENT]\n }, {\n type: Optional\n }, {\n type: SkipSelf\n }] }], propDecorators: { disabled: [{\n type: Input,\n args: [{ alias: 'cdkDragHandleDisabled', transform: booleanAttribute }]\n }] } });\n\n/**\n * Injection token that can be used to configure the\n * behavior of the drag&drop-related components.\n */\nconst CDK_DRAG_CONFIG = new InjectionToken('CDK_DRAG_CONFIG');\n\nconst DRAG_HOST_CLASS = 'cdk-drag';\n/**\n * Injection token that can be used to reference instances of `CdkDropList`. It serves as\n * alternative token to the actual `CdkDropList` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DROP_LIST = new InjectionToken('CdkDropList');\n/** Element that can be moved inside a CdkDropList container. */\nclass CdkDrag {\n static { this._dragInstances = []; }\n /** Whether starting to drag this element is disabled. */\n get disabled() {\n return this._disabled || (this.dropContainer && this.dropContainer.disabled);\n }\n set disabled(value) {\n this._disabled = value;\n this._dragRef.disabled = this._disabled;\n }\n constructor(\n /** Element that the draggable is attached to. */\n element, \n /** Droppable container that the draggable is a part of. */\n dropContainer, \n /**\n * @deprecated `_document` parameter no longer being used and will be removed.\n * @breaking-change 12.0.0\n */\n _document, _ngZone, _viewContainerRef, config, _dir, dragDrop, _changeDetectorRef, _selfHandle, _parentDrag) {\n this.element = element;\n this.dropContainer = dropContainer;\n this._ngZone = _ngZone;\n this._viewContainerRef = _viewContainerRef;\n this._dir = _dir;\n this._changeDetectorRef = _changeDetectorRef;\n this._selfHandle = _selfHandle;\n this._parentDrag = _parentDrag;\n this._destroyed = new Subject();\n this._handles = new BehaviorSubject([]);\n /** Emits when the user starts dragging the item. */\n this.started = new EventEmitter();\n /** Emits when the user has released a drag item, before any animations have started. */\n this.released = new EventEmitter();\n /** Emits when the user stops dragging an item in the container. */\n this.ended = new EventEmitter();\n /** Emits when the user has moved the item into a new container. */\n this.entered = new EventEmitter();\n /** Emits when the user removes the item its container by dragging it into another container. */\n this.exited = new EventEmitter();\n /** Emits when the user drops the item inside a container. */\n this.dropped = new EventEmitter();\n /**\n * Emits as the user is dragging the item. Use with caution,\n * because this event will fire for every pixel that the user has dragged.\n */\n this.moved = new Observable((observer) => {\n const subscription = this._dragRef.moved\n .pipe(map(movedEvent => ({\n source: this,\n pointerPosition: movedEvent.pointerPosition,\n event: movedEvent.event,\n delta: movedEvent.delta,\n distance: movedEvent.distance,\n })))\n .subscribe(observer);\n return () => {\n subscription.unsubscribe();\n };\n });\n this._dragRef = dragDrop.createDrag(element, {\n dragStartThreshold: config && config.dragStartThreshold != null ? config.dragStartThreshold : 5,\n pointerDirectionChangeThreshold: config && config.pointerDirectionChangeThreshold != null\n ? config.pointerDirectionChangeThreshold\n : 5,\n zIndex: config?.zIndex,\n });\n this._dragRef.data = this;\n // We have to keep track of the drag instances in order to be able to match an element to\n // a drag instance. We can't go through the global registry of `DragRef`, because the root\n // element could be different.\n CdkDrag._dragInstances.push(this);\n if (config) {\n this._assignDefaults(config);\n }\n // Note that usually the container is assigned when the drop list is picks up the item, but in\n // some cases (mainly transplanted views with OnPush, see #18341) we may end up in a situation\n // where there are no items on the first change detection pass, but the items get picked up as\n // soon as the user triggers another pass by dragging. This is a problem, because the item would\n // have to switch from standalone mode to drag mode in the middle of the dragging sequence which\n // is too late since the two modes save different kinds of information. We work around it by\n // assigning the drop container both from here and the list.\n if (dropContainer) {\n this._dragRef._withDropContainer(dropContainer._dropListRef);\n dropContainer.addItem(this);\n }\n this._syncInputs(this._dragRef);\n this._handleEvents(this._dragRef);\n }\n /**\n * Returns the element that is being used as a placeholder\n * while the current element is being dragged.\n */\n getPlaceholderElement() {\n return this._dragRef.getPlaceholderElement();\n }\n /** Returns the root draggable element. */\n getRootElement() {\n return this._dragRef.getRootElement();\n }\n /** Resets a standalone drag item to its initial position. */\n reset() {\n this._dragRef.reset();\n }\n /**\n * Gets the pixel coordinates of the draggable outside of a drop container.\n */\n getFreeDragPosition() {\n return this._dragRef.getFreeDragPosition();\n }\n /**\n * Sets the current position in pixels the draggable outside of a drop container.\n * @param value New position to be set.\n */\n setFreeDragPosition(value) {\n this._dragRef.setFreeDragPosition(value);\n }\n ngAfterViewInit() {\n // Normally this isn't in the zone, but it can cause major performance regressions for apps\n // using `zone-patch-rxjs` because it'll trigger a change detection when it unsubscribes.\n this._ngZone.runOutsideAngular(() => {\n // We need to wait for the zone to stabilize, in order for the reference\n // element to be in the proper place in the DOM. This is mostly relevant\n // for draggable elements inside portals since they get stamped out in\n // their original DOM position and then they get transferred to the portal.\n this._ngZone.onStable.pipe(take(1), takeUntil(this._destroyed)).subscribe(() => {\n this._updateRootElement();\n this._setupHandlesListener();\n if (this.freeDragPosition) {\n this._dragRef.setFreeDragPosition(this.freeDragPosition);\n }\n });\n });\n }\n ngOnChanges(changes) {\n const rootSelectorChange = changes['rootElementSelector'];\n const positionChange = changes['freeDragPosition'];\n // We don't have to react to the first change since it's being\n // handled in `ngAfterViewInit` where it needs to be deferred.\n if (rootSelectorChange && !rootSelectorChange.firstChange) {\n this._updateRootElement();\n }\n // Skip the first change since it's being handled in `ngAfterViewInit`.\n if (positionChange && !positionChange.firstChange && this.freeDragPosition) {\n this._dragRef.setFreeDragPosition(this.freeDragPosition);\n }\n }\n ngOnDestroy() {\n if (this.dropContainer) {\n this.dropContainer.removeItem(this);\n }\n const index = CdkDrag._dragInstances.indexOf(this);\n if (index > -1) {\n CdkDrag._dragInstances.splice(index, 1);\n }\n // Unnecessary in most cases, but used to avoid extra change detections with `zone-paths-rxjs`.\n this._ngZone.runOutsideAngular(() => {\n this._handles.complete();\n this._destroyed.next();\n this._destroyed.complete();\n this._dragRef.dispose();\n });\n }\n _addHandle(handle) {\n const handles = this._handles.getValue();\n handles.push(handle);\n this._handles.next(handles);\n }\n _removeHandle(handle) {\n const handles = this._handles.getValue();\n const index = handles.indexOf(handle);\n if (index > -1) {\n handles.splice(index, 1);\n this._handles.next(handles);\n }\n }\n _setPreviewTemplate(preview) {\n this._previewTemplate = preview;\n }\n _resetPreviewTemplate(preview) {\n if (preview === this._previewTemplate) {\n this._previewTemplate = null;\n }\n }\n _setPlaceholderTemplate(placeholder) {\n this._placeholderTemplate = placeholder;\n }\n _resetPlaceholderTemplate(placeholder) {\n if (placeholder === this._placeholderTemplate) {\n this._placeholderTemplate = null;\n }\n }\n /** Syncs the root element with the `DragRef`. */\n _updateRootElement() {\n const element = this.element.nativeElement;\n let rootElement = element;\n if (this.rootElementSelector) {\n rootElement =\n element.closest !== undefined\n ? element.closest(this.rootElementSelector)\n : // Comment tag doesn't have closest method, so use parent's one.\n element.parentElement?.closest(this.rootElementSelector);\n }\n if (rootElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n assertElementNode(rootElement, 'cdkDrag');\n }\n this._dragRef.withRootElement(rootElement || element);\n }\n /** Gets the boundary element, based on the `boundaryElement` value. */\n _getBoundaryElement() {\n const boundary = this.boundaryElement;\n if (!boundary) {\n return null;\n }\n if (typeof boundary === 'string') {\n return this.element.nativeElement.closest(boundary);\n }\n return coerceElement(boundary);\n }\n /** Syncs the inputs of the CdkDrag with the options of the underlying DragRef. */\n _syncInputs(ref) {\n ref.beforeStarted.subscribe(() => {\n if (!ref.isDragging()) {\n const dir = this._dir;\n const dragStartDelay = this.dragStartDelay;\n const placeholder = this._placeholderTemplate\n ? {\n template: this._placeholderTemplate.templateRef,\n context: this._placeholderTemplate.data,\n viewContainer: this._viewContainerRef,\n }\n : null;\n const preview = this._previewTemplate\n ? {\n template: this._previewTemplate.templateRef,\n context: this._previewTemplate.data,\n matchSize: this._previewTemplate.matchSize,\n viewContainer: this._viewContainerRef,\n }\n : null;\n ref.disabled = this.disabled;\n ref.lockAxis = this.lockAxis;\n ref.dragStartDelay =\n typeof dragStartDelay === 'object' && dragStartDelay\n ? dragStartDelay\n : coerceNumberProperty(dragStartDelay);\n ref.constrainPosition = this.constrainPosition;\n ref.previewClass = this.previewClass;\n ref\n .withBoundaryElement(this._getBoundaryElement())\n .withPlaceholderTemplate(placeholder)\n .withPreviewTemplate(preview)\n .withPreviewContainer(this.previewContainer || 'global');\n if (dir) {\n ref.withDirection(dir.value);\n }\n }\n });\n // This only needs to be resolved once.\n ref.beforeStarted.pipe(take(1)).subscribe(() => {\n // If we managed to resolve a parent through DI, use it.\n if (this._parentDrag) {\n ref.withParent(this._parentDrag._dragRef);\n return;\n }\n // Otherwise fall back to resolving the parent by looking up the DOM. This can happen if\n // the item was projected into another item by something like `ngTemplateOutlet`.\n let parent = this.element.nativeElement.parentElement;\n while (parent) {\n if (parent.classList.contains(DRAG_HOST_CLASS)) {\n ref.withParent(CdkDrag._dragInstances.find(drag => {\n return drag.element.nativeElement === parent;\n })?._dragRef || null);\n break;\n }\n parent = parent.parentElement;\n }\n });\n }\n /** Handles the events from the underlying `DragRef`. */\n _handleEvents(ref) {\n ref.started.subscribe(startEvent => {\n this.started.emit({ source: this, event: startEvent.event });\n // Since all of these events run outside of change detection,\n // we need to ensure that everything is marked correctly.\n this._changeDetectorRef.markForCheck();\n });\n ref.released.subscribe(releaseEvent => {\n this.released.emit({ source: this, event: releaseEvent.event });\n });\n ref.ended.subscribe(endEvent => {\n this.ended.emit({\n source: this,\n distance: endEvent.distance,\n dropPoint: endEvent.dropPoint,\n event: endEvent.event,\n });\n // Since all of these events run outside of change detection,\n // we need to ensure that everything is marked correctly.\n this._changeDetectorRef.markForCheck();\n });\n ref.entered.subscribe(enterEvent => {\n this.entered.emit({\n container: enterEvent.container.data,\n item: this,\n currentIndex: enterEvent.currentIndex,\n });\n });\n ref.exited.subscribe(exitEvent => {\n this.exited.emit({\n container: exitEvent.container.data,\n item: this,\n });\n });\n ref.dropped.subscribe(dropEvent => {\n this.dropped.emit({\n previousIndex: dropEvent.previousIndex,\n currentIndex: dropEvent.currentIndex,\n previousContainer: dropEvent.previousContainer.data,\n container: dropEvent.container.data,\n isPointerOverContainer: dropEvent.isPointerOverContainer,\n item: this,\n distance: dropEvent.distance,\n dropPoint: dropEvent.dropPoint,\n event: dropEvent.event,\n });\n });\n }\n /** Assigns the default input values based on a provided config object. */\n _assignDefaults(config) {\n const { lockAxis, dragStartDelay, constrainPosition, previewClass, boundaryElement, draggingDisabled, rootElementSelector, previewContainer, } = config;\n this.disabled = draggingDisabled == null ? false : draggingDisabled;\n this.dragStartDelay = dragStartDelay || 0;\n if (lockAxis) {\n this.lockAxis = lockAxis;\n }\n if (constrainPosition) {\n this.constrainPosition = constrainPosition;\n }\n if (previewClass) {\n this.previewClass = previewClass;\n }\n if (boundaryElement) {\n this.boundaryElement = boundaryElement;\n }\n if (rootElementSelector) {\n this.rootElementSelector = rootElementSelector;\n }\n if (previewContainer) {\n this.previewContainer = previewContainer;\n }\n }\n /** Sets up the listener that syncs the handles with the drag ref. */\n _setupHandlesListener() {\n // Listen for any newly-added handles.\n this._handles\n .pipe(\n // Sync the new handles with the DragRef.\n tap(handles => {\n const handleElements = handles.map(handle => handle.element);\n // Usually handles are only allowed to be a descendant of the drag element, but if\n // the consumer defined a different drag root, we should allow the drag element\n // itself to be a handle too.\n if (this._selfHandle && this.rootElementSelector) {\n handleElements.push(this.element);\n }\n this._dragRef.withHandles(handleElements);\n }), \n // Listen if the state of any of the handles changes.\n switchMap((handles) => {\n return merge(...handles.map(item => item._stateChanges.pipe(startWith(item))));\n }), takeUntil(this._destroyed))\n .subscribe(handleInstance => {\n // Enabled/disable the handle that changed in the DragRef.\n const dragRef = this._dragRef;\n const handle = handleInstance.element.nativeElement;\n handleInstance.disabled ? dragRef.disableHandle(handle) : dragRef.enableHandle(handle);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDrag, deps: [{ token: i0.ElementRef }, { token: CDK_DROP_LIST, optional: true, skipSelf: true }, { token: DOCUMENT }, { token: i0.NgZone }, { token: i0.ViewContainerRef }, { token: CDK_DRAG_CONFIG, optional: true }, { token: i1$1.Directionality, optional: true }, { token: DragDrop }, { token: i0.ChangeDetectorRef }, { token: CDK_DRAG_HANDLE, optional: true, self: true }, { token: CDK_DRAG_PARENT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"17.2.0\", type: CdkDrag, isStandalone: true, selector: \"[cdkDrag]\", inputs: { data: [\"cdkDragData\", \"data\"], lockAxis: [\"cdkDragLockAxis\", \"lockAxis\"], rootElementSelector: [\"cdkDragRootElement\", \"rootElementSelector\"], boundaryElement: [\"cdkDragBoundary\", \"boundaryElement\"], dragStartDelay: [\"cdkDragStartDelay\", \"dragStartDelay\"], freeDragPosition: [\"cdkDragFreeDragPosition\", \"freeDragPosition\"], disabled: [\"cdkDragDisabled\", \"disabled\", booleanAttribute], constrainPosition: [\"cdkDragConstrainPosition\", \"constrainPosition\"], previewClass: [\"cdkDragPreviewClass\", \"previewClass\"], previewContainer: [\"cdkDragPreviewContainer\", \"previewContainer\"] }, outputs: { started: \"cdkDragStarted\", released: \"cdkDragReleased\", ended: \"cdkDragEnded\", entered: \"cdkDragEntered\", exited: \"cdkDragExited\", dropped: \"cdkDragDropped\", moved: \"cdkDragMoved\" }, host: { properties: { \"class.cdk-drag-disabled\": \"disabled\", \"class.cdk-drag-dragging\": \"_dragRef.isDragging()\" }, classAttribute: \"cdk-drag\" }, providers: [{ provide: CDK_DRAG_PARENT, useExisting: CdkDrag }], exportAs: [\"cdkDrag\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDrag, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkDrag]',\n exportAs: 'cdkDrag',\n standalone: true,\n host: {\n 'class': DRAG_HOST_CLASS,\n '[class.cdk-drag-disabled]': 'disabled',\n '[class.cdk-drag-dragging]': '_dragRef.isDragging()',\n },\n providers: [{ provide: CDK_DRAG_PARENT, useExisting: CdkDrag }],\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_DROP_LIST]\n }, {\n type: Optional\n }, {\n type: SkipSelf\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CDK_DRAG_CONFIG]\n }] }, { type: i1$1.Directionality, decorators: [{\n type: Optional\n }] }, { type: DragDrop }, { type: i0.ChangeDetectorRef }, { type: CdkDragHandle, decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [CDK_DRAG_HANDLE]\n }] }, { type: CdkDrag, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }, {\n type: Inject,\n args: [CDK_DRAG_PARENT]\n }] }], propDecorators: { data: [{\n type: Input,\n args: ['cdkDragData']\n }], lockAxis: [{\n type: Input,\n args: ['cdkDragLockAxis']\n }], rootElementSelector: [{\n type: Input,\n args: ['cdkDragRootElement']\n }], boundaryElement: [{\n type: Input,\n args: ['cdkDragBoundary']\n }], dragStartDelay: [{\n type: Input,\n args: ['cdkDragStartDelay']\n }], freeDragPosition: [{\n type: Input,\n args: ['cdkDragFreeDragPosition']\n }], disabled: [{\n type: Input,\n args: [{ alias: 'cdkDragDisabled', transform: booleanAttribute }]\n }], constrainPosition: [{\n type: Input,\n args: ['cdkDragConstrainPosition']\n }], previewClass: [{\n type: Input,\n args: ['cdkDragPreviewClass']\n }], previewContainer: [{\n type: Input,\n args: ['cdkDragPreviewContainer']\n }], started: [{\n type: Output,\n args: ['cdkDragStarted']\n }], released: [{\n type: Output,\n args: ['cdkDragReleased']\n }], ended: [{\n type: Output,\n args: ['cdkDragEnded']\n }], entered: [{\n type: Output,\n args: ['cdkDragEntered']\n }], exited: [{\n type: Output,\n args: ['cdkDragExited']\n }], dropped: [{\n type: Output,\n args: ['cdkDragDropped']\n }], moved: [{\n type: Output,\n args: ['cdkDragMoved']\n }] } });\n\n/**\n * Injection token that can be used to reference instances of `CdkDropListGroup`. It serves as\n * alternative token to the actual `CdkDropListGroup` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DROP_LIST_GROUP = new InjectionToken('CdkDropListGroup');\n/**\n * Declaratively connects sibling `cdkDropList` instances together. All of the `cdkDropList`\n * elements that are placed inside a `cdkDropListGroup` will be connected to each other\n * automatically. Can be used as an alternative to the `cdkDropListConnectedTo` input\n * from `cdkDropList`.\n */\nclass CdkDropListGroup {\n constructor() {\n /** Drop lists registered inside the group. */\n this._items = new Set();\n /** Whether starting a dragging sequence from inside this group is disabled. */\n this.disabled = false;\n }\n ngOnDestroy() {\n this._items.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDropListGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"17.2.0\", type: CdkDropListGroup, isStandalone: true, selector: \"[cdkDropListGroup]\", inputs: { disabled: [\"cdkDropListGroupDisabled\", \"disabled\", booleanAttribute] }, providers: [{ provide: CDK_DROP_LIST_GROUP, useExisting: CdkDropListGroup }], exportAs: [\"cdkDropListGroup\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDropListGroup, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkDropListGroup]',\n exportAs: 'cdkDropListGroup',\n standalone: true,\n providers: [{ provide: CDK_DROP_LIST_GROUP, useExisting: CdkDropListGroup }],\n }]\n }], propDecorators: { disabled: [{\n type: Input,\n args: [{ alias: 'cdkDropListGroupDisabled', transform: booleanAttribute }]\n }] } });\n\n/** Counter used to generate unique ids for drop zones. */\nlet _uniqueIdCounter = 0;\n/** Container that wraps a set of draggable items. */\nclass CdkDropList {\n /** Keeps track of the drop lists that are currently on the page. */\n static { this._dropLists = []; }\n /** Whether starting a dragging sequence from this container is disabled. */\n get disabled() {\n return this._disabled || (!!this._group && this._group.disabled);\n }\n set disabled(value) {\n // Usually we sync the directive and ref state right before dragging starts, in order to have\n // a single point of failure and to avoid having to use setters for everything. `disabled` is\n // a special case, because it can prevent the `beforeStarted` event from firing, which can lock\n // the user in a disabled state, so we also need to sync it as it's being set.\n this._dropListRef.disabled = this._disabled = value;\n }\n constructor(\n /** Element that the drop list is attached to. */\n element, dragDrop, _changeDetectorRef, _scrollDispatcher, _dir, _group, config) {\n this.element = element;\n this._changeDetectorRef = _changeDetectorRef;\n this._scrollDispatcher = _scrollDispatcher;\n this._dir = _dir;\n this._group = _group;\n /** Emits when the list has been destroyed. */\n this._destroyed = new Subject();\n /**\n * Other draggable containers that this container is connected to and into which the\n * container's items can be transferred. Can either be references to other drop containers,\n * or their unique IDs.\n */\n this.connectedTo = [];\n /**\n * Unique ID for the drop zone. Can be used as a reference\n * in the `connectedTo` of another `CdkDropList`.\n */\n this.id = `cdk-drop-list-${_uniqueIdCounter++}`;\n /**\n * Function that is used to determine whether an item\n * is allowed to be moved into a drop container.\n */\n this.enterPredicate = () => true;\n /** Functions that is used to determine whether an item can be sorted into a particular index. */\n this.sortPredicate = () => true;\n /** Emits when the user drops an item inside the container. */\n this.dropped = new EventEmitter();\n /**\n * Emits when the user has moved a new drag item into this container.\n */\n this.entered = new EventEmitter();\n /**\n * Emits when the user removes an item from the container\n * by dragging it into another container.\n */\n this.exited = new EventEmitter();\n /** Emits as the user is swapping items while actively dragging. */\n this.sorted = new EventEmitter();\n /**\n * Keeps track of the items that are registered with this container. Historically we used to\n * do this with a `ContentChildren` query, however queries don't handle transplanted views very\n * well which means that we can't handle cases like dragging the headers of a `mat-table`\n * correctly. What we do instead is to have the items register themselves with the container\n * and then we sort them based on their position in the DOM.\n */\n this._unsortedItems = new Set();\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assertElementNode(element.nativeElement, 'cdkDropList');\n }\n this._dropListRef = dragDrop.createDropList(element);\n this._dropListRef.data = this;\n if (config) {\n this._assignDefaults(config);\n }\n this._dropListRef.enterPredicate = (drag, drop) => {\n return this.enterPredicate(drag.data, drop.data);\n };\n this._dropListRef.sortPredicate = (index, drag, drop) => {\n return this.sortPredicate(index, drag.data, drop.data);\n };\n this._setupInputSyncSubscription(this._dropListRef);\n this._handleEvents(this._dropListRef);\n CdkDropList._dropLists.push(this);\n if (_group) {\n _group._items.add(this);\n }\n }\n /** Registers an items with the drop list. */\n addItem(item) {\n this._unsortedItems.add(item);\n if (this._dropListRef.isDragging()) {\n this._syncItemsWithRef();\n }\n }\n /** Removes an item from the drop list. */\n removeItem(item) {\n this._unsortedItems.delete(item);\n if (this._dropListRef.isDragging()) {\n this._syncItemsWithRef();\n }\n }\n /** Gets the registered items in the list, sorted by their position in the DOM. */\n getSortedItems() {\n return Array.from(this._unsortedItems).sort((a, b) => {\n const documentPosition = a._dragRef\n .getVisibleElement()\n .compareDocumentPosition(b._dragRef.getVisibleElement());\n // `compareDocumentPosition` returns a bitmask so we have to use a bitwise operator.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // tslint:disable-next-line:no-bitwise\n return documentPosition & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n });\n }\n ngOnDestroy() {\n const index = CdkDropList._dropLists.indexOf(this);\n if (index > -1) {\n CdkDropList._dropLists.splice(index, 1);\n }\n if (this._group) {\n this._group._items.delete(this);\n }\n this._unsortedItems.clear();\n this._dropListRef.dispose();\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Syncs the inputs of the CdkDropList with the options of the underlying DropListRef. */\n _setupInputSyncSubscription(ref) {\n if (this._dir) {\n this._dir.change\n .pipe(startWith(this._dir.value), takeUntil(this._destroyed))\n .subscribe(value => ref.withDirection(value));\n }\n ref.beforeStarted.subscribe(() => {\n const siblings = coerceArray(this.connectedTo).map(drop => {\n if (typeof drop === 'string') {\n const correspondingDropList = CdkDropList._dropLists.find(list => list.id === drop);\n if (!correspondingDropList && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n console.warn(`CdkDropList could not find connected drop list with id \"${drop}\"`);\n }\n return correspondingDropList;\n }\n return drop;\n });\n if (this._group) {\n this._group._items.forEach(drop => {\n if (siblings.indexOf(drop) === -1) {\n siblings.push(drop);\n }\n });\n }\n // Note that we resolve the scrollable parents here so that we delay the resolution\n // as long as possible, ensuring that the element is in its final place in the DOM.\n if (!this._scrollableParentsResolved) {\n const scrollableParents = this._scrollDispatcher\n .getAncestorScrollContainers(this.element)\n .map(scrollable => scrollable.getElementRef().nativeElement);\n this._dropListRef.withScrollableParents(scrollableParents);\n // Only do this once since it involves traversing the DOM and the parents\n // shouldn't be able to change without the drop list being destroyed.\n this._scrollableParentsResolved = true;\n }\n ref.disabled = this.disabled;\n ref.lockAxis = this.lockAxis;\n ref.sortingDisabled = this.sortingDisabled;\n ref.autoScrollDisabled = this.autoScrollDisabled;\n ref.autoScrollStep = coerceNumberProperty(this.autoScrollStep, 2);\n ref\n .connectedTo(siblings.filter(drop => drop && drop !== this).map(list => list._dropListRef))\n .withOrientation(this.orientation);\n });\n }\n /** Handles events from the underlying DropListRef. */\n _handleEvents(ref) {\n ref.beforeStarted.subscribe(() => {\n this._syncItemsWithRef();\n this._changeDetectorRef.markForCheck();\n });\n ref.entered.subscribe(event => {\n this.entered.emit({\n container: this,\n item: event.item.data,\n currentIndex: event.currentIndex,\n });\n });\n ref.exited.subscribe(event => {\n this.exited.emit({\n container: this,\n item: event.item.data,\n });\n this._changeDetectorRef.markForCheck();\n });\n ref.sorted.subscribe(event => {\n this.sorted.emit({\n previousIndex: event.previousIndex,\n currentIndex: event.currentIndex,\n container: this,\n item: event.item.data,\n });\n });\n ref.dropped.subscribe(dropEvent => {\n this.dropped.emit({\n previousIndex: dropEvent.previousIndex,\n currentIndex: dropEvent.currentIndex,\n previousContainer: dropEvent.previousContainer.data,\n container: dropEvent.container.data,\n item: dropEvent.item.data,\n isPointerOverContainer: dropEvent.isPointerOverContainer,\n distance: dropEvent.distance,\n dropPoint: dropEvent.dropPoint,\n event: dropEvent.event,\n });\n // Mark for check since all of these events run outside of change\n // detection and we're not guaranteed for something else to have triggered it.\n this._changeDetectorRef.markForCheck();\n });\n merge(ref.receivingStarted, ref.receivingStopped).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n /** Assigns the default input values based on a provided config object. */\n _assignDefaults(config) {\n const { lockAxis, draggingDisabled, sortingDisabled, listAutoScrollDisabled, listOrientation } = config;\n this.disabled = draggingDisabled == null ? false : draggingDisabled;\n this.sortingDisabled = sortingDisabled == null ? false : sortingDisabled;\n this.autoScrollDisabled = listAutoScrollDisabled == null ? false : listAutoScrollDisabled;\n this.orientation = listOrientation || 'vertical';\n if (lockAxis) {\n this.lockAxis = lockAxis;\n }\n }\n /** Syncs up the registered drag items with underlying drop list ref. */\n _syncItemsWithRef() {\n this._dropListRef.withItems(this.getSortedItems().map(item => item._dragRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDropList, deps: [{ token: i0.ElementRef }, { token: DragDrop }, { token: i0.ChangeDetectorRef }, { token: i1.ScrollDispatcher }, { token: i1$1.Directionality, optional: true }, { token: CDK_DROP_LIST_GROUP, optional: true, skipSelf: true }, { token: CDK_DRAG_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"17.2.0\", type: CdkDropList, isStandalone: true, selector: \"[cdkDropList], cdk-drop-list\", inputs: { connectedTo: [\"cdkDropListConnectedTo\", \"connectedTo\"], data: [\"cdkDropListData\", \"data\"], orientation: [\"cdkDropListOrientation\", \"orientation\"], id: \"id\", lockAxis: [\"cdkDropListLockAxis\", \"lockAxis\"], disabled: [\"cdkDropListDisabled\", \"disabled\", booleanAttribute], sortingDisabled: [\"cdkDropListSortingDisabled\", \"sortingDisabled\", booleanAttribute], enterPredicate: [\"cdkDropListEnterPredicate\", \"enterPredicate\"], sortPredicate: [\"cdkDropListSortPredicate\", \"sortPredicate\"], autoScrollDisabled: [\"cdkDropListAutoScrollDisabled\", \"autoScrollDisabled\", booleanAttribute], autoScrollStep: [\"cdkDropListAutoScrollStep\", \"autoScrollStep\"] }, outputs: { dropped: \"cdkDropListDropped\", entered: \"cdkDropListEntered\", exited: \"cdkDropListExited\", sorted: \"cdkDropListSorted\" }, host: { properties: { \"attr.id\": \"id\", \"class.cdk-drop-list-disabled\": \"disabled\", \"class.cdk-drop-list-dragging\": \"_dropListRef.isDragging()\", \"class.cdk-drop-list-receiving\": \"_dropListRef.isReceiving()\" }, classAttribute: \"cdk-drop-list\" }, providers: [\n // Prevent child drop lists from picking up the same group as their parent.\n { provide: CDK_DROP_LIST_GROUP, useValue: undefined },\n { provide: CDK_DROP_LIST, useExisting: CdkDropList },\n ], exportAs: [\"cdkDropList\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDropList, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkDropList], cdk-drop-list',\n exportAs: 'cdkDropList',\n standalone: true,\n providers: [\n // Prevent child drop lists from picking up the same group as their parent.\n { provide: CDK_DROP_LIST_GROUP, useValue: undefined },\n { provide: CDK_DROP_LIST, useExisting: CdkDropList },\n ],\n host: {\n 'class': 'cdk-drop-list',\n '[attr.id]': 'id',\n '[class.cdk-drop-list-disabled]': 'disabled',\n '[class.cdk-drop-list-dragging]': '_dropListRef.isDragging()',\n '[class.cdk-drop-list-receiving]': '_dropListRef.isReceiving()',\n },\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: DragDrop }, { type: i0.ChangeDetectorRef }, { type: i1.ScrollDispatcher }, { type: i1$1.Directionality, decorators: [{\n type: Optional\n }] }, { type: CdkDropListGroup, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CDK_DROP_LIST_GROUP]\n }, {\n type: SkipSelf\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CDK_DRAG_CONFIG]\n }] }], propDecorators: { connectedTo: [{\n type: Input,\n args: ['cdkDropListConnectedTo']\n }], data: [{\n type: Input,\n args: ['cdkDropListData']\n }], orientation: [{\n type: Input,\n args: ['cdkDropListOrientation']\n }], id: [{\n type: Input\n }], lockAxis: [{\n type: Input,\n args: ['cdkDropListLockAxis']\n }], disabled: [{\n type: Input,\n args: [{ alias: 'cdkDropListDisabled', transform: booleanAttribute }]\n }], sortingDisabled: [{\n type: Input,\n args: [{ alias: 'cdkDropListSortingDisabled', transform: booleanAttribute }]\n }], enterPredicate: [{\n type: Input,\n args: ['cdkDropListEnterPredicate']\n }], sortPredicate: [{\n type: Input,\n args: ['cdkDropListSortPredicate']\n }], autoScrollDisabled: [{\n type: Input,\n args: [{ alias: 'cdkDropListAutoScrollDisabled', transform: booleanAttribute }]\n }], autoScrollStep: [{\n type: Input,\n args: ['cdkDropListAutoScrollStep']\n }], dropped: [{\n type: Output,\n args: ['cdkDropListDropped']\n }], entered: [{\n type: Output,\n args: ['cdkDropListEntered']\n }], exited: [{\n type: Output,\n args: ['cdkDropListExited']\n }], sorted: [{\n type: Output,\n args: ['cdkDropListSorted']\n }] } });\n\n/**\n * Injection token that can be used to reference instances of `CdkDragPreview`. It serves as\n * alternative token to the actual `CdkDragPreview` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DRAG_PREVIEW = new InjectionToken('CdkDragPreview');\n/**\n * Element that will be used as a template for the preview\n * of a CdkDrag when it is being dragged.\n */\nclass CdkDragPreview {\n constructor(templateRef) {\n this.templateRef = templateRef;\n this._drag = inject(CDK_DRAG_PARENT, { optional: true });\n /** Whether the preview should preserve the same size as the item that is being dragged. */\n this.matchSize = false;\n this._drag?._setPreviewTemplate(this);\n }\n ngOnDestroy() {\n this._drag?._resetPreviewTemplate(this);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDragPreview, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"17.2.0\", type: CdkDragPreview, isStandalone: true, selector: \"ng-template[cdkDragPreview]\", inputs: { data: \"data\", matchSize: [\"matchSize\", \"matchSize\", booleanAttribute] }, providers: [{ provide: CDK_DRAG_PREVIEW, useExisting: CdkDragPreview }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDragPreview, decorators: [{\n type: Directive,\n args: [{\n selector: 'ng-template[cdkDragPreview]',\n standalone: true,\n providers: [{ provide: CDK_DRAG_PREVIEW, useExisting: CdkDragPreview }],\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { data: [{\n type: Input\n }], matchSize: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }] } });\n\n/**\n * Injection token that can be used to reference instances of `CdkDragPlaceholder`. It serves as\n * alternative token to the actual `CdkDragPlaceholder` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst CDK_DRAG_PLACEHOLDER = new InjectionToken('CdkDragPlaceholder');\n/**\n * Element that will be used as a template for the placeholder of a CdkDrag when\n * it is being dragged. The placeholder is displayed in place of the element being dragged.\n */\nclass CdkDragPlaceholder {\n constructor(templateRef) {\n this.templateRef = templateRef;\n this._drag = inject(CDK_DRAG_PARENT, { optional: true });\n this._drag?._setPlaceholderTemplate(this);\n }\n ngOnDestroy() {\n this._drag?._resetPlaceholderTemplate(this);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDragPlaceholder, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: CdkDragPlaceholder, isStandalone: true, selector: \"ng-template[cdkDragPlaceholder]\", inputs: { data: \"data\" }, providers: [{ provide: CDK_DRAG_PLACEHOLDER, useExisting: CdkDragPlaceholder }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkDragPlaceholder, decorators: [{\n type: Directive,\n args: [{\n selector: 'ng-template[cdkDragPlaceholder]',\n standalone: true,\n providers: [{ provide: CDK_DRAG_PLACEHOLDER, useExisting: CdkDragPlaceholder }],\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { data: [{\n type: Input\n }] } });\n\nconst DRAG_DROP_DIRECTIVES = [\n CdkDropList,\n CdkDropListGroup,\n CdkDrag,\n CdkDragHandle,\n CdkDragPreview,\n CdkDragPlaceholder,\n];\nclass DragDropModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: DragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.2.0\", ngImport: i0, type: DragDropModule, imports: [CdkDropList,\n CdkDropListGroup,\n CdkDrag,\n CdkDragHandle,\n CdkDragPreview,\n CdkDragPlaceholder], exports: [CdkScrollableModule, CdkDropList,\n CdkDropListGroup,\n CdkDrag,\n CdkDragHandle,\n CdkDragPreview,\n CdkDragPlaceholder] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: DragDropModule, providers: [DragDrop], imports: [CdkScrollableModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: DragDropModule, decorators: [{\n type: NgModule,\n args: [{\n imports: DRAG_DROP_DIRECTIVES,\n exports: [CdkScrollableModule, ...DRAG_DROP_DIRECTIVES],\n providers: [DragDrop],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CDK_DRAG_CONFIG, CDK_DRAG_HANDLE, CDK_DRAG_PARENT, CDK_DRAG_PLACEHOLDER, CDK_DRAG_PREVIEW, CDK_DROP_LIST, CDK_DROP_LIST_GROUP, CdkDrag, CdkDragHandle, CdkDragPlaceholder, CdkDragPreview, CdkDropList, CdkDropListGroup, DragDrop, DragDropModule, DragDropRegistry, DragRef, DropListRef, copyArrayItem, moveItemInArray, transferArrayItem };\n","import { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, APP_ID, Injectable, Inject, QueryList, isSignal, effect, booleanAttribute, Directive, Input, InjectionToken, Optional, EventEmitter, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/platform';\nimport { Platform, _getFocusedElementPierceShadowDom, normalizePassiveListenerOptions, _getEventTarget, _getShadowRoot } from '@angular/cdk/platform';\nimport { Subject, Subscription, BehaviorSubject, of } from 'rxjs';\nimport { hasModifierKey, A, Z, ZERO, NINE, PAGE_DOWN, PAGE_UP, END, HOME, LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW, TAB, ALT, CONTROL, MAC_META, META, SHIFT } from '@angular/cdk/keycodes';\nimport { tap, debounceTime, filter, map, take, skip, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport * as i1$1 from '@angular/cdk/observers';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { coerceElement } from '@angular/cdk/coercion';\nimport { BreakpointObserver } from '@angular/cdk/layout';\n\n/** IDs are delimited by an empty space, as per the spec. */\nconst ID_DELIMITER = ' ';\n/**\n * Adds the given ID to the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction addAriaReferencedId(el, attr, id) {\n const ids = getAriaReferenceIds(el, attr);\n id = id.trim();\n if (ids.some(existingId => existingId.trim() === id)) {\n return;\n }\n ids.push(id);\n el.setAttribute(attr, ids.join(ID_DELIMITER));\n}\n/**\n * Removes the given ID from the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction removeAriaReferencedId(el, attr, id) {\n const ids = getAriaReferenceIds(el, attr);\n id = id.trim();\n const filteredIds = ids.filter(val => val !== id);\n if (filteredIds.length) {\n el.setAttribute(attr, filteredIds.join(ID_DELIMITER));\n }\n else {\n el.removeAttribute(attr);\n }\n}\n/**\n * Gets the list of IDs referenced by the given ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction getAriaReferenceIds(el, attr) {\n // Get string array of all individual ids (whitespace delimited) in the attribute value\n const attrValue = el.getAttribute(attr);\n return attrValue?.match(/\\S+/g) ?? [];\n}\n\n/**\n * ID used for the body container where all messages are appended.\n * @deprecated No longer being used. To be removed.\n * @breaking-change 14.0.0\n */\nconst MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';\n/**\n * ID prefix used for each created message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nconst CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';\n/**\n * Attribute given to each host element that is described by a message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nconst CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';\n/** Global incremental identifier for each registered message element. */\nlet nextId = 0;\n/**\n * Utility that creates visually hidden elements with a message content. Useful for elements that\n * want to use aria-describedby to further describe themselves without adding additional visual\n * content.\n */\nclass AriaDescriber {\n constructor(_document, \n /**\n * @deprecated To be turned into a required parameter.\n * @breaking-change 14.0.0\n */\n _platform) {\n this._platform = _platform;\n /** Map of all registered message elements that have been placed into the document. */\n this._messageRegistry = new Map();\n /** Container for all registered messages. */\n this._messagesContainer = null;\n /** Unique ID for the service. */\n this._id = `${nextId++}`;\n this._document = _document;\n this._id = inject(APP_ID) + '-' + nextId++;\n }\n describe(hostElement, message, role) {\n if (!this._canBeDescribed(hostElement, message)) {\n return;\n }\n const key = getKey(message, role);\n if (typeof message !== 'string') {\n // We need to ensure that the element has an ID.\n setMessageId(message, this._id);\n this._messageRegistry.set(key, { messageElement: message, referenceCount: 0 });\n }\n else if (!this._messageRegistry.has(key)) {\n this._createMessageElement(message, role);\n }\n if (!this._isElementDescribedByMessage(hostElement, key)) {\n this._addMessageReference(hostElement, key);\n }\n }\n removeDescription(hostElement, message, role) {\n if (!message || !this._isElementNode(hostElement)) {\n return;\n }\n const key = getKey(message, role);\n if (this._isElementDescribedByMessage(hostElement, key)) {\n this._removeMessageReference(hostElement, key);\n }\n // If the message is a string, it means that it's one that we created for the\n // consumer so we can remove it safely, otherwise we should leave it in place.\n if (typeof message === 'string') {\n const registeredMessage = this._messageRegistry.get(key);\n if (registeredMessage && registeredMessage.referenceCount === 0) {\n this._deleteMessageElement(key);\n }\n }\n if (this._messagesContainer?.childNodes.length === 0) {\n this._messagesContainer.remove();\n this._messagesContainer = null;\n }\n }\n /** Unregisters all created message elements and removes the message container. */\n ngOnDestroy() {\n const describedElements = this._document.querySelectorAll(`[${CDK_DESCRIBEDBY_HOST_ATTRIBUTE}=\"${this._id}\"]`);\n for (let i = 0; i < describedElements.length; i++) {\n this._removeCdkDescribedByReferenceIds(describedElements[i]);\n describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n this._messagesContainer?.remove();\n this._messagesContainer = null;\n this._messageRegistry.clear();\n }\n /**\n * Creates a new element in the visually hidden message container element with the message\n * as its content and adds it to the message registry.\n */\n _createMessageElement(message, role) {\n const messageElement = this._document.createElement('div');\n setMessageId(messageElement, this._id);\n messageElement.textContent = message;\n if (role) {\n messageElement.setAttribute('role', role);\n }\n this._createMessagesContainer();\n this._messagesContainer.appendChild(messageElement);\n this._messageRegistry.set(getKey(message, role), { messageElement, referenceCount: 0 });\n }\n /** Deletes the message element from the global messages container. */\n _deleteMessageElement(key) {\n this._messageRegistry.get(key)?.messageElement?.remove();\n this._messageRegistry.delete(key);\n }\n /** Creates the global container for all aria-describedby messages. */\n _createMessagesContainer() {\n if (this._messagesContainer) {\n return;\n }\n const containerClassName = 'cdk-describedby-message-container';\n const serverContainers = this._document.querySelectorAll(`.${containerClassName}[platform=\"server\"]`);\n for (let i = 0; i < serverContainers.length; i++) {\n // When going from the server to the client, we may end up in a situation where there's\n // already a container on the page, but we don't have a reference to it. Clear the\n // old container so we don't get duplicates. Doing this, instead of emptying the previous\n // container, should be slightly faster.\n serverContainers[i].remove();\n }\n const messagesContainer = this._document.createElement('div');\n // We add `visibility: hidden` in order to prevent text in this container from\n // being searchable by the browser's Ctrl + F functionality.\n // Screen-readers will still read the description for elements with aria-describedby even\n // when the description element is not visible.\n messagesContainer.style.visibility = 'hidden';\n // Even though we use `visibility: hidden`, we still apply `cdk-visually-hidden` so that\n // the description element doesn't impact page layout.\n messagesContainer.classList.add(containerClassName);\n messagesContainer.classList.add('cdk-visually-hidden');\n // @breaking-change 14.0.0 Remove null check for `_platform`.\n if (this._platform && !this._platform.isBrowser) {\n messagesContainer.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(messagesContainer);\n this._messagesContainer = messagesContainer;\n }\n /** Removes all cdk-describedby messages that are hosted through the element. */\n _removeCdkDescribedByReferenceIds(element) {\n // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX\n const originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby').filter(id => id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0);\n element.setAttribute('aria-describedby', originalReferenceIds.join(' '));\n }\n /**\n * Adds a message reference to the element using aria-describedby and increments the registered\n * message's reference count.\n */\n _addMessageReference(element, key) {\n const registeredMessage = this._messageRegistry.get(key);\n // Add the aria-describedby reference and set the\n // describedby_host attribute to mark the element.\n addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, this._id);\n registeredMessage.referenceCount++;\n }\n /**\n * Removes a message reference from the element using aria-describedby\n * and decrements the registered message's reference count.\n */\n _removeMessageReference(element, key) {\n const registeredMessage = this._messageRegistry.get(key);\n registeredMessage.referenceCount--;\n removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n /** Returns true if the element has been described by the provided message ID. */\n _isElementDescribedByMessage(element, key) {\n const referenceIds = getAriaReferenceIds(element, 'aria-describedby');\n const registeredMessage = this._messageRegistry.get(key);\n const messageId = registeredMessage && registeredMessage.messageElement.id;\n return !!messageId && referenceIds.indexOf(messageId) != -1;\n }\n /** Determines whether a message can be described on a particular element. */\n _canBeDescribed(element, message) {\n if (!this._isElementNode(element)) {\n return false;\n }\n if (message && typeof message === 'object') {\n // We'd have to make some assumptions about the description element's text, if the consumer\n // passed in an element. Assume that if an element is passed in, the consumer has verified\n // that it can be used as a description.\n return true;\n }\n const trimmedMessage = message == null ? '' : `${message}`.trim();\n const ariaLabel = element.getAttribute('aria-label');\n // We shouldn't set descriptions if they're exactly the same as the `aria-label` of the\n // element, because screen readers will end up reading out the same text twice in a row.\n return trimmedMessage ? !ariaLabel || ariaLabel.trim() !== trimmedMessage : false;\n }\n /** Checks whether a node is an Element node. */\n _isElementNode(element) {\n return element.nodeType === this._document.ELEMENT_NODE;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: AriaDescriber, deps: [{ token: DOCUMENT }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: AriaDescriber, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: AriaDescriber, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1.Platform }] });\n/** Gets a key that can be used to look messages up in the registry. */\nfunction getKey(message, role) {\n return typeof message === 'string' ? `${role || ''}/${message}` : message;\n}\n/** Assigns a unique ID to an element, if it doesn't have one already. */\nfunction setMessageId(element, serviceId) {\n if (!element.id) {\n element.id = `${CDK_DESCRIBEDBY_ID_PREFIX}-${serviceId}-${nextId++}`;\n }\n}\n\n/**\n * This class manages keyboard events for selectable lists. If you pass it a query list\n * of items, it will set the active item correctly when arrow events occur.\n */\nclass ListKeyManager {\n constructor(_items, injector) {\n this._items = _items;\n this._activeItemIndex = -1;\n this._activeItem = null;\n this._wrap = false;\n this._letterKeyStream = new Subject();\n this._typeaheadSubscription = Subscription.EMPTY;\n this._vertical = true;\n this._allowedModifierKeys = [];\n this._homeAndEnd = false;\n this._pageUpAndDown = { enabled: false, delta: 10 };\n /**\n * Predicate function that can be used to check whether an item should be skipped\n * by the key manager. By default, disabled items are skipped.\n */\n this._skipPredicateFn = (item) => item.disabled;\n // Buffer for the letters that the user has pressed when the typeahead option is turned on.\n this._pressedLetters = [];\n /**\n * Stream that emits any time the TAB key is pressed, so components can react\n * when focus is shifted off of the list.\n */\n this.tabOut = new Subject();\n /** Stream that emits whenever the active item of the list manager changes. */\n this.change = new Subject();\n // We allow for the items to be an array because, in some cases, the consumer may\n // not have access to a QueryList of the items they want to manage (e.g. when the\n // items aren't being collected via `ViewChildren` or `ContentChildren`).\n if (_items instanceof QueryList) {\n this._itemChangesSubscription = _items.changes.subscribe((newItems) => this._itemsChanged(newItems.toArray()));\n }\n else if (isSignal(_items)) {\n if (!injector && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw new Error('ListKeyManager constructed with a signal must receive an injector');\n }\n this._effectRef = effect(() => this._itemsChanged(_items()), { injector });\n }\n }\n /**\n * Sets the predicate function that determines which items should be skipped by the\n * list key manager.\n * @param predicate Function that determines whether the given item should be skipped.\n */\n skipPredicate(predicate) {\n this._skipPredicateFn = predicate;\n return this;\n }\n /**\n * Configures wrapping mode, which determines whether the active item will wrap to\n * the other end of list when there are no more items in the given direction.\n * @param shouldWrap Whether the list should wrap when reaching the end.\n */\n withWrap(shouldWrap = true) {\n this._wrap = shouldWrap;\n return this;\n }\n /**\n * Configures whether the key manager should be able to move the selection vertically.\n * @param enabled Whether vertical selection should be enabled.\n */\n withVerticalOrientation(enabled = true) {\n this._vertical = enabled;\n return this;\n }\n /**\n * Configures the key manager to move the selection horizontally.\n * Passing in `null` will disable horizontal movement.\n * @param direction Direction in which the selection can be moved.\n */\n withHorizontalOrientation(direction) {\n this._horizontal = direction;\n return this;\n }\n /**\n * Modifier keys which are allowed to be held down and whose default actions will be prevented\n * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.\n */\n withAllowedModifierKeys(keys) {\n this._allowedModifierKeys = keys;\n return this;\n }\n /**\n * Turns on typeahead mode which allows users to set the active item by typing.\n * @param debounceInterval Time to wait after the last keystroke before setting the active item.\n */\n withTypeAhead(debounceInterval = 200) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const items = this._getItemsArray();\n if (items.length > 0 && items.some(item => typeof item.getLabel !== 'function')) {\n throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');\n }\n }\n this._typeaheadSubscription.unsubscribe();\n // Debounce the presses of non-navigational keys, collect the ones that correspond to letters\n // and convert those letters back into a string. Afterwards find the first item that starts\n // with that string and select it.\n this._typeaheadSubscription = this._letterKeyStream\n .pipe(tap(letter => this._pressedLetters.push(letter)), debounceTime(debounceInterval), filter(() => this._pressedLetters.length > 0), map(() => this._pressedLetters.join('')))\n .subscribe(inputString => {\n const items = this._getItemsArray();\n // Start at 1 because we want to start searching at the item immediately\n // following the current active item.\n for (let i = 1; i < items.length + 1; i++) {\n const index = (this._activeItemIndex + i) % items.length;\n const item = items[index];\n if (!this._skipPredicateFn(item) &&\n item.getLabel().toUpperCase().trim().indexOf(inputString) === 0) {\n this.setActiveItem(index);\n break;\n }\n }\n this._pressedLetters = [];\n });\n return this;\n }\n /** Cancels the current typeahead sequence. */\n cancelTypeahead() {\n this._pressedLetters = [];\n return this;\n }\n /**\n * Configures the key manager to activate the first and last items\n * respectively when the Home or End key is pressed.\n * @param enabled Whether pressing the Home or End key activates the first/last item.\n */\n withHomeAndEnd(enabled = true) {\n this._homeAndEnd = enabled;\n return this;\n }\n /**\n * Configures the key manager to activate every 10th, configured or first/last element in up/down direction\n * respectively when the Page-Up or Page-Down key is pressed.\n * @param enabled Whether pressing the Page-Up or Page-Down key activates the first/last item.\n * @param delta Whether pressing the Home or End key activates the first/last item.\n */\n withPageUpDown(enabled = true, delta = 10) {\n this._pageUpAndDown = { enabled, delta };\n return this;\n }\n setActiveItem(item) {\n const previousActiveItem = this._activeItem;\n this.updateActiveItem(item);\n if (this._activeItem !== previousActiveItem) {\n this.change.next(this._activeItemIndex);\n }\n }\n /**\n * Sets the active item depending on the key event passed in.\n * @param event Keyboard event to be used for determining which element should be active.\n */\n onKeydown(event) {\n const keyCode = event.keyCode;\n const modifiers = ['altKey', 'ctrlKey', 'metaKey', 'shiftKey'];\n const isModifierAllowed = modifiers.every(modifier => {\n return !event[modifier] || this._allowedModifierKeys.indexOf(modifier) > -1;\n });\n switch (keyCode) {\n case TAB:\n this.tabOut.next();\n return;\n case DOWN_ARROW:\n if (this._vertical && isModifierAllowed) {\n this.setNextItemActive();\n break;\n }\n else {\n return;\n }\n case UP_ARROW:\n if (this._vertical && isModifierAllowed) {\n this.setPreviousItemActive();\n break;\n }\n else {\n return;\n }\n case RIGHT_ARROW:\n if (this._horizontal && isModifierAllowed) {\n this._horizontal === 'rtl' ? this.setPreviousItemActive() : this.setNextItemActive();\n break;\n }\n else {\n return;\n }\n case LEFT_ARROW:\n if (this._horizontal && isModifierAllowed) {\n this._horizontal === 'rtl' ? this.setNextItemActive() : this.setPreviousItemActive();\n break;\n }\n else {\n return;\n }\n case HOME:\n if (this._homeAndEnd && isModifierAllowed) {\n this.setFirstItemActive();\n break;\n }\n else {\n return;\n }\n case END:\n if (this._homeAndEnd && isModifierAllowed) {\n this.setLastItemActive();\n break;\n }\n else {\n return;\n }\n case PAGE_UP:\n if (this._pageUpAndDown.enabled && isModifierAllowed) {\n const targetIndex = this._activeItemIndex - this._pageUpAndDown.delta;\n this._setActiveItemByIndex(targetIndex > 0 ? targetIndex : 0, 1);\n break;\n }\n else {\n return;\n }\n case PAGE_DOWN:\n if (this._pageUpAndDown.enabled && isModifierAllowed) {\n const targetIndex = this._activeItemIndex + this._pageUpAndDown.delta;\n const itemsLength = this._getItemsArray().length;\n this._setActiveItemByIndex(targetIndex < itemsLength ? targetIndex : itemsLength - 1, -1);\n break;\n }\n else {\n return;\n }\n default:\n if (isModifierAllowed || hasModifierKey(event, 'shiftKey')) {\n // Attempt to use the `event.key` which also maps it to the user's keyboard language,\n // otherwise fall back to resolving alphanumeric characters via the keyCode.\n if (event.key && event.key.length === 1) {\n this._letterKeyStream.next(event.key.toLocaleUpperCase());\n }\n else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {\n this._letterKeyStream.next(String.fromCharCode(keyCode));\n }\n }\n // Note that we return here, in order to avoid preventing\n // the default action of non-navigational keys.\n return;\n }\n this._pressedLetters = [];\n event.preventDefault();\n }\n /** Index of the currently active item. */\n get activeItemIndex() {\n return this._activeItemIndex;\n }\n /** The active item. */\n get activeItem() {\n return this._activeItem;\n }\n /** Gets whether the user is currently typing into the manager using the typeahead feature. */\n isTyping() {\n return this._pressedLetters.length > 0;\n }\n /** Sets the active item to the first enabled item in the list. */\n setFirstItemActive() {\n this._setActiveItemByIndex(0, 1);\n }\n /** Sets the active item to the last enabled item in the list. */\n setLastItemActive() {\n this._setActiveItemByIndex(this._getItemsArray().length - 1, -1);\n }\n /** Sets the active item to the next enabled item in the list. */\n setNextItemActive() {\n this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);\n }\n /** Sets the active item to a previous enabled item in the list. */\n setPreviousItemActive() {\n this._activeItemIndex < 0 && this._wrap\n ? this.setLastItemActive()\n : this._setActiveItemByDelta(-1);\n }\n updateActiveItem(item) {\n const itemArray = this._getItemsArray();\n const index = typeof item === 'number' ? item : itemArray.indexOf(item);\n const activeItem = itemArray[index];\n // Explicitly check for `null` and `undefined` because other falsy values are valid.\n this._activeItem = activeItem == null ? null : activeItem;\n this._activeItemIndex = index;\n }\n /** Cleans up the key manager. */\n destroy() {\n this._typeaheadSubscription.unsubscribe();\n this._itemChangesSubscription?.unsubscribe();\n this._effectRef?.destroy();\n this._letterKeyStream.complete();\n this.tabOut.complete();\n this.change.complete();\n this._pressedLetters = [];\n }\n /**\n * This method sets the active item, given a list of items and the delta between the\n * currently active item and the new active item. It will calculate differently\n * depending on whether wrap mode is turned on.\n */\n _setActiveItemByDelta(delta) {\n this._wrap ? this._setActiveInWrapMode(delta) : this._setActiveInDefaultMode(delta);\n }\n /**\n * Sets the active item properly given \"wrap\" mode. In other words, it will continue to move\n * down the list until it finds an item that is not disabled, and it will wrap if it\n * encounters either end of the list.\n */\n _setActiveInWrapMode(delta) {\n const items = this._getItemsArray();\n for (let i = 1; i <= items.length; i++) {\n const index = (this._activeItemIndex + delta * i + items.length) % items.length;\n const item = items[index];\n if (!this._skipPredicateFn(item)) {\n this.setActiveItem(index);\n return;\n }\n }\n }\n /**\n * Sets the active item properly given the default mode. In other words, it will\n * continue to move down the list until it finds an item that is not disabled. If\n * it encounters either end of the list, it will stop and not wrap.\n */\n _setActiveInDefaultMode(delta) {\n this._setActiveItemByIndex(this._activeItemIndex + delta, delta);\n }\n /**\n * Sets the active item to the first enabled item starting at the index specified. If the\n * item is disabled, it will move in the fallbackDelta direction until it either\n * finds an enabled item or encounters the end of the list.\n */\n _setActiveItemByIndex(index, fallbackDelta) {\n const items = this._getItemsArray();\n if (!items[index]) {\n return;\n }\n while (this._skipPredicateFn(items[index])) {\n index += fallbackDelta;\n if (!items[index]) {\n return;\n }\n }\n this.setActiveItem(index);\n }\n /** Returns the items as an array. */\n _getItemsArray() {\n if (isSignal(this._items)) {\n return this._items();\n }\n return this._items instanceof QueryList ? this._items.toArray() : this._items;\n }\n /** Callback for when the items have changed. */\n _itemsChanged(newItems) {\n if (this._activeItem) {\n const newIndex = newItems.indexOf(this._activeItem);\n if (newIndex > -1 && newIndex !== this._activeItemIndex) {\n this._activeItemIndex = newIndex;\n }\n }\n }\n}\n\nclass ActiveDescendantKeyManager extends ListKeyManager {\n setActiveItem(index) {\n if (this.activeItem) {\n this.activeItem.setInactiveStyles();\n }\n super.setActiveItem(index);\n if (this.activeItem) {\n this.activeItem.setActiveStyles();\n }\n }\n}\n\nclass FocusKeyManager extends ListKeyManager {\n constructor() {\n super(...arguments);\n this._origin = 'program';\n }\n /**\n * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls.\n * @param origin Focus origin to be used when focusing items.\n */\n setFocusOrigin(origin) {\n this._origin = origin;\n return this;\n }\n setActiveItem(item) {\n super.setActiveItem(item);\n if (this.activeItem) {\n this.activeItem.focus(this._origin);\n }\n }\n}\n\n/**\n * Configuration for the isFocusable method.\n */\nclass IsFocusableConfig {\n constructor() {\n /**\n * Whether to count an element as focusable even if it is not currently visible.\n */\n this.ignoreVisibility = false;\n }\n}\n// The InteractivityChecker leans heavily on the ally.js accessibility utilities.\n// Methods like `isTabbable` are only covering specific edge-cases for the browsers which are\n// supported.\n/**\n * Utility for checking the interactivity of an element, such as whether it is focusable or\n * tabbable.\n */\nclass InteractivityChecker {\n constructor(_platform) {\n this._platform = _platform;\n }\n /**\n * Gets whether an element is disabled.\n *\n * @param element Element to be checked.\n * @returns Whether the element is disabled.\n */\n isDisabled(element) {\n // This does not capture some cases, such as a non-form control with a disabled attribute or\n // a form control inside of a disabled form, but should capture the most common cases.\n return element.hasAttribute('disabled');\n }\n /**\n * Gets whether an element is visible for the purposes of interactivity.\n *\n * This will capture states like `display: none` and `visibility: hidden`, but not things like\n * being clipped by an `overflow: hidden` parent or being outside the viewport.\n *\n * @returns Whether the element is visible.\n */\n isVisible(element) {\n return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';\n }\n /**\n * Gets whether an element can be reached via Tab key.\n * Assumes that the element has already been checked with isFocusable.\n *\n * @param element Element to be checked.\n * @returns Whether the element is tabbable.\n */\n isTabbable(element) {\n // Nothing is tabbable on the server 😎\n if (!this._platform.isBrowser) {\n return false;\n }\n const frameElement = getFrameElement(getWindow(element));\n if (frameElement) {\n // Frame elements inherit their tabindex onto all child elements.\n if (getTabIndexValue(frameElement) === -1) {\n return false;\n }\n // Browsers disable tabbing to an element inside of an invisible frame.\n if (!this.isVisible(frameElement)) {\n return false;\n }\n }\n let nodeName = element.nodeName.toLowerCase();\n let tabIndexValue = getTabIndexValue(element);\n if (element.hasAttribute('contenteditable')) {\n return tabIndexValue !== -1;\n }\n if (nodeName === 'iframe' || nodeName === 'object') {\n // The frame or object's content may be tabbable depending on the content, but it's\n // not possibly to reliably detect the content of the frames. We always consider such\n // elements as non-tabbable.\n return false;\n }\n // In iOS, the browser only considers some specific elements as tabbable.\n if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {\n return false;\n }\n if (nodeName === 'audio') {\n // Audio elements without controls enabled are never tabbable, regardless\n // of the tabindex attribute explicitly being set.\n if (!element.hasAttribute('controls')) {\n return false;\n }\n // Audio elements with controls are by default tabbable unless the\n // tabindex attribute is set to `-1` explicitly.\n return tabIndexValue !== -1;\n }\n if (nodeName === 'video') {\n // For all video elements, if the tabindex attribute is set to `-1`, the video\n // is not tabbable. Note: We cannot rely on the default `HTMLElement.tabIndex`\n // property as that one is set to `-1` in Chrome, Edge and Safari v13.1. The\n // tabindex attribute is the source of truth here.\n if (tabIndexValue === -1) {\n return false;\n }\n // If the tabindex is explicitly set, and not `-1` (as per check before), the\n // video element is always tabbable (regardless of whether it has controls or not).\n if (tabIndexValue !== null) {\n return true;\n }\n // Otherwise (when no explicit tabindex is set), a video is only tabbable if it\n // has controls enabled. Firefox is special as videos are always tabbable regardless\n // of whether there are controls or not.\n return this._platform.FIREFOX || element.hasAttribute('controls');\n }\n return element.tabIndex >= 0;\n }\n /**\n * Gets whether an element can be focused by the user.\n *\n * @param element Element to be checked.\n * @param config The config object with options to customize this method's behavior\n * @returns Whether the element is focusable.\n */\n isFocusable(element, config) {\n // Perform checks in order of left to most expensive.\n // Again, naive approach that does not capture many edge cases and browser quirks.\n return (isPotentiallyFocusable(element) &&\n !this.isDisabled(element) &&\n (config?.ignoreVisibility || this.isVisible(element)));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: InteractivityChecker, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: InteractivityChecker, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: InteractivityChecker, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.Platform }] });\n/**\n * Returns the frame element from a window object. Since browsers like MS Edge throw errors if\n * the frameElement property is being accessed from a different host address, this property\n * should be accessed carefully.\n */\nfunction getFrameElement(window) {\n try {\n return window.frameElement;\n }\n catch {\n return null;\n }\n}\n/** Checks whether the specified element has any geometry / rectangles. */\nfunction hasGeometry(element) {\n // Use logic from jQuery to check for an invisible element.\n // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12\n return !!(element.offsetWidth ||\n element.offsetHeight ||\n (typeof element.getClientRects === 'function' && element.getClientRects().length));\n}\n/** Gets whether an element's */\nfunction isNativeFormElement(element) {\n let nodeName = element.nodeName.toLowerCase();\n return (nodeName === 'input' ||\n nodeName === 'select' ||\n nodeName === 'button' ||\n nodeName === 'textarea');\n}\n/** Gets whether an element is an ``. */\nfunction isHiddenInput(element) {\n return isInputElement(element) && element.type == 'hidden';\n}\n/** Gets whether an element is an anchor that has an href attribute. */\nfunction isAnchorWithHref(element) {\n return isAnchorElement(element) && element.hasAttribute('href');\n}\n/** Gets whether an element is an input element. */\nfunction isInputElement(element) {\n return element.nodeName.toLowerCase() == 'input';\n}\n/** Gets whether an element is an anchor element. */\nfunction isAnchorElement(element) {\n return element.nodeName.toLowerCase() == 'a';\n}\n/** Gets whether an element has a valid tabindex. */\nfunction hasValidTabIndex(element) {\n if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {\n return false;\n }\n let tabIndex = element.getAttribute('tabindex');\n return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));\n}\n/**\n * Returns the parsed tabindex from the element attributes instead of returning the\n * evaluated tabindex from the browsers defaults.\n */\nfunction getTabIndexValue(element) {\n if (!hasValidTabIndex(element)) {\n return null;\n }\n // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n const tabIndex = parseInt(element.getAttribute('tabindex') || '', 10);\n return isNaN(tabIndex) ? -1 : tabIndex;\n}\n/** Checks whether the specified element is potentially tabbable on iOS */\nfunction isPotentiallyTabbableIOS(element) {\n let nodeName = element.nodeName.toLowerCase();\n let inputType = nodeName === 'input' && element.type;\n return (inputType === 'text' ||\n inputType === 'password' ||\n nodeName === 'select' ||\n nodeName === 'textarea');\n}\n/**\n * Gets whether an element is potentially focusable without taking current visible/disabled state\n * into account.\n */\nfunction isPotentiallyFocusable(element) {\n // Inputs are potentially focusable *unless* they're type=\"hidden\".\n if (isHiddenInput(element)) {\n return false;\n }\n return (isNativeFormElement(element) ||\n isAnchorWithHref(element) ||\n element.hasAttribute('contenteditable') ||\n hasValidTabIndex(element));\n}\n/** Gets the parent window of a DOM node with regards of being inside of an iframe. */\nfunction getWindow(node) {\n // ownerDocument is null if `node` itself *is* a document.\n return (node.ownerDocument && node.ownerDocument.defaultView) || window;\n}\n\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class currently uses a relatively simple approach to focus trapping.\n * It assumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like `tabIndex > 0`, flex `order`, and shadow roots can cause the two to be misaligned.\n */\nclass FocusTrap {\n /** Whether the focus trap is active. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(value, this._startAnchor);\n this._toggleAnchorTabIndex(value, this._endAnchor);\n }\n }\n constructor(_element, _checker, _ngZone, _document, deferAnchors = false) {\n this._element = _element;\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n this._hasAttached = false;\n // Event listeners for the anchors. Need to be regular functions so that we can unbind them later.\n this.startAnchorListener = () => this.focusLastTabbableElement();\n this.endAnchorListener = () => this.focusFirstTabbableElement();\n this._enabled = true;\n if (!deferAnchors) {\n this.attachAnchors();\n }\n }\n /** Destroys the focus trap by cleaning up the anchors. */\n destroy() {\n const startAnchor = this._startAnchor;\n const endAnchor = this._endAnchor;\n if (startAnchor) {\n startAnchor.removeEventListener('focus', this.startAnchorListener);\n startAnchor.remove();\n }\n if (endAnchor) {\n endAnchor.removeEventListener('focus', this.endAnchorListener);\n endAnchor.remove();\n }\n this._startAnchor = this._endAnchor = null;\n this._hasAttached = false;\n }\n /**\n * Inserts the anchors into the DOM. This is usually done automatically\n * in the constructor, but can be deferred for cases like directives with `*ngIf`.\n * @returns Whether the focus trap managed to attach successfully. This may not be the case\n * if the target element isn't currently in the DOM.\n */\n attachAnchors() {\n // If we're not on the browser, there can be no focus to trap.\n if (this._hasAttached) {\n return true;\n }\n this._ngZone.runOutsideAngular(() => {\n if (!this._startAnchor) {\n this._startAnchor = this._createAnchor();\n this._startAnchor.addEventListener('focus', this.startAnchorListener);\n }\n if (!this._endAnchor) {\n this._endAnchor = this._createAnchor();\n this._endAnchor.addEventListener('focus', this.endAnchorListener);\n }\n });\n if (this._element.parentNode) {\n this._element.parentNode.insertBefore(this._startAnchor, this._element);\n this._element.parentNode.insertBefore(this._endAnchor, this._element.nextSibling);\n this._hasAttached = true;\n }\n return this._hasAttached;\n }\n /**\n * Waits for the zone to stabilize, then focuses the first tabbable element.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusInitialElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusInitialElement(options)));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the first tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusFirstTabbableElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusFirstTabbableElement(options)));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the last tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusLastTabbableElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusLastTabbableElement(options)));\n });\n }\n /**\n * Get the specified boundary element of the trapped region.\n * @param bound The boundary to get (start or end of trapped region).\n * @returns The boundary element.\n */\n _getRegionBoundary(bound) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const markers = this._element.querySelectorAll(`[cdk-focus-region-${bound}], ` + `[cdkFocusRegion${bound}], ` + `[cdk-focus-${bound}]`);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n for (let i = 0; i < markers.length; i++) {\n // @breaking-change 8.0.0\n if (markers[i].hasAttribute(`cdk-focus-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-${bound}', ` +\n `use 'cdkFocusRegion${bound}' instead. The deprecated ` +\n `attribute will be removed in 8.0.0.`, markers[i]);\n }\n else if (markers[i].hasAttribute(`cdk-focus-region-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-region-${bound}', ` +\n `use 'cdkFocusRegion${bound}' instead. The deprecated attribute ` +\n `will be removed in 8.0.0.`, markers[i]);\n }\n }\n }\n if (bound == 'start') {\n return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);\n }\n return markers.length\n ? markers[markers.length - 1]\n : this._getLastTabbableElement(this._element);\n }\n /**\n * Focuses the element that should be focused when the focus trap is initialized.\n * @returns Whether focus was moved successfully.\n */\n focusInitialElement(options) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const redirectToElement = this._element.querySelector(`[cdk-focus-initial], ` + `[cdkFocusInitial]`);\n if (redirectToElement) {\n // @breaking-change 8.0.0\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n redirectToElement.hasAttribute(`cdk-focus-initial`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-initial', ` +\n `use 'cdkFocusInitial' instead. The deprecated attribute ` +\n `will be removed in 8.0.0`, redirectToElement);\n }\n // Warn the consumer if the element they've pointed to\n // isn't focusable, when not in production mode.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n !this._checker.isFocusable(redirectToElement)) {\n console.warn(`Element matching '[cdkFocusInitial]' is not focusable.`, redirectToElement);\n }\n if (!this._checker.isFocusable(redirectToElement)) {\n const focusableChild = this._getFirstTabbableElement(redirectToElement);\n focusableChild?.focus(options);\n return !!focusableChild;\n }\n redirectToElement.focus(options);\n return true;\n }\n return this.focusFirstTabbableElement(options);\n }\n /**\n * Focuses the first tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusFirstTabbableElement(options) {\n const redirectToElement = this._getRegionBoundary('start');\n if (redirectToElement) {\n redirectToElement.focus(options);\n }\n return !!redirectToElement;\n }\n /**\n * Focuses the last tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusLastTabbableElement(options) {\n const redirectToElement = this._getRegionBoundary('end');\n if (redirectToElement) {\n redirectToElement.focus(options);\n }\n return !!redirectToElement;\n }\n /**\n * Checks whether the focus trap has successfully been attached.\n */\n hasAttached() {\n return this._hasAttached;\n }\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n _getFirstTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n const children = root.children;\n for (let i = 0; i < children.length; i++) {\n const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE\n ? this._getFirstTabbableElement(children[i])\n : null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Get the last tabbable element from a DOM subtree (inclusive). */\n _getLastTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in reverse DOM order.\n const children = root.children;\n for (let i = children.length - 1; i >= 0; i--) {\n const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE\n ? this._getLastTabbableElement(children[i])\n : null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Creates an anchor element. */\n _createAnchor() {\n const anchor = this._document.createElement('div');\n this._toggleAnchorTabIndex(this._enabled, anchor);\n anchor.classList.add('cdk-visually-hidden');\n anchor.classList.add('cdk-focus-trap-anchor');\n anchor.setAttribute('aria-hidden', 'true');\n return anchor;\n }\n /**\n * Toggles the `tabindex` of an anchor, based on the enabled state of the focus trap.\n * @param isEnabled Whether the focus trap is enabled.\n * @param anchor Anchor on which to toggle the tabindex.\n */\n _toggleAnchorTabIndex(isEnabled, anchor) {\n // Remove the tabindex completely, rather than setting it to -1, because if the\n // element has a tabindex, the user might still hit it when navigating with the arrow keys.\n isEnabled ? anchor.setAttribute('tabindex', '0') : anchor.removeAttribute('tabindex');\n }\n /**\n * Toggles the`tabindex` of both anchors to either trap Tab focus or allow it to escape.\n * @param enabled: Whether the anchors should trap Tab.\n */\n toggleAnchors(enabled) {\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(enabled, this._startAnchor);\n this._toggleAnchorTabIndex(enabled, this._endAnchor);\n }\n }\n /** Executes a function when the zone is stable. */\n _executeOnStable(fn) {\n if (this._ngZone.isStable) {\n fn();\n }\n else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n}\n/**\n * Factory that allows easy instantiation of focus traps.\n */\nclass FocusTrapFactory {\n constructor(_checker, _ngZone, _document) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n }\n /**\n * Creates a focus-trapped region around the given element.\n * @param element The element around which focus will be trapped.\n * @param deferCaptureElements Defers the creation of focus-capturing elements to be done\n * manually by the user.\n * @returns The created focus trap instance.\n */\n create(element, deferCaptureElements = false) {\n return new FocusTrap(element, this._checker, this._ngZone, this._document, deferCaptureElements);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: FocusTrapFactory, deps: [{ token: InteractivityChecker }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: FocusTrapFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: FocusTrapFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: InteractivityChecker }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }] });\n/** Directive for trapping focus within a region. */\nclass CdkTrapFocus {\n /** Whether the focus trap is active. */\n get enabled() {\n return this.focusTrap?.enabled || false;\n }\n set enabled(value) {\n if (this.focusTrap) {\n this.focusTrap.enabled = value;\n }\n }\n constructor(_elementRef, _focusTrapFactory, \n /**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 13.0.0\n */\n _document) {\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n /** Previously focused element to restore focus to upon destroy when using autoCapture. */\n this._previouslyFocusedElement = null;\n const platform = inject(Platform);\n if (platform.isBrowser) {\n this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n }\n }\n ngOnDestroy() {\n this.focusTrap?.destroy();\n // If we stored a previously focused element when using autoCapture, return focus to that\n // element now that the trapped region is being destroyed.\n if (this._previouslyFocusedElement) {\n this._previouslyFocusedElement.focus();\n this._previouslyFocusedElement = null;\n }\n }\n ngAfterContentInit() {\n this.focusTrap?.attachAnchors();\n if (this.autoCapture) {\n this._captureFocus();\n }\n }\n ngDoCheck() {\n if (this.focusTrap && !this.focusTrap.hasAttached()) {\n this.focusTrap.attachAnchors();\n }\n }\n ngOnChanges(changes) {\n const autoCaptureChange = changes['autoCapture'];\n if (autoCaptureChange &&\n !autoCaptureChange.firstChange &&\n this.autoCapture &&\n this.focusTrap?.hasAttached()) {\n this._captureFocus();\n }\n }\n _captureFocus() {\n this._previouslyFocusedElement = _getFocusedElementPierceShadowDom();\n this.focusTrap?.focusInitialElementWhenReady();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkTrapFocus, deps: [{ token: i0.ElementRef }, { token: FocusTrapFactory }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"17.2.0\", type: CdkTrapFocus, isStandalone: true, selector: \"[cdkTrapFocus]\", inputs: { enabled: [\"cdkTrapFocus\", \"enabled\", booleanAttribute], autoCapture: [\"cdkTrapFocusAutoCapture\", \"autoCapture\", booleanAttribute] }, exportAs: [\"cdkTrapFocus\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkTrapFocus, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkTrapFocus]',\n exportAs: 'cdkTrapFocus',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FocusTrapFactory }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }], propDecorators: { enabled: [{\n type: Input,\n args: [{ alias: 'cdkTrapFocus', transform: booleanAttribute }]\n }], autoCapture: [{\n type: Input,\n args: [{ alias: 'cdkTrapFocusAutoCapture', transform: booleanAttribute }]\n }] } });\n\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class uses a strategy pattern that determines how it traps focus.\n * See FocusTrapInertStrategy.\n */\nclass ConfigurableFocusTrap extends FocusTrap {\n /** Whether the FocusTrap is enabled. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._enabled) {\n this._focusTrapManager.register(this);\n }\n else {\n this._focusTrapManager.deregister(this);\n }\n }\n constructor(_element, _checker, _ngZone, _document, _focusTrapManager, _inertStrategy, config) {\n super(_element, _checker, _ngZone, _document, config.defer);\n this._focusTrapManager = _focusTrapManager;\n this._inertStrategy = _inertStrategy;\n this._focusTrapManager.register(this);\n }\n /** Notifies the FocusTrapManager that this FocusTrap will be destroyed. */\n destroy() {\n this._focusTrapManager.deregister(this);\n super.destroy();\n }\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _enable() {\n this._inertStrategy.preventFocus(this);\n this.toggleAnchors(true);\n }\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _disable() {\n this._inertStrategy.allowFocus(this);\n this.toggleAnchors(false);\n }\n}\n\n/** The injection token used to specify the inert strategy. */\nconst FOCUS_TRAP_INERT_STRATEGY = new InjectionToken('FOCUS_TRAP_INERT_STRATEGY');\n\n/**\n * Lightweight FocusTrapInertStrategy that adds a document focus event\n * listener to redirect focus back inside the FocusTrap.\n */\nclass EventListenerFocusTrapInertStrategy {\n constructor() {\n /** Focus event handler. */\n this._listener = null;\n }\n /** Adds a document event listener that keeps focus inside the FocusTrap. */\n preventFocus(focusTrap) {\n // Ensure there's only one listener per document\n if (this._listener) {\n focusTrap._document.removeEventListener('focus', this._listener, true);\n }\n this._listener = (e) => this._trapFocus(focusTrap, e);\n focusTrap._ngZone.runOutsideAngular(() => {\n focusTrap._document.addEventListener('focus', this._listener, true);\n });\n }\n /** Removes the event listener added in preventFocus. */\n allowFocus(focusTrap) {\n if (!this._listener) {\n return;\n }\n focusTrap._document.removeEventListener('focus', this._listener, true);\n this._listener = null;\n }\n /**\n * Refocuses the first element in the FocusTrap if the focus event target was outside\n * the FocusTrap.\n *\n * This is an event listener callback. The event listener is added in runOutsideAngular,\n * so all this code runs outside Angular as well.\n */\n _trapFocus(focusTrap, event) {\n const target = event.target;\n const focusTrapRoot = focusTrap._element;\n // Don't refocus if target was in an overlay, because the overlay might be associated\n // with an element inside the FocusTrap, ex. mat-select.\n if (target && !focusTrapRoot.contains(target) && !target.closest?.('div.cdk-overlay-pane')) {\n // Some legacy FocusTrap usages have logic that focuses some element on the page\n // just before FocusTrap is destroyed. For backwards compatibility, wait\n // to be sure FocusTrap is still enabled before refocusing.\n setTimeout(() => {\n // Check whether focus wasn't put back into the focus trap while the timeout was pending.\n if (focusTrap.enabled && !focusTrapRoot.contains(focusTrap._document.activeElement)) {\n focusTrap.focusFirstTabbableElement();\n }\n });\n }\n }\n}\n\n/** Injectable that ensures only the most recently enabled FocusTrap is active. */\nclass FocusTrapManager {\n constructor() {\n // A stack of the FocusTraps on the page. Only the FocusTrap at the\n // top of the stack is active.\n this._focusTrapStack = [];\n }\n /**\n * Disables the FocusTrap at the top of the stack, and then pushes\n * the new FocusTrap onto the stack.\n */\n register(focusTrap) {\n // Dedupe focusTraps that register multiple times.\n this._focusTrapStack = this._focusTrapStack.filter(ft => ft !== focusTrap);\n let stack = this._focusTrapStack;\n if (stack.length) {\n stack[stack.length - 1]._disable();\n }\n stack.push(focusTrap);\n focusTrap._enable();\n }\n /**\n * Removes the FocusTrap from the stack, and activates the\n * FocusTrap that is the new top of the stack.\n */\n deregister(focusTrap) {\n focusTrap._disable();\n const stack = this._focusTrapStack;\n const i = stack.indexOf(focusTrap);\n if (i !== -1) {\n stack.splice(i, 1);\n if (stack.length) {\n stack[stack.length - 1]._enable();\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: FocusTrapManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: FocusTrapManager, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: FocusTrapManager, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/** Factory that allows easy instantiation of configurable focus traps. */\nclass ConfigurableFocusTrapFactory {\n constructor(_checker, _ngZone, _focusTrapManager, _document, _inertStrategy) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._focusTrapManager = _focusTrapManager;\n this._document = _document;\n // TODO split up the strategies into different modules, similar to DateAdapter.\n this._inertStrategy = _inertStrategy || new EventListenerFocusTrapInertStrategy();\n }\n create(element, config = { defer: false }) {\n let configObject;\n if (typeof config === 'boolean') {\n configObject = { defer: config };\n }\n else {\n configObject = config;\n }\n return new ConfigurableFocusTrap(element, this._checker, this._ngZone, this._document, this._focusTrapManager, this._inertStrategy, configObject);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: ConfigurableFocusTrapFactory, deps: [{ token: InteractivityChecker }, { token: i0.NgZone }, { token: FocusTrapManager }, { token: DOCUMENT }, { token: FOCUS_TRAP_INERT_STRATEGY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: ConfigurableFocusTrapFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: ConfigurableFocusTrapFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: InteractivityChecker }, { type: i0.NgZone }, { type: FocusTrapManager }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FOCUS_TRAP_INERT_STRATEGY]\n }] }] });\n\n/** Gets whether an event could be a faked `mousedown` event dispatched by a screen reader. */\nfunction isFakeMousedownFromScreenReader(event) {\n // Some screen readers will dispatch a fake `mousedown` event when pressing enter or space on\n // a clickable element. We can distinguish these events when `event.buttons` is zero, or\n // `event.detail` is zero depending on the browser:\n // - `event.buttons` works on Firefox, but fails on Chrome.\n // - `detail` works on Chrome, but fails on Firefox.\n return event.buttons === 0 || event.detail === 0;\n}\n/** Gets whether an event could be a faked `touchstart` event dispatched by a screen reader. */\nfunction isFakeTouchstartFromScreenReader(event) {\n const touch = (event.touches && event.touches[0]) || (event.changedTouches && event.changedTouches[0]);\n // A fake `touchstart` can be distinguished from a real one by looking at the `identifier`\n // which is typically >= 0 on a real device versus -1 from a screen reader. Just to be safe,\n // we can also look at `radiusX` and `radiusY`. This behavior was observed against a Windows 10\n // device with a touch screen running NVDA v2020.4 and Firefox 85 or Chrome 88.\n return (!!touch &&\n touch.identifier === -1 &&\n (touch.radiusX == null || touch.radiusX === 1) &&\n (touch.radiusY == null || touch.radiusY === 1));\n}\n\n/**\n * Injectable options for the InputModalityDetector. These are shallowly merged with the default\n * options.\n */\nconst INPUT_MODALITY_DETECTOR_OPTIONS = new InjectionToken('cdk-input-modality-detector-options');\n/**\n * Default options for the InputModalityDetector.\n *\n * Modifier keys are ignored by default (i.e. when pressed won't cause the service to detect\n * keyboard input modality) for two reasons:\n *\n * 1. Modifier keys are commonly used with mouse to perform actions such as 'right click' or 'open\n * in new tab', and are thus less representative of actual keyboard interaction.\n * 2. VoiceOver triggers some keyboard events when linearly navigating with Control + Option (but\n * confusingly not with Caps Lock). Thus, to have parity with other screen readers, we ignore\n * these keys so as to not update the input modality.\n *\n * Note that we do not by default ignore the right Meta key on Safari because it has the same key\n * code as the ContextMenu key on other browsers. When we switch to using event.key, we can\n * distinguish between the two.\n */\nconst INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS = {\n ignoreKeys: [ALT, CONTROL, MAC_META, META, SHIFT],\n};\n/**\n * The amount of time needed to pass after a touchstart event in order for a subsequent mousedown\n * event to be attributed as mouse and not touch.\n *\n * This is the value used by AngularJS Material. Through trial and error (on iPhone 6S) they found\n * that a value of around 650ms seems appropriate.\n */\nconst TOUCH_BUFFER_MS = 650;\n/**\n * Event listener options that enable capturing and also mark the listener as passive if the browser\n * supports it.\n */\nconst modalityEventListenerOptions = normalizePassiveListenerOptions({\n passive: true,\n capture: true,\n});\n/**\n * Service that detects the user's input modality.\n *\n * This service does not update the input modality when a user navigates with a screen reader\n * (e.g. linear navigation with VoiceOver, object navigation / browse mode with NVDA, virtual PC\n * cursor mode with JAWS). This is in part due to technical limitations (i.e. keyboard events do not\n * fire as expected in these modes) but is also arguably the correct behavior. Navigating with a\n * screen reader is akin to visually scanning a page, and should not be interpreted as actual user\n * input interaction.\n *\n * When a user is not navigating but *interacting* with a screen reader, this service attempts to\n * update the input modality to keyboard, but in general this service's behavior is largely\n * undefined.\n */\nclass InputModalityDetector {\n /** The most recently detected input modality. */\n get mostRecentModality() {\n return this._modality.value;\n }\n constructor(_platform, ngZone, document, options) {\n this._platform = _platform;\n /**\n * The most recently detected input modality event target. Is null if no input modality has been\n * detected or if the associated event target is null for some unknown reason.\n */\n this._mostRecentTarget = null;\n /** The underlying BehaviorSubject that emits whenever an input modality is detected. */\n this._modality = new BehaviorSubject(null);\n /**\n * The timestamp of the last touch input modality. Used to determine whether mousedown events\n * should be attributed to mouse or touch.\n */\n this._lastTouchMs = 0;\n /**\n * Handles keydown events. Must be an arrow function in order to preserve the context when it gets\n * bound.\n */\n this._onKeydown = (event) => {\n // If this is one of the keys we should ignore, then ignore it and don't update the input\n // modality to keyboard.\n if (this._options?.ignoreKeys?.some(keyCode => keyCode === event.keyCode)) {\n return;\n }\n this._modality.next('keyboard');\n this._mostRecentTarget = _getEventTarget(event);\n };\n /**\n * Handles mousedown events. Must be an arrow function in order to preserve the context when it\n * gets bound.\n */\n this._onMousedown = (event) => {\n // Touches trigger both touch and mouse events, so we need to distinguish between mouse events\n // that were triggered via mouse vs touch. To do so, check if the mouse event occurs closely\n // after the previous touch event.\n if (Date.now() - this._lastTouchMs < TOUCH_BUFFER_MS) {\n return;\n }\n // Fake mousedown events are fired by some screen readers when controls are activated by the\n // screen reader. Attribute them to keyboard input modality.\n this._modality.next(isFakeMousedownFromScreenReader(event) ? 'keyboard' : 'mouse');\n this._mostRecentTarget = _getEventTarget(event);\n };\n /**\n * Handles touchstart events. Must be an arrow function in order to preserve the context when it\n * gets bound.\n */\n this._onTouchstart = (event) => {\n // Same scenario as mentioned in _onMousedown, but on touch screen devices, fake touchstart\n // events are fired. Again, attribute to keyboard input modality.\n if (isFakeTouchstartFromScreenReader(event)) {\n this._modality.next('keyboard');\n return;\n }\n // Store the timestamp of this touch event, as it's used to distinguish between mouse events\n // triggered via mouse vs touch.\n this._lastTouchMs = Date.now();\n this._modality.next('touch');\n this._mostRecentTarget = _getEventTarget(event);\n };\n this._options = {\n ...INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS,\n ...options,\n };\n // Skip the first emission as it's null.\n this.modalityDetected = this._modality.pipe(skip(1));\n this.modalityChanged = this.modalityDetected.pipe(distinctUntilChanged());\n // If we're not in a browser, this service should do nothing, as there's no relevant input\n // modality to detect.\n if (_platform.isBrowser) {\n ngZone.runOutsideAngular(() => {\n document.addEventListener('keydown', this._onKeydown, modalityEventListenerOptions);\n document.addEventListener('mousedown', this._onMousedown, modalityEventListenerOptions);\n document.addEventListener('touchstart', this._onTouchstart, modalityEventListenerOptions);\n });\n }\n }\n ngOnDestroy() {\n this._modality.complete();\n if (this._platform.isBrowser) {\n document.removeEventListener('keydown', this._onKeydown, modalityEventListenerOptions);\n document.removeEventListener('mousedown', this._onMousedown, modalityEventListenerOptions);\n document.removeEventListener('touchstart', this._onTouchstart, modalityEventListenerOptions);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: InputModalityDetector, deps: [{ token: i1.Platform }, { token: i0.NgZone }, { token: DOCUMENT }, { token: INPUT_MODALITY_DETECTOR_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: InputModalityDetector, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: InputModalityDetector, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.Platform }, { type: i0.NgZone }, { type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [INPUT_MODALITY_DETECTOR_OPTIONS]\n }] }] });\n\nconst LIVE_ANNOUNCER_ELEMENT_TOKEN = new InjectionToken('liveAnnouncerElement', {\n providedIn: 'root',\n factory: LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY,\n});\n/** @docs-private */\nfunction LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY() {\n return null;\n}\n/** Injection token that can be used to configure the default options for the LiveAnnouncer. */\nconst LIVE_ANNOUNCER_DEFAULT_OPTIONS = new InjectionToken('LIVE_ANNOUNCER_DEFAULT_OPTIONS');\n\nlet uniqueIds = 0;\nclass LiveAnnouncer {\n constructor(elementToken, _ngZone, _document, _defaultOptions) {\n this._ngZone = _ngZone;\n this._defaultOptions = _defaultOptions;\n // We inject the live element and document as `any` because the constructor signature cannot\n // reference browser globals (HTMLElement, Document) on non-browser environments, since having\n // a class decorator causes TypeScript to preserve the constructor signature types.\n this._document = _document;\n this._liveElement = elementToken || this._createLiveElement();\n }\n announce(message, ...args) {\n const defaultOptions = this._defaultOptions;\n let politeness;\n let duration;\n if (args.length === 1 && typeof args[0] === 'number') {\n duration = args[0];\n }\n else {\n [politeness, duration] = args;\n }\n this.clear();\n clearTimeout(this._previousTimeout);\n if (!politeness) {\n politeness =\n defaultOptions && defaultOptions.politeness ? defaultOptions.politeness : 'polite';\n }\n if (duration == null && defaultOptions) {\n duration = defaultOptions.duration;\n }\n // TODO: ensure changing the politeness works on all environments we support.\n this._liveElement.setAttribute('aria-live', politeness);\n if (this._liveElement.id) {\n this._exposeAnnouncerToModals(this._liveElement.id);\n }\n // This 100ms timeout is necessary for some browser + screen-reader combinations:\n // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.\n // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a\n // second time without clearing and then using a non-zero delay.\n // (using JAWS 17 at time of this writing).\n return this._ngZone.runOutsideAngular(() => {\n if (!this._currentPromise) {\n this._currentPromise = new Promise(resolve => (this._currentResolve = resolve));\n }\n clearTimeout(this._previousTimeout);\n this._previousTimeout = setTimeout(() => {\n this._liveElement.textContent = message;\n if (typeof duration === 'number') {\n this._previousTimeout = setTimeout(() => this.clear(), duration);\n }\n // For some reason in tests this can be undefined\n // Probably related to ZoneJS and every other thing that patches browser APIs in tests\n this._currentResolve?.();\n this._currentPromise = this._currentResolve = undefined;\n }, 100);\n return this._currentPromise;\n });\n }\n /**\n * Clears the current text from the announcer element. Can be used to prevent\n * screen readers from reading the text out again while the user is going\n * through the page landmarks.\n */\n clear() {\n if (this._liveElement) {\n this._liveElement.textContent = '';\n }\n }\n ngOnDestroy() {\n clearTimeout(this._previousTimeout);\n this._liveElement?.remove();\n this._liveElement = null;\n this._currentResolve?.();\n this._currentPromise = this._currentResolve = undefined;\n }\n _createLiveElement() {\n const elementClass = 'cdk-live-announcer-element';\n const previousElements = this._document.getElementsByClassName(elementClass);\n const liveEl = this._document.createElement('div');\n // Remove any old containers. This can happen when coming in from a server-side-rendered page.\n for (let i = 0; i < previousElements.length; i++) {\n previousElements[i].remove();\n }\n liveEl.classList.add(elementClass);\n liveEl.classList.add('cdk-visually-hidden');\n liveEl.setAttribute('aria-atomic', 'true');\n liveEl.setAttribute('aria-live', 'polite');\n liveEl.id = `cdk-live-announcer-${uniqueIds++}`;\n this._document.body.appendChild(liveEl);\n return liveEl;\n }\n /**\n * Some browsers won't expose the accessibility node of the live announcer element if there is an\n * `aria-modal` and the live announcer is outside of it. This method works around the issue by\n * pointing the `aria-owns` of all modals to the live announcer element.\n */\n _exposeAnnouncerToModals(id) {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with\n // the `SnakBarContainer` and other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const modals = this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal=\"true\"]');\n for (let i = 0; i < modals.length; i++) {\n const modal = modals[i];\n const ariaOwns = modal.getAttribute('aria-owns');\n if (!ariaOwns) {\n modal.setAttribute('aria-owns', id);\n }\n else if (ariaOwns.indexOf(id) === -1) {\n modal.setAttribute('aria-owns', ariaOwns + ' ' + id);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: LiveAnnouncer, deps: [{ token: LIVE_ANNOUNCER_ELEMENT_TOKEN, optional: true }, { token: i0.NgZone }, { token: DOCUMENT }, { token: LIVE_ANNOUNCER_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: LiveAnnouncer, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: LiveAnnouncer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LIVE_ANNOUNCER_ELEMENT_TOKEN]\n }] }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LIVE_ANNOUNCER_DEFAULT_OPTIONS]\n }] }] });\n/**\n * A directive that works similarly to aria-live, but uses the LiveAnnouncer to ensure compatibility\n * with a wider range of browsers and screen readers.\n */\nclass CdkAriaLive {\n /** The aria-live politeness level to use when announcing messages. */\n get politeness() {\n return this._politeness;\n }\n set politeness(value) {\n this._politeness = value === 'off' || value === 'assertive' ? value : 'polite';\n if (this._politeness === 'off') {\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n }\n else if (!this._subscription) {\n this._subscription = this._ngZone.runOutsideAngular(() => {\n return this._contentObserver.observe(this._elementRef).subscribe(() => {\n // Note that we use textContent here, rather than innerText, in order to avoid a reflow.\n const elementText = this._elementRef.nativeElement.textContent;\n // The `MutationObserver` fires also for attribute\n // changes which we don't want to announce.\n if (elementText !== this._previousAnnouncedText) {\n this._liveAnnouncer.announce(elementText, this._politeness, this.duration);\n this._previousAnnouncedText = elementText;\n }\n });\n });\n }\n }\n constructor(_elementRef, _liveAnnouncer, _contentObserver, _ngZone) {\n this._elementRef = _elementRef;\n this._liveAnnouncer = _liveAnnouncer;\n this._contentObserver = _contentObserver;\n this._ngZone = _ngZone;\n this._politeness = 'polite';\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkAriaLive, deps: [{ token: i0.ElementRef }, { token: LiveAnnouncer }, { token: i1$1.ContentObserver }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: CdkAriaLive, isStandalone: true, selector: \"[cdkAriaLive]\", inputs: { politeness: [\"cdkAriaLive\", \"politeness\"], duration: [\"cdkAriaLiveDuration\", \"duration\"] }, exportAs: [\"cdkAriaLive\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkAriaLive, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkAriaLive]',\n exportAs: 'cdkAriaLive',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: LiveAnnouncer }, { type: i1$1.ContentObserver }, { type: i0.NgZone }], propDecorators: { politeness: [{\n type: Input,\n args: ['cdkAriaLive']\n }], duration: [{\n type: Input,\n args: ['cdkAriaLiveDuration']\n }] } });\n\n/** Detection mode used for attributing the origin of a focus event. */\nvar FocusMonitorDetectionMode;\n(function (FocusMonitorDetectionMode) {\n /**\n * Any mousedown, keydown, or touchstart event that happened in the previous\n * tick or the current tick will be used to assign a focus event's origin (to\n * either mouse, keyboard, or touch). This is the default option.\n */\n FocusMonitorDetectionMode[FocusMonitorDetectionMode[\"IMMEDIATE\"] = 0] = \"IMMEDIATE\";\n /**\n * A focus event's origin is always attributed to the last corresponding\n * mousedown, keydown, or touchstart event, no matter how long ago it occurred.\n */\n FocusMonitorDetectionMode[FocusMonitorDetectionMode[\"EVENTUAL\"] = 1] = \"EVENTUAL\";\n})(FocusMonitorDetectionMode || (FocusMonitorDetectionMode = {}));\n/** InjectionToken for FocusMonitorOptions. */\nconst FOCUS_MONITOR_DEFAULT_OPTIONS = new InjectionToken('cdk-focus-monitor-default-options');\n/**\n * Event listener options that enable capturing and also\n * mark the listener as passive if the browser supports it.\n */\nconst captureEventListenerOptions = normalizePassiveListenerOptions({\n passive: true,\n capture: true,\n});\n/** Monitors mouse and keyboard events to determine the cause of focus events. */\nclass FocusMonitor {\n constructor(_ngZone, _platform, _inputModalityDetector, \n /** @breaking-change 11.0.0 make document required */\n document, options) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n this._inputModalityDetector = _inputModalityDetector;\n /** The focus origin that the next focus event is a result of. */\n this._origin = null;\n /** Whether the window has just been focused. */\n this._windowFocused = false;\n /**\n * Whether the origin was determined via a touch interaction. Necessary as properly attributing\n * focus events to touch interactions requires special logic.\n */\n this._originFromTouchInteraction = false;\n /** Map of elements being monitored to their info. */\n this._elementInfo = new Map();\n /** The number of elements currently being monitored. */\n this._monitoredElementCount = 0;\n /**\n * Keeps track of the root nodes to which we've currently bound a focus/blur handler,\n * as well as the number of monitored elements that they contain. We have to treat focus/blur\n * handlers differently from the rest of the events, because the browser won't emit events\n * to the document when focus moves inside of a shadow root.\n */\n this._rootNodeFocusListenerCount = new Map();\n /**\n * Event listener for `focus` events on the window.\n * Needs to be an arrow function in order to preserve the context when it gets bound.\n */\n this._windowFocusListener = () => {\n // Make a note of when the window regains focus, so we can\n // restore the origin info for the focused element.\n this._windowFocused = true;\n this._windowFocusTimeoutId = window.setTimeout(() => (this._windowFocused = false));\n };\n /** Subject for stopping our InputModalityDetector subscription. */\n this._stopInputModalityDetector = new Subject();\n /**\n * Event listener for `focus` and 'blur' events on the document.\n * Needs to be an arrow function in order to preserve the context when it gets bound.\n */\n this._rootNodeFocusAndBlurListener = (event) => {\n const target = _getEventTarget(event);\n // We need to walk up the ancestor chain in order to support `checkChildren`.\n for (let element = target; element; element = element.parentElement) {\n if (event.type === 'focus') {\n this._onFocus(event, element);\n }\n else {\n this._onBlur(event, element);\n }\n }\n };\n this._document = document;\n this._detectionMode = options?.detectionMode || FocusMonitorDetectionMode.IMMEDIATE;\n }\n monitor(element, checkChildren = false) {\n const nativeElement = coerceElement(element);\n // Do nothing if we're not on the browser platform or the passed in node isn't an element.\n if (!this._platform.isBrowser || nativeElement.nodeType !== 1) {\n // Note: we don't want the observable to emit at all so we don't pass any parameters.\n return of();\n }\n // If the element is inside the shadow DOM, we need to bind our focus/blur listeners to\n // the shadow root, rather than the `document`, because the browser won't emit focus events\n // to the `document`, if focus is moving within the same shadow root.\n const rootNode = _getShadowRoot(nativeElement) || this._getDocument();\n const cachedInfo = this._elementInfo.get(nativeElement);\n // Check if we're already monitoring this element.\n if (cachedInfo) {\n if (checkChildren) {\n // TODO(COMP-318): this can be problematic, because it'll turn all non-checkChildren\n // observers into ones that behave as if `checkChildren` was turned on. We need a more\n // robust solution.\n cachedInfo.checkChildren = true;\n }\n return cachedInfo.subject;\n }\n // Create monitored element info.\n const info = {\n checkChildren: checkChildren,\n subject: new Subject(),\n rootNode,\n };\n this._elementInfo.set(nativeElement, info);\n this._registerGlobalListeners(info);\n return info.subject;\n }\n stopMonitoring(element) {\n const nativeElement = coerceElement(element);\n const elementInfo = this._elementInfo.get(nativeElement);\n if (elementInfo) {\n elementInfo.subject.complete();\n this._setClasses(nativeElement);\n this._elementInfo.delete(nativeElement);\n this._removeGlobalListeners(elementInfo);\n }\n }\n focusVia(element, origin, options) {\n const nativeElement = coerceElement(element);\n const focusedElement = this._getDocument().activeElement;\n // If the element is focused already, calling `focus` again won't trigger the event listener\n // which means that the focus classes won't be updated. If that's the case, update the classes\n // directly without waiting for an event.\n if (nativeElement === focusedElement) {\n this._getClosestElementsInfo(nativeElement).forEach(([currentElement, info]) => this._originChanged(currentElement, origin, info));\n }\n else {\n this._setOrigin(origin);\n // `focus` isn't available on the server\n if (typeof nativeElement.focus === 'function') {\n nativeElement.focus(options);\n }\n }\n }\n ngOnDestroy() {\n this._elementInfo.forEach((_info, element) => this.stopMonitoring(element));\n }\n /** Access injected document if available or fallback to global document reference */\n _getDocument() {\n return this._document || document;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n const doc = this._getDocument();\n return doc.defaultView || window;\n }\n _getFocusOrigin(focusEventTarget) {\n if (this._origin) {\n // If the origin was realized via a touch interaction, we need to perform additional checks\n // to determine whether the focus origin should be attributed to touch or program.\n if (this._originFromTouchInteraction) {\n return this._shouldBeAttributedToTouch(focusEventTarget) ? 'touch' : 'program';\n }\n else {\n return this._origin;\n }\n }\n // If the window has just regained focus, we can restore the most recent origin from before the\n // window blurred. Otherwise, we've reached the point where we can't identify the source of the\n // focus. This typically means one of two things happened:\n //\n // 1) The element was programmatically focused, or\n // 2) The element was focused via screen reader navigation (which generally doesn't fire\n // events).\n //\n // Because we can't distinguish between these two cases, we default to setting `program`.\n if (this._windowFocused && this._lastFocusOrigin) {\n return this._lastFocusOrigin;\n }\n // If the interaction is coming from an input label, we consider it a mouse interactions.\n // This is a special case where focus moves on `click`, rather than `mousedown` which breaks\n // our detection, because all our assumptions are for `mousedown`. We need to handle this\n // special case, because it's very common for checkboxes and radio buttons.\n if (focusEventTarget && this._isLastInteractionFromInputLabel(focusEventTarget)) {\n return 'mouse';\n }\n return 'program';\n }\n /**\n * Returns whether the focus event should be attributed to touch. Recall that in IMMEDIATE mode, a\n * touch origin isn't immediately reset at the next tick (see _setOrigin). This means that when we\n * handle a focus event following a touch interaction, we need to determine whether (1) the focus\n * event was directly caused by the touch interaction or (2) the focus event was caused by a\n * subsequent programmatic focus call triggered by the touch interaction.\n * @param focusEventTarget The target of the focus event under examination.\n */\n _shouldBeAttributedToTouch(focusEventTarget) {\n // Please note that this check is not perfect. Consider the following edge case:\n //\n //
    \n //
    \n //
    \n //\n // Suppose there is a FocusMonitor in IMMEDIATE mode attached to #parent. When the user touches\n // #child, #parent is programmatically focused. This code will attribute the focus to touch\n // instead of program. This is a relatively minor edge-case that can be worked around by using\n // focusVia(parent, 'program') to focus #parent.\n return (this._detectionMode === FocusMonitorDetectionMode.EVENTUAL ||\n !!focusEventTarget?.contains(this._inputModalityDetector._mostRecentTarget));\n }\n /**\n * Sets the focus classes on the element based on the given focus origin.\n * @param element The element to update the classes on.\n * @param origin The focus origin.\n */\n _setClasses(element, origin) {\n element.classList.toggle('cdk-focused', !!origin);\n element.classList.toggle('cdk-touch-focused', origin === 'touch');\n element.classList.toggle('cdk-keyboard-focused', origin === 'keyboard');\n element.classList.toggle('cdk-mouse-focused', origin === 'mouse');\n element.classList.toggle('cdk-program-focused', origin === 'program');\n }\n /**\n * Updates the focus origin. If we're using immediate detection mode, we schedule an async\n * function to clear the origin at the end of a timeout. The duration of the timeout depends on\n * the origin being set.\n * @param origin The origin to set.\n * @param isFromInteraction Whether we are setting the origin from an interaction event.\n */\n _setOrigin(origin, isFromInteraction = false) {\n this._ngZone.runOutsideAngular(() => {\n this._origin = origin;\n this._originFromTouchInteraction = origin === 'touch' && isFromInteraction;\n // If we're in IMMEDIATE mode, reset the origin at the next tick (or in `TOUCH_BUFFER_MS` ms\n // for a touch event). We reset the origin at the next tick because Firefox focuses one tick\n // after the interaction event. We wait `TOUCH_BUFFER_MS` ms before resetting the origin for\n // a touch event because when a touch event is fired, the associated focus event isn't yet in\n // the event queue. Before doing so, clear any pending timeouts.\n if (this._detectionMode === FocusMonitorDetectionMode.IMMEDIATE) {\n clearTimeout(this._originTimeoutId);\n const ms = this._originFromTouchInteraction ? TOUCH_BUFFER_MS : 1;\n this._originTimeoutId = setTimeout(() => (this._origin = null), ms);\n }\n });\n }\n /**\n * Handles focus events on a registered element.\n * @param event The focus event.\n * @param element The monitored element.\n */\n _onFocus(event, element) {\n // NOTE(mmalerba): We currently set the classes based on the focus origin of the most recent\n // focus event affecting the monitored element. If we want to use the origin of the first event\n // instead we should check for the cdk-focused class here and return if the element already has\n // it. (This only matters for elements that have includesChildren = true).\n // If we are not counting child-element-focus as focused, make sure that the event target is the\n // monitored element itself.\n const elementInfo = this._elementInfo.get(element);\n const focusEventTarget = _getEventTarget(event);\n if (!elementInfo || (!elementInfo.checkChildren && element !== focusEventTarget)) {\n return;\n }\n this._originChanged(element, this._getFocusOrigin(focusEventTarget), elementInfo);\n }\n /**\n * Handles blur events on a registered element.\n * @param event The blur event.\n * @param element The monitored element.\n */\n _onBlur(event, element) {\n // If we are counting child-element-focus as focused, make sure that we aren't just blurring in\n // order to focus another child of the monitored element.\n const elementInfo = this._elementInfo.get(element);\n if (!elementInfo ||\n (elementInfo.checkChildren &&\n event.relatedTarget instanceof Node &&\n element.contains(event.relatedTarget))) {\n return;\n }\n this._setClasses(element);\n this._emitOrigin(elementInfo, null);\n }\n _emitOrigin(info, origin) {\n if (info.subject.observers.length) {\n this._ngZone.run(() => info.subject.next(origin));\n }\n }\n _registerGlobalListeners(elementInfo) {\n if (!this._platform.isBrowser) {\n return;\n }\n const rootNode = elementInfo.rootNode;\n const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode) || 0;\n if (!rootNodeFocusListeners) {\n this._ngZone.runOutsideAngular(() => {\n rootNode.addEventListener('focus', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n rootNode.addEventListener('blur', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n });\n }\n this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners + 1);\n // Register global listeners when first element is monitored.\n if (++this._monitoredElementCount === 1) {\n // Note: we listen to events in the capture phase so we\n // can detect them even if the user stops propagation.\n this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n window.addEventListener('focus', this._windowFocusListener);\n });\n // The InputModalityDetector is also just a collection of global listeners.\n this._inputModalityDetector.modalityDetected\n .pipe(takeUntil(this._stopInputModalityDetector))\n .subscribe(modality => {\n this._setOrigin(modality, true /* isFromInteraction */);\n });\n }\n }\n _removeGlobalListeners(elementInfo) {\n const rootNode = elementInfo.rootNode;\n if (this._rootNodeFocusListenerCount.has(rootNode)) {\n const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode);\n if (rootNodeFocusListeners > 1) {\n this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners - 1);\n }\n else {\n rootNode.removeEventListener('focus', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n rootNode.removeEventListener('blur', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n this._rootNodeFocusListenerCount.delete(rootNode);\n }\n }\n // Unregister global listeners when last element is unmonitored.\n if (!--this._monitoredElementCount) {\n const window = this._getWindow();\n window.removeEventListener('focus', this._windowFocusListener);\n // Equivalently, stop our InputModalityDetector subscription.\n this._stopInputModalityDetector.next();\n // Clear timeouts for all potentially pending timeouts to prevent the leaks.\n clearTimeout(this._windowFocusTimeoutId);\n clearTimeout(this._originTimeoutId);\n }\n }\n /** Updates all the state on an element once its focus origin has changed. */\n _originChanged(element, origin, elementInfo) {\n this._setClasses(element, origin);\n this._emitOrigin(elementInfo, origin);\n this._lastFocusOrigin = origin;\n }\n /**\n * Collects the `MonitoredElementInfo` of a particular element and\n * all of its ancestors that have enabled `checkChildren`.\n * @param element Element from which to start the search.\n */\n _getClosestElementsInfo(element) {\n const results = [];\n this._elementInfo.forEach((info, currentElement) => {\n if (currentElement === element || (info.checkChildren && currentElement.contains(element))) {\n results.push([currentElement, info]);\n }\n });\n return results;\n }\n /**\n * Returns whether an interaction is likely to have come from the user clicking the `label` of\n * an `input` or `textarea` in order to focus it.\n * @param focusEventTarget Target currently receiving focus.\n */\n _isLastInteractionFromInputLabel(focusEventTarget) {\n const { _mostRecentTarget: mostRecentTarget, mostRecentModality } = this._inputModalityDetector;\n // If the last interaction used the mouse on an element contained by one of the labels\n // of an `input`/`textarea` that is currently focused, it is very likely that the\n // user redirected focus using the label.\n if (mostRecentModality !== 'mouse' ||\n !mostRecentTarget ||\n mostRecentTarget === focusEventTarget ||\n (focusEventTarget.nodeName !== 'INPUT' && focusEventTarget.nodeName !== 'TEXTAREA') ||\n focusEventTarget.disabled) {\n return false;\n }\n const labels = focusEventTarget.labels;\n if (labels) {\n for (let i = 0; i < labels.length; i++) {\n if (labels[i].contains(mostRecentTarget)) {\n return true;\n }\n }\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: FocusMonitor, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: InputModalityDetector }, { token: DOCUMENT, optional: true }, { token: FOCUS_MONITOR_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: FocusMonitor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: FocusMonitor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.Platform }, { type: InputModalityDetector }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FOCUS_MONITOR_DEFAULT_OPTIONS]\n }] }] });\n/**\n * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or\n * programmatically) and adds corresponding classes to the element.\n *\n * There are two variants of this directive:\n * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is\n * focused.\n * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.\n */\nclass CdkMonitorFocus {\n constructor(_elementRef, _focusMonitor) {\n this._elementRef = _elementRef;\n this._focusMonitor = _focusMonitor;\n this._focusOrigin = null;\n this.cdkFocusChange = new EventEmitter();\n }\n get focusOrigin() {\n return this._focusOrigin;\n }\n ngAfterViewInit() {\n const element = this._elementRef.nativeElement;\n this._monitorSubscription = this._focusMonitor\n .monitor(element, element.nodeType === 1 && element.hasAttribute('cdkMonitorSubtreeFocus'))\n .subscribe(origin => {\n this._focusOrigin = origin;\n this.cdkFocusChange.emit(origin);\n });\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n if (this._monitorSubscription) {\n this._monitorSubscription.unsubscribe();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkMonitorFocus, deps: [{ token: i0.ElementRef }, { token: FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: CdkMonitorFocus, isStandalone: true, selector: \"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]\", outputs: { cdkFocusChange: \"cdkFocusChange\" }, exportAs: [\"cdkMonitorFocus\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: CdkMonitorFocus, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',\n exportAs: 'cdkMonitorFocus',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FocusMonitor }], propDecorators: { cdkFocusChange: [{\n type: Output\n }] } });\n\n/** Set of possible high-contrast mode backgrounds. */\nvar HighContrastMode;\n(function (HighContrastMode) {\n HighContrastMode[HighContrastMode[\"NONE\"] = 0] = \"NONE\";\n HighContrastMode[HighContrastMode[\"BLACK_ON_WHITE\"] = 1] = \"BLACK_ON_WHITE\";\n HighContrastMode[HighContrastMode[\"WHITE_ON_BLACK\"] = 2] = \"WHITE_ON_BLACK\";\n})(HighContrastMode || (HighContrastMode = {}));\n/** CSS class applied to the document body when in black-on-white high-contrast mode. */\nconst BLACK_ON_WHITE_CSS_CLASS = 'cdk-high-contrast-black-on-white';\n/** CSS class applied to the document body when in white-on-black high-contrast mode. */\nconst WHITE_ON_BLACK_CSS_CLASS = 'cdk-high-contrast-white-on-black';\n/** CSS class applied to the document body when in high-contrast mode. */\nconst HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS = 'cdk-high-contrast-active';\n/**\n * Service to determine whether the browser is currently in a high-contrast-mode environment.\n *\n * Microsoft Windows supports an accessibility feature called \"High Contrast Mode\". This mode\n * changes the appearance of all applications, including web applications, to dramatically increase\n * contrast.\n *\n * IE, Edge, and Firefox currently support this mode. Chrome does not support Windows High Contrast\n * Mode. This service does not detect high-contrast mode as added by the Chrome \"High Contrast\"\n * browser extension.\n */\nclass HighContrastModeDetector {\n constructor(_platform, document) {\n this._platform = _platform;\n this._document = document;\n this._breakpointSubscription = inject(BreakpointObserver)\n .observe('(forced-colors: active)')\n .subscribe(() => {\n if (this._hasCheckedHighContrastMode) {\n this._hasCheckedHighContrastMode = false;\n this._applyBodyHighContrastModeCssClasses();\n }\n });\n }\n /** Gets the current high-contrast-mode for the page. */\n getHighContrastMode() {\n if (!this._platform.isBrowser) {\n return HighContrastMode.NONE;\n }\n // Create a test element with an arbitrary background-color that is neither black nor\n // white; high-contrast mode will coerce the color to either black or white. Also ensure that\n // appending the test element to the DOM does not affect layout by absolutely positioning it\n const testElement = this._document.createElement('div');\n testElement.style.backgroundColor = 'rgb(1,2,3)';\n testElement.style.position = 'absolute';\n this._document.body.appendChild(testElement);\n // Get the computed style for the background color, collapsing spaces to normalize between\n // browsers. Once we get this color, we no longer need the test element. Access the `window`\n // via the document so we can fake it in tests. Note that we have extra null checks, because\n // this logic will likely run during app bootstrap and throwing can break the entire app.\n const documentWindow = this._document.defaultView || window;\n const computedStyle = documentWindow && documentWindow.getComputedStyle\n ? documentWindow.getComputedStyle(testElement)\n : null;\n const computedColor = ((computedStyle && computedStyle.backgroundColor) || '').replace(/ /g, '');\n testElement.remove();\n switch (computedColor) {\n // Pre Windows 11 dark theme.\n case 'rgb(0,0,0)':\n // Windows 11 dark themes.\n case 'rgb(45,50,54)':\n case 'rgb(32,32,32)':\n return HighContrastMode.WHITE_ON_BLACK;\n // Pre Windows 11 light theme.\n case 'rgb(255,255,255)':\n // Windows 11 light theme.\n case 'rgb(255,250,239)':\n return HighContrastMode.BLACK_ON_WHITE;\n }\n return HighContrastMode.NONE;\n }\n ngOnDestroy() {\n this._breakpointSubscription.unsubscribe();\n }\n /** Applies CSS classes indicating high-contrast mode to document body (browser-only). */\n _applyBodyHighContrastModeCssClasses() {\n if (!this._hasCheckedHighContrastMode && this._platform.isBrowser && this._document.body) {\n const bodyClasses = this._document.body.classList;\n bodyClasses.remove(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, BLACK_ON_WHITE_CSS_CLASS, WHITE_ON_BLACK_CSS_CLASS);\n this._hasCheckedHighContrastMode = true;\n const mode = this.getHighContrastMode();\n if (mode === HighContrastMode.BLACK_ON_WHITE) {\n bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, BLACK_ON_WHITE_CSS_CLASS);\n }\n else if (mode === HighContrastMode.WHITE_ON_BLACK) {\n bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS, WHITE_ON_BLACK_CSS_CLASS);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: HighContrastModeDetector, deps: [{ token: i1.Platform }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: HighContrastModeDetector, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: HighContrastModeDetector, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.Platform }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }] });\n\nclass A11yModule {\n constructor(highContrastModeDetector) {\n highContrastModeDetector._applyBodyHighContrastModeCssClasses();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: A11yModule, deps: [{ token: HighContrastModeDetector }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.2.0\", ngImport: i0, type: A11yModule, imports: [ObserversModule, CdkAriaLive, CdkTrapFocus, CdkMonitorFocus], exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: A11yModule, imports: [ObserversModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: A11yModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ObserversModule, CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],\n exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],\n }]\n }], ctorParameters: () => [{ type: HighContrastModeDetector }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { A11yModule, ActiveDescendantKeyManager, AriaDescriber, CDK_DESCRIBEDBY_HOST_ATTRIBUTE, CDK_DESCRIBEDBY_ID_PREFIX, CdkAriaLive, CdkMonitorFocus, CdkTrapFocus, ConfigurableFocusTrap, ConfigurableFocusTrapFactory, EventListenerFocusTrapInertStrategy, FOCUS_MONITOR_DEFAULT_OPTIONS, FOCUS_TRAP_INERT_STRATEGY, FocusKeyManager, FocusMonitor, FocusMonitorDetectionMode, FocusTrap, FocusTrapFactory, HighContrastMode, HighContrastModeDetector, INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS, INPUT_MODALITY_DETECTOR_OPTIONS, InputModalityDetector, InteractivityChecker, IsFocusableConfig, LIVE_ANNOUNCER_DEFAULT_OPTIONS, LIVE_ANNOUNCER_ELEMENT_TOKEN, LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY, ListKeyManager, LiveAnnouncer, MESSAGES_CONTAINER_ID, addAriaReferencedId, getAriaReferenceIds, isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader, removeAriaReferencedId };\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { Observable } from 'rxjs';\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\n@Component({\n selector: 'app-reference-list',\n standalone: true,\n imports: [CommonModule, DragDropModule],\n template: 'test',\n})\nexport abstract class BaseListComponent implements OnInit, OnDestroy {\n @Input() data$: Observable;\n @Input() loading$: Observable;\n @Output() addOrUpdateReference: EventEmitter = new EventEmitter();\n @Output() removeRef: EventEmitter = new EventEmitter();\n @Output() updateVisibility: EventEmitter = new EventEmitter();\n @Output() moveRefUp: EventEmitter = new EventEmitter();\n @Output() moveRefDown: EventEmitter = new EventEmitter();\n public references: T[] = [];\n @Input() visible = false;\n\n private subscription = undefined;\n\n constructor() {}\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n ngOnInit(): void {\n this.subscription = this.data$.subscribe((data) => {\n if (data) {\n this.references = data;\n }\n });\n }\n updateReference(reference: T) {\n this.addOrUpdateReference.emit(reference);\n }\n removeReference(reference: T) {\n this.removeRef.emit(reference);\n }\n\n openClicked() {\n this.visible = !this.visible;\n this.updateVisibility.emit(this.visible);\n }\n\n public identify = (_, item) => {\n return item.id;\n };\n\n drop(event: CdkDragDrop) {\n const amount = event.currentIndex - event.previousIndex;\n if (amount > 0) {\n // move down\n const ref = this.references[event.previousIndex];\n for (let i = 0; i < amount; i++) {\n this.moveRefDown.emit(ref);\n }\n }\n if (amount < 0) {\n // move up\n const ref = this.references[event.previousIndex];\n for (let i = 0; i < -amount; i++) {\n this.moveRefUp.emit(ref);\n }\n }\n }\n\n @Input() title: string;\n}\n","
    \n

    \n {{ title }}\n {{ ' (' + references?.length + ')' }}\n

    \n \n \n {{ visible ? 'Close' : 'Edit' }}\n \n
    \n\n No items selected...
    \n
    \n \n \n
    \n\n","import { Component } from '@angular/core';\nimport { AssetListRowComponent as AssetListRowComponent } from '../asset-list-row/asset-list-row.component';\nimport { CommonModule } from '@angular/common';\n\nimport { AssetReference } from '../../collection-screen.state';\nimport { BaseListComponent } from '../base-list/base-list.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\n@Component({\n selector: 'app-asset-list',\n standalone: true,\n imports: [AssetListRowComponent, CommonModule, DragDropModule],\n templateUrl: './asset-list.component.html',\n styleUrl: '../base-list/base-list.scss',\n})\nexport class AssetListComponent extends BaseListComponent {\n constructor() {\n super();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { OutfitReferenceJson } from '../../collection-screen.state';\nimport { InputTextComponent } from '../../../components/inputs/input-text/input-text.component';\nimport { CommonModule } from '@angular/common';\nimport { BaseListRowComponent } from '../base-list-row/base-list-row.component';\nimport { RowButtonsComponent } from '../row-buttons/row-buttons.component';\nimport { SimpleFileService } from '../../services/file.service';\nimport { RRCopyToClipboardModule } from 'projects/web-ui-component-library/src';\nimport { CopyToClipboardComponent } from '../copy-to-clipboard/copy-to-clipboard.component';\nimport { CdkDragHandle } from '@angular/cdk/drag-drop';\n\n@Component({\n selector: 'app-outfit-list-row',\n standalone: true,\n imports: [\n InputTextComponent,\n CommonModule,\n RowButtonsComponent,\n RRCopyToClipboardModule,\n CopyToClipboardComponent,\n CdkDragHandle,\n ],\n templateUrl: './outfit-list-row.component.html',\n styleUrls: ['../base-list-row/base-list-row.scss'],\n})\nexport class OutfitListRowComponent\n extends BaseListRowComponent\n implements OnInit\n{\n public fileContent: string;\n constructor(private _simpleFileService: SimpleFileService) {\n super();\n }\n ngOnInit(): void {\n if (this.reference?.resultUrl) {\n this._simpleFileService\n .readJsonFile(this.reference.resultUrl)\n .subscribe((res) => {\n this.fileContent = btoa(\n JSON.stringify({\n type: 'pictofit::virtualstyling::style',\n collection: res,\n }),\n );\n });\n }\n }\n}\n","
    \n","
    \n

    \n {{ title }}\n {{ ' (' + references?.length + ')' }}\n

    \n
    \n \n {{ visible ? 'Close' : 'Edit' }}\n \n\n\n No items selected...\n
    \n \n \n
    \n\n","import { Component } from '@angular/core';\nimport { AssetListComponent } from '../asset-list/asset-list.component';\nimport { OutfitListRowComponent } from '../outfit-list-row/outfit-list-row.component';\nimport { OutfitReferenceJson } from '../../collection-screen.state';\nimport { CommonModule } from '@angular/common';\nimport { BaseListComponent } from '../base-list/base-list.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\n@Component({\n selector: 'app-outfit-list',\n standalone: true,\n imports: [\n AssetListComponent,\n OutfitListRowComponent,\n CommonModule,\n DragDropModule,\n ],\n templateUrl: './outfit-list.component.html',\n styleUrl: '../base-list/base-list.scss',\n})\nexport class OutfitListComponent extends BaseListComponent {\n constructor() {\n super();\n }\n}\n","import { Component } from '@angular/core';\nimport { GarmentReference } from '../../collection-screen.state';\nimport { InputTextComponent } from '../../../components/inputs/input-text/input-text.component';\nimport { CommonModule } from '@angular/common';\nimport { BaseListRowComponent } from '../base-list-row/base-list-row.component';\nimport { RowButtonsComponent } from '../row-buttons/row-buttons.component';\nimport { CdkDragHandle } from '@angular/cdk/drag-drop';\n@Component({\n selector: 'app-garment-list-row',\n standalone: true,\n imports: [\n InputTextComponent,\n CommonModule,\n RowButtonsComponent,\n CdkDragHandle,\n ],\n templateUrl: './garment-list-row.component.html',\n styleUrls: [\n '../base-list-row/base-list-row.scss',\n './garment-list-row.component.scss',\n ],\n})\nexport class GarmentListRowComponent extends BaseListRowComponent {\n onGarmentLinkChanged($event: { value: string; valid: boolean }) {\n this.updateReference.emit({\n ...this.reference,\n garmentLink: $event.value,\n });\n }\n onCurrencyChanged($event: { value: string; valid: boolean }) {\n this.updateReference.emit({\n ...this.reference,\n price: { ...this.reference.price, currency: $event.value },\n });\n }\n onPriceChanged($event: { value: string; valid: boolean }) {\n this.updateReference.emit({\n ...this.reference,\n price: {\n ...this.reference.price,\n price: Number.parseFloat($event.value) ?? 0,\n },\n });\n }\n onNameChanged($event: { value: string; valid: boolean }) {\n this.updateReference.emit({\n ...this.reference,\n name: $event.value,\n });\n }\n constructor() {\n super();\n this.reference;\n }\n}\n","
    \n \n
    \n \n
    \n
    \n \n \n \n
    \n \n \n
    \n
    \n \n
    \n","
    \n

    \n {{ title }}\n {{ ' (' + references?.length + ')' }}\n

    \n
    \n \n {{ visible ? 'Close' : 'Edit' }}\n \n\n\n No items selected...\n
    \n \n \n
    \n\n","import { Component } from '@angular/core';\nimport { GarmentReference } from '../../collection-screen.state';\nimport { CommonModule } from '@angular/common';\nimport { BaseListComponent } from '../base-list/base-list.component';\nimport { GarmentListRowComponent } from '../garment-list-row/garment-list-row.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\n@Component({\n selector: 'app-garment-list',\n standalone: true,\n imports: [\n GarmentListComponent,\n GarmentListRowComponent,\n CommonModule,\n DragDropModule,\n ],\n templateUrl: './garment-list.component.html',\n styleUrls: ['../base-list/base-list.scss'],\n})\nexport class GarmentListComponent extends BaseListComponent {\n constructor() {\n super();\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { InputTextComponent } from '../../../components/inputs/input-text/input-text.component';\nimport { CommonModule } from '@angular/common';\nimport { BaseListRowComponent } from '../base-list-row/base-list-row.component';\nimport {\n AvatarAssetReference,\n CollectionScreenStore,\n} from '../../collection-screen.state';\nimport { RowButtonsComponent } from '../row-buttons/row-buttons.component';\n\nimport { CopyToClipboardComponent } from '../copy-to-clipboard/copy-to-clipboard.component';\nimport { AvatarGroup } from '../avatar-group-list/avatar-group-list.component';\nimport { InputDropdownComponent } from '../../../components/inputs/input-dropdown/input-dropdown.component';\nimport { CollectionSettings } from '../../../collection-overview/collection.interface';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'app-avatar-list-row',\n standalone: true,\n imports: [\n InputTextComponent,\n CommonModule,\n RowButtonsComponent,\n CopyToClipboardComponent,\n InputDropdownComponent,\n ],\n templateUrl: './avatar-list-row.component.html',\n styleUrls: [\n '../base-list-row/base-list-row.scss',\n './avatar-list-row.component.scss',\n ],\n})\nexport class AvatarListRowComponent\n extends BaseListRowComponent\n implements OnInit, OnDestroy\n{\n @Input() groups: AvatarGroup[];\n @Output() groupChanged: EventEmitter<{\n newGroup: string;\n toBeMoved: AvatarAssetReference;\n }> = new EventEmitter();\n @Output() moveUpGroup: EventEmitter =\n new EventEmitter();\n @Output() moveDownGroup: EventEmitter =\n new EventEmitter();\n\n dropdownValueGroup: string = '';\n settings: CollectionSettings = undefined;\n _onDestroy$: Subject;\n\n constructor(public createCollectionStore: CollectionScreenStore) {\n super();\n }\n ngOnDestroy(): void {\n if (this._onDestroy$) {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n }\n\n ngOnInit(): void {\n this._onDestroy$ = new Subject();\n this.createCollectionStore.settings$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((data) => (this.settings = data));\n }\n\n onNameChanged($event: { value: string; valid: boolean }) {\n if ($event.valid) {\n this.updateReference.emit({ ...this.reference, name: $event.value });\n }\n }\n\n onShoeVariantChanged(shoeName: string, avatar: AvatarAssetReference) {\n if (avatar.variant) {\n avatar.variant.shoe = shoeName;\n } else {\n avatar.variant = { shoe: shoeName };\n }\n this.createCollectionStore.updateAvatarData({\n ref: avatar,\n group: avatar.belongsTo,\n });\n }\n\n onGroupChanged(newGroup: string, toBeMoved: AvatarAssetReference) {\n this.groupChanged.emit({ newGroup, toBeMoved });\n this.dropdownValueGroup = '';\n }\n}\n","
    \n \n
    \n \n
    \n
    \n
    \n \n Reference: \n {{ reference.reference }}\n \n CS-ID: {{ reference.id }}\n \n
    \n \n \n \n\n \n
    \n
    \n\n","
    \n

    \n {{ title }}\n \n ({{ this.avatarCount }} in {{ this.groupedAvatars.length }} groups)\n

    \n \n \n {{ visible ? 'Close' : 'Edit' }}\n \n
    \n
    \n No items selected...\n \n
    \n
    \n \n \n \n
    \n \n \n \n \n
    \n {{ g.references.length }}\n {{ g.references.length === 1 ? 'Avatar' : 'Avatars' }}\n \n
    \n \n \n \n
    \n
    \n \n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { BaseListComponent } from '../base-list/base-list.component';\nimport {\n AvatarAssetReference,\n CollectionScreenStore,\n} from '../../collection-screen.state';\nimport { CommonModule } from '@angular/common';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { InputTextComponent } from '../../../components/inputs/input-text/input-text.component';\nimport { AvatarListRowComponent } from '../avatar-list-row/avatar-list-row.component';\nimport { InputDropdownComponent } from '../../../components/inputs/input-dropdown/input-dropdown.component';\n\nexport type AvatarGroup = {\n displayName: string;\n isValidGroup: boolean;\n references: AvatarAssetReference[];\n};\n\n@Component({\n selector: 'app-avatar-group-list',\n standalone: true,\n imports: [\n AvatarListRowComponent,\n CommonModule,\n DragDropModule,\n InputTextComponent,\n InputDropdownComponent,\n ],\n templateUrl: './avatar-group-list.component.html',\n styleUrls: [\n './avatar-group-list.component.scss',\n '../base-list/base-list.scss',\n ],\n})\nexport class AvatarGroupListComponent\n extends BaseListComponent\n implements OnInit, OnDestroy\n{\n disableMove = undefined;\n groupedAvatars: AvatarGroup[] = [];\n activeGroup: string | undefined;\n dataSusbcription: any = undefined;\n storeSubscription: any = undefined;\n avatarCount = 0;\n ngOnInit(): void {\n this.storeSubscription =\n this.createCollectionStore.avatarActiveGroup$.subscribe((value) => {\n this.activeGroup = value;\n });\n this.createCollectionStore.setAvatarActiveGroup(undefined);\n this.dataSusbcription = this.data$.subscribe((data) => {\n this.groupedAvatars = data;\n this.avatarCount = this.groupedAvatars.reduce(\n (a, b) => a + b.references.length,\n 0,\n );\n });\n }\n ngOnDestroy(): void {\n if (this.dataSusbcription) {\n this.dataSusbcription.unsubscribe();\n this.dataSusbcription = undefined;\n }\n if (this.storeSubscription) {\n this.storeSubscription.unsubscribe();\n this.storeSubscription = undefined;\n }\n }\n onGroupGenderChanged(group: string, gender: 'male' | 'female') {\n this.groupedAvatars\n .find((g) => g.displayName === group)\n ?.references?.forEach((a) => {\n if (a.additionalInformation === undefined) {\n a.additionalInformation = {\n heightInCm: 160,\n displayName: 'init',\n gender: 'female',\n };\n }\n if (gender === 'male' || gender === 'female') {\n a.additionalInformation.gender = gender;\n }\n });\n }\n heightValidation(value: string) {\n return Number.isFinite(+value);\n }\n onGroupHeightChanged(\n group: string,\n $event: { value: string; valid: boolean },\n ) {\n if ($event.valid) {\n this.groupedAvatars\n .find((g) => g.displayName === group)\n ?.references?.forEach((a) => {\n if (a.additionalInformation === undefined) {\n a.additionalInformation = {\n heightInCm: 160,\n displayName: 'init',\n gender: 'female',\n };\n }\n if ($event.value !== '') {\n a.additionalInformation.heightInCm = Number.parseInt($event.value);\n }\n });\n }\n }\n onDelete(group: string) {\n if (confirm('Are you sure you want to delete this group?')) {\n this.createCollectionStore.removeAvatarGroup(group);\n }\n }\n onGroupChanged(\n currentGroup: string,\n $event: {\n newGroup: string;\n toBeMoved: AvatarAssetReference;\n },\n ) {\n //add a new group when the plus symbol is clicked on the dropdown\n if ($event.newGroup === '+') {\n $event.toBeMoved.belongsTo = '!new group!';\n $event.toBeMoved.additionalInformation = {\n heightInCm: 160,\n displayName: 'init',\n gender: 'female',\n };\n this.groupedAvatars.push({\n displayName: '!new group!',\n isValidGroup: true,\n references: [$event.toBeMoved],\n });\n this.groupedAvatars.find(\n (g) => g.displayName === currentGroup,\n ).references = this.groupedAvatars\n .find((g) => g.displayName === currentGroup)\n .references.filter((r) => r.id !== $event.toBeMoved.id);\n this.groupedAvatars = this.groupedAvatars.filter(\n (g) => g.references.length > 0,\n );\n this.updateStoreAvatars();\n return;\n }\n if ($event.toBeMoved.belongsTo === undefined) {\n //ungrouped avatar\n const refs = this.groupedAvatars.find(\n (g) => g.displayName === $event.newGroup,\n ).references;\n $event.toBeMoved.additionalInformation = refs[0].additionalInformation;\n $event.toBeMoved.belongsTo = $event.newGroup;\n if (refs.some((r) => r.id !== $event.toBeMoved.id)) {\n refs.push($event.toBeMoved);\n }\n this.groupedAvatars = this.groupedAvatars.filter(\n (g) =>\n !(\n g.displayName === $event.toBeMoved.name && g.isValidGroup === false\n ),\n );\n } else {\n //already in another group. needs to be removed from the old group and added at the end of the new group\n this.groupedAvatars.find(\n (g) => g.displayName === $event.toBeMoved.belongsTo,\n ).references = this.groupedAvatars\n .find((g) => g.displayName === $event.toBeMoved.belongsTo)\n ?.references.filter((r) => r.id !== $event.toBeMoved.id);\n $event.toBeMoved.belongsTo = $event.newGroup;\n //take the additional information from the first reference and set it for the new avatar\n $event.toBeMoved.additionalInformation = this.groupedAvatars.find(\n (g) => g.displayName === $event.newGroup,\n ).references[0].additionalInformation;\n this.groupedAvatars\n .find((g) => g.displayName === $event.newGroup)\n .references.push($event.toBeMoved);\n //remove group if empty\n this.groupedAvatars = this.groupedAvatars.filter(\n (g) => g.references.length > 0,\n );\n }\n this.updateStoreAvatars();\n }\n\n constructor(public createCollectionStore: CollectionScreenStore) {\n super();\n }\n\n nameValidation = (name: string): boolean => {\n //don't allow duplicate names\n if (this.groupedAvatars.find((g) => g.displayName === name)) {\n return false;\n }\n return name.length > 0;\n };\n\n updateStoreAvatars() {\n this.createCollectionStore.setAvatars(this.groupedAvatars);\n }\n\n onNameChanged(groupName: string, $event: { value: string; valid: boolean }) {\n if (!$event.valid) {\n return;\n }\n this.createCollectionStore.setAvatarActiveGroup($event.value);\n this.groupedAvatars\n .filter((g) => g.displayName === groupName)\n .map((a) => {\n a.displayName = $event.value;\n a.references.map((r) => (r.belongsTo = $event.value));\n });\n this.updateStoreAvatars();\n }\n\n deleteGroup(group: string) {\n this.groupedAvatars = this.groupedAvatars.filter(\n (g) => g.displayName !== group,\n );\n this.updateStoreAvatars();\n }\n\n moveGroupUp(group: string) {\n this.createCollectionStore.moveAvatarGroup({ id: group, direction: 'up' });\n }\n moveGroupDown(group: string) {\n this.createCollectionStore.moveAvatarGroup({\n id: group,\n direction: 'down',\n });\n }\n\n public identifyGroup = (_, item) => {\n return item.key;\n };\n\n processData(data: AvatarAssetReference[]): void {\n this.groupedAvatars = [];\n\n data.forEach((d) => {\n if (d.belongsTo) {\n const group = this.groupedAvatars.find(\n (g) => g.displayName === d.belongsTo,\n );\n if (group) {\n if (!group.references.some((avatar) => avatar.id === d.id)) {\n group.references.push(d);\n }\n } else {\n this.groupedAvatars.push({\n displayName: d.belongsTo,\n isValidGroup: true,\n references: [d],\n });\n }\n } else {\n this.groupedAvatars.push({\n displayName: d.name,\n isValidGroup: false,\n references: [d],\n });\n }\n });\n }\n\n // drop(event: CdkDragDrop) {\n // const amount = event.currentIndex - event.previousIndex;\n // if (amount > 0) {\n // // move down\n // const ref = this.references[event.previousIndex];\n // for (let i = 0; i < amount; i++) {\n // this.moveRefDown.emit(ref);\n // }\n // }\n // if (amount < 0) {\n // // move up\n // const ref = this.references[event.previousIndex];\n // for (let i = 0; i < -amount; i++) {\n // this.moveRefUp.emit(ref);\n // }\n // }\n // }\n}\n","
    \n

    \n {{ title }}\n

    \n \n \n {{ visible ? 'Close' : 'Edit' }}\n \n
    \n

    Shoe Options

    \n\n
    \n \n \n \n \n
    \n\n\n \n Add Shoe type\n \n\n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { InputTextComponent } from 'projects/content-service-cms/src/app/components/inputs/input-text/input-text.component';\nimport {\n CollectionScreenStore,\n ShoeOption,\n} from '../../collection-screen.state';\nimport { Subject, takeUntil } from 'rxjs';\nimport { CollectionSettings } from '../../../collection-overview/collection.interface';\n\n@Component({\n selector: 'app-collection-settings',\n standalone: true,\n imports: [InputTextComponent, CommonModule],\n templateUrl: './collection-settings.component.html',\n styleUrls: [\n './collection-settings.component.scss',\n '../base-list/base-list.scss',\n ],\n})\nexport class CollectionSettingsComponent implements OnInit, OnDestroy {\n constructor(public createCollectionStore: CollectionScreenStore) {}\n\n public visible = false;\n public title = 'Settings';\n private _onDestroy$: Subject;\n private _settings: CollectionSettings;\n\n ngOnInit(): void {\n this._onDestroy$ = new Subject();\n this.createCollectionStore.settings$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((settings) => {\n if (settings) {\n this._settings = { ...settings };\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this._onDestroy$) {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n }\n\n validate = (value: string) => {\n if (value === undefined || value.length === 0) {\n return false;\n }\n return !this._settings?.shoeOptions?.some((o) => o.name === value);\n };\n\n onChanged(\n $event: { value: string; valid: boolean },\n id: string,\n shoeOption: ShoeOption,\n ) {\n if (!$event.valid) return;\n if (id === 'name') {\n this.createCollectionStore.updateShoeOptionsName({\n name: shoeOption.name,\n value: $event.value,\n });\n }\n if (id === 'translationKey') {\n this.createCollectionStore.updateShoeOptionsTranslation({\n name: shoeOption.name,\n value: $event.value,\n });\n }\n if (id === 'image') {\n this.createCollectionStore.updateShoeOptionsImage({\n name: shoeOption.name,\n value: $event.value,\n });\n }\n }\n\n addNewShoeType = () => {\n if (this._settings === undefined) this._settings = { shoeOptions: [] };\n this._settings?.shoeOptions.push({\n image: 'imageUrl',\n name: 'set name',\n translationKey: 'translaton key',\n });\n this.createCollectionStore.setSettings(this._settings);\n };\n\n onDelete(optionName: string) {\n if (\n confirm(\n 'Deleting this type will also delete the selected group from the affected avatars.',\n )\n ) {\n this._settings.shoeOptions = this._settings.shoeOptions.filter(\n (option) => option.name !== optionName,\n );\n this.createCollectionStore.setSettings(this._settings);\n }\n }\n}\n","/* eslint-disable max-lines-per-function */\nimport { AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core';\nimport { AssetListComponent } from '../asset-list/asset-list.component';\nimport { OutfitListComponent } from '../outfit-list/outfit-list.component';\nimport {\n CollectionScreenStore,\n OutfitReference,\n OutfitReferenceJson,\n ScreenMode,\n} from '../../collection-screen.state';\nimport {\n Subject,\n combineLatest,\n concatMap,\n firstValueFrom,\n lastValueFrom,\n take,\n} from 'rxjs';\n\nimport {\n ICentralAssetPlatformService,\n ISimpleFileService,\n} from '../../../data/api';\nimport {\n CollectionAvatarReference,\n ICollection,\n} from '../../../collection-overview/collection.interface';\nimport { GarmentListComponent } from '../garment-list/garment-list.component';\nimport { CommonModule } from '@angular/common';\nimport { ICustomerService } from '../../../customer';\nimport { AlertService } from '../../../core/services/alert.service';\nimport { PreviewService } from '../../../collection-overview/services/collection-preview.service';\nimport { Router } from '@angular/router';\nimport { AvatarGroupListComponent } from '../avatar-group-list/avatar-group-list.component';\nimport { CollectionSettingsComponent } from '../collection-settings/collection-settings.component';\n\n@Component({\n selector: 'app-collection-main',\n standalone: true,\n imports: [\n AssetListComponent,\n OutfitListComponent,\n GarmentListComponent,\n CommonModule,\n AvatarGroupListComponent,\n CollectionSettingsComponent,\n ],\n templateUrl: './collection-main.component.html',\n styleUrl: './collection-main.component.scss',\n})\nexport class CollectionMainComponent\n implements OnInit, OnDestroy, AfterViewInit\n{\n //TODO: Just for testing, either remove or use service\n async downloadCollection($event: Event) {\n $event.preventDefault();\n const c = JSON.stringify(await this.mapCollection());\n const blob = new Blob([c], { type: 'application/json' });\n const url = window.URL.createObjectURL(blob);\n window.open(url, '_blank');\n }\n\n async previewCollection($event: Event) {\n $event.preventDefault();\n const collection = await this.mapCollection();\n const organizationId = (\n await firstValueFrom(this._customerService.currentCustomer$)\n ).id;\n const ref =\n 'gid://pictofit/collection/' + collection.info.name.toLowerCase();\n this._previewService.show(organizationId, ref, {\n id: '',\n collection,\n });\n }\n\n async createCollection() {\n //first check if reference already exists\n const name = (await firstValueFrom(this.createCollectionStore.info$)).name;\n const ref =\n 'gid://pictofit/collection/' + name.toLowerCase().replaceAll(' ', '_');\n const organizationId = (\n await firstValueFrom(this._customerService.currentCustomer$)\n ).id;\n if (this._screenMode === ScreenMode.NEW) {\n if (await this._cap.referenceExists(organizationId, ref)) {\n console.error('Reference already exists - ' + ref);\n this._alerrtService.showErrorAlert('Reference already exists - ' + ref);\n return;\n }\n }\n\n const c = await this.mapCollection();\n if (this._screenMode === ScreenMode.NEW) {\n this._cap.createCollection(organizationId, c).then((settingId) => {\n //try to create Ref\n this._cap\n .addExternalReferenceToSetting(settingId, ref)\n .then(() => {\n this._alerrtService.showSuccessAlert('Collection created - ' + ref);\n this.createCollectionStore.setMode(ScreenMode.EDIT);\n this.createCollectionStore.setId(settingId);\n this._router.navigate(['/collections', settingId]);\n })\n .catch((err) => {\n console.error('Collection could not be created - ' + err);\n this._alerrtService.showErrorAlert(\n 'Collection could not be created - ' + err,\n );\n });\n });\n } else {\n const id = await firstValueFrom(this.createCollectionStore.id$);\n this._cap\n .updateCollection(id, c)\n .then(() => {\n this._alerrtService.showSuccessAlert('Collection updated - ' + ref);\n })\n .catch((err) => {\n console.error('Collection could not be updated - ' + err);\n this._alerrtService.showErrorAlert(\n 'Collection could not be updated - ' + err,\n );\n });\n }\n }\n\n private _onDestroy$: Subject;\n private _screenMode: ScreenMode;\n public _inputDataValid: boolean = false;\n constructor(\n public createCollectionStore: CollectionScreenStore,\n private _previewService: PreviewService,\n private _fs: ISimpleFileService,\n private _cap: ICentralAssetPlatformService,\n private _customerService: ICustomerService,\n private _alerrtService: AlertService,\n private _router: Router,\n ) {}\n ngOnInit(): void {\n this.createCollectionStore.screenMode$.subscribe((mode) => {\n this._screenMode = mode;\n });\n combineLatest(\n this.createCollectionStore.infoImage$,\n this.createCollectionStore.infoName$,\n ).subscribe((data) => {\n if (data[0] === '' || data[1] === '') {\n this._inputDataValid = false;\n } else {\n this._inputDataValid = true;\n }\n });\n }\n ngAfterViewInit(): void {\n this._onDestroy$ = new Subject();\n }\n ngOnDestroy(): void {\n if (this._onDestroy$) {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n }\n\n public async mapCollection() {\n const result: ICollection = {\n info: {\n name: '',\n imageUrl: '',\n },\n avatars: [],\n scenes: [],\n garments: [],\n outfits: [],\n };\n\n this.createCollectionStore.info$.pipe(take(1)).subscribe((data) => {\n result.info = data;\n });\n this.createCollectionStore.settings$.pipe(take(1)).subscribe((data) => {\n if (data !== undefined) result.settings = data;\n });\n this.createCollectionStore.avatars$.pipe(take(1)).subscribe((data) => {\n data.forEach((entry) => {\n const acc: CollectionAvatarReference[] = [];\n entry.references.map((r) => {\n acc.push({\n name: r.name,\n reference: r.reference,\n organizationId: r.organizationId,\n belongsTo: r.belongsTo,\n variant: r.variant,\n\n id: r.id,\n ...(r.belongsTo\n ? {\n additionalInformation: {\n ...r.additionalInformation,\n displayName: entry.displayName,\n },\n }\n : {}),\n });\n });\n result.avatars.push(...acc);\n });\n });\n this.createCollectionStore.scenes$.pipe(take(1)).subscribe((data) => {\n result.scenes = data.map((entry) => ({\n name: entry.name,\n reference: entry.reference,\n organizationId: entry.organizationId,\n id: entry.id,\n }));\n });\n this.createCollectionStore.garments$.pipe(take(1)).subscribe((data) => {\n result.garments = data.map((entry) => ({\n name: entry.name,\n reference: entry.reference,\n organizationId: entry.organizationId,\n garmentLink: entry.garmentLink,\n price: entry.price,\n id: entry.id,\n }));\n });\n\n const outfitsPromise = this.createCollectionStore.outfits$.pipe(\n take(1),\n concatMap(async (outfits: OutfitReferenceJson[]) => {\n const resultOutfits: OutfitReference[] = [];\n for (const outfit of outfits) {\n const resultUrl = outfit.resultUrl;\n const outfitData = await lastValueFrom(\n this._fs.readJsonFile(resultUrl),\n );\n resultOutfits.push(outfitData);\n }\n return resultOutfits;\n }),\n );\n\n const resultOutfits = await lastValueFrom(outfitsPromise);\n\n return {\n ...result,\n outfits: resultOutfits,\n };\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n {{\n (createCollectionStore.screenMode$ | async) === 'new'\n ? 'Create Collection'\n : 'Update Collection'\n }}\n\n\n\n {{ (createCollectionStore.loading$ | async) ? '' : 'View JSON' }}\n\n\n\n {{ (createCollectionStore.loading$ | async) ? '' : 'Preview' }}\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { CollectionInfoComponent } from './components/collection-info/collection-info.component';\nimport {\n PageContextService,\n RRLayoutModule,\n} from 'projects/web-ui-component-library/src';\nimport { ReferenceSelectionComponent } from './components/reference-search/reference-selection.component';\nimport { CollectionMainComponent } from './components/collection-main/collection-main.component';\nimport { ActivatedRoute } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { IAppState } from '../app.state';\nimport { selectCollectionById } from '../collection-overview/store/collections-overview.selector';\nimport { Subject, distinctUntilChanged, takeUntil } from 'rxjs';\nimport { loadCollections } from '../collection-overview/store/collections-overview.actions';\nimport { CollectionScreenStore } from './collection-screen.state';\nimport { ICustomerService } from '../customer';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CollectionSettingsComponent } from './components/collection-settings/collection-settings.component';\n\n@Component({\n selector: 'app-collection-screen',\n standalone: true,\n templateUrl: './collection-screen.component.html',\n styleUrl: './collection-screen.component.scss',\n imports: [\n CollectionInfoComponent,\n ReferenceSelectionComponent,\n CollectionMainComponent,\n RRLayoutModule,\n DragDropModule,\n CollectionSettingsComponent,\n ],\n})\nexport class CollectionScreenComponent implements OnInit, OnDestroy {\n private _collectionId = undefined;\n private _onDestroy$ = new Subject();\n constructor(\n private _pageContextService: PageContextService,\n private collectionScreenStore: CollectionScreenStore,\n private _customerService: ICustomerService,\n private route: ActivatedRoute,\n private store: Store,\n ) {}\n ngOnInit(): void {\n this._onDestroy$ = new Subject();\n this._customerService.currentCustomer$\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((customer) => {\n if (customer) {\n this.store.dispatch(\n loadCollections({\n pagination: {\n pageSize: 10,\n currentPage: 1,\n pageCount: 1,\n recordCount: 0,\n recordCountHidden: 1,\n },\n sort: { fieldName: 'test' },\n }),\n );\n }\n });\n\n this.route.params.pipe(takeUntil(this._onDestroy$)).subscribe((params) => {\n if (params['id']) {\n this._collectionId = params['id'];\n if (this._collectionId) {\n const collections$ = this.store.select(\n selectCollectionById(this._collectionId),\n );\n collections$\n .pipe(takeUntil(this._onDestroy$))\n .pipe(\n distinctUntilChanged(\n (a, b) => JSON.stringify(a) === JSON.stringify(b),\n ),\n )\n .subscribe((collection) => {\n if (collection !== undefined) {\n this.collectionScreenStore.setCollection(\n this._collectionId,\n collection.collection,\n );\n }\n });\n }\n }\n });\n\n this._pageContextService.clearPageActionBar();\n }\n\n ngOnDestroy(): void {\n if (this._onDestroy$) {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._onDestroy$.unsubscribe();\n this._onDestroy$ = undefined;\n }\n }\n}\n","\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n","import { NgModule, inject } from '@angular/core';\nimport { CanMatchFn, RouterModule, Routes } from '@angular/router';\nimport { AuthRoutes, IAuthService } from './auth';\nimport { NoPermissionPageComponent } from './auth/pages/no-permission-page/no-permission-page.component';\nimport { PatientPageComponent } from './auth/pages/patient/patient.page.component';\nimport { ProfilePageComponent } from './profile/components/profile-page/profile-page.component';\nimport { CollectionScreenComponent } from './collection-screen/collection-screen.component';\nimport { filter } from 'rxjs';\n\nconst canMatchCollectionCreator: CanMatchFn = () => {\n const r = inject(IAuthService).isCollectionCreator$.pipe(\n filter((isCollectionCreator) => isCollectionCreator !== undefined),\n );\n return r;\n};\n\nconst routes: Routes = [\n {\n path: 'patient',\n component: PatientPageComponent,\n pathMatch: 'full',\n },\n {\n path: 'no-permission',\n component: NoPermissionPageComponent,\n pathMatch: 'full',\n },\n {\n path: '',\n redirectTo: '/requests',\n pathMatch: 'full',\n },\n {\n path: 'requests',\n loadChildren: () =>\n import('./request-overview/request-overview.module').then(\n (m) => m.RequestOverviewModule,\n ),\n },\n {\n path: 'requests/:id',\n loadChildren: () =>\n import('./request-detail/request-detail.module').then(\n (m) => m.RequestDetailModule,\n ),\n },\n {\n path: 'profile',\n component: ProfilePageComponent,\n pathMatch: 'full',\n },\n {\n path: 'collections',\n canMatch: [canMatchCollectionCreator],\n loadChildren: () =>\n import('./collection-overview/collection-overview.module').then(\n (m) => m.CollectionOverviewModule,\n ),\n },\n {\n path: 'collections/:id',\n canMatch: [canMatchCollectionCreator],\n component: CollectionScreenComponent,\n },\n {\n path: 'collections/create',\n canMatch: [canMatchCollectionCreator],\n component: CollectionScreenComponent,\n },\n\n ...AuthRoutes,\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","export enum PRODUCT_TYPE_GROUP {\n PRODUCTS = 0,\n OUTFITS = 1,\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { RRBreadcrumbModel } from 'projects/web-ui-component-library/src';\nimport { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport { IRequestDetail, IRequestService } from '../../data';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbService {\n public breadcrumbs: RRBreadcrumbModel[];\n\n constructor(\n private router: Router,\n private _logger: ILogger,\n private _newRequestService: IRequestService,\n ) {\n this.breadcrumbs = [];\n }\n\n public resetBreadcrumbs() {\n this.breadcrumbs = [];\n }\n\n public getBreadcrumb(\n index: number,\n route: ActivatedRoute,\n currentId?: string,\n routeType?: string,\n ): void {\n if (\n !currentId &&\n typeof route.snapshot.params !== 'undefined' &&\n typeof route.snapshot.params.id !== 'undefined'\n ) {\n currentId = route.snapshot.params.id;\n }\n if (\n !routeType &&\n typeof route.snapshot.data !== 'undefined' &&\n typeof route.snapshot.data.type !== 'undefined'\n ) {\n routeType = route.snapshot.data.type;\n }\n\n let label = this.router.config[index].path;\n if (\n typeof this.router.config[index].data !== 'undefined' &&\n typeof this.router.config[index].data['breadcrumb'] !== 'undefined'\n ) {\n label = this.router.config[index].data['breadcrumb'];\n }\n\n const pathParameters = this.router.config[index].path.split('/');\n pathParameters.forEach((path, index) => {\n if (path.includes(':')) {\n pathParameters[index] = routeType\n ? currentId\n : route.snapshot.params[path.replace(':', '').trim()];\n }\n });\n if (routeType && currentId) {\n if (routeType == 'results') {\n this._newRequestService\n .getResult(currentId)\n .then((data) => {\n this._newRequestService\n .getRequestByID(data.configurationId)\n .then((data) => {\n this.addBreadcrumb(\n pathParameters,\n label,\n index,\n route,\n data,\n data.id,\n 'configurations',\n );\n })\n .catch((error) => {\n this._logger.error('Error', error);\n });\n })\n .catch((error) => {\n this._logger.error('Error', error);\n });\n } else {\n this.addBreadcrumb(pathParameters, label, index, route);\n }\n } else {\n this.addBreadcrumb(pathParameters, label, index, route);\n }\n }\n\n private addBreadcrumb(\n pathParameters: string[],\n label: string,\n index: number,\n route: ActivatedRoute,\n dropdown?: IRequestDetail,\n parentId?: string,\n routeType?: string,\n ): void {\n const tooltip = this.getBreadcrumbTooltip(dropdown);\n this.breadcrumbs.unshift({\n url: pathParameters.join('/'),\n label: label,\n tooltip,\n });\n\n if (\n typeof this.router.config[index].data !== 'undefined' &&\n typeof this.router.config[index].data['breadcrumbParentPath'] !==\n 'undefined'\n ) {\n const parentRouteIndex = this.router.config.indexOf(\n this.router.config.find(\n (x) =>\n x.path == this.router.config[index].data['breadcrumbParentPath'],\n ),\n );\n if (\n parentRouteIndex > -1 &&\n this.router.config[parentRouteIndex].path != ''\n ) {\n this.getBreadcrumb(parentRouteIndex, route, parentId, routeType);\n }\n }\n }\n\n private getBreadcrumbTooltip(dropdown?: any): string {\n let tooltip: string = null;\n if (dropdown) {\n tooltip = '';\n if (dropdown.id) {\n tooltip += `\n
    \n Id: \n \n ${dropdown.id}\n \n
    \n `;\n }\n\n if (dropdown.name) {\n tooltip += `\n
    \n Name: \n \n ${dropdown.name}\n \n
    \n `;\n }\n\n if (dropdown.sku) {\n tooltip += `\n
    \n SKU: \n \n ${dropdown.sku}\n \n
    \n `;\n }\n\n if (dropdown.customerName) {\n tooltip += `\n
    \n Customer Name: \n \n ${dropdown.customerName}\n \n
    \n `;\n }\n\n if (dropdown.createdAt) {\n tooltip += `\n
    \n Created At: \n \n ${new Date(dropdown.createdAt * 1000).toLocaleString()}\n \n
    \n `;\n }\n\n if (dropdown.dueAt) {\n tooltip += `\n
    \n Due At: \n \n ${new Date(dropdown.dueAt * 1000).toLocaleString()}\n \n
    \n `;\n }\n }\n\n return tooltip;\n }\n}\n","
    \n
    \n {{ alert.message }}\n
    \n
    \n","import { Component, Input, OnChanges } from '@angular/core';\nimport { RRAlertModel } from '../../models/alert.model';\n\n@Component({\n selector: 'rr-simple-alert',\n templateUrl: './simple-alert.component.html',\n styleUrls: ['./simple-alert.component.scss'],\n})\nexport class SimpleAlertComponent implements OnChanges {\n public simpleAlerts: RRAlertModel[];\n\n @Input() alerts: RRAlertModel;\n\n constructor() {\n this.simpleAlerts = [];\n }\n\n ngOnChanges() {\n if (this.alerts) {\n if (!this.alerts.timeout) {\n this.alerts.timeout = 3000;\n }\n this.simpleAlerts.push(this.alerts);\n }\n }\n onDismissAlert(dismissedAlert: any): void {\n this.simpleAlerts = this.simpleAlerts.filter(\n (alert) => alert !== dismissedAlert,\n );\n }\n}\n"," 0 && modalService.modalStack$\n | async as stack\n \"\n [ngTemplateOutlet]=\"modal\"\n [ngTemplateOutletContext]=\"{\n index: 0\n }\"\n>\n\n\n \n
    \n
    \n \n \n

    {{ !stack[index].headerTemplate ? stack[index].title : '' }}

    \n \n \n \n
    \n \n \n \n index + 1\"\n [ngTemplateOutlet]=\"modal\"\n [ngTemplateOutletContext]=\"{ index: index + 1 }\"\n >\n
    \n \n
    \n\n\n
    \n \n Discard\n \n \n
    \n
    \n","import {\n Component,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ModalProps, ModalService } from './modal.service';\n\n@Component({\n selector: 'rr-modal-container',\n templateUrl: './modal-container.component.html',\n styleUrls: ['./modal-container.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ModalContainerComponent {\n @ViewChild('confirmDiscard') confirmDiscard: TemplateRef;\n\n constructor(public modalService: ModalService) {}\n\n closeAfterConfirm(modal: ModalProps) {\n if (modal.dismissable ?? true) {\n if (modal.confirmDiscard) {\n this.modalService.show({\n title: 'Discard Changes?',\n template: this.confirmDiscard,\n showClose: false,\n dismissable: false,\n });\n return;\n }\n\n this.modalService.close();\n }\n }\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { ICustomerState } from './customer.state';\n\nconst feature = createFeatureSelector('customer');\n\nexport const selectCurrentCustomer = createSelector(\n feature,\n (state: ICustomerState) => state.currentCustomer,\n);\n\nexport const selectMyCustomers = createSelector(\n feature,\n (state: ICustomerState) => state.myCustomerList,\n);\n","
    \n
    \n \n
    \n {{ (currentCustomer$ | async)?.name }}\n Change customer\n
    \n \n
    \n
    \n \n
    \n {{ customer.name }}\n Current customer\n
    \n \n
    \n
    \n \n\n\n","import { Component, OnInit } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { CustomerDTO } from '@reactivereality/cs-api-sdk';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n takeUntil,\n} from 'rxjs';\nimport { setCurrentCustomerAction } from '../store/customer.actions';\nimport {\n selectCurrentCustomer,\n selectMyCustomers,\n} from '../store/customer.selectors';\nimport { ICustomerState } from '../store/customer.state';\n\n@Component({\n selector: 'app-customer-selector',\n templateUrl: './customer-selector.component.html',\n styleUrls: ['./customer-selector.component.scss'],\n})\nexport class CustomerSelectorComponent implements OnInit {\n public currentCustomer$: Observable;\n public myCustomers$: Observable>;\n public customersToDisplay$: BehaviorSubject> =\n new BehaviorSubject([]);\n public showSelection: boolean = false;\n private _onDestroy: Subject = new Subject();\n constructor(private store: Store) {\n this.currentCustomer$ = this.store.select(selectCurrentCustomer);\n this.myCustomers$ = this.store.select(selectMyCustomers);\n combineLatest([this.currentCustomer$, this.myCustomers$])\n .pipe(takeUntil(this._onDestroy))\n .subscribe(([currentCustomer, myCustomers]) => {\n if (currentCustomer && myCustomers) {\n this.customersToDisplay$.next([\n currentCustomer,\n ...myCustomers.filter((o) => o.id !== currentCustomer.id),\n ]);\n }\n });\n }\n\n ngOnInit(): void {\n this._onDestroy = new Subject();\n }\n ngOnDestroy(): void {\n this._onDestroy.next();\n this._onDestroy.complete();\n this._onDestroy = undefined;\n }\n switchCustomer(customer: CustomerDTO): void {\n this.showSelection = false;\n this.store.dispatch(\n setCurrentCustomerAction({\n currentCustomer: customer,\n }),\n );\n }\n}\n","
    \n \n \n \n \n \n \n Dashboard\n
    \n\n \n \n Collections\n \n \n New request\n \n \n\n \n \n \n
    \n\n \n
    \n {{ user.name }}\n
    \n \n {{ (currentUser$ | async).email }}\n \n \n \n \n Sign out\n \n \n\n\n\n\n \n\n","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { IAuthService } from '../../auth';\nimport { IUser, IUserService } from '../../data';\nimport { ModalService } from '../../modal/modal.service';\nimport { CreateRequestModalStore } from '../../request-overview/components/create-request-modal/create-request-modal.state';\n\n@Component({\n selector: 'app-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n})\nexport class MenuComponent implements OnInit {\n public currentUser$: Observable;\n public loggedIn$: Observable;\n public showMenu: boolean = false;\n\n @ViewChild('profileModal') profileModal: TemplateRef;\n\n constructor(\n public auth: IAuthService,\n public userService: IUserService,\n private createRequestModalStore: CreateRequestModalStore,\n public modalService: ModalService,\n ) {\n this.currentUser$ = userService.me.pipe(\n map((me) => {\n const { firstName, lastName, name } = me;\n const displayName = [firstName, lastName].join(' ').trim();\n\n me.name =\n name && name.trim().length > 0\n ? name\n : displayName.length > 0\n ? displayName\n : 'My Profile';\n return me;\n }),\n );\n this.loggedIn$ = auth.loggedUser$.pipe(\n map((u) => u !== undefined && u !== null),\n );\n }\n\n ngOnInit(): void {}\n\n logout(): void {\n this.auth.logOutClicked();\n }\n createNewRequest(): void {\n this.createRequestModalStore.startRequestAction();\n this.showMenu = false;\n }\n\n navigateToProfile(): void {\n // window.location.href = 'https://accounts.reactivereality.com/ui/profile';\n this.modalService.show({\n template: this.profileModal,\n title: 'Manage Profile',\n showClose: false,\n });\n }\n}\n","\n \n\n \n \n {{ parentLink.title }}\n  / \n \n {{ titleText }}\n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n\n\n \n\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n PageContext,\n PageContextService,\n} from 'projects/web-ui-component-library/src/public-api';\n\n@Component({\n selector: 'rr-top-app-bar',\n templateUrl: './top-app-bar.component.html',\n styleUrls: ['./top-app-bar.component.scss'],\n})\nexport class RRTopAppBarComponent implements AfterViewInit {\n @Input() titleText: string;\n @Input() parentLink?: { title: string; url: string };\n\n @Output() logout: EventEmitter = new EventEmitter();\n\n @ViewChild('actionBar', { read: ViewContainerRef, static: false })\n actionBar: ViewContainerRef;\n\n actionBarComponent: PageContext['actionBar'];\n\n constructor(\n private cdr: ChangeDetectorRef,\n private pageContext: PageContextService,\n ) {}\n\n ngAfterViewInit(): void {\n this.pageContext.subscribe((context) => {\n this.titleText = context.title;\n this.parentLink = context.parent;\n\n this.cdr.detectChanges();\n\n if (this.actionBarComponent?.type !== context.actionBar?.type) {\n this.actionBarComponent = context.actionBar;\n }\n\n if (this.actionBarComponent && this.actionBar) {\n this.actionBar.clear();\n const ref = this.actionBar.createComponent(\n this.actionBarComponent.type,\n );\n this.actionBarComponent.onCreate(ref.instance);\n }\n });\n }\n\n public get showActionBar(): boolean {\n return this.actionBarComponent !== undefined;\n }\n\n doLogout() {\n this.logout.emit();\n }\n\n // navigateTo(parentLink: { title: string; url: string; }) {\n // this.router.navigate([ parentLink.url ])\n // }\n}\n","\n
    \n

    \n We store necessary user data to make our site work. We'd also like to set\n analytics cookies that help us make improvements by measuring how you use\n the site. These will be set only if you accept.\n

    \n

    \n For more detailed information about the data we store in your browser, see\n here\n

    \n
    \n
    \n \n Accept\n \n \n Necessary Only\n \n
    \n
    \n","import {\n AfterViewInit,\n Component,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { UserDataPermissionService } from '../../../core/services/userdata-permission.service';\nimport { ModalService } from '../../../modal/modal.service';\n\n@Component({\n selector: 'app-user-data-permission',\n templateUrl: './user-data-permission.component.html',\n styleUrls: ['./user-data-permission.component.scss'],\n})\nexport class UserDataPermissionComponent implements AfterViewInit {\n @ViewChild('acceptUserData') acceptUserData: TemplateRef;\n\n constructor(\n public userDataPermission: UserDataPermissionService,\n public modalService: ModalService,\n ) {}\n\n ngAfterViewInit(): void {\n this.userDataPermission.granted$.subscribe((granted) => {\n if (granted.length === 0) {\n this.modalService.show({\n template: this.acceptUserData,\n title: 'User Data',\n dismissable: false,\n showClose: false,\n });\n } else {\n this.modalService.close();\n }\n });\n }\n\n acceptAll(): void {\n this.userDataPermission.grant('Core', 'UserExperience');\n window.location.reload();\n }\n\n acceptCore(): void {\n this.userDataPermission.grant('Core');\n window.location.reload();\n }\n}\n","\n\n\n \n\n\n\n\n\n\n\n\n \n\n\n\n
    \n
    \n \n New Request\n \n
    \n
    \n
    \n\n\n\n
    \n Do you really want to logout?\n
    \n \n \n
    \n
    \n
    \n","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport {\n ActivatedRoute,\n NavigationEnd,\n PRIMARY_OUTLET,\n Router,\n} from '@angular/router';\nimport {\n RRAlertModel,\n RRBreadcrumbModel,\n} from 'projects/web-ui-component-library/src';\nimport { filter, map } from 'rxjs/operators';\nimport { AlertService } from './core/services/alert.service';\nimport { BreadcrumbService } from './core/services/breadcrumb.service';\nimport { NgStorageManagerService } from './core/services/ng-storage-manager.service';\nimport { IAuthService } from './auth/api';\nimport { BehaviorSubject } from 'rxjs';\nimport { CreateRequestInputData } from './request-overview/components/create-request-modal/create-request-input.interface';\nimport { CreateRequestModalStore } from './request-overview/components/create-request-modal/create-request-modal.state';\nimport { ModalService } from './modal/modal.service';\nimport { PRODUCT_TYPE_GROUP } from './data/enums/product-type-group.enum';\nimport { CollectionScreenStore } from './collection-screen/collection-screen.state';\n\n@Component({\n selector: 'rr-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n providers: [CreateRequestModalStore, CollectionScreenStore],\n})\nexport class AppComponent implements OnInit {\n public isAuthenticated: boolean;\n public alerts: RRAlertModel;\n public showModal: boolean;\n public createInput$: BehaviorSubject =\n new BehaviorSubject(undefined);\n public selectedModalGroup$ = new BehaviorSubject(\n PRODUCT_TYPE_GROUP.PRODUCTS,\n );\n @ViewChild('createNewRequest') createNewRequest: TemplateRef;\n @ViewChild('createNewRequestHeader') createNewRequestHeader: TemplateRef;\n @ViewChild('logoutPrompt') logoutPrompt: TemplateRef;\n @ViewChild('createNewCollection') createNewCollection: TemplateRef;\n constructor(\n private _authService: IAuthService,\n private _router: Router,\n private _activatedRoute: ActivatedRoute,\n private _breadcrumbService: BreadcrumbService,\n private _alertService: AlertService,\n private _storageService: NgStorageManagerService,\n private createRequestModalStore: CreateRequestModalStore,\n private modalService: ModalService,\n ) {\n this.isAuthenticated = false;\n this.createRequestModalStore.startRequestAction$\n .pipe(filter((show) => show))\n .subscribe(() =>\n this.modalService.show({\n title: 'Create New Request',\n headerTemplate: this.createNewRequestHeader,\n template: this.createNewRequest,\n onClose: () => {\n this.createRequestModalStore.resetStartRequestAction();\n },\n }),\n );\n }\n\n ngOnInit() {\n this._alertService.subscribeAlert.subscribe((data: RRAlertModel) => {\n this.alerts = data;\n });\n\n this._authService.loginChanged$.subscribe((res: boolean) => {\n this.isAuthenticated = res;\n });\n\n this._authService.logOutClicked$.subscribe(() => {\n this.logout();\n });\n\n this._router.events\n .pipe(filter((event) => event instanceof NavigationEnd))\n .pipe(map(() => this._activatedRoute))\n .pipe(\n map((route) => {\n while (route.firstChild) {\n route = route.firstChild;\n }\n return route;\n }),\n )\n .pipe(filter((route) => route.outlet === PRIMARY_OUTLET))\n .subscribe((route) => {\n this._breadcrumbService.resetBreadcrumbs();\n\n const thisPath = route.snapshot.routeConfig.path;\n const activeRouteIndex = this._router.config.indexOf(\n this._router.config.find((x) => x.path == thisPath),\n );\n if (activeRouteIndex > -1 && thisPath != '') {\n this._breadcrumbService.getBreadcrumb(activeRouteIndex, route);\n }\n });\n }\n\n public getBreadcrumbs(): RRBreadcrumbModel[] {\n return this._breadcrumbService.breadcrumbs;\n }\n\n public login(): void {\n this._storageService.clearLocation('session');\n this._storageService.clearLocation('local');\n this._authService.login();\n }\n\n public logout(): void {\n this.modalService.show({\n title: '',\n template: this.logoutPrompt,\n });\n }\n public showHelpModal() {\n this.showModal = true;\n }\n public goToDocumentation() {\n window.open('https://docs.pictofit.com', '_blank');\n }\n\n cancelClicked() {\n this.modalService.close();\n }\n logoutClicked() {\n this._authService.logout();\n }\n}\n","import * as i0 from '@angular/core';\nimport { EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ViewChild, Input, Output, NgModule, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport JSONEditor from 'jsoneditor';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\n\n/* eslint-disable @typescript-eslint/ban-types */\nclass JsonEditorOptions {\n ace;\n ajv;\n /**\n * {function} onChange Callback method, triggered\n on change of contents.\n Does not pass the contents itself.\n See also `onChangeJSON` and\n `onChangeText`.\n */\n onChange;\n /**\n * // {function} onChangeJSON Callback method, triggered\n // in modes on change of contents,\n // passing the changed contents\n // as JSON.\n // Only applicable for modes\n // 'tree', 'view', and 'form'.\n */\n onChangeJSON;\n onNodeName;\n onCreateMenu;\n onColorPicker;\n /**\n // {function} onChangeText Callback method, triggered\n // in modes on change of contents,\n // passing the changed contents\n // as stringified JSON.\n */\n onChangeText;\n /**\n * {function} onSelectionChange Callback method,\n triggered on node selection change\n Only applicable for modes\n 'tree', 'view', and 'form'\n */\n onSelectionChange;\n /**\n * {function} onTextSelectionChange Callback method,\n triggered on text selection change\n Only applicable for modes\n */\n onTextSelectionChange;\n /**\n * // {function} onEvent Callback method, triggered\n // when an event occurs in\n // a JSON field or value.\n // Only applicable for\n // modes 'form', 'tree' and\n // 'view'\n */\n onEvent;\n /**\n * // * {function} onFocus Callback method, triggered\n // when the editor comes into focus,\n // passing an object {type, target},\n // Applicable for all modes\n */\n onFocus;\n // * {function} onBlur Callback method, triggered\n // when the editor goes out of focus,\n // passing an object {type, target},\n // Applicable for all modes\n onBlur;\n /**\n * // * {function} onClassName Callback method, triggered\n // when a Node DOM is rendered. Function returns\n // a css class name to be set on a node.\n // Only applicable for\n // modes 'form', 'tree' and\n // 'view'\n */\n onClassName;\n onEditable;\n /**\n * {function} onError Callback method, triggered\n when an error occurs\n */\n onError;\n onModeChange;\n onValidate;\n onValidationError;\n enableSort;\n enableTransform;\n escapeUnicode;\n expandAll;\n sortObjectKeys;\n history;\n mode;\n modes;\n name;\n schema;\n search;\n indentation;\n templates;\n theme;\n language;\n languages;\n /**\n * Adds main menu bar - Contains format, sort, transform, search etc. functionality. True\n * by default. Applicable in all types of mode.\n */\n mainMenuBar;\n /**\n * Adds navigation bar to the menu - the navigation bar visualize the current position on\n * the tree structure as well as allows breadcrumbs navigation.\n * True by default.\n * Only applicable when mode is 'tree', 'form' or 'view'.\n */\n navigationBar;\n /**\n * Adds status bar to the bottom of the editor - the status bar shows the cursor position\n * and a count of the selected characters.\n * True by default.\n * Only applicable when mode is 'code' or 'text'.\n */\n statusBar;\n constructor() {\n this.enableSort = true;\n this.enableTransform = true;\n this.escapeUnicode = false;\n this.expandAll = false;\n this.sortObjectKeys = false;\n this.history = true;\n this.mode = 'tree';\n this.search = true;\n this.indentation = 2;\n }\n}\n\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @angular-eslint/no-input-rename */\n/* eslint-disable @angular-eslint/no-output-native */\nclass JsonEditorComponent {\n jsonEditorContainer;\n options = new JsonEditorOptions();\n change = new EventEmitter();\n jsonChange = new EventEmitter();\n debug = false;\n optionsChanged = false;\n disabled = false;\n isFocused = false;\n id = 'angjsoneditor' + Math.floor(Math.random() * 1000000);\n _data = {};\n editor;\n constructor() { }\n set data(value) {\n this._data = value;\n if (this.editor) {\n this.editor.destroy();\n this.ngOnInit();\n }\n }\n ngOnInit() {\n let optionsBefore = this.options;\n if (!this.optionsChanged && this.editor) {\n optionsBefore = this.editor.options;\n }\n if (!this.options.onChangeJSON && this.jsonChange) {\n this.options.onChangeJSON = this.onChangeJSON.bind(this);\n }\n if (!this.options.onChange && this.change) {\n this.options.onChange = this.onChange.bind(this);\n }\n const optionsCopy = Object.assign({}, optionsBefore);\n // expandAll is an option only supported by ang-jsoneditor and not by the the original jsoneditor.\n delete optionsCopy.expandAll;\n if (this.debug) {\n console.log(optionsCopy, this._data);\n }\n if (!this.jsonEditorContainer.nativeElement) {\n console.error(`Can't find the ElementRef reference for jsoneditor)`);\n }\n if (optionsCopy.mode === 'text' || optionsCopy.mode === 'code' ||\n (optionsCopy.modes &&\n (optionsCopy.modes.indexOf('text') !== -1 || optionsCopy.modes.indexOf('code') !== -1))) {\n optionsCopy.onChangeJSON = null;\n }\n this.editor = new JSONEditor(this.jsonEditorContainer.nativeElement, optionsCopy, this._data);\n if (this.options.expandAll) {\n this.editor.expandAll();\n }\n }\n ngOnDestroy() {\n this.destroy();\n }\n /**\n * ngModel\n * ControlValueAccessor\n */\n // ControlValueAccessor implementation\n writeValue(value) {\n this.data = value;\n }\n // Implemented as part of ControlValueAccessor\n registerOnChange(fn) {\n this.onChangeModel = fn;\n }\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n onChange(e) {\n if (this.editor) {\n try {\n const json = this.editor.get();\n this.onChangeModel(json);\n this.change.emit(json);\n }\n catch (error) {\n if (this.debug) {\n console.log(error);\n }\n }\n }\n }\n onChangeJSON(e) {\n if (this.editor) {\n try {\n this.jsonChange.emit(this.editor.get());\n }\n catch (error) {\n if (this.debug) {\n console.log(error);\n }\n }\n }\n }\n /**\n * JSON EDITOR FUNCTIONS\n */\n collapseAll() {\n this.editor.collapseAll();\n }\n expandAll() {\n this.editor.expandAll();\n }\n focus() {\n this.editor.focus();\n }\n get() {\n return this.editor.get();\n }\n getMode() {\n return this.editor.getMode();\n }\n getName() {\n return this.editor.getName();\n }\n getText() {\n return this.editor.getText();\n }\n set(json) {\n this.editor.set(json);\n }\n setMode(mode) {\n this.editor.setMode(mode);\n }\n setName(name) {\n this.editor.setName(name);\n }\n setSelection(start, end) {\n this.editor.setSelection(start, end);\n }\n getSelection() {\n return this.editor.getSelection();\n }\n getValidateSchema() {\n return this.editor.validateSchema;\n }\n setSchema(schema, schemaRefs) {\n this.editor.setSchema(schema, schemaRefs);\n }\n search(query) {\n this.editor.search(query);\n }\n setOptions(newOptions) {\n if (this.editor) {\n this.editor.destroy();\n }\n this.optionsChanged = true;\n this.options = newOptions;\n this.ngOnInit();\n }\n update(json) {\n this.editor.update(json);\n }\n destroy() {\n this.editor.destroy();\n }\n getEditor() {\n return this.editor;\n }\n isValidJson() {\n try {\n JSON.parse(this.getText());\n return true;\n }\n catch (e) {\n return false;\n }\n }\n // Implemented as part of ControlValueAccessor.\n onTouched = () => {\n };\n // Implemented as part of ControlValueAccessor.\n onChangeModel = (e) => {\n };\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.8\", ngImport: i0, type: JsonEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.1.8\", type: JsonEditorComponent, selector: \"json-editor\", inputs: { options: \"options\", debug: \"debug\", data: \"data\" }, outputs: { change: \"change\", jsonChange: \"jsonChange\" }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => JsonEditorComponent),\n multi: true\n }\n ], viewQueries: [{ propertyName: \"jsonEditorContainer\", first: true, predicate: [\"jsonEditorContainer\"], descendants: true, static: true }], ngImport: i0, template: `
    `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.8\", ngImport: i0, type: JsonEditorComponent, decorators: [{\n type: Component,\n args: [{\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'json-editor',\n template: `
    `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => JsonEditorComponent),\n multi: true\n }\n ],\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return []; }, propDecorators: { jsonEditorContainer: [{\n type: ViewChild,\n args: ['jsonEditorContainer', { static: true }]\n }], options: [{\n type: Input\n }], change: [{\n type: Output\n }], jsonChange: [{\n type: Output\n }], debug: [{\n type: Input\n }], data: [{\n type: Input,\n args: ['data']\n }] } });\n\nclass NgJsonEditorModule {\n static forRoot() {\n return {\n ngModule: NgJsonEditorModule,\n providers: []\n };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.8\", ngImport: i0, type: NgJsonEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.1.8\", ngImport: i0, type: NgJsonEditorModule, declarations: [JsonEditorComponent], imports: [CommonModule,\n FormsModule], exports: [JsonEditorComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.1.8\", ngImport: i0, type: NgJsonEditorModule, imports: [CommonModule,\n FormsModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.8\", ngImport: i0, type: NgJsonEditorModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n FormsModule\n ],\n declarations: [\n JsonEditorComponent\n ],\n exports: [\n JsonEditorComponent\n ],\n schemas: [\n CUSTOM_ELEMENTS_SCHEMA,\n NO_ERRORS_SCHEMA\n ]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { JsonEditorComponent, JsonEditorOptions, NgJsonEditorModule };\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class CoreModule {}\n","// This is a magic string replaced by rollup\n\nconst SDK_VERSION = \"8.39.0\" ;\n\nexport { SDK_VERSION };\n","import { SDK_VERSION } from './version.js';\n\n/** Get's the global object for the current JavaScript runtime */\nconst GLOBAL_OBJ = globalThis ;\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__[]` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n const gbl = (obj || GLOBAL_OBJ) ;\n const __SENTRY__ = (gbl.__SENTRY__ = gbl.__SENTRY__ || {});\n const versionedCarrier = (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n return versionedCarrier[name] || (versionedCarrier[name] = creator());\n}\n\nexport { GLOBAL_OBJ, getGlobalSingleton };\n","const DEFAULT_ENVIRONMENT = 'production';\n\nexport { DEFAULT_ENVIRONMENT };\n","import { GLOBAL_OBJ, SDK_VERSION } from '@sentry/utils';\n\n/**\n * An object that contains globally accessible properties and maintains a scope stack.\n * @hidden\n */\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n // This ensures a Sentry carrier exists\n getSentryCarrier(GLOBAL_OBJ);\n return GLOBAL_OBJ;\n}\n\n/** Will either get the existing sentry carrier, or create a new one. */\nfunction getSentryCarrier(carrier) {\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n\n // For now: First SDK that sets the .version property wins\n __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n\n // Intentionally populating and returning the version of \"this\" SDK instance\n // rather than what's set in .version so that \"this\" SDK always gets its carrier\n return (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n}\n\nexport { getMainCarrier, getSentryCarrier };\n","// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n case '[object WebAssembly.Exception]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isParameterizedString(wat) {\n return (\n typeof wat === 'object' &&\n wat !== null &&\n '__sentry_template_string__' in wat &&\n '__sentry_template_values__' in wat\n );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\n/**\n * Checks whether given value's type is a Vue ViewModel.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isVueViewModel(wat) {\n // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n return !!(typeof wat === 'object' && wat !== null && ((wat ).__isVue || (wat )._isVue));\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isParameterizedString, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable, isVueViewModel };\n","import { isString } from './is.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(\n elem,\n options = {},\n) {\n if (!elem) {\n return '';\n }\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n const elem = el\n\n;\n\n const out = [];\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n // @ts-expect-error WINDOW has HTMLElement\n if (WINDOW.HTMLElement) {\n // If using the component name annotation plugin, this value may be available on the DOM node\n if (elem instanceof HTMLElement && elem.dataset) {\n if (elem.dataset['sentryComponent']) {\n return elem.dataset['sentryComponent'];\n }\n if (elem.dataset['sentryElement']) {\n return elem.dataset['sentryElement'];\n }\n }\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n const className = elem.className;\n if (className && isString(className)) {\n const classes = className.split(/\\s+/);\n for (const c of classes) {\n out.push(`.${c}`);\n }\n }\n }\n const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n for (const k of allowedAttrs) {\n const attr = elem.getAttribute(k);\n if (attr) {\n out.push(`[${k}=\"${attr}\"]`);\n }\n }\n\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existence of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getDomElement(selector) {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector) ;\n }\n return null;\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` or `data-sentry-element` attribute with `data-sentry-component` taking\n * precedence. This attribute is added at build-time by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nfunction getComponentName(elem) {\n // @ts-expect-error WINDOW has HTMLElement\n if (!WINDOW.HTMLElement) {\n return null;\n }\n\n let currentElem = elem ;\n const MAX_TRAVERSE_HEIGHT = 5;\n for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n if (!currentElem) {\n return null;\n }\n\n if (currentElem instanceof HTMLElement) {\n if (currentElem.dataset['sentryComponent']) {\n return currentElem.dataset['sentryComponent'];\n }\n if (currentElem.dataset['sentryElement']) {\n return currentElem.dataset['sentryElement'];\n }\n }\n\n currentElem = currentElem.parentNode;\n }\n\n return null;\n}\n\nexport { getComponentName, getDomElement, getLocationHref, htmlTreeAsString };\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { getGlobalSingleton, GLOBAL_OBJ } from './worldwide.js';\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\nconst CONSOLE_LEVELS = [\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'log',\n 'assert',\n 'trace',\n] ;\n\n/** This may be mutated by the console instrumentation. */\nconst originalConsoleMethods\n\n = {};\n\n/** JSDoc */\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const console = GLOBAL_OBJ.console ;\n const wrappedFuncs = {};\n\n const wrappedLevels = Object.keys(originalConsoleMethods) ;\n\n // Restore all wrapped console methods\n wrappedLevels.forEach(level => {\n const originalConsoleMethod = originalConsoleMethods[level] ;\n wrappedFuncs[level] = console[level] ;\n console[level] = originalConsoleMethod;\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n wrappedLevels.forEach(level => {\n console[level] = wrappedFuncs[level] ;\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n const logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n isEnabled: () => enabled,\n };\n\n if (DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(name => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n/**\n * This is a logger singleton which either logs things or no-ops if logging is not enabled.\n * The logger is a singleton on the carrier, to ensure that a consistent logger is used throughout the SDK.\n */\nconst logger = getGlobalSingleton('logger', makeLogger);\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger, originalConsoleMethods };\n","import { isVueViewModel, isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/8981\n if (isVueViewModel(value)) {\n output.push('[VueViewModel]');\n } else {\n output.push(String(value));\n }\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nfunction isMatchingPattern(\n value,\n pattern,\n requireExactStringMatch = false,\n) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nfunction stringMatchesSomePattern(\n testString,\n patterns = [],\n requireExactStringMatch = false,\n) {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, truncate };\n","import { htmlTreeAsString } from './browser.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { logger } from './logger.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] ;\n const wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n markFunctionWrapped(wrapped, original);\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n } catch (o_O) {\n DEBUG_BUILD && logger.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n } catch (o_O) {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argument itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(\n value,\n)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n const extractedProps = {};\n for (const property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n const firstKey = keys[0];\n\n if (!firstKey) {\n return '[object has no keys]';\n }\n\n if (firstKey.length >= maxLength) {\n return truncate(firstKey, maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPojo(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (const key of Object.getOwnPropertyNames(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n const returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\nfunction isPojo(input) {\n if (!isPlainObject(input)) {\n return false;\n }\n\n try {\n const name = (Object.getPrototypeOf(input) ).constructor.name;\n return !name || name === 'Object';\n } catch (e) {\n return true;\n }\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n","import { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n const gbl = GLOBAL_OBJ ;\n const crypto = gbl.crypto || gbl.msCrypto;\n\n let getRandomByte = () => Math.random() * 16;\n try {\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n if (crypto && crypto.getRandomValues) {\n getRandomByte = () => {\n // crypto.getRandomValues might return undefined instead of the typed array\n // in old Chromium versions (e.g. 23.0.1235.0 (151422))\n // However, `typedArray` is still filled in-place.\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues#typedarray\n const typedArray = new Uint8Array(1);\n crypto.getRandomValues(typedArray);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return typedArray[0];\n };\n }\n } catch (_) {\n // some runtimes can crash invoking crypto\n // https://github.com/getsentry/sentry-javascript/issues/8935\n }\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\nfunction _parseInt(input) {\n return parseInt(input || '', 10);\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = _parseInt(match[1]);\n const minor = _parseInt(match[2]);\n const patch = _parseInt(match[3]);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n // We guard here to ensure this is not larger than the existing number of lines\n const lineIndex = Math.min(maxLines - 1, sourceLine);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n frame.context_line = snipLine(lines[lineIndex], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\nfunction arrayify(maybeArray) {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, arrayify, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n","import { uuid4 } from './misc.js';\n\n/**\n * Returns a new minimal propagation context\n */\nfunction generatePropagationContext() {\n return {\n traceId: uuid4(),\n spanId: uuid4().substring(16),\n };\n}\n\nexport { generatePropagationContext };\n","import { GLOBAL_OBJ } from './worldwide.js';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n *\n * TODO(v8): Return type should be rounded.\n */\nfunction dateTimestampInSeconds() {\n return Date.now() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc() {\n const { performance } = GLOBAL_OBJ ;\n if (!performance || !performance.now) {\n return dateTimestampInSeconds;\n }\n\n // Some browser and environments don't have a timeOrigin, so we fallback to\n // using Date.now() to compute the starting time.\n const approxStartingTimeOrigin = Date.now() - performance.now();\n const timeOrigin = performance.timeOrigin == undefined ? approxStartingTimeOrigin : performance.timeOrigin;\n\n // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n //\n // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n // correct for this.\n // See: https://github.com/getsentry/sentry-javascript/issues/2590\n // See: https://github.com/mdn/content/issues/4713\n // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n return () => {\n return (timeOrigin + performance.now()) / ONE_SECOND_IN_MS;\n };\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nconst timestampInSeconds = createUnixTimestampInSecondsFunc();\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nconst browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = GLOBAL_OBJ ;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds };\n","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n","import { addNonEnumerableProperty } from '@sentry/utils';\n\nconst SCOPE_SPAN_FIELD = '_sentrySpan';\n\n/**\n * Set the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _setSpanForScope(scope, span) {\n if (span) {\n addNonEnumerableProperty(scope , SCOPE_SPAN_FIELD, span);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete (scope )[SCOPE_SPAN_FIELD];\n }\n}\n\n/**\n * Get the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nfunction _getSpanForScope(scope) {\n return scope[SCOPE_SPAN_FIELD];\n}\n\nexport { _getSpanForScope, _setSpanForScope };\n","import { generatePropagationContext, isPlainObject, dateTimestampInSeconds, uuid4, logger } from '@sentry/utils';\nimport { updateSession } from './session.js';\nimport { _setSpanForScope, _getSpanForScope } from './utils/spanOnScope.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information.\n */\nclass ScopeClass {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called during event processing. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /** Propagation Context for distributed tracing */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n\n /**\n * Transaction Name\n *\n * IMPORTANT: The transaction name on the scope has nothing to do with root spans/transaction objects.\n * It's purpose is to assign a transaction to the scope that's added to non-transaction events.\n */\n\n /** Session */\n\n /** Request Mode Session Status */\n\n /** The client on this scope */\n\n /** Contains the last event id of a captured event. */\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = generatePropagationContext();\n }\n\n /**\n * @inheritDoc\n */\n clone() {\n const newScope = new ScopeClass();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._requestSession = this._requestSession;\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n newScope._lastEventId = this._lastEventId;\n\n _setSpanForScope(newScope, _getSpanForScope(this));\n\n return newScope;\n }\n\n /**\n * @inheritDoc\n */\n setClient(client) {\n this._client = client;\n }\n\n /**\n * @inheritDoc\n */\n setLastEventId(lastEventId) {\n this._lastEventId = lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this._client ;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n // If null is passed we want to unset everything, but still define keys,\n // so that later down in the pipeline any existing values are cleared.\n this._user = user || {\n email: undefined,\n id: undefined,\n ip_address: undefined,\n username: undefined,\n };\n\n if (this._session) {\n updateSession(this._session, { user });\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n const [scopeInstance, requestSession] =\n scopeToMerge instanceof Scope\n ? [scopeToMerge.getScopeData(), scopeToMerge.getRequestSession()]\n : isPlainObject(scopeToMerge)\n ? [captureContext , (captureContext ).requestSession]\n : [];\n\n const { tags, extra, user, contexts, level, fingerprint = [], propagationContext } = scopeInstance || {};\n\n this._tags = { ...this._tags, ...tags };\n this._extra = { ...this._extra, ...extra };\n this._contexts = { ...this._contexts, ...contexts };\n\n if (user && Object.keys(user).length) {\n this._user = user;\n }\n\n if (level) {\n this._level = level;\n }\n\n if (fingerprint.length) {\n this._fingerprint = fingerprint;\n }\n\n if (propagationContext) {\n this._propagationContext = propagationContext;\n }\n\n if (requestSession) {\n this._requestSession = requestSession;\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n // client is not cleared here on purpose!\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._session = undefined;\n _setSpanForScope(this, undefined);\n this._attachments = [];\n this._propagationContext = generatePropagationContext();\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n const breadcrumbs = this._breadcrumbs;\n breadcrumbs.push(mergedBreadcrumb);\n this._breadcrumbs = breadcrumbs.length > maxCrumbs ? breadcrumbs.slice(-maxCrumbs) : breadcrumbs;\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /** @inheritDoc */\n getScopeData() {\n return {\n breadcrumbs: this._breadcrumbs,\n attachments: this._attachments,\n contexts: this._contexts,\n tags: this._tags,\n extra: this._extra,\n user: this._user,\n level: this._level,\n fingerprint: this._fingerprint || [],\n eventProcessors: this._eventProcessors,\n propagationContext: this._propagationContext,\n sdkProcessingMetadata: this._sdkProcessingMetadata,\n transactionName: this._transactionName,\n span: _getSpanForScope(this),\n };\n }\n\n /**\n * @inheritDoc\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setPropagationContext(context) {\n this._propagationContext = context;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getPropagationContext() {\n return this._propagationContext;\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture exception!');\n return eventId;\n }\n\n const syntheticException = new Error('Sentry syntheticException');\n\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(message, level, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture message!');\n return eventId;\n }\n\n const syntheticException = new Error(message);\n\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture event!');\n return eventId;\n }\n\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n return eventId;\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\n// NOTE: By exporting this here as const & type, instead of doing `export class`,\n// We can get the correct class when importing from `@sentry/core`, but the original type (from `@sentry/types`)\n// This is helpful for interop, e.g. when doing `import type { Scope } from '@sentry/node';` (which re-exports this)\n\n/**\n * Holds additional event information.\n */\nconst Scope = ScopeClass;\n\n/**\n * Holds additional event information.\n */\n\nexport { Scope };\n","import { isThenable } from '@sentry/utils';\nimport { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes.js';\nimport { Scope } from '../scope.js';\nimport { getMainCarrier, getSentryCarrier } from '../carrier.js';\n\n/**\n * This is an object that holds a stack of scopes.\n */\nclass AsyncContextStack {\n\n constructor(scope, isolationScope) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n } else {\n assignedScope = scope;\n }\n\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n } else {\n assignedIsolationScope = isolationScope;\n }\n\n // scope stack for domains or the process\n this._stack = [{ scope: assignedScope }];\n this._isolationScope = assignedIsolationScope;\n }\n\n /**\n * Fork a scope for the stack.\n */\n withScope(callback) {\n const scope = this._pushScope();\n\n let maybePromiseResult;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n this._popScope();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n // @ts-expect-error - isThenable returns the wrong type\n return maybePromiseResult.then(\n res => {\n this._popScope();\n return res;\n },\n e => {\n this._popScope();\n throw e;\n },\n );\n }\n\n this._popScope();\n return maybePromiseResult;\n }\n\n /**\n * Get the client of the stack.\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /**\n * Returns the scope of the top stack.\n */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /**\n * Get the isolation scope for the stack.\n */\n getIsolationScope() {\n return this._isolationScope;\n }\n\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n */\n getStackTop() {\n return this._stack[this._stack.length - 1] ;\n }\n\n /**\n * Push a scope to the stack.\n */\n _pushScope() {\n // We want to clone the content of prev scope\n const scope = this.getScope().clone();\n this._stack.push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * Pop a scope from the stack.\n */\n _popScope() {\n if (this._stack.length <= 1) return false;\n return !!this._stack.pop();\n }\n}\n\n/**\n * Get the global async context stack.\n * This will be removed during the v8 cycle and is only here to make migration easier.\n */\nfunction getAsyncContextStack() {\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n\n return (sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope()));\n}\n\nfunction withScope(callback) {\n return getAsyncContextStack().withScope(callback);\n}\n\nfunction withSetScope(scope, callback) {\n const stack = getAsyncContextStack() ;\n return stack.withScope(() => {\n stack.getStackTop().scope = scope;\n return callback(scope);\n });\n}\n\nfunction withIsolationScope(callback) {\n return getAsyncContextStack().withScope(() => {\n return callback(getAsyncContextStack().getIsolationScope());\n });\n}\n\n/**\n * Get the stack-based async context strategy.\n */\nfunction getStackAsyncContextStrategy() {\n return {\n withIsolationScope,\n withScope,\n withSetScope,\n withSetIsolationScope: (_isolationScope, callback) => {\n return withIsolationScope(callback);\n },\n getCurrentScope: () => getAsyncContextStack().getScope(),\n getIsolationScope: () => getAsyncContextStack().getIsolationScope(),\n };\n}\n\nexport { AsyncContextStack, getStackAsyncContextStrategy };\n","import { getGlobalSingleton } from '@sentry/utils';\nimport { Scope } from './scope.js';\n\n/** Get the default current scope. */\nfunction getDefaultCurrentScope() {\n return getGlobalSingleton('defaultCurrentScope', () => new Scope());\n}\n\n/** Get the default isolation scope. */\nfunction getDefaultIsolationScope() {\n return getGlobalSingleton('defaultIsolationScope', () => new Scope());\n}\n\nexport { getDefaultCurrentScope, getDefaultIsolationScope };\n","import { getMainCarrier, getSentryCarrier } from '../carrier.js';\nimport { getStackAsyncContextStrategy } from './stackStrategy.js';\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nfunction setAsyncContextStrategy(strategy) {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n sentry.acs = strategy;\n}\n\n/**\n * Get the current async context strategy.\n * If none has been setup, the default will be used.\n */\nfunction getAsyncContextStrategy(carrier) {\n const sentry = getSentryCarrier(carrier);\n\n if (sentry.acs) {\n return sentry.acs;\n }\n\n // Otherwise, use the default one (stack)\n return getStackAsyncContextStrategy();\n}\n\nexport { getAsyncContextStrategy, setAsyncContextStrategy };\n","import { getGlobalSingleton } from '@sentry/utils';\nimport { getAsyncContextStrategy } from './asyncContext/index.js';\nimport { getMainCarrier } from './carrier.js';\nimport { Scope } from './scope.js';\n\n/**\n * Get the currently active scope.\n */\nfunction getCurrentScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getCurrentScope();\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current execution context.\n */\nfunction getIsolationScope() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getIsolationScope();\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nfunction getGlobalScope() {\n return getGlobalSingleton('globalScope', () => new Scope());\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n */\n\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nfunction withScope(\n ...rest\n) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [scope, callback] = rest;\n\n if (!scope) {\n return acs.withScope(callback);\n }\n\n return acs.withSetScope(scope, callback);\n }\n\n return acs.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n */\n\n/**\n * Either creates a new active isolation scope, or sets the given isolation scope as active scope in the given callback.\n */\nfunction withIsolationScope(\n ...rest\n\n) {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [isolationScope, callback] = rest;\n\n if (!isolationScope) {\n return acs.withIsolationScope(callback);\n }\n\n return acs.withSetIsolationScope(isolationScope, callback);\n }\n\n return acs.withIsolationScope(rest[0]);\n}\n\n/**\n * Get the currently active client.\n */\nfunction getClient() {\n return getCurrentScope().getClient();\n}\n\nexport { getClient, getCurrentScope, getGlobalScope, getIsolationScope, withIsolationScope, withScope };\n","import { GLOBAL_OBJ } from './worldwide.js';\n\nconst debugIdStackParserCache = new WeakMap();\n\n/**\n * Returns a map of filenames to debug identifiers.\n */\nfunction getFilenameToDebugIdMap(stackParser) {\n const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n if (!debugIdMap) {\n return {};\n }\n\n let debugIdStackFramesCache;\n const cachedDebugIdStackFrameCache = debugIdStackParserCache.get(stackParser);\n if (cachedDebugIdStackFrameCache) {\n debugIdStackFramesCache = cachedDebugIdStackFrameCache;\n } else {\n debugIdStackFramesCache = new Map();\n debugIdStackParserCache.set(stackParser, debugIdStackFramesCache);\n }\n\n // Build a map of filename -> debug_id.\n return Object.keys(debugIdMap).reduce((acc, debugIdStackTrace) => {\n let parsedStack;\n\n const cachedParsedStack = debugIdStackFramesCache.get(debugIdStackTrace);\n if (cachedParsedStack) {\n parsedStack = cachedParsedStack;\n } else {\n parsedStack = stackParser(debugIdStackTrace);\n debugIdStackFramesCache.set(debugIdStackTrace, parsedStack);\n }\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n const file = stackFrame && stackFrame.filename;\n\n if (stackFrame && file) {\n acc[file] = debugIdMap[debugIdStackTrace] ;\n break;\n }\n }\n return acc;\n }, {});\n}\n\n/**\n * Returns a list of debug images for the given resources.\n */\nfunction getDebugImagesForResources(\n stackParser,\n resource_paths,\n) {\n const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n const images = [];\n for (const path of resource_paths) {\n if (path && filenameDebugIdMap[path]) {\n images.push({\n type: 'sourcemap',\n code_file: path,\n debug_id: filenameDebugIdMap[path] ,\n });\n }\n }\n\n return images;\n}\n\nexport { getDebugImagesForResources, getFilenameToDebugIdMap };\n","const STACKTRACE_FRAME_LIMIT = 50;\nconst UNKNOWN_FUNCTION = '?';\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirstLines = 0, framesToPop = 0) => {\n const frames = [];\n const lines = stack.split('\\n');\n\n for (let i = skipFirstLines; i < lines.length; i++) {\n const line = lines[i] ;\n // Ignore lines over 1kb as they are unlikely to be stack frames.\n // Many of the regular expressions use backtracking which results in run time that increases exponentially with\n // input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n continue;\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue;\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n break;\n }\n }\n\n return stripSentryFramesAndReverse(frames.slice(framesToPop));\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n const localStack = Array.from(stack);\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (/sentryWrapped/.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n\n // Reversing in the middle of the procedure allows us to just pop the values off the stack\n localStack.reverse();\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n\n // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n // is produced within the hub itself, making it:\n //\n // Sentry.captureException()\n // getCurrentHub().captureException()\n //\n // instead of just the top `Sentry` call itself.\n // This forces us to possibly strip an additional frame in the exact same was as above.\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n }\n\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n ...frame,\n filename: frame.filename || getLastStackFrame(localStack).filename,\n function: frame.function || UNKNOWN_FUNCTION,\n }));\n}\n\nfunction getLastStackFrame(arr) {\n return arr[arr.length - 1] || {};\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n/**\n * Get's stack frames from an event without needing to check for undefined properties.\n */\nfunction getFramesFromEvent(event) {\n const exception = event.exception;\n\n if (exception) {\n const frames = [];\n try {\n // @ts-expect-error Object could be undefined\n exception.values.forEach(value => {\n // @ts-expect-error Value could be undefined\n if (value.stacktrace.frames) {\n // @ts-expect-error Value could be undefined\n frames.push(...value.stacktrace.frames);\n }\n });\n return frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { UNKNOWN_FUNCTION, createStackParser, getFramesFromEvent, getFunctionName, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n","import { isVueViewModel, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normalized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction normalize(input, depth = 100, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (\n value == null || // this matches null and undefined -> eqeq not eqeqeq\n ['boolean', 'string'].includes(typeof value) ||\n (typeof value === 'number' && Number.isFinite(value))\n ) {\n return value ;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n // We keep a certain amount of depth.\n // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n const remainingDepth =\n typeof (value )['__sentry_override_normalization_depth__'] === 'number'\n ? ((value )['__sentry_override_normalization_depth__'] )\n : depth;\n\n // We're also done if we've reached the max depth\n if (remainingDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value );\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n if (isVueViewModel(value)) {\n return '[VueViewModel]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && !Number.isFinite(value)) {\n return `[${value}]`;\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n const objName = getConstructorName(value);\n\n // Handle HTML Elements\n if (/^HTML(\\w*)Element$/.test(objName)) {\n return `[HTMLElement: ${objName}]`;\n }\n\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value) {\n const prototype = Object.getPrototypeOf(value);\n\n return prototype ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nfunction normalizeUrlToBase(url, basePath) {\n const escapedBase = basePath\n // Backslash to forward\n .replace(/\\\\/g, '/')\n // Escape RegExp special characters\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch (_Oo) {\n // Sometime this breaks\n }\n return (\n newUrl\n .replace(/\\\\/g, '/')\n .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n );\n}\n\nexport { normalize, normalizeToSize, normalizeUrlToBase };\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n","import { isThenable } from './is.js';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n const PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n const RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n const REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n\n constructor(\n executor,\n ) {SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);\n this._state = States.PENDING;\n this._handlers = [];\n\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init2() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init3() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init4() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n","import { SyncPromise, logger, isThenable } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nfunction notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n) {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) ;\n\n DEBUG_BUILD && processor.id && result === null && logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n}\n\nexport { notifyEventProcessors };\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { isString } from './is.js';\nimport { logger } from './logger.js';\n\nconst BAGGAGE_HEADER_NAME = 'baggage';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nfunction baggageHeaderToDynamicSamplingContext(\n // Very liberal definition of what any incoming header might look like\n baggageHeader,\n) {\n const baggageObject = parseBaggageHeader(baggageHeader);\n\n if (!baggageObject) {\n return undefined;\n }\n\n // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n\n // Only return a dynamic sampling context object if there are keys in it.\n // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext ;\n } else {\n return undefined;\n }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nfunction dynamicSamplingContextToSentryBaggageHeader(\n // this also takes undefined for convenience and bundle size in other places\n dynamicSamplingContext,\n) {\n if (!dynamicSamplingContext) {\n return undefined;\n }\n\n // Prefix all DSC keys with \"sentry-\" and put them into a new object\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {},\n );\n\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Take a baggage header and parse it into an object.\n */\nfunction parseBaggageHeader(\n baggageHeader,\n) {\n if (!baggageHeader || (!isString(baggageHeader) && !Array.isArray(baggageHeader))) {\n return undefined;\n }\n\n if (Array.isArray(baggageHeader)) {\n // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n return baggageHeader.reduce((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n Object.entries(currBaggageObject).forEach(([key, value]) => {\n acc[key] = value;\n });\n return acc;\n }, {});\n }\n\n return baggageHeaderToObject(baggageHeader);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader) {\n return baggageHeader\n .split(',')\n .map(baggageEntry => baggageEntry.split('=').map(keyOrValue => decodeURIComponent(keyOrValue.trim())))\n .reduce((acc, [key, value]) => {\n if (key && value) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nfunction objectToBaggageHeader(object) {\n if (Object.keys(object).length === 0) {\n // An empty baggage header is not spec compliant: We return undefined.\n return undefined;\n }\n\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, '');\n}\n\nexport { BAGGAGE_HEADER_NAME, MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, parseBaggageHeader };\n","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Use this attribute to represent the sample rate used for a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/** The reason why an idle span finished. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = 'sentry.idle_span_finish_reason';\n\n/** The unit of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = 'sentry.measurement_unit';\n\n/** The value of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = 'sentry.measurement_value';\n\n/**\n * The id of the profile that this span occurred in.\n */\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = 'sentry.profile_id';\n\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = 'sentry.exclusive_time';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = 'cache.hit';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = 'cache.key';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = 'cache.item_size';\n\n/** TODO: Remove these once we update to latest semantic conventions */\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = 'http.request.method';\nconst SEMANTIC_ATTRIBUTE_URL_FULL = 'url.full';\n\nexport { SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_URL_FULL };\n","import { dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * key: bucketKey\n * value: [exportKey, MetricSummary]\n */\n\nconst METRICS_SPAN_FIELD = '_sentryMetrics';\n\n/**\n * Fetches the metric summary if it exists for the passed span\n */\nfunction getMetricSummaryJsonForSpan(span) {\n const storage = (span )[METRICS_SPAN_FIELD];\n\n if (!storage) {\n return undefined;\n }\n const output = {};\n\n for (const [, [exportKey, summary]] of storage) {\n const arr = output[exportKey] || (output[exportKey] = []);\n arr.push(dropUndefinedKeys(summary));\n }\n\n return output;\n}\n\n/**\n * Updates the metric summary on a span.\n */\nfunction updateMetricSummaryOnSpan(\n span,\n metricType,\n sanitizedName,\n value,\n unit,\n tags,\n bucketKey,\n) {\n const existingStorage = (span )[METRICS_SPAN_FIELD];\n const storage =\n existingStorage ||\n ((span )[METRICS_SPAN_FIELD] = new Map());\n\n const exportKey = `${metricType}:${sanitizedName}@${unit}`;\n const bucketItem = storage.get(bucketKey);\n\n if (bucketItem) {\n const [, summary] = bucketItem;\n storage.set(bucketKey, [\n exportKey,\n {\n min: Math.min(summary.min, value),\n max: Math.max(summary.max, value),\n count: (summary.count += 1),\n sum: (summary.sum += value),\n tags: summary.tags,\n },\n ]);\n } else {\n storage.set(bucketKey, [\n exportKey,\n {\n min: value,\n max: value,\n count: 1,\n sum: value,\n tags,\n },\n ]);\n }\n}\n\nexport { getMetricSummaryJsonForSpan, updateMetricSummaryOnSpan };\n","const SPAN_STATUS_UNSET = 0;\nconst SPAN_STATUS_OK = 1;\nconst SPAN_STATUS_ERROR = 2;\n\n/**\n * Converts a HTTP status code into a sentry status with a message.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\n// https://develop.sentry.dev/sdk/event-payloads/span/\nfunction getSpanStatusFromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return { code: SPAN_STATUS_OK };\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return { code: SPAN_STATUS_ERROR, message: 'unauthenticated' };\n case 403:\n return { code: SPAN_STATUS_ERROR, message: 'permission_denied' };\n case 404:\n return { code: SPAN_STATUS_ERROR, message: 'not_found' };\n case 409:\n return { code: SPAN_STATUS_ERROR, message: 'already_exists' };\n case 413:\n return { code: SPAN_STATUS_ERROR, message: 'failed_precondition' };\n case 429:\n return { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' };\n case 499:\n return { code: SPAN_STATUS_ERROR, message: 'cancelled' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'invalid_argument' };\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return { code: SPAN_STATUS_ERROR, message: 'unimplemented' };\n case 503:\n return { code: SPAN_STATUS_ERROR, message: 'unavailable' };\n case 504:\n return { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n }\n }\n\n return { code: SPAN_STATUS_ERROR, message: 'unknown_error' };\n}\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nfunction setHttpStatus(span, httpStatus) {\n span.setAttribute('http.response.status_code', httpStatus);\n\n const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n if (spanStatus.message !== 'unknown_error') {\n span.setStatus(spanStatus);\n }\n}\n\nexport { SPAN_STATUS_ERROR, SPAN_STATUS_OK, SPAN_STATUS_UNSET, getSpanStatusFromHttpCode, setHttpStatus };\n","import { dropUndefinedKeys, generateSentryTraceHeader, timestampInSeconds, addNonEnumerableProperty } from '@sentry/utils';\nimport { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getCurrentScope } from '../currentScopes.js';\nimport { getMetricSummaryJsonForSpan, updateMetricSummaryOnSpan } from '../metrics/metric-summary.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\nimport { SPAN_STATUS_UNSET, SPAN_STATUS_OK } from '../tracing/spanstatus.js';\nimport { _getSpanForScope } from './spanOnScope.js';\n\n// These are aligned with OpenTelemetry trace flags\nconst TRACE_FLAG_NONE = 0x0;\nconst TRACE_FLAG_SAMPLED = 0x1;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n * By default, this will only include trace_id, span_id & parent_span_id.\n * If `includeAllData` is true, it will also include data, op, status & origin.\n */\nfunction spanToTransactionTraceContext(span) {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, origin } = spanToJSON(span);\n\n return dropUndefinedKeys({\n parent_span_id,\n span_id,\n trace_id,\n data,\n op,\n status,\n origin,\n });\n}\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in a non-transaction event.\n */\nfunction spanToTraceContext(span) {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { parent_span_id } = spanToJSON(span);\n\n return dropUndefinedKeys({ parent_span_id, span_id, trace_id });\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nfunction spanToTraceHeader(span) {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a span time input into a timestamp in seconds.\n */\nfunction spanTimeInputToSeconds(input) {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp) {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n */\n// Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n// This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n// And `spanToJSON` needs the Span class from `span.ts` to check here.\nfunction spanToJSON(span) {\n if (spanIsSentrySpan(span)) {\n return span.getSpanJSON();\n }\n\n try {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, parentSpanId, status } = span;\n\n return dropUndefinedKeys({\n span_id,\n trace_id,\n data: attributes,\n description: name,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || undefined,\n status: getStatusMessage(status),\n op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] ,\n _metrics_summary: getMetricSummaryJsonForSpan(span),\n });\n }\n\n // Finally, at least we have `spanContext()`....\n return {\n span_id,\n trace_id,\n };\n } catch (e) {\n return {};\n }\n}\n\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span) {\n const castSpan = span ;\n return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\n\n/** Exported only for tests. */\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSentrySpan(span) {\n return typeof (span ).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nfunction spanIsSampled(span) {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n return traceFlags === TRACE_FLAG_SAMPLED;\n}\n\n/** Get the status message to use for a JSON representation of a span. */\nfunction getStatusMessage(status) {\n if (!status || status.code === SPAN_STATUS_UNSET) {\n return undefined;\n }\n\n if (status.code === SPAN_STATUS_OK) {\n return 'ok';\n }\n\n return status.message || 'unknown_error';\n}\n\nconst CHILD_SPANS_FIELD = '_sentryChildSpans';\nconst ROOT_SPAN_FIELD = '_sentryRootSpan';\n\n/**\n * Adds an opaque child span reference to a span.\n */\nfunction addChildSpanToSpan(span, childSpan) {\n // We store the root span reference on the child span\n // We need this for `getRootSpan()` to work\n const rootSpan = span[ROOT_SPAN_FIELD] || span;\n addNonEnumerableProperty(childSpan , ROOT_SPAN_FIELD, rootSpan);\n\n // We store a list of child spans on the parent span\n // We need this for `getSpanDescendants()` to work\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].add(childSpan);\n } else {\n addNonEnumerableProperty(span, CHILD_SPANS_FIELD, new Set([childSpan]));\n }\n}\n\n/** This is only used internally by Idle Spans. */\nfunction removeChildSpanFromSpan(span, childSpan) {\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].delete(childSpan);\n }\n}\n\n/**\n * Returns an array of the given span and all of its descendants.\n */\nfunction getSpanDescendants(span) {\n const resultSet = new Set();\n\n function addSpanChildren(span) {\n // This exit condition is required to not infinitely loop in case of a circular dependency.\n if (resultSet.has(span)) {\n return;\n // We want to ignore unsampled spans (e.g. non recording spans)\n } else if (spanIsSampled(span)) {\n resultSet.add(span);\n const childSpans = span[CHILD_SPANS_FIELD] ? Array.from(span[CHILD_SPANS_FIELD]) : [];\n for (const childSpan of childSpans) {\n addSpanChildren(childSpan);\n }\n }\n }\n\n addSpanChildren(span);\n\n return Array.from(resultSet);\n}\n\n/**\n * Returns the root span of a given span.\n */\nfunction getRootSpan(span) {\n return span[ROOT_SPAN_FIELD] || span;\n}\n\n/**\n * Returns the currently active span.\n */\nfunction getActiveSpan() {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getActiveSpan) {\n return acs.getActiveSpan();\n }\n\n return _getSpanForScope(getCurrentScope());\n}\n\n/**\n * Updates the metric summary on the currently active span\n */\nfunction updateMetricSummaryOnActiveSpan(\n metricType,\n sanitizedName,\n value,\n unit,\n tags,\n bucketKey,\n) {\n const span = getActiveSpan();\n if (span) {\n updateMetricSummaryOnSpan(span, metricType, sanitizedName, value, unit, tags, bucketKey);\n }\n}\n\nexport { TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, getActiveSpan, getRootSpan, getSpanDescendants, getStatusMessage, removeChildSpanFromSpan, spanIsSampled, spanTimeInputToSeconds, spanToJSON, spanToTraceContext, spanToTraceHeader, spanToTransactionTraceContext, updateMetricSummaryOnActiveSpan };\n","import { dropUndefinedKeys, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, addNonEnumerableProperty } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getClient } from '../currentScopes.js';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';\nimport { hasTracingEnabled } from '../utils/hasTracingEnabled.js';\nimport { spanToJSON, getRootSpan, spanIsSampled } from '../utils/spanUtils.js';\n\n/**\n * If you change this value, also update the terser plugin config to\n * avoid minification of the object property!\n */\nconst FROZEN_DSC_FIELD = '_frozenDsc';\n\n/**\n * Freeze the given DSC on the given span.\n */\nfunction freezeDscOnSpan(span, dsc) {\n const spanWithMaybeDsc = span ;\n addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nfunction getDynamicSamplingContextFromClient(trace_id, client) {\n const options = client.getOptions();\n\n const { publicKey: public_key } = client.getDsn() || {};\n\n const dsc = dropUndefinedKeys({\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n public_key,\n trace_id,\n }) ;\n\n client.emit('createDsc', dsc);\n\n return dsc;\n}\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nfunction getDynamicSamplingContextFromSpan(span) {\n const client = getClient();\n if (!client) {\n return {};\n }\n\n const dsc = getDynamicSamplingContextFromClient(spanToJSON(span).trace_id || '', client);\n\n const rootSpan = getRootSpan(span);\n\n // For core implementation, we freeze the DSC onto the span as a non-enumerable property\n const frozenDsc = (rootSpan )[FROZEN_DSC_FIELD];\n if (frozenDsc) {\n return frozenDsc;\n }\n\n // For OpenTelemetry, we freeze the DSC on the trace state\n const traceState = rootSpan.spanContext().traceState;\n const traceStateDsc = traceState && traceState.get('sentry.dsc');\n\n // If the span has a DSC, we want it to take precedence\n const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n\n if (dscOnTraceState) {\n return dscOnTraceState;\n }\n\n // Else, we generate it from the span\n const jsonSpan = spanToJSON(rootSpan);\n const attributes = jsonSpan.data || {};\n const maybeSampleRate = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n\n if (maybeSampleRate != null) {\n dsc.sample_rate = `${maybeSampleRate}`;\n }\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n // after JSON conversion, txn.name becomes jsonSpan.description\n const name = jsonSpan.description;\n if (source !== 'url' && name) {\n dsc.transaction = name;\n }\n\n // How can we even land here with hasTracingEnabled() returning false?\n // Otel creates a Non-recording span in Tracing Without Performance mode when handling incoming requests\n // So we end up with an active span that is not sampled (neither positively nor negatively)\n if (hasTracingEnabled()) {\n dsc.sampled = String(spanIsSampled(rootSpan));\n }\n\n client.emit('createDsc', dsc, rootSpan);\n\n return dsc;\n}\n\n/**\n * Convert a Span to a baggage header.\n */\nfunction spanToBaggageHeader(span) {\n const dsc = getDynamicSamplingContextFromSpan(span);\n return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n\nexport { freezeDscOnSpan, getDynamicSamplingContextFromClient, getDynamicSamplingContextFromSpan, spanToBaggageHeader };\n","import { getClient } from '../currentScopes.js';\n\n// Treeshakable guard to remove all code related to tracing\n\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nfunction hasTracingEnabled(\n maybeOptions,\n) {\n if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n return false;\n }\n\n const client = getClient();\n const options = maybeOptions || (client && client.getOptions());\n // eslint-disable-next-line deprecation/deprecation\n return !!options && (options.enableTracing || 'tracesSampleRate' in options || 'tracesSampler' in options);\n}\n\nexport { hasTracingEnabled };\n","import { dropUndefinedKeys, arrayify } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext.js';\nimport { spanToTraceContext, getRootSpan, spanToJSON } from './spanUtils.js';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nfunction applyScopeDataToEvent(event, data) {\n const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n // Apply general data\n applyDataToEvent(event, data);\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (span) {\n applySpanToEvent(event, span);\n }\n\n applyFingerprintToEvent(event, fingerprint);\n applyBreadcrumbsToEvent(event, breadcrumbs);\n applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nfunction mergeScopeData(data, mergeData) {\n const {\n extra,\n tags,\n user,\n contexts,\n level,\n sdkProcessingMetadata,\n breadcrumbs,\n fingerprint,\n eventProcessors,\n attachments,\n propagationContext,\n transactionName,\n span,\n } = mergeData;\n\n mergeAndOverwriteScopeData(data, 'extra', extra);\n mergeAndOverwriteScopeData(data, 'tags', tags);\n mergeAndOverwriteScopeData(data, 'user', user);\n mergeAndOverwriteScopeData(data, 'contexts', contexts);\n mergeAndOverwriteScopeData(data, 'sdkProcessingMetadata', sdkProcessingMetadata);\n\n if (level) {\n data.level = level;\n }\n\n if (transactionName) {\n data.transactionName = transactionName;\n }\n\n if (span) {\n data.span = span;\n }\n\n if (breadcrumbs.length) {\n data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n }\n\n if (fingerprint.length) {\n data.fingerprint = [...data.fingerprint, ...fingerprint];\n }\n\n if (eventProcessors.length) {\n data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n }\n\n if (attachments.length) {\n data.attachments = [...data.attachments, ...attachments];\n }\n\n data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nfunction mergeAndOverwriteScopeData\n\n(data, prop, mergeVal) {\n if (mergeVal && Object.keys(mergeVal).length) {\n // Clone object\n data[prop] = { ...data[prop] };\n for (const key in mergeVal) {\n if (Object.prototype.hasOwnProperty.call(mergeVal, key)) {\n data[prop][key] = mergeVal[key];\n }\n }\n }\n}\n\nfunction applyDataToEvent(event, data) {\n const { extra, tags, user, contexts, level, transactionName } = data;\n\n const cleanedExtra = dropUndefinedKeys(extra);\n if (cleanedExtra && Object.keys(cleanedExtra).length) {\n event.extra = { ...cleanedExtra, ...event.extra };\n }\n\n const cleanedTags = dropUndefinedKeys(tags);\n if (cleanedTags && Object.keys(cleanedTags).length) {\n event.tags = { ...cleanedTags, ...event.tags };\n }\n\n const cleanedUser = dropUndefinedKeys(user);\n if (cleanedUser && Object.keys(cleanedUser).length) {\n event.user = { ...cleanedUser, ...event.user };\n }\n\n const cleanedContexts = dropUndefinedKeys(contexts);\n if (cleanedContexts && Object.keys(cleanedContexts).length) {\n event.contexts = { ...cleanedContexts, ...event.contexts };\n }\n\n if (level) {\n event.level = level;\n }\n\n // transaction events get their `transaction` from the root span name\n if (transactionName && event.type !== 'transaction') {\n event.transaction = transactionName;\n }\n}\n\nfunction applyBreadcrumbsToEvent(event, breadcrumbs) {\n const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event, sdkProcessingMetadata) {\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...sdkProcessingMetadata,\n };\n}\n\nfunction applySpanToEvent(event, span) {\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts,\n };\n\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n ...event.sdkProcessingMetadata,\n };\n\n const rootSpan = getRootSpan(span);\n const transactionName = spanToJSON(rootSpan).description;\n if (transactionName && !event.transaction && event.type === 'transaction') {\n event.transaction = transactionName;\n }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event, fingerprint) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : [];\n\n // If we have something on the scope, then merge it with event\n if (fingerprint) {\n event.fingerprint = event.fingerprint.concat(fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n}\n\nexport { applyScopeDataToEvent, mergeAndOverwriteScopeData, mergeScopeData };\n","import { uuid4, dateTimestampInSeconds, addExceptionMechanism, truncate, getFilenameToDebugIdMap, normalize } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getGlobalScope } from '../currentScopes.js';\nimport { notifyEventProcessors } from '../eventProcessors.js';\nimport { Scope } from '../scope.js';\nimport { mergeScopeData, applyScopeDataToEvent } from './applyScopeDataToEvent.js';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nfunction prepareEvent(\n options,\n event,\n hint,\n scope,\n client,\n isolationScope,\n) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = options;\n const prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n if (client) {\n client.emit('applyFrameMetadata', event);\n }\n\n // Only put debug IDs onto frames for error events.\n if (event.type === undefined) {\n applyDebugIds(prepared, options.stackParser);\n }\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n const finalScope = getFinalScope(scope, hint.captureContext);\n\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n\n const clientEventProcessors = client ? client.getEventProcessors() : [];\n\n // This should be the last thing called, since we want that\n // {@link Scope.addEventProcessor} gets the finished prepared event.\n // Merge scope data together\n const data = getGlobalScope().getScopeData();\n\n if (isolationScope) {\n const isolationData = isolationScope.getScopeData();\n mergeScopeData(data, isolationData);\n }\n\n if (finalScope) {\n const finalScopeData = finalScope.getScopeData();\n mergeScopeData(data, finalScopeData);\n }\n\n const attachments = [...(hint.attachments || []), ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n applyScopeDataToEvent(prepared, data);\n\n const eventProcessors = [\n ...clientEventProcessors,\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors,\n ];\n\n const result = notifyEventProcessors(eventProcessors, prepared, hint);\n\n return result.then(evt => {\n if (evt) {\n // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n // any new data\n applyDebugMeta(evt);\n }\n\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\nfunction applyClientOptions(event, options) {\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : DEFAULT_ENVIRONMENT;\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n}\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nfunction applyDebugIds(event, stackParser) {\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace.frames.forEach(frame => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nfunction applyDebugMeta(event) {\n // Extract debug IDs and filenames from the stack frames on the event.\n const filenameDebugIdMap = {};\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values.forEach(exception => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n exception.stacktrace.frames.forEach(frame => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n } catch (e) {\n // To save bundle size we're just try catching here instead of checking for the existence of all the different objects.\n }\n\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id,\n });\n });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event, integrationNames) {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n return {\n ...span,\n ...(span.data && {\n data: normalize(span.data, depth, maxBreadth),\n }),\n };\n });\n }\n\n return normalized;\n}\n\nfunction getFinalScope(\n scope,\n captureContext,\n) {\n if (!captureContext) {\n return scope;\n }\n\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nfunction parseEventHintOrCaptureContext(\n hint,\n) {\n if (!hint) {\n return undefined;\n }\n\n // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint,\n };\n }\n\n return hint;\n}\n\nfunction hintIsScopeOrFunction(\n hint,\n) {\n return hint instanceof Scope || typeof hint === 'function';\n}\n\nconst captureContextKeys = [\n 'user',\n 'level',\n 'extra',\n 'contexts',\n 'tags',\n 'fingerprint',\n 'requestSession',\n 'propagationContext',\n] ;\n\nfunction hintIsScopeContext(hint) {\n return Object.keys(hint).some(key => captureContextKeys.includes(key ));\n}\n\nexport { applyDebugIds, applyDebugMeta, parseEventHintOrCaptureContext, prepareEvent };\n","import { logger, uuid4, timestampInSeconds, isThenable, GLOBAL_OBJ } from '@sentry/utils';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { getCurrentScope, getIsolationScope, getClient, withIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { makeSession, updateSession, closeSession } from './session.js';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent.js';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nfunction captureException(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n exception,\n hint,\n) {\n return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nfunction captureMessage(message, captureContext) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentScope().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nfunction captureEvent(event, hint) {\n return getCurrentScope().captureEvent(event, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setContext(name, context) {\n getIsolationScope().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getIsolationScope().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getIsolationScope().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getIsolationScope().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getIsolationScope().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getIsolationScope().setUser(user);\n}\n\n/**\n * The last error event id of the isolation scope.\n *\n * Warning: This function really returns the last recorded error event id on the current\n * isolation scope. If you call this function after handling a certain error and another error\n * is captured in between, the last one is returned instead of the one you might expect.\n * Also, ids of events that were never sent to Sentry (for example because\n * they were dropped in `beforeSend`) could be returned.\n *\n * @returns The last event id of the isolation scope.\n */\nfunction lastEventId() {\n return getIsolationScope().lastEventId();\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction captureCheckIn(checkIn, upsertMonitorConfig) {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && logger.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n\n return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nfunction withMonitor(\n monitorSlug,\n callback,\n upsertMonitorConfig,\n) {\n const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n const now = timestampInSeconds();\n\n function finishCheckIn(status) {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n\n return withIsolationScope(() => {\n let maybePromiseResult;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn('error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n Promise.resolve(maybePromiseResult).then(\n () => {\n finishCheckIn('ok');\n },\n e => {\n finishCheckIn('error');\n throw e;\n },\n );\n } else {\n finishCheckIn('ok');\n }\n\n return maybePromiseResult;\n });\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function flush(timeout) {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nasync function close(timeout) {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nfunction isInitialized() {\n return !!getClient();\n}\n\n/** If the SDK is initialized & enabled. */\nfunction isEnabled() {\n const client = getClient();\n return !!client && client.getOptions().enabled !== false && !!client.getTransport();\n}\n\n/**\n * Add an event processor.\n * This will be added to the current isolation scope, ensuring any event that is processed in the current execution\n * context will have the processor applied.\n */\nfunction addEventProcessor(callback) {\n getIsolationScope().addEventProcessor(callback);\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nfunction startSession(context) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const { release, environment = DEFAULT_ENVIRONMENT } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n release,\n environment,\n user: currentScope.getUser() || isolationScope.getUser(),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = isolationScope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n\n endSession();\n\n // Afterwards we set the new session on the scope\n isolationScope.setSession(session);\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession(session);\n\n return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nfunction endSession() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n\n // the session is over; take it off of the scope\n isolationScope.setSession();\n\n // TODO (v8): Remove this and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n currentScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate() {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n const client = getClient();\n // TODO (v8): Remove currentScope and only use the isolation scope(?).\n // For v7 though, we can't \"soft-break\" people using getCurrentHub().getScope().setSession()\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session && client) {\n client.captureSession(session);\n }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n * Defaults to `false`.\n */\nfunction captureSession(end = false) {\n // both send the update and pull the session from the scope\n if (end) {\n endSession();\n return;\n }\n\n // only send the update\n _sendSessionUpdate();\n}\n\nexport { addEventProcessor, captureCheckIn, captureEvent, captureException, captureMessage, captureSession, close, endSession, flush, isEnabled, isInitialized, lastEventId, setContext, setExtra, setExtras, setTag, setTags, setUser, startSession, withMonitor };\n","import { arrayify, logger } from '@sentry/utils';\nimport { getClient } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\n\nconst installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preserve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations) {\n const integrationsByName = {};\n\n integrations.forEach(currentInstance => {\n const { name } = currentInstance;\n\n const existingInstance = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.values(integrationsByName);\n}\n\n/** Gets integrations to install */\nfunction getIntegrationsToSetup(options) {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach(integration => {\n integration.isDefaultInstance = true;\n });\n\n let integrations;\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n const finalIntegrations = filterDuplicates(integrations);\n\n // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n const debugIndex = finalIntegrations.findIndex(integration => integration.name === 'Debug');\n if (debugIndex > -1) {\n const [debugInstance] = finalIntegrations.splice(debugIndex, 1) ;\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(client, integrations) {\n const integrationIndex = {};\n\n integrations.forEach(integration => {\n // guard against empty provided integrations\n if (integration) {\n setupIntegration(client, integration, integrationIndex);\n }\n });\n\n return integrationIndex;\n}\n\n/**\n * Execute the `afterAllSetup` hooks of the given integrations.\n */\nfunction afterSetupIntegrations(client, integrations) {\n for (const integration of integrations) {\n // guard against empty provided integrations\n if (integration && integration.afterAllSetup) {\n integration.afterAllSetup(client);\n }\n }\n}\n\n/** Setup a single integration. */\nfunction setupIntegration(client, integration, integrationIndex) {\n if (integrationIndex[integration.name]) {\n DEBUG_BUILD && logger.log(`Integration skipped because it was already installed: ${integration.name}`);\n return;\n }\n integrationIndex[integration.name] = integration;\n\n // `setupOnce` is only called the first time\n if (installedIntegrations.indexOf(integration.name) === -1 && typeof integration.setupOnce === 'function') {\n integration.setupOnce();\n installedIntegrations.push(integration.name);\n }\n\n // `setup` is run for each client\n if (integration.setup && typeof integration.setup === 'function') {\n integration.setup(client);\n }\n\n if (typeof integration.preprocessEvent === 'function') {\n const callback = integration.preprocessEvent.bind(integration) ;\n client.on('preprocessEvent', (event, hint) => callback(event, hint, client));\n }\n\n if (typeof integration.processEvent === 'function') {\n const callback = integration.processEvent.bind(integration) ;\n\n const processor = Object.assign((event, hint) => callback(event, hint, client), {\n id: integration.name,\n });\n\n client.addEventProcessor(processor);\n }\n\n DEBUG_BUILD && logger.log(`Integration installed: ${integration.name}`);\n}\n\n/** Add an integration to the current scope's client. */\nfunction addIntegration(integration) {\n const client = getClient();\n\n if (!client) {\n DEBUG_BUILD && logger.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n return;\n }\n\n client.addIntegration(integration);\n}\n\n/**\n * Define an integration function that can be used to create an integration instance.\n * Note that this by design hides the implementation details of the integration, as they are considered internal.\n */\nfunction defineIntegration(fn) {\n return fn;\n}\n\nexport { addIntegration, afterSetupIntegrations, defineIntegration, getIntegrationsToSetup, installedIntegrations, setupIntegration, setupIntegrations };\n","import { logger, getEventDescription, stringMatchesSomePattern } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [\n /^Script error\\.?$/,\n /^Javascript error: Script error\\.? on line 0$/,\n /^ResizeObserver loop completed with undelivered notifications.$/, // The browser logs this when a ResizeObserver handler takes a bit longer. Usually this is not an actual issue though. It indicates slowness.\n /^Cannot redefine property: googletag$/, // This is thrown when google tag manager is used in combination with an ad blocker\n \"undefined is not an object (evaluating 'a.L')\", // Random error that happens but not actionable or noticeable to end-users.\n 'can\\'t redefine non-configurable property \"solana\"', // Probably a browser extension or custom browser (Brave) throwing this error\n \"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)\", // Error thrown by GTM, seemingly not affecting end-users\n \"Can't find variable: _AutofillCallbackHandler\", // Unactionable error in instagram webview https://developers.facebook.com/community/threads/320013549791141/\n];\n\n/** Options for the InboundFilters integration */\n\nconst INTEGRATION_NAME = 'InboundFilters';\nconst _inboundFiltersIntegration = ((options = {}) => {\n return {\n name: INTEGRATION_NAME,\n processEvent(event, _hint, client) {\n const clientOptions = client.getOptions();\n const mergedOptions = _mergeOptions(options, clientOptions);\n return _shouldDropEvent(event, mergedOptions) ? null : event;\n },\n };\n}) ;\n\nconst inboundFiltersIntegration = defineIntegration(_inboundFiltersIntegration);\n\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...(internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS),\n ],\n ignoreTransactions: [...(internalOptions.ignoreTransactions || []), ...(clientOptions.ignoreTransactions || [])],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n DEBUG_BUILD &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isUselessError(event)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not having an error message, error type or stacktrace.\\nEvent: ${getEventDescription(\n event,\n )}`,\n );\n return true;\n }\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n DEBUG_BUILD &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n // If event.type, this is not an error\n if (event.type || !ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event, ignoreTransactions) {\n if (event.type !== 'transaction' || !ignoreTransactions || !ignoreTransactions.length) {\n return false;\n }\n\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getPossibleEventMessages(event) {\n const possibleMessages = [];\n\n if (event.message) {\n possibleMessages.push(event.message);\n }\n\n let lastException;\n try {\n // @ts-expect-error Try catching to save bundle size\n lastException = event.exception.values[event.exception.values.length - 1];\n } catch (e) {\n // try catching to save bundle size checking existence of variables\n }\n\n if (lastException) {\n if (lastException.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n }\n\n return possibleMessages;\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-expect-error can't be a sentry error if undefined\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n let frames;\n try {\n // @ts-expect-error we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n DEBUG_BUILD && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nfunction _isUselessError(event) {\n if (event.type) {\n // event is not an error\n return false;\n }\n\n // We only want to consider events for dropping that actually have recorded exception values.\n if (!event.exception || !event.exception.values || event.exception.values.length === 0) {\n return false;\n }\n\n return (\n // No top-level message\n !event.message &&\n // There are no exception values that have a stacktrace, a non-generic-Error type or value\n !event.exception.values.some(value => value.stacktrace || (value.type && value.type !== 'Error') || value.value)\n );\n}\n\nexport { inboundFiltersIntegration };\n","import { getOriginalFunction } from '@sentry/utils';\nimport { getClient } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\n\nlet originalFunctionToString;\n\nconst INTEGRATION_NAME = 'FunctionToString';\n\nconst SETUP_CLIENTS = new WeakMap();\n\nconst _functionToStringIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // intrinsics (like Function.prototype) might be immutable in some environments\n // e.g. Node with --frozen-intrinsics, XS (an embedded JavaScript engine) or SES (a JavaScript proposal)\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function ( ...args) {\n const originalFunction = getOriginalFunction(this);\n const context =\n SETUP_CLIENTS.has(getClient() ) && originalFunction !== undefined ? originalFunction : this;\n return originalFunctionToString.apply(context, args);\n };\n } catch (e) {\n // ignore errors here, just don't patch this\n }\n },\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n },\n };\n}) ;\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * ```js\n * Sentry.init({\n * integrations: [\n * functionToStringIntegration(),\n * ],\n * });\n * ```\n */\nconst functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\nexport { functionToStringIntegration };\n","import { logger, getFramesFromEvent } from '@sentry/utils';\nimport { defineIntegration } from '../integration.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst INTEGRATION_NAME = 'Dedupe';\n\nconst _dedupeIntegration = (() => {\n let previousEvent;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(currentEvent) {\n // We want to ignore any non-error type events, e.g. transactions or replays\n // These should never be deduped, and also not be compared against as _previousEvent.\n if (currentEvent.type) {\n return currentEvent;\n }\n\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, previousEvent)) {\n DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n return (previousEvent = currentEvent);\n },\n };\n}) ;\n\n/**\n * Deduplication filter.\n */\nconst dedupeIntegration = defineIntegration(_dedupeIntegration);\n\n/** only exported for tests. */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n let currentFrames = getFramesFromEvent(currentEvent);\n let previousFrames = getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames ;\n previousFrames = previousFrames ;\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const frameA = previousFrames[i];\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint ;\n previousFingerprint = previousFingerprint ;\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\nexport { _shouldDropEvent, dedupeIntegration };\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { consoleSandbox, logger } from './logger.js';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents or undefined if @param str is not a valid DSN string\n */\nfunction dsnFromString(str) {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n // This should be logged to the console\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(`Invalid Sentry Dsn: ${str}`);\n });\n return undefined;\n }\n\n const [protocol, publicKey, pass = '', host = '', port = '', lastPath = ''] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() ;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn) {\n if (!DEBUG_BUILD) {\n return true;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n const hasMissingRequiredComponent = requiredComponents.find(component => {\n if (!dsn[component]) {\n logger.error(`Invalid Sentry Dsn: ${component} missing`);\n return true;\n }\n return false;\n });\n\n if (hasMissingRequiredComponent) {\n return false;\n }\n\n if (!projectId.match(/^\\d+$/)) {\n logger.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n return false;\n }\n\n if (!isValidProtocol(protocol)) {\n logger.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n return false;\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n logger.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n return false;\n }\n\n return true;\n}\n\n/**\n * Creates a valid Sentry Dsn object, identifying a Sentry instance and project.\n * @returns a valid DsnComponents object or `undefined` if @param from is an invalid DSN source\n */\nfunction makeDsn(from) {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n if (!components || !validateDsn(components)) {\n return undefined;\n }\n return components;\n}\n\nexport { dsnFromString, dsnToString, makeDsn };\n","import { makeDsn, dsnToString, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn, sdkInfo) {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel, sdkInfo) {\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(\n dsnLike,\n dialogOptions\n\n,\n) {\n const dsn = makeDsn(dsnLike);\n if (!dsn) {\n return '';\n }\n\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'onClose') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { logger } from './logger.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ ;\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-expect-error It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * isNative checks if the given function is a native implementation\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isNativeFunction(func) {\n return func && /^function\\s+\\w+\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nfunction supportsNativeFetch() {\n if (typeof EdgeRuntime === 'string') {\n return true;\n }\n\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFunction(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement ) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFunction(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' ,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\nexport { isNativeFunction, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { logger } from '../logger.js';\nimport { getFunctionName } from '../stacktrace.js';\n\n// We keep the handlers globally\nconst handlers = {};\nconst instrumented = {};\n\n/** Add a handler function. */\nfunction addHandler(type, handler) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(handler);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nfunction resetInstrumentationHandlers() {\n Object.keys(handlers).forEach(key => {\n handlers[key ] = undefined;\n });\n}\n\n/** Maybe run an instrumentation function, unless it was already called. */\nfunction maybeInstrument(type, instrumentFn) {\n if (!instrumented[type]) {\n instrumented[type] = true;\n try {\n instrumentFn();\n } catch (e) {\n DEBUG_BUILD && logger.error(`Error while instrumenting ${type}`, e);\n }\n }\n}\n\n/** Trigger handlers for a given instrumentation type. */\nfunction triggerHandlers(type, data) {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\nexport { addHandler, maybeInstrument, resetInstrumentationHandlers, triggerHandlers };\n","import { GLOBAL_OBJ } from '../worldwide.js';\n\n// Based on https://github.com/angular/angular.js/pull/13945/files\n// The MIT License\n\n\nconst WINDOW = GLOBAL_OBJ ;\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chromeVar = (WINDOW ).chrome;\n const isChromePackagedApp = chromeVar && chromeVar.app && chromeVar.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { supportsHistory };\n","import { GLOBAL_OBJ } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ\n\n;\n\nexport { WINDOW };\n","import { addHandler, maybeInstrument, supportsHistory, triggerHandlers, fill } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\n\nlet lastHref;\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addHistoryInstrumentationHandler(handler) {\n const type = 'history';\n addHandler(type, handler);\n maybeInstrument(type, instrumentHistory);\n}\n\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = WINDOW.onpopstate;\n WINDOW.onpopstate = function ( ...args) {\n const to = WINDOW.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n const handlerData = { from, to };\n triggerHandlers('history', handlerData);\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n const handlerData = { from, to };\n triggerHandlers('history', handlerData);\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nexport { addHistoryInstrumentationHandler };\n","import { dsnToString } from './dsn.js';\nimport { normalize } from './normalize.js';\nimport { dropUndefinedKeys } from './object.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n *\n * If the callback returns true, the rest of the items will be skipped.\n */\nfunction forEachEnvelopeItem(\n envelope,\n callback,\n) {\n const envelopeItems = envelope[1];\n\n for (const envelopeItem of envelopeItems) {\n const envelopeItemType = envelopeItem[0].type;\n const result = callback(envelopeItem, envelopeItemType);\n\n if (result) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Returns true if the envelope contains any of the given envelope item types\n */\nfunction envelopeContainsItemType(envelope, types) {\n return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\n\n/**\n * Encode a string to UTF8 array.\n */\nfunction encodeUTF8(input) {\n return GLOBAL_OBJ.__SENTRY__ && GLOBAL_OBJ.__SENTRY__.encodePolyfill\n ? GLOBAL_OBJ.__SENTRY__.encodePolyfill(input)\n : new TextEncoder().encode(input);\n}\n\n/**\n * Decode a UTF8 array to string.\n */\nfunction decodeUTF8(input) {\n return GLOBAL_OBJ.__SENTRY__ && GLOBAL_OBJ.__SENTRY__.decodePolyfill\n ? GLOBAL_OBJ.__SENTRY__.decodePolyfill(input)\n : new TextDecoder().decode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope) {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next) : next);\n }\n }\n\n for (const item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.stringify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Parses an envelope\n */\nfunction parseEnvelope(env) {\n let buffer = typeof env === 'string' ? encodeUTF8(env) : env;\n\n function readBinary(length) {\n const bin = buffer.subarray(0, length);\n // Replace the buffer with the remaining data excluding trailing newline\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n\n function readJson() {\n let i = buffer.indexOf(0xa);\n // If we couldn't find a newline, we must have found the end of the buffer\n if (i < 0) {\n i = buffer.length;\n }\n\n return JSON.parse(decodeUTF8(readBinary(i))) ;\n }\n\n const envelopeHeader = readJson();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items = [];\n\n while (buffer.length) {\n const itemHeader = readJson();\n const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n\n return [envelopeHeader, items];\n}\n\n/**\n * Creates envelope item for a single span\n */\nfunction createSpanEnvelopeItem(spanJson) {\n const spanHeaders = {\n type: 'span',\n };\n\n return [spanHeaders, spanJson];\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(attachment) {\n const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nconst ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n profile: 'profile',\n profile_chunk: 'profile',\n replay_event: 'replay',\n replay_recording: 'replay',\n check_in: 'monitor',\n feedback: 'feedback',\n span: 'span',\n statsd: 'metric_bucket',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\n/** Extracts the minimal SDK info from the metadata or an events */\nfunction getSdkMetadataForEnvelopeHeader(metadataOrEvent) {\n if (!metadataOrEvent || !metadataOrEvent.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nfunction createEventEnvelopeHeaders(\n event,\n sdkInfo,\n tunnel,\n dsn,\n) {\n const dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n return {\n event_id: event.event_id ,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n ...(dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }),\n }),\n };\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem, envelopeContainsItemType, envelopeItemTypeToDataCategory, forEachEnvelopeItem, getSdkMetadataForEnvelopeHeader, parseEnvelope, serializeEnvelope };\n","/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n /** Display name of this error instance. */\n\n constructor( message, logLevel = 'warn') {\n super(message);this.message = message;\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n\nexport { SentryError };\n","import { makeDsn, logger, uuid4, checkOrSetAlreadyCaught, isParameterizedString, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, dropUndefinedKeys, rejectedSyncPromise, SentryError, createClientReportEnvelope, dsnToString, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegration, afterSetupIntegrations, setupIntegrations } from './integration.js';\nimport { updateSession } from './session.js';\nimport { getDynamicSamplingContextFromClient } from './tracing/dynamicSamplingContext.js';\nimport { parseSampleRate } from './utils/parseSampleRate.js';\nimport { prepareEvent } from './utils/prepareEvent.js';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass BaseClient {\n /** Options passed to the SDK. */\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n\n /** Array of set up integrations. */\n\n /** Number of calls being processed */\n\n /** Holds flushable */\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {\n this._options = options;\n this._integrations = {};\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && logger.warn('No DSN provided, client will not send events.');\n }\n\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(\n this._dsn,\n options.tunnel,\n options._metadata ? options._metadata.sdk : undefined,\n );\n this._transport = options.transport({\n tunnel: this._options.tunnel,\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n captureException(exception, hint, scope) {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n this._process(\n this.eventFromException(exception, hintWithEventId).then(event =>\n this._captureEvent(event, hintWithEventId, scope),\n ),\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n level,\n hint,\n currentScope,\n ) {\n const hintWithEventId = {\n event_id: uuid4(),\n ...hint,\n };\n\n const eventMessage = isParameterizedString(message) ? message : String(message);\n\n const promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(eventMessage, level, hintWithEventId)\n : this.eventFromException(message, hintWithEventId);\n\n this._process(promisedEvent.then(event => this._captureEvent(event, hintWithEventId, currentScope)));\n\n return hintWithEventId.event_id;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, currentScope) {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope = sdkProcessingMetadata.capturedSpanScope;\n\n this._process(this._captureEvent(event, hintWithEventId, capturedSpanScope || currentScope));\n\n return hintWithEventId.event_id;\n }\n\n /**\n * @inheritDoc\n */\n captureSession(session) {\n if (!(typeof session.release === 'string')) {\n DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * @see SdkMetadata in @sentry/types\n *\n * @return The metadata of the SDK\n */\n getSdkMetadata() {\n return this._options._metadata;\n }\n\n /**\n * @inheritDoc\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n flush(timeout) {\n const transport = this._transport;\n if (transport) {\n this.emit('flush');\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n close(timeout) {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n this.emit('close');\n return result;\n });\n }\n\n /** Get all installed event processors. */\n getEventProcessors() {\n return this._eventProcessors;\n }\n\n /** @inheritDoc */\n addEventProcessor(eventProcessor) {\n this._eventProcessors.push(eventProcessor);\n }\n\n /** @inheritdoc */\n init() {\n if (\n this._isEnabled() ||\n // Force integrations to be setup even if no DSN was set when we have\n // Spotlight enabled. This is particularly important for browser as we\n // don't support the `spotlight` option there and rely on the users\n // adding the `spotlightBrowserIntegration()` to their integrations which\n // wouldn't get initialized with the check below when there's no DSN set.\n this._options.integrations.some(({ name }) => name.startsWith('Spotlight'))\n ) {\n this._setupIntegrations();\n }\n }\n\n /**\n * Gets an installed integration by its name.\n *\n * @returns The installed integration or `undefined` if no integration with that `name` was installed.\n */\n getIntegrationByName(integrationName) {\n return this._integrations[integrationName] ;\n }\n\n /**\n * @inheritDoc\n */\n addIntegration(integration) {\n const isAlreadyInstalled = this._integrations[integration.name];\n\n // This hook takes care of only installing if not already installed\n setupIntegration(this, integration, this._integrations);\n // Here we need to check manually to make sure to not run this multiple times\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint = {}) {\n this.emit('beforeSendEvent', event, hint);\n\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment));\n }\n\n const promise = this.sendEnvelope(env);\n if (promise) {\n promise.then(sendResponse => this.emit('afterSendEvent', event, sendResponse), null);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendSession(session) {\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(env);\n }\n\n /**\n * @inheritDoc\n */\n recordDroppedEvent(reason, category, eventOrCount) {\n if (this._options.sendClientReports) {\n // TODO v9: We do not need the `event` passed as third argument anymore, and can possibly remove this overload\n // If event is passed as third argument, we assume this is a count of 1\n const count = typeof eventOrCount === 'number' ? eventOrCount : 1;\n\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n DEBUG_BUILD && logger.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : ''}`);\n this._outcomes[key] = (this._outcomes[key] || 0) + count;\n }\n }\n\n // Keep on() & emit() signatures in sync with types' client.ts interface\n /* eslint-disable @typescript-eslint/unified-signatures */\n\n /** @inheritdoc */\n\n /** @inheritdoc */\n on(hook, callback) {\n const hooks = (this._hooks[hook] = this._hooks[hook] || []);\n\n // @ts-expect-error We assume the types are correct\n hooks.push(callback);\n\n // This function returns a callback execution handler that, when invoked,\n // deregisters a callback. This is crucial for managing instances where callbacks\n // need to be unregistered to prevent self-referencing in callback closures,\n // ensuring proper garbage collection.\n return () => {\n // @ts-expect-error We assume the types are correct\n const cbIndex = hooks.indexOf(callback);\n if (cbIndex > -1) {\n hooks.splice(cbIndex, 1);\n }\n };\n }\n\n /** @inheritdoc */\n\n /** @inheritdoc */\n emit(hook, ...rest) {\n const callbacks = this._hooks[hook];\n if (callbacks) {\n callbacks.forEach(callback => callback(...rest));\n }\n }\n\n /**\n * @inheritdoc\n */\n sendEnvelope(envelope) {\n this.emit('beforeEnvelope', envelope);\n\n if (this._isEnabled() && this._transport) {\n return this._transport.send(envelope).then(null, reason => {\n DEBUG_BUILD && logger.error('Error while sending envelope:', reason);\n return reason;\n });\n }\n\n DEBUG_BUILD && logger.error('Transport disabled');\n\n return resolvedSyncPromise({});\n }\n\n /* eslint-enable @typescript-eslint/unified-signatures */\n\n /** Setup integrations for this client. */\n _setupIntegrations() {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n _isClientDoneProcessing(timeout) {\n return new SyncPromise(resolve => {\n let ticked = 0;\n const tick = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a transport is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._transport !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(\n event,\n hint,\n currentScope,\n isolationScope = getIsolationScope(),\n ) {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations.length > 0) {\n hint.integrations = integrations;\n }\n\n this.emit('preprocessEvent', event, hint);\n\n if (!event.type) {\n isolationScope.setLastEventId(event.event_id || hint.event_id);\n }\n\n return prepareEvent(options, event, hint, currentScope, this, isolationScope).then(evt => {\n if (evt === null) {\n return evt;\n }\n\n const propagationContext = {\n ...isolationScope.getPropagationContext(),\n ...(currentScope ? currentScope.getPropagationContext() : undefined),\n };\n\n const trace = evt.contexts && evt.contexts.trace;\n if (!trace && propagationContext) {\n const { traceId: trace_id, spanId, parentSpanId, dsc } = propagationContext;\n evt.contexts = {\n trace: dropUndefinedKeys({\n trace_id,\n span_id: spanId,\n parent_span_id: parentSpanId,\n }),\n ...evt.contexts,\n };\n\n const dynamicSamplingContext = dsc ? dsc : getDynamicSamplingContextFromClient(trace_id, this);\n\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata,\n };\n }\n return evt;\n });\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, scope) {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (DEBUG_BUILD) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n const sentryError = reason ;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, currentScope) {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n const parsedSampleRate = typeof sampleRate === 'undefined' ? undefined : parseSampleRate(sampleRate);\n if (isError && typeof parsedSampleRate === 'number' && Math.random() > parsedSampleRate) {\n this.recordDroppedEvent('sample_rate', 'error', event);\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n const dataCategory = eventType === 'replay_event' ? 'replay' : eventType;\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanIsolationScope = sdkProcessingMetadata.capturedSpanIsolationScope;\n\n return this._prepareEvent(event, hint, currentScope, capturedSpanIsolationScope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory, event);\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n const isInternalException = hint.data && (hint.data ).__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(this, options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory, event);\n if (isTransaction) {\n const spans = event.spans || [];\n // the transaction itself counts as one span, plus all the child spans that are added\n const spanCount = 1 + spans.length;\n this.recordDroppedEvent('before_send', 'span', spanCount);\n }\n throw new SentryError(`${beforeSendLabel} returned \\`null\\`, will not send event.`, 'log');\n }\n\n const session = currentScope && currentScope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n if (isTransaction) {\n const spanCountBefore =\n (processedEvent.sdkProcessingMetadata && processedEvent.sdkProcessingMetadata.spanCountBeforeProcessing) ||\n 0;\n const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n\n const droppedSpanCount = spanCountBefore - spanCountAfter;\n if (droppedSpanCount > 0) {\n this.recordDroppedEvent('before_send', 'span', droppedSpanCount);\n }\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(promise) {\n this._numProcessing++;\n void promise.then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n return reason;\n },\n );\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.entries(outcomes).map(([key, quantity]) => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity,\n };\n });\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n DEBUG_BUILD && logger.log('Flushing outcomes...');\n\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n DEBUG_BUILD && logger.log('No outcomes to send');\n return;\n }\n\n // This is really the only place where we want to check for a DSN and only send outcomes then\n if (!this._dsn) {\n DEBUG_BUILD && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n DEBUG_BUILD && logger.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult,\n beforeSendLabel,\n) {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n return event;\n },\n e => {\n throw new SentryError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n client,\n options,\n event,\n hint,\n) {\n const { beforeSend, beforeSendTransaction, beforeSendSpan } = options;\n\n if (isErrorEvent(event) && beforeSend) {\n return beforeSend(event, hint);\n }\n\n if (isTransactionEvent(event)) {\n if (event.spans && beforeSendSpan) {\n const processedSpans = [];\n for (const span of event.spans) {\n const processedSpan = beforeSendSpan(span);\n if (processedSpan) {\n processedSpans.push(processedSpan);\n } else {\n client.recordDroppedEvent('before_send', 'span');\n }\n }\n event.spans = processedSpans;\n }\n\n if (beforeSendTransaction) {\n if (event.spans) {\n // We store the # of spans before processing in SDK metadata,\n // so we can compare it afterwards to determine how many spans were dropped\n const spanCountBefore = event.spans.length;\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n spanCountBeforeProcessing: spanCountBefore,\n };\n }\n return beforeSendTransaction(event, hint);\n }\n }\n\n return event;\n}\n\nfunction isErrorEvent(event) {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event) {\n return event.type === 'transaction';\n}\n\nexport { BaseClient };\n","import { getSdkMetadataForEnvelopeHeader, dsnToString, createEnvelope, createEventEnvelopeHeaders, createSpanEnvelopeItem } from '@sentry/utils';\nimport { getDynamicSamplingContextFromSpan } from './tracing/dynamicSamplingContext.js';\nimport { spanToJSON } from './utils/spanUtils.js';\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n session,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const envelopeItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session.toJSON()];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n event,\n dsn,\n metadata,\n tunnel,\n) {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n\n /*\n Note: Due to TS, event.type may be `replay_event`, theoretically.\n In practice, we never call `createEventEnvelope` with `replay_event` type,\n and we'd have to adjust a looot of types to make this work properly.\n We want to avoid casting this around, as that could lead to bugs (e.g. when we add another type)\n So the safe choice is to really guard against the replay_event type here.\n */\n const eventType = event.type && event.type !== 'replay_event' ? event.type : 'event';\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n const eventItem = [{ type: eventType }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\n/**\n * Create envelope from Span item.\n *\n * Takes an optional client and runs spans through `beforeSendSpan` if available.\n */\nfunction createSpanEnvelope(spans, client) {\n function dscHasRequiredProps(dsc) {\n return !!dsc.trace_id && !!dsc.public_key;\n }\n\n // For the moment we'll obtain the DSC from the first span in the array\n // This might need to be changed if we permit sending multiple spans from\n // different segments in one envelope\n const dsc = getDynamicSamplingContextFromSpan(spans[0]);\n\n const dsn = client && client.getDsn();\n const tunnel = client && client.getOptions().tunnel;\n\n const headers = {\n sent_at: new Date().toISOString(),\n ...(dscHasRequiredProps(dsc) && { trace: dsc }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const beforeSendSpan = client && client.getOptions().beforeSendSpan;\n const convertToSpanJSON = beforeSendSpan\n ? (span) => beforeSendSpan(spanToJSON(span) )\n : (span) => spanToJSON(span);\n\n const items = [];\n for (const span of spans) {\n const spanJson = convertToSpanJSON(span);\n if (spanJson) {\n items.push(createSpanEnvelopeItem(spanJson));\n }\n }\n\n return createEnvelope(headers, items);\n}\n\nexport { createEventEnvelope, createSessionEnvelope, createSpanEnvelope };\n","import { logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\n/**\n * Parse a sample rate from a given value.\n * This will either return a boolean or number sample rate, if the sample rate is valid (between 0 and 1).\n * If a string is passed, we try to convert it to a number.\n *\n * Any invalid sample rate will return `undefined`.\n */\nfunction parseSampleRate(sampleRate) {\n if (typeof sampleRate === 'boolean') {\n return Number(sampleRate);\n }\n\n const rate = typeof sampleRate === 'string' ? parseFloat(sampleRate) : sampleRate;\n if (typeof rate !== 'number' || isNaN(rate) || rate < 0 || rate > 1) {\n DEBUG_BUILD &&\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n sampleRate,\n )} of type ${JSON.stringify(typeof sampleRate)}.`,\n );\n return undefined;\n }\n\n return rate;\n}\n\nexport { parseSampleRate };\n","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n const clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n","import { SDK_VERSION } from '@sentry/utils';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n *\n * Note: This function is identical to `buildMetadata` in Remix and NextJS and SvelteKit.\n * We don't extract it for bundle size reasons.\n * @see https://github.com/getsentry/sentry-javascript/pull/7404\n * @see https://github.com/getsentry/sentry-javascript/pull/4196\n *\n * If you make changes to this function consider updating the others as well.\n *\n * @param options SDK options object that gets mutated\n * @param names list of package names\n */\nfunction applySdkMetadata(options, name, names = [name], source = 'npm') {\n const metadata = options._metadata || {};\n\n if (!metadata.sdk) {\n metadata.sdk = {\n name: `sentry.javascript.${name}`,\n packages: names.map(name => ({\n name: `${source}:@sentry/${name}`,\n version: SDK_VERSION,\n })),\n version: SDK_VERSION,\n };\n }\n\n options._metadata = metadata;\n}\n\nexport { applySdkMetadata };\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n","import { getClient } from '@sentry/core';\nimport { addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject, isEvent, isParameterizedString, normalizeToSize, extractExceptionKeysForMessage } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(stackParser, ex);\n\n const exception = {\n type: extractType(ex),\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n const client = getClient();\n const normalizeDepth = client && client.getOptions().normalizeDepth;\n\n // If we can, we extract an exception from the object properties\n const errorFromProp = getErrorPropertyFromObject(exception);\n\n const extra = {\n __serialized__: normalizeToSize(exception, normalizeDepth),\n };\n\n if (errorFromProp) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, errorFromProp)],\n },\n extra,\n };\n }\n\n const event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: getNonErrorObjectExceptionValue(exception, { isUnhandledRejection }),\n } ,\n ],\n },\n extra,\n } ;\n\n if (syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n event.exception.values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const skipLines = getSkipFirstStackStringLines(ex);\n const framesToPop = getPopFirstTopFrames(ex);\n\n try {\n return stackParser(stacktrace, skipLines, framesToPop);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\n/**\n * Certain known React errors contain links that would be falsely\n * parsed as frames. This function check for these errors and\n * returns number of the stack string lines to skip.\n */\nfunction getSkipFirstStackStringLines(ex) {\n if (ex && reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n\n return 0;\n}\n\n/**\n * If error has `framesToPop` property, it means that the\n * creator tells us the first x frames will be useless\n * and should be discarded. Typically error from wrapper function\n * which don't point to the actual location in the developer's code.\n *\n * Example: https://github.com/zertosh/invariant/blob/master/invariant.js#L46\n */\nfunction getPopFirstTopFrames(ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n return 0;\n}\n\n// https://developer.mozilla.org/en-US/docs/WebAssembly/JavaScript_interface/Exception\n// @ts-expect-error - WebAssembly.Exception is a valid class\nfunction isWebAssemblyException(exception) {\n // Check for support\n // @ts-expect-error - WebAssembly.Exception is a valid class\n if (typeof WebAssembly !== 'undefined' && typeof WebAssembly.Exception !== 'undefined') {\n // @ts-expect-error - WebAssembly.Exception is a valid class\n return exception instanceof WebAssembly.Exception;\n } else {\n return false;\n }\n}\n\n/**\n * Extracts from errors what we use as the exception `type` in error events.\n *\n * Usually, this is the `name` property on Error objects but WASM errors need to be treated differently.\n */\nfunction extractType(ex) {\n const name = ex && ex.name;\n\n // The name for WebAssembly.Exception Errors needs to be extracted differently.\n // Context: https://github.com/getsentry/sentry-javascript/issues/13787\n if (!name && isWebAssemblyException(ex)) {\n // Emscripten sets array[type, message] to the \"message\" property on the WebAssembly.Exception object\n const hasTypeInMessage = ex.message && Array.isArray(ex.message) && ex.message.length == 2;\n return hasTypeInMessage ? ex.message[0] : 'WebAssembly.Exception';\n }\n\n return name;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n const message = ex && ex.message;\n\n if (!message) {\n return 'No error message';\n }\n\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n\n // Emscripten sets array[type, message] to the \"message\" property on the WebAssembly.Exception object\n if (isWebAssemblyException(ex) && Array.isArray(ex.message) && ex.message.length == 2) {\n return ex.message[1];\n }\n\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n level = 'info',\n hint,\n attachStacktrace,\n) {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let event;\n\n if (isErrorEvent(exception ) && (exception ).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception) || isDOMException(exception )) {\n const domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n // eslint-disable-next-line deprecation/deprecation\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\nfunction eventFromString(\n stackParser,\n message,\n syntheticException,\n attachStacktrace,\n) {\n const event = {};\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: message, stacktrace: { frames } }],\n };\n }\n }\n\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__,\n };\n return event;\n }\n\n event.message = message;\n return event;\n}\n\nfunction getNonErrorObjectExceptionValue(\n exception,\n { isUnhandledRejection },\n) {\n const keys = extractExceptionKeysForMessage(exception);\n const captureType = isUnhandledRejection ? 'promise rejection' : 'exception';\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as ${captureType} with message \\`${exception.message}\\``;\n }\n\n if (isEvent(exception)) {\n const className = getObjectClassName(exception);\n return `Event \\`${className}\\` (type=${exception.type}) captured as ${captureType}`;\n }\n\n return `Object captured as ${captureType} with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj) {\n try {\n const prototype = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch (e) {\n // ignore errors here\n }\n}\n\n/** If a plain object has a property that is an `Error`, return this error. */\nfunction getErrorPropertyFromObject(obj) {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n const value = obj[prop];\n if (value instanceof Error) {\n return value;\n }\n }\n }\n\n return undefined;\n}\n\nexport { eventFromException, eventFromMessage, eventFromUnknownInput, exceptionFromError, extractMessage, extractType };\n","import { withScope, captureException } from '@sentry/core';\nimport { GLOBAL_OBJ, getOriginalFunction, markFunctionWrapped, addNonEnumerableProperty, addExceptionTypeValue, addExceptionMechanism } from '@sentry/utils';\n\nconst WINDOW = GLOBAL_OBJ ;\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError++;\n setTimeout(() => {\n ignoreOnError--;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n if (typeof wrapper === 'function') {\n return wrapper;\n } else {\n // If we find that the `__sentry_wrapped__` function is not a function at the time of accessing it, it means\n // that something messed with it. In that case we want to return the originally passed function.\n return fn;\n }\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n const sentryWrapped = function () {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') ;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope(scope => {\n scope.addEventProcessor(event => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\nexport { WINDOW, ignoreNextOnError, shouldIgnoreOnError, wrap };\n","import { BaseClient, applySdkMetadata } from '@sentry/core';\nimport { getSDKSource, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { WINDOW } from './helpers.js';\nimport { createUserFeedbackEnvelope } from './userfeedback.js';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/types Options for more information.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n const opts = {\n // We default this to true, as it is the safer scenario\n parentSpanIsAlwaysRootSpan: true,\n ...options,\n };\n const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n applySdkMetadata(opts, 'browser', ['browser'], sdkSource);\n\n super(opts);\n\n if (opts.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', () => {\n if (WINDOW.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * Sends user feedback to Sentry.\n *\n * @deprecated Use `captureFeedback` instead.\n */\n captureUserFeedback(feedback) {\n if (!this._isEnabled()) {\n DEBUG_BUILD && logger.warn('SDK not enabled, will not capture user feedback.');\n return;\n }\n\n const envelope = createUserFeedbackEnvelope(feedback, {\n metadata: this.getSdkMetadata(),\n dsn: this.getDsn(),\n tunnel: this.getOptions().tunnel,\n });\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n}\n\nexport { BrowserClient };\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nfunction getSDKSource() {\n // This comment is used to identify this line in the CDN bundle build step and replace this with \"return 'cdn';\"\n /* __SENTRY_SDK_SOURCE__ */ return 'npm';\n}\n\nexport { getSDKSource, isBrowserBundle };\n","import { dsnToString, createEnvelope } from '@sentry/utils';\n\n/**\n * Creates an envelope from a user feedback.\n */\nfunction createUserFeedbackEnvelope(\n feedback,\n {\n metadata,\n tunnel,\n dsn,\n }\n\n,\n) {\n const headers = {\n event_id: feedback.event_id,\n sent_at: new Date().toISOString(),\n ...(metadata &&\n metadata.sdk && {\n sdk: {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n },\n }),\n ...(!!tunnel && !!dsn && { dsn: dsnToString(dsn) }),\n };\n const item = createUserFeedbackEnvelopeItem(feedback);\n\n return createEnvelope(headers, [item]);\n}\n\nfunction createUserFeedbackEnvelopeItem(feedback) {\n const feedbackHeaders = {\n type: 'user_report',\n };\n return [feedbackHeaders, feedback];\n}\n\nexport { createUserFeedbackEnvelope };\n","import { addHandler, maybeInstrument, triggerHandlers, fill, addNonEnumerableProperty, uuid4 } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\n\nconst DEBOUNCE_DURATION = 1000;\n\nlet debounceTimerID;\nlet lastCapturedEventType;\nlet lastCapturedEventTargetId;\n\n/**\n * Add an instrumentation handler for when a click or a keypress happens.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addClickKeypressInstrumentationHandler(handler) {\n const type = 'dom';\n addHandler(type, handler);\n maybeInstrument(type, instrumentDOM);\n}\n\n/** Exported for tests only. */\nfunction instrumentDOM() {\n if (!WINDOW.document) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n const proto = (WINDOW )[target] && (WINDOW )[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount++;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListeners` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function (\n\n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this ;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount--;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListeners` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\n/**\n * Check whether the event is similar to the last captured one. For example, two click events on the same button.\n */\nfunction isSimilarToLastCapturedEvent(event) {\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (event.type !== lastCapturedEventType) {\n return false;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (!event.target || (event.target )._sentryId !== lastCapturedEventTargetId) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return true;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(eventType, target) {\n // We are only interested in filtering `keypress` events for now.\n if (eventType !== 'keypress') {\n return false;\n }\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n */\nfunction makeDOMEventHandler(\n handler,\n globalListener = false,\n) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || event['_sentryCaptured']) {\n return;\n }\n\n const target = getEventTarget(event);\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event.type, target)) {\n return;\n }\n\n // Mark event as \"seen\"\n addNonEnumerableProperty(event, '_sentryCaptured', true);\n\n if (target && !target._sentryId) {\n // Add UUID to event target so we can identify if\n addNonEnumerableProperty(target, '_sentryId', uuid4());\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no last captured event, it means that we can safely capture the new event and store it for future comparisons.\n // If there is a last captured event, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n if (!isSimilarToLastCapturedEvent(event)) {\n const handlerData = { event, name, global: globalListener };\n handler(handlerData);\n lastCapturedEventType = event.type;\n lastCapturedEventTargetId = target ? target._sentryId : undefined;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(() => {\n lastCapturedEventTargetId = undefined;\n lastCapturedEventType = undefined;\n }, DEBOUNCE_DURATION);\n };\n}\n\nfunction getEventTarget(event) {\n try {\n return event.target ;\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n return null;\n }\n}\n\nexport { addClickKeypressInstrumentationHandler, instrumentDOM };\n","import { addHandler, maybeInstrument, timestampInSeconds, isString, triggerHandlers } from '@sentry/utils';\nimport { WINDOW } from '../types.js';\n\nconst SENTRY_XHR_DATA_KEY = '__sentry_xhr_v3__';\n\n/**\n * Add an instrumentation handler for when an XHR request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addXhrInstrumentationHandler(handler) {\n const type = 'xhr';\n addHandler(type, handler);\n maybeInstrument(type, instrumentXHR);\n}\n\n/** Exported only for tests. */\nfunction instrumentXHR() {\n if (!(WINDOW ).XMLHttpRequest) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n xhrproto.open = new Proxy(xhrproto.open, {\n apply(originalOpen, xhrOpenThisArg, xhrOpenArgArray) {\n const startTimestamp = timestampInSeconds() * 1000;\n\n // open() should always be called with two or more arguments\n // But to be on the safe side, we actually validate this and bail out if we don't have a method & url\n const method = isString(xhrOpenArgArray[0]) ? xhrOpenArgArray[0].toUpperCase() : undefined;\n const url = parseUrl(xhrOpenArgArray[1]);\n\n if (!method || !url) {\n return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n }\n\n xhrOpenThisArg[SENTRY_XHR_DATA_KEY] = {\n method,\n url,\n request_headers: {},\n };\n\n // if Sentry key appears in URL, don't capture it as a request\n if (method === 'POST' && url.match(/sentry_key/)) {\n xhrOpenThisArg.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = () => {\n // For whatever reason, this is not the same instance here as from the outer method\n const xhrInfo = xhrOpenThisArg[SENTRY_XHR_DATA_KEY];\n\n if (!xhrInfo) {\n return;\n }\n\n if (xhrOpenThisArg.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhrOpenThisArg.status;\n } catch (e) {\n /* do nothing */\n }\n\n const handlerData = {\n endTimestamp: timestampInSeconds() * 1000,\n startTimestamp,\n xhr: xhrOpenThisArg,\n };\n triggerHandlers('xhr', handlerData);\n }\n };\n\n if ('onreadystatechange' in xhrOpenThisArg && typeof xhrOpenThisArg.onreadystatechange === 'function') {\n xhrOpenThisArg.onreadystatechange = new Proxy(xhrOpenThisArg.onreadystatechange, {\n apply(originalOnreadystatechange, onreadystatechangeThisArg, onreadystatechangeArgArray) {\n onreadystatechangeHandler();\n return originalOnreadystatechange.apply(onreadystatechangeThisArg, onreadystatechangeArgArray);\n },\n });\n } else {\n xhrOpenThisArg.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n // Intercepting `setRequestHeader` to access the request headers of XHR instance.\n // This will only work for user/library defined headers, not for the default/browser-assigned headers.\n // Request cookies are also unavailable for XHR, as `Cookie` header can't be defined by `setRequestHeader`.\n xhrOpenThisArg.setRequestHeader = new Proxy(xhrOpenThisArg.setRequestHeader, {\n apply(\n originalSetRequestHeader,\n setRequestHeaderThisArg,\n setRequestHeaderArgArray,\n ) {\n const [header, value] = setRequestHeaderArgArray;\n\n const xhrInfo = setRequestHeaderThisArg[SENTRY_XHR_DATA_KEY];\n\n if (xhrInfo && isString(header) && isString(value)) {\n xhrInfo.request_headers[header.toLowerCase()] = value;\n }\n\n return originalSetRequestHeader.apply(setRequestHeaderThisArg, setRequestHeaderArgArray);\n },\n });\n\n return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n xhrproto.send = new Proxy(xhrproto.send, {\n apply(originalSend, sendThisArg, sendArgArray) {\n const sentryXhrData = sendThisArg[SENTRY_XHR_DATA_KEY];\n\n if (!sentryXhrData) {\n return originalSend.apply(sendThisArg, sendArgArray);\n }\n\n if (sendArgArray[0] !== undefined) {\n sentryXhrData.body = sendArgArray[0];\n }\n\n const handlerData = {\n startTimestamp: timestampInSeconds() * 1000,\n xhr: sendThisArg,\n };\n triggerHandlers('xhr', handlerData);\n\n return originalSend.apply(sendThisArg, sendArgArray);\n },\n });\n}\n\nfunction parseUrl(url) {\n if (isString(url)) {\n return url;\n }\n\n try {\n // url can be a string or URL\n // but since URL is not available in IE11, we do not check for it,\n // but simply assume it is an URL and return `toString()` from it (which returns the full URL)\n // If that fails, we just return undefined\n return (url ).toString();\n } catch (e2) {} // eslint-disable-line no-empty\n\n return undefined;\n}\n\nexport { SENTRY_XHR_DATA_KEY, addXhrInstrumentationHandler, instrumentXHR };\n","import { dateTimestampInSeconds, consoleSandbox } from '@sentry/utils';\nimport { getClient, getIsolationScope } from './currentScopes.js';\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n */\nfunction addBreadcrumb(breadcrumb, hint) {\n const client = getClient();\n const isolationScope = getIsolationScope();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n\nexport { addBreadcrumb };\n","import { CONSOLE_LEVELS, originalConsoleMethods } from '../logger.js';\nimport { fill } from '../object.js';\nimport { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\n/**\n * Add an instrumentation handler for when a console.xxx method is called.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addConsoleInstrumentationHandler(handler) {\n const type = 'console';\n addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n}\n\nfunction instrumentConsole() {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n\n fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod) {\n originalConsoleMethods[level] = originalConsoleMethod;\n\n return function (...args) {\n const handlerData = { args, level };\n triggerHandlers('console', handlerData);\n\n const log = originalConsoleMethods[level];\n log && log.apply(GLOBAL_OBJ.console, args);\n };\n });\n });\n}\n\nexport { addConsoleInstrumentationHandler };\n","import { isError } from '../is.js';\nimport { fill, addNonEnumerableProperty } from '../object.js';\nimport { supportsNativeFetch } from '../supports.js';\nimport { timestampInSeconds } from '../time.js';\nimport { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addFetchInstrumentationHandler(\n handler,\n skipNativeFetchCheck,\n) {\n const type = 'fetch';\n addHandler(type, handler);\n maybeInstrument(type, () => instrumentFetch(undefined, skipNativeFetchCheck));\n}\n\n/**\n * Add an instrumentation handler for long-lived fetch requests, like consuming server-sent events (SSE) via fetch.\n * The handler will resolve the request body and emit the actual `endTimestamp`, so that the\n * span can be updated accordingly.\n *\n * Only used internally\n * @hidden\n */\nfunction addFetchEndInstrumentationHandler(handler) {\n const type = 'fetch-body-resolved';\n addHandler(type, handler);\n maybeInstrument(type, () => instrumentFetch(streamHandler));\n}\n\nfunction instrumentFetch(onFetchResolved, skipNativeFetchCheck = false) {\n if (skipNativeFetchCheck && !supportsNativeFetch()) {\n return;\n }\n\n fill(GLOBAL_OBJ, 'fetch', function (originalFetch) {\n return function (...args) {\n const { method, url } = parseFetchArgs(args);\n const handlerData = {\n args,\n fetchData: {\n method,\n url,\n },\n startTimestamp: timestampInSeconds() * 1000,\n };\n\n // if there is no callback, fetch is instrumented directly\n if (!onFetchResolved) {\n triggerHandlers('fetch', {\n ...handlerData,\n });\n }\n\n // We capture the stack right here and not in the Promise error callback because Safari (and probably other\n // browsers too) will wipe the stack trace up to this point, only leaving us with this file which is useless.\n\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the error, that was caused by your fetch call did not\n // have a stack trace, so the SDK backfilled the stack trace so\n // you can see which fetch call failed.\n const virtualStackTrace = new Error().stack;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(GLOBAL_OBJ, args).then(\n async (response) => {\n if (onFetchResolved) {\n onFetchResolved(response);\n } else {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: timestampInSeconds() * 1000,\n response,\n });\n }\n\n return response;\n },\n (error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: timestampInSeconds() * 1000,\n error,\n });\n\n if (isError(error) && error.stack === undefined) {\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the error, that was caused by your fetch call did not\n // have a stack trace, so the SDK backfilled the stack trace so\n // you can see which fetch call failed.\n error.stack = virtualStackTrace;\n addNonEnumerableProperty(error, 'framesToPop', 1);\n }\n\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\nasync function resolveResponse(res, onFinishedResolving) {\n if (res && res.body) {\n const body = res.body;\n const responseReader = body.getReader();\n\n // Define a maximum duration after which we just cancel\n const maxFetchDurationTimeout = setTimeout(\n () => {\n body.cancel().then(null, () => {\n // noop\n });\n },\n 90 * 1000, // 90s\n );\n\n let readingActive = true;\n while (readingActive) {\n let chunkTimeout;\n try {\n // abort reading if read op takes more than 5s\n chunkTimeout = setTimeout(() => {\n body.cancel().then(null, () => {\n // noop on error\n });\n }, 5000);\n\n // This .read() call will reject/throw when we abort due to timeouts through `body.cancel()`\n const { done } = await responseReader.read();\n\n clearTimeout(chunkTimeout);\n\n if (done) {\n onFinishedResolving();\n readingActive = false;\n }\n } catch (error) {\n readingActive = false;\n } finally {\n clearTimeout(chunkTimeout);\n }\n }\n\n clearTimeout(maxFetchDurationTimeout);\n\n responseReader.releaseLock();\n body.cancel().then(null, () => {\n // noop on error\n });\n }\n}\n\nfunction streamHandler(response) {\n // clone response for awaiting stream\n let clonedResponseForResolving;\n try {\n clonedResponseForResolving = response.clone();\n } catch (e) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resolveResponse(clonedResponseForResolving, () => {\n triggerHandlers('fetch-body-resolved', {\n endTimestamp: timestampInSeconds() * 1000,\n response,\n });\n });\n}\n\nfunction hasProp(obj, prop) {\n return !!obj && typeof obj === 'object' && !!(obj )[prop];\n}\n\nfunction getUrlFromResource(resource) {\n if (typeof resource === 'string') {\n return resource;\n }\n\n if (!resource) {\n return '';\n }\n\n if (hasProp(resource, 'url')) {\n return resource.url;\n }\n\n if (resource.toString) {\n return resource.toString();\n }\n\n return '';\n}\n\n/**\n * Parses the fetch arguments to find the used Http method and the url of the request.\n * Exported for tests only.\n */\nfunction parseFetchArgs(fetchArgs) {\n if (fetchArgs.length === 0) {\n return { method: 'GET', url: '' };\n }\n\n if (fetchArgs.length === 2) {\n const [url, options] = fetchArgs ;\n\n return {\n url: getUrlFromResource(url),\n method: hasProp(options, 'method') ? String(options.method).toUpperCase() : 'GET',\n };\n }\n\n const arg = fetchArgs[0];\n return {\n url: getUrlFromResource(arg ),\n method: hasProp(arg, 'method') ? String(arg.method).toUpperCase() : 'GET',\n };\n}\n\nexport { addFetchEndInstrumentationHandler, addFetchInstrumentationHandler, parseFetchArgs };\n","// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nconst validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityLevelFromString, validSeverityLevels };\n","/**\n * Determine a breadcrumb's log level (only `warning` or `error`) based on an HTTP status code.\n */\nfunction getBreadcrumbLogLevelFromHttpStatusCode(statusCode) {\n // NOTE: undefined defaults to 'info' in Sentry\n if (statusCode === undefined) {\n return undefined;\n } else if (statusCode >= 400 && statusCode < 500) {\n return 'warning';\n } else if (statusCode >= 500) {\n return 'error';\n } else {\n return undefined;\n }\n}\n\nexport { getBreadcrumbLogLevelFromHttpStatusCode };\n","/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url) {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n return (urlPath.split(/[?#]/, 1) )[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nfunction getNumberOfUrlSegments(url) {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span name\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nfunction getSanitizedUrlString(url) {\n const { protocol, host, path } = url;\n\n const filteredHost =\n (host &&\n host\n // Always filter out authority\n .replace(/^.*@/, '[filtered]:[filtered]@')\n // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n // TODO: Use new URL global if it exists\n .replace(/(:80)$/, '')\n .replace(/(:443)$/, '')) ||\n '';\n\n return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n\nexport { getNumberOfUrlSegments, getSanitizedUrlString, parseUrl, stripUrlQueryAndFragment };\n","import { addClickKeypressInstrumentationHandler, addXhrInstrumentationHandler, addHistoryInstrumentationHandler, SENTRY_XHR_DATA_KEY } from '@sentry-internal/browser-utils';\nimport { defineIntegration, getClient, addBreadcrumb } from '@sentry/core';\nimport { addConsoleInstrumentationHandler, addFetchInstrumentationHandler, getEventDescription, logger, htmlTreeAsString, getComponentName, severityLevelFromString, safeJoin, getBreadcrumbLogLevelFromHttpStatusCode, parseUrl } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { WINDOW } from '../helpers.js';\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\nconst INTEGRATION_NAME = 'Breadcrumbs';\n\nconst _breadcrumbsIntegration = ((options = {}) => {\n const _options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (_options.console) {\n addConsoleInstrumentationHandler(_getConsoleBreadcrumbHandler(client));\n }\n if (_options.dom) {\n addClickKeypressInstrumentationHandler(_getDomBreadcrumbHandler(client, _options.dom));\n }\n if (_options.xhr) {\n addXhrInstrumentationHandler(_getXhrBreadcrumbHandler(client));\n }\n if (_options.fetch) {\n addFetchInstrumentationHandler(_getFetchBreadcrumbHandler(client));\n }\n if (_options.history) {\n addHistoryInstrumentationHandler(_getHistoryBreadcrumbHandler(client));\n }\n if (_options.sentry) {\n client.on('beforeSendEvent', _getSentryBreadcrumbHandler(client));\n }\n },\n };\n}) ;\n\nconst breadcrumbsIntegration = defineIntegration(_breadcrumbsIntegration);\n\n/**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\nfunction _getSentryBreadcrumbHandler(client) {\n return function addSentryBreadcrumb(event) {\n if (getClient() !== client) {\n return;\n }\n\n addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n };\n}\n\n/**\n * A HOC that creates a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _getDomBreadcrumbHandler(\n client,\n dom,\n) {\n return function _innerDomBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n let target;\n let componentName;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n let maxStringLength =\n typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n DEBUG_BUILD &&\n logger.warn(\n `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n );\n maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n }\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n const event = handlerData.event ;\n const element = _isEvent(event) ? event.target : event;\n\n target = htmlTreeAsString(element, { keyAttrs, maxStringLength });\n componentName = getComponentName(element);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n const breadcrumb = {\n category: `ui.${handlerData.name}`,\n message: target,\n };\n\n if (componentName) {\n breadcrumb.data = { 'ui.component_name': componentName };\n }\n\n addBreadcrumb(breadcrumb, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _getConsoleBreadcrumbHandler(client) {\n return function _consoleBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _getXhrBreadcrumbHandler(client) {\n return function _xhrBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n const sentryXhrData = handlerData.xhr[SENTRY_XHR_DATA_KEY];\n\n // We only capture complete, non-sentry requests\n if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n return;\n }\n\n const { method, url, status_code, body } = sentryXhrData;\n\n const data = {\n method,\n url,\n status_code,\n };\n\n const hint = {\n xhr: handlerData.xhr,\n input: body,\n startTimestamp,\n endTimestamp,\n };\n\n const level = getBreadcrumbLogLevelFromHttpStatusCode(status_code);\n\n addBreadcrumb(\n {\n category: 'xhr',\n data,\n type: 'http',\n level,\n },\n hint,\n );\n };\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _getFetchBreadcrumbHandler(client) {\n return function _fetchBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n const { startTimestamp, endTimestamp } = handlerData;\n\n // We only capture complete fetch requests\n if (!endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n const data = handlerData.fetchData;\n const hint = {\n data: handlerData.error,\n input: handlerData.args,\n startTimestamp,\n endTimestamp,\n };\n\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n level: 'error',\n type: 'http',\n },\n hint,\n );\n } else {\n const response = handlerData.response ;\n const data = {\n ...handlerData.fetchData,\n status_code: response && response.status,\n };\n const hint = {\n input: handlerData.args,\n response,\n startTimestamp,\n endTimestamp,\n };\n const level = getBreadcrumbLogLevelFromHttpStatusCode(data.status_code);\n\n addBreadcrumb(\n {\n category: 'fetch',\n data,\n type: 'http',\n level,\n },\n hint,\n );\n }\n };\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _getHistoryBreadcrumbHandler(client) {\n return function _historyBreadcrumb(handlerData) {\n if (getClient() !== client) {\n return;\n }\n\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(WINDOW.location.href);\n let parsedFrom = from ? parseUrl(from) : undefined;\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom || !parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n };\n}\n\nfunction _isEvent(event) {\n return !!event && !!(event ).target;\n}\n\nexport { breadcrumbsIntegration };\n","import { defineIntegration } from '@sentry/core';\nimport { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { WINDOW, wrap } from '../helpers.js';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'BroadcastChannel',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'SharedWorker',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\nconst INTEGRATION_NAME = 'BrowserApiErrors';\n\nconst _browserApiErrorsIntegration = ((options = {}) => {\n const _options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n // TODO: This currently only works for the first client this is setup\n // We may want to adjust this to check for client etc.\n setupOnce() {\n if (_options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (_options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (_options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (_options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = _options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n },\n };\n}) ;\n\n/**\n * Wrap timer functions and event targets to catch errors and provide better meta data.\n */\nconst browserApiErrorsIntegration = defineIntegration(_browserApiErrorsIntegration);\n\nfunction _wrapTimeFunction(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: false,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\nfunction _wrapXHR(originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function ( ...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: false,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before BrowserApiErrors, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\nfunction _wrapEventTarget(target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const globalObject = WINDOW ;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = globalObject[target] && globalObject[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original,)\n\n {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn , {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: false,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n eventName,\n fn,\n options,\n ) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn ;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n\nexport { browserApiErrorsIntegration };\n","import { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnErrorHandler = null;\n\n/**\n * Add an instrumentation handler for when an error is captured by the global error handler.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addGlobalErrorInstrumentationHandler(handler) {\n const type = 'error';\n addHandler(type, handler);\n maybeInstrument(type, instrumentError);\n}\n\nfunction instrumentError() {\n _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n\n GLOBAL_OBJ.onerror = function (\n msg,\n url,\n line,\n column,\n error,\n ) {\n const handlerData = {\n column,\n error,\n line,\n msg,\n url,\n };\n triggerHandlers('error', handlerData);\n\n if (_oldOnErrorHandler && !_oldOnErrorHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n\n GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalErrorInstrumentationHandler };\n","import { GLOBAL_OBJ } from '../worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnUnhandledRejectionHandler = null;\n\n/**\n * Add an instrumentation handler for when an unhandled promise rejection is captured.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addGlobalUnhandledRejectionInstrumentationHandler(\n handler,\n) {\n const type = 'unhandledrejection';\n addHandler(type, handler);\n maybeInstrument(type, instrumentUnhandledRejection);\n}\n\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n\n GLOBAL_OBJ.onunhandledrejection = function (e) {\n const handlerData = e;\n triggerHandlers('unhandledrejection', handlerData);\n\n if (_oldOnUnhandledRejectionHandler && !_oldOnUnhandledRejectionHandler.__SENTRY_LOADER__) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n\n GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalUnhandledRejectionInstrumentationHandler };\n","import { defineIntegration, getClient, captureEvent } from '@sentry/core';\nimport { addGlobalErrorInstrumentationHandler, addGlobalUnhandledRejectionInstrumentationHandler, isPrimitive, isString, getLocationHref, UNKNOWN_FUNCTION, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\nconst INTEGRATION_NAME = 'GlobalHandlers';\n\nconst _globalHandlersIntegration = ((options = {}) => {\n const _options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n Error.stackTraceLimit = 50;\n },\n setup(client) {\n if (_options.onerror) {\n _installGlobalOnErrorHandler(client);\n globalHandlerLog('onerror');\n }\n if (_options.onunhandledrejection) {\n _installGlobalOnUnhandledRejectionHandler(client);\n globalHandlerLog('onunhandledrejection');\n }\n },\n };\n}) ;\n\nconst globalHandlersIntegration = defineIntegration(_globalHandlersIntegration);\n\nfunction _installGlobalOnErrorHandler(client) {\n addGlobalErrorInstrumentationHandler(data => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const { msg, url, line, column, error } = data;\n\n const event = _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onerror',\n },\n });\n });\n}\n\nfunction _installGlobalOnUnhandledRejectionHandler(client) {\n addGlobalUnhandledRejectionInstrumentationHandler(e => {\n const { stackParser, attachStacktrace } = getOptions();\n\n if (getClient() !== client || shouldIgnoreOnError()) {\n return;\n }\n\n const error = _getUnhandledRejectionError(e );\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n captureEvent(event, {\n originalException: error,\n mechanism: {\n handled: false,\n type: 'onunhandledrejection',\n },\n });\n });\n}\n\nfunction _getUnhandledRejectionError(error) {\n if (isPrimitive(error)) {\n return error;\n }\n\n // dig the object of the rejection out of known event types\n try {\n\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in (error )) {\n return (error ).reason;\n }\n\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n if ('detail' in (error ) && 'reason' in (error ).detail) {\n return (error ).detail.reason;\n }\n } catch (e2) {} // eslint-disable-line no-empty\n\n return error;\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: UNKNOWN_FUNCTION,\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n DEBUG_BUILD && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction getOptions() {\n const client = getClient();\n const options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return options;\n}\n\nexport { globalHandlersIntegration };\n","import { defineIntegration } from '@sentry/core';\nimport { WINDOW } from '../helpers.js';\n\n/**\n * Collects information about HTTP request headers and\n * attaches them to the event.\n */\nconst httpContextIntegration = defineIntegration(() => {\n return {\n name: 'HttpContext',\n preprocessEvent(event) {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (WINDOW.location && WINDOW.location.href);\n const { referrer } = WINDOW.document || {};\n const { userAgent } = WINDOW.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...event.request, ...(url && { url }), headers };\n\n event.request = request;\n },\n };\n});\n\nexport { httpContextIntegration };\n","import { isInstanceOf } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nfunction applyAggregateErrorsToEvent(\n exceptionFromErrorImplementation,\n parser,\n maxValueLimit = 250,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n\n // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n const originalException =\n event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n // We only create exception grouping if there is an exception in the event.\n if (originalException) {\n event.exception.values = truncateAggregateExceptions(\n aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException ,\n key,\n event.exception.values,\n originalException,\n 0,\n ),\n maxValueLimit,\n );\n }\n}\n\nfunction aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error,\n key,\n prevExceptions,\n exception,\n exceptionId,\n) {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n\n let newExceptions = [...prevExceptions];\n\n // Recursively call this function in order to walk down a chain of errors\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, error[key]);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key],\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n\n // This will create exception grouping for AggregateErrors\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n if (Array.isArray(error.errors)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId);\n const newException = exceptionFromErrorImplementation(parser, childError);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n });\n }\n\n return newExceptions;\n}\n\nfunction applyExceptionGroupFieldsForParentException(exception, exceptionId) {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n ...(exception.type === 'AggregateError' && { is_exception_group: true }),\n exception_id: exceptionId,\n };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n exception,\n source,\n exceptionId,\n parentId,\n) {\n // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n exception.mechanism = {\n ...exception.mechanism,\n type: 'chained',\n source,\n exception_id: exceptionId,\n parent_id: parentId,\n };\n}\n\n/**\n * Truncate the message (exception.value) of all exceptions in the event.\n * Because this event processor is ran after `applyClientOptions`,\n * we need to truncate the message of the added exceptions here.\n */\nfunction truncateAggregateExceptions(exceptions, maxValueLength) {\n return exceptions.map(exception => {\n if (exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n return exception;\n });\n}\n\nexport { applyAggregateErrorsToEvent };\n","import { defineIntegration } from '@sentry/core';\nimport { applyAggregateErrorsToEvent } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(\n // This differs from the LinkedErrors integration in core by using a different exceptionFromError function\n exceptionFromError,\n options.stackParser,\n options.maxValueLength,\n key,\n limit,\n event,\n hint,\n );\n },\n };\n}) ;\n\n/**\n * Aggregrate linked errors in an event.\n */\nconst linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n\nexport { linkedErrorsIntegration };\n","import { createStackParser, UNKNOWN_FUNCTION } from '@sentry/utils';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n const frame = {\n filename,\n function: func === '' ? UNKNOWN_FUNCTION : func,\n in_app: true, // All browser frames are considered in_app\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// This regex matches frames that have no function name (ie. are at the top level of a module).\n// For example \"at http://localhost:5000//script.js:1:126\"\n// Frames _with_ function names usually look as follows: \"at commitLayoutEffects (react-dom.development.js:23426:1)\"\nconst chromeRegexNoFnName = /^\\s*at (\\S+?)(?::(\\d+))(?::(\\d+))\\s*$/i;\n\n// This regex matches all the frames that have a function name.\nconst chromeRegex =\n /^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\n// We cannot call this variable `chrome` because it can conflict with global `chrome` variable in certain environments\n// See: https://github.com/getsentry/sentry-javascript/issues/6880\nconst chromeStackParserFn = line => {\n // If the stack line has no function name, we need to parse it differently\n const noFnParts = chromeRegexNoFnName.exec(line) ;\n\n if (noFnParts) {\n const [, filename, line, col] = noFnParts;\n return createFrame(filename, UNKNOWN_FUNCTION, +line, +col);\n }\n\n const parts = chromeRegex.exec(line) ;\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]) ;\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nconst chromeStackLineParser = [CHROME_PRIORITY, chromeStackParserFn];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko = line => {\n const parts = geckoREgex.exec(line) ;\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]) ;\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nconst geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:[-a-z]+):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs = line => {\n const parts = winjsRegex.exec(line) ;\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nconst winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10 = line => {\n const parts = opera10Regex.exec(line) ;\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nconst opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11 = line => {\n const parts = opera11Regex.exec(line) ;\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nconst opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nconst defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser];\n\nconst defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func, filename) => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? (func.split('@')[0] ) : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n","/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nconst DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n","import { isNativeFunction, logger } from '@sentry/utils';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { WINDOW } from './types.js';\n\n/**\n * We generally want to use window.fetch / window.setTimeout.\n * However, in some cases this may be wrapped (e.g. by Zone.js for Angular),\n * so we try to get an unpatched version of this from a sandboxed iframe.\n */\n\nconst cachedImplementations = {};\n\n/**\n * Get the native implementation of a browser function.\n *\n * This can be used to ensure we get an unwrapped version of a function, in cases where a wrapped function can lead to problems.\n *\n * The following methods can be retrieved:\n * - `setTimeout`: This can be wrapped by e.g. Angular, causing change detection to be triggered.\n * - `fetch`: This can be wrapped by e.g. ad-blockers, causing an infinite loop when a request is blocked.\n */\nfunction getNativeImplementation(\n name,\n) {\n const cached = cachedImplementations[name];\n if (cached) {\n return cached;\n }\n\n let impl = WINDOW[name] ;\n\n // Fast path to avoid DOM I/O\n if (isNativeFunction(impl)) {\n return (cachedImplementations[name] = impl.bind(WINDOW) );\n }\n\n const document = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow[name]) {\n impl = contentWindow[name] ;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n // Could not create sandbox iframe, just use window.xxx\n DEBUG_BUILD && logger.warn(`Could not create sandbox iframe for ${name} check, bailing to window.${name}: `, e);\n }\n }\n\n // Sanity check: This _should_ not happen, but if it does, we just skip caching...\n // This can happen e.g. in tests where fetch may not be available in the env, or similar.\n if (!impl) {\n return impl;\n }\n\n return (cachedImplementations[name] = impl.bind(WINDOW) );\n}\n\n/** Clear a cached implementation. */\nfunction clearCachedImplementation(name) {\n cachedImplementations[name] = undefined;\n}\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction fetch(...rest) {\n return getNativeImplementation('fetch')(...rest);\n}\n\n/**\n * Get an unwrapped `setTimeout` method.\n * This ensures that even if e.g. Angular wraps `setTimeout`, we get the native implementation,\n * avoiding triggering change detection.\n */\nfunction setTimeout(...rest) {\n return getNativeImplementation('setTimeout')(...rest);\n}\n\nexport { clearCachedImplementation, fetch, getNativeImplementation, setTimeout };\n","// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nconst DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nfunction disabledUntil(limits, dataCategory) {\n return limits[dataCategory] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, dataCategory, now = Date.now()) {\n return disabledUntil(limits, dataCategory) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nfunction updateRateLimits(\n limits,\n { statusCode, headers },\n now = Date.now(),\n) {\n const updatedRateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
    ,
    ,..\n * where each
    is of the form\n * : : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n * Semicolon-separated list of metric namespace identifiers. Defines which namespace(s) will be affected.\n * Only present if rate limit applies to the metric_bucket data category.\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories, , , namespaces] = limit.split(':', 5) ;\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n if (category === 'metric_bucket') {\n // namespaces will be present when category === 'metric_bucket'\n if (!namespaces || namespaces.split(';').includes('custom')) {\n updatedRateLimits[category] = now + delay;\n }\n } else {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n","import { makePromiseBuffer, forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, SentryError, logger, serializeEnvelope, updateRateLimits } from '@sentry/utils';\nimport { DEBUG_BUILD } from '../debug-build.js';\n\nconst DEFAULT_TRANSPORT_BUFFER_SIZE = 64;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n ),\n) {\n let rateLimits = {};\n const flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n const filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const dataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, dataCategory)) {\n const event = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent('ratelimit_backoff', dataCategory, event);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise({});\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason) => {\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n const event = getEventForEnvelopeItem(item, type);\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type), event);\n });\n };\n\n const requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n DEBUG_BUILD && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n error => {\n recordEnvelopeLoss('network_error');\n throw error;\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n DEBUG_BUILD && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise({});\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nfunction getEventForEnvelopeItem(item, type) {\n if (type !== 'event' && type !== 'transaction') {\n return undefined;\n }\n\n return Array.isArray(item) ? (item )[1] : undefined;\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n","import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit) {\n const buffer = [];\n\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0] || Promise.resolve(undefined);\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout) {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n\nexport { makePromiseBuffer };\n","import { getNativeImplementation, clearCachedImplementation } from '@sentry-internal/browser-utils';\nimport { createTransport } from '@sentry/core';\nimport { rejectedSyncPromise } from '@sentry/utils';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nfunction makeFetchTransport(\n options,\n nativeFetch = getNativeImplementation('fetch'),\n) {\n let pendingBodySize = 0;\n let pendingCount = 0;\n\n function makeRequest(request) {\n const requestSize = request.body.length;\n pendingBodySize += requestSize;\n pendingCount++;\n\n const requestOptions = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. when finishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch):\n // If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.\n // We will therefore only activate the flag when we're below that limit.\n // There is also a limit of requests that can be open at the same time, so we also limit this to 15\n // See https://github.com/getsentry/sentry-javascript/pull/7553 for details\n keepalive: pendingBodySize <= 60000 && pendingCount < 15,\n ...options.fetchOptions,\n };\n\n if (!nativeFetch) {\n clearCachedImplementation('fetch');\n return rejectedSyncPromise('No fetch implementation available');\n }\n\n try {\n // TODO: This may need a `suppressTracing` call in the future when we switch the browser SDK to OTEL\n return nativeFetch(options.url, requestOptions).then(response => {\n pendingBodySize -= requestSize;\n pendingCount--;\n return {\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n };\n });\n } catch (e) {\n clearCachedImplementation('fetch');\n pendingBodySize -= requestSize;\n pendingCount--;\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };\n","import { inboundFiltersIntegration, functionToStringIntegration, dedupeIntegration, getIntegrationsToSetup, initAndBind, getCurrentScope, lastEventId, getReportDialogEndpoint, startSession, captureSession, getClient } from '@sentry/core';\nimport { consoleSandbox, supportsFetch, logger, stackParserFromStackParserOptions } from '@sentry/utils';\nimport { addHistoryInstrumentationHandler } from '@sentry-internal/browser-utils';\nimport { BrowserClient } from './client.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { WINDOW } from './helpers.js';\nimport { breadcrumbsIntegration } from './integrations/breadcrumbs.js';\nimport { browserApiErrorsIntegration } from './integrations/browserapierrors.js';\nimport { globalHandlersIntegration } from './integrations/globalhandlers.js';\nimport { httpContextIntegration } from './integrations/httpcontext.js';\nimport { linkedErrorsIntegration } from './integrations/linkederrors.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport { makeFetchTransport } from './transports/fetch.js';\n\n/** Get the default integrations for the browser SDK. */\nfunction getDefaultIntegrations(_options) {\n /**\n * Note: Please make sure this stays in sync with Angular SDK, which re-exports\n * `getDefaultIntegrations` but with an adjusted set of integrations.\n */\n return [\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n browserApiErrorsIntegration(),\n breadcrumbsIntegration(),\n globalHandlersIntegration(),\n linkedErrorsIntegration(),\n dedupeIntegration(),\n httpContextIntegration(),\n ];\n}\n\nfunction applyDefaultOptions(optionsArg = {}) {\n const defaultOptions = {\n defaultIntegrations: getDefaultIntegrations(),\n release:\n typeof __SENTRY_RELEASE__ === 'string' // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n ? __SENTRY_RELEASE__\n : WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id // This supports the variable that sentry-webpack-plugin injects\n ? WINDOW.SENTRY_RELEASE.id\n : undefined,\n autoSessionTracking: true,\n sendClientReports: true,\n };\n\n // TODO: Instead of dropping just `defaultIntegrations`, we should simply\n // call `dropUndefinedKeys` on the entire `optionsArg`.\n // However, for this to work we need to adjust the `hasTracingEnabled()` logic\n // first as it differentiates between `undefined` and the key not being in the object.\n if (optionsArg.defaultIntegrations == null) {\n delete optionsArg.defaultIntegrations;\n }\n\n return { ...defaultOptions, ...optionsArg };\n}\n\nfunction shouldShowBrowserExtensionError() {\n const windowWithMaybeExtension =\n typeof WINDOW.window !== 'undefined' && (WINDOW );\n if (!windowWithMaybeExtension) {\n // No need to show the error if we're not in a browser window environment (e.g. service workers)\n return false;\n }\n\n const extensionKey = windowWithMaybeExtension.chrome ? 'chrome' : 'browser';\n const extensionObject = windowWithMaybeExtension[extensionKey];\n\n const runtimeId = extensionObject && extensionObject.runtime && extensionObject.runtime.id;\n const href = (WINDOW.location && WINDOW.location.href) || '';\n\n const extensionProtocols = ['chrome-extension:', 'moz-extension:', 'ms-browser-extension:', 'safari-web-extension:'];\n\n // Running the SDK in a dedicated extension page and calling Sentry.init is fine; no risk of data leakage\n const isDedicatedExtensionPage =\n !!runtimeId && WINDOW === WINDOW.top && extensionProtocols.some(protocol => href.startsWith(`${protocol}//`));\n\n // Running the SDK in NW.js, which appears like a browser extension but isn't, is also fine\n // see: https://github.com/getsentry/sentry-javascript/issues/12668\n const isNWjs = typeof windowWithMaybeExtension.nw !== 'undefined';\n\n return !!runtimeId && !isDedicatedExtensionPage && !isNWjs;\n}\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nfunction init(browserOptions = {}) {\n const options = applyDefaultOptions(browserOptions);\n\n if (!options.skipBrowserExtensionCheck && shouldShowBrowserExtensionError()) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(\n '[Sentry] You cannot run Sentry this way in a browser extension, check: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/',\n );\n });\n return;\n }\n\n if (DEBUG_BUILD) {\n if (!supportsFetch()) {\n logger.warn(\n 'No Fetch API detected. The Sentry SDK requires a Fetch API compatible environment to send events. Please add a Fetch API polyfill.',\n );\n }\n }\n const clientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || makeFetchTransport,\n };\n\n const client = initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n\n return client;\n}\n\n/**\n * All properties the report dialog supports\n */\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nfunction showReportDialog(options = {}) {\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n DEBUG_BUILD && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const scope = getCurrentScope();\n const client = scope.getClient();\n const dsn = client && client.getDsn();\n\n if (!dsn) {\n DEBUG_BUILD && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n const eventId = lastEventId();\n if (eventId) {\n options.eventId = eventId;\n }\n }\n\n const script = WINDOW.document.createElement('script');\n script.async = true;\n script.crossOrigin = 'anonymous';\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n const { onClose } = options;\n if (onClose) {\n const reportDialogClosedMessageHandler = (event) => {\n if (event.data === '__sentry_reportdialog_closed__') {\n try {\n onClose();\n } finally {\n WINDOW.removeEventListener('message', reportDialogClosedMessageHandler);\n }\n }\n };\n WINDOW.addEventListener('message', reportDialogClosedMessageHandler);\n }\n\n const injectionPoint = WINDOW.document.head || WINDOW.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n DEBUG_BUILD && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n callback();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n if (typeof WINDOW.document === 'undefined') {\n DEBUG_BUILD && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSession({ ignoreDuration: true });\n captureSession();\n\n // We want to create a session for every navigation as well\n addHistoryInstrumentationHandler(({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (from !== undefined && from !== to) {\n startSession({ ignoreDuration: true });\n captureSession();\n }\n });\n}\n\n/**\n * Captures user feedback and sends it to Sentry.\n *\n * @deprecated Use `captureFeedback` instead.\n */\nfunction captureUserFeedback(feedback) {\n const client = getClient();\n if (client) {\n // eslint-disable-next-line deprecation/deprecation\n client.captureUserFeedback(feedback);\n }\n}\n\nexport { captureUserFeedback, forceLoad, getDefaultIntegrations, init, onLoad, showReportDialog };\n","import { logger, consoleSandbox } from '@sentry/utils';\nimport { getCurrentScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\n\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n clientClass,\n options,\n) {\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n });\n }\n }\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n\n const client = new clientClass(options);\n setCurrentClient(client);\n client.init();\n return client;\n}\n\n/**\n * Make the given client the current client.\n */\nfunction setCurrentClient(client) {\n getCurrentScope().setClient(client);\n}\n\nexport { initAndBind, setCurrentClient };\n","import * as Sentry from '@sentry/browser';\nimport { breadcrumbsIntegration, globalHandlersIntegration, linkedErrorsIntegration, httpContextIntegration, init as init$1, setContext, browserTracingIntegration as browserTracingIntegration$1, spanToJSON, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getClient, startBrowserTracingNavigationSpan, startInactiveSpan, getCurrentScope, getActiveSpan, getRootSpan } from '@sentry/browser';\nexport * from '@sentry/browser';\nimport * as i0 from '@angular/core';\nimport { VERSION, Injectable, Inject, Directive, Input, NgModule } from '@angular/core';\nimport { inboundFiltersIntegration, functionToStringIntegration, dedupeIntegration, applySdkMetadata } from '@sentry/core';\nimport { logger, isString, consoleSandbox, stripUrlQueryAndFragment, timestampInSeconds } from '@sentry/utils';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport * as i1 from '@angular/router';\nimport { NavigationStart, ResolveEnd, NavigationEnd, NavigationCancel, NavigationError } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { filter, tap } from 'rxjs/operators';\n\n/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * We define \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during our, or the user's\n * build process. Take care when introducing new flags - they must not throw if they are not replaced. See the Debug\n * Build Flags section in CONTRIBUTING.md.\n */\n/** Flag that is true for debug builds, false otherwise. */\nconst IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n\n/**\n * Get the default integrations for the Angular SDK.\n */\nfunction getDefaultIntegrations() {\n // Don't include the BrowserApiErrors integration as it interferes with the Angular SDK's `ErrorHandler`:\n // BrowserApiErrors would catch certain errors before they reach the `ErrorHandler` and\n // thus provide a lower fidelity error than what `SentryErrorHandler`\n // (see errorhandler.ts) would provide.\n //\n // see:\n // - https://github.com/getsentry/sentry-javascript/issues/5417#issuecomment-1453407097\n // - https://github.com/getsentry/sentry-javascript/issues/2744\n return [\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n breadcrumbsIntegration(),\n globalHandlersIntegration(),\n linkedErrorsIntegration(),\n dedupeIntegration(),\n httpContextIntegration(),\n ];\n}\n/**\n * Inits the Angular SDK\n */\nfunction init(options) {\n const opts = {\n defaultIntegrations: getDefaultIntegrations(),\n ...options,\n };\n applySdkMetadata(opts, 'angular');\n checkAndSetAngularVersion();\n return init$1(opts);\n}\nfunction checkAndSetAngularVersion() {\n const ANGULAR_MINIMUM_VERSION = 14;\n const angularVersion = VERSION && VERSION.major ? parseInt(VERSION.major, 10) : undefined;\n if (angularVersion) {\n if (angularVersion < ANGULAR_MINIMUM_VERSION) {\n IS_DEBUG_BUILD &&\n logger.warn(`This Sentry SDK does not officially support Angular ${angularVersion}.`, `This SDK only supports Angular ${ANGULAR_MINIMUM_VERSION} and above.`, \"If you're using lower Angular versions, check the Angular Version Compatibility table in our docs: https://docs.sentry.io/platforms/javascript/guides/angular/#angular-version-compatibility.\", 'Otherwise, please consider upgrading your Angular version.');\n }\n setContext('angular', { version: angularVersion });\n }\n}\n\n// In Angular 17 and future versions, zoneless support is forthcoming.\n// Therefore, it's advisable to safely check whether the `run` function is\n// available in the `` context.\n// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\nconst isNgZoneEnabled = typeof Zone !== 'undefined' && Zone.root && Zone.root.run;\n/**\n * The function that does the same job as `NgZone.runOutsideAngular`.\n *\n * ⚠️ Note: All of the Sentry functionality called from inside the Angular\n * execution context must be wrapped in this function. Angular's rendering\n * relies on asynchronous tasks being scheduled within its execution context.\n * Since Sentry schedules tasks that do not interact with Angular's rendering,\n * it may prevent Angular from functioning reliably. Consequently, it may disrupt\n * processes such as server-side rendering or client-side hydration.\n */\nfunction runOutsideAngular(callback) {\n // Running the `callback` within the root execution context enables Angular\n // processes (such as SSR and hydration) to continue functioning normally without\n // timeouts and delays that could affect the user experience. This approach is\n // necessary because some of the Sentry functionality continues to run in the background.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return isNgZoneEnabled ? Zone.root.run(callback) : callback();\n}\n\n// https://github.com/angular/angular/blob/master/packages/core/src/util/errors.ts\nfunction tryToUnwrapZonejsError(error) {\n // TODO: once Angular14 is the minimum requirement ERROR_ORIGINAL_ERROR and\n // getOriginalError from error.ts can be used directly.\n return error && error.ngOriginalError\n ? error.ngOriginalError\n : error;\n}\nfunction extractHttpModuleError(error) {\n // The `error` property of http exception can be either an `Error` object, which we can use directly...\n if (isErrorOrErrorLikeObject(error.error)) {\n return error.error;\n }\n // ... or an`ErrorEvent`, which can provide us with the message but no stack...\n // guarding `ErrorEvent` against `undefined` as it's not defined in Node environments\n if (typeof ErrorEvent !== 'undefined' && error.error instanceof ErrorEvent && error.error.message) {\n return error.error.message;\n }\n // ...or the request body itself, which we can use as a message instead.\n if (typeof error.error === 'string') {\n return `Server returned code ${error.status} with body \"${error.error}\"`;\n }\n // If we don't have any detailed information, fallback to the request message itself.\n return error.message;\n}\nfunction isErrorOrErrorLikeObject(value) {\n if (value instanceof Error) {\n return true;\n }\n if (value === null || typeof value !== 'object') {\n return false;\n }\n const candidate = value;\n return (isString(candidate.name) &&\n isString(candidate.message) &&\n (undefined === candidate.stack || isString(candidate.stack)));\n}\n/**\n * Implementation of Angular's ErrorHandler provider that can be used as a drop-in replacement for the stock one.\n */\nclass SentryErrorHandler {\n constructor(options) {\n this._options = {\n logErrors: true,\n ...options,\n };\n }\n /**\n * Method executed when the injector is destroyed.\n */\n ngOnDestroy() {\n if (this._removeAfterSendEventListener) {\n this._removeAfterSendEventListener();\n }\n }\n /**\n * Method called for every value captured through the ErrorHandler\n */\n handleError(error) {\n const extractedError = this._extractError(error) || 'Handled unknown error';\n // Capture handled exception and send it to Sentry.\n const eventId = runOutsideAngular(() => Sentry.captureException(extractedError, {\n mechanism: { type: 'angular', handled: false },\n }));\n // When in development mode, log the error to console for immediate feedback.\n if (this._options.logErrors) {\n // eslint-disable-next-line no-console\n consoleSandbox(() => console.error(extractedError));\n }\n // Optionally show user dialog to provide details on what happened.\n if (this._options.showDialog) {\n const client = Sentry.getClient();\n if (client && !this._removeAfterSendEventListener) {\n this._removeAfterSendEventListener = client.on('afterSendEvent', (event) => {\n if (!event.type && event.event_id) {\n runOutsideAngular(() => {\n Sentry.showReportDialog({ ...this._options.dialogOptions, eventId: event.event_id });\n });\n }\n });\n }\n else if (!client) {\n runOutsideAngular(() => {\n Sentry.showReportDialog({ ...this._options.dialogOptions, eventId });\n });\n }\n }\n }\n /**\n * Used to pull a desired value that will be used to capture an event out of the raw value captured by ErrorHandler.\n */\n _extractError(error) {\n // Allow custom overrides of extracting function\n if (this._options.extractor) {\n const defaultExtractor = this._defaultExtractor.bind(this);\n return this._options.extractor(error, defaultExtractor);\n }\n return this._defaultExtractor(error);\n }\n /**\n * Default implementation of error extraction that handles default error wrapping, HTTP responses, ErrorEvent and few other known cases.\n */\n _defaultExtractor(errorCandidate) {\n const error = tryToUnwrapZonejsError(errorCandidate);\n // If it's http module error, extract as much information from it as we can.\n if (error instanceof HttpErrorResponse) {\n return extractHttpModuleError(error);\n }\n // We can handle messages and Error objects directly.\n if (typeof error === 'string' || isErrorOrErrorLikeObject(error)) {\n return error;\n }\n // Nothing was extracted, fallback to default error message.\n return null;\n }\n}\nSentryErrorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: SentryErrorHandler, deps: [{ token: 'errorHandlerOptions' }], target: i0.ɵɵFactoryTarget.Injectable });\nSentryErrorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: SentryErrorHandler, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: SentryErrorHandler, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: ['errorHandlerOptions']\n }] }]; } });\n/**\n * Factory function that creates an instance of a preconfigured ErrorHandler provider.\n */\nfunction createErrorHandler(config) {\n return new SentryErrorHandler(config);\n}\n\nconst ANGULAR_ROUTING_OP = 'ui.angular.routing';\nconst ANGULAR_INIT_OP = 'ui.angular.init';\nconst ANGULAR_OP = 'ui.angular';\n\nlet instrumentationInitialized;\n/**\n * A custom browser tracing integration for Angular.\n *\n * Use this integration in combination with `TraceService`\n */\nfunction browserTracingIntegration(options = {}) {\n // If the user opts out to set this up, we just don't initialize this.\n // That way, the TraceService will not actually do anything, functionally disabling this.\n if (options.instrumentNavigation !== false) {\n instrumentationInitialized = true;\n }\n return browserTracingIntegration$1({\n ...options,\n instrumentNavigation: false,\n });\n}\n/**\n * This function is extracted to make unit testing easier.\n */\nfunction _updateSpanAttributesForParametrizedUrl(route, span) {\n const attributes = (span && spanToJSON(span).data) || {};\n if (span && attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === 'url') {\n span.updateName(route);\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, 'route');\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, `auto.${spanToJSON(span).op}.angular`);\n }\n}\n/**\n * Angular's Service responsible for hooking into Angular Router and tracking current navigation process.\n * Creates a new transaction for every route change and measures a duration of routing process.\n */\nclass TraceService {\n constructor(_router) {\n this._router = _router;\n this.navStart$ = this._router.events.pipe(filter((event) => event instanceof NavigationStart), tap(navigationEvent => {\n if (!instrumentationInitialized) {\n IS_DEBUG_BUILD &&\n logger.error('Angular integration has tracing enabled, but Tracing integration is not configured');\n return;\n }\n if (this._routingSpan) {\n this._routingSpan.end();\n this._routingSpan = null;\n }\n const client = getClient();\n const strippedUrl = stripUrlQueryAndFragment(navigationEvent.url);\n if (client) {\n // see comment in `_isPageloadOngoing` for rationale\n if (!this._isPageloadOngoing()) {\n runOutsideAngular(() => {\n startBrowserTracingNavigationSpan(client, {\n name: strippedUrl,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.navigation.angular',\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n },\n });\n });\n }\n else {\n // The first time we end up here, we set the pageload flag to false\n // Subsequent navigations are going to get their own navigation root span\n // even if the pageload root span is still ongoing.\n this._pageloadOngoing = false;\n }\n this._routingSpan =\n runOutsideAngular(() => startInactiveSpan({\n name: `${navigationEvent.url}`,\n op: ANGULAR_ROUTING_OP,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.angular',\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n url: strippedUrl,\n ...(navigationEvent.navigationTrigger && {\n navigationTrigger: navigationEvent.navigationTrigger,\n }),\n },\n })) || null;\n return;\n }\n }));\n // The ResolveEnd event is fired when the Angular router has resolved the URL and\n // the parameter<->value mapping. It holds the new resolved router state with\n // the mapping and the new URL.\n // Only After this event, the route is activated, meaning that the transaction\n // can be updated with the parameterized route name before e.g. the route's root\n // component is initialized. This should be early enough before outgoing requests\n // are made from the new route, with the exceptions of requests being made during\n // a navigation.\n this.resEnd$ = this._router.events.pipe(filter((event) => event instanceof ResolveEnd), tap(event => {\n const route = getParameterizedRouteFromSnapshot(event.state.root);\n if (route) {\n getCurrentScope().setTransactionName(route);\n }\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n _updateSpanAttributesForParametrizedUrl(route, rootSpan);\n }));\n this.navEnd$ = this._router.events.pipe(filter(event => event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError), tap(() => {\n if (this._routingSpan) {\n runOutsideAngular(() => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._routingSpan.end();\n });\n this._routingSpan = null;\n }\n }));\n this._routingSpan = null;\n this._pageloadOngoing = true;\n this._subscription = new Subscription();\n this._subscription.add(this.navStart$.subscribe());\n this._subscription.add(this.resEnd$.subscribe());\n this._subscription.add(this.navEnd$.subscribe());\n }\n /**\n * This is used to prevent memory leaks when the root view is created and destroyed multiple times,\n * since `subscribe` callbacks capture `this` and prevent many resources from being GC'd.\n */\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n /**\n * We only _avoid_ creating a navigation root span in one case:\n *\n * There is an ongoing pageload span AND the router didn't yet emit the first navigation start event\n *\n * The first navigation start event will create the child routing span\n * and update the pageload root span name on ResolveEnd.\n *\n * There's an edge case we need to avoid here: If the router fires the first navigation start event\n * _after_ the pageload root span finished. This is why we check for the pageload root span.\n * Possible real-world scenario: Angular application and/or router is bootstrapped after the pageload\n * idle root span finished\n *\n * The overall rationale is:\n * - if we already avoided creating a navigation root span once, we don't avoid it again\n * (i.e. set `_pageloadOngoing` to `false`)\n * - if `_pageloadOngoing` is already `false`, create a navigation root span\n * - if there's no active/pageload root span, create a navigation root span\n * - only if there's an ongoing pageload root span AND `_pageloadOngoing` is still `true,\n * don't create a navigation root span\n */\n _isPageloadOngoing() {\n if (!this._pageloadOngoing) {\n // pageload is already finished, no need to update\n return false;\n }\n const activeSpan = getActiveSpan();\n if (!activeSpan) {\n this._pageloadOngoing = false;\n return false;\n }\n const rootSpan = getRootSpan(activeSpan);\n this._pageloadOngoing = spanToJSON(rootSpan).op === 'pageload';\n return this._pageloadOngoing;\n }\n}\nTraceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TraceService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });\nTraceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TraceService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TraceService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Router }]; } });\nconst UNKNOWN_COMPONENT = 'unknown';\n/**\n * A directive that can be used to capture initialization lifecycle of the whole component.\n */\nclass TraceDirective {\n /**\n * Implementation of OnInit lifecycle method\n * @inheritdoc\n */\n ngOnInit() {\n if (!this.componentName) {\n this.componentName = UNKNOWN_COMPONENT;\n }\n if (getActiveSpan()) {\n this._tracingSpan = runOutsideAngular(() => startInactiveSpan({\n name: `<${this.componentName}>`,\n op: ANGULAR_INIT_OP,\n attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.angular.trace_directive' },\n }));\n }\n }\n /**\n * Implementation of AfterViewInit lifecycle method\n * @inheritdoc\n */\n ngAfterViewInit() {\n if (this._tracingSpan) {\n runOutsideAngular(() => this._tracingSpan.end());\n }\n }\n}\nTraceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TraceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nTraceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: TraceDirective, selector: \"[trace]\", inputs: { componentName: [\"trace\", \"componentName\"] }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TraceDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[trace]' }]\n }], propDecorators: { componentName: [{\n type: Input,\n args: ['trace']\n }] } });\n/**\n * A module serves as a single compilation unit for the `TraceDirective` and can be re-used by any other module.\n */\nclass TraceModule {\n}\nTraceModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TraceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nTraceModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: TraceModule, declarations: [TraceDirective], exports: [TraceDirective] });\nTraceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TraceModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TraceModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [TraceDirective],\n exports: [TraceDirective],\n }]\n }] });\n/**\n * Decorator function that can be used to capture initialization lifecycle of the whole component.\n */\nfunction TraceClass(options) {\n let tracingSpan;\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n return target => {\n const originalOnInit = target.prototype.ngOnInit;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n target.prototype.ngOnInit = function (...args) {\n tracingSpan = runOutsideAngular(() => startInactiveSpan({\n onlyIfParent: true,\n name: `<${options && options.name ? options.name : 'unnamed'}>`,\n op: ANGULAR_INIT_OP,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.angular.trace_class_decorator',\n },\n }));\n if (originalOnInit) {\n return originalOnInit.apply(this, args);\n }\n };\n const originalAfterViewInit = target.prototype.ngAfterViewInit;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n target.prototype.ngAfterViewInit = function (...args) {\n if (tracingSpan) {\n runOutsideAngular(() => tracingSpan.end());\n }\n if (originalAfterViewInit) {\n return originalAfterViewInit.apply(this, args);\n }\n };\n };\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n}\n/**\n * Decorator function that can be used to capture a single lifecycle methods of the component.\n */\nfunction TraceMethod(options) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n return (target, propertyKey, descriptor) => {\n const originalMethod = descriptor.value;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n descriptor.value = function (...args) {\n const now = timestampInSeconds();\n runOutsideAngular(() => {\n startInactiveSpan({\n onlyIfParent: true,\n name: `<${options && options.name ? options.name : 'unnamed'}>`,\n op: `${ANGULAR_OP}.${String(propertyKey)}`,\n startTime: now,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.angular.trace_method_decorator',\n },\n }).end(now);\n });\n if (originalMethod) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalMethod.apply(this, args);\n }\n };\n return descriptor;\n };\n}\n/**\n * Takes the parameterized route from a given ActivatedRouteSnapshot and concatenates the snapshot's\n * child route with its parent to produce the complete parameterized URL of the activated route.\n * This happens recursively until the last child (i.e. the end of the URL) is reached.\n *\n * @param route the ActivatedRouteSnapshot of which its path and its child's path is concatenated\n *\n * @returns the concatenated parameterized route string\n */\nfunction getParameterizedRouteFromSnapshot(route) {\n const parts = [];\n let currentRoute = route && route.firstChild;\n while (currentRoute) {\n const path = currentRoute && currentRoute.routeConfig && currentRoute.routeConfig.path;\n if (path === null || path === undefined) {\n break;\n }\n parts.push(path);\n currentRoute = currentRoute.firstChild;\n }\n const fullPath = parts.filter(part => part).join('/');\n return fullPath ? `/${fullPath}/` : '/';\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SentryErrorHandler, TraceClass, TraceDirective, TraceMethod, TraceModule, TraceService, browserTracingIntegration, createErrorHandler, getDefaultIntegrations, init };\n","import { ILogger } from 'projects/content-service-cms/src/app/logging';\nimport * as Sentry from '@sentry/angular';\n\nimport { version } from '../../../info';\nimport { NgDiscoveryService } from '../services/ng-discovery.service';\nimport { UserDataPermissionService } from '../services/userdata-permission.service';\n\nexport function startupFactory(\n logger: ILogger,\n discoveryConfig: NgDiscoveryService,\n userData: UserDataPermissionService,\n): () => Promise {\n return async () => {\n const canCollectData = await new Promise((resolve) => {\n userData.granted$.subscribe((granted) => {\n logger.info('startupFactory', 'granted$:', granted);\n resolve(granted.includes('UserExperience'));\n });\n });\n\n logger.info('startupFactory', 'canCollectData:', canCollectData);\n const cfg = discoveryConfig.config;\n\n if (cfg.appConfiguration.sentry && canCollectData) {\n const sentryCfg = cfg.appConfiguration.sentry;\n Sentry.init({\n dsn: sentryCfg.dsn,\n environment: sentryCfg.env,\n release: version,\n tracesSampleRate: sentryCfg.sample_rate ?? 1.0,\n });\n } else {\n Sentry.init({\n enabled: false,\n });\n }\n };\n}\n","export const version = '5.3.146';\n","import { asyncScheduler } from '../scheduler/async';\nimport { isValidDate } from '../util/isDate';\nimport { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createErrorClass } from '../util/createErrorClass';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport const TimeoutError = createErrorClass((_super) => function TimeoutErrorImpl(info = null) {\n _super(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n this.info = info;\n});\nexport function timeout(config, schedulerArg) {\n const { first, each, with: _with = timeoutErrorFactory, scheduler = schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler, meta = null, } = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config);\n if (first == null && each == null) {\n throw new TypeError('No timeout provided.');\n }\n return operate((source, subscriber) => {\n let originalSourceSubscription;\n let timerSubscription;\n let lastValue = null;\n let seen = 0;\n const startTimer = (delay) => {\n timerSubscription = executeSchedule(subscriber, scheduler, () => {\n try {\n originalSourceSubscription.unsubscribe();\n innerFrom(_with({\n meta,\n lastValue,\n seen,\n })).subscribe(subscriber);\n }\n catch (err) {\n subscriber.error(err);\n }\n }, delay);\n };\n originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n seen++;\n subscriber.next((lastValue = value));\n each > 0 && startTimer(each);\n }, undefined, undefined, () => {\n if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {\n timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();\n }\n lastValue = null;\n }));\n !seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);\n });\n}\nfunction timeoutErrorFactory(info) {\n throw new TimeoutError(info);\n}\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, NgZone, Injectable, Inject, makeEnvironmentProviders, NgModule } from '@angular/core';\nimport * as i2 from '@ngrx/store';\nimport { ActionsSubject, UPDATE, INIT, INITIAL_STATE, StateObservable, ReducerManagerDispatcher } from '@ngrx/store';\nimport { EMPTY, Observable, of, merge, queueScheduler, ReplaySubject } from 'rxjs';\nimport { share, filter, map, concatMap, timeout, debounceTime, catchError, take, takeUntil, switchMap, skip, observeOn, withLatestFrom, scan } from 'rxjs/operators';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nconst PERFORM_ACTION = 'PERFORM_ACTION';\nconst REFRESH = 'REFRESH';\nconst RESET = 'RESET';\nconst ROLLBACK = 'ROLLBACK';\nconst COMMIT = 'COMMIT';\nconst SWEEP = 'SWEEP';\nconst TOGGLE_ACTION = 'TOGGLE_ACTION';\nconst SET_ACTIONS_ACTIVE = 'SET_ACTIONS_ACTIVE';\nconst JUMP_TO_STATE = 'JUMP_TO_STATE';\nconst JUMP_TO_ACTION = 'JUMP_TO_ACTION';\nconst IMPORT_STATE = 'IMPORT_STATE';\nconst LOCK_CHANGES = 'LOCK_CHANGES';\nconst PAUSE_RECORDING = 'PAUSE_RECORDING';\nclass PerformAction {\n constructor(action, timestamp) {\n this.action = action;\n this.timestamp = timestamp;\n this.type = PERFORM_ACTION;\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' +\n 'Have you misspelled a constant?');\n }\n }\n}\nclass Refresh {\n constructor() {\n this.type = REFRESH;\n }\n}\nclass Reset {\n constructor(timestamp) {\n this.timestamp = timestamp;\n this.type = RESET;\n }\n}\nclass Rollback {\n constructor(timestamp) {\n this.timestamp = timestamp;\n this.type = ROLLBACK;\n }\n}\nclass Commit {\n constructor(timestamp) {\n this.timestamp = timestamp;\n this.type = COMMIT;\n }\n}\nclass Sweep {\n constructor() {\n this.type = SWEEP;\n }\n}\nclass ToggleAction {\n constructor(id) {\n this.id = id;\n this.type = TOGGLE_ACTION;\n }\n}\nclass SetActionsActive {\n constructor(start, end, active = true) {\n this.start = start;\n this.end = end;\n this.active = active;\n this.type = SET_ACTIONS_ACTIVE;\n }\n}\nclass JumpToState {\n constructor(index) {\n this.index = index;\n this.type = JUMP_TO_STATE;\n }\n}\nclass JumpToAction {\n constructor(actionId) {\n this.actionId = actionId;\n this.type = JUMP_TO_ACTION;\n }\n}\nclass ImportState {\n constructor(nextLiftedState) {\n this.nextLiftedState = nextLiftedState;\n this.type = IMPORT_STATE;\n }\n}\nclass LockChanges {\n constructor(status) {\n this.status = status;\n this.type = LOCK_CHANGES;\n }\n}\nclass PauseRecording {\n constructor(status) {\n this.status = status;\n this.type = PAUSE_RECORDING;\n }\n}\n\n/**\n * Chrome extension documentation\n * @see https://github.com/reduxjs/redux-devtools/blob/main/extension/docs/API/Arguments.md\n * Firefox extension documentation\n * @see https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Arguments.md\n */\nclass StoreDevtoolsConfig {\n constructor() {\n /**\n * Maximum allowed actions to be stored in the history tree (default: `false`)\n */\n this.maxAge = false;\n }\n}\nconst STORE_DEVTOOLS_CONFIG = new InjectionToken('@ngrx/store-devtools Options');\n/**\n * Used to provide a `StoreDevtoolsConfig` for the store-devtools.\n */\nconst INITIAL_OPTIONS = new InjectionToken('@ngrx/store-devtools Initial Config');\nfunction noMonitor() {\n return null;\n}\nconst DEFAULT_NAME = 'NgRx Store DevTools';\nfunction createConfig(optionsInput) {\n const DEFAULT_OPTIONS = {\n maxAge: false,\n monitor: noMonitor,\n actionSanitizer: undefined,\n stateSanitizer: undefined,\n name: DEFAULT_NAME,\n serialize: false,\n logOnly: false,\n autoPause: false,\n trace: false,\n traceLimit: 75,\n // Add all features explicitly. This prevent buggy behavior for\n // options like \"lock\" which might otherwise not show up.\n features: {\n pause: true, // Start/pause recording of dispatched actions\n lock: true, // Lock/unlock dispatching actions and side effects\n persist: true, // Persist states on page reloading\n export: true, // Export history of actions in a file\n import: 'custom', // Import history of actions from a file\n jump: true, // Jump back and forth (time travelling)\n skip: true, // Skip (cancel) actions\n reorder: true, // Drag and drop actions in the history list\n dispatch: true, // Dispatch custom actions or action creators\n test: true, // Generate tests for the selected actions\n },\n connectInZone: false,\n };\n const options = typeof optionsInput === 'function' ? optionsInput() : optionsInput;\n const logOnly = options.logOnly\n ? { pause: true, export: true, test: true }\n : false;\n const features = options.features ||\n logOnly ||\n DEFAULT_OPTIONS.features;\n if (features.import === true) {\n features.import = 'custom';\n }\n const config = Object.assign({}, DEFAULT_OPTIONS, { features }, options);\n if (config.maxAge && config.maxAge < 2) {\n throw new Error(`Devtools 'maxAge' cannot be less than 2, got ${config.maxAge}`);\n }\n return config;\n}\n\nfunction difference(first, second) {\n return first.filter((item) => second.indexOf(item) < 0);\n}\n/**\n * Provides an app's view into the state of the lifted store.\n */\nfunction unliftState(liftedState) {\n const { computedStates, currentStateIndex } = liftedState;\n // At start up NgRx dispatches init actions,\n // When these init actions are being filtered out by the predicate or safe/block list options\n // we don't have a complete computed states yet.\n // At this point it could happen that we're out of bounds, when this happens we fall back to the last known state\n if (currentStateIndex >= computedStates.length) {\n const { state } = computedStates[computedStates.length - 1];\n return state;\n }\n const { state } = computedStates[currentStateIndex];\n return state;\n}\nfunction unliftAction(liftedState) {\n return liftedState.actionsById[liftedState.nextActionId - 1];\n}\n/**\n * Lifts an app's action into an action on the lifted store.\n */\nfunction liftAction(action) {\n return new PerformAction(action, +Date.now());\n}\n/**\n * Sanitizes given actions with given function.\n */\nfunction sanitizeActions(actionSanitizer, actions) {\n return Object.keys(actions).reduce((sanitizedActions, actionIdx) => {\n const idx = Number(actionIdx);\n sanitizedActions[idx] = sanitizeAction(actionSanitizer, actions[idx], idx);\n return sanitizedActions;\n }, {});\n}\n/**\n * Sanitizes given action with given function.\n */\nfunction sanitizeAction(actionSanitizer, action, actionIdx) {\n return {\n ...action,\n action: actionSanitizer(action.action, actionIdx),\n };\n}\n/**\n * Sanitizes given states with given function.\n */\nfunction sanitizeStates(stateSanitizer, states) {\n return states.map((computedState, idx) => ({\n state: sanitizeState(stateSanitizer, computedState.state, idx),\n error: computedState.error,\n }));\n}\n/**\n * Sanitizes given state with given function.\n */\nfunction sanitizeState(stateSanitizer, state, stateIdx) {\n return stateSanitizer(state, stateIdx);\n}\n/**\n * Read the config and tell if actions should be filtered\n */\nfunction shouldFilterActions(config) {\n return config.predicate || config.actionsSafelist || config.actionsBlocklist;\n}\n/**\n * Return a full filtered lifted state\n */\nfunction filterLiftedState(liftedState, predicate, safelist, blocklist) {\n const filteredStagedActionIds = [];\n const filteredActionsById = {};\n const filteredComputedStates = [];\n liftedState.stagedActionIds.forEach((id, idx) => {\n const liftedAction = liftedState.actionsById[id];\n if (!liftedAction)\n return;\n if (idx &&\n isActionFiltered(liftedState.computedStates[idx], liftedAction, predicate, safelist, blocklist)) {\n return;\n }\n filteredActionsById[id] = liftedAction;\n filteredStagedActionIds.push(id);\n filteredComputedStates.push(liftedState.computedStates[idx]);\n });\n return {\n ...liftedState,\n stagedActionIds: filteredStagedActionIds,\n actionsById: filteredActionsById,\n computedStates: filteredComputedStates,\n };\n}\n/**\n * Return true is the action should be ignored\n */\nfunction isActionFiltered(state, action, predicate, safelist, blockedlist) {\n const predicateMatch = predicate && !predicate(state, action.action);\n const safelistMatch = safelist &&\n !action.action.type.match(safelist.map((s) => escapeRegExp(s)).join('|'));\n const blocklistMatch = blockedlist &&\n action.action.type.match(blockedlist.map((s) => escapeRegExp(s)).join('|'));\n return predicateMatch || safelistMatch || blocklistMatch;\n}\n/**\n * Return string with escaped RegExp special characters\n * https://stackoverflow.com/a/6969486/1337347\n */\nfunction escapeRegExp(s) {\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction injectZoneConfig(connectInZone) {\n const ngZone = connectInZone ? inject(NgZone) : null;\n return { ngZone, connectInZone };\n}\n\nclass DevtoolsDispatcher extends ActionsSubject {\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.0\", ngImport: i0, type: DevtoolsDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.0\", ngImport: i0, type: DevtoolsDispatcher }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.0\", ngImport: i0, type: DevtoolsDispatcher, decorators: [{\n type: Injectable\n }] });\n\nconst ExtensionActionTypes = {\n START: 'START',\n DISPATCH: 'DISPATCH',\n STOP: 'STOP',\n ACTION: 'ACTION',\n};\nconst REDUX_DEVTOOLS_EXTENSION = new InjectionToken('@ngrx/store-devtools Redux Devtools Extension');\nclass DevtoolsExtension {\n constructor(devtoolsExtension, config, dispatcher) {\n this.config = config;\n this.dispatcher = dispatcher;\n this.zoneConfig = injectZoneConfig(this.config.connectInZone);\n this.devtoolsExtension = devtoolsExtension;\n this.createActionStreams();\n }\n notify(action, state) {\n if (!this.devtoolsExtension) {\n return;\n }\n // Check to see if the action requires a full update of the liftedState.\n // If it is a simple action generated by the user's app and the recording\n // is not locked/paused, only send the action and the current state (fast).\n //\n // A full liftedState update (slow: serializes the entire liftedState) is\n // only required when:\n // a) redux-devtools-extension fires the @@Init action (ignored by\n // @ngrx/store-devtools)\n // b) an action is generated by an @ngrx module (e.g. @ngrx/effects/init\n // or @ngrx/store/update-reducers)\n // c) the state has been recomputed due to time-traveling\n // d) any action that is not a PerformAction to err on the side of\n // caution.\n if (action.type === PERFORM_ACTION) {\n if (state.isLocked || state.isPaused) {\n return;\n }\n const currentState = unliftState(state);\n if (shouldFilterActions(this.config) &&\n isActionFiltered(currentState, action, this.config.predicate, this.config.actionsSafelist, this.config.actionsBlocklist)) {\n return;\n }\n const sanitizedState = this.config.stateSanitizer\n ? sanitizeState(this.config.stateSanitizer, currentState, state.currentStateIndex)\n : currentState;\n const sanitizedAction = this.config.actionSanitizer\n ? sanitizeAction(this.config.actionSanitizer, action, state.nextActionId)\n : action;\n this.sendToReduxDevtools(() => this.extensionConnection.send(sanitizedAction, sanitizedState));\n }\n else {\n // Requires full state update\n const sanitizedLiftedState = {\n ...state,\n stagedActionIds: state.stagedActionIds,\n actionsById: this.config.actionSanitizer\n ? sanitizeActions(this.config.actionSanitizer, state.actionsById)\n : state.actionsById,\n computedStates: this.config.stateSanitizer\n ? sanitizeStates(this.config.stateSanitizer, state.computedStates)\n : state.computedStates,\n };\n this.sendToReduxDevtools(() => this.devtoolsExtension.send(null, sanitizedLiftedState, this.getExtensionConfig(this.config)));\n }\n }\n createChangesObservable() {\n if (!this.devtoolsExtension) {\n return EMPTY;\n }\n return new Observable((subscriber) => {\n const connection = this.zoneConfig.connectInZone\n ? // To reduce change detection cycles, we need to run the `connect` method\n // outside of the Angular zone. The `connect` method adds a `message`\n // event listener to communicate with an extension using `window.postMessage`\n // and handle message events.\n this.zoneConfig.ngZone.runOutsideAngular(() => this.devtoolsExtension.connect(this.getExtensionConfig(this.config)))\n : this.devtoolsExtension.connect(this.getExtensionConfig(this.config));\n this.extensionConnection = connection;\n connection.init();\n connection.subscribe((change) => subscriber.next(change));\n return connection.unsubscribe;\n });\n }\n createActionStreams() {\n // Listens to all changes\n const changes$ = this.createChangesObservable().pipe(share());\n // Listen for the start action\n const start$ = changes$.pipe(filter((change) => change.type === ExtensionActionTypes.START));\n // Listen for the stop action\n const stop$ = changes$.pipe(filter((change) => change.type === ExtensionActionTypes.STOP));\n // Listen for lifted actions\n const liftedActions$ = changes$.pipe(filter((change) => change.type === ExtensionActionTypes.DISPATCH), map((change) => this.unwrapAction(change.payload)), concatMap((action) => {\n if (action.type === IMPORT_STATE) {\n // State imports may happen in two situations:\n // 1. Explicitly by user\n // 2. User activated the \"persist state accross reloads\" option\n // and now the state is imported during reload.\n // Because of option 2, we need to give possible\n // lazy loaded reducers time to instantiate.\n // As soon as there is no UPDATE action within 1 second,\n // it is assumed that all reducers are loaded.\n return this.dispatcher.pipe(filter((action) => action.type === UPDATE), timeout(1000), debounceTime(1000), map(() => action), catchError(() => of(action)), take(1));\n }\n else {\n return of(action);\n }\n }));\n // Listen for unlifted actions\n const actions$ = changes$.pipe(filter((change) => change.type === ExtensionActionTypes.ACTION), map((change) => this.unwrapAction(change.payload)));\n const actionsUntilStop$ = actions$.pipe(takeUntil(stop$));\n const liftedUntilStop$ = liftedActions$.pipe(takeUntil(stop$));\n this.start$ = start$.pipe(takeUntil(stop$));\n // Only take the action sources between the start/stop events\n this.actions$ = this.start$.pipe(switchMap(() => actionsUntilStop$));\n this.liftedActions$ = this.start$.pipe(switchMap(() => liftedUntilStop$));\n }\n unwrapAction(action) {\n // indirect eval according to https://esbuild.github.io/content-types/#direct-eval\n return typeof action === 'string' ? (0, eval)(`(${action})`) : action;\n }\n getExtensionConfig(config) {\n const extensionOptions = {\n name: config.name,\n features: config.features,\n serialize: config.serialize,\n autoPause: config.autoPause ?? false,\n trace: config.trace ?? false,\n traceLimit: config.traceLimit ?? 75,\n // The action/state sanitizers are not added to the config\n // because sanitation is done in this class already.\n // It is done before sending it to the devtools extension for consistency:\n // - If we call extensionConnection.send(...),\n // the extension would call the sanitizers.\n // - If we call devtoolsExtension.send(...) (aka full state update),\n // the extension would NOT call the sanitizers, so we have to do it ourselves.\n };\n if (config.maxAge !== false /* support === 0 */) {\n extensionOptions.maxAge = config.maxAge;\n }\n return extensionOptions;\n }\n sendToReduxDevtools(send) {\n try {\n send();\n }\n catch (err) {\n console.warn('@ngrx/store-devtools: something went wrong inside the redux devtools', err);\n }\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.0\", ngImport: i0, type: DevtoolsExtension, deps: [{ token: REDUX_DEVTOOLS_EXTENSION }, { token: STORE_DEVTOOLS_CONFIG }, { token: DevtoolsDispatcher }], target: i0.ɵɵFactoryTarget.Injectable }); }\n /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.0\", ngImport: i0, type: DevtoolsExtension }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.0\", ngImport: i0, type: DevtoolsExtension, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [REDUX_DEVTOOLS_EXTENSION]\n }] }, { type: StoreDevtoolsConfig, decorators: [{\n type: Inject,\n args: [STORE_DEVTOOLS_CONFIG]\n }] }, { type: DevtoolsDispatcher }] });\n\nconst INIT_ACTION = { type: INIT };\nconst RECOMPUTE = '@ngrx/store-devtools/recompute';\nconst RECOMPUTE_ACTION = { type: RECOMPUTE };\n/**\n * Computes the next entry in the log by applying an action.\n */\nfunction computeNextEntry(reducer, action, state, error, errorHandler) {\n if (error) {\n return {\n state,\n error: 'Interrupted by an error up the chain',\n };\n }\n let nextState = state;\n let nextError;\n try {\n nextState = reducer(state, action);\n }\n catch (err) {\n nextError = err.toString();\n errorHandler.handleError(err);\n }\n return {\n state: nextState,\n error: nextError,\n };\n}\n/**\n * Runs the reducer on invalidated actions to get a fresh computation log.\n */\nfunction recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused) {\n // Optimization: exit early and return the same reference\n // if we know nothing could have changed.\n if (minInvalidatedStateIndex >= computedStates.length &&\n computedStates.length === stagedActionIds.length) {\n return computedStates;\n }\n const nextComputedStates = computedStates.slice(0, minInvalidatedStateIndex);\n // If the recording is paused, recompute all states up until the pause state,\n // else recompute all states.\n const lastIncludedActionId = stagedActionIds.length - (isPaused ? 1 : 0);\n for (let i = minInvalidatedStateIndex; i < lastIncludedActionId; i++) {\n const actionId = stagedActionIds[i];\n const action = actionsById[actionId].action;\n const previousEntry = nextComputedStates[i - 1];\n const previousState = previousEntry ? previousEntry.state : committedState;\n const previousError = previousEntry ? previousEntry.error : undefined;\n const shouldSkip = skippedActionIds.indexOf(actionId) > -1;\n const entry = shouldSkip\n ? previousEntry\n : computeNextEntry(reducer, action, previousState, previousError, errorHandler);\n nextComputedStates.push(entry);\n }\n // If the recording is paused, the last state will not be recomputed,\n // because it's essentially not part of the state history.\n if (isPaused) {\n nextComputedStates.push(computedStates[computedStates.length - 1]);\n }\n return nextComputedStates;\n}\nfunction liftInitialState(initialCommittedState, monitorReducer) {\n return {\n monitorState: monitorReducer(undefined, {}),\n nextActionId: 1,\n actionsById: { 0: liftAction(INIT_ACTION) },\n stagedActionIds: [0],\n skippedActionIds: [],\n committedState: initialCommittedState,\n currentStateIndex: 0,\n computedStates: [],\n isLocked: false,\n isPaused: false,\n };\n}\n/**\n * Creates a history state reducer from an app's reducer.\n */\nfunction liftReducerWith(initialCommittedState, initialLiftedState, errorHandler, monitorReducer, options = {}) {\n /**\n * Manages how the history actions modify the history state.\n */\n return (reducer) => (liftedState, liftedAction) => {\n let { monitorState, actionsById, nextActionId, stagedActionIds, skippedActionIds, committedState, currentStateIndex, computedStates, isLocked, isPaused, } = liftedState || initialLiftedState;\n if (!liftedState) {\n // Prevent mutating initialLiftedState\n actionsById = Object.create(actionsById);\n }\n function commitExcessActions(n) {\n // Auto-commits n-number of excess actions.\n let excess = n;\n let idsToDelete = stagedActionIds.slice(1, excess + 1);\n for (let i = 0; i < idsToDelete.length; i++) {\n if (computedStates[i + 1].error) {\n // Stop if error is found. Commit actions up to error.\n excess = i;\n idsToDelete = stagedActionIds.slice(1, excess + 1);\n break;\n }\n else {\n delete actionsById[idsToDelete[i]];\n }\n }\n skippedActionIds = skippedActionIds.filter((id) => idsToDelete.indexOf(id) === -1);\n stagedActionIds = [0, ...stagedActionIds.slice(excess + 1)];\n committedState = computedStates[excess].state;\n computedStates = computedStates.slice(excess);\n currentStateIndex =\n currentStateIndex > excess ? currentStateIndex - excess : 0;\n }\n function commitChanges() {\n // Consider the last committed state the new starting point.\n // Squash any staged actions into a single committed state.\n actionsById = { 0: liftAction(INIT_ACTION) };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n committedState = computedStates[currentStateIndex].state;\n currentStateIndex = 0;\n computedStates = [];\n }\n // By default, aggressively recompute every state whatever happens.\n // This has O(n) performance, so we'll override this to a sensible\n // value whenever we feel like we don't have to recompute the states.\n let minInvalidatedStateIndex = 0;\n switch (liftedAction.type) {\n case LOCK_CHANGES: {\n isLocked = liftedAction.status;\n minInvalidatedStateIndex = Infinity;\n break;\n }\n case PAUSE_RECORDING: {\n isPaused = liftedAction.status;\n if (isPaused) {\n // Add a pause action to signal the devtools-user the recording is paused.\n // The corresponding state will be overwritten on each update to always contain\n // the latest state (see Actions.PERFORM_ACTION).\n stagedActionIds = [...stagedActionIds, nextActionId];\n actionsById[nextActionId] = new PerformAction({\n type: '@ngrx/devtools/pause',\n }, +Date.now());\n nextActionId++;\n minInvalidatedStateIndex = stagedActionIds.length - 1;\n computedStates = computedStates.concat(computedStates[computedStates.length - 1]);\n if (currentStateIndex === stagedActionIds.length - 2) {\n currentStateIndex++;\n }\n minInvalidatedStateIndex = Infinity;\n }\n else {\n commitChanges();\n }\n break;\n }\n case RESET: {\n // Get back to the state the store was created with.\n actionsById = { 0: liftAction(INIT_ACTION) };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n committedState = initialCommittedState;\n currentStateIndex = 0;\n computedStates = [];\n break;\n }\n case COMMIT: {\n commitChanges();\n break;\n }\n case ROLLBACK: {\n // Forget about any staged actions.\n // Start again from the last committed state.\n actionsById = { 0: liftAction(INIT_ACTION) };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n currentStateIndex = 0;\n computedStates = [];\n break;\n }\n case TOGGLE_ACTION: {\n // Toggle whether an action with given ID is skipped.\n // Being skipped means it is a no-op during the computation.\n const { id: actionId } = liftedAction;\n const index = skippedActionIds.indexOf(actionId);\n if (index === -1) {\n skippedActionIds = [actionId, ...skippedActionIds];\n }\n else {\n skippedActionIds = skippedActionIds.filter((id) => id !== actionId);\n }\n // Optimization: we know history before this action hasn't changed\n minInvalidatedStateIndex = stagedActionIds.indexOf(actionId);\n break;\n }\n case SET_ACTIONS_ACTIVE: {\n // Toggle whether an action with given ID is skipped.\n // Being skipped means it is a no-op during the computation.\n const { start, end, active } = liftedAction;\n const actionIds = [];\n for (let i = start; i < end; i++)\n actionIds.push(i);\n if (active) {\n skippedActionIds = difference(skippedActionIds, actionIds);\n }\n else {\n skippedActionIds = [...skippedActionIds, ...actionIds];\n }\n // Optimization: we know history before this action hasn't changed\n minInvalidatedStateIndex = stagedActionIds.indexOf(start);\n break;\n }\n case JUMP_TO_STATE: {\n // Without recomputing anything, move the pointer that tell us\n // which state is considered the current one. Useful for sliders.\n currentStateIndex = liftedAction.index;\n // Optimization: we know the history has not changed.\n minInvalidatedStateIndex = Infinity;\n break;\n }\n case JUMP_TO_ACTION: {\n // Jumps to a corresponding state to a specific action.\n // Useful when filtering actions.\n const index = stagedActionIds.indexOf(liftedAction.actionId);\n if (index !== -1)\n currentStateIndex = index;\n minInvalidatedStateIndex = Infinity;\n break;\n }\n case SWEEP: {\n // Forget any actions that are currently being skipped.\n stagedActionIds = difference(stagedActionIds, skippedActionIds);\n skippedActionIds = [];\n currentStateIndex = Math.min(currentStateIndex, stagedActionIds.length - 1);\n break;\n }\n case PERFORM_ACTION: {\n // Ignore action and return state as is if recording is locked\n if (isLocked) {\n return liftedState || initialLiftedState;\n }\n if (isPaused ||\n (liftedState &&\n isActionFiltered(liftedState.computedStates[currentStateIndex], liftedAction, options.predicate, options.actionsSafelist, options.actionsBlocklist))) {\n // If recording is paused or if the action should be ignored, overwrite the last state\n // (corresponds to the pause action) and keep everything else as is.\n // This way, the app gets the new current state while the devtools\n // do not record another action.\n const lastState = computedStates[computedStates.length - 1];\n computedStates = [\n ...computedStates.slice(0, -1),\n computeNextEntry(reducer, liftedAction.action, lastState.state, lastState.error, errorHandler),\n ];\n minInvalidatedStateIndex = Infinity;\n break;\n }\n // Auto-commit as new actions come in.\n if (options.maxAge && stagedActionIds.length === options.maxAge) {\n commitExcessActions(1);\n }\n if (currentStateIndex === stagedActionIds.length - 1) {\n currentStateIndex++;\n }\n const actionId = nextActionId++;\n // Mutation! This is the hottest path, and we optimize on purpose.\n // It is safe because we set a new key in a cache dictionary.\n actionsById[actionId] = liftedAction;\n stagedActionIds = [...stagedActionIds, actionId];\n // Optimization: we know that only the new action needs computing.\n minInvalidatedStateIndex = stagedActionIds.length - 1;\n break;\n }\n case IMPORT_STATE: {\n // Completely replace everything.\n ({\n monitorState,\n actionsById,\n nextActionId,\n stagedActionIds,\n skippedActionIds,\n committedState,\n currentStateIndex,\n computedStates,\n isLocked,\n isPaused,\n } = liftedAction.nextLiftedState);\n break;\n }\n case INIT: {\n // Always recompute states on hot reload and init.\n minInvalidatedStateIndex = 0;\n if (options.maxAge && stagedActionIds.length > options.maxAge) {\n // States must be recomputed before committing excess.\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused);\n commitExcessActions(stagedActionIds.length - options.maxAge);\n // Avoid double computation.\n minInvalidatedStateIndex = Infinity;\n }\n break;\n }\n case UPDATE: {\n const stateHasErrors = computedStates.filter((state) => state.error).length > 0;\n if (stateHasErrors) {\n // Recompute all states\n minInvalidatedStateIndex = 0;\n if (options.maxAge && stagedActionIds.length > options.maxAge) {\n // States must be recomputed before committing excess.\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused);\n commitExcessActions(stagedActionIds.length - options.maxAge);\n // Avoid double computation.\n minInvalidatedStateIndex = Infinity;\n }\n }\n else {\n // If not paused/locked, add a new action to signal devtools-user\n // that there was a reducer update.\n if (!isPaused && !isLocked) {\n if (currentStateIndex === stagedActionIds.length - 1) {\n currentStateIndex++;\n }\n // Add a new action to only recompute state\n const actionId = nextActionId++;\n actionsById[actionId] = new PerformAction(liftedAction, +Date.now());\n stagedActionIds = [...stagedActionIds, actionId];\n minInvalidatedStateIndex = stagedActionIds.length - 1;\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused);\n }\n // Recompute state history with latest reducer and update action\n computedStates = computedStates.map((cmp) => ({\n ...cmp,\n state: reducer(cmp.state, RECOMPUTE_ACTION),\n }));\n currentStateIndex = stagedActionIds.length - 1;\n if (options.maxAge && stagedActionIds.length > options.maxAge) {\n commitExcessActions(stagedActionIds.length - options.maxAge);\n }\n // Avoid double computation.\n minInvalidatedStateIndex = Infinity;\n }\n break;\n }\n default: {\n // If the action is not recognized, it's a monitor action.\n // Optimization: a monitor action can't change history.\n minInvalidatedStateIndex = Infinity;\n break;\n }\n }\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused);\n monitorState = monitorReducer(monitorState, liftedAction);\n return {\n monitorState,\n actionsById,\n nextActionId,\n stagedActionIds,\n skippedActionIds,\n committedState,\n currentStateIndex,\n computedStates,\n isLocked,\n isPaused,\n };\n };\n}\n\nclass StoreDevtools {\n constructor(dispatcher, actions$, reducers$, extension, scannedActions, errorHandler, initialState, config) {\n const liftedInitialState = liftInitialState(initialState, config.monitor);\n const liftReducer = liftReducerWith(initialState, liftedInitialState, errorHandler, config.monitor, config);\n const liftedAction$ = merge(merge(actions$.asObservable().pipe(skip(1)), extension.actions$).pipe(map(liftAction)), dispatcher, extension.liftedActions$).pipe(observeOn(queueScheduler));\n const liftedReducer$ = reducers$.pipe(map(liftReducer));\n const zoneConfig = injectZoneConfig(config.connectInZone);\n const liftedStateSubject = new ReplaySubject(1);\n this.liftedStateSubscription = liftedAction$\n .pipe(withLatestFrom(liftedReducer$), \n // The extension would post messages back outside of the Angular zone\n // because we call `connect()` wrapped with `runOutsideAngular`. We run change\n // detection only once at the end after all the required asynchronous tasks have\n // been processed (for instance, `setInterval` scheduled by the `timeout` operator).\n // We have to re-enter the Angular zone before the `scan` since it runs the reducer\n // which must be run within the Angular zone.\n emitInZone(zoneConfig), scan(({ state: liftedState }, [action, reducer]) => {\n let reducedLiftedState = reducer(liftedState, action);\n // On full state update\n // If we have actions filters, we must filter completely our lifted state to be sync with the extension\n if (action.type !== PERFORM_ACTION && shouldFilterActions(config)) {\n reducedLiftedState = filterLiftedState(reducedLiftedState, config.predicate, config.actionsSafelist, config.actionsBlocklist);\n }\n // Extension should be sent the sanitized lifted state\n extension.notify(action, reducedLiftedState);\n return { state: reducedLiftedState, action };\n }, { state: liftedInitialState, action: null }))\n .subscribe(({ state, action }) => {\n liftedStateSubject.next(state);\n if (action.type === PERFORM_ACTION) {\n const unliftedAction = action.action;\n scannedActions.next(unliftedAction);\n }\n });\n this.extensionStartSubscription = extension.start$\n .pipe(emitInZone(zoneConfig))\n .subscribe(() => {\n this.refresh();\n });\n const liftedState$ = liftedStateSubject.asObservable();\n const state$ = liftedState$.pipe(map(unliftState));\n Object.defineProperty(state$, 'state', {\n value: toSignal(state$, { manualCleanup: true, requireSync: true }),\n });\n this.dispatcher = dispatcher;\n this.liftedState = liftedState$;\n this.state = state$;\n }\n ngOnDestroy() {\n // Even though the store devtools plugin is recommended to be\n // used only in development mode, it can still cause a memory leak\n // in microfrontend applications that are being created and destroyed\n // multiple times during development. This results in excessive memory\n // consumption, as it prevents entire apps from being garbage collected.\n this.liftedStateSubscription.unsubscribe();\n this.extensionStartSubscription.unsubscribe();\n }\n dispatch(action) {\n this.dispatcher.next(action);\n }\n next(action) {\n this.dispatcher.next(action);\n }\n error(error) { }\n complete() { }\n performAction(action) {\n this.dispatch(new PerformAction(action, +Date.now()));\n }\n refresh() {\n this.dispatch(new Refresh());\n }\n reset() {\n this.dispatch(new Reset(+Date.now()));\n }\n rollback() {\n this.dispatch(new Rollback(+Date.now()));\n }\n commit() {\n this.dispatch(new Commit(+Date.now()));\n }\n sweep() {\n this.dispatch(new Sweep());\n }\n toggleAction(id) {\n this.dispatch(new ToggleAction(id));\n }\n jumpToAction(actionId) {\n this.dispatch(new JumpToAction(actionId));\n }\n jumpToState(index) {\n this.dispatch(new JumpToState(index));\n }\n importState(nextLiftedState) {\n this.dispatch(new ImportState(nextLiftedState));\n }\n lockChanges(status) {\n this.dispatch(new LockChanges(status));\n }\n pauseRecording(status) {\n this.dispatch(new PauseRecording(status));\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.0\", ngImport: i0, type: StoreDevtools, deps: [{ token: DevtoolsDispatcher }, { token: i2.ActionsSubject }, { token: i2.ReducerObservable }, { token: DevtoolsExtension }, { token: i2.ScannedActionsSubject }, { token: i0.ErrorHandler }, { token: INITIAL_STATE }, { token: STORE_DEVTOOLS_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }\n /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.3.0\", ngImport: i0, type: StoreDevtools }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.0\", ngImport: i0, type: StoreDevtools, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: DevtoolsDispatcher }, { type: i2.ActionsSubject }, { type: i2.ReducerObservable }, { type: DevtoolsExtension }, { type: i2.ScannedActionsSubject }, { type: i0.ErrorHandler }, { type: undefined, decorators: [{\n type: Inject,\n args: [INITIAL_STATE]\n }] }, { type: StoreDevtoolsConfig, decorators: [{\n type: Inject,\n args: [STORE_DEVTOOLS_CONFIG]\n }] }] });\n/**\n * If the devtools extension is connected out of the Angular zone,\n * this operator will emit all events within the zone.\n */\nfunction emitInZone({ ngZone, connectInZone, }) {\n return (source) => connectInZone\n ? new Observable((subscriber) => source.subscribe({\n next: (value) => ngZone.run(() => subscriber.next(value)),\n error: (error) => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete()),\n }))\n : source;\n}\n\nconst IS_EXTENSION_OR_MONITOR_PRESENT = new InjectionToken('@ngrx/store-devtools Is Devtools Extension or Monitor Present');\nfunction createIsExtensionOrMonitorPresent(extension, config) {\n return Boolean(extension) || config.monitor !== noMonitor;\n}\nfunction createReduxDevtoolsExtension() {\n const extensionKey = '__REDUX_DEVTOOLS_EXTENSION__';\n if (typeof window === 'object' &&\n typeof window[extensionKey] !== 'undefined') {\n return window[extensionKey];\n }\n else {\n return null;\n }\n}\n/**\n * Provides developer tools and instrumentation for `Store`.\n *\n * @usageNotes\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [\n * provideStoreDevtools({\n * maxAge: 25,\n * logOnly: !isDevMode(),\n * }),\n * ],\n * });\n * ```\n */\nfunction provideStoreDevtools(options = {}) {\n return makeEnvironmentProviders([\n DevtoolsExtension,\n DevtoolsDispatcher,\n StoreDevtools,\n {\n provide: INITIAL_OPTIONS,\n useValue: options,\n },\n {\n provide: IS_EXTENSION_OR_MONITOR_PRESENT,\n deps: [REDUX_DEVTOOLS_EXTENSION, STORE_DEVTOOLS_CONFIG],\n useFactory: createIsExtensionOrMonitorPresent,\n },\n {\n provide: REDUX_DEVTOOLS_EXTENSION,\n useFactory: createReduxDevtoolsExtension,\n },\n {\n provide: STORE_DEVTOOLS_CONFIG,\n deps: [INITIAL_OPTIONS],\n useFactory: createConfig,\n },\n {\n provide: StateObservable,\n deps: [StoreDevtools],\n useFactory: createStateObservable,\n },\n {\n provide: ReducerManagerDispatcher,\n useExisting: DevtoolsDispatcher,\n },\n ]);\n}\n\nfunction createStateObservable(devtools) {\n return devtools.state;\n}\nclass StoreDevtoolsModule {\n static instrument(options = {}) {\n return {\n ngModule: StoreDevtoolsModule,\n providers: [provideStoreDevtools(options)],\n };\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.3.0\", ngImport: i0, type: StoreDevtoolsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.3.0\", ngImport: i0, type: StoreDevtoolsModule }); }\n /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.3.0\", ngImport: i0, type: StoreDevtoolsModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.3.0\", ngImport: i0, type: StoreDevtoolsModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { INITIAL_OPTIONS, RECOMPUTE, REDUX_DEVTOOLS_EXTENSION, StoreDevtools, StoreDevtoolsConfig, StoreDevtoolsModule, provideStoreDevtools };\n","import { Injectable } from '@angular/core';\nimport { createReducer, on } from '@ngrx/store';\nimport { CustomerDTO } from '@reactivereality/cs-api-sdk';\nimport {\n loadCurrentCustomerCompleteAction,\n setCurrentCustomerAction,\n setCurrentCustomerIDAction,\n updateCustomerListAction,\n} from '../store/customer.actions';\nimport { ICustomerState } from '../store/customer.state';\nimport { CustomerStorageService } from './customer-storage.service';\n\nconst initialState: ICustomerState = {\n myCustomerList: [],\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomerReducerService {\n constructor(private customerStorageService: CustomerStorageService) {}\n\n getReducers() {\n const updateMyCustomerListReducer = (\n state: ICustomerState,\n { myCustomerList }: { myCustomerList: Array },\n ): ICustomerState => ({ ...state, myCustomerList });\n\n const setCurrentCustomerReducer = (\n state: ICustomerState,\n { currentCustomer }: { currentCustomer?: CustomerDTO },\n ): ICustomerState => {\n if (currentCustomer) {\n this.customerStorageService.setSelectedCustomer(currentCustomer.id);\n } else {\n this.customerStorageService.clearSelectedCustomer();\n }\n\n return { ...state, currentCustomer };\n };\n\n const setCurrentCustomerIDReducer = (\n state: ICustomerState,\n { customerID }: { customerID?: string },\n ): ICustomerState => {\n const newCustomer = state.myCustomerList.find((v) => v.id === customerID);\n if (newCustomer) {\n return {\n ...state,\n currentCustomer: newCustomer,\n };\n }\n return {\n ...state,\n };\n };\n\n const loadCurrentCustomerCompleteReducer = (\n state: ICustomerState,\n { currentCustomer }: { currentCustomer?: string },\n ): ICustomerState => {\n return {\n ...state,\n currentCustomer: state.myCustomerList.find(\n (c) => c.id === currentCustomer,\n ),\n };\n };\n\n return createReducer(\n initialState,\n on(updateCustomerListAction, updateMyCustomerListReducer),\n on(setCurrentCustomerAction, setCurrentCustomerReducer),\n on(setCurrentCustomerIDAction, setCurrentCustomerIDReducer),\n on(loadCurrentCustomerCompleteAction, loadCurrentCustomerCompleteReducer),\n );\n }\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport { ActionReducer } from '@ngrx/store';\nimport { CustomerReducerService } from '../service/customer-reducer.service';\nimport { ICustomerState } from './customer.state';\n\nexport const REDUCER_TOKEN = new InjectionToken>(\n 'Customer Registered Reducers',\n {\n factory: () => {\n const serv = inject(CustomerReducerService);\n // return reducers synchronously\n return serv.getReducers();\n },\n },\n);\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { CustomerDTO } from '@reactivereality/cs-api-sdk';\nimport { Observable, filter, firstValueFrom } from 'rxjs';\nimport { ICustomerService } from '..';\nimport { IApiSdkService } from '../../data';\nimport {\n setCurrentCustomerIDAction,\n updateCustomerListAction,\n} from '../store/customer.actions';\nimport {\n selectCurrentCustomer,\n selectMyCustomers,\n} from '../store/customer.selectors';\nimport { ICustomerState } from '../store/customer.state';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomerService extends ICustomerService {\n constructor(\n private sdkService: IApiSdkService,\n private store: Store,\n ) {\n super();\n\n (window as any).customer = this;\n\n this.sdkService.sdkConfig$\n .pipe(filter((cfg) => cfg !== undefined))\n .subscribe(async (sdk) => {\n const customers = await sdk.customersApiSdk.vversionCustomersMyGet(\n '1.5',\n );\n\n // sort alphabetically...\n const myCustomerList = [...customers.data].sort((a, b) => {\n if (a.name < b.name) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n return 0;\n });\n\n this.store.dispatch(updateCustomerListAction({ myCustomerList }));\n });\n }\n\n readonly currentCustomer = async (): Promise => {\n return firstValueFrom(this.store.select(selectCurrentCustomer));\n };\n\n readonly setCurrentCustomer = (id: string) => {\n this.store.dispatch(setCurrentCustomerIDAction({ customerID: id }));\n };\n\n readonly currentCustomer$: Observable =\n this.store.select(selectCurrentCustomer);\n readonly myCustomers$: Observable> =\n this.store.select(selectMyCustomers);\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { combineLatest, filter, map } from 'rxjs';\nimport { CustomerStorageService } from '../service/customer-storage.service';\nimport { CustomerService } from '../service/customer.service';\nimport {\n loadCurrentCustomerAction,\n loadCurrentCustomerCompleteAction,\n setCurrentCustomerAction,\n updateCustomerListAction,\n} from './customer.actions';\n\n@Injectable()\nexport class CustomerEffects {\n constructor(\n private actions$: Actions,\n private customerStore: CustomerService,\n private customerStorage: CustomerStorageService,\n ) {}\n\n loadCurrentCustomer$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(loadCurrentCustomerAction),\n map(() => {\n const currentCustomer = this.customerStorage.getSelectedCustomer();\n\n return loadCurrentCustomerCompleteAction({\n currentCustomer,\n });\n }),\n );\n });\n\n initialiseCurrentCustomer$ = createEffect(() => {\n return combineLatest([\n this.customerStore.currentCustomer$,\n this.actions$.pipe(ofType(updateCustomerListAction)),\n ]).pipe(\n filter(([currentCustomer]) => !currentCustomer),\n map(() => {\n return loadCurrentCustomerAction();\n }),\n );\n });\n\n /*\n If the customer list is being updated, and we DON'T have a\n current customer set in the Ngrx store, then we pick the\n first one and set it as our current customer.\n */\n updateCustomerList$ = createEffect(() =>\n combineLatest([\n this.actions$.pipe(ofType(updateCustomerListAction)),\n this.customerStore.currentCustomer$,\n this.actions$.pipe(ofType(loadCurrentCustomerCompleteAction)),\n ]).pipe(\n filter(([_, currentCustomer]) => !currentCustomer),\n map(([{ myCustomerList }]) => {\n // set the current customer...\n return setCurrentCustomerAction({\n currentCustomer:\n myCustomerList.length > 0 ? myCustomerList[0] : undefined,\n });\n }),\n ),\n );\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\nimport { REDUCER_TOKEN } from './store/customer.reducer';\nimport { CustomerEffects } from './store/customer.effects';\nimport { ICustomerService } from '.';\nimport { CustomerService } from './service/customer.service';\nimport { CustomerReducerService } from './service/customer-reducer.service';\nimport { CustomerStorageService } from './service/customer-storage.service';\nimport { CustomerSelectorComponent } from './customer-selector/customer-selector.component';\nimport { RRLayoutModule } from 'projects/web-ui-component-library/src';\n\n@NgModule({\n declarations: [CustomerSelectorComponent],\n imports: [\n CommonModule,\n RRLayoutModule,\n StoreModule.forFeature('customer', REDUCER_TOKEN),\n EffectsModule.forFeature([CustomerEffects]),\n ],\n providers: [\n {\n provide: ICustomerService,\n useClass: CustomerService,\n },\n CustomerReducerService,\n CustomerStorageService,\n ],\n exports: [CustomerSelectorComponent],\n})\nexport class CustomerModule {\n constructor() {}\n}\n","import { Provider } from '@angular/core';\nimport { GarmentSelectionService } from './garment-selection/services/garment-selection.service';\nimport { IGarmentSelectionService } from './garment-selection/services/i-garment-selection.service';\nimport { IAccessorySelectionService } from './accessory-selection/service/iaccessory-selection.service';\nimport { AccessorySelectionService } from './accessory-selection/service/accessory-selection.service';\n\nexport const GeneralComponents = [];\n\nexport const GeneralProviders: Provider[] = [\n {\n provide: IGarmentSelectionService,\n useClass: GarmentSelectionService,\n },\n {\n provide: IAccessorySelectionService,\n useClass: AccessorySelectionService,\n },\n];\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { GarmentDTO } from '../../../data/api';\nimport {\n DressableGarment,\n IGarmentSelectionService,\n} from './i-garment-selection.service';\n\nexport class GarmentSelectionService extends IGarmentSelectionService {\n public tuckedInGarment$: Observable;\n private _selectedGarments$: BehaviorSubject =\n new BehaviorSubject([]);\n private _dressed$: BehaviorSubject = new BehaviorSubject<\n GarmentDTO[]\n >([]);\n\n constructor() {\n super();\n }\n\n public selectedGarments$: Observable =\n this._selectedGarments$.asObservable();\n\n public dressed$: Observable = this._dressed$.asObservable();\n\n public currentSelectedGarments = (): GarmentDTO[] => {\n return this._selectedGarments$.value;\n };\n\n public currentDressed = (): GarmentDTO[] => {\n return this._dressed$.value;\n };\n\n public setSelectedGarments = (garments: GarmentDTO[]) => {\n this._selectedGarments$.next([...garments]);\n };\n\n public setDressedGarments = (garments: GarmentDTO[]) => {\n this._dressed$.next([...garments]);\n };\n public setTuckedInGarment: (garment: DressableGarment) => {};\n\n public setGarmentStylingOptions: (\n garment: GarmentDTO,\n options: any,\n ) => {\n // TODO: This whole class need removing and then generic store mechanism used instead\n };\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\n\nimport { IAccessorySelectionService } from './iaccessory-selection.service';\nimport { SelectedAccessories } from '../accessory-selection.component';\n\nexport class AccessorySelectionService extends IAccessorySelectionService {\n private _selectedAccessories$: BehaviorSubject =\n new BehaviorSubject({\n TOP: undefined,\n MIDDLE: undefined,\n BOTTOM: undefined,\n });\n public selectedGarments$: Observable =\n this._selectedAccessories$.asObservable();\n\n constructor() {\n super();\n }\n\n public currentSelectedGarments = (): SelectedAccessories => {\n return this._selectedAccessories$.value;\n };\n\n public setSelectedGarments = (accessories: SelectedAccessories) => {\n this._selectedAccessories$.next(accessories);\n };\n\n public updateGarmentForSlot = (ACCESSORY_SLOT: any, AccessoryDTO: any) => {\n this._selectedAccessories$.next({\n ...this._selectedAccessories$.value,\n [ACCESSORY_SLOT]: AccessoryDTO,\n });\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ModalContainerComponent } from './modal-container.component';\nimport { ModalService } from './modal.service';\n\n@NgModule({\n declarations: [ModalContainerComponent],\n providers: [ModalService],\n imports: [CommonModule],\n exports: [ModalContainerComponent],\n})\nexport class ModalModule {}\n","import { createAction, props } from '@ngrx/store';\n\nexport const navigateToAction = createAction(\n '[Navigation] Navigate To',\n props<{\n route: string[];\n }>(),\n);\n\nexport const navigateToCompleteAction = createAction(\n '[Navigation] Navigate To Complete',\n);\n","import { createReducer, on } from '@ngrx/store';\nimport {\n navigateToAction,\n navigateToCompleteAction,\n} from './navigation.actions';\nimport { INavigationState } from './navigation.state';\n\nconst initialState: INavigationState = {\n current: {\n route: [],\n },\n};\n\nconst navigateToReducer = (\n state: INavigationState,\n { route }: { route: string[] },\n): INavigationState => {\n return {\n ...state,\n target: {\n route,\n },\n };\n};\n\nconst navigateToCompleteReducer = (\n state: INavigationState,\n): INavigationState => {\n return {\n ...state,\n target: undefined,\n current: state.target ?? initialState.current,\n };\n};\n\nexport const navigationReducer = createReducer(\n initialState,\n on(navigateToAction, navigateToReducer),\n on(navigateToCompleteAction, navigateToCompleteReducer),\n);\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { map } from 'rxjs';\nimport {\n navigateToAction,\n navigateToCompleteAction,\n} from './navigation.actions';\n\n@Injectable()\nexport class NavigationEffects {\n constructor(private actions$: Actions, private router: Router) {}\n\n onNavigateTo$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(navigateToAction),\n map(({ route }) => {\n this.router.navigate(route);\n return navigateToCompleteAction();\n }),\n );\n });\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\n\nimport { navigationReducer } from './navigation.reducer';\nimport { NavigationEffects } from './navigation.effects';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n StoreModule.forFeature('navigation', navigationReducer),\n EffectsModule.forFeature([NavigationEffects]),\n ],\n})\nexport class NavigationModule {}\n","
      \n \n User Information\n \n \n Security\n \n \n API Keys\n \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { ProfileStore } from '../../profile-state';\n\n@Component({\n selector: 'app-profile-menu',\n templateUrl: './profile-menu.component.html',\n styleUrls: ['./profile-menu.component.scss'],\n})\nexport class ProfileMenuComponent implements OnInit {\n @Input() profileStore: ProfileStore;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","\n \n\n
    \n Loading...\n
    \n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nexport type ActionComplete = [any, null] | null;\n\n@Component({\n selector: 'rr-button',\n templateUrl: './async-button.component.html',\n styleUrls: ['./async-button.component.scss'],\n standalone: true,\n imports: [CommonModule],\n})\nexport class AsyncButtonComponent implements OnInit {\n busy: boolean;\n\n @Input() action: () => Promise;\n @Output() done: EventEmitter = new EventEmitter();\n\n @HostListener('click', ['$event']) onClick($event) {\n if (this.busy) return;\n\n this.busy = true;\n this.action()\n .then(() => {\n this.done.emit(null);\n })\n .catch((err) => {\n this.done.emit([err, null]);\n })\n .finally(() => {\n this.busy = false;\n });\n }\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
    \n \n \n\n \n \n\n \n \n\n \n Update\n \n
    \n","import { AfterViewInit, Component, Input } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { IUserService } from '../../../data';\nimport {\n MutableUserInfo,\n UserInfo,\n} from '../profile-page/profile-page.component';\nimport { AlertService } from '../../../core/services/alert.service';\n\n@Component({\n selector: 'app-profile-user-information',\n templateUrl: './profile-user-information.component.html',\n styleUrls: ['./profile-user-information.component.scss'],\n})\nexport class ProfileUserInformationComponent implements AfterViewInit {\n @Input() user$: Observable;\n\n public updatedUser: UserInfo;\n\n constructor(\n private userService: IUserService,\n private alerts: AlertService,\n ) {}\n\n ngAfterViewInit(): void {\n this.user$.subscribe((user) => {\n this.updateUser('email', { value: user.email });\n this.updateUser('givenName', { value: user.givenName });\n this.updateUser('familyName', { value: user.familyName });\n });\n }\n\n updateUser(\n key: T,\n { value }: { value: string },\n ) {\n this.updatedUser = {\n ...this.updatedUser,\n [key]: value,\n };\n }\n\n updateUserInfo(id: string) {\n return () =>\n this.userService.updateMe({\n id,\n email: this.updatedUser.email,\n firstName: this.updatedUser.givenName,\n lastName: this.updatedUser.familyName,\n });\n }\n\n handleDone([err]: [any, null]) {\n if (!err) return;\n\n console.error('handleDone:', err.response?.data);\n this.alerts.showErrorAlert(err.response?.data?.title ?? 'Unknown error');\n }\n}\n","import { ComponentStore } from '@ngrx/component-store';\nimport { ApiKeyDto } from '@reactivereality/cs-api-sdk';\nimport { IUserService } from '../../../../data';\nimport { Injectable } from '@angular/core';\n\ninterface IApiKeyStoreState {\n keys: Array;\n loading: boolean;\n token: string | null;\n lastUpdate: Date | null;\n}\n\n@Injectable()\nexport class ApiKeyStore {\n private store = new ComponentStore({\n keys: [],\n loading: false,\n token: null,\n lastUpdate: null,\n });\n constructor(private userService: IUserService) {}\n\n public keys$ = this.store.select((s) => s.keys);\n public isLoading$ = this.store.select((s) => s.loading);\n public lastUpdate$ = this.store.select((s) => s.lastUpdate);\n public token$ = this.store.select((s) => s.token);\n\n public setLoading = (loading: boolean) => {\n this.store.patchState((state) => ({\n loading,\n }));\n };\n\n public refreshKeys = (): Promise => {\n this.setLoading(true);\n\n return this.userService\n .listApiKeys()\n .then((keys) => {\n this.store.patchState((state) => ({\n keys,\n lastUpdate: new Date(),\n }));\n })\n .then(() => {\n this.setLoading(false);\n });\n };\n\n public deleteKey = (id: string): Promise => {\n this.setLoading(true);\n\n return this.userService.revokeApiKey(id).then(() => {\n return this.refreshKeys();\n });\n };\n\n public addKey = (name?: string): Promise => {\n this.setLoading(true);\n\n return this.userService\n .newApiKey(name)\n .then((response) => {\n this.store.patchState((state) => ({\n token: response.key,\n }));\n })\n .then(() => {\n return this.refreshKeys();\n });\n };\n}\n","/* eslint-disable @angular-eslint/component-selector */\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TableRowComponent } from 'projects/web-ui-component-library/src';\nimport { Subject } from 'rxjs';\nimport { ApiKeyDto } from '@reactivereality/cs-api-sdk';\nimport { ApiKeyStore } from '../state/api-list.store';\n\n@Component({\n selector: 'tbody.app-api-key-row',\n templateUrl: './api-key-row.component.html',\n styleUrls: ['./api-key-row.component.scss'],\n})\nexport class ApiKeyRowComponent\n implements AfterViewInit, TableRowComponent, OnChanges\n{\n @Input() record: ApiKeyDto;\n @Input() loaded: Subject;\n expanded: boolean = false;\n constructor(\n private element: ElementRef,\n private router: Router,\n public store: ApiKeyStore,\n ) {}\n ngOnChanges(changes: SimpleChanges): void {}\n\n deleteKey(key: ApiKeyDto): void {\n this.store.deleteKey(key.id);\n }\n\n ngAfterViewInit() {}\n}\n","\n \n
    {{ record.name }}
    \n \n \n
    {{ record.createdAt | prettyProductDate }}
    \n \n \n \n \n\n","

    Create a new API key

    \n\n Your new API key: {{ store.token$ | async }}\n\n\n\nAdd Key\n\n
    \n\n

    Available api keys

    \n
    \n \n {{ updated_text | async }}\n \n \n
    \n\n \n We couldn’t find any api keys\n \n\n","import { AfterViewInit, Component } from '@angular/core';\nimport { ApiKeyDto } from '@reactivereality/cs-api-sdk';\nimport {\n DataSource,\n TableConfiguration,\n} from 'projects/web-ui-component-library/src';\nimport { ApiKeyRowComponent } from './components/api-key-row.component';\nimport { Observable, combineLatest, interval, map } from 'rxjs';\nimport { ApiKeyStore } from './state/api-list.store';\nconst moment = require('moment');\n\n@Component({\n selector: 'app-profile-api-keys',\n templateUrl: './profile-api-keys.component.html',\n styleUrls: ['./profile-api-keys.component.scss'],\n providers: [ApiKeyStore],\n})\nexport class ProfileApiKeysComponent implements AfterViewInit {\n // Table configuration\n\n requestTableConfiguration: TableConfiguration = {\n rowComponent: ApiKeyRowComponent,\n columns: [\n {\n title: 'Name',\n },\n {\n title: 'Created At',\n },\n {\n title: '',\n hideSort: true,\n },\n ],\n };\n\n requestDatasource: DataSource = {\n fetch: (opts) => {\n return this.store.keys$.pipe(\n map((keys) => ({\n data: keys,\n })),\n );\n },\n };\n\n keyName: string = null;\n\n public updated_text: Observable;\n public updated_date: Observable;\n\n constructor(public store: ApiKeyStore) {\n //this.store = new ApiKeyStore(userService);\n\n this.updated_text = combineLatest([\n this.store.lastUpdate$,\n interval(5000),\n ]).pipe(\n map(([u, _]) => {\n if (u) {\n const mom = moment(u);\n const info = mom.fromNow();\n return `Last updated ${info}`;\n }\n return '';\n }),\n );\n\n this.updated_date = this.store.lastUpdate$.pipe(\n map((u) => {\n if (u) {\n return u.getTime() / 1000;\n }\n return null;\n }),\n );\n }\n\n updateKeyName(name: string) {\n if (name != null && name.length === 0) {\n this.keyName = null;\n return;\n }\n this.keyName = name;\n }\n\n ngAfterViewInit(): void {\n this.store.refreshKeys();\n }\n\n addKey() {\n return () => this.store.addKey(this.keyName);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { firstValueFrom, lastValueFrom } from 'rxjs';\nimport { NgDiscoveryService } from '../../../core/services/ng-discovery.service';\nimport { AlertService } from '../../../core/services/alert.service';\nimport { IAuthService } from '../../../auth';\nimport { ILogger } from '../../../logging';\n\n@Component({\n selector: 'app-profile-security',\n templateUrl: './profile-security.component.html',\n styleUrls: ['./profile-security.component.scss'],\n})\nexport class ProfileSecurityComponent implements OnInit {\n public busy: boolean;\n\n constructor(\n private httpClient: HttpClient,\n private disco: NgDiscoveryService,\n private authService: IAuthService,\n private alerts: AlertService,\n private logger: ILogger,\n ) {}\n\n ngOnInit(): void {}\n\n done(res: [any, null] | null) {\n if (res === null) {\n this.alerts.showSuccessAlert('Password reset email sent!');\n return;\n }\n\n const err = res[0];\n this.logger.error(`Failed to request password reset link`, err);\n this.alerts.showErrorAlert('Unable to request password reset');\n }\n\n triggerReset() {\n return async () => {\n const me = await firstValueFrom(this.authService.loggedUser$);\n\n const connection = me.profile['auth_connection'] ?? 'LocalUsers';\n\n return await lastValueFrom(\n this.httpClient.post(\n new URL(\n '/dbconnections/change_password',\n this.disco.config.apiConfiguration.baseAuthServiceUrl,\n ).toString(),\n {\n client_id: this.disco.config.appConfiguration.clientId,\n email: me.profile.email,\n connection,\n },\n {\n observe: 'response',\n headers: {\n authorization: '',\n },\n responseType: 'text',\n },\n ),\n );\n };\n }\n}\n","

    Change Password

    \n

    \n You will receive a reset notification email with instructions on how to reset\n your password.\n

    \nReset Password\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ProfilePageComponent } from './components/profile-page/profile-page.component';\nimport { InputTextComponent } from '../components/inputs/input-text/input-text.component';\nimport { ProfileMenuComponent } from './components/profile-menu/profile-menu.component';\nimport { ProfileUserInformationComponent } from './components/profile-user-information/profile-user-information.component';\nimport { ProfileApiKeysComponent } from './components/profile-api-keys/profile-api-keys.component';\nimport { ProfileSecurityComponent } from './components/profile-security/profile-security.component';\nimport { AsyncButtonComponent } from '../components/async-button/async-button.component';\nimport {\n RRBootstrapModule,\n RRTableModule,\n} from 'projects/web-ui-component-library/src';\nimport { PrettyProductDatePipe } from '../request-overview/components/request-list-page/request-list-row/request-list-row.component';\nimport { ApiKeyRowComponent } from './components/profile-api-keys/components/api-key-row.component';\n\n@NgModule({\n declarations: [\n ProfilePageComponent,\n ProfileMenuComponent,\n ProfileUserInformationComponent,\n ProfileApiKeysComponent,\n ProfileSecurityComponent,\n ApiKeyRowComponent,\n ],\n exports: [ProfilePageComponent],\n imports: [\n CommonModule,\n RRBootstrapModule,\n PrettyProductDatePipe,\n RRTableModule,\n InputTextComponent,\n AsyncButtonComponent,\n ],\n})\nexport class ProfileModule {}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { APP_INITIALIZER, ErrorHandler, NgModule } from '@angular/core';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport {\n PageContextService,\n RRAlertsModule,\n RRBootstrapModule,\n RRBreadcrumbModule,\n RRFilterModule,\n RRFooterModule,\n RRHeaderModule,\n RRLayoutModule,\n RRModalModule,\n RRPipesModule,\n RRSpinnerModule,\n} from 'projects/web-ui-component-library/src';\nimport { NgJsonEditorModule } from 'ang-jsoneditor';\nimport { CoreModule } from './core/core.module';\nimport { startupFactory } from './core/factories/start-up.factory';\nimport { AuthComponents, AuthProviders } from './auth';\nimport { DataProviders } from './data';\nimport { ILogger, LoggerProviders } from './logging';\nimport { StoreModule } from '@ngrx/store';\nimport { EffectsModule } from '@ngrx/effects';\nimport { VirtualDressingRoomModule } from './virtual-dressing-room/virtual-dressing-room.module';\n\nimport * as Sentry from '@sentry/angular';\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\nimport { environment } from 'projects/web-ui-component-tester/src/environments/environment';\nimport { CustomerModule } from './customer/customer.module';\nimport { MenuComponent } from './components/menu/menu.component';\nimport { RRTopAppBarComponent } from './components/top-app-bar/top-app-bar.component';\nimport { CreateRequestModalComponent } from './request-overview/components/create-request-modal/create-request-modal.component';\nimport { CreateRequestSelectTypeModalComponent } from './request-overview/components/create-request-select-type-modal/create-request-select-type-modal.component';\nimport { GeneralComponents, GeneralProviders } from './components';\nimport { RequestOverviewModule } from './request-overview/request-overview.module';\nimport { RRSelectFilterModule } from 'projects/web-ui-component-library/src/lib/filter-elements/select-filter.module';\nimport { ModalModule } from './modal/modal.module';\nimport {\n DiscoToken,\n NgDiscoveryService,\n} from './core/services/ng-discovery.service';\nimport { UserDataPermissionService } from './core/services/userdata-permission.service';\nimport { UserDataPermissionComponent } from './components/user-data-permission/user-data-permission/user-data-permission.component';\nimport { NavigationModule } from './navigation/navigation.module';\nimport { ProfileModule } from './profile/profile.module';\n\nimport { CollectionOverviewModule } from './collection-overview/collection-overview.module';\nimport { CollectionScreenComponent } from './collection-screen/collection-screen.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n ...AuthComponents,\n ...GeneralComponents,\n MenuComponent,\n RRTopAppBarComponent,\n UserDataPermissionComponent,\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n AppRoutingModule,\n HttpClientModule,\n NgJsonEditorModule,\n BrowserAnimationsModule,\n // PROJECT MODULES\n CoreModule,\n //WEB UI COMPONENT LIBRARY\n RRBootstrapModule,\n RRHeaderModule,\n RRBreadcrumbModule,\n RRFooterModule,\n RRPipesModule,\n RRAlertsModule,\n RRModalModule,\n RRSpinnerModule,\n VirtualDressingRoomModule,\n RRLayoutModule,\n RRFilterModule,\n RequestOverviewModule,\n CollectionOverviewModule,\n RRSelectFilterModule,\n\n //Stores\n StoreModule.forRoot([]),\n EffectsModule.forRoot([]),\n StoreDevtoolsModule.instrument({\n maxAge: 25,\n logOnly: environment.production,\n }),\n CustomerModule,\n CreateRequestSelectTypeModalComponent,\n CreateRequestModalComponent,\n\n CollectionScreenComponent,\n\n ModalModule,\n NavigationModule,\n ProfileModule,\n ],\n providers: [\n {\n provide: NgDiscoveryService,\n useExisting: DiscoToken,\n },\n HttpClient,\n {\n provide: APP_INITIALIZER,\n useFactory: startupFactory,\n deps: [ILogger, NgDiscoveryService, UserDataPermissionService],\n multi: true,\n },\n {\n provide: ErrorHandler,\n useValue: Sentry.createErrorHandler({\n showDialog: false,\n }),\n },\n ...AuthProviders,\n ...DataProviders,\n ...LoggerProviders,\n ...GeneralProviders,\n PageContextService,\n UserDataPermissionService,\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { AppModule } from './app/app.module';\n\nimport {\n DiscoToken,\n DiscoveryConfig,\n getDiscovery,\n} from './app/core/services/ng-discovery.service';\n\n(() => {\n getDiscovery.then((config) => {\n enableProdMode();\n platformBrowserDynamic([\n {\n provide: DiscoToken,\n useValue: new DiscoveryConfig(config),\n },\n ])\n .bootstrapModule(AppModule)\n .catch((err) => {\n console.error('Failed to bootstrap AppModule:', err);\n });\n });\n})();\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CalendarComponent } from './components/calendar/calendar.component';\n\n@NgModule({\n declarations: [CalendarComponent],\n imports: [CommonModule],\n exports: [CalendarComponent],\n})\nexport class RRCalendarModule {}\n","
    \n \n \n {{ displayed.month }}
    {{\n displayed.year\n }}\n
    \n \n
    \n\n
    \n {{ day }}\n
    \n\n
    \n = selected?.from?.getTime()\n ? 'selected'\n : ''\n }}\n {{\n day.date.getTime() > selected?.from?.getTime() &&\n day.date.getTime() <= hovered?.getTime()\n ? 'hovered'\n : ''\n }}\n \"\n (click)=\"onSelectDate(day.year, day.month, day.day, $event)\"\n (mouseenter)=\"onHoverDate(day.year, day.month, day.day)\"\n >\n {{ day.day }}\n
    \n\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'rr-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n})\nexport class CalendarComponent implements OnInit, AfterViewInit {\n isSelecting: boolean = false;\n locale: string;\n\n hovered: Date | null;\n displayed: {\n date: Date;\n year: number;\n month: string;\n days: Array<{ day: number; month: number; year: number; date: Date }>;\n };\n\n @Input() selected: { from: Date; to: Date } | null;\n @Input() firstDay: 'Sunday' | 'Monday' = 'Monday';\n @Input() singleSelect: boolean = false;\n\n @Output() selectedChanged: EventEmitter<{ from: Date; to: Date }> =\n new EventEmitter();\n\n constructor() {\n this.locale =\n navigator.languages && navigator.languages.length\n ? navigator.languages[0]\n : navigator.language ?? 'en';\n }\n\n ngAfterViewInit(): void {\n const now = new Date();\n this.updateDisplayed(\n new Date(now.getFullYear(), now.getUTCMonth(), 1, 12, 0, 0),\n );\n }\n\n days() {\n const firstDay = this.firstDay === 'Sunday' ? 'Sun' : '';\n const lastDay = this.firstDay === 'Sunday' ? '' : 'Sun';\n return [firstDay, 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', lastDay].filter(\n (v) => v.length > 0,\n );\n }\n\n updateDisplayed(date: Date) {\n const year = date.getFullYear();\n // console.log(\"updateDisplayed\")\n\n const update = {\n date,\n year,\n month: Intl.DateTimeFormat(this.locale, { month: 'long' }).format(date),\n days: this.getDays(date).map((day) => ({\n ...day,\n date: new Date(day.year, day.month, day.day),\n })),\n };\n\n this.displayed = update;\n }\n\n displayMonth(month: number) {\n const { date } = this.displayed;\n date.setMonth(month);\n this.updateDisplayed(date);\n }\n\n skipMonth(offset: number) {\n const { date } = this.displayed;\n date.setMonth(date.getMonth() + offset);\n this.updateDisplayed(date);\n }\n\n onSelectDate(year: number, month: number, day: number, event?: MouseEvent) {\n if (event) event.stopPropagation();\n const selected = new Date(year, month, day);\n\n this.selected = {\n from: null,\n to: null,\n ...this.selected,\n };\n\n if (!this.isSelecting) {\n this.selected.from = selected;\n this.selected.to = null;\n if (this.singleSelect) {\n this.selected.to = this.selected.from;\n this.hovered = null;\n this.selectedChanged.emit(this.selected);\n }\n } else if (selected.getTime() < this.selected.from.getTime()) {\n console.log('Is before:', this.selected.from, selected);\n this.selected.from = selected;\n this.isSelecting = false;\n } else {\n this.hovered = null;\n this.selected.to = selected;\n this.selectedChanged.emit(this.selected);\n }\n\n if (month !== this.displayed.date.getMonth()) this.displayMonth(month);\n this.isSelecting = !this.isSelecting;\n }\n\n onHoverDate(year: number, month: number, day: number, event?: MouseEvent) {\n // if (event) event.stopPropagation();\n\n if (this.isSelecting) {\n this.hovered = new Date(year, month, day);\n }\n }\n\n *getDaysOfMonth(date: Date) {\n const year = date.getFullYear();\n const month = date.getMonth();\n /*\n A year is leap year if following conditions are satisfied:\n Year is multiple of 400.\n Year is multiple of 4 and not multiple of 100.\n */\n const isLeapYear = () => {\n if (year % 400 == 0 && year % 4 == 0 && year % 100 != 0) return true;\n return false;\n };\n const daysInMonth = [\n 31,\n isLeapYear() ? 29 : 28,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31,\n ][month];\n\n for (let day = 1; day <= daysInMonth; day++) {\n yield {\n day,\n month,\n year,\n };\n }\n }\n\n getDays(date: Date) {\n const dayMonthStarts = (() => {\n const day = date.getDay();\n if (this.firstDay === 'Sunday') return day;\n\n if (day === 0) return 6;\n return day - 1;\n })();\n\n const lastMonth = new Date(date);\n lastMonth.setMonth(date.getMonth() - 1);\n const lastMonthDays = [...this.getDaysOfMonth(lastMonth)];\n\n const thisMonthDays = [...this.getDaysOfMonth(date)];\n\n const nextMonth = new Date(date);\n nextMonth.setMonth(date.getMonth() + 1);\n const nextMonthDays = [...this.getDaysOfMonth(nextMonth)];\n\n // console.log('Days:', {lastMonthDays, thisMonthDays, nextMonthDays, dayMonthStarts})\n\n return [\n ...(dayMonthStarts === 0 ? [] : lastMonthDays.slice(dayMonthStarts * -1)),\n ...thisMonthDays,\n ...nextMonthDays.slice(0, 42 - thisMonthDays.length - dayMonthStarts),\n ];\n }\n\n ngOnInit(): void {}\n}\n","\n
    \n \n
    All
    \n
    \n {{ preset.text }}\n
    \n
    \n\n \n
    \n","import {\n AfterViewInit,\n Component,\n HostBinding,\n Input,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { CalendarComponent } from 'projects/web-ui-component-library/src/public-api';\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { FilterInput } from '../interfaces/filter.interface';\n\ntype DateRange = { from: Date; to: Date };\n\n@Component({\n selector: 'rr-date-filter-input-element',\n templateUrl: './date-input-element.component.html',\n styleUrls: ['./date-input-element.component.scss'],\n})\nexport class DateInputElementComponent implements OnInit, AfterViewInit {\n @ViewChild('calendar') calendar: CalendarComponent;\n @Input() inputData$: Observable;\n @Input() reset$: Observable;\n\n @HostBinding('hidden')\n public isHidden: boolean = true;\n public onDataChanged: (value: number[]) => void = (_) => {};\n public onBackClicked: () => void = () => {};\n\n private _onDestroy: Subject = new Subject();\n private _id: string = '';\n\n constructor() {}\n\n ngAfterViewInit(): void {\n this.reset$.pipe(takeUntil(this._onDestroy)).subscribe((filterId) => {\n if (this._id === filterId || filterId === '') {\n this.clearRange();\n }\n });\n this.inputData$.pipe(takeUntil(this._onDestroy)).subscribe((data) => {\n this.onDataChanged = data.onChange;\n this.onBackClicked = data.onBackClicked;\n this.isHidden = data.hidden;\n this._id = data.id;\n });\n }\n\n ngOnInit(): void {\n this._onDestroy = new Subject();\n }\n\n ngOnDestroy(): void {\n this._onDestroy.next();\n this._onDestroy.complete();\n this._onDestroy = undefined;\n }\n\n private today = new Date();\n presets = [\n {\n text: 'Today',\n range: () => ({\n from: new Date(\n this.today.getFullYear(),\n this.today.getMonth(),\n this.today.getDate(),\n 0,\n 0,\n 0,\n ),\n to: new Date(\n this.today.getFullYear(),\n this.today.getMonth(),\n this.today.getDate(),\n 23,\n 59,\n 59,\n ),\n }),\n },\n {\n text: 'Yesterday',\n range: () => ({\n from: new Date(\n this.today.getFullYear(),\n this.today.getMonth(),\n this.today.getDate() - 1,\n 0,\n 0,\n 0,\n ),\n to: new Date(\n this.today.getFullYear(),\n this.today.getMonth(),\n this.today.getDate() - 1,\n 23,\n 59,\n 59,\n ),\n }),\n },\n {\n text: 'This Week',\n range: () => {\n const from = this.getMondayForDate(this.today);\n const to = new Date(from);\n to.setDate(to.getDate() + 7);\n to.setSeconds(-1);\n\n return {\n from,\n to,\n };\n },\n },\n {\n text: 'Last Week',\n range: () => {\n const from = this.getMondayForDate(this.today);\n from.setDate(from.getDate() - 7);\n const to = new Date(from);\n to.setDate(to.getDate() + 7);\n to.setSeconds(-1);\n\n return {\n from,\n to,\n };\n },\n },\n {\n text: 'This Month',\n range: () => {\n const from = new Date(\n this.today.getFullYear(),\n this.today.getMonth(),\n 1,\n );\n const to = new Date(from);\n to.setMonth(to.getMonth() + 1);\n to.setSeconds(-1);\n\n return {\n from,\n to,\n };\n },\n },\n {\n text: 'Last Month',\n range: () => {\n const from = new Date(\n this.today.getFullYear(),\n this.today.getMonth(),\n 1,\n );\n from.setMonth(from.getMonth() - 1);\n const to = new Date(from);\n to.setMonth(to.getMonth() + 1);\n to.setSeconds(-1);\n\n return {\n from,\n to,\n };\n },\n },\n ];\n\n getMondayForDate(date: Date) {\n const monday = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n );\n\n monday.setDate(monday.getDate() - monday.getDay());\n monday.setDate(monday.getDate() + 1);\n\n return monday;\n }\n\n selectPreset(preset?: () => DateRange) {\n const { from, to } = preset();\n\n this.calendar.selected = { from, to };\n this.updateFilter({ from, to });\n }\n\n clearRange() {\n this.calendar.selected = null;\n this.updateFilter(undefined);\n }\n\n getValue() {\n return this.calendar.selected;\n }\n\n onChange(date: DateRange) {\n this.updateFilter(date);\n }\n\n private updateFilter(date: DateRange | undefined) {\n if (date === undefined) {\n this.onDataChanged(undefined);\n return;\n }\n this.onDataChanged([date.from.getTime() / 1000, date.to.getTime() / 1000]);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RRCalendarModule } from '../calendar/calendar.module';\nimport { RRLayoutModule } from '../layout/layout.module';\nimport { RRPipesModule } from '../pipes/pipes.module';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { SelectInputElementComponent } from './select-input-element/select-input-element.component';\nimport { TextInputElementComponent } from './text-input-element/text-input-element.component';\nimport { DateInputElementComponent } from './date-input-element/date-input-element.component';\n\n@NgModule({\n declarations: [\n SelectInputElementComponent,\n TextInputElementComponent,\n DateInputElementComponent,\n ],\n imports: [RRSharedModule, RRPipesModule, RRLayoutModule, RRCalendarModule],\n exports: [\n SelectInputElementComponent,\n TextInputElementComponent,\n DateInputElementComponent,\n ],\n})\nexport class RRSelectFilterModule {}\n","\n \n \n \n\n \n \n\n No options available.\n
      \n \n \n {{ item.text }}\n \n
    \n
    \n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy, OnInit, ViewChild,\n} from '@angular/core';\nimport { uniqBy } from 'lodash';\n\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { FilterInput } from '../interfaces/filter.interface';\n\ntype Item = R extends Array ? U : never;\ntype SelectableItem = { text: string; value: Item; selected?: boolean };\n\n@Component({\n selector: 'rr-select-filter-input-element',\n templateUrl: './select-input-element.component.html',\n styleUrls: ['./select-input-element.component.scss'],\n})\nexport class SelectInputElementComponent implements AfterViewInit, OnInit, OnDestroy {\n @Input() inputData$: Observable<\n FilterInput<\n {\n text: string;\n value: string;\n }[]\n >\n >;\n @Input() filterDelete$: Observable;\n @Input() reset$: Observable;\n\n @HostBinding('hidden')\n isHidden: boolean = true;\n\n public onDataChanged: (value: string) => void = (_) => {};\n public onBackClicked: () => void = () => {};\n\n private _onDestroy: Subject = new Subject();\n private _id: string = '';\n\n items: SelectableItem[] = [];\n filtered: Item[] = [];\n\n @ViewChild('inputText') searchInput: ElementRef;\n searchInputValue: string = '';\n\n ngOnInit(): void {\n this._onDestroy = new Subject();\n }\n\n ngOnDestroy(): void {\n this._onDestroy.next();\n this._onDestroy.complete();\n this._onDestroy = undefined;\n }\n\n ngAfterViewInit(): void {\n this.reset$.pipe(takeUntil(this._onDestroy)).subscribe((filterId) => {\n if (this._id === filterId || filterId === '') {\n this.items = [];\n }\n });\n this.inputData$.pipe(takeUntil(this._onDestroy)).subscribe((data) => {\n this.onDataChanged = data.onChange;\n this.onBackClicked = data.onBackClicked;\n this.isHidden = data.hidden;\n this._id = data.id;\n if (data.data) {\n this.items = uniqBy([...this.items, ...data.data], (o: any) => {\n return o.value;\n });\n }\n });\n }\n\n get filteredItems() {\n return this.searchInputValue.length\n ? this.items.filter((i) =>\n i.text.toLowerCase().includes(this.searchInputValue.toLowerCase()),\n )\n : this.items;\n }\n\n setValue(value) {\n this.filtered = value;\n if (!this.items || !this.filtered) return;\n this.updateSelectedItems();\n }\n\n updateSelectedItems() {\n if (!this.filtered) return;\n\n this.items = this.items.map((item) => {\n return {\n ...item,\n selected: this.filtered.some((v) => v === item.value),\n };\n });\n\n this.sortItems();\n }\n\n updateTagFilter() {\n this.searchInputValue = this.searchInput.nativeElement.value;\n }\n\n sortItems() {\n if (!this.items) return;\n\n this.items = this.items.sort((a, b) => {\n if (a.selected && !b.selected) return -1;\n if (!a.selected && b.selected) return 1;\n\n if (a.text < b.text) return -1;\n if (a.text > b.text) return 1;\n\n return 0;\n });\n }\n\n getValue() {\n return (this.items ?? [])\n .filter((item) => item.selected)\n .map((item) => item.value) as any; // shouldn't need this hack\n }\n\n toggleResultCheck(\n item: SelectableItem>,\n event: Event | MouseEvent,\n ) {\n event.stopPropagation();\n\n this.items = this.items.map((i) => {\n if (i.value !== item.value) return i;\n return {\n ...i,\n selected: i.selected !== undefined ? !i.selected : true,\n };\n });\n\n this.sortItems();\n this.updateFilter();\n }\n updateFilter() {\n const selected = this.items.filter(\n (value) => value.selected !== undefined && value.selected !== false,\n );\n\n this.onDataChanged(\n JSON.stringify(\n selected.map((v) => {\n return { value: v.text, id: v.value };\n }),\n ),\n );\n }\n}\n","
    \n
    All
    \n
    \n {{ preset.text }}\n
    \n
    \n\n\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { CalendarComponent } from 'projects/web-ui-component-library/src/public-api';\nimport { BehaviorSubject, map } from 'rxjs';\nimport { Filters } from '../../../..';\nimport {\n FilterBarElement,\n FilterBarInputElement,\n} from '../filter-bar-element.component';\n\ntype DateRange = { from: Date; to: Date };\n\n@Component({\n selector: 'rr-date-input-element',\n templateUrl: './date-input-element.component.html',\n styleUrls: ['./date-input-element.component.scss'],\n})\nexport class DateInputElementComponent<\n F extends Filters,\n K extends keyof F = keyof F,\n> implements AfterViewInit, FilterBarInputElement, OnInit\n{\n @Input() filterValueSub: BehaviorSubject;\n @ViewChild('calendar') calendar: CalendarComponent;\n @Output() valueChanged: EventEmitter = new EventEmitter();\n\n private element: FilterBarElement;\n\n constructor() {}\n\n setValue(value: DateRange) {\n if (!value?.from || !value?.to) {\n this.calendar.selected = {\n from: null,\n to: null,\n };\n this.updateBadge();\n return;\n }\n\n this.calendar.selected = value;\n this.updateBadge();\n }\n\n private today = new Date();\n presets = [\n {\n text: 'Today',\n range: () => ({\n from: new Date(\n this.today.getFullYear(),\n this.today.getMonth(),\n this.today.getDate(),\n 0,\n 0,\n 0,\n ),\n to: new Date(\n this.today.getFullYear(),\n this.today.getMonth(),\n this.today.getDate(),\n 23,\n 59,\n 59,\n ),\n }),\n },\n {\n text: 'Yesterday',\n range: () => ({\n from: new Date(\n this.today.getFullYear(),\n this.today.getMonth(),\n this.today.getDate() - 1,\n 0,\n 0,\n 0,\n ),\n to: new Date(\n this.today.getFullYear(),\n this.today.getMonth(),\n this.today.getDate() - 1,\n 23,\n 59,\n 59,\n ),\n }),\n },\n {\n text: 'This Week',\n range: () => {\n const from = this.getMondayForDate(this.today);\n const to = new Date(from);\n to.setDate(to.getDate() + 7);\n to.setSeconds(-1);\n\n return {\n from,\n to,\n };\n },\n },\n {\n text: 'Last Week',\n range: () => {\n const from = this.getMondayForDate(this.today);\n from.setDate(from.getDate() - 7);\n const to = new Date(from);\n to.setDate(to.getDate() + 7);\n to.setSeconds(-1);\n\n return {\n from,\n to,\n };\n },\n },\n {\n text: 'This Month',\n range: () => {\n const from = new Date(\n this.today.getFullYear(),\n this.today.getMonth(),\n 1,\n );\n const to = new Date(from);\n to.setMonth(to.getMonth() + 1);\n to.setSeconds(-1);\n\n return {\n from,\n to,\n };\n },\n },\n {\n text: 'Last Month',\n range: () => {\n const from = new Date(\n this.today.getFullYear(),\n this.today.getMonth(),\n 1,\n );\n from.setMonth(from.getMonth() - 1);\n const to = new Date(from);\n to.setMonth(to.getMonth() + 1);\n to.setSeconds(-1);\n\n return {\n from,\n to,\n };\n },\n },\n ];\n\n getMondayForDate(date: Date) {\n const monday = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n );\n\n monday.setDate(monday.getDate() - monday.getDay());\n monday.setDate(monday.getDate() + 1);\n\n return monday;\n }\n\n selectPreset(preset?: () => DateRange) {\n const { from, to } = preset();\n\n this.calendar.selected = { from, to };\n this.valueChanged.emit(this.calendar.selected);\n }\n\n clearRange() {\n this.calendar.selected = null;\n this.valueChanged.emit(null);\n }\n\n getValue() {\n return this.calendar.selected;\n }\n\n onChange(date: DateRange) {\n this.valueChanged.emit(date);\n }\n\n init(element: FilterBarElement): void | Promise {\n this.element = element;\n }\n\n updateBadge() {\n if (\n this.element &&\n this.calendar.selected?.from &&\n this.calendar.selected?.to\n ) {\n this.element.badge = true;\n return;\n }\n this.element.badge = false;\n }\n\n ngOnInit(): void {}\n\n ngAfterViewInit(): void {\n this.filterValueSub\n .pipe(map((v) => this.fixDates(v)))\n .subscribe((value) => this.setValue(value));\n }\n\n private fixDates(value: DateRange): DateRange {\n if (typeof value?.from === 'string') value.from = new Date(value.from);\n if (typeof value?.to === 'string') value.to = new Date(value.to);\n\n return value;\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Filters } from '../../../..';\nimport {\n FilterBarElement,\n FilterBarInputElement,\n} from '../filter-bar-element.component';\n\ninterface Dictionary {\n [key: string]: T;\n}\n\ntype SelectedItems = Dictionary<{ id: string; selected?: boolean; data: R }>;\n\n@Component({\n selector: 'rr-text-input-element',\n templateUrl: './text-input-element.component.html',\n styleUrls: ['./text-input-element.component.scss'],\n})\nexport class TextInputElementComponent<\n F extends Filters,\n K extends keyof F = keyof F,\n> implements FilterBarInputElement, AfterViewInit\n{\n @Input() element: FilterBarElement;\n\n public label: string;\n\n @Output() valueChanged: EventEmitter = new EventEmitter();\n\n @ViewChild('inputText') inputText: ElementRef;\n @Input() filterValueSub: BehaviorSubject;\n\n filterValue: string = '';\n\n constructor() {}\n\n setValue(value: string) {\n console.log('TextInputElementComponent', 'setValue:', value);\n this.filterValue = value;\n this.updateBadge();\n }\n\n ngAfterViewInit(): void {\n this.filterValueSub.subscribe((value) => this.setValue(value));\n }\n\n updateBadge() {\n this.element.badge = this.filterValue && this.filterValue.length > 0;\n }\n\n init(element: FilterBarElement) {\n this.element = element as any;\n if ('label' in this.element.config) {\n this.label = this.element.config.label;\n }\n }\n\n getValue() {\n return this.filterValue;\n }\n\n detectChanges(event: Event | KeyboardEvent) {\n if ('key' in event && event.key === 'Escape') {\n console.log((event as KeyboardEvent).key);\n this.inputText.nativeElement.value = '';\n }\n\n if (\n this.inputText &&\n this.filterValue !== this.inputText.nativeElement.value\n ) {\n this.filterValue = this.inputText?.nativeElement.value;\n\n // TODO: Emit something here?\n this.valueChanged.emit(this.filterValue);\n }\n }\n}\n","\n \n\n \n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'defaultValue' })\nexport class RRDefaultValuePipe implements PipeTransform {\n transform(value: T | undefined, defaultValue: T): T {\n if (value === undefined) return defaultValue;\n\n return value;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'take' })\nexport class RRTakePipe implements PipeTransform {\n transform(value: number | true): string {\n if (value === true) return ' ';\n if (value <= 9) return new String(value).toString();\n\n return '9+';\n }\n}\n","\n \n {{ label }}\n {{ badge | take }}\n\n\n\n \n\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n HostListener,\n Input,\n Output,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { BehaviorSubject, Observable, filter, map } from 'rxjs';\nimport { AbstractFilterService, FilterConfig, Filters } from '../../..';\n\nexport interface FilterBarInputElement {\n getValue(): FilterType;\n setValue(value: FilterType);\n init(element: any): void | Promise;\n valueChanged: EventEmitter;\n filterValueSub?: BehaviorSubject;\n options?: unknown;\n}\n\nexport interface FilterBarElement<\n F extends Filters,\n K extends keyof F = keyof F,\n> {\n badge: boolean | number;\n config: FilterConfig;\n}\n\n@Component({\n selector: 'rr-filter-bar-element',\n templateUrl: './filter-bar-element.component.html',\n styleUrls: ['./filter-bar-element.component.scss'],\n})\nexport class FilterBarElementComponent<\n F extends Filters,\n K extends keyof F = keyof F,\n R extends F[K] = F[K],\n> implements AfterViewInit, FilterBarElement\n{\n @Input() filterService: AbstractFilterService;\n @Input() config: FilterConfig;\n @Input() badge: boolean | number = false;\n\n public icon: string;\n public label: string;\n\n @ViewChild('inputCard', { read: ViewContainerRef, static: false })\n filterInputCard: ViewContainerRef;\n\n @Input() state: 'expand' | 'collapse' = 'collapse';\n self: HTMLElement;\n\n // rename this mess :(\n @Output() valueChanged: EventEmitter = new EventEmitter();\n @Input() changeValue: Observable = new EventEmitter();\n\n get(type: T): string {\n return typeof type;\n }\n\n ngAfterViewInit(): void {\n if ('label' in this.config) {\n this.icon = this.config.icon;\n this.label = this.config.label;\n if (!this.config.inputComponent) return;\n\n this.filterInputCard.clear();\n\n const ref = this.filterInputCard.createComponent<\n FilterBarInputElement\n >(\n this.config.inputComponent && this.config.inputComponent instanceof Type\n ? this.config.inputComponent\n : (this.config.inputComponent as any).type,\n );\n ref.instance.options = this.config.inputOptions;\n ref.instance.init(this);\n ref.instance.filterValueSub = this.filterService.filterValues.pipe(\n map((e) => (e as Partial)?.[this.config.id] ?? null),\n filter((e) => e !== undefined),\n ) as BehaviorSubject;\n\n // handle events when the instance changes it's value\n ref.instance.valueChanged.subscribe((value) => {\n /*console.log(\n 'FilterBarElementComponent',\n 'New value:',\n value,\n this.config.label,\n );*/\n\n const filters = this.filterService.filterValues.getValue();\n this.filterService.filterValues.next({\n ...filters,\n [this.config.id]: value,\n });\n });\n\n this.changeValue.subscribe((value) => {\n if (ref.instance.getValue() == value) return;\n ref.instance.setValue(value);\n });\n }\n }\n\n toggleInputState() {\n this.state = this.state === 'expand' ? 'collapse' : 'expand';\n }\n\n @HostListener('click', ['$event'])\n onSelfClick(event: MouseEvent) {\n this.self = event.currentTarget as HTMLElement;\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent) {\n if (!this.self) return;\n if (\n this.state === 'expand' &&\n this.self &&\n !this.isChildOf(this.self, event.target as HTMLElement)\n ) {\n this.state = 'collapse';\n }\n }\n\n private isChildOf(parent: HTMLElement, child: HTMLElement) {\n if (!child.parentElement) return false;\n if (child.parentElement === parent) return true;\n return this.isChildOf(parent, child.parentElement);\n }\n}\n","Filter by:\n\n\n
    \n \n
    \n
    \n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport { AbstractFilterService, FilterConfig, Filters } from '../..';\n\n@Component({\n selector: 'rr-filter-bar',\n templateUrl: './filter-bar.component.html',\n styleUrls: ['./filter-bar.component.scss'],\n})\nexport class RRFilterBarComponent implements AfterViewInit {\n @Input() filterService: AbstractFilterService;\n @Output() clearFilterValues: EventEmitter = new EventEmitter();\n filters: FilterConfig[] = [];\n\n constructor() {}\n\n filterChanged(key: keyof F, value: any) {}\n\n ngAfterViewInit(): void {\n this.populateFilters();\n }\n\n private populateFilters() {\n if (!this.filterService) return;\n\n this.filters = Object.getOwnPropertyNames(this.filterService.filters)\n .map((key) => ({\n key,\n ...this.filterService.filters[key],\n }))\n .filter((v) => 'label' in v);\n console.log('RRFilterBarComponent', 'populateFilters:', this.filters);\n }\n public clearFilter() {\n this.clearFilterValues.emit(true);\n }\n}\n","import { Type } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { FilterBarInputElement } from './components/filter-bar/filter-bar-element/filter-bar-element.component';\n\ntype Resolvable = T | Promise;\n\n// Define the filters available, and their data type\nexport interface Filters {\n [key: string]: any;\n}\n\nexport type InputElementOptions = T extends { options: infer O }\n ? O\n : unknown;\n\nexport const buildInputElement = >(\n inputComponent: Type,\n inputOptions: InputElementOptions = undefined,\n) => {\n return {\n inputComponent,\n inputOptions,\n };\n};\n\nexport type SelectedFilters = {\n [K in keyof F]?: F[K];\n // [K in keyof F]?: FilterConfig;\n};\n\n// Define the way to configure the available filters, and their behaviour\nexport type FilterConfig<\n F,\n K extends keyof F = keyof F,\n T extends F[K] = F[K],\n U extends FilterBarInputElement = FilterBarInputElement,\n> =\n | {\n id: K;\n label: string;\n icon?: string;\n searchable?: boolean;\n inputComponent: Type;\n inputOptions: InputElementOptions;\n // options?: Resolvable;\n }\n | {\n id: K;\n };\n\nexport type FilterConfigCollection = {\n [K in keyof F]: FilterConfig;\n};\n\nexport type RRFilterEvent = {\n [K in keyof F]: F[K];\n};\n\nexport abstract class AbstractFilterService {\n // public filterEvents: EventEmitter<{ action: 'Load'|'Save', /* args: Partial> */ }> = new EventEmitter();\n public filterValues: BehaviorSubject> =\n new BehaviorSubject({});\n\n constructor(public readonly filters: FilterConfigCollection) {}\n\n public setValue(filter: K, value: F[K]) {\n const existing = this.filterValues.getValue();\n\n this.filterValues.next({\n ...existing,\n [filter]: value,\n });\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rr-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n})\nexport class RRCardComponent {\n constructor() {}\n}\n","\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RRCardComponent } from './card/card.component';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [RRCardComponent],\n imports: [CommonModule, RouterModule],\n exports: [RRCardComponent],\n})\nexport class RRLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { RRToDateFormatPipe } from './pipes/to-date-format.pipe';\nimport { RRKeysPipe } from './pipes/keys.pipe';\nimport { RRTruncatePipe } from './pipes/truncate.pipe';\nimport { RRDefaultValuePipe } from './pipes/default-value.pipe';\nimport { RRTakePipe } from './pipes/take.pipe';\n\n@NgModule({\n declarations: [\n RRToDateFormatPipe,\n RRKeysPipe,\n RRTruncatePipe,\n RRDefaultValuePipe,\n RRTakePipe,\n ],\n imports: [RRSharedModule],\n exports: [\n RRToDateFormatPipe,\n RRKeysPipe,\n RRTruncatePipe,\n RRDefaultValuePipe,\n RRTakePipe,\n ],\n})\nexport class RRPipesModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule, FormsModule, ReactiveFormsModule],\n exports: [CommonModule, RouterModule, FormsModule, ReactiveFormsModule],\n bootstrap: [],\n})\nexport class RRSharedModule {}\n","\n
    \n \n
    \n Loading...\n
    \n
    \n {{ spinnerStatus.text }}...\n
    \n
    \n \n\n","import { Component, Input } from '@angular/core';\nimport { RRSpinnerModel } from '../../models/spinner.model';\n\n@Component({\n selector: 'rr-overlay-spinner',\n templateUrl: './overlay-spinner.component.html',\n styleUrls: ['./overlay-spinner.component.scss'],\n})\nexport class OverlaySpinnerComponent {\n @Input() spinnerStatus: RRSpinnerModel;\n\n constructor() {}\n}\n","import { NgModule } from '@angular/core';\nimport { OverlaySpinnerComponent } from './components/overlay-spinner/overlay-spinner.component';\nimport { RRSharedModule } from '../shared-module/shared.module';\n\n@NgModule({\n declarations: [OverlaySpinnerComponent],\n imports: [RRSharedModule],\n exports: [OverlaySpinnerComponent],\n})\nexport class RRSpinnerModule {}\n","\n\n
    \n \n 0)\">\n \n \n {{ col.title }}\n \n \n \n \n \n \n \n \n \n
    \n \n
    \n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n} from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nexport interface TableRowComponent {\n record: R;\n loaded: Subject;\n}\n\nexport interface DataSource {\n fetch: (opts?: Partial<{ offset: number; count: number }>) => Observable<{\n data: Array;\n page?: {\n offset: number;\n count: number;\n total?: number;\n };\n }>;\n}\n\nexport interface TableConfiguration {\n columns?: Array<{\n title: string;\n hideSort?: boolean;\n sort?: 'ASC' | 'DESC' | '';\n sortable?: (a: R, b: R) => number;\n }>;\n rowComponent: Type>;\n}\n\n@Component({\n selector: 'rr-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n})\nexport class RRTableComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() configuration: TableConfiguration;\n @Input() datasource: DataSource;\n @Input() showSkeletonLoader: Observable;\n @Output() sortColumnClicked: EventEmitter<{\n title: string;\n hideSort?: boolean;\n sort?: 'ASC' | 'DESC' | '';\n sortable?: (a: R, b: R) => number;\n }> = new EventEmitter();\n public showLoader: boolean;\n displayedRecords: Array = [];\n private _onDestroy: Subject = new Subject();\n constructor() {}\n\n ngOnInit(): void {\n this._onDestroy = new Subject();\n }\n\n ngAfterViewInit(): void {\n if (!this.configuration) return;\n if (!this.datasource) return;\n const tableContainer = document.getElementsByClassName(\n 'table-container',\n )[0] as any;\n this.datasource\n .fetch()\n .pipe(takeUntil(this._onDestroy))\n .subscribe(({ data }) => {\n this.displayedRecords = data;\n if (data.length === 0) {\n this.showLoader = false;\n tableContainer.style.height = 'unset';\n }\n });\n this.showSkeletonLoader\n ?.pipe(takeUntil(this._onDestroy))\n .subscribe((show) => {\n if (!show) {\n //This timeout is that the UI is refreshed before the skeleton loader was removed.\n setTimeout(() => {\n this.showLoader = show;\n }, 100);\n return;\n }\n this.showLoader = show;\n tableContainer.style.height = '686px';\n });\n }\n ngOnDestroy(): void {\n this._onDestroy.next();\n this._onDestroy.complete();\n this._onDestroy = undefined;\n }\n\n loadingDone() {\n this.showLoader = false;\n (\n document.getElementsByClassName('table-container')[0] as any\n ).style.height = 'unset';\n }\n sort(col: {\n title: string;\n hideSort?: boolean;\n sort?: 'ASC' | 'DESC' | '';\n sortable?: (a: R, b: R) => number;\n }) {\n if (col.hideSort) {\n return;\n }\n const otherCols = this.configuration.columns.filter(\n (o) => o.title !== col.title,\n );\n otherCols.map((o) => (o.sort = ''));\n switch (col.sort) {\n case 'ASC':\n col.sort = 'DESC';\n break;\n case 'DESC':\n col.sort = 'ASC';\n break;\n default:\n col.sort = 'DESC';\n }\n this.sortColumnClicked.emit(col);\n }\n}\n","import * as i1 from '@angular/animations';\nimport { style, animate } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { EventEmitter, Directive, Output, HostBinding, Input, NgModule } from '@angular/core';\n\nconst COLLAPSE_ANIMATION_TIMING = '400ms cubic-bezier(0.4,0.0,0.2,1)';\nconst expandAnimation = [\n style({ height: 0, visibility: 'hidden' }),\n animate(COLLAPSE_ANIMATION_TIMING, style({ height: '*', visibility: 'visible' }))\n];\nconst collapseAnimation = [\n style({ height: '*', visibility: 'visible' }),\n animate(COLLAPSE_ANIMATION_TIMING, style({ height: 0, visibility: 'hidden' }))\n];\n\nclass CollapseDirective {\n set display(value) {\n this._display = value;\n if (value === 'none') {\n this.hide();\n return;\n }\n this.isAnimated ? this.toggle() : this.show();\n }\n /** A flag indicating visibility of content (shown or hidden) */\n set collapse(value) {\n this.collapseNewValue = value;\n if (!this._player || this._isAnimationDone) {\n this.isExpanded = value;\n this.toggle();\n }\n }\n get collapse() {\n return this.isExpanded;\n }\n constructor(_el, _renderer, _builder) {\n this._el = _el;\n this._renderer = _renderer;\n /** This event fires as soon as content collapses */\n this.collapsed = new EventEmitter();\n /** This event fires when collapsing is started */\n this.collapses = new EventEmitter();\n /** This event fires as soon as content becomes visible */\n this.expanded = new EventEmitter();\n /** This event fires when expansion is started */\n this.expands = new EventEmitter();\n // shown\n this.isExpanded = true;\n this.collapseNewValue = true;\n // hidden\n this.isCollapsed = false;\n // stale state\n this.isCollapse = true;\n // animation state\n this.isCollapsing = false;\n /** turn on/off animation */\n this.isAnimated = false;\n this._display = 'block';\n this._stylesLoaded = false;\n this._COLLAPSE_ACTION_NAME = 'collapse';\n this._EXPAND_ACTION_NAME = 'expand';\n this._factoryCollapseAnimation = _builder.build(collapseAnimation);\n this._factoryExpandAnimation = _builder.build(expandAnimation);\n }\n ngAfterViewChecked() {\n this._stylesLoaded = true;\n if (!this._player || !this._isAnimationDone) {\n return;\n }\n this._player.reset();\n this._renderer.setStyle(this._el.nativeElement, 'height', '*');\n }\n /** allows to manually toggle content visibility */\n toggle() {\n if (this.isExpanded) {\n this.hide();\n }\n else {\n this.show();\n }\n }\n /** allows to manually hide content */\n hide() {\n this.isCollapsing = true;\n this.isExpanded = false;\n this.isCollapsed = true;\n this.isCollapsing = false;\n this.collapses.emit(this);\n this._isAnimationDone = false;\n this.animationRun(this.isAnimated, this._COLLAPSE_ACTION_NAME)(() => {\n this._isAnimationDone = true;\n if (this.collapseNewValue !== this.isCollapsed && this.isAnimated) {\n this.show();\n return;\n }\n this.collapsed.emit(this);\n this._renderer.setStyle(this._el.nativeElement, 'display', 'none');\n });\n }\n /** allows to manually show collapsed content */\n show() {\n this._renderer.setStyle(this._el.nativeElement, 'display', this._display);\n this.isCollapsing = true;\n this.isExpanded = true;\n this.isCollapsed = false;\n this.isCollapsing = false;\n this.expands.emit(this);\n this._isAnimationDone = false;\n this.animationRun(this.isAnimated, this._EXPAND_ACTION_NAME)(() => {\n this._isAnimationDone = true;\n if (this.collapseNewValue !== this.isCollapsed && this.isAnimated) {\n this.hide();\n return;\n }\n this.expanded.emit(this);\n this._renderer.removeStyle(this._el.nativeElement, 'overflow');\n });\n }\n animationRun(isAnimated, action) {\n if (!isAnimated || !this._stylesLoaded) {\n return (callback) => callback();\n }\n this._renderer.setStyle(this._el.nativeElement, 'overflow', 'hidden');\n this._renderer.addClass(this._el.nativeElement, 'collapse');\n const factoryAnimation = (action === this._EXPAND_ACTION_NAME)\n ? this._factoryExpandAnimation\n : this._factoryCollapseAnimation;\n if (this._player) {\n this._player.reset();\n }\n this._player = factoryAnimation.create(this._el.nativeElement);\n this._player.play();\n return (callback) => this._player?.onDone(callback);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: CollapseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: CollapseDirective, selector: \"[collapse]\", inputs: { display: \"display\", isAnimated: \"isAnimated\", collapse: \"collapse\" }, outputs: { collapsed: \"collapsed\", collapses: \"collapses\", expanded: \"expanded\", expands: \"expands\" }, host: { properties: { \"class.collapse\": \"this.isCollapse\", \"class.in\": \"this.isExpanded\", \"class.show\": \"this.isExpanded\", \"attr.aria-hidden\": \"this.isCollapsed\", \"class.collapsing\": \"this.isCollapsing\" } }, exportAs: [\"bs-collapse\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: CollapseDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[collapse]',\n exportAs: 'bs-collapse',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[class.collapse]': 'true'\n }\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.AnimationBuilder }], propDecorators: { collapsed: [{\n type: Output\n }], collapses: [{\n type: Output\n }], expanded: [{\n type: Output\n }], expands: [{\n type: Output\n }], isExpanded: [{\n type: HostBinding,\n args: ['class.in']\n }, {\n type: HostBinding,\n args: ['class.show']\n }], isCollapsed: [{\n type: HostBinding,\n args: ['attr.aria-hidden']\n }], isCollapse: [{\n type: HostBinding,\n args: ['class.collapse']\n }], isCollapsing: [{\n type: HostBinding,\n args: ['class.collapsing']\n }], display: [{\n type: Input\n }], isAnimated: [{\n type: Input\n }], collapse: [{\n type: Input\n }] } });\n\nclass CollapseModule {\n static forRoot() {\n return { ngModule: CollapseModule, providers: [] };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: CollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.4\", ngImport: i0, type: CollapseModule, declarations: [CollapseDirective], exports: [CollapseDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: CollapseModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: CollapseModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [CollapseDirective],\n exports: [CollapseDirective]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CollapseDirective, CollapseModule };\n","import * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Component, ChangeDetectionStrategy, Directive, Input, Output, HostListener, HostBinding, NgModule } from '@angular/core';\nimport { filter } from 'rxjs/operators';\nimport * as i1 from 'ngx-bootstrap/component-loader';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport * as i2 from '@angular/animations';\nimport { style, animate } from '@angular/animations';\nimport * as i3 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\n/** Default dropdown configuration */\nclass BsDropdownConfig {\n constructor() {\n /** default dropdown auto closing behavior */\n this.autoClose = true;\n /** default dropdown auto closing behavior */\n this.insideClick = false;\n /** turn on/off animation */\n this.isAnimated = false;\n /** value true of stopOnClickPropagation allows event stopPropagation*/\n this.stopOnClickPropagation = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownConfig, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n\nclass BsDropdownState {\n constructor() {\n this.direction = 'down';\n this.autoClose = true;\n this.insideClick = false;\n this.isAnimated = false;\n this.stopOnClickPropagation = false;\n this.isOpenChange = new EventEmitter();\n this.isDisabledChange = new EventEmitter();\n this.toggleClick = new EventEmitter();\n this.counts = 0;\n this.dropdownMenu = new Promise(resolve => {\n this.resolveDropdownMenu = resolve;\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownState, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownState, providedIn: 'platform' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownState, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'platform' }]\n }], ctorParameters: () => [] });\n\nconst DROPDOWN_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\nconst dropdownAnimation = [\n style({ height: 0, overflow: 'hidden' }),\n animate(DROPDOWN_ANIMATION_TIMING, style({ height: '*', overflow: 'hidden' }))\n];\n\n// todo: revert ngClass to [class] when false positive angular-cli issue is fixed\n// [class.dropdown]=\"direction === 'down'\"-->\nclass BsDropdownContainerComponent {\n get direction() {\n return this._state.direction;\n }\n constructor(_state, cd, _renderer, _element, _builder) {\n this._state = _state;\n this.cd = cd;\n this._renderer = _renderer;\n this._element = _element;\n this.isOpen = false;\n this._factoryDropDownAnimation = _builder.build(dropdownAnimation);\n this._subscription = _state.isOpenChange.subscribe((value) => {\n this.isOpen = value;\n const dropdown = this._element.nativeElement.querySelector('.dropdown-menu');\n this._renderer.addClass(this._element.nativeElement.querySelector('div'), 'open');\n if (dropdown) {\n this._renderer.addClass(dropdown, 'show');\n if (dropdown.classList.contains('dropdown-menu-right') || dropdown.classList.contains('dropdown-menu-end')) {\n this._renderer.setStyle(dropdown, 'left', 'auto');\n this._renderer.setStyle(dropdown, 'right', '0');\n }\n if (this.direction === 'up') {\n this._renderer.setStyle(dropdown, 'top', 'auto');\n this._renderer.setStyle(dropdown, 'transform', 'translateY(-101%)');\n }\n }\n if (dropdown && this._state.isAnimated) {\n this._factoryDropDownAnimation.create(dropdown)\n .play();\n }\n this.cd.markForCheck();\n this.cd.detectChanges();\n });\n }\n /** @internal */\n _contains(el) {\n return this._element.nativeElement.contains(el);\n }\n ngOnDestroy() {\n this._subscription.unsubscribe();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownContainerComponent, deps: [{ token: BsDropdownState }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDropdownContainerComponent, selector: \"bs-dropdown-container\", host: { styleAttribute: \"display:block;position: absolute;z-index: 1040\" }, ngImport: i0, template: `\n
    \n
    \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i3.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownContainerComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'bs-dropdown-container',\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n style: 'display:block;position: absolute;z-index: 1040'\n },\n template: `\n
    \n
    \n `\n }]\n }], ctorParameters: () => [{ type: BsDropdownState }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.AnimationBuilder }] });\n\nclass BsDropdownDirective {\n /**\n * Indicates that dropdown will be closed on item or document click,\n * and after pressing ESC\n */\n set autoClose(value) {\n this._state.autoClose = value;\n }\n get autoClose() {\n return this._state.autoClose;\n }\n /**\n * Indicates that dropdown will be animated\n */\n set isAnimated(value) {\n this._state.isAnimated = value;\n }\n get isAnimated() {\n return this._state.isAnimated;\n }\n /**\n * This attribute indicates that the dropdown shouldn't close on inside click when autoClose is set to true\n */\n set insideClick(value) {\n this._state.insideClick = value;\n }\n get insideClick() {\n return this._state.insideClick;\n }\n /**\n * Disables dropdown toggle and hides dropdown menu if opened\n */\n set isDisabled(value) {\n this._isDisabled = value;\n this._state.isDisabledChange.emit(value);\n if (value) {\n this.hide();\n }\n }\n get isDisabled() {\n return this._isDisabled;\n }\n /**\n * Returns whether or not the popover is currently being shown\n */\n get isOpen() {\n if (this._showInline) {\n return this._isInlineOpen;\n }\n return this._dropdown.isShown;\n }\n set isOpen(value) {\n if (value) {\n this.show();\n }\n else {\n this.hide();\n }\n }\n get _showInline() {\n return !this.container;\n }\n constructor(_elementRef, _renderer, _viewContainerRef, _cis, _state, _config, _builder) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._viewContainerRef = _viewContainerRef;\n this._cis = _cis;\n this._state = _state;\n this._config = _config;\n /**\n * This attribute indicates that the dropdown should be opened upwards\n */\n this.dropup = false;\n // todo: move to component loader\n this._isInlineOpen = false;\n this._isDisabled = false;\n this._subscriptions = [];\n this._isInited = false;\n // set initial dropdown state from config\n this._state.autoClose = this._config.autoClose;\n this._state.insideClick = this._config.insideClick;\n this._state.isAnimated = this._config.isAnimated;\n this._state.stopOnClickPropagation = this._config.stopOnClickPropagation;\n this._factoryDropDownAnimation = _builder.build(dropdownAnimation);\n // create dropdown component loader\n this._dropdown = this._cis\n .createLoader(this._elementRef, this._viewContainerRef, this._renderer)\n .provide({ provide: BsDropdownState, useValue: this._state });\n this.onShown = this._dropdown.onShown;\n this.onHidden = this._dropdown.onHidden;\n this.isOpenChange = this._state.isOpenChange;\n }\n ngOnInit() {\n // fix: seems there are an issue with `routerLinkActive`\n // which result in duplicated call ngOnInit without call to ngOnDestroy\n // read more: https://github.com/valor-software/ngx-bootstrap/issues/1885\n if (this._isInited) {\n return;\n }\n this._isInited = true;\n // attach DOM listeners\n this._dropdown.listen({\n // because of dropdown inline mode\n outsideClick: false,\n triggers: this.triggers,\n show: () => this.show()\n });\n // toggle visibility on toggle element click\n this._subscriptions.push(this._state.toggleClick.subscribe((value) => this.toggle(value)));\n // hide dropdown if set disabled while opened\n this._subscriptions.push(this._state.isDisabledChange\n .pipe(filter((value) => value))\n .subscribe(( /*value: boolean*/) => this.hide()));\n }\n /**\n * Opens an element’s popover. This is considered a “manual” triggering of\n * the popover.\n */\n show() {\n if (this.isOpen || this.isDisabled) {\n return;\n }\n if (this._showInline) {\n if (!this._inlinedMenu) {\n this._state.dropdownMenu\n .then((dropdownMenu) => {\n this._dropdown.attachInline(dropdownMenu.viewContainer, dropdownMenu.templateRef);\n this._inlinedMenu = this._dropdown._inlineViewRef;\n this.addBs4Polyfills();\n if (this._inlinedMenu) {\n this._renderer.addClass(this._inlinedMenu.rootNodes[0].parentNode, 'open');\n }\n this.playAnimation();\n })\n // swallow errors\n .catch();\n }\n this.addBs4Polyfills();\n this._isInlineOpen = true;\n this.onShown.emit(true);\n this._state.isOpenChange.emit(true);\n this.playAnimation();\n return;\n }\n this._state.dropdownMenu\n .then((dropdownMenu) => {\n // check direction in which dropdown should be opened\n const _dropup = this.dropup || (typeof this.dropup !== 'undefined' && this.dropup);\n this._state.direction = _dropup ? 'up' : 'down';\n const _placement = this.placement || (_dropup ? 'top start' : 'bottom start');\n // show dropdown\n this._dropdown\n .attach(BsDropdownContainerComponent)\n .to(this.container)\n .position({ attachment: _placement })\n .show({\n content: dropdownMenu.templateRef,\n placement: _placement\n });\n this._state.isOpenChange.emit(true);\n })\n // swallow error\n .catch();\n }\n /**\n * Closes an element’s popover. This is considered a “manual” triggering of\n * the popover.\n */\n hide() {\n if (!this.isOpen) {\n return;\n }\n if (this._showInline) {\n this.removeShowClass();\n this.removeDropupStyles();\n this._isInlineOpen = false;\n this.onHidden.emit(true);\n }\n else {\n this._dropdown.hide();\n }\n this._state.isOpenChange.emit(false);\n }\n /**\n * Toggles an element’s popover. This is considered a “manual” triggering of\n * the popover. With parameter true allows toggling, with parameter false\n * only hides opened dropdown. Parameter usage will be removed in ngx-bootstrap v3\n */\n toggle(value) {\n if (this.isOpen || !value) {\n return this.hide();\n }\n return this.show();\n }\n /** @internal */\n _contains(event) {\n // todo: valorkin fix typings\n return (this._elementRef.nativeElement.contains(event.target) ||\n (this._dropdown.instance && this._dropdown.instance._contains(event.target)));\n }\n navigationClick(event) {\n const ref = this._elementRef.nativeElement.querySelector('.dropdown-menu');\n if (!ref) {\n return;\n }\n const firstActive = this._elementRef.nativeElement.ownerDocument.activeElement;\n const allRef = ref.querySelectorAll('.dropdown-item');\n switch (event.keyCode) {\n case 38:\n if (this._state.counts > 0) {\n allRef[--this._state.counts].focus();\n }\n break;\n case 40:\n if (this._state.counts + 1 < allRef.length) {\n if (firstActive.classList !== allRef[this._state.counts].classList) {\n allRef[this._state.counts].focus();\n }\n else {\n allRef[++this._state.counts].focus();\n }\n }\n break;\n default:\n }\n event.preventDefault();\n }\n ngOnDestroy() {\n // clean up subscriptions and destroy dropdown\n for (const sub of this._subscriptions) {\n sub.unsubscribe();\n }\n this._dropdown.dispose();\n }\n addBs4Polyfills() {\n this.addShowClass();\n this.checkRightAlignment();\n this.addDropupStyles();\n }\n playAnimation() {\n if (this._state.isAnimated && this._inlinedMenu) {\n setTimeout(() => {\n if (this._inlinedMenu) {\n this._factoryDropDownAnimation.create(this._inlinedMenu.rootNodes[0]).play();\n }\n });\n }\n }\n addShowClass() {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n this._renderer.addClass(this._inlinedMenu.rootNodes[0], 'show');\n }\n }\n removeShowClass() {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n this._renderer.removeClass(this._inlinedMenu.rootNodes[0], 'show');\n }\n }\n checkRightAlignment() {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n const isRightAligned = this._inlinedMenu.rootNodes[0].classList.contains('dropdown-menu-right') ||\n this._inlinedMenu.rootNodes[0].classList.contains('dropdown-menu-end');\n this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'left', isRightAligned ? 'auto' : '0');\n this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'right', isRightAligned ? '0' : 'auto');\n }\n }\n addDropupStyles() {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n // a little hack to not break support of bootstrap 4 beta\n this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'top', this.dropup ? 'auto' : '100%');\n this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'transform', this.dropup ? 'translateY(-101%)' : 'translateY(0)');\n this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'bottom', 'auto');\n }\n }\n removeDropupStyles() {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'top');\n this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'transform');\n this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'bottom');\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i1.ComponentLoaderFactory }, { token: BsDropdownState }, { token: BsDropdownConfig }, { token: i2.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDropdownDirective, selector: \"[bsDropdown], [dropdown]\", inputs: { placement: \"placement\", triggers: \"triggers\", container: \"container\", dropup: \"dropup\", autoClose: \"autoClose\", isAnimated: \"isAnimated\", insideClick: \"insideClick\", isDisabled: \"isDisabled\", isOpen: \"isOpen\" }, outputs: { isOpenChange: \"isOpenChange\", onShown: \"onShown\", onHidden: \"onHidden\" }, host: { listeners: { \"keydown.arrowDown\": \"navigationClick($event)\", \"keydown.arrowUp\": \"navigationClick($event)\" }, properties: { \"class.dropup\": \"dropup\", \"class.open\": \"isOpen\", \"class.show\": \"isOpen\" } }, providers: [BsDropdownState], exportAs: [\"bs-dropdown\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[bsDropdown], [dropdown]',\n exportAs: 'bs-dropdown',\n providers: [BsDropdownState],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[class.dropup]': 'dropup',\n '[class.open]': 'isOpen',\n '[class.show]': 'isOpen'\n }\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i1.ComponentLoaderFactory }, { type: BsDropdownState }, { type: BsDropdownConfig }, { type: i2.AnimationBuilder }], propDecorators: { placement: [{\n type: Input\n }], triggers: [{\n type: Input\n }], container: [{\n type: Input\n }], dropup: [{\n type: Input\n }], autoClose: [{\n type: Input\n }], isAnimated: [{\n type: Input\n }], insideClick: [{\n type: Input\n }], isDisabled: [{\n type: Input\n }], isOpen: [{\n type: Input\n }], isOpenChange: [{\n type: Output\n }], onShown: [{\n type: Output\n }], onHidden: [{\n type: Output\n }], navigationClick: [{\n type: HostListener,\n args: ['keydown.arrowDown', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.arrowUp', ['$event']]\n }] } });\n\nclass BsDropdownMenuDirective {\n constructor(_state, _viewContainer, _templateRef) {\n _state.resolveDropdownMenu({\n templateRef: _templateRef,\n viewContainer: _viewContainer\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownMenuDirective, deps: [{ token: BsDropdownState }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDropdownMenuDirective, selector: \"[bsDropdownMenu],[dropdownMenu]\", exportAs: [\"bs-dropdown-menu\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownMenuDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[bsDropdownMenu],[dropdownMenu]',\n exportAs: 'bs-dropdown-menu'\n }]\n }], ctorParameters: () => [{ type: BsDropdownState }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }] });\n\nclass BsDropdownToggleDirective {\n constructor(_changeDetectorRef, _dropdown, _element, _renderer, _state) {\n this._changeDetectorRef = _changeDetectorRef;\n this._dropdown = _dropdown;\n this._element = _element;\n this._renderer = _renderer;\n this._state = _state;\n this.isOpen = false;\n this._subscriptions = [];\n // sync is open value with state\n this._subscriptions.push(this._state.isOpenChange.subscribe((value) => {\n this.isOpen = value;\n if (value) {\n this._documentClickListener = this._renderer.listen('document', 'click', (event) => {\n if (this._state.autoClose && event.button !== 2 &&\n !this._element.nativeElement.contains(event.target) &&\n !(this._state.insideClick && this._dropdown._contains(event))) {\n this._state.toggleClick.emit(false);\n this._changeDetectorRef.detectChanges();\n }\n });\n this._escKeyUpListener = this._renderer.listen(this._element.nativeElement, 'keyup.esc', () => {\n if (this._state.autoClose) {\n this._state.toggleClick.emit(false);\n this._changeDetectorRef.detectChanges();\n }\n });\n }\n else {\n this._documentClickListener && this._documentClickListener();\n this._escKeyUpListener && this._escKeyUpListener();\n }\n }));\n // populate disabled state\n this._subscriptions.push(this._state.isDisabledChange\n .subscribe((value) => this.isDisabled = value || void 0));\n }\n onClick(event) {\n if (this._state.stopOnClickPropagation) {\n event.stopPropagation();\n }\n if (this.isDisabled) {\n return;\n }\n this._state.toggleClick.emit(true);\n }\n ngOnDestroy() {\n if (this._documentClickListener) {\n this._documentClickListener();\n }\n if (this._escKeyUpListener) {\n this._escKeyUpListener();\n }\n for (const sub of this._subscriptions) {\n sub.unsubscribe();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownToggleDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: BsDropdownDirective }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: BsDropdownState }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDropdownToggleDirective, selector: \"[bsDropdownToggle],[dropdownToggle]\", host: { listeners: { \"click\": \"onClick($event)\" }, properties: { \"attr.aria-haspopup\": \"true\", \"attr.disabled\": \"this.isDisabled\", \"attr.aria-expanded\": \"this.isOpen\" } }, exportAs: [\"bs-dropdown-toggle\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownToggleDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[bsDropdownToggle],[dropdownToggle]',\n exportAs: 'bs-dropdown-toggle',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.aria-haspopup]': 'true'\n }\n }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: BsDropdownDirective }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: BsDropdownState }], propDecorators: { isDisabled: [{\n type: HostBinding,\n args: ['attr.disabled']\n }], isOpen: [{\n type: HostBinding,\n args: ['attr.aria-expanded']\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\n\nclass BsDropdownModule {\n static forRoot() {\n return {\n ngModule: BsDropdownModule,\n providers: [\n ComponentLoaderFactory,\n PositioningService,\n BsDropdownState\n ]\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownModule, declarations: [BsDropdownMenuDirective,\n BsDropdownToggleDirective,\n BsDropdownContainerComponent,\n BsDropdownDirective], imports: [CommonModule], exports: [BsDropdownMenuDirective,\n BsDropdownToggleDirective,\n BsDropdownDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownModule, imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDropdownModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [\n BsDropdownMenuDirective,\n BsDropdownToggleDirective,\n BsDropdownContainerComponent,\n BsDropdownDirective\n ],\n exports: [\n BsDropdownMenuDirective,\n BsDropdownToggleDirective,\n BsDropdownDirective\n ]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BsDropdownConfig, BsDropdownContainerComponent, BsDropdownDirective, BsDropdownMenuDirective, BsDropdownModule, BsDropdownState, BsDropdownToggleDirective };\n","import * as i0 from '@angular/core';\nimport { Injectable, Component, Input, EventEmitter, Inject, Output, HostBinding, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i2 from 'ngx-bootstrap/collapse';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\n\n/**\n * Configuration service, provides default values for the AccordionComponent.\n */\nclass AccordionConfig {\n constructor() {\n /** Whether the other panels should be closed when a panel is opened */\n this.closeOthers = false;\n /** turn on/off animation */\n this.isAnimated = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: AccordionConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: AccordionConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: AccordionConfig, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n\n/** Displays collapsible content panels for presenting information in a limited amount of space. */\nclass AccordionComponent {\n constructor(config) {\n /** turn on/off animation */\n this.isAnimated = false;\n /** if `true` expanding one item will close all others */\n this.closeOthers = false;\n this.groups = [];\n Object.assign(this, config);\n }\n closeOtherPanels(openGroup) {\n if (!this.closeOthers) {\n return;\n }\n this.groups.forEach((group) => {\n if (group !== openGroup) {\n group.isOpen = false;\n }\n });\n }\n addGroup(group) {\n group.isAnimated = this.isAnimated;\n this.groups.push(group);\n }\n removeGroup(group) {\n const index = this.groups.indexOf(group);\n if (index !== -1) {\n this.groups.splice(index, 1);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: AccordionComponent, deps: [{ token: AccordionConfig }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: AccordionComponent, selector: \"accordion\", inputs: { isAnimated: \"isAnimated\", closeOthers: \"closeOthers\" }, host: { attributes: { \"role\": \"tablist\" }, properties: { \"attr.aria-multiselectable\": \"closeOthers\" }, styleAttribute: \"display: block\", classAttribute: \"panel-group\" }, ngImport: i0, template: ``, isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: AccordionComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'accordion',\n template: ``,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.aria-multiselectable]': 'closeOthers',\n role: 'tablist',\n class: 'panel-group',\n style: 'display: block'\n }\n }]\n }], ctorParameters: () => [{ type: AccordionConfig }], propDecorators: { isAnimated: [{\n type: Input\n }], closeOthers: [{\n type: Input\n }] } });\n\n/**\n * ### Accordion heading\n * Instead of using `heading` attribute on the `accordion-group`, you can use\n * an `accordion-heading` attribute on `any` element inside of a group that\n * will be used as group's header template.\n */\nclass AccordionPanelComponent {\n // Questionable, maybe .panel-open should be on child div.panel element?\n /** Is accordion group open or closed. This property supports two-way binding */\n get isOpen() {\n return this._isOpen;\n }\n set isOpen(value) {\n if (value !== this.isOpen) {\n if (value) {\n this.accordion.closeOtherPanels(this);\n }\n this._isOpen = value;\n Promise.resolve(null)\n .then(() => {\n this.isOpenChange.emit(value);\n });\n }\n }\n constructor(accordion) {\n /** turn on/off animation */\n this.isAnimated = false;\n /** Provides an ability to use Bootstrap's contextual panel classes\n * (`panel-primary`, `panel-success`, `panel-info`, etc...).\n * List of all available classes [available here]\n * (https://getbootstrap.com/docs/3.3/components/#panels-alternatives)\n */\n this.panelClass = 'panel-default';\n /** if true — disables accordion group */\n this.isDisabled = false;\n /** Emits when the opened state changes */\n this.isOpenChange = new EventEmitter();\n this._isOpen = false;\n this.accordion = accordion;\n }\n ngOnInit() {\n this.accordion.addGroup(this);\n }\n ngOnDestroy() {\n this.accordion.removeGroup(this);\n }\n toggleOpen() {\n if (!this.isDisabled) {\n this.isOpen = !this.isOpen;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: AccordionPanelComponent, deps: [{ token: AccordionComponent }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: AccordionPanelComponent, selector: \"accordion-group, accordion-panel\", inputs: { heading: \"heading\", panelClass: \"panelClass\", isDisabled: \"isDisabled\", isOpen: \"isOpen\" }, outputs: { isOpenChange: \"isOpenChange\" }, host: { properties: { \"class.panel-open\": \"this.isOpen\" }, styleAttribute: \"display: block\", classAttribute: \"panel\" }, ngImport: i0, template: \"
    \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n\\n\", styles: [\":host .card-header.panel-enabled{cursor:pointer}:host .card-header.panel-disabled .btn.btn-link{cursor:default;text-decoration:none}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.CollapseDirective, selector: \"[collapse]\", inputs: [\"display\", \"isAnimated\", \"collapse\"], outputs: [\"collapsed\", \"collapses\", \"expanded\", \"expands\"], exportAs: [\"bs-collapse\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: AccordionPanelComponent, decorators: [{\n type: Component,\n args: [{ selector: 'accordion-group, accordion-panel', host: {\n class: 'panel',\n style: 'display: block'\n }, template: \"
    \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n\\n\", styles: [\":host .card-header.panel-enabled{cursor:pointer}:host .card-header.panel-disabled .btn.btn-link{cursor:default;text-decoration:none}\\n\"] }]\n }], ctorParameters: () => [{ type: AccordionComponent, decorators: [{\n type: Inject,\n args: [AccordionComponent]\n }] }], propDecorators: { heading: [{\n type: Input\n }], panelClass: [{\n type: Input\n }], isDisabled: [{\n type: Input\n }], isOpenChange: [{\n type: Output\n }], isOpen: [{\n type: HostBinding,\n args: ['class.panel-open']\n }, {\n type: Input\n }] } });\n\nclass AccordionModule {\n static forRoot() {\n return { ngModule: AccordionModule, providers: [] };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: AccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.4\", ngImport: i0, type: AccordionModule, declarations: [AccordionComponent, AccordionPanelComponent], imports: [CommonModule, CollapseModule], exports: [AccordionComponent, AccordionPanelComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: AccordionModule, imports: [CommonModule, CollapseModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: AccordionModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, CollapseModule],\n declarations: [AccordionComponent, AccordionPanelComponent],\n exports: [AccordionComponent, AccordionPanelComponent]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AccordionComponent, AccordionConfig, AccordionModule, AccordionPanelComponent };\n","import * as i0 from '@angular/core';\nimport { Directive, Input, Injectable, Component, HostBinding, EventEmitter, Output, NgModule } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\nclass NgTranscludeDirective {\n set ngTransclude(templateRef) {\n this._ngTransclude = templateRef;\n if (templateRef) {\n this.viewRef.createEmbeddedView(templateRef);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get ngTransclude() {\n return this._ngTransclude;\n }\n constructor(viewRef) {\n this.viewRef = viewRef;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: NgTranscludeDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: NgTranscludeDirective, selector: \"[ngTransclude]\", inputs: { ngTransclude: \"ngTransclude\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: NgTranscludeDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngTransclude]'\n }]\n }], ctorParameters: () => [{ type: i0.ViewContainerRef }], propDecorators: { ngTransclude: [{\n type: Input\n }] } });\n\nclass TabsetConfig {\n constructor() {\n /** provides default navigation context class: 'tabs' or 'pills' */\n this.type = 'tabs';\n /** provides possibility to set keyNavigations enable or disable, by default is enable */\n this.isKeysAllowed = true;\n /** aria label for tab list */\n this.ariaLabel = 'Tabs';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TabsetConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TabsetConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TabsetConfig, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n\n// todo: add active event to tab\n// todo: fix? mixing static and dynamic tabs position tabs in order of creation\nclass TabsetComponent {\n /** if true tabs will be placed vertically */\n get vertical() {\n return this._vertical;\n }\n set vertical(value) {\n this._vertical = value;\n this.setClassMap();\n }\n /** if true tabs fill the container and have a consistent width */\n get justified() {\n return this._justified;\n }\n set justified(value) {\n this._justified = value;\n this.setClassMap();\n }\n /** navigation context class: 'tabs' or 'pills' */\n get type() {\n return this._type;\n }\n set type(value) {\n this._type = value;\n this.setClassMap();\n }\n get isKeysAllowed() {\n return this._isKeysAllowed;\n }\n set isKeysAllowed(value) {\n this._isKeysAllowed = value;\n }\n constructor(config, renderer, elementRef) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n this.clazz = true;\n this.tabs = [];\n this.classMap = {};\n /** aria label for tab list */\n this.ariaLabel = 'Tabs';\n this.isDestroyed = false;\n this._vertical = false;\n this._justified = false;\n this._type = 'tabs';\n this._isKeysAllowed = true;\n Object.assign(this, config);\n }\n ngOnDestroy() {\n this.isDestroyed = true;\n }\n addTab(tab) {\n this.tabs.push(tab);\n tab.active = this.tabs.length === 1 && !tab.active;\n }\n removeTab(tab, options = { reselect: true, emit: true }) {\n const index = this.tabs.indexOf(tab);\n if (index === -1 || this.isDestroyed) {\n return;\n }\n // Select a new tab if the tab to be removed is selected and not destroyed\n if (options.reselect && tab.active && this.hasAvailableTabs(index)) {\n const newActiveIndex = this.getClosestTabIndex(index);\n this.tabs[newActiveIndex].active = true;\n }\n if (options.emit) {\n tab.removed.emit(tab);\n }\n this.tabs.splice(index, 1);\n if (tab.elementRef.nativeElement.parentNode) {\n this.renderer.removeChild(tab.elementRef.nativeElement.parentNode, tab.elementRef.nativeElement);\n }\n }\n keyNavActions(event, index) {\n if (!this.isKeysAllowed) {\n return;\n }\n const list = Array.from(this.elementRef.nativeElement.querySelectorAll('.nav-link'));\n // const activeElList = list.filter((el: HTMLElement) => !el.classList.contains('disabled'));\n if (event.keyCode === 13 || event.key === 'Enter' || event.keyCode === 32 || event.key === 'Space') {\n event.preventDefault();\n const currentTab = list[(index) % list.length];\n currentTab.click();\n return;\n }\n if (event.keyCode === 39 || event.key === 'RightArrow') {\n let nextTab;\n let shift = 1;\n do {\n nextTab = list[(index + shift) % list.length];\n shift++;\n } while (nextTab.classList.contains('disabled'));\n nextTab.focus();\n return;\n }\n if (event.keyCode === 37 || event.key === 'LeftArrow') {\n let previousTab;\n let shift = 1;\n let i = index;\n do {\n if ((i - shift) < 0) {\n i = list.length - 1;\n previousTab = list[i];\n shift = 0;\n }\n else {\n previousTab = list[i - shift];\n }\n shift++;\n } while (previousTab.classList.contains('disabled'));\n previousTab.focus();\n return;\n }\n if (event.keyCode === 36 || event.key === 'Home') {\n event.preventDefault();\n let firstTab;\n let shift = 0;\n do {\n firstTab = list[shift % list.length];\n shift++;\n } while (firstTab.classList.contains('disabled'));\n firstTab.focus();\n return;\n }\n if (event.keyCode === 35 || event.key === 'End') {\n event.preventDefault();\n let lastTab;\n let shift = 1;\n let i = index;\n do {\n if ((i - shift) < 0) {\n i = list.length - 1;\n lastTab = list[i];\n shift = 0;\n }\n else {\n lastTab = list[i - shift];\n }\n shift++;\n } while (lastTab.classList.contains('disabled'));\n lastTab.focus();\n return;\n }\n if (event.keyCode === 46 || event.key === 'Delete') {\n if (this.tabs[index].removable) {\n this.removeTab(this.tabs[index]);\n if (list[index + 1]) {\n list[(index + 1) % list.length].focus();\n return;\n }\n if (list[list.length - 1]) {\n list[0].focus();\n }\n }\n }\n }\n getClosestTabIndex(index) {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return -1;\n }\n for (let step = 1; step <= tabsLength; step += 1) {\n const prevIndex = index - step;\n const nextIndex = index + step;\n if (this.tabs[prevIndex] && !this.tabs[prevIndex].disabled) {\n return prevIndex;\n }\n if (this.tabs[nextIndex] && !this.tabs[nextIndex].disabled) {\n return nextIndex;\n }\n }\n return -1;\n }\n hasAvailableTabs(index) {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return false;\n }\n for (let i = 0; i < tabsLength; i += 1) {\n if (!this.tabs[i].disabled && i !== index) {\n return true;\n }\n }\n return false;\n }\n setClassMap() {\n this.classMap = {\n 'nav-stacked': this.vertical,\n 'flex-column': this.vertical,\n 'nav-justified': this.justified,\n [`nav-${this.type}`]: true\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TabsetComponent, deps: [{ token: TabsetConfig }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: TabsetComponent, selector: \"tabset\", inputs: { vertical: \"vertical\", justified: \"justified\", type: \"type\" }, host: { properties: { \"class.tab-container\": \"this.clazz\" } }, ngImport: i0, template: \"
    \\n
    \\n \\n
    \\n\", styles: [\":host .nav-tabs .nav-item.disabled a.disabled{cursor:default}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: NgTranscludeDirective, selector: \"[ngTransclude]\", inputs: [\"ngTransclude\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TabsetComponent, decorators: [{\n type: Component,\n args: [{ selector: 'tabset', template: \"\\n
    \\n \\n
    \\n\", styles: [\":host .nav-tabs .nav-item.disabled a.disabled{cursor:default}\\n\"] }]\n }], ctorParameters: () => [{ type: TabsetConfig }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { vertical: [{\n type: Input\n }], justified: [{\n type: Input\n }], type: [{\n type: Input\n }], clazz: [{\n type: HostBinding,\n args: ['class.tab-container']\n }] } });\n\nclass TabDirective {\n /** if set, will be added to the tab's class attribute. Multiple classes are supported. */\n get customClass() {\n return this._customClass;\n }\n set customClass(customClass) {\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass) => {\n this.renderer.removeClass(this.elementRef.nativeElement, cssClass);\n });\n }\n this._customClass = customClass ? customClass.trim() : '';\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass) => {\n this.renderer.addClass(this.elementRef.nativeElement, cssClass);\n });\n }\n }\n /** tab active state toggle */\n get active() {\n return this._active;\n }\n set active(active) {\n if (this._active === active) {\n return;\n }\n if ((this.disabled && active) || !active) {\n if (this._active && !active) {\n this.deselect.emit(this);\n this._active = active;\n }\n return;\n }\n this._active = active;\n this.selectTab.emit(this);\n this.tabset.tabs.forEach((tab) => {\n if (tab !== this) {\n tab.active = false;\n }\n });\n }\n get ariaLabelledby() {\n return this.id ? `${this.id}-link` : '';\n }\n constructor(tabset, elementRef, renderer) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n /** if true tab can not be activated */\n this.disabled = false;\n /** if true tab can be removable, additional button will appear */\n this.removable = false;\n /** fired when tab became active, $event:Tab equals to selected instance of Tab component */\n this.selectTab = new EventEmitter();\n /** fired when tab became inactive, $event:Tab equals to deselected instance of Tab component */\n this.deselect = new EventEmitter();\n /** fired before tab will be removed, $event:Tab equals to instance of removed tab */\n this.removed = new EventEmitter();\n this.addClass = true;\n this.role = 'tabpanel';\n this._active = false;\n this._customClass = '';\n this.tabset = tabset;\n this.tabset.addTab(this);\n }\n ngOnInit() {\n this.removable = !!this.removable;\n }\n ngOnDestroy() {\n this.tabset.removeTab(this, { reselect: false, emit: false });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TabDirective, deps: [{ token: TabsetComponent }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: TabDirective, selector: \"tab, [tab]\", inputs: { heading: \"heading\", id: \"id\", disabled: \"disabled\", removable: \"removable\", customClass: \"customClass\", active: \"active\" }, outputs: { selectTab: \"selectTab\", deselect: \"deselect\", removed: \"removed\" }, host: { properties: { \"attr.id\": \"this.id\", \"class.active\": \"this.active\", \"class.tab-pane\": \"this.addClass\", \"attr.role\": \"this.role\", \"attr.aria-labelledby\": \"this.ariaLabelledby\" } }, exportAs: [\"tab\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TabDirective, decorators: [{\n type: Directive,\n args: [{ selector: 'tab, [tab]', exportAs: 'tab' }]\n }], ctorParameters: () => [{ type: TabsetComponent }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { heading: [{\n type: Input\n }], id: [{\n type: HostBinding,\n args: ['attr.id']\n }, {\n type: Input\n }], disabled: [{\n type: Input\n }], removable: [{\n type: Input\n }], customClass: [{\n type: Input\n }], active: [{\n type: HostBinding,\n args: ['class.active']\n }, {\n type: Input\n }], selectTab: [{\n type: Output\n }], deselect: [{\n type: Output\n }], removed: [{\n type: Output\n }], addClass: [{\n type: HostBinding,\n args: ['class.tab-pane']\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }], ariaLabelledby: [{\n type: HostBinding,\n args: ['attr.aria-labelledby']\n }] } });\n\n/** Should be used to mark element as a template for tab heading */\nclass TabHeadingDirective {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(templateRef, tab) {\n tab.headingRef = templateRef;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TabHeadingDirective, deps: [{ token: i0.TemplateRef }, { token: TabDirective }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: TabHeadingDirective, selector: \"[tabHeading]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TabHeadingDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[tabHeading]' }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: TabDirective }] });\n\nclass TabsModule {\n static forRoot() {\n return {\n ngModule: TabsModule,\n providers: []\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.4\", ngImport: i0, type: TabsModule, declarations: [NgTranscludeDirective,\n TabDirective,\n TabsetComponent,\n TabHeadingDirective], imports: [CommonModule], exports: [TabDirective,\n TabsetComponent,\n TabHeadingDirective,\n NgTranscludeDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TabsModule, imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TabsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [\n NgTranscludeDirective,\n TabDirective,\n TabsetComponent,\n TabHeadingDirective\n ],\n exports: [\n TabDirective,\n TabsetComponent,\n TabHeadingDirective,\n NgTranscludeDirective\n ]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NgTranscludeDirective, TabDirective, TabHeadingDirective, TabsModule, TabsetComponent, TabsetConfig };\n","import * as i0 from '@angular/core';\nimport { Injectable, PLATFORM_ID, Inject, Directive, Input, NgModule } from '@angular/core';\nimport { isPlatformBrowser, DOCUMENT, CommonModule } from '@angular/common';\nimport { take } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* eslint-disable */\n/** Injectable that ensures only the most recently enabled FocusTrap is active. */\nclass FocusTrapManager {\n constructor() {\n // A stack of the FocusTraps on the page. Only the FocusTrap at the\n // top of the stack is active.\n this._focusTrapStack = [];\n }\n /**\n * Disables the FocusTrap at the top of the stack, and then pushes\n * the new FocusTrap onto the stack.\n */\n register(focusTrap) {\n // Dedupe focusTraps that register multiple times.\n this._focusTrapStack = this._focusTrapStack.filter((ft) => ft !== focusTrap);\n let stack = this._focusTrapStack;\n if (stack.length) {\n stack[stack.length - 1]._disable();\n }\n stack.push(focusTrap);\n focusTrap._enable();\n }\n /**\n * Removes the FocusTrap from the stack, and activates the\n * FocusTrap that is the new top of the stack.\n */\n deregister(focusTrap) {\n focusTrap._disable();\n const stack = this._focusTrapStack;\n const i = stack.indexOf(focusTrap);\n if (i !== -1) {\n stack.splice(i, 1);\n if (stack.length) {\n stack[stack.length - 1]._enable();\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: FocusTrapManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: FocusTrapManager, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: FocusTrapManager, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* eslint-disable */\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = (typeof Intl !== 'undefined' && Intl.v8BreakIterator);\n}\ncatch {\n hasV8BreakIterator = false;\n}\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\nclass Platform {\n constructor(_platformId) {\n this._platformId = _platformId;\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId ?\n isPlatformBrowser(this._platformId) : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser && (!!(window.chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT);\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) &&\n !('MSStream' in window);\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: Platform, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: Platform, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: Platform, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* eslint-disable */\n/**\n * Configuration for the isFocusable method.\n */\nclass IsFocusableConfig {\n constructor() {\n /**\n * Whether to count an element as focusable even if it is not currently visible.\n */\n this.ignoreVisibility = false;\n }\n}\n// The InteractivityChecker leans heavily on the ally.js accessibility utilities.\n// Methods like `isTabbable` are only covering specific edge-cases for the browsers which are\n// supported.\n/**\n * Utility for checking the interactivity of an element, such as whether is is focusable or\n * tabbable.\n */\nclass InteractivityChecker {\n constructor(_platform) {\n this._platform = _platform;\n }\n /**\n * Gets whether an element is disabled.\n *\n * @param element Element to be checked.\n * @returns Whether the element is disabled.\n */\n isDisabled(element) {\n // This does not capture some cases, such as a non-form control with a disabled attribute or\n // a form control inside of a disabled form, but should capture the most common cases.\n return element.hasAttribute('disabled');\n }\n /**\n * Gets whether an element is visible for the purposes of interactivity.\n *\n * This will capture states like `display: none` and `visibility: hidden`, but not things like\n * being clipped by an `overflow: hidden` parent or being outside the viewport.\n *\n * @returns Whether the element is visible.\n */\n isVisible(element) {\n return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';\n }\n /**\n * Gets whether an element can be reached via Tab key.\n * Assumes that the element has already been checked with isFocusable.\n *\n * @param element Element to be checked.\n * @returns Whether the element is tabbable.\n */\n isTabbable(element) {\n // Nothing is tabbable on the server 😎\n if (!this._platform.isBrowser) {\n return false;\n }\n const frameElement = getFrameElement(getWindow(element));\n if (frameElement) {\n // Frame elements inherit their tabindex onto all child elements.\n if (getTabIndexValue(frameElement) === -1) {\n return false;\n }\n // Browsers disable tabbing to an element inside of an invisible frame.\n if (!this.isVisible(frameElement)) {\n return false;\n }\n }\n let nodeName = element.nodeName.toLowerCase();\n let tabIndexValue = getTabIndexValue(element);\n if (element.hasAttribute('contenteditable')) {\n return tabIndexValue !== -1;\n }\n if (nodeName === 'iframe' || nodeName === 'object') {\n // The frame or object's content may be tabbable depending on the content, but it's\n // not possibly to reliably detect the content of the frames. We always consider such\n // elements as non-tabbable.\n return false;\n }\n // In iOS, the browser only considers some specific elements as tabbable.\n if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {\n return false;\n }\n if (nodeName === 'audio') {\n // Audio elements without controls enabled are never tabbable, regardless\n // of the tabindex attribute explicitly being set.\n if (!element.hasAttribute('controls')) {\n return false;\n }\n // Audio elements with controls are by default tabbable unless the\n // tabindex attribute is set to `-1` explicitly.\n return tabIndexValue !== -1;\n }\n if (nodeName === 'video') {\n // For all video elements, if the tabindex attribute is set to `-1`, the video\n // is not tabbable. Note: We cannot rely on the default `HTMLElement.tabIndex`\n // property as that one is set to `-1` in Chrome, Edge and Safari v13.1. The\n // tabindex attribute is the source of truth here.\n if (tabIndexValue === -1) {\n return false;\n }\n // If the tabindex is explicitly set, and not `-1` (as per check before), the\n // video element is always tabbable (regardless of whether it has controls or not).\n if (tabIndexValue !== null) {\n return true;\n }\n // Otherwise (when no explicit tabindex is set), a video is only tabbable if it\n // has controls enabled. Firefox is special as videos are always tabbable regardless\n // of whether there are controls or not.\n return this._platform.FIREFOX || element.hasAttribute('controls');\n }\n return element.tabIndex >= 0;\n }\n /**\n * Gets whether an element can be focused by the user.\n *\n * @param element Element to be checked.\n * @param config The config object with options to customize this method's behavior\n * @returns Whether the element is focusable.\n */\n isFocusable(element, config) {\n // Perform checks in order of left to most expensive.\n // Again, naive approach that does not capture many edge cases and browser quirks.\n return isPotentiallyFocusable(element) && !this.isDisabled(element) &&\n (config?.ignoreVisibility || this.isVisible(element));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: InteractivityChecker, deps: [{ token: Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: InteractivityChecker, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: InteractivityChecker, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: Platform }] });\n/**\n * Returns the frame element from a window object. Since browsers like MS Edge throw errors if\n * the frameElement property is being accessed from a different host address, this property\n * should be accessed carefully.\n */\nfunction getFrameElement(window) {\n try {\n return window.frameElement;\n }\n catch {\n return null;\n }\n}\n/** Checks whether the specified element has any geometry / rectangles. */\nfunction hasGeometry(element) {\n // Use logic from jQuery to check for an invisible element.\n // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12\n return !!(element.offsetWidth || element.offsetHeight ||\n (typeof element.getClientRects === 'function' && element.getClientRects().length));\n}\n/** Gets whether an element's */\nfunction isNativeFormElement(element) {\n let nodeName = element.nodeName.toLowerCase();\n return nodeName === 'input' ||\n nodeName === 'select' ||\n nodeName === 'button' ||\n nodeName === 'textarea';\n}\n/** Gets whether an element is an ``. */\nfunction isHiddenInput(element) {\n return isInputElement(element) && element.type == 'hidden';\n}\n/** Gets whether an element is an anchor that has an href attribute. */\nfunction isAnchorWithHref(element) {\n return isAnchorElement(element) && element.hasAttribute('href');\n}\n/** Gets whether an element is an input element. */\nfunction isInputElement(element) {\n return element.nodeName.toLowerCase() == 'input';\n}\n/** Gets whether an element is an anchor element. */\nfunction isAnchorElement(element) {\n return element.nodeName.toLowerCase() == 'a';\n}\n/** Gets whether an element has a valid tabindex. */\nfunction hasValidTabIndex(element) {\n if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {\n return false;\n }\n let tabIndex = element.getAttribute('tabindex');\n // IE11 parses tabindex=\"\" as the value \"-32768\"\n if (tabIndex == '-32768') {\n return false;\n }\n return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));\n}\n/**\n * Returns the parsed tabindex from the element attributes instead of returning the\n * evaluated tabindex from the browsers defaults.\n */\nfunction getTabIndexValue(element) {\n if (!hasValidTabIndex(element)) {\n return null;\n }\n // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n const tabIndex = parseInt(element.getAttribute('tabindex') || '', 10);\n return isNaN(tabIndex) ? -1 : tabIndex;\n}\n/** Checks whether the specified element is potentially tabbable on iOS */\nfunction isPotentiallyTabbableIOS(element) {\n let nodeName = element.nodeName.toLowerCase();\n let inputType = nodeName === 'input' && element.type;\n return inputType === 'text'\n || inputType === 'password'\n || nodeName === 'select'\n || nodeName === 'textarea';\n}\n/**\n * Gets whether an element is potentially focusable without taking current visible/disabled state\n * into account.\n */\nfunction isPotentiallyFocusable(element) {\n // Inputs are potentially focusable *unless* they're type=\"hidden\".\n if (isHiddenInput(element)) {\n return false;\n }\n return isNativeFormElement(element) ||\n isAnchorWithHref(element) ||\n element.hasAttribute('contenteditable') ||\n hasValidTabIndex(element);\n}\n/** Gets the parent window of a DOM node with regards of being inside of an iframe. */\nfunction getWindow(node) {\n // ownerDocument is null if `node` itself *is* a document.\n return node.ownerDocument && node.ownerDocument.defaultView || window;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Coerces a data-bound value (typically a string) to a boolean. */\nfunction coerceBooleanProperty(value) {\n return value != null && `${value}` !== 'false';\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* eslint-disable */\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class currently uses a relatively simple approach to focus trapping.\n * It assumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like `tabIndex > 0`, flex `order`, and shadow roots can cause the two to misalign.\n *\n * @deprecated Use `ConfigurableFocusTrap` instead.\n * @breaking-change for 11.0.0 Remove this class.\n */\nclass FocusTrap {\n /** Whether the focus trap is active. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(value, this._startAnchor);\n this._toggleAnchorTabIndex(value, this._endAnchor);\n }\n }\n constructor(_element, _checker, _ngZone, _document, deferAnchors = false) {\n this._element = _element;\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n this._hasAttached = false;\n // Event listeners for the anchors. Need to be regular functions so that we can unbind them later.\n this.startAnchorListener = () => this.focusLastTabbableElement();\n this.endAnchorListener = () => this.focusFirstTabbableElement();\n this._enabled = true;\n if (!deferAnchors) {\n this.attachAnchors();\n }\n }\n /** Destroys the focus trap by cleaning up the anchors. */\n destroy() {\n const startAnchor = this._startAnchor;\n const endAnchor = this._endAnchor;\n if (startAnchor) {\n startAnchor.removeEventListener('focus', this.startAnchorListener);\n if (startAnchor.parentNode) {\n startAnchor.parentNode.removeChild(startAnchor);\n }\n }\n if (endAnchor) {\n endAnchor.removeEventListener('focus', this.endAnchorListener);\n if (endAnchor.parentNode) {\n endAnchor.parentNode.removeChild(endAnchor);\n }\n }\n this._startAnchor = this._endAnchor = null;\n this._hasAttached = false;\n }\n /**\n * Inserts the anchors into the DOM. This is usually done automatically\n * in the constructor, but can be deferred for cases like directives with `*ngIf`.\n * @returns Whether the focus trap managed to attach successfuly. This may not be the case\n * if the target element isn't currently in the DOM.\n */\n attachAnchors() {\n // If we're not on the browser, there can be no focus to trap.\n if (this._hasAttached) {\n return true;\n }\n this._ngZone.runOutsideAngular(() => {\n if (!this._startAnchor) {\n this._startAnchor = this._createAnchor();\n this._startAnchor.addEventListener('focus', this.startAnchorListener);\n }\n if (!this._endAnchor) {\n this._endAnchor = this._createAnchor();\n this._endAnchor.addEventListener('focus', this.endAnchorListener);\n }\n });\n if (this._element.parentNode) {\n this._element.parentNode.insertBefore(this._startAnchor, this._element);\n this._element.parentNode.insertBefore(this._endAnchor, this._element.nextSibling);\n this._hasAttached = true;\n }\n return this._hasAttached;\n }\n /**\n * Waits for the zone to stabilize, then either focuses the first element that the\n * user specified, or the first tabbable element.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusInitialElementWhenReady() {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusInitialElement()));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the first tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusFirstTabbableElementWhenReady() {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusFirstTabbableElement()));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the last tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusLastTabbableElementWhenReady() {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusLastTabbableElement()));\n });\n }\n /**\n * Get the specified boundary element of the trapped region.\n * @param bound The boundary to get (start or end of trapped region).\n * @returns The boundary element.\n */\n _getRegionBoundary(bound) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n let markers = this._element.querySelectorAll(`[cdk-focus-region-${bound}], ` +\n `[cdkFocusRegion${bound}], ` +\n `[cdk-focus-${bound}]`);\n for (let i = 0; i < markers.length; i++) {\n // @breaking-change 8.0.0\n if (markers[i].hasAttribute(`cdk-focus-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-${bound}', ` +\n `use 'cdkFocusRegion${bound}' instead. The deprecated ` +\n `attribute will be removed in 8.0.0.`, markers[i]);\n }\n else if (markers[i].hasAttribute(`cdk-focus-region-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-region-${bound}', ` +\n `use 'cdkFocusRegion${bound}' instead. The deprecated attribute ` +\n `will be removed in 8.0.0.`, markers[i]);\n }\n }\n if (bound == 'start') {\n return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);\n }\n return markers.length ?\n markers[markers.length - 1] : this._getLastTabbableElement(this._element);\n }\n /**\n * Focuses the element that should be focused when the focus trap is initialized.\n * @returns Whether focus was moved successfully.\n */\n focusInitialElement() {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const redirectToElement = this._element.querySelector(`[cdk-focus-initial], ` +\n `[cdkFocusInitial]`);\n if (redirectToElement) {\n // @breaking-change 8.0.0\n if (redirectToElement.hasAttribute(`cdk-focus-initial`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-initial', ` +\n `use 'cdkFocusInitial' instead. The deprecated attribute ` +\n `will be removed in 8.0.0`, redirectToElement);\n }\n // Warn the consumer if the element they've pointed to\n // isn't focusable, when not in production mode.\n if (!this._checker.isFocusable(redirectToElement)) {\n const focusableChild = this._getFirstTabbableElement(redirectToElement);\n focusableChild?.focus();\n return !!focusableChild;\n }\n redirectToElement.focus();\n return true;\n }\n return this.focusFirstTabbableElement();\n }\n /**\n * Focuses the first tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusFirstTabbableElement() {\n const redirectToElement = this._getRegionBoundary('start');\n if (redirectToElement) {\n redirectToElement.focus();\n }\n return !!redirectToElement;\n }\n /**\n * Focuses the last tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusLastTabbableElement() {\n const redirectToElement = this._getRegionBoundary('end');\n if (redirectToElement) {\n redirectToElement.focus();\n }\n return !!redirectToElement;\n }\n /**\n * Checks whether the focus trap has successfully been attached.\n */\n hasAttached() {\n return this._hasAttached;\n }\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n _getFirstTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in DOM order. Note that IE doesn't have `children` for SVG so we fall\n // back to `childNodes` which includes text nodes, comments etc.\n let children = root.children || root.childNodes;\n for (let i = 0; i < children.length; i++) {\n let tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE ?\n this._getFirstTabbableElement(children[i]) :\n null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Get the last tabbable element from a DOM subtree (inclusive). */\n _getLastTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in reverse DOM order.\n let children = root.children || root.childNodes;\n for (let i = children.length - 1; i >= 0; i--) {\n let tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE ?\n this._getLastTabbableElement(children[i]) :\n null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Creates an anchor element. */\n _createAnchor() {\n const anchor = this._document.createElement('div');\n this._toggleAnchorTabIndex(this._enabled, anchor);\n anchor.classList.add('cdk-visually-hidden');\n anchor.classList.add('cdk-focus-trap-anchor');\n anchor.setAttribute('aria-hidden', 'true');\n return anchor;\n }\n /**\n * Toggles the `tabindex` of an anchor, based on the enabled state of the focus trap.\n * @param isEnabled Whether the focus trap is enabled.\n * @param anchor Anchor on which to toggle the tabindex.\n */\n _toggleAnchorTabIndex(isEnabled, anchor) {\n // Remove the tabindex completely, rather than setting it to -1, because if the\n // element has a tabindex, the user might still hit it when navigating with the arrow keys.\n isEnabled ? anchor.setAttribute('tabindex', '0') : anchor.removeAttribute('tabindex');\n }\n /**\n * Toggles the`tabindex` of both anchors to either trap Tab focus or allow it to escape.\n * @param enabled: Whether the anchors should trap Tab.\n */\n toggleAnchors(enabled) {\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(enabled, this._startAnchor);\n this._toggleAnchorTabIndex(enabled, this._endAnchor);\n }\n }\n /** Executes a function when the zone is stable. */\n _executeOnStable(fn) {\n if (this._ngZone.isStable) {\n fn();\n }\n else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n}\n/**\n * Factory that allows easy instantiation of focus traps.\n * @deprecated Use `ConfigurableFocusTrapFactory` instead.\n * @breaking-change for 11.0.0 Remove this class.\n */\nclass FocusTrapFactory {\n constructor(_checker, _ngZone, _document) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n }\n /**\n * Creates a focus-trapped region around the given element.\n * @param element The element around which focus will be trapped.\n * @param deferCaptureElements Defers the creation of focus-capturing elements to be done\n * manually by the user.\n * @returns The created focus trap instance.\n */\n create(element, deferCaptureElements = false) {\n return new FocusTrap(element, this._checker, this._ngZone, this._document, deferCaptureElements);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: FocusTrapFactory, deps: [{ token: InteractivityChecker }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: FocusTrapFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: FocusTrapFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: InteractivityChecker }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }] });\n/** Directive for trapping focus within a region. */\nclass FocusTrapDirective {\n /** Whether the focus trap is active. */\n get enabled() {\n return this.focusTrap.enabled;\n }\n set enabled(value) {\n this.focusTrap.enabled = coerceBooleanProperty(value);\n }\n /**\n * Whether the directive should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n get autoCapture() {\n return this._autoCapture;\n }\n set autoCapture(value) {\n this._autoCapture = coerceBooleanProperty(value);\n }\n constructor(_elementRef, _focusTrapFactory, _document) {\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n /** Previously focused element to restore focus to upon destroy when using autoCapture. */\n this._previouslyFocusedElement = null;\n this._autoCapture = false;\n this._document = _document;\n this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n }\n ngOnDestroy() {\n this.focusTrap.destroy();\n // If we stored a previously focused element when using autoCapture, return focus to that\n // element now that the trapped region is being destroyed.\n if (this._previouslyFocusedElement) {\n this._previouslyFocusedElement.focus();\n this._previouslyFocusedElement = null;\n }\n }\n ngAfterContentInit() {\n this.focusTrap.attachAnchors();\n if (this.autoCapture) {\n this._captureFocus();\n }\n }\n ngDoCheck() {\n if (!this.focusTrap.hasAttached()) {\n this.focusTrap.attachAnchors();\n }\n }\n ngOnChanges(changes) {\n const autoCaptureChange = changes['autoCapture'];\n if (autoCaptureChange && !autoCaptureChange.firstChange && this.autoCapture &&\n this.focusTrap.hasAttached()) {\n this._captureFocus();\n }\n }\n _captureFocus() {\n this._previouslyFocusedElement = this._document.activeElement;\n this.focusTrap.focusInitialElementWhenReady();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: FocusTrapDirective, deps: [{ token: i0.ElementRef }, { token: FocusTrapFactory }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: FocusTrapDirective, selector: \"[focusTrap]\", inputs: { enabled: [\"cdkTrapFocus\", \"enabled\"], autoCapture: [\"cdkTrapFocusAutoCapture\", \"autoCapture\"] }, exportAs: [\"focusTrap\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: FocusTrapDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[focusTrap]',\n exportAs: 'focusTrap'\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FocusTrapFactory }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }], propDecorators: { enabled: [{\n type: Input,\n args: ['cdkTrapFocus']\n }], autoCapture: [{\n type: Input,\n args: ['cdkTrapFocusAutoCapture']\n }] } });\n\nclass FocusTrapModule {\n static forRoot() {\n return {\n ngModule: FocusTrapModule,\n providers: [\n FocusTrapManager,\n Platform,\n InteractivityChecker\n ]\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: FocusTrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.4\", ngImport: i0, type: FocusTrapModule, declarations: [FocusTrapDirective], imports: [CommonModule], exports: [FocusTrapDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: FocusTrapModule, imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: FocusTrapModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [FocusTrapDirective],\n exports: [FocusTrapDirective]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FocusTrap, FocusTrapDirective, FocusTrapModule };\n","import * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Component, HostListener, EventEmitter, Directive, Optional, Inject, Input, Output, NgModule } from '@angular/core';\nimport { document, Utils, window as window$1 } from 'ngx-bootstrap/utils';\nimport * as i2 from 'ngx-bootstrap/focus-trap';\nimport { FocusTrapModule } from 'ngx-bootstrap/focus-trap';\nimport * as i1 from 'ngx-bootstrap/component-loader';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nclass BsModalRef {\n constructor() {\n /**\n * Hides the modal\n */\n this.hide = () => void 0;\n /**\n * Sets new class to modal window\n */\n this.setClass = () => void 0;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsModalRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsModalRef, providedIn: 'platform' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsModalRef, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'platform' }]\n }] });\n\nclass ModalBackdropOptions {\n constructor(options) {\n this.animate = true;\n Object.assign(this, options);\n }\n}\n\nclass ModalOptions {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalOptions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalOptions, providedIn: 'platform' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalOptions, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'platform' }]\n }] });\nconst modalConfigDefaults = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: false,\n ignoreBackdropClick: false,\n class: '',\n animated: true,\n initialState: {},\n closeInterceptor: void 0\n};\nconst MODAL_CONFIG_DEFAULT_OVERRIDE = new InjectionToken('override-default-config');\nconst CLASS_NAME = {\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n IN: 'in',\n SHOW: 'show'\n};\nconst SELECTOR = {\n DIALOG: '.modal-dialog',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed'\n};\nconst TRANSITION_DURATIONS = {\n MODAL: 300,\n BACKDROP: 150\n};\nconst DISMISS_REASONS = {\n BACKRDOP: 'backdrop-click',\n ESC: 'esc',\n BACK: 'browser-back-navigation-clicked'\n};\n\nclass ModalContainerComponent {\n constructor(options, _element, _renderer) {\n this._element = _element;\n this._renderer = _renderer;\n this.isShown = false;\n this.isAnimated = false;\n this._focusEl = null;\n this.isModalHiding = false;\n this.clickStartedInContent = false;\n this.config = Object.assign({}, options);\n }\n ngOnInit() {\n this._focusEl = document.activeElement;\n if (this.isAnimated) {\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.FADE);\n }\n this._renderer.setStyle(this._element.nativeElement, 'display', 'block');\n setTimeout(() => {\n this.isShown = true;\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.SHOW);\n }, this.isAnimated ? TRANSITION_DURATIONS.BACKDROP : 0);\n if (document && document.body) {\n if (this.bsModalService && this.bsModalService.getModalsCount() === 1) {\n this.bsModalService.checkScrollbar();\n this.bsModalService.setScrollbar();\n }\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', 'hidden');\n }\n if (this._element.nativeElement) {\n this._element.nativeElement.focus();\n }\n }\n onClickStarted(event) {\n this.clickStartedInContent = event.target !== this._element.nativeElement;\n }\n onClickStop(event) {\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n if (this.config.ignoreBackdropClick ||\n this.config.backdrop === 'static' ||\n !clickedInBackdrop) {\n this.clickStartedInContent = false;\n return;\n }\n this.bsModalService?.setDismissReason(DISMISS_REASONS.BACKRDOP);\n this.hide();\n }\n onPopState() {\n this.bsModalService?.setDismissReason(DISMISS_REASONS.BACK);\n this.hide();\n }\n onEsc(event) {\n if (!this.isShown) {\n return;\n }\n if (event.keyCode === 27 || event.key === 'Escape') {\n event.preventDefault();\n }\n if (this.config.keyboard &&\n this.level === this.bsModalService?.getModalsCount()) {\n this.bsModalService?.setDismissReason(DISMISS_REASONS.ESC);\n this.hide();\n }\n }\n ngOnDestroy() {\n if (this.isShown) {\n this._hide();\n }\n }\n hide() {\n if (this.isModalHiding) {\n return;\n }\n if (this.config.closeInterceptor) {\n this.config.closeInterceptor().then(() => this._hide(), () => undefined);\n return;\n }\n this._hide();\n }\n _hide() {\n this.isModalHiding = true;\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.SHOW);\n setTimeout(() => {\n this.isShown = false;\n if (document &&\n document.body &&\n this.bsModalService?.getModalsCount() === 1) {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', '');\n }\n this.bsModalService?.hide(this.config.id);\n this.isModalHiding = false;\n if (this._focusEl) {\n this._focusEl.focus();\n }\n }, this.isAnimated ? TRANSITION_DURATIONS.MODAL : 0);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalContainerComponent, deps: [{ token: ModalOptions }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: ModalContainerComponent, selector: \"modal-container\", host: { attributes: { \"role\": \"dialog\", \"tabindex\": \"-1\" }, listeners: { \"mousedown\": \"onClickStarted($event)\", \"click\": \"onClickStop($event)\", \"window:popstate\": \"onPopState()\", \"window:keydown.esc\": \"onEsc($event)\" }, properties: { \"attr.aria-modal\": \"true\", \"attr.aria-labelledby\": \"config.ariaLabelledBy\", \"attr.aria-describedby\": \"config.ariaDescribedby\" }, classAttribute: \"modal\" }, ngImport: i0, template: `\n
    \n
    \n \n
    \n
    \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i2.FocusTrapDirective, selector: \"[focusTrap]\", inputs: [\"cdkTrapFocus\", \"cdkTrapFocusAutoCapture\"], exportAs: [\"focusTrap\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalContainerComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'modal-container',\n template: `\n
    \n
    \n \n
    \n
    \n `,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n class: 'modal',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'config.ariaLabelledBy',\n '[attr.aria-describedby]': 'config.ariaDescribedby'\n }\n }]\n }], ctorParameters: () => [{ type: ModalOptions }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { onClickStarted: [{\n type: HostListener,\n args: ['mousedown', ['$event']]\n }], onClickStop: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], onPopState: [{\n type: HostListener,\n args: ['window:popstate']\n }], onEsc: [{\n type: HostListener,\n args: ['window:keydown.esc', ['$event']]\n }] } });\n\n/** This component will be added as background layout for modals if enabled */\nclass ModalBackdropComponent {\n get isAnimated() {\n return this._isAnimated;\n }\n set isAnimated(value) {\n this._isAnimated = value;\n }\n get isShown() {\n return this._isShown;\n }\n set isShown(value) {\n this._isShown = value;\n if (value) {\n this.renderer.addClass(this.element.nativeElement, `${CLASS_NAME.SHOW}`);\n }\n else {\n this.renderer.removeClass(this.element.nativeElement, `${CLASS_NAME.SHOW}`);\n }\n }\n constructor(element, renderer) {\n this._isAnimated = false;\n this._isShown = false;\n this.element = element;\n this.renderer = renderer;\n }\n ngOnInit() {\n if (this.isAnimated) {\n this.renderer.addClass(this.element.nativeElement, `${CLASS_NAME.FADE}`);\n Utils.reflow(this.element.nativeElement);\n }\n this.isShown = true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalBackdropComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: ModalBackdropComponent, selector: \"bs-modal-backdrop\", host: { classAttribute: \"modal-backdrop\" }, ngImport: i0, template: ' ', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalBackdropComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'bs-modal-backdrop',\n template: ' ',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: { class: CLASS_NAME.BACKDROP }\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });\n\n// todo: should we support enforce focus in?\n// todo: in original bs there are was a way to prevent modal from showing\n// todo: original modal had resize events\nconst TRANSITION_DURATION = 300;\nconst BACKDROP_TRANSITION_DURATION = 150;\n/** Mark any code with directive to show it's content in modal */\nclass ModalDirective {\n /** allows to set modal configuration via element property */\n set config(conf) {\n this._config = this.getConfig(conf);\n }\n get config() {\n return this._config;\n }\n get isShown() {\n return this._isShown;\n }\n constructor(_element, _viewContainerRef, _renderer, clf, modalDefaultOption) {\n this._element = _element;\n this._renderer = _renderer;\n /** This event fires immediately when the `show` instance method is called. */\n this.onShow = new EventEmitter();\n /** This event is fired when the modal has been made visible to the user\n * (will wait for CSS transitions to complete)\n */\n this.onShown = new EventEmitter();\n /** This event is fired immediately when\n * the hide instance method has been called.\n */\n this.onHide = new EventEmitter();\n /** This event is fired when the modal has finished being\n * hidden from the user (will wait for CSS transitions to complete).\n */\n this.onHidden = new EventEmitter();\n this._isShown = false;\n this.isBodyOverflowing = false;\n this.originalBodyPadding = 0;\n this.scrollbarWidth = 0;\n this.timerHideModal = 0;\n this.timerRmBackDrop = 0;\n this.isNested = false;\n this.clickStartedInContent = false;\n this._focusEl = null;\n this._backdrop = clf.createLoader(_element, _viewContainerRef, _renderer);\n this._config = modalDefaultOption || modalConfigDefaults;\n }\n onClickStarted(event) {\n this.clickStartedInContent = event.target !== this._element.nativeElement;\n }\n onClickStop(event) {\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n if (this.config.ignoreBackdropClick ||\n this.config.backdrop === 'static' ||\n !clickedInBackdrop) {\n this.clickStartedInContent = false;\n return;\n }\n this.dismissReason = DISMISS_REASONS.BACKRDOP;\n this.hide(event);\n }\n // todo: consider preventing default and stopping propagation\n onEsc(event) {\n if (!this._isShown) {\n return;\n }\n if (event.keyCode === 27 || event.key === 'Escape') {\n event.preventDefault();\n }\n if (this.config.keyboard) {\n this.dismissReason = DISMISS_REASONS.ESC;\n this.hide();\n }\n }\n ngOnDestroy() {\n if (this._isShown) {\n this._isShown = false;\n this.hideModal();\n this._backdrop.dispose();\n }\n }\n ngOnInit() {\n this._config = this._config || this.getConfig();\n setTimeout(() => {\n if (this._config.show) {\n this.show();\n }\n }, 0);\n }\n /* Public methods */\n /** Allows to manually toggle modal visibility */\n toggle() {\n return this._isShown ? this.hide() : this.show();\n }\n /** Allows to manually open modal */\n show() {\n this.dismissReason = void 0;\n this.onShow.emit(this);\n if (this._isShown) {\n return;\n }\n clearTimeout(this.timerHideModal);\n clearTimeout(this.timerRmBackDrop);\n this._isShown = true;\n this.checkScrollbar();\n this.setScrollbar();\n if (document && document.body) {\n if (document.body.classList.contains(CLASS_NAME.OPEN)) {\n this.isNested = true;\n }\n else {\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', 'hidden');\n }\n }\n this.showBackdrop(() => {\n this.showElement();\n });\n }\n /** Check if we can close the modal */\n hide(event) {\n if (!this._isShown) {\n return;\n }\n if (event) {\n event.preventDefault();\n }\n if (this.config.closeInterceptor) {\n this.config.closeInterceptor().then(() => this._hide(), () => undefined);\n return;\n }\n this._hide();\n }\n /** Private methods @internal */\n /**\n * Manually close modal\n * @internal\n */\n _hide() {\n this.onHide.emit(this);\n window$1.clearTimeout(this.timerHideModal);\n window$1.clearTimeout(this.timerRmBackDrop);\n this._isShown = false;\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.SHOW);\n if (this._config.animated) {\n this.timerHideModal = window$1.setTimeout(() => this.hideModal(), TRANSITION_DURATION);\n }\n else {\n this.hideModal();\n }\n if (this._focusEl) {\n this._focusEl.focus();\n }\n }\n getConfig(config) {\n return Object.assign({}, this._config, config);\n }\n /**\n * Show dialog\n * @internal\n */\n showElement() {\n // todo: replace this with component loader usage\n if (!this._element.nativeElement.parentNode ||\n this._element.nativeElement.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // don't move modals dom position\n if (document && document.body) {\n document.body.appendChild(this._element.nativeElement);\n }\n }\n this._renderer.setAttribute(this._element.nativeElement, 'aria-hidden', 'false');\n this._renderer.setAttribute(this._element.nativeElement, 'aria-modal', 'true');\n this._renderer.setStyle(this._element.nativeElement, 'display', 'block');\n this._renderer.setProperty(this._element.nativeElement, 'scrollTop', 0);\n if (this._config.animated) {\n Utils.reflow(this._element.nativeElement);\n }\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.SHOW);\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.nativeElement.focus();\n }\n this.onShown.emit(this);\n };\n if (this._config.animated) {\n setTimeout(transitionComplete, TRANSITION_DURATION);\n }\n else {\n transitionComplete();\n }\n }\n /** @internal */\n hideModal() {\n this._renderer.setAttribute(this._element.nativeElement, 'aria-hidden', 'true');\n this._renderer.setStyle(this._element.nativeElement, 'display', 'none');\n this.showBackdrop(() => {\n if (!this.isNested) {\n if (document && document.body) {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', '');\n }\n this.resetScrollbar();\n }\n this.resetAdjustments();\n this.focusOtherModal();\n this.onHidden.emit(this);\n });\n }\n // todo: original show was calling a callback when done, but we can use\n // promise\n /** @internal */\n showBackdrop(callback) {\n if (this._isShown &&\n this.config.backdrop &&\n (!this.backdrop || !this.backdrop.instance.isShown)) {\n this.removeBackdrop();\n this._backdrop\n .attach(ModalBackdropComponent)\n .to('body')\n .show({ isAnimated: this._config.animated });\n this.backdrop = this._backdrop._componentRef;\n if (!callback) {\n return;\n }\n if (!this._config.animated) {\n callback();\n return;\n }\n setTimeout(callback, BACKDROP_TRANSITION_DURATION);\n }\n else if (!this._isShown && this.backdrop) {\n this.backdrop.instance.isShown = false;\n const callbackRemove = () => {\n this.removeBackdrop();\n if (callback) {\n callback();\n }\n };\n if (this.backdrop.instance.isAnimated) {\n this.timerRmBackDrop = window$1.setTimeout(callbackRemove, BACKDROP_TRANSITION_DURATION);\n }\n else {\n callbackRemove();\n }\n }\n else if (callback) {\n callback();\n }\n }\n /** @internal */\n removeBackdrop() {\n this._backdrop.hide();\n }\n /** Events tricks */\n // no need for it\n // protected setEscapeEvent():void {\n // if (this._isShown && this._config.keyboard) {\n // $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n // if (event.which === 27) {\n // this.hide()\n // }\n // })\n //\n // } else if (!this._isShown) {\n // $(this._element).off(Event.KEYDOWN_DISMISS)\n // }\n // }\n // protected setResizeEvent():void {\n // console.log(this.renderer.listenGlobal('', Event.RESIZE));\n // if (this._isShown) {\n // $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this))\n // } else {\n // $(window).off(Event.RESIZE)\n // }\n // }\n focusOtherModal() {\n if (this._element.nativeElement.parentElement == null) {\n return;\n }\n const otherOpenedModals = this._element.nativeElement.parentElement.querySelectorAll('.in[bsModal]');\n if (!otherOpenedModals.length) {\n return;\n }\n otherOpenedModals[otherOpenedModals.length - 1].focus();\n }\n /** @internal */\n resetAdjustments() {\n this._renderer.setStyle(this._element.nativeElement, 'paddingLeft', '');\n this._renderer.setStyle(this._element.nativeElement, 'paddingRight', '');\n }\n /** Scroll bar tricks */\n /** @internal */\n checkScrollbar() {\n this.isBodyOverflowing = document.body.clientWidth < window$1.innerWidth;\n this.scrollbarWidth = this.getScrollbarWidth();\n }\n setScrollbar() {\n if (!document) {\n return;\n }\n this.originalBodyPadding = parseInt(window$1\n .getComputedStyle(document.body)\n .getPropertyValue('padding-right') || 0, 10);\n if (this.isBodyOverflowing) {\n document.body.style.paddingRight = `${this.originalBodyPadding +\n this.scrollbarWidth}px`;\n }\n }\n resetScrollbar() {\n document.body.style.paddingRight = `${this.originalBodyPadding}px`;\n }\n // thx d.walsh\n getScrollbarWidth() {\n const scrollDiv = this._renderer.createElement('div');\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n this._renderer.appendChild(document.body, scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this._renderer.removeChild(document.body, scrollDiv);\n return scrollbarWidth;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i1.ComponentLoaderFactory }, { token: MODAL_CONFIG_DEFAULT_OVERRIDE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: ModalDirective, selector: \"[bsModal]\", inputs: { config: \"config\", closeInterceptor: \"closeInterceptor\" }, outputs: { onShow: \"onShow\", onShown: \"onShown\", onHide: \"onHide\", onHidden: \"onHidden\" }, host: { listeners: { \"mousedown\": \"onClickStarted($event)\", \"mouseup\": \"onClickStop($event)\", \"keydown.esc\": \"onEsc($event)\" } }, exportAs: [\"bs-modal\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[bsModal]',\n exportAs: 'bs-modal'\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i1.ComponentLoaderFactory }, { type: ModalOptions, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MODAL_CONFIG_DEFAULT_OVERRIDE]\n }] }], propDecorators: { config: [{\n type: Input\n }], closeInterceptor: [{\n type: Input\n }], onShow: [{\n type: Output\n }], onShown: [{\n type: Output\n }], onHide: [{\n type: Output\n }], onHidden: [{\n type: Output\n }], onClickStarted: [{\n type: HostListener,\n args: ['mousedown', ['$event']]\n }], onClickStop: [{\n type: HostListener,\n args: ['mouseup', ['$event']]\n }], onEsc: [{\n type: HostListener,\n args: ['keydown.esc', ['$event']]\n }] } });\n\nlet currentId = 1;\nclass BsModalService {\n constructor(rendererFactory, clf, modalDefaultOption) {\n this.clf = clf;\n this.modalDefaultOption = modalDefaultOption;\n this.onShow = new EventEmitter();\n this.onShown = new EventEmitter();\n this.onHide = new EventEmitter();\n this.onHidden = new EventEmitter();\n this.isBodyOverflowing = false;\n this.originalBodyPadding = 0;\n this.scrollbarWidth = 0;\n this.modalsCount = 0;\n this.loaders = [];\n this._focusEl = null;\n this._backdropLoader = this.clf.createLoader();\n this._renderer = rendererFactory.createRenderer(null, null);\n this.config = modalDefaultOption ?\n (Object.assign({}, modalConfigDefaults, modalDefaultOption)) :\n modalConfigDefaults;\n }\n /** Shows a modal */\n show(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n content, config) {\n this._focusEl = document.activeElement;\n this.modalsCount++;\n this._createLoaders();\n // must be different per every show() call\n const id = config?.id || currentId++;\n this.config = this.modalDefaultOption ?\n Object.assign({}, modalConfigDefaults, this.modalDefaultOption, config) :\n Object.assign({}, modalConfigDefaults, config);\n this.config.id = id;\n this._showBackdrop();\n this.lastDismissReason = void 0;\n return this._showModal(content);\n }\n hide(id) {\n if (this.modalsCount === 1 || id == null) {\n this._hideBackdrop();\n this.resetScrollbar();\n }\n this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\n setTimeout(() => {\n this._hideModal(id);\n this.removeLoaders(id);\n }, this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0);\n if (this._focusEl) {\n this._focusEl.focus();\n }\n }\n _showBackdrop() {\n const isBackdropEnabled = this.config.backdrop === true || this.config.backdrop === 'static';\n const isBackdropInDOM = !this.backdropRef || !this.backdropRef.instance.isShown;\n if (this.modalsCount === 1) {\n this.removeBackdrop();\n if (isBackdropEnabled && isBackdropInDOM) {\n this._backdropLoader\n .attach(ModalBackdropComponent)\n .to('body')\n .show({ isAnimated: this.config.animated });\n this.backdropRef = this._backdropLoader._componentRef;\n }\n }\n }\n _hideBackdrop() {\n if (!this.backdropRef) {\n return;\n }\n this.backdropRef.instance.isShown = false;\n const duration = this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0;\n setTimeout(() => this.removeBackdrop(), duration);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _showModal(content) {\n const modalLoader = this.loaders[this.loaders.length - 1];\n if (this.config && this.config.providers) {\n for (const provider of this.config.providers) {\n modalLoader.provide(provider);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bsModalRef = new BsModalRef();\n const modalContainerRef = modalLoader\n .provide({ provide: ModalOptions, useValue: this.config })\n .provide({ provide: BsModalRef, useValue: bsModalRef })\n .attach(ModalContainerComponent)\n .to('body');\n bsModalRef.hide = () => this.hide(bsModalRef.id);\n bsModalRef.setClass = (newClass) => {\n if (modalContainerRef.instance) {\n modalContainerRef.instance.config.class = newClass;\n }\n };\n bsModalRef.onHidden = new EventEmitter();\n bsModalRef.onHide = new EventEmitter();\n this.copyEvent(modalLoader.onBeforeHide, bsModalRef.onHide);\n this.copyEvent(modalLoader.onHidden, bsModalRef.onHidden);\n // call 'show' method after assign setClass in bsModalRef.\n // it makes modal component's bsModalRef available to call setClass method\n modalContainerRef.show({\n content,\n isAnimated: this.config.animated,\n initialState: this.config.initialState,\n bsModalService: this,\n id: this.config.id\n });\n if (modalContainerRef.instance) {\n modalContainerRef.instance.level = this.getModalsCount();\n bsModalRef.content = modalLoader.getInnerComponent();\n bsModalRef.id = modalContainerRef.instance.config?.id;\n }\n return bsModalRef;\n }\n _hideModal(id) {\n if (id != null) {\n const indexToRemove = this.loaders.findIndex(loader => loader.instance?.config.id === id);\n const modalLoader = this.loaders[indexToRemove];\n if (modalLoader) {\n modalLoader.hide(id);\n }\n }\n else {\n this.loaders.forEach((loader) => {\n if (loader.instance) {\n loader.hide(loader.instance.config.id);\n }\n });\n }\n }\n getModalsCount() {\n return this.modalsCount;\n }\n setDismissReason(reason) {\n this.lastDismissReason = reason;\n }\n removeBackdrop() {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', '');\n this._backdropLoader.hide();\n this.backdropRef = void 0;\n }\n /** Checks if the body is overflowing and sets scrollbar width */\n /** @internal */\n checkScrollbar() {\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\n this.scrollbarWidth = this.getScrollbarWidth();\n }\n setScrollbar() {\n if (!document) {\n return;\n }\n this.originalBodyPadding = parseInt(window\n .getComputedStyle(document.body)\n .getPropertyValue('padding-right') || '0', 10);\n if (this.isBodyOverflowing) {\n document.body.style.paddingRight = `${this.originalBodyPadding +\n this.scrollbarWidth}px`;\n }\n }\n resetScrollbar() {\n document.body.style.paddingRight = `${this.originalBodyPadding}px`;\n }\n // thx d.walsh\n getScrollbarWidth() {\n const scrollDiv = this._renderer.createElement('div');\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n this._renderer.appendChild(document.body, scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this._renderer.removeChild(document.body, scrollDiv);\n return scrollbarWidth;\n }\n _createLoaders() {\n const loader = this.clf.createLoader();\n this.copyEvent(loader.onBeforeShow, this.onShow);\n this.copyEvent(loader.onShown, this.onShown);\n this.copyEvent(loader.onBeforeHide, this.onHide);\n this.copyEvent(loader.onHidden, this.onHidden);\n this.loaders.push(loader);\n }\n removeLoaders(id) {\n if (id != null) {\n const indexToRemove = this.loaders.findIndex(loader => loader.instance?.config.id === id);\n if (indexToRemove >= 0) {\n this.loaders.splice(indexToRemove, 1);\n this.loaders.forEach((loader, i) => {\n if (loader.instance) {\n loader.instance.level = i + 1;\n }\n });\n }\n }\n else {\n this.loaders.splice(0, this.loaders.length);\n }\n }\n copyEvent(from, to) {\n from.subscribe((data) => {\n to.emit(this.lastDismissReason || data);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsModalService, deps: [{ token: i0.RendererFactory2 }, { token: i1.ComponentLoaderFactory }, { token: MODAL_CONFIG_DEFAULT_OVERRIDE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsModalService, providedIn: 'platform' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsModalService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'platform' }]\n }], ctorParameters: () => [{ type: i0.RendererFactory2 }, { type: i1.ComponentLoaderFactory }, { type: ModalOptions, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MODAL_CONFIG_DEFAULT_OVERRIDE]\n }] }] });\n\nconst focusTrapModule = FocusTrapModule.forRoot();\nclass ModalModule {\n static forRoot() {\n return {\n ngModule: ModalModule,\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n };\n }\n static forChild() {\n return {\n ngModule: ModalModule,\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalModule, declarations: [ModalBackdropComponent,\n ModalDirective,\n ModalContainerComponent], imports: [FocusTrapModule], exports: [ModalBackdropComponent, ModalDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalModule, imports: [FocusTrapModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ModalModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [FocusTrapModule],\n declarations: [\n ModalBackdropComponent,\n ModalDirective,\n ModalContainerComponent\n ],\n exports: [ModalBackdropComponent, ModalDirective]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BsModalRef, BsModalService, MODAL_CONFIG_DEFAULT_OVERRIDE, ModalBackdropComponent, ModalBackdropOptions, ModalContainerComponent, ModalDirective, ModalModule, ModalOptions };\n","function mod(n, x) {\n return (n % x + x) % x;\n}\nfunction absFloor(num) {\n return num < 0 ? Math.ceil(num) || 0 : Math.floor(num);\n}\n\nfunction isString(str) {\n return typeof str === 'string';\n}\nfunction isDate(value) {\n return value instanceof Date || Object.prototype.toString.call(value) === '[object Date]';\n}\nfunction isBoolean(value) {\n return value === true || value === false;\n}\nfunction isDateValid(date) {\n return date && date.getTime && !isNaN(date.getTime());\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isFunction(fn) {\n return (fn instanceof Function ||\n Object.prototype.toString.call(fn) === '[object Function]');\n}\nfunction isNumber(value) {\n return typeof value === 'number' || Object.prototype.toString.call(value) === '[object Number]';\n}\nfunction isArray(input) {\n return (input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]');\n}\nfunction hasOwnProp(a /*object*/, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\nfunction isObject(input /*object*/) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (input != null && Object.prototype.toString.call(input) === '[object Object]');\n}\nfunction isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n }\n let k;\n for (k in obj) {\n // eslint-disable-next-line no-prototype-builtins\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n}\nfunction isUndefined(input) {\n return input === void 0;\n}\nfunction toInt(argumentForCoercion) {\n const coercedNumber = +argumentForCoercion;\n let value = 0;\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n return value;\n}\n\nconst aliases = {};\nconst _mapUnits = {\n date: 'day',\n hour: 'hours',\n minute: 'minutes',\n second: 'seconds',\n millisecond: 'milliseconds'\n};\nfunction addUnitAlias(unit, shorthand) {\n const lowerCase = unit.toLowerCase();\n let _unit = unit;\n if (lowerCase in _mapUnits) {\n _unit = _mapUnits[lowerCase];\n }\n aliases[lowerCase] = aliases[`${lowerCase}s`] = aliases[shorthand] = _unit;\n}\nfunction normalizeUnits(units) {\n return isString(units) ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n}\nfunction normalizeObjectUnits(inputObject) {\n const normalizedInput = {};\n let normalizedProp;\n let prop;\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n return normalizedInput;\n}\n\n// place in new Date([array])\nconst YEAR = 0;\nconst MONTH = 1;\nconst DATE = 2;\nconst HOUR = 3;\nconst MINUTE = 4;\nconst SECOND = 5;\nconst MILLISECOND = 6;\nconst WEEK = 7;\nconst WEEKDAY = 8;\n\nfunction zeroFill(num, targetLength, forceSign) {\n const absNumber = `${Math.abs(num)}`;\n const zerosToFill = targetLength - absNumber.length;\n const sign = num >= 0;\n const _sign = sign ? (forceSign ? '+' : '') : '-';\n // todo: this is crazy slow\n const _zeros = Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1);\n return (_sign + _zeros + absNumber);\n}\n\nconst formatFunctions = {};\nconst formatTokenFunctions = {};\nconst formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n if (token) {\n formatTokenFunctions[token] = callback;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(callback.apply(null, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function (date, opts) {\n return opts.locale.ordinal(callback.apply(null, arguments), token);\n };\n }\n}\nfunction makeFormatFunction(format) {\n const array = format.match(formattingTokens);\n const length = array.length;\n const formatArr = new Array(length);\n for (let i = 0; i < length; i++) {\n formatArr[i] = formatTokenFunctions[array[i]]\n ? formatTokenFunctions[array[i]]\n : removeFormattingTokens(array[i]);\n }\n return function (date, locale, isUTC, offset = 0) {\n let output = '';\n for (let j = 0; j < length; j++) {\n output += isFunction(formatArr[j])\n ? formatArr[j].call(null, date, { format, locale, isUTC, offset })\n : formatArr[j];\n }\n return output;\n };\n}\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction createUTCDate(y, m, d) {\n // eslint-disable-next-line prefer-rest-params\n const date = new Date(Date.UTC.apply(null, arguments));\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n return date;\n}\nfunction createDate(y, m = 0, d = 1, h = 0, M = 0, s = 0, ms = 0) {\n const date = new Date(y, m, d, h, M, s, ms);\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n return date;\n}\n\nfunction getHours(date, isUTC = false) {\n return isUTC ? date.getUTCHours() : date.getHours();\n}\nfunction getMinutes(date, isUTC = false) {\n return isUTC ? date.getUTCMinutes() : date.getMinutes();\n}\nfunction getSeconds(date, isUTC = false) {\n return isUTC ? date.getUTCSeconds() : date.getSeconds();\n}\nfunction getMilliseconds(date, isUTC = false) {\n return isUTC ? date.getUTCMilliseconds() : date.getMilliseconds();\n}\nfunction getTime(date) {\n return date.getTime();\n}\nfunction getDay(date, isUTC = false) {\n return isUTC ? date.getUTCDay() : date.getDay();\n}\nfunction getDate(date, isUTC = false) {\n return isUTC ? date.getUTCDate() : date.getDate();\n}\nfunction getMonth(date, isUTC = false) {\n return isUTC ? date.getUTCMonth() : date.getMonth();\n}\nfunction getFullYear(date, isUTC = false) {\n return isUTC ? date.getUTCFullYear() : date.getFullYear();\n}\nfunction getUnixTime(date) {\n return Math.floor(date.valueOf() / 1000);\n}\nfunction unix(date) {\n return Math.floor(date.valueOf() / 1000);\n}\nfunction getFirstDayOfMonth(date) {\n return createDate(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes(), date.getSeconds());\n}\nfunction daysInMonth$1(date) {\n return _daysInMonth(date.getFullYear(), date.getMonth());\n}\nfunction _daysInMonth(year, month) {\n return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();\n}\nfunction isFirstDayOfWeek(date, firstDayOfWeek) {\n return date.getDay() === Number(firstDayOfWeek);\n}\nfunction isSameMonth(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return isSameYear(date1, date2) && getMonth(date1) === getMonth(date2);\n}\nfunction isSameYear(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return getFullYear(date1) === getFullYear(date2);\n}\nfunction isSameDay$1(date1, date2) {\n if (!date1 || !date2) {\n return false;\n }\n return (isSameYear(date1, date2) &&\n isSameMonth(date1, date2) &&\n getDate(date1) === getDate(date2));\n}\n\nconst match1 = /\\d/; // 0 - 9\nconst match2 = /\\d\\d/; // 00 - 99\nconst match3 = /\\d{3}/; // 000 - 999\nconst match4 = /\\d{4}/; // 0000 - 9999\nconst match6 = /[+-]?\\d{6}/; // -999999 - 999999\nconst match1to2 = /\\d\\d?/; // 0 - 99\nconst match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\nconst match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\nconst match1to3 = /\\d{1,3}/; // 0 - 999\nconst match1to4 = /\\d{1,4}/; // 0 - 9999\nconst match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\nconst matchUnsigned = /\\d+/; // 0 - inf\nconst matchSigned = /[+-]?\\d+/; // -inf - inf\nconst matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\nconst matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\nconst matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n// any word (or two) characters or numbers including two/three word month in arabic.\n// includes scottish gaelic two word and hyphenated months\nconst matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\nconst regexes = {};\nfunction addRegexToken(token, regex, strictRegex) {\n if (isFunction(regex)) {\n regexes[token] = regex;\n return;\n }\n regexes[token] = function (isStrict, locale) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n}\nfunction getParseRegexForToken(token, locale) {\n const _strict = false;\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n return regexes[token](_strict, locale);\n}\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(str) {\n return regexEscape(str\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, (matched, p1, p2, p3, p4) => p1 || p2 || p3 || p4));\n}\nfunction regexEscape(str) {\n return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nconst tokens = {};\nfunction addParseToken(token, callback) {\n const _token = isString(token) ? [token] : token;\n let func = callback;\n if (isNumber(callback)) {\n func = function (input, array, config) {\n array[callback] = toInt(input);\n return config;\n };\n }\n if (isArray(_token) && isFunction(func)) {\n let i;\n for (i = 0; i < _token.length; i++) {\n tokens[_token[i]] = func;\n }\n }\n}\nfunction addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, _token) {\n config._w = config._w || {};\n return callback(input, config._w, config, _token);\n });\n}\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n return config;\n}\n\nconst priorities = {};\nfunction addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n}\n/*\nexport function getPrioritizedUnits(unitsObj) {\n const units = [];\n let unit;\n for (unit in unitsObj) {\n if (unitsObj.hasOwnProperty(unit)) {\n units.push({ unit, priority: priorities[unit] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n\n return units;\n}\n*/\n\nfunction initDayOfMonth() {\n // FORMATTING\n addFormatToken('D', ['DD', 2, false], 'Do', function (date, opts) {\n return getDate(date, opts.isUTC)\n .toString(10);\n });\n // ALIASES\n addUnitAlias('date', 'D');\n // PRIOROITY\n addUnitPriority('date', 9);\n // PARSING\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n return locale._dayOfMonthOrdinalParse || locale._ordinalParse;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array, config) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n return config;\n });\n}\n\nfunction defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n}\nfunction getParsingFlags(config) {\n if (config._pf == null) {\n config._pf = defaultParsingFlags();\n }\n return config._pf;\n}\n\n// FORMATTING\nfunction getYear(date, opts) {\n if (opts.locale.getFullYear) {\n return opts.locale.getFullYear(date, opts.isUTC).toString();\n }\n return getFullYear(date, opts.isUTC).toString();\n}\nfunction initYear() {\n addFormatToken('Y', null, null, function (date, opts) {\n const y = getFullYear(date, opts.isUTC);\n return y <= 9999 ? y.toString(10) : `+${y}`;\n });\n addFormatToken(null, ['YY', 2, false], null, function (date, opts) {\n return (getFullYear(date, opts.isUTC) % 100).toString(10);\n });\n addFormatToken(null, ['YYYY', 4, false], null, getYear);\n addFormatToken(null, ['YYYYY', 5, false], null, getYear);\n addFormatToken(null, ['YYYYYY', 6, true], null, getYear);\n // ALIASES\n addUnitAlias('year', 'y');\n // PRIORITIES\n addUnitPriority('year', 1);\n // PARSING\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array, config) {\n array[YEAR] = input.length === 2 ? parseTwoDigitYear(input) : toInt(input);\n return config;\n });\n addParseToken('YY', function (input, array, config) {\n array[YEAR] = parseTwoDigitYear(input);\n return config;\n });\n addParseToken('Y', function (input, array, config) {\n array[YEAR] = parseInt(input, 10);\n return config;\n });\n}\nfunction parseTwoDigitYear(input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n}\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\n// todo: this is duplicate, source in date-getters.ts\nfunction daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n const modMonth = mod(month, 12);\n const _year = year + (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(_year) ? 29 : 28\n : (31 - modMonth % 7 % 2);\n}\nfunction initMonth() {\n // FORMATTING\n addFormatToken('M', ['MM', 2, false], 'Mo', function (date, opts) {\n return (getMonth(date, opts.isUTC) + 1).toString(10);\n });\n addFormatToken('MMM', null, null, function (date, opts) {\n return opts.locale.monthsShort(date, opts.format, opts.isUTC);\n });\n addFormatToken('MMMM', null, null, function (date, opts) {\n return opts.locale.months(date, opts.format, opts.isUTC);\n });\n // ALIASES\n addUnitAlias('month', 'M');\n // PRIORITY\n addUnitPriority('month', 8);\n // PARSING\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array, config) {\n array[MONTH] = toInt(input) - 1;\n return config;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n const month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n }\n else {\n getParsingFlags(config).invalidMonth = !!input;\n }\n return config;\n });\n}\n\nconst defaultTimeUnit = {\n year: 0,\n month: 0,\n day: 0,\n hour: 0,\n minute: 0,\n seconds: 0\n};\nfunction shiftDate(date, unit) {\n const _unit = Object.assign({}, defaultTimeUnit, unit);\n const year = date.getFullYear() + (_unit.year || 0);\n const month = date.getMonth() + (_unit.month || 0);\n let day = date.getDate() + (_unit.day || 0);\n if (_unit.month && !_unit.day) {\n day = Math.min(day, daysInMonth(year, month));\n }\n return createDate(year, month, day, date.getHours() + (_unit.hour || 0), date.getMinutes() + (_unit.minute || 0), date.getSeconds() + (_unit.seconds || 0));\n}\nfunction setFullDate(date, unit) {\n return createDate(getNum(date.getFullYear(), unit.year), getNum(date.getMonth(), unit.month), 1, // day, to avoid issue with wrong months selection at the end of current month (#5371)\n getNum(date.getHours(), unit.hour), getNum(date.getMinutes(), unit.minute), getNum(date.getSeconds(), unit.seconds), getNum(date.getMilliseconds(), unit.milliseconds));\n}\nfunction getNum(def, num) {\n return isNumber(num) ? num : def;\n}\nfunction setFullYear(date, value, isUTC) {\n const _month = getMonth(date, isUTC);\n const _date = getDate(date, isUTC);\n const _year = getFullYear(date, isUTC);\n if (isLeapYear(_year) && _month === 1 && _date === 29) {\n const _daysInMonth = daysInMonth(value, _month);\n isUTC ? date.setUTCFullYear(value, _month, _daysInMonth) : date.setFullYear(value, _month, _daysInMonth);\n }\n isUTC ? date.setUTCFullYear(value) : date.setFullYear(value);\n return date;\n}\nfunction setMonth(date, value, isUTC) {\n const dayOfMonth = Math.min(getDate(date), daysInMonth(getFullYear(date), value));\n isUTC ? date.setUTCMonth(value, dayOfMonth) : date.setMonth(value, dayOfMonth);\n return date;\n}\nfunction setDay(date, value, isUTC) {\n isUTC ? date.setUTCDate(value) : date.setDate(value);\n return date;\n}\nfunction setHours(date, value, isUTC) {\n isUTC ? date.setUTCHours(value) : date.setHours(value);\n return date;\n}\nfunction setMinutes(date, value, isUTC) {\n isUTC ? date.setUTCMinutes(value) : date.setMinutes(value);\n return date;\n}\nfunction setSeconds(date, value, isUTC) {\n isUTC ? date.setUTCSeconds(value) : date.setSeconds(value);\n return date;\n}\nfunction setMilliseconds(date, value, isUTC) {\n isUTC ? date.setUTCMilliseconds(value) : date.setMilliseconds(value);\n return date;\n}\nfunction setDate(date, value, isUTC) {\n isUTC ? date.setUTCDate(value) : date.setDate(value);\n return date;\n}\nfunction setTime(date, value) {\n date.setTime(value);\n return date;\n}\n\n// fastest way to clone date\n// https://jsperf.com/clone-date-object2\nfunction cloneDate(date) {\n return new Date(date.getTime());\n}\n\nfunction startOf(date, unit, isUTC) {\n const _date = cloneDate(date);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (unit) {\n case 'year':\n setMonth(_date, 0, isUTC);\n /* falls through */\n case 'quarter':\n case 'month':\n setDate(_date, 1, isUTC);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n setHours(_date, 0, isUTC);\n /* falls through */\n case 'hours':\n setMinutes(_date, 0, isUTC);\n /* falls through */\n case 'minutes':\n setSeconds(_date, 0, isUTC);\n /* falls through */\n case 'seconds':\n setMilliseconds(_date, 0, isUTC);\n }\n // weeks are a special case\n if (unit === 'week') {\n setLocaleDayOfWeek(_date, 0, { isUTC });\n }\n if (unit === 'isoWeek') {\n setISODayOfWeek(_date, 1);\n }\n // quarters are also special\n if (unit === 'quarter') {\n setMonth(_date, Math.floor(getMonth(_date, isUTC) / 3) * 3, isUTC);\n }\n return _date;\n}\nfunction endOf(date, unit, isUTC) {\n let _unit = unit;\n // 'date' is an alias for 'day', so it should be considered as such.\n if (_unit === 'date') {\n _unit = 'day';\n }\n const start = startOf(date, _unit, isUTC);\n const _step = add(start, 1, _unit === 'isoWeek' ? 'week' : _unit, isUTC);\n const res = subtract(_step, 1, 'milliseconds', isUTC);\n return res;\n}\n\nfunction initDayOfYear() {\n // FORMATTING\n addFormatToken('DDD', ['DDDD', 3, false], 'DDDo', function (date) {\n return getDayOfYear(date)\n .toString(10);\n });\n // ALIASES\n addUnitAlias('dayOfYear', 'DDD');\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n return config;\n });\n}\nfunction getDayOfYear(date, isUTC) {\n const date1 = +startOf(date, 'day', isUTC);\n const date2 = +startOf(date, 'year', isUTC);\n const someDate = date1 - date2;\n const oneDay = 1000 * 60 * 60 * 24;\n return Math.round(someDate / oneDay) + 1;\n}\nfunction setDayOfYear(date, input) {\n const dayOfYear = getDayOfYear(date);\n return add(date, (input - dayOfYear), 'day');\n}\n\n/**\n *\n * @param {number} year\n * @param {number} dow - start-of-first-week\n * @param {number} doy - start-of-year\n * @returns {number}\n */\nfunction firstWeekOffset(year, dow, doy) {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n const fwd = dow - doy + 7;\n // first-week day local weekday -- which local weekday is fwd\n const fwdlw = (createUTCDate(year, 0, fwd).getUTCDay() - dow + 7) % 7;\n return -fwdlw + fwd - 1;\n}\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n const localWeekday = (7 + weekday - dow) % 7;\n const weekOffset = firstWeekOffset(year, dow, doy);\n const dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset;\n let resYear;\n let resDayOfYear;\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n }\n else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n }\n else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n}\nfunction weekOfYear(date, dow, doy, isUTC) {\n const weekOffset = firstWeekOffset(getFullYear(date, isUTC), dow, doy);\n const week = Math.floor((getDayOfYear(date, isUTC) - weekOffset - 1) / 7) + 1;\n let resWeek;\n let resYear;\n if (week < 1) {\n resYear = getFullYear(date, isUTC) - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n }\n else if (week > weeksInYear(getFullYear(date, isUTC), dow, doy)) {\n resWeek = week - weeksInYear(getFullYear(date, isUTC), dow, doy);\n resYear = getFullYear(date, isUTC) + 1;\n }\n else {\n resYear = getFullYear(date, isUTC);\n resWeek = week;\n }\n return {\n week: resWeek,\n year: resYear\n };\n}\nfunction weeksInYear(year, dow, doy) {\n const weekOffset = firstWeekOffset(year, dow, doy);\n const weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\nconst MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\nconst defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\nconst defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\nconst defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\nconst defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\nconst defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\nconst defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n};\nconst defaultOrdinal = '%d';\nconst defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\nconst defaultMonthsShortRegex = matchWord;\nconst defaultMonthsRegex = matchWord;\nclass Locale {\n constructor(config) {\n if (config) {\n this.set(config);\n }\n }\n set(config) {\n let confKey;\n for (confKey in config) {\n // eslint-disable-next-line no-prototype-builtins\n if (!config.hasOwnProperty(confKey)) {\n continue;\n }\n const prop = config[confKey];\n const key = (isFunction(prop) ? confKey : `_${confKey}`);\n this[key] = prop;\n }\n this._config = config;\n }\n calendar(key, date, now) {\n const output = this._calendar[key] || this._calendar[\"sameElse\"];\n return isFunction(output) ? output.call(null, date, now) : output;\n }\n longDateFormat(key) {\n const format = this._longDateFormat[key];\n const formatUpper = this._longDateFormat[key.toUpperCase()];\n if (format || !formatUpper) {\n return format;\n }\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n return this._longDateFormat[key];\n }\n get invalidDate() {\n return this._invalidDate;\n }\n set invalidDate(val) {\n this._invalidDate = val;\n }\n ordinal(num, token) {\n return this._ordinal.replace('%d', num.toString(10));\n }\n preparse(str, format) {\n return str;\n }\n getFullYear(date, isUTC = false) {\n return getFullYear(date, isUTC);\n }\n postformat(str) {\n return str;\n }\n relativeTime(num, withoutSuffix, str, isFuture) {\n const output = this._relativeTime[str];\n return (isFunction(output)) ?\n output(num, withoutSuffix, str, isFuture) :\n output.replace(/%d/i, num.toString(10));\n }\n pastFuture(diff, output) {\n const format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n months(date, format, isUTC = false) {\n if (!date) {\n return isArray(this._months)\n ? this._months\n : this._months.standalone;\n }\n if (isArray(this._months)) {\n return this._months[getMonth(date, isUTC)];\n }\n const key = (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone';\n return this._months[key][getMonth(date, isUTC)];\n }\n monthsShort(date, format, isUTC = false) {\n if (!date) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort.standalone;\n }\n if (isArray(this._monthsShort)) {\n return this._monthsShort[getMonth(date, isUTC)];\n }\n const key = MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone';\n return this._monthsShort[key][getMonth(date, isUTC)];\n }\n monthsParse(monthName, format, strict) {\n let date;\n let regex;\n if (this._monthsParseExact) {\n return this.handleMonthStrictParse(monthName, format, strict);\n }\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n let i;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n date = new Date(Date.UTC(2000, i));\n if (strict && !this._longMonthsParse[i]) {\n const _months = this.months(date, '', true).replace('.', '');\n const _shortMonths = this.monthsShort(date, '', true).replace('.', '');\n this._longMonthsParse[i] = new RegExp(`^${_months}$`, 'i');\n this._shortMonthsParse[i] = new RegExp(`^${_shortMonths}$`, 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = `^${this.months(date, '', true)}|^${this.monthsShort(date, '', true)}`;\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // testing the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n }\n if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n }\n if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this.computeMonthsParse();\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n }\n return this._monthsRegex;\n }\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this.computeMonthsParse();\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n }\n return this._monthsShortRegex;\n }\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n /** Week */\n week(date, isUTC) {\n return weekOfYear(date, this._week.dow, this._week.doy, isUTC).week;\n }\n firstDayOfWeek() {\n return this._week.dow;\n }\n firstDayOfYear() {\n return this._week.doy;\n }\n weekdays(date, format, isUTC) {\n if (!date) {\n return isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays.standalone;\n }\n if (isArray(this._weekdays)) {\n return this._weekdays[getDay(date, isUTC)];\n }\n const _key = this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone';\n return this._weekdays[_key][getDay(date, isUTC)];\n }\n weekdaysMin(date, format, isUTC) {\n return date ? this._weekdaysMin[getDay(date, isUTC)] : this._weekdaysMin;\n }\n weekdaysShort(date, format, isUTC) {\n return date ? this._weekdaysShort[getDay(date, isUTC)] : this._weekdaysShort;\n }\n // proto.weekdaysParse = localeWeekdaysParse;\n weekdaysParse(weekdayName, format, strict) {\n let i;\n let regex;\n if (this._weekdaysParseExact) {\n return this.handleWeekStrictParse(weekdayName, format, strict);\n }\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n // fix: here is the issue\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(`^${this.weekdays(date, '', true).replace('.', '\\.?')}$`, 'i');\n this._shortWeekdaysParse[i] = new RegExp(`^${this.weekdaysShort(date, '', true).replace('.', '\\.?')}$`, 'i');\n this._minWeekdaysParse[i] = new RegExp(`^${this.weekdaysMin(date, '', true).replace('.', '\\.?')}$`, 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = `^${this.weekdays(date, '', true)}|^${this.weekdaysShort(date, '', true)}|^${this.weekdaysMin(date, '', true)}`;\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n if (!isArray(this._fullWeekdaysParse)\n || !isArray(this._shortWeekdaysParse)\n || !isArray(this._minWeekdaysParse)\n || !isArray(this._weekdaysParse)) {\n return;\n }\n // testing the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n }\n else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n }\n else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n }\n else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n // proto.weekdaysRegex = weekdaysRegex;\n weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n }\n else {\n return this._weekdaysRegex;\n }\n }\n else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = matchWord;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n // proto.weekdaysShortRegex = weekdaysShortRegex;\n // proto.weekdaysMinRegex = weekdaysMinRegex;\n weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n }\n else {\n return this._weekdaysShortRegex;\n }\n }\n else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = matchWord;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n }\n else {\n return this._weekdaysMinRegex;\n }\n }\n else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = matchWord;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n isPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return input.toLowerCase().charAt(0) === 'p';\n }\n meridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n }\n return isLower ? 'am' : 'AM';\n }\n formatLongDate(key) {\n this._longDateFormat = this._longDateFormat ? this._longDateFormat : defaultLongDateFormat;\n const format = this._longDateFormat[key];\n const formatUpper = this._longDateFormat[key.toUpperCase()];\n if (format || !formatUpper) {\n return format;\n }\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, (val) => {\n return val.slice(1);\n });\n return this._longDateFormat[key];\n }\n handleMonthStrictParse(monthName, format, strict) {\n const llc = monthName.toLocaleLowerCase();\n let i;\n let ii;\n let mom;\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = new Date(2000, i);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n if (strict) {\n if (format === 'MMM') {\n ii = this._shortMonthsParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n ii = this._longMonthsParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n if (format === 'MMM') {\n ii = this._shortMonthsParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._longMonthsParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n ii = this._longMonthsParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._shortMonthsParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n handleWeekStrictParse(weekdayName, format, strict) {\n let ii;\n const llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n let i;\n for (i = 0; i < 7; ++i) {\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n this._minWeekdaysParse[i] = this.weekdaysMin(date).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(date).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(date, '').toLocaleLowerCase();\n }\n }\n if (!isArray(this._weekdaysParse)\n || !isArray(this._shortWeekdaysParse)\n || !isArray(this._minWeekdaysParse)) {\n return;\n }\n if (strict) {\n if (format === 'dddd') {\n ii = this._weekdaysParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n else if (format === 'ddd') {\n ii = this._shortWeekdaysParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n else {\n ii = this._minWeekdaysParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n }\n else {\n if (format === 'dddd') {\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._shortWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._minWeekdaysParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n else if (format === 'ddd') {\n ii = this._shortWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._minWeekdaysParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n else {\n ii = this._minWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._shortWeekdaysParse.indexOf(llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n computeMonthsParse() {\n const shortPieces = [];\n const longPieces = [];\n const mixedPieces = [];\n let date;\n let i;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n date = new Date(2000, i);\n shortPieces.push(this.monthsShort(date, ''));\n longPieces.push(this.months(date, ''));\n mixedPieces.push(this.months(date, ''));\n mixedPieces.push(this.monthsShort(date, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n this._monthsRegex = new RegExp(`^(${mixedPieces.join('|')})`, 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(`^(${longPieces.join('|')})`, 'i');\n this._monthsShortStrictRegex = new RegExp(`^(${shortPieces.join('|')})`, 'i');\n }\n computeWeekdaysParse() {\n const minPieces = [];\n const shortPieces = [];\n const longPieces = [];\n const mixedPieces = [];\n let i;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n // let mom = createUTC([2000, 1]).day(i);\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n const minp = this.weekdaysMin(date);\n const shortp = this.weekdaysShort(date);\n const longp = this.weekdays(date);\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n this._weekdaysRegex = new RegExp(`^(${mixedPieces.join('|')})`, 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp(`^(${longPieces.join('|')})`, 'i');\n this._weekdaysShortStrictRegex = new RegExp(`^(${shortPieces.join('|')})`, 'i');\n this._weekdaysMinStrictRegex = new RegExp(`^(${minPieces.join('|')})`, 'i');\n }\n}\nfunction cmpLenRev(a, b) {\n return b.length - a.length;\n}\n\nconst defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n};\n\nconst defaultInvalidDate = 'Invalid date';\nconst defaultLocaleWeek = {\n dow: 0,\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n};\nconst defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\nconst defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n};\nconst baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n};\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n const len = Math.min(array1.length, array2.length);\n const lengthDiff = Math.abs(array1.length - array2.length);\n let diffs = 0;\n let i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i])\n || (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\n// FORMATTING\nfunction initWeek() {\n addFormatToken('w', ['ww', 2, false], 'wo', function (date, opts) {\n return getWeek(date, opts.locale)\n .toString(10);\n });\n addFormatToken('W', ['WW', 2, false], 'Wo', function (date) {\n return getISOWeek(date)\n .toString(10);\n });\n // ALIASES\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n // PRIORITIES\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n // PARSING\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n return config;\n });\n // export function getSetWeek (input) {\n // var week = this.localeData().week(this);\n // return input == null ? week : this.add((input - week) * 7, 'd');\n // }\n}\nfunction setWeek(date, input, locale = getLocale()) {\n const week = getWeek(date, locale);\n return add(date, (input - week) * 7, 'day');\n}\nfunction getWeek(date, locale = getLocale(), isUTC) {\n return locale.week(date, isUTC);\n}\n// export function getSetISOWeek (input) {\n// var week = weekOfYear(this, 1, 4).week;\n// return input == null ? week : this.add((input - week) * 7, 'd');\n// }\nfunction setISOWeek(date, input) {\n const week = getISOWeek(date);\n return add(date, (input - week) * 7, 'day');\n}\nfunction getISOWeek(date, isUTC) {\n return weekOfYear(date, 1, 4, isUTC).week;\n}\n\n// FORMATTING\nfunction initWeekYear() {\n addFormatToken(null, ['gg', 2, false], null, function (date, opts) {\n // return this.weekYear() % 100;\n return (getWeekYear(date, opts.locale) % 100).toString();\n });\n addFormatToken(null, ['GG', 2, false], null, function (date) {\n // return this.isoWeekYear() % 100;\n return (getISOWeekYear(date) % 100).toString();\n });\n addWeekYearFormatToken('gggg', _getWeekYearFormatCb);\n addWeekYearFormatToken('ggggg', _getWeekYearFormatCb);\n addWeekYearFormatToken('GGGG', _getISOWeekYearFormatCb);\n addWeekYearFormatToken('GGGGG', _getISOWeekYearFormatCb);\n // ALIASES\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n // PRIORITY\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n // PARSING\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n return config;\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = parseTwoDigitYear(input);\n return config;\n });\n}\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(null, [token, token.length, false], null, getter);\n}\nfunction _getWeekYearFormatCb(date, opts) {\n return getWeekYear(date, opts.locale).toString();\n}\nfunction _getISOWeekYearFormatCb(date) {\n return getISOWeekYear(date).toString();\n}\n// MOMENTS\nfunction getSetWeekYear(date, input, locale = getLocale(), isUTC) {\n return getSetWeekYearHelper(date, input, \n // this.week(),\n getWeek(date, locale, isUTC), \n // this.weekday(),\n getLocaleDayOfWeek(date, locale, isUTC), locale.firstDayOfWeek(), locale.firstDayOfYear(), isUTC);\n}\nfunction getWeekYear(date, locale = getLocale(), isUTC) {\n return weekOfYear(date, locale.firstDayOfWeek(), locale.firstDayOfYear(), isUTC).year;\n}\nfunction getSetISOWeekYear(date, input, isUTC) {\n return getSetWeekYearHelper(date, input, getISOWeek(date, isUTC), getISODayOfWeek(date, isUTC), 1, 4);\n}\nfunction getISOWeekYear(date, isUTC) {\n return weekOfYear(date, 1, 4, isUTC).year;\n}\nfunction getISOWeeksInYear(date, isUTC) {\n return weeksInYear(getFullYear(date, isUTC), 1, 4);\n}\nfunction getWeeksInYear(date, isUTC, locale = getLocale()) {\n return weeksInYear(getFullYear(date, isUTC), locale.firstDayOfWeek(), locale.firstDayOfYear());\n}\nfunction getSetWeekYearHelper(date, input, week, weekday, dow, doy, isUTC) {\n if (!input) {\n return getWeekYear(date, void 0, isUTC);\n }\n const weeksTarget = weeksInYear(input, dow, doy);\n const _week = week > weeksTarget ? weeksTarget : week;\n return setWeekAll(date, input, _week, weekday, dow, doy);\n}\nfunction setWeekAll(date, weekYear, week, weekday, dow, doy) {\n const dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n const _date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n setFullYear(date, getFullYear(_date, true), true);\n setMonth(date, getMonth(_date, true), true);\n setDate(date, getDate(_date, true), true);\n return date;\n}\n\n// todo: add support for timezones\nfunction initTimezone() {\n // FORMATTING\n addFormatToken('z', null, null, function (date, opts) {\n return opts.isUTC ? 'UTC' : '';\n });\n addFormatToken('zz', null, null, function (date, opts) {\n return opts.isUTC ? 'Coordinated Universal Time' : '';\n });\n}\n// MOMENTS\nfunction getZoneAbbr(isUTC) {\n return isUTC ? 'UTC' : '';\n}\nfunction getZoneName(isUTC) {\n return isUTC ? 'Coordinated Universal Time' : '';\n}\n\nfunction initTimestamp() {\n // FORMATTING\n addFormatToken('X', null, null, function (date) {\n return unix(date)\n .toString(10);\n });\n addFormatToken('x', null, null, function (date) {\n return date.valueOf()\n .toString(10);\n });\n // PARSING\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n return config;\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n return config;\n });\n}\n\nfunction initSecond() {\n // FORMATTING\n addFormatToken('s', ['ss', 2, false], null, function (date, opts) {\n return getSeconds(date, opts.isUTC)\n .toString(10);\n });\n // ALIASES\n addUnitAlias('second', 's');\n // PRIORITY\n addUnitPriority('second', 15);\n // PARSING\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n}\n\nfunction initQuarter() {\n // FORMATTING\n addFormatToken('Q', null, 'Qo', function (date, opts) {\n return getQuarter(date, opts.isUTC)\n .toString(10);\n });\n // ALIASES\n addUnitAlias('quarter', 'Q');\n // PRIORITY\n addUnitPriority('quarter', 7);\n // PARSING\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array, config) {\n array[MONTH] = (toInt(input) - 1) * 3;\n return config;\n });\n}\n// MOMENTS\nfunction getQuarter(date, isUTC = false) {\n return Math.ceil((getMonth(date, isUTC) + 1) / 3);\n}\nfunction setQuarter(date, quarter, isUTC) {\n return setMonth(date, (quarter - 1) * 3 + getMonth(date, isUTC) % 3, isUTC);\n}\n// export function getSetQuarter(input) {\n// return input == null\n// ? Math.ceil((this.month() + 1) / 3)\n// : this.month((input - 1) * 3 + this.month() % 3);\n// }\n\n// FORMATTING\nfunction addOffsetFormatToken(token, separator) {\n addFormatToken(token, null, null, function (date, config) {\n let offset = getUTCOffset(date, { _isUTC: config.isUTC, _offset: config.offset });\n let sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n}\nfunction initOffset() {\n addOffsetFormatToken('Z', ':');\n addOffsetFormatToken('ZZ', '');\n // PARSING\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n return config;\n });\n}\n// HELPERS\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nconst chunkOffset = /([\\+\\-]|\\d\\d)/gi;\nfunction offsetFromString(matcher, str) {\n const matches = (str || '').match(matcher);\n if (matches === null) {\n return null;\n }\n const chunk = matches[matches.length - 1];\n const parts = chunk.match(chunkOffset) || ['-', '0', '0'];\n const minutes = parseInt(parts[1], 10) * 60 + toInt(parts[2]);\n const _min = parts[0] === '+' ? minutes : -minutes;\n return minutes === 0 ? 0 : _min;\n}\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, date, config = {}) {\n if (!config._isUTC) {\n return input;\n }\n const res = cloneDate(date);\n // todo: input._d - res._d + ((res._offset || 0) - (input._offset || 0))*60000\n const offsetDiff = (config._offset || 0) * 60000;\n const diff = input.valueOf() - res.valueOf() + offsetDiff;\n // Use low-level api, because this fn is low-level api.\n res.setTime(res.valueOf() + diff);\n // todo: add timezone handling\n // hooks.updateOffset(res, false);\n return res;\n}\nfunction getDateOffset(date) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(date.getTimezoneOffset() / 15) * 15;\n}\n// HOOKS\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\n// todo: it's from moment timezones\n// hooks.updateOffset = function () {\n// };\n// MOMENTS\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getUTCOffset(date, config = {}) {\n const _offset = config._offset || 0;\n return config._isUTC ? _offset : getDateOffset(date);\n}\nfunction setUTCOffset(date, input, keepLocalTime, keepMinutes, config = {}) {\n const offset = config._offset || 0;\n let localAdjust;\n let _input = input;\n let _date = date;\n if (isString(_input)) {\n _input = offsetFromString(matchShortOffset, _input);\n if (_input === null) {\n return _date;\n }\n }\n else if (isNumber(_input) && Math.abs(_input) < 16 && !keepMinutes) {\n _input = _input * 60;\n }\n if (!config._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(_date);\n }\n config._offset = _input;\n config._isUTC = true;\n if (localAdjust != null) {\n _date = add(_date, localAdjust, 'minutes');\n }\n if (offset !== _input) {\n if (!keepLocalTime || config._changeInProgress) {\n _date = add(_date, _input - offset, 'minutes', config._isUTC);\n // addSubtract(this, createDuration(_input - offset, 'm'), 1, false);\n }\n else if (!config._changeInProgress) {\n config._changeInProgress = true;\n // todo: add timezone handling\n // hooks.updateOffset(this, true);\n config._changeInProgress = null;\n }\n }\n return _date;\n}\n/*\nexport function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n*/\nfunction setOffsetToUTC(date, keepLocalTime) {\n return setUTCOffset(date, 0, keepLocalTime);\n}\nfunction isDaylightSavingTime(date) {\n return (getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 0))\n || getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 5)));\n}\n/*export function setOffsetToLocal(date: Date, isUTC?: boolean, keepLocalTime?: boolean) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}*/\nfunction setOffsetToParsedOffset(date, input, config = {}) {\n if (config._tzm != null) {\n return setUTCOffset(date, config._tzm, false, true, config);\n }\n if (isString(input)) {\n const tZone = offsetFromString(matchOffset, input);\n if (tZone != null) {\n return setUTCOffset(date, tZone, false, false, config);\n }\n return setUTCOffset(date, 0, true, false, config);\n }\n return date;\n}\nfunction hasAlignedHourOffset(date, input) {\n const _input = input ? getUTCOffset(input, { _isUTC: false }) : 0;\n return (getUTCOffset(date) - _input) % 60 === 0;\n}\n// DEPRECATED\n/*export function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n const c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n const other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}*/\n// in Khronos\n/*export function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nexport function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nexport function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}*/\n\nfunction initMinute() {\n // FORMATTING\n addFormatToken('m', ['mm', 2, false], null, function (date, opts) {\n return getMinutes(date, opts.isUTC)\n .toString(10);\n });\n // ALIASES\n addUnitAlias('minute', 'm');\n // PRIORITY\n addUnitPriority('minute', 14);\n // PARSING\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n}\n\n// FORMATTING\nfunction initMillisecond() {\n addFormatToken('S', null, null, function (date, opts) {\n return (~~(getMilliseconds(date, opts.isUTC) / 100)).toString(10);\n });\n addFormatToken(null, ['SS', 2, false], null, function (date, opts) {\n return (~~(getMilliseconds(date, opts.isUTC) / 10)).toString(10);\n });\n addFormatToken(null, ['SSS', 3, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC)).toString(10);\n });\n addFormatToken(null, ['SSSS', 4, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC) * 10).toString(10);\n });\n addFormatToken(null, ['SSSSS', 5, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC) * 100).toString(10);\n });\n addFormatToken(null, ['SSSSSS', 6, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC) * 1000).toString(10);\n });\n addFormatToken(null, ['SSSSSSS', 7, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC) * 10000).toString(10);\n });\n addFormatToken(null, ['SSSSSSSS', 8, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC) * 100000).toString(10);\n });\n addFormatToken(null, ['SSSSSSSSS', 9, false], null, function (date, opts) {\n return (getMilliseconds(date, opts.isUTC) * 1000000).toString(10);\n });\n // ALIASES\n addUnitAlias('millisecond', 'ms');\n // PRIORITY\n addUnitPriority('millisecond', 16);\n // PARSING\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n let token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n function parseMs(input, array, config) {\n array[MILLISECOND] = toInt(parseFloat(`0.${input}`) * 1000);\n return config;\n }\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n}\n\nfunction initHour() {\n // FORMATTING\n function hFormat(date, isUTC) {\n return getHours(date, isUTC) % 12 || 12;\n }\n function kFormat(date, isUTC) {\n return getHours(date, isUTC) || 24;\n }\n addFormatToken('H', ['HH', 2, false], null, function (date, opts) {\n return getHours(date, opts.isUTC)\n .toString(10);\n });\n addFormatToken('h', ['hh', 2, false], null, function (date, opts) {\n return hFormat(date, opts.isUTC)\n .toString(10);\n });\n addFormatToken('k', ['kk', 2, false], null, function (date, opts) {\n return kFormat(date, opts.isUTC)\n .toString(10);\n });\n addFormatToken('hmm', null, null, function (date, opts) {\n const _h = hFormat(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n return `${_h}${_mm}`;\n });\n addFormatToken('hmmss', null, null, function (date, opts) {\n const _h = hFormat(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n const _ss = zeroFill(getSeconds(date, opts.isUTC), 2);\n return `${_h}${_mm}${_ss}`;\n });\n addFormatToken('Hmm', null, null, function (date, opts) {\n const _H = getHours(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n return `${_H}${_mm}`;\n });\n addFormatToken('Hmmss', null, null, function (date, opts) {\n const _H = getHours(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n const _ss = zeroFill(getSeconds(date, opts.isUTC), 2);\n return `${_H}${_mm}${_ss}`;\n });\n function meridiem(token, lowercase) {\n addFormatToken(token, null, null, function (date, opts) {\n return opts.locale.meridiem(getHours(date, opts.isUTC), getMinutes(date, opts.isUTC), lowercase);\n });\n }\n meridiem('a', true);\n meridiem('A', false);\n // ALIASES\n addUnitAlias('hour', 'h');\n // PRIORITY\n addUnitPriority('hour', 13);\n // PARSING\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n const kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n return config;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n return config;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n return config;\n });\n addParseToken('hmm', function (input, array, config) {\n const pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n return config;\n });\n addParseToken('hmmss', function (input, array, config) {\n const pos1 = input.length - 4;\n const pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n return config;\n });\n addParseToken('Hmm', function (input, array, config) {\n const pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n return config;\n });\n addParseToken('Hmmss', function (input, array, config) {\n const pos1 = input.length - 4;\n const pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n return config;\n });\n}\n\n// internal storage for locale config files\nconst locales = {};\nconst localeFamilies = {};\nlet globalLocale;\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least,\n// but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n let next;\n let locale;\n let i = 0;\n while (i < names.length) {\n const split = normalizeLocale(names[i]).split('-');\n let j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n // the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return null;\n}\nfunction mergeConfigs(parentConfig, childConfig) {\n const res = Object.assign({}, parentConfig);\n for (const childProp in childConfig) {\n if (!hasOwnProp(childConfig, childProp)) {\n continue;\n }\n if (isObject(parentConfig[childProp]) && isObject(childConfig[childProp])) {\n res[childProp] = {};\n Object.assign(res[childProp], parentConfig[childProp]);\n Object.assign(res[childProp], childConfig[childProp]);\n }\n else if (childConfig[childProp] != null) {\n res[childProp] = childConfig[childProp];\n }\n else {\n delete res[childProp];\n }\n }\n for (const parentProp in parentConfig) {\n if (hasOwnProp(parentConfig, parentProp) &&\n !hasOwnProp(childConfig, parentProp) &&\n isObject(parentConfig[parentProp])) {\n // make sure changes to properties don't modify parent config\n res[parentProp] = Object.assign({}, res[parentProp]);\n }\n }\n return res;\n}\nfunction loadLocale(name) {\n // no way!\n /* var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }*/\n if (!locales[name]) {\n console.error(`Khronos locale error: please load locale \"${name}\" before using it`);\n // throw new Error(`Khronos locale error: please load locale \"${name}\" before using it`);\n }\n return locales[name];\n}\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n let data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else if (isString(key)) {\n data = defineLocale(key, values);\n }\n if (data) {\n globalLocale = data;\n }\n }\n return globalLocale && globalLocale._abbr;\n}\nfunction defineLocale(name, config) {\n if (config === null) {\n // useful for testing\n delete locales[name];\n globalLocale = getLocale('en');\n return null;\n }\n if (!config) {\n return;\n }\n let parentConfig = baseConfig;\n config.abbr = name;\n if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n }\n else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({ name, config });\n return null;\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n return locales[name];\n}\nfunction updateLocale(name, config) {\n let _config = config;\n if (_config != null) {\n let parentConfig = baseConfig;\n // MERGE\n const tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n _config = mergeConfigs(parentConfig, _config);\n const locale = new Locale(_config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n }\n else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n }\n else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n// returns locale data\nfunction getLocale(key) {\n setDefaultLocale();\n if (!key) {\n return globalLocale;\n }\n // let locale;\n const _key = isArray(key) ? key : [key];\n return chooseLocale(_key);\n}\nfunction listLocales() {\n return Object.keys(locales);\n}\nfunction setDefaultLocale() {\n if (locales[`en`]) {\n return undefined;\n }\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal(num) {\n const b = num % 10;\n const output = toInt((num % 100) / 10) === 1\n ? 'th'\n : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return num + output;\n }\n });\n initWeek();\n initWeekYear();\n initYear();\n initTimezone();\n initTimestamp();\n initSecond();\n initQuarter();\n initOffset();\n initMonth();\n initMinute();\n initMillisecond();\n initHour();\n initDayOfYear();\n initDayOfWeek();\n initDayOfMonth();\n}\n\nconst ordering = ['year', 'quarter', 'month', 'week', 'day', 'hours', 'minutes', 'seconds', 'milliseconds'];\nconst orderingHash = ordering.reduce((mem, order) => {\n mem[order] = true;\n return mem;\n}, {});\nfunction isDurationValid(duration) {\n const durationKeys = Object.keys(duration);\n if (durationKeys\n .some((key) => {\n return (key in orderingHash)\n && duration[key] === null\n || isNaN(duration[key]);\n })) {\n return false;\n }\n // for (let key in duration) {\n // if (!(indexOf.call(ordering, key) !== -1 && (duration[key] == null || !isNaN(duration[key])))) {\n // return false;\n // }\n // }\n let unitHasDecimal = false;\n for (let i = 0; i < ordering.length; ++i) {\n if (duration[ordering[i]]) {\n // only allow non-integers for smallest unit\n if (unitHasDecimal) {\n return false;\n }\n if (duration[ordering[i]] !== toInt(duration[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n return true;\n}\n// export function isValid() {\n// return this._isValid;\n// }\n//\n// export function createInvalid(): Duration {\n// return createDuration(NaN);\n// }\n\nfunction absCeil(number) {\n return number < 0 ? Math.floor(number) : Math.ceil(number);\n}\n\nfunction bubble(dur) {\n let milliseconds = dur._milliseconds;\n let days = dur._days;\n let months = dur._months;\n const data = dur._data;\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n const seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n const minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n const hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24);\n // convert days to months\n const monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n // 12 months -> 1 year\n const years = absFloor(months / 12);\n months %= 12;\n data.day = days;\n data.month = months;\n data.year = years;\n return dur;\n}\nfunction daysToMonths(day) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return day * 4800 / 146097;\n}\nfunction monthsToDays(month) {\n // the reverse of daysToMonths\n return month * 146097 / 4800;\n}\n\nlet round = Math.round;\nconst thresholds = {\n ss: 44,\n s: 45,\n m: 45,\n h: 22,\n d: 26,\n M: 11 // months to year\n};\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(str, num, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(num || 1, !!withoutSuffix, str, isFuture);\n}\nfunction relativeTime(posNegDuration, withoutSuffix, locale) {\n const duration = createDuration(posNegDuration).abs();\n const seconds = round(duration.as('s'));\n const minutes = round(duration.as('m'));\n const hours = round(duration.as('h'));\n const days = round(duration.as('d'));\n const months = round(duration.as('M'));\n const years = round(duration.as('y'));\n const a = seconds <= thresholds[\"ss\"] && ['s', seconds] ||\n seconds < thresholds[\"s\"] && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds[\"m\"] && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds[\"h\"] && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds[\"d\"] && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds[\"M\"] && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n const b = [a[0], a[1], withoutSuffix, +posNegDuration > 0, locale];\n // a[2] = withoutSuffix;\n // a[3] = +posNegDuration > 0;\n // a[4] = locale;\n return substituteTimeAgo.apply(null, b);\n}\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof (roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds[\"ss\"] = limit - 1;\n }\n return true;\n}\n// export function humanize(withSuffix) {\n// if (!this.isValid()) {\n// return this.localeData().invalidDate();\n// }\n//\n// const locale = this.localeData();\n// let output = relativeTime(this, !withSuffix, locale);\n//\n// if (withSuffix) {\n// output = locale.pastFuture(+this, output);\n// }\n//\n// return locale.postformat(output);\n// }\n\nclass Duration {\n constructor(duration, config = {}) {\n this._data = {};\n this._locale = getLocale();\n this._locale = config && config._locale || getLocale();\n // const normalizedInput = normalizeObjectUnits(duration);\n const normalizedInput = duration;\n const years = normalizedInput.year || 0;\n const quarters = normalizedInput.quarter || 0;\n const months = normalizedInput.month || 0;\n const weeks = normalizedInput.week || 0;\n const days = normalizedInput.day || 0;\n const hours = normalizedInput.hours || 0;\n const minutes = normalizedInput.minutes || 0;\n const seconds = normalizedInput.seconds || 0;\n const milliseconds = normalizedInput.milliseconds || 0;\n this._isValid = isDurationValid(normalizedInput);\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1000 +\n minutes * 60 * 1000 + // 1000 * 60\n hours * 1000 * 60 * 60; // using 1000 * 60 * 60\n // instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n // this._data = {};\n // this._locale = getLocale();\n // this._bubble();\n return bubble(this);\n }\n isValid() {\n return this._isValid;\n }\n humanize(withSuffix) {\n // throw new Error(`TODO: implement`);\n if (!this.isValid()) {\n return this.localeData().invalidDate;\n }\n const locale = this.localeData();\n let output = relativeTime(this, !withSuffix, locale);\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n return locale.postformat(output);\n }\n localeData() {\n return this._locale;\n }\n locale(localeKey) {\n if (!localeKey) {\n return this._locale._abbr;\n }\n this._locale = getLocale(localeKey) || this._locale;\n return this;\n }\n abs() {\n const mathAbs = Math.abs;\n const data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.month = mathAbs(data.month);\n data.year = mathAbs(data.year);\n return this;\n }\n as(_units) {\n if (!this.isValid()) {\n return NaN;\n }\n let days;\n let months;\n const milliseconds = this._milliseconds;\n const units = normalizeUnits(_units);\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n return units === 'month' ? months : months / 12;\n }\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hours':\n return days * 24 + milliseconds / 36e5;\n case 'minutes':\n return days * 1440 + milliseconds / 6e4;\n case 'seconds':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'milliseconds':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error(`Unknown unit ${units}`);\n }\n }\n valueOf() {\n if (!this.isValid()) {\n return NaN;\n }\n return (this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6);\n }\n}\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\n\nfunction isValid(config) {\n if (config._isValid == null) {\n const flags = getParsingFlags(config);\n const parsedParts = Array.prototype.some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n let isNowValid = !isNaN(config._d && config._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (config._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n if (Object.isFrozen == null || !Object.isFrozen(config)) {\n config._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return config._isValid;\n}\nfunction createInvalid(config, flags) {\n config._d = new Date(NaN);\n Object.assign(getParsingFlags(config), flags || { userInvalidated: true });\n return config;\n}\nfunction markInvalid(config) {\n config._isValid = false;\n return config;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nconst extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\nconst basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\nconst tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\nconst isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/, true],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/, true],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/, true],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/, true],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/, true],\n ['YYYYMMDD', /\\d{8}/, true],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/, true],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/, true]\n];\n// iso time formats and regexes\nconst isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n];\nconst aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\nconst obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\nconst rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n// date from iso format\nfunction configFromISO(config) {\n if (!isString(config._i)) {\n return config;\n }\n const input = config._i;\n const match = extendedIsoRegex.exec(input) || basicIsoRegex.exec(input);\n let allowTime;\n let dateFormat;\n let timeFormat;\n let tzFormat;\n if (!match) {\n config._isValid = false;\n return config;\n }\n // getParsingFlags(config).iso = true;\n let i;\n let l;\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return config;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return config;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return config;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n }\n else {\n config._isValid = false;\n return config;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n return configFromStringAndFormat(config);\n}\nfunction extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n return result;\n}\nfunction untruncateYear(yearStr) {\n const year = parseInt(yearStr, 10);\n return year <= 49 ? year + 2000 : year;\n}\nfunction preprocessRFC2822(str) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return str\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ').trim();\n}\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n const weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr);\n const weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n }\n else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n }\n else {\n const hm = parseInt(numOffset, 10);\n const m = hm % 100;\n const h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n if (!isString(config._i)) {\n return config;\n }\n const match = rfc2822.exec(preprocessRFC2822(config._i));\n if (!match) {\n return markInvalid(config);\n }\n const parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return config;\n }\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n getParsingFlags(config).rfc2822 = true;\n return config;\n}\n// date from iso format or fallback\nfunction configFromString(config) {\n if (!isString(config._i)) {\n return config;\n }\n const matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return config;\n }\n // todo: update logic processing\n // isISO -> configFromISO\n // isRFC -> configFromRFC\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n }\n else {\n return config;\n }\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n }\n else {\n return config;\n }\n // Final attempt, use Input Fallback\n // hooks.createFromInputFallback(config);\n return createInvalid(config);\n}\n// hooks.createFromInputFallback = deprecate(\n// 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n// 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n// 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n// 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n// function (config) {\n// config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n// }\n// );\n\n// moment.js\n// version : 2.18.1\n// authors : Tim Wood, Iskren Chernev, Moment.js contributors\n// license : MIT\n// momentjs.com\nfunction formatDate(date, format, locale, isUTC, offset = 0) {\n const _locale = getLocale(locale || 'en');\n if (!_locale) {\n throw new Error(`Locale \"${locale}\" is not defined, please add it with \"defineLocale(...)\"`);\n }\n const _format = format || (isUTC ? 'YYYY-MM-DDTHH:mm:ss[Z]' : 'YYYY-MM-DDTHH:mm:ssZ');\n const output = formatMoment(date, _format, _locale, isUTC, offset);\n if (!output) {\n return output;\n }\n return _locale.postformat(output);\n}\n// format date using native date object\nfunction formatMoment(date, _format, locale, isUTC, offset = 0) {\n if (!isDateValid(date)) {\n return locale.invalidDate;\n }\n const format = expandFormat(_format, locale);\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](date, locale, isUTC, offset);\n}\nfunction expandFormat(_format, locale) {\n let format = _format;\n let i = 5;\n const localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n const replaceLongDateFormatTokens = (input) => {\n return locale.formatLongDate(input) || input;\n };\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n return format;\n}\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n\nfunction currentDateArray(config) {\n const nowValue = new Date();\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n const input = [];\n let i;\n let date;\n let yearToUse;\n if (config._d) {\n return config;\n }\n const currentDate = currentDateArray(config);\n // compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n // if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n date = new Date(Date.UTC(yearToUse, 0, config._dayOfYear));\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n // eslint-disable-next-line prefer-spread\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n const expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n // check for mismatching day of week\n if (config._w && typeof config._w[\"d\"] !== 'undefined' && config._w[\"d\"] !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n return config;\n}\nfunction dayOfYearFromWeekInfo(config) {\n let weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n const w = config._w;\n if (w[\"GG\"] != null || w[\"W\"] != null || w[\"E\"] != null) {\n dow = 1;\n doy = 4;\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w[\"GG\"], config._a[YEAR], weekOfYear(new Date(), 1, 4).year);\n week = defaults(w[\"W\"], 1);\n weekday = defaults(w[\"E\"], 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n }\n else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n const curWeek = weekOfYear(new Date(), dow, doy);\n weekYear = defaults(w[\"gg\"], config._a[YEAR], curWeek.year);\n // Default to current week.\n week = defaults(w[\"w\"], curWeek.week);\n if (w[\"d\"] != null) {\n // weekday -- low day numbers are considered next week\n weekday = w[\"d\"];\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n }\n else if (w[\"e\"] != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w[\"e\"] + dow;\n if (w[\"e\"] < 0 || w[\"e\"] > 6) {\n weekdayOverflow = true;\n }\n }\n else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n }\n else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n }\n else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n return config;\n}\n\nfunction checkOverflow(config) {\n let overflow;\n const a = config._a;\n if (a && getParsingFlags(config).overflow === -2) {\n // todo: fix this sh*t\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n if (getParsingFlags(config)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(config)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(config)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n getParsingFlags(config).overflow = overflow;\n }\n return config;\n}\n\n// constant that refers to the ISO standard\n// hooks.ISO_8601 = function () {};\nconst ISO_8601 = 'ISO_8601';\n// constant that refers to the RFC 2822 form\n// hooks.RFC_2822 = function () {};\nconst RFC_2822 = 'RFC_2822';\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === ISO_8601) {\n return configFromISO(config);\n }\n if (config._f === RFC_2822) {\n return configFromRFC2822(config);\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n if (isArray(config._f) || (!config._i && config._i !== 0)) {\n return config;\n }\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n let input = config._i.toString();\n let totalParsedInputLength = 0;\n const inputLength = input.length;\n const tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n let i;\n let token;\n let parsedInput;\n let skipped;\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (input.match(getParseRegexForToken(token, config._locale)) || [])[0];\n if (parsedInput) {\n skipped = input.substr(0, input.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n input = input.slice(input.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = inputLength - totalParsedInputLength;\n if (input.length > 0) {\n getParsingFlags(config).unusedInput.push(input);\n }\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = void 0;\n }\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n configFromArray(config);\n return checkOverflow(config);\n}\nfunction meridiemFixWrap(locale, _hour, meridiem) {\n let hour = _hour;\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n }\n if (locale.isPM == null) {\n // this is not supposed to happen\n return hour;\n }\n // Fallback\n const isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n let tempConfig;\n let bestMoment;\n let scoreToBeat;\n let currentScore;\n if (!config._f || config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n return createInvalid(config);\n }\n let i;\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = Object.assign({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n if (!isValid(tempConfig)) {\n continue;\n }\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n // or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n return Object.assign(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n if (config._d) {\n return config;\n }\n const input = config._i;\n if (isObject(input)) {\n const i = normalizeObjectUnits(input);\n config._a = [i.year, i.month, i.day, i.hours, i.minutes, i.seconds, i.milliseconds]\n // todo: obsolete -> remove it\n .map(obj => isString(obj) ? parseInt(obj, 10) : obj);\n }\n return configFromArray(config);\n}\n\nfunction createFromConfig(config) {\n const res = checkOverflow(prepareConfig(config));\n // todo: remove, in moment.js it's never called cuz of moment constructor\n res._d = new Date(res._d != null ? res._d.getTime() : NaN);\n if (!isValid(Object.assign({}, res, { _isValid: null }))) {\n res._d = new Date(NaN);\n }\n // todo: update offset\n /*if (res._nextDay) {\n // Adding is smart enough around DST\n res._d = add(res._d, 1, 'day');\n res._nextDay = undefined;\n }*/\n return res;\n}\nfunction prepareConfig(config) {\n let input = config._i;\n const format = config._f;\n config._locale = config._locale || getLocale(config._l);\n if (input === null || (format === undefined && input === '')) {\n return createInvalid(config, { nullInput: true });\n }\n if (isString(input)) {\n config._i = input = config._locale.preparse(input, format);\n }\n if (isDate(input)) {\n config._d = cloneDate(input);\n return config;\n }\n // todo: add check for recursion\n if (isArray(format)) {\n configFromStringAndArray(config);\n }\n else if (format) {\n configFromStringAndFormat(config);\n }\n else {\n configFromInput(config);\n }\n if (!isValid(config)) {\n config._d = null;\n }\n return config;\n}\nfunction configFromInput(config) {\n const input = config._i;\n if (isUndefined(input)) {\n config._d = new Date();\n }\n else if (isDate(input)) {\n config._d = cloneDate(input);\n }\n else if (isString(input)) {\n configFromString(config);\n }\n else if (isArray(input) && input.length) {\n const _arr = input.slice(0);\n config._a = _arr.map(obj => isString(obj) ? parseInt(obj, 10) : obj);\n configFromArray(config);\n }\n else if (isObject(input)) {\n configFromObject(config);\n }\n else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n }\n else {\n // hooks.createFromInputFallback(config);\n return createInvalid(config);\n }\n return config;\n}\nfunction createLocalOrUTC(input, format, localeKey, strict, isUTC) {\n const config = {};\n let _input = input;\n // params switch -> skip; testing it well\n // if (localeKey === true || localeKey === false) {\n // strict = localeKey;\n // localeKey = undefined;\n // }\n // todo: fail fast and return not valid date\n if ((isObject(_input) && isObjectEmpty(_input)) || (isArray(_input) && _input.length === 0)) {\n _input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n // config._isAMomentObject = true;\n config._useUTC = config._isUTC = isUTC;\n config._l = localeKey;\n config._i = _input;\n config._f = format;\n config._strict = strict;\n return createFromConfig(config);\n}\n\nfunction parseDate(input, format, localeKey, strict, isUTC) {\n if (isDate(input)) {\n return input;\n }\n const config = createLocalOrUTC(input, format, localeKey, strict, isUTC);\n return config._d;\n}\nfunction utcAsLocal(date) {\n if (!(date instanceof Date)) {\n return null;\n }\n return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n}\n\nfunction absRound(num) {\n return num < 0 ? Math.round(num * -1) * -1 : Math.round(num);\n}\n\nfunction isAfter(date1, date2, units = 'milliseconds') {\n if (!date1 || !date2) {\n return false;\n }\n if (units === 'milliseconds') {\n return date1.valueOf() > date2.valueOf();\n }\n return date2.valueOf() < startOf(date1, units).valueOf();\n}\nfunction isBefore(date1, date2, units = 'milliseconds') {\n if (!date1 || !date2) {\n return false;\n }\n if (units === 'milliseconds') {\n return date1.valueOf() < date2.valueOf();\n }\n return endOf(date1, units).valueOf() < date2.valueOf();\n}\nfunction isDisabledDay(date, daysDisabled) {\n if (typeof daysDisabled === 'undefined' || !daysDisabled || !daysDisabled.length) {\n return false;\n }\n return daysDisabled.some((day) => day === date.getDay());\n}\nfunction isBetween(date, from, to, units, inclusivity = '()') {\n const leftBound = inclusivity[0] === '('\n ? isAfter(date, from, units)\n : !isBefore(date, from, units);\n const rightBound = inclusivity[1] === ')'\n ? isBefore(date, to, units)\n : !isAfter(date, to, units);\n return leftBound && rightBound;\n}\nfunction isSame(date1, date2, units = 'milliseconds') {\n if (!date1 || !date2) {\n return false;\n }\n if (units === 'milliseconds') {\n return date1.valueOf() === date2.valueOf();\n }\n const inputMs = date2.valueOf();\n return (startOf(date1, units).valueOf() <= inputMs &&\n inputMs <= endOf(date1, units).valueOf());\n}\nfunction isSameDay(date1, date2) {\n return (date1.getDay() == date2.getDay());\n}\nfunction isSameOrAfter(date1, date2, units) {\n return isSame(date1, date2, units) || isAfter(date1, date2, units);\n}\nfunction isSameOrBefore(date1, date2, units) {\n return isSame(date1, date2, units) || isBefore(date1, date2, units);\n}\n\n// ASP.NET json date format regex\nconst aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n// and further modified to allow for strings containing both week and day\nconst isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\nfunction createDuration(input, key, config = {}) {\n const duration = convertDuration(input, key);\n // matching against regexp is expensive, do it on demand\n return new Duration(duration, config);\n}\nfunction convertDuration(input, key) {\n // checks for null or undefined\n if (input == null) {\n return {};\n }\n if (isDuration(input)) {\n return {\n milliseconds: input._milliseconds,\n day: input._days,\n month: input._months\n };\n }\n if (isNumber(input)) {\n // duration = {};\n return key ? { [key]: input } : { milliseconds: input };\n }\n if (isString(input)) {\n let match = aspNetRegex.exec(input);\n if (match) {\n const sign = (match[1] === '-') ? -1 : 1;\n return {\n year: 0,\n day: toInt(match[DATE]) * sign,\n hours: toInt(match[HOUR]) * sign,\n minutes: toInt(match[MINUTE]) * sign,\n seconds: toInt(match[SECOND]) * sign,\n // the millisecond decimal point is included in the match\n milliseconds: toInt(absRound(toInt(match[MILLISECOND]) * 1000)) * sign\n };\n }\n match = isoRegex.exec(input);\n if (match) {\n const sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;\n return {\n year: parseIso(match[2], sign),\n month: parseIso(match[3], sign),\n week: parseIso(match[4], sign),\n day: parseIso(match[5], sign),\n hours: parseIso(match[6], sign),\n minutes: parseIso(match[7], sign),\n seconds: parseIso(match[8], sign)\n };\n }\n }\n if (isObject(input) && ('from' in input || 'to' in input)) {\n const diffRes = momentsDifference(parseDate(input.from), parseDate(input.to));\n return {\n milliseconds: diffRes.milliseconds,\n month: diffRes.months\n };\n }\n return input;\n}\n// createDuration.fn = Duration.prototype;\n// createDuration.invalid = invalid;\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n const res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\nfunction positiveMomentsDifference(base, other) {\n const res = { milliseconds: 0, months: 0 };\n res.months = getMonth(other) - getMonth(base) +\n (getFullYear(other) - getFullYear(base)) * 12;\n const _basePlus = add(cloneDate(base), res.months, 'month');\n if (isAfter(_basePlus, other)) {\n --res.months;\n }\n res.milliseconds = +other - +(add(cloneDate(base), res.months, 'month'));\n return res;\n}\nfunction momentsDifference(base, other) {\n if (!(isDateValid(base) && isDateValid(other))) {\n return { milliseconds: 0, months: 0 };\n }\n let res;\n const _other = cloneWithOffset(other, base, { _offset: base.getTimezoneOffset() });\n if (isBefore(base, _other)) {\n res = positiveMomentsDifference(base, _other);\n }\n else {\n res = positiveMomentsDifference(_other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n return res;\n}\n\nfunction add(date, val, period, isUTC) {\n const dur = createDuration(val, period);\n return addSubtract(date, dur, 1, isUTC);\n}\nfunction subtract(date, val, period, isUTC) {\n const dur = createDuration(val, period);\n return addSubtract(date, dur, -1, isUTC);\n}\nfunction addSubtract(date, duration, isAdding, isUTC) {\n const milliseconds = duration._milliseconds;\n const days = absRound(duration._days);\n const months = absRound(duration._months);\n // todo: add timezones support\n // const _updateOffset = updateOffset == null ? true : updateOffset;\n if (months) {\n setMonth(date, getMonth(date, isUTC) + months * isAdding, isUTC);\n }\n if (days) {\n setDate(date, getDate(date, isUTC) + days * isAdding, isUTC);\n }\n if (milliseconds) {\n setTime(date, getTime(date) + milliseconds * isAdding);\n }\n return cloneDate(date);\n // todo: add timezones support\n // if (_updateOffset) {\n // hooks.updateOffset(date, days || months);\n // }\n}\n\nfunction initDayOfWeek() {\n // FORMATTING\n addFormatToken('d', null, 'do', function (date, opts) {\n return getDay(date, opts.isUTC)\n .toString(10);\n });\n addFormatToken('dd', null, null, function (date, opts) {\n return opts.locale.weekdaysMin(date, opts.format, opts.isUTC);\n });\n addFormatToken('ddd', null, null, function (date, opts) {\n return opts.locale.weekdaysShort(date, opts.format, opts.isUTC);\n });\n addFormatToken('dddd', null, null, function (date, opts) {\n return opts.locale.weekdays(date, opts.format, opts.isUTC);\n });\n addFormatToken('e', null, null, function (date, opts) {\n return getLocaleDayOfWeek(date, opts.locale, opts.isUTC)\n .toString(10);\n // return getDay(date, opts.isUTC).toString(10);\n });\n addFormatToken('E', null, null, function (date, opts) {\n return getISODayOfWeek(date, opts.isUTC)\n .toString(10);\n });\n // ALIASES\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n // PARSING\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n const weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week[\"d\"] = weekday;\n }\n else {\n getParsingFlags(config).invalidWeekday = !!input;\n }\n return config;\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n return config;\n });\n}\n// HELPERS\nfunction parseWeekday(input, locale) {\n if (!isString(input)) {\n return input;\n }\n const _num = parseInt(input, 10);\n if (!isNaN(_num)) {\n return _num;\n }\n const _weekDay = locale.weekdaysParse(input);\n if (isNumber(_weekDay)) {\n return _weekDay;\n }\n return null;\n}\nfunction parseIsoWeekday(input, locale = getLocale()) {\n if (isString(input)) {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNumber(input) && isNaN(input) ? null : input;\n}\n// MOMENTS\nfunction getSetDayOfWeek(date, input, opts) {\n if (!input) {\n return getDayOfWeek(date, opts.isUTC);\n }\n return setDayOfWeek(date, input, opts.locale, opts.isUTC);\n}\nfunction setDayOfWeek(date, input, locale = getLocale(), isUTC) {\n const day = getDay(date, isUTC);\n const _input = parseWeekday(input, locale);\n return add(date, _input - day, 'day');\n}\nfunction getDayOfWeek(date, isUTC) {\n return getDay(date, isUTC);\n}\n/********************************************/\n// todo: utc\n// getSetLocaleDayOfWeek\nfunction getLocaleDayOfWeek(date, locale = getLocale(), isUTC) {\n return (getDay(date, isUTC) + 7 - locale.firstDayOfWeek()) % 7;\n}\nfunction setLocaleDayOfWeek(date, input, opts = {}) {\n const weekday = getLocaleDayOfWeek(date, opts.locale, opts.isUTC);\n return add(date, input - weekday, 'day');\n}\n// getSetISODayOfWeek\nfunction getISODayOfWeek(date, isUTC) {\n return getDay(date, isUTC) || 7;\n}\nfunction setISODayOfWeek(date, input, opts = {}) {\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n const weekday = parseIsoWeekday(input, opts.locale);\n return setDayOfWeek(date, getDayOfWeek(date) % 7 ? weekday : weekday - 7);\n}\n\n//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\nconst symbolMap$1 = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠'\n};\nconst numberMap$1 = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n};\nconst pluralForm = function (num) {\n return num === 0 ? 0 : num === 1 ? 1 : num === 2 ? 2 : num % 100 >= 3 && num % 100 <= 10 ? 3 : num % 100 >= 11 ? 4 : 5;\n};\nconst plurals = {\n s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n};\nconst pluralize = function (u) {\n return function (num, withoutSuffix) {\n const f = pluralForm(num);\n let str = plurals[u][pluralForm(num)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, num.toString());\n };\n};\nconst months$2 = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n];\nconst arLocale = {\n abbr: 'ar',\n months: months$2,\n monthsShort: months$2,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM(input) {\n return 'م' === input;\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n }\n else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n preparse(str) {\n return str.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap$1[match];\n }).replace(/،/g, ',');\n },\n postformat(str) {\n return str.replace(/\\d/g, function (match) {\n return symbolMap$1[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 6,\n doy: 12 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Iskren Ivov Chernev : https://github.com/ichernev\n//! author : Kunal Marwaha : https://github.com/marwahaha\n//! author : Matt Grande : https://github.com/mattgrande\n//! author : Isaac Cambron : https://github.com/icambron\n//! author : Venelin Manchev : https://github.com/vmanchev\nconst bgLocale = {\n abbr: 'bg',\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort: 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function (d) {\n switch (d) {\n case 0:\n case 3:\n case 6:\n return '[В изминалата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[В изминалия] dddd [в] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дни',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (_num) {\n const number = Number(_num);\n let lastDigit = number % 10, last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n }\n else if (last2Digits === 0) {\n return number + '-ен';\n }\n else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n }\n else if (lastDigit === 1) {\n return number + '-ви';\n }\n else if (lastDigit === 2) {\n return number + '-ри';\n }\n else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n }\n else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1,\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Xavier Arbat : https://github.com/XavisaurusRex\nlet monthsShortDot$5 = 'gen._feb._mar._abr._mai._jun._jul._ago._set._oct._nov._des.'.split('_'), monthsShort$7 = 'ene_feb_mar_abr_mai_jun_jul_ago_set_oct_nov_des'.split('_');\nlet monthsParse$6 = [/^gen/i, /^feb/i, /^mar/i, /^abr/i, /^mai/i, /^jun/i, /^jul/i, /^ago/i, /^set/i, /^oct/i, /^nov/i, /^des/i];\nlet monthsRegex$5 = /^(gener|febrer|març|abril|maig|juny|juliol|agost|setembre|octubre|novembre|desembre|gen\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|jun\\.?|jul\\.?|ago\\.?|set\\.?|oct\\.?|nov\\.?|des\\.?)/i;\nconst caLocale = {\n abbr: 'ca',\n months: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortDot$5;\n }\n if (/-MMM-/.test(format)) {\n return monthsShort$7[getMonth(date, isUTC)];\n }\n return monthsShortDot$5[getMonth(date, isUTC)];\n },\n monthsRegex: monthsRegex$5,\n monthsShortRegex: monthsRegex$5,\n monthsStrictRegex: /^(gener|febrer|març|abril|maig|juny|juliol|agost|setembre|octubre|novembre|desembre)/i,\n monthsShortStrictRegex: /^(gen\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|jun\\.?|jul\\.?|ago\\.?|set\\.?|oct\\.?|nov\\.?|des\\.?)/i,\n monthsParse: monthsParse$6,\n longMonthsParse: monthsParse$6,\n shortMonthsParse: monthsParse$6,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n weekdaysShort: 'diu._dil._dim._dix._dij._div._dis.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date) {\n return '[avui a ' + ('la' + (getHours(date) !== 1) ? 'les' : '') + '] LT';\n },\n nextDay(date) {\n return '[dema a ' + ('la' + (getHours(date) !== 1) ? 'les' : '') + '] LT';\n },\n nextWeek(date) {\n return 'dddd [a ' + ('la' + (getHours(date) !== 1) ? 'les' : '') + '] LT';\n },\n lastDay(date) {\n return '[ahir a ' + ('la' + (getHours(date) !== 1) ? 'les' : '') + '] LT';\n },\n lastWeek(date) {\n return '[el] dddd [' + ('passada la ' + (getHours(date) !== 1) ? 'passades les' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|on|er|rt|é)/,\n ordinal(_num) {\n const num = Number(_num);\n const output = (num > 4) ? 'é' :\n (num === 1 || num === 3) ? 'r' :\n (num === 2) ? 'n' :\n (num === 4) ? 't' : 'é';\n return num + output;\n },\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\nconst months$1 = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_');\nconst monthsShort$6 = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');\nfunction plural$4(num) {\n return (num > 1) && (num < 5) && (~~(num / 10) !== 1);\n}\nfunction translate$6(num, withoutSuffix, key, isFuture) {\n const result = num + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural$4(num) ? 'sekundy' : 'sekund');\n }\n else {\n return result + 'sekundami';\n }\n // break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural$4(num) ? 'minuty' : 'minut');\n }\n else {\n return result + 'minutami';\n }\n // break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural$4(num) ? 'hodiny' : 'hodin');\n }\n else {\n return result + 'hodinami';\n }\n // break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural$4(num) ? 'dny' : 'dní');\n }\n else {\n return result + 'dny';\n }\n // break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural$4(num) ? 'měsíce' : 'měsíců');\n }\n else {\n return result + 'měsíci';\n }\n // break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural$4(num) ? 'roky' : 'let');\n }\n else {\n return result + 'lety';\n }\n // break;\n }\n}\nconst csLocale = {\n abbr: 'cs',\n months: months$1,\n monthsShort: monthsShort$6,\n monthsParse: (function (months, monthsShort) {\n let i, _monthsParse = [];\n for (i = 0; i < 12; i++) {\n // use custom parser to solve problem with July (červenec)\n _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');\n }\n return _monthsParse;\n }(months$1, monthsShort$6)),\n shortMonthsParse: (function (monthsShort) {\n let i, _shortMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');\n }\n return _shortMonthsParse;\n }(monthsShort$6)),\n longMonthsParse: (function (months) {\n let i, _longMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');\n }\n return _longMonthsParse;\n }(months$1)),\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY'\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate$6,\n ss: translate$6,\n m: translate$6,\n mm: translate$6,\n h: translate$6,\n hh: translate$6,\n d: translate$6,\n dd: translate$6,\n M: translate$6,\n MM: translate$6,\n y: translate$6,\n yy: translate$6\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Danish (Denmark) [da]\n//! author : Per Hansen : https://github.com/perhp\nconst daLocale = {\n abbr: 'da',\n months: 'Januar_Februar_Marts_April_Maj_Juni_Juli_August_September_Oktober_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Maj_Jun_Jul_Aug_Sep_Okt_Nov_Dec'.split('_'),\n weekdays: 'Søndag_Mandag_Tirsdag_Onsdag_Torsdag_Fredag_Lørdag'.split('_'),\n weekdaysShort: 'Søn_Man_Tir_Ons_Tor_Fre_Lør'.split('_'),\n weekdaysMin: 'Sø_Ma_Ti_On_To_Fr_Lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\nfunction processRelativeTime$2(num, withoutSuffix, key, isFuture) {\n const format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [num + ' Tage', num + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [num + ' Monate', num + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [num + ' Jahre', num + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n}\nconst deLocale = {\n abbr: 'de',\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime$2,\n mm: '%d Minuten',\n h: processRelativeTime$2,\n hh: '%d Stunden',\n d: processRelativeTime$2,\n dd: processRelativeTime$2,\n M: processRelativeTime$2,\n MM: processRelativeTime$2,\n y: processRelativeTime$2,\n yy: processRelativeTime$2\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\nconst enGbLocale = {\n abbr: 'en-gb',\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal(_num) {\n const num = Number(_num);\n const b = num % 10, output = (~~(num % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return num + output;\n },\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\nlet monthsShortDot$4 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), monthsShort$5 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\nlet monthsParse$5 = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\nlet monthsRegex$4 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\nconst esDoLocale = {\n abbr: 'es-do',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortDot$4;\n }\n else if (/-MMM-/.test(format)) {\n return monthsShort$5[getMonth(date, isUTC)];\n }\n else {\n return monthsShortDot$4[getMonth(date, isUTC)];\n }\n },\n monthsRegex: monthsRegex$4,\n monthsShortRegex: monthsRegex$4,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$5,\n longMonthsParse: monthsParse$5,\n shortMonthsParse: monthsParse$5,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay(date) {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date) {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date) {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date) {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date) {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\nlet monthsShortDot$3 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\nlet monthsParse$4 = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\nlet monthsRegex$3 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\nconst esLocale = {\n abbr: 'es',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortDot$3;\n }\n if (/-MMM-/.test(format)) {\n return monthsShort$4[getMonth(date, isUTC)];\n }\n return monthsShortDot$3[getMonth(date, isUTC)];\n },\n monthsRegex: monthsRegex$3,\n monthsShortRegex: monthsRegex$3,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$4,\n longMonthsParse: monthsParse$4,\n shortMonthsParse: monthsParse$4,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date) {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date) {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date) {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date) {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date) {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Spanish (Puerto Rico) [es-pr]\nlet monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_');\nlet monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\nconst esPrLocale = {\n abbr: 'es-pr',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortDot$2;\n }\n else if (/-MMM-/.test(format)) {\n return monthsShort$3[getMonth(date, isUTC)];\n }\n else {\n return monthsShortDot$2[getMonth(date, isUTC)];\n }\n },\n monthsParseExact: true,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay(date) {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date) {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date) {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date) {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date) {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0,\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\nlet monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_');\nlet monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\nconst esUsLocale = {\n abbr: 'es-us',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortDot$1;\n }\n else if (/-MMM-/.test(format)) {\n return monthsShort$2[getMonth(date, isUTC)];\n }\n else {\n return monthsShortDot$1[getMonth(date, isUTC)];\n }\n },\n monthsParseExact: true,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM [de] D [de] YYYY',\n LLL: 'MMMM [de] D [de] YYYY h:mm A',\n LLLL: 'dddd, MMMM [de] D [de] YYYY h:mm A'\n },\n calendar: {\n sameDay(date) {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date) {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date) {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date) {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date) {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0,\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Chris Gedrim : https://github.com/a90machado\nconst processRelativeTime$1 = function (num, withoutSuffix, key, isFuture) {\n const format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [num + 'sekundi', num + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [num + ' minuti', num + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [num + ' tunni', num + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [num + ' kuu', num + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [num + ' aasta', num + ' aastat']\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n};\nconst etLocale = {\n abbr: 'et',\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime$1,\n ss: processRelativeTime$1,\n m: processRelativeTime$1,\n mm: processRelativeTime$1,\n h: processRelativeTime$1,\n hh: processRelativeTime$1,\n d: processRelativeTime$1,\n dd: '%d päeva',\n M: processRelativeTime$1,\n MM: processRelativeTime$1,\n y: processRelativeTime$1,\n yy: processRelativeTime$1\n },\n dayOfMonthOrdinalParse: /\\d{1,2}./,\n ordinal: '%d.',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n// https://github.com/moment/moment/blob/develop/locale/fi.js\nvar numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '), numbersFuture = [\n 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',\n numbersPast[7], numbersPast[8], numbersPast[9]\n];\nfunction translate$5(num, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(num, isFuture) + ' ' + result;\n return result;\n}\nfunction verbalNumber(num, isFuture) {\n return num < 10 ? (isFuture ? numbersFuture[num] : numbersPast[num]) : num;\n}\nconst fiLocale = {\n abbr: 'fi',\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate$5,\n ss: translate$5,\n m: translate$5,\n mm: translate$5,\n h: translate$5,\n hh: translate$5,\n d: translate$5,\n dd: translate$5,\n M: translate$5,\n MM: translate$5,\n y: translate$5,\n yy: translate$5\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\nconst frLocale = {\n abbr: 'fr',\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal(_num, period) {\n const num = Number(_num);\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return num + (num === 1 ? 'er' : '');\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return num + (num === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return num + (num === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Darío Beiró : https://github.com/quinobravo\nlet monthsShortDot = 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'), monthsShort$1 = 'xan_feb_mar_abr_mai_xuñ_xul_ago_set_out_nov_dec'.split('_');\nlet monthsParse$3 = [/^xan/i, /^feb/i, /^mar/i, /^abr/i, /^mai/i, /^xuñ/i, /^xul/i, /^ago/i, /^set/i, /^out/i, /^nov/i, /^dec/i];\nlet monthsRegex$2 = /^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro|xan\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|xuñ\\.?|xul\\.?|ago\\.?|set\\.?|out\\.?|nov\\.?|dec\\.?)/i;\nconst glLocale = {\n abbr: 'gl',\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortDot;\n }\n if (/-MMM-/.test(format)) {\n return monthsShort$1[getMonth(date, isUTC)];\n }\n return monthsShortDot[getMonth(date, isUTC)];\n },\n monthsRegex: monthsRegex$2,\n monthsShortRegex: monthsRegex$2,\n monthsStrictRegex: /^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro)/i,\n monthsShortStrictRegex: /^(xan\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|xuñ\\.?|xul\\.?|ago\\.?|set\\.?|out\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse$3,\n longMonthsParse: monthsParse$3,\n shortMonthsParse: monthsParse$3,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date) {\n return '[hoxe á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date) {\n return '[mañan á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date) {\n return 'dddd [á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date) {\n return '[onte á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date) {\n return '[o] dddd [pasado á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'fai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\nconst heLocale = {\n abbr: 'he',\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),\n monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh(num) {\n if (num === 2) {\n return 'שעתיים';\n }\n return num + ' שעות';\n },\n d: 'יום',\n dd(num) {\n if (num === 2) {\n return 'יומיים';\n }\n return num + ' ימים';\n },\n M: 'חודש',\n MM(num) {\n if (num === 2) {\n return 'חודשיים';\n }\n return num + ' חודשים';\n },\n y: 'שנה',\n yy(num) {\n if (num === 2) {\n return 'שנתיים';\n }\n else if (num % 10 === 0 && num !== 10) {\n return num + ' שנה';\n }\n return num + ' שנים';\n }\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM(input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem(hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n }\n else if (hour < 10) {\n return 'בבוקר';\n }\n else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n }\n else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n }\n else {\n return 'בערב';\n }\n }\n};\n\n//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\nlet symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०'\n}, numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n};\nconst hiLocale = {\n abbr: 'hi',\n months: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),\n monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष'\n },\n preparse(str) {\n return str.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat(str) {\n return str.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n }\n else if (meridiem === 'सुबह') {\n return hour;\n }\n else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n }\n else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n }\n else if (hour < 10) {\n return 'सुबह';\n }\n else if (hour < 17) {\n return 'दोपहर';\n }\n else if (hour < 20) {\n return 'शाम';\n }\n else {\n return 'रात';\n }\n },\n week: {\n dow: 0,\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\nlet weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\nfunction translate$4(num, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + ((isFuture || withoutSuffix) ? ' másodperc' : ' másodperce');\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n}\nfunction week(date, isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[getDayOfWeek(date)] + '] LT[-kor]';\n}\nconst huLocale = {\n abbr: 'hu',\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort: 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM(input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem(hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n }\n else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek(date) {\n return week(date, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek(date) {\n return week(date, false);\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate$4,\n ss: translate$4,\n m: translate$4,\n mm: translate$4,\n h: translate$4,\n hh: translate$4,\n d: translate$4,\n dd: translate$4,\n M: translate$4,\n MM: translate$4,\n y: translate$4,\n yy: translate$4\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Danijel Grmec : https://github.com/cobaltsis\nconst hrLocale = {\n abbr: 'hr',\n months: 'Siječanj_Veljača_Ožujak_Travanj_Svibanj_Lipanj_Srpanj_Kolovoz_Rujan_Listopad_Studeni_Prosinac'.split('_'),\n monthsShort: 'Sij_Velj_Ožu_Tra_Svi_Lip_Srp_Kol_Ruj_Lis_Stu_Pro'.split('_'),\n weekdays: 'Nedjelja_Ponedjeljak_Utorak_Srijeda_Četvrtak_Petak_Subota'.split('_'),\n weekdaysShort: 'Ned_Pon_Uto_Sri_Čet_Pet_Sub'.split('_'),\n weekdaysMin: 'Ne_Po_Ut_Sr_Če_Pe_Su'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Danas u] LT',\n nextDay: '[Sutra u] LT',\n nextWeek: 'dddd [u] LT',\n lastDay: '[Jučer u] LT',\n lastWeek: '[Zadnji] dddd [u] LT',\n sameElse: 'L'\n },\n invalidDate: 'Neispravan datum',\n relativeTime: {\n future: 'za %s',\n past: '%s prije',\n s: 'nekoliko sekundi',\n ss: '%d sekundi',\n m: 'minuta',\n mm: '%d minuta',\n h: 'sat',\n hh: '%d sati',\n d: 'dan',\n dd: '%d dana',\n M: 'mjesec',\n MM: '%d mjeseci',\n y: 'godina',\n yy: '%d godina'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal(_num) {\n const num = Number(_num);\n const b = num % 10, output = (~~(num % 100 / 10) === 1) ? '.' :\n (b === 1) ? '.' :\n (b === 2) ? '.' :\n (b === 3) ? '.' : '.';\n return num + output;\n },\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Indonesia [id]\n//! author : Romy Kusuma : https://github.com/rkusuma\n//! reference: https://github.com/moment/moment/blob/develop/locale/id.js\nconst idLocale = {\n abbr: 'id',\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n }\n else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n }\n else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n }\n else if (hours < 15) {\n return 'siang';\n }\n else if (hours < 19) {\n return 'sore';\n }\n else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 1,\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\nconst itLocale = {\n abbr: 'it',\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future(num) {\n return ((/^[0-9].+$/).test(num.toString(10)) ? 'tra' : 'in') + ' ' + num;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: 'un\\'ora',\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\nconst jaLocale = {\n abbr: 'ja',\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 HH:mm dddd',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日 HH:mm dddd'\n },\n meridiemParse: /午前|午後/i,\n isPM(input) {\n return input === '午後';\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n }\n else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: '[来週]dddd LT',\n lastDay: '[昨日] LT',\n lastWeek: '[前週]dddd LT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal(num, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + '日';\n default:\n return num.toString(10);\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年'\n }\n};\n\n//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili\n//! author : Levan Tskipuri : https://github.com/tskipa\nconst kaLocale = {\n abbr: 'ka',\n months: {\n format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_'),\n standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_')\n },\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n isFormat: /(წინა|შემდეგ)/\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L'\n },\n relativeTime: {\n future(s) {\n var st = s.toString();\n return (/(წამი|წუთი|საათი|წელი)/).test(st) ?\n st.replace(/ი$/, 'ში') :\n st + 'ში';\n },\n past(s) {\n var st = s.toString();\n if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(st)) {\n return st.replace(/(ი|ე)$/, 'ის წინ');\n }\n if ((/წელი/).test(st)) {\n return st.replace(/წელი$/, 'წლის წინ');\n }\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal(_num, _period) {\n const num = Number(_num);\n if (num === 0) {\n return num.toString();\n }\n if (num === 1) {\n return num + '-ლი';\n }\n if ((num < 20) || (num <= 100 && (num % 20 === 0)) || (num % 100 === 0)) {\n return 'მე-' + num;\n }\n return num + '-ე';\n },\n week: {\n dow: 1,\n doy: 4\n }\n};\n\n// ! moment.js locale configuration\n// ! locale : Kazakh [kk]\n// ! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\nconst suffixes$1 = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n};\nconst kkLocale = {\n abbr: 'kk',\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal(_num) {\n const a = _num % 10;\n const b = _num >= 100 ? 100 : null;\n return _num + (suffixes$1[_num] || suffixes$1[a] || suffixes$1[b]);\n },\n week: {\n dow: 1,\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \nconst koLocale = {\n abbr: 'ko',\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm'\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (num, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + '일';\n case 'M':\n return num + '월';\n case 'w':\n case 'W':\n return num + '주';\n default:\n return num.toString(10);\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n }\n};\n\n//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Stanislavas Guk : https://github.com/ixoster\nconst units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus'\n};\nfunction translateSeconds(num, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n }\n else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n}\nfunction translateSingular(num, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);\n}\nfunction special(num) {\n return num % 10 === 0 || (num > 10 && num < 20);\n}\nfunction forms(key) {\n return units[key].split('_');\n}\nfunction translate$3(num, withoutSuffix, key, isFuture) {\n let result = num + ' ';\n if (num === 1) {\n return result + translateSingular(num, withoutSuffix, key[0], isFuture);\n }\n else if (withoutSuffix) {\n return result + (special(num) ? forms(key)[1] : forms(key)[0]);\n }\n else {\n if (isFuture) {\n return result + forms(key)[1];\n }\n else {\n return result + (special(num) ? forms(key)[1] : forms(key)[2]);\n }\n }\n}\nconst ltLocale = {\n abbr: 'lt',\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate$3,\n m: translateSingular,\n mm: translate$3,\n h: translateSingular,\n hh: translate$3,\n d: translateSingular,\n dd: translate$3,\n M: translateSingular,\n MM: translate$3,\n y: translateSingular,\n yy: translate$3\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal(num) {\n return num + '-oji';\n },\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Matiss Janis Aboltins : https://github.com/matissjanis\nconst lvLocale = {\n abbr: 'lv',\n months: 'Janvāris_Februāris_Marts_Aprīlis_Maijs_Jūnijs_Jūlijs_Augusts_Septembris_Oktobris_Novembris_Decembris'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Mai_Jūn_Jūl_Aug_Sep_Okt_Nov_Dec'.split('_'),\n weekdays: 'Svētdiena_Pirmdiena_Otrdiena_Trešdiena_Ceturtdiena_Piektdiena_Sestdiena'.split('_'),\n weekdaysShort: 'Svētd_Pirmd_Otrd_Trešd_Ceturtd_Piektd_Sestd'.split('_'),\n weekdaysMin: 'Sv_Pi_Ot_Tr_Ce_Pk_Se'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: 'dažām sekundēm',\n ss: '%d sekundēm',\n m: 'minūtes',\n mm: '%d minūtēm',\n h: 'stundas',\n hh: '%d stundām',\n d: 'dienas',\n dd: '%d dienām',\n M: 'mēneša',\n MM: '%d mēnešiem',\n y: 'gada',\n yy: '%d gadiem'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal(num) {\n return num + '.';\n },\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\nfunction translate$2(num, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return num + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return num + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return num + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return num + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return num + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return num + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return num.toString(10);\n }\n}\nconst mnLocale = {\n abbr: 'mn',\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),\n monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n }\n else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate$2,\n ss: translate$2,\n m: translate$2,\n mm: translate$2,\n h: translate$2,\n hh: translate$2,\n d: translate$2,\n dd: translate$2,\n M: translate$2,\n MM: translate$2,\n y: translate$2,\n yy: translate$2\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (num, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + ' өдөр';\n default:\n return num.toString(10);\n }\n }\n};\n\n//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\nconst nbLocale = {\n abbr: 'nb',\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\nlet monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_');\nlet monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\nlet monthsParse$2 = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\nlet monthsRegex$1 = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\nconst nlBeLocale = {\n abbr: 'nl-be',\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortWithDots$1;\n }\n else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$1[getMonth(date, isUTC)];\n }\n else {\n return monthsShortWithDots$1[getMonth(date, isUTC)];\n }\n },\n monthsRegex: monthsRegex$1,\n monthsShortRegex: monthsRegex$1,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse$2,\n longMonthsParse: monthsParse$2,\n shortMonthsParse: monthsParse$2,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal(_num) {\n const num = Number(_num);\n return num + ((num === 1 || num === 8 || num >= 20) ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\nlet monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\nlet monthsParse$1 = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\nlet monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\nconst nlLocale = {\n abbr: 'nl',\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort(date, format, isUTC) {\n if (!date) {\n return monthsShortWithDots;\n }\n else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[getMonth(date, isUTC)];\n }\n else {\n return monthsShortWithDots[getMonth(date, isUTC)];\n }\n },\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse$1,\n longMonthsParse: monthsParse$1,\n shortMonthsParse: monthsParse$1,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal(_num) {\n const num = Number(_num);\n return num + ((num === 1 || num === 8 || num >= 20) ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\nlet monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_');\nlet monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');\nfunction plural$3(num) {\n return (num % 10 < 5) && (num % 10 > 1) && ((~~(num / 10) % 10) !== 1);\n}\nfunction translate$1(num, withoutSuffix, key) {\n let result = num + ' ';\n switch (key) {\n case 'ss':\n return result + (plural$3(num) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural$3(num) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural$3(num) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural$3(num) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural$3(num) ? 'lata' : 'lat');\n }\n}\nconst plLocale = {\n abbr: 'pl',\n months(date, format, isUTC) {\n if (!date) {\n return monthsNominative;\n }\n else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[getMonth(date, isUTC)] + '|' + monthsNominative[getMonth(date, isUTC)] + ')';\n }\n else if (/D MMMM/.test(format)) {\n return monthsSubjective[getMonth(date, isUTC)];\n }\n else {\n return monthsNominative[getMonth(date, isUTC)];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[W niedzielę o] LT';\n case 2:\n return '[We wtorek o] LT';\n case 3:\n return '[W środę o] LT';\n case 5:\n return '[W piątek o] LT';\n case 6:\n return '[W sobotę o] LT';\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 4:\n return '[W zeszłą czwartek o] LT';\n case 5:\n return '[W zeszłą piątek o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate$1,\n m: translate$1,\n mm: translate$1,\n h: translate$1,\n hh: translate$1,\n d: '1 dzień',\n dd: '%d dni',\n M: 'miesiąc',\n MM: translate$1,\n y: 'rok',\n yy: translate$1\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\nconst ptBrLocale = {\n abbr: 'pt-br',\n months: 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek(date) {\n return (getDayOfWeek(date) === 0 || getDayOfWeek(date) === 6) ?\n '[Último] dddd [às] LT' : // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: '%s atrás',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº'\n};\n\n// ! moment.js locale configuration\n// ! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n// ! author : Earle white: https://github.com/5earle\nfunction relativeTimeWithPlural$2(num, withoutSuffix, key) {\n let format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n MM: 'luni',\n yy: 'ani'\n };\n let separator = ' ';\n if (num % 100 >= 20 || (num >= 100 && num % 100 === 0)) {\n separator = ' de ';\n }\n return num + separator + format[key];\n}\nconst roLocale = {\n abbr: 'ro',\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort: 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural$2,\n m: 'un minut',\n mm: relativeTimeWithPlural$2,\n h: 'o oră',\n hh: relativeTimeWithPlural$2,\n d: 'o zi',\n dd: relativeTimeWithPlural$2,\n M: 'o lună',\n MM: relativeTimeWithPlural$2,\n y: 'un an',\n yy: relativeTimeWithPlural$2\n },\n week: {\n dow: 1,\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! Author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\nfunction plural$2(word, num) {\n let forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n}\nfunction relativeTimeWithPlural$1(num, withoutSuffix, key) {\n let format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n }\n return num + ' ' + plural$2(format[key], +num);\n}\nlet monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];\n// http://new.gramota.ru/spravka/rules/139-prop : § 103\n// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\nconst ruLocale = {\n abbr: 'ru',\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку ?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n },\n weekdays: {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n // Выражение, которое соотвествует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar: {\n sameDay: '[Сегодня в] LT',\n nextDay: '[Завтра в] LT',\n lastDay: '[Вчера в] LT',\n nextWeek(date, now) {\n if (getWeek(now) !== getWeek(date)) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[В следующее] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd [в] LT';\n }\n }\n else {\n if (getDayOfWeek(date) === 2) {\n return '[Во] dddd [в] LT';\n }\n else {\n return '[В] dddd [в] LT';\n }\n }\n },\n lastWeek(date, now) {\n if (getWeek(now) !== getWeek(date)) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[В прошлое] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd [в] LT';\n }\n }\n else {\n if (getDayOfWeek(date) === 2) {\n return '[Во] dddd [в] LT';\n }\n else {\n return '[В] dddd [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural$1,\n m: relativeTimeWithPlural$1,\n mm: relativeTimeWithPlural$1,\n h: 'час',\n hh: relativeTimeWithPlural$1,\n d: 'день',\n dd: relativeTimeWithPlural$1,\n M: 'месяц',\n MM: relativeTimeWithPlural$1,\n y: 'год',\n yy: relativeTimeWithPlural$1\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM(input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n }\n else if (hour < 12) {\n return 'утра';\n }\n else if (hour < 17) {\n return 'дня';\n }\n else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal(_num, period) {\n const num = Number(_num);\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return num + '-й';\n case 'D':\n return num + '-го';\n case 'w':\n case 'W':\n return num + '-я';\n default:\n return num.toString(10);\n }\n },\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Jozef Pažin : https://github.com/atiris\nconst months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_');\nconst monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\nfunction plural$1(num) {\n return (num > 1) && (num < 5) && (~~(num / 10) !== 1);\n}\nfunction translate(num, withoutSuffix, key, isFuture) {\n const result = num + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(num) ? 'sekundy' : 'sekúnd');\n }\n else {\n return result + 'sekundami';\n }\n // break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(num) ? 'minúty' : 'minút');\n }\n else {\n return result + 'minútami';\n }\n // break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(num) ? 'hodiny' : 'hodín');\n }\n else {\n return result + 'hodinami';\n }\n // break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(num) ? 'dni' : 'dní');\n }\n else {\n return result + 'dňami';\n }\n // break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(num) ? 'mesiace' : 'mesiacov');\n }\n else {\n return result + 'mesiacmi';\n }\n // break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(num) ? 'roky' : 'rokov');\n }\n else {\n return result + 'rokmi';\n }\n // break;\n }\n}\nconst skLocale = {\n abbr: 'sk',\n months,\n monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY'\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'o %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : mihan : https://github.com/mihan\nfunction processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n }\n else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n }\n else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n }\n else {\n result += withoutSuffix || isFuture ? 'sekund' : 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n }\n else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n }\n else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n }\n else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n }\n else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n }\n else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n }\n else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n }\n else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n }\n else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n }\n else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n }\n else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n }\n else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n }\n else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n }\n else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n }\n else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n}\nconst slLocale = {\n abbr: 'sl',\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n nextWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Agon Cecelia : https://github.com/agoncecelia\nconst sqLocale = {\n abbr: 'sq',\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Dielë_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'Di_He_Ma_Me_En_Pr_Sh'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'në %s',\n past: 'para %sve',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minut',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\nconst svLocale = {\n abbr: 'sv',\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal(_num) {\n const num = Number(_num);\n let b = num % 10, output = (~~(num % 100 / 10) === 1) ? 'e' :\n (b === 1) ? 'a' :\n (b === 2) ? 'a' :\n (b === 3) ? 'e' : 'e';\n return num + output;\n },\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n// moment.js locale configuration\n// locale : Thai [th]\n// author : Watcharapol Sanitwong : https://github.com/tumit\nconst thLocale = {\n abbr: 'th',\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM(input) {\n return input === 'หลังเที่ยง';\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n }\n else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี'\n }\n};\n\n// moment.js locale configuration\n// locale : Thai-Buddhist Era [th-be]\n// author : Watcharapol Sanitwong : https://github.com/tumit\nconst thBeLocale = {\n abbr: 'th-be',\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM(input) {\n return input === 'หลังเที่ยง';\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n }\n else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี'\n },\n preparse(str, format) {\n const _format = thBeLocale.longDateFormat[format]\n ? thBeLocale.longDateFormat[format]\n : format;\n // endsWith('YYYY')\n if (_format.indexOf('YYYY', _format.length - 'YYYY'.length) !== -1) {\n const ddMM = str.substr(0, str.length - 4);\n const yyyy = parseInt(str.substr(str.length - 4), 10) - 543;\n return ddMM + yyyy;\n }\n return str;\n },\n getFullYear(date, isUTC = false) {\n return 543 + (isUTC ? date.getUTCFullYear() : date.getFullYear());\n }\n};\n\n//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\nlet suffixes = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n};\nconst trLocale = {\n abbr: 'tr',\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,\n ordinal(_num) {\n const num = Number(_num);\n if (num === 0) { // special case for zero\n return num + '\\'ıncı';\n }\n let a = num % 10, b = num % 100 - a, c = num >= 100 ? 100 : null;\n return num + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1,\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\nfunction plural(word, num) {\n let forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n}\nfunction relativeTimeWithPlural(num, withoutSuffix, key) {\n let format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n }\n if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n }\n return num + ' ' + plural(format[key], +num);\n}\nfunction weekdaysCaseReplace(date, format, isUTC) {\n let weekdays = {\n nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n };\n if (!date) {\n return weekdays.nominative;\n }\n let nounCase = (/(\\[[ВвУу]\\]) ?dddd/).test(format) ?\n 'accusative' :\n ((/\\[?(?:минулої|наступної)? ?\\] ?dddd/).test(format) ?\n 'genitive' :\n 'nominative');\n return weekdays[nounCase][getDayOfWeek(date, isUTC)];\n}\nfunction processHoursFunction(str) {\n return function (date) {\n return str + 'о' + (getHours(date) === 11 ? 'б' : '') + '] LT';\n };\n}\nconst ukLocale = {\n abbr: 'uk',\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm'\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek(date) {\n switch (getDayOfWeek(date)) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [')(date);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [')(date);\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM(input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n }\n else if (hour < 12) {\n return 'ранку';\n }\n else if (hour < 17) {\n return 'дня';\n }\n else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal(_num, period) {\n const num = Number(_num);\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return num + '-й';\n case 'D':\n return num + '-го';\n default:\n return num.toString();\n }\n },\n week: {\n dow: 1,\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Việt Nam [vi]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\nconst viLocale = {\n abbr: 'vi',\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort: 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM(input) {\n return /^ch$/i.test(input);\n },\n meridiem(hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n }\n else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal(_num) {\n return '' + _num;\n },\n week: {\n dow: 1,\n doy: 4 // Tuần chứa ngày 4 tháng 1 là tuần đầu tiên trong năm.\n }\n};\n\n//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\nconst zhCnLocale = {\n abbr: 'zh-cn',\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' ||\n meridiem === '上午') {\n return hour;\n }\n else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem(hour, minute, isLower) {\n let hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n }\n else if (hm < 900) {\n return '早上';\n }\n else if (hm < 1130) {\n return '上午';\n }\n else if (hm < 1230) {\n return '中午';\n }\n else if (hm < 1800) {\n return '下午';\n }\n else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal(_num, period) {\n const num = Number(_num);\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + '日';\n case 'M':\n return num + '月';\n case 'w':\n case 'W':\n return num + '周';\n default:\n return num.toString();\n }\n },\n relativeTime: {\n future: '%s内',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年'\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { add, arLocale, bgLocale, caLocale, csLocale, daLocale, deLocale, defineLocale, enGbLocale, endOf, esDoLocale, esLocale, esPrLocale, esUsLocale, etLocale, fiLocale, formatDate, frLocale, getDay, getFirstDayOfMonth, getFullYear, getLocale, getMonth, getSetGlobalLocale, glLocale, heLocale, hiLocale, hrLocale, huLocale, idLocale, isAfter, isArray, isBefore, isDate, isDateValid, isDisabledDay, isFirstDayOfWeek, isSame, isSameDay$1 as isSameDay, isSameMonth, isSameYear, itLocale, jaLocale, kaLocale, kkLocale, koLocale, listLocales, ltLocale, lvLocale, mnLocale, nbLocale, nlBeLocale, nlLocale, parseDate, plLocale, ptBrLocale, roLocale, ruLocale, setFullDate, shiftDate, skLocale, slLocale, sqLocale, startOf, subtract, svLocale, thBeLocale, thLocale, trLocale, ukLocale, updateLocale, utcAsLocal, viLocale, zhCnLocale };\n","import { BehaviorSubject, queueScheduler, Observable } from 'rxjs';\nimport { observeOn, scan, map, distinctUntilChanged } from 'rxjs/operators';\n\nclass MiniState extends BehaviorSubject {\n constructor(_initialState, actionsDispatcher$, reducer) {\n super(_initialState);\n const actionInQueue$ = actionsDispatcher$.pipe(observeOn(queueScheduler));\n const state$ = actionInQueue$.pipe(scan((state, action) => {\n if (!action) {\n return state;\n }\n return reducer(state, action);\n }, _initialState));\n state$.subscribe((value) => this.next(value));\n }\n}\n\n/**\n * @copyright ngrx\n */\nclass MiniStore extends Observable {\n constructor(_dispatcher, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _reducer, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n state$) {\n super();\n this._dispatcher = _dispatcher;\n this._reducer = _reducer;\n this.source = state$;\n }\n select(pathOrMapFn) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const mapped$ = this.source?.pipe(map(pathOrMapFn)) || new Observable().pipe(map(pathOrMapFn));\n return mapped$.pipe(distinctUntilChanged());\n }\n lift(operator) {\n const store = new MiniStore(this._dispatcher, this._reducer, this);\n store.operator = operator;\n return store;\n }\n dispatch(action) {\n this._dispatcher.next(action);\n }\n next(action) {\n this._dispatcher.next(action);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error(err) {\n this._dispatcher.error(err);\n }\n complete() {\n /*noop*/\n }\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MiniState, MiniStore };\n","import * as i0 from '@angular/core';\nimport { Injectable, forwardRef, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { MiniStore, MiniState } from 'ngx-bootstrap/mini-ngrx';\nimport * as i4 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\nclass TimepickerActions {\n static { this.WRITE_VALUE = '[timepicker] write value from ng model'; }\n static { this.CHANGE_HOURS = '[timepicker] change hours'; }\n static { this.CHANGE_MINUTES = '[timepicker] change minutes'; }\n static { this.CHANGE_SECONDS = '[timepicker] change seconds'; }\n static { this.SET_TIME_UNIT = '[timepicker] set time unit'; }\n static { this.UPDATE_CONTROLS = '[timepicker] update controls'; }\n writeValue(value) {\n return {\n type: TimepickerActions.WRITE_VALUE,\n payload: value\n };\n }\n changeHours(event) {\n return {\n type: TimepickerActions.CHANGE_HOURS,\n payload: event\n };\n }\n changeMinutes(event) {\n return {\n type: TimepickerActions.CHANGE_MINUTES,\n payload: event\n };\n }\n changeSeconds(event) {\n return {\n type: TimepickerActions.CHANGE_SECONDS,\n payload: event\n };\n }\n setTime(value) {\n return {\n type: TimepickerActions.SET_TIME_UNIT,\n payload: value\n };\n }\n updateControls(value) {\n return {\n type: TimepickerActions.UPDATE_CONTROLS,\n payload: value\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerActions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerActions, providedIn: 'platform' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerActions, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'platform' }]\n }] });\n\nconst dex = 10;\nconst hoursPerDay = 24;\nconst hoursPerDayHalf = 12;\nconst minutesPerHour = 60;\nconst secondsPerMinute = 60;\nfunction isValidDate(value) {\n if (!value) {\n return false;\n }\n if (value instanceof Date && isNaN(value.getHours())) {\n return false;\n }\n if (typeof value === 'string') {\n return isValidDate(new Date(value));\n }\n return true;\n}\nfunction isValidLimit(controls, newDate) {\n if (controls.min && newDate < controls.min) {\n return false;\n }\n if (controls.max && newDate > controls.max) {\n return false;\n }\n return true;\n}\nfunction toNumber(value) {\n if (typeof value === 'undefined') {\n return NaN;\n }\n if (typeof value === 'number') {\n return value;\n }\n return parseInt(value, dex);\n}\nfunction isNumber(value) {\n return !isNaN(toNumber(value));\n}\nfunction parseHours(value, isPM = false) {\n const hour = toNumber(value);\n if (isNaN(hour) ||\n hour < 0 ||\n hour > (isPM ? hoursPerDayHalf : hoursPerDay)) {\n return NaN;\n }\n return hour;\n}\nfunction parseMinutes(value) {\n const minute = toNumber(value);\n if (isNaN(minute) || minute < 0 || minute > minutesPerHour) {\n return NaN;\n }\n return minute;\n}\nfunction parseSeconds(value) {\n const seconds = toNumber(value);\n if (isNaN(seconds) || seconds < 0 || seconds > secondsPerMinute) {\n return NaN;\n }\n return seconds;\n}\nfunction parseTime(value) {\n if (typeof value === 'string') {\n return new Date(value);\n }\n return value;\n}\nfunction changeTime(value, diff) {\n if (!value) {\n return changeTime(createDate(new Date(), 0, 0, 0), diff);\n }\n if (!diff) {\n return value;\n }\n let hour = value.getHours();\n let minutes = value.getMinutes();\n let seconds = value.getSeconds();\n if (diff.hour) {\n hour = hour + toNumber(diff.hour);\n }\n if (diff.minute) {\n minutes = minutes + toNumber(diff.minute);\n }\n if (diff.seconds) {\n seconds = seconds + toNumber(diff.seconds);\n }\n return createDate(value, hour, minutes, seconds);\n}\nfunction setTime(value, opts) {\n let hour = parseHours(opts.hour);\n const minute = parseMinutes(opts.minute);\n const seconds = parseSeconds(opts.seconds) || 0;\n if (opts.isPM && hour !== 12) {\n hour += hoursPerDayHalf;\n }\n if (!value) {\n if (!isNaN(hour) && !isNaN(minute)) {\n return createDate(new Date(), hour, minute, seconds);\n }\n return value;\n }\n if (isNaN(hour) || isNaN(minute)) {\n return value;\n }\n return createDate(value, hour, minute, seconds);\n}\nfunction createDate(value, hours, minutes, seconds) {\n const newValue = new Date(value.getFullYear(), value.getMonth(), value.getDate(), hours, minutes, seconds, value.getMilliseconds());\n // #3139 ensure date part remains unchanged\n newValue.setFullYear(value.getFullYear());\n newValue.setMonth(value.getMonth());\n newValue.setDate(value.getDate());\n return newValue;\n}\nfunction padNumber(value) {\n const _value = value.toString();\n if (_value.length > 1) {\n return _value;\n }\n return `0${_value}`;\n}\nfunction isHourInputValid(hours, isPM) {\n return !isNaN(parseHours(hours, isPM));\n}\nfunction isMinuteInputValid(minutes) {\n return !isNaN(parseMinutes(minutes));\n}\nfunction isSecondInputValid(seconds) {\n return !isNaN(parseSeconds(seconds));\n}\nfunction isInputLimitValid(diff, max, min) {\n const newDate = setTime(new Date(), diff);\n if (!newDate) {\n return false;\n }\n if (max && newDate > max) {\n return false;\n }\n if (min && newDate < min) {\n return false;\n }\n return true;\n}\nfunction isOneOfDatesEmpty(hours, minutes, seconds) {\n return hours.length === 0 || minutes.length === 0 || seconds.length === 0;\n}\nfunction isInputValid(hours, minutes = '0', seconds = '0', isPM) {\n return isHourInputValid(hours, isPM)\n && isMinuteInputValid(minutes)\n && isSecondInputValid(seconds);\n}\n\nfunction canChangeValue(state, event) {\n if (state.readonlyInput || state.disabled) {\n return false;\n }\n if (event) {\n if (event.source === 'wheel' && !state.mousewheel) {\n return false;\n }\n if (event.source === 'key' && !state.arrowkeys) {\n return false;\n }\n }\n return true;\n}\nfunction canChangeHours(event, controls) {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementHours) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementHours) {\n return false;\n }\n return true;\n}\nfunction canChangeMinutes(event, controls) {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementMinutes) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementMinutes) {\n return false;\n }\n return true;\n}\nfunction canChangeSeconds(event, controls) {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementSeconds) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementSeconds) {\n return false;\n }\n return true;\n}\nfunction getControlsValue(state) {\n const { hourStep, minuteStep, secondsStep, readonlyInput, disabled, mousewheel, arrowkeys, showSpinners, showMeridian, showSeconds, meridians, min, max } = state;\n return {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowkeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n };\n}\nfunction timepickerControls(value, state) {\n const hoursPerDay = 24;\n const hoursPerDayHalf = 12;\n const { min, max, hourStep, minuteStep, secondsStep, showSeconds } = state;\n const res = {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n canToggleMeridian: true\n };\n if (!value) {\n return res;\n }\n // compare dates\n if (max) {\n const _newHour = changeTime(value, { hour: hourStep });\n res.canIncrementHours = max > _newHour && (value.getHours() + hourStep) < hoursPerDay;\n if (!res.canIncrementHours) {\n const _newMinutes = changeTime(value, { minute: minuteStep });\n res.canIncrementMinutes = showSeconds\n ? max > _newMinutes\n : max >= _newMinutes;\n }\n if (!res.canIncrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: secondsStep });\n res.canIncrementSeconds = max >= _newSeconds;\n }\n if (value.getHours() < hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: hoursPerDayHalf }) < max;\n }\n }\n if (min) {\n const _newHour = changeTime(value, { hour: -hourStep });\n res.canDecrementHours = min < _newHour;\n if (!res.canDecrementHours) {\n const _newMinutes = changeTime(value, { minute: -minuteStep });\n res.canDecrementMinutes = showSeconds\n ? min < _newMinutes\n : min <= _newMinutes;\n }\n if (!res.canDecrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: -secondsStep });\n res.canDecrementSeconds = min <= _newSeconds;\n }\n if (value.getHours() >= hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: -hoursPerDayHalf }) > min;\n }\n }\n return res;\n}\n\n/** Provides default configuration values for timepicker */\nclass TimepickerConfig {\n constructor() {\n /** hours change step */\n this.hourStep = 1;\n /** minutes change step */\n this.minuteStep = 5;\n /** seconds changes step */\n this.secondsStep = 10;\n /** if true works in 12H mode and displays AM/PM. If false works in 24H mode and hides AM/PM */\n this.showMeridian = true;\n /** meridian labels based on locale */\n this.meridians = ['AM', 'PM'];\n /** if true hours and minutes fields will be readonly */\n this.readonlyInput = false;\n /** if true hours and minutes fields will be disabled */\n this.disabled = false;\n /** if true emptyTime is not marked as invalid */\n this.allowEmptyTime = false;\n /** if true scroll inside hours and minutes inputs will change time */\n this.mousewheel = true;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n this.arrowkeys = true;\n /** if true spinner arrows above and below the inputs will be shown */\n this.showSpinners = true;\n /** show seconds in timepicker */\n this.showSeconds = false;\n /** show minutes in timepicker */\n this.showMinutes = true;\n /** placeholder for hours field in timepicker */\n this.hoursPlaceholder = 'HH';\n /** placeholder for minutes field in timepicker */\n this.minutesPlaceholder = 'MM';\n /** placeholder for seconds field in timepicker */\n this.secondsPlaceholder = 'SS';\n /** hours aria label */\n this.ariaLabelHours = 'hours';\n /** minutes aria label */\n this.ariaLabelMinutes = 'minutes';\n /** seconds aria label */\n this.ariaLabelSeconds = 'seconds';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerConfig, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n\nconst initialState = {\n value: void 0,\n config: new TimepickerConfig(),\n controls: {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n canToggleMeridian: true\n }\n};\nfunction timepickerReducer(state = initialState, action) {\n switch (action.type) {\n case TimepickerActions.WRITE_VALUE: {\n return Object.assign({}, state, { value: action.payload });\n }\n case TimepickerActions.CHANGE_HOURS: {\n if (!canChangeValue(state.config, action.payload) ||\n !canChangeHours(action.payload, state.controls)) {\n return state;\n }\n const _newTime = changeTime(state.value, { hour: action.payload.step });\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n return Object.assign({}, state, { value: _newTime });\n }\n case TimepickerActions.CHANGE_MINUTES: {\n if (!canChangeValue(state.config, action.payload) ||\n !canChangeMinutes(action.payload, state.controls)) {\n return state;\n }\n const _newTime = changeTime(state.value, { minute: action.payload.step });\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n return Object.assign({}, state, { value: _newTime });\n }\n case TimepickerActions.CHANGE_SECONDS: {\n if (!canChangeValue(state.config, action.payload) ||\n !canChangeSeconds(action.payload, state.controls)) {\n return state;\n }\n const _newTime = changeTime(state.value, {\n seconds: action.payload.step\n });\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n return Object.assign({}, state, { value: _newTime });\n }\n case TimepickerActions.SET_TIME_UNIT: {\n if (!canChangeValue(state.config)) {\n return state;\n }\n const _newTime = setTime(state.value, action.payload);\n return Object.assign({}, state, { value: _newTime });\n }\n case TimepickerActions.UPDATE_CONTROLS: {\n const _newControlsState = timepickerControls(state.value, action.payload);\n const _newState = {\n value: state.value,\n config: action.payload,\n controls: _newControlsState\n };\n if (state.config.showMeridian !== _newState.config.showMeridian) {\n if (state.value) {\n _newState.value = new Date(state.value);\n }\n }\n return Object.assign({}, state, _newState);\n }\n default:\n return state;\n }\n}\n\nclass TimepickerStore extends MiniStore {\n constructor() {\n const _dispatcher = new BehaviorSubject({\n type: '[mini-ngrx] dispatcher init'\n });\n const state = new MiniState(initialState, _dispatcher, timepickerReducer);\n super(_dispatcher, timepickerReducer, state);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerStore, providedIn: 'platform' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerStore, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'platform' }]\n }], ctorParameters: () => [] });\n\nconst TIMEPICKER_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimepickerComponent),\n multi: true\n};\nclass TimepickerComponent {\n constructor(_config, _cd, _store, _timepickerActions) {\n this._cd = _cd;\n this._store = _store;\n this._timepickerActions = _timepickerActions;\n /** hours change step */\n this.hourStep = 1;\n /** minutes change step */\n this.minuteStep = 5;\n /** seconds change step */\n this.secondsStep = 10;\n /** if true hours and minutes fields will be readonly */\n this.readonlyInput = false;\n /** if true hours and minutes fields will be disabled */\n this.disabled = false;\n /** if true scroll inside hours and minutes inputs will change time */\n this.mousewheel = true;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n this.arrowkeys = true;\n /** if true spinner arrows above and below the inputs will be shown */\n this.showSpinners = true;\n /** if true meridian button will be shown */\n this.showMeridian = true;\n /** show minutes in timepicker */\n this.showMinutes = true;\n /** show seconds in timepicker */\n this.showSeconds = false;\n /** meridian labels based on locale */\n this.meridians = ['AM', 'PM'];\n /** placeholder for hours field in timepicker */\n this.hoursPlaceholder = 'HH';\n /** placeholder for minutes field in timepicker */\n this.minutesPlaceholder = 'MM';\n /** placeholder for seconds field in timepicker */\n this.secondsPlaceholder = 'SS';\n /** emits true if value is a valid date */\n this.isValid = new EventEmitter();\n /** emits value of meridian*/\n this.meridianChange = new EventEmitter();\n // ui variables\n this.hours = '';\n this.minutes = '';\n this.seconds = '';\n this.meridian = '';\n // min\\max validation for input fields\n this.invalidHours = false;\n this.invalidMinutes = false;\n this.invalidSeconds = false;\n // aria-label variables\n this.labelHours = 'hours';\n this.labelMinutes = 'minutes';\n this.labelSeconds = 'seconds';\n // time picker controls state\n this.canIncrementHours = true;\n this.canIncrementMinutes = true;\n this.canIncrementSeconds = true;\n this.canDecrementHours = true;\n this.canDecrementMinutes = true;\n this.canDecrementSeconds = true;\n this.canToggleMeridian = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.onChange = Function.prototype;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.onTouched = Function.prototype;\n this.config = _config;\n Object.assign(this, this.config);\n this.timepickerSub = _store.select(state => state.value)\n .subscribe((value) => {\n // update UI values if date changed\n this._renderTime(value);\n this.onChange(value);\n this._store.dispatch(this._timepickerActions.updateControls(getControlsValue(this)));\n });\n _store.select(state => state.controls)\n .subscribe((controlsState) => {\n const isTimepickerInputValid = isInputValid(this.hours, this.minutes, this.seconds, this.isPM());\n const isValid = this.config.allowEmptyTime ?\n this.isOneOfDatesIsEmpty() || isTimepickerInputValid\n : isTimepickerInputValid;\n this.isValid.emit(isValid);\n Object.assign(this, controlsState);\n _cd.markForCheck();\n });\n }\n /** @deprecated - please use `isEditable` instead */\n get isSpinnersVisible() {\n return this.showSpinners && !this.readonlyInput;\n }\n get isEditable() {\n return !(this.readonlyInput || this.disabled);\n }\n resetValidation() {\n this.invalidHours = false;\n this.invalidMinutes = false;\n this.invalidSeconds = false;\n }\n isPM() {\n return this.showMeridian && this.meridian === this.meridians[1];\n }\n prevDef($event) {\n $event.preventDefault();\n }\n wheelSign($event) {\n return Math.sign($event.deltaY || 0) * -1;\n }\n ngOnChanges() {\n this._store.dispatch(this._timepickerActions.updateControls(getControlsValue(this)));\n }\n changeHours(step, source = '') {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.changeHours({ step, source }));\n }\n changeMinutes(step, source = '') {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.changeMinutes({ step, source }));\n }\n changeSeconds(step, source = '') {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.changeSeconds({ step, source }));\n }\n updateHours(target) {\n this.resetValidation();\n this.hours = target.value;\n const isTimepickerInputValid = isHourInputValid(this.hours, this.isPM()) && this.isValidLimit();\n const isValid = this.config.allowEmptyTime ?\n this.isOneOfDatesIsEmpty() || isTimepickerInputValid\n : isTimepickerInputValid;\n if (!isValid) {\n this.invalidHours = true;\n this.isValid.emit(false);\n this.onChange(null);\n return;\n }\n this._updateTime();\n }\n updateMinutes(target) {\n this.resetValidation();\n this.minutes = target.value;\n const isTimepickerInputValid = isMinuteInputValid(this.minutes) && this.isValidLimit();\n const isValid = this.config.allowEmptyTime ?\n this.isOneOfDatesIsEmpty() || isTimepickerInputValid\n : isTimepickerInputValid;\n if (!isValid) {\n this.invalidMinutes = true;\n this.isValid.emit(false);\n this.onChange(null);\n return;\n }\n this._updateTime();\n }\n updateSeconds(target) {\n this.resetValidation();\n this.seconds = target.value;\n const isTimepickerInputValid = isSecondInputValid(this.seconds) && this.isValidLimit();\n const isValid = this.config.allowEmptyTime ?\n this.isOneOfDatesIsEmpty() || isTimepickerInputValid\n : isTimepickerInputValid;\n if (!isValid) {\n this.invalidSeconds = true;\n this.isValid.emit(false);\n this.onChange(null);\n return;\n }\n this._updateTime();\n }\n isValidLimit() {\n return isInputLimitValid({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n }, this.max, this.min);\n }\n isOneOfDatesIsEmpty() {\n return isOneOfDatesEmpty(this.hours, this.minutes, this.seconds);\n }\n _updateTime() {\n const _seconds = this.showSeconds ? this.seconds : void 0;\n const _minutes = this.showMinutes ? this.minutes : void 0;\n const isTimepickerInputValid = isInputValid(this.hours, _minutes, _seconds, this.isPM());\n const isValid = this.config.allowEmptyTime ?\n this.isOneOfDatesIsEmpty() || isTimepickerInputValid\n : isTimepickerInputValid;\n if (!isValid) {\n this.isValid.emit(false);\n this.onChange(null);\n return;\n }\n this._store.dispatch(this._timepickerActions.setTime({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n }));\n }\n toggleMeridian() {\n if (!this.showMeridian || !this.isEditable) {\n return;\n }\n const _hoursPerDayHalf = 12;\n this._store.dispatch(this._timepickerActions.changeHours({\n step: _hoursPerDayHalf,\n source: ''\n }));\n }\n /**\n * Write a new value to the element.\n */\n writeValue(obj) {\n if (isValidDate(obj)) {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.writeValue(parseTime(obj)));\n }\n else if (obj == null) {\n this._store.dispatch(this._timepickerActions.writeValue());\n }\n }\n /**\n * Set the function to be called when the control receives a change event.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /**\n * Set the function to be called when the control receives a touch event.\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * This function is called when the control status changes to or from \"disabled\".\n * Depending on the value, it will enable or disable the appropriate DOM element.\n *\n * @param isDisabled\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._cd.markForCheck();\n }\n ngOnDestroy() {\n this.timepickerSub?.unsubscribe();\n }\n _renderTime(value) {\n if (!value || !isValidDate(value)) {\n this.hours = '';\n this.minutes = '';\n this.seconds = '';\n this.meridian = this.meridians[0];\n this.meridianChange.emit(this.meridian);\n return;\n }\n const _value = parseTime(value);\n if (!_value) {\n return;\n }\n const _hoursPerDayHalf = 12;\n let _hours = _value.getHours();\n if (this.showMeridian) {\n this.meridian = this.meridians[_hours >= _hoursPerDayHalf ? 1 : 0];\n this.meridianChange.emit(this.meridian);\n _hours = _hours % _hoursPerDayHalf;\n // should be 12 PM, not 00 PM\n if (_hours === 0) {\n _hours = _hoursPerDayHalf;\n }\n }\n this.hours = padNumber(_hours);\n this.minutes = padNumber(_value.getMinutes());\n this.seconds = padNumber(_value.getUTCSeconds());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerComponent, deps: [{ token: TimepickerConfig }, { token: i0.ChangeDetectorRef }, { token: TimepickerStore }, { token: TimepickerActions }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: TimepickerComponent, selector: \"timepicker\", inputs: { hourStep: \"hourStep\", minuteStep: \"minuteStep\", secondsStep: \"secondsStep\", readonlyInput: \"readonlyInput\", disabled: \"disabled\", mousewheel: \"mousewheel\", arrowkeys: \"arrowkeys\", showSpinners: \"showSpinners\", showMeridian: \"showMeridian\", showMinutes: \"showMinutes\", showSeconds: \"showSeconds\", meridians: \"meridians\", min: \"min\", max: \"max\", hoursPlaceholder: \"hoursPlaceholder\", minutesPlaceholder: \"minutesPlaceholder\", secondsPlaceholder: \"secondsPlaceholder\" }, outputs: { isValid: \"isValid\", meridianChange: \"meridianChange\" }, providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, TimepickerStore], usesOnChanges: true, ngImport: i0, template: \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n \\n    \\n \\n  \\n \\n \\n \\n    
    \\n  : \\n \\n  : \\n \\n    \\n \\n
    \\n \\n \\n \\n    \\n \\n \\n \\n  \\n \\n \\n \\n    
    \\n\", styles: [\".bs-chevron{border-style:solid;display:block;width:9px;height:9px;position:relative;border-width:3px 0px 0 3px}.bs-chevron-up{transform:rotate(45deg);top:2px}.bs-chevron-down{transform:rotate(-135deg);top:-2px}.bs-timepicker-field{width:65px;padding:.375rem .55rem}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'timepicker', changeDetection: ChangeDetectionStrategy.OnPush, providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, TimepickerStore], encapsulation: ViewEncapsulation.None, template: \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n \\n    \\n \\n  \\n \\n \\n \\n    
    \\n  : \\n \\n  : \\n \\n    \\n \\n
    \\n \\n \\n \\n    \\n \\n \\n \\n  \\n \\n \\n \\n    
    \\n\", styles: [\".bs-chevron{border-style:solid;display:block;width:9px;height:9px;position:relative;border-width:3px 0px 0 3px}.bs-chevron-up{transform:rotate(45deg);top:2px}.bs-chevron-down{transform:rotate(-135deg);top:-2px}.bs-timepicker-field{width:65px;padding:.375rem .55rem}\\n\"] }]\n }], ctorParameters: () => [{ type: TimepickerConfig }, { type: i0.ChangeDetectorRef }, { type: TimepickerStore }, { type: TimepickerActions }], propDecorators: { hourStep: [{\n type: Input\n }], minuteStep: [{\n type: Input\n }], secondsStep: [{\n type: Input\n }], readonlyInput: [{\n type: Input\n }], disabled: [{\n type: Input\n }], mousewheel: [{\n type: Input\n }], arrowkeys: [{\n type: Input\n }], showSpinners: [{\n type: Input\n }], showMeridian: [{\n type: Input\n }], showMinutes: [{\n type: Input\n }], showSeconds: [{\n type: Input\n }], meridians: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], hoursPlaceholder: [{\n type: Input\n }], minutesPlaceholder: [{\n type: Input\n }], secondsPlaceholder: [{\n type: Input\n }], isValid: [{\n type: Output\n }], meridianChange: [{\n type: Output\n }] } });\n\nclass TimepickerModule {\n static forRoot() {\n return {\n ngModule: TimepickerModule,\n providers: [TimepickerActions, TimepickerStore]\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerModule, declarations: [TimepickerComponent], imports: [CommonModule], exports: [TimepickerComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerModule, providers: [TimepickerStore], imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TimepickerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [TimepickerComponent],\n exports: [TimepickerComponent],\n providers: [TimepickerStore]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TimepickerActions, TimepickerComponent, TimepickerConfig, TimepickerModule, TimepickerStore };\n","import * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ViewChild, HostBinding, Directive, forwardRef, Host, HostListener, NgModule } from '@angular/core';\nimport { filter, map, take, takeUntil, distinctUntilChanged } from 'rxjs/operators';\nimport { isFirstDayOfWeek, getDay, shiftDate, endOf, isBefore, startOf, isAfter, isArray, isSame, getFirstDayOfMonth, formatDate, getLocale, isSameMonth, isSameDay, isDisabledDay, isSameYear, isDateValid, setFullDate, getMonth, getFullYear, isDate, parseDate, utcAsLocal } from 'ngx-bootstrap/chronos';\nimport * as i5 from 'ngx-bootstrap/positioning';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport * as i7 from 'ngx-bootstrap/timepicker';\nimport { TimepickerActions, TimepickerModule } from 'ngx-bootstrap/timepicker';\nimport { style, state, animate, transition, trigger } from '@angular/animations';\nimport { Subscription, BehaviorSubject, combineLatest, Subject } from 'rxjs';\nimport { MiniStore, MiniState } from 'ngx-bootstrap/mini-ngrx';\nimport * as i6 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i3 from 'ngx-bootstrap/tooltip';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport * as i2 from 'ngx-bootstrap/component-loader';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\n/**\n * For date range picker there are `BsDaterangepickerConfig` which inherits all properties,\n * except `displayMonths`, for range picker it default to `2`\n */\nclass BsDatepickerConfig {\n constructor() {\n /** sets use adaptive position */\n this.adaptivePosition = false;\n /** sets use UTC date time format */\n this.useUtc = false;\n /** turn on/off animation */\n this.isAnimated = false;\n /**\n * The view that the datepicker should start in\n */\n this.startView = 'day';\n /**\n * If true, returns focus to the datepicker / daterangepicker input after date selection\n */\n this.returnFocusToInput = false;\n /** CSS class which will be applied to datepicker container,\n * usually used to set color theme\n */\n this.containerClass = 'theme-green';\n // DatepickerRenderOptions\n this.displayMonths = 1;\n /**\n * Allows to hide week numbers in datepicker\n */\n this.showWeekNumbers = true;\n this.dateInputFormat = 'L';\n // range picker\n this.rangeSeparator = ' - ';\n /**\n * Date format for date range input field\n */\n this.rangeInputFormat = 'L';\n // DatepickerFormatOptions\n this.monthTitle = 'MMMM';\n this.yearTitle = 'YYYY';\n this.dayLabel = 'D';\n this.monthLabel = 'MMMM';\n this.yearLabel = 'YYYY';\n this.weekNumbers = 'w';\n /**\n * Shows 'today' button\n */\n this.showTodayButton = false;\n /**\n * Shows clear button\n */\n this.showClearButton = false;\n /**\n * Positioning of 'today' button\n */\n this.todayPosition = 'center';\n /**\n * Positioning of 'clear' button\n */\n this.clearPosition = 'right';\n /**\n * Label for 'today' button\n */\n this.todayButtonLabel = 'Today';\n /**\n * Label for 'clear' button\n */\n this.clearButtonLabel = 'Clear';\n /**\n * Label for 'custom range' button\n */\n this.customRangeButtonLabel = 'Custom Range';\n /**\n * Shows timepicker under datepicker\n */\n this.withTimepicker = false;\n /**\n * Set allowed positions of container.\n */\n this.allowedPositions = ['top', 'bottom'];\n /**\n * Set rule for datepicker closing. If value is true datepicker closes only if date is changed, if user changes only time datepicker doesn't close. It is available only if property withTimepicker is set true\n * */\n this.keepDatepickerOpened = false;\n /**\n * Allows keep invalid dates in range. Can be used with minDate, maxDate\n * */\n this.keepDatesOutOfRules = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerConfig, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n\nconst DATEPICKER_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\nconst datepickerAnimation = trigger('datepickerAnimation', [\n state('animated-down', style({ height: '*', overflow: 'hidden' })),\n transition('* => animated-down', [\n style({ height: 0, overflow: 'hidden' }),\n animate(DATEPICKER_ANIMATION_TIMING)\n ]),\n state('animated-up', style({ height: '*', overflow: 'hidden' })),\n transition('* => animated-up', [\n style({ height: '*', overflow: 'hidden' }),\n animate(DATEPICKER_ANIMATION_TIMING)\n ]),\n transition('* => unanimated', animate('0s'))\n]);\n\nclass BsDatepickerAbstractComponent {\n constructor() {\n this.containerClass = '';\n this.customRanges = [];\n this.chosenRange = [];\n this._daysCalendarSub = new Subscription();\n this.selectedTimeSub = new Subscription();\n }\n set minDate(value) {\n this._effects?.setMinDate(value);\n }\n set maxDate(value) {\n this._effects?.setMaxDate(value);\n }\n set daysDisabled(value) {\n this._effects?.setDaysDisabled(value);\n }\n set datesDisabled(value) {\n this._effects?.setDatesDisabled(value);\n }\n set datesEnabled(value) {\n this._effects?.setDatesEnabled(value);\n }\n set isDisabled(value) {\n this._effects?.setDisabled(value);\n }\n set dateCustomClasses(value) {\n this._effects?.setDateCustomClasses(value);\n }\n set dateTooltipTexts(value) {\n this._effects?.setDateTooltipTexts(value);\n }\n set daysCalendar$(value) {\n this._daysCalendar$ = value;\n this._daysCalendarSub.unsubscribe();\n this._daysCalendarSub.add(this._daysCalendar$.subscribe(value => {\n this.multipleCalendars = !!value && value.length > 1;\n }));\n }\n get daysCalendar$() {\n return this._daysCalendar$;\n }\n // todo: valorkin fix\n // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/no-empty-function\n setViewMode(event) { }\n // eslint-disable-next-line\n navigateTo(event) { }\n // eslint-disable-next-line\n dayHoverHandler(event) { }\n // eslint-disable-next-line\n weekHoverHandler(event) { }\n // eslint-disable-next-line\n monthHoverHandler(event) { }\n // eslint-disable-next-line\n yearHoverHandler(event) { }\n // eslint-disable-next-line\n timeSelectHandler(date, index) { }\n // eslint-disable-next-line\n daySelectHandler(day) { }\n // eslint-disable-next-line\n monthSelectHandler(event) { }\n // eslint-disable-next-line\n yearSelectHandler(event) { }\n // eslint-disable-next-line\n setRangeOnCalendar(dates) { }\n // eslint-disable-next-line\n setToday() { }\n // eslint-disable-next-line\n clearDate() { }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _stopPropagation(event) {\n event.stopPropagation();\n }\n}\n\nclass BsDatepickerActions {\n static { this.CALCULATE = '[datepicker] calculate dates matrix'; }\n static { this.FORMAT = '[datepicker] format datepicker values'; }\n static { this.FLAG = '[datepicker] set flags'; }\n static { this.SELECT = '[datepicker] select date'; }\n static { this.NAVIGATE_OFFSET = '[datepicker] shift view date'; }\n static { this.NAVIGATE_TO = '[datepicker] change view date'; }\n static { this.SET_OPTIONS = '[datepicker] update render options'; }\n static { this.HOVER = '[datepicker] hover date'; }\n static { this.CHANGE_VIEWMODE = '[datepicker] switch view mode'; }\n static { this.SET_MIN_DATE = '[datepicker] set min date'; }\n static { this.SET_MAX_DATE = '[datepicker] set max date'; }\n static { this.SET_DAYSDISABLED = '[datepicker] set days disabled'; }\n static { this.SET_DATESDISABLED = '[datepicker] set dates disabled'; }\n static { this.SET_DATESENABLED = '[datepicker] set dates enabled'; }\n static { this.SET_IS_DISABLED = '[datepicker] set is disabled'; }\n static { this.SET_DATE_CUSTOM_CLASSES = '[datepicker] set date custom classes'; }\n static { this.SET_DATE_TOOLTIP_TEXTS = '[datepicker] set date tooltip texts'; }\n static { this.SET_LOCALE = '[datepicker] set datepicker locale'; }\n static { this.SELECT_TIME = '[datepicker] select time'; }\n static { this.SELECT_RANGE = '[daterangepicker] select dates range'; }\n calculate() {\n return { type: BsDatepickerActions.CALCULATE };\n }\n format() {\n return { type: BsDatepickerActions.FORMAT };\n }\n flag() {\n return { type: BsDatepickerActions.FLAG };\n }\n select(date) {\n return {\n type: BsDatepickerActions.SELECT,\n payload: date\n };\n }\n selectTime(date, index) {\n return {\n type: BsDatepickerActions.SELECT_TIME,\n payload: { date, index },\n };\n }\n changeViewMode(event) {\n return {\n type: BsDatepickerActions.CHANGE_VIEWMODE,\n payload: event\n };\n }\n navigateTo(event) {\n return {\n type: BsDatepickerActions.NAVIGATE_TO,\n payload: event\n };\n }\n navigateStep(step) {\n return {\n type: BsDatepickerActions.NAVIGATE_OFFSET,\n payload: step\n };\n }\n setOptions(options) {\n return {\n type: BsDatepickerActions.SET_OPTIONS,\n payload: options\n };\n }\n // date range picker\n selectRange(value) {\n return {\n type: BsDatepickerActions.SELECT_RANGE,\n payload: value\n };\n }\n hoverDay(event) {\n return {\n type: BsDatepickerActions.HOVER,\n payload: event.isHovered ? event.cell.date : null\n };\n }\n minDate(date) {\n return {\n type: BsDatepickerActions.SET_MIN_DATE,\n payload: date\n };\n }\n maxDate(date) {\n return {\n type: BsDatepickerActions.SET_MAX_DATE,\n payload: date\n };\n }\n daysDisabled(days) {\n return {\n type: BsDatepickerActions.SET_DAYSDISABLED,\n payload: days\n };\n }\n datesDisabled(dates) {\n return {\n type: BsDatepickerActions.SET_DATESDISABLED,\n payload: dates\n };\n }\n datesEnabled(dates) {\n return {\n type: BsDatepickerActions.SET_DATESENABLED,\n payload: dates\n };\n }\n isDisabled(value) {\n return {\n type: BsDatepickerActions.SET_IS_DISABLED,\n payload: value\n };\n }\n setDateCustomClasses(value) {\n return {\n type: BsDatepickerActions.SET_DATE_CUSTOM_CLASSES,\n payload: value\n };\n }\n setDateTooltipTexts(value) {\n return {\n type: BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS,\n payload: value\n };\n }\n setLocale(locale) {\n return {\n type: BsDatepickerActions.SET_LOCALE,\n payload: locale\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerActions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerActions, providedIn: 'platform' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerActions, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'platform' }]\n }] });\n\nclass BsLocaleService {\n constructor() {\n this._defaultLocale = 'en';\n this._locale = new BehaviorSubject(this._defaultLocale);\n this._localeChange = this._locale.asObservable();\n }\n get locale() {\n return this._locale;\n }\n get localeChange() {\n return this._localeChange;\n }\n get currentLocale() {\n return this._locale.getValue();\n }\n use(locale) {\n if (locale === this.currentLocale) {\n return;\n }\n this._locale.next(locale);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsLocaleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsLocaleService, providedIn: 'platform' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsLocaleService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'platform' }]\n }] });\n\nclass BsDatepickerEffects {\n constructor(_actions, _localeService) {\n this._actions = _actions;\n this._localeService = _localeService;\n this._subs = [];\n }\n init(_bsDatepickerStore) {\n this._store = _bsDatepickerStore;\n return this;\n }\n /** setters */\n setValue(value) {\n this._store?.dispatch(this._actions.select(value));\n }\n setRangeValue(value) {\n this._store?.dispatch(this._actions.selectRange(value));\n }\n setMinDate(value) {\n this._store?.dispatch(this._actions.minDate(value));\n return this;\n }\n setMaxDate(value) {\n this._store?.dispatch(this._actions.maxDate(value));\n return this;\n }\n setDaysDisabled(value) {\n this._store?.dispatch(this._actions.daysDisabled(value));\n return this;\n }\n setDatesDisabled(value) {\n this._store?.dispatch(this._actions.datesDisabled(value));\n return this;\n }\n setDatesEnabled(value) {\n this._store?.dispatch(this._actions.datesEnabled(value));\n return this;\n }\n setDisabled(value) {\n this._store?.dispatch(this._actions.isDisabled(value));\n return this;\n }\n setDateCustomClasses(value) {\n this._store?.dispatch(this._actions.setDateCustomClasses(value));\n return this;\n }\n setDateTooltipTexts(value) {\n this._store?.dispatch(this._actions.setDateTooltipTexts(value));\n return this;\n }\n /* Set rendering options */\n setOptions(_config) {\n const _options = Object.assign({ locale: this._localeService.currentLocale }, _config);\n this._store?.dispatch(this._actions.setOptions(_options));\n return this;\n }\n /** view to mode bindings */\n setBindings(container) {\n if (!this._store) {\n return this;\n }\n container.selectedTime = this._store.select(state => state.selectedTime)\n .pipe(filter(times => !!times));\n container.daysCalendar$ = this._store.select(state => state.flaggedMonths)\n .pipe(filter(months => !!months));\n // month calendar\n container.monthsCalendar = this._store.select(state => state.flaggedMonthsCalendar)\n .pipe(filter(months => !!months));\n // year calendar\n container.yearsCalendar = this._store.select(state => state.yearsCalendarFlagged)\n .pipe(filter(years => !!years));\n container.viewMode = this._store.select(state => state.view?.mode);\n container.options$ = combineLatest([\n this._store.select(state => state.showWeekNumbers),\n this._store.select(state => state.displayMonths)\n ])\n .pipe(map((latest) => ({\n showWeekNumbers: latest[0],\n displayMonths: latest[1]\n })));\n return this;\n }\n /** event handlers */\n setEventHandlers(container) {\n container.setViewMode = (event) => {\n this._store?.dispatch(this._actions.changeViewMode(event));\n };\n container.navigateTo = (event) => {\n this._store?.dispatch(this._actions.navigateStep(event.step));\n };\n container.dayHoverHandler = (event) => {\n const _cell = event.cell;\n if (_cell.isOtherMonth || _cell.isDisabled) {\n return;\n }\n this._store?.dispatch(this._actions.hoverDay(event));\n _cell.isHovered = event.isHovered;\n };\n container.monthHoverHandler = (event) => {\n event.cell.isHovered = event.isHovered;\n };\n container.yearHoverHandler = (event) => {\n event.cell.isHovered = event.isHovered;\n };\n return this;\n }\n registerDatepickerSideEffects() {\n if (!this._store) {\n return this;\n }\n this._subs.push(this._store.select(state => state.view).subscribe(() => {\n this._store?.dispatch(this._actions.calculate());\n }));\n // format calendar values on month model change\n this._subs.push(this._store\n .select(state => state.monthsModel)\n .pipe(filter(monthModel => !!monthModel))\n .subscribe(() => this._store?.dispatch(this._actions.format())));\n // flag day values\n this._subs.push(this._store\n .select(state => state.formattedMonths)\n .pipe(filter(month => !!month))\n .subscribe(() => this._store?.dispatch(this._actions.flag())));\n // flag day values\n this._subs.push(this._store\n .select(state => state.selectedDate)\n .pipe(filter(selectedDate => !!selectedDate))\n .subscribe(() => this._store?.dispatch(this._actions.flag())));\n // flag for date range picker\n this._subs.push(this._store\n .select(state => state.selectedRange)\n .pipe(filter(selectedRange => !!selectedRange))\n .subscribe(() => this._store?.dispatch(this._actions.flag())));\n // monthsCalendar\n this._subs.push(this._store\n .select(state => state.monthsCalendar)\n .subscribe(() => this._store?.dispatch(this._actions.flag())));\n // years calendar\n this._subs.push(this._store\n .select(state => state.yearsCalendarModel)\n .pipe(filter(state => !!state))\n .subscribe(() => this._store?.dispatch(this._actions.flag())));\n // on hover\n this._subs.push(this._store\n .select(state => state.hoveredDate)\n .pipe(filter(hoveredDate => !!hoveredDate))\n .subscribe(() => this._store?.dispatch(this._actions.flag())));\n // date custom classes\n this._subs.push(this._store\n .select(state => state.dateCustomClasses)\n .pipe(filter(dateCustomClasses => !!dateCustomClasses))\n .subscribe(() => this._store?.dispatch(this._actions.flag())));\n // date tooltip texts\n this._subs.push(this._store\n .select(state => state.dateTooltipTexts)\n .pipe(filter(dateTooltipTexts => !!dateTooltipTexts))\n .subscribe(() => this._store?.dispatch(this._actions.flag())));\n // on locale change\n this._subs.push(this._localeService.localeChange\n .subscribe(locale => this._store?.dispatch(this._actions.setLocale(locale))));\n return this;\n }\n destroy() {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerEffects, deps: [{ token: BsDatepickerActions }, { token: BsLocaleService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerEffects, providedIn: 'platform' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerEffects, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'platform' }]\n }], ctorParameters: () => [{ type: BsDatepickerActions }, { type: BsLocaleService }] });\n\nconst defaultMonthOptions = {\n width: 7,\n height: 6\n};\nconst dayInMilliseconds = 24 * 60 * 60 * 1000;\n\nclass BsDatepickerState {\n constructor() {\n // DatepickerRenderOptions\n this.showWeekNumbers = true;\n this.displayMonths = 1;\n }\n}\nconst _initialView = { date: new Date(), mode: 'day' };\nconst initialDatepickerState = Object.assign(new BsDatepickerConfig(), {\n locale: 'en',\n view: _initialView,\n selectedRange: [],\n selectedTime: [],\n monthViewOptions: defaultMonthOptions\n});\n\nfunction getStartingDayOfCalendar(date, options) {\n if (isFirstDayOfWeek(date, options.firstDayOfWeek)) {\n return date;\n }\n const weekDay = getDay(date);\n const offset = calculateDateOffset(weekDay, options.firstDayOfWeek);\n return shiftDate(date, { day: -offset });\n}\nfunction calculateDateOffset(weekday, startingDayOffset) {\n const _startingDayOffset = Number(startingDayOffset);\n if (isNaN(_startingDayOffset)) {\n return 0;\n }\n if (_startingDayOffset === 0) {\n return weekday;\n }\n const offset = weekday - _startingDayOffset % 7;\n return offset < 0 ? offset + 7 : offset;\n}\nfunction isMonthDisabled(date, min, max) {\n const minBound = min && isBefore(endOf(date, 'month'), min, 'day');\n const maxBound = max && isAfter(startOf(date, 'month'), max, 'day');\n return minBound || maxBound || false;\n}\nfunction isYearDisabled(date, min, max) {\n const minBound = min && isBefore(endOf(date, 'year'), min, 'day');\n const maxBound = max && isAfter(startOf(date, 'year'), max, 'day');\n return minBound || maxBound || false;\n}\nfunction isDisabledDate(date, datesDisabled, unit) {\n if (!datesDisabled || !isArray(datesDisabled) || !datesDisabled.length) {\n return false;\n }\n if (unit && unit === 'year' && !datesDisabled[0].getDate()) {\n return datesDisabled.some((dateDisabled) => isSame(date, dateDisabled, 'year'));\n }\n return datesDisabled.some((dateDisabled) => isSame(date, dateDisabled, 'date'));\n}\nfunction isEnabledDate(date, datesEnabled, unit) {\n if (!datesEnabled || !isArray(datesEnabled) || !datesEnabled.length) {\n return false;\n }\n return !datesEnabled.some((enabledDate) => isSame(date, enabledDate, unit || 'date'));\n}\nfunction getYearsCalendarInitialDate(state, calendarIndex = 0) {\n const model = state && state.yearsCalendarModel && state.yearsCalendarModel[calendarIndex];\n return model?.years[0] && model.years[0][0] && model.years[0][0].date;\n}\nfunction checkRangesWithMaxDate(ranges, maxDate) {\n if (!ranges)\n return ranges;\n if (!maxDate)\n return ranges;\n if (!ranges.length && !ranges[0].value)\n return ranges;\n ranges.forEach((item) => {\n if (!item || !item.value)\n return ranges;\n if (item.value instanceof Date)\n return ranges;\n if (!(item.value instanceof Array && item.value.length))\n return ranges;\n item.value = compareDateWithMaxDateHelper(item.value, maxDate);\n return ranges;\n });\n return ranges;\n}\nfunction checkBsValue(date, maxDate) {\n if (!date)\n return date;\n if (!maxDate)\n return date;\n if (date instanceof Array && !date.length)\n return date;\n if (date instanceof Date)\n return date;\n return compareDateWithMaxDateHelper(date, maxDate);\n}\nfunction compareDateWithMaxDateHelper(date, maxDate) {\n if (date instanceof Array) {\n const editedValues = date.map(item => {\n if (!item)\n return item;\n if (isAfter(item, maxDate, 'date'))\n item = maxDate;\n return item;\n });\n return editedValues;\n }\n return date;\n}\nfunction setCurrentTimeOnDateSelect(value) {\n if (!value)\n return value;\n return setCurrentTimeHelper(value);\n}\nfunction setDateRangesCurrentTimeOnDateSelect(value) {\n if (!value?.length)\n return value;\n value.map((date) => {\n if (!date) {\n return date;\n }\n return setCurrentTimeHelper(date);\n });\n return value;\n}\nfunction setCurrentTimeHelper(date) {\n const now = new Date();\n date.setMilliseconds(now.getMilliseconds());\n date.setSeconds(now.getSeconds());\n date.setMinutes(now.getMinutes());\n date.setHours(now.getHours());\n return date;\n}\n\nfunction createMatrix(options, fn) {\n let prevValue = options.initialDate;\n const matrix = new Array(options.height);\n for (let i = 0; i < options.height; i++) {\n matrix[i] = new Array(options.width);\n for (let j = 0; j < options.width; j++) {\n matrix[i][j] = fn(prevValue);\n prevValue = shiftDate(prevValue, options.shift);\n }\n }\n return matrix;\n}\n\n// user and model input should handle parsing and validating input values\nfunction calcDaysCalendar(startingDate, options) {\n const firstDay = getFirstDayOfMonth(startingDate);\n const initialDate = getStartingDayOfCalendar(firstDay, options);\n // todo test\n const matrixOptions = {\n width: options.width || 0,\n height: options.height || 0,\n initialDate,\n shift: { day: 1 }\n };\n const daysMatrix = createMatrix(matrixOptions, date => date);\n return {\n daysMatrix,\n month: firstDay\n };\n}\n\nfunction formatDaysCalendar(daysCalendar, formatOptions, monthIndex) {\n return {\n month: daysCalendar.month,\n monthTitle: formatDate(daysCalendar.month, formatOptions.monthTitle, formatOptions.locale),\n yearTitle: formatDate(daysCalendar.month, formatOptions.yearTitle, formatOptions.locale),\n weekNumbers: getWeekNumbers(daysCalendar.daysMatrix, formatOptions.weekNumbers, formatOptions.locale),\n weekdays: getShiftedWeekdays(formatOptions.locale),\n weeks: daysCalendar.daysMatrix.map((week, weekIndex) => ({\n days: week.map((date, dayIndex) => ({\n date,\n label: formatDate(date, formatOptions.dayLabel, formatOptions.locale),\n monthIndex,\n weekIndex,\n dayIndex\n }))\n })),\n hideLeftArrow: false,\n hideRightArrow: false,\n disableLeftArrow: false,\n disableRightArrow: false\n };\n}\nfunction getWeekNumbers(daysMatrix, format, locale) {\n return daysMatrix.map((days) => (days[0] ? formatDate(days[0], format, locale) : ''));\n}\nfunction getShiftedWeekdays(locale) {\n const _locale = getLocale(locale);\n const weekdays = _locale.weekdaysShort();\n const firstDayOfWeek = _locale.firstDayOfWeek();\n return [...weekdays.slice(firstDayOfWeek), ...weekdays.slice(0, firstDayOfWeek)];\n}\n\nfunction flagDaysCalendar(formattedMonth, options) {\n formattedMonth.weeks.forEach((week) => {\n week.days.forEach((day, dayIndex) => {\n // datepicker\n const isOtherMonth = !isSameMonth(day.date, formattedMonth.month);\n const isHovered = !isOtherMonth && isSameDay(day.date, options.hoveredDate);\n // date range picker\n const isSelectionStart = !isOtherMonth &&\n options.selectedRange &&\n isSameDay(day.date, options.selectedRange[0]);\n const isSelectionEnd = !isOtherMonth &&\n options.selectedRange &&\n isSameDay(day.date, options.selectedRange[1]);\n const isSelected = (!isOtherMonth && isSameDay(day.date, options.selectedDate)) ||\n isSelectionStart ||\n isSelectionEnd;\n const isInRange = !isOtherMonth &&\n options.selectedRange &&\n isDateInRange(day.date, options.selectedRange, options.hoveredDate);\n const isDisabled = options.isDisabled ||\n isBefore(day.date, options.minDate, 'day') ||\n isAfter(day.date, options.maxDate, 'day') ||\n isDisabledDay(day.date, options.daysDisabled) ||\n isDisabledDate(day.date, options.datesDisabled) ||\n isEnabledDate(day.date, options.datesEnabled);\n const currentDate = new Date();\n const isToday = !isOtherMonth && isSameDay(day.date, currentDate);\n const customClasses = options.dateCustomClasses && options.dateCustomClasses\n .map(dcc => isSameDay(day.date, dcc.date) ? dcc.classes : [])\n .reduce((previousValue, currentValue) => previousValue.concat(currentValue), [])\n .join(' ')\n || '';\n const tooltipText = options.dateTooltipTexts && options.dateTooltipTexts\n .map(tt => isSameDay(day.date, tt.date) ? tt.tooltipText : '')\n .reduce((previousValue, currentValue) => {\n previousValue.push(currentValue);\n return previousValue;\n }, [])\n .join(' ')\n || '';\n // decide update or not\n const newDay = Object.assign({}, day, {\n isOtherMonth,\n isHovered,\n isSelected,\n isSelectionStart,\n isSelectionEnd,\n isInRange,\n isDisabled,\n isToday,\n customClasses,\n tooltipText\n });\n if (day.isOtherMonth !== newDay.isOtherMonth ||\n day.isHovered !== newDay.isHovered ||\n day.isSelected !== newDay.isSelected ||\n day.isSelectionStart !== newDay.isSelectionStart ||\n day.isSelectionEnd !== newDay.isSelectionEnd ||\n day.isDisabled !== newDay.isDisabled ||\n day.isInRange !== newDay.isInRange ||\n day.customClasses !== newDay.customClasses ||\n day.tooltipText !== newDay.tooltipText) {\n week.days[dayIndex] = newDay;\n }\n });\n });\n // todo: add check for linked calendars\n formattedMonth.hideLeftArrow =\n options.isDisabled ||\n (!!options.monthIndex && options.monthIndex > 0 && options.monthIndex !== options.displayMonths);\n formattedMonth.hideRightArrow =\n options.isDisabled ||\n ((!!options.monthIndex || options.monthIndex === 0) && !!options.displayMonths && options.monthIndex < options.displayMonths &&\n options.monthIndex + 1 !== options.displayMonths);\n formattedMonth.disableLeftArrow = isMonthDisabled(shiftDate(formattedMonth.month, { month: -1 }), options.minDate, options.maxDate);\n formattedMonth.disableRightArrow = isMonthDisabled(shiftDate(formattedMonth.month, { month: 1 }), options.minDate, options.maxDate);\n return formattedMonth;\n}\nfunction isDateInRange(date, selectedRange, hoveredDate) {\n if (!date || !selectedRange || !selectedRange[0]) {\n return false;\n }\n if (selectedRange[1]) {\n return date > selectedRange[0] && date <= selectedRange[1];\n }\n if (hoveredDate) {\n return date > selectedRange[0] && date <= hoveredDate;\n }\n return false;\n}\n\nfunction canSwitchMode(mode, minMode) {\n return minMode ? mode >= minMode : true;\n}\n\nconst height$1 = 4;\nconst width$1 = 3;\nconst shift$1 = { month: 1 };\nfunction formatMonthsCalendar(viewDate, formatOptions) {\n const initialDate = startOf(viewDate, 'year');\n const matrixOptions = { width: width$1, height: height$1, initialDate, shift: shift$1 };\n const monthMatrix = createMatrix(matrixOptions, date => ({\n date,\n label: formatDate(date, formatOptions.monthLabel, formatOptions.locale)\n }));\n return {\n months: monthMatrix,\n monthTitle: '',\n yearTitle: formatDate(viewDate, formatOptions.yearTitle, formatOptions.locale),\n hideRightArrow: false,\n hideLeftArrow: false,\n disableRightArrow: false,\n disableLeftArrow: false\n };\n}\n\nfunction flagMonthsCalendar(monthCalendar, options) {\n monthCalendar.months.forEach((months, rowIndex) => {\n months.forEach((month, monthIndex) => {\n let isSelected;\n const isHovered = isSameMonth(month.date, options.hoveredMonth);\n const isDisabled = options.isDisabled ||\n isDisabledDate(month.date, options.datesDisabled) ||\n isEnabledDate(month.date, options.datesEnabled, 'month') ||\n isMonthDisabled(month.date, options.minDate, options.maxDate);\n if (!options.selectedDate && options.selectedRange) {\n isSelected = isSameMonth(month.date, options.selectedRange[0]);\n if (!isSelected) {\n isSelected = isSameMonth(month.date, options.selectedRange[1]);\n }\n }\n else {\n isSelected = isSameMonth(month.date, options.selectedDate);\n }\n const newMonth = Object.assign(/*{},*/ month, {\n isHovered,\n isDisabled,\n isSelected\n });\n if (month.isHovered !== newMonth.isHovered ||\n month.isDisabled !== newMonth.isDisabled ||\n month.isSelected !== newMonth.isSelected) {\n monthCalendar.months[rowIndex][monthIndex] = newMonth;\n }\n });\n });\n // todo: add check for linked calendars\n monthCalendar.hideLeftArrow =\n !!options.monthIndex && options.monthIndex > 0 && options.monthIndex !== options.displayMonths;\n monthCalendar.hideRightArrow =\n (!!options.monthIndex || options.monthIndex === 0)\n && (!!options.displayMonths || options.displayMonths === 0)\n && options.monthIndex < options.displayMonths\n && options.monthIndex + 1 !== options.displayMonths;\n monthCalendar.disableLeftArrow = isYearDisabled(shiftDate(monthCalendar.months[0][0].date, { year: -1 }), options.minDate, options.maxDate);\n monthCalendar.disableRightArrow = isYearDisabled(shiftDate(monthCalendar.months[0][0].date, { year: 1 }), options.minDate, options.maxDate);\n return monthCalendar;\n}\n\nconst height = 4;\nconst width = 4;\nconst yearsPerCalendar = height * width;\nconst initialYearShift = (Math.floor(yearsPerCalendar / 2) - 1) * -1;\nconst shift = { year: 1 };\nfunction formatYearsCalendar(viewDate, formatOptions, previousInitialDate) {\n const initialDate = calculateInitialDate(viewDate, previousInitialDate);\n const matrixOptions = { width, height, initialDate, shift };\n const yearsMatrix = createMatrix(matrixOptions, date => ({\n date,\n label: formatDate(date, formatOptions.yearLabel, formatOptions.locale)\n }));\n const yearTitle = formatYearRangeTitle(yearsMatrix, formatOptions);\n return {\n years: yearsMatrix,\n monthTitle: '',\n yearTitle,\n hideLeftArrow: false,\n hideRightArrow: false,\n disableLeftArrow: false,\n disableRightArrow: false\n };\n}\nfunction calculateInitialDate(viewDate, previousInitialDate) {\n if (previousInitialDate\n && viewDate.getFullYear() >= previousInitialDate.getFullYear()\n && viewDate.getFullYear() < previousInitialDate.getFullYear() + yearsPerCalendar) {\n return previousInitialDate;\n }\n return shiftDate(viewDate, { year: initialYearShift });\n}\nfunction formatYearRangeTitle(yearsMatrix, formatOptions) {\n const from = formatDate(yearsMatrix[0][0].date, formatOptions.yearTitle, formatOptions.locale);\n const to = formatDate(yearsMatrix[height - 1][width - 1].date, formatOptions.yearTitle, formatOptions.locale);\n return `${from} - ${to}`;\n}\n\nfunction flagYearsCalendar(yearsCalendar, options) {\n yearsCalendar.years.forEach((years, rowIndex) => {\n years.forEach((year, yearIndex) => {\n let isSelected;\n const isHovered = isSameYear(year.date, options.hoveredYear);\n const isDisabled = options.isDisabled ||\n isDisabledDate(year.date, options.datesDisabled, 'year') ||\n isEnabledDate(year.date, options.datesEnabled, 'year') ||\n isYearDisabled(year.date, options.minDate, options.maxDate);\n if (!options.selectedDate && options.selectedRange) {\n isSelected = isSameYear(year.date, options.selectedRange[0]);\n if (!isSelected) {\n isSelected = isSameYear(year.date, options.selectedRange[1]);\n }\n }\n else {\n isSelected = isSameYear(year.date, options.selectedDate);\n }\n const newMonth = Object.assign(/*{},*/ year, { isHovered, isDisabled, isSelected });\n if (year.isHovered !== newMonth.isHovered ||\n year.isDisabled !== newMonth.isDisabled ||\n year.isSelected !== newMonth.isSelected) {\n yearsCalendar.years[rowIndex][yearIndex] = newMonth;\n }\n });\n });\n // todo: add check for linked calendars\n yearsCalendar.hideLeftArrow =\n !!options.yearIndex && options.yearIndex > 0 && options.yearIndex !== options.displayMonths;\n yearsCalendar.hideRightArrow =\n !!options.yearIndex && !!options.displayMonths &&\n options.yearIndex < options.displayMonths &&\n options.yearIndex + 1 !== options.displayMonths;\n yearsCalendar.disableLeftArrow = isYearDisabled(shiftDate(yearsCalendar.years[0][0].date, { year: -1 }), options.minDate, options.maxDate);\n const i = yearsCalendar.years.length - 1;\n const j = yearsCalendar.years[i].length - 1;\n yearsCalendar.disableRightArrow = isYearDisabled(shiftDate(yearsCalendar.years[i][j].date, { year: 1 }), options.minDate, options.maxDate);\n return yearsCalendar;\n}\n\nfunction copyTime(sourceDate, time) {\n if (!sourceDate || !isNaN(sourceDate.getTime())) {\n return;\n }\n sourceDate.setHours(time.getHours());\n sourceDate.setMinutes(time.getMinutes());\n sourceDate.setSeconds(time.getSeconds());\n sourceDate.setMilliseconds(time.getMilliseconds());\n}\n\nfunction bsDatepickerReducer(state = initialDatepickerState, action) {\n switch (action.type) {\n case BsDatepickerActions.CALCULATE: {\n return calculateReducer(state);\n }\n case BsDatepickerActions.FORMAT: {\n return formatReducer(state);\n }\n case BsDatepickerActions.FLAG: {\n return flagReducer(state);\n }\n case BsDatepickerActions.NAVIGATE_OFFSET: {\n return navigateOffsetReducer(state, action);\n }\n case BsDatepickerActions.NAVIGATE_TO: {\n const payload = action.payload;\n if (!state.view || !payload.unit) {\n return state;\n }\n const date = setFullDate(state.view.date, payload.unit);\n let newState;\n let mode;\n if (canSwitchMode(payload.viewMode, state.minMode)) {\n mode = payload.viewMode;\n newState = { view: { date, mode } };\n }\n else {\n mode = state.view.mode;\n newState = { selectedDate: date, view: { date, mode } };\n }\n return Object.assign({}, state, newState);\n }\n case BsDatepickerActions.CHANGE_VIEWMODE: {\n if (!canSwitchMode(action.payload, state.minMode) || !state.view) {\n return state;\n }\n const date = state.view.date;\n const mode = action.payload;\n const newState = { view: { date, mode } };\n return Object.assign({}, state, newState);\n }\n case BsDatepickerActions.HOVER: {\n return Object.assign({}, state, { hoveredDate: action.payload });\n }\n case BsDatepickerActions.SELECT: {\n if (!state.view) {\n return state;\n }\n const newState = {\n selectedDate: action.payload,\n view: state.view\n };\n if (Array.isArray(state.selectedTime)) {\n const _time = state.selectedTime[0];\n if (newState.selectedDate && _time) {\n copyTime(newState.selectedDate, _time);\n }\n }\n const mode = state.view.mode;\n const _date = action.payload || state.view.date;\n const date = getViewDate(_date, state.minDate, state.maxDate);\n newState.view = { mode, date };\n return Object.assign({}, state, newState);\n }\n case BsDatepickerActions.SELECT_TIME: {\n const { date, index } = action.payload;\n const selectedTime = state.selectedTime ? [...state.selectedTime] : [];\n selectedTime[index] = date;\n return Object.assign({}, state, { selectedTime });\n }\n case BsDatepickerActions.SET_OPTIONS: {\n if (!state.view) {\n return state;\n }\n const newState = action.payload;\n // preserve view mode\n const mode = newState.minMode ? newState.minMode : state.view.mode;\n const _viewDate = isDateValid(newState.value) && newState.value\n || isArray(newState.value) && isDateValid(newState.value[0]) && newState.value[0]\n || state.view.date;\n const date = getViewDate(_viewDate, newState.minDate, newState.maxDate);\n newState.view = { mode, date };\n // update selected value\n if (newState.value) {\n // if new value is array we work with date range\n if (isArray(newState.value)) {\n newState.selectedRange = newState.value;\n newState.selectedTime = newState.value.map((i) => i);\n }\n // if new value is a date -> datepicker\n if (newState.value instanceof Date) {\n newState.selectedDate = newState.value;\n newState.selectedTime = [newState.value];\n }\n // provided value is not supported :)\n // need to report it somehow\n }\n return Object.assign({}, state, newState);\n }\n // date range picker\n case BsDatepickerActions.SELECT_RANGE: {\n if (!state.view) {\n return state;\n }\n const newState = {\n selectedRange: action.payload,\n view: state.view\n };\n newState.selectedRange?.forEach((dte, index) => {\n if (Array.isArray(state.selectedTime)) {\n const _time = state.selectedTime[index];\n if (_time) {\n copyTime(dte, _time);\n }\n }\n });\n const mode = state.view.mode;\n const _date = action.payload && action.payload[0] || state.view.date;\n const date = getViewDate(_date, state.minDate, state.maxDate);\n newState.view = { mode, date };\n return Object.assign({}, state, newState);\n }\n case BsDatepickerActions.SET_MIN_DATE: {\n return Object.assign({}, state, {\n minDate: action.payload\n });\n }\n case BsDatepickerActions.SET_MAX_DATE: {\n return Object.assign({}, state, {\n maxDate: action.payload\n });\n }\n case BsDatepickerActions.SET_IS_DISABLED: {\n return Object.assign({}, state, {\n isDisabled: action.payload\n });\n }\n case BsDatepickerActions.SET_DATE_CUSTOM_CLASSES: {\n return Object.assign({}, state, {\n dateCustomClasses: action.payload\n });\n }\n case BsDatepickerActions.SET_DATE_TOOLTIP_TEXTS: {\n return Object.assign({}, state, {\n dateTooltipTexts: action.payload\n });\n }\n default:\n return state;\n }\n}\nfunction calculateReducer(state) {\n if (!state.view) {\n return state;\n }\n // how many calendars\n let displayMonths;\n if (state.displayOneMonthRange &&\n isDisplayOneMonth(state.view.date, state.minDate, state.maxDate)) {\n displayMonths = 1;\n }\n else {\n displayMonths = state.displayMonths || 1;\n }\n // use selected date on initial rendering if set\n let viewDate = state.view.date;\n if (state.view.mode === 'day' && state.monthViewOptions) {\n if (state.showPreviousMonth && state.selectedRange && state.selectedRange.length === 0) {\n viewDate = shiftDate(viewDate, { month: -1 });\n }\n state.monthViewOptions.firstDayOfWeek = getLocale(state.locale).firstDayOfWeek();\n let monthsModel = new Array(displayMonths);\n for (let monthIndex = 0; monthIndex < displayMonths; monthIndex++) {\n // todo: for unlinked calendars it will be harder\n monthsModel[monthIndex] = calcDaysCalendar(viewDate, state.monthViewOptions);\n viewDate = shiftDate(viewDate, { month: 1 });\n }\n // Check if parameter enabled and check if it's not months navigation event\n if (state.preventChangeToNextMonth && state.flaggedMonths && state.hoveredDate) {\n const viewMonth = calcDaysCalendar(state.view.date, state.monthViewOptions);\n // Check if viewed right month same as in flaggedMonths state, then override months model with flaggedMonths\n if (state.flaggedMonths.length && state.flaggedMonths[1].month.getMonth() === viewMonth.month.getMonth()) {\n monthsModel = state.flaggedMonths\n .map(item => {\n if (state.monthViewOptions) {\n return calcDaysCalendar(item.month, state.monthViewOptions);\n }\n return null;\n })\n .filter(item => item !== null);\n }\n }\n return Object.assign({}, state, { monthsModel });\n }\n if (state.view.mode === 'month') {\n const monthsCalendar = new Array(displayMonths);\n for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {\n // todo: for unlinked calendars it will be harder\n monthsCalendar[calendarIndex] = formatMonthsCalendar(viewDate, getFormatOptions(state));\n viewDate = shiftDate(viewDate, { year: 1 });\n }\n return Object.assign({}, state, { monthsCalendar });\n }\n if (state.view.mode === 'year') {\n const yearsCalendarModel = new Array(displayMonths);\n for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {\n // todo: for unlinked calendars it will be harder\n yearsCalendarModel[calendarIndex] = formatYearsCalendar(viewDate, getFormatOptions(state), state.minMode === 'year' ? getYearsCalendarInitialDate(state, calendarIndex) : undefined);\n viewDate = shiftDate(viewDate, { year: yearsPerCalendar });\n }\n return Object.assign({}, state, { yearsCalendarModel });\n }\n return state;\n}\nfunction formatReducer(state) {\n if (!state.view) {\n return state;\n }\n if (state.view.mode === 'day' && state.monthsModel) {\n const formattedMonths = state.monthsModel.map((month, monthIndex) => formatDaysCalendar(month, getFormatOptions(state), monthIndex));\n return Object.assign({}, state, { formattedMonths });\n }\n // how many calendars\n const displayMonths = state.displayMonths || 1;\n // check initial rendering\n // use selected date on initial rendering if set\n let viewDate = state.view.date;\n if (state.view.mode === 'month') {\n const monthsCalendar = new Array(displayMonths);\n for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {\n // todo: for unlinked calendars it will be harder\n monthsCalendar[calendarIndex] = formatMonthsCalendar(viewDate, getFormatOptions(state));\n viewDate = shiftDate(viewDate, { year: 1 });\n }\n return Object.assign({}, state, { monthsCalendar });\n }\n if (state.view.mode === 'year') {\n const yearsCalendarModel = new Array(displayMonths);\n for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {\n // todo: for unlinked calendars it will be harder\n yearsCalendarModel[calendarIndex] = formatYearsCalendar(viewDate, getFormatOptions(state));\n viewDate = shiftDate(viewDate, { year: 16 });\n }\n return Object.assign({}, state, { yearsCalendarModel });\n }\n return state;\n}\nfunction flagReducer(state) {\n if (!state.view) {\n return state;\n }\n const displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;\n if (state.formattedMonths && state.view.mode === 'day') {\n const flaggedMonths = state.formattedMonths.map((formattedMonth, monthIndex) => flagDaysCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n daysDisabled: state.daysDisabled,\n datesDisabled: state.datesDisabled,\n datesEnabled: state.datesEnabled,\n hoveredDate: state.hoveredDate,\n selectedDate: state.selectedDate,\n selectedRange: state.selectedRange,\n displayMonths,\n dateCustomClasses: state.dateCustomClasses,\n dateTooltipTexts: state.dateTooltipTexts,\n monthIndex\n }));\n return Object.assign({}, state, { flaggedMonths });\n }\n if (state.view.mode === 'month' && state.monthsCalendar) {\n const flaggedMonthsCalendar = state.monthsCalendar.map((formattedMonth, monthIndex) => flagMonthsCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n hoveredMonth: state.hoveredMonth,\n selectedDate: state.selectedDate,\n datesDisabled: state.datesDisabled,\n datesEnabled: state.datesEnabled,\n selectedRange: state.selectedRange,\n displayMonths,\n monthIndex\n }));\n return Object.assign({}, state, { flaggedMonthsCalendar });\n }\n if (state.view.mode === 'year' && state.yearsCalendarModel) {\n const yearsCalendarFlagged = state.yearsCalendarModel.map((formattedMonth, yearIndex) => flagYearsCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n hoveredYear: state.hoveredYear,\n selectedDate: state.selectedDate,\n datesDisabled: state.datesDisabled,\n datesEnabled: state.datesEnabled,\n selectedRange: state.selectedRange,\n displayMonths,\n yearIndex\n }));\n return Object.assign({}, state, { yearsCalendarFlagged });\n }\n return state;\n}\nfunction navigateOffsetReducer(state, action) {\n if (!state.view) {\n return state;\n }\n const date = shiftViewDate(state, action);\n if (!date) {\n return state;\n }\n const newState = {\n view: {\n mode: state.view.mode,\n date\n }\n };\n return Object.assign({}, state, newState);\n}\nfunction shiftViewDate(state, action) {\n if (!state.view) {\n return undefined;\n }\n if (state.view.mode === 'year' && state.minMode === 'year') {\n const initialDate = getYearsCalendarInitialDate(state, 0);\n if (initialDate) {\n const middleDate = shiftDate(initialDate, { year: -initialYearShift });\n return shiftDate(middleDate, action.payload);\n }\n }\n return shiftDate(startOf(state.view.date, 'month'), action.payload);\n}\nfunction getFormatOptions(state) {\n return {\n locale: state.locale,\n monthTitle: state.monthTitle,\n yearTitle: state.yearTitle,\n dayLabel: state.dayLabel,\n monthLabel: state.monthLabel,\n yearLabel: state.yearLabel,\n weekNumbers: state.weekNumbers\n };\n}\n/**\n * if view date is provided (bsValue|ngModel) it should be shown\n * if view date is not provider:\n * if minDate>currentDate (default view value), show minDate\n * if maxDate [] });\n\nclass BsCustomDatesViewComponent {\n constructor() {\n this.onSelect = new EventEmitter();\n }\n selectFromRanges(range) {\n this.onSelect.emit(range);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsCustomDatesViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsCustomDatesViewComponent, selector: \"bs-custom-date-view\", inputs: { ranges: \"ranges\", selectedRange: \"selectedRange\", customRangeLabel: \"customRangeLabel\" }, outputs: { onSelect: \"onSelect\" }, ngImport: i0, template: `\n
    \n \n
    \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i6.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsCustomDatesViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'bs-custom-date-view',\n template: `\n
    \n \n
    \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { ranges: [{\n type: Input\n }], selectedRange: [{\n type: Input\n }], customRangeLabel: [{\n type: Input\n }], onSelect: [{\n type: Output\n }] } });\n\n/** *************** */\n// events\n/** *************** */\nvar BsNavigationDirection;\n(function (BsNavigationDirection) {\n BsNavigationDirection[BsNavigationDirection[\"UP\"] = 0] = \"UP\";\n BsNavigationDirection[BsNavigationDirection[\"DOWN\"] = 1] = \"DOWN\";\n})(BsNavigationDirection || (BsNavigationDirection = {}));\n\nclass BsCurrentDateViewComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsCurrentDateViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsCurrentDateViewComponent, selector: \"bs-current-date\", inputs: { title: \"title\" }, ngImport: i0, template: `
    {{ title }}
    `, isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsCurrentDateViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'bs-current-date',\n template: `
    {{ title }}
    `\n }]\n }], propDecorators: { title: [{\n type: Input\n }] } });\n\nclass BsTimepickerViewComponent {\n constructor() {\n this.ampm = 'ok';\n this.hours = 0;\n this.minutes = 0;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsTimepickerViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsTimepickerViewComponent, selector: \"bs-timepicker\", ngImport: i0, template: `\n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n \n
    \n `, isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsTimepickerViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'bs-timepicker',\n template: `\n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n \n
    \n `\n }]\n }] });\n\nclass BsCalendarLayoutComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsCalendarLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsCalendarLayoutComponent, selector: \"bs-calendar-layout\", ngImport: i0, template: `\n \n \n\n \n
    \n \n
    \n\n
    \n \n
    \n\n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i6.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: BsCurrentDateViewComponent, selector: \"bs-current-date\", inputs: [\"title\"] }, { kind: \"component\", type: BsTimepickerViewComponent, selector: \"bs-timepicker\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsCalendarLayoutComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'bs-calendar-layout',\n template: `\n \n \n\n \n
    \n \n
    \n\n
    \n \n
    \n\n \n \n `\n }]\n }] });\n\nclass BsDatepickerDayDecoratorComponent {\n constructor(_config, _elRef, _renderer) {\n this._config = _config;\n this._elRef = _elRef;\n this._renderer = _renderer;\n this.day = { date: new Date(), label: '' };\n }\n ngOnInit() {\n if (this.day?.isToday && this._config && this._config.customTodayClass) {\n this._renderer.addClass(this._elRef.nativeElement, this._config.customTodayClass);\n }\n if (typeof this.day?.customClasses === 'string') {\n this.day?.customClasses.split(' ')\n .filter((className) => className)\n .forEach((className) => {\n this._renderer.addClass(this._elRef.nativeElement, className);\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerDayDecoratorComponent, deps: [{ token: BsDatepickerConfig }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDatepickerDayDecoratorComponent, selector: \"[bsDatepickerDayDecorator]\", inputs: { day: \"day\" }, host: { properties: { \"class.disabled\": \"day.isDisabled\", \"class.is-highlighted\": \"day.isHovered\", \"class.is-other-month\": \"day.isOtherMonth\", \"class.is-active-other-month\": \"day.isOtherMonthHovered\", \"class.in-range\": \"day.isInRange\", \"class.select-start\": \"day.isSelectionStart\", \"class.select-end\": \"day.isSelectionEnd\", \"class.selected\": \"day.isSelected\" } }, ngImport: i0, template: `{{ day && day.label || '' }}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerDayDecoratorComponent, decorators: [{\n type: Component,\n args: [{\n selector: '[bsDatepickerDayDecorator]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.disabled]': 'day.isDisabled',\n '[class.is-highlighted]': 'day.isHovered',\n '[class.is-other-month]': 'day.isOtherMonth',\n '[class.is-active-other-month]': 'day.isOtherMonthHovered',\n '[class.in-range]': 'day.isInRange',\n '[class.select-start]': 'day.isSelectionStart',\n '[class.select-end]': 'day.isSelectionEnd',\n '[class.selected]': 'day.isSelected'\n },\n template: `{{ day && day.label || '' }}`\n }]\n }], ctorParameters: () => [{ type: BsDatepickerConfig }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { day: [{\n type: Input\n }] } });\n\nclass BsDatepickerNavigationViewComponent {\n constructor() {\n this.isDisabled = false;\n this.onNavigate = new EventEmitter();\n this.onViewMode = new EventEmitter();\n }\n navTo(down) {\n this.onNavigate.emit(down ? BsNavigationDirection.DOWN : BsNavigationDirection.UP);\n }\n view(viewMode) {\n if (this.isDisabled) {\n return;\n }\n this.onViewMode.emit(viewMode);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerNavigationViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDatepickerNavigationViewComponent, selector: \"bs-datepicker-navigation-view\", inputs: { calendar: \"calendar\", isDisabled: \"isDisabled\" }, outputs: { onNavigate: \"onNavigate\", onViewMode: \"onViewMode\" }, ngImport: i0, template: `\n \n\n \n ​ \n\n \n \n\n ​ \n\n \n {{ calendar.yearTitle }}\n \n\n ​ \n\n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i6.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerNavigationViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'bs-datepicker-navigation-view',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n \n\n \n ​ \n\n \n \n\n ​ \n\n \n {{ calendar.yearTitle }}\n \n\n ​ \n\n \n `\n }]\n }], propDecorators: { calendar: [{\n type: Input\n }], isDisabled: [{\n type: Input\n }], onNavigate: [{\n type: Output\n }], onViewMode: [{\n type: Output\n }] } });\n\nclass BsDaysCalendarViewComponent {\n constructor(_config) {\n this._config = _config;\n this.onNavigate = new EventEmitter();\n this.onViewMode = new EventEmitter();\n this.onSelect = new EventEmitter();\n this.onHover = new EventEmitter();\n this.onHoverWeek = new EventEmitter();\n this.isiOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1));\n if (this._config.dateTooltipTexts && this._config.dateTooltipTexts.length > 0) {\n this.isShowTooltip = true;\n }\n }\n navigateTo(event) {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({ step: { month: step } });\n }\n changeViewMode(event) {\n this.onViewMode.emit(event);\n }\n selectDay(event) {\n this.onSelect.emit(event);\n }\n selectWeek(week) {\n if (!this._config.selectWeek && !this._config.selectWeekDateRange) {\n return;\n }\n if (week.days.length === 0) {\n return;\n }\n if (this._config.selectWeek && week.days[0]\n && !week.days[0].isDisabled\n && this._config.selectFromOtherMonth) {\n this.onSelect.emit(week.days[0]);\n return;\n }\n const selectedDay = week.days.find((day) => {\n return this._config.selectFromOtherMonth\n ? !day.isDisabled\n : !day.isOtherMonth && !day.isDisabled;\n });\n this.onSelect.emit(selectedDay);\n if (this._config.selectWeekDateRange) {\n const days = week.days.slice(0);\n const lastDayOfRange = days.reverse().find((day) => {\n return this._config.selectFromOtherMonth\n ? !day.isDisabled\n : !day.isOtherMonth && !day.isDisabled;\n });\n this.onSelect.emit(lastDayOfRange);\n }\n }\n weekHoverHandler(cell, isHovered) {\n if (!this._config.selectWeek && !this._config.selectWeekDateRange) {\n return;\n }\n const hasActiveDays = cell.days.find((day) => {\n return this._config.selectFromOtherMonth\n ? !day.isDisabled\n : !day.isOtherMonth && !day.isDisabled;\n });\n if (hasActiveDays) {\n cell.isHovered = isHovered;\n this.isWeekHovered = isHovered;\n this.onHoverWeek.emit(cell);\n }\n }\n hoverDay(cell, isHovered) {\n if (this._config.selectFromOtherMonth && cell.isOtherMonth) {\n cell.isOtherMonthHovered = isHovered;\n }\n if (this._config.dateTooltipTexts) {\n cell.tooltipText = '';\n this._config.dateTooltipTexts.forEach((dateData) => {\n if (isSameDay(dateData.date, cell.date)) {\n cell.tooltipText = dateData.tooltipText;\n return;\n }\n });\n }\n this.onHover.emit({ cell, isHovered });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaysCalendarViewComponent, deps: [{ token: BsDatepickerConfig }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDaysCalendarViewComponent, selector: \"bs-days-calendar-view\", inputs: { calendar: \"calendar\", options: \"options\", isDisabled: \"isDisabled\" }, outputs: { onNavigate: \"onNavigate\", onViewMode: \"onViewMode\", onSelect: \"onSelect\", onHover: \"onHover\", onHoverWeek: \"onHoverWeek\" }, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ calendar.weekdays[i] }}\n
    \n {{ calendar.weekNumbers[i] }}\n {{ calendar.weekNumbers[i] }}\n \n\n \n {{ day.label }} 3\n \n {{ day.label }} 2\n\n \n {{ day.label }} 1\n
    \n\n
    \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i6.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i6.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i3.TooltipDirective, selector: \"[tooltip], [tooltipHtml]\", inputs: [\"adaptivePosition\", \"tooltip\", \"placement\", \"triggers\", \"container\", \"containerClass\", \"boundariesElement\", \"isOpen\", \"isDisabled\", \"delay\", \"tooltipHtml\", \"tooltipPlacement\", \"tooltipIsOpen\", \"tooltipEnable\", \"tooltipAppendToBody\", \"tooltipAnimation\", \"tooltipClass\", \"tooltipContext\", \"tooltipPopupDelay\", \"tooltipFadeDuration\", \"tooltipTrigger\"], outputs: [\"tooltipChange\", \"onShown\", \"onHidden\", \"tooltipStateChanged\"], exportAs: [\"bs-tooltip\"] }, { kind: \"component\", type: BsCalendarLayoutComponent, selector: \"bs-calendar-layout\" }, { kind: \"component\", type: BsDatepickerDayDecoratorComponent, selector: \"[bsDatepickerDayDecorator]\", inputs: [\"day\"] }, { kind: \"component\", type: BsDatepickerNavigationViewComponent, selector: \"bs-datepicker-navigation-view\", inputs: [\"calendar\", \"isDisabled\"], outputs: [\"onNavigate\", \"onViewMode\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaysCalendarViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'bs-days-calendar-view',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    {{ calendar.weekdays[i] }}\n
    \n {{ calendar.weekNumbers[i] }}\n {{ calendar.weekNumbers[i] }}\n \n\n \n {{ day.label }} 3\n \n {{ day.label }} 2\n\n \n {{ day.label }} 1\n
    \n\n
    \n `\n }]\n }], ctorParameters: () => [{ type: BsDatepickerConfig }], propDecorators: { calendar: [{\n type: Input\n }], options: [{\n type: Input\n }], isDisabled: [{\n type: Input\n }], onNavigate: [{\n type: Output\n }], onViewMode: [{\n type: Output\n }], onSelect: [{\n type: Output\n }], onHover: [{\n type: Output\n }], onHoverWeek: [{\n type: Output\n }] } });\n\nclass BsMonthCalendarViewComponent {\n constructor() {\n this.onNavigate = new EventEmitter();\n this.onViewMode = new EventEmitter();\n this.onSelect = new EventEmitter();\n this.onHover = new EventEmitter();\n }\n navigateTo(event) {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({ step: { year: step } });\n }\n viewMonth(month) {\n this.onSelect.emit(month);\n }\n hoverMonth(cell, isHovered) {\n this.onHover.emit({ cell, isHovered });\n }\n changeViewMode(event) {\n this.onViewMode.emit(event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsMonthCalendarViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsMonthCalendarViewComponent, selector: \"bs-month-calendar-view\", inputs: { calendar: \"calendar\" }, outputs: { onNavigate: \"onNavigate\", onViewMode: \"onViewMode\", onSelect: \"onSelect\", onHover: \"onHover\" }, ngImport: i0, template: `\n \n \n\n \n \n \n \n \n \n
    \n {{ month.label }}\n
    \n
    \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i6.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"component\", type: BsCalendarLayoutComponent, selector: \"bs-calendar-layout\" }, { kind: \"component\", type: BsDatepickerNavigationViewComponent, selector: \"bs-datepicker-navigation-view\", inputs: [\"calendar\", \"isDisabled\"], outputs: [\"onNavigate\", \"onViewMode\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsMonthCalendarViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'bs-month-calendar-view',\n template: `\n \n \n\n \n \n \n \n \n \n
    \n {{ month.label }}\n
    \n
    \n `\n }]\n }], propDecorators: { calendar: [{\n type: Input\n }], onNavigate: [{\n type: Output\n }], onViewMode: [{\n type: Output\n }], onSelect: [{\n type: Output\n }], onHover: [{\n type: Output\n }] } });\n\nclass BsYearsCalendarViewComponent {\n constructor() {\n this.onNavigate = new EventEmitter();\n this.onViewMode = new EventEmitter();\n this.onSelect = new EventEmitter();\n this.onHover = new EventEmitter();\n }\n navigateTo(event) {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({ step: { year: step * yearsPerCalendar } });\n }\n viewYear(year) {\n this.onSelect.emit(year);\n }\n hoverYear(cell, isHovered) {\n this.onHover.emit({ cell, isHovered });\n }\n changeViewMode(event) {\n this.onViewMode.emit(event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsYearsCalendarViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsYearsCalendarViewComponent, selector: \"bs-years-calendar-view\", inputs: { calendar: \"calendar\" }, outputs: { onNavigate: \"onNavigate\", onViewMode: \"onViewMode\", onSelect: \"onSelect\", onHover: \"onHover\" }, ngImport: i0, template: `\n \n \n\n \n \n \n \n \n \n
    \n {{ year.label }}\n
    \n
    \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i6.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"component\", type: BsCalendarLayoutComponent, selector: \"bs-calendar-layout\" }, { kind: \"component\", type: BsDatepickerNavigationViewComponent, selector: \"bs-datepicker-navigation-view\", inputs: [\"calendar\", \"isDisabled\"], outputs: [\"onNavigate\", \"onViewMode\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsYearsCalendarViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'bs-years-calendar-view',\n template: `\n \n \n\n \n \n \n \n \n \n
    \n {{ year.label }}\n
    \n
    \n `\n }]\n }], propDecorators: { calendar: [{\n type: Input\n }], onNavigate: [{\n type: Output\n }], onViewMode: [{\n type: Output\n }], onSelect: [{\n type: Output\n }], onHover: [{\n type: Output\n }] } });\n\nclass BsDatepickerContainerComponent extends BsDatepickerAbstractComponent {\n set value(value) {\n this._effects?.setValue(value);\n }\n get isDatePickerDisabled() {\n return !!this._config.isDisabled;\n }\n get isDatepickerDisabled() {\n return this.isDatePickerDisabled ? '' : null;\n }\n get isDatepickerReadonly() {\n return this.isDatePickerDisabled ? '' : null;\n }\n constructor(_renderer, _config, _store, _element, _actions, _effects, _positionService) {\n super();\n this._config = _config;\n this._store = _store;\n this._element = _element;\n this._actions = _actions;\n this._positionService = _positionService;\n this.valueChange = new EventEmitter();\n this.animationState = 'void';\n this.isRangePicker = false;\n this._subs = [];\n this._effects = _effects;\n _renderer.setStyle(_element.nativeElement, 'display', 'block');\n _renderer.setStyle(_element.nativeElement, 'position', 'absolute');\n }\n ngOnInit() {\n this._positionService.setOptions({\n modifiers: {\n flip: {\n enabled: this._config.adaptivePosition\n },\n preventOverflow: {\n enabled: this._config.adaptivePosition\n }\n },\n allowedPositions: this._config.allowedPositions\n });\n this._positionService.event$?.pipe(take(1)).subscribe(() => {\n this._positionService.disable();\n if (this._config.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n return;\n }\n this.animationState = 'unanimated';\n });\n this.isOtherMonthsActive = this._config.selectFromOtherMonth;\n this.containerClass = this._config.containerClass;\n this.showTodayBtn = this._config.showTodayButton;\n this.todayBtnLbl = this._config.todayButtonLabel;\n this.todayPos = this._config.todayPosition;\n this.showClearBtn = this._config.showClearButton;\n this.clearBtnLbl = this._config.clearButtonLabel;\n this.clearPos = this._config.clearPosition;\n this.customRangeBtnLbl = this._config.customRangeButtonLabel;\n this.withTimepicker = this._config.withTimepicker;\n this._effects\n ?.init(this._store)\n // intial state options\n .setOptions(this._config)\n // data binding view --> model\n .setBindings(this)\n // set event handlers\n .setEventHandlers(this)\n .registerDatepickerSideEffects();\n let currentDate;\n // todo: move it somewhere else\n // on selected date change\n this._subs.push(this._store\n .select((state) => state.selectedDate)\n .subscribe((date) => {\n currentDate = date;\n this.valueChange.emit(date);\n }));\n this._subs.push(this._store\n .select((state) => state.selectedTime)\n .subscribe((time) => {\n if (!time || !time[0] || !(time[0] instanceof Date) || time[0] === currentDate) {\n return;\n }\n this.valueChange.emit(time[0]);\n }));\n this._store.dispatch(this._actions.changeViewMode(this._config.startView));\n }\n ngAfterViewInit() {\n this.selectedTimeSub.add(this.selectedTime?.subscribe((val) => {\n if (Array.isArray(val) && val.length >= 1) {\n this.startTimepicker?.writeValue(val[0]);\n }\n }));\n this.startTimepicker?.registerOnChange((val) => {\n this.timeSelectHandler(val, 0);\n });\n }\n get isTopPosition() {\n return this._element.nativeElement.classList.contains('top');\n }\n positionServiceEnable() {\n this._positionService.enable();\n }\n timeSelectHandler(date, index) {\n this._store.dispatch(this._actions.selectTime(date, index));\n }\n daySelectHandler(day) {\n if (!day) {\n return;\n }\n const isDisabled = this.isOtherMonthsActive ? day.isDisabled : day.isOtherMonth || day.isDisabled;\n if (isDisabled) {\n return;\n }\n this._store.dispatch(this._actions.select(day.date));\n }\n monthSelectHandler(day) {\n if (!day || day.isDisabled) {\n return;\n }\n this._store.dispatch(this._actions.navigateTo({\n unit: {\n month: getMonth(day.date),\n year: getFullYear(day.date)\n },\n viewMode: 'day'\n }));\n }\n yearSelectHandler(day) {\n if (!day || day.isDisabled) {\n return;\n }\n this._store.dispatch(this._actions.navigateTo({\n unit: {\n year: getFullYear(day.date)\n },\n viewMode: 'month'\n }));\n }\n setToday() {\n this._store.dispatch(this._actions.select(new Date()));\n }\n clearDate() {\n this._store.dispatch(this._actions.select(undefined));\n }\n ngOnDestroy() {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n this.selectedTimeSub.unsubscribe();\n this._effects?.destroy();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerContainerComponent, deps: [{ token: i0.Renderer2 }, { token: BsDatepickerConfig }, { token: BsDatepickerStore }, { token: i0.ElementRef }, { token: BsDatepickerActions }, { token: BsDatepickerEffects }, { token: i5.PositioningService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDatepickerContainerComponent, selector: \"bs-datepicker-container\", host: { attributes: { \"role\": \"dialog\", \"aria-label\": \"calendar\" }, listeners: { \"click\": \"_stopPropagation($event)\" }, properties: { \"attr.disabled\": \"this.isDatepickerDisabled\", \"attr.readonly\": \"this.isDatepickerReadonly\" }, classAttribute: \"bottom\" }, providers: [BsDatepickerStore, BsDatepickerEffects], viewQueries: [{ propertyName: \"startTimepicker\", first: true, predicate: [\"startTP\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"\\n
    \\n
    \\n \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n \\n
    0\\\">\\n \\n \\n
    \\n
    \\n\", dependencies: [{ kind: \"directive\", type: i6.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i6.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i6.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i6.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i6.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"component\", type: i7.TimepickerComponent, selector: \"timepicker\", inputs: [\"hourStep\", \"minuteStep\", \"secondsStep\", \"readonlyInput\", \"disabled\", \"mousewheel\", \"arrowkeys\", \"showSpinners\", \"showMeridian\", \"showMinutes\", \"showSeconds\", \"meridians\", \"min\", \"max\", \"hoursPlaceholder\", \"minutesPlaceholder\", \"secondsPlaceholder\"], outputs: [\"isValid\", \"meridianChange\"] }, { kind: \"component\", type: BsCustomDatesViewComponent, selector: \"bs-custom-date-view\", inputs: [\"ranges\", \"selectedRange\", \"customRangeLabel\"], outputs: [\"onSelect\"] }, { kind: \"component\", type: BsDaysCalendarViewComponent, selector: \"bs-days-calendar-view\", inputs: [\"calendar\", \"options\", \"isDisabled\"], outputs: [\"onNavigate\", \"onViewMode\", \"onSelect\", \"onHover\", \"onHoverWeek\"] }, { kind: \"component\", type: BsMonthCalendarViewComponent, selector: \"bs-month-calendar-view\", inputs: [\"calendar\"], outputs: [\"onNavigate\", \"onViewMode\", \"onSelect\", \"onHover\"] }, { kind: \"component\", type: BsYearsCalendarViewComponent, selector: \"bs-years-calendar-view\", inputs: [\"calendar\"], outputs: [\"onNavigate\", \"onViewMode\", \"onSelect\", \"onHover\"] }, { kind: \"pipe\", type: i6.AsyncPipe, name: \"async\" }], animations: [datepickerAnimation] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bs-datepicker-container', providers: [BsDatepickerStore, BsDatepickerEffects], host: {\n class: 'bottom',\n '(click)': '_stopPropagation($event)',\n role: 'dialog',\n 'aria-label': 'calendar'\n }, animations: [datepickerAnimation], template: \"\\n
    \\n
    \\n \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n \\n
    0\\\">\\n \\n \\n
    \\n
    \\n\" }]\n }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: BsDatepickerConfig }, { type: BsDatepickerStore }, { type: i0.ElementRef }, { type: BsDatepickerActions }, { type: BsDatepickerEffects }, { type: i5.PositioningService }], propDecorators: { startTimepicker: [{\n type: ViewChild,\n args: ['startTP']\n }], isDatepickerDisabled: [{\n type: HostBinding,\n args: ['attr.disabled']\n }], isDatepickerReadonly: [{\n type: HostBinding,\n args: ['attr.readonly']\n }] } });\n\nlet previousDate$1;\nclass BsDatepickerDirective {\n get readonlyValue() {\n return this.isDisabled ? '' : null;\n }\n constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {\n this._config = _config;\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n /**\n * Placement of a datepicker. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n this.placement = 'bottom';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n this.triggers = 'click';\n /**\n * Close datepicker on outside click\n */\n this.outsideClick = true;\n /**\n * A selector specifying the element the datepicker should be appended to.\n */\n this.container = 'body';\n this.outsideEsc = true;\n this.isDestroy$ = new Subject();\n /**\n * Indicates whether datepicker's content is enabled or not\n */\n this.isDisabled = false;\n /**\n * Emits when datepicker value has been changed\n */\n this.bsValueChange = new EventEmitter();\n this._subs = [];\n this._dateInputFormat$ = new Subject();\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);\n this.onShown = this._datepicker.onShown;\n this.onHidden = this._datepicker.onHidden;\n this.isOpen$ = new BehaviorSubject(this.isOpen);\n }\n /**\n * Returns whether or not the datepicker is currently being shown\n */\n get isOpen() {\n return this._datepicker.isShown;\n }\n set isOpen(value) {\n this.isOpen$.next(value);\n }\n /**\n * Initial value of datepicker\n */\n set bsValue(value) {\n if (this._bsValue && value && this._bsValue.getTime() === value.getTime()) {\n return;\n }\n if (!this._bsValue && value && !this._config.withTimepicker) {\n const now = new Date();\n copyTime(value, now);\n }\n if (value && this.bsConfig?.initCurrentTime) {\n value = setCurrentTimeOnDateSelect(value);\n }\n this.initPreviousValue();\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n get dateInputFormat$() {\n return this._dateInputFormat$;\n }\n ngOnInit() {\n this._datepicker.listen({\n outsideClick: this.outsideClick,\n outsideEsc: this.outsideEsc,\n triggers: this.triggers,\n show: () => this.show()\n });\n this.setConfig();\n this.initPreviousValue();\n }\n initPreviousValue() {\n previousDate$1 = this._bsValue;\n }\n ngOnChanges(changes) {\n if (changes[\"bsConfig\"]) {\n if (changes[\"bsConfig\"].currentValue?.initCurrentTime && changes[\"bsConfig\"].currentValue?.initCurrentTime !== changes[\"bsConfig\"].previousValue?.initCurrentTime && this._bsValue) {\n this.initPreviousValue();\n this._bsValue = setCurrentTimeOnDateSelect(this._bsValue);\n this.bsValueChange.emit(this._bsValue);\n }\n this.setConfig();\n this._dateInputFormat$.next(this.bsConfig && this.bsConfig.dateInputFormat);\n }\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n if (changes[\"minDate\"]) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n if (changes[\"maxDate\"]) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n if (changes[\"daysDisabled\"]) {\n this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n }\n if (changes[\"datesDisabled\"]) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n }\n if (changes[\"datesEnabled\"]) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n }\n if (changes[\"isDisabled\"]) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n if (changes[\"dateCustomClasses\"]) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n }\n if (changes[\"dateTooltipTexts\"]) {\n this._datepickerRef.instance.dateTooltipTexts = this.dateTooltipTexts;\n }\n }\n initSubscribes() {\n // if date changes from external source (model -> view)\n this._subs.push(this.bsValueChange.subscribe((value) => {\n if (this._datepickerRef) {\n this._datepickerRef.instance.value = value;\n }\n }));\n // if date changes from picker (view -> model)\n if (this._datepickerRef) {\n this._subs.push(this._datepickerRef.instance.valueChange.subscribe((value) => {\n this.initPreviousValue();\n this.bsValue = value;\n if (this.keepDatepickerModalOpened()) {\n return;\n }\n this.hide();\n }));\n }\n }\n keepDatepickerModalOpened() {\n if (!previousDate$1 || !this.bsConfig?.keepDatepickerOpened || !this._config.withTimepicker) {\n return false;\n }\n return this.isDateSame();\n }\n isDateSame() {\n return (previousDate$1 instanceof Date\n && (this._bsValue?.getDate() === previousDate$1?.getDate())\n && (this._bsValue?.getMonth() === previousDate$1?.getMonth())\n && (this._bsValue?.getFullYear() === previousDate$1?.getFullYear()));\n }\n ngAfterViewInit() {\n this.isOpen$.pipe(filter(isOpen => isOpen !== this.isOpen), takeUntil(this.isDestroy$))\n .subscribe(() => this.toggle());\n }\n /**\n * Opens an element’s datepicker. This is considered a “manual” triggering of\n * the datepicker.\n */\n show() {\n if (this._datepicker.isShown) {\n return;\n }\n this.setConfig();\n this._datepickerRef = this._datepicker\n .provide({ provide: BsDatepickerConfig, useValue: this._config })\n .attach(BsDatepickerContainerComponent)\n .to(this.container)\n .position({ attachment: this.placement })\n .show({ placement: this.placement });\n this.initSubscribes();\n }\n /**\n * Closes an element’s datepicker. This is considered a “manual” triggering of\n * the datepicker.\n */\n hide() {\n if (this.isOpen) {\n this._datepicker.hide();\n }\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n if (this._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elementRef.nativeElement).focus();\n }\n }\n /**\n * Toggles an element’s datepicker. This is considered a “manual” triggering\n * of the datepicker.\n */\n toggle() {\n if (this.isOpen) {\n return this.hide();\n }\n this.show();\n }\n /**\n * Set config for datepicker\n */\n setConfig() {\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: this._config.keepDatesOutOfRules ? this._bsValue : checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,\n dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n dateTooltipTexts: this.dateTooltipTexts || this.bsConfig && this.bsConfig.dateTooltipTexts,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n minMode: this.minMode || this.bsConfig && this.bsConfig.minMode,\n initCurrentTime: this.bsConfig?.initCurrentTime,\n keepDatepickerOpened: this.bsConfig?.keepDatepickerOpened,\n keepDatesOutOfRules: this.bsConfig?.keepDatesOutOfRules\n });\n }\n unsubscribeSubscriptions() {\n if (this._subs?.length) {\n this._subs.map(sub => sub.unsubscribe());\n this._subs.length = 0;\n }\n }\n ngOnDestroy() {\n this._datepicker.dispose();\n this.isOpen$.next(false);\n if (this.isDestroy$) {\n this.isDestroy$.next(null);\n this.isDestroy$.complete();\n }\n this.unsubscribeSubscriptions();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerDirective, deps: [{ token: BsDatepickerConfig }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i2.ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDatepickerDirective, selector: \"[bsDatepicker]\", inputs: { placement: \"placement\", triggers: \"triggers\", outsideClick: \"outsideClick\", container: \"container\", outsideEsc: \"outsideEsc\", isDisabled: \"isDisabled\", minDate: \"minDate\", maxDate: \"maxDate\", minMode: \"minMode\", daysDisabled: \"daysDisabled\", datesDisabled: \"datesDisabled\", datesEnabled: \"datesEnabled\", dateCustomClasses: \"dateCustomClasses\", dateTooltipTexts: \"dateTooltipTexts\", isOpen: \"isOpen\", bsValue: \"bsValue\", bsConfig: \"bsConfig\" }, outputs: { onShown: \"onShown\", onHidden: \"onHidden\", bsValueChange: \"bsValueChange\" }, host: { properties: { \"attr.readonly\": \"this.readonlyValue\" } }, exportAs: [\"bsDatepicker\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[bsDatepicker]',\n exportAs: 'bsDatepicker'\n }]\n }], ctorParameters: () => [{ type: BsDatepickerConfig }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.ComponentLoaderFactory }], propDecorators: { placement: [{\n type: Input\n }], triggers: [{\n type: Input\n }], outsideClick: [{\n type: Input\n }], container: [{\n type: Input\n }], outsideEsc: [{\n type: Input\n }], onShown: [{\n type: Output\n }], onHidden: [{\n type: Output\n }], isDisabled: [{\n type: Input\n }], minDate: [{\n type: Input\n }], maxDate: [{\n type: Input\n }], minMode: [{\n type: Input\n }], daysDisabled: [{\n type: Input\n }], datesDisabled: [{\n type: Input\n }], datesEnabled: [{\n type: Input\n }], dateCustomClasses: [{\n type: Input\n }], dateTooltipTexts: [{\n type: Input\n }], bsValueChange: [{\n type: Output\n }], readonlyValue: [{\n type: HostBinding,\n args: ['attr.readonly']\n }], isOpen: [{\n type: Input\n }], bsValue: [{\n type: Input\n }], bsConfig: [{\n type: Input\n }] } });\n\nclass BsDatepickerInlineConfig extends BsDatepickerConfig {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerInlineConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerInlineConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerInlineConfig, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n\nclass BsDatepickerInlineContainerComponent extends BsDatepickerContainerComponent {\n get disabledValue() {\n return this.isDatePickerDisabled ? '' : null;\n }\n get readonlyValue() {\n return this.isDatePickerDisabled ? '' : null;\n }\n constructor(_renderer, _config, _store, _element, _actions, _effects, _positioningService) {\n super(_renderer, _config, _store, _element, _actions, _effects, _positioningService);\n _renderer.setStyle(_element.nativeElement, 'display', 'inline-block');\n _renderer.setStyle(_element.nativeElement, 'position', 'static');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerInlineContainerComponent, deps: [{ token: i0.Renderer2 }, { token: BsDatepickerConfig }, { token: BsDatepickerStore }, { token: i0.ElementRef }, { token: BsDatepickerActions }, { token: BsDatepickerEffects }, { token: i5.PositioningService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDatepickerInlineContainerComponent, selector: \"bs-datepicker-inline-container\", host: { listeners: { \"click\": \"_stopPropagation($event)\" }, properties: { \"attr.disabled\": \"this.disabledValue\", \"attr.readonly\": \"this.readonlyValue\" } }, providers: [BsDatepickerStore, BsDatepickerEffects], usesInheritance: true, ngImport: i0, template: \"\\n
    \\n
    \\n \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n \\n
    0\\\">\\n \\n \\n
    \\n
    \\n\", dependencies: [{ kind: \"directive\", type: i6.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i6.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i6.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i6.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i6.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"component\", type: i7.TimepickerComponent, selector: \"timepicker\", inputs: [\"hourStep\", \"minuteStep\", \"secondsStep\", \"readonlyInput\", \"disabled\", \"mousewheel\", \"arrowkeys\", \"showSpinners\", \"showMeridian\", \"showMinutes\", \"showSeconds\", \"meridians\", \"min\", \"max\", \"hoursPlaceholder\", \"minutesPlaceholder\", \"secondsPlaceholder\"], outputs: [\"isValid\", \"meridianChange\"] }, { kind: \"component\", type: BsCustomDatesViewComponent, selector: \"bs-custom-date-view\", inputs: [\"ranges\", \"selectedRange\", \"customRangeLabel\"], outputs: [\"onSelect\"] }, { kind: \"component\", type: BsDaysCalendarViewComponent, selector: \"bs-days-calendar-view\", inputs: [\"calendar\", \"options\", \"isDisabled\"], outputs: [\"onNavigate\", \"onViewMode\", \"onSelect\", \"onHover\", \"onHoverWeek\"] }, { kind: \"component\", type: BsMonthCalendarViewComponent, selector: \"bs-month-calendar-view\", inputs: [\"calendar\"], outputs: [\"onNavigate\", \"onViewMode\", \"onSelect\", \"onHover\"] }, { kind: \"component\", type: BsYearsCalendarViewComponent, selector: \"bs-years-calendar-view\", inputs: [\"calendar\"], outputs: [\"onNavigate\", \"onViewMode\", \"onSelect\", \"onHover\"] }, { kind: \"pipe\", type: i6.AsyncPipe, name: \"async\" }], animations: [datepickerAnimation] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerInlineContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bs-datepicker-inline-container', providers: [BsDatepickerStore, BsDatepickerEffects], host: {\n '(click)': '_stopPropagation($event)'\n }, animations: [datepickerAnimation], template: \"\\n
    \\n
    \\n \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n \\n
    0\\\">\\n \\n \\n
    \\n
    \\n\" }]\n }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: BsDatepickerConfig }, { type: BsDatepickerStore }, { type: i0.ElementRef }, { type: BsDatepickerActions }, { type: BsDatepickerEffects }, { type: i5.PositioningService }], propDecorators: { disabledValue: [{\n type: HostBinding,\n args: ['attr.disabled']\n }], readonlyValue: [{\n type: HostBinding,\n args: ['attr.readonly']\n }] } });\n\nclass BsDatepickerInlineDirective {\n constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {\n this._config = _config;\n this._elementRef = _elementRef;\n /**\n * Indicates whether datepicker is enabled or not\n */\n this.isDisabled = false;\n /**\n * Emits when datepicker value has been changed\n */\n this.bsValueChange = new EventEmitter();\n this._subs = [];\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);\n }\n /**\n * Initial value of datepicker\n */\n set bsValue(value) {\n if (this._bsValue === value) {\n return;\n }\n if (!this._bsValue && value && !this._config.withTimepicker) {\n const now = new Date();\n copyTime(value, now);\n }\n if (value && this.bsConfig?.initCurrentTime) {\n value = setCurrentTimeOnDateSelect(value);\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n ngOnInit() {\n this.setConfig();\n this.initSubscribes();\n }\n initSubscribes() {\n this.unsubscribeSubscriptions();\n this._subs.push(this.bsValueChange.subscribe((value) => {\n if (this._datepickerRef) {\n this._datepickerRef.instance.value = value;\n }\n }));\n if (this._datepickerRef) {\n this._subs.push(this._datepickerRef.instance.valueChange.subscribe((value) => {\n this.bsValue = value;\n }));\n }\n }\n unsubscribeSubscriptions() {\n if (this._subs?.length) {\n this._subs.map(sub => sub.unsubscribe());\n this._subs.length = 0;\n }\n }\n ngOnChanges(changes) {\n if (changes[\"bsConfig\"]) {\n if (changes[\"bsConfig\"].currentValue?.initCurrentTime && changes[\"bsConfig\"].currentValue?.initCurrentTime !== changes[\"bsConfig\"].previousValue?.initCurrentTime && this._bsValue) {\n this._bsValue = setCurrentTimeOnDateSelect(this._bsValue);\n this.bsValueChange.emit(this._bsValue);\n }\n }\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n if (changes[\"minDate\"]) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n if (changes[\"maxDate\"]) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n if (changes[\"datesDisabled\"]) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n }\n if (changes[\"datesEnabled\"]) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n this._datepickerRef.instance.value = this._bsValue;\n }\n if (changes[\"isDisabled\"]) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n if (changes[\"dateCustomClasses\"]) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n }\n if (changes[\"dateTooltipTexts\"]) {\n this._datepickerRef.instance.dateTooltipTexts = this.dateTooltipTexts;\n }\n this.setConfig();\n }\n /**\n * Set config for datepicker\n */\n setConfig() {\n if (this._datepicker) {\n this._datepicker.hide();\n }\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n dateTooltipTexts: this.dateTooltipTexts || this.bsConfig && this.bsConfig.dateTooltipTexts,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n initCurrentTime: this.bsConfig?.initCurrentTime\n });\n this._datepickerRef = this._datepicker\n .provide({ provide: BsDatepickerConfig, useValue: this._config })\n .attach(BsDatepickerInlineContainerComponent)\n .to(this._elementRef)\n .show();\n this.initSubscribes();\n }\n ngOnDestroy() {\n this._datepicker.dispose();\n this.unsubscribeSubscriptions();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerInlineDirective, deps: [{ token: BsDatepickerInlineConfig }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i2.ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDatepickerInlineDirective, selector: \"bs-datepicker-inline\", inputs: { bsConfig: \"bsConfig\", isDisabled: \"isDisabled\", minDate: \"minDate\", maxDate: \"maxDate\", dateCustomClasses: \"dateCustomClasses\", dateTooltipTexts: \"dateTooltipTexts\", datesEnabled: \"datesEnabled\", datesDisabled: \"datesDisabled\", bsValue: \"bsValue\" }, outputs: { bsValueChange: \"bsValueChange\" }, exportAs: [\"bsDatepickerInline\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerInlineDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'bs-datepicker-inline',\n exportAs: 'bsDatepickerInline'\n }]\n }], ctorParameters: () => [{ type: BsDatepickerInlineConfig }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.ComponentLoaderFactory }], propDecorators: { bsConfig: [{\n type: Input\n }], isDisabled: [{\n type: Input\n }], minDate: [{\n type: Input\n }], maxDate: [{\n type: Input\n }], dateCustomClasses: [{\n type: Input\n }], dateTooltipTexts: [{\n type: Input\n }], datesEnabled: [{\n type: Input\n }], datesDisabled: [{\n type: Input\n }], bsValueChange: [{\n type: Output\n }], bsValue: [{\n type: Input\n }] } });\n\nclass BsDaterangepickerInlineConfig extends BsDatepickerConfig {\n constructor() {\n super(...arguments);\n // DatepickerRenderOptions\n this.displayMonths = 2;\n /** turn on/off animation */\n this.isAnimated = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerInlineConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerInlineConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerInlineConfig, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n\nclass BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent {\n set value(value) {\n this._effects?.setRangeValue(value);\n }\n get isDatePickerDisabled() {\n return !!this._config.isDisabled;\n }\n get isDatepickerDisabled() {\n return this.isDatePickerDisabled ? '' : null;\n }\n get isDatepickerReadonly() {\n return this.isDatePickerDisabled ? '' : null;\n }\n constructor(_renderer, _config, _store, _element, _actions, _effects, _positionService) {\n super();\n this._config = _config;\n this._store = _store;\n this._element = _element;\n this._actions = _actions;\n this._positionService = _positionService;\n this.valueChange = new EventEmitter();\n this.animationState = 'void';\n this._rangeStack = [];\n this.chosenRange = [];\n this._subs = [];\n this.isRangePicker = true;\n this._effects = _effects;\n this.customRanges = this._config.ranges || [];\n this.customRangeBtnLbl = this._config.customRangeButtonLabel;\n _renderer.setStyle(_element.nativeElement, 'display', 'block');\n _renderer.setStyle(_element.nativeElement, 'position', 'absolute');\n }\n ngOnInit() {\n this._positionService.setOptions({\n modifiers: {\n flip: {\n enabled: this._config.adaptivePosition\n },\n preventOverflow: {\n enabled: this._config.adaptivePosition\n }\n },\n allowedPositions: this._config.allowedPositions\n });\n this._positionService.event$?.pipe(take(1)).subscribe(() => {\n this._positionService.disable();\n if (this._config.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n return;\n }\n this.animationState = 'unanimated';\n });\n this.containerClass = this._config.containerClass;\n this.isOtherMonthsActive = this._config.selectFromOtherMonth;\n this.withTimepicker = this._config.withTimepicker;\n this._effects\n ?.init(this._store)\n // intial state options\n // todo: fix this, split configs\n .setOptions(this._config)\n // data binding view --> model\n .setBindings(this)\n // set event handlers\n .setEventHandlers(this)\n .registerDatepickerSideEffects();\n let currentDate;\n // todo: move it somewhere else\n // on selected date change\n this._subs.push(this._store\n .select((state) => state.selectedRange)\n .subscribe((dateRange) => {\n currentDate = dateRange;\n this.valueChange.emit(dateRange);\n this.chosenRange = dateRange || [];\n }));\n this._subs.push(this._store\n .select((state) => state.selectedTime)\n .subscribe((time) => {\n if (!time ||\n !time[0] ||\n !time[1] ||\n !(time[0] instanceof Date) ||\n !(time[1] instanceof Date) ||\n (currentDate && time[0] === currentDate[0] && time[1] === currentDate[1])) {\n return;\n }\n this.valueChange.emit(time);\n this.chosenRange = time || [];\n }));\n }\n ngAfterViewInit() {\n this.selectedTimeSub.add(this.selectedTime?.subscribe((val) => {\n if (Array.isArray(val) && val.length >= 2) {\n this.startTimepicker?.writeValue(val[0]);\n this.endTimepicker?.writeValue(val[1]);\n }\n }));\n this.startTimepicker?.registerOnChange((val) => {\n this.timeSelectHandler(val, 0);\n });\n this.endTimepicker?.registerOnChange((val) => {\n this.timeSelectHandler(val, 1);\n });\n }\n get isTopPosition() {\n return this._element.nativeElement.classList.contains('top');\n }\n positionServiceEnable() {\n this._positionService.enable();\n }\n timeSelectHandler(date, index) {\n this._store.dispatch(this._actions.selectTime(date, index));\n }\n daySelectHandler(day) {\n if (!day) {\n return;\n }\n const isDisabled = this.isOtherMonthsActive ? day.isDisabled : day.isOtherMonth || day.isDisabled;\n if (isDisabled) {\n return;\n }\n this.rangesProcessing(day);\n }\n monthSelectHandler(day) {\n if (!day || day.isDisabled) {\n return;\n }\n day.isSelected = true;\n if (this._config.minMode !== 'month') {\n if (day.isDisabled) {\n return;\n }\n this._store.dispatch(this._actions.navigateTo({\n unit: {\n month: getMonth(day.date),\n year: getFullYear(day.date)\n },\n viewMode: 'day'\n }));\n return;\n }\n this.rangesProcessing(day);\n }\n yearSelectHandler(day) {\n if (!day || day.isDisabled) {\n return;\n }\n day.isSelected = true;\n if (this._config.minMode !== 'year') {\n if (day.isDisabled) {\n return;\n }\n this._store.dispatch(this._actions.navigateTo({\n unit: {\n year: getFullYear(day.date)\n },\n viewMode: 'month'\n }));\n return;\n }\n this.rangesProcessing(day);\n }\n rangesProcessing(day) {\n // if only one date is already selected\n // and user clicks on previous date\n // start selection from new date\n // but if new date is after initial one\n // than finish selection\n if (this._rangeStack.length === 1) {\n this._rangeStack = day.date >= this._rangeStack[0] ? [this._rangeStack[0], day.date] : [day.date];\n }\n if (this._config.maxDateRange) {\n this.setMaxDateRangeOnCalendar(day.date);\n }\n if (this._rangeStack.length === 0) {\n this._rangeStack = [day.date];\n if (this._config.maxDateRange) {\n this.setMaxDateRangeOnCalendar(day.date);\n }\n }\n this._store.dispatch(this._actions.selectRange(this._rangeStack));\n if (this._rangeStack.length === 2) {\n this._rangeStack = [];\n }\n }\n ngOnDestroy() {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n this.selectedTimeSub.unsubscribe();\n this._effects?.destroy();\n }\n setRangeOnCalendar(dates) {\n if (dates) {\n this._rangeStack = dates.value instanceof Date ? [dates.value] : dates.value;\n }\n this._store.dispatch(this._actions.selectRange(this._rangeStack));\n }\n setMaxDateRangeOnCalendar(currentSelection) {\n let maxDateRange = new Date(currentSelection);\n if (this._config.maxDate) {\n const maxDateValueInMilliseconds = this._config.maxDate.getTime();\n const maxDateRangeInMilliseconds = currentSelection.getTime() + (this._config.maxDateRange || 0) * dayInMilliseconds;\n maxDateRange =\n maxDateRangeInMilliseconds > maxDateValueInMilliseconds\n ? new Date(this._config.maxDate)\n : new Date(maxDateRangeInMilliseconds);\n }\n else {\n maxDateRange.setDate(currentSelection.getDate() + (this._config.maxDateRange || 0));\n }\n this._effects?.setMaxDate(maxDateRange);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerContainerComponent, deps: [{ token: i0.Renderer2 }, { token: BsDatepickerConfig }, { token: BsDatepickerStore }, { token: i0.ElementRef }, { token: BsDatepickerActions }, { token: BsDatepickerEffects }, { token: i5.PositioningService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDaterangepickerContainerComponent, selector: \"bs-daterangepicker-container\", host: { attributes: { \"role\": \"dialog\", \"aria-label\": \"calendar\" }, listeners: { \"click\": \"_stopPropagation($event)\" }, properties: { \"attr.disabled\": \"this.isDatepickerDisabled\", \"attr.readonly\": \"this.isDatepickerReadonly\" }, classAttribute: \"bottom\" }, providers: [BsDatepickerStore, BsDatepickerEffects], viewQueries: [{ propertyName: \"startTimepicker\", first: true, predicate: [\"startTP\"], descendants: true }, { propertyName: \"endTimepicker\", first: true, predicate: [\"endTP\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"\\n
    \\n
    \\n \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n \\n
    0\\\">\\n \\n \\n
    \\n
    \\n\", dependencies: [{ kind: \"directive\", type: i6.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i6.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i6.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i6.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i6.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"component\", type: i7.TimepickerComponent, selector: \"timepicker\", inputs: [\"hourStep\", \"minuteStep\", \"secondsStep\", \"readonlyInput\", \"disabled\", \"mousewheel\", \"arrowkeys\", \"showSpinners\", \"showMeridian\", \"showMinutes\", \"showSeconds\", \"meridians\", \"min\", \"max\", \"hoursPlaceholder\", \"minutesPlaceholder\", \"secondsPlaceholder\"], outputs: [\"isValid\", \"meridianChange\"] }, { kind: \"component\", type: BsCustomDatesViewComponent, selector: \"bs-custom-date-view\", inputs: [\"ranges\", \"selectedRange\", \"customRangeLabel\"], outputs: [\"onSelect\"] }, { kind: \"component\", type: BsDaysCalendarViewComponent, selector: \"bs-days-calendar-view\", inputs: [\"calendar\", \"options\", \"isDisabled\"], outputs: [\"onNavigate\", \"onViewMode\", \"onSelect\", \"onHover\", \"onHoverWeek\"] }, { kind: \"component\", type: BsMonthCalendarViewComponent, selector: \"bs-month-calendar-view\", inputs: [\"calendar\"], outputs: [\"onNavigate\", \"onViewMode\", \"onSelect\", \"onHover\"] }, { kind: \"component\", type: BsYearsCalendarViewComponent, selector: \"bs-years-calendar-view\", inputs: [\"calendar\"], outputs: [\"onNavigate\", \"onViewMode\", \"onSelect\", \"onHover\"] }, { kind: \"pipe\", type: i6.AsyncPipe, name: \"async\" }], animations: [datepickerAnimation] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bs-daterangepicker-container', providers: [BsDatepickerStore, BsDatepickerEffects], host: {\n class: 'bottom',\n '(click)': '_stopPropagation($event)',\n role: 'dialog',\n 'aria-label': 'calendar'\n }, animations: [datepickerAnimation], template: \"\\n
    \\n
    \\n \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n \\n
    0\\\">\\n \\n \\n
    \\n
    \\n\" }]\n }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: BsDatepickerConfig }, { type: BsDatepickerStore }, { type: i0.ElementRef }, { type: BsDatepickerActions }, { type: BsDatepickerEffects }, { type: i5.PositioningService }], propDecorators: { startTimepicker: [{\n type: ViewChild,\n args: ['startTP']\n }], endTimepicker: [{\n type: ViewChild,\n args: ['endTP']\n }], isDatepickerDisabled: [{\n type: HostBinding,\n args: ['attr.disabled']\n }], isDatepickerReadonly: [{\n type: HostBinding,\n args: ['attr.readonly']\n }] } });\n\nclass BsDaterangepickerInlineContainerComponent extends BsDaterangepickerContainerComponent {\n get disabledValue() {\n return this.isDatePickerDisabled ? '' : null;\n }\n get readonlyValue() {\n return this.isDatePickerDisabled ? '' : null;\n }\n constructor(_renderer, _config, _store, _element, _actions, _effects, _positioningService) {\n super(_renderer, _config, _store, _element, _actions, _effects, _positioningService);\n _renderer.setStyle(_element.nativeElement, 'display', 'inline-block');\n _renderer.setStyle(_element.nativeElement, 'position', 'static');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerInlineContainerComponent, deps: [{ token: i0.Renderer2 }, { token: BsDatepickerConfig }, { token: BsDatepickerStore }, { token: i0.ElementRef }, { token: BsDatepickerActions }, { token: BsDatepickerEffects }, { token: i5.PositioningService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDaterangepickerInlineContainerComponent, selector: \"bs-daterangepicker-inline-container\", host: { listeners: { \"click\": \"_stopPropagation($event)\" }, properties: { \"attr.disabled\": \"this.disabledValue\", \"attr.readonly\": \"this.readonlyValue\" } }, providers: [BsDatepickerStore, BsDatepickerEffects], usesInheritance: true, ngImport: i0, template: \"\\n
    \\n
    \\n \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n \\n
    0\\\">\\n \\n \\n
    \\n
    \\n\", dependencies: [{ kind: \"directive\", type: i6.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i6.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i6.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i6.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i6.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"component\", type: i7.TimepickerComponent, selector: \"timepicker\", inputs: [\"hourStep\", \"minuteStep\", \"secondsStep\", \"readonlyInput\", \"disabled\", \"mousewheel\", \"arrowkeys\", \"showSpinners\", \"showMeridian\", \"showMinutes\", \"showSeconds\", \"meridians\", \"min\", \"max\", \"hoursPlaceholder\", \"minutesPlaceholder\", \"secondsPlaceholder\"], outputs: [\"isValid\", \"meridianChange\"] }, { kind: \"component\", type: BsCustomDatesViewComponent, selector: \"bs-custom-date-view\", inputs: [\"ranges\", \"selectedRange\", \"customRangeLabel\"], outputs: [\"onSelect\"] }, { kind: \"component\", type: BsDaysCalendarViewComponent, selector: \"bs-days-calendar-view\", inputs: [\"calendar\", \"options\", \"isDisabled\"], outputs: [\"onNavigate\", \"onViewMode\", \"onSelect\", \"onHover\", \"onHoverWeek\"] }, { kind: \"component\", type: BsMonthCalendarViewComponent, selector: \"bs-month-calendar-view\", inputs: [\"calendar\"], outputs: [\"onNavigate\", \"onViewMode\", \"onSelect\", \"onHover\"] }, { kind: \"component\", type: BsYearsCalendarViewComponent, selector: \"bs-years-calendar-view\", inputs: [\"calendar\"], outputs: [\"onNavigate\", \"onViewMode\", \"onSelect\", \"onHover\"] }, { kind: \"pipe\", type: i6.AsyncPipe, name: \"async\" }], animations: [datepickerAnimation] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerInlineContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bs-daterangepicker-inline-container', providers: [BsDatepickerStore, BsDatepickerEffects], host: {\n '(click)': '_stopPropagation($event)'\n }, animations: [datepickerAnimation], template: \"\\n
    \\n
    \\n \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n \\n
    0\\\">\\n \\n \\n
    \\n
    \\n\" }]\n }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: BsDatepickerConfig }, { type: BsDatepickerStore }, { type: i0.ElementRef }, { type: BsDatepickerActions }, { type: BsDatepickerEffects }, { type: i5.PositioningService }], propDecorators: { disabledValue: [{\n type: HostBinding,\n args: ['attr.disabled']\n }], readonlyValue: [{\n type: HostBinding,\n args: ['attr.readonly']\n }] } });\n\nclass BsDaterangepickerInlineDirective {\n /**\n * Initial value of datepicker\n */\n set bsValue(value) {\n if (this._bsValue === value) {\n return;\n }\n if (value && this.bsConfig?.initCurrentTime) {\n value = setDateRangesCurrentTimeOnDateSelect(value);\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {\n this._config = _config;\n this._elementRef = _elementRef;\n /**\n * Indicates whether datepicker is enabled or not\n */\n this.isDisabled = false;\n /**\n * Emits when daterangepicker value has been changed\n */\n this.bsValueChange = new EventEmitter();\n this._subs = [];\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);\n }\n ngOnInit() {\n this.setConfig();\n this.initSubscribes();\n }\n ngOnChanges(changes) {\n if (changes[\"bsConfig\"]) {\n if (changes[\"bsConfig\"].currentValue.initCurrentTime && changes[\"bsConfig\"].currentValue.initCurrentTime !== changes[\"bsConfig\"].previousValue.initCurrentTime && this._bsValue) {\n this._bsValue = setDateRangesCurrentTimeOnDateSelect(this._bsValue);\n this.bsValueChange.emit(this._bsValue);\n }\n }\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n if (changes[\"minDate\"]) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n if (changes[\"maxDate\"]) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n if (changes[\"datesEnabled\"]) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n this._datepickerRef.instance.value = this._bsValue;\n }\n if (changes[\"datesDisabled\"]) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n }\n if (changes[\"daysDisabled\"]) {\n this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n }\n if (changes[\"isDisabled\"]) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n if (changes[\"dateCustomClasses\"]) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n }\n this.setConfig();\n }\n /**\n * Set config for datepicker\n */\n setConfig() {\n if (this._datepicker) {\n this._datepicker.hide();\n }\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,\n dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n ranges: checkRangesWithMaxDate(this.bsConfig && this.bsConfig.ranges, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n maxDateRange: this.bsConfig && this.bsConfig.maxDateRange,\n initCurrentTime: this.bsConfig?.initCurrentTime\n });\n this._datepickerRef = this._datepicker\n .provide({ provide: BsDatepickerConfig, useValue: this._config })\n .attach(BsDaterangepickerInlineContainerComponent)\n .to(this._elementRef)\n .show();\n this.initSubscribes();\n }\n initSubscribes() {\n this.unsubscribeSubscriptions();\n // if date changes from external source (model -> view)\n this._subs.push(this.bsValueChange.subscribe((value) => {\n if (this._datepickerRef) {\n this._datepickerRef.instance.value = value;\n }\n }));\n // if date changes from picker (view -> model)\n if (this._datepickerRef) {\n this._subs.push(this._datepickerRef.instance.valueChange\n .pipe(filter((range) => range && range[0] && !!range[1]))\n .subscribe((value) => {\n this.bsValue = value;\n }));\n }\n }\n unsubscribeSubscriptions() {\n if (this._subs?.length) {\n this._subs.map(sub => sub.unsubscribe());\n this._subs.length = 0;\n }\n }\n ngOnDestroy() {\n this._datepicker.dispose();\n this.unsubscribeSubscriptions();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerInlineDirective, deps: [{ token: BsDaterangepickerInlineConfig }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i2.ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDaterangepickerInlineDirective, selector: \"bs-daterangepicker-inline\", inputs: { bsValue: \"bsValue\", bsConfig: \"bsConfig\", isDisabled: \"isDisabled\", minDate: \"minDate\", maxDate: \"maxDate\", dateCustomClasses: \"dateCustomClasses\", daysDisabled: \"daysDisabled\", datesDisabled: \"datesDisabled\", datesEnabled: \"datesEnabled\" }, outputs: { bsValueChange: \"bsValueChange\" }, exportAs: [\"bsDaterangepickerInline\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerInlineDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'bs-daterangepicker-inline',\n exportAs: 'bsDaterangepickerInline'\n }]\n }], ctorParameters: () => [{ type: BsDaterangepickerInlineConfig }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.ComponentLoaderFactory }], propDecorators: { bsValue: [{\n type: Input\n }], bsConfig: [{\n type: Input\n }], isDisabled: [{\n type: Input\n }], minDate: [{\n type: Input\n }], maxDate: [{\n type: Input\n }], dateCustomClasses: [{\n type: Input\n }], daysDisabled: [{\n type: Input\n }], datesDisabled: [{\n type: Input\n }], datesEnabled: [{\n type: Input\n }], bsValueChange: [{\n type: Output\n }] } });\n\nconst BS_DATEPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BsDatepickerInputDirective),\n multi: true\n};\nconst BS_DATEPICKER_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => BsDatepickerInputDirective),\n multi: true\n};\nclass BsDatepickerInputDirective {\n constructor(_picker, _localeService, _renderer, _elRef, changeDetection) {\n this._picker = _picker;\n this._localeService = _localeService;\n this._renderer = _renderer;\n this._elRef = _elRef;\n this.changeDetection = changeDetection;\n this._onChange = Function.prototype;\n this._onTouched = Function.prototype;\n this._validatorChange = Function.prototype;\n this._subs = new Subscription();\n }\n onChange(event) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.writeValue(event.target.value);\n this._onChange(this._value);\n if (this._picker._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n }\n this._onTouched();\n }\n onBlur() {\n this._onTouched();\n }\n hide() {\n this._picker.hide();\n this._renderer.selectRootElement(this._elRef.nativeElement).blur();\n if (this._picker._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n }\n }\n ngOnInit() {\n const setBsValue = (value) => {\n this._setInputValue(value);\n if (this._value !== value) {\n this._value = value;\n this._onChange(value);\n this._onTouched();\n }\n this.changeDetection.markForCheck();\n };\n // if value set via [bsValue] it will not get into value change\n if (this._picker._bsValue) {\n setBsValue(this._picker._bsValue);\n }\n // update input value on datepicker value update\n this._subs.add(this._picker.bsValueChange.subscribe(setBsValue));\n // update input value on locale change\n this._subs.add(this._localeService.localeChange.subscribe(() => {\n this._setInputValue(this._value);\n }));\n this._subs.add(this._picker.dateInputFormat$.pipe(distinctUntilChanged()).subscribe(() => {\n this._setInputValue(this._value);\n }));\n }\n ngOnDestroy() {\n this._subs.unsubscribe();\n }\n _setInputValue(value) {\n const initialDate = !value\n ? ''\n : formatDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n this._renderer.setProperty(this._elRef.nativeElement, 'value', initialDate);\n }\n validate(c) {\n const _value = c.value;\n if (_value === null || _value === undefined || _value === '') {\n return null;\n }\n if (isDate(_value)) {\n const _isDateValid = isDateValid(_value);\n if (!_isDateValid) {\n return { bsDate: { invalid: _value } };\n }\n if (this._picker && this._picker.minDate && isBefore(_value, this._picker.minDate, 'date')) {\n this.writeValue(this._picker.minDate);\n return { bsDate: { minDate: this._picker.minDate } };\n }\n if (this._picker && this._picker.maxDate && isAfter(_value, this._picker.maxDate, 'date')) {\n this.writeValue(this._picker.maxDate);\n return { bsDate: { maxDate: this._picker.maxDate } };\n }\n }\n return null;\n }\n registerOnValidatorChange(fn) {\n this._validatorChange = fn;\n }\n writeValue(value) {\n if (!value) {\n this._value = void 0;\n }\n else {\n const _localeKey = this._localeService.currentLocale;\n const _locale = getLocale(_localeKey);\n if (!_locale) {\n throw new Error(`Locale \"${_localeKey}\" is not defined, please add it with \"defineLocale(...)\"`);\n }\n this._value = parseDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n if (this._picker._config.useUtc) {\n const utcValue = utcAsLocal(this._value);\n this._value = utcValue === null ? void 0 : utcValue;\n }\n }\n this._picker.bsValue = this._value;\n }\n setDisabledState(isDisabled) {\n this._picker.isDisabled = isDisabled;\n if (isDisabled) {\n this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');\n return;\n }\n this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerInputDirective, deps: [{ token: BsDatepickerDirective, host: true }, { token: BsLocaleService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDatepickerInputDirective, selector: \"input[bsDatepicker]\", host: { listeners: { \"change\": \"onChange($event)\", \"blur\": \"onBlur()\", \"keyup.esc\": \"hide()\", \"keydown.enter\": \"hide()\" } }, providers: [BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerInputDirective, decorators: [{\n type: Directive,\n args: [{\n selector: `input[bsDatepicker]`,\n providers: [BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR]\n }]\n }], ctorParameters: () => [{ type: BsDatepickerDirective, decorators: [{\n type: Host\n }] }, { type: BsLocaleService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { onChange: [{\n type: HostListener,\n args: ['change', ['$event']]\n }], onBlur: [{\n type: HostListener,\n args: ['blur']\n }], hide: [{\n type: HostListener,\n args: ['keyup.esc']\n }, {\n type: HostListener,\n args: ['keydown.enter']\n }] } });\n\nclass BsDaterangepickerConfig extends BsDatepickerConfig {\n constructor() {\n super(...arguments);\n // DatepickerRenderOptions\n this.displayMonths = 2;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerConfig, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n\nlet previousDate;\nclass BsDaterangepickerDirective {\n /**\n * Returns whether or not the daterangepicker is currently being shown\n */\n get isOpen() {\n return this._datepicker.isShown;\n }\n set isOpen(value) {\n this.isOpen$.next(value);\n }\n /**\n * Initial value of daterangepicker\n */\n set bsValue(value) {\n if (this._bsValue === value) {\n return;\n }\n if (value && this.bsConfig?.initCurrentTime) {\n value = setDateRangesCurrentTimeOnDateSelect(value);\n }\n this.initPreviousValue();\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n get isDatepickerReadonly() {\n return this.isDisabled ? '' : null;\n }\n get rangeInputFormat$() {\n return this._rangeInputFormat$;\n }\n constructor(_config, _elementRef, _renderer, _viewContainerRef, cis) {\n this._config = _config;\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n /**\n * Placement of a daterangepicker. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n this.placement = 'bottom';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n this.triggers = 'click';\n /**\n * Close daterangepicker on outside click\n */\n this.outsideClick = true;\n /**\n * A selector specifying the element the daterangepicker should be appended to.\n */\n this.container = 'body';\n this.outsideEsc = true;\n this.isDestroy$ = new Subject();\n /**\n * Indicates whether daterangepicker's content is enabled or not\n */\n this.isDisabled = false;\n /**\n * Emits when daterangepicker value has been changed\n */\n this.bsValueChange = new EventEmitter();\n this._subs = [];\n this._rangeInputFormat$ = new Subject();\n this._datepicker = cis.createLoader(_elementRef, _viewContainerRef, _renderer);\n Object.assign(this, _config);\n this.onShown = this._datepicker.onShown;\n this.onHidden = this._datepicker.onHidden;\n this.isOpen$ = new BehaviorSubject(this.isOpen);\n }\n ngOnInit() {\n this.isDestroy$ = new Subject();\n this._datepicker.listen({\n outsideClick: this.outsideClick,\n outsideEsc: this.outsideEsc,\n triggers: this.triggers,\n show: () => this.show()\n });\n this.initPreviousValue();\n this.setConfig();\n }\n ngOnChanges(changes) {\n if (changes[\"bsConfig\"]) {\n if (changes[\"bsConfig\"].currentValue?.initCurrentTime && changes[\"bsConfig\"].currentValue?.initCurrentTime !== changes[\"bsConfig\"].previousValue?.initCurrentTime && this._bsValue) {\n this.initPreviousValue();\n this._bsValue = setDateRangesCurrentTimeOnDateSelect(this._bsValue);\n this.bsValueChange.emit(this._bsValue);\n }\n this.setConfig();\n this._rangeInputFormat$.next(changes[\"bsConfig\"].currentValue && changes[\"bsConfig\"].currentValue.rangeInputFormat);\n }\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n if (changes[\"minDate\"]) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n if (changes[\"maxDate\"]) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n if (changes[\"datesDisabled\"]) {\n this._datepickerRef.instance.datesDisabled = this.datesDisabled;\n }\n if (changes[\"datesEnabled\"]) {\n this._datepickerRef.instance.datesEnabled = this.datesEnabled;\n }\n if (changes[\"daysDisabled\"]) {\n this._datepickerRef.instance.daysDisabled = this.daysDisabled;\n }\n if (changes[\"isDisabled\"]) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n if (changes[\"dateCustomClasses\"]) {\n this._datepickerRef.instance.dateCustomClasses = this.dateCustomClasses;\n }\n }\n ngAfterViewInit() {\n this.isOpen$.pipe(filter(isOpen => isOpen !== this.isOpen), takeUntil(this.isDestroy$))\n .subscribe(() => this.toggle());\n }\n /**\n * Opens an element’s datepicker. This is considered a “manual” triggering of\n * the datepicker.\n */\n show() {\n if (this._datepicker.isShown) {\n return;\n }\n this.setConfig();\n this._datepickerRef = this._datepicker\n .provide({ provide: BsDatepickerConfig, useValue: this._config })\n .attach(BsDaterangepickerContainerComponent)\n .to(this.container)\n .position({ attachment: this.placement })\n .show({ placement: this.placement });\n this.initSubscribes();\n }\n initSubscribes() {\n // if date changes from external source (model -> view)\n this._subs.push(this.bsValueChange.subscribe((value) => {\n if (this._datepickerRef) {\n this._datepickerRef.instance.value = value;\n }\n }));\n // if date changes from picker (view -> model)\n if (this._datepickerRef) {\n this._subs.push(this._datepickerRef.instance.valueChange\n .pipe(filter((range) => range && range[0] && !!range[1]))\n .subscribe((value) => {\n this.initPreviousValue();\n this.bsValue = value;\n if (this.keepDatepickerModalOpened()) {\n return;\n }\n this.hide();\n }));\n }\n }\n initPreviousValue() {\n previousDate = this._bsValue;\n }\n keepDatepickerModalOpened() {\n if (!previousDate || !this.bsConfig?.keepDatepickerOpened || !this._config.withTimepicker) {\n return false;\n }\n return this.isDateSame();\n }\n isDateSame() {\n return ((this._bsValue?.[0]?.getDate() === previousDate?.[0]?.getDate())\n && (this._bsValue?.[0]?.getMonth() === previousDate?.[0]?.getMonth())\n && (this._bsValue?.[0]?.getFullYear() === previousDate?.[0]?.getFullYear())\n && (this._bsValue?.[1]?.getDate() === previousDate?.[1]?.getDate())\n && (this._bsValue?.[1]?.getMonth() === previousDate?.[1]?.getMonth())\n && (this._bsValue?.[1]?.getFullYear() === previousDate?.[1]?.getFullYear()));\n }\n /**\n * Set config for daterangepicker\n */\n setConfig() {\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: this.bsConfig?.keepDatesOutOfRules ? this._bsValue : checkBsValue(this._bsValue, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate,\n daysDisabled: this.daysDisabled || this.bsConfig && this.bsConfig.daysDisabled,\n dateCustomClasses: this.dateCustomClasses || this.bsConfig && this.bsConfig.dateCustomClasses,\n datesDisabled: this.datesDisabled || this.bsConfig && this.bsConfig.datesDisabled,\n datesEnabled: this.datesEnabled || this.bsConfig && this.bsConfig.datesEnabled,\n ranges: checkRangesWithMaxDate(this.bsConfig && this.bsConfig.ranges, this.maxDate || this.bsConfig && this.bsConfig.maxDate),\n maxDateRange: this.bsConfig && this.bsConfig.maxDateRange,\n initCurrentTime: this.bsConfig?.initCurrentTime,\n keepDatepickerOpened: this.bsConfig?.keepDatepickerOpened,\n keepDatesOutOfRules: this.bsConfig?.keepDatesOutOfRules\n });\n }\n /**\n * Closes an element’s datepicker. This is considered a “manual” triggering of\n * the datepicker.\n */\n hide() {\n if (this.isOpen) {\n this._datepicker.hide();\n }\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n if (this._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elementRef.nativeElement).focus();\n }\n }\n /**\n * Toggles an element’s datepicker. This is considered a “manual” triggering\n * of the datepicker.\n */\n toggle() {\n if (this.isOpen) {\n return this.hide();\n }\n this.show();\n }\n unsubscribeSubscriptions() {\n if (this._subs?.length) {\n this._subs.map(sub => sub.unsubscribe());\n this._subs.length = 0;\n }\n }\n ngOnDestroy() {\n this._datepicker.dispose();\n this.isOpen$.next(false);\n if (this.isDestroy$) {\n this.isDestroy$.next(null);\n this.isDestroy$.complete();\n }\n this.unsubscribeSubscriptions();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerDirective, deps: [{ token: BsDaterangepickerConfig }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i2.ComponentLoaderFactory }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDaterangepickerDirective, selector: \"[bsDaterangepicker]\", inputs: { placement: \"placement\", triggers: \"triggers\", outsideClick: \"outsideClick\", container: \"container\", outsideEsc: \"outsideEsc\", isOpen: \"isOpen\", bsValue: \"bsValue\", bsConfig: \"bsConfig\", isDisabled: \"isDisabled\", minDate: \"minDate\", maxDate: \"maxDate\", dateCustomClasses: \"dateCustomClasses\", daysDisabled: \"daysDisabled\", datesDisabled: \"datesDisabled\", datesEnabled: \"datesEnabled\" }, outputs: { onShown: \"onShown\", onHidden: \"onHidden\", bsValueChange: \"bsValueChange\" }, host: { properties: { \"attr.readonly\": \"this.isDatepickerReadonly\" } }, exportAs: [\"bsDaterangepicker\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[bsDaterangepicker]',\n exportAs: 'bsDaterangepicker'\n }]\n }], ctorParameters: () => [{ type: BsDaterangepickerConfig }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.ComponentLoaderFactory }], propDecorators: { placement: [{\n type: Input\n }], triggers: [{\n type: Input\n }], outsideClick: [{\n type: Input\n }], container: [{\n type: Input\n }], outsideEsc: [{\n type: Input\n }], isOpen: [{\n type: Input\n }], onShown: [{\n type: Output\n }], onHidden: [{\n type: Output\n }], bsValue: [{\n type: Input\n }], bsConfig: [{\n type: Input\n }], isDisabled: [{\n type: Input\n }], minDate: [{\n type: Input\n }], maxDate: [{\n type: Input\n }], dateCustomClasses: [{\n type: Input\n }], daysDisabled: [{\n type: Input\n }], datesDisabled: [{\n type: Input\n }], datesEnabled: [{\n type: Input\n }], bsValueChange: [{\n type: Output\n }], isDatepickerReadonly: [{\n type: HostBinding,\n args: ['attr.readonly']\n }] } });\n\nconst BS_DATERANGEPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BsDaterangepickerInputDirective),\n multi: true\n};\nconst BS_DATERANGEPICKER_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => BsDaterangepickerInputDirective),\n multi: true\n};\nclass BsDaterangepickerInputDirective {\n constructor(_picker, _localeService, _renderer, _elRef, changeDetection) {\n this._picker = _picker;\n this._localeService = _localeService;\n this._renderer = _renderer;\n this._elRef = _elRef;\n this.changeDetection = changeDetection;\n this._onChange = Function.prototype;\n this._onTouched = Function.prototype;\n this._validatorChange = Function.prototype;\n this._subs = new Subscription();\n }\n ngOnInit() {\n const setBsValue = (value) => {\n this._setInputValue(value);\n if (this._value !== value) {\n this._value = value;\n this._onChange(value);\n this._onTouched();\n }\n this.changeDetection.markForCheck();\n };\n // if value set via [bsValue] it will not get into value change\n if (this._picker._bsValue) {\n setBsValue(this._picker._bsValue);\n }\n // update input value on datepicker value update\n this._subs.add(this._picker.bsValueChange.subscribe((value) => {\n this._setInputValue(value);\n if (this._value !== value) {\n this._value = value;\n this._onChange(value);\n this._onTouched();\n }\n this.changeDetection.markForCheck();\n }));\n // update input value on locale change\n this._subs.add(this._localeService.localeChange.subscribe(() => {\n this._setInputValue(this._value);\n }));\n this._subs.add(\n // update input value on format change\n this._picker.rangeInputFormat$.pipe(distinctUntilChanged()).subscribe(() => {\n this._setInputValue(this._value);\n }));\n }\n ngOnDestroy() {\n this._subs.unsubscribe();\n }\n onKeydownEvent(event) {\n if (event.keyCode === 13 || event.code === 'Enter') {\n this.hide();\n }\n }\n _setInputValue(date) {\n let range = '';\n if (date) {\n const start = !date[0] ? ''\n : formatDate(date[0], this._picker._config.rangeInputFormat, this._localeService.currentLocale);\n const end = !date[1] ? ''\n : formatDate(date[1], this._picker._config.rangeInputFormat, this._localeService.currentLocale);\n range = (start && end) ? start + this._picker._config.rangeSeparator + end : '';\n }\n this._renderer.setProperty(this._elRef.nativeElement, 'value', range);\n }\n onChange(event) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.writeValue(event.target.value);\n this._onChange(this._value);\n if (this._picker._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n }\n this._onTouched();\n }\n validate(c) {\n let _value = c.value;\n const errors = [];\n if (_value === null || _value === undefined || !isArray(_value)) {\n return null;\n }\n _value = _value.slice().sort((a, b) => a.getTime() - b.getTime());\n const _isFirstDateValid = isDateValid(_value[0]);\n const _isSecondDateValid = isDateValid(_value[1]);\n if (!_isFirstDateValid) {\n return { bsDate: { invalid: _value[0] } };\n }\n if (!_isSecondDateValid) {\n return { bsDate: { invalid: _value[1] } };\n }\n if (this._picker && this._picker.minDate && isBefore(_value[0], this._picker.minDate, 'date')) {\n _value[0] = this._picker.minDate;\n errors.push({ bsDate: { minDate: this._picker.minDate } });\n }\n if (this._picker && this._picker.maxDate && isAfter(_value[1], this._picker.maxDate, 'date')) {\n _value[1] = this._picker.maxDate;\n errors.push({ bsDate: { maxDate: this._picker.maxDate } });\n }\n if (errors.length > 0) {\n this.writeValue(_value);\n return errors;\n }\n return null;\n }\n registerOnValidatorChange(fn) {\n this._validatorChange = fn;\n }\n writeValue(value) {\n if (!value) {\n this._value = void 0;\n }\n else {\n const _localeKey = this._localeService.currentLocale;\n const _locale = getLocale(_localeKey);\n if (!_locale) {\n throw new Error(`Locale \"${_localeKey}\" is not defined, please add it with \"defineLocale(...)\"`);\n }\n let _input = [];\n if (typeof value === 'string') {\n const trimmedSeparator = this._picker._config.rangeSeparator.trim();\n if (value.replace(/[^-]/g, '').length > 1) {\n _input = value.split(this._picker._config.rangeSeparator);\n }\n else {\n _input = value\n .split(trimmedSeparator.length > 0 ? trimmedSeparator : this._picker._config.rangeSeparator)\n .map(_val => _val.trim());\n }\n }\n if (Array.isArray(value)) {\n _input = value;\n }\n this._value = _input\n .map((_val) => {\n if (this._picker._config.useUtc) {\n return utcAsLocal(parseDate(_val, this._picker._config.rangeInputFormat, this._localeService.currentLocale));\n }\n return parseDate(_val, this._picker._config.rangeInputFormat, this._localeService.currentLocale);\n })\n .map((date) => (isNaN(date.valueOf()) ? void 0 : date));\n }\n this._picker.bsValue = this._value;\n }\n setDisabledState(isDisabled) {\n this._picker.isDisabled = isDisabled;\n if (isDisabled) {\n this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');\n return;\n }\n this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn) {\n this._onChange = fn;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n onBlur() {\n this._onTouched();\n }\n hide() {\n this._picker.hide();\n this._renderer.selectRootElement(this._elRef.nativeElement).blur();\n if (this._picker._config.returnFocusToInput) {\n this._renderer.selectRootElement(this._elRef.nativeElement).focus();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerInputDirective, deps: [{ token: BsDaterangepickerDirective, host: true }, { token: BsLocaleService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BsDaterangepickerInputDirective, selector: \"input[bsDaterangepicker]\", host: { listeners: { \"change\": \"onChange($event)\", \"keyup.esc\": \"hide()\", \"keydown\": \"onKeydownEvent($event)\", \"blur\": \"onBlur()\" } }, providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDaterangepickerInputDirective, decorators: [{\n type: Directive,\n args: [{\n selector: `input[bsDaterangepicker]`,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '(change)': 'onChange($event)',\n '(keyup.esc)': 'hide()',\n '(keydown)': 'onKeydownEvent($event)',\n '(blur)': 'onBlur()'\n },\n providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR]\n }]\n }], ctorParameters: () => [{ type: BsDaterangepickerDirective, decorators: [{\n type: Host\n }] }, { type: BsLocaleService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });\n\nclass BsDatepickerModule {\n static forRoot() {\n return {\n ngModule: BsDatepickerModule,\n providers: [\n ComponentLoaderFactory,\n PositioningService,\n BsDatepickerStore,\n BsDatepickerActions,\n BsDatepickerEffects,\n BsLocaleService,\n TimepickerActions\n ]\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerModule, declarations: [BsCalendarLayoutComponent,\n BsCurrentDateViewComponent,\n BsCustomDatesViewComponent,\n BsDatepickerDayDecoratorComponent,\n BsDatepickerNavigationViewComponent,\n BsDaysCalendarViewComponent,\n BsMonthCalendarViewComponent,\n BsTimepickerViewComponent,\n BsYearsCalendarViewComponent,\n BsDatepickerContainerComponent,\n BsDatepickerDirective,\n BsDatepickerInlineContainerComponent,\n BsDatepickerInlineDirective,\n BsDatepickerInputDirective,\n BsDaterangepickerContainerComponent,\n BsDaterangepickerDirective,\n BsDaterangepickerInlineContainerComponent,\n BsDaterangepickerInlineDirective,\n BsDaterangepickerInputDirective], imports: [CommonModule, TooltipModule, TimepickerModule], exports: [BsDatepickerContainerComponent,\n BsDatepickerDirective,\n BsDatepickerInlineContainerComponent,\n BsDatepickerInlineDirective,\n BsDatepickerInputDirective,\n BsDaterangepickerContainerComponent,\n BsDaterangepickerDirective,\n BsDaterangepickerInlineContainerComponent,\n BsDaterangepickerInlineDirective,\n BsDaterangepickerInputDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerModule, imports: [CommonModule, TooltipModule, TimepickerModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BsDatepickerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, TooltipModule, TimepickerModule],\n declarations: [\n BsCalendarLayoutComponent,\n BsCurrentDateViewComponent,\n BsCustomDatesViewComponent,\n BsDatepickerDayDecoratorComponent,\n BsDatepickerNavigationViewComponent,\n BsDaysCalendarViewComponent,\n BsMonthCalendarViewComponent,\n BsTimepickerViewComponent,\n BsYearsCalendarViewComponent,\n BsDatepickerContainerComponent,\n BsDatepickerDirective,\n BsDatepickerInlineContainerComponent,\n BsDatepickerInlineDirective,\n BsDatepickerInputDirective,\n BsDaterangepickerContainerComponent,\n BsDaterangepickerDirective,\n BsDaterangepickerInlineContainerComponent,\n BsDaterangepickerInlineDirective,\n BsDaterangepickerInputDirective\n ],\n exports: [\n BsDatepickerContainerComponent,\n BsDatepickerDirective,\n BsDatepickerInlineContainerComponent,\n BsDatepickerInlineDirective,\n BsDatepickerInputDirective,\n BsDaterangepickerContainerComponent,\n BsDaterangepickerDirective,\n BsDaterangepickerInlineContainerComponent,\n BsDaterangepickerInlineDirective,\n BsDaterangepickerInputDirective\n ]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BsDatepickerConfig, BsDatepickerContainerComponent, BsDatepickerDirective, BsDatepickerInlineConfig, BsDatepickerInlineContainerComponent, BsDatepickerInlineDirective, BsDatepickerInputDirective, BsDatepickerModule, BsDaterangepickerConfig, BsDaterangepickerContainerComponent, BsDaterangepickerDirective, BsDaterangepickerInlineConfig, BsDaterangepickerInlineContainerComponent, BsDaterangepickerInlineDirective, BsDaterangepickerInputDirective, BsLocaleService };\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Component, Output, ViewChild, ViewChildren, HostListener, Injectable, Directive, Input, NgModule } from '@angular/core';\nimport { Utils } from 'ngx-bootstrap/utils';\nimport * as i1 from 'ngx-bootstrap/positioning';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { Subscription, isObservable, EMPTY, from } from 'rxjs';\nimport { style, state, animate, transition, trigger } from '@angular/animations';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i3 from '@angular/forms';\nimport * as i1$1 from 'ngx-bootstrap/component-loader';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { debounceTime, tap, switchMap, filter, toArray, mergeMap } from 'rxjs/operators';\n\nconst latinMap = {\n 'Á': 'A',\n 'Ă': 'A',\n 'Ắ': 'A',\n 'Ặ': 'A',\n 'Ằ': 'A',\n 'Ẳ': 'A',\n 'Ẵ': 'A',\n 'Ǎ': 'A',\n 'Â': 'A',\n 'Ấ': 'A',\n 'Ậ': 'A',\n 'Ầ': 'A',\n 'Ẩ': 'A',\n 'Ẫ': 'A',\n 'Ä': 'A',\n 'Ǟ': 'A',\n 'Ȧ': 'A',\n 'Ǡ': 'A',\n 'Ạ': 'A',\n 'Ȁ': 'A',\n 'À': 'A',\n 'Ả': 'A',\n 'Ȃ': 'A',\n 'Ā': 'A',\n 'Ą': 'A',\n 'Å': 'A',\n 'Ǻ': 'A',\n 'Ḁ': 'A',\n 'Ⱥ': 'A',\n 'Ã': 'A',\n 'Ꜳ': 'AA',\n 'Æ': 'AE',\n 'Ǽ': 'AE',\n 'Ǣ': 'AE',\n 'Ꜵ': 'AO',\n 'Ꜷ': 'AU',\n 'Ꜹ': 'AV',\n 'Ꜻ': 'AV',\n 'Ꜽ': 'AY',\n 'Ḃ': 'B',\n 'Ḅ': 'B',\n 'Ɓ': 'B',\n 'Ḇ': 'B',\n 'Ƀ': 'B',\n 'Ƃ': 'B',\n 'Ć': 'C',\n 'Č': 'C',\n 'Ç': 'C',\n 'Ḉ': 'C',\n 'Ĉ': 'C',\n 'Ċ': 'C',\n 'Ƈ': 'C',\n 'Ȼ': 'C',\n 'Ď': 'D',\n 'Ḑ': 'D',\n 'Ḓ': 'D',\n 'Ḋ': 'D',\n 'Ḍ': 'D',\n 'Ɗ': 'D',\n 'Ḏ': 'D',\n 'Dz': 'D',\n 'Dž': 'D',\n 'Đ': 'D',\n 'Ƌ': 'D',\n 'DZ': 'DZ',\n 'DŽ': 'DZ',\n 'É': 'E',\n 'Ĕ': 'E',\n 'Ě': 'E',\n 'Ȩ': 'E',\n 'Ḝ': 'E',\n 'Ê': 'E',\n 'Ế': 'E',\n 'Ệ': 'E',\n 'Ề': 'E',\n 'Ể': 'E',\n 'Ễ': 'E',\n 'Ḙ': 'E',\n 'Ë': 'E',\n 'Ė': 'E',\n 'Ẹ': 'E',\n 'Ȅ': 'E',\n 'È': 'E',\n 'Ẻ': 'E',\n 'Ȇ': 'E',\n 'Ē': 'E',\n 'Ḗ': 'E',\n 'Ḕ': 'E',\n 'Ę': 'E',\n 'Ɇ': 'E',\n 'Ẽ': 'E',\n 'Ḛ': 'E',\n 'Ꝫ': 'ET',\n 'Ḟ': 'F',\n 'Ƒ': 'F',\n 'Ǵ': 'G',\n 'Ğ': 'G',\n 'Ǧ': 'G',\n 'Ģ': 'G',\n 'Ĝ': 'G',\n 'Ġ': 'G',\n 'Ɠ': 'G',\n 'Ḡ': 'G',\n 'Ǥ': 'G',\n 'Ḫ': 'H',\n 'Ȟ': 'H',\n 'Ḩ': 'H',\n 'Ĥ': 'H',\n 'Ⱨ': 'H',\n 'Ḧ': 'H',\n 'Ḣ': 'H',\n 'Ḥ': 'H',\n 'Ħ': 'H',\n 'Í': 'I',\n 'Ĭ': 'I',\n 'Ǐ': 'I',\n 'Î': 'I',\n 'Ï': 'I',\n 'Ḯ': 'I',\n 'İ': 'I',\n 'Ị': 'I',\n 'Ȉ': 'I',\n 'Ì': 'I',\n 'Ỉ': 'I',\n 'Ȋ': 'I',\n 'Ī': 'I',\n 'Į': 'I',\n 'Ɨ': 'I',\n 'Ĩ': 'I',\n 'Ḭ': 'I',\n 'Ꝺ': 'D',\n 'Ꝼ': 'F',\n 'Ᵹ': 'G',\n 'Ꞃ': 'R',\n 'Ꞅ': 'S',\n 'Ꞇ': 'T',\n 'Ꝭ': 'IS',\n 'Ĵ': 'J',\n 'Ɉ': 'J',\n 'Ḱ': 'K',\n 'Ǩ': 'K',\n 'Ķ': 'K',\n 'Ⱪ': 'K',\n 'Ꝃ': 'K',\n 'Ḳ': 'K',\n 'Ƙ': 'K',\n 'Ḵ': 'K',\n 'Ꝁ': 'K',\n 'Ꝅ': 'K',\n 'Ĺ': 'L',\n 'Ƚ': 'L',\n 'Ľ': 'L',\n 'Ļ': 'L',\n 'Ḽ': 'L',\n 'Ḷ': 'L',\n 'Ḹ': 'L',\n 'Ⱡ': 'L',\n 'Ꝉ': 'L',\n 'Ḻ': 'L',\n 'Ŀ': 'L',\n 'Ɫ': 'L',\n 'Lj': 'L',\n 'Ł': 'L',\n 'LJ': 'LJ',\n 'Ḿ': 'M',\n 'Ṁ': 'M',\n 'Ṃ': 'M',\n 'Ɱ': 'M',\n 'Ń': 'N',\n 'Ň': 'N',\n 'Ņ': 'N',\n 'Ṋ': 'N',\n 'Ṅ': 'N',\n 'Ṇ': 'N',\n 'Ǹ': 'N',\n 'Ɲ': 'N',\n 'Ṉ': 'N',\n 'Ƞ': 'N',\n 'Nj': 'N',\n 'Ñ': 'N',\n 'NJ': 'NJ',\n 'Ó': 'O',\n 'Ŏ': 'O',\n 'Ǒ': 'O',\n 'Ô': 'O',\n 'Ố': 'O',\n 'Ộ': 'O',\n 'Ồ': 'O',\n 'Ổ': 'O',\n 'Ỗ': 'O',\n 'Ö': 'O',\n 'Ȫ': 'O',\n 'Ȯ': 'O',\n 'Ȱ': 'O',\n 'Ọ': 'O',\n 'Ő': 'O',\n 'Ȍ': 'O',\n 'Ò': 'O',\n 'Ỏ': 'O',\n 'Ơ': 'O',\n 'Ớ': 'O',\n 'Ợ': 'O',\n 'Ờ': 'O',\n 'Ở': 'O',\n 'Ỡ': 'O',\n 'Ȏ': 'O',\n 'Ꝋ': 'O',\n 'Ꝍ': 'O',\n 'Ō': 'O',\n 'Ṓ': 'O',\n 'Ṑ': 'O',\n 'Ɵ': 'O',\n 'Ǫ': 'O',\n 'Ǭ': 'O',\n 'Ø': 'O',\n 'Ǿ': 'O',\n 'Õ': 'O',\n 'Ṍ': 'O',\n 'Ṏ': 'O',\n 'Ȭ': 'O',\n 'Ƣ': 'OI',\n 'Ꝏ': 'OO',\n 'Ɛ': 'E',\n 'Ɔ': 'O',\n 'Ȣ': 'OU',\n 'Ṕ': 'P',\n 'Ṗ': 'P',\n 'Ꝓ': 'P',\n 'Ƥ': 'P',\n 'Ꝕ': 'P',\n 'Ᵽ': 'P',\n 'Ꝑ': 'P',\n 'Ꝙ': 'Q',\n 'Ꝗ': 'Q',\n 'Ŕ': 'R',\n 'Ř': 'R',\n 'Ŗ': 'R',\n 'Ṙ': 'R',\n 'Ṛ': 'R',\n 'Ṝ': 'R',\n 'Ȑ': 'R',\n 'Ȓ': 'R',\n 'Ṟ': 'R',\n 'Ɍ': 'R',\n 'Ɽ': 'R',\n 'Ꜿ': 'C',\n 'Ǝ': 'E',\n 'Ś': 'S',\n 'Ṥ': 'S',\n 'Š': 'S',\n 'Ṧ': 'S',\n 'Ş': 'S',\n 'Ŝ': 'S',\n 'Ș': 'S',\n 'Ṡ': 'S',\n 'Ṣ': 'S',\n 'Ṩ': 'S',\n 'Ť': 'T',\n 'Ţ': 'T',\n 'Ṱ': 'T',\n 'Ț': 'T',\n 'Ⱦ': 'T',\n 'Ṫ': 'T',\n 'Ṭ': 'T',\n 'Ƭ': 'T',\n 'Ṯ': 'T',\n 'Ʈ': 'T',\n 'Ŧ': 'T',\n 'Ɐ': 'A',\n 'Ꞁ': 'L',\n 'Ɯ': 'M',\n 'Ʌ': 'V',\n 'Ꜩ': 'TZ',\n 'Ú': 'U',\n 'Ŭ': 'U',\n 'Ǔ': 'U',\n 'Û': 'U',\n 'Ṷ': 'U',\n 'Ü': 'U',\n 'Ǘ': 'U',\n 'Ǚ': 'U',\n 'Ǜ': 'U',\n 'Ǖ': 'U',\n 'Ṳ': 'U',\n 'Ụ': 'U',\n 'Ű': 'U',\n 'Ȕ': 'U',\n 'Ù': 'U',\n 'Ủ': 'U',\n 'Ư': 'U',\n 'Ứ': 'U',\n 'Ự': 'U',\n 'Ừ': 'U',\n 'Ử': 'U',\n 'Ữ': 'U',\n 'Ȗ': 'U',\n 'Ū': 'U',\n 'Ṻ': 'U',\n 'Ų': 'U',\n 'Ů': 'U',\n 'Ũ': 'U',\n 'Ṹ': 'U',\n 'Ṵ': 'U',\n 'Ꝟ': 'V',\n 'Ṿ': 'V',\n 'Ʋ': 'V',\n 'Ṽ': 'V',\n 'Ꝡ': 'VY',\n 'Ẃ': 'W',\n 'Ŵ': 'W',\n 'Ẅ': 'W',\n 'Ẇ': 'W',\n 'Ẉ': 'W',\n 'Ẁ': 'W',\n 'Ⱳ': 'W',\n 'Ẍ': 'X',\n 'Ẋ': 'X',\n 'Ý': 'Y',\n 'Ŷ': 'Y',\n 'Ÿ': 'Y',\n 'Ẏ': 'Y',\n 'Ỵ': 'Y',\n 'Ỳ': 'Y',\n 'Ƴ': 'Y',\n 'Ỷ': 'Y',\n 'Ỿ': 'Y',\n 'Ȳ': 'Y',\n 'Ɏ': 'Y',\n 'Ỹ': 'Y',\n 'Ź': 'Z',\n 'Ž': 'Z',\n 'Ẑ': 'Z',\n 'Ⱬ': 'Z',\n 'Ż': 'Z',\n 'Ẓ': 'Z',\n 'Ȥ': 'Z',\n 'Ẕ': 'Z',\n 'Ƶ': 'Z',\n 'IJ': 'IJ',\n 'Œ': 'OE',\n 'ᴀ': 'A',\n 'ᴁ': 'AE',\n 'ʙ': 'B',\n 'ᴃ': 'B',\n 'ᴄ': 'C',\n 'ᴅ': 'D',\n 'ᴇ': 'E',\n 'ꜰ': 'F',\n 'ɢ': 'G',\n 'ʛ': 'G',\n 'ʜ': 'H',\n 'ɪ': 'I',\n 'ʁ': 'R',\n 'ᴊ': 'J',\n 'ᴋ': 'K',\n 'ʟ': 'L',\n 'ᴌ': 'L',\n 'ᴍ': 'M',\n 'ɴ': 'N',\n 'ᴏ': 'O',\n 'ɶ': 'OE',\n 'ᴐ': 'O',\n 'ᴕ': 'OU',\n 'ᴘ': 'P',\n 'ʀ': 'R',\n 'ᴎ': 'N',\n 'ᴙ': 'R',\n 'ꜱ': 'S',\n 'ᴛ': 'T',\n 'ⱻ': 'E',\n 'ᴚ': 'R',\n 'ᴜ': 'U',\n 'ᴠ': 'V',\n 'ᴡ': 'W',\n 'ʏ': 'Y',\n 'ᴢ': 'Z',\n 'á': 'a',\n 'ă': 'a',\n 'ắ': 'a',\n 'ặ': 'a',\n 'ằ': 'a',\n 'ẳ': 'a',\n 'ẵ': 'a',\n 'ǎ': 'a',\n 'â': 'a',\n 'ấ': 'a',\n 'ậ': 'a',\n 'ầ': 'a',\n 'ẩ': 'a',\n 'ẫ': 'a',\n 'ä': 'a',\n 'ǟ': 'a',\n 'ȧ': 'a',\n 'ǡ': 'a',\n 'ạ': 'a',\n 'ȁ': 'a',\n 'à': 'a',\n 'ả': 'a',\n 'ȃ': 'a',\n 'ā': 'a',\n 'ą': 'a',\n 'ᶏ': 'a',\n 'ẚ': 'a',\n 'å': 'a',\n 'ǻ': 'a',\n 'ḁ': 'a',\n 'ⱥ': 'a',\n 'ã': 'a',\n 'ꜳ': 'aa',\n 'æ': 'ae',\n 'ǽ': 'ae',\n 'ǣ': 'ae',\n 'ꜵ': 'ao',\n 'ꜷ': 'au',\n 'ꜹ': 'av',\n 'ꜻ': 'av',\n 'ꜽ': 'ay',\n 'ḃ': 'b',\n 'ḅ': 'b',\n 'ɓ': 'b',\n 'ḇ': 'b',\n 'ᵬ': 'b',\n 'ᶀ': 'b',\n 'ƀ': 'b',\n 'ƃ': 'b',\n 'ɵ': 'o',\n 'ć': 'c',\n 'č': 'c',\n 'ç': 'c',\n 'ḉ': 'c',\n 'ĉ': 'c',\n 'ɕ': 'c',\n 'ċ': 'c',\n 'ƈ': 'c',\n 'ȼ': 'c',\n 'ď': 'd',\n 'ḑ': 'd',\n 'ḓ': 'd',\n 'ȡ': 'd',\n 'ḋ': 'd',\n 'ḍ': 'd',\n 'ɗ': 'd',\n 'ᶑ': 'd',\n 'ḏ': 'd',\n 'ᵭ': 'd',\n 'ᶁ': 'd',\n 'đ': 'd',\n 'ɖ': 'd',\n 'ƌ': 'd',\n 'ı': 'i',\n 'ȷ': 'j',\n 'ɟ': 'j',\n 'ʄ': 'j',\n 'dz': 'dz',\n 'dž': 'dz',\n 'é': 'e',\n 'ĕ': 'e',\n 'ě': 'e',\n 'ȩ': 'e',\n 'ḝ': 'e',\n 'ê': 'e',\n 'ế': 'e',\n 'ệ': 'e',\n 'ề': 'e',\n 'ể': 'e',\n 'ễ': 'e',\n 'ḙ': 'e',\n 'ë': 'e',\n 'ė': 'e',\n 'ẹ': 'e',\n 'ȅ': 'e',\n 'è': 'e',\n 'ẻ': 'e',\n 'ȇ': 'e',\n 'ē': 'e',\n 'ḗ': 'e',\n 'ḕ': 'e',\n 'ⱸ': 'e',\n 'ę': 'e',\n 'ᶒ': 'e',\n 'ɇ': 'e',\n 'ẽ': 'e',\n 'ḛ': 'e',\n 'ꝫ': 'et',\n 'ḟ': 'f',\n 'ƒ': 'f',\n 'ᵮ': 'f',\n 'ᶂ': 'f',\n 'ǵ': 'g',\n 'ğ': 'g',\n 'ǧ': 'g',\n 'ģ': 'g',\n 'ĝ': 'g',\n 'ġ': 'g',\n 'ɠ': 'g',\n 'ḡ': 'g',\n 'ᶃ': 'g',\n 'ǥ': 'g',\n 'ḫ': 'h',\n 'ȟ': 'h',\n 'ḩ': 'h',\n 'ĥ': 'h',\n 'ⱨ': 'h',\n 'ḧ': 'h',\n 'ḣ': 'h',\n 'ḥ': 'h',\n 'ɦ': 'h',\n 'ẖ': 'h',\n 'ħ': 'h',\n 'ƕ': 'hv',\n 'í': 'i',\n 'ĭ': 'i',\n 'ǐ': 'i',\n 'î': 'i',\n 'ï': 'i',\n 'ḯ': 'i',\n 'ị': 'i',\n 'ȉ': 'i',\n 'ì': 'i',\n 'ỉ': 'i',\n 'ȋ': 'i',\n 'ī': 'i',\n 'į': 'i',\n 'ᶖ': 'i',\n 'ɨ': 'i',\n 'ĩ': 'i',\n 'ḭ': 'i',\n 'ꝺ': 'd',\n 'ꝼ': 'f',\n 'ᵹ': 'g',\n 'ꞃ': 'r',\n 'ꞅ': 's',\n 'ꞇ': 't',\n 'ꝭ': 'is',\n 'ǰ': 'j',\n 'ĵ': 'j',\n 'ʝ': 'j',\n 'ɉ': 'j',\n 'ḱ': 'k',\n 'ǩ': 'k',\n 'ķ': 'k',\n 'ⱪ': 'k',\n 'ꝃ': 'k',\n 'ḳ': 'k',\n 'ƙ': 'k',\n 'ḵ': 'k',\n 'ᶄ': 'k',\n 'ꝁ': 'k',\n 'ꝅ': 'k',\n 'ĺ': 'l',\n 'ƚ': 'l',\n 'ɬ': 'l',\n 'ľ': 'l',\n 'ļ': 'l',\n 'ḽ': 'l',\n 'ȴ': 'l',\n 'ḷ': 'l',\n 'ḹ': 'l',\n 'ⱡ': 'l',\n 'ꝉ': 'l',\n 'ḻ': 'l',\n 'ŀ': 'l',\n 'ɫ': 'l',\n 'ᶅ': 'l',\n 'ɭ': 'l',\n 'ł': 'l',\n 'lj': 'lj',\n 'ſ': 's',\n 'ẜ': 's',\n 'ẛ': 's',\n 'ẝ': 's',\n 'ḿ': 'm',\n 'ṁ': 'm',\n 'ṃ': 'm',\n 'ɱ': 'm',\n 'ᵯ': 'm',\n 'ᶆ': 'm',\n 'ń': 'n',\n 'ň': 'n',\n 'ņ': 'n',\n 'ṋ': 'n',\n 'ȵ': 'n',\n 'ṅ': 'n',\n 'ṇ': 'n',\n 'ǹ': 'n',\n 'ɲ': 'n',\n 'ṉ': 'n',\n 'ƞ': 'n',\n 'ᵰ': 'n',\n 'ᶇ': 'n',\n 'ɳ': 'n',\n 'ñ': 'n',\n 'nj': 'nj',\n 'ó': 'o',\n 'ŏ': 'o',\n 'ǒ': 'o',\n 'ô': 'o',\n 'ố': 'o',\n 'ộ': 'o',\n 'ồ': 'o',\n 'ổ': 'o',\n 'ỗ': 'o',\n 'ö': 'o',\n 'ȫ': 'o',\n 'ȯ': 'o',\n 'ȱ': 'o',\n 'ọ': 'o',\n 'ő': 'o',\n 'ȍ': 'o',\n 'ò': 'o',\n 'ỏ': 'o',\n 'ơ': 'o',\n 'ớ': 'o',\n 'ợ': 'o',\n 'ờ': 'o',\n 'ở': 'o',\n 'ỡ': 'o',\n 'ȏ': 'o',\n 'ꝋ': 'o',\n 'ꝍ': 'o',\n 'ⱺ': 'o',\n 'ō': 'o',\n 'ṓ': 'o',\n 'ṑ': 'o',\n 'ǫ': 'o',\n 'ǭ': 'o',\n 'ø': 'o',\n 'ǿ': 'o',\n 'õ': 'o',\n 'ṍ': 'o',\n 'ṏ': 'o',\n 'ȭ': 'o',\n 'ƣ': 'oi',\n 'ꝏ': 'oo',\n 'ɛ': 'e',\n 'ᶓ': 'e',\n 'ɔ': 'o',\n 'ᶗ': 'o',\n 'ȣ': 'ou',\n 'ṕ': 'p',\n 'ṗ': 'p',\n 'ꝓ': 'p',\n 'ƥ': 'p',\n 'ᵱ': 'p',\n 'ᶈ': 'p',\n 'ꝕ': 'p',\n 'ᵽ': 'p',\n 'ꝑ': 'p',\n 'ꝙ': 'q',\n 'ʠ': 'q',\n 'ɋ': 'q',\n 'ꝗ': 'q',\n 'ŕ': 'r',\n 'ř': 'r',\n 'ŗ': 'r',\n 'ṙ': 'r',\n 'ṛ': 'r',\n 'ṝ': 'r',\n 'ȑ': 'r',\n 'ɾ': 'r',\n 'ᵳ': 'r',\n 'ȓ': 'r',\n 'ṟ': 'r',\n 'ɼ': 'r',\n 'ᵲ': 'r',\n 'ᶉ': 'r',\n 'ɍ': 'r',\n 'ɽ': 'r',\n 'ↄ': 'c',\n 'ꜿ': 'c',\n 'ɘ': 'e',\n 'ɿ': 'r',\n 'ś': 's',\n 'ṥ': 's',\n 'š': 's',\n 'ṧ': 's',\n 'ş': 's',\n 'ŝ': 's',\n 'ș': 's',\n 'ṡ': 's',\n 'ṣ': 's',\n 'ṩ': 's',\n 'ʂ': 's',\n 'ᵴ': 's',\n 'ᶊ': 's',\n 'ȿ': 's',\n 'ɡ': 'g',\n 'ᴑ': 'o',\n 'ᴓ': 'o',\n 'ᴝ': 'u',\n 'ť': 't',\n 'ţ': 't',\n 'ṱ': 't',\n 'ț': 't',\n 'ȶ': 't',\n 'ẗ': 't',\n 'ⱦ': 't',\n 'ṫ': 't',\n 'ṭ': 't',\n 'ƭ': 't',\n 'ṯ': 't',\n 'ᵵ': 't',\n 'ƫ': 't',\n 'ʈ': 't',\n 'ŧ': 't',\n 'ᵺ': 'th',\n 'ɐ': 'a',\n 'ᴂ': 'ae',\n 'ǝ': 'e',\n 'ᵷ': 'g',\n 'ɥ': 'h',\n 'ʮ': 'h',\n 'ʯ': 'h',\n 'ᴉ': 'i',\n 'ʞ': 'k',\n 'ꞁ': 'l',\n 'ɯ': 'm',\n 'ɰ': 'm',\n 'ᴔ': 'oe',\n 'ɹ': 'r',\n 'ɻ': 'r',\n 'ɺ': 'r',\n 'ⱹ': 'r',\n 'ʇ': 't',\n 'ʌ': 'v',\n 'ʍ': 'w',\n 'ʎ': 'y',\n 'ꜩ': 'tz',\n 'ú': 'u',\n 'ŭ': 'u',\n 'ǔ': 'u',\n 'û': 'u',\n 'ṷ': 'u',\n 'ü': 'u',\n 'ǘ': 'u',\n 'ǚ': 'u',\n 'ǜ': 'u',\n 'ǖ': 'u',\n 'ṳ': 'u',\n 'ụ': 'u',\n 'ű': 'u',\n 'ȕ': 'u',\n 'ù': 'u',\n 'ủ': 'u',\n 'ư': 'u',\n 'ứ': 'u',\n 'ự': 'u',\n 'ừ': 'u',\n 'ử': 'u',\n 'ữ': 'u',\n 'ȗ': 'u',\n 'ū': 'u',\n 'ṻ': 'u',\n 'ų': 'u',\n 'ᶙ': 'u',\n 'ů': 'u',\n 'ũ': 'u',\n 'ṹ': 'u',\n 'ṵ': 'u',\n 'ᵫ': 'ue',\n 'ꝸ': 'um',\n 'ⱴ': 'v',\n 'ꝟ': 'v',\n 'ṿ': 'v',\n 'ʋ': 'v',\n 'ᶌ': 'v',\n 'ⱱ': 'v',\n 'ṽ': 'v',\n 'ꝡ': 'vy',\n 'ẃ': 'w',\n 'ŵ': 'w',\n 'ẅ': 'w',\n 'ẇ': 'w',\n 'ẉ': 'w',\n 'ẁ': 'w',\n 'ⱳ': 'w',\n 'ẘ': 'w',\n 'ẍ': 'x',\n 'ẋ': 'x',\n 'ᶍ': 'x',\n 'ý': 'y',\n 'ŷ': 'y',\n 'ÿ': 'y',\n 'ẏ': 'y',\n 'ỵ': 'y',\n 'ỳ': 'y',\n 'ƴ': 'y',\n 'ỷ': 'y',\n 'ỿ': 'y',\n 'ȳ': 'y',\n 'ẙ': 'y',\n 'ɏ': 'y',\n 'ỹ': 'y',\n 'ź': 'z',\n 'ž': 'z',\n 'ẑ': 'z',\n 'ʑ': 'z',\n 'ⱬ': 'z',\n 'ż': 'z',\n 'ẓ': 'z',\n 'ȥ': 'z',\n 'ẕ': 'z',\n 'ᵶ': 'z',\n 'ᶎ': 'z',\n 'ʐ': 'z',\n 'ƶ': 'z',\n 'ɀ': 'z',\n 'ff': 'ff',\n 'ffi': 'ffi',\n 'ffl': 'ffl',\n 'fi': 'fi',\n 'fl': 'fl',\n 'ij': 'ij',\n 'œ': 'oe',\n 'st': 'st',\n 'ₐ': 'a',\n 'ₑ': 'e',\n 'ᵢ': 'i',\n 'ⱼ': 'j',\n 'ₒ': 'o',\n 'ᵣ': 'r',\n 'ᵤ': 'u',\n 'ᵥ': 'v',\n 'ₓ': 'x'\n};\n\nclass TypeaheadOptions {\n constructor(options) {\n this.placement = options.placement;\n this.animation = options.animation;\n this.typeaheadRef = options.typeaheadRef;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nclass TypeaheadMatch {\n constructor(item, value = item, header = false) {\n this.item = item;\n this.value = value;\n this.header = header;\n }\n isHeader() {\n return this.header;\n }\n toString() {\n return this.value;\n }\n}\n\nfunction latinize(str) {\n if (!str) {\n return '';\n }\n return str.replace(/[^A-Za-z0-9[\\] ]/g, function (a) {\n return latinMap[a] || a;\n });\n}\nfunction escapeRegexp(queryToEscape) {\n // Regex: capture the whole query string and replace it with the string\n // that will be used to match the results, for example if the capture is\n // 'a' the result will be \\a\n return queryToEscape.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n}\nfunction tokenize(str, wordRegexDelimiters = ' ', phraseRegexDelimiters = '', delimitersForMultipleSearch) {\n let result = [];\n if (!delimitersForMultipleSearch) {\n result = tokenizeWordsAndPhrases(str, wordRegexDelimiters, phraseRegexDelimiters);\n }\n else {\n const multipleSearchRegexStr = `([${delimitersForMultipleSearch}]+)`;\n const delimitedTokens = str.split(new RegExp(multipleSearchRegexStr, 'g'));\n const lastToken = delimitedTokens[delimitedTokens.length - 1];\n if (lastToken > '') {\n if (wordRegexDelimiters && phraseRegexDelimiters) {\n result = tokenizeWordsAndPhrases(lastToken, wordRegexDelimiters, phraseRegexDelimiters);\n }\n else {\n result.push(lastToken);\n }\n }\n }\n return result;\n}\nfunction tokenizeWordsAndPhrases(str, wordRegexDelimiters, phraseRegexDelimiters) {\n const result = [];\n const regexStr = `(?:[${phraseRegexDelimiters}])([^${phraseRegexDelimiters}]+)` +\n `(?:[${phraseRegexDelimiters}])|([^${wordRegexDelimiters}]+)`;\n const preTokenized = str.split(new RegExp(regexStr, 'g'));\n const preTokenizedLength = preTokenized.length;\n let token;\n const replacePhraseDelimiters = new RegExp(`[${phraseRegexDelimiters}]+`, 'g');\n for (let i = 0; i < preTokenizedLength; i += 1) {\n token = preTokenized[i];\n if (token && token.length && token !== wordRegexDelimiters) {\n result.push(token.replace(replacePhraseDelimiters, ''));\n }\n }\n return result;\n}\n// eslint-disable-next-line\nfunction getValueFromObject(object, option) {\n if (!option || typeof object !== 'object') {\n return object.toString();\n }\n if (option.endsWith('()')) {\n const functionName = option.slice(0, option.length - 2);\n return object[functionName]().toString();\n }\n const properties = option\n .replace(/\\[(\\w+)\\]/g, '.$1')\n .replace(/^\\./, '');\n const propertiesArray = properties.split('.');\n for (const property of propertiesArray) {\n if (property in object) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n object = object[property];\n }\n }\n if (!object) {\n return '';\n }\n return object.toString();\n}\n\nconst TYPEAHEAD_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\nconst typeaheadAnimation = trigger('typeaheadAnimation', [\n state('animated-down', style({ height: '*', overflow: 'hidden' })),\n transition('* => animated-down', [\n style({ height: 0, overflow: 'hidden' }),\n animate(TYPEAHEAD_ANIMATION_TIMING)\n ]),\n state('animated-up', style({ height: '*', overflow: 'hidden' })),\n transition('* => animated-up', [\n style({ height: '*', overflow: 'hidden' }),\n animate(TYPEAHEAD_ANIMATION_TIMING)\n ]),\n transition('* => unanimated', animate('0s'))\n]);\n\nlet nextWindowId = 0;\nclass TypeaheadContainerComponent {\n get typeaheadTemplateMethods() {\n return {\n selectMatch: this.selectMatch.bind(this),\n selectActive: this.selectActive.bind(this),\n isActive: this.isActive.bind(this)\n };\n }\n constructor(positionService, renderer, element, changeDetectorRef) {\n this.positionService = positionService;\n this.renderer = renderer;\n this.element = element;\n this.changeDetectorRef = changeDetectorRef;\n // eslint-disable-next-line @angular-eslint/no-output-rename\n this.activeChangeEvent = new EventEmitter();\n this.isFocused = false;\n this.positionServiceSubscription = new Subscription();\n this.height = 0;\n this.popupId = `ngb-typeahead-${nextWindowId++}`;\n this._matches = [];\n this.renderer.setAttribute(this.element.nativeElement, 'id', this.popupId);\n this.positionServiceSubscription.add(this.positionService.event$?.subscribe(() => {\n if (this.isAnimated) {\n this.animationState = this.isTopPosition ? 'animated-up' : 'animated-down';\n this.changeDetectorRef.detectChanges();\n return;\n }\n this.animationState = 'unanimated';\n this.changeDetectorRef.detectChanges();\n }));\n }\n get active() {\n return this._active;\n }\n set active(active) {\n this._active = active;\n this.activeChanged();\n }\n get matches() {\n return this._matches;\n }\n set matches(value) {\n this.positionService.setOptions({\n modifiers: { flip: { enabled: this.adaptivePosition } },\n allowedPositions: ['top', 'bottom']\n });\n this._matches = value;\n this.needScrollbar = this.typeaheadScrollable && this.typeaheadOptionsInScrollableView < this.matches.length;\n if (this.typeaheadScrollable) {\n setTimeout(() => {\n this.setScrollableMode();\n });\n }\n if (this.typeaheadIsFirstItemActive && this._matches.length > 0) {\n this.setActive(this._matches[0]);\n if (this._active?.isHeader()) {\n this.nextActiveMatch();\n }\n }\n if (this._active && !this.typeaheadIsFirstItemActive) {\n const concurrency = this._matches.find(match => match.value === this._active?.value);\n if (concurrency) {\n this.selectActive(concurrency);\n return;\n }\n this.active = void 0;\n }\n }\n get isTopPosition() {\n return this.element.nativeElement.classList.contains('top');\n }\n get optionsListTemplate() {\n return this.parent ? this.parent.optionsListTemplate : undefined;\n }\n get isAnimated() {\n return this.parent ? this.parent.isAnimated : false;\n }\n get adaptivePosition() {\n return this.parent ? this.parent.adaptivePosition : false;\n }\n get typeaheadScrollable() {\n return this.parent ? this.parent.typeaheadScrollable : false;\n }\n get typeaheadOptionsInScrollableView() {\n return this.parent ? this.parent.typeaheadOptionsInScrollableView : 5;\n }\n get typeaheadIsFirstItemActive() {\n return this.parent ? this.parent.typeaheadIsFirstItemActive : true;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get itemTemplate() {\n return this.parent ? this.parent.typeaheadItemTemplate : undefined;\n }\n get canSelectItemsOnBlur() {\n return !!this.parent?.selectItemOnBlur;\n }\n selectActiveMatch(isActiveItemChanged) {\n if (this._active && this.parent?.typeaheadSelectFirstItem) {\n this.selectMatch(this._active);\n }\n if (!this.parent?.typeaheadSelectFirstItem && isActiveItemChanged) {\n this.selectMatch(this._active);\n }\n }\n activeChanged() {\n if (!this._active) {\n return;\n }\n const index = this.matches.indexOf(this._active);\n this.activeChangeEvent.emit(`${this.popupId}-${index}`);\n }\n prevActiveMatch() {\n if (!this._active) {\n return;\n }\n const index = this.matches.indexOf(this._active);\n this.setActive(this.matches[index - 1 < 0 ? this.matches.length - 1 : index - 1]);\n if (this._active.isHeader()) {\n this.prevActiveMatch();\n }\n if (this.typeaheadScrollable) {\n this.scrollPrevious(index);\n }\n }\n nextActiveMatch() {\n const index = this._active ? this.matches.indexOf(this._active) : -1;\n this.setActive(this.matches[index + 1 > this.matches.length - 1 ? 0 : index + 1]);\n if (this._active?.isHeader()) {\n this.nextActiveMatch();\n }\n if (this.typeaheadScrollable) {\n this.scrollNext(index);\n }\n }\n selectActive(value) {\n this.isFocused = true;\n this.setActive(value);\n }\n highlight(match, query) {\n let itemStr = match.value;\n let itemStrHelper = (this.parent && this.parent.typeaheadLatinize\n ? latinize(itemStr)\n : itemStr).toLowerCase();\n let startIdx;\n let tokenLen;\n // Replaces the capture string with the same string inside of a \"strong\" tag\n if (typeof query === 'object') {\n const queryLen = query.length;\n for (let i = 0; i < queryLen; i += 1) {\n // query[i] is already latinized and lower case\n startIdx = itemStrHelper.indexOf(query[i]);\n tokenLen = query[i].length;\n if (startIdx >= 0 && tokenLen > 0) {\n itemStr =\n `${itemStr.substring(0, startIdx)}${itemStr.substring(startIdx, startIdx + tokenLen)}` +\n `${itemStr.substring(startIdx + tokenLen)}`;\n itemStrHelper =\n `${itemStrHelper.substring(0, startIdx)} ${' '.repeat(tokenLen)} ` +\n `${itemStrHelper.substring(startIdx + tokenLen)}`;\n }\n }\n }\n else if (query) {\n // query is already latinized and lower case\n startIdx = itemStrHelper.indexOf(query);\n tokenLen = query.length;\n if (startIdx >= 0 && tokenLen > 0) {\n itemStr =\n `${itemStr.substring(0, startIdx)}${itemStr.substring(startIdx, startIdx + tokenLen)}` +\n `${itemStr.substring(startIdx + tokenLen)}`;\n }\n }\n return itemStr;\n }\n focusLost() {\n this.isFocused = false;\n if (!this.canSelectItemsOnBlur) {\n this.setActive(void 0);\n }\n }\n isActive(value) {\n return this.active === value;\n }\n selectMatch(value, event) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n this.parent?.changeModel(value);\n setTimeout(() => this.parent?.typeaheadOnSelect.emit(value), 0);\n return false;\n }\n setScrollableMode() {\n if (!this.ulElement) {\n this.ulElement = this.element;\n }\n if (this.liElements?.first) {\n const ulStyles = Utils.getStyles(this.ulElement.nativeElement);\n const liStyles = Utils.getStyles(this.liElements.first.nativeElement);\n const ulPaddingBottom = parseFloat((ulStyles['padding-bottom'] ? ulStyles['padding-bottom'] : '')\n .replace('px', ''));\n const ulPaddingTop = parseFloat((ulStyles['padding-top'] ? ulStyles['padding-top'] : '0')\n .replace('px', ''));\n const optionHeight = parseFloat((liStyles.height ? liStyles.height : '0')\n .replace('px', ''));\n const height = this.typeaheadOptionsInScrollableView * optionHeight;\n this.guiHeight = `${height + ulPaddingTop + ulPaddingBottom}px`;\n }\n this.renderer.setStyle(this.element.nativeElement, 'visibility', 'visible');\n }\n scrollPrevious(index) {\n if (index === 0) {\n this.scrollToBottom();\n return;\n }\n if (this.liElements && this.ulElement) {\n const liElement = this.liElements.toArray()[index - 1];\n if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n this.ulElement.nativeElement.scrollTop = liElement.nativeElement.offsetTop;\n }\n }\n }\n scrollNext(index) {\n if (index + 1 > this.matches.length - 1) {\n this.scrollToTop();\n return;\n }\n if (this.liElements && this.ulElement) {\n const liElement = this.liElements.toArray()[index + 1];\n if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n this.ulElement.nativeElement.scrollTop =\n liElement.nativeElement.offsetTop -\n Number(this.ulElement.nativeElement.offsetHeight) +\n Number(liElement.nativeElement.offsetHeight);\n }\n }\n }\n ngOnDestroy() {\n this.positionServiceSubscription.unsubscribe();\n }\n setActive(value) {\n this._active = value;\n let preview;\n if (!(this._active == null || this._active.isHeader())) {\n preview = value;\n }\n this.parent?.typeaheadOnPreview.emit(preview);\n }\n isScrolledIntoView(elem) {\n if (!this.ulElement) {\n return false;\n }\n const containerViewTop = this.ulElement.nativeElement.scrollTop;\n const containerViewBottom = containerViewTop + Number(this.ulElement.nativeElement.offsetHeight);\n const elemTop = elem.offsetTop;\n const elemBottom = elemTop + elem.offsetHeight;\n return ((elemBottom <= containerViewBottom) && (elemTop >= containerViewTop));\n }\n ;\n scrollToBottom() {\n if (!this.ulElement?.nativeElement) {\n return;\n }\n this.ulElement.nativeElement.scrollTop = this.ulElement.nativeElement.scrollHeight;\n }\n scrollToTop() {\n if (!this.ulElement?.nativeElement) {\n return;\n }\n this.ulElement.nativeElement.scrollTop = 0;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TypeaheadContainerComponent, deps: [{ token: i1.PositioningService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: TypeaheadContainerComponent, selector: \"typeahead-container\", outputs: { activeChangeEvent: \"activeChange\" }, host: { listeners: { \"mouseleave\": \"focusLost()\", \"blur\": \"focusLost()\" }, properties: { \"style.height\": \"needScrollbar ? guiHeight: 'auto'\", \"style.visibility\": \"'inherit'\", \"class.dropup\": \"dropup\", \"attr.role\": \"'listbox'\" }, styleAttribute: \"position: absolute;display: block;\", classAttribute: \"dropdown open bottom dropdown-menu\" }, viewQueries: [{ propertyName: \"ulElement\", first: true, predicate: [\"ulElement\"], descendants: true }, { propertyName: \"liElements\", predicate: [\"liElements\"], descendants: true }], ngImport: i0, template: \"\\n\\n\\n\\n\\n\\n \\n\\n\\n\\n\\n \\n
    {{ match }}
    \\n \\n \\n \\n
    \\n
    \\n\", styles: [\":host.dropdown{z-index:1000}:host.dropdown-menu,.dropdown-menu{overflow-y:auto;height:100px}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], animations: [typeaheadAnimation] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TypeaheadContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'typeahead-container', host: {\n class: 'dropdown open bottom dropdown-menu',\n '[style.height]': `needScrollbar ? guiHeight: 'auto'`,\n '[style.visibility]': `'inherit'`,\n '[class.dropup]': 'dropup',\n style: 'position: absolute;display: block;',\n '[attr.role]': `'listbox'`\n }, animations: [typeaheadAnimation], template: \"\\n\\n\\n\\n\\n\\n \\n\\n\\n\\n\\n \\n
    {{ match }}
    \\n \\n \\n \\n
    \\n
    \\n\", styles: [\":host.dropdown{z-index:1000}:host.dropdown-menu,.dropdown-menu{overflow-y:auto;height:100px}\\n\"] }]\n }], ctorParameters: () => [{ type: i1.PositioningService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { activeChangeEvent: [{\n type: Output,\n args: ['activeChange']\n }], ulElement: [{\n type: ViewChild,\n args: ['ulElement', { static: false }]\n }], liElements: [{\n type: ViewChildren,\n args: ['liElements']\n }], focusLost: [{\n type: HostListener,\n args: ['mouseleave']\n }, {\n type: HostListener,\n args: ['blur']\n }] } });\n\n/** Default values provider for typeahead */\nclass TypeaheadConfig {\n constructor() {\n /** sets use adaptive position */\n this.adaptivePosition = false;\n /** turn on/off animation */\n this.isAnimated = false;\n /** used to hide results on blur */\n this.hideResultsOnBlur = true;\n /** if true, typeahead will cancel async request on blur */\n this.cancelRequestOnFocusLost = false;\n /** used to choose the first item in typeahead container */\n this.selectFirstItem = true;\n /** used to active/inactive the first item in typeahead container */\n this.isFirstItemActive = true;\n /** used to choose set minimal no of characters that needs to\n * be entered before typeahead kicks-in\n */\n this.minLength = 1;\n /**\n * used to choose item on blur event\n */\n this.selectItemOnBlur = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TypeaheadConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TypeaheadConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TypeaheadConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass TypeaheadDirective {\n constructor(cis, config, changeDetection, element, ngControl, renderer, viewContainerRef) {\n this.changeDetection = changeDetection;\n this.element = element;\n this.ngControl = ngControl;\n this.renderer = renderer;\n /** minimal no of characters that needs to be entered before\n * typeahead kicks-in. When set to 0, typeahead shows on focus with full\n * list of options (limited as normal by typeaheadOptionsLimit)\n */\n this.typeaheadMinLength = 1;\n /** sets use adaptive position */\n this.adaptivePosition = false;\n /** turn on/off animation */\n this.isAnimated = false;\n /** minimal wait time after last character typed before typeahead kicks-in */\n this.typeaheadWaitMs = 0;\n /** match latin symbols.\n * If true the word súper would match super and vice versa.\n */\n this.typeaheadLatinize = true;\n /** Can be use to search words by inserting a single white space between each characters\n * for example 'C a l i f o r n i a' will match 'California'.\n */\n this.typeaheadSingleWords = true;\n /** should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to break words. Defaults to space.\n */\n this.typeaheadWordDelimiters = ' ';\n /** should be used only in case typeaheadMultipleSearch attribute is true.\n * Sets the multiple search delimiter to know when to start a new search. Defaults to comma.\n * If space needs to be used, then explicitly set typeaheadWordDelimiters to something else than space\n * because space is used by default OR set typeaheadSingleWords attribute to false if you don't need\n * to use it together with multiple search.\n */\n this.typeaheadMultipleSearchDelimiters = ',';\n /** should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to match exact phrase.\n * Defaults to simple and double quotes.\n */\n this.typeaheadPhraseDelimiters = '\\'\"';\n /** specifies if typeahead is scrollable */\n this.typeaheadScrollable = false;\n /** specifies number of options to show in scroll view */\n this.typeaheadOptionsInScrollableView = 5;\n /** fired when an options list was opened and the user clicked Tab\n * If a value equal true, it will be chosen first or active item in the list\n * If value equal false, it will be chosen an active item in the list or nothing\n */\n this.typeaheadSelectFirstItem = true;\n /** makes active first item in a list */\n this.typeaheadIsFirstItemActive = true;\n /** fired when 'busy' state of this component was changed,\n * fired on async mode only, returns boolean\n */\n this.typeaheadLoading = new EventEmitter();\n /** fired on every key event and returns true\n * in case of matches are not detected\n */\n this.typeaheadNoResults = new EventEmitter();\n /** fired when option was selected, return object with data of this option. */\n this.typeaheadOnSelect = new EventEmitter();\n /** fired when option was previewed, return object with data of this option. */\n this.typeaheadOnPreview = new EventEmitter();\n /** fired when blur event occurs. returns the active item */\n this.typeaheadOnBlur = new EventEmitter();\n /** This attribute indicates that the dropdown should be opened upwards */\n this.dropup = false;\n this.isOpen = false;\n this.list = 'list';\n this.isActiveItemChanged = false;\n this.isFocused = false;\n this.cancelRequestOnFocusLost = false;\n this.selectItemOnBlur = false;\n this.keyUpEventEmitter = new EventEmitter();\n this.placement = 'bottom left';\n this._matches = [];\n this._subscriptions = [];\n this._outsideClickListener = () => void 0;\n this._typeahead = cis\n .createLoader(element, viewContainerRef, renderer)\n .provide({ provide: TypeaheadConfig, useValue: config });\n Object.assign(this, {\n typeaheadHideResultsOnBlur: config.hideResultsOnBlur,\n cancelRequestOnFocusLost: config.cancelRequestOnFocusLost,\n typeaheadSelectFirstItem: config.selectFirstItem,\n typeaheadIsFirstItemActive: config.isFirstItemActive,\n typeaheadMinLength: config.minLength,\n adaptivePosition: config.adaptivePosition,\n isAnimated: config.isAnimated,\n selectItemOnBlur: config.selectItemOnBlur\n });\n }\n get matches() {\n return this._matches;\n }\n ngOnInit() {\n this.typeaheadOptionsLimit = this.typeaheadOptionsLimit || 20;\n this.typeaheadMinLength = this.typeaheadMinLength === void 0 ? 1 : this.typeaheadMinLength;\n // async should be false in case of array\n if (this.typeaheadAsync === undefined && !isObservable(this.typeahead)) {\n this.typeaheadAsync = false;\n }\n if (isObservable(this.typeahead)) {\n this.typeaheadAsync = true;\n }\n if (this.typeaheadAsync) {\n this.asyncActions();\n }\n else {\n this.syncActions();\n }\n this.checkDelimitersConflict();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onInput(e) {\n // For ``s, use the `value` property. For others that don't have a\n // `value` (such as ``), use either\n // `textContent` or `innerText` (depending on which one is supported, i.e.\n // Firefox or IE).\n const value = e.target.value !== undefined\n ? e.target.value\n : e.target.textContent !== undefined\n ? e.target.textContent\n : e.target.innerText;\n if (value != null && value.trim().length >= this.typeaheadMinLength) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(e.target.value);\n }\n else {\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(false);\n this.hide();\n }\n }\n onChange(event) {\n if (this._container) {\n // esc\n if (event.keyCode === 27 || event.key === 'Escape') {\n this.hide();\n return;\n }\n // up\n if (event.keyCode === 38 || event.key === 'ArrowUp') {\n this.isActiveItemChanged = true;\n this._container.prevActiveMatch();\n return;\n }\n // down\n if (event.keyCode === 40 || event.key === 'ArrowDown') {\n this.isActiveItemChanged = true;\n this._container.nextActiveMatch();\n return;\n }\n // enter\n if (event.keyCode === 13 || event.key === 'Enter') {\n this._container.selectActiveMatch();\n return;\n }\n }\n }\n onFocus() {\n this.isFocused = true;\n // add setTimeout to fix issue #5251\n // to get and emit updated value if it's changed on focus\n setTimeout(() => {\n if (this.typeaheadMinLength === 0) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(this.element.nativeElement.value || '');\n }\n }, 0);\n }\n onBlur() {\n this.isFocused = false;\n if (this._container && !this._container.isFocused) {\n this.typeaheadOnBlur.emit(this._container.active);\n }\n if (!this.container && this._matches?.length === 0) {\n this.typeaheadOnBlur.emit(new TypeaheadMatch(this.element.nativeElement.value, this.element.nativeElement.value, false));\n }\n }\n onKeydown(event) {\n // no container - no problems\n if (!this._container) {\n return;\n }\n if (event.keyCode === 9 || event.key === 'Tab') {\n this.onBlur();\n }\n if (event.keyCode === 9 || event.key === 'Tab' || event.keyCode === 13 || event.key === 'Enter') {\n event.preventDefault();\n if (this.typeaheadSelectFirstItem) {\n this._container.selectActiveMatch();\n return;\n }\n if (!this.typeaheadSelectFirstItem) {\n this._container.selectActiveMatch(this.isActiveItemChanged);\n this.isActiveItemChanged = false;\n this.hide();\n }\n }\n }\n changeModel(match) {\n if (!match) {\n return;\n }\n let valueStr;\n if (this.typeaheadMultipleSearch && this._allEnteredValue) {\n const tokens = this._allEnteredValue.split(new RegExp(`([${this.typeaheadMultipleSearchDelimiters}]+)`));\n this._allEnteredValue = tokens\n .slice(0, tokens.length - 1)\n .concat(match.value)\n .join('');\n valueStr = this._allEnteredValue;\n }\n else {\n valueStr = match.value;\n }\n this.ngControl.viewToModelUpdate(valueStr);\n this.ngControl.control?.setValue(valueStr);\n this.changeDetection.markForCheck();\n this.hide();\n }\n show() {\n this._typeahead\n .attach(TypeaheadContainerComponent)\n .to(this.container)\n .position({ attachment: `${this.dropup ? 'top' : 'bottom'} left` })\n .show({\n typeaheadRef: this,\n placement: this.placement,\n animation: false,\n dropup: this.dropup\n });\n this._outsideClickListener = this.renderer.listen('document', 'click', (event) => {\n if (this.typeaheadMinLength === 0 && this.element.nativeElement.contains(event.target)) {\n return;\n }\n if (!this.typeaheadHideResultsOnBlur || this.element.nativeElement.contains(event.target)) {\n return;\n }\n this.onOutsideClick();\n });\n if (!this._typeahead.instance || !this.ngControl.control) {\n return;\n }\n this._container = this._typeahead.instance;\n this._container.parent = this;\n // This improves the speed as it won't have to be done for each list item\n const normalizedQuery = (this.typeaheadLatinize ? latinize(this.ngControl.control.value) : this.ngControl.control.value)\n .toString()\n .toLowerCase();\n this._container.query = this.tokenizeQuery(normalizedQuery);\n this._container.matches = this._matches;\n this.element.nativeElement.focus();\n this._container.activeChangeEvent.subscribe((activeId) => {\n this.activeDescendant = activeId;\n this.changeDetection.markForCheck();\n });\n this.isOpen = true;\n }\n hide() {\n if (this._typeahead.isShown) {\n this._typeahead.hide();\n this._outsideClickListener();\n this._container = void 0;\n this.isOpen = false;\n this.changeDetection.markForCheck();\n }\n this.typeaheadOnPreview.emit();\n }\n onOutsideClick() {\n if (this._container && !this._container.isFocused) {\n this.hide();\n }\n }\n ngOnDestroy() {\n // clean up subscriptions\n for (const sub of this._subscriptions) {\n sub.unsubscribe();\n }\n this._typeahead.dispose();\n }\n asyncActions() {\n this._subscriptions.push(this.keyUpEventEmitter\n .pipe(debounceTime(this.typeaheadWaitMs), tap((value) => (this._allEnteredValue = value)), switchMap(() => {\n if (!this.typeahead) {\n return EMPTY;\n }\n return this.typeahead;\n }))\n .subscribe((matches) => {\n this.finalizeAsyncCall(matches);\n }));\n }\n syncActions() {\n this._subscriptions.push(this.keyUpEventEmitter\n .pipe(debounceTime(this.typeaheadWaitMs), mergeMap((value) => {\n this._allEnteredValue = value;\n const normalizedQuery = this.normalizeQuery(value);\n if (!this.typeahead) {\n return EMPTY;\n }\n const typeahead = isObservable(this.typeahead) ? this.typeahead : from(this.typeahead);\n return typeahead.pipe(filter((option) => {\n return !!option && this.testMatch(this.normalizeOption(option), normalizedQuery);\n }), toArray());\n }))\n .subscribe((matches) => {\n this.finalizeAsyncCall(matches);\n }));\n }\n normalizeOption(option) {\n const optionValue = getValueFromObject(option, this.typeaheadOptionField);\n const normalizedOption = this.typeaheadLatinize ? latinize(optionValue) : optionValue;\n return normalizedOption.toLowerCase();\n }\n tokenizeQuery(currentQuery) {\n let query = currentQuery;\n if (this.typeaheadMultipleSearch && this.typeaheadSingleWords) {\n if (!this.haveCommonCharacters(`${this.typeaheadPhraseDelimiters}${this.typeaheadWordDelimiters}`, this.typeaheadMultipleSearchDelimiters)) {\n // single words and multiple search delimiters are different, can be used together\n query = tokenize(query, this.typeaheadWordDelimiters, this.typeaheadPhraseDelimiters, this.typeaheadMultipleSearchDelimiters);\n }\n }\n else if (this.typeaheadSingleWords) {\n query = tokenize(query, this.typeaheadWordDelimiters, this.typeaheadPhraseDelimiters);\n }\n else {\n // multiple searches\n query = tokenize(query, void 0, void 0, this.typeaheadMultipleSearchDelimiters);\n }\n return query;\n }\n normalizeQuery(value) {\n // If singleWords, break model here to not be doing extra work on each iteration\n let normalizedQuery = (this.typeaheadLatinize ? latinize(value) : value)\n .toString()\n .toLowerCase();\n normalizedQuery = this.tokenizeQuery(normalizedQuery);\n return normalizedQuery;\n }\n testMatch(match, test) {\n let spaceLength;\n if (typeof test === 'object') {\n spaceLength = test.length;\n for (let i = 0; i < spaceLength; i += 1) {\n if (test[i].length > 0 && match.indexOf(test[i]) < 0) {\n return false;\n }\n }\n return true;\n }\n return match.indexOf(test) >= 0;\n }\n finalizeAsyncCall(matches) {\n this.prepareMatches(matches || []);\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(!this.hasMatches());\n if (!this.hasMatches()) {\n this.hide();\n return;\n }\n if (!this.isFocused && this.cancelRequestOnFocusLost) {\n return;\n }\n if (this._container && this.ngControl.control) {\n // fix: remove usage of ngControl internals\n const _controlValue = (this.typeaheadLatinize ? latinize(this.ngControl.control.value) : this.ngControl.control.value) || '';\n // This improves the speed as it won't have to be done for each list item\n const normalizedQuery = _controlValue.toString().toLowerCase();\n this._container.query = this.tokenizeQuery(normalizedQuery);\n this._container.matches = this._matches;\n }\n else {\n this.show();\n }\n }\n prepareMatches(options) {\n const limited = options.slice(0, this.typeaheadOptionsLimit);\n const sorted = !this.typeaheadOrderBy ? limited : this.orderMatches(limited);\n if (this.typeaheadGroupField) {\n let matches = [];\n // extract all group names\n const groups = sorted\n .map((option) => getValueFromObject(option, this.typeaheadGroupField))\n .filter((v, i, a) => a.indexOf(v) === i);\n groups.forEach((group) => {\n // add group header to array of matches\n matches.push(new TypeaheadMatch(group, group, true));\n // add each item of group to array of matches\n matches = matches.concat(sorted\n .filter((option) => getValueFromObject(option, this.typeaheadGroupField) === group)\n .map((option) => new TypeaheadMatch(option, getValueFromObject(option, this.typeaheadOptionField))));\n });\n this._matches = matches;\n }\n else {\n this._matches = sorted.map(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (option) => new TypeaheadMatch(option, getValueFromObject(option, this.typeaheadOptionField)));\n }\n }\n orderMatches(options) {\n if (!options.length) {\n return options;\n }\n if (this.typeaheadOrderBy !== null &&\n this.typeaheadOrderBy !== undefined &&\n typeof this.typeaheadOrderBy === 'object' &&\n Object.keys(this.typeaheadOrderBy).length === 0) {\n console.error('Field and direction properties for typeaheadOrderBy have to be set according to documentation!');\n return options;\n }\n const { field, direction } = this.typeaheadOrderBy || {};\n if (!direction || !(direction === 'asc' || direction === 'desc')) {\n console.error('typeaheadOrderBy direction has to equal \"asc\" or \"desc\". Please follow the documentation.');\n return options;\n }\n if (typeof options[0] === 'string') {\n return direction === 'asc' ? options.sort() : options.sort().reverse();\n }\n if (!field || typeof field !== 'string') {\n console.error('typeaheadOrderBy field has to set according to the documentation.');\n return options;\n }\n return options.sort((a, b) => {\n const stringA = getValueFromObject(a, field);\n const stringB = getValueFromObject(b, field);\n if (stringA < stringB) {\n return direction === 'asc' ? -1 : 1;\n }\n if (stringA > stringB) {\n return direction === 'asc' ? 1 : -1;\n }\n return 0;\n });\n }\n hasMatches() {\n return this._matches.length > 0;\n }\n checkDelimitersConflict() {\n if (this.typeaheadMultipleSearch &&\n this.typeaheadSingleWords &&\n this.haveCommonCharacters(`${this.typeaheadPhraseDelimiters}${this.typeaheadWordDelimiters}`, this.typeaheadMultipleSearchDelimiters)) {\n throw new Error(`Delimiters used in typeaheadMultipleSearchDelimiters must be different\n from delimiters used in typeaheadWordDelimiters (current value: ${this.typeaheadWordDelimiters}) and\n typeaheadPhraseDelimiters (current value: ${this.typeaheadPhraseDelimiters}).\n Please refer to the documentation`);\n }\n }\n haveCommonCharacters(str1, str2) {\n for (let i = 0; i < str1.length; i++) {\n if (str1.charAt(i).indexOf(str2) > -1) {\n return true;\n }\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TypeaheadDirective, deps: [{ token: i1$1.ComponentLoaderFactory }, { token: TypeaheadConfig }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i3.NgControl }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.4\", type: TypeaheadDirective, selector: \"[typeahead]\", inputs: { typeahead: \"typeahead\", typeaheadMinLength: \"typeaheadMinLength\", adaptivePosition: \"adaptivePosition\", isAnimated: \"isAnimated\", typeaheadWaitMs: \"typeaheadWaitMs\", typeaheadOptionsLimit: \"typeaheadOptionsLimit\", typeaheadOptionField: \"typeaheadOptionField\", typeaheadGroupField: \"typeaheadGroupField\", typeaheadOrderBy: \"typeaheadOrderBy\", typeaheadAsync: \"typeaheadAsync\", typeaheadLatinize: \"typeaheadLatinize\", typeaheadSingleWords: \"typeaheadSingleWords\", typeaheadWordDelimiters: \"typeaheadWordDelimiters\", typeaheadMultipleSearch: \"typeaheadMultipleSearch\", typeaheadMultipleSearchDelimiters: \"typeaheadMultipleSearchDelimiters\", typeaheadPhraseDelimiters: \"typeaheadPhraseDelimiters\", typeaheadItemTemplate: \"typeaheadItemTemplate\", optionsListTemplate: \"optionsListTemplate\", typeaheadScrollable: \"typeaheadScrollable\", typeaheadOptionsInScrollableView: \"typeaheadOptionsInScrollableView\", typeaheadHideResultsOnBlur: \"typeaheadHideResultsOnBlur\", typeaheadSelectFirstItem: \"typeaheadSelectFirstItem\", typeaheadIsFirstItemActive: \"typeaheadIsFirstItemActive\", container: \"container\", dropup: \"dropup\" }, outputs: { typeaheadLoading: \"typeaheadLoading\", typeaheadNoResults: \"typeaheadNoResults\", typeaheadOnSelect: \"typeaheadOnSelect\", typeaheadOnPreview: \"typeaheadOnPreview\", typeaheadOnBlur: \"typeaheadOnBlur\" }, host: { listeners: { \"input\": \"onInput($event)\", \"keyup\": \"onChange($event)\", \"click\": \"onFocus()\", \"focus\": \"onFocus()\", \"blur\": \"onBlur()\", \"keydown\": \"onKeydown($event)\" }, properties: { \"attr.aria-activedescendant\": \"activeDescendant\", \"attr.aria-owns\": \"isOpen ? this._container.popupId : null\", \"attr.aria-expanded\": \"isOpen\", \"attr.aria-autocomplete\": \"list\" } }, exportAs: [\"bs-typeahead\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TypeaheadDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[typeahead]',\n exportAs: 'bs-typeahead',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.aria-activedescendant]': 'activeDescendant',\n '[attr.aria-owns]': 'isOpen ? this._container.popupId : null',\n '[attr.aria-expanded]': 'isOpen',\n '[attr.aria-autocomplete]': 'list'\n }\n }]\n }], ctorParameters: () => [{ type: i1$1.ComponentLoaderFactory }, { type: TypeaheadConfig }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i3.NgControl }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }], propDecorators: { typeahead: [{\n type: Input\n }], typeaheadMinLength: [{\n type: Input\n }], adaptivePosition: [{\n type: Input\n }], isAnimated: [{\n type: Input\n }], typeaheadWaitMs: [{\n type: Input\n }], typeaheadOptionsLimit: [{\n type: Input\n }], typeaheadOptionField: [{\n type: Input\n }], typeaheadGroupField: [{\n type: Input\n }], typeaheadOrderBy: [{\n type: Input\n }], typeaheadAsync: [{\n type: Input\n }], typeaheadLatinize: [{\n type: Input\n }], typeaheadSingleWords: [{\n type: Input\n }], typeaheadWordDelimiters: [{\n type: Input\n }], typeaheadMultipleSearch: [{\n type: Input\n }], typeaheadMultipleSearchDelimiters: [{\n type: Input\n }], typeaheadPhraseDelimiters: [{\n type: Input\n }], typeaheadItemTemplate: [{\n type: Input\n }], optionsListTemplate: [{\n type: Input\n }], typeaheadScrollable: [{\n type: Input\n }], typeaheadOptionsInScrollableView: [{\n type: Input\n }], typeaheadHideResultsOnBlur: [{\n type: Input\n }], typeaheadSelectFirstItem: [{\n type: Input\n }], typeaheadIsFirstItemActive: [{\n type: Input\n }], typeaheadLoading: [{\n type: Output\n }], typeaheadNoResults: [{\n type: Output\n }], typeaheadOnSelect: [{\n type: Output\n }], typeaheadOnPreview: [{\n type: Output\n }], typeaheadOnBlur: [{\n type: Output\n }], container: [{\n type: Input\n }], dropup: [{\n type: Input\n }], \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onInput: [{\n type: HostListener,\n args: ['input', ['$event']]\n }], onChange: [{\n type: HostListener,\n args: ['keyup', ['$event']]\n }], onFocus: [{\n type: HostListener,\n args: ['click']\n }, {\n type: HostListener,\n args: ['focus']\n }], onBlur: [{\n type: HostListener,\n args: ['blur']\n }], onKeydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n\nclass TypeaheadModule {\n static forRoot() {\n return {\n ngModule: TypeaheadModule,\n providers: [ComponentLoaderFactory, PositioningService]\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TypeaheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.4\", ngImport: i0, type: TypeaheadModule, declarations: [TypeaheadContainerComponent, TypeaheadDirective], imports: [CommonModule], exports: [TypeaheadContainerComponent, TypeaheadDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TypeaheadModule, imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: TypeaheadModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [TypeaheadContainerComponent, TypeaheadDirective],\n exports: [TypeaheadContainerComponent, TypeaheadDirective]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { TypeaheadConfig, TypeaheadContainerComponent, TypeaheadDirective, TypeaheadMatch, TypeaheadModule, TypeaheadOptions, escapeRegexp, getValueFromObject, latinMap, latinize, tokenize };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, Input, Injectable, NgModule } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\nclass BarComponent {\n constructor(el, renderer) {\n this.el = el;\n this.renderer = renderer;\n /** maximum total value of progress element */\n this.max = 100;\n /** current value of progress bar */\n this.value = 0;\n /** if `true` changing value of progress bar will be animated */\n this.animate = false;\n /** If `true`, striped classes are applied */\n this.striped = false;\n /** provide one of the four supported contextual classes: `success`, `info`, `warning`, `danger` */\n this.type = 'info';\n this.percent = 100;\n }\n ngOnChanges(changes) {\n if (changes[\"value\"] || changes[\"max\"]) {\n this.percent = 100 * (Number(changes[\"value\"]?.currentValue || this.value)\n / Number((changes[\"max\"]?.currentValue || this.max) || 100));\n }\n if (changes[\"type\"]) {\n this.applyTypeClasses();\n }\n }\n applyTypeClasses() {\n if (this._prevType) {\n const barTypeClass = `progress-bar-${this._prevType}`;\n const bgClass = `bg-${this._prevType}`;\n this.renderer.removeClass(this.el.nativeElement, barTypeClass);\n this.renderer.removeClass(this.el.nativeElement, bgClass);\n this._prevType = void 0;\n }\n if (this.type) {\n const barTypeClass = `progress-bar-${this.type}`;\n const bgClass = `bg-${this.type}`;\n this.renderer.addClass(this.el.nativeElement, barTypeClass);\n this.renderer.addClass(this.el.nativeElement, bgClass);\n this._prevType = this.type;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BarComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: BarComponent, selector: \"bar\", inputs: { max: \"max\", value: \"value\", animate: \"animate\", striped: \"striped\", type: \"type\" }, host: { attributes: { \"role\": \"progressbar\", \"aria-valuemin\": \"0\" }, properties: { \"class.progress-bar\": \"true\", \"class.progress-bar-animated\": \"animate\", \"class.progress-bar-striped\": \"striped\", \"attr.aria-valuenow\": \"value\", \"attr.aria-valuetext\": \"percent ? percent.toFixed(0) + \\\"%\\\" : \\\"\\\"\", \"attr.aria-valuemax\": \"max\", \"style.height.%\": \"\\\"100\\\"\", \"style.width.%\": \"percent\" } }, usesOnChanges: true, ngImport: i0, template: \"\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: BarComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar', changeDetection: ChangeDetectionStrategy.OnPush, host: {\n role: 'progressbar',\n 'aria-valuemin': '0',\n '[class.progress-bar]': 'true',\n '[class.progress-bar-animated]': 'animate',\n '[class.progress-bar-striped]': 'striped',\n '[attr.aria-valuenow]': 'value',\n '[attr.aria-valuetext]': 'percent ? percent.toFixed(0) + \"%\" : \"\"',\n '[attr.aria-valuemax]': 'max',\n '[style.height.%]': '\"100\"',\n '[style.width.%]': 'percent'\n }, template: \"\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { max: [{\n type: Input\n }], value: [{\n type: Input\n }], animate: [{\n type: Input\n }], striped: [{\n type: Input\n }], type: [{\n type: Input\n }] } });\n\nclass ProgressbarConfig {\n constructor() {\n /** if `true` changing value of progress bar will be animated */\n this.animate = false;\n /** maximum total value of progress element */\n this.max = 100;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ProgressbarConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ProgressbarConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ProgressbarConfig, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n\nclass ProgressbarComponent {\n /** current value of progress bar. Could be a number or array of objects\n * like {\"value\":15,\"type\":\"info\",\"label\":\"15 %\"}\n */\n set value(value) {\n this.isStacked = Array.isArray(value);\n if (typeof value === 'number') {\n this._value = value;\n this._values = void 0;\n }\n else {\n this._value = void 0;\n this._values = value;\n }\n }\n constructor(config) {\n /** maximum total value of progress element */\n this.max = 100;\n /** if `true` changing value of progress bar will be animated */\n this.animate = false;\n /** If `true`, striped classes are applied */\n this.striped = false;\n this.isStacked = false;\n this._value = 0;\n Object.assign(this, config);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ProgressbarComponent, deps: [{ token: ProgressbarConfig }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.4\", type: ProgressbarComponent, selector: \"progressbar\", inputs: { max: \"max\", animate: \"animate\", striped: \"striped\", type: \"type\", value: \"value\" }, host: { properties: { \"class.progress\": \"true\", \"attr.max\": \"max\" } }, ngImport: i0, template: \"\\n\\n\\n \\n \\n \\n\\n\\n\\n {{ item.label }}\\n\\n\", styles: [\":host{width:100%;display:flex}\\n\"], dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: BarComponent, selector: \"bar\", inputs: [\"max\", \"value\", \"animate\", \"striped\", \"type\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ProgressbarComponent, decorators: [{\n type: Component,\n args: [{ selector: 'progressbar', changeDetection: ChangeDetectionStrategy.OnPush, host: {\n '[class.progress]': 'true',\n '[attr.max]': 'max'\n }, template: \"\\n\\n\\n \\n \\n \\n\\n\\n\\n {{ item.label }}\\n\\n\", styles: [\":host{width:100%;display:flex}\\n\"] }]\n }], ctorParameters: () => [{ type: ProgressbarConfig }], propDecorators: { max: [{\n type: Input\n }], animate: [{\n type: Input\n }], striped: [{\n type: Input\n }], type: [{\n type: Input\n }], value: [{\n type: Input\n }] } });\n\nclass ProgressbarModule {\n static forRoot() {\n return { ngModule: ProgressbarModule, providers: [] };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ProgressbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.4\", ngImport: i0, type: ProgressbarModule, declarations: [BarComponent, ProgressbarComponent], imports: [CommonModule], exports: [BarComponent, ProgressbarComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ProgressbarModule, imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.4\", ngImport: i0, type: ProgressbarModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [BarComponent, ProgressbarComponent],\n exports: [BarComponent, ProgressbarComponent]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BarComponent, ProgressbarComponent, ProgressbarConfig, ProgressbarModule };\n","import { asyncScheduler } from '../scheduler/async';\nimport { throttle } from './throttle';\nimport { timer } from '../observable/timer';\nexport function throttleTime(duration, scheduler = asyncScheduler, config) {\n const duration$ = timer(duration, scheduler);\n return throttle(() => duration$, config);\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function throttle(durationSelector, config) {\n return operate((source, subscriber) => {\n const { leading = true, trailing = false } = config !== null && config !== void 0 ? config : {};\n let hasValue = false;\n let sendValue = null;\n let throttled = null;\n let isComplete = false;\n const endThrottling = () => {\n throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe();\n throttled = null;\n if (trailing) {\n send();\n isComplete && subscriber.complete();\n }\n };\n const cleanupThrottling = () => {\n throttled = null;\n isComplete && subscriber.complete();\n };\n const startThrottle = (value) => (throttled = innerFrom(durationSelector(value)).subscribe(createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));\n const send = () => {\n if (hasValue) {\n hasValue = false;\n const value = sendValue;\n sendValue = null;\n subscriber.next(value);\n !isComplete && startThrottle(value);\n }\n };\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n sendValue = value;\n !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));\n }, () => {\n isComplete = true;\n !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();\n }));\n });\n}\n","// so it doesn't throw if no window or matchMedia\r\nvar w = typeof window !== 'undefined' ? window : { screen: {}, navigator: {} };\r\nvar matchMedia = (w.matchMedia || (function () { return ({ matches: false }); })).bind(w);\r\n// passive events test\r\n// adapted from https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\r\nvar passiveOptionAccessed = false;\r\nvar options = {\r\n get passive() {\r\n return (passiveOptionAccessed = true);\r\n },\r\n};\r\n// have to set and remove a no-op listener instead of null\r\n// (which was used previously), because Edge v15 throws an error\r\n// when providing a null callback.\r\n// https://github.com/rafgraph/detect-passive-events/pull/3\r\n// eslint-disable-next-line @typescript-eslint/no-empty-function\r\nvar noop = function () { };\r\nw.addEventListener && w.addEventListener('p', noop, options);\r\nw.removeEventListener && w.removeEventListener('p', noop, false);\r\nvar supportsPassiveEvents = passiveOptionAccessed;\r\nvar supportsPointerEvents = 'PointerEvent' in w;\r\nvar onTouchStartInWindow = 'ontouchstart' in w;\r\nvar touchEventInWindow = 'TouchEvent' in w;\r\n// onTouchStartInWindow is the old-old-legacy way to determine a touch device\r\n// and many websites interpreted it to mean that the device is a touch only phone,\r\n// so today browsers on a desktop/laptop computer with a touch screen (primary input mouse)\r\n// have onTouchStartInWindow as false (to prevent from being confused with a\r\n// touchOnly phone) even though they support the TouchEvents API, so need to check\r\n// both onTouchStartInWindow and touchEventInWindow for TouchEvent support,\r\n// however, some browsers (chromium) support the TouchEvents API even when running on\r\n// a mouse only device (touchEventInWindow true, but onTouchStartInWindow false)\r\n// so the touchEventInWindow check needs to include an coarse pointer media query\r\nvar supportsTouchEvents = onTouchStartInWindow ||\r\n (touchEventInWindow && matchMedia('(any-pointer: coarse)').matches);\r\nvar hasTouch = (w.navigator.maxTouchPoints || 0) > 0 || supportsTouchEvents;\r\n// userAgent is used as a backup to correct for known device/browser bugs\r\n// and when the browser doesn't support interaction media queries (pointer and hover)\r\n// see https://caniuse.com/css-media-interaction\r\nvar userAgent = w.navigator.userAgent || '';\r\n// iPads now support a mouse that can hover, however the media query interaction\r\n// feature results always say iPads only have a coarse pointer that can't hover\r\n// even when a mouse is connected (anyFine and anyHover are always false),\r\n// this unfortunately indicates a touch only device but iPads should\r\n// be classified as a hybrid device, so determine if it is an iPad\r\n// to indicate it should be treated as a hybrid device with anyHover true\r\nvar isIPad = matchMedia('(pointer: coarse)').matches &&\r\n // both iPad and iPhone can \"request desktop site\", which sets the userAgent to Macintosh\r\n // so need to check both userAgents to determine if it is an iOS device\r\n // and screen size to separate iPad from iPhone\r\n /iPad|Macintosh/.test(userAgent) &&\r\n Math.min(w.screen.width || 0, w.screen.height || 0) >= 768;\r\nvar hasCoarsePrimaryPointer = (matchMedia('(pointer: coarse)').matches ||\r\n // if the pointer is not coarse and not fine then the browser doesn't support\r\n // interaction media queries (see https://caniuse.com/css-media-interaction)\r\n // so if it has onTouchStartInWindow assume it has a coarse primary pointer\r\n (!matchMedia('(pointer: fine)').matches && onTouchStartInWindow)) &&\r\n // bug in firefox (as of v81) on hybrid windows devices where the interaction media queries\r\n // always indicate a touch only device (only has a coarse pointer that can't hover)\r\n // so assume that the primary pointer is not coarse for firefox windows\r\n !/Windows.*Firefox/.test(userAgent);\r\nvar hasAnyHoverOrAnyFinePointer = matchMedia('(any-pointer: fine)').matches ||\r\n matchMedia('(any-hover: hover)').matches ||\r\n // iPads might have an input device that can hover, so assume it has anyHover\r\n isIPad ||\r\n // if no onTouchStartInWindow then the browser is indicating that it is not a touch only device\r\n // see above note for supportsTouchEvents\r\n !onTouchStartInWindow;\r\n// a hybrid device is one that both hasTouch and\r\n// any input can hover or has a fine pointer, or the primary pointer is not coarse\r\n// if it's not a hybrid, then if it hasTouch it's touchOnly, otherwise it's mouseOnly\r\nvar deviceType = hasTouch && (hasAnyHoverOrAnyFinePointer || !hasCoarsePrimaryPointer)\r\n ? 'hybrid'\r\n : hasTouch\r\n ? 'touchOnly'\r\n : 'mouseOnly';\r\nvar primaryInput = deviceType === 'mouseOnly'\r\n ? 'mouse'\r\n : deviceType === 'touchOnly'\r\n ? 'touch'\r\n : // if the device is a hybrid, then if the primary pointer is coarse\r\n // assume the primaryInput is touch, otherwise assume it's mouse\r\n hasCoarsePrimaryPointer\r\n ? 'touch'\r\n : 'mouse';\n\nexport { deviceType, primaryInput, supportsPassiveEvents, supportsPointerEvents, supportsTouchEvents };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Directive, HostBinding, Inject, Optional, Component, Input, forwardRef, EventEmitter, ChangeDetectionStrategy, Output, ViewChild, ContentChild, HostListener, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { throttleTime, tap, distinctUntilChanged, filter } from 'rxjs/operators';\nimport { supportsPassiveEvents } from 'detect-passive-events';\n\n/** Label type */\nvar LabelType;\n(function (LabelType) {\n /** Label above low pointer */\n LabelType[LabelType[\"Low\"] = 0] = \"Low\";\n /** Label above high pointer */\n LabelType[LabelType[\"High\"] = 1] = \"High\";\n /** Label for minimum slider value */\n LabelType[LabelType[\"Floor\"] = 2] = \"Floor\";\n /** Label for maximum slider value */\n LabelType[LabelType[\"Ceil\"] = 3] = \"Ceil\";\n /** Label below legend tick */\n LabelType[LabelType[\"TickValue\"] = 4] = \"TickValue\";\n})(LabelType || (LabelType = {}));\n/** Slider options */\nclass Options {\n /** Minimum value for a slider.\n Not applicable when using stepsArray. */\n floor = 0;\n /** Maximum value for a slider.\n Not applicable when using stepsArray. */\n ceil = null;\n /** Step between each value.\n Not applicable when using stepsArray. */\n step = 1;\n /** The minimum range authorized on the slider.\n Applies to range slider only.\n When using stepsArray, expressed as index into stepsArray. */\n minRange = null;\n /** The maximum range authorized on the slider.\n Applies to range slider only.\n When using stepsArray, expressed as index into stepsArray. */\n maxRange = null;\n /** Set to true to have a push behavior. When the min handle goes above the max,\n the max is moved as well (and vice-versa). The range between min and max is\n defined by the step option (defaults to 1) and can also be overriden by\n the minRange option. Applies to range slider only. */\n pushRange = false;\n /** The minimum value authorized on the slider.\n When using stepsArray, expressed as index into stepsArray. */\n minLimit = null;\n /** The maximum value authorized on the slider.\n When using stepsArray, expressed as index into stepsArray. */\n maxLimit = null;\n /** Custom translate function. Use this if you want to translate values displayed\n on the slider. */\n translate = null;\n /** Custom function for combining overlapping labels in range slider.\n It takes the min and max values (already translated with translate fuction)\n and should return how these two values should be combined.\n If not provided, the default function will join the two values with\n ' - ' as separator. */\n combineLabels = null;\n /** Use to display legend under ticks (thus, it needs to be used along with\n showTicks or showTicksValues). The function will be called with each tick\n value and returned content will be displayed under the tick as a legend.\n If the returned value is null, then no legend is displayed under\n the corresponding tick.You can also directly provide the legend values\n in the stepsArray option. */\n getLegend = null;\n /** Use to display a custom legend of a stepItem from stepsArray.\n It will be the same as getLegend but for stepsArray. */\n getStepLegend = null;\n /** If you want to display a slider with non linear/number steps.\n Just pass an array with each slider value and that's it; the floor, ceil and step settings\n of the slider will be computed automatically.\n By default, the value model and valueHigh model values will be the value of the selected item\n in the stepsArray.\n They can also be bound to the index of the selected item by setting the bindIndexForStepsArray\n option to true. */\n stepsArray = null;\n /** Set to true to bind the index of the selected item to value model and valueHigh model. */\n bindIndexForStepsArray = false;\n /** When set to true and using a range slider, the range can be dragged by the selection bar.\n Applies to range slider only. */\n draggableRange = false;\n /** Same as draggableRange but the slider range can't be changed.\n Applies to range slider only. */\n draggableRangeOnly = false;\n /** Set to true to always show the selection bar before the slider handle. */\n showSelectionBar = false;\n /** Set to true to always show the selection bar after the slider handle. */\n showSelectionBarEnd = false;\n /** Set a number to draw the selection bar between this value and the slider handle.\n When using stepsArray, expressed as index into stepsArray. */\n showSelectionBarFromValue = null;\n /** Only for range slider. Set to true to visualize in different colour the areas\n on the left/right (top/bottom for vertical range slider) of selection bar between the handles. */\n showOuterSelectionBars = false;\n /** Set to true to hide pointer labels */\n hidePointerLabels = false;\n /** Set to true to hide min / max labels */\n hideLimitLabels = false;\n /** Set to false to disable the auto-hiding behavior of the limit labels. */\n autoHideLimitLabels = true;\n /** Set to true to make the slider read-only. */\n readOnly = false;\n /** Set to true to disable the slider. */\n disabled = false;\n /** Set to true to display a tick for each step of the slider. */\n showTicks = false;\n /** Set to true to display a tick and the step value for each step of the slider.. */\n showTicksValues = false;\n /* The step between each tick to display. If not set, the step value is used.\n Not used when ticksArray is specified. */\n tickStep = null;\n /* The step between displaying each tick step value.\n If not set, then tickStep or step is used, depending on which one is set. */\n tickValueStep = null;\n /** Use to display ticks at specific positions.\n The array contains the index of the ticks that should be displayed.\n For example, [0, 1, 5] will display a tick for the first, second and sixth values. */\n ticksArray = null;\n /** Used to display a tooltip when a tick is hovered.\n Set to a function that returns the tooltip content for a given value. */\n ticksTooltip = null;\n /** Same as ticksTooltip but for ticks values. */\n ticksValuesTooltip = null;\n /** Set to true to display the slider vertically.\n The slider will take the full height of its parent.\n Changing this value at runtime is not currently supported. */\n vertical = false;\n /** Function that returns the current color of the selection bar.\n If your color won't change, don't use this option but set it through CSS.\n If the returned color depends on a model value (either value or valueHigh),\n you should use the argument passed to the function.\n Indeed, when the function is called, there is no certainty that the model\n has already been updated.*/\n getSelectionBarColor = null;\n /** Function that returns the color of a tick. showTicks must be enabled. */\n getTickColor = null;\n /** Function that returns the current color of a pointer.\n If your color won't change, don't use this option but set it through CSS.\n If the returned color depends on a model value (either value or valueHigh),\n you should use the argument passed to the function.\n Indeed, when the function is called, there is no certainty that the model has already been updated.\n To handle range slider pointers independently, you should evaluate pointerType within the given\n function where \"min\" stands for value model and \"max\" for valueHigh model values. */\n getPointerColor = null;\n /** Handles are focusable (on click or with tab) and can be modified using the following keyboard controls:\n Left/bottom arrows: -1\n Right/top arrows: +1\n Page-down: -10%\n Page-up: +10%\n Home: minimum value\n End: maximum value\n */\n keyboardSupport = true;\n /** If you display the slider in an element that uses transform: scale(0.5), set the scale value to 2\n so that the slider is rendered properly and the events are handled correctly. */\n scale = 1;\n /** If you display the slider in an element that uses transform: rotate(90deg), set the rotate value to 90\n so that the slider is rendered properly and the events are handled correctly. Value is in degrees. */\n rotate = 0;\n /** Set to true to force the value(s) to be rounded to the step, even when modified from the outside.\n When set to false, if the model values are modified from outside the slider, they are not rounded\n and can be between two steps. */\n enforceStep = true;\n /** Set to true to force the value(s) to be normalised to allowed range (floor to ceil), even when modified from the outside.\n When set to false, if the model values are modified from outside the slider, and they are outside allowed range,\n the slider may be rendered incorrectly. However, setting this to false may be useful if you want to perform custom normalisation. */\n enforceRange = true;\n /** Set to true to force the value(s) to be rounded to the nearest step value, even when modified from the outside.\n When set to false, if the model values are modified from outside the slider, and they are outside allowed range,\n the slider may be rendered incorrectly. However, setting this to false may be useful if you want to perform custom normalisation. */\n enforceStepsArray = true;\n /** Set to true to prevent to user from switching the min and max handles. Applies to range slider only. */\n noSwitching = false;\n /** Set to true to only bind events on slider handles. */\n onlyBindHandles = false;\n /** Set to true to show graphs right to left.\n If vertical is true it will be from top to bottom and left / right arrow functions reversed. */\n rightToLeft = false;\n /** Set to true to reverse keyboard navigation:\n Right/top arrows: -1\n Left/bottom arrows: +1\n Page-up: -10%\n Page-down: +10%\n End: minimum value\n Home: maximum value\n */\n reversedControls = false;\n /** Set to true to keep the slider labels inside the slider bounds. */\n boundPointerLabels = true;\n /** Set to true to use a logarithmic scale to display the slider. */\n logScale = false;\n /** Function that returns the position on the slider for a given value.\n The position must be a percentage between 0 and 1.\n The function should be monotonically increasing or decreasing; otherwise the slider may behave incorrectly. */\n customValueToPosition = null;\n /** Function that returns the value for a given position on the slider.\n The position is a percentage between 0 and 1.\n The function should be monotonically increasing or decreasing; otherwise the slider may behave incorrectly. */\n customPositionToValue = null;\n /** Precision limit for calculated values.\n Values used in calculations will be rounded to this number of significant digits\n to prevent accumulating small floating-point errors. */\n precisionLimit = 12;\n /** Use to display the selection bar as a gradient.\n The given object must contain from and to properties which are colors. */\n selectionBarGradient = null;\n /** Use to add a label directly to the slider for accessibility. Adds the aria-label attribute. */\n ariaLabel = 'ngx-slider';\n /** Use instead of ariaLabel to reference the id of an element which will be used to label the slider.\n Adds the aria-labelledby attribute. */\n ariaLabelledBy = null;\n /** Use to add a label directly to the slider range for accessibility. Adds the aria-label attribute. */\n ariaLabelHigh = 'ngx-slider-max';\n /** Use instead of ariaLabelHigh to reference the id of an element which will be used to label the slider range.\n Adds the aria-labelledby attribute. */\n ariaLabelledByHigh = null;\n /** Use to increase rendering performance. If the value is not provided, the slider calculates the with/height of the handle */\n handleDimension = null;\n /** Use to increase rendering performance. If the value is not provided, the slider calculates the with/height of the bar */\n barDimension = null;\n /** Enable/disable CSS animations */\n animate = true;\n /** Enable/disable CSS animations while moving the slider */\n animateOnMove = false;\n}\nconst AllowUnsafeHtmlInSlider = new InjectionToken('AllowUnsafeHtmlInSlider');\n\n/** Pointer type */\nvar PointerType;\n(function (PointerType) {\n /** Low pointer */\n PointerType[PointerType[\"Min\"] = 0] = \"Min\";\n /** High pointer */\n PointerType[PointerType[\"Max\"] = 1] = \"Max\";\n})(PointerType || (PointerType = {}));\n\nclass ChangeContext {\n value;\n highValue;\n pointerType;\n}\n\n/**\n * Collection of functions to handle conversions/lookups of values\n */\nclass ValueHelper {\n static isNullOrUndefined(value) {\n return value === undefined || value === null;\n }\n static areArraysEqual(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (let i = 0; i < array1.length; ++i) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n static linearValueToPosition(val, minVal, maxVal) {\n const range = maxVal - minVal;\n return (val - minVal) / range;\n }\n static logValueToPosition(val, minVal, maxVal) {\n val = Math.log(val);\n minVal = Math.log(minVal);\n maxVal = Math.log(maxVal);\n const range = maxVal - minVal;\n return (val - minVal) / range;\n }\n static linearPositionToValue(percent, minVal, maxVal) {\n return percent * (maxVal - minVal) + minVal;\n }\n static logPositionToValue(percent, minVal, maxVal) {\n minVal = Math.log(minVal);\n maxVal = Math.log(maxVal);\n const value = percent * (maxVal - minVal) + minVal;\n return Math.exp(value);\n }\n static findStepIndex(modelValue, stepsArray) {\n const differences = stepsArray.map((step) => Math.abs(modelValue - step.value));\n let minDifferenceIndex = 0;\n for (let index = 0; index < stepsArray.length; index++) {\n if (differences[index] !== differences[minDifferenceIndex] && differences[index] < differences[minDifferenceIndex]) {\n minDifferenceIndex = index;\n }\n }\n return minDifferenceIndex;\n }\n}\n\n/** Helper with compatibility functions to support different browsers */\nclass CompatibilityHelper {\n /** Workaround for TouchEvent constructor sadly not being available on all browsers (e.g. Firefox, Safari) */\n static isTouchEvent(event) {\n if (window.TouchEvent !== undefined) {\n return event instanceof TouchEvent;\n }\n return event.touches !== undefined;\n }\n /** Detect presence of ResizeObserver API */\n static isResizeObserverAvailable() {\n return window.ResizeObserver !== undefined;\n }\n}\n\n/** Helper with mathematical functions */\nclass MathHelper {\n /* Round numbers to a given number of significant digits */\n static roundToPrecisionLimit(value, precisionLimit) {\n return +(value.toPrecision(precisionLimit));\n }\n static isModuloWithinPrecisionLimit(value, modulo, precisionLimit) {\n const limit = Math.pow(10, -precisionLimit);\n return Math.abs(value % modulo) <= limit || Math.abs(Math.abs(value % modulo) - modulo) <= limit;\n }\n static clampToRange(value, floor, ceil) {\n return Math.min(Math.max(value, floor), ceil);\n }\n}\n\nclass EventListener {\n eventName = null;\n events = null;\n eventsSubscription = null;\n teardownCallback = null;\n}\n\n/**\n * Helper class to attach event listeners to DOM elements with debounce support using rxjs\n */\nclass EventListenerHelper {\n renderer;\n constructor(renderer) {\n this.renderer = renderer;\n }\n attachPassiveEventListener(nativeElement, eventName, callback, throttleInterval) {\n // Only use passive event listeners if the browser supports it\n if (supportsPassiveEvents !== true) {\n return this.attachEventListener(nativeElement, eventName, callback, throttleInterval);\n }\n // Angular doesn't support passive event handlers (yet), so we need to roll our own code using native functions\n const listener = new EventListener();\n listener.eventName = eventName;\n listener.events = new Subject();\n const observerCallback = (event) => {\n listener.events.next(event);\n };\n nativeElement.addEventListener(eventName, observerCallback, { passive: true, capture: false });\n listener.teardownCallback = () => {\n nativeElement.removeEventListener(eventName, observerCallback, { passive: true, capture: false });\n };\n listener.eventsSubscription = listener.events\n .pipe((!ValueHelper.isNullOrUndefined(throttleInterval))\n ? throttleTime(throttleInterval, undefined, { leading: true, trailing: true })\n : tap(() => { }) // no-op\n )\n .subscribe((event) => {\n callback(event);\n });\n return listener;\n }\n detachEventListener(eventListener) {\n if (!ValueHelper.isNullOrUndefined(eventListener.eventsSubscription)) {\n eventListener.eventsSubscription.unsubscribe();\n eventListener.eventsSubscription = null;\n }\n if (!ValueHelper.isNullOrUndefined(eventListener.events)) {\n eventListener.events.complete();\n eventListener.events = null;\n }\n if (!ValueHelper.isNullOrUndefined(eventListener.teardownCallback)) {\n eventListener.teardownCallback();\n eventListener.teardownCallback = null;\n }\n }\n attachEventListener(nativeElement, eventName, callback, throttleInterval) {\n const listener = new EventListener();\n listener.eventName = eventName;\n listener.events = new Subject();\n const observerCallback = (event) => {\n listener.events.next(event);\n };\n listener.teardownCallback = this.renderer.listen(nativeElement, eventName, observerCallback);\n listener.eventsSubscription = listener.events\n .pipe((!ValueHelper.isNullOrUndefined(throttleInterval))\n ? throttleTime(throttleInterval, undefined, { leading: true, trailing: true })\n : tap(() => { }) // no-op\n )\n .subscribe((event) => { callback(event); });\n return listener;\n }\n}\n\nclass SliderElementDirective {\n elemRef;\n renderer;\n changeDetectionRef;\n _position = 0;\n get position() {\n return this._position;\n }\n _dimension = 0;\n get dimension() {\n return this._dimension;\n }\n _alwaysHide = false;\n get alwaysHide() {\n return this._alwaysHide;\n }\n _vertical = false;\n get vertical() {\n return this._vertical;\n }\n _scale = 1;\n get scale() {\n return this._scale;\n }\n _rotate = 0;\n get rotate() {\n return this._rotate;\n }\n opacity = 1;\n visibility = 'visible';\n left = '';\n bottom = '';\n height = '';\n width = '';\n transform = '';\n eventListenerHelper;\n eventListeners = [];\n constructor(elemRef, renderer, changeDetectionRef) {\n this.elemRef = elemRef;\n this.renderer = renderer;\n this.changeDetectionRef = changeDetectionRef;\n this.eventListenerHelper = new EventListenerHelper(this.renderer);\n }\n setAlwaysHide(hide) {\n this._alwaysHide = hide;\n if (hide) {\n this.visibility = 'hidden';\n }\n else {\n this.visibility = 'visible';\n }\n }\n hide() {\n this.opacity = 0;\n }\n show() {\n if (this.alwaysHide) {\n return;\n }\n this.opacity = 1;\n }\n isVisible() {\n if (this.alwaysHide) {\n return false;\n }\n return this.opacity !== 0;\n }\n setVertical(vertical) {\n this._vertical = vertical;\n if (this._vertical) {\n this.left = '';\n this.width = '';\n }\n else {\n this.bottom = '';\n this.height = '';\n }\n }\n setScale(scale) {\n this._scale = scale;\n }\n setRotate(rotate) {\n this._rotate = rotate;\n this.transform = 'rotate(' + rotate + 'deg)';\n }\n getRotate() {\n return this._rotate;\n }\n // Set element left/top position depending on whether slider is horizontal or vertical\n setPosition(pos) {\n if (this._position !== pos && !this.isRefDestroyed()) {\n this.changeDetectionRef.markForCheck();\n }\n this._position = pos;\n if (this._vertical) {\n this.bottom = Math.round(pos) + 'px';\n }\n else {\n this.left = Math.round(pos) + 'px';\n }\n }\n // Calculate element's width/height depending on whether slider is horizontal or vertical\n calculateDimension() {\n const val = this.getBoundingClientRect();\n if (this.vertical) {\n this._dimension = (val.bottom - val.top) * this.scale;\n }\n else {\n this._dimension = (val.right - val.left) * this.scale;\n }\n }\n // Set element width/height depending on whether slider is horizontal or vertical\n setDimension(dim) {\n if (this._dimension !== dim && !this.isRefDestroyed()) {\n this.changeDetectionRef.markForCheck();\n }\n this._dimension = dim;\n if (this._vertical) {\n this.height = Math.round(dim) + 'px';\n }\n else {\n this.width = Math.round(dim) + 'px';\n }\n }\n getBoundingClientRect() {\n return this.elemRef.nativeElement.getBoundingClientRect();\n }\n on(eventName, callback, debounceInterval) {\n const listener = this.eventListenerHelper.attachEventListener(this.elemRef.nativeElement, eventName, callback, debounceInterval);\n this.eventListeners.push(listener);\n }\n onPassive(eventName, callback, debounceInterval) {\n const listener = this.eventListenerHelper.attachPassiveEventListener(this.elemRef.nativeElement, eventName, callback, debounceInterval);\n this.eventListeners.push(listener);\n }\n off(eventName) {\n let listenersToKeep;\n let listenersToRemove;\n if (!ValueHelper.isNullOrUndefined(eventName)) {\n listenersToKeep = this.eventListeners.filter((event) => event.eventName !== eventName);\n listenersToRemove = this.eventListeners.filter((event) => event.eventName === eventName);\n }\n else {\n listenersToKeep = [];\n listenersToRemove = this.eventListeners;\n }\n for (const listener of listenersToRemove) {\n this.eventListenerHelper.detachEventListener(listener);\n }\n this.eventListeners = listenersToKeep;\n }\n isRefDestroyed() {\n return ValueHelper.isNullOrUndefined(this.changeDetectionRef) || this.changeDetectionRef['destroyed'];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: SliderElementDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.1.3\", type: SliderElementDirective, selector: \"[ngxSliderElement]\", host: { properties: { \"style.opacity\": \"this.opacity\", \"style.visibility\": \"this.visibility\", \"style.left\": \"this.left\", \"style.bottom\": \"this.bottom\", \"style.height\": \"this.height\", \"style.width\": \"this.width\", \"style.transform\": \"this.transform\" } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: SliderElementDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngxSliderElement]'\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { opacity: [{\n type: HostBinding,\n args: ['style.opacity']\n }], visibility: [{\n type: HostBinding,\n args: ['style.visibility']\n }], left: [{\n type: HostBinding,\n args: ['style.left']\n }], bottom: [{\n type: HostBinding,\n args: ['style.bottom']\n }], height: [{\n type: HostBinding,\n args: ['style.height']\n }], width: [{\n type: HostBinding,\n args: ['style.width']\n }], transform: [{\n type: HostBinding,\n args: ['style.transform']\n }] } });\n\nclass SliderHandleDirective extends SliderElementDirective {\n active = false;\n role = '';\n tabindex = '';\n ariaOrientation = '';\n ariaLabel = '';\n ariaLabelledBy = '';\n ariaValueNow = '';\n ariaValueText = '';\n ariaValueMin = '';\n ariaValueMax = '';\n focus() {\n this.elemRef.nativeElement.focus();\n }\n focusIfNeeded() {\n if (document.activeElement !== this.elemRef.nativeElement) {\n this.elemRef.nativeElement.focus();\n }\n }\n constructor(elemRef, renderer, changeDetectionRef) {\n super(elemRef, renderer, changeDetectionRef);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: SliderHandleDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.1.3\", type: SliderHandleDirective, selector: \"[ngxSliderHandle]\", host: { properties: { \"class.ngx-slider-active\": \"this.active\", \"attr.role\": \"this.role\", \"attr.tabindex\": \"this.tabindex\", \"attr.aria-orientation\": \"this.ariaOrientation\", \"attr.aria-label\": \"this.ariaLabel\", \"attr.aria-labelledby\": \"this.ariaLabelledBy\", \"attr.aria-valuenow\": \"this.ariaValueNow\", \"attr.aria-valuetext\": \"this.ariaValueText\", \"attr.aria-valuemin\": \"this.ariaValueMin\", \"attr.aria-valuemax\": \"this.ariaValueMax\" } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: SliderHandleDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngxSliderHandle]',\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], propDecorators: { active: [{\n type: HostBinding,\n args: ['class.ngx-slider-active']\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }], tabindex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], ariaOrientation: [{\n type: HostBinding,\n args: ['attr.aria-orientation']\n }], ariaLabel: [{\n type: HostBinding,\n args: ['attr.aria-label']\n }], ariaLabelledBy: [{\n type: HostBinding,\n args: ['attr.aria-labelledby']\n }], ariaValueNow: [{\n type: HostBinding,\n args: ['attr.aria-valuenow']\n }], ariaValueText: [{\n type: HostBinding,\n args: ['attr.aria-valuetext']\n }], ariaValueMin: [{\n type: HostBinding,\n args: ['attr.aria-valuemin']\n }], ariaValueMax: [{\n type: HostBinding,\n args: ['attr.aria-valuemax']\n }] } });\n\nclass SliderLabelDirective extends SliderElementDirective {\n allowUnsafeHtmlInSlider;\n _value = null;\n get value() {\n return this._value;\n }\n constructor(elemRef, renderer, changeDetectionRef, allowUnsafeHtmlInSlider) {\n super(elemRef, renderer, changeDetectionRef);\n this.allowUnsafeHtmlInSlider = allowUnsafeHtmlInSlider;\n }\n setValue(value) {\n let recalculateDimension = false;\n if (!this.alwaysHide &&\n (ValueHelper.isNullOrUndefined(this.value) ||\n this.value.length !== value.length ||\n (this.value.length > 0 && this.dimension === 0))) {\n recalculateDimension = true;\n }\n this._value = value;\n if (this.allowUnsafeHtmlInSlider === false) {\n this.elemRef.nativeElement.innerText = value;\n }\n else {\n this.elemRef.nativeElement.innerHTML = value;\n }\n // Update dimension only when length of the label have changed\n if (recalculateDimension) {\n this.calculateDimension();\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: SliderLabelDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: AllowUnsafeHtmlInSlider, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.1.3\", type: SliderLabelDirective, selector: \"[ngxSliderLabel]\", usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: SliderLabelDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngxSliderLabel]',\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [AllowUnsafeHtmlInSlider]\n }, {\n type: Optional\n }] }] });\n\nclass TooltipWrapperComponent {\n template;\n tooltip;\n placement;\n content;\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: TooltipWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.1.3\", type: TooltipWrapperComponent, selector: \"ngx-slider-tooltip-wrapper\", inputs: { template: \"template\", tooltip: \"tooltip\", placement: \"placement\", content: \"content\" }, ngImport: i0, template: \"\\n \\n\\n\\n\\n
    \\n {{content}}\\n
    \\n
    \", styles: [\".ngx-slider-inner-tooltip{height:100%}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: TooltipWrapperComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-slider-tooltip-wrapper', template: \"\\n \\n\\n\\n\\n
    \\n {{content}}\\n
    \\n
    \", styles: [\".ngx-slider-inner-tooltip{height:100%}\\n\"] }]\n }], propDecorators: { template: [{\n type: Input\n }], tooltip: [{\n type: Input\n }], placement: [{\n type: Input\n }], content: [{\n type: Input\n }] } });\n\nclass Tick {\n selected = false;\n style = {};\n tooltip = null;\n tooltipPlacement = null;\n value = null;\n valueTooltip = null;\n valueTooltipPlacement = null;\n legend = null;\n}\nclass Dragging {\n active = false;\n value = 0;\n difference = 0;\n position = 0;\n lowLimit = 0;\n highLimit = 0;\n}\nclass ModelValues {\n value;\n highValue;\n static compare(x, y) {\n if (ValueHelper.isNullOrUndefined(x) && ValueHelper.isNullOrUndefined(y)) {\n return false;\n }\n if (ValueHelper.isNullOrUndefined(x) !== ValueHelper.isNullOrUndefined(y)) {\n return false;\n }\n return x.value === y.value && x.highValue === y.highValue;\n }\n}\nclass ModelChange extends ModelValues {\n // Flag used to by-pass distinctUntilChanged() filter on input values\n // (sometimes there is a need to pass values through even though the model values have not changed)\n forceChange;\n static compare(x, y) {\n if (ValueHelper.isNullOrUndefined(x) && ValueHelper.isNullOrUndefined(y)) {\n return false;\n }\n if (ValueHelper.isNullOrUndefined(x) !== ValueHelper.isNullOrUndefined(y)) {\n return false;\n }\n return (x.value === y.value &&\n x.highValue === y.highValue &&\n x.forceChange === y.forceChange);\n }\n}\nclass InputModelChange extends ModelChange {\n internalChange;\n}\nclass OutputModelChange extends ModelChange {\n userEventInitiated;\n}\nconst NGX_SLIDER_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => SliderComponent),\n multi: true,\n};\nclass SliderComponent {\n renderer;\n elementRef;\n changeDetectionRef;\n zone;\n allowUnsafeHtmlInSlider;\n // Add ngx-slider class to the host element - this is static, should never change\n sliderElementNgxSliderClass = true;\n // Model for low value of slider. For simple slider, this is the only input. For range slider, this is the low value.\n value = null;\n // Output for low value slider to support two-way bindings\n valueChange = new EventEmitter();\n // Model for high value of slider. Not used in simple slider. For range slider, this is the high value.\n highValue = null;\n // Output for high value slider to support two-way bindings\n highValueChange = new EventEmitter();\n // An object with all the other options of the slider.\n // Each option can be updated at runtime and the slider will automatically be re-rendered.\n options = new Options();\n // Event emitted when user starts interaction with the slider\n userChangeStart = new EventEmitter();\n // Event emitted on each change coming from user interaction\n userChange = new EventEmitter();\n // Event emitted when user finishes interaction with the slider\n userChangeEnd = new EventEmitter();\n manualRefreshSubscription;\n // Input event that triggers slider refresh (re-positioning of slider elements)\n set manualRefresh(manualRefresh) {\n this.unsubscribeManualRefresh();\n this.manualRefreshSubscription = manualRefresh.subscribe(() => {\n setTimeout(() => this.calculateViewDimensionsAndDetectChanges());\n });\n }\n triggerFocusSubscription;\n // Input event that triggers setting focus on given slider handle\n set triggerFocus(triggerFocus) {\n this.unsubscribeTriggerFocus();\n this.triggerFocusSubscription = triggerFocus.subscribe((pointerType) => {\n this.focusPointer(pointerType);\n });\n }\n // Slider type, true means range slider\n get range() {\n return (!ValueHelper.isNullOrUndefined(this.value) &&\n !ValueHelper.isNullOrUndefined(this.highValue));\n }\n // Set to true if init method already executed\n initHasRun = false;\n // Changes in model inputs are passed through this subject\n // These are all changes coming in from outside the component through input bindings or reactive form inputs\n inputModelChangeSubject = new Subject();\n inputModelChangeSubscription = null;\n // Changes to model outputs are passed through this subject\n // These are all changes that need to be communicated to output emitters and registered callbacks\n outputModelChangeSubject = new Subject();\n outputModelChangeSubscription = null;\n // Low value synced to model low value\n viewLowValue = null;\n // High value synced to model high value\n viewHighValue = null;\n // Options synced to model options, based on defaults\n viewOptions = new Options();\n // Half of the width or height of the slider handles\n handleHalfDimension = 0;\n // Maximum position the slider handle can have\n maxHandlePosition = 0;\n // Which handle is currently tracked for move events\n currentTrackingPointer = null;\n // Internal variable to keep track of the focus element\n currentFocusPointer = null;\n // Used to call onStart on the first keydown event\n firstKeyDown = false;\n // Current touch id of touch event being handled\n touchId = null;\n // Values recorded when first dragging the bar\n dragging = new Dragging();\n /* Slider DOM elements */\n // Left selection bar outside two handles\n leftOuterSelectionBarElement;\n // Right selection bar outside two handles\n rightOuterSelectionBarElement;\n // The whole slider bar\n fullBarElement;\n // Highlight between two handles\n selectionBarElement;\n // Left slider handle\n minHandleElement;\n // Right slider handle\n maxHandleElement;\n // Floor label\n floorLabelElement;\n // Ceiling label\n ceilLabelElement;\n // Label above the low value\n minHandleLabelElement;\n // Label above the high value\n maxHandleLabelElement;\n // Combined label\n combinedLabelElement;\n // The ticks\n ticksElement;\n // Optional custom template for displaying tooltips\n tooltipTemplate;\n // Host element class bindings\n sliderElementVerticalClass = false;\n sliderElementAnimateClass = false;\n sliderElementWithLegendClass = false;\n sliderElementDisabledAttr = null;\n sliderElementAriaLabel = 'ngx-slider';\n // CSS styles and class flags\n barStyle = {};\n minPointerStyle = {};\n maxPointerStyle = {};\n fullBarTransparentClass = false;\n selectionBarDraggableClass = false;\n ticksUnderValuesClass = false;\n // Whether to show/hide ticks\n get showTicks() {\n return this.viewOptions.showTicks;\n }\n /* If tickStep is set or ticksArray is specified.\n In this case, ticks values should be displayed below the slider. */\n intermediateTicks = false;\n // Ticks array as displayed in view\n ticks = [];\n // Event listeners\n eventListenerHelper = null;\n onMoveEventListener = null;\n onEndEventListener = null;\n // Whether currently moving the slider (between onStart() and onEnd())\n moving = false;\n // Observer for slider element resize events\n resizeObserver = null;\n // Callbacks for reactive forms support\n onTouchedCallback = null;\n onChangeCallback = null;\n constructor(renderer, elementRef, changeDetectionRef, zone, allowUnsafeHtmlInSlider) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n this.changeDetectionRef = changeDetectionRef;\n this.zone = zone;\n this.allowUnsafeHtmlInSlider = allowUnsafeHtmlInSlider;\n this.eventListenerHelper = new EventListenerHelper(this.renderer);\n }\n // OnInit interface\n ngOnInit() {\n this.viewOptions = new Options();\n Object.assign(this.viewOptions, this.options);\n // We need to run these two things first, before the rest of the init in ngAfterViewInit(),\n // because these two settings are set through @HostBinding and Angular change detection\n // mechanism doesn't like them changing in ngAfterViewInit()\n this.updateDisabledState();\n this.updateVerticalState();\n this.updateAriaLabel();\n }\n // AfterViewInit interface\n ngAfterViewInit() {\n this.applyOptions();\n this.subscribeInputModelChangeSubject();\n this.subscribeOutputModelChangeSubject();\n // Once we apply options, we need to normalise model values for the first time\n this.renormaliseModelValues();\n this.viewLowValue = this.modelValueToViewValue(this.value);\n if (this.range) {\n this.viewHighValue = this.modelValueToViewValue(this.highValue);\n }\n else {\n this.viewHighValue = null;\n }\n this.updateVerticalState(); // need to run this again to cover changes to slider elements\n this.manageElementsStyle();\n this.updateDisabledState();\n this.calculateViewDimensions();\n this.addAccessibility();\n this.updateCeilLabel();\n this.updateFloorLabel();\n this.initHandles();\n this.manageEventsBindings();\n this.updateAriaLabel();\n this.subscribeResizeObserver();\n this.initHasRun = true;\n // Run change detection manually to resolve some issues when init procedure changes values used in the view\n if (!this.isRefDestroyed()) {\n this.changeDetectionRef.detectChanges();\n }\n }\n // OnChanges interface\n ngOnChanges(changes) {\n // Always apply options first\n if (!ValueHelper.isNullOrUndefined(changes.options) &&\n JSON.stringify(changes.options.previousValue) !==\n JSON.stringify(changes.options.currentValue)) {\n this.onChangeOptions();\n }\n // Then value changes\n if (!ValueHelper.isNullOrUndefined(changes.value) ||\n !ValueHelper.isNullOrUndefined(changes.highValue)) {\n this.inputModelChangeSubject.next({\n value: this.value,\n highValue: this.highValue,\n forceChange: false,\n internalChange: false,\n });\n }\n }\n // OnDestroy interface\n ngOnDestroy() {\n this.unbindEvents();\n this.unsubscribeResizeObserver();\n this.unsubscribeInputModelChangeSubject();\n this.unsubscribeOutputModelChangeSubject();\n this.unsubscribeManualRefresh();\n this.unsubscribeTriggerFocus();\n }\n // ControlValueAccessor interface\n writeValue(obj) {\n if (obj instanceof Array) {\n this.value = obj[0];\n this.highValue = obj[1];\n }\n else {\n this.value = obj;\n }\n // ngOnChanges() is not called in this instance, so we need to communicate the change manually\n this.inputModelChangeSubject.next({\n value: this.value,\n highValue: this.highValue,\n forceChange: false,\n internalChange: false,\n });\n }\n // ControlValueAccessor interface\n registerOnChange(onChangeCallback) {\n this.onChangeCallback = onChangeCallback;\n }\n // ControlValueAccessor interface\n registerOnTouched(onTouchedCallback) {\n this.onTouchedCallback = onTouchedCallback;\n }\n // ControlValueAccessor interface\n setDisabledState(isDisabled) {\n this.viewOptions.disabled = isDisabled;\n this.updateDisabledState();\n }\n setAriaLabel(ariaLabel) {\n this.viewOptions.ariaLabel = ariaLabel;\n this.updateAriaLabel();\n }\n onResize(event) {\n this.calculateViewDimensionsAndDetectChanges();\n }\n subscribeInputModelChangeSubject() {\n this.inputModelChangeSubscription = this.inputModelChangeSubject\n .pipe(distinctUntilChanged(ModelChange.compare), \n // Hack to reset the status of the distinctUntilChanged() - if a \"fake\" event comes through with forceChange=true,\n // we forcefully by-pass distinctUntilChanged(), but otherwise drop the event\n filter((modelChange) => !modelChange.forceChange && !modelChange.internalChange))\n .subscribe((modelChange) => this.applyInputModelChange(modelChange));\n }\n subscribeOutputModelChangeSubject() {\n this.outputModelChangeSubscription = this.outputModelChangeSubject\n .pipe(distinctUntilChanged(ModelChange.compare))\n .subscribe((modelChange) => this.publishOutputModelChange(modelChange));\n }\n subscribeResizeObserver() {\n if (CompatibilityHelper.isResizeObserverAvailable()) {\n this.resizeObserver = new ResizeObserver(() => this.calculateViewDimensionsAndDetectChanges());\n this.resizeObserver.observe(this.elementRef.nativeElement);\n }\n }\n unsubscribeResizeObserver() {\n if (CompatibilityHelper.isResizeObserverAvailable() &&\n this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n unsubscribeOnMove() {\n if (!ValueHelper.isNullOrUndefined(this.onMoveEventListener)) {\n this.eventListenerHelper.detachEventListener(this.onMoveEventListener);\n this.onMoveEventListener = null;\n }\n }\n unsubscribeOnEnd() {\n if (!ValueHelper.isNullOrUndefined(this.onEndEventListener)) {\n this.eventListenerHelper.detachEventListener(this.onEndEventListener);\n this.onEndEventListener = null;\n }\n }\n unsubscribeInputModelChangeSubject() {\n if (!ValueHelper.isNullOrUndefined(this.inputModelChangeSubscription)) {\n this.inputModelChangeSubscription.unsubscribe();\n this.inputModelChangeSubscription = null;\n }\n }\n unsubscribeOutputModelChangeSubject() {\n if (!ValueHelper.isNullOrUndefined(this.outputModelChangeSubscription)) {\n this.outputModelChangeSubscription.unsubscribe();\n this.outputModelChangeSubscription = null;\n }\n }\n unsubscribeManualRefresh() {\n if (!ValueHelper.isNullOrUndefined(this.manualRefreshSubscription)) {\n this.manualRefreshSubscription.unsubscribe();\n this.manualRefreshSubscription = null;\n }\n }\n unsubscribeTriggerFocus() {\n if (!ValueHelper.isNullOrUndefined(this.triggerFocusSubscription)) {\n this.triggerFocusSubscription.unsubscribe();\n this.triggerFocusSubscription = null;\n }\n }\n getPointerElement(pointerType) {\n if (pointerType === PointerType.Min) {\n return this.minHandleElement;\n }\n else if (pointerType === PointerType.Max) {\n return this.maxHandleElement;\n }\n return null;\n }\n getCurrentTrackingValue() {\n if (this.currentTrackingPointer === PointerType.Min) {\n return this.viewLowValue;\n }\n else if (this.currentTrackingPointer === PointerType.Max) {\n return this.viewHighValue;\n }\n return null;\n }\n modelValueToViewValue(modelValue) {\n if (ValueHelper.isNullOrUndefined(modelValue)) {\n return NaN;\n }\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.stepsArray) &&\n !this.viewOptions.bindIndexForStepsArray) {\n return ValueHelper.findStepIndex(+modelValue, this.viewOptions.stepsArray);\n }\n return +modelValue;\n }\n viewValueToModelValue(viewValue) {\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.stepsArray) &&\n !this.viewOptions.bindIndexForStepsArray) {\n return this.getStepValue(viewValue);\n }\n return viewValue;\n }\n getStepValue(sliderValue) {\n const step = this.viewOptions.stepsArray[sliderValue];\n return !ValueHelper.isNullOrUndefined(step) ? step.value : NaN;\n }\n applyViewChange() {\n this.value = this.viewValueToModelValue(this.viewLowValue);\n if (this.range) {\n this.highValue = this.viewValueToModelValue(this.viewHighValue);\n }\n this.outputModelChangeSubject.next({\n value: this.value,\n highValue: this.highValue,\n userEventInitiated: true,\n forceChange: false,\n });\n // At this point all changes are applied and outputs are emitted, so we should be done.\n // However, input changes are communicated in different stream and we need to be ready to\n // act on the next input change even if it is exactly the same as last input change.\n // Therefore, we send a special event to reset the stream.\n this.inputModelChangeSubject.next({\n value: this.value,\n highValue: this.highValue,\n forceChange: false,\n internalChange: true,\n });\n }\n // Apply model change to the slider view\n applyInputModelChange(modelChange) {\n const normalisedModelChange = this.normaliseModelValues(modelChange);\n // If normalised model change is different, apply the change to the model values\n const normalisationChange = !ModelValues.compare(modelChange, normalisedModelChange);\n if (normalisationChange) {\n this.value = normalisedModelChange.value;\n this.highValue = normalisedModelChange.highValue;\n }\n this.viewLowValue = this.modelValueToViewValue(normalisedModelChange.value);\n if (this.range) {\n this.viewHighValue = this.modelValueToViewValue(normalisedModelChange.highValue);\n }\n else {\n this.viewHighValue = null;\n }\n this.updateLowHandle(this.valueToPosition(this.viewLowValue));\n if (this.range) {\n this.updateHighHandle(this.valueToPosition(this.viewHighValue));\n }\n this.updateSelectionBar();\n this.updateTicksScale();\n this.updateAriaAttributes();\n if (this.range) {\n this.updateCombinedLabel();\n }\n // At the end, we need to communicate the model change to the outputs as well\n // Normalisation changes are also always forced out to ensure that subscribers always end up in correct state\n this.outputModelChangeSubject.next({\n value: normalisedModelChange.value,\n highValue: normalisedModelChange.highValue,\n forceChange: normalisationChange,\n userEventInitiated: false,\n });\n }\n // Publish model change to output event emitters and registered callbacks\n publishOutputModelChange(modelChange) {\n const emitOutputs = () => {\n this.valueChange.emit(modelChange.value);\n if (this.range) {\n this.highValueChange.emit(modelChange.highValue);\n }\n if (!ValueHelper.isNullOrUndefined(this.onChangeCallback)) {\n if (this.range) {\n this.onChangeCallback([modelChange.value, modelChange.highValue]);\n }\n else {\n this.onChangeCallback(modelChange.value);\n }\n }\n if (!ValueHelper.isNullOrUndefined(this.onTouchedCallback)) {\n if (this.range) {\n this.onTouchedCallback([modelChange.value, modelChange.highValue]);\n }\n else {\n this.onTouchedCallback(modelChange.value);\n }\n }\n };\n if (modelChange.userEventInitiated) {\n // If this change was initiated by a user event, we can emit outputs in the same tick\n emitOutputs();\n this.userChange.emit(this.getChangeContext());\n }\n else {\n // But, if the change was initated by something else like a change in input bindings,\n // we need to wait until next tick to emit the outputs to keep Angular change detection happy\n setTimeout(() => {\n emitOutputs();\n });\n }\n }\n normaliseModelValues(input) {\n const normalisedInput = new ModelValues();\n normalisedInput.value = input.value;\n normalisedInput.highValue = input.highValue;\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.stepsArray)) {\n // When using steps array, only round to nearest step in the array\n // No other enforcement can be done, as the step array may be out of order, and that is perfectly fine\n if (this.viewOptions.enforceStepsArray) {\n const valueIndex = ValueHelper.findStepIndex(normalisedInput.value, this.viewOptions.stepsArray);\n normalisedInput.value = this.viewOptions.stepsArray[valueIndex].value;\n if (this.range) {\n const highValueIndex = ValueHelper.findStepIndex(normalisedInput.highValue, this.viewOptions.stepsArray);\n normalisedInput.highValue =\n this.viewOptions.stepsArray[highValueIndex].value;\n }\n }\n return normalisedInput;\n }\n if (this.viewOptions.enforceStep) {\n normalisedInput.value = this.roundStep(normalisedInput.value);\n if (this.range) {\n normalisedInput.highValue = this.roundStep(normalisedInput.highValue);\n }\n }\n if (this.viewOptions.enforceRange) {\n normalisedInput.value = MathHelper.clampToRange(normalisedInput.value, this.viewOptions.floor, this.viewOptions.ceil);\n if (this.range) {\n normalisedInput.highValue = MathHelper.clampToRange(normalisedInput.highValue, this.viewOptions.floor, this.viewOptions.ceil);\n }\n // Make sure that range slider invariant (value <= highValue) is always satisfied\n if (this.range && input.value > input.highValue) {\n // We know that both values are now clamped correctly, they may just be in the wrong order\n // So the easy solution is to swap them... except swapping is sometimes disabled in options, so we make the two values the same\n if (this.viewOptions.noSwitching) {\n normalisedInput.value = normalisedInput.highValue;\n }\n else {\n const tempValue = input.value;\n normalisedInput.value = input.highValue;\n normalisedInput.highValue = tempValue;\n }\n }\n }\n return normalisedInput;\n }\n renormaliseModelValues() {\n const previousModelValues = {\n value: this.value,\n highValue: this.highValue,\n };\n const normalisedModelValues = this.normaliseModelValues(previousModelValues);\n if (!ModelValues.compare(normalisedModelValues, previousModelValues)) {\n this.value = normalisedModelValues.value;\n this.highValue = normalisedModelValues.highValue;\n this.outputModelChangeSubject.next({\n value: this.value,\n highValue: this.highValue,\n forceChange: true,\n userEventInitiated: false,\n });\n }\n }\n onChangeOptions() {\n if (!this.initHasRun) {\n return;\n }\n const previousOptionsInfluencingEventBindings = this.getOptionsInfluencingEventBindings(this.viewOptions);\n this.applyOptions();\n const newOptionsInfluencingEventBindings = this.getOptionsInfluencingEventBindings(this.viewOptions);\n // Avoid re-binding events in case nothing changes that can influence it\n // It makes it possible to change options while dragging the slider\n const rebindEvents = !ValueHelper.areArraysEqual(previousOptionsInfluencingEventBindings, newOptionsInfluencingEventBindings);\n // With new options, we need to re-normalise model values if necessary\n this.renormaliseModelValues();\n this.viewLowValue = this.modelValueToViewValue(this.value);\n if (this.range) {\n this.viewHighValue = this.modelValueToViewValue(this.highValue);\n }\n else {\n this.viewHighValue = null;\n }\n this.resetSlider(rebindEvents);\n }\n // Read the user options and apply them to the slider model\n applyOptions() {\n this.viewOptions = new Options();\n Object.assign(this.viewOptions, this.options);\n this.viewOptions.draggableRange =\n this.range && this.viewOptions.draggableRange;\n this.viewOptions.draggableRangeOnly =\n this.range && this.viewOptions.draggableRangeOnly;\n if (this.viewOptions.draggableRangeOnly) {\n this.viewOptions.draggableRange = true;\n }\n this.viewOptions.showTicks =\n this.viewOptions.showTicks ||\n this.viewOptions.showTicksValues ||\n !ValueHelper.isNullOrUndefined(this.viewOptions.ticksArray);\n if (this.viewOptions.showTicks &&\n (!ValueHelper.isNullOrUndefined(this.viewOptions.tickStep) ||\n !ValueHelper.isNullOrUndefined(this.viewOptions.ticksArray))) {\n this.intermediateTicks = true;\n }\n this.viewOptions.showSelectionBar =\n this.viewOptions.showSelectionBar ||\n this.viewOptions.showSelectionBarEnd ||\n !ValueHelper.isNullOrUndefined(this.viewOptions.showSelectionBarFromValue);\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.stepsArray)) {\n this.applyStepsArrayOptions();\n }\n else {\n this.applyFloorCeilOptions();\n }\n if (ValueHelper.isNullOrUndefined(this.viewOptions.combineLabels)) {\n this.viewOptions.combineLabels = (minValue, maxValue) => {\n return minValue + ' - ' + maxValue;\n };\n }\n if (this.viewOptions.logScale && this.viewOptions.floor === 0) {\n throw Error(\"Can't use floor=0 with logarithmic scale\");\n }\n }\n applyStepsArrayOptions() {\n this.viewOptions.floor = 0;\n this.viewOptions.ceil = this.viewOptions.stepsArray.length - 1;\n this.viewOptions.step = 1;\n if (ValueHelper.isNullOrUndefined(this.viewOptions.translate)) {\n this.viewOptions.translate = (modelValue) => {\n if (this.viewOptions.bindIndexForStepsArray) {\n return String(this.getStepValue(modelValue));\n }\n return String(modelValue);\n };\n }\n }\n applyFloorCeilOptions() {\n if (ValueHelper.isNullOrUndefined(this.viewOptions.step)) {\n this.viewOptions.step = 1;\n }\n else {\n this.viewOptions.step = +this.viewOptions.step;\n if (this.viewOptions.step <= 0) {\n this.viewOptions.step = 1;\n }\n }\n if (ValueHelper.isNullOrUndefined(this.viewOptions.ceil) ||\n ValueHelper.isNullOrUndefined(this.viewOptions.floor)) {\n throw Error('floor and ceil options must be supplied');\n }\n this.viewOptions.ceil = +this.viewOptions.ceil;\n this.viewOptions.floor = +this.viewOptions.floor;\n if (ValueHelper.isNullOrUndefined(this.viewOptions.translate)) {\n this.viewOptions.translate = (value) => String(value);\n }\n }\n // Resets slider\n resetSlider(rebindEvents = true) {\n this.manageElementsStyle();\n this.addAccessibility();\n this.updateCeilLabel();\n this.updateFloorLabel();\n if (rebindEvents) {\n this.unbindEvents();\n this.manageEventsBindings();\n }\n this.updateDisabledState();\n this.updateAriaLabel();\n this.calculateViewDimensions();\n this.refocusPointerIfNeeded();\n }\n // Sets focus on the specified pointer\n focusPointer(pointerType) {\n // If not supplied, use min pointer as default\n if (pointerType !== PointerType.Min && pointerType !== PointerType.Max) {\n pointerType = PointerType.Min;\n }\n if (pointerType === PointerType.Min) {\n this.minHandleElement.focus();\n }\n else if (this.range && pointerType === PointerType.Max) {\n this.maxHandleElement.focus();\n }\n }\n refocusPointerIfNeeded() {\n if (!ValueHelper.isNullOrUndefined(this.currentFocusPointer)) {\n const element = this.getPointerElement(this.currentFocusPointer);\n element.focusIfNeeded();\n }\n }\n // Update each elements style based on options\n manageElementsStyle() {\n this.updateScale();\n this.floorLabelElement.setAlwaysHide(this.viewOptions.showTicksValues || this.viewOptions.hideLimitLabels);\n this.ceilLabelElement.setAlwaysHide(this.viewOptions.showTicksValues || this.viewOptions.hideLimitLabels);\n const hideLabelsForTicks = this.viewOptions.showTicksValues && !this.intermediateTicks;\n this.minHandleLabelElement.setAlwaysHide(hideLabelsForTicks || this.viewOptions.hidePointerLabels);\n this.maxHandleLabelElement.setAlwaysHide(hideLabelsForTicks || !this.range || this.viewOptions.hidePointerLabels);\n this.combinedLabelElement.setAlwaysHide(hideLabelsForTicks || !this.range || this.viewOptions.hidePointerLabels);\n this.selectionBarElement.setAlwaysHide(!this.range && !this.viewOptions.showSelectionBar);\n this.leftOuterSelectionBarElement.setAlwaysHide(!this.range || !this.viewOptions.showOuterSelectionBars);\n this.rightOuterSelectionBarElement.setAlwaysHide(!this.range || !this.viewOptions.showOuterSelectionBars);\n this.fullBarTransparentClass =\n this.range && this.viewOptions.showOuterSelectionBars;\n this.selectionBarDraggableClass =\n this.viewOptions.draggableRange && !this.viewOptions.onlyBindHandles;\n this.ticksUnderValuesClass =\n this.intermediateTicks && this.options.showTicksValues;\n if (this.sliderElementVerticalClass !== this.viewOptions.vertical) {\n this.updateVerticalState();\n // The above change in host component class will not be applied until the end of this cycle\n // However, functions calculating the slider position expect the slider to be already styled as vertical\n // So as a workaround, we need to reset the slider once again to compute the correct values\n setTimeout(() => {\n this.resetSlider();\n });\n }\n // Changing animate class may interfere with slider reset/initialisation, so we should set it separately,\n // after all is properly set up\n if (this.sliderElementAnimateClass !== this.viewOptions.animate) {\n setTimeout(() => {\n this.sliderElementAnimateClass = this.viewOptions.animate;\n });\n }\n this.updateRotate();\n }\n // Manage the events bindings based on readOnly and disabled options\n manageEventsBindings() {\n if (this.viewOptions.disabled || this.viewOptions.readOnly) {\n this.unbindEvents();\n }\n else {\n this.bindEvents();\n }\n }\n // Set the disabled state based on disabled option\n updateDisabledState() {\n this.sliderElementDisabledAttr = this.viewOptions.disabled\n ? 'disabled'\n : null;\n }\n // Set the aria-label state based on ariaLabel option\n updateAriaLabel() {\n this.sliderElementAriaLabel = this.viewOptions.ariaLabel || 'nxg-slider';\n }\n // Set vertical state based on vertical option\n updateVerticalState() {\n this.sliderElementVerticalClass = this.viewOptions.vertical;\n for (const element of this.getAllSliderElements()) {\n // This is also called before ngAfterInit, so need to check that view child bindings work\n if (!ValueHelper.isNullOrUndefined(element)) {\n element.setVertical(this.viewOptions.vertical);\n }\n }\n }\n updateScale() {\n for (const element of this.getAllSliderElements()) {\n element.setScale(this.viewOptions.scale);\n }\n }\n updateRotate() {\n for (const element of this.getAllSliderElements()) {\n element.setRotate(this.viewOptions.rotate);\n }\n }\n getAllSliderElements() {\n return [\n this.leftOuterSelectionBarElement,\n this.rightOuterSelectionBarElement,\n this.fullBarElement,\n this.selectionBarElement,\n this.minHandleElement,\n this.maxHandleElement,\n this.floorLabelElement,\n this.ceilLabelElement,\n this.minHandleLabelElement,\n this.maxHandleLabelElement,\n this.combinedLabelElement,\n this.ticksElement,\n ];\n }\n // Initialize slider handles positions and labels\n // Run only once during initialization and every time view port changes size\n initHandles() {\n this.updateLowHandle(this.valueToPosition(this.viewLowValue));\n /*\n the order here is important since the selection bar should be\n updated after the high handle but before the combined label\n */\n if (this.range) {\n this.updateHighHandle(this.valueToPosition(this.viewHighValue));\n }\n this.updateSelectionBar();\n if (this.range) {\n this.updateCombinedLabel();\n }\n this.updateTicksScale();\n }\n // Adds accessibility attributes, run only once during initialization\n addAccessibility() {\n this.updateAriaAttributes();\n this.minHandleElement.role = 'slider';\n if (this.viewOptions.keyboardSupport &&\n !(this.viewOptions.readOnly || this.viewOptions.disabled)) {\n this.minHandleElement.tabindex = '0';\n }\n else {\n this.minHandleElement.tabindex = '';\n }\n this.minHandleElement.ariaOrientation =\n this.viewOptions.vertical || this.viewOptions.rotate !== 0\n ? 'vertical'\n : 'horizontal';\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.ariaLabel)) {\n this.minHandleElement.ariaLabel = this.viewOptions.ariaLabel;\n }\n else if (!ValueHelper.isNullOrUndefined(this.viewOptions.ariaLabelledBy)) {\n this.minHandleElement.ariaLabelledBy = this.viewOptions.ariaLabelledBy;\n }\n if (this.range) {\n this.maxHandleElement.role = 'slider';\n if (this.viewOptions.keyboardSupport &&\n !(this.viewOptions.readOnly || this.viewOptions.disabled)) {\n this.maxHandleElement.tabindex = '0';\n }\n else {\n this.maxHandleElement.tabindex = '';\n }\n this.maxHandleElement.ariaOrientation =\n this.viewOptions.vertical || this.viewOptions.rotate !== 0\n ? 'vertical'\n : 'horizontal';\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.ariaLabelHigh)) {\n this.maxHandleElement.ariaLabel = this.viewOptions.ariaLabelHigh;\n }\n else if (!ValueHelper.isNullOrUndefined(this.viewOptions.ariaLabelledByHigh)) {\n this.maxHandleElement.ariaLabelledBy =\n this.viewOptions.ariaLabelledByHigh;\n }\n }\n }\n // Updates aria attributes according to current values\n updateAriaAttributes() {\n this.minHandleElement.ariaValueNow = (+this.value).toString();\n this.minHandleElement.ariaValueText = this.viewOptions.translate(+this.value, LabelType.Low);\n this.minHandleElement.ariaValueMin = this.viewOptions.floor.toString();\n this.minHandleElement.ariaValueMax = this.viewOptions.ceil.toString();\n if (this.range) {\n this.maxHandleElement.ariaValueNow = (+this.highValue).toString();\n this.maxHandleElement.ariaValueText = this.viewOptions.translate(+this.highValue, LabelType.High);\n this.maxHandleElement.ariaValueMin = this.viewOptions.floor.toString();\n this.maxHandleElement.ariaValueMax = this.viewOptions.ceil.toString();\n }\n }\n // Calculate dimensions that are dependent on view port size\n // Run once during initialization and every time view port changes size.\n calculateViewDimensions() {\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.handleDimension)) {\n this.minHandleElement.setDimension(this.viewOptions.handleDimension);\n }\n else {\n this.minHandleElement.calculateDimension();\n }\n const handleWidth = this.minHandleElement.dimension;\n this.handleHalfDimension = handleWidth / 2;\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.barDimension)) {\n this.fullBarElement.setDimension(this.viewOptions.barDimension);\n }\n else {\n this.fullBarElement.calculateDimension();\n }\n this.maxHandlePosition = this.fullBarElement.dimension - handleWidth;\n if (this.initHasRun) {\n this.updateFloorLabel();\n this.updateCeilLabel();\n this.initHandles();\n }\n }\n calculateViewDimensionsAndDetectChanges() {\n this.calculateViewDimensions();\n if (!this.isRefDestroyed()) {\n this.changeDetectionRef.detectChanges();\n }\n }\n /**\n * If the slider reference is already destroyed\n * @returns boolean - true if ref is destroyed\n */\n isRefDestroyed() {\n return this.changeDetectionRef['destroyed'];\n }\n // Update the ticks position\n updateTicksScale() {\n if (!this.viewOptions.showTicks && this.sliderElementWithLegendClass) {\n setTimeout(() => {\n this.sliderElementWithLegendClass = false;\n });\n return;\n }\n const ticksArray = !ValueHelper.isNullOrUndefined(this.viewOptions.ticksArray)\n ? this.viewOptions.ticksArray\n : this.getTicksArray();\n const translate = this.viewOptions.vertical\n ? 'translateY'\n : 'translateX';\n if (this.viewOptions.rightToLeft) {\n ticksArray.reverse();\n }\n const tickValueStep = !ValueHelper.isNullOrUndefined(this.viewOptions.tickValueStep)\n ? this.viewOptions.tickValueStep\n : !ValueHelper.isNullOrUndefined(this.viewOptions.tickStep)\n ? this.viewOptions.tickStep\n : this.viewOptions.step;\n let hasAtLeastOneLegend = false;\n const newTicks = ticksArray.map((value) => {\n let position = this.valueToPosition(value);\n if (this.viewOptions.vertical) {\n position = this.maxHandlePosition - position;\n }\n const translation = translate + '(' + Math.round(position) + 'px)';\n const tick = new Tick();\n tick.selected = this.isTickSelected(value);\n tick.style = {\n '-webkit-transform': translation,\n '-moz-transform': translation,\n '-o-transform': translation,\n '-ms-transform': translation,\n transform: translation,\n };\n if (tick.selected &&\n !ValueHelper.isNullOrUndefined(this.viewOptions.getSelectionBarColor)) {\n tick.style['background-color'] = this.getSelectionBarColor();\n }\n if (!tick.selected &&\n !ValueHelper.isNullOrUndefined(this.viewOptions.getTickColor)) {\n tick.style['background-color'] = this.getTickColor(value);\n }\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.ticksTooltip)) {\n tick.tooltip = this.viewOptions.ticksTooltip(value);\n tick.tooltipPlacement = this.viewOptions.vertical ? 'right' : 'top';\n }\n if (this.viewOptions.showTicksValues &&\n !ValueHelper.isNullOrUndefined(tickValueStep) &&\n MathHelper.isModuloWithinPrecisionLimit(value, tickValueStep, this.viewOptions.precisionLimit)) {\n tick.value = this.getDisplayValue(value, LabelType.TickValue);\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.ticksValuesTooltip)) {\n tick.valueTooltip = this.viewOptions.ticksValuesTooltip(value);\n tick.valueTooltipPlacement = this.viewOptions.vertical\n ? 'right'\n : 'top';\n }\n }\n let legend = null;\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.stepsArray)) {\n const step = this.viewOptions.stepsArray[value];\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.getStepLegend)) {\n legend = this.viewOptions.getStepLegend(step);\n }\n else if (!ValueHelper.isNullOrUndefined(step)) {\n legend = step.legend;\n }\n }\n else if (!ValueHelper.isNullOrUndefined(this.viewOptions.getLegend)) {\n legend = this.viewOptions.getLegend(value);\n }\n if (!ValueHelper.isNullOrUndefined(legend)) {\n tick.legend = legend;\n hasAtLeastOneLegend = true;\n }\n return tick;\n });\n if (this.sliderElementWithLegendClass !== hasAtLeastOneLegend) {\n setTimeout(() => {\n this.sliderElementWithLegendClass = hasAtLeastOneLegend;\n });\n }\n // We should avoid re-creating the ticks array if possible\n // This both improves performance and makes CSS animations work correctly\n if (!ValueHelper.isNullOrUndefined(this.ticks) &&\n this.ticks.length === newTicks.length) {\n for (let i = 0; i < newTicks.length; ++i) {\n Object.assign(this.ticks[i], newTicks[i]);\n }\n }\n else {\n this.ticks = newTicks;\n if (!this.isRefDestroyed()) {\n this.changeDetectionRef.detectChanges();\n }\n }\n }\n getTicksArray() {\n if (!this.viewOptions.showTicks) {\n return [];\n }\n const step = !ValueHelper.isNullOrUndefined(this.viewOptions.tickStep)\n ? this.viewOptions.tickStep\n : this.viewOptions.step;\n const ticksArray = [];\n const numberOfValues = 1 +\n Math.floor(MathHelper.roundToPrecisionLimit(Math.abs(this.viewOptions.ceil - this.viewOptions.floor) / step, this.viewOptions.precisionLimit));\n for (let index = 0; index < numberOfValues; ++index) {\n ticksArray.push(MathHelper.roundToPrecisionLimit(this.viewOptions.floor + step * index, this.viewOptions.precisionLimit));\n }\n return ticksArray;\n }\n isTickSelected(value) {\n if (!this.range) {\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.showSelectionBarFromValue)) {\n const center = this.viewOptions.showSelectionBarFromValue;\n if (this.viewLowValue > center &&\n value >= center &&\n value <= this.viewLowValue) {\n return true;\n }\n else if (this.viewLowValue < center &&\n value <= center &&\n value >= this.viewLowValue) {\n return true;\n }\n }\n else if (this.viewOptions.showSelectionBarEnd) {\n if (value >= this.viewLowValue) {\n return true;\n }\n }\n else if (this.viewOptions.showSelectionBar &&\n value <= this.viewLowValue) {\n return true;\n }\n }\n if (this.range &&\n value >= this.viewLowValue &&\n value <= this.viewHighValue) {\n return true;\n }\n return false;\n }\n // Update position of the floor label\n updateFloorLabel() {\n if (!this.floorLabelElement.alwaysHide) {\n this.floorLabelElement.setValue(this.getDisplayValue(this.viewOptions.floor, LabelType.Floor));\n this.floorLabelElement.calculateDimension();\n const position = this.viewOptions.rightToLeft\n ? this.fullBarElement.dimension - this.floorLabelElement.dimension\n : 0;\n this.floorLabelElement.setPosition(position);\n }\n }\n // Update position of the ceiling label\n updateCeilLabel() {\n if (!this.ceilLabelElement.alwaysHide) {\n this.ceilLabelElement.setValue(this.getDisplayValue(this.viewOptions.ceil, LabelType.Ceil));\n this.ceilLabelElement.calculateDimension();\n const position = this.viewOptions.rightToLeft\n ? 0\n : this.fullBarElement.dimension - this.ceilLabelElement.dimension;\n this.ceilLabelElement.setPosition(position);\n }\n }\n // Update slider handles and label positions\n updateHandles(which, newPos) {\n if (which === PointerType.Min) {\n this.updateLowHandle(newPos);\n }\n else if (which === PointerType.Max) {\n this.updateHighHandle(newPos);\n }\n this.updateSelectionBar();\n this.updateTicksScale();\n if (this.range) {\n this.updateCombinedLabel();\n }\n }\n // Helper function to work out the position for handle labels depending on RTL or not\n getHandleLabelPos(labelType, newPos) {\n const labelDimension = labelType === PointerType.Min\n ? this.minHandleLabelElement.dimension\n : this.maxHandleLabelElement.dimension;\n const nearHandlePos = newPos - labelDimension / 2 + this.handleHalfDimension;\n const endOfBarPos = this.fullBarElement.dimension - labelDimension;\n if (!this.viewOptions.boundPointerLabels) {\n return nearHandlePos;\n }\n if ((this.viewOptions.rightToLeft && labelType === PointerType.Min) ||\n (!this.viewOptions.rightToLeft && labelType === PointerType.Max)) {\n return Math.min(nearHandlePos, endOfBarPos);\n }\n else {\n return Math.min(Math.max(nearHandlePos, 0), endOfBarPos);\n }\n }\n // Update low slider handle position and label\n updateLowHandle(newPos) {\n this.minHandleElement.setPosition(newPos);\n this.minHandleLabelElement.setValue(this.getDisplayValue(this.viewLowValue, LabelType.Low));\n this.minHandleLabelElement.setPosition(this.getHandleLabelPos(PointerType.Min, newPos));\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.getPointerColor)) {\n this.minPointerStyle = {\n backgroundColor: this.getPointerColor(PointerType.Min),\n };\n }\n if (this.viewOptions.autoHideLimitLabels) {\n this.updateFloorAndCeilLabelsVisibility();\n }\n }\n // Update high slider handle position and label\n updateHighHandle(newPos) {\n this.maxHandleElement.setPosition(newPos);\n this.maxHandleLabelElement.setValue(this.getDisplayValue(this.viewHighValue, LabelType.High));\n this.maxHandleLabelElement.setPosition(this.getHandleLabelPos(PointerType.Max, newPos));\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.getPointerColor)) {\n this.maxPointerStyle = {\n backgroundColor: this.getPointerColor(PointerType.Max),\n };\n }\n if (this.viewOptions.autoHideLimitLabels) {\n this.updateFloorAndCeilLabelsVisibility();\n }\n }\n // Show/hide floor/ceiling label\n updateFloorAndCeilLabelsVisibility() {\n // Show based only on hideLimitLabels if pointer labels are hidden\n if (this.viewOptions.hidePointerLabels) {\n return;\n }\n let floorLabelHidden = false;\n let ceilLabelHidden = false;\n const isMinLabelAtFloor = this.isLabelBelowFloorLabel(this.minHandleLabelElement);\n const isMinLabelAtCeil = this.isLabelAboveCeilLabel(this.minHandleLabelElement);\n const isMaxLabelAtCeil = this.isLabelAboveCeilLabel(this.maxHandleLabelElement);\n const isCombinedLabelAtFloor = this.isLabelBelowFloorLabel(this.combinedLabelElement);\n const isCombinedLabelAtCeil = this.isLabelAboveCeilLabel(this.combinedLabelElement);\n if (isMinLabelAtFloor) {\n floorLabelHidden = true;\n this.floorLabelElement.hide();\n }\n else {\n floorLabelHidden = false;\n this.floorLabelElement.show();\n }\n if (isMinLabelAtCeil) {\n ceilLabelHidden = true;\n this.ceilLabelElement.hide();\n }\n else {\n ceilLabelHidden = false;\n this.ceilLabelElement.show();\n }\n if (this.range) {\n const hideCeil = this.combinedLabelElement.isVisible()\n ? isCombinedLabelAtCeil\n : isMaxLabelAtCeil;\n const hideFloor = this.combinedLabelElement.isVisible()\n ? isCombinedLabelAtFloor\n : isMinLabelAtFloor;\n if (hideCeil) {\n this.ceilLabelElement.hide();\n }\n else if (!ceilLabelHidden) {\n this.ceilLabelElement.show();\n }\n // Hide or show floor label\n if (hideFloor) {\n this.floorLabelElement.hide();\n }\n else if (!floorLabelHidden) {\n this.floorLabelElement.show();\n }\n }\n }\n isLabelBelowFloorLabel(label) {\n const pos = label.position;\n const dim = label.dimension;\n const floorPos = this.floorLabelElement.position;\n const floorDim = this.floorLabelElement.dimension;\n return this.viewOptions.rightToLeft\n ? pos + dim >= floorPos - 2\n : pos <= floorPos + floorDim + 2;\n }\n isLabelAboveCeilLabel(label) {\n const pos = label.position;\n const dim = label.dimension;\n const ceilPos = this.ceilLabelElement.position;\n const ceilDim = this.ceilLabelElement.dimension;\n return this.viewOptions.rightToLeft\n ? pos <= ceilPos + ceilDim + 2\n : pos + dim >= ceilPos - 2;\n }\n // Update slider selection bar, combined label and range label\n updateSelectionBar() {\n let position = 0;\n let dimension = 0;\n const isSelectionBarFromRight = this.viewOptions.rightToLeft\n ? !this.viewOptions.showSelectionBarEnd\n : this.viewOptions.showSelectionBarEnd;\n const positionForRange = this.viewOptions.rightToLeft\n ? this.maxHandleElement.position + this.handleHalfDimension\n : this.minHandleElement.position + this.handleHalfDimension;\n if (this.range) {\n dimension = Math.abs(this.maxHandleElement.position - this.minHandleElement.position);\n position = positionForRange;\n }\n else {\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.showSelectionBarFromValue)) {\n const center = this.viewOptions.showSelectionBarFromValue;\n const centerPosition = this.valueToPosition(center);\n const isModelGreaterThanCenter = this.viewOptions.rightToLeft\n ? this.viewLowValue <= center\n : this.viewLowValue > center;\n if (isModelGreaterThanCenter) {\n dimension = this.minHandleElement.position - centerPosition;\n position = centerPosition + this.handleHalfDimension;\n }\n else {\n dimension = centerPosition - this.minHandleElement.position;\n position = this.minHandleElement.position + this.handleHalfDimension;\n }\n }\n else if (isSelectionBarFromRight) {\n dimension = Math.ceil(Math.abs(this.maxHandlePosition - this.minHandleElement.position) +\n this.handleHalfDimension);\n position = Math.floor(this.minHandleElement.position + this.handleHalfDimension);\n }\n else {\n dimension = this.minHandleElement.position + this.handleHalfDimension;\n position = 0;\n }\n }\n this.selectionBarElement.setDimension(dimension);\n this.selectionBarElement.setPosition(position);\n if (this.range && this.viewOptions.showOuterSelectionBars) {\n if (this.viewOptions.rightToLeft) {\n this.rightOuterSelectionBarElement.setDimension(position);\n this.rightOuterSelectionBarElement.setPosition(0);\n this.fullBarElement.calculateDimension();\n this.leftOuterSelectionBarElement.setDimension(this.fullBarElement.dimension - (position + dimension));\n this.leftOuterSelectionBarElement.setPosition(position + dimension);\n }\n else {\n this.leftOuterSelectionBarElement.setDimension(position);\n this.leftOuterSelectionBarElement.setPosition(0);\n this.fullBarElement.calculateDimension();\n this.rightOuterSelectionBarElement.setDimension(this.fullBarElement.dimension - (position + dimension));\n this.rightOuterSelectionBarElement.setPosition(position + dimension);\n }\n }\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.getSelectionBarColor)) {\n const color = this.getSelectionBarColor();\n this.barStyle = {\n backgroundColor: color,\n };\n }\n else if (!ValueHelper.isNullOrUndefined(this.viewOptions.selectionBarGradient)) {\n const offset = !ValueHelper.isNullOrUndefined(this.viewOptions.showSelectionBarFromValue)\n ? this.valueToPosition(this.viewOptions.showSelectionBarFromValue)\n : 0;\n const reversed = (offset - position > 0 && !isSelectionBarFromRight) ||\n (offset - position <= 0 && isSelectionBarFromRight);\n const direction = this.viewOptions.vertical\n ? reversed\n ? 'bottom'\n : 'top'\n : reversed\n ? 'left'\n : 'right';\n this.barStyle = {\n backgroundImage: 'linear-gradient(to ' +\n direction +\n ', ' +\n this.viewOptions.selectionBarGradient.from +\n ' 0%,' +\n this.viewOptions.selectionBarGradient.to +\n ' 100%)',\n };\n if (this.viewOptions.vertical) {\n this.barStyle.backgroundPosition =\n 'center ' +\n (offset +\n dimension +\n position +\n (reversed ? -this.handleHalfDimension : 0)) +\n 'px';\n this.barStyle.backgroundSize =\n '100% ' +\n (this.fullBarElement.dimension - this.handleHalfDimension) +\n 'px';\n }\n else {\n this.barStyle.backgroundPosition =\n offset -\n position +\n (reversed ? this.handleHalfDimension : 0) +\n 'px center';\n this.barStyle.backgroundSize =\n this.fullBarElement.dimension - this.handleHalfDimension + 'px 100%';\n }\n }\n }\n // Wrapper around the getSelectionBarColor of the user to pass to correct parameters\n getSelectionBarColor() {\n if (this.range) {\n return this.viewOptions.getSelectionBarColor(this.value, this.highValue);\n }\n return this.viewOptions.getSelectionBarColor(this.value);\n }\n // Wrapper around the getPointerColor of the user to pass to correct parameters\n getPointerColor(pointerType) {\n if (pointerType === PointerType.Max) {\n return this.viewOptions.getPointerColor(this.highValue, pointerType);\n }\n return this.viewOptions.getPointerColor(this.value, pointerType);\n }\n // Wrapper around the getTickColor of the user to pass to correct parameters\n getTickColor(value) {\n return this.viewOptions.getTickColor(value);\n }\n // Update combined label position and value\n updateCombinedLabel() {\n let isLabelOverlap = null;\n if (this.viewOptions.rightToLeft) {\n isLabelOverlap =\n this.minHandleLabelElement.position -\n this.minHandleLabelElement.dimension -\n 10 <=\n this.maxHandleLabelElement.position;\n }\n else {\n isLabelOverlap =\n this.minHandleLabelElement.position +\n this.minHandleLabelElement.dimension +\n 10 >=\n this.maxHandleLabelElement.position;\n }\n if (isLabelOverlap) {\n const lowDisplayValue = this.getDisplayValue(this.viewLowValue, LabelType.Low);\n const highDisplayValue = this.getDisplayValue(this.viewHighValue, LabelType.High);\n const combinedLabelValue = this.viewOptions.rightToLeft\n ? this.viewOptions.combineLabels(highDisplayValue, lowDisplayValue)\n : this.viewOptions.combineLabels(lowDisplayValue, highDisplayValue);\n this.combinedLabelElement.setValue(combinedLabelValue);\n const pos = this.viewOptions.boundPointerLabels\n ? Math.min(Math.max(this.selectionBarElement.position +\n this.selectionBarElement.dimension / 2 -\n this.combinedLabelElement.dimension / 2, 0), this.fullBarElement.dimension - this.combinedLabelElement.dimension)\n : this.selectionBarElement.position +\n this.selectionBarElement.dimension / 2 -\n this.combinedLabelElement.dimension / 2;\n this.combinedLabelElement.setPosition(pos);\n this.minHandleLabelElement.hide();\n this.maxHandleLabelElement.hide();\n this.combinedLabelElement.show();\n }\n else {\n this.updateHighHandle(this.valueToPosition(this.viewHighValue));\n this.updateLowHandle(this.valueToPosition(this.viewLowValue));\n this.maxHandleLabelElement.show();\n this.minHandleLabelElement.show();\n this.combinedLabelElement.hide();\n }\n if (this.viewOptions.autoHideLimitLabels) {\n this.updateFloorAndCeilLabelsVisibility();\n }\n }\n // Return the translated value if a translate function is provided else the original value\n getDisplayValue(value, which) {\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.stepsArray) &&\n !this.viewOptions.bindIndexForStepsArray) {\n value = this.getStepValue(value);\n }\n return this.viewOptions.translate(value, which);\n }\n // Round value to step and precision based on minValue\n roundStep(value, customStep) {\n const step = !ValueHelper.isNullOrUndefined(customStep)\n ? customStep\n : this.viewOptions.step;\n let steppedDifference = MathHelper.roundToPrecisionLimit((value - this.viewOptions.floor) / step, this.viewOptions.precisionLimit);\n steppedDifference = Math.round(steppedDifference) * step;\n return MathHelper.roundToPrecisionLimit(this.viewOptions.floor + steppedDifference, this.viewOptions.precisionLimit);\n }\n // Translate value to pixel position\n valueToPosition(val) {\n let fn = ValueHelper.linearValueToPosition;\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.customValueToPosition)) {\n fn = this.viewOptions.customValueToPosition;\n }\n else if (this.viewOptions.logScale) {\n fn = ValueHelper.logValueToPosition;\n }\n val = MathHelper.clampToRange(val, this.viewOptions.floor, this.viewOptions.ceil);\n let percent = fn(val, this.viewOptions.floor, this.viewOptions.ceil);\n if (ValueHelper.isNullOrUndefined(percent)) {\n percent = 0;\n }\n if (this.viewOptions.rightToLeft) {\n percent = 1 - percent;\n }\n return percent * this.maxHandlePosition;\n }\n // Translate position to model value\n positionToValue(position) {\n let percent = position / this.maxHandlePosition;\n if (this.viewOptions.rightToLeft) {\n percent = 1 - percent;\n }\n let fn = ValueHelper.linearPositionToValue;\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.customPositionToValue)) {\n fn = this.viewOptions.customPositionToValue;\n }\n else if (this.viewOptions.logScale) {\n fn = ValueHelper.logPositionToValue;\n }\n const value = fn(percent, this.viewOptions.floor, this.viewOptions.ceil);\n return !ValueHelper.isNullOrUndefined(value) ? value : 0;\n }\n // Get the X-coordinate or Y-coordinate of an event\n getEventXY(event, targetTouchId) {\n if (event instanceof MouseEvent) {\n return this.viewOptions.vertical || this.viewOptions.rotate !== 0\n ? event.clientY\n : event.clientX;\n }\n let touchIndex = 0;\n const touches = event.touches;\n if (!ValueHelper.isNullOrUndefined(targetTouchId)) {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i].identifier === targetTouchId) {\n touchIndex = i;\n break;\n }\n }\n }\n // Return the target touch or if the target touch was not found in the event\n // returns the coordinates of the first touch\n return this.viewOptions.vertical || this.viewOptions.rotate !== 0\n ? touches[touchIndex].clientY\n : touches[touchIndex].clientX;\n }\n // Compute the event position depending on whether the slider is horizontal or vertical\n getEventPosition(event, targetTouchId) {\n const sliderElementBoundingRect = this.elementRef.nativeElement.getBoundingClientRect();\n const sliderPos = this.viewOptions.vertical || this.viewOptions.rotate !== 0\n ? sliderElementBoundingRect.bottom\n : sliderElementBoundingRect.left;\n let eventPos = 0;\n if (this.viewOptions.vertical || this.viewOptions.rotate !== 0) {\n eventPos = -this.getEventXY(event, targetTouchId) + sliderPos;\n }\n else {\n eventPos = this.getEventXY(event, targetTouchId) - sliderPos;\n }\n return eventPos * this.viewOptions.scale - this.handleHalfDimension;\n }\n // Get the handle closest to an event\n getNearestHandle(event) {\n if (!this.range) {\n return PointerType.Min;\n }\n const position = this.getEventPosition(event);\n const distanceMin = Math.abs(position - this.minHandleElement.position);\n const distanceMax = Math.abs(position - this.maxHandleElement.position);\n if (distanceMin < distanceMax) {\n return PointerType.Min;\n }\n else if (distanceMin > distanceMax) {\n return PointerType.Max;\n }\n else if (!this.viewOptions.rightToLeft) {\n // if event is at the same distance from min/max then if it's at left of minH, we return minH else maxH\n return position < this.minHandleElement.position\n ? PointerType.Min\n : PointerType.Max;\n }\n // reverse in rtl\n return position > this.minHandleElement.position\n ? PointerType.Min\n : PointerType.Max;\n }\n // Bind mouse and touch events to slider handles\n bindEvents() {\n const draggableRange = this.viewOptions.draggableRange;\n if (!this.viewOptions.onlyBindHandles) {\n this.selectionBarElement.on('mousedown', (event) => this.onBarStart(null, draggableRange, event, true, true, true));\n }\n if (this.viewOptions.draggableRangeOnly) {\n this.minHandleElement.on('mousedown', (event) => this.onBarStart(PointerType.Min, draggableRange, event, true, true));\n this.maxHandleElement.on('mousedown', (event) => this.onBarStart(PointerType.Max, draggableRange, event, true, true));\n }\n else {\n this.minHandleElement.on('mousedown', (event) => this.onStart(PointerType.Min, event, true, true));\n if (this.range) {\n this.maxHandleElement.on('mousedown', (event) => this.onStart(PointerType.Max, event, true, true));\n }\n if (!this.viewOptions.onlyBindHandles) {\n this.fullBarElement.on('mousedown', (event) => this.onStart(null, event, true, true, true));\n this.ticksElement.on('mousedown', (event) => this.onStart(null, event, true, true, true, true));\n }\n }\n if (!this.viewOptions.onlyBindHandles) {\n this.selectionBarElement.onPassive('touchstart', (event) => this.onBarStart(null, draggableRange, event, true, true, true));\n }\n if (this.viewOptions.draggableRangeOnly) {\n this.minHandleElement.onPassive('touchstart', (event) => this.onBarStart(PointerType.Min, draggableRange, event, true, true));\n this.maxHandleElement.onPassive('touchstart', (event) => this.onBarStart(PointerType.Max, draggableRange, event, true, true));\n }\n else {\n this.minHandleElement.onPassive('touchstart', (event) => this.onStart(PointerType.Min, event, true, true));\n if (this.range) {\n this.maxHandleElement.onPassive('touchstart', (event) => this.onStart(PointerType.Max, event, true, true));\n }\n if (!this.viewOptions.onlyBindHandles) {\n this.fullBarElement.onPassive('touchstart', (event) => this.onStart(null, event, true, true, true));\n this.ticksElement.onPassive('touchstart', (event) => this.onStart(null, event, false, false, true, true));\n }\n }\n if (this.viewOptions.keyboardSupport) {\n this.minHandleElement.on('focus', () => this.onPointerFocus(PointerType.Min));\n if (this.range) {\n this.maxHandleElement.on('focus', () => this.onPointerFocus(PointerType.Max));\n }\n }\n }\n getOptionsInfluencingEventBindings(options) {\n return [\n options.disabled,\n options.readOnly,\n options.draggableRange,\n options.draggableRangeOnly,\n options.onlyBindHandles,\n options.keyboardSupport,\n ];\n }\n // Unbind mouse and touch events to slider handles\n unbindEvents() {\n this.unsubscribeOnMove();\n this.unsubscribeOnEnd();\n for (const element of this.getAllSliderElements()) {\n if (!ValueHelper.isNullOrUndefined(element)) {\n element.off();\n }\n }\n }\n onBarStart(pointerType, draggableRange, event, bindMove, bindEnd, simulateImmediateMove, simulateImmediateEnd) {\n if (draggableRange) {\n this.onDragStart(pointerType, event, bindMove, bindEnd);\n }\n else {\n this.onStart(pointerType, event, bindMove, bindEnd, simulateImmediateMove, simulateImmediateEnd);\n }\n }\n // onStart event handler\n onStart(pointerType, event, bindMove, bindEnd, simulateImmediateMove, simulateImmediateEnd) {\n event.stopPropagation();\n // Only call preventDefault() when handling non-passive events (passive events don't need it)\n if (!CompatibilityHelper.isTouchEvent(event) && !supportsPassiveEvents) {\n event.preventDefault();\n }\n this.moving = false;\n // We have to do this in case the HTML where the sliders are on\n // have been animated into view.\n this.calculateViewDimensions();\n if (ValueHelper.isNullOrUndefined(pointerType)) {\n pointerType = this.getNearestHandle(event);\n }\n this.currentTrackingPointer = pointerType;\n const pointerElement = this.getPointerElement(pointerType);\n pointerElement.active = true;\n if (this.viewOptions.keyboardSupport) {\n pointerElement.focus();\n }\n if (bindMove) {\n this.unsubscribeOnMove();\n const onMoveCallback = (e) => (this.dragging.active ? this.onDragMove(e) : this.onMove(e));\n if (CompatibilityHelper.isTouchEvent(event)) {\n this.onMoveEventListener =\n this.eventListenerHelper.attachPassiveEventListener(document, 'touchmove', onMoveCallback);\n }\n else {\n this.onMoveEventListener = this.eventListenerHelper.attachEventListener(document, 'mousemove', onMoveCallback);\n }\n }\n if (bindEnd) {\n this.unsubscribeOnEnd();\n const onEndCallback = (e) => this.onEnd(e);\n if (CompatibilityHelper.isTouchEvent(event)) {\n this.onEndEventListener =\n this.eventListenerHelper.attachPassiveEventListener(document, 'touchend', onEndCallback);\n }\n else {\n this.onEndEventListener = this.eventListenerHelper.attachEventListener(document, 'mouseup', onEndCallback);\n }\n }\n this.userChangeStart.emit(this.getChangeContext());\n if (CompatibilityHelper.isTouchEvent(event) &&\n !ValueHelper.isNullOrUndefined(event.changedTouches)) {\n // Store the touch identifier\n if (ValueHelper.isNullOrUndefined(this.touchId)) {\n this.touchId = event.changedTouches[0].identifier;\n }\n }\n // Click events, either with mouse or touch gesture are weird. Sometimes they result in full\n // start, move, end sequence, and sometimes, they don't - they only invoke mousedown\n // As a workaround, we simulate the first move event and the end event if it's necessary\n if (simulateImmediateMove) {\n this.onMove(event, true);\n }\n if (simulateImmediateEnd) {\n this.onEnd(event);\n }\n }\n // onMove event handler\n onMove(event, fromTick) {\n let touchForThisSlider = null;\n if (CompatibilityHelper.isTouchEvent(event)) {\n const changedTouches = event.changedTouches;\n for (let i = 0; i < changedTouches.length; i++) {\n if (changedTouches[i].identifier === this.touchId) {\n touchForThisSlider = changedTouches[i];\n break;\n }\n }\n if (ValueHelper.isNullOrUndefined(touchForThisSlider)) {\n return;\n }\n }\n if (this.viewOptions.animate && !this.viewOptions.animateOnMove) {\n if (this.moving) {\n this.sliderElementAnimateClass = false;\n }\n }\n this.moving = true;\n const newPos = !ValueHelper.isNullOrUndefined(touchForThisSlider)\n ? this.getEventPosition(event, touchForThisSlider.identifier)\n : this.getEventPosition(event);\n let newValue;\n const ceilValue = this.viewOptions.rightToLeft\n ? this.viewOptions.floor\n : this.viewOptions.ceil;\n const floorValue = this.viewOptions.rightToLeft\n ? this.viewOptions.ceil\n : this.viewOptions.floor;\n if (newPos <= 0) {\n newValue = floorValue;\n }\n else if (newPos >= this.maxHandlePosition) {\n newValue = ceilValue;\n }\n else {\n newValue = this.positionToValue(newPos);\n if (fromTick &&\n !ValueHelper.isNullOrUndefined(this.viewOptions.tickStep)) {\n newValue = this.roundStep(newValue, this.viewOptions.tickStep);\n }\n else {\n newValue = this.roundStep(newValue);\n }\n }\n this.positionTrackingHandle(newValue);\n }\n onEnd(event) {\n if (CompatibilityHelper.isTouchEvent(event)) {\n const changedTouches = event.changedTouches;\n if (changedTouches[0].identifier !== this.touchId) {\n return;\n }\n }\n this.moving = false;\n if (this.viewOptions.animate) {\n this.sliderElementAnimateClass = true;\n }\n this.touchId = null;\n if (!this.viewOptions.keyboardSupport) {\n this.minHandleElement.active = false;\n this.maxHandleElement.active = false;\n this.currentTrackingPointer = null;\n }\n this.dragging.active = false;\n this.unsubscribeOnMove();\n this.unsubscribeOnEnd();\n this.userChangeEnd.emit(this.getChangeContext());\n }\n onPointerFocus(pointerType) {\n const pointerElement = this.getPointerElement(pointerType);\n pointerElement.on('blur', () => this.onPointerBlur(pointerElement));\n pointerElement.on('keydown', (event) => this.onKeyboardEvent(event));\n pointerElement.on('keyup', () => this.onKeyUp());\n pointerElement.active = true;\n this.currentTrackingPointer = pointerType;\n this.currentFocusPointer = pointerType;\n this.firstKeyDown = true;\n }\n onKeyUp() {\n this.firstKeyDown = true;\n this.userChangeEnd.emit(this.getChangeContext());\n }\n onPointerBlur(pointer) {\n pointer.off('blur');\n pointer.off('keydown');\n pointer.off('keyup');\n pointer.active = false;\n if (ValueHelper.isNullOrUndefined(this.touchId)) {\n this.currentTrackingPointer = null;\n this.currentFocusPointer = null;\n }\n }\n getKeyActions(currentValue) {\n const valueRange = this.viewOptions.ceil - this.viewOptions.floor;\n let increaseStep = currentValue + this.viewOptions.step;\n let decreaseStep = currentValue - this.viewOptions.step;\n let increasePage = currentValue + valueRange / 10;\n let decreasePage = currentValue - valueRange / 10;\n if (this.viewOptions.reversedControls) {\n increaseStep = currentValue - this.viewOptions.step;\n decreaseStep = currentValue + this.viewOptions.step;\n increasePage = currentValue - valueRange / 10;\n decreasePage = currentValue + valueRange / 10;\n }\n // Left to right default actions\n const actions = {\n UP: increaseStep,\n DOWN: decreaseStep,\n LEFT: decreaseStep,\n RIGHT: increaseStep,\n PAGEUP: increasePage,\n PAGEDOWN: decreasePage,\n HOME: this.viewOptions.reversedControls\n ? this.viewOptions.ceil\n : this.viewOptions.floor,\n END: this.viewOptions.reversedControls\n ? this.viewOptions.floor\n : this.viewOptions.ceil,\n };\n // right to left means swapping right and left arrows\n if (this.viewOptions.rightToLeft) {\n actions.LEFT = increaseStep;\n actions.RIGHT = decreaseStep;\n // right to left and vertical means we also swap up and down\n if (this.viewOptions.vertical || this.viewOptions.rotate !== 0) {\n actions.UP = decreaseStep;\n actions.DOWN = increaseStep;\n }\n }\n return actions;\n }\n onKeyboardEvent(event) {\n const currentValue = this.getCurrentTrackingValue();\n const keyCode = !ValueHelper.isNullOrUndefined(event.keyCode)\n ? event.keyCode\n : event.which;\n const keys = {\n 38: 'UP',\n 40: 'DOWN',\n 37: 'LEFT',\n 39: 'RIGHT',\n 33: 'PAGEUP',\n 34: 'PAGEDOWN',\n 36: 'HOME',\n 35: 'END',\n };\n const actions = this.getKeyActions(currentValue);\n const key = keys[keyCode];\n const action = actions[key];\n if (ValueHelper.isNullOrUndefined(action) ||\n ValueHelper.isNullOrUndefined(this.currentTrackingPointer)) {\n return;\n }\n event.preventDefault();\n if (this.firstKeyDown) {\n this.firstKeyDown = false;\n this.userChangeStart.emit(this.getChangeContext());\n }\n const actionValue = MathHelper.clampToRange(action, this.viewOptions.floor, this.viewOptions.ceil);\n const newValue = this.roundStep(actionValue);\n if (!this.viewOptions.draggableRangeOnly) {\n this.positionTrackingHandle(newValue);\n }\n else {\n const difference = this.viewHighValue - this.viewLowValue;\n let newMinValue;\n let newMaxValue;\n if (this.currentTrackingPointer === PointerType.Min) {\n newMinValue = newValue;\n newMaxValue = newValue + difference;\n if (newMaxValue > this.viewOptions.ceil) {\n newMaxValue = this.viewOptions.ceil;\n newMinValue = newMaxValue - difference;\n }\n }\n else if (this.currentTrackingPointer === PointerType.Max) {\n newMaxValue = newValue;\n newMinValue = newValue - difference;\n if (newMinValue < this.viewOptions.floor) {\n newMinValue = this.viewOptions.floor;\n newMaxValue = newMinValue + difference;\n }\n }\n this.positionTrackingBar(newMinValue, newMaxValue);\n }\n }\n // onDragStart event handler, handles dragging of the middle bar\n onDragStart(pointerType, event, bindMove, bindEnd) {\n const position = this.getEventPosition(event);\n this.dragging = new Dragging();\n this.dragging.active = true;\n this.dragging.value = this.positionToValue(position);\n this.dragging.difference = this.viewHighValue - this.viewLowValue;\n this.dragging.lowLimit = this.viewOptions.rightToLeft\n ? this.minHandleElement.position - position\n : position - this.minHandleElement.position;\n this.dragging.highLimit = this.viewOptions.rightToLeft\n ? position - this.maxHandleElement.position\n : this.maxHandleElement.position - position;\n this.onStart(pointerType, event, bindMove, bindEnd);\n }\n /** Get min value depending on whether the newPos is outOfBounds above or below the bar and rightToLeft */\n getMinValue(newPos, outOfBounds, isAbove) {\n const isRTL = this.viewOptions.rightToLeft;\n let value = null;\n if (outOfBounds) {\n if (isAbove) {\n value = isRTL\n ? this.viewOptions.floor\n : this.viewOptions.ceil - this.dragging.difference;\n }\n else {\n value = isRTL\n ? this.viewOptions.ceil - this.dragging.difference\n : this.viewOptions.floor;\n }\n }\n else {\n value = isRTL\n ? this.positionToValue(newPos + this.dragging.lowLimit)\n : this.positionToValue(newPos - this.dragging.lowLimit);\n }\n return this.roundStep(value);\n }\n /** Get max value depending on whether the newPos is outOfBounds above or below the bar and rightToLeft */\n getMaxValue(newPos, outOfBounds, isAbove) {\n const isRTL = this.viewOptions.rightToLeft;\n let value = null;\n if (outOfBounds) {\n if (isAbove) {\n value = isRTL\n ? this.viewOptions.floor + this.dragging.difference\n : this.viewOptions.ceil;\n }\n else {\n value = isRTL\n ? this.viewOptions.ceil\n : this.viewOptions.floor + this.dragging.difference;\n }\n }\n else {\n if (isRTL) {\n value =\n this.positionToValue(newPos + this.dragging.lowLimit) +\n this.dragging.difference;\n }\n else {\n value =\n this.positionToValue(newPos - this.dragging.lowLimit) +\n this.dragging.difference;\n }\n }\n return this.roundStep(value);\n }\n onDragMove(event) {\n const newPos = this.getEventPosition(event);\n if (this.viewOptions.animate && !this.viewOptions.animateOnMove) {\n if (this.moving) {\n this.sliderElementAnimateClass = false;\n }\n }\n this.moving = true;\n let ceilLimit, floorLimit, floorHandleElement, ceilHandleElement;\n if (this.viewOptions.rightToLeft) {\n ceilLimit = this.dragging.lowLimit;\n floorLimit = this.dragging.highLimit;\n floorHandleElement = this.maxHandleElement;\n ceilHandleElement = this.minHandleElement;\n }\n else {\n ceilLimit = this.dragging.highLimit;\n floorLimit = this.dragging.lowLimit;\n floorHandleElement = this.minHandleElement;\n ceilHandleElement = this.maxHandleElement;\n }\n const isUnderFloorLimit = newPos <= floorLimit;\n const isOverCeilLimit = newPos >= this.maxHandlePosition - ceilLimit;\n let newMinValue;\n let newMaxValue;\n if (isUnderFloorLimit) {\n if (floorHandleElement.position === 0) {\n return;\n }\n newMinValue = this.getMinValue(newPos, true, false);\n newMaxValue = this.getMaxValue(newPos, true, false);\n }\n else if (isOverCeilLimit) {\n if (ceilHandleElement.position === this.maxHandlePosition) {\n return;\n }\n newMaxValue = this.getMaxValue(newPos, true, true);\n newMinValue = this.getMinValue(newPos, true, true);\n }\n else {\n newMinValue = this.getMinValue(newPos, false, false);\n newMaxValue = this.getMaxValue(newPos, false, false);\n }\n this.positionTrackingBar(newMinValue, newMaxValue);\n }\n // Set the new value and position for the entire bar\n positionTrackingBar(newMinValue, newMaxValue) {\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.minLimit) &&\n newMinValue < this.viewOptions.minLimit) {\n newMinValue = this.viewOptions.minLimit;\n newMaxValue = MathHelper.roundToPrecisionLimit(newMinValue + this.dragging.difference, this.viewOptions.precisionLimit);\n }\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.maxLimit) &&\n newMaxValue > this.viewOptions.maxLimit) {\n newMaxValue = this.viewOptions.maxLimit;\n newMinValue = MathHelper.roundToPrecisionLimit(newMaxValue - this.dragging.difference, this.viewOptions.precisionLimit);\n }\n this.viewLowValue = newMinValue;\n this.viewHighValue = newMaxValue;\n this.applyViewChange();\n this.updateHandles(PointerType.Min, this.valueToPosition(newMinValue));\n this.updateHandles(PointerType.Max, this.valueToPosition(newMaxValue));\n }\n // Set the new value and position to the current tracking handle\n positionTrackingHandle(newValue) {\n newValue = this.applyMinMaxLimit(newValue);\n if (this.range) {\n if (this.viewOptions.pushRange) {\n newValue = this.applyPushRange(newValue);\n }\n else {\n if (this.viewOptions.noSwitching) {\n if (this.currentTrackingPointer === PointerType.Min &&\n newValue > this.viewHighValue) {\n newValue = this.applyMinMaxRange(this.viewHighValue);\n }\n else if (this.currentTrackingPointer === PointerType.Max &&\n newValue < this.viewLowValue) {\n newValue = this.applyMinMaxRange(this.viewLowValue);\n }\n }\n newValue = this.applyMinMaxRange(newValue);\n /* This is to check if we need to switch the min and max handles */\n if (this.currentTrackingPointer === PointerType.Min &&\n newValue > this.viewHighValue) {\n this.viewLowValue = this.viewHighValue;\n this.applyViewChange();\n this.updateHandles(PointerType.Min, this.maxHandleElement.position);\n this.updateAriaAttributes();\n this.currentTrackingPointer = PointerType.Max;\n this.minHandleElement.active = false;\n this.maxHandleElement.active = true;\n if (this.viewOptions.keyboardSupport) {\n this.maxHandleElement.focus();\n }\n }\n else if (this.currentTrackingPointer === PointerType.Max &&\n newValue < this.viewLowValue) {\n this.viewHighValue = this.viewLowValue;\n this.applyViewChange();\n this.updateHandles(PointerType.Max, this.minHandleElement.position);\n this.updateAriaAttributes();\n this.currentTrackingPointer = PointerType.Min;\n this.maxHandleElement.active = false;\n this.minHandleElement.active = true;\n if (this.viewOptions.keyboardSupport) {\n this.minHandleElement.focus();\n }\n }\n }\n }\n if (this.getCurrentTrackingValue() !== newValue) {\n if (this.currentTrackingPointer === PointerType.Min) {\n this.viewLowValue = newValue;\n this.applyViewChange();\n }\n else if (this.currentTrackingPointer === PointerType.Max) {\n this.viewHighValue = newValue;\n this.applyViewChange();\n }\n this.updateHandles(this.currentTrackingPointer, this.valueToPosition(newValue));\n this.updateAriaAttributes();\n }\n }\n applyMinMaxLimit(newValue) {\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.minLimit) &&\n newValue < this.viewOptions.minLimit) {\n return this.viewOptions.minLimit;\n }\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.maxLimit) &&\n newValue > this.viewOptions.maxLimit) {\n return this.viewOptions.maxLimit;\n }\n return newValue;\n }\n applyMinMaxRange(newValue) {\n const oppositeValue = this.currentTrackingPointer === PointerType.Min\n ? this.viewHighValue\n : this.viewLowValue;\n const difference = Math.abs(newValue - oppositeValue);\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.minRange)) {\n if (difference < this.viewOptions.minRange) {\n if (this.currentTrackingPointer === PointerType.Min) {\n return MathHelper.roundToPrecisionLimit(this.viewHighValue - this.viewOptions.minRange, this.viewOptions.precisionLimit);\n }\n else if (this.currentTrackingPointer === PointerType.Max) {\n return MathHelper.roundToPrecisionLimit(this.viewLowValue + this.viewOptions.minRange, this.viewOptions.precisionLimit);\n }\n }\n }\n if (!ValueHelper.isNullOrUndefined(this.viewOptions.maxRange)) {\n if (difference > this.viewOptions.maxRange) {\n if (this.currentTrackingPointer === PointerType.Min) {\n return MathHelper.roundToPrecisionLimit(this.viewHighValue - this.viewOptions.maxRange, this.viewOptions.precisionLimit);\n }\n else if (this.currentTrackingPointer === PointerType.Max) {\n return MathHelper.roundToPrecisionLimit(this.viewLowValue + this.viewOptions.maxRange, this.viewOptions.precisionLimit);\n }\n }\n }\n return newValue;\n }\n applyPushRange(newValue) {\n const difference = this.currentTrackingPointer === PointerType.Min\n ? this.viewHighValue - newValue\n : newValue - this.viewLowValue;\n const minRange = !ValueHelper.isNullOrUndefined(this.viewOptions.minRange)\n ? this.viewOptions.minRange\n : this.viewOptions.step;\n const maxRange = this.viewOptions.maxRange;\n // if smaller than minRange\n if (difference < minRange) {\n if (this.currentTrackingPointer === PointerType.Min) {\n this.viewHighValue = MathHelper.roundToPrecisionLimit(Math.min(newValue + minRange, this.viewOptions.ceil), this.viewOptions.precisionLimit);\n newValue = MathHelper.roundToPrecisionLimit(this.viewHighValue - minRange, this.viewOptions.precisionLimit);\n this.applyViewChange();\n this.updateHandles(PointerType.Max, this.valueToPosition(this.viewHighValue));\n }\n else if (this.currentTrackingPointer === PointerType.Max) {\n this.viewLowValue = MathHelper.roundToPrecisionLimit(Math.max(newValue - minRange, this.viewOptions.floor), this.viewOptions.precisionLimit);\n newValue = MathHelper.roundToPrecisionLimit(this.viewLowValue + minRange, this.viewOptions.precisionLimit);\n this.applyViewChange();\n this.updateHandles(PointerType.Min, this.valueToPosition(this.viewLowValue));\n }\n this.updateAriaAttributes();\n }\n else if (!ValueHelper.isNullOrUndefined(maxRange) &&\n difference > maxRange) {\n // if greater than maxRange\n if (this.currentTrackingPointer === PointerType.Min) {\n this.viewHighValue = MathHelper.roundToPrecisionLimit(newValue + maxRange, this.viewOptions.precisionLimit);\n this.applyViewChange();\n this.updateHandles(PointerType.Max, this.valueToPosition(this.viewHighValue));\n }\n else if (this.currentTrackingPointer === PointerType.Max) {\n this.viewLowValue = MathHelper.roundToPrecisionLimit(newValue - maxRange, this.viewOptions.precisionLimit);\n this.applyViewChange();\n this.updateHandles(PointerType.Min, this.valueToPosition(this.viewLowValue));\n }\n this.updateAriaAttributes();\n }\n return newValue;\n }\n getChangeContext() {\n const changeContext = new ChangeContext();\n changeContext.pointerType = this.currentTrackingPointer;\n changeContext.value = +this.value;\n if (this.range) {\n changeContext.highValue = +this.highValue;\n }\n return changeContext;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: SliderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: AllowUnsafeHtmlInSlider, optional: true }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.1.3\", type: SliderComponent, selector: \"ngx-slider\", inputs: { value: \"value\", highValue: \"highValue\", options: \"options\", manualRefresh: \"manualRefresh\", triggerFocus: \"triggerFocus\" }, outputs: { valueChange: \"valueChange\", highValueChange: \"highValueChange\", userChangeStart: \"userChangeStart\", userChange: \"userChange\", userChangeEnd: \"userChangeEnd\" }, host: { listeners: { \"window:resize\": \"onResize($event)\" }, properties: { \"class.ngx-slider\": \"this.sliderElementNgxSliderClass\", \"class.vertical\": \"this.sliderElementVerticalClass\", \"class.animate\": \"this.sliderElementAnimateClass\", \"class.with-legend\": \"this.sliderElementWithLegendClass\", \"attr.disabled\": \"this.sliderElementDisabledAttr\", \"attr.aria-label\": \"this.sliderElementAriaLabel\" } }, providers: [NGX_SLIDER_CONTROL_VALUE_ACCESSOR], queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], viewQueries: [{ propertyName: \"leftOuterSelectionBarElement\", first: true, predicate: [\"leftOuterSelectionBar\"], descendants: true, read: SliderElementDirective }, { propertyName: \"rightOuterSelectionBarElement\", first: true, predicate: [\"rightOuterSelectionBar\"], descendants: true, read: SliderElementDirective }, { propertyName: \"fullBarElement\", first: true, predicate: [\"fullBar\"], descendants: true, read: SliderElementDirective }, { propertyName: \"selectionBarElement\", first: true, predicate: [\"selectionBar\"], descendants: true, read: SliderElementDirective }, { propertyName: \"minHandleElement\", first: true, predicate: [\"minHandle\"], descendants: true, read: SliderHandleDirective }, { propertyName: \"maxHandleElement\", first: true, predicate: [\"maxHandle\"], descendants: true, read: SliderHandleDirective }, { propertyName: \"floorLabelElement\", first: true, predicate: [\"floorLabel\"], descendants: true, read: SliderLabelDirective }, { propertyName: \"ceilLabelElement\", first: true, predicate: [\"ceilLabel\"], descendants: true, read: SliderLabelDirective }, { propertyName: \"minHandleLabelElement\", first: true, predicate: [\"minHandleLabel\"], descendants: true, read: SliderLabelDirective }, { propertyName: \"maxHandleLabelElement\", first: true, predicate: [\"maxHandleLabel\"], descendants: true, read: SliderLabelDirective }, { propertyName: \"combinedLabelElement\", first: true, predicate: [\"combinedLabel\"], descendants: true, read: SliderLabelDirective }, { propertyName: \"ticksElement\", first: true, predicate: [\"ticksElement\"], descendants: true, read: SliderElementDirective }], usesOnChanges: true, ngImport: i0, template: \"\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n \\n \\n \\n \\n \\n \\n\", styles: [\"::ng-deep .ngx-slider{display:inline-block;position:relative;height:4px;width:100%;margin:35px 0 15px;vertical-align:middle;-webkit-user-select:none;user-select:none;touch-action:pan-y}::ng-deep .ngx-slider.with-legend{margin-bottom:40px}::ng-deep .ngx-slider[disabled]{cursor:not-allowed}::ng-deep .ngx-slider[disabled] .ngx-slider-pointer{cursor:not-allowed;background-color:#d8e0f3}::ng-deep .ngx-slider[disabled] .ngx-slider-draggable{cursor:not-allowed}::ng-deep .ngx-slider[disabled] .ngx-slider-selection{background:#8b91a2}::ng-deep .ngx-slider[disabled] .ngx-slider-tick{cursor:not-allowed}::ng-deep .ngx-slider[disabled] .ngx-slider-tick.ngx-slider-selected{background:#8b91a2}::ng-deep .ngx-slider .ngx-slider-span{white-space:nowrap;position:absolute;display:inline-block}::ng-deep .ngx-slider .ngx-slider-base{width:100%;height:100%;padding:0}::ng-deep .ngx-slider .ngx-slider-bar-wrapper{left:0;box-sizing:border-box;margin-top:-16px;padding-top:16px;width:100%;height:32px;z-index:1}::ng-deep .ngx-slider .ngx-slider-draggable{cursor:move}::ng-deep .ngx-slider .ngx-slider-bar{left:0;width:100%;height:4px;z-index:1;background:#d8e0f3;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}::ng-deep .ngx-slider .ngx-slider-bar-wrapper.ngx-slider-transparent .ngx-slider-bar{background:transparent}::ng-deep .ngx-slider .ngx-slider-bar-wrapper.ngx-slider-left-out-selection .ngx-slider-bar{background:#df002d}::ng-deep .ngx-slider .ngx-slider-bar-wrapper.ngx-slider-right-out-selection .ngx-slider-bar{background:#03a688}::ng-deep .ngx-slider .ngx-slider-selection{z-index:2;background:#0db9f0;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}::ng-deep .ngx-slider .ngx-slider-pointer{cursor:pointer;width:32px;height:32px;top:-14px;background-color:#0db9f0;z-index:3;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}::ng-deep .ngx-slider .ngx-slider-pointer:after{content:\\\"\\\";width:8px;height:8px;position:absolute;top:12px;left:12px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;background:#fff}::ng-deep .ngx-slider .ngx-slider-pointer:hover:after{background-color:#fff}::ng-deep .ngx-slider .ngx-slider-pointer.ngx-slider-active{z-index:4}::ng-deep .ngx-slider .ngx-slider-pointer.ngx-slider-active:after{background-color:#451aff}::ng-deep .ngx-slider .ngx-slider-bubble{cursor:default;bottom:16px;padding:1px 3px;color:#55637d;font-size:16px}::ng-deep .ngx-slider .ngx-slider-bubble.ngx-slider-limit{color:#55637d}::ng-deep .ngx-slider .ngx-slider-ticks{box-sizing:border-box;width:100%;height:0;position:absolute;left:0;top:-3px;margin:0;z-index:1;list-style:none}::ng-deep .ngx-slider .ngx-slider-ticks-values-under .ngx-slider-tick-value{top:auto;bottom:-36px}::ng-deep .ngx-slider .ngx-slider-tick{text-align:center;cursor:pointer;width:10px;height:10px;background:#d8e0f3;border-radius:50%;position:absolute;top:0;left:0;margin-left:11px}::ng-deep .ngx-slider .ngx-slider-tick.ngx-slider-selected{background:#0db9f0}::ng-deep .ngx-slider .ngx-slider-tick-value{position:absolute;top:-34px;transform:translate(-50%)}::ng-deep .ngx-slider .ngx-slider-tick-legend{position:absolute;top:24px;transform:translate(-50%);max-width:50px;white-space:normal}::ng-deep .ngx-slider.vertical{position:relative;width:4px;height:100%;margin:0 20px;padding:0;vertical-align:baseline;touch-action:pan-x}::ng-deep .ngx-slider.vertical .ngx-slider-base{width:100%;height:100%;padding:0}::ng-deep .ngx-slider.vertical .ngx-slider-bar-wrapper{top:auto;left:0;margin:0 0 0 -16px;padding:0 0 0 16px;height:100%;width:32px}::ng-deep .ngx-slider.vertical .ngx-slider-bar{bottom:0;left:auto;width:4px;height:100%}::ng-deep .ngx-slider.vertical .ngx-slider-pointer{left:-14px!important;top:auto;bottom:0}::ng-deep .ngx-slider.vertical .ngx-slider-bubble{left:16px!important;bottom:0}::ng-deep .ngx-slider.vertical .ngx-slider-ticks{height:100%;width:0;left:-3px;top:0;z-index:1}::ng-deep .ngx-slider.vertical .ngx-slider-tick{vertical-align:middle;margin-left:auto;margin-top:11px}::ng-deep .ngx-slider.vertical .ngx-slider-tick-value{left:24px;top:auto;transform:translateY(-28%)}::ng-deep .ngx-slider.vertical .ngx-slider-tick-legend{top:auto;right:24px;transform:translateY(-28%);max-width:none;white-space:nowrap}::ng-deep .ngx-slider.vertical .ngx-slider-ticks-values-under .ngx-slider-tick-value{bottom:auto;left:auto;right:24px}::ng-deep .ngx-slider *{transition:none}::ng-deep .ngx-slider.animate .ngx-slider-bar-wrapper{transition:all linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-selection{transition:background-color linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-pointer{transition:all linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-pointer:after{transition:all linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-bubble{transition:all linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-bubble.ngx-slider-limit{transition:opacity linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-bubble.ngx-slider-combined{transition:opacity linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-tick{transition:background-color linear .3s}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"directive\", type: SliderElementDirective, selector: \"[ngxSliderElement]\" }, { kind: \"directive\", type: SliderHandleDirective, selector: \"[ngxSliderHandle]\" }, { kind: \"directive\", type: SliderLabelDirective, selector: \"[ngxSliderLabel]\" }, { kind: \"component\", type: TooltipWrapperComponent, selector: \"ngx-slider-tooltip-wrapper\", inputs: [\"template\", \"tooltip\", \"placement\", \"content\"] }], changeDetection: i0.ChangeDetectionStrategy.Default });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: SliderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-slider', providers: [NGX_SLIDER_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.Default, template: \"\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n \\n \\n \\n \\n \\n \\n\", styles: [\"::ng-deep .ngx-slider{display:inline-block;position:relative;height:4px;width:100%;margin:35px 0 15px;vertical-align:middle;-webkit-user-select:none;user-select:none;touch-action:pan-y}::ng-deep .ngx-slider.with-legend{margin-bottom:40px}::ng-deep .ngx-slider[disabled]{cursor:not-allowed}::ng-deep .ngx-slider[disabled] .ngx-slider-pointer{cursor:not-allowed;background-color:#d8e0f3}::ng-deep .ngx-slider[disabled] .ngx-slider-draggable{cursor:not-allowed}::ng-deep .ngx-slider[disabled] .ngx-slider-selection{background:#8b91a2}::ng-deep .ngx-slider[disabled] .ngx-slider-tick{cursor:not-allowed}::ng-deep .ngx-slider[disabled] .ngx-slider-tick.ngx-slider-selected{background:#8b91a2}::ng-deep .ngx-slider .ngx-slider-span{white-space:nowrap;position:absolute;display:inline-block}::ng-deep .ngx-slider .ngx-slider-base{width:100%;height:100%;padding:0}::ng-deep .ngx-slider .ngx-slider-bar-wrapper{left:0;box-sizing:border-box;margin-top:-16px;padding-top:16px;width:100%;height:32px;z-index:1}::ng-deep .ngx-slider .ngx-slider-draggable{cursor:move}::ng-deep .ngx-slider .ngx-slider-bar{left:0;width:100%;height:4px;z-index:1;background:#d8e0f3;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}::ng-deep .ngx-slider .ngx-slider-bar-wrapper.ngx-slider-transparent .ngx-slider-bar{background:transparent}::ng-deep .ngx-slider .ngx-slider-bar-wrapper.ngx-slider-left-out-selection .ngx-slider-bar{background:#df002d}::ng-deep .ngx-slider .ngx-slider-bar-wrapper.ngx-slider-right-out-selection .ngx-slider-bar{background:#03a688}::ng-deep .ngx-slider .ngx-slider-selection{z-index:2;background:#0db9f0;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}::ng-deep .ngx-slider .ngx-slider-pointer{cursor:pointer;width:32px;height:32px;top:-14px;background-color:#0db9f0;z-index:3;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}::ng-deep .ngx-slider .ngx-slider-pointer:after{content:\\\"\\\";width:8px;height:8px;position:absolute;top:12px;left:12px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;background:#fff}::ng-deep .ngx-slider .ngx-slider-pointer:hover:after{background-color:#fff}::ng-deep .ngx-slider .ngx-slider-pointer.ngx-slider-active{z-index:4}::ng-deep .ngx-slider .ngx-slider-pointer.ngx-slider-active:after{background-color:#451aff}::ng-deep .ngx-slider .ngx-slider-bubble{cursor:default;bottom:16px;padding:1px 3px;color:#55637d;font-size:16px}::ng-deep .ngx-slider .ngx-slider-bubble.ngx-slider-limit{color:#55637d}::ng-deep .ngx-slider .ngx-slider-ticks{box-sizing:border-box;width:100%;height:0;position:absolute;left:0;top:-3px;margin:0;z-index:1;list-style:none}::ng-deep .ngx-slider .ngx-slider-ticks-values-under .ngx-slider-tick-value{top:auto;bottom:-36px}::ng-deep .ngx-slider .ngx-slider-tick{text-align:center;cursor:pointer;width:10px;height:10px;background:#d8e0f3;border-radius:50%;position:absolute;top:0;left:0;margin-left:11px}::ng-deep .ngx-slider .ngx-slider-tick.ngx-slider-selected{background:#0db9f0}::ng-deep .ngx-slider .ngx-slider-tick-value{position:absolute;top:-34px;transform:translate(-50%)}::ng-deep .ngx-slider .ngx-slider-tick-legend{position:absolute;top:24px;transform:translate(-50%);max-width:50px;white-space:normal}::ng-deep .ngx-slider.vertical{position:relative;width:4px;height:100%;margin:0 20px;padding:0;vertical-align:baseline;touch-action:pan-x}::ng-deep .ngx-slider.vertical .ngx-slider-base{width:100%;height:100%;padding:0}::ng-deep .ngx-slider.vertical .ngx-slider-bar-wrapper{top:auto;left:0;margin:0 0 0 -16px;padding:0 0 0 16px;height:100%;width:32px}::ng-deep .ngx-slider.vertical .ngx-slider-bar{bottom:0;left:auto;width:4px;height:100%}::ng-deep .ngx-slider.vertical .ngx-slider-pointer{left:-14px!important;top:auto;bottom:0}::ng-deep .ngx-slider.vertical .ngx-slider-bubble{left:16px!important;bottom:0}::ng-deep .ngx-slider.vertical .ngx-slider-ticks{height:100%;width:0;left:-3px;top:0;z-index:1}::ng-deep .ngx-slider.vertical .ngx-slider-tick{vertical-align:middle;margin-left:auto;margin-top:11px}::ng-deep .ngx-slider.vertical .ngx-slider-tick-value{left:24px;top:auto;transform:translateY(-28%)}::ng-deep .ngx-slider.vertical .ngx-slider-tick-legend{top:auto;right:24px;transform:translateY(-28%);max-width:none;white-space:nowrap}::ng-deep .ngx-slider.vertical .ngx-slider-ticks-values-under .ngx-slider-tick-value{bottom:auto;left:auto;right:24px}::ng-deep .ngx-slider *{transition:none}::ng-deep .ngx-slider.animate .ngx-slider-bar-wrapper{transition:all linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-selection{transition:background-color linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-pointer{transition:all linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-pointer:after{transition:all linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-bubble{transition:all linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-bubble.ngx-slider-limit{transition:opacity linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-bubble.ngx-slider-combined{transition:opacity linear .3s}::ng-deep .ngx-slider.animate .ngx-slider-tick{transition:background-color linear .3s}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [AllowUnsafeHtmlInSlider]\n }, {\n type: Optional\n }] }], propDecorators: { sliderElementNgxSliderClass: [{\n type: HostBinding,\n args: ['class.ngx-slider']\n }], value: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], highValue: [{\n type: Input\n }], highValueChange: [{\n type: Output\n }], options: [{\n type: Input\n }], userChangeStart: [{\n type: Output\n }], userChange: [{\n type: Output\n }], userChangeEnd: [{\n type: Output\n }], manualRefresh: [{\n type: Input\n }], triggerFocus: [{\n type: Input\n }], leftOuterSelectionBarElement: [{\n type: ViewChild,\n args: ['leftOuterSelectionBar', {\n read: SliderElementDirective,\n static: false,\n }]\n }], rightOuterSelectionBarElement: [{\n type: ViewChild,\n args: ['rightOuterSelectionBar', {\n read: SliderElementDirective,\n static: false,\n }]\n }], fullBarElement: [{\n type: ViewChild,\n args: ['fullBar', { read: SliderElementDirective, static: false }]\n }], selectionBarElement: [{\n type: ViewChild,\n args: ['selectionBar', { read: SliderElementDirective, static: false }]\n }], minHandleElement: [{\n type: ViewChild,\n args: ['minHandle', { read: SliderHandleDirective, static: false }]\n }], maxHandleElement: [{\n type: ViewChild,\n args: ['maxHandle', { read: SliderHandleDirective, static: false }]\n }], floorLabelElement: [{\n type: ViewChild,\n args: ['floorLabel', { read: SliderLabelDirective, static: false }]\n }], ceilLabelElement: [{\n type: ViewChild,\n args: ['ceilLabel', { read: SliderLabelDirective, static: false }]\n }], minHandleLabelElement: [{\n type: ViewChild,\n args: ['minHandleLabel', { read: SliderLabelDirective, static: false }]\n }], maxHandleLabelElement: [{\n type: ViewChild,\n args: ['maxHandleLabel', { read: SliderLabelDirective, static: false }]\n }], combinedLabelElement: [{\n type: ViewChild,\n args: ['combinedLabel', { read: SliderLabelDirective, static: false }]\n }], ticksElement: [{\n type: ViewChild,\n args: ['ticksElement', { read: SliderElementDirective, static: false }]\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate', { static: false }]\n }], sliderElementVerticalClass: [{\n type: HostBinding,\n args: ['class.vertical']\n }], sliderElementAnimateClass: [{\n type: HostBinding,\n args: ['class.animate']\n }], sliderElementWithLegendClass: [{\n type: HostBinding,\n args: ['class.with-legend']\n }], sliderElementDisabledAttr: [{\n type: HostBinding,\n args: ['attr.disabled']\n }], sliderElementAriaLabel: [{\n type: HostBinding,\n args: ['attr.aria-label']\n }], onResize: [{\n type: HostListener,\n args: ['window:resize', ['$event']]\n }] } });\n\n/**\n * NgxSlider module\n *\n * The module exports the slider component\n */\nclass NgxSliderModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: NgxSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.1.3\", ngImport: i0, type: NgxSliderModule, declarations: [SliderComponent,\n SliderElementDirective,\n SliderHandleDirective,\n SliderLabelDirective,\n TooltipWrapperComponent], imports: [CommonModule], exports: [SliderComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: NgxSliderModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.1.3\", ngImport: i0, type: NgxSliderModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n SliderComponent,\n SliderElementDirective,\n SliderHandleDirective,\n SliderLabelDirective,\n TooltipWrapperComponent\n ],\n exports: [\n SliderComponent\n ]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AllowUnsafeHtmlInSlider, ChangeContext, LabelType, NgxSliderModule, Options, PointerType, SliderComponent };\n","import { NgModule } from '@angular/core';\n\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { AccordionModule } from 'ngx-bootstrap/accordion';\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\nimport { TabsModule } from 'ngx-bootstrap/tabs';\nimport { AlertModule } from 'ngx-bootstrap/alert';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\nimport { TimepickerModule } from 'ngx-bootstrap/timepicker';\nimport { ProgressbarModule } from 'ngx-bootstrap/progressbar';\nimport { FormsModule } from '@angular/forms';\nimport { NgxSliderModule } from '@angular-slider/ngx-slider';\nimport { RRSharedModule } from '../shared-module/shared.module';\n\n@NgModule({\n declarations: [],\n imports: [\n RRSharedModule,\n FormsModule,\n NgxSliderModule,\n TabsModule.forRoot(),\n AccordionModule.forRoot(),\n BsDropdownModule.forRoot(),\n CollapseModule.forRoot(),\n TooltipModule.forRoot(),\n PaginationModule.forRoot(),\n AlertModule.forRoot(),\n ModalModule.forRoot(),\n BsDatepickerModule.forRoot(),\n TypeaheadModule.forRoot(),\n TimepickerModule.forRoot(),\n ProgressbarModule.forRoot(),\n ],\n exports: [\n FormsModule,\n NgxSliderModule,\n TabsModule,\n BsDropdownModule,\n AccordionModule,\n CollapseModule,\n TooltipModule,\n PaginationModule,\n AlertModule,\n ModalModule,\n BsDatepickerModule,\n TypeaheadModule,\n TimepickerModule,\n ProgressbarModule,\n ],\n})\nexport class RRBootstrapModule {}\n","import { NgModule } from '@angular/core';\nimport { SimpleAlertComponent } from './components/simple-alert/simple-alert.component';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\n\n@NgModule({\n declarations: [SimpleAlertComponent],\n imports: [RRSharedModule, RRBootstrapModule],\n exports: [SimpleAlertComponent],\n})\nexport class RRAlertsModule {}\n","export enum RR_ALERT_TYPE {\n SUCCESS = 'success',\n DANGER = 'danger',\n INFO = 'info',\n WARNING = 'warning',\n}\n","import { NgModule } from '@angular/core';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { ModalConfirmDirective } from '../modal/directives/modal-confirm.directive';\nimport { ConfirmDeleteModalComponent } from './components/confirm-delete-modal/confirm-delete-modal.component';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\nimport { BaseModalComponent } from './components/base-modal/base-modal.component';\n\n@NgModule({\n declarations: [\n ModalComponent,\n ModalConfirmDirective,\n ConfirmDeleteModalComponent,\n BaseModalComponent,\n ],\n imports: [RRSharedModule, RRBootstrapModule],\n exports: [\n ModalComponent,\n ModalConfirmDirective,\n ConfirmDeleteModalComponent,\n BaseModalComponent,\n ],\n})\nexport class RRModalModule {}\n","import { NgModule } from '@angular/core';\nimport { ProgressbarComponent } from './components/progressbar/progressbar.component';\nimport { ProgressbarModule } from 'ngx-bootstrap/progressbar';\nimport { RRSharedModule } from '../shared-module/shared.module';\n\n@NgModule({\n declarations: [ProgressbarComponent],\n imports: [RRSharedModule, ProgressbarModule.forRoot()],\n exports: [ProgressbarComponent],\n})\nexport class RRProgressbarModule {}\n","export enum RR_PROGRESSBAR_TYPE {\n SUCCESS = 'success',\n INFO = 'info',\n WARNING = 'warning',\n DANGER = 'danger',\n}\n","import { NgModule } from '@angular/core';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { CopyToClipboardDirective } from './directives/copy-to-clipboard.directive';\n\n@NgModule({\n declarations: [CopyToClipboardDirective],\n imports: [RRSharedModule],\n exports: [CopyToClipboardDirective],\n})\nexport class RRCopyToClipboardModule {}\n","export enum RR_FILTER_TYPE {\n TEXT_SEARCH,\n DROPDOWN_SELECT,\n DATE_RANGE,\n CHECKBOX_SELECT,\n RADIO_SELECT,\n MULTI_SELECT,\n TAGS,\n}\n","import { RRIBaseModel } from '../../common/interfaces/base-model.interface';\nimport { RRISort } from '../../common/interfaces/base-sort.interface';\n\nexport class RRClientSideDataModel {\n results: T[];\n sortBy: RRISort;\n currentPage: number;\n pageCount: number;\n pageSize: number;\n recordCount: number;\n}\n","import { Injectable } from '@angular/core';\nimport { RRIBaseModel } from '../../common/interfaces/base-model.interface';\nimport { RRISort } from '../../common/interfaces/base-sort.interface';\nimport { RRClientSideDataModel } from '../models/client-side-data.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RRClientSideDataService {\n private cache: RRClientSideDataModel;\n\n constructor() {\n this.cache = this.getEmtpyClientSideData();\n }\n\n public getCachedData(): RRClientSideDataModel {\n return this.cache;\n }\n\n public setCachedData(data: RRClientSideDataModel): void {\n this.cache = data;\n }\n\n public onPageChange(newPage: number): Promise {\n this.cache = {\n ...this.cache,\n currentPage: newPage,\n };\n return this.getTableRows();\n }\n\n public onPageSizeChange(newPageSize: number): Promise {\n this.cache = {\n ...this.cache,\n pageSize: newPageSize,\n };\n return this.getTableRows();\n }\n\n public onSortChange(sortBy: RRISort): Promise {\n this.cache.sortBy = sortBy;\n return this.getTableRows();\n }\n\n public deleteEntry(entry: T): Promise {\n return new Promise((resolve, reject) => {\n if (this.cache.results.some((e: T) => e.id === entry.id)) {\n this.cache.results = this.cache.results.filter(\n (e) => e.id !== entry.id,\n );\n this.cache.recordCount = this.cache.results.length;\n resolve(true);\n } else {\n reject(false);\n }\n });\n }\n\n public getEmtpyClientSideData(): RRClientSideDataModel {\n return {\n results: [],\n sortBy: {\n fieldName: 'id',\n desc: true,\n },\n recordCount: 0,\n pageSize: 1,\n currentPage: 1,\n pageCount: 1,\n };\n }\n\n getTableRows(): Promise {\n return new Promise((resolve, reject) => {\n if (!this.cache || !this.cache.results || !this.cache.results.length) {\n reject(this.getEmtpyClientSideData());\n } else {\n const returnModel = this.filterTableContainer();\n if (returnModel === null) {\n resolve([]);\n } else {\n resolve(returnModel);\n }\n }\n });\n }\n\n public filterTableContainer(): T[] {\n const filterData = { ...this.cache };\n let newClienSideDataModel = new RRClientSideDataModel();\n let newResults: T[] = [];\n if (\n typeof filterData.results !== 'undefined' &&\n filterData.results.length\n ) {\n newClienSideDataModel.results = this.sortTableViewContainer(\n filterData.results,\n filterData.sortBy,\n );\n newClienSideDataModel.recordCount = filterData.results.length;\n newClienSideDataModel.pageSize = filterData.pageSize;\n newClienSideDataModel.currentPage = filterData.currentPage;\n newClienSideDataModel.pageCount = Math.ceil(\n filterData.results.length / filterData.pageSize,\n );\n\n const firstItemIndex =\n filterData.currentPage * filterData.pageSize - filterData.pageSize;\n const lastItemIndex = firstItemIndex + filterData.pageSize;\n\n newResults = filterData.results.slice(firstItemIndex, lastItemIndex);\n } else {\n newClienSideDataModel = this.getEmtpyClientSideData();\n }\n\n this.setCachedData(newClienSideDataModel);\n return newResults;\n }\n\n private sortTableViewContainer(data: T[], sortBy: RRISort): Array {\n if (data.length && sortBy && sortBy.fieldName) {\n const fieldToSort = `${String(sortBy.fieldName)}`;\n data.sort(this.sortList(fieldToSort, sortBy.desc));\n }\n\n return data;\n }\n\n private sortList(property: string, descOrder: boolean = true) {\n const sortOrder = descOrder ? -1 : 1;\n\n return (a, b) =>\n sortOrder == -1\n ? String(b[property]).localeCompare(a[property])\n : String(a[property]).localeCompare(b[property]);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CtrlClickDirective } from './directives/ctrl-click.directive';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { MiddleClickDirective } from './directives/middle-click.directive';\n\n@NgModule({\n declarations: [CtrlClickDirective, MiddleClickDirective],\n imports: [RRSharedModule],\n exports: [CtrlClickDirective, MiddleClickDirective],\n})\nexport class RRClickEventsModule {}\n","import { NgModule } from '@angular/core';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { TagComponent } from './components/tag/tag.component';\nimport { TagsComponent } from './components/tags/tags.component';\n\n@NgModule({\n declarations: [TagComponent, TagsComponent],\n imports: [RRSharedModule, RRBootstrapModule],\n exports: [TagComponent, TagsComponent],\n})\nexport class RRTagsModule {}\n","import { NgModule } from '@angular/core';\nimport { TableComponent } from './components/table/table.component';\nimport { TableContainerComponent } from './components/table-container/table-container.component';\nimport { TablePaginationComponent } from './components/table-pagination/table-pagination.component';\nimport { TableButtonsComponent } from './components/table-buttons/table-buttons.component';\nimport { TableBatchOptionsComponent } from './components/table-batch-options/table-batch-options.component';\nimport { RRClientSideDataService } from './services/client-side-data.service';\nimport { ShowTooltipDirective } from './components/directives/show-tooltip.directive';\nimport { RRClickEventsModule } from '../click-events/click-events.module';\nimport { RRTagsModule } from '../tags/tags.module';\nimport { TableCustomBatchOptionsComponent } from './components/table-custom-batch-options/table-custom-batch-options.component';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\nimport { RRSpinnerModule } from '../spinner/spinner.module';\nimport { RRCopyToClipboardModule } from '../copy-to-clipboard/copy-to-clipboard.module';\nimport { RRModalModule } from '../modal/modal.module';\n\n@NgModule({\n declarations: [\n TableComponent,\n TableContainerComponent,\n TablePaginationComponent,\n TableButtonsComponent,\n TableBatchOptionsComponent,\n ShowTooltipDirective,\n TableCustomBatchOptionsComponent,\n ],\n imports: [\n RRSharedModule,\n RRBootstrapModule,\n RRSpinnerModule,\n RRCopyToClipboardModule,\n RRModalModule,\n RRClickEventsModule,\n RRTagsModule,\n ],\n exports: [\n TableComponent,\n TableContainerComponent,\n TablePaginationComponent,\n TableButtonsComponent,\n TableBatchOptionsComponent,\n TableCustomBatchOptionsComponent,\n ],\n providers: [RRClientSideDataService],\n})\nexport class RRTableContainerModule {}\n","import { NgModule } from '@angular/core';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\nimport { InfoIconComponent } from './info-icon/info-icon.component';\nimport { QuestionmarkCircelIconComponent } from './questionmark-circel-icon/questionmark-circel-icon.component';\nimport { CheckCircleFillComponent } from './check-circle-fill/check-circle-fill.component';\nimport { GenderFemaleComponent } from './gender-female/gender-female.component';\nimport { GenderMaleComponent } from './gender-male/gender-male.component';\nimport { RRSharedModule } from '../shared-module/shared.module';\n\n@NgModule({\n declarations: [\n InfoIconComponent,\n QuestionmarkCircelIconComponent,\n CheckCircleFillComponent,\n GenderFemaleComponent,\n GenderMaleComponent,\n ],\n imports: [RRSharedModule, RRBootstrapModule],\n exports: [\n InfoIconComponent,\n QuestionmarkCircelIconComponent,\n CheckCircleFillComponent,\n GenderFemaleComponent,\n GenderMaleComponent,\n ],\n})\nexport class RRIconsModule {}\n","import { NgModule } from '@angular/core';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { ListBuilderComponent } from './components/list-builder/list-builder.component';\n\n@NgModule({\n declarations: [ListBuilderComponent],\n imports: [RRSharedModule, RRBootstrapModule],\n exports: [ListBuilderComponent],\n})\nexport class RRLayoutBuilderModule {}\n","import { NgModule } from '@angular/core';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\nimport { RRIconsModule } from '../icons/icons.module';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { HeaderComponent } from './components/header/header.component';\nimport { RRLayoutBuilderModule } from '../layout-builder/layout-builder.module';\n\n@NgModule({\n declarations: [HeaderComponent],\n imports: [\n RRSharedModule,\n RRBootstrapModule,\n RRIconsModule,\n RRLayoutBuilderModule,\n ],\n exports: [HeaderComponent],\n})\nexport class RRHeaderModule {}\n","import { NgModule } from '@angular/core';\nimport { RRLayoutBuilderModule } from '../layout-builder/layout-builder.module';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { FooterComponent } from './components/footer/footer.component';\n\n@NgModule({\n declarations: [FooterComponent],\n imports: [RRSharedModule, RRLayoutBuilderModule],\n exports: [FooterComponent],\n})\nexport class RRFooterModule {}\n","import { NgModule } from '@angular/core';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\n\n@NgModule({\n declarations: [BreadcrumbComponent],\n imports: [RRSharedModule, RRBootstrapModule],\n exports: [BreadcrumbComponent],\n})\nexport class RRBreadcrumbModule {}\n","export const RR_THUMBNAIL =\n 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/7AARRHVja3kAAQAEAAAAPAAA/+EDLWh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDYgNzkuZGFiYWNiYiwgMjAyMS8wNC8xNC0wMDozOTo0NCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU2MDlGRTMyQ0RBRTExRUJBODkwOTg2RTAxN0UyOTdGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU2MDlGRTMzQ0RBRTExRUJBODkwOTg2RTAxN0UyOTdGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTYwOUZFMzBDREFFMTFFQkE4OTA5ODZFMDE3RTI5N0YiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTYwOUZFMzFDREFFMTFFQkE4OTA5ODZFMDE3RTI5N0YiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/2wBDAAQDAwQDAwQEBAQFBQQFBwsHBwYGBw4KCggLEA4RERAOEA8SFBoWEhMY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';\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RRModalService {\n private _modalIds: (string | number)[];\n\n public isShown: Subject;\n public idIsShown: Subject;\n\n constructor(private _modalService: BsModalService) {\n this._modalIds = [];\n this.isShown = new Subject();\n _modalService.onShown.subscribe(() => this.isShown.next(true));\n this.idIsShown = new Subject();\n _modalService.onShown.subscribe((data) => this.idIsShown.next(data.id));\n }\n\n public showModal(\n template: TemplateRef,\n config: ModalOptions,\n ): BsModalRef {\n this._modalIds.push(config.id);\n return this._modalService.show(template, config);\n }\n\n public closeModal(id: number | string): void {\n this._modalService.hide(id);\n this._modalIds = this._modalIds.filter((i: number | string) => id !== i);\n }\n\n public closeAllModals(): void {\n if (Array.isArray(this._modalIds)) {\n this._modalIds.forEach((id: number | string) => {\n this._modalService.hide(id);\n });\n\n this._modalIds = [];\n }\n }\n}\n","import * as i0 from '@angular/core';\nimport { Directive, Input, Injectable, EventEmitter, ElementRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Output, ViewChild, InjectionToken, forwardRef, TemplateRef, Attribute, HostBinding, ContentChild, ContentChildren, HostListener, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { takeUntil, auditTime, startWith, tap, debounceTime, filter, map } from 'rxjs/operators';\nimport { animationFrameScheduler, asapScheduler, Subject, fromEvent, merge } from 'rxjs';\nimport * as i3 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\n\nconst unescapedHTMLExp = /[&<>\"']/g;\nconst hasUnescapedHTMLExp = RegExp(unescapedHTMLExp.source);\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n};\nfunction escapeHTML(value) {\n return (value && hasUnescapedHTMLExp.test(value)) ?\n value.replace(unescapedHTMLExp, chr => htmlEscapes[chr]) :\n value;\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isObject(value) {\n return typeof value === 'object' && isDefined(value);\n}\nfunction isPromise(value) {\n return value instanceof Promise;\n}\nfunction isFunction(value) {\n return value instanceof Function;\n}\n\nclass NgItemLabelDirective {\n constructor(element) {\n this.element = element;\n this.escape = true;\n }\n ngOnChanges(changes) {\n this.element.nativeElement.innerHTML = this.escape ?\n escapeHTML(this.ngItemLabel) :\n this.ngItemLabel;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgItemLabelDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgItemLabelDirective, selector: \"[ngItemLabel]\", inputs: { ngItemLabel: \"ngItemLabel\", escape: \"escape\" }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgItemLabelDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ngItemLabel]' }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { ngItemLabel: [{\n type: Input\n }], escape: [{\n type: Input\n }] } });\n// eslint-disable-next-line @angular-eslint/directive-selector\nclass NgOptionTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgOptionTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgOptionTemplateDirective, selector: \"[ng-option-tmp]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgOptionTemplateDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ng-option-tmp]' }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\n// eslint-disable-next-line @angular-eslint/directive-selector\nclass NgOptgroupTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgOptgroupTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgOptgroupTemplateDirective, selector: \"[ng-optgroup-tmp]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgOptgroupTemplateDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ng-optgroup-tmp]' }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\n// eslint-disable-next-line @angular-eslint/directive-selector\nclass NgLabelTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgLabelTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgLabelTemplateDirective, selector: \"[ng-label-tmp]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgLabelTemplateDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ng-label-tmp]' }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\n// eslint-disable-next-line @angular-eslint/directive-selector\nclass NgMultiLabelTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgMultiLabelTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgMultiLabelTemplateDirective, selector: \"[ng-multi-label-tmp]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgMultiLabelTemplateDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ng-multi-label-tmp]' }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\n// eslint-disable-next-line @angular-eslint/directive-selector\nclass NgHeaderTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgHeaderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgHeaderTemplateDirective, selector: \"[ng-header-tmp]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgHeaderTemplateDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ng-header-tmp]' }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\n// eslint-disable-next-line @angular-eslint/directive-selector\nclass NgFooterTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgFooterTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgFooterTemplateDirective, selector: \"[ng-footer-tmp]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgFooterTemplateDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ng-footer-tmp]' }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\n// eslint-disable-next-line @angular-eslint/directive-selector\nclass NgNotFoundTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgNotFoundTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgNotFoundTemplateDirective, selector: \"[ng-notfound-tmp]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgNotFoundTemplateDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ng-notfound-tmp]' }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\n// eslint-disable-next-line @angular-eslint/directive-selector\nclass NgTypeToSearchTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgTypeToSearchTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgTypeToSearchTemplateDirective, selector: \"[ng-typetosearch-tmp]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgTypeToSearchTemplateDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ng-typetosearch-tmp]' }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\n// eslint-disable-next-line @angular-eslint/directive-selector\nclass NgLoadingTextTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgLoadingTextTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgLoadingTextTemplateDirective, selector: \"[ng-loadingtext-tmp]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgLoadingTextTemplateDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ng-loadingtext-tmp]' }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\n// eslint-disable-next-line @angular-eslint/directive-selector\nclass NgTagTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgTagTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgTagTemplateDirective, selector: \"[ng-tag-tmp]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgTagTemplateDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ng-tag-tmp]' }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\n// eslint-disable-next-line @angular-eslint/directive-selector\nclass NgLoadingSpinnerTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgLoadingSpinnerTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgLoadingSpinnerTemplateDirective, selector: \"[ng-loadingspinner-tmp]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgLoadingSpinnerTemplateDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ng-loadingspinner-tmp]' }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\n\nfunction newId() {\n // First character is an 'a', it's good practice to tag id to begin with a letter\n return 'axxxxxxxxxxx'.replace(/[x]/g, () => {\n // eslint-disable-next-line no-bitwise\n const val = Math.random() * 16 | 0;\n return val.toString(16);\n });\n}\n\nconst diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n};\nfunction stripSpecialChars(text) {\n const match = (a) => diacritics[a] || a;\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n}\n\nclass ItemsList {\n constructor(_ngSelect, _selectionModel) {\n this._ngSelect = _ngSelect;\n this._selectionModel = _selectionModel;\n this._items = [];\n this._filteredItems = [];\n this._markedIndex = -1;\n }\n get items() {\n return this._items;\n }\n get filteredItems() {\n return this._filteredItems;\n }\n get markedIndex() {\n return this._markedIndex;\n }\n get selectedItems() {\n return this._selectionModel.value;\n }\n get markedItem() {\n return this._filteredItems[this._markedIndex];\n }\n get noItemsToSelect() {\n return this._ngSelect.hideSelected && this._items.length === this.selectedItems.length;\n }\n get maxItemsSelected() {\n return this._ngSelect.multiple && this._ngSelect.maxSelectedItems <= this.selectedItems.length;\n }\n get lastSelectedItem() {\n let i = this.selectedItems.length - 1;\n for (; i >= 0; i--) {\n const item = this.selectedItems[i];\n if (!item.disabled) {\n return item;\n }\n }\n return null;\n }\n setItems(items) {\n this._items = items.map((item, index) => this.mapItem(item, index));\n if (this._ngSelect.groupBy) {\n this._groups = this._groupBy(this._items, this._ngSelect.groupBy);\n this._items = this._flatten(this._groups);\n }\n else {\n this._groups = new Map();\n this._groups.set(undefined, this._items);\n }\n this._filteredItems = [...this._items];\n }\n select(item) {\n if (item.selected || this.maxItemsSelected) {\n return;\n }\n const multiple = this._ngSelect.multiple;\n if (!multiple) {\n this.clearSelected();\n }\n this._selectionModel.select(item, multiple, this._ngSelect.selectableGroupAsModel);\n if (this._ngSelect.hideSelected) {\n this._hideSelected(item);\n }\n }\n unselect(item) {\n if (!item.selected) {\n return;\n }\n this._selectionModel.unselect(item, this._ngSelect.multiple);\n if (this._ngSelect.hideSelected && isDefined(item.index) && this._ngSelect.multiple) {\n this._showSelected(item);\n }\n }\n findItem(value) {\n let findBy;\n if (this._ngSelect.compareWith) {\n findBy = item => this._ngSelect.compareWith(item.value, value);\n }\n else if (this._ngSelect.bindValue) {\n findBy = item => !item.children && this.resolveNested(item.value, this._ngSelect.bindValue) === value;\n }\n else {\n findBy = item => item.value === value ||\n !item.children && item.label && item.label === this.resolveNested(value, this._ngSelect.bindLabel);\n }\n return this._items.find(item => findBy(item));\n }\n addItem(item) {\n const option = this.mapItem(item, this._items.length);\n this._items.push(option);\n this._filteredItems.push(option);\n return option;\n }\n clearSelected(keepDisabled = false) {\n this._selectionModel.clear(keepDisabled);\n this._items.forEach(item => {\n item.selected = keepDisabled && item.selected && item.disabled;\n item.marked = false;\n });\n if (this._ngSelect.hideSelected) {\n this.resetFilteredItems();\n }\n }\n findByLabel(term) {\n term = stripSpecialChars(term).toLocaleLowerCase();\n return this.filteredItems.find(item => {\n const label = stripSpecialChars(item.label).toLocaleLowerCase();\n return label.substr(0, term.length) === term;\n });\n }\n filter(term) {\n if (!term) {\n this.resetFilteredItems();\n return;\n }\n this._filteredItems = [];\n term = this._ngSelect.searchFn ? term : stripSpecialChars(term).toLocaleLowerCase();\n const match = this._ngSelect.searchFn || this._defaultSearchFn;\n const hideSelected = this._ngSelect.hideSelected;\n for (const key of Array.from(this._groups.keys())) {\n const matchedItems = [];\n for (const item of this._groups.get(key)) {\n if (hideSelected && (item.parent && item.parent.selected || item.selected)) {\n continue;\n }\n const searchItem = this._ngSelect.searchFn ? item.value : item;\n if (match(term, searchItem)) {\n matchedItems.push(item);\n }\n }\n if (matchedItems.length > 0) {\n const [last] = matchedItems.slice(-1);\n if (last.parent) {\n const head = this._items.find(x => x === last.parent);\n this._filteredItems.push(head);\n }\n this._filteredItems.push(...matchedItems);\n }\n }\n }\n resetFilteredItems() {\n if (this._filteredItems.length === this._items.length) {\n return;\n }\n if (this._ngSelect.hideSelected && this.selectedItems.length > 0) {\n this._filteredItems = this._items.filter(x => !x.selected);\n }\n else {\n this._filteredItems = this._items;\n }\n }\n unmarkItem() {\n this._markedIndex = -1;\n }\n markNextItem() {\n this._stepToItem(+1);\n }\n markPreviousItem() {\n this._stepToItem(-1);\n }\n markItem(item) {\n this._markedIndex = this._filteredItems.indexOf(item);\n }\n markSelectedOrDefault(markDefault) {\n if (this._filteredItems.length === 0) {\n return;\n }\n const lastMarkedIndex = this._getLastMarkedIndex();\n if (lastMarkedIndex > -1) {\n this._markedIndex = lastMarkedIndex;\n }\n else {\n this._markedIndex = markDefault ? this.filteredItems.findIndex(x => !x.disabled) : -1;\n }\n }\n resolveNested(option, key) {\n if (!isObject(option)) {\n return option;\n }\n if (key.indexOf('.') === -1) {\n return option[key];\n }\n else {\n const keys = key.split('.');\n let value = option;\n for (let i = 0, len = keys.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[keys[i]];\n }\n return value;\n }\n }\n mapItem(item, index) {\n const label = isDefined(item.$ngOptionLabel) ? item.$ngOptionLabel : this.resolveNested(item, this._ngSelect.bindLabel);\n const value = isDefined(item.$ngOptionValue) ? item.$ngOptionValue : item;\n return {\n index,\n label: isDefined(label) ? label.toString() : '',\n value,\n disabled: item.disabled,\n htmlId: `${this._ngSelect.dropdownId}-${index}`,\n };\n }\n mapSelectedItems() {\n const multiple = this._ngSelect.multiple;\n for (const selected of this.selectedItems) {\n const value = this._ngSelect.bindValue ? this.resolveNested(selected.value, this._ngSelect.bindValue) : selected.value;\n const item = isDefined(value) ? this.findItem(value) : null;\n this._selectionModel.unselect(selected, multiple);\n this._selectionModel.select(item || selected, multiple, this._ngSelect.selectableGroupAsModel);\n }\n if (this._ngSelect.hideSelected) {\n this._filteredItems = this.filteredItems.filter(x => this.selectedItems.indexOf(x) === -1);\n }\n }\n _showSelected(item) {\n this._filteredItems.push(item);\n if (item.parent) {\n const parent = item.parent;\n const parentExists = this._filteredItems.find(x => x === parent);\n if (!parentExists) {\n this._filteredItems.push(parent);\n }\n }\n else if (item.children) {\n for (const child of item.children) {\n child.selected = false;\n this._filteredItems.push(child);\n }\n }\n this._filteredItems = [...this._filteredItems.sort((a, b) => (a.index - b.index))];\n }\n _hideSelected(item) {\n this._filteredItems = this._filteredItems.filter(x => x !== item);\n if (item.parent) {\n const children = item.parent.children;\n if (children.every(x => x.selected)) {\n this._filteredItems = this._filteredItems.filter(x => x !== item.parent);\n }\n }\n else if (item.children) {\n this._filteredItems = this.filteredItems.filter(x => x.parent !== item);\n }\n }\n _defaultSearchFn(search, opt) {\n const label = stripSpecialChars(opt.label).toLocaleLowerCase();\n return label.indexOf(search) > -1;\n }\n _getNextItemIndex(steps) {\n if (steps > 0) {\n return (this._markedIndex >= this._filteredItems.length - 1) ? 0 : (this._markedIndex + 1);\n }\n return (this._markedIndex <= 0) ? (this._filteredItems.length - 1) : (this._markedIndex - 1);\n }\n _stepToItem(steps) {\n if (this._filteredItems.length === 0 || this._filteredItems.every(x => x.disabled)) {\n return;\n }\n this._markedIndex = this._getNextItemIndex(steps);\n if (this.markedItem.disabled) {\n this._stepToItem(steps);\n }\n }\n _getLastMarkedIndex() {\n if (this._ngSelect.hideSelected) {\n return -1;\n }\n if (this._markedIndex > -1 && this.markedItem === undefined) {\n return -1;\n }\n const selectedIndex = this._filteredItems.indexOf(this.lastSelectedItem);\n if (this.lastSelectedItem && selectedIndex < 0) {\n return -1;\n }\n return Math.max(this.markedIndex, selectedIndex);\n }\n _groupBy(items, prop) {\n const groups = new Map();\n if (items.length === 0) {\n return groups;\n }\n // Check if items are already grouped by given key.\n if (Array.isArray(items[0].value[prop])) {\n for (const item of items) {\n const children = (item.value[prop] || []).map((x, index) => this.mapItem(x, index));\n groups.set(item, children);\n }\n return groups;\n }\n const isFnKey = isFunction(this._ngSelect.groupBy);\n const keyFn = (item) => {\n const key = isFnKey ? prop(item.value) : item.value[prop];\n return isDefined(key) ? key : undefined;\n };\n // Group items by key.\n for (const item of items) {\n const key = keyFn(item);\n const group = groups.get(key);\n if (group) {\n group.push(item);\n }\n else {\n groups.set(key, [item]);\n }\n }\n return groups;\n }\n _flatten(groups) {\n const isGroupByFn = isFunction(this._ngSelect.groupBy);\n const items = [];\n for (const key of Array.from(groups.keys())) {\n let i = items.length;\n if (key === undefined) {\n const withoutGroup = groups.get(undefined) || [];\n items.push(...withoutGroup.map(x => {\n x.index = i++;\n return x;\n }));\n continue;\n }\n const isObjectKey = isObject(key);\n const parent = {\n label: isObjectKey ? '' : String(key),\n children: undefined,\n parent: null,\n index: i++,\n disabled: !this._ngSelect.selectableGroup,\n htmlId: newId(),\n };\n const groupKey = isGroupByFn ? this._ngSelect.bindLabel : this._ngSelect.groupBy;\n const groupValue = this._ngSelect.groupValue || (() => {\n if (isObjectKey) {\n return key.value;\n }\n return { [groupKey]: key };\n });\n const children = groups.get(key).map(x => {\n x.parent = parent;\n x.children = undefined;\n x.index = i++;\n return x;\n });\n parent.children = children;\n parent.value = groupValue(key, children.map(x => x.value));\n items.push(parent);\n items.push(...children);\n }\n return items;\n }\n}\n\nvar KeyCode;\n(function (KeyCode) {\n KeyCode[KeyCode[\"Tab\"] = 9] = \"Tab\";\n KeyCode[KeyCode[\"Enter\"] = 13] = \"Enter\";\n KeyCode[KeyCode[\"Esc\"] = 27] = \"Esc\";\n KeyCode[KeyCode[\"Space\"] = 32] = \"Space\";\n KeyCode[KeyCode[\"ArrowUp\"] = 38] = \"ArrowUp\";\n KeyCode[KeyCode[\"ArrowDown\"] = 40] = \"ArrowDown\";\n KeyCode[KeyCode[\"Backspace\"] = 8] = \"Backspace\";\n})(KeyCode || (KeyCode = {}));\n\nclass NgDropdownPanelService {\n constructor() {\n this._dimensions = {\n itemHeight: 0,\n panelHeight: 0,\n itemsPerViewport: 0\n };\n }\n get dimensions() {\n return this._dimensions;\n }\n calculateItems(scrollPos, itemsLength, buffer) {\n const d = this._dimensions;\n const scrollHeight = d.itemHeight * itemsLength;\n const scrollTop = Math.max(0, scrollPos);\n const indexByScrollTop = scrollTop / scrollHeight * itemsLength;\n let end = Math.min(itemsLength, Math.ceil(indexByScrollTop) + (d.itemsPerViewport + 1));\n const maxStartEnd = end;\n const maxStart = Math.max(0, maxStartEnd - d.itemsPerViewport);\n let start = Math.min(maxStart, Math.floor(indexByScrollTop));\n let topPadding = d.itemHeight * Math.ceil(start) - (d.itemHeight * Math.min(start, buffer));\n topPadding = !isNaN(topPadding) ? topPadding : 0;\n start = !isNaN(start) ? start : -1;\n end = !isNaN(end) ? end : -1;\n start -= buffer;\n start = Math.max(0, start);\n end += buffer;\n end = Math.min(itemsLength, end);\n return {\n topPadding,\n scrollHeight,\n start,\n end\n };\n }\n setDimensions(itemHeight, panelHeight) {\n const itemsPerViewport = Math.max(1, Math.floor(panelHeight / itemHeight));\n this._dimensions = {\n itemHeight,\n panelHeight,\n itemsPerViewport\n };\n }\n getScrollTo(itemTop, itemHeight, lastScroll) {\n const { panelHeight } = this.dimensions;\n const itemBottom = itemTop + itemHeight;\n const top = lastScroll;\n const bottom = top + panelHeight;\n if (panelHeight >= itemBottom && lastScroll === itemTop) {\n return null;\n }\n if (itemBottom > bottom) {\n return top + itemBottom - bottom;\n }\n else if (itemTop <= top) {\n return itemTop;\n }\n return null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgDropdownPanelService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgDropdownPanelService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgDropdownPanelService, decorators: [{\n type: Injectable\n }] });\n\nconst CSS_POSITIONS = ['top', 'right', 'bottom', 'left'];\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\nclass NgDropdownPanelComponent {\n constructor(_renderer, _zone, _panelService, _elementRef, _document) {\n this._renderer = _renderer;\n this._zone = _zone;\n this._panelService = _panelService;\n this._document = _document;\n this.items = [];\n this.position = 'auto';\n this.virtualScroll = false;\n this.filterValue = null;\n this.update = new EventEmitter();\n this.scroll = new EventEmitter();\n this.scrollToEnd = new EventEmitter();\n this.outsideClick = new EventEmitter();\n this._destroy$ = new Subject();\n this._scrollToEndFired = false;\n this._updateScrollHeight = false;\n this._lastScrollPosition = 0;\n this._dropdown = _elementRef.nativeElement;\n }\n get currentPosition() {\n return this._currentPosition;\n }\n get itemsLength() {\n return this._itemsLength;\n }\n set itemsLength(value) {\n if (value !== this._itemsLength) {\n this._itemsLength = value;\n this._onItemsLengthChanged();\n }\n }\n get _startOffset() {\n if (this.markedItem) {\n const { itemHeight, panelHeight } = this._panelService.dimensions;\n const offset = this.markedItem.index * itemHeight;\n return panelHeight > offset ? 0 : offset;\n }\n return 0;\n }\n ngOnInit() {\n this._select = this._dropdown.parentElement;\n this._virtualPadding = this.paddingElementRef.nativeElement;\n this._scrollablePanel = this.scrollElementRef.nativeElement;\n this._contentPanel = this.contentElementRef.nativeElement;\n this._handleScroll();\n this._handleOutsideClick();\n this._appendDropdown();\n this._setupMousedownListener();\n }\n ngOnChanges(changes) {\n if (changes.items) {\n const change = changes.items;\n this._onItemsChange(change.currentValue, change.firstChange);\n }\n }\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this._destroy$.unsubscribe();\n if (this.appendTo) {\n this._renderer.removeChild(this._dropdown.parentNode, this._dropdown);\n }\n }\n scrollTo(option, startFromOption = false) {\n if (!option) {\n return;\n }\n const index = this.items.indexOf(option);\n if (index < 0 || index >= this.itemsLength) {\n return;\n }\n let scrollTo;\n if (this.virtualScroll) {\n const itemHeight = this._panelService.dimensions.itemHeight;\n scrollTo = this._panelService.getScrollTo(index * itemHeight, itemHeight, this._lastScrollPosition);\n }\n else {\n const item = this._dropdown.querySelector(`#${option.htmlId}`);\n const lastScroll = startFromOption ? item.offsetTop : this._lastScrollPosition;\n scrollTo = this._panelService.getScrollTo(item.offsetTop, item.clientHeight, lastScroll);\n }\n if (isDefined(scrollTo)) {\n this._scrollablePanel.scrollTop = scrollTo;\n }\n }\n scrollToTag() {\n const panel = this._scrollablePanel;\n panel.scrollTop = panel.scrollHeight - panel.clientHeight;\n }\n adjustPosition() {\n this._updateYPosition();\n }\n _handleDropdownPosition() {\n this._currentPosition = this._calculateCurrentPosition(this._dropdown);\n if (CSS_POSITIONS.includes(this._currentPosition)) {\n this._updateDropdownClass(this._currentPosition);\n }\n else {\n this._updateDropdownClass('bottom');\n }\n if (this.appendTo) {\n this._updateYPosition();\n }\n this._dropdown.style.opacity = '1';\n }\n _updateDropdownClass(currentPosition) {\n CSS_POSITIONS.forEach((position) => {\n const REMOVE_CSS_CLASS = `ng-select-${position}`;\n this._renderer.removeClass(this._dropdown, REMOVE_CSS_CLASS);\n this._renderer.removeClass(this._select, REMOVE_CSS_CLASS);\n });\n const ADD_CSS_CLASS = `ng-select-${currentPosition}`;\n this._renderer.addClass(this._dropdown, ADD_CSS_CLASS);\n this._renderer.addClass(this._select, ADD_CSS_CLASS);\n }\n _handleScroll() {\n this._zone.runOutsideAngular(() => {\n fromEvent(this.scrollElementRef.nativeElement, 'scroll')\n .pipe(takeUntil(this._destroy$), auditTime(0, SCROLL_SCHEDULER))\n .subscribe((e) => {\n const path = e.path || (e.composedPath && e.composedPath());\n if (!path || path.length === 0 && !e.target) {\n return;\n }\n const scrollTop = !path || path.length === 0 ? e.target.scrollTop : path[0].scrollTop;\n this._onContentScrolled(scrollTop);\n });\n });\n }\n _handleOutsideClick() {\n if (!this._document) {\n return;\n }\n this._zone.runOutsideAngular(() => {\n merge(fromEvent(this._document, 'touchstart', { capture: true }), fromEvent(this._document, 'mousedown', { capture: true })).pipe(takeUntil(this._destroy$))\n .subscribe($event => this._checkToClose($event));\n });\n }\n _checkToClose($event) {\n if (this._select.contains($event.target) || this._dropdown.contains($event.target)) {\n return;\n }\n const path = $event.path || ($event.composedPath && $event.composedPath());\n if ($event.target && $event.target.shadowRoot && path && path[0] && this._select.contains(path[0])) {\n return;\n }\n this._zone.run(() => this.outsideClick.emit());\n }\n _onItemsChange(items, firstChange) {\n this.items = items || [];\n this._scrollToEndFired = false;\n this.itemsLength = items.length;\n if (this.virtualScroll) {\n this._updateItemsRange(firstChange);\n }\n else {\n this._setVirtualHeight();\n this._updateItems(firstChange);\n }\n }\n _updateItems(firstChange) {\n this.update.emit(this.items);\n if (firstChange === false) {\n return;\n }\n this._zone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n const panelHeight = this._scrollablePanel.clientHeight;\n this._panelService.setDimensions(0, panelHeight);\n this._handleDropdownPosition();\n this.scrollTo(this.markedItem, firstChange);\n });\n });\n }\n _updateItemsRange(firstChange) {\n this._zone.runOutsideAngular(() => {\n this._measureDimensions().then(() => {\n if (firstChange) {\n this._renderItemsRange(this._startOffset);\n this._handleDropdownPosition();\n }\n else {\n this._renderItemsRange();\n }\n });\n });\n }\n _onContentScrolled(scrollTop) {\n if (this.virtualScroll) {\n this._renderItemsRange(scrollTop);\n }\n this._lastScrollPosition = scrollTop;\n this._fireScrollToEnd(scrollTop);\n }\n _updateVirtualHeight(height) {\n if (this._updateScrollHeight) {\n this._virtualPadding.style.height = `${height}px`;\n this._updateScrollHeight = false;\n }\n }\n _setVirtualHeight() {\n if (!this._virtualPadding) {\n return;\n }\n this._virtualPadding.style.height = `0px`;\n }\n _onItemsLengthChanged() {\n this._updateScrollHeight = true;\n }\n _renderItemsRange(scrollTop = null) {\n if (scrollTop && this._lastScrollPosition === scrollTop) {\n return;\n }\n scrollTop = scrollTop || this._scrollablePanel.scrollTop;\n const range = this._panelService.calculateItems(scrollTop, this.itemsLength, this.bufferAmount);\n this._updateVirtualHeight(range.scrollHeight);\n this._contentPanel.style.transform = `translateY(${range.topPadding}px)`;\n this._zone.run(() => {\n this.update.emit(this.items.slice(range.start, range.end));\n this.scroll.emit({ start: range.start, end: range.end });\n });\n if (isDefined(scrollTop) && this._lastScrollPosition === 0) {\n this._scrollablePanel.scrollTop = scrollTop;\n this._lastScrollPosition = scrollTop;\n }\n }\n _measureDimensions() {\n if (this._panelService.dimensions.itemHeight > 0 || this.itemsLength === 0) {\n return Promise.resolve(this._panelService.dimensions);\n }\n const [first] = this.items;\n this.update.emit([first]);\n return Promise.resolve().then(() => {\n const option = this._dropdown.querySelector(`#${first.htmlId}`);\n const optionHeight = option.clientHeight;\n this._virtualPadding.style.height = `${optionHeight * this.itemsLength}px`;\n const panelHeight = this._scrollablePanel.clientHeight;\n this._panelService.setDimensions(optionHeight, panelHeight);\n return this._panelService.dimensions;\n });\n }\n _fireScrollToEnd(scrollTop) {\n if (this._scrollToEndFired || scrollTop === 0) {\n return;\n }\n const padding = this.virtualScroll ?\n this._virtualPadding :\n this._contentPanel;\n if (scrollTop + this._dropdown.clientHeight >= padding.clientHeight - 1) {\n this._zone.run(() => this.scrollToEnd.emit());\n this._scrollToEndFired = true;\n }\n }\n _calculateCurrentPosition(dropdownEl) {\n if (this.position !== 'auto') {\n return this.position;\n }\n const selectRect = this._select.getBoundingClientRect();\n const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n const offsetTop = selectRect.top + window.pageYOffset;\n const height = selectRect.height;\n const dropdownHeight = dropdownEl.getBoundingClientRect().height;\n if (offsetTop + height + dropdownHeight > scrollTop + document.documentElement.clientHeight) {\n return 'top';\n }\n else {\n return 'bottom';\n }\n }\n _appendDropdown() {\n if (!this.appendTo) {\n return;\n }\n this._parent = document.querySelector(this.appendTo);\n if (!this._parent) {\n throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);\n }\n this._updateXPosition();\n this._parent.appendChild(this._dropdown);\n }\n _updateXPosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\n const offsetLeft = select.left - parent.left;\n this._dropdown.style.left = offsetLeft + 'px';\n this._dropdown.style.width = select.width + 'px';\n this._dropdown.style.minWidth = select.width + 'px';\n }\n _updateYPosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\n const delta = select.height;\n if (this._currentPosition === 'top') {\n const offsetBottom = parent.bottom - select.bottom;\n this._dropdown.style.bottom = offsetBottom + delta + 'px';\n this._dropdown.style.top = 'auto';\n }\n else if (this._currentPosition === 'bottom') {\n const offsetTop = select.top - parent.top;\n this._dropdown.style.top = offsetTop + delta + 'px';\n this._dropdown.style.bottom = 'auto';\n }\n }\n _setupMousedownListener() {\n this._zone.runOutsideAngular(() => {\n fromEvent(this._dropdown, 'mousedown')\n .pipe(takeUntil(this._destroy$))\n .subscribe((event) => {\n const target = event.target;\n if (target.tagName === 'INPUT') {\n return;\n }\n event.preventDefault();\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgDropdownPanelComponent, deps: [{ token: i0.Renderer2 }, { token: i0.NgZone }, { token: NgDropdownPanelService }, { token: i0.ElementRef }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgDropdownPanelComponent, selector: \"ng-dropdown-panel\", inputs: { items: \"items\", markedItem: \"markedItem\", position: \"position\", appendTo: \"appendTo\", bufferAmount: \"bufferAmount\", virtualScroll: \"virtualScroll\", headerTemplate: \"headerTemplate\", footerTemplate: \"footerTemplate\", filterValue: \"filterValue\" }, outputs: { update: \"update\", scroll: \"scroll\", scrollToEnd: \"scrollToEnd\", outsideClick: \"outsideClick\" }, viewQueries: [{ propertyName: \"contentElementRef\", first: true, predicate: [\"content\"], descendants: true, read: ElementRef, static: true }, { propertyName: \"scrollElementRef\", first: true, predicate: [\"scroll\"], descendants: true, read: ElementRef, static: true }, { propertyName: \"paddingElementRef\", first: true, predicate: [\"padding\"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: `\n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i3.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgDropdownPanelComponent, decorators: [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'ng-dropdown-panel',\n template: `\n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n `\n }]\n }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.NgZone }, { type: NgDropdownPanelService }, { type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }], propDecorators: { items: [{\n type: Input\n }], markedItem: [{\n type: Input\n }], position: [{\n type: Input\n }], appendTo: [{\n type: Input\n }], bufferAmount: [{\n type: Input\n }], virtualScroll: [{\n type: Input\n }], headerTemplate: [{\n type: Input\n }], footerTemplate: [{\n type: Input\n }], filterValue: [{\n type: Input\n }], update: [{\n type: Output\n }], scroll: [{\n type: Output\n }], scrollToEnd: [{\n type: Output\n }], outsideClick: [{\n type: Output\n }], contentElementRef: [{\n type: ViewChild,\n args: ['content', { read: ElementRef, static: true }]\n }], scrollElementRef: [{\n type: ViewChild,\n args: ['scroll', { read: ElementRef, static: true }]\n }], paddingElementRef: [{\n type: ViewChild,\n args: ['padding', { read: ElementRef, static: true }]\n }] } });\n\nclass NgOptionComponent {\n get disabled() { return this._disabled; }\n set disabled(value) { this._disabled = this._isDisabled(value); }\n constructor(elementRef) {\n this.elementRef = elementRef;\n this.stateChange$ = new Subject();\n this._disabled = false;\n }\n get label() {\n return (this.elementRef.nativeElement.textContent || '').trim();\n }\n ngOnChanges(changes) {\n if (changes.disabled) {\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled\n });\n }\n }\n ngAfterViewChecked() {\n if (this.label !== this._previousLabel) {\n this._previousLabel = this.label;\n this.stateChange$.next({\n value: this.value,\n disabled: this._disabled,\n label: this.elementRef.nativeElement.innerHTML\n });\n }\n }\n ngOnDestroy() {\n this.stateChange$.complete();\n }\n _isDisabled(value) {\n return value != null && `${value}` !== 'false';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgOptionComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgOptionComponent, selector: \"ng-option\", inputs: { value: \"value\", disabled: \"disabled\" }, usesOnChanges: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgOptionComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'ng-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ``\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { value: [{\n type: Input\n }], disabled: [{\n type: Input\n }] } });\n\nclass NgSelectConfig {\n constructor() {\n this.notFoundText = 'No items found';\n this.typeToSearchText = 'Type to search';\n this.addTagText = 'Add item';\n this.loadingText = 'Loading...';\n this.clearAllText = 'Clear all';\n this.disableVirtualScroll = true;\n this.openOnEnter = true;\n this.appearance = 'underline';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgSelectConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgSelectConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgSelectConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass ConsoleService {\n warn(message) {\n console.warn(message);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: ConsoleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: ConsoleService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: ConsoleService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nconst SELECTION_MODEL_FACTORY = new InjectionToken('ng-select-selection-model');\nclass NgSelectComponent {\n get items() { return this._items; }\n ;\n set items(value) {\n if (value === null) {\n value = [];\n }\n this._itemsAreUsed = true;\n this._items = value;\n }\n ;\n get compareWith() { return this._compareWith; }\n set compareWith(fn) {\n if (fn !== undefined && fn !== null && !isFunction(fn)) {\n throw Error('`compareWith` must be a function.');\n }\n this._compareWith = fn;\n }\n get clearSearchOnAdd() {\n if (isDefined(this._clearSearchOnAdd)) {\n return this._clearSearchOnAdd;\n }\n else if (isDefined(this.config.clearSearchOnAdd)) {\n return this.config.clearSearchOnAdd;\n }\n return this.closeOnSelect;\n }\n ;\n set clearSearchOnAdd(value) {\n this._clearSearchOnAdd = value;\n }\n ;\n get deselectOnClick() {\n if (isDefined(this._deselectOnClick)) {\n return this._deselectOnClick;\n }\n else if (isDefined(this.config.deselectOnClick)) {\n return this.config.deselectOnClick;\n }\n return this.multiple;\n }\n ;\n set deselectOnClick(value) {\n this._deselectOnClick = value;\n }\n ;\n get disabled() { return this.readonly || this._disabled; }\n ;\n get filtered() { return (!!this.searchTerm && this.searchable || this._isComposing); }\n ;\n get single() { return !this.multiple; }\n ;\n get _editableSearchTerm() {\n return this.editableSearchTerm && !this.multiple;\n }\n constructor(classes, autoFocus, config, newSelectionModel, _elementRef, _cd, _console) {\n this.classes = classes;\n this.autoFocus = autoFocus;\n this.config = config;\n this._cd = _cd;\n this._console = _console;\n this.markFirst = true;\n this.dropdownPosition = 'auto';\n this.loading = false;\n this.closeOnSelect = true;\n this.hideSelected = false;\n this.selectOnTab = false;\n this.bufferAmount = 4;\n this.selectableGroup = false;\n this.selectableGroupAsModel = true;\n this.searchFn = null;\n this.trackByFn = null;\n this.clearOnBackspace = true;\n this.labelForId = null;\n this.inputAttrs = {};\n this.readonly = false;\n this.searchWhileComposing = true;\n this.minTermLength = 0;\n this.editableSearchTerm = false;\n this.keyDownFn = (_) => true;\n this.multiple = false;\n this.addTag = false;\n this.searchable = true;\n this.clearable = true;\n this.isOpen = false;\n // output events\n this.blurEvent = new EventEmitter();\n this.focusEvent = new EventEmitter();\n this.changeEvent = new EventEmitter();\n this.openEvent = new EventEmitter();\n this.closeEvent = new EventEmitter();\n this.searchEvent = new EventEmitter();\n this.clearEvent = new EventEmitter();\n this.addEvent = new EventEmitter();\n this.removeEvent = new EventEmitter();\n this.scroll = new EventEmitter();\n this.scrollToEnd = new EventEmitter();\n this.useDefaultClass = true;\n this.viewPortItems = [];\n this.searchTerm = null;\n this.dropdownId = newId();\n this.escapeHTML = true;\n this._items = [];\n this._defaultLabel = 'label';\n this._pressedKeys = [];\n this._isComposing = false;\n this._destroy$ = new Subject();\n this._keyPress$ = new Subject();\n this._onChange = (_) => { };\n this._onTouched = () => { };\n this.clearItem = (item) => {\n const option = this.selectedItems.find(x => x.value === item);\n this.unselect(option);\n };\n this.trackByOption = (_, item) => {\n if (this.trackByFn) {\n return this.trackByFn(item.value);\n }\n return item;\n };\n this._mergeGlobalConfig(config);\n this.itemsList = new ItemsList(this, newSelectionModel());\n this.element = _elementRef.nativeElement;\n }\n get selectedItems() {\n return this.itemsList.selectedItems;\n }\n get selectedValues() {\n return this.selectedItems.map(x => x.value);\n }\n get hasValue() {\n return this.selectedItems.length > 0;\n }\n get currentPanelPosition() {\n if (this.dropdownPanel) {\n return this.dropdownPanel.currentPosition;\n }\n return undefined;\n }\n ngOnInit() {\n this._handleKeyPresses();\n this._setInputAttributes();\n }\n ngOnChanges(changes) {\n if (changes.multiple) {\n this.itemsList.clearSelected();\n }\n if (changes.items) {\n this._setItems(changes.items.currentValue || []);\n }\n if (changes.isOpen) {\n this._manualOpen = isDefined(changes.isOpen.currentValue);\n }\n }\n ngAfterViewInit() {\n if (!this._itemsAreUsed) {\n this.escapeHTML = false;\n this._setItemsFromNgOptions();\n }\n if (isDefined(this.autoFocus)) {\n this.focus();\n }\n }\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n handleKeyDown($event) {\n const keyCode = KeyCode[$event.which];\n if (keyCode) {\n if (this.keyDownFn($event) === false) {\n return;\n }\n this.handleKeyCode($event);\n }\n else if ($event.key && $event.key.length === 1) {\n this._keyPress$.next($event.key.toLocaleLowerCase());\n }\n }\n handleKeyCode($event) {\n const target = $event.target;\n if (this.clearButton && this.clearButton.nativeElement === target) {\n this.handleKeyCodeClear($event);\n }\n else {\n this.handleKeyCodeInput($event);\n }\n }\n handleKeyCodeInput($event) {\n switch ($event.which) {\n case KeyCode.ArrowDown:\n this._handleArrowDown($event);\n break;\n case KeyCode.ArrowUp:\n this._handleArrowUp($event);\n break;\n case KeyCode.Space:\n this._handleSpace($event);\n break;\n case KeyCode.Enter:\n this._handleEnter($event);\n break;\n case KeyCode.Tab:\n this._handleTab($event);\n break;\n case KeyCode.Esc:\n this.close();\n $event.preventDefault();\n break;\n case KeyCode.Backspace:\n this._handleBackspace();\n break;\n }\n }\n handleKeyCodeClear($event) {\n switch ($event.which) {\n case KeyCode.Enter:\n this.handleClearClick();\n $event.preventDefault();\n break;\n }\n }\n handleMousedown($event) {\n const target = $event.target;\n if (target.tagName !== 'INPUT') {\n $event.preventDefault();\n }\n if (target.classList.contains('ng-clear-wrapper')) {\n this.handleClearClick();\n return;\n }\n if (target.classList.contains('ng-arrow-wrapper')) {\n this.handleArrowClick();\n return;\n }\n if (target.classList.contains('ng-value-icon')) {\n return;\n }\n if (!this.focused) {\n this.focus();\n }\n if (this.searchable) {\n this.open();\n }\n else {\n this.toggle();\n }\n }\n handleArrowClick() {\n if (this.isOpen) {\n this.close();\n }\n else {\n this.open();\n }\n }\n handleClearClick() {\n if (this.hasValue) {\n this.itemsList.clearSelected(true);\n this._updateNgModel();\n }\n this._clearSearch();\n this.focus();\n this.clearEvent.emit();\n this._onSelectionChanged();\n }\n clearModel() {\n if (!this.clearable) {\n return;\n }\n this.itemsList.clearSelected();\n this._updateNgModel();\n }\n writeValue(value) {\n this.itemsList.clearSelected();\n this._handleWriteValue(value);\n this._cd.markForCheck();\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n setDisabledState(state) {\n this._disabled = state;\n this._cd.markForCheck();\n }\n toggle() {\n if (!this.isOpen) {\n this.open();\n }\n else {\n this.close();\n }\n }\n open() {\n if (this.disabled || this.isOpen || this._manualOpen) {\n return;\n }\n if (!this._isTypeahead && !this.addTag && this.itemsList.noItemsToSelect) {\n return;\n }\n this.isOpen = true;\n this.itemsList.markSelectedOrDefault(this.markFirst);\n this.openEvent.emit();\n if (!this.searchTerm) {\n this.focus();\n }\n this.detectChanges();\n }\n close() {\n if (!this.isOpen || this._manualOpen) {\n return;\n }\n this.isOpen = false;\n this._isComposing = false;\n if (!this._editableSearchTerm) {\n this._clearSearch();\n }\n else {\n this.itemsList.resetFilteredItems();\n }\n this.itemsList.unmarkItem();\n this._onTouched();\n this.closeEvent.emit();\n this._cd.markForCheck();\n }\n toggleItem(item) {\n if (!item || item.disabled || this.disabled) {\n return;\n }\n if (this.deselectOnClick && item.selected) {\n this.unselect(item);\n }\n else {\n this.select(item);\n }\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n this._onSelectionChanged();\n }\n select(item) {\n if (!item.selected) {\n this.itemsList.select(item);\n if (this.clearSearchOnAdd && !this._editableSearchTerm) {\n this._clearSearch();\n }\n this._updateNgModel();\n if (this.multiple) {\n this.addEvent.emit(item.value);\n }\n }\n if (this.closeOnSelect || this.itemsList.noItemsToSelect) {\n this.close();\n }\n }\n focus() {\n this.searchInput.nativeElement.focus();\n }\n blur() {\n this.searchInput.nativeElement.blur();\n }\n unselect(item) {\n if (!item) {\n return;\n }\n this.itemsList.unselect(item);\n this.focus();\n this._updateNgModel();\n this.removeEvent.emit(item.value);\n }\n selectTag() {\n let tag;\n if (isFunction(this.addTag)) {\n tag = this.addTag(this.searchTerm);\n }\n else {\n tag = this._primitive ? this.searchTerm : { [this.bindLabel]: this.searchTerm };\n }\n const handleTag = (item) => this._isTypeahead || !this.isOpen ? this.itemsList.mapItem(item, null) : this.itemsList.addItem(item);\n if (isPromise(tag)) {\n tag.then(item => this.select(handleTag(item))).catch(() => { });\n }\n else if (tag) {\n this.select(handleTag(tag));\n }\n }\n showClear() {\n return this.clearable && (this.hasValue || this.searchTerm) && !this.disabled;\n }\n focusOnClear() {\n this.blur();\n if (this.clearButton) {\n this.clearButton.nativeElement.focus();\n }\n }\n get showAddTag() {\n if (!this._validTerm) {\n return false;\n }\n const term = this.searchTerm.toLowerCase().trim();\n return this.addTag &&\n (!this.itemsList.filteredItems.some(x => x.label.toLowerCase() === term) &&\n (!this.hideSelected && this.isOpen || !this.selectedItems.some(x => x.label.toLowerCase() === term))) &&\n !this.loading;\n }\n showNoItemsFound() {\n const empty = this.itemsList.filteredItems.length === 0;\n return ((empty && !this._isTypeahead && !this.loading) ||\n (empty && this._isTypeahead && this._validTerm && !this.loading)) &&\n !this.showAddTag;\n }\n showTypeToSearch() {\n const empty = this.itemsList.filteredItems.length === 0;\n return empty && this._isTypeahead && !this._validTerm && !this.loading;\n }\n onCompositionStart() {\n this._isComposing = true;\n }\n onCompositionEnd(term) {\n this._isComposing = false;\n if (this.searchWhileComposing) {\n return;\n }\n this.filter(term);\n }\n filter(term) {\n if (this._isComposing && !this.searchWhileComposing) {\n return;\n }\n this.searchTerm = term;\n if (this._isTypeahead && (this._validTerm || this.minTermLength === 0)) {\n this.typeahead.next(term);\n }\n if (!this._isTypeahead) {\n this.itemsList.filter(this.searchTerm);\n if (this.isOpen) {\n this.itemsList.markSelectedOrDefault(this.markFirst);\n }\n }\n this.searchEvent.emit({ term, items: this.itemsList.filteredItems.map(x => x.value) });\n this.open();\n }\n onInputFocus($event) {\n if (this.focused) {\n return;\n }\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n this.element.classList.add('ng-select-focused');\n this.focusEvent.emit($event);\n this.focused = true;\n }\n onInputBlur($event) {\n this.element.classList.remove('ng-select-focused');\n this.blurEvent.emit($event);\n if (!this.isOpen && !this.disabled) {\n this._onTouched();\n }\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n this.focused = false;\n }\n onItemHover(item) {\n if (item.disabled) {\n return;\n }\n this.itemsList.markItem(item);\n }\n detectChanges() {\n if (!this._cd.destroyed) {\n this._cd.detectChanges();\n }\n }\n _setSearchTermFromItems() {\n const selected = this.selectedItems && this.selectedItems[0];\n this.searchTerm = (selected && selected.label) || null;\n }\n _setItems(items) {\n const firstItem = items[0];\n this.bindLabel = this.bindLabel || this._defaultLabel;\n this._primitive = isDefined(firstItem) ? !isObject(firstItem) : this._primitive || this.bindLabel === this._defaultLabel;\n this.itemsList.setItems(items);\n if (items.length > 0 && this.hasValue) {\n this.itemsList.mapSelectedItems();\n }\n if (this.isOpen && isDefined(this.searchTerm) && !this._isTypeahead) {\n this.itemsList.filter(this.searchTerm);\n }\n if (this._isTypeahead || this.isOpen) {\n this.itemsList.markSelectedOrDefault(this.markFirst);\n }\n }\n _setItemsFromNgOptions() {\n const mapNgOptions = (options) => {\n this.items = options.map(option => ({\n $ngOptionValue: option.value,\n $ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n disabled: option.disabled\n }));\n this.itemsList.setItems(this.items);\n if (this.hasValue) {\n this.itemsList.mapSelectedItems();\n }\n this.detectChanges();\n };\n const handleOptionChange = () => {\n const changedOrDestroyed = merge(this.ngOptions.changes, this._destroy$);\n merge(...this.ngOptions.map(option => option.stateChange$))\n .pipe(takeUntil(changedOrDestroyed))\n .subscribe(option => {\n const item = this.itemsList.findItem(option.value);\n item.disabled = option.disabled;\n item.label = option.label || item.label;\n this._cd.detectChanges();\n });\n };\n this.ngOptions.changes\n .pipe(startWith(this.ngOptions), takeUntil(this._destroy$))\n .subscribe(options => {\n this.bindLabel = this._defaultLabel;\n mapNgOptions(options);\n handleOptionChange();\n });\n }\n _isValidWriteValue(value) {\n if (!isDefined(value) || (this.multiple && value === '') || Array.isArray(value) && value.length === 0) {\n return false;\n }\n const validateBinding = (item) => {\n if (!isDefined(this.compareWith) && isObject(item) && this.bindValue) {\n this._console.warn(`Setting object(${JSON.stringify(item)}) as your model with bindValue is not allowed unless [compareWith] is used.`);\n return false;\n }\n return true;\n };\n if (this.multiple) {\n if (!Array.isArray(value)) {\n this._console.warn('Multiple select ngModel should be array.');\n return false;\n }\n return value.every(item => validateBinding(item));\n }\n else {\n return validateBinding(value);\n }\n }\n _handleWriteValue(ngModel) {\n if (!this._isValidWriteValue(ngModel)) {\n return;\n }\n const select = (val) => {\n let item = this.itemsList.findItem(val);\n if (item) {\n this.itemsList.select(item);\n }\n else {\n const isValObject = isObject(val);\n const isPrimitive = !isValObject && !this.bindValue;\n if ((isValObject || isPrimitive)) {\n this.itemsList.select(this.itemsList.mapItem(val, null));\n }\n else if (this.bindValue) {\n item = {\n [this.bindLabel]: null,\n [this.bindValue]: val\n };\n this.itemsList.select(this.itemsList.mapItem(item, null));\n }\n }\n };\n if (this.multiple) {\n ngModel.forEach(item => select(item));\n }\n else {\n select(ngModel);\n }\n }\n _handleKeyPresses() {\n if (this.searchable) {\n return;\n }\n this._keyPress$\n .pipe(takeUntil(this._destroy$), tap(letter => this._pressedKeys.push(letter)), debounceTime(200), filter(() => this._pressedKeys.length > 0), map(() => this._pressedKeys.join('')))\n .subscribe(term => {\n const item = this.itemsList.findByLabel(term);\n if (item) {\n if (this.isOpen) {\n this.itemsList.markItem(item);\n this._scrollToMarked();\n this._cd.markForCheck();\n }\n else {\n this.select(item);\n }\n }\n this._pressedKeys = [];\n });\n }\n _setInputAttributes() {\n const input = this.searchInput.nativeElement;\n const attributes = {\n type: 'text',\n autocorrect: 'off',\n autocapitalize: 'off',\n autocomplete: this.labelForId ? 'off' : this.dropdownId,\n ...this.inputAttrs\n };\n for (const key of Object.keys(attributes)) {\n input.setAttribute(key, attributes[key]);\n }\n }\n _updateNgModel() {\n const model = [];\n for (const item of this.selectedItems) {\n if (this.bindValue) {\n let value = null;\n if (item.children) {\n const groupKey = this.groupValue ? this.bindValue : this.groupBy;\n value = item.value[groupKey || this.groupBy];\n }\n else {\n value = this.itemsList.resolveNested(item.value, this.bindValue);\n }\n model.push(value);\n }\n else {\n model.push(item.value);\n }\n }\n const selected = this.selectedItems.map(x => x.value);\n if (this.multiple) {\n this._onChange(model);\n this.changeEvent.emit(selected);\n }\n else {\n this._onChange(isDefined(model[0]) ? model[0] : null);\n this.changeEvent.emit(selected[0]);\n }\n this._cd.markForCheck();\n }\n _clearSearch() {\n if (!this.searchTerm) {\n return;\n }\n this._changeSearch(null);\n this.itemsList.resetFilteredItems();\n }\n _changeSearch(searchTerm) {\n this.searchTerm = searchTerm;\n if (this._isTypeahead) {\n this.typeahead.next(searchTerm);\n }\n }\n _scrollToMarked() {\n if (!this.isOpen || !this.dropdownPanel) {\n return;\n }\n this.dropdownPanel.scrollTo(this.itemsList.markedItem);\n }\n _scrollToTag() {\n if (!this.isOpen || !this.dropdownPanel) {\n return;\n }\n this.dropdownPanel.scrollToTag();\n }\n _onSelectionChanged() {\n if (this.isOpen && this.deselectOnClick && this.appendTo) {\n // Make sure items are rendered.\n this._cd.detectChanges();\n this.dropdownPanel.adjustPosition();\n }\n }\n _handleTab($event) {\n if (this.isOpen === false) {\n if (this.showClear()) {\n this.focusOnClear();\n $event.preventDefault();\n }\n else if (!this.addTag) {\n return;\n }\n }\n if (this.selectOnTab) {\n if (this.itemsList.markedItem) {\n this.toggleItem(this.itemsList.markedItem);\n $event.preventDefault();\n }\n else if (this.showAddTag) {\n this.selectTag();\n $event.preventDefault();\n }\n else {\n this.close();\n }\n }\n else {\n this.close();\n }\n }\n _handleEnter($event) {\n if (this.isOpen || this._manualOpen) {\n if (this.itemsList.markedItem) {\n this.toggleItem(this.itemsList.markedItem);\n }\n else if (this.showAddTag) {\n this.selectTag();\n }\n }\n else if (this.openOnEnter) {\n this.open();\n }\n else {\n return;\n }\n $event.preventDefault();\n }\n _handleSpace($event) {\n if (this.isOpen || this._manualOpen) {\n return;\n }\n this.open();\n $event.preventDefault();\n }\n _handleArrowDown($event) {\n if (this._nextItemIsTag(+1)) {\n this.itemsList.unmarkItem();\n this._scrollToTag();\n }\n else {\n this.itemsList.markNextItem();\n this._scrollToMarked();\n }\n this.open();\n $event.preventDefault();\n }\n _handleArrowUp($event) {\n if (!this.isOpen) {\n return;\n }\n if (this._nextItemIsTag(-1)) {\n this.itemsList.unmarkItem();\n this._scrollToTag();\n }\n else {\n this.itemsList.markPreviousItem();\n this._scrollToMarked();\n }\n $event.preventDefault();\n }\n _nextItemIsTag(nextStep) {\n const nextIndex = this.itemsList.markedIndex + nextStep;\n return this.addTag && this.searchTerm\n && this.itemsList.markedItem\n && (nextIndex < 0 || nextIndex === this.itemsList.filteredItems.length);\n }\n _handleBackspace() {\n if (this.searchTerm || !this.clearable || !this.clearOnBackspace || !this.hasValue) {\n return;\n }\n if (this.multiple) {\n this.unselect(this.itemsList.lastSelectedItem);\n }\n else {\n this.clearModel();\n }\n }\n get _isTypeahead() {\n return this.typeahead && this.typeahead.observers.length > 0;\n }\n get _validTerm() {\n const term = this.searchTerm && this.searchTerm.trim();\n return term && term.length >= this.minTermLength;\n }\n _mergeGlobalConfig(config) {\n this.placeholder = this.placeholder || config.placeholder;\n this.notFoundText = this.notFoundText || config.notFoundText;\n this.typeToSearchText = this.typeToSearchText || config.typeToSearchText;\n this.addTagText = this.addTagText || config.addTagText;\n this.loadingText = this.loadingText || config.loadingText;\n this.clearAllText = this.clearAllText || config.clearAllText;\n this.virtualScroll = isDefined(this.virtualScroll)\n ? this.virtualScroll\n : isDefined(config.disableVirtualScroll) ? !config.disableVirtualScroll : false;\n this.openOnEnter = isDefined(this.openOnEnter) ? this.openOnEnter : config.openOnEnter;\n this.appendTo = this.appendTo || config.appendTo;\n this.bindValue = this.bindValue || config.bindValue;\n this.bindLabel = this.bindLabel || config.bindLabel;\n this.appearance = this.appearance || config.appearance;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgSelectComponent, deps: [{ token: 'class', attribute: true }, { token: 'autofocus', attribute: true }, { token: NgSelectConfig }, { token: SELECTION_MODEL_FACTORY }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: ConsoleService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgSelectComponent, selector: \"ng-select\", inputs: { bindLabel: \"bindLabel\", bindValue: \"bindValue\", markFirst: \"markFirst\", placeholder: \"placeholder\", notFoundText: \"notFoundText\", typeToSearchText: \"typeToSearchText\", addTagText: \"addTagText\", loadingText: \"loadingText\", clearAllText: \"clearAllText\", appearance: \"appearance\", dropdownPosition: \"dropdownPosition\", appendTo: \"appendTo\", loading: \"loading\", closeOnSelect: \"closeOnSelect\", hideSelected: \"hideSelected\", selectOnTab: \"selectOnTab\", openOnEnter: \"openOnEnter\", maxSelectedItems: \"maxSelectedItems\", groupBy: \"groupBy\", groupValue: \"groupValue\", bufferAmount: \"bufferAmount\", virtualScroll: \"virtualScroll\", selectableGroup: \"selectableGroup\", selectableGroupAsModel: \"selectableGroupAsModel\", searchFn: \"searchFn\", trackByFn: \"trackByFn\", clearOnBackspace: \"clearOnBackspace\", labelForId: \"labelForId\", inputAttrs: \"inputAttrs\", tabIndex: \"tabIndex\", readonly: \"readonly\", searchWhileComposing: \"searchWhileComposing\", minTermLength: \"minTermLength\", editableSearchTerm: \"editableSearchTerm\", keyDownFn: \"keyDownFn\", typeahead: \"typeahead\", multiple: \"multiple\", addTag: \"addTag\", searchable: \"searchable\", clearable: \"clearable\", isOpen: \"isOpen\", items: \"items\", compareWith: \"compareWith\", clearSearchOnAdd: \"clearSearchOnAdd\", deselectOnClick: \"deselectOnClick\" }, outputs: { blurEvent: \"blur\", focusEvent: \"focus\", changeEvent: \"change\", openEvent: \"open\", closeEvent: \"close\", searchEvent: \"search\", clearEvent: \"clear\", addEvent: \"add\", removeEvent: \"remove\", scroll: \"scroll\", scrollToEnd: \"scrollToEnd\" }, host: { listeners: { \"keydown\": \"handleKeyDown($event)\" }, properties: { \"class.ng-select-typeahead\": \"this.typeahead\", \"class.ng-select-multiple\": \"this.multiple\", \"class.ng-select-taggable\": \"this.addTag\", \"class.ng-select-searchable\": \"this.searchable\", \"class.ng-select-clearable\": \"this.clearable\", \"class.ng-select-opened\": \"this.isOpen\", \"class.ng-select\": \"this.useDefaultClass\", \"class.ng-select-disabled\": \"this.disabled\", \"class.ng-select-filtered\": \"this.filtered\", \"class.ng-select-single\": \"this.single\" } }, providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgSelectComponent),\n multi: true\n }, NgDropdownPanelService], queries: [{ propertyName: \"optionTemplate\", first: true, predicate: NgOptionTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: \"optgroupTemplate\", first: true, predicate: NgOptgroupTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: \"labelTemplate\", first: true, predicate: NgLabelTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: \"multiLabelTemplate\", first: true, predicate: NgMultiLabelTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: \"headerTemplate\", first: true, predicate: NgHeaderTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: \"footerTemplate\", first: true, predicate: NgFooterTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: \"notFoundTemplate\", first: true, predicate: NgNotFoundTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: \"typeToSearchTemplate\", first: true, predicate: NgTypeToSearchTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: \"loadingTextTemplate\", first: true, predicate: NgLoadingTextTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: \"tagTemplate\", first: true, predicate: NgTagTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: \"loadingSpinnerTemplate\", first: true, predicate: NgLoadingSpinnerTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: \"ngOptions\", predicate: NgOptionComponent, descendants: true }], viewQueries: [{ propertyName: \"dropdownPanel\", first: true, predicate: i0.forwardRef(() => NgDropdownPanelComponent), descendants: true }, { propertyName: \"searchInput\", first: true, predicate: [\"searchInput\"], descendants: true, static: true }, { propertyName: \"clearButton\", first: true, predicate: [\"clearButton\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: \"\\n\\n
    \\n
    {{placeholder}}
    \\n\\n 0\\\">\\n
    \\n \\n \\u00D7\\n \\n \\n\\n \\n \\n
    \\n
    \\n\\n 0\\\"\\n [ngTemplateOutlet]=\\\"multiLabelTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ items: selectedValues, clear: clearItem }\\\">\\n \\n\\n
    \\n\\n \\n
    \\n
    \\n\\n \\n \\n
    \\n
    \\n\\n \\n
    \\n \\n\\n \\n \\u00D7\\n \\n\\n \\n \\n \\n\\n\\n\\n\\n \\n
    \\n\\n \\n \\n \\n\\n \\n \\n
    \\n\\n
    \\n \\n {{addTagText}}\\\"{{searchTerm}}\\\"\\n \\n\\n \\n \\n
    \\n
    \\n\\n \\n \\n
    {{notFoundText}}
    \\n
    \\n\\n \\n \\n
    \\n\\n \\n \\n
    {{typeToSearchText}}
    \\n
    \\n\\n \\n \\n
    \\n\\n \\n \\n
    {{loadingText}}
    \\n
    \\n\\n \\n \\n
    \\n\\n
    \\n\", styles: [\"@charset \\\"UTF-8\\\";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:\\\"\\\\200b\\\"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\\n\"], dependencies: [{ kind: \"directive\", type: i3.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i3.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i3.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: NgDropdownPanelComponent, selector: \"ng-dropdown-panel\", inputs: [\"items\", \"markedItem\", \"position\", \"appendTo\", \"bufferAmount\", \"virtualScroll\", \"headerTemplate\", \"footerTemplate\", \"filterValue\"], outputs: [\"update\", \"scroll\", \"scrollToEnd\", \"outsideClick\"] }, { kind: \"directive\", type: NgItemLabelDirective, selector: \"[ngItemLabel]\", inputs: [\"ngItemLabel\", \"escape\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgSelectComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ng-select', providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgSelectComponent),\n multi: true\n }, NgDropdownPanelService], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: \"\\n\\n
    \\n
    {{placeholder}}
    \\n\\n 0\\\">\\n
    \\n \\n \\u00D7\\n \\n \\n\\n \\n \\n
    \\n
    \\n\\n 0\\\"\\n [ngTemplateOutlet]=\\\"multiLabelTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ items: selectedValues, clear: clearItem }\\\">\\n \\n\\n
    \\n\\n \\n
    \\n
    \\n\\n \\n \\n
    \\n
    \\n\\n \\n \\n
    \\n\\n \\n \\u00D7\\n \\n\\n \\n \\n \\n\\n\\n\\n\\n \\n
    \\n\\n \\n \\n \\n\\n \\n \\n
    \\n\\n
    \\n \\n {{addTagText}}\\\"{{searchTerm}}\\\"\\n \\n\\n \\n \\n
    \\n
    \\n\\n \\n \\n
    {{notFoundText}}
    \\n
    \\n\\n \\n \\n
    \\n\\n \\n \\n
    {{typeToSearchText}}
    \\n
    \\n\\n \\n \\n
    \\n\\n \\n \\n
    {{loadingText}}
    \\n
    \\n\\n \\n \\n
    \\n\\n
    \\n\", styles: [\"@charset \\\"UTF-8\\\";.ng-select{position:relative;display:block;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:none;user-select:none;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@keyframes load8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:\\\"\\\\200b\\\"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\\n\"] }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['class']\n }] }, { type: undefined, decorators: [{\n type: Attribute,\n args: ['autofocus']\n }] }, { type: NgSelectConfig }, { type: undefined, decorators: [{\n type: Inject,\n args: [SELECTION_MODEL_FACTORY]\n }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: ConsoleService }], propDecorators: { bindLabel: [{\n type: Input\n }], bindValue: [{\n type: Input\n }], markFirst: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], notFoundText: [{\n type: Input\n }], typeToSearchText: [{\n type: Input\n }], addTagText: [{\n type: Input\n }], loadingText: [{\n type: Input\n }], clearAllText: [{\n type: Input\n }], appearance: [{\n type: Input\n }], dropdownPosition: [{\n type: Input\n }], appendTo: [{\n type: Input\n }], loading: [{\n type: Input\n }], closeOnSelect: [{\n type: Input\n }], hideSelected: [{\n type: Input\n }], selectOnTab: [{\n type: Input\n }], openOnEnter: [{\n type: Input\n }], maxSelectedItems: [{\n type: Input\n }], groupBy: [{\n type: Input\n }], groupValue: [{\n type: Input\n }], bufferAmount: [{\n type: Input\n }], virtualScroll: [{\n type: Input\n }], selectableGroup: [{\n type: Input\n }], selectableGroupAsModel: [{\n type: Input\n }], searchFn: [{\n type: Input\n }], trackByFn: [{\n type: Input\n }], clearOnBackspace: [{\n type: Input\n }], labelForId: [{\n type: Input\n }], inputAttrs: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], readonly: [{\n type: Input\n }], searchWhileComposing: [{\n type: Input\n }], minTermLength: [{\n type: Input\n }], editableSearchTerm: [{\n type: Input\n }], keyDownFn: [{\n type: Input\n }], typeahead: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['class.ng-select-typeahead']\n }], multiple: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['class.ng-select-multiple']\n }], addTag: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['class.ng-select-taggable']\n }], searchable: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['class.ng-select-searchable']\n }], clearable: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['class.ng-select-clearable']\n }], isOpen: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['class.ng-select-opened']\n }], items: [{\n type: Input\n }], compareWith: [{\n type: Input\n }], clearSearchOnAdd: [{\n type: Input\n }], deselectOnClick: [{\n type: Input\n }], blurEvent: [{\n type: Output,\n args: ['blur']\n }], focusEvent: [{\n type: Output,\n args: ['focus']\n }], changeEvent: [{\n type: Output,\n args: ['change']\n }], openEvent: [{\n type: Output,\n args: ['open']\n }], closeEvent: [{\n type: Output,\n args: ['close']\n }], searchEvent: [{\n type: Output,\n args: ['search']\n }], clearEvent: [{\n type: Output,\n args: ['clear']\n }], addEvent: [{\n type: Output,\n args: ['add']\n }], removeEvent: [{\n type: Output,\n args: ['remove']\n }], scroll: [{\n type: Output,\n args: ['scroll']\n }], scrollToEnd: [{\n type: Output,\n args: ['scrollToEnd']\n }], optionTemplate: [{\n type: ContentChild,\n args: [NgOptionTemplateDirective, { read: TemplateRef }]\n }], optgroupTemplate: [{\n type: ContentChild,\n args: [NgOptgroupTemplateDirective, { read: TemplateRef }]\n }], labelTemplate: [{\n type: ContentChild,\n args: [NgLabelTemplateDirective, { read: TemplateRef }]\n }], multiLabelTemplate: [{\n type: ContentChild,\n args: [NgMultiLabelTemplateDirective, { read: TemplateRef }]\n }], headerTemplate: [{\n type: ContentChild,\n args: [NgHeaderTemplateDirective, { read: TemplateRef }]\n }], footerTemplate: [{\n type: ContentChild,\n args: [NgFooterTemplateDirective, { read: TemplateRef }]\n }], notFoundTemplate: [{\n type: ContentChild,\n args: [NgNotFoundTemplateDirective, { read: TemplateRef }]\n }], typeToSearchTemplate: [{\n type: ContentChild,\n args: [NgTypeToSearchTemplateDirective, { read: TemplateRef }]\n }], loadingTextTemplate: [{\n type: ContentChild,\n args: [NgLoadingTextTemplateDirective, { read: TemplateRef }]\n }], tagTemplate: [{\n type: ContentChild,\n args: [NgTagTemplateDirective, { read: TemplateRef }]\n }], loadingSpinnerTemplate: [{\n type: ContentChild,\n args: [NgLoadingSpinnerTemplateDirective, { read: TemplateRef }]\n }], dropdownPanel: [{\n type: ViewChild,\n args: [forwardRef(() => NgDropdownPanelComponent)]\n }], searchInput: [{\n type: ViewChild,\n args: ['searchInput', { static: true }]\n }], clearButton: [{\n type: ViewChild,\n args: ['clearButton']\n }], ngOptions: [{\n type: ContentChildren,\n args: [NgOptionComponent, { descendants: true }]\n }], useDefaultClass: [{\n type: HostBinding,\n args: ['class.ng-select']\n }], disabled: [{\n type: HostBinding,\n args: ['class.ng-select-disabled']\n }], filtered: [{\n type: HostBinding,\n args: ['class.ng-select-filtered']\n }], single: [{\n type: HostBinding,\n args: ['class.ng-select-single']\n }], handleKeyDown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n\nfunction DefaultSelectionModelFactory() {\n return new DefaultSelectionModel();\n}\nclass DefaultSelectionModel {\n constructor() {\n this._selected = [];\n }\n get value() {\n return this._selected;\n }\n select(item, multiple, groupAsModel) {\n item.selected = true;\n if (!item.children || (!multiple && groupAsModel)) {\n this._selected.push(item);\n }\n if (multiple) {\n if (item.parent) {\n const childrenCount = item.parent.children.length;\n const selectedCount = item.parent.children.filter(x => x.selected).length;\n item.parent.selected = childrenCount === selectedCount;\n }\n else if (item.children) {\n this._setChildrenSelectedState(item.children, true);\n this._removeChildren(item);\n if (groupAsModel && this._activeChildren(item)) {\n this._selected = [...this._selected.filter(x => x.parent !== item), item];\n }\n else {\n this._selected = [...this._selected, ...item.children.filter(x => !x.disabled)];\n }\n }\n }\n }\n unselect(item, multiple) {\n this._selected = this._selected.filter(x => x !== item);\n item.selected = false;\n if (multiple) {\n if (item.parent && item.parent.selected) {\n const children = item.parent.children;\n this._removeParent(item.parent);\n this._removeChildren(item.parent);\n this._selected.push(...children.filter(x => x !== item && !x.disabled));\n item.parent.selected = false;\n }\n else if (item.children) {\n this._setChildrenSelectedState(item.children, false);\n this._removeChildren(item);\n }\n }\n }\n clear(keepDisabled) {\n this._selected = keepDisabled ? this._selected.filter(x => x.disabled) : [];\n }\n _setChildrenSelectedState(children, selected) {\n for (const child of children) {\n if (child.disabled) {\n continue;\n }\n child.selected = selected;\n }\n }\n _removeChildren(parent) {\n this._selected = [\n ...this._selected.filter(x => x.parent !== parent),\n ...parent.children.filter(x => x.parent === parent && x.disabled && x.selected)\n ];\n }\n _removeParent(parent) {\n this._selected = this._selected.filter(x => x !== parent);\n }\n _activeChildren(item) {\n return item.children.every(x => !x.disabled || x.selected);\n }\n}\n\nclass NgSelectModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgSelectModule, declarations: [NgDropdownPanelComponent,\n NgOptionComponent,\n NgSelectComponent,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective,\n NgItemLabelDirective], imports: [CommonModule], exports: [NgSelectComponent,\n NgOptionComponent,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgSelectModule, providers: [\n { provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }\n ], imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgSelectModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n NgDropdownPanelComponent,\n NgOptionComponent,\n NgSelectComponent,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective,\n NgItemLabelDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n NgSelectComponent,\n NgOptionComponent,\n NgOptgroupTemplateDirective,\n NgOptionTemplateDirective,\n NgLabelTemplateDirective,\n NgMultiLabelTemplateDirective,\n NgHeaderTemplateDirective,\n NgFooterTemplateDirective,\n NgNotFoundTemplateDirective,\n NgTypeToSearchTemplateDirective,\n NgLoadingTextTemplateDirective,\n NgTagTemplateDirective,\n NgLoadingSpinnerTemplateDirective\n ],\n providers: [\n { provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }\n ]\n }]\n }] });\n\n/*\n * Public API Surface of ng-select\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NgFooterTemplateDirective, NgHeaderTemplateDirective, NgItemLabelDirective, NgLabelTemplateDirective, NgLoadingSpinnerTemplateDirective, NgLoadingTextTemplateDirective, NgMultiLabelTemplateDirective, NgNotFoundTemplateDirective, NgOptgroupTemplateDirective, NgOptionComponent, NgOptionTemplateDirective, NgSelectComponent, NgSelectConfig, NgSelectModule, NgTagTemplateDirective, NgTypeToSearchTemplateDirective, SELECTION_MODEL_FACTORY };\n","import { NgModule } from '@angular/core';\nimport { TextFieldComponent } from './components/text-field/text-field.component';\nimport { DropdownFieldComponent } from './components/dropdown-field/dropdown-field.component';\nimport { RadioButtonFieldComponent } from './components/radio-button-field/radio-button-field.component';\nimport { CheckboxFieldComponent } from './components/checkbox-field/checkbox-field.component';\nimport { DateFieldComponent } from './components/date-field/date-field.component';\nimport { TimeFieldComponent } from './components/time-field/time-field.component';\nimport { DateTimeFieldComponent } from './components/date-time-field/date-time-field.component';\nimport { DateRangeFieldComponent } from './components/date-range-field/date-range-field.component';\nimport { TextareaFieldComponent } from './components/textarea-field/textarea-field.component';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { MultiSelectFieldComponent } from './components/multi-select-field/multi-select-field.component';\nimport { ColorPickerFieldComponent } from './components/color-picker-field/color-picker-field.component';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\nimport { RRIconsModule } from '../icons/icons.module';\nimport { AutofocusDirective } from './directives/autofocus.directive';\n\n@NgModule({\n declarations: [\n TextFieldComponent,\n DropdownFieldComponent,\n RadioButtonFieldComponent,\n CheckboxFieldComponent,\n DateFieldComponent,\n TimeFieldComponent,\n DateTimeFieldComponent,\n DateRangeFieldComponent,\n TextareaFieldComponent,\n MultiSelectFieldComponent,\n ColorPickerFieldComponent,\n AutofocusDirective,\n ],\n imports: [RRSharedModule, RRBootstrapModule, NgSelectModule, RRIconsModule],\n exports: [\n TextFieldComponent,\n DropdownFieldComponent,\n RadioButtonFieldComponent,\n CheckboxFieldComponent,\n DateFieldComponent,\n TimeFieldComponent,\n DateTimeFieldComponent,\n DateRangeFieldComponent,\n TextareaFieldComponent,\n MultiSelectFieldComponent,\n ColorPickerFieldComponent,\n AutofocusDirective,\n ],\n})\nexport class RRFormInputsModule {}\n","import { NgModule } from '@angular/core';\nimport { TableFiltersContainerComponent } from './components/table-filters-container/table-filters-container.component';\nimport { TextSearchFilterComponent } from './components/text-search-filter/text-search-filter.component';\nimport { DateRangeFilterComponent } from './components/date-range-filter/date-range-filter.component';\nimport { DropdownFilterComponent } from './components/dropdown-filter/dropdown-filter.component';\nimport { RadioSelectFilterComponent } from './components/radio-select-filter/radio-select-filter.component';\nimport { CheckboxSelectFilterComponent } from './components/checkbox-select-filter/checkbox-select-filter.component';\nimport { FormsModule } from '@angular/forms';\nimport { RRFormInputsModule } from '../form-inputs/form-inputs.module';\nimport { MultiSelectFilterComponent } from './components/multi-select-filter/multi-select-filter.component';\nimport { TagsFilterComponent } from './components/tags-filter/tags-filter.component';\nimport { RRTagsModule } from '../tags/tags.module';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\n\n@NgModule({\n declarations: [\n TableFiltersContainerComponent,\n TextSearchFilterComponent,\n DateRangeFilterComponent,\n DropdownFilterComponent,\n RadioSelectFilterComponent,\n CheckboxSelectFilterComponent,\n MultiSelectFilterComponent,\n TagsFilterComponent,\n ],\n imports: [\n RRSharedModule,\n RRBootstrapModule,\n RRFormInputsModule,\n FormsModule,\n RRTagsModule,\n ],\n exports: [\n TableFiltersContainerComponent,\n TextSearchFilterComponent,\n DateRangeFilterComponent,\n DropdownFilterComponent,\n RadioSelectFilterComponent,\n CheckboxSelectFilterComponent,\n MultiSelectFilterComponent,\n TagsFilterComponent,\n ],\n})\nexport class RRTableFiltersModule {}\n","import { NgModule } from '@angular/core';\nimport { FilteredTableComponent } from './components/filtered-table/filtered-table.component';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\nimport { RRTableFiltersModule } from '../table-filters/table-filters.module';\nimport { RRTableContainerModule } from '../table-container/table-container.module';\nimport { RRSpinnerModule } from '../spinner/spinner.module';\nimport { RRProgressbarModule } from '../progressbar/progressbar.module';\n\n@NgModule({\n declarations: [FilteredTableComponent],\n imports: [\n RRSharedModule,\n RRBootstrapModule,\n RRTableFiltersModule,\n RRTableContainerModule,\n RRSpinnerModule,\n RRProgressbarModule,\n ],\n exports: [FilteredTableComponent],\n})\nexport class RRFilteredTableModule {}\n","import { v4 as uuid } from 'uuid';\n\nexport class RRFileContainerModel {\n id: uuid;\n customerId: uuid;\n name: string;\n configurationId: uuid;\n configurationResultId: uuid;\n typeId: string;\n metadata?: {};\n\n toDataFormat(): { [key: string]: string } {\n return {\n id: String(this.id),\n configurationResultId: String(this.configurationResultId),\n name: String(this.name),\n metadata: String(this.metadata),\n };\n }\n\n toInputFormat(model: RRFileContainerModel): { [key: string]: string } {\n return {\n id: model.id,\n customerId: model.customerId,\n configurationId: model.configurationId,\n name: model.name,\n typeId: model.typeId,\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { StatusBarComponent } from './components/status-bar/status-bar.component';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\n\n@NgModule({\n declarations: [StatusBarComponent],\n imports: [RRSharedModule, RRBootstrapModule],\n exports: [StatusBarComponent],\n})\nexport class RRStatusBarModule {}\n","import { NgModule } from '@angular/core';\nimport { StackedBarChartComponent } from './components/stacked-bar-chart/stacked-bar-chart.component';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { RRBootstrapModule } from '../bootstrap/bootstrap.module';\n\n@NgModule({\n declarations: [StackedBarChartComponent],\n imports: [RRSharedModule, RRBootstrapModule],\n exports: [StackedBarChartComponent],\n})\nexport class RRChartsModule {}\n","import { NgModule } from '@angular/core';\nimport { RRSharedModule } from '../shared-module/shared.module';\nimport { RRFilterComponent } from './components/filter/filter.component';\nimport { RRFilterBarComponent } from './components/filter-bar/filter-bar.component';\nimport { FilterBarElementComponent } from './components/filter-bar/filter-bar-element/filter-bar-element.component';\nimport { RRPipesModule } from '../pipes/pipes.module';\nimport { RRLayoutModule } from '../layout/layout.module';\nimport { SearchInputElementComponent } from './components/filter-bar/filter-bar-element/search-input-element/search-input-element.component';\nimport { DateInputElementComponent } from './components/filter-bar/filter-bar-element/date-input-element/date-input-element.component';\nimport { TextInputElementComponent } from './components/filter-bar/filter-bar-element/text-input-element/text-input-element.component';\nimport { RRCalendarModule } from '../calendar/calendar.module';\n\n@NgModule({\n declarations: [\n RRFilterComponent,\n RRFilterBarComponent,\n FilterBarElementComponent,\n SearchInputElementComponent,\n DateInputElementComponent,\n TextInputElementComponent,\n ],\n imports: [RRSharedModule, RRPipesModule, RRLayoutModule, RRCalendarModule],\n exports: [RRFilterComponent, RRFilterBarComponent],\n})\nexport class RRFilterModule {}\n","import { Injectable, Type } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface PageContext {\n title: string;\n parent?: {\n title: string;\n url: string;\n };\n actionBar?: {\n type: Type;\n onCreate: (ref: any) => void;\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PageContextService {\n private readonly pageContextSubject: BehaviorSubject;\n\n constructor() {\n this.pageContextSubject = new BehaviorSubject({\n title: '',\n });\n }\n\n public subscribe(cb: (value: PageContext) => void): PageContextService {\n this.pageContextSubject.subscribe(cb);\n return this;\n }\n\n public setPageTitle(title: string): PageContextService {\n this.pageContextSubject.next({\n ...this.pageContextSubject.value,\n title,\n });\n\n return this;\n }\n\n public setPageParent(parent?: {\n title: string;\n url: string;\n }): PageContextService {\n this.pageContextSubject.next({\n ...this.pageContextSubject.value,\n parent,\n });\n\n return this;\n }\n\n public clearPageActionBar(): PageContextService {\n this.pageContextSubject.next({\n ...this.pageContextSubject.value,\n actionBar: undefined,\n });\n\n return this;\n }\n\n public setPageActionBar(\n type: Type,\n onCreate: (ref: T) => void,\n ): PageContextService {\n this.pageContextSubject.next({\n ...this.pageContextSubject.value,\n actionBar: {\n type,\n onCreate,\n },\n });\n\n return this;\n }\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { TableRowComponent } from '../public-api';\n\n@Directive({\n selector: '[rrTableRow]',\n // template: '',\n})\nexport class RRTableRowDirective implements AfterViewInit {\n @Input() record: R;\n @Input() component: Type>;\n @Output() loadingDone: EventEmitter = new EventEmitter();\n @ViewChild('container', { read: ViewContainerRef })\n container: ViewContainerRef;\n private _loadingDone$: Subject;\n private _onDestroy$: Subject;\n constructor(\n private hostContainer: ViewContainerRef,\n private el: ElementRef,\n ) {}\n\n ngAfterViewInit() {\n if (!this.component) return;\n this._onDestroy$ = new Subject();\n this.el.nativeElement;\n\n const component = this.component;\n this._loadingDone$ = new Subject();\n const ref =\n this.hostContainer.createComponent>(component);\n ref.instance.record = this.record;\n ref.instance.loaded = this._loadingDone$;\n this._loadingDone$.pipe(takeUntil(this._onDestroy$)).subscribe((done) => {\n this.loadingDone.emit();\n });\n }\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RRTableComponent } from './components/table/table.component';\nimport { RRTableRowDirective } from './directives/table-row';\nimport { RRPipesModule } from '../pipes/public-api';\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\n\n@NgModule({\n declarations: [RRTableComponent, RRTableRowDirective],\n imports: [CommonModule, RRPipesModule, NgxSkeletonLoaderModule],\n exports: [RRTableComponent, RRTableRowDirective],\n})\nexport class RRTableModule {}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Content Service API: General API\n * This is a general API definition for the content service. Copyright 2010-2024 by Reactive Reality\n *\n * The version of the OpenAPI document: 1.5\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport globalAxios from 'axios';\nexport const BASE_PATH = \"http://localhost\".replace(/\\/+$/, \"\");\n/**\n *\n * @export\n */\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n/**\n *\n * @export\n * @class BaseAPI\n */\nexport class BaseAPI {\n constructor(configuration, basePath = BASE_PATH, axios = globalAxios) {\n this.basePath = basePath;\n this.axios = axios;\n if (configuration) {\n this.configuration = configuration;\n this.basePath = configuration.basePath || this.basePath;\n }\n }\n}\n;\n/**\n *\n * @export\n * @class RequiredError\n * @extends {Error}\n */\nexport class RequiredError extends Error {\n constructor(field, msg) {\n super(msg);\n this.field = field;\n this.name = \"RequiredError\";\n }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Content Service API: General API\n * This is a general API definition for the content service. Copyright 2010-2024 by Reactive Reality\n *\n * The version of the OpenAPI document: 1.5\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { RequiredError } from \"./base\";\n/**\n *\n * @export\n */\nexport const DUMMY_BASE_URL = 'https://example.com';\n/**\n *\n * @throws {RequiredError}\n * @export\n */\nexport const assertParamExists = function (functionName, paramName, paramValue) {\n if (paramValue === null || paramValue === undefined) {\n throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);\n }\n};\n/**\n *\n * @export\n */\nexport const setApiKeyToObject = function (object, keyParamName, configuration) {\n return __awaiter(this, void 0, void 0, function* () {\n if (configuration && configuration.apiKey) {\n const localVarApiKeyValue = typeof configuration.apiKey === 'function'\n ? yield configuration.apiKey(keyParamName)\n : yield configuration.apiKey;\n object[keyParamName] = localVarApiKeyValue;\n }\n });\n};\n/**\n *\n * @export\n */\nexport const setBasicAuthToObject = function (object, configuration) {\n if (configuration && (configuration.username || configuration.password)) {\n object[\"auth\"] = { username: configuration.username, password: configuration.password };\n }\n};\n/**\n *\n * @export\n */\nexport const setBearerAuthToObject = function (object, configuration) {\n return __awaiter(this, void 0, void 0, function* () {\n if (configuration && configuration.accessToken) {\n const accessToken = typeof configuration.accessToken === 'function'\n ? yield configuration.accessToken()\n : yield configuration.accessToken;\n object[\"Authorization\"] = \"Bearer \" + accessToken;\n }\n });\n};\n/**\n *\n * @export\n */\nexport const setOAuthToObject = function (object, name, scopes, configuration) {\n return __awaiter(this, void 0, void 0, function* () {\n if (configuration && configuration.accessToken) {\n const localVarAccessTokenValue = typeof configuration.accessToken === 'function'\n ? yield configuration.accessToken(name, scopes)\n : yield configuration.accessToken;\n object[\"Authorization\"] = \"Bearer \" + localVarAccessTokenValue;\n }\n });\n};\nfunction setFlattenedQueryParams(urlSearchParams, parameter, key = \"\") {\n if (parameter == null)\n return;\n if (typeof parameter === \"object\") {\n if (Array.isArray(parameter)) {\n parameter.forEach(item => setFlattenedQueryParams(urlSearchParams, item, key));\n }\n else {\n Object.keys(parameter).forEach(currentKey => setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`));\n }\n }\n else {\n if (urlSearchParams.has(key)) {\n urlSearchParams.append(key, parameter);\n }\n else {\n urlSearchParams.set(key, parameter);\n }\n }\n}\n/**\n *\n * @export\n */\nexport const setSearchParams = function (url, ...objects) {\n const searchParams = new URLSearchParams(url.search);\n setFlattenedQueryParams(searchParams, objects);\n url.search = searchParams.toString();\n};\n/**\n *\n * @export\n */\nexport const serializeDataIfNeeded = function (value, requestOptions, configuration) {\n const nonString = typeof value !== 'string';\n const needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(requestOptions.headers['Content-Type'])\n : nonString;\n return needsSerialization\n ? JSON.stringify(value !== undefined ? value : {})\n : (value || \"\");\n};\n/**\n *\n * @export\n */\nexport const toPathString = function (url) {\n return url.pathname + url.search + url.hash;\n};\n/**\n *\n * @export\n */\nexport const createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {\n return (axios = globalAxios, basePath = BASE_PATH) => {\n const axiosRequestArgs = Object.assign(Object.assign({}, axiosArgs.options), { url: ((configuration === null || configuration === void 0 ? void 0 : configuration.basePath) || basePath) + axiosArgs.url });\n return axios.request(axiosRequestArgs);\n };\n};\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Content Service API: General API\n * This is a general API definition for the content service. Copyright 2010-2024 by Reactive Reality\n *\n * The version of the OpenAPI document: 1.5\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport globalAxios from 'axios';\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';\n// @ts-ignore\nimport { BASE_PATH, BaseAPI } from './base';\n/**\n *\n * @export\n * @enum {string}\n */\nexport const ManualActivityState = {\n Ready: 'READY',\n InProgress: 'IN_PROGRESS',\n Failed: 'FAILED',\n Success: 'SUCCESS',\n Canceled: 'CANCELED'\n};\n/**\n *\n * @export\n * @enum {string}\n */\nexport const SystemAnnotationsViewValues = {\n Front: 'front',\n Back: 'back'\n};\n/**\n *\n * @export\n * @enum {string}\n */\nexport const TemporalStatus = {\n Unspecified: 'Unspecified',\n Running: 'Running',\n Completed: 'Completed',\n Failed: 'Failed',\n Canceled: 'Canceled',\n Terminated: 'Terminated',\n ContinuedAsNew: 'ContinuedAsNew',\n TimedOut: 'TimedOut'\n};\n/**\n * AnalyticsApi - axios parameter creator\n * @export\n */\nexport const AnalyticsApiAxiosParamCreator = function (configuration) {\n return {\n /**\n * Get the avatar head statistic in an filterable and groupable way.\n * @summary Get the avatar head statistic.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"configurationCompletedAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\", \\"supplier\\", \\"annotator\\", \\"reviewer\\" and \\"state\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsAvatarHeadsGet: (version, filters, timeGroupingMode, grouping, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionAnalyticsAvatarHeadsGet', 'version', version);\n const localVarPath = `/v{version}/Analytics/AvatarHeads`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (timeGroupingMode !== undefined) {\n localVarQueryParameter['timeGroupingMode'] = timeGroupingMode;\n }\n if (grouping !== undefined) {\n localVarQueryParameter['grouping'] = grouping;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * Normally it should not be necessary to call this endpoint.\n * @summary Trigger the creation or recreation of an analytics entry for a specific configuration.\n * @param {string} configurationId Identifier.\n * @param {string} version The requested API version\n * @param {string} id\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsConfigurationIdPut: (configurationId, version, id, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionAnalyticsConfigurationIdPut', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionAnalyticsConfigurationIdPut', 'version', version);\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionAnalyticsConfigurationIdPut', 'id', id);\n const localVarPath = `/v{version}/Analytics/configuration/{id}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * The timeGroupingMode specifies how the view should be grouped timewise e.g. weeks or days.\n * @summary Get the basic customer relevant numbers for all product types.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"createdAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\" and \\"product\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsCustomersGet: (version, filters, timeGroupingMode, grouping, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionAnalyticsCustomersGet', 'version', version);\n const localVarPath = `/v{version}/Analytics/Customers`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (timeGroupingMode !== undefined) {\n localVarQueryParameter['timeGroupingMode'] = timeGroupingMode;\n }\n if (grouping !== undefined) {\n localVarQueryParameter['grouping'] = grouping;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * Get the garment statistic in an filterable and groupable way.\n * @summary Get the garment statistic.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"configurationCompletedAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\", \\"supplier\\", \\"annotator\\", \\"reviewer\\" and \\"state\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsGarmentsGet: (version, filters, timeGroupingMode, grouping, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionAnalyticsGarmentsGet', 'version', version);\n const localVarPath = `/v{version}/Analytics/Garments`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (timeGroupingMode !== undefined) {\n localVarQueryParameter['timeGroupingMode'] = timeGroupingMode;\n }\n if (grouping !== undefined) {\n localVarQueryParameter['grouping'] = grouping;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * The timeGroupingMode specifies how the view should be grouped timewise e.g. weeks or days.\n * @summary Get the statistic for all product types.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"configurationCompletedAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\", \\"supplier\\", \\"annotator\\", \\"reviewer\\", \\"product\\" and \\"state\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsGet: (version, filters, timeGroupingMode, grouping, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionAnalyticsGet', 'version', version);\n const localVarPath = `/v{version}/Analytics`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (timeGroupingMode !== undefined) {\n localVarQueryParameter['timeGroupingMode'] = timeGroupingMode;\n }\n if (grouping !== undefined) {\n localVarQueryParameter['grouping'] = grouping;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * AnalyticsApi - functional programming interface\n * @export\n */\nexport const AnalyticsApiFp = function (configuration) {\n const localVarAxiosParamCreator = AnalyticsApiAxiosParamCreator(configuration);\n return {\n /**\n * Get the avatar head statistic in an filterable and groupable way.\n * @summary Get the avatar head statistic.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"configurationCompletedAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\", \\"supplier\\", \\"annotator\\", \\"reviewer\\" and \\"state\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsAvatarHeadsGet(version, filters, timeGroupingMode, grouping, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionAnalyticsAvatarHeadsGet(version, filters, timeGroupingMode, grouping, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * Normally it should not be necessary to call this endpoint.\n * @summary Trigger the creation or recreation of an analytics entry for a specific configuration.\n * @param {string} configurationId Identifier.\n * @param {string} version The requested API version\n * @param {string} id\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsConfigurationIdPut(configurationId, version, id, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionAnalyticsConfigurationIdPut(configurationId, version, id, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * The timeGroupingMode specifies how the view should be grouped timewise e.g. weeks or days.\n * @summary Get the basic customer relevant numbers for all product types.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"createdAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\" and \\"product\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsCustomersGet(version, filters, timeGroupingMode, grouping, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionAnalyticsCustomersGet(version, filters, timeGroupingMode, grouping, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * Get the garment statistic in an filterable and groupable way.\n * @summary Get the garment statistic.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"configurationCompletedAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\", \\"supplier\\", \\"annotator\\", \\"reviewer\\" and \\"state\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsGarmentsGet(version, filters, timeGroupingMode, grouping, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionAnalyticsGarmentsGet(version, filters, timeGroupingMode, grouping, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * The timeGroupingMode specifies how the view should be grouped timewise e.g. weeks or days.\n * @summary Get the statistic for all product types.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"configurationCompletedAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\", \\"supplier\\", \\"annotator\\", \\"reviewer\\", \\"product\\" and \\"state\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsGet(version, filters, timeGroupingMode, grouping, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionAnalyticsGet(version, filters, timeGroupingMode, grouping, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * AnalyticsApi - factory interface\n * @export\n */\nexport const AnalyticsApiFactory = function (configuration, basePath, axios) {\n const localVarFp = AnalyticsApiFp(configuration);\n return {\n /**\n * Get the avatar head statistic in an filterable and groupable way.\n * @summary Get the avatar head statistic.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"configurationCompletedAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\", \\"supplier\\", \\"annotator\\", \\"reviewer\\" and \\"state\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsAvatarHeadsGet(version, filters, timeGroupingMode, grouping, options) {\n return localVarFp.vversionAnalyticsAvatarHeadsGet(version, filters, timeGroupingMode, grouping, options).then((request) => request(axios, basePath));\n },\n /**\n * Normally it should not be necessary to call this endpoint.\n * @summary Trigger the creation or recreation of an analytics entry for a specific configuration.\n * @param {string} configurationId Identifier.\n * @param {string} version The requested API version\n * @param {string} id\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsConfigurationIdPut(configurationId, version, id, options) {\n return localVarFp.vversionAnalyticsConfigurationIdPut(configurationId, version, id, options).then((request) => request(axios, basePath));\n },\n /**\n * The timeGroupingMode specifies how the view should be grouped timewise e.g. weeks or days.\n * @summary Get the basic customer relevant numbers for all product types.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"createdAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\" and \\"product\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsCustomersGet(version, filters, timeGroupingMode, grouping, options) {\n return localVarFp.vversionAnalyticsCustomersGet(version, filters, timeGroupingMode, grouping, options).then((request) => request(axios, basePath));\n },\n /**\n * Get the garment statistic in an filterable and groupable way.\n * @summary Get the garment statistic.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"configurationCompletedAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\", \\"supplier\\", \\"annotator\\", \\"reviewer\\" and \\"state\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsGarmentsGet(version, filters, timeGroupingMode, grouping, options) {\n return localVarFp.vversionAnalyticsGarmentsGet(version, filters, timeGroupingMode, grouping, options).then((request) => request(axios, basePath));\n },\n /**\n * The timeGroupingMode specifies how the view should be grouped timewise e.g. weeks or days.\n * @summary Get the statistic for all product types.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"configurationCompletedAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\", \\"supplier\\", \\"annotator\\", \\"reviewer\\", \\"product\\" and \\"state\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionAnalyticsGet(version, filters, timeGroupingMode, grouping, options) {\n return localVarFp.vversionAnalyticsGet(version, filters, timeGroupingMode, grouping, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * AnalyticsApi - object-oriented interface\n * @export\n * @class AnalyticsApi\n * @extends {BaseAPI}\n */\nexport class AnalyticsApi extends BaseAPI {\n /**\n * Get the avatar head statistic in an filterable and groupable way.\n * @summary Get the avatar head statistic.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"configurationCompletedAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\", \\"supplier\\", \\"annotator\\", \\"reviewer\\" and \\"state\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AnalyticsApi\n */\n vversionAnalyticsAvatarHeadsGet(version, filters, timeGroupingMode, grouping, options) {\n return AnalyticsApiFp(this.configuration).vversionAnalyticsAvatarHeadsGet(version, filters, timeGroupingMode, grouping, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * Normally it should not be necessary to call this endpoint.\n * @summary Trigger the creation or recreation of an analytics entry for a specific configuration.\n * @param {string} configurationId Identifier.\n * @param {string} version The requested API version\n * @param {string} id\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AnalyticsApi\n */\n vversionAnalyticsConfigurationIdPut(configurationId, version, id, options) {\n return AnalyticsApiFp(this.configuration).vversionAnalyticsConfigurationIdPut(configurationId, version, id, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * The timeGroupingMode specifies how the view should be grouped timewise e.g. weeks or days.\n * @summary Get the basic customer relevant numbers for all product types.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"createdAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\" and \\"product\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AnalyticsApi\n */\n vversionAnalyticsCustomersGet(version, filters, timeGroupingMode, grouping, options) {\n return AnalyticsApiFp(this.configuration).vversionAnalyticsCustomersGet(version, filters, timeGroupingMode, grouping, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * Get the garment statistic in an filterable and groupable way.\n * @summary Get the garment statistic.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"configurationCompletedAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\", \\"supplier\\", \\"annotator\\", \\"reviewer\\" and \\"state\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AnalyticsApi\n */\n vversionAnalyticsGarmentsGet(version, filters, timeGroupingMode, grouping, options) {\n return AnalyticsApiFp(this.configuration).vversionAnalyticsGarmentsGet(version, filters, timeGroupingMode, grouping, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * The timeGroupingMode specifies how the view should be grouped timewise e.g. weeks or days.\n * @summary Get the statistic for all product types.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` ?filters={\\"customerId\\":\\"xxxxx-xxxx-xxxxx-xxxxxxx\\"} // Returns all stats for the specified customer ?filters={\\"numberOfFeedbackcycles\\": 0} // Returns all stats where the number of feedback cycles is 0 ?filters={\\"configurationCompletedAt\\": [1541894400, 1568297067]} // Returns all stats for configurations completed between the two timestamps. ``` </summary>\n * @param {string} [timeGroupingMode] Time grouping mode. Valid values are \\"days\\", \\"weeks\\" or \\"months\\".\n * @param {string} [grouping] <summary> Grouping specfies how the selection should be grouped. Valid properties are \\"customer\\", \\"supplier\\", \\"annotator\\", \\"reviewer\\", \\"product\\" and \\"state\\". Multiple entries are possible. The delimeter is the colon character \\',\\'. </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AnalyticsApi\n */\n vversionAnalyticsGet(version, filters, timeGroupingMode, grouping, options) {\n return AnalyticsApiFp(this.configuration).vversionAnalyticsGet(version, filters, timeGroupingMode, grouping, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * ConfigurationsApi - axios parameter creator\n * @export\n */\nexport const ConfigurationsApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Get the specified configuration.\n * @param {string} id Identifier of the requested configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n configurationLink: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('configurationLink', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('configurationLink', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * The result can be filtered. Valid filter fields: NOT_IMPLEMENTED id (string or UUID), name (string), sku (string), productTypeId(int), stateId(int), customerId(UUID), NOT_IMPLEMENTED stateCreatedBy(string or UUID)\n * @summary Get aggregates from configurations.\n * @param {string} version The requested API version\n * @param {string} [filters]\n * @param {string} [tags] This property is used to filter the configurations by tags and values they must contain. The property takes an JSON structure as value. #### Query examples: ``` ?tags={\\"key1ID\\":[\\"v1\\",\\"v2\\"],\\"key2ID\\":[\\"v3\\"]} // Returns all configurations with tag key 1 with value \\"v1\\" or \\"v2\\" and tag key 2 with value \\"v3\\" ?tags={\\"key1ID\\":[\\"*\\"]} // Returns all configurations with tag key 1 doesn\\'t matter the value ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsAggregatesGet: (version, filters, tags, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsAggregatesGet', 'version', version);\n const localVarPath = `/v{version}/configurations/aggregates`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (tags !== undefined) {\n localVarQueryParameter['tags'] = tags;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, sku, typeId, stateId, createdAt, modifiedAt, dueAt, stateCreatedBy, stateCreatedAt. The default value is the created at timestamp in descending order (createdAt_desc). Valid filter fields: NOT_IMPLEMENTED id (string or UUID), name (string), sku (string), productTypeId(int), stateId(int), customerId(UUID), NOT_IMPLEMENTED stateCreatedBy(string or UUID)\n * @summary Get a page with configurations available for customer including private and public configurations.\n * @param {string} customerId\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {string} [tags] This property is used to filter the configurations by tags and values they must contain. The property takes an JSON structure as value. A prefixed `!` will negate it. #### Query examples: ``` ?tags={\\"key1ID\\":[\\"v1\\",\\"v2\\"],\\"key2ID\\":[\\"v3\\"]} // Returns all configurations with tag key 1 with value \\"v1\\" or \\"v2\\" and tag key 2 with value \\"v3\\" ?tags={\\"key1ID\\":[\\"*\\"]} // Returns all configurations with tag key 1 doesn\\'t matter the value ?tags={\\"!key1ID\\":[\\"*\\"]} // Returns all configurations without tag key 1 doesn\\'t matter the value ```\n * @param {boolean} [includeResults] If set to true, include the results for each configuration\n * @param {boolean} [includeArchived]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsAllforcustomerGet: (customerId, version, currentPage, pageSize, sort, filters, tags, includeResults, includeArchived, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'customerId' is not null or undefined\n assertParamExists('vversionConfigurationsAllforcustomerGet', 'customerId', customerId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsAllforcustomerGet', 'version', version);\n const localVarPath = `/v{version}/configurations/allforcustomer`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (customerId !== undefined) {\n localVarQueryParameter['customerId'] = customerId;\n }\n if (currentPage !== undefined) {\n localVarQueryParameter['currentPage'] = currentPage;\n }\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n if (sort !== undefined) {\n localVarQueryParameter['sort'] = sort;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (tags !== undefined) {\n localVarQueryParameter['tags'] = tags;\n }\n if (includeResults !== undefined) {\n localVarQueryParameter['includeResults'] = includeResults;\n }\n if (includeArchived !== undefined) {\n localVarQueryParameter['includeArchived'] = includeArchived;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified result of the specefied configuration with all corresponding files.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} resultId Identifier of the result that should be deleted as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdResultsResultIdDelete: (configurationId, resultId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdDelete', 'configurationId', configurationId);\n // verify required parameter 'resultId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdDelete', 'resultId', resultId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdDelete', 'version', version);\n const localVarPath = `/v{version}/configurations/{configurationId}/results/{resultId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"resultId\"}}`, encodeURIComponent(String(resultId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified file of specified result.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} resultId Identifier of the result as Guid (UUID).\n * @param {string} fileId Identifier of the file that should be deleted. as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdResultsResultIdFileFileIdDelete: (configurationId, resultId, fileId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdFileFileIdDelete', 'configurationId', configurationId);\n // verify required parameter 'resultId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdFileFileIdDelete', 'resultId', resultId);\n // verify required parameter 'fileId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdFileFileIdDelete', 'fileId', fileId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdFileFileIdDelete', 'version', version);\n const localVarPath = `/v{version}/configurations/{configurationId}/results/{resultId}/file/{fileId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"resultId\"}}`, encodeURIComponent(String(resultId)))\n .replace(`{${\"fileId\"}}`, encodeURIComponent(String(fileId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Set the storageId of a file. e.g. set it to archive.\n * @param {string} configurationId The configuration the result belongs to\n * @param {string} resultId The result the file belongs to\n * @param {string} fileId The file where the storageId should be changed.\n * @param {string} version The requested API version\n * @param {string} storageId The new storageId of the result file\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut: (configurationId, resultId, fileId, version, storageId, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut', 'configurationId', configurationId);\n // verify required parameter 'resultId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut', 'resultId', resultId);\n // verify required parameter 'fileId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut', 'fileId', fileId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut', 'version', version);\n // verify required parameter 'storageId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut', 'storageId', storageId);\n const localVarPath = `/v{version}/configurations/{configurationId}/results/{resultId}/file/{fileId}/storageId`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"resultId\"}}`, encodeURIComponent(String(resultId)))\n .replace(`{${\"fileId\"}}`, encodeURIComponent(String(fileId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (storageId !== undefined) {\n localVarFormParams.append('storageId', storageId);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = localVarFormParams;\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the specified result of the specified configuration.\n * @param {string} configurationId Identifier of the requested configuration as Guid (UUID).\n * @param {string} resultId Identifier of the requested result as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdResultsResultIdGet: (configurationId, resultId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdGet', 'configurationId', configurationId);\n // verify required parameter 'resultId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdGet', 'resultId', resultId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdResultsResultIdGet', 'version', version);\n const localVarPath = `/v{version}/configurations/{configurationId}/results/{resultId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"resultId\"}}`, encodeURIComponent(String(resultId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, sku, typeId, stateId, createdAt, modifiedAt, dueAt, stateCreatedBy, stateCreatedAt. The default value is the created at timestamp in descending order (createdAt_desc). Valid filter fields: NOT_IMPLEMENTED id (string or UUID), name (string), sku (string), productTypeId(int), stateId(int), customerId(UUID), NOT_IMPLEMENTED stateCreatedBy(string or UUID)\n * @summary Get a page with configurations.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {string} [tags] This property is used to filter the configurations by tags and values they must contain. The property takes an JSON structure as value. A prefixed `!` will negate it. #### Query examples: ``` ?tags={\\"key1ID\\":[\\"v1\\",\\"v2\\"],\\"key2ID\\":[\\"v3\\"]} // Returns all configurations with tag key 1 with value \\"v1\\" or \\"v2\\" and tag key 2 with value \\"v3\\" ?tags={\\"key1ID\\":[\\"*\\"]} // Returns all configurations with tag key 1 doesn\\'t matter the value ?tags={\\"!key1ID\\":[\\"*\\"]} // Returns all configurations without tag key 1 doesn\\'t matter the value ```\n * @param {boolean} [includeResults] If set to true, include the results for each configuration\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsGet: (version, currentPage, pageSize, sort, filters, tags, includeResults, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsGet', 'version', version);\n const localVarPath = `/v{version}/configurations`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (currentPage !== undefined) {\n localVarQueryParameter['currentPage'] = currentPage;\n }\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n if (sort !== undefined) {\n localVarQueryParameter['sort'] = sort;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (tags !== undefined) {\n localVarQueryParameter['tags'] = tags;\n }\n if (includeResults !== undefined) {\n localVarQueryParameter['includeResults'] = includeResults;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * The provided properties will be set, to clear an annotation explicitly set it to null int the request\n * @summary Patch system annotations on configuration\n * @param {string} id The identifier of the configuration which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ConfigurationAnnotationsDTO} [body] The configuration annotations\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdAnnotationsPatch: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdAnnotationsPatch', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdAnnotationsPatch', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/annotations`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PATCH' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Approve the processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be approved by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional details as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdApprovePost: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdApprovePost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdApprovePost', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/approve`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Set a configuration to be archived by the temporal workflow. This endpoint is only callable by admins.\n * @param {string} id The identifier of the configuration that should be archived\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdArchivePost: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdArchivePost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdArchivePost', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/archive`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Set a configuration to archived. It is called by the Temporal Workflow after the configuration items have been archived.\n * @param {string} id The identifier of the configuration that should be archived\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdArchivedPost: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdArchivedPost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdArchivedPost', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/archived`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Cancel the not yet processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be canceled by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional details as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdCancelPost: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdCancelPost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdCancelPost', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/cancel`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified configuration.\n * @param {string} id Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdDelete: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdDelete', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdDelete', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary If a configuration has no preview image yet, it will generate on for it.\n * @param {string} id The identifier of the configuration\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdEnsurePreviewImagePost: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdEnsurePreviewImagePost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdEnsurePreviewImagePost', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/ensurePreviewImage`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Create a new configuration or update an existing one.\n * @param {string} id The identifier of the configuration which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ConfigurationBindingModel} [body] The configuration which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdPut: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdPut', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdPut', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Set a configuration to ready for processing. Is called by the customer after providing all of the necessary raw data. It also can be used by a reviewer to reset the state of the configuration.\n * @param {string} id The identifier of the configuration that is ready for processing as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdReadyPost: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdReadyPost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdReadyPost', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/ready`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Reject the processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be rejected by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {string} [metadata] Additional details as json.\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdRejectAttachmentPost: (id, version, metadata, ContentType, ContentDisposition, Headers, Length, Name, FileName, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdRejectAttachmentPost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdRejectAttachmentPost', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/reject-attachment`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (metadata !== undefined) {\n localVarFormParams.append('metadata', metadata);\n }\n if (ContentType !== undefined) {\n localVarFormParams.append('ContentType', ContentType);\n }\n if (ContentDisposition !== undefined) {\n localVarFormParams.append('ContentDisposition', ContentDisposition);\n }\n if (Headers !== undefined) {\n localVarFormParams.append('Headers', Headers);\n }\n if (Length !== undefined) {\n localVarFormParams.append('Length', Length);\n }\n if (Name !== undefined) {\n localVarFormParams.append('Name', Name);\n }\n if (FileName !== undefined) {\n localVarFormParams.append('FileName', FileName);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = localVarFormParams;\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Reject the processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be rejected by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional details as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdRejectPost: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdRejectPost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdRejectPost', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/reject`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Set a configuration to be restored by the temporal workflow. This endpoint is only callable by admins.\n * @param {string} id The identifier of the configuration that should be archived\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdRestorePost: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdRestorePost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdRestorePost', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/restore`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Mark a configuration as restored. It is called by the Temporal Workflow after the configuration items have been copied back and and the url has been set to the requested location.\n * @param {string} id The identifier of the configuration that should be restored\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdRestoredPost: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdRestoredPost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdRestoredPost', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/restored`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all results of the specified configuration.\n * @param {string} id Identifier of the requested configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdResultsGet: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdResultsGet', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdResultsGet', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/results`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the state history of the specified configuration.\n * @param {string} id Identifier of the requested configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdStatesGet: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionConfigurationsIdStatesGet', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsIdStatesGet', 'version', version);\n const localVarPath = `/v{version}/configurations/{id}/states`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the configuration priorities. A list of valid configuration priorities.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsPrioritiesGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsPrioritiesGet', 'version', version);\n const localVarPath = `/v{version}/configurations/priorities`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get a page with public configurations.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {boolean} [includeResults]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsPublicGet: (version, currentPage, pageSize, sort, filters, includeResults, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsPublicGet', 'version', version);\n const localVarPath = `/v{version}/configurations/public`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (currentPage !== undefined) {\n localVarQueryParameter['currentPage'] = currentPage;\n }\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n if (sort !== undefined) {\n localVarQueryParameter['sort'] = sort;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (includeResults !== undefined) {\n localVarQueryParameter['includeResults'] = includeResults;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the configuration states. A list of valid configuration states.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsStatesGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsStatesGet', 'version', version);\n const localVarPath = `/v{version}/configurations/states`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all configurations of the specified product.\n * @param {string} productId Product identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsProductIdConfigurationsGet: (productId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'productId' is not null or undefined\n assertParamExists('vversionProductsProductIdConfigurationsGet', 'productId', productId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProductsProductIdConfigurationsGet', 'version', version);\n const localVarPath = `/v{version}/Products/{productId}/Configurations`\n .replace(`{${\"productId\"}}`, encodeURIComponent(String(productId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the specified result\n * @param {string} resultId Identifier of the requested result as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionResultsResultIdGet: (resultId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'resultId' is not null or undefined\n assertParamExists('vversionResultsResultIdGet', 'resultId', resultId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionResultsResultIdGet', 'version', version);\n const localVarPath = `/v{version}/results/{resultId}`\n .replace(`{${\"resultId\"}}`, encodeURIComponent(String(resultId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * ConfigurationsApi - functional programming interface\n * @export\n */\nexport const ConfigurationsApiFp = function (configuration) {\n const localVarAxiosParamCreator = ConfigurationsApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Get the specified configuration.\n * @param {string} id Identifier of the requested configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n configurationLink(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.configurationLink(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * The result can be filtered. Valid filter fields: NOT_IMPLEMENTED id (string or UUID), name (string), sku (string), productTypeId(int), stateId(int), customerId(UUID), NOT_IMPLEMENTED stateCreatedBy(string or UUID)\n * @summary Get aggregates from configurations.\n * @param {string} version The requested API version\n * @param {string} [filters]\n * @param {string} [tags] This property is used to filter the configurations by tags and values they must contain. The property takes an JSON structure as value. #### Query examples: ``` ?tags={\\"key1ID\\":[\\"v1\\",\\"v2\\"],\\"key2ID\\":[\\"v3\\"]} // Returns all configurations with tag key 1 with value \\"v1\\" or \\"v2\\" and tag key 2 with value \\"v3\\" ?tags={\\"key1ID\\":[\\"*\\"]} // Returns all configurations with tag key 1 doesn\\'t matter the value ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsAggregatesGet(version, filters, tags, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsAggregatesGet(version, filters, tags, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, sku, typeId, stateId, createdAt, modifiedAt, dueAt, stateCreatedBy, stateCreatedAt. The default value is the created at timestamp in descending order (createdAt_desc). Valid filter fields: NOT_IMPLEMENTED id (string or UUID), name (string), sku (string), productTypeId(int), stateId(int), customerId(UUID), NOT_IMPLEMENTED stateCreatedBy(string or UUID)\n * @summary Get a page with configurations available for customer including private and public configurations.\n * @param {string} customerId\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {string} [tags] This property is used to filter the configurations by tags and values they must contain. The property takes an JSON structure as value. A prefixed `!` will negate it. #### Query examples: ``` ?tags={\\"key1ID\\":[\\"v1\\",\\"v2\\"],\\"key2ID\\":[\\"v3\\"]} // Returns all configurations with tag key 1 with value \\"v1\\" or \\"v2\\" and tag key 2 with value \\"v3\\" ?tags={\\"key1ID\\":[\\"*\\"]} // Returns all configurations with tag key 1 doesn\\'t matter the value ?tags={\\"!key1ID\\":[\\"*\\"]} // Returns all configurations without tag key 1 doesn\\'t matter the value ```\n * @param {boolean} [includeResults] If set to true, include the results for each configuration\n * @param {boolean} [includeArchived]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsAllforcustomerGet(customerId, version, currentPage, pageSize, sort, filters, tags, includeResults, includeArchived, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsAllforcustomerGet(customerId, version, currentPage, pageSize, sort, filters, tags, includeResults, includeArchived, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified result of the specefied configuration with all corresponding files.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} resultId Identifier of the result that should be deleted as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdResultsResultIdDelete(configurationId, resultId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsConfigurationIdResultsResultIdDelete(configurationId, resultId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified file of specified result.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} resultId Identifier of the result as Guid (UUID).\n * @param {string} fileId Identifier of the file that should be deleted. as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdResultsResultIdFileFileIdDelete(configurationId, resultId, fileId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsConfigurationIdResultsResultIdFileFileIdDelete(configurationId, resultId, fileId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Set the storageId of a file. e.g. set it to archive.\n * @param {string} configurationId The configuration the result belongs to\n * @param {string} resultId The result the file belongs to\n * @param {string} fileId The file where the storageId should be changed.\n * @param {string} version The requested API version\n * @param {string} storageId The new storageId of the result file\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut(configurationId, resultId, fileId, version, storageId, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut(configurationId, resultId, fileId, version, storageId, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the specified result of the specified configuration.\n * @param {string} configurationId Identifier of the requested configuration as Guid (UUID).\n * @param {string} resultId Identifier of the requested result as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdResultsResultIdGet(configurationId, resultId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsConfigurationIdResultsResultIdGet(configurationId, resultId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, sku, typeId, stateId, createdAt, modifiedAt, dueAt, stateCreatedBy, stateCreatedAt. The default value is the created at timestamp in descending order (createdAt_desc). Valid filter fields: NOT_IMPLEMENTED id (string or UUID), name (string), sku (string), productTypeId(int), stateId(int), customerId(UUID), NOT_IMPLEMENTED stateCreatedBy(string or UUID)\n * @summary Get a page with configurations.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {string} [tags] This property is used to filter the configurations by tags and values they must contain. The property takes an JSON structure as value. A prefixed `!` will negate it. #### Query examples: ``` ?tags={\\"key1ID\\":[\\"v1\\",\\"v2\\"],\\"key2ID\\":[\\"v3\\"]} // Returns all configurations with tag key 1 with value \\"v1\\" or \\"v2\\" and tag key 2 with value \\"v3\\" ?tags={\\"key1ID\\":[\\"*\\"]} // Returns all configurations with tag key 1 doesn\\'t matter the value ?tags={\\"!key1ID\\":[\\"*\\"]} // Returns all configurations without tag key 1 doesn\\'t matter the value ```\n * @param {boolean} [includeResults] If set to true, include the results for each configuration\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsGet(version, currentPage, pageSize, sort, filters, tags, includeResults, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsGet(version, currentPage, pageSize, sort, filters, tags, includeResults, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * The provided properties will be set, to clear an annotation explicitly set it to null int the request\n * @summary Patch system annotations on configuration\n * @param {string} id The identifier of the configuration which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ConfigurationAnnotationsDTO} [body] The configuration annotations\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdAnnotationsPatch(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdAnnotationsPatch(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Approve the processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be approved by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional details as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdApprovePost(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdApprovePost(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Set a configuration to be archived by the temporal workflow. This endpoint is only callable by admins.\n * @param {string} id The identifier of the configuration that should be archived\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdArchivePost(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdArchivePost(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Set a configuration to archived. It is called by the Temporal Workflow after the configuration items have been archived.\n * @param {string} id The identifier of the configuration that should be archived\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdArchivedPost(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdArchivedPost(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Cancel the not yet processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be canceled by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional details as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdCancelPost(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdCancelPost(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified configuration.\n * @param {string} id Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdDelete(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdDelete(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary If a configuration has no preview image yet, it will generate on for it.\n * @param {string} id The identifier of the configuration\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdEnsurePreviewImagePost(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdEnsurePreviewImagePost(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Create a new configuration or update an existing one.\n * @param {string} id The identifier of the configuration which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ConfigurationBindingModel} [body] The configuration which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdPut(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdPut(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Set a configuration to ready for processing. Is called by the customer after providing all of the necessary raw data. It also can be used by a reviewer to reset the state of the configuration.\n * @param {string} id The identifier of the configuration that is ready for processing as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdReadyPost(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdReadyPost(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Reject the processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be rejected by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {string} [metadata] Additional details as json.\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdRejectAttachmentPost(id, version, metadata, ContentType, ContentDisposition, Headers, Length, Name, FileName, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdRejectAttachmentPost(id, version, metadata, ContentType, ContentDisposition, Headers, Length, Name, FileName, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Reject the processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be rejected by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional details as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdRejectPost(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdRejectPost(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Set a configuration to be restored by the temporal workflow. This endpoint is only callable by admins.\n * @param {string} id The identifier of the configuration that should be archived\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdRestorePost(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdRestorePost(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Mark a configuration as restored. It is called by the Temporal Workflow after the configuration items have been copied back and and the url has been set to the requested location.\n * @param {string} id The identifier of the configuration that should be restored\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdRestoredPost(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdRestoredPost(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all results of the specified configuration.\n * @param {string} id Identifier of the requested configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdResultsGet(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdResultsGet(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the state history of the specified configuration.\n * @param {string} id Identifier of the requested configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdStatesGet(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsIdStatesGet(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the configuration priorities. A list of valid configuration priorities.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsPrioritiesGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsPrioritiesGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get a page with public configurations.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {boolean} [includeResults]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsPublicGet(version, currentPage, pageSize, sort, filters, includeResults, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsPublicGet(version, currentPage, pageSize, sort, filters, includeResults, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the configuration states. A list of valid configuration states.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsStatesGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsStatesGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all configurations of the specified product.\n * @param {string} productId Product identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsProductIdConfigurationsGet(productId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProductsProductIdConfigurationsGet(productId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the specified result\n * @param {string} resultId Identifier of the requested result as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionResultsResultIdGet(resultId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionResultsResultIdGet(resultId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * ConfigurationsApi - factory interface\n * @export\n */\nexport const ConfigurationsApiFactory = function (configuration, basePath, axios) {\n const localVarFp = ConfigurationsApiFp(configuration);\n return {\n /**\n *\n * @summary Get the specified configuration.\n * @param {string} id Identifier of the requested configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n configurationLink(id, version, options) {\n return localVarFp.configurationLink(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n * The result can be filtered. Valid filter fields: NOT_IMPLEMENTED id (string or UUID), name (string), sku (string), productTypeId(int), stateId(int), customerId(UUID), NOT_IMPLEMENTED stateCreatedBy(string or UUID)\n * @summary Get aggregates from configurations.\n * @param {string} version The requested API version\n * @param {string} [filters]\n * @param {string} [tags] This property is used to filter the configurations by tags and values they must contain. The property takes an JSON structure as value. #### Query examples: ``` ?tags={\\"key1ID\\":[\\"v1\\",\\"v2\\"],\\"key2ID\\":[\\"v3\\"]} // Returns all configurations with tag key 1 with value \\"v1\\" or \\"v2\\" and tag key 2 with value \\"v3\\" ?tags={\\"key1ID\\":[\\"*\\"]} // Returns all configurations with tag key 1 doesn\\'t matter the value ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsAggregatesGet(version, filters, tags, options) {\n return localVarFp.vversionConfigurationsAggregatesGet(version, filters, tags, options).then((request) => request(axios, basePath));\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, sku, typeId, stateId, createdAt, modifiedAt, dueAt, stateCreatedBy, stateCreatedAt. The default value is the created at timestamp in descending order (createdAt_desc). Valid filter fields: NOT_IMPLEMENTED id (string or UUID), name (string), sku (string), productTypeId(int), stateId(int), customerId(UUID), NOT_IMPLEMENTED stateCreatedBy(string or UUID)\n * @summary Get a page with configurations available for customer including private and public configurations.\n * @param {string} customerId\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {string} [tags] This property is used to filter the configurations by tags and values they must contain. The property takes an JSON structure as value. A prefixed `!` will negate it. #### Query examples: ``` ?tags={\\"key1ID\\":[\\"v1\\",\\"v2\\"],\\"key2ID\\":[\\"v3\\"]} // Returns all configurations with tag key 1 with value \\"v1\\" or \\"v2\\" and tag key 2 with value \\"v3\\" ?tags={\\"key1ID\\":[\\"*\\"]} // Returns all configurations with tag key 1 doesn\\'t matter the value ?tags={\\"!key1ID\\":[\\"*\\"]} // Returns all configurations without tag key 1 doesn\\'t matter the value ```\n * @param {boolean} [includeResults] If set to true, include the results for each configuration\n * @param {boolean} [includeArchived]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsAllforcustomerGet(customerId, version, currentPage, pageSize, sort, filters, tags, includeResults, includeArchived, options) {\n return localVarFp.vversionConfigurationsAllforcustomerGet(customerId, version, currentPage, pageSize, sort, filters, tags, includeResults, includeArchived, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified result of the specefied configuration with all corresponding files.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} resultId Identifier of the result that should be deleted as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdResultsResultIdDelete(configurationId, resultId, version, options) {\n return localVarFp.vversionConfigurationsConfigurationIdResultsResultIdDelete(configurationId, resultId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified file of specified result.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} resultId Identifier of the result as Guid (UUID).\n * @param {string} fileId Identifier of the file that should be deleted. as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdResultsResultIdFileFileIdDelete(configurationId, resultId, fileId, version, options) {\n return localVarFp.vversionConfigurationsConfigurationIdResultsResultIdFileFileIdDelete(configurationId, resultId, fileId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Set the storageId of a file. e.g. set it to archive.\n * @param {string} configurationId The configuration the result belongs to\n * @param {string} resultId The result the file belongs to\n * @param {string} fileId The file where the storageId should be changed.\n * @param {string} version The requested API version\n * @param {string} storageId The new storageId of the result file\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut(configurationId, resultId, fileId, version, storageId, options) {\n return localVarFp.vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut(configurationId, resultId, fileId, version, storageId, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the specified result of the specified configuration.\n * @param {string} configurationId Identifier of the requested configuration as Guid (UUID).\n * @param {string} resultId Identifier of the requested result as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdResultsResultIdGet(configurationId, resultId, version, options) {\n return localVarFp.vversionConfigurationsConfigurationIdResultsResultIdGet(configurationId, resultId, version, options).then((request) => request(axios, basePath));\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, sku, typeId, stateId, createdAt, modifiedAt, dueAt, stateCreatedBy, stateCreatedAt. The default value is the created at timestamp in descending order (createdAt_desc). Valid filter fields: NOT_IMPLEMENTED id (string or UUID), name (string), sku (string), productTypeId(int), stateId(int), customerId(UUID), NOT_IMPLEMENTED stateCreatedBy(string or UUID)\n * @summary Get a page with configurations.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {string} [tags] This property is used to filter the configurations by tags and values they must contain. The property takes an JSON structure as value. A prefixed `!` will negate it. #### Query examples: ``` ?tags={\\"key1ID\\":[\\"v1\\",\\"v2\\"],\\"key2ID\\":[\\"v3\\"]} // Returns all configurations with tag key 1 with value \\"v1\\" or \\"v2\\" and tag key 2 with value \\"v3\\" ?tags={\\"key1ID\\":[\\"*\\"]} // Returns all configurations with tag key 1 doesn\\'t matter the value ?tags={\\"!key1ID\\":[\\"*\\"]} // Returns all configurations without tag key 1 doesn\\'t matter the value ```\n * @param {boolean} [includeResults] If set to true, include the results for each configuration\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsGet(version, currentPage, pageSize, sort, filters, tags, includeResults, options) {\n return localVarFp.vversionConfigurationsGet(version, currentPage, pageSize, sort, filters, tags, includeResults, options).then((request) => request(axios, basePath));\n },\n /**\n * The provided properties will be set, to clear an annotation explicitly set it to null int the request\n * @summary Patch system annotations on configuration\n * @param {string} id The identifier of the configuration which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ConfigurationAnnotationsDTO} [body] The configuration annotations\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdAnnotationsPatch(id, version, body, options) {\n return localVarFp.vversionConfigurationsIdAnnotationsPatch(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Approve the processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be approved by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional details as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdApprovePost(id, version, body, options) {\n return localVarFp.vversionConfigurationsIdApprovePost(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Set a configuration to be archived by the temporal workflow. This endpoint is only callable by admins.\n * @param {string} id The identifier of the configuration that should be archived\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdArchivePost(id, version, options) {\n return localVarFp.vversionConfigurationsIdArchivePost(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Set a configuration to archived. It is called by the Temporal Workflow after the configuration items have been archived.\n * @param {string} id The identifier of the configuration that should be archived\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdArchivedPost(id, version, options) {\n return localVarFp.vversionConfigurationsIdArchivedPost(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Cancel the not yet processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be canceled by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional details as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdCancelPost(id, version, body, options) {\n return localVarFp.vversionConfigurationsIdCancelPost(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified configuration.\n * @param {string} id Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdDelete(id, version, options) {\n return localVarFp.vversionConfigurationsIdDelete(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary If a configuration has no preview image yet, it will generate on for it.\n * @param {string} id The identifier of the configuration\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdEnsurePreviewImagePost(id, version, options) {\n return localVarFp.vversionConfigurationsIdEnsurePreviewImagePost(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Create a new configuration or update an existing one.\n * @param {string} id The identifier of the configuration which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ConfigurationBindingModel} [body] The configuration which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdPut(id, version, body, options) {\n return localVarFp.vversionConfigurationsIdPut(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Set a configuration to ready for processing. Is called by the customer after providing all of the necessary raw data. It also can be used by a reviewer to reset the state of the configuration.\n * @param {string} id The identifier of the configuration that is ready for processing as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdReadyPost(id, version, options) {\n return localVarFp.vversionConfigurationsIdReadyPost(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Reject the processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be rejected by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {string} [metadata] Additional details as json.\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdRejectAttachmentPost(id, version, metadata, ContentType, ContentDisposition, Headers, Length, Name, FileName, options) {\n return localVarFp.vversionConfigurationsIdRejectAttachmentPost(id, version, metadata, ContentType, ContentDisposition, Headers, Length, Name, FileName, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Reject the processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be rejected by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional details as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdRejectPost(id, version, body, options) {\n return localVarFp.vversionConfigurationsIdRejectPost(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Set a configuration to be restored by the temporal workflow. This endpoint is only callable by admins.\n * @param {string} id The identifier of the configuration that should be archived\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdRestorePost(id, version, options) {\n return localVarFp.vversionConfigurationsIdRestorePost(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Mark a configuration as restored. It is called by the Temporal Workflow after the configuration items have been copied back and and the url has been set to the requested location.\n * @param {string} id The identifier of the configuration that should be restored\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdRestoredPost(id, version, options) {\n return localVarFp.vversionConfigurationsIdRestoredPost(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all results of the specified configuration.\n * @param {string} id Identifier of the requested configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdResultsGet(id, version, options) {\n return localVarFp.vversionConfigurationsIdResultsGet(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the state history of the specified configuration.\n * @param {string} id Identifier of the requested configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsIdStatesGet(id, version, options) {\n return localVarFp.vversionConfigurationsIdStatesGet(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the configuration priorities. A list of valid configuration priorities.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsPrioritiesGet(version, options) {\n return localVarFp.vversionConfigurationsPrioritiesGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get a page with public configurations.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {boolean} [includeResults]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsPublicGet(version, currentPage, pageSize, sort, filters, includeResults, options) {\n return localVarFp.vversionConfigurationsPublicGet(version, currentPage, pageSize, sort, filters, includeResults, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the configuration states. A list of valid configuration states.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsStatesGet(version, options) {\n return localVarFp.vversionConfigurationsStatesGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all configurations of the specified product.\n * @param {string} productId Product identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsProductIdConfigurationsGet(productId, version, options) {\n return localVarFp.vversionProductsProductIdConfigurationsGet(productId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the specified result\n * @param {string} resultId Identifier of the requested result as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionResultsResultIdGet(resultId, version, options) {\n return localVarFp.vversionResultsResultIdGet(resultId, version, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * ConfigurationsApi - object-oriented interface\n * @export\n * @class ConfigurationsApi\n * @extends {BaseAPI}\n */\nexport class ConfigurationsApi extends BaseAPI {\n /**\n *\n * @summary Get the specified configuration.\n * @param {string} id Identifier of the requested configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n configurationLink(id, version, options) {\n return ConfigurationsApiFp(this.configuration).configurationLink(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * The result can be filtered. Valid filter fields: NOT_IMPLEMENTED id (string or UUID), name (string), sku (string), productTypeId(int), stateId(int), customerId(UUID), NOT_IMPLEMENTED stateCreatedBy(string or UUID)\n * @summary Get aggregates from configurations.\n * @param {string} version The requested API version\n * @param {string} [filters]\n * @param {string} [tags] This property is used to filter the configurations by tags and values they must contain. The property takes an JSON structure as value. #### Query examples: ``` ?tags={\\"key1ID\\":[\\"v1\\",\\"v2\\"],\\"key2ID\\":[\\"v3\\"]} // Returns all configurations with tag key 1 with value \\"v1\\" or \\"v2\\" and tag key 2 with value \\"v3\\" ?tags={\\"key1ID\\":[\\"*\\"]} // Returns all configurations with tag key 1 doesn\\'t matter the value ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsAggregatesGet(version, filters, tags, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsAggregatesGet(version, filters, tags, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, sku, typeId, stateId, createdAt, modifiedAt, dueAt, stateCreatedBy, stateCreatedAt. The default value is the created at timestamp in descending order (createdAt_desc). Valid filter fields: NOT_IMPLEMENTED id (string or UUID), name (string), sku (string), productTypeId(int), stateId(int), customerId(UUID), NOT_IMPLEMENTED stateCreatedBy(string or UUID)\n * @summary Get a page with configurations available for customer including private and public configurations.\n * @param {string} customerId\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {string} [tags] This property is used to filter the configurations by tags and values they must contain. The property takes an JSON structure as value. A prefixed `!` will negate it. #### Query examples: ``` ?tags={\\"key1ID\\":[\\"v1\\",\\"v2\\"],\\"key2ID\\":[\\"v3\\"]} // Returns all configurations with tag key 1 with value \\"v1\\" or \\"v2\\" and tag key 2 with value \\"v3\\" ?tags={\\"key1ID\\":[\\"*\\"]} // Returns all configurations with tag key 1 doesn\\'t matter the value ?tags={\\"!key1ID\\":[\\"*\\"]} // Returns all configurations without tag key 1 doesn\\'t matter the value ```\n * @param {boolean} [includeResults] If set to true, include the results for each configuration\n * @param {boolean} [includeArchived]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsAllforcustomerGet(customerId, version, currentPage, pageSize, sort, filters, tags, includeResults, includeArchived, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsAllforcustomerGet(customerId, version, currentPage, pageSize, sort, filters, tags, includeResults, includeArchived, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified result of the specefied configuration with all corresponding files.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} resultId Identifier of the result that should be deleted as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsConfigurationIdResultsResultIdDelete(configurationId, resultId, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsConfigurationIdResultsResultIdDelete(configurationId, resultId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified file of specified result.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} resultId Identifier of the result as Guid (UUID).\n * @param {string} fileId Identifier of the file that should be deleted. as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsConfigurationIdResultsResultIdFileFileIdDelete(configurationId, resultId, fileId, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsConfigurationIdResultsResultIdFileFileIdDelete(configurationId, resultId, fileId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Set the storageId of a file. e.g. set it to archive.\n * @param {string} configurationId The configuration the result belongs to\n * @param {string} resultId The result the file belongs to\n * @param {string} fileId The file where the storageId should be changed.\n * @param {string} version The requested API version\n * @param {string} storageId The new storageId of the result file\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut(configurationId, resultId, fileId, version, storageId, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsConfigurationIdResultsResultIdFileFileIdStorageIdPut(configurationId, resultId, fileId, version, storageId, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the specified result of the specified configuration.\n * @param {string} configurationId Identifier of the requested configuration as Guid (UUID).\n * @param {string} resultId Identifier of the requested result as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsConfigurationIdResultsResultIdGet(configurationId, resultId, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsConfigurationIdResultsResultIdGet(configurationId, resultId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, sku, typeId, stateId, createdAt, modifiedAt, dueAt, stateCreatedBy, stateCreatedAt. The default value is the created at timestamp in descending order (createdAt_desc). Valid filter fields: NOT_IMPLEMENTED id (string or UUID), name (string), sku (string), productTypeId(int), stateId(int), customerId(UUID), NOT_IMPLEMENTED stateCreatedBy(string or UUID)\n * @summary Get a page with configurations.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {string} [tags] This property is used to filter the configurations by tags and values they must contain. The property takes an JSON structure as value. A prefixed `!` will negate it. #### Query examples: ``` ?tags={\\"key1ID\\":[\\"v1\\",\\"v2\\"],\\"key2ID\\":[\\"v3\\"]} // Returns all configurations with tag key 1 with value \\"v1\\" or \\"v2\\" and tag key 2 with value \\"v3\\" ?tags={\\"key1ID\\":[\\"*\\"]} // Returns all configurations with tag key 1 doesn\\'t matter the value ?tags={\\"!key1ID\\":[\\"*\\"]} // Returns all configurations without tag key 1 doesn\\'t matter the value ```\n * @param {boolean} [includeResults] If set to true, include the results for each configuration\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsGet(version, currentPage, pageSize, sort, filters, tags, includeResults, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsGet(version, currentPage, pageSize, sort, filters, tags, includeResults, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * The provided properties will be set, to clear an annotation explicitly set it to null int the request\n * @summary Patch system annotations on configuration\n * @param {string} id The identifier of the configuration which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ConfigurationAnnotationsDTO} [body] The configuration annotations\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdAnnotationsPatch(id, version, body, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdAnnotationsPatch(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Approve the processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be approved by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional details as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdApprovePost(id, version, body, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdApprovePost(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Set a configuration to be archived by the temporal workflow. This endpoint is only callable by admins.\n * @param {string} id The identifier of the configuration that should be archived\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdArchivePost(id, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdArchivePost(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Set a configuration to archived. It is called by the Temporal Workflow after the configuration items have been archived.\n * @param {string} id The identifier of the configuration that should be archived\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdArchivedPost(id, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdArchivedPost(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Cancel the not yet processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be canceled by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional details as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdCancelPost(id, version, body, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdCancelPost(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified configuration.\n * @param {string} id Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdDelete(id, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdDelete(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary If a configuration has no preview image yet, it will generate on for it.\n * @param {string} id The identifier of the configuration\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdEnsurePreviewImagePost(id, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdEnsurePreviewImagePost(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Create a new configuration or update an existing one.\n * @param {string} id The identifier of the configuration which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ConfigurationBindingModel} [body] The configuration which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdPut(id, version, body, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdPut(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Set a configuration to ready for processing. Is called by the customer after providing all of the necessary raw data. It also can be used by a reviewer to reset the state of the configuration.\n * @param {string} id The identifier of the configuration that is ready for processing as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdReadyPost(id, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdReadyPost(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Reject the processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be rejected by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {string} [metadata] Additional details as json.\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdRejectAttachmentPost(id, version, metadata, ContentType, ContentDisposition, Headers, Length, Name, FileName, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdRejectAttachmentPost(id, version, metadata, ContentType, ContentDisposition, Headers, Length, Name, FileName, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Reject the processed configuration. Is called by the customer.\n * @param {string} id Identifier of the configuration that should be rejected by the customer as Guid (UUID).\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional details as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdRejectPost(id, version, body, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdRejectPost(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Set a configuration to be restored by the temporal workflow. This endpoint is only callable by admins.\n * @param {string} id The identifier of the configuration that should be archived\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdRestorePost(id, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdRestorePost(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Mark a configuration as restored. It is called by the Temporal Workflow after the configuration items have been copied back and and the url has been set to the requested location.\n * @param {string} id The identifier of the configuration that should be restored\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdRestoredPost(id, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdRestoredPost(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all results of the specified configuration.\n * @param {string} id Identifier of the requested configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdResultsGet(id, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdResultsGet(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the state history of the specified configuration.\n * @param {string} id Identifier of the requested configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsIdStatesGet(id, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsIdStatesGet(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the configuration priorities. A list of valid configuration priorities.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsPrioritiesGet(version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsPrioritiesGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get a page with public configurations.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {boolean} [includeResults]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsPublicGet(version, currentPage, pageSize, sort, filters, includeResults, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsPublicGet(version, currentPage, pageSize, sort, filters, includeResults, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the configuration states. A list of valid configuration states.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionConfigurationsStatesGet(version, options) {\n return ConfigurationsApiFp(this.configuration).vversionConfigurationsStatesGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all configurations of the specified product.\n * @param {string} productId Product identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionProductsProductIdConfigurationsGet(productId, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionProductsProductIdConfigurationsGet(productId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the specified result\n * @param {string} resultId Identifier of the requested result as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationsApi\n */\n vversionResultsResultIdGet(resultId, version, options) {\n return ConfigurationsApiFp(this.configuration).vversionResultsResultIdGet(resultId, version, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * CustomersApi - axios parameter creator\n * @export\n */\nexport const CustomersApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Get the callbacks types. A list of valid callback types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCallbacksTypesGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersCallbacksTypesGet', 'version', version);\n const localVarPath = `/v{version}/Customers/callbacks/types`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Sets the specified callback of the specified customer.\n * @param {string} customerId Customer identifier.\n * @param {number} callbackTypeId Callback type identifier.\n * @param {string} version The requested API version\n * @param {CustomerCallbackBindingModel} [body] The CustomerCallback data transfer object\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdCallbacksCallbackTypeIdPut: (customerId, callbackTypeId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'customerId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdCallbacksCallbackTypeIdPut', 'customerId', customerId);\n // verify required parameter 'callbackTypeId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdCallbacksCallbackTypeIdPut', 'callbackTypeId', callbackTypeId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdCallbacksCallbackTypeIdPut', 'version', version);\n const localVarPath = `/v{version}/Customers/{customerId}/callbacks/{callbackTypeId}`\n .replace(`{${\"customerId\"}}`, encodeURIComponent(String(customerId)))\n .replace(`{${\"callbackTypeId\"}}`, encodeURIComponent(String(callbackTypeId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * This endpoint can be used to test a specified endpoint.\n * @summary Triggers the specified callback with the given identifier.\n * @param {string} customerId The identifier of the customer.\n * @param {number} callbackType The callback type as integer. (See callback/types endpoint.)\n * @param {string} id Configuration or product identifier. Depends on the specified calback type.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdCallbacksCallbackTypeTriggerIdPost: (customerId, callbackType, id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'customerId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdCallbacksCallbackTypeTriggerIdPost', 'customerId', customerId);\n // verify required parameter 'callbackType' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdCallbacksCallbackTypeTriggerIdPost', 'callbackType', callbackType);\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdCallbacksCallbackTypeTriggerIdPost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdCallbacksCallbackTypeTriggerIdPost', 'version', version);\n const localVarPath = `/v{version}/Customers/{customerId}/callbacks/{callbackType}/trigger/{id}`\n .replace(`{${\"customerId\"}}`, encodeURIComponent(String(customerId)))\n .replace(`{${\"callbackType\"}}`, encodeURIComponent(String(callbackType)))\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all callbacks of the specified customer.\n * @param {string} customerId Customer identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdCallbacksGet: (customerId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'customerId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdCallbacksGet', 'customerId', customerId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdCallbacksGet', 'version', version);\n const localVarPath = `/v{version}/Customers/{customerId}/callbacks`\n .replace(`{${\"customerId\"}}`, encodeURIComponent(String(customerId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get a list of product types where notifications are disabled for that customer\n * @param {string} customerId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdNotificationsGet: (customerId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'customerId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdNotificationsGet', 'customerId', customerId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdNotificationsGet', 'version', version);\n const localVarPath = `/v{version}/Customers/{customerId}/Notifications`\n .replace(`{${\"customerId\"}}`, encodeURIComponent(String(customerId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Enable notifications to be send for a product type for the customer\n * @param {string} customerId The identifier of the customer where the notifciations should be enabled\n * @param {number} productId The identifier of the prorduct type where notifications should be enabled\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdNotificationsProductIdDelete: (customerId, productId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'customerId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdNotificationsProductIdDelete', 'customerId', customerId);\n // verify required parameter 'productId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdNotificationsProductIdDelete', 'productId', productId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdNotificationsProductIdDelete', 'version', version);\n const localVarPath = `/v{version}/Customers/{customerId}/Notifications/{productId}`\n .replace(`{${\"customerId\"}}`, encodeURIComponent(String(customerId)))\n .replace(`{${\"productId\"}}`, encodeURIComponent(String(productId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Disable notifications to be send for a product type for the customer\n * @param {string} customerId The identifier of the customer where the notifciations should be disabled\n * @param {number} productId The identifier of the prorduct type where notifications should be disabled\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdNotificationsProductIdPut: (customerId, productId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'customerId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdNotificationsProductIdPut', 'customerId', customerId);\n // verify required parameter 'productId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdNotificationsProductIdPut', 'productId', productId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdNotificationsProductIdPut', 'version', version);\n const localVarPath = `/v{version}/Customers/{customerId}/Notifications/{productId}`\n .replace(`{${\"customerId\"}}`, encodeURIComponent(String(customerId)))\n .replace(`{${\"productId\"}}`, encodeURIComponent(String(productId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Remove a user that should be removed from a customer.\n * @param {string} customerId The identifier of the customer from which the specified user should be removed.\n * @param {string} userId The identifier of the user that should be removed from the specified customer.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdUsersUserIdDelete: (customerId, userId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'customerId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdUsersUserIdDelete', 'customerId', customerId);\n // verify required parameter 'userId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdUsersUserIdDelete', 'userId', userId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdUsersUserIdDelete', 'version', version);\n const localVarPath = `/v{version}/Customers/{customerId}/users/{userId}`\n .replace(`{${\"customerId\"}}`, encodeURIComponent(String(customerId)))\n .replace(`{${\"userId\"}}`, encodeURIComponent(String(userId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Add a user to a customer.\n * @param {string} customerId The identifier of the customer to which the specified user should be added.\n * @param {string} userId The identifier of the user that should be added to the specified customer.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdUsersUserIdPut: (customerId, userId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'customerId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdUsersUserIdPut', 'customerId', customerId);\n // verify required parameter 'userId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdUsersUserIdPut', 'userId', userId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdUsersUserIdPut', 'version', version);\n const localVarPath = `/v{version}/Customers/{customerId}/users/{userId}`\n .replace(`{${\"customerId\"}}`, encodeURIComponent(String(customerId)))\n .replace(`{${\"userId\"}}`, encodeURIComponent(String(userId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name. The default value is the name value in ascending order (name). Valid filter fields: name (string).\n * @summary Get a page with customers.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersGet: (version, currentPage, pageSize, sort, filters, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersGet', 'version', version);\n const localVarPath = `/v{version}/Customers`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (currentPage !== undefined) {\n localVarQueryParameter['currentPage'] = currentPage;\n }\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n if (sort !== undefined) {\n localVarQueryParameter['sort'] = sort;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified customer. The customer can only be deleted if there are no products that belong to the specified customer.\n * @param {string} id Customer identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersIdDelete: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionCustomersIdDelete', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersIdDelete', 'version', version);\n const localVarPath = `/v{version}/Customers/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the data of the specified customer.\n * @param {string} id The identifier of the customer.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersIdGet: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionCustomersIdGet', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersIdGet', 'version', version);\n const localVarPath = `/v{version}/Customers/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Create a new customer or update an existing one.\n * @param {string} id The identifier of the customer which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {CustomerBindingModel} [body] The customer which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersIdPut: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionCustomersIdPut', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersIdPut', 'version', version);\n const localVarPath = `/v{version}/Customers/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get a list of customers to which the current user has access.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersMyGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersMyGet', 'version', version);\n const localVarPath = `/v{version}/Customers/my`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get a list of customers to which the specified user has access.\n * @param {string} userId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersUserIdCustomersGet: (userId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'userId' is not null or undefined\n assertParamExists('vversionUsersUserIdCustomersGet', 'userId', userId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionUsersUserIdCustomersGet', 'version', version);\n const localVarPath = `/v{version}/Users/{userId}/Customers`\n .replace(`{${\"userId\"}}`, encodeURIComponent(String(userId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * CustomersApi - functional programming interface\n * @export\n */\nexport const CustomersApiFp = function (configuration) {\n const localVarAxiosParamCreator = CustomersApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Get the callbacks types. A list of valid callback types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCallbacksTypesGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersCallbacksTypesGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Sets the specified callback of the specified customer.\n * @param {string} customerId Customer identifier.\n * @param {number} callbackTypeId Callback type identifier.\n * @param {string} version The requested API version\n * @param {CustomerCallbackBindingModel} [body] The CustomerCallback data transfer object\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdCallbacksCallbackTypeIdPut(customerId, callbackTypeId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersCustomerIdCallbacksCallbackTypeIdPut(customerId, callbackTypeId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * This endpoint can be used to test a specified endpoint.\n * @summary Triggers the specified callback with the given identifier.\n * @param {string} customerId The identifier of the customer.\n * @param {number} callbackType The callback type as integer. (See callback/types endpoint.)\n * @param {string} id Configuration or product identifier. Depends on the specified calback type.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdCallbacksCallbackTypeTriggerIdPost(customerId, callbackType, id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersCustomerIdCallbacksCallbackTypeTriggerIdPost(customerId, callbackType, id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all callbacks of the specified customer.\n * @param {string} customerId Customer identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdCallbacksGet(customerId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersCustomerIdCallbacksGet(customerId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get a list of product types where notifications are disabled for that customer\n * @param {string} customerId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdNotificationsGet(customerId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersCustomerIdNotificationsGet(customerId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Enable notifications to be send for a product type for the customer\n * @param {string} customerId The identifier of the customer where the notifciations should be enabled\n * @param {number} productId The identifier of the prorduct type where notifications should be enabled\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdNotificationsProductIdDelete(customerId, productId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersCustomerIdNotificationsProductIdDelete(customerId, productId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Disable notifications to be send for a product type for the customer\n * @param {string} customerId The identifier of the customer where the notifciations should be disabled\n * @param {number} productId The identifier of the prorduct type where notifications should be disabled\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdNotificationsProductIdPut(customerId, productId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersCustomerIdNotificationsProductIdPut(customerId, productId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Remove a user that should be removed from a customer.\n * @param {string} customerId The identifier of the customer from which the specified user should be removed.\n * @param {string} userId The identifier of the user that should be removed from the specified customer.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdUsersUserIdDelete(customerId, userId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersCustomerIdUsersUserIdDelete(customerId, userId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Add a user to a customer.\n * @param {string} customerId The identifier of the customer to which the specified user should be added.\n * @param {string} userId The identifier of the user that should be added to the specified customer.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdUsersUserIdPut(customerId, userId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersCustomerIdUsersUserIdPut(customerId, userId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name. The default value is the name value in ascending order (name). Valid filter fields: name (string).\n * @summary Get a page with customers.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersGet(version, currentPage, pageSize, sort, filters, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersGet(version, currentPage, pageSize, sort, filters, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified customer. The customer can only be deleted if there are no products that belong to the specified customer.\n * @param {string} id Customer identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersIdDelete(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersIdDelete(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the data of the specified customer.\n * @param {string} id The identifier of the customer.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersIdGet(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersIdGet(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Create a new customer or update an existing one.\n * @param {string} id The identifier of the customer which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {CustomerBindingModel} [body] The customer which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersIdPut(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersIdPut(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get a list of customers to which the current user has access.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersMyGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersMyGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get a list of customers to which the specified user has access.\n * @param {string} userId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersUserIdCustomersGet(userId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionUsersUserIdCustomersGet(userId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * CustomersApi - factory interface\n * @export\n */\nexport const CustomersApiFactory = function (configuration, basePath, axios) {\n const localVarFp = CustomersApiFp(configuration);\n return {\n /**\n *\n * @summary Get the callbacks types. A list of valid callback types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCallbacksTypesGet(version, options) {\n return localVarFp.vversionCustomersCallbacksTypesGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Sets the specified callback of the specified customer.\n * @param {string} customerId Customer identifier.\n * @param {number} callbackTypeId Callback type identifier.\n * @param {string} version The requested API version\n * @param {CustomerCallbackBindingModel} [body] The CustomerCallback data transfer object\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdCallbacksCallbackTypeIdPut(customerId, callbackTypeId, version, body, options) {\n return localVarFp.vversionCustomersCustomerIdCallbacksCallbackTypeIdPut(customerId, callbackTypeId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n * This endpoint can be used to test a specified endpoint.\n * @summary Triggers the specified callback with the given identifier.\n * @param {string} customerId The identifier of the customer.\n * @param {number} callbackType The callback type as integer. (See callback/types endpoint.)\n * @param {string} id Configuration or product identifier. Depends on the specified calback type.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdCallbacksCallbackTypeTriggerIdPost(customerId, callbackType, id, version, options) {\n return localVarFp.vversionCustomersCustomerIdCallbacksCallbackTypeTriggerIdPost(customerId, callbackType, id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all callbacks of the specified customer.\n * @param {string} customerId Customer identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdCallbacksGet(customerId, version, options) {\n return localVarFp.vversionCustomersCustomerIdCallbacksGet(customerId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get a list of product types where notifications are disabled for that customer\n * @param {string} customerId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdNotificationsGet(customerId, version, options) {\n return localVarFp.vversionCustomersCustomerIdNotificationsGet(customerId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Enable notifications to be send for a product type for the customer\n * @param {string} customerId The identifier of the customer where the notifciations should be enabled\n * @param {number} productId The identifier of the prorduct type where notifications should be enabled\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdNotificationsProductIdDelete(customerId, productId, version, options) {\n return localVarFp.vversionCustomersCustomerIdNotificationsProductIdDelete(customerId, productId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Disable notifications to be send for a product type for the customer\n * @param {string} customerId The identifier of the customer where the notifciations should be disabled\n * @param {number} productId The identifier of the prorduct type where notifications should be disabled\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdNotificationsProductIdPut(customerId, productId, version, options) {\n return localVarFp.vversionCustomersCustomerIdNotificationsProductIdPut(customerId, productId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Remove a user that should be removed from a customer.\n * @param {string} customerId The identifier of the customer from which the specified user should be removed.\n * @param {string} userId The identifier of the user that should be removed from the specified customer.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdUsersUserIdDelete(customerId, userId, version, options) {\n return localVarFp.vversionCustomersCustomerIdUsersUserIdDelete(customerId, userId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Add a user to a customer.\n * @param {string} customerId The identifier of the customer to which the specified user should be added.\n * @param {string} userId The identifier of the user that should be added to the specified customer.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdUsersUserIdPut(customerId, userId, version, options) {\n return localVarFp.vversionCustomersCustomerIdUsersUserIdPut(customerId, userId, version, options).then((request) => request(axios, basePath));\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name. The default value is the name value in ascending order (name). Valid filter fields: name (string).\n * @summary Get a page with customers.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersGet(version, currentPage, pageSize, sort, filters, options) {\n return localVarFp.vversionCustomersGet(version, currentPage, pageSize, sort, filters, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified customer. The customer can only be deleted if there are no products that belong to the specified customer.\n * @param {string} id Customer identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersIdDelete(id, version, options) {\n return localVarFp.vversionCustomersIdDelete(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the data of the specified customer.\n * @param {string} id The identifier of the customer.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersIdGet(id, version, options) {\n return localVarFp.vversionCustomersIdGet(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Create a new customer or update an existing one.\n * @param {string} id The identifier of the customer which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {CustomerBindingModel} [body] The customer which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersIdPut(id, version, body, options) {\n return localVarFp.vversionCustomersIdPut(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get a list of customers to which the current user has access.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersMyGet(version, options) {\n return localVarFp.vversionCustomersMyGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get a list of customers to which the specified user has access.\n * @param {string} userId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersUserIdCustomersGet(userId, version, options) {\n return localVarFp.vversionUsersUserIdCustomersGet(userId, version, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * CustomersApi - object-oriented interface\n * @export\n * @class CustomersApi\n * @extends {BaseAPI}\n */\nexport class CustomersApi extends BaseAPI {\n /**\n *\n * @summary Get the callbacks types. A list of valid callback types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersCallbacksTypesGet(version, options) {\n return CustomersApiFp(this.configuration).vversionCustomersCallbacksTypesGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Sets the specified callback of the specified customer.\n * @param {string} customerId Customer identifier.\n * @param {number} callbackTypeId Callback type identifier.\n * @param {string} version The requested API version\n * @param {CustomerCallbackBindingModel} [body] The CustomerCallback data transfer object\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersCustomerIdCallbacksCallbackTypeIdPut(customerId, callbackTypeId, version, body, options) {\n return CustomersApiFp(this.configuration).vversionCustomersCustomerIdCallbacksCallbackTypeIdPut(customerId, callbackTypeId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * This endpoint can be used to test a specified endpoint.\n * @summary Triggers the specified callback with the given identifier.\n * @param {string} customerId The identifier of the customer.\n * @param {number} callbackType The callback type as integer. (See callback/types endpoint.)\n * @param {string} id Configuration or product identifier. Depends on the specified calback type.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersCustomerIdCallbacksCallbackTypeTriggerIdPost(customerId, callbackType, id, version, options) {\n return CustomersApiFp(this.configuration).vversionCustomersCustomerIdCallbacksCallbackTypeTriggerIdPost(customerId, callbackType, id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all callbacks of the specified customer.\n * @param {string} customerId Customer identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersCustomerIdCallbacksGet(customerId, version, options) {\n return CustomersApiFp(this.configuration).vversionCustomersCustomerIdCallbacksGet(customerId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get a list of product types where notifications are disabled for that customer\n * @param {string} customerId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersCustomerIdNotificationsGet(customerId, version, options) {\n return CustomersApiFp(this.configuration).vversionCustomersCustomerIdNotificationsGet(customerId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Enable notifications to be send for a product type for the customer\n * @param {string} customerId The identifier of the customer where the notifciations should be enabled\n * @param {number} productId The identifier of the prorduct type where notifications should be enabled\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersCustomerIdNotificationsProductIdDelete(customerId, productId, version, options) {\n return CustomersApiFp(this.configuration).vversionCustomersCustomerIdNotificationsProductIdDelete(customerId, productId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Disable notifications to be send for a product type for the customer\n * @param {string} customerId The identifier of the customer where the notifciations should be disabled\n * @param {number} productId The identifier of the prorduct type where notifications should be disabled\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersCustomerIdNotificationsProductIdPut(customerId, productId, version, options) {\n return CustomersApiFp(this.configuration).vversionCustomersCustomerIdNotificationsProductIdPut(customerId, productId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Remove a user that should be removed from a customer.\n * @param {string} customerId The identifier of the customer from which the specified user should be removed.\n * @param {string} userId The identifier of the user that should be removed from the specified customer.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersCustomerIdUsersUserIdDelete(customerId, userId, version, options) {\n return CustomersApiFp(this.configuration).vversionCustomersCustomerIdUsersUserIdDelete(customerId, userId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Add a user to a customer.\n * @param {string} customerId The identifier of the customer to which the specified user should be added.\n * @param {string} userId The identifier of the user that should be added to the specified customer.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersCustomerIdUsersUserIdPut(customerId, userId, version, options) {\n return CustomersApiFp(this.configuration).vversionCustomersCustomerIdUsersUserIdPut(customerId, userId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name. The default value is the name value in ascending order (name). Valid filter fields: name (string).\n * @summary Get a page with customers.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersGet(version, currentPage, pageSize, sort, filters, options) {\n return CustomersApiFp(this.configuration).vversionCustomersGet(version, currentPage, pageSize, sort, filters, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified customer. The customer can only be deleted if there are no products that belong to the specified customer.\n * @param {string} id Customer identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersIdDelete(id, version, options) {\n return CustomersApiFp(this.configuration).vversionCustomersIdDelete(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the data of the specified customer.\n * @param {string} id The identifier of the customer.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersIdGet(id, version, options) {\n return CustomersApiFp(this.configuration).vversionCustomersIdGet(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Create a new customer or update an existing one.\n * @param {string} id The identifier of the customer which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {CustomerBindingModel} [body] The customer which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersIdPut(id, version, body, options) {\n return CustomersApiFp(this.configuration).vversionCustomersIdPut(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get a list of customers to which the current user has access.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionCustomersMyGet(version, options) {\n return CustomersApiFp(this.configuration).vversionCustomersMyGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get a list of customers to which the specified user has access.\n * @param {string} userId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CustomersApi\n */\n vversionUsersUserIdCustomersGet(userId, version, options) {\n return CustomersApiFp(this.configuration).vversionUsersUserIdCustomersGet(userId, version, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * DynamicConfigurationApi - axios parameter creator\n * @export\n */\nexport const DynamicConfigurationApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Get the configuration variables for a client.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionDynamicConfigGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionDynamicConfigGet', 'version', version);\n const localVarPath = `/v{version}/dynamic_config`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * DynamicConfigurationApi - functional programming interface\n * @export\n */\nexport const DynamicConfigurationApiFp = function (configuration) {\n const localVarAxiosParamCreator = DynamicConfigurationApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Get the configuration variables for a client.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionDynamicConfigGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionDynamicConfigGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * DynamicConfigurationApi - factory interface\n * @export\n */\nexport const DynamicConfigurationApiFactory = function (configuration, basePath, axios) {\n const localVarFp = DynamicConfigurationApiFp(configuration);\n return {\n /**\n *\n * @summary Get the configuration variables for a client.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionDynamicConfigGet(version, options) {\n return localVarFp.vversionDynamicConfigGet(version, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * DynamicConfigurationApi - object-oriented interface\n * @export\n * @class DynamicConfigurationApi\n * @extends {BaseAPI}\n */\nexport class DynamicConfigurationApi extends BaseAPI {\n /**\n *\n * @summary Get the configuration variables for a client.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof DynamicConfigurationApi\n */\n vversionDynamicConfigGet(version, options) {\n return DynamicConfigurationApiFp(this.configuration).vversionDynamicConfigGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * FilesApi - axios parameter creator\n * @export\n */\nexport const FilesApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Get the specified file entry. This entry holds the url to the file and additional metadata.\n * @param {string} id Identifier of the requested file as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n fileLink: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('fileLink', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('fileLink', 'version', version);\n const localVarPath = `/v{version}/Files/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort data types: Int32, String, Guid, DateTime. The default value is the createdAt value in ascending order (name). Valid filter data types: Int32, String, Guid, DateTime.\n * @summary Get a page with files of the specified configuration.\n * @param {string} configurationId Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {boolean} [skipDownloadUrls] Skip generating download urls\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdFilesGet: (configurationId, version, currentPage, pageSize, sort, filters, skipDownloadUrls, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdFilesGet', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdFilesGet', 'version', version);\n const localVarPath = `/v{version}/Configurations/{configurationId}/files`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (currentPage !== undefined) {\n localVarQueryParameter['currentPage'] = currentPage;\n }\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n if (sort !== undefined) {\n localVarQueryParameter['sort'] = sort;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n if (skipDownloadUrls !== undefined) {\n localVarQueryParameter['skipDownloadUrls'] = skipDownloadUrls;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * This endpoint can only create a new file or add a revision of an existing file. It is not possible to change any other property. In this case please delete and reupload the file.\n * @summary Uploads the given file base64 encoded and creates a db entry.\n * @param {string} id The identifier of the file which should be newly created or updated with a new revision.\n * @param {string} version The requested API version\n * @param {ImageBase64BindingModel} body File entry that holds the metadata of the file and the base64 encoded buffer.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesBase64IdPut: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionFilesBase64IdPut', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionFilesBase64IdPut', 'version', version);\n // verify required parameter 'body' is not null or undefined\n assertParamExists('vversionFilesBase64IdPut', 'body', body);\n const localVarPath = `/v{version}/Files/base64/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * This endpoint can only create files. It is not possible to edit a file. In this case please delete and reupload the file.\n * @summary Uploads the given file base64 encoded and creates a db entry.\n * @param {string} version The requested API version\n * @param {ImageBase64BindingModel} body The file entry that holds the metadata of the file and the base64 encoded buffer.\n * @param {boolean} [ensureUniqueness] If set to true it will compare the filename and the file type and create a revision if such a db entry already exists\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesBase64Post: (version, body, ensureUniqueness, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionFilesBase64Post', 'version', version);\n // verify required parameter 'body' is not null or undefined\n assertParamExists('vversionFilesBase64Post', 'body', body);\n const localVarPath = `/v{version}/Files/base64`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (ensureUniqueness !== undefined) {\n localVarQueryParameter['ensureUniqueness'] = ensureUniqueness;\n }\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified file.\n * @param {string} id File identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdDelete: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionFilesIdDelete', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionFilesIdDelete', 'version', version);\n const localVarPath = `/v{version}/Files/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * This endpoint can only create a new file or add a revision of an existing file. It is not possible to change any other property. In this case please delete and reupload the file.\n * @summary Uploads the given file and creates a db entry.\n * @param {string} id The identifier of the file which should be newly created or updated with a new revision.\n * @param {string} version The requested API version\n * @param {number} typeId The type of the image. Valid types and there corresponding name can be accessed with the EP /Images/types\n * @param {string} [configurationId] Identifier of the configuration to which this image belongs as Guid (UUID).\n * @param {string} [name] Human readable display name of the image.\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdPut: (id, version, typeId, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionFilesIdPut', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionFilesIdPut', 'version', version);\n // verify required parameter 'typeId' is not null or undefined\n assertParamExists('vversionFilesIdPut', 'typeId', typeId);\n const localVarPath = `/v{version}/Files/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (typeId !== undefined) {\n localVarFormParams.append('typeId', typeId);\n }\n if (configurationId !== undefined) {\n localVarFormParams.append('configurationId', configurationId);\n }\n if (name !== undefined) {\n localVarFormParams.append('name', name);\n }\n if (ContentType !== undefined) {\n localVarFormParams.append('ContentType', ContentType);\n }\n if (ContentDisposition !== undefined) {\n localVarFormParams.append('ContentDisposition', ContentDisposition);\n }\n if (Headers !== undefined) {\n localVarFormParams.append('Headers', Headers);\n }\n if (Length !== undefined) {\n localVarFormParams.append('Length', Length);\n }\n if (Name !== undefined) {\n localVarFormParams.append('Name', Name);\n }\n if (FileName !== undefined) {\n localVarFormParams.append('FileName', FileName);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = localVarFormParams;\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all revisions of the specified file.\n * @param {string} id Identifier of the requested file as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdRevisionsGet: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionFilesIdRevisionsGet', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionFilesIdRevisionsGet', 'version', version);\n const localVarPath = `/v{version}/Files/{id}/revisions`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Set the storageId of a file. e.g. set it to archive.\n * @param {string} id The identifier of the image where the storageId should be changed\n * @param {string} version The requested API version\n * @param {string} storageId The new storageId of the image\n * @param {number} [revision]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdStorageIdPut: (id, version, storageId, revision, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionFilesIdStorageIdPut', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionFilesIdStorageIdPut', 'version', version);\n // verify required parameter 'storageId' is not null or undefined\n assertParamExists('vversionFilesIdStorageIdPut', 'storageId', storageId);\n const localVarPath = `/v{version}/Files/{id}/storageId`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (storageId !== undefined) {\n localVarFormParams.append('storageId', storageId);\n }\n if (revision !== undefined) {\n localVarFormParams.append('revision', revision);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = localVarFormParams;\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * This endpoint triggers a thumbnail generation for the given file.\n * @summary Triggers a thumbnail generation for the given file\n * @param {string} id The identifier of the file which should be newly created or updated with a new revision.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdThumbnailPost: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionFilesIdThumbnailPost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionFilesIdThumbnailPost', 'version', version);\n const localVarPath = `/v{version}/Files/{id}/thumbnail`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the support MIME types. A list of valid MIME types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesMIMEtypesGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionFilesMIMEtypesGet', 'version', version);\n const localVarPath = `/v{version}/Files/MIMEtypes`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * This endpoint can only create files. It is not possible to edit a file. In this case please delete and reupload the file.\n * @summary Uploads the given file and creates a db entry.\n * @param {string} version The requested API version\n * @param {number} typeId The type of the image. Valid types and there corresponding name can be accessed with the EP /Images/types\n * @param {boolean} [ensureUniqueness] If set to true it will compare the filename and the file type and create a revision if such a db entry already exists\n * @param {string} [configurationId] Identifier of the configuration to which this image belongs as Guid (UUID).\n * @param {string} [name] Human readable display name of the image.\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesPost: (version, typeId, ensureUniqueness, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionFilesPost', 'version', version);\n // verify required parameter 'typeId' is not null or undefined\n assertParamExists('vversionFilesPost', 'typeId', typeId);\n const localVarPath = `/v{version}/Files`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (ensureUniqueness !== undefined) {\n localVarQueryParameter['ensureUniqueness'] = ensureUniqueness;\n }\n if (typeId !== undefined) {\n localVarFormParams.append('typeId', typeId);\n }\n if (configurationId !== undefined) {\n localVarFormParams.append('configurationId', configurationId);\n }\n if (name !== undefined) {\n localVarFormParams.append('name', name);\n }\n if (ContentType !== undefined) {\n localVarFormParams.append('ContentType', ContentType);\n }\n if (ContentDisposition !== undefined) {\n localVarFormParams.append('ContentDisposition', ContentDisposition);\n }\n if (Headers !== undefined) {\n localVarFormParams.append('Headers', Headers);\n }\n if (Length !== undefined) {\n localVarFormParams.append('Length', Length);\n }\n if (Name !== undefined) {\n localVarFormParams.append('Name', Name);\n }\n if (FileName !== undefined) {\n localVarFormParams.append('FileName', FileName);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = localVarFormParams;\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the supported file types. A list of valid file types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesTypesGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionFilesTypesGet', 'version', version);\n const localVarPath = `/v{version}/Files/types`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * FilesApi - functional programming interface\n * @export\n */\nexport const FilesApiFp = function (configuration) {\n const localVarAxiosParamCreator = FilesApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Get the specified file entry. This entry holds the url to the file and additional metadata.\n * @param {string} id Identifier of the requested file as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n fileLink(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.fileLink(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort data types: Int32, String, Guid, DateTime. The default value is the createdAt value in ascending order (name). Valid filter data types: Int32, String, Guid, DateTime.\n * @summary Get a page with files of the specified configuration.\n * @param {string} configurationId Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {boolean} [skipDownloadUrls] Skip generating download urls\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdFilesGet(configurationId, version, currentPage, pageSize, sort, filters, skipDownloadUrls, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsConfigurationIdFilesGet(configurationId, version, currentPage, pageSize, sort, filters, skipDownloadUrls, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * This endpoint can only create a new file or add a revision of an existing file. It is not possible to change any other property. In this case please delete and reupload the file.\n * @summary Uploads the given file base64 encoded and creates a db entry.\n * @param {string} id The identifier of the file which should be newly created or updated with a new revision.\n * @param {string} version The requested API version\n * @param {ImageBase64BindingModel} body File entry that holds the metadata of the file and the base64 encoded buffer.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesBase64IdPut(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionFilesBase64IdPut(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * This endpoint can only create files. It is not possible to edit a file. In this case please delete and reupload the file.\n * @summary Uploads the given file base64 encoded and creates a db entry.\n * @param {string} version The requested API version\n * @param {ImageBase64BindingModel} body The file entry that holds the metadata of the file and the base64 encoded buffer.\n * @param {boolean} [ensureUniqueness] If set to true it will compare the filename and the file type and create a revision if such a db entry already exists\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesBase64Post(version, body, ensureUniqueness, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionFilesBase64Post(version, body, ensureUniqueness, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified file.\n * @param {string} id File identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdDelete(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionFilesIdDelete(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * This endpoint can only create a new file or add a revision of an existing file. It is not possible to change any other property. In this case please delete and reupload the file.\n * @summary Uploads the given file and creates a db entry.\n * @param {string} id The identifier of the file which should be newly created or updated with a new revision.\n * @param {string} version The requested API version\n * @param {number} typeId The type of the image. Valid types and there corresponding name can be accessed with the EP /Images/types\n * @param {string} [configurationId] Identifier of the configuration to which this image belongs as Guid (UUID).\n * @param {string} [name] Human readable display name of the image.\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdPut(id, version, typeId, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionFilesIdPut(id, version, typeId, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all revisions of the specified file.\n * @param {string} id Identifier of the requested file as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdRevisionsGet(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionFilesIdRevisionsGet(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Set the storageId of a file. e.g. set it to archive.\n * @param {string} id The identifier of the image where the storageId should be changed\n * @param {string} version The requested API version\n * @param {string} storageId The new storageId of the image\n * @param {number} [revision]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdStorageIdPut(id, version, storageId, revision, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionFilesIdStorageIdPut(id, version, storageId, revision, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * This endpoint triggers a thumbnail generation for the given file.\n * @summary Triggers a thumbnail generation for the given file\n * @param {string} id The identifier of the file which should be newly created or updated with a new revision.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdThumbnailPost(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionFilesIdThumbnailPost(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the support MIME types. A list of valid MIME types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesMIMEtypesGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionFilesMIMEtypesGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * This endpoint can only create files. It is not possible to edit a file. In this case please delete and reupload the file.\n * @summary Uploads the given file and creates a db entry.\n * @param {string} version The requested API version\n * @param {number} typeId The type of the image. Valid types and there corresponding name can be accessed with the EP /Images/types\n * @param {boolean} [ensureUniqueness] If set to true it will compare the filename and the file type and create a revision if such a db entry already exists\n * @param {string} [configurationId] Identifier of the configuration to which this image belongs as Guid (UUID).\n * @param {string} [name] Human readable display name of the image.\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesPost(version, typeId, ensureUniqueness, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionFilesPost(version, typeId, ensureUniqueness, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the supported file types. A list of valid file types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesTypesGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionFilesTypesGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * FilesApi - factory interface\n * @export\n */\nexport const FilesApiFactory = function (configuration, basePath, axios) {\n const localVarFp = FilesApiFp(configuration);\n return {\n /**\n *\n * @summary Get the specified file entry. This entry holds the url to the file and additional metadata.\n * @param {string} id Identifier of the requested file as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n fileLink(id, version, options) {\n return localVarFp.fileLink(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort data types: Int32, String, Guid, DateTime. The default value is the createdAt value in ascending order (name). Valid filter data types: Int32, String, Guid, DateTime.\n * @summary Get a page with files of the specified configuration.\n * @param {string} configurationId Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {boolean} [skipDownloadUrls] Skip generating download urls\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdFilesGet(configurationId, version, currentPage, pageSize, sort, filters, skipDownloadUrls, options) {\n return localVarFp.vversionConfigurationsConfigurationIdFilesGet(configurationId, version, currentPage, pageSize, sort, filters, skipDownloadUrls, options).then((request) => request(axios, basePath));\n },\n /**\n * This endpoint can only create a new file or add a revision of an existing file. It is not possible to change any other property. In this case please delete and reupload the file.\n * @summary Uploads the given file base64 encoded and creates a db entry.\n * @param {string} id The identifier of the file which should be newly created or updated with a new revision.\n * @param {string} version The requested API version\n * @param {ImageBase64BindingModel} body File entry that holds the metadata of the file and the base64 encoded buffer.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesBase64IdPut(id, version, body, options) {\n return localVarFp.vversionFilesBase64IdPut(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n * This endpoint can only create files. It is not possible to edit a file. In this case please delete and reupload the file.\n * @summary Uploads the given file base64 encoded and creates a db entry.\n * @param {string} version The requested API version\n * @param {ImageBase64BindingModel} body The file entry that holds the metadata of the file and the base64 encoded buffer.\n * @param {boolean} [ensureUniqueness] If set to true it will compare the filename and the file type and create a revision if such a db entry already exists\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesBase64Post(version, body, ensureUniqueness, options) {\n return localVarFp.vversionFilesBase64Post(version, body, ensureUniqueness, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified file.\n * @param {string} id File identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdDelete(id, version, options) {\n return localVarFp.vversionFilesIdDelete(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n * This endpoint can only create a new file or add a revision of an existing file. It is not possible to change any other property. In this case please delete and reupload the file.\n * @summary Uploads the given file and creates a db entry.\n * @param {string} id The identifier of the file which should be newly created or updated with a new revision.\n * @param {string} version The requested API version\n * @param {number} typeId The type of the image. Valid types and there corresponding name can be accessed with the EP /Images/types\n * @param {string} [configurationId] Identifier of the configuration to which this image belongs as Guid (UUID).\n * @param {string} [name] Human readable display name of the image.\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdPut(id, version, typeId, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options) {\n return localVarFp.vversionFilesIdPut(id, version, typeId, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all revisions of the specified file.\n * @param {string} id Identifier of the requested file as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdRevisionsGet(id, version, options) {\n return localVarFp.vversionFilesIdRevisionsGet(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Set the storageId of a file. e.g. set it to archive.\n * @param {string} id The identifier of the image where the storageId should be changed\n * @param {string} version The requested API version\n * @param {string} storageId The new storageId of the image\n * @param {number} [revision]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdStorageIdPut(id, version, storageId, revision, options) {\n return localVarFp.vversionFilesIdStorageIdPut(id, version, storageId, revision, options).then((request) => request(axios, basePath));\n },\n /**\n * This endpoint triggers a thumbnail generation for the given file.\n * @summary Triggers a thumbnail generation for the given file\n * @param {string} id The identifier of the file which should be newly created or updated with a new revision.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesIdThumbnailPost(id, version, options) {\n return localVarFp.vversionFilesIdThumbnailPost(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the support MIME types. A list of valid MIME types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesMIMEtypesGet(version, options) {\n return localVarFp.vversionFilesMIMEtypesGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n * This endpoint can only create files. It is not possible to edit a file. In this case please delete and reupload the file.\n * @summary Uploads the given file and creates a db entry.\n * @param {string} version The requested API version\n * @param {number} typeId The type of the image. Valid types and there corresponding name can be accessed with the EP /Images/types\n * @param {boolean} [ensureUniqueness] If set to true it will compare the filename and the file type and create a revision if such a db entry already exists\n * @param {string} [configurationId] Identifier of the configuration to which this image belongs as Guid (UUID).\n * @param {string} [name] Human readable display name of the image.\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesPost(version, typeId, ensureUniqueness, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options) {\n return localVarFp.vversionFilesPost(version, typeId, ensureUniqueness, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the supported file types. A list of valid file types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionFilesTypesGet(version, options) {\n return localVarFp.vversionFilesTypesGet(version, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * FilesApi - object-oriented interface\n * @export\n * @class FilesApi\n * @extends {BaseAPI}\n */\nexport class FilesApi extends BaseAPI {\n /**\n *\n * @summary Get the specified file entry. This entry holds the url to the file and additional metadata.\n * @param {string} id Identifier of the requested file as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FilesApi\n */\n fileLink(id, version, options) {\n return FilesApiFp(this.configuration).fileLink(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort data types: Int32, String, Guid, DateTime. The default value is the createdAt value in ascending order (name). Valid filter data types: Int32, String, Guid, DateTime.\n * @summary Get a page with files of the specified configuration.\n * @param {string} configurationId Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {boolean} [skipDownloadUrls] Skip generating download urls\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FilesApi\n */\n vversionConfigurationsConfigurationIdFilesGet(configurationId, version, currentPage, pageSize, sort, filters, skipDownloadUrls, options) {\n return FilesApiFp(this.configuration).vversionConfigurationsConfigurationIdFilesGet(configurationId, version, currentPage, pageSize, sort, filters, skipDownloadUrls, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * This endpoint can only create a new file or add a revision of an existing file. It is not possible to change any other property. In this case please delete and reupload the file.\n * @summary Uploads the given file base64 encoded and creates a db entry.\n * @param {string} id The identifier of the file which should be newly created or updated with a new revision.\n * @param {string} version The requested API version\n * @param {ImageBase64BindingModel} body File entry that holds the metadata of the file and the base64 encoded buffer.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FilesApi\n */\n vversionFilesBase64IdPut(id, version, body, options) {\n return FilesApiFp(this.configuration).vversionFilesBase64IdPut(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * This endpoint can only create files. It is not possible to edit a file. In this case please delete and reupload the file.\n * @summary Uploads the given file base64 encoded and creates a db entry.\n * @param {string} version The requested API version\n * @param {ImageBase64BindingModel} body The file entry that holds the metadata of the file and the base64 encoded buffer.\n * @param {boolean} [ensureUniqueness] If set to true it will compare the filename and the file type and create a revision if such a db entry already exists\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FilesApi\n */\n vversionFilesBase64Post(version, body, ensureUniqueness, options) {\n return FilesApiFp(this.configuration).vversionFilesBase64Post(version, body, ensureUniqueness, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified file.\n * @param {string} id File identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FilesApi\n */\n vversionFilesIdDelete(id, version, options) {\n return FilesApiFp(this.configuration).vversionFilesIdDelete(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * This endpoint can only create a new file or add a revision of an existing file. It is not possible to change any other property. In this case please delete and reupload the file.\n * @summary Uploads the given file and creates a db entry.\n * @param {string} id The identifier of the file which should be newly created or updated with a new revision.\n * @param {string} version The requested API version\n * @param {number} typeId The type of the image. Valid types and there corresponding name can be accessed with the EP /Images/types\n * @param {string} [configurationId] Identifier of the configuration to which this image belongs as Guid (UUID).\n * @param {string} [name] Human readable display name of the image.\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FilesApi\n */\n vversionFilesIdPut(id, version, typeId, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options) {\n return FilesApiFp(this.configuration).vversionFilesIdPut(id, version, typeId, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all revisions of the specified file.\n * @param {string} id Identifier of the requested file as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FilesApi\n */\n vversionFilesIdRevisionsGet(id, version, options) {\n return FilesApiFp(this.configuration).vversionFilesIdRevisionsGet(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Set the storageId of a file. e.g. set it to archive.\n * @param {string} id The identifier of the image where the storageId should be changed\n * @param {string} version The requested API version\n * @param {string} storageId The new storageId of the image\n * @param {number} [revision]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FilesApi\n */\n vversionFilesIdStorageIdPut(id, version, storageId, revision, options) {\n return FilesApiFp(this.configuration).vversionFilesIdStorageIdPut(id, version, storageId, revision, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * This endpoint triggers a thumbnail generation for the given file.\n * @summary Triggers a thumbnail generation for the given file\n * @param {string} id The identifier of the file which should be newly created or updated with a new revision.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FilesApi\n */\n vversionFilesIdThumbnailPost(id, version, options) {\n return FilesApiFp(this.configuration).vversionFilesIdThumbnailPost(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the support MIME types. A list of valid MIME types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FilesApi\n */\n vversionFilesMIMEtypesGet(version, options) {\n return FilesApiFp(this.configuration).vversionFilesMIMEtypesGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * This endpoint can only create files. It is not possible to edit a file. In this case please delete and reupload the file.\n * @summary Uploads the given file and creates a db entry.\n * @param {string} version The requested API version\n * @param {number} typeId The type of the image. Valid types and there corresponding name can be accessed with the EP /Images/types\n * @param {boolean} [ensureUniqueness] If set to true it will compare the filename and the file type and create a revision if such a db entry already exists\n * @param {string} [configurationId] Identifier of the configuration to which this image belongs as Guid (UUID).\n * @param {string} [name] Human readable display name of the image.\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FilesApi\n */\n vversionFilesPost(version, typeId, ensureUniqueness, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options) {\n return FilesApiFp(this.configuration).vversionFilesPost(version, typeId, ensureUniqueness, configurationId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the supported file types. A list of valid file types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FilesApi\n */\n vversionFilesTypesGet(version, options) {\n return FilesApiFp(this.configuration).vversionFilesTypesGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * ManualActivityApi - axios parameter creator\n * @export\n */\nexport const ManualActivityApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Cancels a Manual Activity by id\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityIdCancelPost: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionManualactivityIdCancelPost', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionManualactivityIdCancelPost', 'version', version);\n const localVarPath = `/v{version}/manualactivity/{id}/cancel`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Gets a Manual Activity by id\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityIdGet: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionManualactivityIdGet', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionManualactivityIdGet', 'version', version);\n const localVarPath = `/v{version}/manualactivity/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Gets a Manual Activity history\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityIdHistoryGet: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionManualactivityIdHistoryGet', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionManualactivityIdHistoryGet', 'version', version);\n const localVarPath = `/v{version}/manualactivity/{id}/history`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Patches a Manual Activity by id\n * @param {string} id\n * @param {string} version The requested API version\n * @param {ManualActivityPatchDTO} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityIdPatch: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionManualactivityIdPatch', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionManualactivityIdPatch', 'version', version);\n // verify required parameter 'body' is not null or undefined\n assertParamExists('vversionManualactivityIdPatch', 'body', body);\n const localVarPath = `/v{version}/manualactivity/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PATCH' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Creates a new Manual Activity\n * @param {string} version The requested API version\n * @param {ManualActivityCreationDTO} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityPost: (version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionManualactivityPost', 'version', version);\n // verify required parameter 'body' is not null or undefined\n assertParamExists('vversionManualactivityPost', 'body', body);\n const localVarPath = `/v{version}/manualactivity`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * ManualActivityApi - functional programming interface\n * @export\n */\nexport const ManualActivityApiFp = function (configuration) {\n const localVarAxiosParamCreator = ManualActivityApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Cancels a Manual Activity by id\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityIdCancelPost(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionManualactivityIdCancelPost(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Gets a Manual Activity by id\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityIdGet(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionManualactivityIdGet(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Gets a Manual Activity history\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityIdHistoryGet(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionManualactivityIdHistoryGet(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Patches a Manual Activity by id\n * @param {string} id\n * @param {string} version The requested API version\n * @param {ManualActivityPatchDTO} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityIdPatch(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionManualactivityIdPatch(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Creates a new Manual Activity\n * @param {string} version The requested API version\n * @param {ManualActivityCreationDTO} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityPost(version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionManualactivityPost(version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * ManualActivityApi - factory interface\n * @export\n */\nexport const ManualActivityApiFactory = function (configuration, basePath, axios) {\n const localVarFp = ManualActivityApiFp(configuration);\n return {\n /**\n *\n * @summary Cancels a Manual Activity by id\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityIdCancelPost(id, version, options) {\n return localVarFp.vversionManualactivityIdCancelPost(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Gets a Manual Activity by id\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityIdGet(id, version, options) {\n return localVarFp.vversionManualactivityIdGet(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Gets a Manual Activity history\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityIdHistoryGet(id, version, options) {\n return localVarFp.vversionManualactivityIdHistoryGet(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Patches a Manual Activity by id\n * @param {string} id\n * @param {string} version The requested API version\n * @param {ManualActivityPatchDTO} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityIdPatch(id, version, body, options) {\n return localVarFp.vversionManualactivityIdPatch(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Creates a new Manual Activity\n * @param {string} version The requested API version\n * @param {ManualActivityCreationDTO} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionManualactivityPost(version, body, options) {\n return localVarFp.vversionManualactivityPost(version, body, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * ManualActivityApi - object-oriented interface\n * @export\n * @class ManualActivityApi\n * @extends {BaseAPI}\n */\nexport class ManualActivityApi extends BaseAPI {\n /**\n *\n * @summary Cancels a Manual Activity by id\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ManualActivityApi\n */\n vversionManualactivityIdCancelPost(id, version, options) {\n return ManualActivityApiFp(this.configuration).vversionManualactivityIdCancelPost(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Gets a Manual Activity by id\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ManualActivityApi\n */\n vversionManualactivityIdGet(id, version, options) {\n return ManualActivityApiFp(this.configuration).vversionManualactivityIdGet(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Gets a Manual Activity history\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ManualActivityApi\n */\n vversionManualactivityIdHistoryGet(id, version, options) {\n return ManualActivityApiFp(this.configuration).vversionManualactivityIdHistoryGet(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Patches a Manual Activity by id\n * @param {string} id\n * @param {string} version The requested API version\n * @param {ManualActivityPatchDTO} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ManualActivityApi\n */\n vversionManualactivityIdPatch(id, version, body, options) {\n return ManualActivityApiFp(this.configuration).vversionManualactivityIdPatch(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Creates a new Manual Activity\n * @param {string} version The requested API version\n * @param {ManualActivityCreationDTO} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ManualActivityApi\n */\n vversionManualactivityPost(version, body, options) {\n return ManualActivityApiFp(this.configuration).vversionManualactivityPost(version, body, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * ProcessApi - axios parameter creator\n * @export\n */\nexport const ProcessApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Approve the transformation result. This triggers a completion notification.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessApproveConfigurationIdPost: (configurationId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionProcessApproveConfigurationIdPost', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessApproveConfigurationIdPost', 'version', version);\n const localVarPath = `/v{version}/process/approve/{configurationId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Reject the specified configuration and give feedback.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessFeedbackConfigurationIdPost: (configurationId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionProcessFeedbackConfigurationIdPost', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessFeedbackConfigurationIdPost', 'version', version);\n const localVarPath = `/v{version}/process/feedback/{configurationId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Fetch a specified configuration.\n * @param {string} configurationId Identifier of the configuration that should be fetched.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessFetchConfigurationIdPost: (configurationId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionProcessFetchConfigurationIdPost', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessFetchConfigurationIdPost', 'version', version);\n const localVarPath = `/v{version}/process/fetch/{configurationId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Fetch an arbitrary configuration for processing.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. Currently this endpoint supports only filtering on customerId and typeId. The typeId is the typeId for products. The typeId can be a single integer or an integer array. You can order the typeIds in the array. They will be handled first in first out. #### Query example: ``` fetch?filters={\\"customerId\\":\\"D21CE0D3-7494-4DD7-9F49-C89F883AAEB2\\"} // Returns only configurations from this customer fetch?filters={\\"typeId\\":[7,1]} // Returns a Avatar_Head configuration. If no Avater_Head configuration is available it will try to fetch a Garment configuration. ``` </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessFetchPost: (version, filters, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessFetchPost', 'version', version);\n const localVarPath = `/v{version}/process/fetch`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Set to processed.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessProcessedConfigurationIdPost: (configurationId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionProcessProcessedConfigurationIdPost', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessProcessedConfigurationIdPost', 'version', version);\n const localVarPath = `/v{version}/process/processed/{configurationId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessReadableRandomValueGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessReadableRandomValueGet', 'version', version);\n const localVarPath = `/v{version}/process/readableRandomValue`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Reject the specified configuration. This triggers a rejection notification.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessRejectConfigurationIdPost: (configurationId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionProcessRejectConfigurationIdPost', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessRejectConfigurationIdPost', 'version', version);\n const localVarPath = `/v{version}/process/reject/{configurationId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Report the specified configuration.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessReportConfigurationIdPost: (configurationId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionProcessReportConfigurationIdPost', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessReportConfigurationIdPost', 'version', version);\n const localVarPath = `/v{version}/process/report/{configurationId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Reset the specified configuration to the last state.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessResetConfigurationIdPost: (configurationId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionProcessResetConfigurationIdPost', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessResetConfigurationIdPost', 'version', version);\n const localVarPath = `/v{version}/process/reset/{configurationId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Reset items that are stuck in state fetched or fetched for review.\n * @param {string} version The requested API version\n * @param {ResetConfigurationBindingModel} [body] The model with the necessary parametersresult.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessResetFetchedPost: (version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessResetFetchedPost', 'version', version);\n const localVarPath = `/v{version}/process/reset/fetched`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Create a new configuration result or update an existing one.\n * @param {string} id The identifier of the configuration result which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ConfigurationResultBindingModel} body The configuration result which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessResultIdPut: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionProcessResultIdPut', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessResultIdPut', 'version', version);\n // verify required parameter 'body' is not null or undefined\n assertParamExists('vversionProcessResultIdPut', 'body', body);\n const localVarPath = `/v{version}/process/result/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Fetch the specified configuration for review\n * @param {string} configurationId Identifier of the configuration that should be fetched.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessReviewConfigurationIdPost: (configurationId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionProcessReviewConfigurationIdPost', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessReviewConfigurationIdPost', 'version', version);\n const localVarPath = `/v{version}/process/review/{configurationId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Fetch an arbitrary configuration for review.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. Currently this endpoint supports only filtering on customerId. #### Query example: ``` review?filters={\\"customerId\\":\\"D21CE0D3-7494-4DD7-9F49-C89F883AAEB2\\"} // Returns only configurations from this customer ``` </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessReviewPost: (version, filters, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessReviewPost', 'version', version);\n const localVarPath = `/v{version}/process/review`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Schedule the specified configuration for processing.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessScheduleConfigurationIdPost: (configurationId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionProcessScheduleConfigurationIdPost', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessScheduleConfigurationIdPost', 'version', version);\n const localVarPath = `/v{version}/process/schedule/{configurationId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the service rejection reasons for a specific product type. A list of valid reasons that should be used if a configuration with the specified productType gets rejected by the service.\n * @param {number} productTypeId Product type identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessServicerejectionreasonsProductTypeIdGet: (productTypeId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'productTypeId' is not null or undefined\n assertParamExists('vversionProcessServicerejectionreasonsProductTypeIdGet', 'productTypeId', productTypeId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessServicerejectionreasonsProductTypeIdGet', 'version', version);\n const localVarPath = `/v{version}/process/servicerejectionreasons/{productTypeId}`\n .replace(`{${\"productTypeId\"}}`, encodeURIComponent(String(productTypeId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * Uploads a file that belongs to the processed configuration result.\n * @summary Uploads the given file and adds it to a configuration result.\n * @param {string} version The requested API version\n * @param {string} [configurationResultId]\n * @param {string} [name]\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessUploadPost: (version, configurationResultId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProcessUploadPost', 'version', version);\n const localVarPath = `/v{version}/process/upload`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (configurationResultId !== undefined) {\n localVarFormParams.append('configurationResultId', configurationResultId);\n }\n if (name !== undefined) {\n localVarFormParams.append('name', name);\n }\n if (ContentType !== undefined) {\n localVarFormParams.append('ContentType', ContentType);\n }\n if (ContentDisposition !== undefined) {\n localVarFormParams.append('ContentDisposition', ContentDisposition);\n }\n if (Headers !== undefined) {\n localVarFormParams.append('Headers', Headers);\n }\n if (Length !== undefined) {\n localVarFormParams.append('Length', Length);\n }\n if (Name !== undefined) {\n localVarFormParams.append('Name', Name);\n }\n if (FileName !== undefined) {\n localVarFormParams.append('FileName', FileName);\n }\n localVarHeaderParameter['Content-Type'] = 'multipart/form-data';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = localVarFormParams;\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * ProcessApi - functional programming interface\n * @export\n */\nexport const ProcessApiFp = function (configuration) {\n const localVarAxiosParamCreator = ProcessApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Approve the transformation result. This triggers a completion notification.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessApproveConfigurationIdPost(configurationId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessApproveConfigurationIdPost(configurationId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Reject the specified configuration and give feedback.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessFeedbackConfigurationIdPost(configurationId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessFeedbackConfigurationIdPost(configurationId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Fetch a specified configuration.\n * @param {string} configurationId Identifier of the configuration that should be fetched.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessFetchConfigurationIdPost(configurationId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessFetchConfigurationIdPost(configurationId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Fetch an arbitrary configuration for processing.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. Currently this endpoint supports only filtering on customerId and typeId. The typeId is the typeId for products. The typeId can be a single integer or an integer array. You can order the typeIds in the array. They will be handled first in first out. #### Query example: ``` fetch?filters={\\"customerId\\":\\"D21CE0D3-7494-4DD7-9F49-C89F883AAEB2\\"} // Returns only configurations from this customer fetch?filters={\\"typeId\\":[7,1]} // Returns a Avatar_Head configuration. If no Avater_Head configuration is available it will try to fetch a Garment configuration. ``` </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessFetchPost(version, filters, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessFetchPost(version, filters, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Set to processed.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessProcessedConfigurationIdPost(configurationId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessProcessedConfigurationIdPost(configurationId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessReadableRandomValueGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessReadableRandomValueGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Reject the specified configuration. This triggers a rejection notification.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessRejectConfigurationIdPost(configurationId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessRejectConfigurationIdPost(configurationId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Report the specified configuration.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessReportConfigurationIdPost(configurationId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessReportConfigurationIdPost(configurationId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Reset the specified configuration to the last state.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessResetConfigurationIdPost(configurationId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessResetConfigurationIdPost(configurationId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Reset items that are stuck in state fetched or fetched for review.\n * @param {string} version The requested API version\n * @param {ResetConfigurationBindingModel} [body] The model with the necessary parametersresult.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessResetFetchedPost(version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessResetFetchedPost(version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Create a new configuration result or update an existing one.\n * @param {string} id The identifier of the configuration result which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ConfigurationResultBindingModel} body The configuration result which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessResultIdPut(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessResultIdPut(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Fetch the specified configuration for review\n * @param {string} configurationId Identifier of the configuration that should be fetched.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessReviewConfigurationIdPost(configurationId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessReviewConfigurationIdPost(configurationId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Fetch an arbitrary configuration for review.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. Currently this endpoint supports only filtering on customerId. #### Query example: ``` review?filters={\\"customerId\\":\\"D21CE0D3-7494-4DD7-9F49-C89F883AAEB2\\"} // Returns only configurations from this customer ``` </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessReviewPost(version, filters, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessReviewPost(version, filters, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Schedule the specified configuration for processing.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessScheduleConfigurationIdPost(configurationId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessScheduleConfigurationIdPost(configurationId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the service rejection reasons for a specific product type. A list of valid reasons that should be used if a configuration with the specified productType gets rejected by the service.\n * @param {number} productTypeId Product type identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessServicerejectionreasonsProductTypeIdGet(productTypeId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessServicerejectionreasonsProductTypeIdGet(productTypeId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * Uploads a file that belongs to the processed configuration result.\n * @summary Uploads the given file and adds it to a configuration result.\n * @param {string} version The requested API version\n * @param {string} [configurationResultId]\n * @param {string} [name]\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessUploadPost(version, configurationResultId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProcessUploadPost(version, configurationResultId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * ProcessApi - factory interface\n * @export\n */\nexport const ProcessApiFactory = function (configuration, basePath, axios) {\n const localVarFp = ProcessApiFp(configuration);\n return {\n /**\n *\n * @summary Approve the transformation result. This triggers a completion notification.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessApproveConfigurationIdPost(configurationId, version, body, options) {\n return localVarFp.vversionProcessApproveConfigurationIdPost(configurationId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Reject the specified configuration and give feedback.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessFeedbackConfigurationIdPost(configurationId, version, body, options) {\n return localVarFp.vversionProcessFeedbackConfigurationIdPost(configurationId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Fetch a specified configuration.\n * @param {string} configurationId Identifier of the configuration that should be fetched.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessFetchConfigurationIdPost(configurationId, version, options) {\n return localVarFp.vversionProcessFetchConfigurationIdPost(configurationId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Fetch an arbitrary configuration for processing.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. Currently this endpoint supports only filtering on customerId and typeId. The typeId is the typeId for products. The typeId can be a single integer or an integer array. You can order the typeIds in the array. They will be handled first in first out. #### Query example: ``` fetch?filters={\\"customerId\\":\\"D21CE0D3-7494-4DD7-9F49-C89F883AAEB2\\"} // Returns only configurations from this customer fetch?filters={\\"typeId\\":[7,1]} // Returns a Avatar_Head configuration. If no Avater_Head configuration is available it will try to fetch a Garment configuration. ``` </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessFetchPost(version, filters, options) {\n return localVarFp.vversionProcessFetchPost(version, filters, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Set to processed.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessProcessedConfigurationIdPost(configurationId, version, body, options) {\n return localVarFp.vversionProcessProcessedConfigurationIdPost(configurationId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessReadableRandomValueGet(version, options) {\n return localVarFp.vversionProcessReadableRandomValueGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Reject the specified configuration. This triggers a rejection notification.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessRejectConfigurationIdPost(configurationId, version, body, options) {\n return localVarFp.vversionProcessRejectConfigurationIdPost(configurationId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Report the specified configuration.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessReportConfigurationIdPost(configurationId, version, body, options) {\n return localVarFp.vversionProcessReportConfigurationIdPost(configurationId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Reset the specified configuration to the last state.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessResetConfigurationIdPost(configurationId, version, options) {\n return localVarFp.vversionProcessResetConfigurationIdPost(configurationId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Reset items that are stuck in state fetched or fetched for review.\n * @param {string} version The requested API version\n * @param {ResetConfigurationBindingModel} [body] The model with the necessary parametersresult.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessResetFetchedPost(version, body, options) {\n return localVarFp.vversionProcessResetFetchedPost(version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Create a new configuration result or update an existing one.\n * @param {string} id The identifier of the configuration result which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ConfigurationResultBindingModel} body The configuration result which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessResultIdPut(id, version, body, options) {\n return localVarFp.vversionProcessResultIdPut(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Fetch the specified configuration for review\n * @param {string} configurationId Identifier of the configuration that should be fetched.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessReviewConfigurationIdPost(configurationId, version, options) {\n return localVarFp.vversionProcessReviewConfigurationIdPost(configurationId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Fetch an arbitrary configuration for review.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. Currently this endpoint supports only filtering on customerId. #### Query example: ``` review?filters={\\"customerId\\":\\"D21CE0D3-7494-4DD7-9F49-C89F883AAEB2\\"} // Returns only configurations from this customer ``` </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessReviewPost(version, filters, options) {\n return localVarFp.vversionProcessReviewPost(version, filters, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Schedule the specified configuration for processing.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessScheduleConfigurationIdPost(configurationId, version, body, options) {\n return localVarFp.vversionProcessScheduleConfigurationIdPost(configurationId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the service rejection reasons for a specific product type. A list of valid reasons that should be used if a configuration with the specified productType gets rejected by the service.\n * @param {number} productTypeId Product type identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessServicerejectionreasonsProductTypeIdGet(productTypeId, version, options) {\n return localVarFp.vversionProcessServicerejectionreasonsProductTypeIdGet(productTypeId, version, options).then((request) => request(axios, basePath));\n },\n /**\n * Uploads a file that belongs to the processed configuration result.\n * @summary Uploads the given file and adds it to a configuration result.\n * @param {string} version The requested API version\n * @param {string} [configurationResultId]\n * @param {string} [name]\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProcessUploadPost(version, configurationResultId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options) {\n return localVarFp.vversionProcessUploadPost(version, configurationResultId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * ProcessApi - object-oriented interface\n * @export\n * @class ProcessApi\n * @extends {BaseAPI}\n */\nexport class ProcessApi extends BaseAPI {\n /**\n *\n * @summary Approve the transformation result. This triggers a completion notification.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessApproveConfigurationIdPost(configurationId, version, body, options) {\n return ProcessApiFp(this.configuration).vversionProcessApproveConfigurationIdPost(configurationId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Reject the specified configuration and give feedback.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessFeedbackConfigurationIdPost(configurationId, version, body, options) {\n return ProcessApiFp(this.configuration).vversionProcessFeedbackConfigurationIdPost(configurationId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Fetch a specified configuration.\n * @param {string} configurationId Identifier of the configuration that should be fetched.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessFetchConfigurationIdPost(configurationId, version, options) {\n return ProcessApiFp(this.configuration).vversionProcessFetchConfigurationIdPost(configurationId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Fetch an arbitrary configuration for processing.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. Currently this endpoint supports only filtering on customerId and typeId. The typeId is the typeId for products. The typeId can be a single integer or an integer array. You can order the typeIds in the array. They will be handled first in first out. #### Query example: ``` fetch?filters={\\"customerId\\":\\"D21CE0D3-7494-4DD7-9F49-C89F883AAEB2\\"} // Returns only configurations from this customer fetch?filters={\\"typeId\\":[7,1]} // Returns a Avatar_Head configuration. If no Avater_Head configuration is available it will try to fetch a Garment configuration. ``` </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessFetchPost(version, filters, options) {\n return ProcessApiFp(this.configuration).vversionProcessFetchPost(version, filters, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Set to processed.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessProcessedConfigurationIdPost(configurationId, version, body, options) {\n return ProcessApiFp(this.configuration).vversionProcessProcessedConfigurationIdPost(configurationId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessReadableRandomValueGet(version, options) {\n return ProcessApiFp(this.configuration).vversionProcessReadableRandomValueGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Reject the specified configuration. This triggers a rejection notification.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessRejectConfigurationIdPost(configurationId, version, body, options) {\n return ProcessApiFp(this.configuration).vversionProcessRejectConfigurationIdPost(configurationId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Report the specified configuration.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessReportConfigurationIdPost(configurationId, version, body, options) {\n return ProcessApiFp(this.configuration).vversionProcessReportConfigurationIdPost(configurationId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Reset the specified configuration to the last state.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessResetConfigurationIdPost(configurationId, version, options) {\n return ProcessApiFp(this.configuration).vversionProcessResetConfigurationIdPost(configurationId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Reset items that are stuck in state fetched or fetched for review.\n * @param {string} version The requested API version\n * @param {ResetConfigurationBindingModel} [body] The model with the necessary parametersresult.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessResetFetchedPost(version, body, options) {\n return ProcessApiFp(this.configuration).vversionProcessResetFetchedPost(version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Create a new configuration result or update an existing one.\n * @param {string} id The identifier of the configuration result which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ConfigurationResultBindingModel} body The configuration result which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessResultIdPut(id, version, body, options) {\n return ProcessApiFp(this.configuration).vversionProcessResultIdPut(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Fetch the specified configuration for review\n * @param {string} configurationId Identifier of the configuration that should be fetched.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessReviewConfigurationIdPost(configurationId, version, options) {\n return ProcessApiFp(this.configuration).vversionProcessReviewConfigurationIdPost(configurationId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Fetch an arbitrary configuration for review.\n * @param {string} version The requested API version\n * @param {string} [filters] <summary> This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. Currently this endpoint supports only filtering on customerId. #### Query example: ``` review?filters={\\"customerId\\":\\"D21CE0D3-7494-4DD7-9F49-C89F883AAEB2\\"} // Returns only configurations from this customer ``` </summary>\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessReviewPost(version, filters, options) {\n return ProcessApiFp(this.configuration).vversionProcessReviewPost(version, filters, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Schedule the specified configuration for processing.\n * @param {string} configurationId Configuration identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Additional information as json.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessScheduleConfigurationIdPost(configurationId, version, body, options) {\n return ProcessApiFp(this.configuration).vversionProcessScheduleConfigurationIdPost(configurationId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the service rejection reasons for a specific product type. A list of valid reasons that should be used if a configuration with the specified productType gets rejected by the service.\n * @param {number} productTypeId Product type identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessServicerejectionreasonsProductTypeIdGet(productTypeId, version, options) {\n return ProcessApiFp(this.configuration).vversionProcessServicerejectionreasonsProductTypeIdGet(productTypeId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * Uploads a file that belongs to the processed configuration result.\n * @summary Uploads the given file and adds it to a configuration result.\n * @param {string} version The requested API version\n * @param {string} [configurationResultId]\n * @param {string} [name]\n * @param {string} [ContentType]\n * @param {string} [ContentDisposition]\n * @param {string} [Headers]\n * @param {number} [Length]\n * @param {string} [Name]\n * @param {string} [FileName]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProcessApi\n */\n vversionProcessUploadPost(version, configurationResultId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options) {\n return ProcessApiFp(this.configuration).vversionProcessUploadPost(version, configurationResultId, name, ContentType, ContentDisposition, Headers, Length, Name, FileName, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * ProductsApi - axios parameter creator\n * @export\n */\nexport const ProductsApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Get the specified product.\n * @param {string} id Identifier that specifies the requested product.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n productLink: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('productLink', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('productLink', 'version', version);\n const localVarPath = `/v{version}/Products/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, sku, typeId, stateId, createdAt, modifiedAt, dueAt. The default value is the created at timestamp in descending order (createdAt_desc). Valid filter fields: name (string), sku (string), typeId(int), stateId(int), customerId(UUID)\n * @summary Get a page with products.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsGet: (version, currentPage, pageSize, sort, filters, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProductsGet', 'version', version);\n const localVarPath = `/v{version}/Products`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (currentPage !== undefined) {\n localVarQueryParameter['currentPage'] = currentPage;\n }\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n if (sort !== undefined) {\n localVarQueryParameter['sort'] = sort;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @param {string} id Identifier.\n * @param {string} customerId Customer identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsIdCopyCustomerCustomerIdPost: (id, customerId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionProductsIdCopyCustomerCustomerIdPost', 'id', id);\n // verify required parameter 'customerId' is not null or undefined\n assertParamExists('vversionProductsIdCopyCustomerCustomerIdPost', 'customerId', customerId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProductsIdCopyCustomerCustomerIdPost', 'version', version);\n const localVarPath = `/v{version}/Products/{id}/copy/customer/{customerId}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"customerId\"}}`, encodeURIComponent(String(customerId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified product.\n * @param {string} id Product identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsIdDelete: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionProductsIdDelete', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProductsIdDelete', 'version', version);\n const localVarPath = `/v{version}/Products/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Create a new product or update an existing one.\n * @param {string} id The identifier of the product which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ProductBindingModel} body The product which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsIdPut: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionProductsIdPut', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProductsIdPut', 'version', version);\n // verify required parameter 'body' is not null or undefined\n assertParamExists('vversionProductsIdPut', 'body', body);\n const localVarPath = `/v{version}/Products/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the product states. A list of valid product states.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsStatesGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProductsStatesGet', 'version', version);\n const localVarPath = `/v{version}/Products/states`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * The product type specifies the kind of product. For example garments and furniture are two different product types.\n * @summary Get the product types. A list of valid product types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsTypesGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionProductsTypesGet', 'version', version);\n const localVarPath = `/v{version}/Products/types`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * ProductsApi - functional programming interface\n * @export\n */\nexport const ProductsApiFp = function (configuration) {\n const localVarAxiosParamCreator = ProductsApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Get the specified product.\n * @param {string} id Identifier that specifies the requested product.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n productLink(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.productLink(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, sku, typeId, stateId, createdAt, modifiedAt, dueAt. The default value is the created at timestamp in descending order (createdAt_desc). Valid filter fields: name (string), sku (string), typeId(int), stateId(int), customerId(UUID)\n * @summary Get a page with products.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsGet(version, currentPage, pageSize, sort, filters, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProductsGet(version, currentPage, pageSize, sort, filters, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @param {string} id Identifier.\n * @param {string} customerId Customer identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsIdCopyCustomerCustomerIdPost(id, customerId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProductsIdCopyCustomerCustomerIdPost(id, customerId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified product.\n * @param {string} id Product identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsIdDelete(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProductsIdDelete(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Create a new product or update an existing one.\n * @param {string} id The identifier of the product which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ProductBindingModel} body The product which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsIdPut(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProductsIdPut(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the product states. A list of valid product states.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsStatesGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProductsStatesGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * The product type specifies the kind of product. For example garments and furniture are two different product types.\n * @summary Get the product types. A list of valid product types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsTypesGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionProductsTypesGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * ProductsApi - factory interface\n * @export\n */\nexport const ProductsApiFactory = function (configuration, basePath, axios) {\n const localVarFp = ProductsApiFp(configuration);\n return {\n /**\n *\n * @summary Get the specified product.\n * @param {string} id Identifier that specifies the requested product.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n productLink(id, version, options) {\n return localVarFp.productLink(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, sku, typeId, stateId, createdAt, modifiedAt, dueAt. The default value is the created at timestamp in descending order (createdAt_desc). Valid filter fields: name (string), sku (string), typeId(int), stateId(int), customerId(UUID)\n * @summary Get a page with products.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsGet(version, currentPage, pageSize, sort, filters, options) {\n return localVarFp.vversionProductsGet(version, currentPage, pageSize, sort, filters, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @param {string} id Identifier.\n * @param {string} customerId Customer identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsIdCopyCustomerCustomerIdPost(id, customerId, version, options) {\n return localVarFp.vversionProductsIdCopyCustomerCustomerIdPost(id, customerId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified product.\n * @param {string} id Product identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsIdDelete(id, version, options) {\n return localVarFp.vversionProductsIdDelete(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Create a new product or update an existing one.\n * @param {string} id The identifier of the product which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ProductBindingModel} body The product which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsIdPut(id, version, body, options) {\n return localVarFp.vversionProductsIdPut(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the product states. A list of valid product states.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsStatesGet(version, options) {\n return localVarFp.vversionProductsStatesGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n * The product type specifies the kind of product. For example garments and furniture are two different product types.\n * @summary Get the product types. A list of valid product types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionProductsTypesGet(version, options) {\n return localVarFp.vversionProductsTypesGet(version, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * ProductsApi - object-oriented interface\n * @export\n * @class ProductsApi\n * @extends {BaseAPI}\n */\nexport class ProductsApi extends BaseAPI {\n /**\n *\n * @summary Get the specified product.\n * @param {string} id Identifier that specifies the requested product.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProductsApi\n */\n productLink(id, version, options) {\n return ProductsApiFp(this.configuration).productLink(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, sku, typeId, stateId, createdAt, modifiedAt, dueAt. The default value is the created at timestamp in descending order (createdAt_desc). Valid filter fields: name (string), sku (string), typeId(int), stateId(int), customerId(UUID)\n * @summary Get a page with products.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProductsApi\n */\n vversionProductsGet(version, currentPage, pageSize, sort, filters, options) {\n return ProductsApiFp(this.configuration).vversionProductsGet(version, currentPage, pageSize, sort, filters, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @param {string} id Identifier.\n * @param {string} customerId Customer identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProductsApi\n */\n vversionProductsIdCopyCustomerCustomerIdPost(id, customerId, version, options) {\n return ProductsApiFp(this.configuration).vversionProductsIdCopyCustomerCustomerIdPost(id, customerId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified product.\n * @param {string} id Product identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProductsApi\n */\n vversionProductsIdDelete(id, version, options) {\n return ProductsApiFp(this.configuration).vversionProductsIdDelete(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Create a new product or update an existing one.\n * @param {string} id The identifier of the product which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {ProductBindingModel} body The product which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProductsApi\n */\n vversionProductsIdPut(id, version, body, options) {\n return ProductsApiFp(this.configuration).vversionProductsIdPut(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the product states. A list of valid product states.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProductsApi\n */\n vversionProductsStatesGet(version, options) {\n return ProductsApiFp(this.configuration).vversionProductsStatesGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * The product type specifies the kind of product. For example garments and furniture are two different product types.\n * @summary Get the product types. A list of valid product types.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ProductsApi\n */\n vversionProductsTypesGet(version, options) {\n return ProductsApiFp(this.configuration).vversionProductsTypesGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * SuppliersApi - axios parameter creator\n * @export\n */\nexport const SuppliersApiAxiosParamCreator = function (configuration) {\n return {\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name. The default value is the name value in ascending order (name). Valid filter fields: name (string).\n * @summary Get a page with suppliers.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersGet: (version, currentPage, pageSize, sort, filters, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionSuppliersGet', 'version', version);\n const localVarPath = `/v{version}/Suppliers`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (currentPage !== undefined) {\n localVarQueryParameter['currentPage'] = currentPage;\n }\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n if (sort !== undefined) {\n localVarQueryParameter['sort'] = sort;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified supplier. The supplier can only be deleted if there are no products that belong to the specified supplier.\n * @param {string} id Supplier identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersIdDelete: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionSuppliersIdDelete', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionSuppliersIdDelete', 'version', version);\n const localVarPath = `/v{version}/Suppliers/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the data of the specified supplier.\n * @param {string} id The identifier of the supplier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersIdGet: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionSuppliersIdGet', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionSuppliersIdGet', 'version', version);\n const localVarPath = `/v{version}/Suppliers/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Create a new supplier or update an existing one.\n * @param {string} id The identifier of the supplier which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {SupplierBindingModel} [body] The supplier which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersIdPut: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionSuppliersIdPut', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionSuppliersIdPut', 'version', version);\n const localVarPath = `/v{version}/Suppliers/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get a list of suppliers to which the current user has access.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersMyGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionSuppliersMyGet', 'version', version);\n const localVarPath = `/v{version}/Suppliers/my`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Remove a user that should be removed from a supplier.\n * @param {string} supplierId The identifier of the supplier from which the specified user should be removed.\n * @param {string} userId The identifier of the user that should be removed from the specified supplier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersSupplierIdUsersUserIdDelete: (supplierId, userId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'supplierId' is not null or undefined\n assertParamExists('vversionSuppliersSupplierIdUsersUserIdDelete', 'supplierId', supplierId);\n // verify required parameter 'userId' is not null or undefined\n assertParamExists('vversionSuppliersSupplierIdUsersUserIdDelete', 'userId', userId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionSuppliersSupplierIdUsersUserIdDelete', 'version', version);\n const localVarPath = `/v{version}/Suppliers/{supplierId}/users/{userId}`\n .replace(`{${\"supplierId\"}}`, encodeURIComponent(String(supplierId)))\n .replace(`{${\"userId\"}}`, encodeURIComponent(String(userId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Add a user to a supplier.\n * @param {string} supplierId The identifier of the supplier to which the specified user should be added.\n * @param {string} userId The identifier of the user that should be added to the specified supplier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersSupplierIdUsersUserIdPut: (supplierId, userId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'supplierId' is not null or undefined\n assertParamExists('vversionSuppliersSupplierIdUsersUserIdPut', 'supplierId', supplierId);\n // verify required parameter 'userId' is not null or undefined\n assertParamExists('vversionSuppliersSupplierIdUsersUserIdPut', 'userId', userId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionSuppliersSupplierIdUsersUserIdPut', 'version', version);\n const localVarPath = `/v{version}/Suppliers/{supplierId}/users/{userId}`\n .replace(`{${\"supplierId\"}}`, encodeURIComponent(String(supplierId)))\n .replace(`{${\"userId\"}}`, encodeURIComponent(String(userId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get a list of suppliers to which the specified user has access.\n * @param {string} userId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersUserIdSuppliersGet: (userId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'userId' is not null or undefined\n assertParamExists('vversionUsersUserIdSuppliersGet', 'userId', userId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionUsersUserIdSuppliersGet', 'version', version);\n const localVarPath = `/v{version}/Users/{userId}/Suppliers`\n .replace(`{${\"userId\"}}`, encodeURIComponent(String(userId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * SuppliersApi - functional programming interface\n * @export\n */\nexport const SuppliersApiFp = function (configuration) {\n const localVarAxiosParamCreator = SuppliersApiAxiosParamCreator(configuration);\n return {\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name. The default value is the name value in ascending order (name). Valid filter fields: name (string).\n * @summary Get a page with suppliers.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersGet(version, currentPage, pageSize, sort, filters, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionSuppliersGet(version, currentPage, pageSize, sort, filters, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified supplier. The supplier can only be deleted if there are no products that belong to the specified supplier.\n * @param {string} id Supplier identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersIdDelete(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionSuppliersIdDelete(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the data of the specified supplier.\n * @param {string} id The identifier of the supplier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersIdGet(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionSuppliersIdGet(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Create a new supplier or update an existing one.\n * @param {string} id The identifier of the supplier which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {SupplierBindingModel} [body] The supplier which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersIdPut(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionSuppliersIdPut(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get a list of suppliers to which the current user has access.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersMyGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionSuppliersMyGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Remove a user that should be removed from a supplier.\n * @param {string} supplierId The identifier of the supplier from which the specified user should be removed.\n * @param {string} userId The identifier of the user that should be removed from the specified supplier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersSupplierIdUsersUserIdDelete(supplierId, userId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionSuppliersSupplierIdUsersUserIdDelete(supplierId, userId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Add a user to a supplier.\n * @param {string} supplierId The identifier of the supplier to which the specified user should be added.\n * @param {string} userId The identifier of the user that should be added to the specified supplier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersSupplierIdUsersUserIdPut(supplierId, userId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionSuppliersSupplierIdUsersUserIdPut(supplierId, userId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get a list of suppliers to which the specified user has access.\n * @param {string} userId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersUserIdSuppliersGet(userId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionUsersUserIdSuppliersGet(userId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * SuppliersApi - factory interface\n * @export\n */\nexport const SuppliersApiFactory = function (configuration, basePath, axios) {\n const localVarFp = SuppliersApiFp(configuration);\n return {\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name. The default value is the name value in ascending order (name). Valid filter fields: name (string).\n * @summary Get a page with suppliers.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersGet(version, currentPage, pageSize, sort, filters, options) {\n return localVarFp.vversionSuppliersGet(version, currentPage, pageSize, sort, filters, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified supplier. The supplier can only be deleted if there are no products that belong to the specified supplier.\n * @param {string} id Supplier identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersIdDelete(id, version, options) {\n return localVarFp.vversionSuppliersIdDelete(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the data of the specified supplier.\n * @param {string} id The identifier of the supplier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersIdGet(id, version, options) {\n return localVarFp.vversionSuppliersIdGet(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Create a new supplier or update an existing one.\n * @param {string} id The identifier of the supplier which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {SupplierBindingModel} [body] The supplier which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersIdPut(id, version, body, options) {\n return localVarFp.vversionSuppliersIdPut(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get a list of suppliers to which the current user has access.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersMyGet(version, options) {\n return localVarFp.vversionSuppliersMyGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Remove a user that should be removed from a supplier.\n * @param {string} supplierId The identifier of the supplier from which the specified user should be removed.\n * @param {string} userId The identifier of the user that should be removed from the specified supplier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersSupplierIdUsersUserIdDelete(supplierId, userId, version, options) {\n return localVarFp.vversionSuppliersSupplierIdUsersUserIdDelete(supplierId, userId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Add a user to a supplier.\n * @param {string} supplierId The identifier of the supplier to which the specified user should be added.\n * @param {string} userId The identifier of the user that should be added to the specified supplier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersSupplierIdUsersUserIdPut(supplierId, userId, version, options) {\n return localVarFp.vversionSuppliersSupplierIdUsersUserIdPut(supplierId, userId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get a list of suppliers to which the specified user has access.\n * @param {string} userId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersUserIdSuppliersGet(userId, version, options) {\n return localVarFp.vversionUsersUserIdSuppliersGet(userId, version, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * SuppliersApi - object-oriented interface\n * @export\n * @class SuppliersApi\n * @extends {BaseAPI}\n */\nexport class SuppliersApi extends BaseAPI {\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name. The default value is the name value in ascending order (name). Valid filter fields: name (string).\n * @summary Get a page with suppliers.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof SuppliersApi\n */\n vversionSuppliersGet(version, currentPage, pageSize, sort, filters, options) {\n return SuppliersApiFp(this.configuration).vversionSuppliersGet(version, currentPage, pageSize, sort, filters, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified supplier. The supplier can only be deleted if there are no products that belong to the specified supplier.\n * @param {string} id Supplier identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof SuppliersApi\n */\n vversionSuppliersIdDelete(id, version, options) {\n return SuppliersApiFp(this.configuration).vversionSuppliersIdDelete(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the data of the specified supplier.\n * @param {string} id The identifier of the supplier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof SuppliersApi\n */\n vversionSuppliersIdGet(id, version, options) {\n return SuppliersApiFp(this.configuration).vversionSuppliersIdGet(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Create a new supplier or update an existing one.\n * @param {string} id The identifier of the supplier which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {SupplierBindingModel} [body] The supplier which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof SuppliersApi\n */\n vversionSuppliersIdPut(id, version, body, options) {\n return SuppliersApiFp(this.configuration).vversionSuppliersIdPut(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get a list of suppliers to which the current user has access.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof SuppliersApi\n */\n vversionSuppliersMyGet(version, options) {\n return SuppliersApiFp(this.configuration).vversionSuppliersMyGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Remove a user that should be removed from a supplier.\n * @param {string} supplierId The identifier of the supplier from which the specified user should be removed.\n * @param {string} userId The identifier of the user that should be removed from the specified supplier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof SuppliersApi\n */\n vversionSuppliersSupplierIdUsersUserIdDelete(supplierId, userId, version, options) {\n return SuppliersApiFp(this.configuration).vversionSuppliersSupplierIdUsersUserIdDelete(supplierId, userId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Add a user to a supplier.\n * @param {string} supplierId The identifier of the supplier to which the specified user should be added.\n * @param {string} userId The identifier of the user that should be added to the specified supplier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof SuppliersApi\n */\n vversionSuppliersSupplierIdUsersUserIdPut(supplierId, userId, version, options) {\n return SuppliersApiFp(this.configuration).vversionSuppliersSupplierIdUsersUserIdPut(supplierId, userId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get a list of suppliers to which the specified user has access.\n * @param {string} userId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof SuppliersApi\n */\n vversionUsersUserIdSuppliersGet(userId, version, options) {\n return SuppliersApiFp(this.configuration).vversionUsersUserIdSuppliersGet(userId, version, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * TagsApi - axios parameter creator\n * @export\n */\nexport const TagsApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Get the specified tag.\n * @param {string} tagKeyId ID of the requested tag as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n tagLink: (tagKeyId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('tagLink', 'tagKeyId', tagKeyId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('tagLink', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all the possible tags for the specified configuration.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsAvailableConfigurationsConfigurationIdGet: (configurationId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionTagsAvailableConfigurationsConfigurationIdGet', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsAvailableConfigurationsConfigurationIdGet', 'version', version);\n const localVarPath = `/v{version}/Tags/Available/Configurations/{configurationId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all the possible tags for the specified product.\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsAvailableProductsProductIdGet: (productId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'productId' is not null or undefined\n assertParamExists('vversionTagsAvailableProductsProductIdGet', 'productId', productId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsAvailableProductsProductIdGet', 'version', version);\n const localVarPath = `/v{version}/Tags/Available/Products/{productId}`\n .replace(`{${\"productId\"}}`, encodeURIComponent(String(productId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all the tags from the specified configuration.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsConfigurationsConfigurationIdGet: (configurationId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionTagsConfigurationsConfigurationIdGet', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsConfigurationsConfigurationIdGet', 'version', version);\n const localVarPath = `/v{version}/Tags/Configurations/{configurationId}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, color, displayName, description. The default value is the name. Valid filter fields: name (string), color (string), displayName (string), description (string)\n * @summary Get a page with tags.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsGet: (version, currentPage, pageSize, sort, filters, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsGet', 'version', version);\n const localVarPath = `/v{version}/Tags`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (currentPage !== undefined) {\n localVarQueryParameter['currentPage'] = currentPage;\n }\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n if (sort !== undefined) {\n localVarQueryParameter['sort'] = sort;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all the tags from the specified product.\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsProductsProductIdGet: (productId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'productId' is not null or undefined\n assertParamExists('vversionTagsProductsProductIdGet', 'productId', productId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsProductsProductIdGet', 'version', version);\n const localVarPath = `/v{version}/Tags/Products/{productId}`\n .replace(`{${\"productId\"}}`, encodeURIComponent(String(productId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified tag from the specified configuration.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdConfigurationsConfigurationIdDelete: (tagKeyId, configurationId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdConfigurationsConfigurationIdDelete', 'tagKeyId', tagKeyId);\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdConfigurationsConfigurationIdDelete', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdConfigurationsConfigurationIdDelete', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/Configurations/{configurationId}`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the specified tag from the specified configuration.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdConfigurationsConfigurationIdGet: (tagKeyId, configurationId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdConfigurationsConfigurationIdGet', 'tagKeyId', tagKeyId);\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdConfigurationsConfigurationIdGet', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdConfigurationsConfigurationIdGet', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/Configurations/{configurationId}`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Add a new tag or update an existing one for a configuration.\n * @param {string} tagKeyId The id of the tag which should be added or updated to the configuration.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {ConfigurationHasTagKeyBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdConfigurationsConfigurationIdPut: (tagKeyId, configurationId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdConfigurationsConfigurationIdPut', 'tagKeyId', tagKeyId);\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdConfigurationsConfigurationIdPut', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdConfigurationsConfigurationIdPut', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/Configurations/{configurationId}`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified tag.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdDelete: (tagKeyId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdDelete', 'tagKeyId', tagKeyId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdDelete', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified tag from the specified product.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsProductIdDelete: (tagKeyId, productId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsProductIdDelete', 'tagKeyId', tagKeyId);\n // verify required parameter 'productId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsProductIdDelete', 'productId', productId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsProductIdDelete', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/Products/{productId}`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"productId\"}}`, encodeURIComponent(String(productId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the specified tag from the specified product.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} productId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsProductIdGet: (tagKeyId, productId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsProductIdGet', 'tagKeyId', tagKeyId);\n // verify required parameter 'productId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsProductIdGet', 'productId', productId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsProductIdGet', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/Products/{productId}`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"productId\"}}`, encodeURIComponent(String(productId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Add a new tag or update an existing one for a product.\n * @param {string} tagKeyId The id of the tag which should be added or updated to the product.\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {ProductHasTagKeyBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsProductIdPut: (tagKeyId, productId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsProductIdPut', 'tagKeyId', tagKeyId);\n // verify required parameter 'productId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsProductIdPut', 'productId', productId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsProductIdPut', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/Products/{productId}`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"productId\"}}`, encodeURIComponent(String(productId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all the distinct values a tag has been assigned for products.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsValuesGet: (tagKeyId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsValuesGet', 'tagKeyId', tagKeyId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsValuesGet', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/Products/Values`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Update value assigned to products for a specific tag\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {UpdateProductHasTagKeyValueBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsValuesPut: (tagKeyId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsValuesPut', 'tagKeyId', tagKeyId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdProductsValuesPut', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/Products/Values`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Create a new tag or update an existing one.\n * @param {string} tagKeyId The id of the tag which should be newly created or updated as Guid (UUID).\n * @param {string} version The requested API version\n * @param {TagKeyBindingModel} [body] The tag which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdPut: (tagKeyId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdPut', 'tagKeyId', tagKeyId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdPut', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get User Features that a tag requires.\n * @param {string} tagKeyId The id of the tag that you are looking for.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdUserFeaturesGet: (tagKeyId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdUserFeaturesGet', 'tagKeyId', tagKeyId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdUserFeaturesGet', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/UserFeatures`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified tag from the specified userfeature.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} userFeatureName Name of the user feature as string.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdUserFeaturesUserFeatureNameDelete: (tagKeyId, userFeatureName, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdUserFeaturesUserFeatureNameDelete', 'tagKeyId', tagKeyId);\n // verify required parameter 'userFeatureName' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdUserFeaturesUserFeatureNameDelete', 'userFeatureName', userFeatureName);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdUserFeaturesUserFeatureNameDelete', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/UserFeatures/{userFeatureName}`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"userFeatureName\"}}`, encodeURIComponent(String(userFeatureName)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Add a tag to a user feature.\n * @param {string} tagKeyId The id of the tag that should required a user feature.\n * @param {string} userFeatureName The name of the user feature that the tag will required.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdUserFeaturesUserFeatureNamePut: (tagKeyId, userFeatureName, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdUserFeaturesUserFeatureNamePut', 'tagKeyId', tagKeyId);\n // verify required parameter 'userFeatureName' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdUserFeaturesUserFeatureNamePut', 'userFeatureName', userFeatureName);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdUserFeaturesUserFeatureNamePut', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/UserFeatures/{userFeatureName}`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"userFeatureName\"}}`, encodeURIComponent(String(userFeatureName)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all the distinct values a tag has been assigned for configurations.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdValuesGet: (tagKeyId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdValuesGet', 'tagKeyId', tagKeyId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdValuesGet', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/values`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Update value assigned to configurations for a specific tag\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {UpdateConfigurationHasTagKeyValueBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdValuesPut: (tagKeyId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'tagKeyId' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdValuesPut', 'tagKeyId', tagKeyId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTagsTagKeyIdValuesPut', 'version', version);\n const localVarPath = `/v{version}/Tags/{tagKeyId}/values`\n .replace(`{${\"tagKeyId\"}}`, encodeURIComponent(String(tagKeyId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * TagsApi - functional programming interface\n * @export\n */\nexport const TagsApiFp = function (configuration) {\n const localVarAxiosParamCreator = TagsApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Get the specified tag.\n * @param {string} tagKeyId ID of the requested tag as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n tagLink(tagKeyId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.tagLink(tagKeyId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all the possible tags for the specified configuration.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsAvailableConfigurationsConfigurationIdGet(configurationId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsAvailableConfigurationsConfigurationIdGet(configurationId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all the possible tags for the specified product.\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsAvailableProductsProductIdGet(productId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsAvailableProductsProductIdGet(productId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all the tags from the specified configuration.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsConfigurationsConfigurationIdGet(configurationId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsConfigurationsConfigurationIdGet(configurationId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, color, displayName, description. The default value is the name. Valid filter fields: name (string), color (string), displayName (string), description (string)\n * @summary Get a page with tags.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsGet(version, currentPage, pageSize, sort, filters, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsGet(version, currentPage, pageSize, sort, filters, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all the tags from the specified product.\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsProductsProductIdGet(productId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsProductsProductIdGet(productId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified tag from the specified configuration.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdConfigurationsConfigurationIdDelete(tagKeyId, configurationId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdConfigurationsConfigurationIdDelete(tagKeyId, configurationId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the specified tag from the specified configuration.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdConfigurationsConfigurationIdGet(tagKeyId, configurationId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdConfigurationsConfigurationIdGet(tagKeyId, configurationId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Add a new tag or update an existing one for a configuration.\n * @param {string} tagKeyId The id of the tag which should be added or updated to the configuration.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {ConfigurationHasTagKeyBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdConfigurationsConfigurationIdPut(tagKeyId, configurationId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdConfigurationsConfigurationIdPut(tagKeyId, configurationId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified tag.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdDelete(tagKeyId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdDelete(tagKeyId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified tag from the specified product.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsProductIdDelete(tagKeyId, productId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdProductsProductIdDelete(tagKeyId, productId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the specified tag from the specified product.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} productId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsProductIdGet(tagKeyId, productId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdProductsProductIdGet(tagKeyId, productId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Add a new tag or update an existing one for a product.\n * @param {string} tagKeyId The id of the tag which should be added or updated to the product.\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {ProductHasTagKeyBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsProductIdPut(tagKeyId, productId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdProductsProductIdPut(tagKeyId, productId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all the distinct values a tag has been assigned for products.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsValuesGet(tagKeyId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdProductsValuesGet(tagKeyId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Update value assigned to products for a specific tag\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {UpdateProductHasTagKeyValueBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsValuesPut(tagKeyId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdProductsValuesPut(tagKeyId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Create a new tag or update an existing one.\n * @param {string} tagKeyId The id of the tag which should be newly created or updated as Guid (UUID).\n * @param {string} version The requested API version\n * @param {TagKeyBindingModel} [body] The tag which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdPut(tagKeyId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdPut(tagKeyId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get User Features that a tag requires.\n * @param {string} tagKeyId The id of the tag that you are looking for.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdUserFeaturesGet(tagKeyId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdUserFeaturesGet(tagKeyId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified tag from the specified userfeature.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} userFeatureName Name of the user feature as string.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdUserFeaturesUserFeatureNameDelete(tagKeyId, userFeatureName, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdUserFeaturesUserFeatureNameDelete(tagKeyId, userFeatureName, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Add a tag to a user feature.\n * @param {string} tagKeyId The id of the tag that should required a user feature.\n * @param {string} userFeatureName The name of the user feature that the tag will required.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdUserFeaturesUserFeatureNamePut(tagKeyId, userFeatureName, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdUserFeaturesUserFeatureNamePut(tagKeyId, userFeatureName, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all the distinct values a tag has been assigned for configurations.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdValuesGet(tagKeyId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdValuesGet(tagKeyId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Update value assigned to configurations for a specific tag\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {UpdateConfigurationHasTagKeyValueBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdValuesPut(tagKeyId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTagsTagKeyIdValuesPut(tagKeyId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * TagsApi - factory interface\n * @export\n */\nexport const TagsApiFactory = function (configuration, basePath, axios) {\n const localVarFp = TagsApiFp(configuration);\n return {\n /**\n *\n * @summary Get the specified tag.\n * @param {string} tagKeyId ID of the requested tag as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n tagLink(tagKeyId, version, options) {\n return localVarFp.tagLink(tagKeyId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all the possible tags for the specified configuration.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsAvailableConfigurationsConfigurationIdGet(configurationId, version, options) {\n return localVarFp.vversionTagsAvailableConfigurationsConfigurationIdGet(configurationId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all the possible tags for the specified product.\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsAvailableProductsProductIdGet(productId, version, options) {\n return localVarFp.vversionTagsAvailableProductsProductIdGet(productId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all the tags from the specified configuration.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsConfigurationsConfigurationIdGet(configurationId, version, options) {\n return localVarFp.vversionTagsConfigurationsConfigurationIdGet(configurationId, version, options).then((request) => request(axios, basePath));\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, color, displayName, description. The default value is the name. Valid filter fields: name (string), color (string), displayName (string), description (string)\n * @summary Get a page with tags.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsGet(version, currentPage, pageSize, sort, filters, options) {\n return localVarFp.vversionTagsGet(version, currentPage, pageSize, sort, filters, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all the tags from the specified product.\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsProductsProductIdGet(productId, version, options) {\n return localVarFp.vversionTagsProductsProductIdGet(productId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified tag from the specified configuration.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdConfigurationsConfigurationIdDelete(tagKeyId, configurationId, version, options) {\n return localVarFp.vversionTagsTagKeyIdConfigurationsConfigurationIdDelete(tagKeyId, configurationId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the specified tag from the specified configuration.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdConfigurationsConfigurationIdGet(tagKeyId, configurationId, version, options) {\n return localVarFp.vversionTagsTagKeyIdConfigurationsConfigurationIdGet(tagKeyId, configurationId, version, options).then((request) => request(axios, basePath));\n },\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Add a new tag or update an existing one for a configuration.\n * @param {string} tagKeyId The id of the tag which should be added or updated to the configuration.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {ConfigurationHasTagKeyBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdConfigurationsConfigurationIdPut(tagKeyId, configurationId, version, body, options) {\n return localVarFp.vversionTagsTagKeyIdConfigurationsConfigurationIdPut(tagKeyId, configurationId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified tag.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdDelete(tagKeyId, version, options) {\n return localVarFp.vversionTagsTagKeyIdDelete(tagKeyId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified tag from the specified product.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsProductIdDelete(tagKeyId, productId, version, options) {\n return localVarFp.vversionTagsTagKeyIdProductsProductIdDelete(tagKeyId, productId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the specified tag from the specified product.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} productId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsProductIdGet(tagKeyId, productId, version, options) {\n return localVarFp.vversionTagsTagKeyIdProductsProductIdGet(tagKeyId, productId, version, options).then((request) => request(axios, basePath));\n },\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Add a new tag or update an existing one for a product.\n * @param {string} tagKeyId The id of the tag which should be added or updated to the product.\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {ProductHasTagKeyBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsProductIdPut(tagKeyId, productId, version, body, options) {\n return localVarFp.vversionTagsTagKeyIdProductsProductIdPut(tagKeyId, productId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all the distinct values a tag has been assigned for products.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsValuesGet(tagKeyId, version, options) {\n return localVarFp.vversionTagsTagKeyIdProductsValuesGet(tagKeyId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Update value assigned to products for a specific tag\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {UpdateProductHasTagKeyValueBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdProductsValuesPut(tagKeyId, version, body, options) {\n return localVarFp.vversionTagsTagKeyIdProductsValuesPut(tagKeyId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Create a new tag or update an existing one.\n * @param {string} tagKeyId The id of the tag which should be newly created or updated as Guid (UUID).\n * @param {string} version The requested API version\n * @param {TagKeyBindingModel} [body] The tag which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdPut(tagKeyId, version, body, options) {\n return localVarFp.vversionTagsTagKeyIdPut(tagKeyId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get User Features that a tag requires.\n * @param {string} tagKeyId The id of the tag that you are looking for.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdUserFeaturesGet(tagKeyId, version, options) {\n return localVarFp.vversionTagsTagKeyIdUserFeaturesGet(tagKeyId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified tag from the specified userfeature.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} userFeatureName Name of the user feature as string.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdUserFeaturesUserFeatureNameDelete(tagKeyId, userFeatureName, version, options) {\n return localVarFp.vversionTagsTagKeyIdUserFeaturesUserFeatureNameDelete(tagKeyId, userFeatureName, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Add a tag to a user feature.\n * @param {string} tagKeyId The id of the tag that should required a user feature.\n * @param {string} userFeatureName The name of the user feature that the tag will required.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdUserFeaturesUserFeatureNamePut(tagKeyId, userFeatureName, version, options) {\n return localVarFp.vversionTagsTagKeyIdUserFeaturesUserFeatureNamePut(tagKeyId, userFeatureName, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all the distinct values a tag has been assigned for configurations.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdValuesGet(tagKeyId, version, options) {\n return localVarFp.vversionTagsTagKeyIdValuesGet(tagKeyId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Update value assigned to configurations for a specific tag\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {UpdateConfigurationHasTagKeyValueBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTagsTagKeyIdValuesPut(tagKeyId, version, body, options) {\n return localVarFp.vversionTagsTagKeyIdValuesPut(tagKeyId, version, body, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * TagsApi - object-oriented interface\n * @export\n * @class TagsApi\n * @extends {BaseAPI}\n */\nexport class TagsApi extends BaseAPI {\n /**\n *\n * @summary Get the specified tag.\n * @param {string} tagKeyId ID of the requested tag as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n tagLink(tagKeyId, version, options) {\n return TagsApiFp(this.configuration).tagLink(tagKeyId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all the possible tags for the specified configuration.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsAvailableConfigurationsConfigurationIdGet(configurationId, version, options) {\n return TagsApiFp(this.configuration).vversionTagsAvailableConfigurationsConfigurationIdGet(configurationId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all the possible tags for the specified product.\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsAvailableProductsProductIdGet(productId, version, options) {\n return TagsApiFp(this.configuration).vversionTagsAvailableProductsProductIdGet(productId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all the tags from the specified configuration.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsConfigurationsConfigurationIdGet(configurationId, version, options) {\n return TagsApiFp(this.configuration).vversionTagsConfigurationsConfigurationIdGet(configurationId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, color, displayName, description. The default value is the name. Valid filter fields: name (string), color (string), displayName (string), description (string)\n * @summary Get a page with tags.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsGet(version, currentPage, pageSize, sort, filters, options) {\n return TagsApiFp(this.configuration).vversionTagsGet(version, currentPage, pageSize, sort, filters, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all the tags from the specified product.\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsProductsProductIdGet(productId, version, options) {\n return TagsApiFp(this.configuration).vversionTagsProductsProductIdGet(productId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified tag from the specified configuration.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdConfigurationsConfigurationIdDelete(tagKeyId, configurationId, version, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdConfigurationsConfigurationIdDelete(tagKeyId, configurationId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the specified tag from the specified configuration.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdConfigurationsConfigurationIdGet(tagKeyId, configurationId, version, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdConfigurationsConfigurationIdGet(tagKeyId, configurationId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Add a new tag or update an existing one for a configuration.\n * @param {string} tagKeyId The id of the tag which should be added or updated to the configuration.\n * @param {string} configurationId Identifier of the configuration as Guid (UUID).\n * @param {string} version The requested API version\n * @param {ConfigurationHasTagKeyBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdConfigurationsConfigurationIdPut(tagKeyId, configurationId, version, body, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdConfigurationsConfigurationIdPut(tagKeyId, configurationId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified tag.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdDelete(tagKeyId, version, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdDelete(tagKeyId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified tag from the specified product.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdProductsProductIdDelete(tagKeyId, productId, version, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdProductsProductIdDelete(tagKeyId, productId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the specified tag from the specified product.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} productId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdProductsProductIdGet(tagKeyId, productId, version, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdProductsProductIdGet(tagKeyId, productId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Add a new tag or update an existing one for a product.\n * @param {string} tagKeyId The id of the tag which should be added or updated to the product.\n * @param {string} productId Identifier of the product as Guid (UUID).\n * @param {string} version The requested API version\n * @param {ProductHasTagKeyBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdProductsProductIdPut(tagKeyId, productId, version, body, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdProductsProductIdPut(tagKeyId, productId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all the distinct values a tag has been assigned for products.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdProductsValuesGet(tagKeyId, version, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdProductsValuesGet(tagKeyId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Update value assigned to products for a specific tag\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {UpdateProductHasTagKeyValueBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdProductsValuesPut(tagKeyId, version, body, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdProductsValuesPut(tagKeyId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * If you update an entry you have to specify all properties of the model. If you do not specify a property it will be set to null.\n * @summary Create a new tag or update an existing one.\n * @param {string} tagKeyId The id of the tag which should be newly created or updated as Guid (UUID).\n * @param {string} version The requested API version\n * @param {TagKeyBindingModel} [body] The tag which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdPut(tagKeyId, version, body, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdPut(tagKeyId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get User Features that a tag requires.\n * @param {string} tagKeyId The id of the tag that you are looking for.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdUserFeaturesGet(tagKeyId, version, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdUserFeaturesGet(tagKeyId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified tag from the specified userfeature.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} userFeatureName Name of the user feature as string.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdUserFeaturesUserFeatureNameDelete(tagKeyId, userFeatureName, version, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdUserFeaturesUserFeatureNameDelete(tagKeyId, userFeatureName, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Add a tag to a user feature.\n * @param {string} tagKeyId The id of the tag that should required a user feature.\n * @param {string} userFeatureName The name of the user feature that the tag will required.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdUserFeaturesUserFeatureNamePut(tagKeyId, userFeatureName, version, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdUserFeaturesUserFeatureNamePut(tagKeyId, userFeatureName, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all the distinct values a tag has been assigned for configurations.\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdValuesGet(tagKeyId, version, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdValuesGet(tagKeyId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Update value assigned to configurations for a specific tag\n * @param {string} tagKeyId The tag id as Guid (UUID).\n * @param {string} version The requested API version\n * @param {UpdateConfigurationHasTagKeyValueBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TagsApi\n */\n vversionTagsTagKeyIdValuesPut(tagKeyId, version, body, options) {\n return TagsApiFp(this.configuration).vversionTagsTagKeyIdValuesPut(tagKeyId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * TaskPlanApi - axios parameter creator\n * @export\n */\nexport const TaskPlanApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Deletes a task plan by ID\n * @param {string} configurationTaskPlanId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansConfigurationTaskPlanIdDelete: (configurationTaskPlanId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationTaskPlanId' is not null or undefined\n assertParamExists('vversionTaskplansConfigurationTaskPlanIdDelete', 'configurationTaskPlanId', configurationTaskPlanId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTaskplansConfigurationTaskPlanIdDelete', 'version', version);\n const localVarPath = `/v{version}/taskplans/{configurationTaskPlanId}`\n .replace(`{${\"configurationTaskPlanId\"}}`, encodeURIComponent(String(configurationTaskPlanId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Gets a task plan by ID\n * @param {string} configurationTaskPlanId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansConfigurationTaskPlanIdGet: (configurationTaskPlanId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationTaskPlanId' is not null or undefined\n assertParamExists('vversionTaskplansConfigurationTaskPlanIdGet', 'configurationTaskPlanId', configurationTaskPlanId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTaskplansConfigurationTaskPlanIdGet', 'version', version);\n const localVarPath = `/v{version}/taskplans/{configurationTaskPlanId}`\n .replace(`{${\"configurationTaskPlanId\"}}`, encodeURIComponent(String(configurationTaskPlanId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Updates a task execution plan\n * @param {string} configurationTaskPlanId\n * @param {string} version The requested API version\n * @param {ConfigurationTaskExecutionPlanModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansConfigurationTaskPlanIdPut: (configurationTaskPlanId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationTaskPlanId' is not null or undefined\n assertParamExists('vversionTaskplansConfigurationTaskPlanIdPut', 'configurationTaskPlanId', configurationTaskPlanId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTaskplansConfigurationTaskPlanIdPut', 'version', version);\n // verify required parameter 'body' is not null or undefined\n assertParamExists('vversionTaskplansConfigurationTaskPlanIdPut', 'body', body);\n const localVarPath = `/v{version}/taskplans/{configurationTaskPlanId}`\n .replace(`{${\"configurationTaskPlanId\"}}`, encodeURIComponent(String(configurationTaskPlanId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Gets all task plans\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTaskplansGet', 'version', version);\n const localVarPath = `/v{version}/taskplans`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Creates a new task execution plan\n * @param {string} version The requested API version\n * @param {ConfigurationTaskExecutionPlanModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansPost: (version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTaskplansPost', 'version', version);\n // verify required parameter 'body' is not null or undefined\n assertParamExists('vversionTaskplansPost', 'body', body);\n const localVarPath = `/v{version}/taskplans`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * TaskPlanApi - functional programming interface\n * @export\n */\nexport const TaskPlanApiFp = function (configuration) {\n const localVarAxiosParamCreator = TaskPlanApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Deletes a task plan by ID\n * @param {string} configurationTaskPlanId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansConfigurationTaskPlanIdDelete(configurationTaskPlanId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTaskplansConfigurationTaskPlanIdDelete(configurationTaskPlanId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Gets a task plan by ID\n * @param {string} configurationTaskPlanId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansConfigurationTaskPlanIdGet(configurationTaskPlanId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTaskplansConfigurationTaskPlanIdGet(configurationTaskPlanId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Updates a task execution plan\n * @param {string} configurationTaskPlanId\n * @param {string} version The requested API version\n * @param {ConfigurationTaskExecutionPlanModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansConfigurationTaskPlanIdPut(configurationTaskPlanId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTaskplansConfigurationTaskPlanIdPut(configurationTaskPlanId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Gets all task plans\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTaskplansGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Creates a new task execution plan\n * @param {string} version The requested API version\n * @param {ConfigurationTaskExecutionPlanModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansPost(version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTaskplansPost(version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * TaskPlanApi - factory interface\n * @export\n */\nexport const TaskPlanApiFactory = function (configuration, basePath, axios) {\n const localVarFp = TaskPlanApiFp(configuration);\n return {\n /**\n *\n * @summary Deletes a task plan by ID\n * @param {string} configurationTaskPlanId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansConfigurationTaskPlanIdDelete(configurationTaskPlanId, version, options) {\n return localVarFp.vversionTaskplansConfigurationTaskPlanIdDelete(configurationTaskPlanId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Gets a task plan by ID\n * @param {string} configurationTaskPlanId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansConfigurationTaskPlanIdGet(configurationTaskPlanId, version, options) {\n return localVarFp.vversionTaskplansConfigurationTaskPlanIdGet(configurationTaskPlanId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Updates a task execution plan\n * @param {string} configurationTaskPlanId\n * @param {string} version The requested API version\n * @param {ConfigurationTaskExecutionPlanModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansConfigurationTaskPlanIdPut(configurationTaskPlanId, version, body, options) {\n return localVarFp.vversionTaskplansConfigurationTaskPlanIdPut(configurationTaskPlanId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Gets all task plans\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansGet(version, options) {\n return localVarFp.vversionTaskplansGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Creates a new task execution plan\n * @param {string} version The requested API version\n * @param {ConfigurationTaskExecutionPlanModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTaskplansPost(version, body, options) {\n return localVarFp.vversionTaskplansPost(version, body, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * TaskPlanApi - object-oriented interface\n * @export\n * @class TaskPlanApi\n * @extends {BaseAPI}\n */\nexport class TaskPlanApi extends BaseAPI {\n /**\n *\n * @summary Deletes a task plan by ID\n * @param {string} configurationTaskPlanId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TaskPlanApi\n */\n vversionTaskplansConfigurationTaskPlanIdDelete(configurationTaskPlanId, version, options) {\n return TaskPlanApiFp(this.configuration).vversionTaskplansConfigurationTaskPlanIdDelete(configurationTaskPlanId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Gets a task plan by ID\n * @param {string} configurationTaskPlanId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TaskPlanApi\n */\n vversionTaskplansConfigurationTaskPlanIdGet(configurationTaskPlanId, version, options) {\n return TaskPlanApiFp(this.configuration).vversionTaskplansConfigurationTaskPlanIdGet(configurationTaskPlanId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Updates a task execution plan\n * @param {string} configurationTaskPlanId\n * @param {string} version The requested API version\n * @param {ConfigurationTaskExecutionPlanModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TaskPlanApi\n */\n vversionTaskplansConfigurationTaskPlanIdPut(configurationTaskPlanId, version, body, options) {\n return TaskPlanApiFp(this.configuration).vversionTaskplansConfigurationTaskPlanIdPut(configurationTaskPlanId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Gets all task plans\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TaskPlanApi\n */\n vversionTaskplansGet(version, options) {\n return TaskPlanApiFp(this.configuration).vversionTaskplansGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Creates a new task execution plan\n * @param {string} version The requested API version\n * @param {ConfigurationTaskExecutionPlanModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TaskPlanApi\n */\n vversionTaskplansPost(version, body, options) {\n return TaskPlanApiFp(this.configuration).vversionTaskplansPost(version, body, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * TasksApi - axios parameter creator\n * @export\n */\nexport const TasksApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Get the specified configuration task.\n * @param {string} id Identifier of the requested configuration task as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n configurationTaskLink: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('configurationTaskLink', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('configurationTaskLink', 'version', version);\n const localVarPath = `/v{version}/Tasks/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all named plans available for the given configuration\n * @param {string} configurationId Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdPlansGet: (configurationId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdPlansGet', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdPlansGet', 'version', version);\n const localVarPath = `/v{version}/Configurations/{configurationId}/Plans`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all tasks of the specified configuration.\n * @param {string} configurationId Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdTasksGet: (configurationId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdTasksGet', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationsConfigurationIdTasksGet', 'version', version);\n const localVarPath = `/v{version}/Configurations/{configurationId}/Tasks`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Set the specified task to state abandoned.\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksAbandonedConfigurationTaskIdPost: (configurationTaskId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationTaskId' is not null or undefined\n assertParamExists('vversionTasksAbandonedConfigurationTaskIdPost', 'configurationTaskId', configurationTaskId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksAbandonedConfigurationTaskIdPost', 'version', version);\n const localVarPath = `/v{version}/Tasks/abandoned/{configurationTaskId}`\n .replace(`{${\"configurationTaskId\"}}`, encodeURIComponent(String(configurationTaskId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Cancel the task. It forces the state to be set to error.\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksCancelConfigurationTaskIdPost: (configurationTaskId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationTaskId' is not null or undefined\n assertParamExists('vversionTasksCancelConfigurationTaskIdPost', 'configurationTaskId', configurationTaskId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksCancelConfigurationTaskIdPost', 'version', version);\n const localVarPath = `/v{version}/Tasks/cancel/{configurationTaskId}`\n .replace(`{${\"configurationTaskId\"}}`, encodeURIComponent(String(configurationTaskId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Set the specified task to state error\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksErrorConfigurationTaskIdPost: (configurationTaskId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationTaskId' is not null or undefined\n assertParamExists('vversionTasksErrorConfigurationTaskIdPost', 'configurationTaskId', configurationTaskId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksErrorConfigurationTaskIdPost', 'version', version);\n const localVarPath = `/v{version}/Tasks/error/{configurationTaskId}`\n .replace(`{${\"configurationTaskId\"}}`, encodeURIComponent(String(configurationTaskId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Fetch the configurationTask with the specified identifier.\n * @param {string} configurationTaskId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksFetchByIdConfigurationTaskIdPost: (configurationTaskId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationTaskId' is not null or undefined\n assertParamExists('vversionTasksFetchByIdConfigurationTaskIdPost', 'configurationTaskId', configurationTaskId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksFetchByIdConfigurationTaskIdPost', 'version', version);\n const localVarPath = `/v{version}/Tasks/fetchById/{configurationTaskId}`\n .replace(`{${\"configurationTaskId\"}}`, encodeURIComponent(String(configurationTaskId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Fetch the next configurationTask for processing.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksFetchPost: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksFetchPost', 'version', version);\n const localVarPath = `/v{version}/Tasks/fetch`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Fetch the next configurationTask of the specified type for processing.\n * @param {string} type The type of the configurationTask which should be returned. If a list of task types wants to be provided they should be separated by comma and without white spaces between the commas and the words.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksFetchTypePost: (type, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'type' is not null or undefined\n assertParamExists('vversionTasksFetchTypePost', 'type', type);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksFetchTypePost', 'version', version);\n const localVarPath = `/v{version}/Tasks/fetch/{type}`\n .replace(`{${\"type\"}}`, encodeURIComponent(String(type)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified configurationTask.\n * @param {string} id ConfigurationTask identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksIdDelete: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionTasksIdDelete', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksIdDelete', 'version', version);\n const localVarPath = `/v{version}/Tasks/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @param {string} id\n * @param {string} version The requested API version\n * @param {ConfigurationTaskPatchDTO} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksIdPatch: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionTasksIdPatch', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksIdPatch', 'version', version);\n const localVarPath = `/v{version}/Tasks/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PATCH' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the state history of the specified task.\n * @param {string} id Identifier of the requested task as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksIdStatesGet: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionTasksIdStatesGet', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksIdStatesGet', 'version', version);\n const localVarPath = `/v{version}/Tasks/{id}/states`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Create new configurationTasks, based on an execution plan\n * @param {string} version The requested API version\n * @param {TaskPlanBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksPlanPost: (version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksPlanPost', 'version', version);\n const localVarPath = `/v{version}/Tasks/plan`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Create a new configurationTask.\n * @param {string} version The requested API version\n * @param {ConfigurationTaskBindingModel} [body] The configurationTask which should be newly created.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksPost: (version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksPost', 'version', version);\n const localVarPath = `/v{version}/Tasks`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Set the specified task to state processed. (use ep processed/ instead of upload/)\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksProcessedConfigurationTaskIdPost: (configurationTaskId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationTaskId' is not null or undefined\n assertParamExists('vversionTasksProcessedConfigurationTaskIdPost', 'configurationTaskId', configurationTaskId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksProcessedConfigurationTaskIdPost', 'version', version);\n const localVarPath = `/v{version}/Tasks/processed/{configurationTaskId}`\n .replace(`{${\"configurationTaskId\"}}`, encodeURIComponent(String(configurationTaskId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Set a task to ready for processing. It is called after resolving an issue in order to set the state of task from ERROR to READY_FOR_PROCESSING.\n * @param {string} configurationTaskId The identifier of the task that is ready for processing as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksReadyConfigurationTaskIdPost: (configurationTaskId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationTaskId' is not null or undefined\n assertParamExists('vversionTasksReadyConfigurationTaskIdPost', 'configurationTaskId', configurationTaskId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksReadyConfigurationTaskIdPost', 'version', version);\n const localVarPath = `/v{version}/Tasks/ready/{configurationTaskId}`\n .replace(`{${\"configurationTaskId\"}}`, encodeURIComponent(String(configurationTaskId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Trigger a rerun. It forces the state to be set to ready for processing or in case the task is blocked by another to not rerady for processing.\n * @param {string} configurationTaskId The identifier of the task that is should rerun as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksRerunConfigurationTaskIdPost: (configurationTaskId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationTaskId' is not null or undefined\n assertParamExists('vversionTasksRerunConfigurationTaskIdPost', 'configurationTaskId', configurationTaskId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksRerunConfigurationTaskIdPost', 'version', version);\n const localVarPath = `/v{version}/Tasks/rerun/{configurationTaskId}`\n .replace(`{${\"configurationTaskId\"}}`, encodeURIComponent(String(configurationTaskId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Resets a fetched task back to ready for processing\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksResetConfigurationTaskIdPost: (configurationTaskId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationTaskId' is not null or undefined\n assertParamExists('vversionTasksResetConfigurationTaskIdPost', 'configurationTaskId', configurationTaskId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksResetConfigurationTaskIdPost', 'version', version);\n const localVarPath = `/v{version}/Tasks/reset/{configurationTaskId}`\n .replace(`{${\"configurationTaskId\"}}`, encodeURIComponent(String(configurationTaskId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the state history of the specified task.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksTypesGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksTypesGet', 'version', version);\n const localVarPath = `/v{version}/Tasks/types`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Set the specified task to state processed. (use ep processed/ instead of upload/)\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksUploadConfigurationTaskIdPost: (configurationTaskId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationTaskId' is not null or undefined\n assertParamExists('vversionTasksUploadConfigurationTaskIdPost', 'configurationTaskId', configurationTaskId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionTasksUploadConfigurationTaskIdPost', 'version', version);\n const localVarPath = `/v{version}/Tasks/upload/{configurationTaskId}`\n .replace(`{${\"configurationTaskId\"}}`, encodeURIComponent(String(configurationTaskId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * TasksApi - functional programming interface\n * @export\n */\nexport const TasksApiFp = function (configuration) {\n const localVarAxiosParamCreator = TasksApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Get the specified configuration task.\n * @param {string} id Identifier of the requested configuration task as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n configurationTaskLink(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.configurationTaskLink(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all named plans available for the given configuration\n * @param {string} configurationId Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdPlansGet(configurationId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsConfigurationIdPlansGet(configurationId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all tasks of the specified configuration.\n * @param {string} configurationId Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdTasksGet(configurationId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationsConfigurationIdTasksGet(configurationId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Set the specified task to state abandoned.\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksAbandonedConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksAbandonedConfigurationTaskIdPost(configurationTaskId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Cancel the task. It forces the state to be set to error.\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksCancelConfigurationTaskIdPost(configurationTaskId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksCancelConfigurationTaskIdPost(configurationTaskId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Set the specified task to state error\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksErrorConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksErrorConfigurationTaskIdPost(configurationTaskId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Fetch the configurationTask with the specified identifier.\n * @param {string} configurationTaskId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksFetchByIdConfigurationTaskIdPost(configurationTaskId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksFetchByIdConfigurationTaskIdPost(configurationTaskId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Fetch the next configurationTask for processing.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksFetchPost(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksFetchPost(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Fetch the next configurationTask of the specified type for processing.\n * @param {string} type The type of the configurationTask which should be returned. If a list of task types wants to be provided they should be separated by comma and without white spaces between the commas and the words.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksFetchTypePost(type, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksFetchTypePost(type, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified configurationTask.\n * @param {string} id ConfigurationTask identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksIdDelete(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksIdDelete(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @param {string} id\n * @param {string} version The requested API version\n * @param {ConfigurationTaskPatchDTO} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksIdPatch(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksIdPatch(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the state history of the specified task.\n * @param {string} id Identifier of the requested task as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksIdStatesGet(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksIdStatesGet(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Create new configurationTasks, based on an execution plan\n * @param {string} version The requested API version\n * @param {TaskPlanBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksPlanPost(version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksPlanPost(version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Create a new configurationTask.\n * @param {string} version The requested API version\n * @param {ConfigurationTaskBindingModel} [body] The configurationTask which should be newly created.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksPost(version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksPost(version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Set the specified task to state processed. (use ep processed/ instead of upload/)\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksProcessedConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksProcessedConfigurationTaskIdPost(configurationTaskId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Set a task to ready for processing. It is called after resolving an issue in order to set the state of task from ERROR to READY_FOR_PROCESSING.\n * @param {string} configurationTaskId The identifier of the task that is ready for processing as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksReadyConfigurationTaskIdPost(configurationTaskId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksReadyConfigurationTaskIdPost(configurationTaskId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Trigger a rerun. It forces the state to be set to ready for processing or in case the task is blocked by another to not rerady for processing.\n * @param {string} configurationTaskId The identifier of the task that is should rerun as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksRerunConfigurationTaskIdPost(configurationTaskId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksRerunConfigurationTaskIdPost(configurationTaskId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Resets a fetched task back to ready for processing\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksResetConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksResetConfigurationTaskIdPost(configurationTaskId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the state history of the specified task.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksTypesGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksTypesGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Set the specified task to state processed. (use ep processed/ instead of upload/)\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksUploadConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionTasksUploadConfigurationTaskIdPost(configurationTaskId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * TasksApi - factory interface\n * @export\n */\nexport const TasksApiFactory = function (configuration, basePath, axios) {\n const localVarFp = TasksApiFp(configuration);\n return {\n /**\n *\n * @summary Get the specified configuration task.\n * @param {string} id Identifier of the requested configuration task as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n configurationTaskLink(id, version, options) {\n return localVarFp.configurationTaskLink(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all named plans available for the given configuration\n * @param {string} configurationId Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdPlansGet(configurationId, version, options) {\n return localVarFp.vversionConfigurationsConfigurationIdPlansGet(configurationId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all tasks of the specified configuration.\n * @param {string} configurationId Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationsConfigurationIdTasksGet(configurationId, version, options) {\n return localVarFp.vversionConfigurationsConfigurationIdTasksGet(configurationId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Set the specified task to state abandoned.\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksAbandonedConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return localVarFp.vversionTasksAbandonedConfigurationTaskIdPost(configurationTaskId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Cancel the task. It forces the state to be set to error.\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksCancelConfigurationTaskIdPost(configurationTaskId, version, options) {\n return localVarFp.vversionTasksCancelConfigurationTaskIdPost(configurationTaskId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Set the specified task to state error\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksErrorConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return localVarFp.vversionTasksErrorConfigurationTaskIdPost(configurationTaskId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Fetch the configurationTask with the specified identifier.\n * @param {string} configurationTaskId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksFetchByIdConfigurationTaskIdPost(configurationTaskId, version, options) {\n return localVarFp.vversionTasksFetchByIdConfigurationTaskIdPost(configurationTaskId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Fetch the next configurationTask for processing.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksFetchPost(version, options) {\n return localVarFp.vversionTasksFetchPost(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Fetch the next configurationTask of the specified type for processing.\n * @param {string} type The type of the configurationTask which should be returned. If a list of task types wants to be provided they should be separated by comma and without white spaces between the commas and the words.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksFetchTypePost(type, version, options) {\n return localVarFp.vversionTasksFetchTypePost(type, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified configurationTask.\n * @param {string} id ConfigurationTask identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksIdDelete(id, version, options) {\n return localVarFp.vversionTasksIdDelete(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @param {string} id\n * @param {string} version The requested API version\n * @param {ConfigurationTaskPatchDTO} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksIdPatch(id, version, body, options) {\n return localVarFp.vversionTasksIdPatch(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the state history of the specified task.\n * @param {string} id Identifier of the requested task as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksIdStatesGet(id, version, options) {\n return localVarFp.vversionTasksIdStatesGet(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Create new configurationTasks, based on an execution plan\n * @param {string} version The requested API version\n * @param {TaskPlanBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksPlanPost(version, body, options) {\n return localVarFp.vversionTasksPlanPost(version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Create a new configurationTask.\n * @param {string} version The requested API version\n * @param {ConfigurationTaskBindingModel} [body] The configurationTask which should be newly created.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksPost(version, body, options) {\n return localVarFp.vversionTasksPost(version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Set the specified task to state processed. (use ep processed/ instead of upload/)\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksProcessedConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return localVarFp.vversionTasksProcessedConfigurationTaskIdPost(configurationTaskId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Set a task to ready for processing. It is called after resolving an issue in order to set the state of task from ERROR to READY_FOR_PROCESSING.\n * @param {string} configurationTaskId The identifier of the task that is ready for processing as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksReadyConfigurationTaskIdPost(configurationTaskId, version, options) {\n return localVarFp.vversionTasksReadyConfigurationTaskIdPost(configurationTaskId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Trigger a rerun. It forces the state to be set to ready for processing or in case the task is blocked by another to not rerady for processing.\n * @param {string} configurationTaskId The identifier of the task that is should rerun as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksRerunConfigurationTaskIdPost(configurationTaskId, version, options) {\n return localVarFp.vversionTasksRerunConfigurationTaskIdPost(configurationTaskId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Resets a fetched task back to ready for processing\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksResetConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return localVarFp.vversionTasksResetConfigurationTaskIdPost(configurationTaskId, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the state history of the specified task.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksTypesGet(version, options) {\n return localVarFp.vversionTasksTypesGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Set the specified task to state processed. (use ep processed/ instead of upload/)\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionTasksUploadConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return localVarFp.vversionTasksUploadConfigurationTaskIdPost(configurationTaskId, version, body, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * TasksApi - object-oriented interface\n * @export\n * @class TasksApi\n * @extends {BaseAPI}\n */\nexport class TasksApi extends BaseAPI {\n /**\n *\n * @summary Get the specified configuration task.\n * @param {string} id Identifier of the requested configuration task as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n configurationTaskLink(id, version, options) {\n return TasksApiFp(this.configuration).configurationTaskLink(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all named plans available for the given configuration\n * @param {string} configurationId Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionConfigurationsConfigurationIdPlansGet(configurationId, version, options) {\n return TasksApiFp(this.configuration).vversionConfigurationsConfigurationIdPlansGet(configurationId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all tasks of the specified configuration.\n * @param {string} configurationId Configuration identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionConfigurationsConfigurationIdTasksGet(configurationId, version, options) {\n return TasksApiFp(this.configuration).vversionConfigurationsConfigurationIdTasksGet(configurationId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Set the specified task to state abandoned.\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksAbandonedConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return TasksApiFp(this.configuration).vversionTasksAbandonedConfigurationTaskIdPost(configurationTaskId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Cancel the task. It forces the state to be set to error.\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksCancelConfigurationTaskIdPost(configurationTaskId, version, options) {\n return TasksApiFp(this.configuration).vversionTasksCancelConfigurationTaskIdPost(configurationTaskId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Set the specified task to state error\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksErrorConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return TasksApiFp(this.configuration).vversionTasksErrorConfigurationTaskIdPost(configurationTaskId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Fetch the configurationTask with the specified identifier.\n * @param {string} configurationTaskId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksFetchByIdConfigurationTaskIdPost(configurationTaskId, version, options) {\n return TasksApiFp(this.configuration).vversionTasksFetchByIdConfigurationTaskIdPost(configurationTaskId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Fetch the next configurationTask for processing.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksFetchPost(version, options) {\n return TasksApiFp(this.configuration).vversionTasksFetchPost(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Fetch the next configurationTask of the specified type for processing.\n * @param {string} type The type of the configurationTask which should be returned. If a list of task types wants to be provided they should be separated by comma and without white spaces between the commas and the words.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksFetchTypePost(type, version, options) {\n return TasksApiFp(this.configuration).vversionTasksFetchTypePost(type, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified configurationTask.\n * @param {string} id ConfigurationTask identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksIdDelete(id, version, options) {\n return TasksApiFp(this.configuration).vversionTasksIdDelete(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @param {string} id\n * @param {string} version The requested API version\n * @param {ConfigurationTaskPatchDTO} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksIdPatch(id, version, body, options) {\n return TasksApiFp(this.configuration).vversionTasksIdPatch(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the state history of the specified task.\n * @param {string} id Identifier of the requested task as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksIdStatesGet(id, version, options) {\n return TasksApiFp(this.configuration).vversionTasksIdStatesGet(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Create new configurationTasks, based on an execution plan\n * @param {string} version The requested API version\n * @param {TaskPlanBindingModel} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksPlanPost(version, body, options) {\n return TasksApiFp(this.configuration).vversionTasksPlanPost(version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Create a new configurationTask.\n * @param {string} version The requested API version\n * @param {ConfigurationTaskBindingModel} [body] The configurationTask which should be newly created.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksPost(version, body, options) {\n return TasksApiFp(this.configuration).vversionTasksPost(version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Set the specified task to state processed. (use ep processed/ instead of upload/)\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksProcessedConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return TasksApiFp(this.configuration).vversionTasksProcessedConfigurationTaskIdPost(configurationTaskId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Set a task to ready for processing. It is called after resolving an issue in order to set the state of task from ERROR to READY_FOR_PROCESSING.\n * @param {string} configurationTaskId The identifier of the task that is ready for processing as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksReadyConfigurationTaskIdPost(configurationTaskId, version, options) {\n return TasksApiFp(this.configuration).vversionTasksReadyConfigurationTaskIdPost(configurationTaskId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Trigger a rerun. It forces the state to be set to ready for processing or in case the task is blocked by another to not rerady for processing.\n * @param {string} configurationTaskId The identifier of the task that is should rerun as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksRerunConfigurationTaskIdPost(configurationTaskId, version, options) {\n return TasksApiFp(this.configuration).vversionTasksRerunConfigurationTaskIdPost(configurationTaskId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Resets a fetched task back to ready for processing\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksResetConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return TasksApiFp(this.configuration).vversionTasksResetConfigurationTaskIdPost(configurationTaskId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the state history of the specified task.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksTypesGet(version, options) {\n return TasksApiFp(this.configuration).vversionTasksTypesGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Set the specified task to state processed. (use ep processed/ instead of upload/)\n * @param {string} configurationTaskId Task identifier.\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body] Metadata.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TasksApi\n */\n vversionTasksUploadConfigurationTaskIdPost(configurationTaskId, version, body, options) {\n return TasksApiFp(this.configuration).vversionTasksUploadConfigurationTaskIdPost(configurationTaskId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * UserFeaturesApi - axios parameter creator\n * @export\n */\nexport const UserFeaturesApiAxiosParamCreator = function (configuration) {\n return {\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, color, displayName, description. The default value is the name. Valid filter fields: name (string), color (string), displayName (string), description (string)\n * @summary Get a page with user features.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUserFeaturesGet: (version, currentPage, pageSize, sort, filters, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionUserFeaturesGet', 'version', version);\n const localVarPath = `/v{version}/UserFeatures`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (currentPage !== undefined) {\n localVarQueryParameter['currentPage'] = currentPage;\n }\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n if (sort !== undefined) {\n localVarQueryParameter['sort'] = sort;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * UserFeaturesApi - functional programming interface\n * @export\n */\nexport const UserFeaturesApiFp = function (configuration) {\n const localVarAxiosParamCreator = UserFeaturesApiAxiosParamCreator(configuration);\n return {\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, color, displayName, description. The default value is the name. Valid filter fields: name (string), color (string), displayName (string), description (string)\n * @summary Get a page with user features.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUserFeaturesGet(version, currentPage, pageSize, sort, filters, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionUserFeaturesGet(version, currentPage, pageSize, sort, filters, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * UserFeaturesApi - factory interface\n * @export\n */\nexport const UserFeaturesApiFactory = function (configuration, basePath, axios) {\n const localVarFp = UserFeaturesApiFp(configuration);\n return {\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, color, displayName, description. The default value is the name. Valid filter fields: name (string), color (string), displayName (string), description (string)\n * @summary Get a page with user features.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUserFeaturesGet(version, currentPage, pageSize, sort, filters, options) {\n return localVarFp.vversionUserFeaturesGet(version, currentPage, pageSize, sort, filters, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * UserFeaturesApi - object-oriented interface\n * @export\n * @class UserFeaturesApi\n * @extends {BaseAPI}\n */\nexport class UserFeaturesApi extends BaseAPI {\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: name, color, displayName, description. The default value is the name. Valid filter fields: name (string), color (string), displayName (string), description (string)\n * @summary Get a page with user features.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserFeaturesApi\n */\n vversionUserFeaturesGet(version, currentPage, pageSize, sort, filters, options) {\n return UserFeaturesApiFp(this.configuration).vversionUserFeaturesGet(version, currentPage, pageSize, sort, filters, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * UsersApi - axios parameter creator\n * @export\n */\nexport const UsersApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Get all users associcated to the specified customer\n * @param {string} customerId The identifier of the customer to which the specified user should be added.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdUsersGet: (customerId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'customerId' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdUsersGet', 'customerId', customerId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionCustomersCustomerIdUsersGet', 'version', version);\n const localVarPath = `/v{version}/Customers/{customerId}/Users`\n .replace(`{${\"customerId\"}}`, encodeURIComponent(String(customerId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get all users associcated to the specified supplier\n * @param {string} supplierId The identifier of the supplier to which the specified user should be added.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersSupplierIdUsersGet: (supplierId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'supplierId' is not null or undefined\n assertParamExists('vversionSuppliersSupplierIdUsersGet', 'supplierId', supplierId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionSuppliersSupplierIdUsersGet', 'version', version);\n const localVarPath = `/v{version}/Suppliers/{supplierId}/Users`\n .replace(`{${\"supplierId\"}}`, encodeURIComponent(String(supplierId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary List the user api keys. This endpoint can only be used personally by a user, so api keys cannot be used for this endpoint.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersApikeyGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionUsersApikeyGet', 'version', version);\n const localVarPath = `/v{version}/Users/apikey`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete an api key. This endpoint can only be used personally by a user, so api keys cannot be used for this endpoint.\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersApikeyIdDelete: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionUsersApikeyIdDelete', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionUsersApikeyIdDelete', 'version', version);\n const localVarPath = `/v{version}/Users/apikey/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Request a new api key for the current user. This endpoint can only be used personally by a user, so api keys cannot be used for this endpoint.\n * @param {string} version The requested API version\n * @param {AddApiKeyRequestDto} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersApikeyPut: (version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionUsersApikeyPut', 'version', version);\n const localVarPath = `/v{version}/Users/apikey`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: lastName, firstName, email, createdAt, modifiedAt. The default value is the lastName value in ascending order (lastname). Valid filter fields: name (string), email (string). The name value searches for firstName and lastName.\n * @summary Get a page with users.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersGet: (version, currentPage, pageSize, sort, filters, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionUsersGet', 'version', version);\n const localVarPath = `/v{version}/Users`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (currentPage !== undefined) {\n localVarQueryParameter['currentPage'] = currentPage;\n }\n if (pageSize !== undefined) {\n localVarQueryParameter['pageSize'] = pageSize;\n }\n if (sort !== undefined) {\n localVarQueryParameter['sort'] = sort;\n }\n if (filters !== undefined) {\n localVarQueryParameter['filters'] = filters;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Delete the specified user.\n * @param {string} id User identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersIdDelete: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionUsersIdDelete', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionUsersIdDelete', 'version', version);\n const localVarPath = `/v{version}/Users/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the data of the specified user.\n * @param {string} id The identifier of the user.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersIdGet: (id, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionUsersIdGet', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionUsersIdGet', 'version', version);\n const localVarPath = `/v{version}/Users/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Create a new user or update an existing one.\n * @param {string} id The identifier of the user which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {UserBindingModel} [body] The user which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersIdPut: (id, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'id' is not null or undefined\n assertParamExists('vversionUsersIdPut', 'id', id);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionUsersIdPut', 'version', version);\n const localVarPath = `/v{version}/Users/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get the data of the current user.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersMeGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionUsersMeGet', 'version', version);\n const localVarPath = `/v{version}/Users/me`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary User Statistic\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersStatsGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionUsersStatsGet', 'version', version);\n const localVarPath = `/v{version}/Users/stats`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * UsersApi - functional programming interface\n * @export\n */\nexport const UsersApiFp = function (configuration) {\n const localVarAxiosParamCreator = UsersApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Get all users associcated to the specified customer\n * @param {string} customerId The identifier of the customer to which the specified user should be added.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdUsersGet(customerId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionCustomersCustomerIdUsersGet(customerId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get all users associcated to the specified supplier\n * @param {string} supplierId The identifier of the supplier to which the specified user should be added.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersSupplierIdUsersGet(supplierId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionSuppliersSupplierIdUsersGet(supplierId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary List the user api keys. This endpoint can only be used personally by a user, so api keys cannot be used for this endpoint.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersApikeyGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionUsersApikeyGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete an api key. This endpoint can only be used personally by a user, so api keys cannot be used for this endpoint.\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersApikeyIdDelete(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionUsersApikeyIdDelete(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Request a new api key for the current user. This endpoint can only be used personally by a user, so api keys cannot be used for this endpoint.\n * @param {string} version The requested API version\n * @param {AddApiKeyRequestDto} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersApikeyPut(version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionUsersApikeyPut(version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: lastName, firstName, email, createdAt, modifiedAt. The default value is the lastName value in ascending order (lastname). Valid filter fields: name (string), email (string). The name value searches for firstName and lastName.\n * @summary Get a page with users.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersGet(version, currentPage, pageSize, sort, filters, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionUsersGet(version, currentPage, pageSize, sort, filters, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Delete the specified user.\n * @param {string} id User identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersIdDelete(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionUsersIdDelete(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the data of the specified user.\n * @param {string} id The identifier of the user.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersIdGet(id, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionUsersIdGet(id, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Create a new user or update an existing one.\n * @param {string} id The identifier of the user which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {UserBindingModel} [body] The user which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersIdPut(id, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionUsersIdPut(id, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get the data of the current user.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersMeGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionUsersMeGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary User Statistic\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersStatsGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionUsersStatsGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * UsersApi - factory interface\n * @export\n */\nexport const UsersApiFactory = function (configuration, basePath, axios) {\n const localVarFp = UsersApiFp(configuration);\n return {\n /**\n *\n * @summary Get all users associcated to the specified customer\n * @param {string} customerId The identifier of the customer to which the specified user should be added.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionCustomersCustomerIdUsersGet(customerId, version, options) {\n return localVarFp.vversionCustomersCustomerIdUsersGet(customerId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get all users associcated to the specified supplier\n * @param {string} supplierId The identifier of the supplier to which the specified user should be added.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionSuppliersSupplierIdUsersGet(supplierId, version, options) {\n return localVarFp.vversionSuppliersSupplierIdUsersGet(supplierId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary List the user api keys. This endpoint can only be used personally by a user, so api keys cannot be used for this endpoint.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersApikeyGet(version, options) {\n return localVarFp.vversionUsersApikeyGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete an api key. This endpoint can only be used personally by a user, so api keys cannot be used for this endpoint.\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersApikeyIdDelete(id, version, options) {\n return localVarFp.vversionUsersApikeyIdDelete(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Request a new api key for the current user. This endpoint can only be used personally by a user, so api keys cannot be used for this endpoint.\n * @param {string} version The requested API version\n * @param {AddApiKeyRequestDto} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersApikeyPut(version, body, options) {\n return localVarFp.vversionUsersApikeyPut(version, body, options).then((request) => request(axios, basePath));\n },\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: lastName, firstName, email, createdAt, modifiedAt. The default value is the lastName value in ascending order (lastname). Valid filter fields: name (string), email (string). The name value searches for firstName and lastName.\n * @summary Get a page with users.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersGet(version, currentPage, pageSize, sort, filters, options) {\n return localVarFp.vversionUsersGet(version, currentPage, pageSize, sort, filters, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Delete the specified user.\n * @param {string} id User identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersIdDelete(id, version, options) {\n return localVarFp.vversionUsersIdDelete(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the data of the specified user.\n * @param {string} id The identifier of the user.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersIdGet(id, version, options) {\n return localVarFp.vversionUsersIdGet(id, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Create a new user or update an existing one.\n * @param {string} id The identifier of the user which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {UserBindingModel} [body] The user which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersIdPut(id, version, body, options) {\n return localVarFp.vversionUsersIdPut(id, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get the data of the current user.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersMeGet(version, options) {\n return localVarFp.vversionUsersMeGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary User Statistic\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionUsersStatsGet(version, options) {\n return localVarFp.vversionUsersStatsGet(version, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * UsersApi - object-oriented interface\n * @export\n * @class UsersApi\n * @extends {BaseAPI}\n */\nexport class UsersApi extends BaseAPI {\n /**\n *\n * @summary Get all users associcated to the specified customer\n * @param {string} customerId The identifier of the customer to which the specified user should be added.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UsersApi\n */\n vversionCustomersCustomerIdUsersGet(customerId, version, options) {\n return UsersApiFp(this.configuration).vversionCustomersCustomerIdUsersGet(customerId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get all users associcated to the specified supplier\n * @param {string} supplierId The identifier of the supplier to which the specified user should be added.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UsersApi\n */\n vversionSuppliersSupplierIdUsersGet(supplierId, version, options) {\n return UsersApiFp(this.configuration).vversionSuppliersSupplierIdUsersGet(supplierId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary List the user api keys. This endpoint can only be used personally by a user, so api keys cannot be used for this endpoint.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UsersApi\n */\n vversionUsersApikeyGet(version, options) {\n return UsersApiFp(this.configuration).vversionUsersApikeyGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete an api key. This endpoint can only be used personally by a user, so api keys cannot be used for this endpoint.\n * @param {string} id\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UsersApi\n */\n vversionUsersApikeyIdDelete(id, version, options) {\n return UsersApiFp(this.configuration).vversionUsersApikeyIdDelete(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Request a new api key for the current user. This endpoint can only be used personally by a user, so api keys cannot be used for this endpoint.\n * @param {string} version The requested API version\n * @param {AddApiKeyRequestDto} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UsersApi\n */\n vversionUsersApikeyPut(version, body, options) {\n return UsersApiFp(this.configuration).vversionUsersApikeyPut(version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n * The result can be filtered and sorted. Moreover the page size can be specified. Valid sort fields: lastName, firstName, email, createdAt, modifiedAt. The default value is the lastName value in ascending order (lastname). Valid filter fields: name (string), email (string). The name value searches for firstName and lastName.\n * @summary Get a page with users.\n * @param {string} version The requested API version\n * @param {number} [currentPage] Paging: this property controlls the current page. First page has value 1. Default is 1.\n * @param {number} [pageSize] Paging: this property controlls the number of entries per page. Current page limit is 500. Default is 100. The value -1 returns all entries.\n * @param {string} [sort] The sort input parameter controlles the sorting. The field name can be optionally postfixed by \\"_desc\\" to indicate descending sort. In case the value is not specified default sorting will be performed (usually \\"createdAt_desc\\"). #### Query examples: ``` ?sort=createdAt // order by createdAt field in ascending order ?sort=createdAt_desc // order by createdAt field in descending order ```\n * @param {string} [filters] This property is used to filter result set. The property takes an JSON structure as value. We support multiple value formats all encoded as string. #### Query examples: ``` products?filters={\\"typeId\\":\\"1\\"} // Returns all garment products products?filters={\\"name\\":\\"pants\\",\\"typeId\\":\\"1\\"} // Returns all garment products which contains \\"pants\\" in the name products?filters={\\"completed\\":\\"true\\"} // Returns all completed garments ```\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UsersApi\n */\n vversionUsersGet(version, currentPage, pageSize, sort, filters, options) {\n return UsersApiFp(this.configuration).vversionUsersGet(version, currentPage, pageSize, sort, filters, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Delete the specified user.\n * @param {string} id User identifier as Guid (UUID).\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UsersApi\n */\n vversionUsersIdDelete(id, version, options) {\n return UsersApiFp(this.configuration).vversionUsersIdDelete(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the data of the specified user.\n * @param {string} id The identifier of the user.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UsersApi\n */\n vversionUsersIdGet(id, version, options) {\n return UsersApiFp(this.configuration).vversionUsersIdGet(id, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Create a new user or update an existing one.\n * @param {string} id The identifier of the user which should be newly created or updated.\n * @param {string} version The requested API version\n * @param {UserBindingModel} [body] The user which should be newly created or updated.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UsersApi\n */\n vversionUsersIdPut(id, version, body, options) {\n return UsersApiFp(this.configuration).vversionUsersIdPut(id, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get the data of the current user.\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UsersApi\n */\n vversionUsersMeGet(version, options) {\n return UsersApiFp(this.configuration).vversionUsersMeGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary User Statistic\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UsersApi\n */\n vversionUsersStatsGet(version, options) {\n return UsersApiFp(this.configuration).vversionUsersStatsGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * WorkflowExecutionApi - axios parameter creator\n * @export\n */\nexport const WorkflowExecutionApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Gets all workflow executions for configuration\n * @param {string} configurationId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationConfigurationIdWorkflowExecutionGet: (configurationId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionConfigurationConfigurationIdWorkflowExecutionGet', 'configurationId', configurationId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationConfigurationIdWorkflowExecutionGet', 'version', version);\n const localVarPath = `/v{version}/configuration/{configurationId}/workflow-execution`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Start a new workflow for the given configuration\n * @param {string} configurationId\n * @param {string} workflowType\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationConfigurationIdWorkflowExecutionWorkflowTypePost: (configurationId, workflowType, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'configurationId' is not null or undefined\n assertParamExists('vversionConfigurationConfigurationIdWorkflowExecutionWorkflowTypePost', 'configurationId', configurationId);\n // verify required parameter 'workflowType' is not null or undefined\n assertParamExists('vversionConfigurationConfigurationIdWorkflowExecutionWorkflowTypePost', 'workflowType', workflowType);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionConfigurationConfigurationIdWorkflowExecutionWorkflowTypePost', 'version', version);\n const localVarPath = `/v{version}/configuration/{configurationId}/workflow-execution/{workflowType}`\n .replace(`{${\"configurationId\"}}`, encodeURIComponent(String(configurationId)))\n .replace(`{${\"workflowType\"}}`, encodeURIComponent(String(workflowType)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Get a workflow executions for configuration\n * @param {string} workflowId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowExecutionWorkflowIdGet: (workflowId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'workflowId' is not null or undefined\n assertParamExists('vversionWorkflowExecutionWorkflowIdGet', 'workflowId', workflowId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowExecutionWorkflowIdGet', 'version', version);\n const localVarPath = `/v{version}/workflow-execution/{workflowId}`\n .replace(`{${\"workflowId\"}}`, encodeURIComponent(String(workflowId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Resets a workflow execution to a specific event ID and creates a new workflow execution If you don\\'t know what this means, dont use this endpoint!\n * @param {string} workflowId\n * @param {string} version The requested API version\n * @param {string} [reason]\n * @param {number} [eventID]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowExecutionWorkflowIdResetPost: (workflowId, version, reason, eventID, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'workflowId' is not null or undefined\n assertParamExists('vversionWorkflowExecutionWorkflowIdResetPost', 'workflowId', workflowId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowExecutionWorkflowIdResetPost', 'version', version);\n const localVarPath = `/v{version}/workflow-execution/{workflowId}/reset`\n .replace(`{${\"workflowId\"}}`, encodeURIComponent(String(workflowId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (reason !== undefined) {\n localVarQueryParameter['reason'] = reason;\n }\n if (eventID !== undefined) {\n localVarQueryParameter['eventID'] = eventID;\n }\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Terminates a workflow execution\n * @param {string} workflowId\n * @param {string} version The requested API version\n * @param {string} [reason]\n * @param {{ [key: string]: JToken; }} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowExecutionWorkflowIdStopPost: (workflowId, version, reason, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'workflowId' is not null or undefined\n assertParamExists('vversionWorkflowExecutionWorkflowIdStopPost', 'workflowId', workflowId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowExecutionWorkflowIdStopPost', 'version', version);\n const localVarPath = `/v{version}/workflow-execution/{workflowId}/stop`\n .replace(`{${\"workflowId\"}}`, encodeURIComponent(String(workflowId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n if (reason !== undefined) {\n localVarQueryParameter['reason'] = reason;\n }\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * WorkflowExecutionApi - functional programming interface\n * @export\n */\nexport const WorkflowExecutionApiFp = function (configuration) {\n const localVarAxiosParamCreator = WorkflowExecutionApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Gets all workflow executions for configuration\n * @param {string} configurationId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationConfigurationIdWorkflowExecutionGet(configurationId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationConfigurationIdWorkflowExecutionGet(configurationId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Start a new workflow for the given configuration\n * @param {string} configurationId\n * @param {string} workflowType\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationConfigurationIdWorkflowExecutionWorkflowTypePost(configurationId, workflowType, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionConfigurationConfigurationIdWorkflowExecutionWorkflowTypePost(configurationId, workflowType, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Get a workflow executions for configuration\n * @param {string} workflowId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowExecutionWorkflowIdGet(workflowId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowExecutionWorkflowIdGet(workflowId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Resets a workflow execution to a specific event ID and creates a new workflow execution If you don\\'t know what this means, dont use this endpoint!\n * @param {string} workflowId\n * @param {string} version The requested API version\n * @param {string} [reason]\n * @param {number} [eventID]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowExecutionWorkflowIdResetPost(workflowId, version, reason, eventID, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowExecutionWorkflowIdResetPost(workflowId, version, reason, eventID, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Terminates a workflow execution\n * @param {string} workflowId\n * @param {string} version The requested API version\n * @param {string} [reason]\n * @param {{ [key: string]: JToken; }} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowExecutionWorkflowIdStopPost(workflowId, version, reason, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowExecutionWorkflowIdStopPost(workflowId, version, reason, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * WorkflowExecutionApi - factory interface\n * @export\n */\nexport const WorkflowExecutionApiFactory = function (configuration, basePath, axios) {\n const localVarFp = WorkflowExecutionApiFp(configuration);\n return {\n /**\n *\n * @summary Gets all workflow executions for configuration\n * @param {string} configurationId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationConfigurationIdWorkflowExecutionGet(configurationId, version, options) {\n return localVarFp.vversionConfigurationConfigurationIdWorkflowExecutionGet(configurationId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Start a new workflow for the given configuration\n * @param {string} configurationId\n * @param {string} workflowType\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionConfigurationConfigurationIdWorkflowExecutionWorkflowTypePost(configurationId, workflowType, version, body, options) {\n return localVarFp.vversionConfigurationConfigurationIdWorkflowExecutionWorkflowTypePost(configurationId, workflowType, version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Get a workflow executions for configuration\n * @param {string} workflowId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowExecutionWorkflowIdGet(workflowId, version, options) {\n return localVarFp.vversionWorkflowExecutionWorkflowIdGet(workflowId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Resets a workflow execution to a specific event ID and creates a new workflow execution If you don\\'t know what this means, dont use this endpoint!\n * @param {string} workflowId\n * @param {string} version The requested API version\n * @param {string} [reason]\n * @param {number} [eventID]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowExecutionWorkflowIdResetPost(workflowId, version, reason, eventID, options) {\n return localVarFp.vversionWorkflowExecutionWorkflowIdResetPost(workflowId, version, reason, eventID, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Terminates a workflow execution\n * @param {string} workflowId\n * @param {string} version The requested API version\n * @param {string} [reason]\n * @param {{ [key: string]: JToken; }} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowExecutionWorkflowIdStopPost(workflowId, version, reason, body, options) {\n return localVarFp.vversionWorkflowExecutionWorkflowIdStopPost(workflowId, version, reason, body, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * WorkflowExecutionApi - object-oriented interface\n * @export\n * @class WorkflowExecutionApi\n * @extends {BaseAPI}\n */\nexport class WorkflowExecutionApi extends BaseAPI {\n /**\n *\n * @summary Gets all workflow executions for configuration\n * @param {string} configurationId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowExecutionApi\n */\n vversionConfigurationConfigurationIdWorkflowExecutionGet(configurationId, version, options) {\n return WorkflowExecutionApiFp(this.configuration).vversionConfigurationConfigurationIdWorkflowExecutionGet(configurationId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Start a new workflow for the given configuration\n * @param {string} configurationId\n * @param {string} workflowType\n * @param {string} version The requested API version\n * @param {{ [key: string]: JToken; }} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowExecutionApi\n */\n vversionConfigurationConfigurationIdWorkflowExecutionWorkflowTypePost(configurationId, workflowType, version, body, options) {\n return WorkflowExecutionApiFp(this.configuration).vversionConfigurationConfigurationIdWorkflowExecutionWorkflowTypePost(configurationId, workflowType, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Get a workflow executions for configuration\n * @param {string} workflowId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowExecutionApi\n */\n vversionWorkflowExecutionWorkflowIdGet(workflowId, version, options) {\n return WorkflowExecutionApiFp(this.configuration).vversionWorkflowExecutionWorkflowIdGet(workflowId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Resets a workflow execution to a specific event ID and creates a new workflow execution If you don\\'t know what this means, dont use this endpoint!\n * @param {string} workflowId\n * @param {string} version The requested API version\n * @param {string} [reason]\n * @param {number} [eventID]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowExecutionApi\n */\n vversionWorkflowExecutionWorkflowIdResetPost(workflowId, version, reason, eventID, options) {\n return WorkflowExecutionApiFp(this.configuration).vversionWorkflowExecutionWorkflowIdResetPost(workflowId, version, reason, eventID, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Terminates a workflow execution\n * @param {string} workflowId\n * @param {string} version The requested API version\n * @param {string} [reason]\n * @param {{ [key: string]: JToken; }} [body]\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowExecutionApi\n */\n vversionWorkflowExecutionWorkflowIdStopPost(workflowId, version, reason, body, options) {\n return WorkflowExecutionApiFp(this.configuration).vversionWorkflowExecutionWorkflowIdStopPost(workflowId, version, reason, body, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * WorkflowStarterApi - axios parameter creator\n * @export\n */\nexport const WorkflowStarterApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Gets all workflow starters\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowstartersGet', 'version', version);\n const localVarPath = `/v{version}/workflowstarters`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Creates a new workflow starter\n * @param {string} version The requested API version\n * @param {WorkflowStarterDTOModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersPost: (version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowstartersPost', 'version', version);\n // verify required parameter 'body' is not null or undefined\n assertParamExists('vversionWorkflowstartersPost', 'body', body);\n const localVarPath = `/v{version}/workflowstarters`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Deletes a workflow starter by ID\n * @param {string} workflowStarterId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersWorkflowStarterIdDelete: (workflowStarterId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'workflowStarterId' is not null or undefined\n assertParamExists('vversionWorkflowstartersWorkflowStarterIdDelete', 'workflowStarterId', workflowStarterId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowstartersWorkflowStarterIdDelete', 'version', version);\n const localVarPath = `/v{version}/workflowstarters/{workflowStarterId}`\n .replace(`{${\"workflowStarterId\"}}`, encodeURIComponent(String(workflowStarterId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Gets a workflow starter by ID\n * @param {string} workflowStarterId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersWorkflowStarterIdGet: (workflowStarterId, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'workflowStarterId' is not null or undefined\n assertParamExists('vversionWorkflowstartersWorkflowStarterIdGet', 'workflowStarterId', workflowStarterId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowstartersWorkflowStarterIdGet', 'version', version);\n const localVarPath = `/v{version}/workflowstarters/{workflowStarterId}`\n .replace(`{${\"workflowStarterId\"}}`, encodeURIComponent(String(workflowStarterId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Updates a workflow starter\n * @param {string} workflowStarterId\n * @param {string} version The requested API version\n * @param {WorkflowStarterDTOModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersWorkflowStarterIdPut: (workflowStarterId, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'workflowStarterId' is not null or undefined\n assertParamExists('vversionWorkflowstartersWorkflowStarterIdPut', 'workflowStarterId', workflowStarterId);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowstartersWorkflowStarterIdPut', 'version', version);\n // verify required parameter 'body' is not null or undefined\n assertParamExists('vversionWorkflowstartersWorkflowStarterIdPut', 'body', body);\n const localVarPath = `/v{version}/workflowstarters/{workflowStarterId}`\n .replace(`{${\"workflowStarterId\"}}`, encodeURIComponent(String(workflowStarterId)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * WorkflowStarterApi - functional programming interface\n * @export\n */\nexport const WorkflowStarterApiFp = function (configuration) {\n const localVarAxiosParamCreator = WorkflowStarterApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Gets all workflow starters\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowstartersGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Creates a new workflow starter\n * @param {string} version The requested API version\n * @param {WorkflowStarterDTOModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersPost(version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowstartersPost(version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Deletes a workflow starter by ID\n * @param {string} workflowStarterId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersWorkflowStarterIdDelete(workflowStarterId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowstartersWorkflowStarterIdDelete(workflowStarterId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Gets a workflow starter by ID\n * @param {string} workflowStarterId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersWorkflowStarterIdGet(workflowStarterId, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowstartersWorkflowStarterIdGet(workflowStarterId, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Updates a workflow starter\n * @param {string} workflowStarterId\n * @param {string} version The requested API version\n * @param {WorkflowStarterDTOModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersWorkflowStarterIdPut(workflowStarterId, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowstartersWorkflowStarterIdPut(workflowStarterId, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * WorkflowStarterApi - factory interface\n * @export\n */\nexport const WorkflowStarterApiFactory = function (configuration, basePath, axios) {\n const localVarFp = WorkflowStarterApiFp(configuration);\n return {\n /**\n *\n * @summary Gets all workflow starters\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersGet(version, options) {\n return localVarFp.vversionWorkflowstartersGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Creates a new workflow starter\n * @param {string} version The requested API version\n * @param {WorkflowStarterDTOModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersPost(version, body, options) {\n return localVarFp.vversionWorkflowstartersPost(version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Deletes a workflow starter by ID\n * @param {string} workflowStarterId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersWorkflowStarterIdDelete(workflowStarterId, version, options) {\n return localVarFp.vversionWorkflowstartersWorkflowStarterIdDelete(workflowStarterId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Gets a workflow starter by ID\n * @param {string} workflowStarterId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersWorkflowStarterIdGet(workflowStarterId, version, options) {\n return localVarFp.vversionWorkflowstartersWorkflowStarterIdGet(workflowStarterId, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Updates a workflow starter\n * @param {string} workflowStarterId\n * @param {string} version The requested API version\n * @param {WorkflowStarterDTOModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowstartersWorkflowStarterIdPut(workflowStarterId, version, body, options) {\n return localVarFp.vversionWorkflowstartersWorkflowStarterIdPut(workflowStarterId, version, body, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * WorkflowStarterApi - object-oriented interface\n * @export\n * @class WorkflowStarterApi\n * @extends {BaseAPI}\n */\nexport class WorkflowStarterApi extends BaseAPI {\n /**\n *\n * @summary Gets all workflow starters\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowStarterApi\n */\n vversionWorkflowstartersGet(version, options) {\n return WorkflowStarterApiFp(this.configuration).vversionWorkflowstartersGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Creates a new workflow starter\n * @param {string} version The requested API version\n * @param {WorkflowStarterDTOModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowStarterApi\n */\n vversionWorkflowstartersPost(version, body, options) {\n return WorkflowStarterApiFp(this.configuration).vversionWorkflowstartersPost(version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Deletes a workflow starter by ID\n * @param {string} workflowStarterId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowStarterApi\n */\n vversionWorkflowstartersWorkflowStarterIdDelete(workflowStarterId, version, options) {\n return WorkflowStarterApiFp(this.configuration).vversionWorkflowstartersWorkflowStarterIdDelete(workflowStarterId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Gets a workflow starter by ID\n * @param {string} workflowStarterId\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowStarterApi\n */\n vversionWorkflowstartersWorkflowStarterIdGet(workflowStarterId, version, options) {\n return WorkflowStarterApiFp(this.configuration).vversionWorkflowstartersWorkflowStarterIdGet(workflowStarterId, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Updates a workflow starter\n * @param {string} workflowStarterId\n * @param {string} version The requested API version\n * @param {WorkflowStarterDTOModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowStarterApi\n */\n vversionWorkflowstartersWorkflowStarterIdPut(workflowStarterId, version, body, options) {\n return WorkflowStarterApiFp(this.configuration).vversionWorkflowstartersWorkflowStarterIdPut(workflowStarterId, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n}\n/**\n * WorkflowTypeApi - axios parameter creator\n * @export\n */\nexport const WorkflowTypeApiAxiosParamCreator = function (configuration) {\n return {\n /**\n *\n * @summary Gets all workflows\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowGet: (version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowGet', 'version', version);\n const localVarPath = `/v{version}/workflow`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Creates a new workflow\n * @param {string} version The requested API version\n * @param {WorkflowTypeDTO} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowPost: (version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowPost', 'version', version);\n // verify required parameter 'body' is not null or undefined\n assertParamExists('vversionWorkflowPost', 'body', body);\n const localVarPath = `/v{version}/workflow`\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Deletes a workflow by Name\n * @param {string} workflowTypeName\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowWorkflowTypeNameDelete: (workflowTypeName, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'workflowTypeName' is not null or undefined\n assertParamExists('vversionWorkflowWorkflowTypeNameDelete', 'workflowTypeName', workflowTypeName);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowWorkflowTypeNameDelete', 'version', version);\n const localVarPath = `/v{version}/workflow/{workflowTypeName}`\n .replace(`{${\"workflowTypeName\"}}`, encodeURIComponent(String(workflowTypeName)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Gets a workflow by Name\n * @param {string} workflowTypeName\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowWorkflowTypeNameGet: (workflowTypeName, version, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'workflowTypeName' is not null or undefined\n assertParamExists('vversionWorkflowWorkflowTypeNameGet', 'workflowTypeName', workflowTypeName);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowWorkflowTypeNameGet', 'version', version);\n const localVarPath = `/v{version}/workflow/{workflowTypeName}`\n .replace(`{${\"workflowTypeName\"}}`, encodeURIComponent(String(workflowTypeName)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n /**\n *\n * @summary Updates a workflow\n * @param {string} workflowTypeName\n * @param {string} version The requested API version\n * @param {WorkflowTypeDTOModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowWorkflowTypeNamePut: (workflowTypeName, version, body, options = {}) => __awaiter(this, void 0, void 0, function* () {\n // verify required parameter 'workflowTypeName' is not null or undefined\n assertParamExists('vversionWorkflowWorkflowTypeNamePut', 'workflowTypeName', workflowTypeName);\n // verify required parameter 'version' is not null or undefined\n assertParamExists('vversionWorkflowWorkflowTypeNamePut', 'version', version);\n // verify required parameter 'body' is not null or undefined\n assertParamExists('vversionWorkflowWorkflowTypeNamePut', 'body', body);\n const localVarPath = `/v{version}/workflow/{workflowTypeName}`\n .replace(`{${\"workflowTypeName\"}}`, encodeURIComponent(String(workflowTypeName)))\n .replace(`{${\"version\"}}`, encodeURIComponent(String(version)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options);\n const localVarHeaderParameter = {};\n const localVarQueryParameter = {};\n // authentication Bearer required\n yield setApiKeyToObject(localVarHeaderParameter, \"Authorization\", configuration);\n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);\n localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration);\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n }),\n };\n};\n/**\n * WorkflowTypeApi - functional programming interface\n * @export\n */\nexport const WorkflowTypeApiFp = function (configuration) {\n const localVarAxiosParamCreator = WorkflowTypeApiAxiosParamCreator(configuration);\n return {\n /**\n *\n * @summary Gets all workflows\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowGet(version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowGet(version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Creates a new workflow\n * @param {string} version The requested API version\n * @param {WorkflowTypeDTO} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowPost(version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowPost(version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Deletes a workflow by Name\n * @param {string} workflowTypeName\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowWorkflowTypeNameDelete(workflowTypeName, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowWorkflowTypeNameDelete(workflowTypeName, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Gets a workflow by Name\n * @param {string} workflowTypeName\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowWorkflowTypeNameGet(workflowTypeName, version, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowWorkflowTypeNameGet(workflowTypeName, version, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n /**\n *\n * @summary Updates a workflow\n * @param {string} workflowTypeName\n * @param {string} version The requested API version\n * @param {WorkflowTypeDTOModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowWorkflowTypeNamePut(workflowTypeName, version, body, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const localVarAxiosArgs = yield localVarAxiosParamCreator.vversionWorkflowWorkflowTypeNamePut(workflowTypeName, version, body, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n });\n },\n };\n};\n/**\n * WorkflowTypeApi - factory interface\n * @export\n */\nexport const WorkflowTypeApiFactory = function (configuration, basePath, axios) {\n const localVarFp = WorkflowTypeApiFp(configuration);\n return {\n /**\n *\n * @summary Gets all workflows\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowGet(version, options) {\n return localVarFp.vversionWorkflowGet(version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Creates a new workflow\n * @param {string} version The requested API version\n * @param {WorkflowTypeDTO} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowPost(version, body, options) {\n return localVarFp.vversionWorkflowPost(version, body, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Deletes a workflow by Name\n * @param {string} workflowTypeName\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowWorkflowTypeNameDelete(workflowTypeName, version, options) {\n return localVarFp.vversionWorkflowWorkflowTypeNameDelete(workflowTypeName, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Gets a workflow by Name\n * @param {string} workflowTypeName\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowWorkflowTypeNameGet(workflowTypeName, version, options) {\n return localVarFp.vversionWorkflowWorkflowTypeNameGet(workflowTypeName, version, options).then((request) => request(axios, basePath));\n },\n /**\n *\n * @summary Updates a workflow\n * @param {string} workflowTypeName\n * @param {string} version The requested API version\n * @param {WorkflowTypeDTOModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n vversionWorkflowWorkflowTypeNamePut(workflowTypeName, version, body, options) {\n return localVarFp.vversionWorkflowWorkflowTypeNamePut(workflowTypeName, version, body, options).then((request) => request(axios, basePath));\n },\n };\n};\n/**\n * WorkflowTypeApi - object-oriented interface\n * @export\n * @class WorkflowTypeApi\n * @extends {BaseAPI}\n */\nexport class WorkflowTypeApi extends BaseAPI {\n /**\n *\n * @summary Gets all workflows\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowTypeApi\n */\n vversionWorkflowGet(version, options) {\n return WorkflowTypeApiFp(this.configuration).vversionWorkflowGet(version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Creates a new workflow\n * @param {string} version The requested API version\n * @param {WorkflowTypeDTO} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowTypeApi\n */\n vversionWorkflowPost(version, body, options) {\n return WorkflowTypeApiFp(this.configuration).vversionWorkflowPost(version, body, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Deletes a workflow by Name\n * @param {string} workflowTypeName\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowTypeApi\n */\n vversionWorkflowWorkflowTypeNameDelete(workflowTypeName, version, options) {\n return WorkflowTypeApiFp(this.configuration).vversionWorkflowWorkflowTypeNameDelete(workflowTypeName, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Gets a workflow by Name\n * @param {string} workflowTypeName\n * @param {string} version The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowTypeApi\n */\n vversionWorkflowWorkflowTypeNameGet(workflowTypeName, version, options) {\n return WorkflowTypeApiFp(this.configuration).vversionWorkflowWorkflowTypeNameGet(workflowTypeName, version, options).then((request) => request(this.axios, this.basePath));\n }\n /**\n *\n * @summary Updates a workflow\n * @param {string} workflowTypeName\n * @param {string} version The requested API version\n * @param {WorkflowTypeDTOModel} body\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof WorkflowTypeApi\n */\n vversionWorkflowWorkflowTypeNamePut(workflowTypeName, version, body, options) {\n return WorkflowTypeApiFp(this.configuration).vversionWorkflowWorkflowTypeNamePut(workflowTypeName, version, body, options).then((request) => request(this.axios, this.basePath));\n }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Content Service API: General API\n * This is a general API definition for the content service. Copyright 2010-2024 by Reactive Reality\n *\n * The version of the OpenAPI document: 1.5\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nexport class Configuration {\n constructor(param = {}) {\n this.apiKey = param.apiKey;\n this.username = param.username;\n this.password = param.password;\n this.accessToken = param.accessToken;\n this.basePath = param.basePath;\n this.baseOptions = param.baseOptions;\n this.formDataCtor = param.formDataCtor;\n }\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n isJsonMime(mime) {\n const jsonMime = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","'use strict';\n\nmodule.exports = earcut;\nmodule.exports.default = earcut;\n\nfunction earcut(data, holeIndices, dim) {\n\n dim = dim || 2;\n\n var hasHoles = holeIndices && holeIndices.length,\n outerLen = hasHoles ? holeIndices[0] * dim : data.length,\n outerNode = linkedList(data, 0, outerLen, dim, true),\n triangles = [];\n\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n var minX, minY, maxX, maxY, x, y, invSize;\n\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 32767 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0);\n\n return triangles;\n}\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList(data, start, end, dim, clockwise) {\n var i, last;\n\n if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n\n var p = start,\n again;\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n\n var stop = ear,\n prev, next;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n // cut off the triangle\n triangles.push(prev.i / dim | 0);\n triangles.push(ear.i / dim | 0);\n triangles.push(next.i / dim | 0);\n\n removeNode(ear);\n\n // skipping the next vertex leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar(ear) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n // triangle bbox; min & max are calculated like this for speed\n var x0 = ax < bx ? (ax < cx ? ax : cx) : (bx < cx ? bx : cx),\n y0 = ay < by ? (ay < cy ? ay : cy) : (by < cy ? by : cy),\n x1 = ax > bx ? (ax > cx ? ax : cx) : (bx > cx ? bx : cx),\n y1 = ay > by ? (ay > cy ? ay : cy) : (by > cy ? by : cy);\n\n var p = c.next;\n while (p !== a) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 &&\n pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nfunction isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n // triangle bbox; min & max are calculated like this for speed\n var x0 = ax < bx ? (ax < cx ? ax : cx) : (bx < cx ? bx : cx),\n y0 = ay < by ? (ay < cy ? ay : cy) : (by < cy ? by : cy),\n x1 = ax > bx ? (ax > cx ? ax : cx) : (bx > cx ? bx : cx),\n y1 = ay > by ? (ay > cy ? ay : cy) : (by > cy ? by : cy);\n\n // z-order range for the current triangle bbox;\n var minZ = zOrder(x0, y0, minX, minY, invSize),\n maxZ = zOrder(x1, y1, minX, minY, invSize);\n\n var p = ear.prevZ,\n n = ear.nextZ;\n\n // look for points inside the triangle in both directions\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n // look for remaining points in decreasing z-order\n while (p && p.z >= minZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n\n // look for remaining points in increasing z-order\n while (n && n.z <= maxZ) {\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev,\n b = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n triangles.push(a.i / dim | 0);\n triangles.push(p.i / dim | 0);\n triangles.push(b.i / dim | 0);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n // look for a valid diagonal that divides the polygon into two\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n var c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, invSize, 0);\n earcutLinked(c, triangles, dim, minX, minY, invSize, 0);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [],\n i, len, start, end, list;\n\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareX);\n\n // process holes from left to right\n for (i = 0; i < queue.length; i++) {\n outerNode = eliminateHole(queue[i], outerNode);\n }\n\n return outerNode;\n}\n\nfunction compareX(a, b) {\n return a.x - b.x;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n var bridge = findHoleBridge(hole, outerNode);\n if (!bridge) {\n return outerNode;\n }\n\n var bridgeReverse = splitPolygon(bridge, hole);\n\n // filter collinear points around the cuts\n filterPoints(bridgeReverse, bridgeReverse.next);\n return filterPoints(bridge, bridge.next);\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n var p = outerNode,\n hx = hole.x,\n hy = hole.y,\n qx = -Infinity,\n m;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n m = p.x < p.next.x ? p : p.next;\n if (x === hx) return m; // hole touches outer segment; pick leftmost endpoint\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n var stop = m,\n mx = m.x,\n my = m.y,\n tanMin = Infinity,\n tan;\n\n p = m;\n\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (locallyInside(p, hole) &&\n (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize,\n inSize = 1;\n\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n\n } while (numMerges > 1);\n\n return list;\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder(x, y, minX, minY, invSize) {\n // coords are transformed into non-negative 15-bit integer range\n x = (x - minX) * invSize | 0;\n y = (y - minY) * invSize | 0;\n\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n var p = start,\n leftmost = start;\n do {\n if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) >= (ax - px) * (cy - py) &&\n (ax - px) * (by - py) >= (bx - px) * (ay - py) &&\n (bx - px) * (cy - py) >= (cx - px) * (by - py);\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case\n}\n\n// signed area of a triangle\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nfunction equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nfunction intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n}\n\nfunction sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ?\n area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n var p = a,\n inside = false,\n px = (a.x + b.x) / 2,\n py = (a.y + b.y) / 2;\n do {\n if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&\n (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y),\n b2 = new Node(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n}\n\nfunction removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction Node(i, x, y) {\n // vertex index in coordinates array\n this.i = i;\n\n // vertex coordinates\n this.x = x;\n this.y = y;\n\n // previous and next vertex nodes in a polygon ring\n this.prev = null;\n this.next = null;\n\n // z-order curve value\n this.z = 0;\n\n // previous and next nodes in z-order\n this.prevZ = null;\n this.nextZ = null;\n\n // indicates whether this is a steiner point\n this.steiner = false;\n}\n\n// return a percentage difference between the polygon area and its triangulation area;\n// used to verify correctness of triangulation\nearcut.deviation = function (data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs(\n (data[a] - data[c]) * (data[b + 1] - data[a + 1]) -\n (data[a] - data[b]) * (data[c + 1] - data[a + 1]));\n }\n\n return polygonArea === 0 && trianglesArea === 0 ? 0 :\n Math.abs((trianglesArea - polygonArea) / polygonArea);\n};\n\nfunction signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n}\n\n// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts\nearcut.flatten = function (data) {\n var dim = data[0][0].length,\n result = {vertices: [], holes: [], dimensions: dim},\n holeIndex = 0;\n\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n};\n","(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n","/*!\n * jsoneditor.js\n *\n * @brief\n * JSONEditor is a web-based tool to view, edit, format, and validate JSON.\n * It has various modes such as a tree editor, a code editor, and a plain text\n * editor.\n *\n * Supported browsers: Chrome, Firefox, Safari, Opera, Internet Explorer 8+\n *\n * @license\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not\n * use this file except in compliance with the License. You may obtain a copy\n * of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n *\n * Copyright (c) 2011-2023 Jos de Jong, http://jsoneditoronline.org\n *\n * @author Jos de Jong, \n * @version 9.10.5\n * @date 2023-12-21\n */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.JSONEditor=t():e.JSONEditor=t()}(self,function(){return n={897:function(e,t,n){\"use strict\";n.d(t,{x:function(){return r}});var c=n(2602),h=n(9791),d=n(7907);function o(e){return(o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function i(e,t){for(var n=0;ns.top&&(i=!1),n?0:r.top-o.top);i?(n=e.offsetHeight,this.dom.menu.style.left=\"0\",this.dom.menu.style.top=t+n+\"px\",this.dom.menu.style.bottom=\"\"):(this.dom.menu.style.left=\"0\",this.dom.menu.style.top=\"\",this.dom.menu.style.bottom=\"0px\"),this.limitHeight&&(o=i?s.bottom-r.bottom-10:r.top-s.top-10,this.dom.list.style.maxHeight=o+\"px\",this.dom.list.style.overflowY=\"auto\"),this.dom.absoluteAnchor.appendChild(this.dom.root),this.selection=(0,h.getSelection)(),this.anchor=e,setTimeout(function(){a.dom.focusButton.focus()},0),l.visibleMenu&&l.visibleMenu.hide(),l.visibleMenu=this}},{key:\"hide\",value:function(){this.dom.absoluteAnchor&&(this.dom.absoluteAnchor.destroy(),delete this.dom.absoluteAnchor),this.dom.root.parentNode&&(this.dom.root.parentNode.removeChild(this.dom.root),this.onClose)&&this.onClose(),l.visibleMenu===this&&(l.visibleMenu=void 0)}},{key:\"_onExpandItem\",value:function(n){var i,o=this,e=n===this.expandedItem,t=this.expandedItem;t&&(t.ul.style.height=\"0\",t.ul.style.padding=\"\",setTimeout(function(){o.expandedItem!==t&&(t.ul.style.display=\"\",h.removeClassName)(t.ul.parentNode,\"jsoneditor-selected\")},300),this.expandedItem=void 0),e||((i=n.ul).style.display=\"block\",i.clientHeight,setTimeout(function(){if(o.expandedItem===n){for(var e=0,t=0;t/gi,\"\\n\"))),i.appendChild(o),n.appendChild(i)),n.onclick=function(){a.onFocusLine(e)},s.appendChild(n)}),this.dom.validationErrors=n,this.dom.validationErrorsContainer.appendChild(n),this.dom.additionalErrorsIndication.title=e.length+\" errors total\",this.dom.validationErrorsContainer.clientHeighte[0].length)||(e=t,n=r,this.options.flex));r++);return e?((i=e[0].match(/\\n.*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-1:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],i=this.performAction.call(this,this.yy,this,o[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i||void 0):\"\"===this._input?this.EOF:void this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". Unrecognized text.\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)},options:{},performAction:function(e,t,n,i){switch(n){case 0:break;case 1:return 6;case 2:return t.yytext=t.yytext.substr(1,t.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return\"INVALID\"}},rules:[/^(?:\\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\\.[0-9]+)?([eE][-+]?[0-9]+)?\\b)/,/^(?:\"(?:\\\\[\\\\\"bfnrt/]|\\\\u[a-fA-F0-9]{4}|[^\\\\\\0-\\x09\\x0a-\\x1f\"])*\")/,/^(?:\\{)/,/^(?:\\})/,/^(?:\\[)/,/^(?:\\])/,/^(?:,)/,/^(?::)/,/^(?:true\\b)/,/^(?:false\\b)/,/^(?:null\\b)/,/^(?:$)/,/^(?:.)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}}};var n;t.parser=n,t.parse=n.parse.bind(n)},3879:function(e){\"use strict\";function i(){}i.prototype={on:function(e,t){this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(t)},off:function(e,t){this._events=this._events||{},e in this._events!=!1&&this._events[e].splice(this._events[e].indexOf(t),1)},emit:function(e){if(this._events=this._events||{},e in this._events!=!1)for(var t=0;t\"+t.label+\"\"}),u.each(t.children,function(e,t){t.idx=l,a.appendChild(d.call(this,t,a)),l++},this)):(t.idx=l,d.call(this,t),l++)},this),this.config.data&&Array.isArray(this.config.data)&&(o=!(this.data=[]),a=!1,l=0,u.each(this.config.data,function(e,t){h(t,\"children\")?(o=u.createElement(\"optgroup\",{label:t.text}),a=u.createElement(\"ul\",{class:\"selectr-optgroup\",role:\"group\",html:\"
  • \"+t.text+\"
  • \"}),u.each(t.children,function(e,t){(r=new Option(t.text,t.value,!1,t.hasOwnProperty(\"selected\")&&!0===t.selected)).disabled=h(t,\"disabled\"),this.options.push(r),o.appendChild(r),r.idx=l,a.appendChild(d.call(this,r,t)),this.data[l]=t,l++},this),this.el.appendChild(o)):((r=new Option(t.text,t.value,!1,t.hasOwnProperty(\"selected\")&&!0===t.selected)).disabled=h(t,\"disabled\"),this.options.push(r),r.idx=l,d.call(this,r,t),this.data[l]=t,l++)},this)),this.setSelected(!0);for(var c=this.navIndex=0;cthis.tree.lastElementChild.idx){this.navIndex=this.tree.lastElementChild.idx;break}if(this.navIndexthis.optsRect.top+this.optsRect.height&&(this.tree.scrollTop=this.tree.scrollTop+(e.top+e.height-(this.optsRect.top+this.optsRect.height))),this.navIndex===this.tree.childElementCount-1&&this.requiresPagination&&r.call(this)):0===this.navIndex?this.tree.scrollTop=0:e.top-this.optsRect.top<0&&(this.tree.scrollTop=this.tree.scrollTop+(e.top-this.optsRect.top)),n&&u.removeClass(n,\"active\"),u.addClass(this.items[this.navIndex],\"active\")}else this.navigating=!1}.bind(this),this.events.reset=this.reset.bind(this),(this.config.nativeDropdown||this.mobileDevice)&&(this.container.addEventListener(\"touchstart\",function(e){e.changedTouches[0].target===i.el&&i.toggle()},!!this.supportsEventPassiveOption&&{passive:!0}),this.container.addEventListener(\"click\",function(e){e.target===i.el&&i.toggle()}),this.el.addEventListener(\"change\",function(e){e.__selfTriggered||(i.el.multiple?(e=i.getSelectedProperties(\"idx\"),e=function(e,t){for(var n,i=[],o=e.slice(0),r=0;rn?(u.addClass(this.container,\"inverted\"),this.isInverted=!0):(u.removeClass(this.container,\"inverted\"),this.isInverted=!1),this.optsRect=u.rect(this.tree)},t.prototype.getOptionByIndex=function(e){return this.options[e]},t.prototype.getOptionByValue=function(e){for(var t=!1,n=0,i=this.options.length;nthis.limit&&1s.EX?((0,m.addClassName)((n=this).frame,\"busy\"),n.dom.busyContent.innerText=t,setTimeout(function(){e(),(0,m.removeClassName)(n.frame,\"busy\"),n.dom.busyContent.innerText=\"\"},100)):e()},t.validate=n.validate,t._renderErrors=n._renderErrors,[{mode:\"preview\",mixin:t,data:\"json\"}])},6210:function(e,t,n){\"use strict\";n.r(t),n.d(t,{showSortModal:function(){return s}});var t=n(483),i=n.n(t),o=n(7907),r=n(9791);function s(e,t,s,n){var a=Array.isArray(t)?(0,r.getChildPaths)(t):[\"\"],l=n&&n.path&&(0,r.contains)(a,n.path)?n.path:a[0],c=n&&n.direction||\"asc\",t='
    '+(0,o.Iu)(\"sort\")+\"
    \"+(0,o.Iu)(\"sortFieldLabel\")+'
    '+(0,o.Iu)(\"sortDirectionLabel\")+'
    ';i()({parent:e,content:t,overlayClass:\"jsoneditor-modal-overlay\",overlayStyles:{backgroundColor:\"rgb(1,1,1)\",opacity:.3},modalClass:\"jsoneditor-modal jsoneditor-modal-sort\"}).afterCreate(function(t){var e=t.modalElem().querySelector(\"form\"),n=t.modalElem().querySelector(\"#ok\"),i=t.modalElem().querySelector(\"#field\"),o=t.modalElem().querySelector(\"#direction\");function r(e){o.value=e,o.className=\"jsoneditor-button-group jsoneditor-button-group-value-\"+o.value}a.forEach(function(e){var t,n=document.createElement(\"option\");n.text=\"\"===(t=e)?\"@\":\".\"===t[0]?t.slice(1):t,n.value=e,i.appendChild(n)}),i.value=l||a[0],r(c||\"asc\"),o.onclick=function(e){r(e.target.getAttribute(\"data-value\"))},n.onclick=function(e){e.preventDefault(),e.stopPropagation(),t.close(),s({path:i.value,direction:o.value})},e&&(e.onsubmit=n.onclick)}).afterClose(function(e){e.destroy()}).show()}},2558:function(e,t,n){\"use strict\";n.r(t),n.d(t,{showTransformModal:function(){return s}});var t=n(483),i=n.n(t),t=n(3879),x=n.n(t),o=n(7907);function I(e){return(I=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function k(e,t,n,i){if(\"boolean\"==typeof e||e instanceof Boolean||null===e||\"number\"==typeof e||e instanceof Number||\"string\"==typeof e||e instanceof String||e instanceof Date)return JSON.stringify(e);if(Array.isArray(e)){for(var o=e,r=t,s=n,a=i,l=r?s+r:void 0,c=r?\"[\\n\":\"[\",h=0;ha)return c+\"...\"}return c+=r?\"\\n\"+s+\"]\":\"]\"}if(e&&\"object\"===I(e)){var u,g=e,p=t,s=n,m=i,f=p?s+p:void 0,C=!0,y=p?\"{\\n\":\"{\";if(\"function\"==typeof g.toJSON)return k(g.toJSON(),p,s,m);for(u in g)if(function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}(g,u)){var v=g[u];if(C?C=!1:y+=p?\",\\n\":\",\",(y=(y+=p?f+'\"'+u+'\": ':'\"'+u+'\":')+k(v,p,f,m)).length>m)return y+\"...\"}return y+=p?\"\\n\"+s+\"}\":\"}\"}}function E(e,t){for(var n=\"\";0JMESPath query to filter, sort, or transform the JSON data.
    To learn JMESPath, go to the interactive tutorial.';function s(e){var t=e.container,I=e.json,n=e.queryDescription,n=void 0===n?r:n,b=e.createQuery,A=e.executeQuery,w=e.onTransform,S=I,e='
    \",\"
    \",c.escapeHTML((e=e.snippet,o={},e.replace(/\\${(\\d+)(:(.*?))?}/g,function(e,t,n,i){return o[t]=i||\"\"}).replace(/\\$(\\d+?)/g,function(e,t){return o[t]})))].join(\"\"))},id:\"snippetCompleter\"},p=[g,d,u],m=(t.setCompleters=function(e){p.length=0,e&&p.push.apply(p,e)},t.addCompleter=function(e){p.push(e)},t.textCompleter=d,t.keyWordCompleter=u,t.snippetCompleter=g,{name:\"expandSnippet\",exec:function(e){return l.expandWithTab(e)},bindKey:\"Tab\"}),f=function(e){(e=\"string\"==typeof e?a.$modes[e]:e)&&(l.files||(l.files={}),C(e.$id,e.snippetFileId),e.modes)&&e.modes.forEach(f)},C=function(t,e){e&&t&&!l.files[t]&&(l.files[t]={},a.loadModule(e,function(e){e&&(!(l.files[t]=e).snippets&&e.snippetText&&(e.snippets=l.parseSnippetFile(e.snippetText)),l.register(e.snippets||[],e.scope),e.includeScopes)&&(l.snippetMap[e.scope].includeScopes=e.includeScopes,e.includeScopes.forEach(function(e){f(\"ace/mode/\"+e)}))}))},y=c.delayedCall(function(){v(r)},0),v=function(e){var e=e.editor,t=h.getCompletionPrefix(e),n=h.triggerAutocomplete(e);(t&&t.length>=e.$liveAutocompletionThreshold||n)&&((t=s.for(e)).autoShown=!0,t.showPopup(e))},d=e(\"../editor\").Editor;e(\"../config\").defineOptions(d.prototype,\"editor\",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:p),this.commands.addCommand(s.startCommand)):this.commands.removeCommand(s.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:p),this.commands.on(\"afterExec\",o)):this.commands.off(\"afterExec\",o)},value:!1},liveAutocompletionDelay:{initialValue:0},liveAutocompletionThreshold:{initialValue:0},enableSnippets:{set:function(e){e?(this.commands.addCommand(m),this.on(\"changeMode\",i),i(0,this)):(this.commands.removeCommand(m),this.off(\"changeMode\",i))},value:!1}})}),ace.require([\"ace/ext/language_tools\"],function(e){t&&(t.exports=e)})},3330:function(t,e,n){t=n.nmd(t),ace.define(\"ace/ext/searchbox-css\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports='\\n\\n/* ------------------------------------------------------------------------------------------\\n * Editor Search Form\\n * --------------------------------------------------------------------------------------- */\\n.ace_search {\\n background-color: #ddd;\\n color: #666;\\n border: 1px solid #cbcbcb;\\n border-top: 0 none;\\n overflow: hidden;\\n margin: 0;\\n padding: 4px 6px 0 4px;\\n position: absolute;\\n top: 0;\\n z-index: 99;\\n white-space: normal;\\n}\\n.ace_search.left {\\n border-left: 0 none;\\n border-radius: 0px 0px 5px 0px;\\n left: 0;\\n}\\n.ace_search.right {\\n border-radius: 0px 0px 0px 5px;\\n border-right: 0 none;\\n right: 0;\\n}\\n\\n.ace_search_form, .ace_replace_form {\\n margin: 0 20px 4px 0;\\n overflow: hidden;\\n line-height: 1.9;\\n}\\n.ace_replace_form {\\n margin-right: 0;\\n}\\n.ace_search_form.ace_nomatch {\\n outline: 1px solid red;\\n}\\n\\n.ace_search_field {\\n border-radius: 3px 0 0 3px;\\n background-color: white;\\n color: black;\\n border: 1px solid #cbcbcb;\\n border-right: 0 none;\\n outline: 0;\\n padding: 0;\\n font-size: inherit;\\n margin: 0;\\n line-height: inherit;\\n padding: 0 6px;\\n min-width: 17em;\\n vertical-align: top;\\n min-height: 1.8em;\\n box-sizing: content-box;\\n}\\n.ace_searchbtn {\\n border: 1px solid #cbcbcb;\\n line-height: inherit;\\n display: inline-block;\\n padding: 0 6px;\\n background: #fff;\\n border-right: 0 none;\\n border-left: 1px solid #dcdcdc;\\n cursor: pointer;\\n margin: 0;\\n position: relative;\\n color: #666;\\n}\\n.ace_searchbtn:last-child {\\n border-radius: 0 3px 3px 0;\\n border-right: 1px solid #cbcbcb;\\n}\\n.ace_searchbtn:disabled {\\n background: none;\\n cursor: default;\\n}\\n.ace_searchbtn:hover {\\n background-color: #eef1f6;\\n}\\n.ace_searchbtn.prev, .ace_searchbtn.next {\\n padding: 0px 0.7em\\n}\\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\\n content: \"\";\\n border: solid 2px #888;\\n width: 0.5em;\\n height: 0.5em;\\n border-width: 2px 0 0 2px;\\n display:inline-block;\\n transform: rotate(-45deg);\\n}\\n.ace_searchbtn.next:after {\\n border-width: 0 2px 2px 0 ;\\n}\\n.ace_searchbtn_close {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\\n border-radius: 50%;\\n border: 0 none;\\n color: #656565;\\n cursor: pointer;\\n font: 16px/16px Arial;\\n padding: 0;\\n height: 14px;\\n width: 14px;\\n top: 9px;\\n right: 7px;\\n position: absolute;\\n}\\n.ace_searchbtn_close:hover {\\n background-color: #656565;\\n background-position: 50% 100%;\\n color: white;\\n}\\n\\n.ace_button {\\n margin-left: 2px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n opacity: 0.7;\\n border: 1px solid rgba(100,100,100,0.23);\\n padding: 1px;\\n box-sizing: border-box!important;\\n color: black;\\n}\\n\\n.ace_button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_button.checked {\\n border-color: #3399ff;\\n opacity:1;\\n}\\n\\n.ace_search_options{\\n margin-bottom: 3px;\\n text-align: right;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -o-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n clear: both;\\n}\\n\\n.ace_search_counter {\\n float: left;\\n font-family: arial;\\n padding: 0 8px;\\n}'}),ace.define(\"ace/ext/searchbox\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/ext/searchbox-css\",\"ace/keyboard/hash_handler\",\"ace/lib/keys\",\"ace/config\"],function(e,t,n){\"use strict\";var o=e(\"../lib/dom\"),r=e(\"../lib/lang\"),s=e(\"../lib/event\"),a=e(\"./searchbox-css\"),i=e(\"../keyboard/hash_handler\").HashHandler,l=e(\"../lib/keys\"),c=e(\"../config\").nls,h=(o.importCssString(a,\"ace_searchbox\",!1),d.prototype.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},d.prototype.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},d.prototype.$initElements=function(e){this.searchBox=e.querySelector(\".ace_search_form\"),this.replaceBox=e.querySelector(\".ace_replace_form\"),this.searchOption=e.querySelector(\"[action=searchInSelection]\"),this.replaceOption=e.querySelector(\"[action=toggleReplace]\"),this.regExpOption=e.querySelector(\"[action=toggleRegexpMode]\"),this.caseSensitiveOption=e.querySelector(\"[action=toggleCaseSensitive]\"),this.wholeWordOption=e.querySelector(\"[action=toggleWholeWords]\"),this.searchInput=this.searchBox.querySelector(\".ace_search_field\"),this.replaceInput=this.replaceBox.querySelector(\".ace_search_field\"),this.searchCounter=e.querySelector(\".ace_search_counter\")},d.prototype.$init=function(){var e=this.element,i=(this.$initElements(e),this);s.addListener(e,\"mousedown\",function(e){setTimeout(function(){i.activeInput.focus()},0),s.stopPropagation(e)}),s.addListener(e,\"click\",function(e){var t=(e.target||e.srcElement).getAttribute(\"action\");t&&i[t]?i[t]():i.$searchBarKb.commands[t]&&i.$searchBarKb.commands[t].exec(i),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,t,n){n=l.keyCodeToString(n),t=i.$searchBarKb.findKeyCommand(t,n);t&&t.exec&&(t.exec(i),s.stopEvent(e))}),this.$onChange=r.delayedCall(function(){i.find(!1,!1)}),s.addListener(this.searchInput,\"input\",function(){i.$onChange.schedule(20)}),s.addListener(this.searchInput,\"focus\",function(){i.activeInput=i.searchInput,i.searchInput.value&&i.highlight()}),s.addListener(this.replaceInput,\"focus\",function(){i.activeInput=i.replaceInput,i.searchInput.value&&i.highlight()})},d.prototype.setSearchRange=function(e){(this.searchRange=e)?this.searchRangeMarker=this.editor.session.addMarker(e,\"ace_active-line\"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},d.prototype.$syncOptions=function(e){o.setCssClass(this.replaceOption,\"checked\",this.searchRange),o.setCssClass(this.searchOption,\"checked\",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?\"-\":\"+\",o.setCssClass(this.regExpOption,\"checked\",this.regExpOption.checked),o.setCssClass(this.wholeWordOption,\"checked\",this.wholeWordOption.checked),o.setCssClass(this.caseSensitiveOption,\"checked\",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?\"none\":\"\",this.replaceBox.style.display=this.replaceOption.checked&&!t?\"\":\"none\",this.find(!1,!1,e)},d.prototype.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},d.prototype.find=function(e,t,n){e=!this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange})&&this.searchInput.value;o.setCssClass(this.searchBox,\"ace_nomatch\",e),this.editor._emit(\"findSearchBox\",{match:!e}),this.highlight(),this.updateCounter()},d.prototype.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=0,i=0;if(t){var o,r,s=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),a=e.session.doc.positionToIndex(e.selection.anchor);for(this.searchRange&&(a-=e.session.doc.positionToIndex(this.searchRange.start)),t.lastIndex=0;(r=t.exec(s))&&((o=r.index)<=a&&i++,!(999<++n))&&(r[0]||(t.lastIndex=o+=1,!(o>=s.length))););}this.searchCounter.textContent=c(\"$0 of $1\",[i,999%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,c=/^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i,h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,d=/^(?:\\/(?:[^~/]|~0|~1)*)*$/,u=/^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,g=/^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;function p(e){return i.copy(p[e=\"full\"==e?\"full\":\"fast\"])}function m(e){var t,n,e=e.match(o);return!!e&&(t=+e[1],n=+e[2],e=+e[3],1<=n)&&n<=12&&1<=e&&e<=(2!=n||(e=t)%4!=0||e%100==0&&e%400!=0?r[n]:29)}function f(e,t){var n,i,o,e=e.match(s);return!!e&&(n=e[1],i=e[2],o=e[3],e=e[5],n<=23&&i<=59&&o<=59||23==n&&59==i&&60==o)&&(!t||e)}(e.exports=p).fast={date:/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,time:/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\"date-time\":/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\"uri-reference\":/^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\"uri-template\":l,url:c,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,ipv6:/^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,regex:I,uuid:h,\"json-pointer\":d,\"json-pointer-uri-fragment\":u,\"relative-json-pointer\":g},p.full={date:m,time:f,\"date-time\":function(e){e=e.split(C);return 2==e.length&&m(e[0])&&f(e[1],!0)},uri:function(e){return y.test(e)&&a.test(e)},\"uri-reference\":/^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\"uri-template\":l,url:c,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,ipv6:/^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,regex:I,uuid:h,\"json-pointer\":d,\"json-pointer-uri-fragment\":u,\"relative-json-pointer\":g};var C=/t|\\s/i;var y=/\\/|:/;var v=/[^\\\\]\\\\Z/;function I(e){if(v.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},5689:function(e,t,n){\"use strict\";var E=n(3969),T=n(3724),R=n(5359),_=n(3508),$=n(1869),L=T.ucs2length,N=n(2303),B=R.Validation;function M(e,s,a,t){var l=this,c=this._opts,h=[void 0],d={},u=[],n={},g=[],i={},p=[],o=(s=s||{schema:e,refVal:h,refs:d},function(e,t,n){var i=W.call(this,e,t,n);return 0<=i?{index:i,compiling:!0}:(i=this._compilations.length,this._compilations[i]={schema:e,root:t,baseId:n},{index:i,compiling:!1})}.call(this,e,s,t)),r=this._compilations[o.index];if(o.compiling)return r.callValidate=v;var m=this._formats,f=this.RULES;try{var C=I(e,s,a,t),y=(r.validate=C,r.callValidate);return y&&(y.schema=C.schema,y.errors=null,y.refs=C.refs,y.refVal=C.refVal,y.root=C.root,y.$async=C.$async,c.sourceCode)&&(y.source=C.source),C}finally{!function(e,t,n){e=W.call(this,e,t,n);0<=e&&this._compilations.splice(e,1)}.call(this,e,s,t)}function v(){var e=r.validate,t=e.apply(this,arguments);return v.errors=e.errors,t}function I(e,t,n,i){var o=!t||t.schema==e;if(t.schema!=s.schema)return M.call(l,e,t,n,i);n=!0===e.$async,i=$({isTop:!0,schema:e,isRoot:o,baseId:i,root:t,schemaPath:\"\",errSchemaPath:\"#\",errorPath:'\"\"',MissingRefError:R.MissingRef,RULES:f,validate:$,util:T,resolve:E,resolveRef:b,usePattern:S,useDefault:x,useCustomRule:k,opts:c,formats:m,logger:l.logger,self:l}),i=V(h,G)+V(u,H)+V(g,P)+V(p,F)+i;c.processCode&&(i=c.processCode(i,e));try{var r=new Function(\"self\",\"RULES\",\"formats\",\"root\",\"refVal\",\"defaults\",\"customRules\",\"equal\",\"ucs2length\",\"ValidationError\",i)(l,f,m,s,h,g,p,N,L,B);h[0]=r}catch(e){throw l.logger.error(\"Error compiling schema, function code:\",i),e}return r.schema=e,r.errors=null,r.refs=d,r.refVal=h,r.root=o?r:t,n&&(r.$async=!0),!0===c.sourceCode&&(r.source={code:i,patterns:u,defaults:g}),r}function b(e,t,n){t=E.url(e,t);var i=d[t];if(void 0!==i)return w(o=h[i],r=\"refVal[\"+i+\"]\");if(!n&&s.refs){i=s.refs[t];if(void 0!==i)return w(o=s.refVal[i],r=A(t,o))}var o,r=A(t),n=E.call(l,I,s,t);if(void 0!==(n=void 0===n&&(i=a&&a[t])?E.inlineRef(i,c.inlineRefs)?i:M.call(l,i,s,a,e):n))return o=n,i=d[i=t],h[i]=o,w(n,r);delete d[t]}function A(e,t){var n=h.length;return h[n]=t,\"refVal\"+(d[e]=n)}function w(e,t){return\"object\"==typeof e||\"boolean\"==typeof e?{code:t,schema:e,inline:!0}:{code:t,$async:e&&!!e.$async}}function S(e){var t=n[e];return void 0===t&&(t=n[e]=u.length,u[t]=e),\"pattern\"+t}function x(e){switch(typeof e){case\"boolean\":case\"number\":return\"\"+e;case\"string\":return T.toQuotedString(e);case\"object\":var t,n;return null===e?\"null\":(t=_(e),void 0===(n=i[t])&&(n=i[t]=g.length,g[n]=e),\"default\"+n)}}function k(e,t,n,i){if(!1!==l._opts.validateSchema){var o=e.definition.dependencies;if(o&&!o.every(function(e){return Object.prototype.hasOwnProperty.call(n,e)}))throw new Error(\"parent schema must have all required keywords: \"+o.join(\",\"));o=e.definition.validateSchema;if(o)if(!o(t)){o=\"keyword schema is invalid: \"+l.errorsText(o.errors);if(\"log\"!=l._opts.validateSchema)throw new Error(o);l.logger.error(o)}}var r,o=e.definition.compile,s=e.definition.inline,a=e.definition.macro;if(o)r=o.call(l,t,n,i);else if(a)r=a.call(l,t,n,i),!1!==c.validateSchema&&l.validateSchema(r,!0);else if(s)r=s.call(l,i,e.keyword,t,n);else if(!(r=e.definition.validate))return;if(void 0===r)throw new Error('custom keyword \"'+e.keyword+'\"failed to compile');o=p.length;return{code:\"customRule\"+o,validate:p[o]=r}}}function W(e,t,n){for(var i=0;i\",w=y?\">\":\"<\",S=void 0;if(!f&&\"number\"!=typeof d&&void 0!==d)throw new Error(t+\" must be number\");if(!b&&void 0!==I&&\"number\"!=typeof I&&\"boolean\"!=typeof I)throw new Error(v+\" must be number or boolean\");b?(h=e.util.getData(I.$data,h,e.dataPathArr),r=\"exclIsNumber\"+c,s=\"' + \"+(a=\"op\"+c)+\" + '\",S=v,(x=x||[]).push(l=l+(\" var schemaExcl\"+c+\" = \"+h+\"; \")+(\" var \"+(i=\"exclusive\"+c)+\"; var \"+(o=\"exclType\"+c)+\" = typeof \"+(h=\"schemaExcl\"+c)+\"; if (\"+o+\" != 'boolean' && \"+o+\" != 'undefined' && \"+o+\" != 'number') { \")),l=\"\",!1!==e.createErrors?(l+=\" { keyword: '\"+(S||\"_exclusiveLimit\")+\"' , dataPath: (dataPath || '') + \"+e.errorPath+\" , schemaPath: \"+e.util.toQuotedString(g)+\" , params: {} \",!1!==e.opts.messages&&(l+=\" , message: '\"+v+\" should be boolean' \"),e.opts.verbose&&(l+=\" , schema: validate.schema\"+u+\" , parentSchema: validate.schema\"+e.schemaPath+\" , data: \"+m+\" \"),l+=\" } \"):l+=\" {} \",k=l,l=x.pop(),!e.compositeRule&&p?e.async?l+=\" throw new ValidationError([\"+k+\"]); \":l+=\" validate.errors = [\"+k+\"]; return false; \":l+=\" var err = \"+k+\"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \",l+=\" } else if ( \",f&&(l+=\" (\"+C+\" !== undefined && typeof \"+C+\" != 'number') || \"),l+=\" \"+o+\" == 'number' ? ( (\"+i+\" = \"+C+\" === undefined || \"+h+\" \"+A+\"= \"+C+\") ? \"+m+\" \"+w+\"= \"+h+\" : \"+m+\" \"+w+\" \"+C+\" ) : ( (\"+i+\" = \"+h+\" === true) ? \"+m+\" \"+w+\"= \"+C+\" : \"+m+\" \"+w+\" \"+C+\" ) || \"+m+\" !== \"+m+\") { var op\"+c+\" = \"+i+\" ? '\"+A+\"' : '\"+A+\"='; \",void 0===d&&(g=e.errSchemaPath+\"/\"+(S=v),C=h,f=b)):(s=A,(r=\"number\"==typeof I)&&f?(a=\"'\"+s+\"'\",l+=\" if ( \",f&&(l+=\" (\"+C+\" !== undefined && typeof \"+C+\" != 'number') || \"),l+=\" ( \"+C+\" === undefined || \"+I+\" \"+A+\"= \"+C+\" ? \"+m+\" \"+w+\"= \"+I+\" : \"+m+\" \"+w+\" \"+C+\" ) || \"+m+\" !== \"+m+\") { \"):(r&&void 0===d?(i=!0,g=e.errSchemaPath+\"/\"+(S=v),C=I,w+=\"=\"):(r&&(C=Math[y?\"min\":\"max\"](I,d)),I===(!r||C)?(i=!0,g=e.errSchemaPath+\"/\"+(S=v),w+=\"=\"):(i=!1,s+=\"=\")),a=\"'\"+s+\"'\",l+=\" if ( \",f&&(l+=\" (\"+C+\" !== undefined && typeof \"+C+\" != 'number') || \"),l+=\" \"+m+\" \"+w+\" \"+C+\" || \"+m+\" !== \"+m+\") { \")),S=S||t;(x=x||[]).push(l),l=\"\",!1!==e.createErrors?(l+=\" { keyword: '\"+(S||\"_limit\")+\"' , dataPath: (dataPath || '') + \"+e.errorPath+\" , schemaPath: \"+e.util.toQuotedString(g)+\" , params: { comparison: \"+a+\", limit: \"+C+\", exclusive: \"+i+\" } \",!1!==e.opts.messages&&(l=l+\" , message: 'should be \"+s+\" \"+(f?\"' + \"+C:C+\"'\")),e.opts.verbose&&(l=(l+=\" , schema: \")+(f?\"validate.schema\"+u:\"\"+d)+\" , parentSchema: validate.schema\"+e.schemaPath+\" , data: \"+m+\" \"),l+=\" } \"):l+=\" {} \";var x,k=l;return l=x.pop(),!e.compositeRule&&p?e.async?l+=\" throw new ValidationError([\"+k+\"]); \":l+=\" validate.errors = [\"+k+\"]; return false; \":l+=\" var err = \"+k+\"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \",l+=\" } \",p&&(l+=\" else { \"),l}},2407:function(e){\"use strict\";e.exports=function(e,t,n){var i,o=\" \",r=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+\"/\"+t,h=!e.opts.allErrors,d=\"data\"+(s||\"\"),u=e.opts.$data&&a&&a.$data,s=u?(o+=\" var schema\"+r+\" = \"+e.util.getData(a.$data,s,e.dataPathArr)+\"; \",\"schema\"+r):a;if(u||\"number\"==typeof a)return o+=\"if ( \",u&&(o+=\" (\"+s+\" !== undefined && typeof \"+s+\" != 'number') || \"),(r=[]).push(o+=\" \"+d+\".length \"+(\"maxItems\"==(i=t)?\">\":\"<\")+\" \"+s+\") { \"),o=\"\",!1!==e.createErrors?(o+=\" { keyword: '\"+(i||\"_limitItems\")+\"' , dataPath: (dataPath || '') + \"+e.errorPath+\" , schemaPath: \"+e.util.toQuotedString(c)+\" , params: { limit: \"+s+\" } \",!1!==e.opts.messages&&(o=(o=(o+=\" , message: 'should NOT have \")+(\"maxItems\"==t?\"more\":\"fewer\")+\" than \")+(u?\"' + \"+s+\" + '\":\"\"+a)+\" items' \"),e.opts.verbose&&(o=(o+=\" , schema: \")+(u?\"validate.schema\"+l:\"\"+a)+\" , parentSchema: validate.schema\"+e.schemaPath+\" , data: \"+d+\" \"),o+=\" } \"):o+=\" {} \",i=o,o=r.pop(),!e.compositeRule&&h?e.async?o+=\" throw new ValidationError([\"+i+\"]); \":o+=\" validate.errors = [\"+i+\"]; return false; \":o+=\" var err = \"+i+\"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \",o+=\"} \",h&&(o+=\" else { \"),o;throw new Error(t+\" must be number\")}},1250:function(e){\"use strict\";e.exports=function(e,t,n){var i,o=\" \",r=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+\"/\"+t,h=!e.opts.allErrors,d=\"data\"+(s||\"\"),u=e.opts.$data&&a&&a.$data,s=u?(o+=\" var schema\"+r+\" = \"+e.util.getData(a.$data,s,e.dataPathArr)+\"; \",\"schema\"+r):a;if(u||\"number\"==typeof a)return o+=\"if ( \",u&&(o+=\" (\"+s+\" !== undefined && typeof \"+s+\" != 'number') || \"),!1===e.opts.unicode?o+=\" \"+d+\".length \":o+=\" ucs2length(\"+d+\") \",(r=[]).push(o+=\" \"+(\"maxLength\"==(i=t)?\">\":\"<\")+\" \"+s+\") { \"),o=\"\",!1!==e.createErrors?(o+=\" { keyword: '\"+(i||\"_limitLength\")+\"' , dataPath: (dataPath || '') + \"+e.errorPath+\" , schemaPath: \"+e.util.toQuotedString(c)+\" , params: { limit: \"+s+\" } \",!1!==e.opts.messages&&(o=(o=(o+=\" , message: 'should NOT be \")+(\"maxLength\"==t?\"longer\":\"shorter\")+\" than \")+(u?\"' + \"+s+\" + '\":\"\"+a)+\" characters' \"),e.opts.verbose&&(o=(o+=\" , schema: \")+(u?\"validate.schema\"+l:\"\"+a)+\" , parentSchema: validate.schema\"+e.schemaPath+\" , data: \"+d+\" \"),o+=\" } \"):o+=\" {} \",i=o,o=r.pop(),!e.compositeRule&&h?e.async?o+=\" throw new ValidationError([\"+i+\"]); \":o+=\" validate.errors = [\"+i+\"]; return false; \":o+=\" var err = \"+i+\"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \",o+=\"} \",h&&(o+=\" else { \"),o;throw new Error(t+\" must be number\")}},2596:function(e){\"use strict\";e.exports=function(e,t,n){var i,o=\" \",r=e.level,s=e.dataLevel,a=e.schema[t],l=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+\"/\"+t,h=!e.opts.allErrors,d=\"data\"+(s||\"\"),u=e.opts.$data&&a&&a.$data,s=u?(o+=\" var schema\"+r+\" = \"+e.util.getData(a.$data,s,e.dataPathArr)+\"; \",\"schema\"+r):a;if(u||\"number\"==typeof a)return o+=\"if ( \",u&&(o+=\" (\"+s+\" !== undefined && typeof \"+s+\" != 'number') || \"),(r=[]).push(o+=\" Object.keys(\"+d+\").length \"+(\"maxProperties\"==(i=t)?\">\":\"<\")+\" \"+s+\") { \"),o=\"\",!1!==e.createErrors?(o+=\" { keyword: '\"+(i||\"_limitProperties\")+\"' , dataPath: (dataPath || '') + \"+e.errorPath+\" , schemaPath: \"+e.util.toQuotedString(c)+\" , params: { limit: \"+s+\" } \",!1!==e.opts.messages&&(o=(o=(o+=\" , message: 'should NOT have \")+(\"maxProperties\"==t?\"more\":\"fewer\")+\" than \")+(u?\"' + \"+s+\" + '\":\"\"+a)+\" properties' \"),e.opts.verbose&&(o=(o+=\" , schema: \")+(u?\"validate.schema\"+l:\"\"+a)+\" , parentSchema: validate.schema\"+e.schemaPath+\" , data: \"+d+\" \"),o+=\" } \"):o+=\" {} \",i=o,o=r.pop(),!e.compositeRule&&h?e.async?o+=\" throw new ValidationError([\"+i+\"]); \":o+=\" validate.errors = [\"+i+\"]; return false; \":o+=\" var err = \"+i+\"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \",o+=\"} \",h&&(o+=\" else { \"),o;throw new Error(t+\" must be number\")}},9486:function(e){\"use strict\";e.exports=function(e,t,n){var i=\" \",o=e.schema[t],r=e.schemaPath+e.util.getProperty(t),s=e.errSchemaPath+\"/\"+t,a=!e.opts.allErrors,l=e.util.copy(e),c=\"\",h=(l.level++,\"valid\"+l.level),d=l.baseId,u=!0,g=o;if(g)for(var p,m=-1,f=g.length-1;m \"+b+\") { \",w=h+\"[\"+b+\"]\",d.schema=x,d.schemaPath=a+\"[\"+b+\"]\",d.errSchemaPath=l+\"/\"+b,d.errorPath=e.util.getPathExpr(e.errorPath,b,e.opts.jsonPointers,!0),d.dataPathArr[p]=b,S=e.validate(d),d.baseId=f,e.util.varOccurences(S,m)<2?i+=\" \"+e.util.varReplace(S,m,w)+\" \":i+=\" var \"+m+\" = \"+w+\"; \"+S+\" \",i+=\" } \",c)&&(i+=\" if (\"+g+\") { \",u+=\"}\")}\"object\"==typeof v&&(e.opts.strictKeywords?\"object\"==typeof v&&0 \"+s.length+\") { for (var \"+o+\" = \"+s.length+\"; \"+o+\" < \"+h+\".length; \"+o+\"++) { \",d.errorPath=e.util.getPathExpr(e.errorPath,o,e.opts.jsonPointers,!0),w=h+\"[\"+o+\"]\",d.dataPathArr[p]=o,S=e.validate(d),d.baseId=f,e.util.varOccurences(S,m)<2?i+=\" \"+e.util.varReplace(S,m,w)+\" \":i+=\" var \"+m+\" = \"+w+\"; \"+S+\" \",c&&(i+=\" if (!\"+g+\") break; \"),i+=\" } } \",c)&&(i+=\" if (\"+g+\") { \",u+=\"}\")}else(e.opts.strictKeywords?\"object\"==typeof s&&0 1e-\"+e.opts.multipleOfPrecision+\" \":i+=\" division\"+o+\" !== parseInt(division\"+o+\") \",i+=\" ) \",d&&(i+=\" ) \");t=[],t.push(i+=\" ) { \"),i=\"\",!1!==e.createErrors?(i+=\" { keyword: 'multipleOf' , dataPath: (dataPath || '') + \"+e.errorPath+\" , schemaPath: \"+e.util.toQuotedString(l)+\" , params: { multipleOf: \"+r+\" } \",!1!==e.opts.messages&&(i=i+\" , message: 'should be multiple of \"+(d?\"' + \"+r:r+\"'\")),e.opts.verbose&&(i=(i+=\" , schema: \")+(d?\"validate.schema\"+a:\"\"+s)+\" , parentSchema: validate.schema\"+e.schemaPath+\" , data: \"+h+\" \"),i+=\" } \"):i+=\" {} \",o=i,i=t.pop();return!e.compositeRule&&c?e.async?i+=\" throw new ValidationError([\"+o+\"]); \":i+=\" validate.errors = [\"+o+\"]; return false; \":i+=\" var err = \"+o+\"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \",i+=\"} \",c&&(i+=\" else { \"),i}},7946:function(e){\"use strict\";e.exports=function(e,t,n){var i,o,r=\" \",s=e.level,a=e.dataLevel,l=e.schema[t],c=e.schemaPath+e.util.getProperty(t),t=e.errSchemaPath+\"/\"+t,h=!e.opts.allErrors,a=\"data\"+(a||\"\"),s=\"errs__\"+s,d=e.util.copy(e),u=(d.level++,\"valid\"+d.level);return(e.opts.strictKeywords?\"object\"==typeof l&&0=e.opts.loopRequired,v=e.opts.ownProperties;if(t){if(i+=\" var missing\"+o+\"; \",s){d||(i+=\" var \"+r+\" = validate.schema\"+a+\"; \");var I=\"' + \"+(k=\"schema\"+o+\"[\"+(w=\"i\"+o)+\"]\")+\" + '\";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(y,k,e.opts.jsonPointers)),i+=\" var \"+h+\" = true; \",d&&(i+=\" if (schema\"+o+\" === undefined) \"+h+\" = true; else if (!Array.isArray(schema\"+o+\")) \"+h+\" = false; else {\"),i+=\" for (var \"+w+\" = 0; \"+w+\" < \"+r+\".length; \"+w+\"++) { \"+h+\" = \"+c+\"[\"+r+\"[\"+w+\"]] !== undefined \",v&&(i+=\" && Object.prototype.hasOwnProperty.call(\"+c+\", \"+r+\"[\"+w+\"]) \"),i+=\"; if (!\"+h+\") break; } \",d&&(i+=\" } \");(x=x||[]).push(i+=\" if (!\"+h+\") { \"),i=\"\",!1!==e.createErrors?(i+=\" { keyword: 'required' , dataPath: (dataPath || '') + \"+e.errorPath+\" , schemaPath: \"+e.util.toQuotedString(l)+\" , params: { missingProperty: '\"+I+\"' } \",!1!==e.opts.messages&&(i+=\" , message: '\",e.opts._errorDataPathProperty?i+=\"is a required property\":i+=\"should have required property \\\\'\"+I+\"\\\\'\",i+=\"' \"),e.opts.verbose&&(i+=\" , schema: validate.schema\"+a+\" , parentSchema: validate.schema\"+e.schemaPath+\" , data: \"+c+\" \"),i+=\" } \"):i+=\" {} \";var b=i,i=x.pop()}else{i+=\" if ( \";var A=u;if(A)for(var w=-1,S=A.length-1;w 1) { \",r=e.schema.items&&e.schema.items.type,s=Array.isArray(r),!r||\"object\"==r||\"array\"==r||s&&(0<=r.indexOf(\"object\")||0<=r.indexOf(\"array\"))?o+=\" outer: for (;i--;) { for (j = i; j--;) { if (equal(\"+h+\"[i], \"+h+\"[j])) { \"+d+\" = false; break outer; } } } \":(o=(o+=\" var itemIndices = {}, item; for (;i--;) { var item = \"+h+\"[i]; \")+\" if (\"+e.util[\"checkDataType\"+(s?\"s\":\"\")](r,\"item\",e.opts.strictNumbers,!0)+\") continue; \",s&&(o+=\" if (typeof item == 'string') item = '\\\"' + item; \"),o+=\" if (typeof itemIndices[item] == 'number') { \"+d+\" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } \"),o+=\" } \",u&&(o+=\" } \"),(i=i||[]).push(o+=\" if (!\"+d+\") { \"),o=\"\",!1!==e.createErrors?(o+=\" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + \"+e.errorPath+\" , schemaPath: \"+e.util.toQuotedString(t)+\" , params: { i: i, j: j } \",!1!==e.opts.messages&&(o+=\" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' \"),e.opts.verbose&&(o=(o+=\" , schema: \")+(u?\"validate.schema\"+l:\"\"+a)+\" , parentSchema: validate.schema\"+e.schemaPath+\" , data: \"+h+\" \"),o+=\" } \"):o+=\" {} \",r=o,o=i.pop(),!e.compositeRule&&c?e.async?o+=\" throw new ValidationError([\"+r+\"]); \":o+=\" validate.errors = [\"+r+\"]; return false; \":o+=\" var err = \"+r+\"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \",o+=\" } \",c&&(o+=\" else { \")):c&&(o+=\" if (true) { \"),o}},1869:function(e){\"use strict\";e.exports=function(i,e,W){var t=\"\",n=!0===i.schema.$async,o=i.util.schemaHasRulesExcept(i.schema,i.RULES.all,\"$ref\"),r=i.self._getId(i.schema);if(i.opts.strictKeywords){var s=i.util.schemaUnknownRules(i.schema,i.RULES.keywords);if(s){s=\"unknown keyword: \"+s;if(\"log\"!==i.opts.strictKeywords)throw new Error(s);i.logger.warn(s)}}if(i.isTop&&(t+=\" var validate = \",n&&(i.async=!0,t+=\"async \"),t+=\"function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; \",r)&&(i.opts.sourceCode||i.opts.processCode)&&(t+=\" /*# sourceURL=\"+r+\" */ \"),\"boolean\"==typeof i.schema||!o&&!i.schema.$ref)l=i.level,c=i.dataLevel,R=i.schema[e=\"false schema\"],I=i.schemaPath+i.util.getProperty(e),b=i.errSchemaPath+\"/\"+e,g=!i.opts.allErrors,h=\"data\"+(c||\"\"),u=\"valid\"+l,!1===i.schema?(i.isTop?g=!0:t+=\" var \"+u+\" = false; \",(B=B||[]).push(t),t=\"\",!1!==i.createErrors?(t+=\" { keyword: 'false schema' , dataPath: (dataPath || '') + \"+i.errorPath+\" , schemaPath: \"+i.util.toQuotedString(b)+\" , params: {} \",!1!==i.opts.messages&&(t+=\" , message: 'boolean schema is false' \"),i.opts.verbose&&(t+=\" , schema: false , parentSchema: validate.schema\"+i.schemaPath+\" , data: \"+h+\" \"),t+=\" } \"):t+=\" {} \",E=t,t=B.pop(),!i.compositeRule&&g?i.async?t+=\" throw new ValidationError([\"+E+\"]); \":t+=\" validate.errors = [\"+E+\"]; return false; \":t+=\" var err = \"+E+\"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; \"):i.isTop?t+=n?\" return data; \":\" validate.errors = null; return true; \":t+=\" var \"+u+\" = true; \",i.isTop&&(t+=\" }; return validate; \");else{if(i.isTop){var a=i.isTop,l=i.level=0,c=i.dataLevel=0,h=\"data\";if(i.rootId=i.resolve.fullPath(i.self._getId(i.root.schema)),i.baseId=i.baseId||i.rootId,delete i.isTop,i.dataPathArr=[\"\"],void 0!==i.schema.default&&i.opts.useDefaults&&i.opts.strictDefaults){var d=\"default is ignored in the schema root\";if(\"log\"!==i.opts.strictDefaults)throw new Error(d);i.logger.warn(d)}t=(t+=\" var vErrors = null; \")+\" var errors = 0; \"+\" if (rootData === undefined) rootData = data; \"}else{l=i.level,h=\"data\"+((c=i.dataLevel)||\"\");if(r&&(i.baseId=i.resolve.url(i.baseId,r)),n&&!i.async)throw new Error(\"async schema in sync schema\");t+=\" var errs_\"+l+\" = errors;\"}var u=\"valid\"+l,g=!i.opts.allErrors,p=\"\",m=\"\",f=i.schema.type,C=Array.isArray(f);if(f&&i.opts.nullable&&!0===i.schema.nullable&&(C?-1==f.indexOf(\"null\")&&(f=f.concat(\"null\")):\"null\"!=f&&(f=[f,\"null\"],C=!0)),C&&1==f.length&&(f=f[0],C=!1),i.schema.$ref&&o){if(\"fail\"==i.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path \"'+i.errSchemaPath+'\" (see option extendRefs)');!0!==i.opts.extendRefs&&(o=!1,i.logger.warn('$ref: keywords ignored in schema at path \"'+i.errSchemaPath+'\"'))}if(i.schema.$comment&&i.opts.$comment&&(t+=\" \"+i.RULES.all.$comment.code(i,\"$comment\")),f){i.opts.coerceTypes&&(y=i.util.coerceToTypes(i.opts.coerceTypes,f));var y,v=i.RULES.types[f];if(y||C||!0===v||v&&!z(v)){var I=i.schemaPath+\".type\",b=i.errSchemaPath+\"/type\",I=i.schemaPath+\".type\",b=i.errSchemaPath+\"/type\";if(t+=\" if (\"+i.util[C?\"checkDataTypes\":\"checkDataType\"](f,h,i.opts.strictNumbers,!0)+\") { \",y){var A=\"dataType\"+l,w=\"coerced\"+l,S=(t+=\" var \"+A+\" = typeof \"+h+\"; var \"+w+\" = undefined; \",\"array\"==i.opts.coerceTypes&&(t+=\" if (\"+A+\" == 'object' && Array.isArray(\"+h+\") && \"+h+\".length == 1) { \"+h+\" = \"+h+\"[0]; \"+A+\" = typeof \"+h+\"; if (\"+i.util.checkDataType(i.schema.type,h,i.opts.strictNumbers)+\") \"+w+\" = \"+h+\"; } \"),t+=\" if (\"+w+\" !== undefined) ; \",y);if(S)for(var x,k=-1,H=S.length-1;k\",9:\"Array\"},s=\"UnquotedIdentifier\",a=\"QuotedIdentifier\",l=\"Rbracket\",c=\"Rparen\",d=\"Comma\",u=\"Colon\",r=\"Rbrace\",g=\"Number\",E=\"Current\",T=\"Expref\",R=\"Pipe\",_=\"Flatten\",p=\"Star\",m=\"Filter\",f=\"Lbrace\",C=\"Lbracket\",y=\"Lparen\",v=\"Literal\",I={\".\":\"Dot\",\"*\":p,\",\":d,\":\":u,\"{\":f,\"}\":r,\"]\":l,\"(\":y,\")\":c,\"@\":E},b={\"<\":!0,\">\":!0,\"=\":!0,\"!\":!0},A={\" \":!0,\"\\t\":!0,\"\\n\":!0};function $(e){return\"0\"<=e&&e<=\"9\"||\"-\"===e}function n(){}n.prototype={tokenize:function(e){var t,n,i=[];for(this._current=0;this._current\"===n?\"=\"===e[this._current]?(this._current++,{type:\"GTE\",value:\">=\",start:t}):{type:\"GT\",value:\">\",start:t}:\"=\"===n&&\"=\"===e[this._current]?(this._current++,{type:\"EQ\",value:\"==\",start:t}):void 0},_consumeLiteral:function(e){this._current++;for(var t=this._current,n=e.length;\"`\"!==e[this._current]&&this._currentNumber.MAX_SAFE_INTEGER||n=o.length)throw new SyntaxError(\"Unexpected end of JSON input\")}},t.stringify=function(e,t,n){if(v(e)){var i=0;switch(typeof(u=\"object\"==typeof n?n.space:n)){case\"number\":var o=101){t[0]=t[0].slice(0,-1);var i=t.length-1;for(var o=1;o= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},r=M-W,V=Math.floor,O=String.fromCharCode;function Z(e){throw new RangeError(L[e])}function N(e,t){var n=[];var i=e.length;while(i--)n[i]=t(e[i]);return n}function D(e,t){var n=e.split(\"@\");var i=\"\";if(n.length>1){i=n[0]+\"@\";e=n[1]}e=e.replace($,\".\");var o=e.split(\".\");var r=N(o,t).join(\".\");return i+r}function K(e){var t=[];var n=0;var i=e.length;while(n=55296&&o<=56319&&n>1;t+=V(t/n);for(;t>r*H>>1;o+=M)t=V(t/r);return V(o+(r+1)*t/(t+E))},J=function e(t){var n=[];var i=t.length;var o=0;var r=G;var s=P;var a=t.lastIndexOf(F);if(a<0)a=0;for(var l=0;l=128)Z(\"not-basic\");n.push(t.charCodeAt(l))}for(var c=a>0?a+1:0;c=i)Z(\"invalid-input\");var g=z(t.charCodeAt(c++));if(g>=M||g>V((B-o)/d))Z(\"overflow\");o+=g*d;var p=u<=s?W:u>=s+H?H:u-s;if(gV(B/m))Z(\"overflow\");d*=m}var f=n.length+1;s=Y(o-h,f,h==0);if(V(o/f)>B-r)Z(\"overflow\");r+=V(o/f);o%=f;n.splice(o++,0,r)}return String.fromCodePoint.apply(String,n)},U=function e(t){var n=[];t=K(t);var i=t.length;var o=G;var r=0;var s=P;var a=true;var l=false;var c=undefined;try{for(var h=t[Symbol.iterator](),d;!(a=(d=h.next()).done);a=true){var u=d.value;if(u<128)n.push(O(u))}}catch(e){l=true;c=e}finally{try{if(!a&&h.return)h.return()}finally{if(l)throw c}}var g=n.length;var p=g;if(g)n.push(F);while(p=o&&bV((B-r)/A))Z(\"overflow\");r+=(m-o)*A;o=m;var w=true;var S=false;var x=undefined;try{for(var k=t[Symbol.iterator](),E;!(w=(E=k.next()).done);w=true){var T=E.value;if(TB)Z(\"overflow\");if(T==o){var R=r;for(var _=M;;_+=M){var $=_<=s?W:_>=s+H?H:_-s;if(R<$)break;var L=R-$;var N=M-$;n.push(O(X($+L%N,0)));R=V(L/N)}n.push(O(X(R,0)));s=Y(r,A,p==g);r=0;++p}}}catch(e){S=true;x=e}finally{try{if(!w&&k.return)k.return()}finally{if(S)throw x}}++r;++o}return n.join(\"\")},Q,q,C={version:\"2.1.0\",ucs2:{decode:K,encode:function e(t){return String.fromCodePoint.apply(String,k(t))}},decode:J,encode:U,toASCII:function e(t){return D(t,function(e){return _.test(e)?\"xn--\"+U(e):e})},toUnicode:function e(t){return D(t,function(e){return R.test(e)?J(e.slice(4).toLowerCase()):e})}},h={};function m(e){var t=e.charCodeAt(0);var n=void 0;if(t<16)n=\"%0\"+t.toString(16).toUpperCase();else if(t<128)n=\"%\"+t.toString(16).toUpperCase();else if(t<2048)n=\"%\"+(t>>6|192).toString(16).toUpperCase()+\"%\"+(t&63|128).toString(16).toUpperCase();else n=\"%\"+(t>>12|224).toString(16).toUpperCase()+\"%\"+(t>>6&63|128).toString(16).toUpperCase()+\"%\"+(t&63|128).toString(16).toUpperCase();return n}function c(e){var t=\"\";var n=0;var i=e.length;while(n=194&&o<224){if(i-n>=6){var r=parseInt(e.substr(n+4,2),16);t+=String.fromCharCode((o&31)<<6|r&63)}else t+=e.substr(n,6);n+=6}else if(o>=224){if(i-n>=9){var s=parseInt(e.substr(n+4,2),16);var a=parseInt(e.substr(n+7,2),16);t+=String.fromCharCode((o&15)<<12|(s&63)<<6|a&63)}else t+=e.substr(n,9);n+=9}else{t+=e.substr(n,3);n+=3}}return t}function d(e,n){function t(e){var t=c(e);return!t.match(n.UNRESERVED)?e:t}if(e.scheme)e.scheme=String(e.scheme).replace(n.PCT_ENCODED,t).toLowerCase().replace(n.NOT_SCHEME,\"\");if(e.userinfo!==undefined)e.userinfo=String(e.userinfo).replace(n.PCT_ENCODED,t).replace(n.NOT_USERINFO,m).replace(n.PCT_ENCODED,p);if(e.host!==undefined)e.host=String(e.host).replace(n.PCT_ENCODED,t).toLowerCase().replace(n.NOT_HOST,m).replace(n.PCT_ENCODED,p);if(e.path!==undefined)e.path=String(e.path).replace(n.PCT_ENCODED,t).replace(e.scheme?n.NOT_PATH:n.NOT_PATH_NOSCHEME,m).replace(n.PCT_ENCODED,p);if(e.query!==undefined)e.query=String(e.query).replace(n.PCT_ENCODED,t).replace(n.NOT_QUERY,m).replace(n.PCT_ENCODED,p);if(e.fragment!==undefined)e.fragment=String(e.fragment).replace(n.PCT_ENCODED,t).replace(n.NOT_FRAGMENT,m).replace(n.PCT_ENCODED,p);return e}function w(e){return e.replace(/^0*(.*)/,\"$1\")||\"0\"}function S(e,t){var n=e.match(t.IPV4ADDRESS)||[];var i=A(n,2),o=i[1];if(o)return o.split(\".\").map(w).join(\".\");else return e}function ee(e,t){var n=e.match(t.IPV6ADDRESS)||[];var i=A(n,3),o=i[1],r=i[2];if(o){var s=o.toLowerCase().split(\"::\").reverse(),a=A(s,2),l=a[0],c=a[1];var h=c?c.split(\":\").map(w):[];var d=l.split(\":\").map(w);var u=t.IPV4ADDRESS.test(d[d.length-1]);var g=u?7:8;var p=d.length-g;var m=Array(g);for(var f=0;f1){var I=m.slice(0,y.index);var b=m.slice(y.index+y.length);v=I.join(\":\")+\"::\"+b.join(\":\")}else v=m.join(\":\");if(r)v+=\"%\"+r;return v}else return e}var te=/^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i,ne=\"\".match(/(){0}/)[1]===undefined;function s(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var n={};var i=t.iri!==false?l:a;if(t.reference===\"suffix\")e=(t.scheme?t.scheme+\":\":\"\")+\"//\"+e;var o=e.match(te);if(o){if(ne){n.scheme=o[1];n.userinfo=o[3];n.host=o[4];n.port=parseInt(o[5],10);n.path=o[6]||\"\";n.query=o[7];n.fragment=o[8];if(isNaN(n.port))n.port=o[5]}else{n.scheme=o[1]||undefined;n.userinfo=e.indexOf(\"@\")!==-1?o[3]:undefined;n.host=e.indexOf(\"//\")!==-1?o[4]:undefined;n.port=parseInt(o[5],10);n.path=o[6]||\"\";n.query=e.indexOf(\"?\")!==-1?o[7]:undefined;n.fragment=e.indexOf(\"#\")!==-1?o[8]:undefined;if(isNaN(n.port))n.port=e.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/)?o[4]:undefined}if(n.host)n.host=ee(S(n.host,i),i);if(n.scheme===undefined&&n.userinfo===undefined&&n.host===undefined&&n.port===undefined&&!n.path&&n.query===undefined)n.reference=\"same-document\";else if(n.scheme===undefined)n.reference=\"relative\";else if(n.fragment===undefined)n.reference=\"absolute\";else n.reference=\"uri\";if(t.reference&&t.reference!==\"suffix\"&&t.reference!==n.reference)n.error=n.error||\"URI is not a \"+t.reference+\" reference.\";var r=h[(t.scheme||n.scheme||\"\").toLowerCase()];if(!t.unicodeSupport&&(!r||!r.unicodeSupport)){if(n.host&&(t.domainHost||r&&r.domainHost))try{n.host=C.toASCII(n.host.replace(i.PCT_ENCODED,c).toLowerCase())}catch(e){n.error=n.error||\"Host's domain name can not be converted to ASCII via punycode: \"+e}d(n,a)}else d(n,i);if(r&&r.parse)r.parse(n,t)}else n.error=n.error||\"URI can not be parsed.\";return n}function ie(e,t){var n=t.iri!==false?l:a;var i=[];if(e.userinfo!==undefined){i.push(e.userinfo);i.push(\"@\")}if(e.host!==undefined)i.push(ee(S(String(e.host),n),n).replace(n.IPV6ADDRESS,function(e,t,n){return\"[\"+t+(n?\"%25\"+n:\"\")+\"]\"}));if(typeof e.port===\"number\"||typeof e.port===\"string\"){i.push(\":\");i.push(String(e.port))}return i.length?i.join(\"\"):undefined}var oe=/^\\.\\.?\\//,re=/^\\/\\.(\\/|$)/,se=/^\\/\\.\\.(\\/|$)/,ae=/^\\/?(?:.|\\n)*?(?=\\/|$)/;function u(e){var t=[];while(e.length)if(e.match(oe))e=e.replace(oe,\"\");else if(e.match(re))e=e.replace(re,\"/\");else if(e.match(se)){e=e.replace(se,\"/\");t.pop()}else if(e===\".\"||e===\"..\")e=\"\";else{var n=e.match(ae);if(n){var i=n[0];e=e.slice(i.length);t.push(i)}else throw new Error(\"Unexpected dot segment condition\")}return t.join(\"\")}function g(t){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var e=n.iri?l:a;var i=[];var o=h[(n.scheme||t.scheme||\"\").toLowerCase()];if(o&&o.serialize)o.serialize(t,n);if(t.host)if(e.IPV6ADDRESS.test(t.host));else if(n.domainHost||o&&o.domainHost)try{t.host=!n.iri?C.toASCII(t.host.replace(e.PCT_ENCODED,c).toLowerCase()):C.toUnicode(t.host)}catch(e){t.error=t.error||\"Host's domain name can not be converted to \"+(!n.iri?\"ASCII\":\"Unicode\")+\" via punycode: \"+e}d(t,e);if(n.reference!==\"suffix\"&&t.scheme){i.push(t.scheme);i.push(\":\")}var r=ie(t,n);if(r!==undefined){if(n.reference!==\"suffix\")i.push(\"//\");i.push(r);if(t.path&&t.path.charAt(0)!==\"/\")i.push(\"/\")}if(t.path!==undefined){var s=t.path;if(!n.absolutePath&&(!o||!o.absolutePath))s=u(s);if(r===undefined)s=s.replace(/^\\/\\//,\"/%2F\");i.push(s)}if(t.query!==undefined){i.push(\"?\");i.push(t.query)}if(t.fragment!==undefined){i.push(\"#\");i.push(t.fragment)}return i.join(\"\")}function le(e,t){var n=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var i=arguments[3];var o={};if(!i){e=s(g(e,n),n);t=s(g(t,n),n)}n=n||{};if(!n.tolerant&&t.scheme){o.scheme=t.scheme;o.userinfo=t.userinfo;o.host=t.host;o.port=t.port;o.path=u(t.path||\"\");o.query=t.query}else{if(t.userinfo!==undefined||t.host!==undefined||t.port!==undefined){o.userinfo=t.userinfo;o.host=t.host;o.port=t.port;o.path=u(t.path||\"\");o.query=t.query}else{if(!t.path){o.path=e.path;if(t.query!==undefined)o.query=t.query;else o.query=e.query}else{if(t.path.charAt(0)===\"/\")o.path=u(t.path);else{if((e.userinfo!==undefined||e.host!==undefined||e.port!==undefined)&&!e.path)o.path=\"/\"+t.path;else if(!e.path)o.path=t.path;else o.path=e.path.slice(0,e.path.lastIndexOf(\"/\")+1)+t.path;o.path=u(o.path)}o.query=t.query}o.userinfo=e.userinfo;o.host=e.host;o.port=e.port}o.scheme=e.scheme}o.fragment=t.fragment;return o}function ce(e,t,n){var i=x({scheme:\"null\"},n);return g(le(s(e,i),s(t,i),i,true),i)}function ue(e,t){if(typeof e===\"string\")e=g(s(e,t),t);else if(i(e)===\"object\")e=s(g(e,t),t);return e}function ge(e,t,n){if(typeof e===\"string\")e=g(s(e,n),n);else if(i(e)===\"object\")e=g(e,n);if(typeof t===\"string\")t=g(s(t,n),n);else if(i(t)===\"object\")t=g(t,n);return e===t}function pe(e,t){return e&&e.toString().replace(!t||!t.iri?a.ESCAPE:l.ESCAPE,m)}function y(e,t){return e&&e.toString().replace(!t||!t.iri?a.PCT_ENCODED:l.PCT_ENCODED,c)}var n={scheme:\"http\",domainHost:true,parse:function e(t,n){if(!t.host)t.error=t.error||\"HTTP URIs must have a host.\";return t},serialize:function e(t,n){var i=String(t.scheme).toLowerCase()===\"https\";if(t.port===(i?443:80)||t.port===\"\")t.port=undefined;if(!t.path)t.path=\"/\";return t}},me={scheme:\"https\",domainHost:n.domainHost,parse:n.parse,serialize:n.serialize};function fe(e){return typeof e.secure===\"boolean\"?e.secure:String(e.scheme).toLowerCase()===\"wss\"}var o={scheme:\"ws\",domainHost:true,parse:function e(t,n){var i=t;i.secure=fe(i);i.resourceName=(i.path||\"/\")+(i.query?\"?\"+i.query:\"\");i.path=undefined;i.query=undefined;return i},serialize:function e(t,n){if(t.port===(fe(t)?443:80)||t.port===\"\")t.port=undefined;if(typeof t.secure===\"boolean\"){t.scheme=t.secure?\"wss\":\"ws\";t.secure=undefined}if(t.resourceName){var i=t.resourceName.split(\"?\"),o=A(i,2),r=o[0],s=o[1];t.path=r&&r!==\"/\"?r:undefined;t.query=s;t.resourceName=undefined}t.fragment=undefined;return t}},Ce={scheme:\"wss\",domainHost:o.domainHost,parse:o.parse,serialize:o.serialize},ye={},ve,Ie=\"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\"+(true?\"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\":\"\")+\"]\",f=\"[0-9A-Fa-f]\",be=de(de(\"%[EFef]\"+f+\"%\"+f+f+\"%\"+f+f)+\"|\"+de(\"%[89A-Fa-f]\"+f+\"%\"+f+f)+\"|\"+de(\"%\"+f+f)),Ae=\"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\",we,Se=he(\"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\",'[\\\\\"\\\\\\\\]'),xe=\"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\",ke=new RegExp(Ie,\"g\"),v=new RegExp(be,\"g\"),Ee=new RegExp(he(\"[^]\",Ae,\"[\\\\.]\",'[\\\\\"]',Se),\"g\"),Te=new RegExp(he(\"[^]\",Ie,xe),\"g\"),Re=Te;function I(e){var t=c(e);return!t.match(ke)?e:t}var _e={scheme:\"mailto\",parse:function e(t,n){var i=t;var o=i.to=i.path?i.path.split(\",\"):[];i.path=undefined;if(i.query){var r=false;var s={};var a=i.query.split(\"&\");for(var l=0,c=a.length;l1&&arguments[1]!==undefined?arguments[1]:1;var n=t>0?e.toFixed(t).replace(/0+$/,\"\").replace(/\\.$/,\"\"):e.toString();return n||\"0\"}var r=function(){function p(e,t,n,i){s(this,p);var g=this;function o(e){if(e.startsWith(\"hsl\")){var t=e.match(/([\\-\\d\\.e]+)/g).map(Number),n=m(t,4),i=n[0],o=n[1],r=n[2],s=n[3];if(s===undefined)s=1;i/=360;o/=100;r/=100;g.hsla=[i,o,r,s]}else if(e.startsWith(\"rgb\")){var a=e.match(/([\\-\\d\\.e]+)/g).map(Number),l=m(a,4),c=l[0],h=l[1],d=l[2],u=l[3];if(u===undefined)u=1;g.rgba=[c,h,d,u]}else if(e.startsWith(\"#\"))g.rgba=p.hexToRgb(e);else g.rgba=p.nameToRgb(e)||p.hexToRgb(e)}if(e===undefined);else if(Array.isArray(e))this.rgba=e;else if(n===undefined){var r=e&&\"\"+e;if(r)o(r.toLowerCase())}else this.rgba=[e,t,n,i===undefined?1:i]}e(p,[{key:\"printRGB\",value:function e(t){var n=t?this.rgba:this.rgba.slice(0,3),i=n.map(function(e,t){return a(e,t===3?3:0)});return t?\"rgba(\"+i+\")\":\"rgb(\"+i+\")\"}},{key:\"printHSL\",value:function e(t){var n=[360,100,100,1],i=[\"\",\"%\",\"%\",\"\"];var o=t?this.hsla:this.hsla.slice(0,3),r=o.map(function(e,t){return a(e*n[t],t===3?3:1)+i[t]});return t?\"hsla(\"+r+\")\":\"hsl(\"+r+\")\"}},{key:\"printHex\",value:function e(t){var n=this.hex;return t?n:n.substring(0,7)}},{key:\"rgba\",get:function e(){if(this._rgba)return this._rgba;if(!this._hsla)throw new Error(\"No color is set\");return this._rgba=p.hslToRgb(this._hsla)},set:function e(t){if(t.length===3)t[3]=1;this._rgba=t;this._hsla=null}},{key:\"rgbString\",get:function e(){return this.printRGB()}},{key:\"rgbaString\",get:function e(){return this.printRGB(true)}},{key:\"hsla\",get:function e(){if(this._hsla)return this._hsla;if(!this._rgba)throw new Error(\"No color is set\");return this._hsla=p.rgbToHsl(this._rgba)},set:function e(t){if(t.length===3)t[3]=1;this._hsla=t;this._rgba=null}},{key:\"hslString\",get:function e(){return this.printHSL()}},{key:\"hslaString\",get:function e(){return this.printHSL(true)}},{key:\"hex\",get:function e(){var t=this.rgba,n=t.map(function(e,t){return t<3?e.toString(16):Math.round(e*255).toString(16)});return\"#\"+n.map(function(e){return e.padStart(2,\"0\")}).join(\"\")},set:function e(t){this.rgba=p.hexToRgb(t)}}],[{key:\"hexToRgb\",value:function e(t){var n=(t.startsWith(\"#\")?t.slice(1):t).replace(/^(\\w{3})$/,\"$1F\").replace(/^(\\w)(\\w)(\\w)(\\w)$/,\"$1$1$2$2$3$3$4$4\").replace(/^(\\w{6})$/,\"$1FF\");if(!n.match(/^([0-9a-fA-F]{8})$/))throw new Error(\"Unknown hex color; \"+t);var i=n.match(/^(\\w\\w)(\\w\\w)(\\w\\w)(\\w\\w)$/).slice(1).map(function(e){return parseInt(e,16)});i[3]=i[3]/255;return i}},{key:\"nameToRgb\",value:function e(t){var n=t.toLowerCase().replace(\"at\",\"T\").replace(/[aeiouyldf]/g,\"\").replace(\"ght\",\"L\").replace(\"rk\",\"D\").slice(-5,4),i=o[n];return i===undefined?i:p.hexToRgb(i.replace(/\\-/g,\"00\").padStart(6,\"f\"))}},{key:\"rgbToHsl\",value:function e(t){var n=m(t,4),i=n[0],o=n[1],r=n[2],s=n[3];i/=255;o/=255;r/=255;var a=Math.max(i,o,r),l=Math.min(i,o,r);var c=void 0,h=void 0,d=(a+l)/2;if(a===l)c=h=0;else{var u=a-l;h=d>.5?u/(2-a-l):u/(a+l);switch(a){case i:c=(o-r)/u+(o1)i-=1;if(i<1/6)return t+(n-t)*6*i;if(i<1/2)return n;if(i<2/3)return t+(n-t)*(2/3-i)*6;return t};var d=r<.5?r*(1+o):r+o-r*o,u=2*r-d;a=h(u,d,i+1/3);l=h(u,d,i);c=h(u,d,i-1/3)}var g=[a*255,l*255,c*255].map(Math.round);g[3]=s;return g}}]);return p}(),n=function(){function r(){s(this,r);this._events=[]}e(r,[{key:\"add\",value:function e(t,n,i){t.addEventListener(n,i,false);this._events.push({target:t,type:n,handler:i})}},{key:\"remove\",value:function e(n,i,o){this._events=this._events.filter(function(e){var t=true;if(n&&n!==e.target)t=false;if(i&&i!==e.type)t=false;if(o&&o!==e.handler)t=false;if(t)r._doRemove(e.target,e.type,e.handler);return!t})}},{key:\"destroy\",value:function e(){this._events.forEach(function(e){return r._doRemove(e.target,e.type,e.handler)});this._events=[]}}],[{key:\"_doRemove\",value:function e(t,n,i){t.removeEventListener(n,i,false)}}]);return r}();function l(e){var t=document.createElement(\"div\");t.innerHTML=e;return t.firstElementChild}function c(e,h,d){var u=false;function g(e,t,n){return Math.max(t,Math.min(e,n))}function i(e,t,n){if(n)u=true;if(!u)return;e.preventDefault();var i=h.getBoundingClientRect(),o=i.width,r=i.height,s=t.clientX,a=t.clientY;var l=g(s-i.left,0,o),c=g(a-i.top,0,r);d(l/o,c/r)}function t(e,t){var n=e.buttons===undefined?e.which:e.buttons;if(n===1)i(e,e,t);else u=false}function n(e,t){if(e.touches.length===1)i(e,e.touches[0],t);else u=false}e.add(h,\"mousedown\",function(e){t(e,true)});e.add(h,\"touchstart\",function(e){n(e,true)});e.add(window,\"mousemove\",t);e.add(h,\"touchmove\",n);e.add(window,\"mouseup\",function(e){u=false});e.add(h,\"touchend\",function(e){u=false});e.add(h,\"touchcancel\",function(e){u=false})}var b=\"linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0 / 2em 2em,\\n linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em / 2em 2em\",A=360,h=\"keydown\",d=\"mousedown\",u=\"focusin\";function w(e,t){return(t||document).querySelector(e)}function g(e){e.preventDefault();e.stopPropagation()}function p(e,t,n,i,o){e.add(t,h,function(e){if(n.indexOf(e.key)>=0){if(o)g(e);i(e)}})}var t=function(){function t(e){s(this,t);this.settings={popup:\"right\",layout:\"default\",alpha:true,editor:true,editorFormat:\"hex\",cancelButton:false,defaultColor:\"#0cf\"};this._events=new n;this.onChange=null;this.onDone=null;this.onOpen=null;this.onClose=null;this.setOptions(e)}e(t,[{key:\"setOptions\",value:function e(t){var n=this;if(!t)return;var i=this.settings;function o(e,t,n){for(var i in e){if(n&&n.indexOf(i)>=0)continue;t[i]=e[i]}}if(t instanceof HTMLElement)i.parent=t;else{if(i.parent&&t.parent&&i.parent!==t.parent){this._events.remove(i.parent);this._popupInited=false}o(t,i);if(t.onChange)this.onChange=t.onChange;if(t.onDone)this.onDone=t.onDone;if(t.onOpen)this.onOpen=t.onOpen;if(t.onClose)this.onClose=t.onClose;var r=t.color||t.colour;if(r)this._setColor(r)}var s=i.parent;if(s&&i.popup&&!this._popupInited){var a=function e(t){return n.openHandler(t)};this._events.add(s,\"click\",a);p(this._events,s,[\" \",\"Spacebar\",\"Enter\"],a);this._popupInited=true}else if(t.parent&&!i.popup)this.show()}},{key:\"openHandler\",value:function e(t){if(this.show()){t&&t.preventDefault();this.settings.parent.style.pointerEvents=\"none\";var n=t&&t.type===h?this._domEdit:this.domElement;setTimeout(function(){return n.focus()},100);if(this.onOpen)this.onOpen(this.colour)}}},{key:\"closeHandler\",value:function e(t){var n=t&&t.type;var i=false;if(!t)i=true;else if(n===d||n===u){var o=(this.__containedEvent||0)+100;if(t.timeStamp>o)i=true}else{g(t);i=true}if(i&&this.hide()){this.settings.parent.style.pointerEvents=\"\";if(n!==d)this.settings.parent.focus();if(this.onClose)this.onClose(this.colour)}}},{key:\"movePopup\",value:function e(t,n){this.closeHandler();this.setOptions(t);if(n)this.openHandler()}},{key:\"setColor\",value:function e(t,n){this._setColor(t,{silent:n})}},{key:\"_setColor\",value:function e(t,n){if(typeof t===\"string\")t=t.trim();if(!t)return;n=n||{};var i=void 0;try{i=new r(t)}catch(e){if(n.failSilently)return;throw e}if(!this.settings.alpha){var o=i.hsla;o[3]=1;i.hsla=o}this.colour=this.color=i;this._setHSLA(null,null,null,null,n)}},{key:\"setColour\",value:function e(t,n){this.setColor(t,n)}},{key:\"show\",value:function e(){var t=this.settings.parent;if(!t)return false;if(this.domElement){var n=this._toggleDOM(true);this._setPosition();return n}var i=this.settings.template||'
    ';var o=l(i);this.domElement=o;this._domH=w(\".picker_hue\",o);this._domSL=w(\".picker_sl\",o);this._domA=w(\".picker_alpha\",o);this._domEdit=w(\".picker_editor input\",o);this._domSample=w(\".picker_sample\",o);this._domOkay=w(\".picker_done button\",o);this._domCancel=w(\".picker_cancel button\",o);o.classList.add(\"layout_\"+this.settings.layout);if(!this.settings.alpha)o.classList.add(\"no_alpha\");if(!this.settings.editor)o.classList.add(\"no_editor\");if(!this.settings.cancelButton)o.classList.add(\"no_cancel\");this._ifPopup(function(){return o.classList.add(\"popup\")});this._setPosition();if(this.colour)this._updateUI();else this._setColor(this.settings.defaultColor);this._bindEvents();return true}},{key:\"hide\",value:function e(){return this._toggleDOM(false)}},{key:\"destroy\",value:function e(){this._events.destroy();if(this.domElement)this.settings.parent.removeChild(this.domElement)}},{key:\"_bindEvents\",value:function e(){var n=this;var i=this,o=this.domElement,r=this._events;function s(e,t,n){r.add(e,t,n)}s(o,\"click\",function(e){return e.preventDefault()});c(r,this._domH,function(e,t){return i._setHSLA(e)});c(r,this._domSL,function(e,t){return i._setHSLA(null,e,1-t)});if(this.settings.alpha)c(r,this._domA,function(e,t){return i._setHSLA(null,null,null,1-t)});var t=this._domEdit;{s(t,\"input\",function(e){i._setColor(this.value,{fromEditor:true,failSilently:true})});s(t,\"focus\",function(e){var t=this;if(t.selectionStart===t.selectionEnd)t.select()})}this._ifPopup(function(){var e=function e(t){return n.closeHandler(t)};s(window,d,e);s(window,u,e);p(r,o,[\"Esc\",\"Escape\"],e);var t=function e(t){n.__containedEvent=t.timeStamp};s(o,d,t);s(o,u,t);s(n._domCancel,\"click\",e)});var a=function e(t){n._ifPopup(function(){return n.closeHandler(t)});if(n.onDone)n.onDone(n.colour)};s(this._domOkay,\"click\",a);p(r,o,[\"Enter\"],a)}},{key:\"_setPosition\",value:function e(){var n=this.settings.parent,i=this.domElement;if(n!==i.parentNode)n.appendChild(i);this._ifPopup(function(e){if(getComputedStyle(n).position===\"static\")n.style.position=\"relative\";var t=e===true?\"popup_right\":\"popup_\"+e;[\"popup_top\",\"popup_bottom\",\"popup_left\",\"popup_right\"].forEach(function(e){if(e===t)i.classList.add(e);else i.classList.remove(e)});i.classList.add(t)})}},{key:\"_setHSLA\",value:function e(t,n,i,o,r){r=r||{};var s=this.colour,a=s.hsla;[t,n,i,o].forEach(function(e,t){if(e||e===0)a[t]=e});s.hsla=a;this._updateUI(r);if(this.onChange&&!r.silent)this.onChange(s)}},{key:\"_updateUI\",value:function e(t){if(!this.domElement)return;t=t||{};var n=this.colour,i=n.hsla,o=\"hsl(\"+i[0]*A+\", 100%, 50%)\",r=n.hslString,s=n.hslaString;var a=this._domH,l=this._domSL,c=this._domA,h=w(\".picker_selector\",a),d=w(\".picker_selector\",l),u=w(\".picker_selector\",c);function g(e,t,n){t.style.left=n*100+\"%\"}function p(e,t,n){t.style.top=n*100+\"%\"}g(a,h,i[0]);this._domSL.style.backgroundColor=this._domH.style.color=o;g(l,d,i[1]);p(l,d,1-i[2]);l.style.color=r;p(c,u,1-i[3]);var m=r,f=m.replace(\"hsl\",\"hsla\").replace(\")\",\", 0)\"),C=\"linear-gradient(\"+[m,f]+\")\";this._domA.style.background=C+\", \"+b;if(!t.fromEditor){var y=this.settings.editorFormat,v=this.settings.alpha;var I=void 0;switch(y){case\"rgb\":I=n.printRGB(v);break;case\"hsl\":I=n.printHSL(v);break;default:I=n.printHex(v)}this._domEdit.value=I}this._domSample.style.color=s}},{key:\"_ifPopup\",value:function e(t,n){if(this.settings.parent&&this.settings.popup)t&&t(this.settings.popup);else n&&n()}},{key:\"_toggleDOM\",value:function e(t){var n=this.domElement;if(!n)return false;var i=t?\"\":\"none\",o=n.style.display!==i;if(o)n.style.display=i;return o}}]);return t}(),i=document.createElement(\"style\");return i.textContent='.picker_wrapper.no_alpha .picker_alpha{display:none}.picker_wrapper.no_editor .picker_editor{position:absolute;z-index:-1;opacity:0}.picker_wrapper.no_cancel .picker_cancel{display:none}.layout_default.picker_wrapper{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:stretch;font-size:10px;width:25em;padding:.5em}.layout_default.picker_wrapper input,.layout_default.picker_wrapper button{font-size:1rem}.layout_default.picker_wrapper>*{margin:.5em}.layout_default.picker_wrapper::before{content:\"\";display:block;width:100%;height:0;order:1}.layout_default .picker_slider,.layout_default .picker_selector{padding:1em}.layout_default .picker_hue{width:100%}.layout_default .picker_sl{flex:1 1 auto}.layout_default .picker_sl::before{content:\"\";display:block;padding-bottom:100%}.layout_default .picker_editor{order:1;width:6.5rem}.layout_default .picker_editor input{width:100%;height:100%}.layout_default .picker_sample{order:1;flex:1 1 auto}.layout_default .picker_done,.layout_default .picker_cancel{order:1}.picker_wrapper{box-sizing:border-box;background:#f2f2f2;box-shadow:0 0 0 1px silver;cursor:default;font-family:sans-serif;color:#444;pointer-events:auto}.picker_wrapper:focus{outline:none}.picker_wrapper button,.picker_wrapper input{box-sizing:border-box;border:none;box-shadow:0 0 0 1px silver;outline:none}.picker_wrapper button:focus,.picker_wrapper button:active,.picker_wrapper input:focus,.picker_wrapper input:active{box-shadow:0 0 2px 1px #1e90ff}.picker_wrapper button{padding:.4em .6em;cursor:pointer;background-color:#f5f5f5;background-image:linear-gradient(0deg, gainsboro, transparent)}.picker_wrapper button:active{background-image:linear-gradient(0deg, transparent, gainsboro)}.picker_wrapper button:hover{background-color:#fff}.picker_selector{position:absolute;z-index:1;display:block;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border:2px solid #fff;border-radius:100%;box-shadow:0 0 3px 1px #67b9ff;background:currentColor;cursor:pointer}.picker_slider .picker_selector{border-radius:2px}.picker_hue{position:relative;background-image:linear-gradient(90deg, red, yellow, lime, cyan, blue, magenta, red);box-shadow:0 0 0 1px silver}.picker_sl{position:relative;box-shadow:0 0 0 1px silver;background-image:linear-gradient(180deg, white, rgba(255, 255, 255, 0) 50%),linear-gradient(0deg, black, rgba(0, 0, 0, 0) 50%),linear-gradient(90deg, #808080, rgba(128, 128, 128, 0))}.picker_alpha,.picker_sample{position:relative;background:linear-gradient(45deg, lightgrey 25%, transparent 25%, transparent 75%, lightgrey 75%) 0 0/2em 2em,linear-gradient(45deg, lightgrey 25%, white 25%, white 75%, lightgrey 75%) 1em 1em/2em 2em;box-shadow:0 0 0 1px silver}.picker_alpha .picker_selector,.picker_sample .picker_selector{background:none}.picker_editor input{font-family:monospace;padding:.2em .4em}.picker_sample::before{content:\"\";position:absolute;display:block;width:100%;height:100%;background:currentColor}.picker_arrow{position:absolute;z-index:-1}.picker_wrapper.popup{position:absolute;z-index:2;margin:1.5em}.picker_wrapper.popup,.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{background:#f2f2f2;box-shadow:0 0 10px 1px rgba(0,0,0,.4)}.picker_wrapper.popup .picker_arrow{width:3em;height:3em;margin:0}.picker_wrapper.popup .picker_arrow::before,.picker_wrapper.popup .picker_arrow::after{content:\"\";display:block;position:absolute;top:0;left:0;z-index:-99}.picker_wrapper.popup .picker_arrow::before{width:100%;height:100%;-webkit-transform:skew(45deg);transform:skew(45deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.picker_wrapper.popup .picker_arrow::after{width:150%;height:150%;box-shadow:none}.popup.popup_top{bottom:100%;left:0}.popup.popup_top .picker_arrow{bottom:0;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.popup.popup_bottom{top:100%;left:0}.popup.popup_bottom .picker_arrow{top:0;left:0;-webkit-transform:rotate(90deg) scale(1, -1);transform:rotate(90deg) scale(1, -1)}.popup.popup_left{top:0;right:100%}.popup.popup_left .picker_arrow{top:0;right:0;-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.popup.popup_right{top:0;left:100%}.popup.popup_right .picker_arrow{top:0;left:0}',document.documentElement.firstElementChild.appendChild(i),t.StyleElement=i,t}()},1262:function(h,e,t){\"use strict\";function o(e){return(o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function s(e,t){for(var n=0;n=a.length)return c;throw new C(\"Unexpected character \"+JSON.stringify(a[l]),l);function i(){h();var e=function(){if(a.charCodeAt(l)!==I)return!1;c+=\"{\",l++,h();var e=!0;for(;l=a.length)return c+=a.slice(e,l)+\"0\",1;p(e)}function f(){throw new C(\"Colon expected\",l)}}},894:function(e){\"use strict\";e.exports=JSON.parse('{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"$id\":\"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\"description\":\"Meta-schema for $data reference (JSON Schema extension proposal)\",\"type\":\"object\",\"required\":[\"$data\"],\"properties\":{\"$data\":{\"type\":\"string\",\"anyOf\":[{\"format\":\"relative-json-pointer\"},{\"format\":\"json-pointer\"}]}},\"additionalProperties\":false}')},7171:function(e){\"use strict\";e.exports=JSON.parse('{\"id\":\"http://json-schema.org/draft-04/schema#\",\"$schema\":\"http://json-schema.org/draft-04/schema#\",\"description\":\"Core schema meta-schema\",\"definitions\":{\"schemaArray\":{\"type\":\"array\",\"minItems\":1,\"items\":{\"$ref\":\"#\"}},\"positiveInteger\":{\"type\":\"integer\",\"minimum\":0},\"positiveIntegerDefault0\":{\"allOf\":[{\"$ref\":\"#/definitions/positiveInteger\"},{\"default\":0}]},\"simpleTypes\":{\"enum\":[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},\"stringArray\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"minItems\":1,\"uniqueItems\":true}},\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},\"$schema\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"default\":{},\"multipleOf\":{\"type\":\"number\",\"minimum\":0,\"exclusiveMinimum\":true},\"maximum\":{\"type\":\"number\"},\"exclusiveMaximum\":{\"type\":\"boolean\",\"default\":false},\"minimum\":{\"type\":\"number\"},\"exclusiveMinimum\":{\"type\":\"boolean\",\"default\":false},\"maxLength\":{\"$ref\":\"#/definitions/positiveInteger\"},\"minLength\":{\"$ref\":\"#/definitions/positiveIntegerDefault0\"},\"pattern\":{\"type\":\"string\",\"format\":\"regex\"},\"additionalItems\":{\"anyOf\":[{\"type\":\"boolean\"},{\"$ref\":\"#\"}],\"default\":{}},\"items\":{\"anyOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/schemaArray\"}],\"default\":{}},\"maxItems\":{\"$ref\":\"#/definitions/positiveInteger\"},\"minItems\":{\"$ref\":\"#/definitions/positiveIntegerDefault0\"},\"uniqueItems\":{\"type\":\"boolean\",\"default\":false},\"maxProperties\":{\"$ref\":\"#/definitions/positiveInteger\"},\"minProperties\":{\"$ref\":\"#/definitions/positiveIntegerDefault0\"},\"required\":{\"$ref\":\"#/definitions/stringArray\"},\"additionalProperties\":{\"anyOf\":[{\"type\":\"boolean\"},{\"$ref\":\"#\"}],\"default\":{}},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"anyOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/stringArray\"}]}},\"enum\":{\"type\":\"array\",\"minItems\":1,\"uniqueItems\":true},\"type\":{\"anyOf\":[{\"$ref\":\"#/definitions/simpleTypes\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/simpleTypes\"},\"minItems\":1,\"uniqueItems\":true}]},\"format\":{\"type\":\"string\"},\"allOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"anyOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"oneOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"not\":{\"$ref\":\"#\"}},\"dependencies\":{\"exclusiveMaximum\":[\"maximum\"],\"exclusiveMinimum\":[\"minimum\"]},\"default\":{}}')},6273:function(e){\"use strict\";e.exports=JSON.parse('{\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"$id\":\"http://json-schema.org/draft-06/schema#\",\"title\":\"Core schema meta-schema\",\"definitions\":{\"schemaArray\":{\"type\":\"array\",\"minItems\":1,\"items\":{\"$ref\":\"#\"}},\"nonNegativeInteger\":{\"type\":\"integer\",\"minimum\":0},\"nonNegativeIntegerDefault0\":{\"allOf\":[{\"$ref\":\"#/definitions/nonNegativeInteger\"},{\"default\":0}]},\"simpleTypes\":{\"enum\":[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},\"stringArray\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"uniqueItems\":true,\"default\":[]}},\"type\":[\"object\",\"boolean\"],\"properties\":{\"$id\":{\"type\":\"string\",\"format\":\"uri-reference\"},\"$schema\":{\"type\":\"string\",\"format\":\"uri\"},\"$ref\":{\"type\":\"string\",\"format\":\"uri-reference\"},\"title\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"default\":{},\"examples\":{\"type\":\"array\",\"items\":{}},\"multipleOf\":{\"type\":\"number\",\"exclusiveMinimum\":0},\"maximum\":{\"type\":\"number\"},\"exclusiveMaximum\":{\"type\":\"number\"},\"minimum\":{\"type\":\"number\"},\"exclusiveMinimum\":{\"type\":\"number\"},\"maxLength\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minLength\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"pattern\":{\"type\":\"string\",\"format\":\"regex\"},\"additionalItems\":{\"$ref\":\"#\"},\"items\":{\"anyOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/schemaArray\"}],\"default\":{}},\"maxItems\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minItems\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"uniqueItems\":{\"type\":\"boolean\",\"default\":false},\"contains\":{\"$ref\":\"#\"},\"maxProperties\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minProperties\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"required\":{\"$ref\":\"#/definitions/stringArray\"},\"additionalProperties\":{\"$ref\":\"#\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"anyOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/stringArray\"}]}},\"propertyNames\":{\"$ref\":\"#\"},\"const\":{},\"enum\":{\"type\":\"array\",\"minItems\":1,\"uniqueItems\":true},\"type\":{\"anyOf\":[{\"$ref\":\"#/definitions/simpleTypes\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/simpleTypes\"},\"minItems\":1,\"uniqueItems\":true}]},\"format\":{\"type\":\"string\"},\"allOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"anyOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"oneOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"not\":{\"$ref\":\"#\"}},\"default\":{}}')},6680:function(e){\"use strict\";e.exports=JSON.parse('{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"$id\":\"http://json-schema.org/draft-07/schema#\",\"title\":\"Core schema meta-schema\",\"definitions\":{\"schemaArray\":{\"type\":\"array\",\"minItems\":1,\"items\":{\"$ref\":\"#\"}},\"nonNegativeInteger\":{\"type\":\"integer\",\"minimum\":0},\"nonNegativeIntegerDefault0\":{\"allOf\":[{\"$ref\":\"#/definitions/nonNegativeInteger\"},{\"default\":0}]},\"simpleTypes\":{\"enum\":[\"array\",\"boolean\",\"integer\",\"null\",\"number\",\"object\",\"string\"]},\"stringArray\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"uniqueItems\":true,\"default\":[]}},\"type\":[\"object\",\"boolean\"],\"properties\":{\"$id\":{\"type\":\"string\",\"format\":\"uri-reference\"},\"$schema\":{\"type\":\"string\",\"format\":\"uri\"},\"$ref\":{\"type\":\"string\",\"format\":\"uri-reference\"},\"$comment\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"default\":true,\"readOnly\":{\"type\":\"boolean\",\"default\":false},\"examples\":{\"type\":\"array\",\"items\":true},\"multipleOf\":{\"type\":\"number\",\"exclusiveMinimum\":0},\"maximum\":{\"type\":\"number\"},\"exclusiveMaximum\":{\"type\":\"number\"},\"minimum\":{\"type\":\"number\"},\"exclusiveMinimum\":{\"type\":\"number\"},\"maxLength\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minLength\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"pattern\":{\"type\":\"string\",\"format\":\"regex\"},\"additionalItems\":{\"$ref\":\"#\"},\"items\":{\"anyOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/schemaArray\"}],\"default\":true},\"maxItems\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minItems\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"uniqueItems\":{\"type\":\"boolean\",\"default\":false},\"contains\":{\"$ref\":\"#\"},\"maxProperties\":{\"$ref\":\"#/definitions/nonNegativeInteger\"},\"minProperties\":{\"$ref\":\"#/definitions/nonNegativeIntegerDefault0\"},\"required\":{\"$ref\":\"#/definitions/stringArray\"},\"additionalProperties\":{\"$ref\":\"#\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"default\":{}},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#\"},\"propertyNames\":{\"format\":\"regex\"},\"default\":{}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"anyOf\":[{\"$ref\":\"#\"},{\"$ref\":\"#/definitions/stringArray\"}]}},\"propertyNames\":{\"$ref\":\"#\"},\"const\":true,\"enum\":{\"type\":\"array\",\"items\":true,\"minItems\":1,\"uniqueItems\":true},\"type\":{\"anyOf\":[{\"$ref\":\"#/definitions/simpleTypes\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/simpleTypes\"},\"minItems\":1,\"uniqueItems\":true}]},\"format\":{\"type\":\"string\"},\"contentMediaType\":{\"type\":\"string\"},\"contentEncoding\":{\"type\":\"string\"},\"if\":{\"$ref\":\"#\"},\"then\":{\"$ref\":\"#\"},\"else\":{\"$ref\":\"#\"},\"allOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"anyOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"oneOf\":{\"$ref\":\"#/definitions/schemaArray\"},\"not\":{\"$ref\":\"#\"}},\"default\":true}')}},o={},i.amdD=function(){throw new Error(\"define cannot be used indirect\")},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,{a:t}),t},i.d=function(e,t){for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},i.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},i(3161);function i(e){var t=o[e];return void 0!==t||(t=o[e]={id:e,loaded:!1,exports:{}},n[e].call(t.exports,t,t.exports,i),t.loaded=!0),t.exports}var n,o});\n","/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

    ' + func(text) + '

    ';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

    fred, barney, & pebbles

    '\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '